From 7f5306d896fa0c541a83c4b62d0c533a604dd184 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期日, 28 四月 2024 18:23:23 +0800
Subject: [PATCH] 供应商管理模块 添加新产品的时候供应商对应的产品和已增加的产品都不可选的逻辑处理

---
 src/components/makepager/CommonFormTableView.vue |  102 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 88 insertions(+), 14 deletions(-)

diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 145cd11..cfbb18b 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -3,15 +3,17 @@
     <el-form ref="form" :model="tableList" :show-message="false" label-position="right">
       <el-table
         ref="fromTable"
+        :border="isBoder"
         :data="tableList.tableData"
         :show-summary="showSummary.show"
         :summary-method="getSummaries"
         :span-method="arraySpanMethod"
         style="width: 100%"
         @selection-change="handleSelectionChange"
-        :row-key="(row) => row.productId"
+        :row-key="getRowKeys"
       >
-        <el-table-column v-if="selectBox" type="selection" :reserve-selection="true" width="40" align="center">
+        <el-table-column v-if="selectBox"  type="selection" :selectable="isDisabled" :reserve-selection="true" width="40" align="center">
+          
         </el-table-column>
         <el-table-column v-if="tableList.isReturn" type="index" label="#" width="50" align="center"></el-table-column>
         <el-table-column
@@ -27,6 +29,9 @@
           <template slot="header">
             <span v-if="item.isRequird" style="color: #f56c6c">*</span>
             <span>{{ item.label }}</span>
+            <FilterPopover @toFiltering="toFiltering" class="margin_left_3px" v-if="item.isFilter" 
+            :layout="item.prop" :isFilterList="item.isFilterList"
+            :selectedListDefault="item.selectedListDefault"></FilterPopover>
           </template>
           <!-- column鏍峰紡 -->
           <template slot-scope="scope">
@@ -49,6 +54,13 @@
                   "
                 ></el-input>
               </el-form-item>
+              <span v-else-if="item.compute">{{ calculateDifference(scope.row) }}</span>
+              <!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 -->
+              <div v-else-if="item.isCallMethod">
+                <span :class="item.isClass ? item.getClassName(scope.row[item.prop], scope.row) : ''">{{
+                  item.getCallMethod(scope.row[item.prop], scope.row)
+                }}</span>
+              </div>
               <el-form-item
                 v-else-if="item.productName"
                 label=" "
@@ -173,9 +185,14 @@
                 "
               ></el-input-number>
             </el-form-item>
-            <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span>
+            <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span> 
+            
           </template>
+          <!-- <template slot-scope="scope" v-if="item.compute">   
+          </template>  -->
         </el-table-column>
+        <!-- <el-table-column label="鍓╀綑鏀惰揣鏁伴噺">   
+        </el-table-column> -->
         <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>
@@ -206,7 +223,7 @@
       v-if="editSelCommonConfig.editVisible"
       :edit-common-config="editSelCommonConfig"
       :sign="sign"
-      :selectBoxList="tableList.tableData"
+      :selectBoxList="arrDisabledList"
       :quotationNumber="quotationNumber"
       @selClient="selClient"
       @getSelectArray="getSelectArray"
@@ -217,11 +234,21 @@
 <script>
 import { getProductListFromGrpc, getProductList } from "@/api/productManage/product"
 import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
+import FilterPopover from "@/components/makepager/FilterPopover";
 export default {
   name: "CommmonFormTableView",
-  components: { SelectCommonDialog },
+  components: { SelectCommonDialog ,FilterPopover},
   props: {
     detailEnter: {
+      type: Boolean,
+      default: false
+    },
+    // selection 閫夋嫨鐘舵�� 椤甸潰
+    name: {
+      type: String,
+      default: "",
+    },
+    isBoder:{
       type: Boolean,
       default: false
     },
@@ -277,20 +304,31 @@
           mergeNumber: 1
         }
       }
+    },
+    disabledList:{
+      type:[Array],
+      default: () => {
+        return []
+      }
     }
   },
   data() {
     return {
       total: 0,
       productList: [],
-      tableList: [],
+      tableList: {
+        tableData:[]
+      },
       editSelCommonConfig: {
         editVisible: false,
         isSelectBox: false,
         title: "",
-        infomation: {}
+        infomation: {},
+        supplierId:null,
       },
-      productIndex: 0
+      productIndex: 0,
+      supplierId:null,
+      arrDisabledList:[]
     }
   },
   created() {
@@ -305,20 +343,56 @@
         this.getTableInfo()
       },
       immediate: true
+    },
+    supplierId(n,o) {  
+      this.editSelCommonConfig.supplierId=n
+      console.log(n,o,"鐪嬬湅閭�") 
+    } ,
+    'tableList.tableData':function () {
+      this.arrDisabledList=this.disabledList.concat(this.tableList.tableData)
     }
   },
   computed: {},
   methods: {
+    // 鑾峰彇row鐨刱ey鍊�
+    getRowKeys(row) {
+      let string;
+      string = row[this.productTableList.key?this.productTableList.key:this.productTableList.productId];
+      return string;
+    },
+    isDisabled(row){ 
+      if (this.name == "rework") {
+        if (row.status == 1) {
+          return true;
+        } else {
+          return false;
+        }
+      }else {
+        return true;
+      }
+    },
+    calculateDifference(row) {  
+      if (row.notReceiveAmount !== null && row.nowReceiveAmount !== null) {  
+        row.surplusReceiveAmount=row.notReceiveAmount - row.nowReceiveAmount;
+        return  row.surplusReceiveAmount
+      } else {  
+        return 0; 
+      }  
+    },
+    toFiltering(event){
+      this.$emit("toFiltering", event);
+    },
     getTableInfo() {
       this.tableList = this.productTableList
+      this.arrDisabledList=this.disabledList.concat(this.tableList.tableData)
     },
     // 浜у搧鍚嶇О
     async getProductList() {
       let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc
       await fn({
-        page: 1,
-        pageSize: 100
-      }).then((res) => {
+          page: 1,
+          pageSize: 100,
+        }).then((res) => {
         if (res.code === 200) {
           if (res.data.list && res.data.list.length > 0) {
             this.productList = res.data.list
@@ -433,7 +507,7 @@
       }
     },
     commonInputChange(val, prop, row, scope) {
-      if (prop === "amount") {
+      if (prop === "amount"||prop=='purchasePrice') {
         this.tableList.tableData.map((ite) => {
           if (ite.name === row.name) {
             ite.total = row.amount * row.purchasePrice
@@ -492,6 +566,7 @@
       this.tableList.tableData.map((ite) => {
         if (ite.name === item.name) {
           ite.amount = item.amount || 1
+          ite.productId = item.id
           ite.number = item.number
           ite.purchasePrice = item.purchasePrice
           ite.price = item.purchasePrice
@@ -504,8 +579,7 @@
       })
     },
     // 鏂板
-    selClientClick(scope, prop) {
-      console.log(scope, prop)
+    selClientClick(scope) {
       this.productIndex = scope.$index
       this.editSelCommonConfig.title = "浜у搧鍚嶇О"
       this.editSelCommonConfig.isSelectBox = true

--
Gitblit v1.8.0