From 53f2ab450f00d2f1ddb9cedfc5823b34af0d5545 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 30 八月 2023 16:18:09 +0800
Subject: [PATCH] 采购订单的  价格调整 ,折扣调整 接口对接  采购质检单 列表接口对接

---
 src/components/makepager/CommonFormTableView.vue |   81 +++++++++++++++++++++++++++++++---------
 1 files changed, 63 insertions(+), 18 deletions(-)

diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index 91b6d2c..5220061 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -1,7 +1,11 @@
 <template>
   <div class="page-view">
-    <el-form ref="form" :model="tableList" :show-message="false" label-position="right">
-      <el-table :data="tableList.tableData" style="width: 100%">
+    <el-form ref="form" :model="tableList" :show-message="false" label-position="right"
+    >
+      <el-table :data="tableList.tableData" style="width: 100%"
+      :show-summary="showSummary.show"
+      :summary-method="getSummaries"
+      :span-method="arraySpanMethod">
         <el-table-column type="index" label="缂栧彿" width="50" align="center"></el-table-column>
         <el-table-column
           v-for="(item, i) in tableList.tableColumn"
@@ -50,11 +54,14 @@
                     }
                   "
                 ></el-autocomplete>
-                <div class="common-select-btn" @click="selClientClick(scope.row, item.prop)">
+                <div class="common-select-btn" @click="selClientClick(scope.row, item.prop,scope)">
                   <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                 </div>
-                <div class="common-select-btn" @click="clearupClient(scope.row)">
+                <div class="common-select-btn" @click="clearupClient(scope.row,scope)">
                   <i class="el-icon-remove-outline" title="娓呴櫎"></i>
+                </div>
+                <div class="common-select-btn" @click="deleteClient(scope.row,scope)">
+                  <i class="el-icon-delete" title="鍒犻櫎"></i>
                 </div>
               </div>
             </el-form-item>
@@ -94,6 +101,24 @@
               :prop="'tableData.' + scope.$index + '.' + item.prop"
               :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
             >
+             <template v-if="item.multiply">
+                <el-input-number
+                  :value="scope.row[showSummary.multiply[0]]*scope.row[showSummary.multiply[1]]"
+                  placeholder=""
+                  :disabled="item.disabled"
+                  :min="0"
+                  :precision="2"
+                  :controls="false"
+                  size="mini"
+                  style="width: 100%; margin-right: 5px"
+                  @input="
+                    (val) => {
+                      commonInputChange(val, item.prop, scope.row)
+                    }
+                  "
+                ></el-input-number>
+             </template>
+             <template v-else>
               <el-input-number
                 v-model="scope.row[item.prop]"
                 placeholder=""
@@ -108,6 +133,7 @@
                   }
                 "
               ></el-input-number>
+              </template>
             </el-form-item>
             <span v-else>{{ scope.row[item.prop] }}</span>
             <!-- </template> -->
@@ -124,13 +150,14 @@
     <SelectCommonDialog
       v-if="editSelCommonConfig.editVisible"
       :edit-common-config="editSelCommonConfig"
+      :sign="sign"
       @selClient="selClient"
     />
   </div>
 </template>
 
 <script>
-import { getProductListFromGrpc } from "@/api/productManage/product"
+import { getProductListFromGrpc,getProductList } from "@/api/productManage/product"
 import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
 export default {
   name: "CommmonFormTableView",
@@ -139,6 +166,10 @@
     detailEnter: {
       type: Boolean,
       default: false
+    },
+    sign:{
+      type:String,
+      default:''
     },
     productTableList: {
       type: Object,
@@ -160,6 +191,7 @@
           total: false,
           refundable: false,
           sumProp: [],
+          multiply:[],
           titleProp: ["#", "浜у搧鍚嶇О"],
           mergeNumber: 1
         }
@@ -168,7 +200,7 @@
     recalculateShow: {
       type: [Boolean],
       defalut: true
-    }
+    },
   },
   data() {
     return {
@@ -188,10 +220,16 @@
     this.tableList = this.productTableList
   },
   computed: {},
+  watch:{
+    productTableList(){
+      this.tableList = this.productTableList
+    }
+  },
   methods: {
     // 浜у搧鍚嶇О
     async getProductList() {
-      await getProductListFromGrpc({
+      let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc;
+      await fn({
         page: 1,
         pageSize: 100
       }).then((res) => {
@@ -259,6 +297,7 @@
         }
         if (column.property === "total") {
           this.total = sums[index]
+          this.$emit('getSummaries',this.total)
         }
       })
       return sums
@@ -354,9 +393,9 @@
       }
       this.$emit("selCommonName", selRow)
     },
-    selClientClick(row, prop) {
+    selClientClick(row, prop,scope) {
       console.log(row, prop)
-      this.productIndex = row.productId - 1
+      this.productIndex = scope.$index
       this.editSelCommonConfig.title = "浜у搧鍚嶇О"
       this.editSelCommonConfig.editVisible = true
     },
@@ -379,22 +418,28 @@
         this.tableList.tableData.map((ite, index) => {
           if (index === this.productIndex) {
             ite.name = item.name
+            ite.productId = item.ID
             ite.amount = item.amount || 1
             ite.number = item.number
             ite.purchasePrice = item.purchasePrice
             ite.unit = item.unit
             ite.deliveryTime = item.deliveryTime
             ite.shippingDuration = item.shippingDuration
+            this.$set(this.tableList.tableData,index,ite)
+            this.$forceUpdate()
           }
         })
+        
+       
+        console.log(this.tableList.tableData,'=====chanp')
       }
     },
     // 娓呴櫎宸查�夋嫨鐢ㄦ埛
-    clearupClient(row) {
-      this.productIndex = row.productId - 1
+    clearupClient(row,scope) {
+      this.productIndex = scope.$index
       this.tableList.tableData.map((ite, index) => {
-        console.log(row.productId)
-        if (row.productId && row.productId >= 0) {
+        console.log(scope.$index)
+        if (scope.$index  && scope.$index  >= 0) {
           if (index === this.productIndex) {
             ite.name = ""
             ite.amount = 1
@@ -416,10 +461,10 @@
       })
       this.$emit("clearupProduct", this.tableList.tableData)
     },
-    // 鍒犻櫎
-    deleteClient(row) {
-      this.$emit("deleteProduct", row)
-    }
+    deleteClient(row,scope){
+      this.tableList.tableData.splice(scope.$index,1)
+    },
+    
   }
 }
 </script>
@@ -445,7 +490,7 @@
   }
   .el-table__footer-wrapper tbody td.el-table__cell {
     background-color: #fff;
-    text-align: right;
+    // text-align: right;
     font-weight: bold;
   }
   .el-input--suffix .el-input__inner {

--
Gitblit v1.8.0