From 9a1a38de1cead46bfb28e22cdbdcf3fd32a4a94b Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 29 四月 2024 11:49:00 +0800
Subject: [PATCH] 列表薪资类型的显示的数据处理+薪资方案的保存按钮增加加载状态

---
 src/views/productManage/productRegisterForm/addProductRegisterPage.vue |  397 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 310 insertions(+), 87 deletions(-)

diff --git a/src/views/productManage/productRegisterForm/addProductRegisterPage.vue b/src/views/productManage/productRegisterForm/addProductRegisterPage.vue
index 8ecc54c..62c0700 100644
--- a/src/views/productManage/productRegisterForm/addProductRegisterPage.vue
+++ b/src/views/productManage/productRegisterForm/addProductRegisterPage.vue
@@ -91,9 +91,9 @@
                 </el-form-item>
               </el-col>
               <el-col :span="3">
-                <el-form-item label="杞﹂棿" prop="workshopId">
+                <el-form-item label="杞﹂棿" prop="workshopNumber">
                   <el-select
-                    v-model="ruleForm.workshopId"
+                    v-model="ruleForm.workshopNumber"
                     placeholder="璇烽�夋嫨"
                     class="select-width"
                     @change='getGroupNumber'
@@ -124,7 +124,7 @@
                     placeholder="璇峰厛閫夋嫨杞﹂棿"
                     no-data-text='璇峰厛閫夋嫨杞﹂棿'
                     class="select-width"
-                    @change='getGroupNumber'
+                    @change="getGroupNumber(false,'groupNumber')"
                   >
                     <el-option
                       v-for="item in workshopGroupList"
@@ -213,17 +213,24 @@
                         label=""
                         @input="inputStart"
                         label-width="0"
+                        label-position="right"
                         prop="fallingSilkBucketOne"
+                        :rules="[
+                          {
+                            required: ruleForm.selectOne,
+                            message: '璇峰~鍐�',
+                            trigger: 'change',
+                          },
+                        ]"
                         class='margin_right_10px select-width-input'
                       >
                         <el-input
                           v-model="ruleForm.fallingSilkBucketOne"
                           size="small"
-                          class="d-b-c-input"
                         ></el-input>
                       </el-form-item>
                       <el-checkbox
-                        v-model="ruleForm.isfallingSilkBucketOne"
+                        v-model="ruleForm.selectOne"
                       ></el-checkbox>
                     </div>
                     <div class="select-width">
@@ -231,6 +238,13 @@
                         label=""
                         @input="inputStart"
                         label-width="0"
+                        :rules="[
+                          {
+                            required: ruleForm.selectTwo,
+                            message: '璇峰~鍐�',
+                            trigger: 'change',
+                          },
+                        ]"
                         prop="fallingSilkBucketTwo"
                         class='margin_right_10px select-width-input'
                       >
@@ -241,14 +255,21 @@
                         ></el-input>
                       </el-form-item>
                       <el-checkbox
-                        v-model="ruleForm.isfallingSilkBucketTwo"
+                        v-model="ruleForm.selectTwo"
                       ></el-checkbox>
                     </div>
                     <div class="select-width">
                       <el-form-item
                         label=""
                         @input="inputStart"
-                        label-width="0"
+                        label-width=""
+                        :rules="[
+                          {
+                            required: ruleForm.selectThree,
+                            message: '璇峰~鍐�',
+                            trigger: 'change',
+                          },
+                        ]"
                         prop="fallingSilkBucketThree"
                         class='margin_right_10px select-width-input'
                       >
@@ -259,7 +280,7 @@
                         ></el-input>
                       </el-form-item>
                       <el-checkbox
-                        v-model="ruleForm.isfallingSilkBucketThree"
+                        v-model="ruleForm.selectThree"
                       ></el-checkbox>
                     </div>
                   </div>
@@ -356,6 +377,7 @@
           :data="tableData"
           style="width: 100%"
           border
+          v-if='tableShow'
           :height="'calc(100% - 0px)'"
           :cell-style='cellStyle'
         >
@@ -469,7 +491,7 @@
             align="center"
           >
           <template slot-scope="scope">
-               {{scope.row.peopleYield}}
+               {{scope.row.peopleYield!=0?scope.row.peopleYield:''}}
             </template>
           </el-table-column>
           <el-table-column  
@@ -479,7 +501,7 @@
             align="center"
           >
             <template slot-scope="scope">
-              {{(ruleForm.record&&scope.row.oneYield)?(scope.row.oneYield/ruleForm.record).toFixed(2):''}}
+              {{(ruleForm.record&&ruleForm.record!=0&&scope.row.oneYield)?(scope.row.oneYield/ruleForm.record).toFixed(2):''}}
             </template>
           </el-table-column>
           <el-table-column
@@ -506,7 +528,7 @@
             align="center"
           >
             <template slot-scope="scope">
-                 {{(ruleForm.record&&scope.row.allYield1)?(scope.row.allYield1/ruleForm.record).toFixed(2):''}}
+                 {{(ruleForm.record&&ruleForm.record!=0&&scope.row.allYield1)?(scope.row.allYield1/ruleForm.record).toFixed(2):''}}
             </template>
           </el-table-column>
           <el-table-column
@@ -533,7 +555,7 @@
             align="center"
           >
           <template slot-scope="scope">
-               {{(ruleForm.record&&scope.row.allYield2)?(scope.row.allYield2/ruleForm.record).toFixed(2):''}}
+               {{(ruleForm.record&&ruleForm.record!=0&&scope.row.allYield2)?(scope.row.allYield2/ruleForm.record).toFixed(2):''}}
             </template>
           </el-table-column>
           <el-table-column
@@ -560,7 +582,7 @@
             align="center"
           >
           <template slot-scope="scope">
-            {{(ruleForm.record&&scope.row.allYield3)?(scope.row.allYield3/ruleForm.record).toFixed(2):''}} 
+            {{(ruleForm.record&&ruleForm.record!=0&&scope.row.allYield3)?(scope.row.allYield3/ruleForm.record).toFixed(2):''}} 
             </template>
           </el-table-column>
           <el-table-column
@@ -589,7 +611,7 @@
 <script>
 import addProductDialog from "./components/addProductDialog";
 import {
-  // getYieldRegisterInfo,
+  getYieldRegisterInfo,
   saveYieldRegister,
   getWorkshopManageCar,
   getWorkshopManageGroup,
@@ -617,7 +639,7 @@
         circle: "",
         marketId: "",
         fallingSilkCocoonNumber: "",
-        workshopId: "",
+        workshopNumber: "",
         bucketCocoonNumber: "",
         groupNumber: "",
         vehicleSpeed: "",
@@ -629,11 +651,11 @@
         groupReelingdiscount: "",
         fallingSilkBucket: "",
         fallingSilkBucketOne: "",
-        isfallingSilkBucketOne: "",
+        selectOne: false,
         fallingSilkBucketTwo: "",
-        isfallingSilkBucketTwo: "",
+        selectTwo: false,
         fallingSilkBucketThree: "",
-        isfallingSilkBucketThree: "",
+        selectThree: false,
         back: "",
         oneBack: "",
         twoBack: "",
@@ -650,7 +672,7 @@
         marketId:  [
           { required: true, message: "璇烽�夋嫨", trigger:  ["change", "blur"] },
         ],
-        workshopId:  [
+        workshopNumber:  [
           { required: true, message: "璇烽�夋嫨", trigger:  ["change", "blur"] },
         ],
         groupNumber:  [
@@ -664,6 +686,10 @@
       isAddloading: false,
       productRegisterId:null,
       productRegisterNumber:null,
+      tableDataItems:[],
+      tableDataCircles:[],
+      yieldRegisterId:'',
+      tableShow:true,
     };
   },
   mounted() {
@@ -673,8 +699,101 @@
       this.productRegisterNumber = query.number ? query.number : "";
     }
     this.getSelectDataList();
+    this.getDetailsData()
   },
   methods: {
+    async getDetailsData(){
+      this.ruleForm = {
+        number: "",
+        record: "",
+        createTime: "",
+        circle: "",
+        marketId: "",
+        fallingSilkCocoonNumber: "",
+        workshopNumber: "",
+        bucketCocoonNumber: "",
+        groupNumber: "",
+        vehicleSpeed: "",
+        spec: "",
+        timeYi: "",
+        jieZhuang: "",
+        timeJia: "",
+        level: "",
+        groupReelingdiscount: "",
+        fallingSilkBucket: "",
+        fallingSilkBucketOne: "",
+        selectOne: false,
+        fallingSilkBucketTwo: "",
+        selectTwo: false,
+        fallingSilkBucketThree: "",
+        selectThree: false,
+        back: "",
+        oneBack: "",
+        twoBack: "",
+        threeBack: "",
+        theorySilkAmount: "",
+        total: "",
+        hourYield: "",
+      };
+        if (this.productRegisterNumber) {
+          await getYieldRegisterInfo({ number:this.productRegisterNumber }).then(
+            (response) => {
+              if (response.code === 200) {
+                let config = JSON.parse(
+                  JSON.stringify(response.data ? response.data : {})
+                );
+                this.ruleForm = config;
+                this.$set(this.ruleForm,'workshopNumber',this.ruleForm.workshopNumber+'')
+                this.tableDataItems=config.items
+                  ? config.items
+                  : [];
+                  this.tableDataCircles=config.circles
+                  ? config.circles
+                  : [];
+                this.getGroupNumber(true)
+              }
+            }
+          );
+        }
+    },
+    getTableEdit(){
+      if(this.tableData.length>0){
+        for(let i in this.tableData){
+          if(this.tableDataItems.length>0){
+            for(let j in this.tableDataItems){
+              if(this.tableData[i].carNumber==this.tableDataItems[j].carNumber){
+                this.tableData[i]={
+                  perList:this.tableData[i].perList,
+                  isBlue:this.tableData[i].isBlue,
+                  ...this.tableDataItems[j],
+                }
+              }
+            }
+          }
+          
+        }
+      }
+      this.yieldRegisterId=this.tableDataItems.length>0?this.tableDataItems[0].yieldRegisterId:""
+      if(this.tableDataCircles.length>0){
+        for(let i in this.tableData){
+          for(let j in this.tableDataCircles){
+            if(this.tableDataCircles[j].carNumber==this.tableData[i].carNumber){
+              let circle=this.tableDataCircles[j].circle
+              let pieceNumberList=this.tableDataCircles[j].pieceNumbers||[]
+              this.tableData[i]['allYield'+circle]=this.tableDataCircles[j]['allYield']
+              this.tableData[i]['oneYield'+circle]=this.tableDataCircles[j]['oneYield']
+              this.tableData[i]['reelingdiscount'+circle]=this.tableDataCircles[j]['reelingdiscount']
+              if(pieceNumberList.length>0){
+                for(let k in pieceNumberList){
+                  this.tableData[i]['pieceNumber'+circle+pieceNumberList[k].pieceNumber]=pieceNumberList[k].value
+                }
+              }
+            }
+          }
+        }
+      }
+      this.ruleForm.carNumber=this.tableData.length>0?this.tableData[0].carNumber:''
+    },
     // 琛ㄦ牸鐨勮绠楅棶棰�
     getOneYield(row){
       let string='';
@@ -760,13 +879,28 @@
       row['allYield'+val]=Number(string);
       return string;
     },
-    changeForm(form,val){
+    changeForm(form,val,data){
       if(val){
-        this.ruleForm.createTime=form.createTime
-        this.ruleForm.groupNumber=form.groupNumber
-        this.ruleForm.spec=form.spec
-        this.ruleForm.marketId=form.marketId
-        this.getGroupNumber()
+        if(Object.keys(data).length>0){
+          let config = JSON.parse(
+                  JSON.stringify(data ? data : {})
+                );
+                this.ruleForm = config;
+                this.$set(this.ruleForm,'workshopNumber',this.ruleForm.workshopNumber+'')
+                this.tableDataItems=config.items
+                  ? config.items
+                  : [];
+                  this.tableDataCircles=config.circles
+                  ? config.circles
+                  : [];
+          this.$router.push({
+            name:'addProductRegisterPage',
+            query:{
+                id:data.id,
+                number:data.number,
+              }
+          });
+        }
       }
     },
     cellStyle({row,columnIndex}){
@@ -794,17 +928,29 @@
             })
             this.$set(this.tableData[i],'isBlue',true)
             this.$set(this.tableData[i],'pieceNumber'+form.pieceNumber+form.pieces,form.netWeight)
+            this.tableShow=false;
+            this.$nextTick(()=>{
+              this.tableShow=true;
+              this.$forceUpdate();
+            })
             break;
           }
         }
       }
       if(form.netWeight){
         if(form.pieceNumber==3&&form.pieces==4){
-          this.$refs.addProductDialog.proForm.carNumber=this.tableData[Number(string)+1].carNumber
-          this.$set(this.tableData[Number(string)],'isBlue',false)
-          this.$set(this.tableData[Number(string+1)],'isBlue',true)
-          this.$refs.addProductDialog.proForm.pieceNumber=1
-          this.$refs.addProductDialog.proForm.pieces=1
+          if(Number(string)+1<=this.tableData.length){
+            this.$refs.addProductDialog.proForm.carNumber=this.tableData[Number(string)+1].carNumber
+            this.$refs.addProductDialog.proForm.pieceNumber=1
+            this.$refs.addProductDialog.proForm.pieces=1
+            this.$set(this.tableData[Number(string)+1],'isBlue',true)
+            this.$set(this.tableData[Number(string)],'isBlue',false)
+            this.tableShow=false;
+            this.$nextTick(()=>{
+              this.tableShow=true;
+              this.$forceUpdate();
+            })
+          }
         }else{
           if(form.pieces==4){
             this.$refs.addProductDialog.proForm.pieceNumber=Number(form.pieceNumber)+1
@@ -824,6 +970,7 @@
       }).then((res) => {
         if (res.code == 200) {
           this.nameList = res.data || [];
+          this.$set(this.ruleForm,'workshopNumber',this.ruleForm.workshopNumber+'')
         }
       });
       //瑙勬牸
@@ -843,24 +990,36 @@
         }
       });
     },
-    getGroupNumber(){
-      if(this.ruleForm.workshopId){
+    getGroupNumber(val,prop){
+      if(this.ruleForm.workshopNumber){
         //缁勫埆
-        getWorkshopManageGroup({number:this.ruleForm.workshopId}).then((res) => {
+        getWorkshopManageGroup({number:this.ruleForm.workshopNumber}).then((res) => {
            if (res.code == 200) {
-              this.workshopGroupList=[]
               let workshopGroupList = res.data || {};
+              this.workshopGroupList=[]
               if(Object.keys(workshopGroupList).length>0){
                 for(let i in workshopGroupList){
                   this.workshopGroupList.push(workshopGroupList[i])
                 }
+                if(prop&&prop!='groupNumber'){
+                  this.ruleForm.groupNumber=''
+                }
+                // 缂栬緫
+                if(val){
+                  setTimeout(()=>{
+                    this.$set(this.ruleForm,'groupNumber',this.ruleForm.groupNumber)
+                  },200)
+                }
               }
+            }else{
+              this.workshopGroupList=[]
+              this.ruleForm.groupNumber=''
             }
           });
           if(this.ruleForm.groupNumber&&this.ruleForm.marketId){
             let workshopName=''
             for(let i in this.nameList){
-              if( this.nameList[i].number==this.ruleForm.workshopId){
+              if( this.nameList[i].number==this.ruleForm.workshopNumber){
                 workshopName= this.nameList[i].name
                 break;
               }
@@ -890,7 +1049,15 @@
                 this.tableData[0].isBlue=true
                }
                this.ruleForm.carNumber=this.tableData.length>0?this.tableData[0].carNumber:''
-               
+              
+              //  缂栬緫
+               if(val){
+                this.getTableEdit()
+               }
+              }else{
+                this.tableData=[]
+                this.ruleForm.level=''
+                this.ruleForm.carNumber=''
               }
             });
           }
@@ -907,8 +1074,8 @@
     // 浠櫒杩炴帴寮圭獥
     deviceConnectClick() {
       if (this.isDeviceConnectStatus) {
-        this.$refs.addProductDialog.proForm.pieceNumber=1
-        this.$refs.addProductDialog.proForm.pieces=1
+        this.$refs.addProductDialog.proForm.pieceNumber= this.$refs.addProductDialog.proForm.pieceNumber||1
+        this.$refs.addProductDialog.proForm.pieces= this.$refs.addProductDialog.proForm.pieces||1
         this.$forceUpdate();
         this.$refs.addProductDialog.editDialogVisible = true;
       }
@@ -926,7 +1093,7 @@
         circle: "",
         marketId: "",
         fallingSilkCocoonNumber: "",
-        workshopId: "",
+        workshopNumber: "",
         bucketCocoonNumber: "",
         groupNumber: "",
         vehicleSpeed: "",
@@ -938,11 +1105,11 @@
         groupReelingdiscount: "",
         fallingSilkBucket: "",
         fallingSilkBucketOne: "",
-        isfallingSilkBucketOne: "",
+        selectOne: false,
         fallingSilkBucketTwo: "",
-        isfallingSilkBucketTwo: "",
+        selectTwo: false,
         fallingSilkBucketThree: "",
-        isfallingSilkBucketThree: "",
+        selectThree:false,
         back: "",
         oneBack: "",
         twoBack: "",
@@ -967,63 +1134,121 @@
           let tableData = JSON.parse(
             JSON.stringify(this.tableData)
           );
-          // row.pieceNumber11||row.pieceNumber12||row.pieceNumber13||row.pieceNumber14||row.pieceNumber21||row.pieceNumber22||row.pieceNumber23||row.pieceNumber24||row.pieceNumber31||row.pieceNumber32||row.pieceNumber33||row.pieceNumber34){
-     
+          form.bucketCocoonNumber=Number(form.bucketCocoonNumber)
+          form.circle=Number(form.circle)
+          form.fallingSilkBucketOne=Number(form.fallingSilkBucketOne)
+          form.fallingSilkBucketThree=Number(form.fallingSilkBucketThree)
+          form.fallingSilkBucketTwo=Number(form.fallingSilkBucketTwo)
+          form.fallingSilkCocoonNumber=Number(form.fallingSilkCocoonNumber)
+          form.groupNumber=Number(form.groupNumber)
+          form.hourYield=Number(form.hourYield)
+          form.marketId=Number(form.marketId)
+          form.record=Number(form.record)
+          form.theorySilkAmount=Number(form.theorySilkAmount)
+          form.total=Number(form.total)
+          form.vehicleSpeed=Number(form.vehicleSpeed)
           for(let i in tableData){
-            circles.push({
-              allYield:tableData[i].allYield1||'', //浜ч噺
+            let listItems1={
+              allYield:Number(tableData[i].allYield1)||0, //浜ч噺
               carNumber:tableData[i].carNumber,
               circle:1,//鍥炴暟
-              oneYield:tableData[i].oneYield1||'',//	鍙颁骇
-              value1:tableData[i].pieceNumber11||'',//鐗囨暟
-              value2:tableData[i].pieceNumber12||'',//鐗囨暟
-              value3:tableData[i].pieceNumber13||'',//鐗囨暟
-              value4:tableData[i].pieceNumber14||'',//鐗囨暟
+              oneYield:Number(tableData[i].oneYield1)||0,//	鍙颁骇
+              pieceNumbers:[
+                {
+                  pieceNumber:1,
+                  value:Number(tableData[i].pieceNumber11)||0
+                },
+                {
+                  pieceNumber:2,
+                  value:Number(tableData[i].pieceNumber12)||0
+                },
+                {
+                  pieceNumber:3,
+                  value:Number(tableData[i].pieceNumber13)||0
+                },
+                {
+                  pieceNumber:4,
+                  value:Number(tableData[i].pieceNumber14)||0
+                },
+              ],
               reelingdiscount:tableData[i].reelingdiscount1||'', //缂姌
-              // yieldRegisterId:''
-            })
-            circles.push({
-              allYield:tableData[i].allYield2||'', //浜ч噺
+            }
+            let listItems2={
+              allYield:Number(tableData[i].allYield2)||0, //浜ч噺
               carNumber:tableData[i].carNumber,
               circle:2,//鍥炴暟
-              oneYield:tableData[i].oneYield2||'',//	鍙颁骇
-              value1:tableData[i].pieceNumber21||'',//鐗囨暟
-              value2:tableData[i].pieceNumber22||'',//鐗囨暟
-              value3:tableData[i].pieceNumber23||'',//鐗囨暟
-              value4:tableData[i].pieceNumber24||'',//鐗囨暟
+              pieceNumbers:[
+                {
+                  pieceNumber:1,
+                  value:Number(tableData[i].pieceNumber21)||0
+                },
+                {
+                  pieceNumber:2,
+                  value:Number(tableData[i].pieceNumber22)||0
+                },
+                {
+                  pieceNumber:3,
+                  value:Number(tableData[i].pieceNumber23)||0
+                },
+                {
+                  pieceNumber:4,
+                  value:Number(tableData[i].pieceNumber24)||0
+                },
+              ],
+              oneYield:Number(tableData[i].oneYield2)||0,//	鍙颁骇
               reelingdiscount:tableData[i].reelingdiscount2||'', //缂姌
-              // yieldRegisterId:''
-            })
-            circles.push({
-              allYield:tableData[i].allYield3||'', //浜ч噺
+            }
+            let listItems3={
+              allYield:Number(tableData[i].allYield3)||0, //浜ч噺
               carNumber:tableData[i].carNumber,
               circle:3,//鍥炴暟
-              oneYield:tableData[i].oneYield3||'',//	鍙颁骇
-              value1:tableData[i].pieceNumber31||'',//鐗囨暟
-              value2:tableData[i].pieceNumber32||'',//鐗囨暟
-              value3:tableData[i].pieceNumber33||'',//鐗囨暟
-              value4:tableData[i].pieceNumber34||'',//鐗囨暟
+              oneYield:Number(tableData[i].oneYield3)||0,//	鍙颁骇
+              pieceNumbers:[
+                {
+                  pieceNumber:1,
+                  value:Number(tableData[i].pieceNumber31)||0
+                },
+                {
+                  pieceNumber:2,
+                  value:Number(tableData[i].pieceNumber32)||0
+                },
+                {
+                  pieceNumber:3,
+                  value:Number(tableData[i].pieceNumber33)||0
+                },
+                {
+                  pieceNumber:4,
+                  value:Number(tableData[i].pieceNumber34)||0
+                },
+              ],
               reelingdiscount:tableData[i].reelingdiscount3||'', //缂姌
               // yieldRegisterId:''
-            })
-            items.push({
-              hourYield:tableData[i].hourYield||'',
-              carNumber:tableData[i].carNumber||'',
-              oneYield:tableData[i].oneYield||'',
-              peopleYield:tableData[i].peopleYield||'',
+            }
+            let listItems4={
+              hourYield:Number(tableData[i].hourYield)||0,
+              carNumber:tableData[i].carNumber,
+              oneYield:Number(tableData[i].oneYield)||0,
+              peopleYield:Number(tableData[i].peopleYield)||0,
               personReelingdiscount:tableData[i].personReelingdiscount||'',
               // yieldRegisterId:''
-            })
+            }
+            if(this.yieldRegisterId){
+              listItems1.yieldRegisterId=this.yieldRegisterId
+              listItems2.yieldRegisterId=this.yieldRegisterId
+              listItems3.yieldRegisterId=this.yieldRegisterId
+              listItems4.yieldRegisterId=this.yieldRegisterId
+            }
+            circles.push(listItems1)
+            circles.push(listItems2)
+            circles.push(listItems3)
+            items.push(listItems4)
           }
           let params = {
+            ...form,
             circles: circles,
             items:items,
-            ...form,
           };
-          // 缂栬緫
-          if (this.productRegisterId) {
-            params.id = this.ruleForm.id ? this.ruleForm.id : Number(this.productRegisterId);
-          }
+          console.log(params,'===params111')
           saveYieldRegister(params)
             .then((res) => {
               if (res.code == 200) {
@@ -1033,7 +1258,7 @@
                   type: "success",
                 });
                 this.$router.push({
-                  path: "/productManage/silkRegisterForm",
+                  path: "/productManage/productRegisterForm",
                 });
               }
               this.isAddloading = false;
@@ -1095,7 +1320,8 @@
     .select-width {
       width: calc(100%  - 20px);
       .select-width-input{
-        width:calc(100% - 200px);float:left;
+        width:150px;
+        float:left;
       }
     }
     .body-top {
@@ -1166,7 +1392,4 @@
 .c-n {
   cursor: no-drop;
 }
-
-::v-deep {
-}
-</style>
+</style>
\ No newline at end of file

--
Gitblit v1.8.0