From 5e9b4920000a4d02eef3b207218e3ce8d68935be Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期四, 11 七月 2024 17:47:05 +0800
Subject: [PATCH] feat:纤度登记表重构

---
 src/views/productManage/silkRegisterForm/addPage.vue                  |   65 +++++++++++++++++++++++---------
 src/api/productManage/silkRegisterForm.js                             |    9 ++++
 src/views/productManage/silkRegisterForm/components/FormTableView.vue |   21 +++++++---
 3 files changed, 71 insertions(+), 24 deletions(-)

diff --git a/src/api/productManage/silkRegisterForm.js b/src/api/productManage/silkRegisterForm.js
index 093d698..c228e27 100644
--- a/src/api/productManage/silkRegisterForm.js
+++ b/src/api/productManage/silkRegisterForm.js
@@ -71,4 +71,13 @@
     method: "post",
     data
   })
+}
+// 鑷姩鐢熸垚缂栫爜
+//
+export function getAutoCode(params) {
+    return request({
+        url: "/api-jl/v1/system/getAutoCode",
+        method: "get",
+       params
+    })
 }
\ No newline at end of file
diff --git a/src/views/productManage/silkRegisterForm/addPage.vue b/src/views/productManage/silkRegisterForm/addPage.vue
index 0260ee3..e8967a6 100644
--- a/src/views/productManage/silkRegisterForm/addPage.vue
+++ b/src/views/productManage/silkRegisterForm/addPage.vue
@@ -36,7 +36,6 @@
           </CommonSearch>
         </div>
       </div>
-
       <div class="body">
         <div class="body-l">
           <el-form
@@ -430,7 +429,8 @@
   saveRegister,
   getDictList,
   getRegisterDetails,
-  getCarNumber
+  getCarNumber,
+  getAutoCode
 } from "@/api/productManage/silkRegisterForm.js";
 import {
   getCheckDetails,
@@ -440,8 +440,6 @@
 //import CommonFormTableView from "@/components/makepager/CommonFormTableView";
 import { getWorkshopManageGroup } from "@/api/productManage/productRegisterForm.js";
 import FormTableView from '@/views/productManage/silkRegisterForm/components/FormTableView.vue';
-import moment from 'moment';
-let  idValue=moment(new Date()).format('YYYYMMDDHHmmss');
 export default {
   name: "silkRegisterAddPage",
   props: {},
@@ -462,7 +460,7 @@
       deliveryTypeList: [],
       specList: [], //瑙勬牸
       form: {
-          number:idValue
+          number:''
       },
       rules: {
         number: [
@@ -531,7 +529,7 @@
             productId: 1,
             position: null,
             fineness: null,
-            quantity: null,
+            quantity: 0,
             sum: null,
           },
         ],
@@ -541,18 +539,20 @@
             prop: "position",
             inputNumber: true,
             isRequird: true,
+              noOperate:true
           }, // 瀹㈡埛鍚嶇О
           {
             label: "绾ゅ害鍊�",
             prop: "fineness",
             inputNumber: true,
-            isRequird: true,
+            isRequird: true
           }, // 閿�鍞礋璐d汉
           {
             label: "鏁伴噺",
             prop: "quantity",
             inputNumber: true,
             isRequird: true,
+              noOperate:true
           }, // 閲嶈绾у埆
           {
             label: "绾ゅ害鍚堣",
@@ -587,10 +587,18 @@
     this.getDetailsData();
   },
   methods: {
+    async getAutoCode(){
+        const {code,data}=await getAutoCode({type:2});
+        if(code===200){
+            return data.id;
+        }
+        return '';
+    },
     async getDetailsData(id) {
+      const code= await this.getAutoCode()
       if (this.activeName == "first") {
         this.form = {
-          number: idValue,
+          number: code,
           finishDate:this.$moment(new Date()).format('YYYY-MM-DD'),
           market: "",
           workshopObj: "",
@@ -630,7 +638,7 @@
         }
       } else {
         this.form = {
-          number: idValue,
+          number: code,
           workshopObj: "",
           workshopGroup: "",
           circle: "",
@@ -798,7 +806,13 @@
                 this.tableData=[]
                 const {startCarNumber,endCarNumber,startCarHalf,endCarHalf}=res.data;
                 for(let i=startCarNumber;i<=endCarNumber;i++){
-                   if(i===startCarNumber){
+                    if((i===startCarNumber&&startCarHalf===2)||(i===endCarNumber&&endCarHalf===1)){
+                        this.tableData.push({position:i,productId:Number(i)*2-1,quantity:1});
+                    }else{
+                        this.tableData.push({position:i,productId:Number(i)*2-1,quantity:1});
+                        this.tableData.push({position:i,productId:Number(i)*2,quantity:1});
+                    }
+                   /*if(i===startCarNumber){
                       if(startCarHalf===1){//宸﹀崐杞�
                           this.tableData.push({position:i,productId:Number(i)*2-1});
                           this.tableData.push({position:i,productId:Number(i)*2});
@@ -815,7 +829,7 @@
                    }else{
                        this.tableData.push({position:i,productId:Number(i)*2-1});
                        this.tableData.push({position:i,productId:Number(i)*2});
-                   }
+                   }*/
                 }
                 /*let data = res.data?JSON.parse(JSON.stringify(res.data)) : [];
                if(Object.keys(data).length>0){
@@ -890,10 +904,11 @@
     },
     // 绾ゅ害鐧昏琛�
     // 鏀惧純
-    cancelClickOne() {
+   async cancelClickOne() {
+      const code=await this.getAutoCode()
       if (this.activeName == "first") {
         this.form = {
-          number: idValue,
+          number: code,
           finishDate:this.$moment(new Date()).format('YYYY-MM-DD'),
           market: "",
           workshopObj: "",
@@ -911,7 +926,7 @@
             productId: 1,
             position: "",
             fineness: 0,
-            quantity: 0,
+            quantity: 1,
             sum: "",
           },
         ];
@@ -951,6 +966,22 @@
               delete finenessList[i].productId;
             }
             this.isAddloading = true;
+            const mapFineness=new Map();
+            finenessList.forEach(item=>{
+               if(mapFineness.has(item.position)){
+                  const value=mapFineness.get(item.position);
+                  if(value[0].fineness===item.fineness){
+                      value[0].sum+=item.sum;
+                      value[0].quantity+=item.quantity;
+                  }else{
+                      value.push(item);
+                  }
+                  mapFineness.set(item.position,value);
+               } else{
+                   mapFineness.set(item.position,[item]);
+               }
+            });
+            finenessList=[...mapFineness.values()].flat(Infinity);
             let params = {
               finenessList: finenessList,
               ...form,
@@ -969,7 +1000,6 @@
                     message: "淇濆瓨鎴愬姛锛�",
                     type: "success",
                   });
-
                   this.activeName = "second"
                   // this.$router.push({
                   //   path: "/productManage/silkRegisterForm",
@@ -984,7 +1014,6 @@
               });
           } else {
             let paramsTwo = {
-              // ...form,
               info:form,
               items:this.tableTwoList.tableInfomation,
             };
@@ -1005,8 +1034,7 @@
                   this.getDetailsData();
                 }
                 this.isAddloading = false;
-              })
-              .catch(() => {
+              }).catch(() => {
                 setTimeout(() => {
                   this.isAddloading = false;
                 }, 3000);
@@ -1109,6 +1137,7 @@
       }
 
       .list-view {
+        margin-top: 20px;
         height: calc(100% - 180px);
         min-height: 200px;
         overflow-y: auto;
diff --git a/src/views/productManage/silkRegisterForm/components/FormTableView.vue b/src/views/productManage/silkRegisterForm/components/FormTableView.vue
index 3ea3d3b..67ec2f8 100644
--- a/src/views/productManage/silkRegisterForm/components/FormTableView.vue
+++ b/src/views/productManage/silkRegisterForm/components/FormTableView.vue
@@ -120,7 +120,7 @@
                   placeholder=""
                   :min="0"
                   :controls="false"
-                  :disabled="!isOperate"
+                  :disabled="!isOperate||item.noOperate"
                   size="mini"
                   style="width: 100%; margin-right: 5px"
                   @change="
@@ -230,8 +230,9 @@
                 placeholder=""
                 :min="0"
                 :controls="false"
-                :disabled="!isOperate"
+                :disabled="!isOperate||item.noOperate"
                 size="mini"
+                @keydown.enter.native="moveToNextField($event,scope.$index)"
                 style="width: 100%; margin-right: 5px"
                 @change="
                   (val) => {
@@ -256,8 +257,7 @@
                   @change="
                     (val) => {
                       commonInputChange(val, item.prop, scope.row, scope)
-                    }
-                  "
+                    }"
                 ></el-input>
               </el-form-item>
             <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span>
@@ -265,7 +265,6 @@
         </el-table-column>
         <el-table-column label="鎿嶄綔" width="70" v-if="!detailEnter" align="center" fixed='right'>
           <template slot-scope="scope">
-            
             <el-button type="text" size="small" :disabled="!isOperate" @click="deleteClick(scope)">鍒犻櫎</el-button>
           </template>
         </el-table-column>
@@ -278,7 +277,7 @@
         </el-checkbox-group>
       </div>
     </el-form>
-    <el-button style="margin: 10px"  size="small" type="primary"  @click="add">鏂板</el-button>
+   <!-- <el-button style="margin: 10px"  size="small" type="primary"  @click="add">鏂板</el-button>-->
     <div v-if="!detailEnter" style="margin: 10px" >
       <el-button size="small" type="primary" :disabled="!isOperate" @click="add">鏂板</el-button>
       <!-- <el-button size="small" type="primary" disabled>瀵煎叆鏄庣粏</el-button> -->
@@ -419,6 +418,16 @@
   },
   computed: {},
   methods: {
+    moveToNextField(event,index){
+        let inputs = document.querySelectorAll('.page-view input');
+        let enabledInputs = Array.prototype.filter.call(inputs, function(input) {
+            return !input.disabled;
+        });
+        if(index<enabledInputs.length-1){
+            event.target.blur();
+            enabledInputs[index+1].focus();
+        }
+    },
     getMergeNumber(){
       let pattern=new RegExp("[0-9]+");
         if(pattern.test(this.showSummary.mergeNumber)){

--
Gitblit v1.8.0