From d4f4c52402b91cb8e17c1845da71c5e39662fde0 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期三, 03 一月 2024 15:28:06 +0800
Subject: [PATCH] 销售报价单列表页增加统计内容及接口联调、添加报价单天天客户名称及对应限制功能

---
 src/components/makepager/CommonFormTableView.vue |   94 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 70 insertions(+), 24 deletions(-)

diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 70fbd58..4476b95 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -41,9 +41,10 @@
                   v-model.trim="scope.row[item.prop]"
                   maxlength="50"
                   size="mini"
+                  :disabled="!isOperate"
                   @change="
                     (val) => {
-                      commonInputChange(val, item.prop, scope.row)
+                      commonInputChange(val, item.prop, scope.row,scope)
                     }
                   "
                 ></el-input>
@@ -58,6 +59,7 @@
                     v-model="scope.row[item.prop]"
                     :fetch-suggestions="querySearchAsync"
                     value-key="name"
+                    :disabled="!isOperate"
                     size="mini"
                     @select="
                       (val) => {
@@ -65,11 +67,11 @@
                       }
                     "
                   ></el-autocomplete>
-                  <div class="common-select-btn" @click="selClientClick(scope.row, item.prop)">
+                  <div class="common-select-btn" v-if="isOperate" @click="selClientClick(scope.row, item.prop)">
                     <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                   </div>
                   <div
-                    v-if="scope.row[item.prop] && scope.row[item.prop].length > 0"
+                    v-if="scope.row[item.prop] && scope.row[item.prop].length > 0&&isOperate"
                     class="common-select-btn"
                     @click="clearupClient(scope.row)"
                   >
@@ -84,7 +86,7 @@
                 :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
               >
                 <!-- <el-input v-model.trim="scope.row[item.prop]" maxlength="50" size="mini"></el-input> -->
-                <el-date-picker v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px">
+                <el-date-picker :disabled="!isOperate" v-model="scope.row[item.prop]" type="date" size="mini" style="width: 110px">
                 </el-date-picker>
               </el-form-item>
               <el-form-item
@@ -98,11 +100,12 @@
                   placeholder=""
                   :min="0"
                   :controls="false"
+                  :disabled="!isOperate"
                   size="mini"
                   style="width: 100%; margin-right: 5px"
                   @change="
                     (val) => {
-                      commonInputChange(val, item.prop, scope.row)
+                      commonInputChange(val, item.prop, scope.row,scope)
                     }
                   "
                 ></el-input-number>
@@ -118,24 +121,19 @@
                   placeholder=""
                   :min="0"
                   :precision="2"
+                  :disabled="!isOperate"
                   :controls="false"
                   size="mini"
                   style="width: 100%; margin-right: 5px"
                   @change="
                     (val) => {
-                      commonInputChange(val, item.prop, scope.row)
+                      commonInputChange(val, item.prop, scope.row,scope)
                     }
                   "
                 ></el-input-number>
               </el-form-item>
               <span v-else>
-                <template v-if="pageName=='quotation'&&item.prop=='profit'">
-                  {{ (scope.row.price&&scope.row.cost)?Number(scope.row.price)-Number(scope.row.cost)+'':'' }}
-                </template>
-                <template v-if="pageName=='quotation'&&item.prop=='margin'">
-                  {{ (scope.row.price&&scope.row.cost)?((Number(scope.row.price)-Number(scope.row.cost))*100/Number(scope.row.cost)).toFixed(2)+'%':'' }}
-                </template>
-                <template v-else>
+                <template>
                   {{ scope.row[item.prop] }}
                 </template>
               </span>
@@ -151,11 +149,12 @@
                 placeholder=""
                 :min="0"
                 :controls="false"
+                :disabled="!isOperate"
                 size="mini"
                 style="width: 100%; margin-right: 5px"
                 @change="
                   (val) => {
-                    commonInputChange(val, item.prop, scope.row)
+                    commonInputChange(val, item.prop, scope.row,scope)
                   }
                 "
               ></el-input-number>
@@ -163,11 +162,12 @@
             <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span>
           </template>
         </el-table-column>
-        <el-table-column  label="鎿嶄綔" width="40" align="center">
+        <el-table-column  label="鎿嶄綔" width="40" v-if="!detailEnter" align="center">
           <template slot-scope="scope">
             <el-button
               type="text"
               size="small"
+              :disabled="!isOperate"
               @click="deleteClick(scope)"
               >鍒犻櫎</el-button>
           </template>
@@ -176,10 +176,10 @@
       </el-table>
     </el-form>
     <div v-if="!detailEnter" style="margin: 10px">
-      <el-button size="small" type="primary" @click="add">鏂板</el-button>
+      <el-button size="small" type="primary" :disabled="!isOperate" @click="add">鏂板</el-button>
       <!-- <el-button size="small" type="primary" disabled>瀵煎叆鏄庣粏</el-button> -->
-      <el-button size="small" type="primary" @click="empty">娓呯┖</el-button>
-      <el-button size="small" type="primary" @click="recalculate" :disabled="isRecalculate ? false : true"
+      <el-button size="small" type="primary" :disabled="!isOperate" @click="empty">娓呯┖</el-button>
+      <el-button size="small" type="primary" @click="recalculate" :disabled="(isRecalculate&&!isOperate) ? false : true"
         >閲嶇畻</el-button
       >
     </div>
@@ -199,7 +199,9 @@
     <SelectCommonDialog
       v-if="editSelCommonConfig.editVisible"
       :edit-common-config="editSelCommonConfig"
+      :quotationNumber="quotationNumber"
       @selClient="selClient"
+      @getSelectArray="getSelectArray"
     />
   </div>
 </template>
@@ -223,6 +225,21 @@
     pageName:{
       type:String,
       default:''
+    },
+    // 鍒楄〃鏂板鏄惁澶氶��
+    addTypeIdMultiple:{
+      type:Boolean,
+      default:false,
+    },
+    // 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝�
+    quotationNumber:{
+      type:[String,Number],
+      default:''
+    },
+    // 鏄惁鍙互鎿嶄綔 娣诲姞绛� 
+    isOperate:{
+      type:Boolean,
+      default:true,
     },
     productTableList: {
       type: Object,
@@ -257,6 +274,7 @@
       tableList: [],
       editSelCommonConfig: {
         editVisible: false,
+        isSelectBox:false,
         title: "",
         infomation: {}
       },
@@ -388,11 +406,15 @@
     },
     // 鏂板
     add() {
-      this.$emit("addProductClick")
+      if(this.addTypeIdMultiple){
+        this.editSelCommonConfig.title = "浜у搧鍚嶇О"
+        this.editSelCommonConfig.isSelectBox=true;
+        this.editSelCommonConfig.editVisible = true
+      }else{
+        this.$emit("addProductClick")
+      }
     },
-    commonInputChange(val, prop, row) {
-      console.log(val, prop)
-      console.log(row)
+    commonInputChange(val, prop, row,scope) {
       if (prop === "amount") {
         this.tableList.tableData.map((ite) => {
           if (ite.name === row.name) {
@@ -400,7 +422,27 @@
           }
         })
       }
-      this.$emit("inputContent", val, prop, row)
+      if(this.pageName=='quotation'&&prop=='cost'&&scope.row.cost){
+        let value=scope.row.cost
+        let reg2 =
+            /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
+          if (!reg2.test(value)||value==0) {
+            this.$message.error("鎴愭湰鍗曚环闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒")
+            return true;
+          } 
+        this.$forceUpdate()
+      }
+      if(this.pageName=='quotation'){
+        if(prop=='price'||prop=='cost'){
+          if(scope.row.price&&scope.row.cost){
+            let profit=Number(scope.row.price)-Number(scope.row.cost)
+            scope.row.profit=profit+'';
+            let margin=((Number(scope.row.price)-Number(scope.row.cost))*100/Number(scope.row.cost)).toFixed(2)
+            scope.row.margin=margin+'';
+          }
+        }
+      }
+      this.$emit("inputContent", val, prop, row,scope)
     },
     // 娓呯┖
     empty() {
@@ -411,7 +453,7 @@
     deleteClick(scope){
       this.tableList.tableData.splice(scope.$index,1)
       this.$forceUpdate();
-      this.$message.success('鍒犻櫎闄ゆ垚鍔燂紒')
+      this.$message.success('鍒犻櫎鎴愬姛锛�')
       this.$emit("deleteClick",scope)
     },
     // 閲嶇畻
@@ -458,6 +500,7 @@
       console.log(row, prop)
       this.productIndex = row.productId - 1
       this.editSelCommonConfig.title = "浜у搧鍚嶇О"
+      this.editSelCommonConfig.isSelectBox=false;
       this.editSelCommonConfig.editVisible = true
     },
     selClient(item) {
@@ -476,6 +519,9 @@
         }
       })
     },
+    getSelectArray(val){
+      this.$emit("getSelectArray",val)
+    },
     // 娓呴櫎宸查�夋嫨鐢ㄦ埛
     clearupClient(row) {
       this.productIndex = row.productId - 1

--
Gitblit v1.8.0