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

---
 src/views/purchaseManage/purchase/components/AddPurchase.vue |  104 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 77 insertions(+), 27 deletions(-)

diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue
index 7205625..28b4ccd 100644
--- a/src/views/purchaseManage/purchase/components/AddPurchase.vue
+++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -166,7 +166,9 @@
               :show-summary="showSummary"
               :recalculateShow="false"
               :product-table-list="productTableList"
+              sign="purchase"
               @inputContent="inputContent"
+              @getSummaries="getSummaries"
               @addProductClick="addProductClick"
               @emptyProductClick="emptyProductClick"
               @clearupProduct="clearupProduct"
@@ -180,6 +182,7 @@
                     v-model="editConfig.infomation.wholeDiscountType"
                     placeholder="璇烽�夋嫨"
                     filterable
+                    @change="getTotal"
                   >
                     <el-option label="鐧惧垎姣旈檷浠�" :value="1"></el-option>
                     <el-option label="鐩存帴闄嶄环" :value="2"></el-option>
@@ -191,6 +194,8 @@
                   <el-input
                     v-model="editConfig.infomation.wholeDiscount"
                     size="mini"
+                    :disabled="editConfig.infomation.wholeDiscountType?false:true"
+                    @change="getTotal"
                     placeholder="璇峰~鍐�"
                   ></el-input>
                 </el-form-item>
@@ -203,6 +208,7 @@
                     v-model="editConfig.infomation.priceAdjustmentType"
                     placeholder="璇烽�夋嫨"
                     filterable
+                    @change="getTotal"
                   >
                     <el-option label="澧炲姞" :value="1"></el-option>
                     <el-option label="鍑忓皯" :value="2"></el-option>
@@ -214,6 +220,8 @@
                   <el-input
                     v-model="editConfig.infomation.priceAdjustment"
                     size="mini"
+                    :disabled="editConfig.infomation.priceAdjustmentType?false:true"
+                    @change="getTotal"
                     placeholder="璇峰~鍐�"
                   ></el-input>
                 </el-form-item>
@@ -221,7 +229,7 @@
             </div>
             <div class="table-bottom-item">
               <div class="table-bottom-l">鍚堣</div>
-              <div class="table-bottom-r">{{ editConfig.infomation.realTotalPrice }}</div>
+              <div class="table-bottom-r">{{ total }}</div>
             </div>
           </div>
         </div>
@@ -297,7 +305,7 @@
         wholeDiscount: [
           {
             required: false,
-            message: "璇峰~鍐�",
+            message: "璇峰~鍐�0-100鐨勬暟瀛�",
             trigger: "change",
           },
           { validator: this.validatorNum, trigger: "change" },
@@ -316,6 +324,7 @@
         show: true,
         total: false,
         sumProp: ["price", "total"],
+        multiply:['amount','price'],
         titleProp: [
           "缂栧彿",
           "浜у搧鍚嶇О",
@@ -326,6 +335,7 @@
           "鎻忚堪",
         ],
         mergeNumber: 4,
+        totalName:'灏忚'
       },
       editSelectSupplierConfig: {
         editVisible: false,
@@ -340,11 +350,13 @@
       plcBrandList:[],
       editRow:{
         isDefault:'pin'
-      }
+      },
+      total:0,
+      totalTwo:0,
     };
   },
   created() {
-    this.setTableForm();
+    this.handleGetBomKindDictList();
   },
   computed: {
   },
@@ -353,26 +365,30 @@
       immediate:true,
       handler:function(){
         
-        this.setTableForm();
+        this.handleGetBomKindDictList(true);
       }
     }
   },
   methods: {
     validatorNum(rule, value, callback) {
-      if (value) {
-        if (value == undefined || value == null) {
+      if(this.editConfig.infomation.wholeDiscountType==1){
+        if(value==undefined||value==null||(!value&&value!=0)){
           callback(new Error("璇疯緭鍏ユ湁鏁堟暟瀛�"));
-        } else {
-          var reg = /^\+?[0-9]\d*$/;
-          if (!reg.test(value)) {
-            callback(new Error("璇峰~鍐欎笉灏忎簬0鐨勬暟瀛�"));
-          } else {
-            callback();
+        }else{
+          var reg=/^\+?[0-9]\d*$/
+          if(!reg.test(value)){
+            callback(new Error('璇峰~鍐�0-100鐨勬暟瀛�'))
+          }else{
+            if(Number(value)>100){
+              callback(new Error('璇峰~鍐�0-100鐨勬暟瀛�'))
+            }else{
+              callback()
+            }
           }
-        }
-      } else {
-        callback();
-      }
+        }  
+      }else{
+        this.validatorNumThree(rule, value, callback)
+      }   
     },
     validatorNumThree(rule, value, callback){
       if(value){
@@ -397,9 +413,9 @@
     },
     //  PLC閰嶇疆
     handleGetBomKindDictList(val) {
-      console.log(val,'val')
       getPurchaseType().then((res) => {
         this.plcBrandList = res.data;
+        this.setTableForm()
         if (val) {
           for (let i in this.plcBrandList) {
             if (this.plcBrandList[i][this.editRow.isDefault]) {
@@ -492,6 +508,13 @@
     },
     saveParams() {
       let data =JSON.parse(JSON.stringify(this.editConfig.infomation));
+      
+      if(this.editConfig.infomation.wholeDiscountType==2&&this.editConfig.infomation.wholeDiscount){
+        if(Number(this.editConfig.infomation.wholeDiscount)>Number(this.totalTwo)){
+            this.$message.error('鐩存帴闄嶄环涓嶈兘瓒呰繃浠风◣鍚堣鐨勬�诲拰锛�')
+            return true;
+        }
+      }
       let params = {
         productList:this.tableData,
         purchase:{
@@ -504,11 +527,12 @@
           name:data.name||'',
           deliveryDate:data.deliveryDate||'',
           contact:data.contact,
-          wholeDiscountType:data.wholeDiscountType,
-          wholeDiscount:Number(data.wholeDiscount),
-          priceAdjustmentType:data.priceAdjustmentType,
-          priceAdjustment:Number(data.priceAdjustment),
-          realTotalPrice:data.realTotalPrice||'',
+          wholeDiscountType:data.wholeDiscountType?data.wholeDiscountType:0,
+          wholeDiscount:data.wholeDiscount?Number(data.wholeDiscount):0,
+          priceAdjustmentType:data.priceAdjustmentType?data.priceAdjustmentType:0,
+          priceAdjustment:data.priceAdjustment?Number(data.priceAdjustment):0,
+          realTotalPrice:this.total?Number(this.total):0,
+          totalPrice:this.totalTwo?Number(this.totalTwo):0,
         }
       };
       if(data.ID){
@@ -589,11 +613,11 @@
           {
             label: "浜у搧鍚嶇О",
             prop: "name",
-            min: 170,
+            min: 180,
             productName: true,
             isRequird: true,
           },
-          { label: "浜у搧缂栧彿", prop: "number" },
+          { label: "浜у搧缂栧彿", prop: "number", min: 150,},
           { label: "璁¢噺鍗曚綅", prop: "unit" },
           { label: "瑙勬牸鍨嬪彿", prop: "specifications" },
           { label: "鏁伴噺", prop: "amount", inputNumber: true, isRequird: true },
@@ -603,11 +627,12 @@
             inputFloat: true,
             isRequird: true,
           },
-          { label: "浠风◣鍚堣", prop: "total", inputFloat: true },
+          { label: "浠风◣鍚堣", prop: "total", inputFloat: true,disabled:true,multiply:true, },
           { label: "鎻忚堪", prop: "remark", input: true },
         ],
       };
-      this.handleGetBomKindDictList(true);
+      this.toal=this.editConfig.infomation.realTotalPrice
+     
     },
     // 浜у搧鍒楄〃杈撳叆
     inputContent(val, prop, row) {
@@ -617,6 +642,31 @@
           item[prop] = val;
         }
       });
+     
+    },
+    getSummaries(total){
+      this.totalTwo= JSON.parse(JSON.stringify(total));
+      this.total=total;
+      this.getTotal()
+    },
+    getTotal(){
+      let prie=0
+      if(this.editConfig.infomation.priceAdjustmentType==1){
+        prie=Number(this.editConfig.infomation.priceAdjustment)
+      }else if(this.editConfig.infomation.priceAdjustmentType==2){
+        prie=(-1)*Number(this.editConfig.infomation.priceAdjustment)
+      }else{
+        prie=0
+      }
+      let t=0
+      if(this.editConfig.infomation.wholeDiscountType==1){
+        t=this.totalTwo*Number(this.editConfig.infomation.wholeDiscount)/100
+      }else if(this.editConfig.infomation.wholeDiscountType==2){
+        t=Number(this.editConfig.infomation.wholeDiscount)
+      }else{
+        t=0
+      }
+      this.total=this.totalTwo-t+Number(prie)
     },
     // 浜у搧鏂板
     addProductClick() {

--
Gitblit v1.8.0