From 3f24fbc89959ec4aa9f3308e1af453e43d504ac5 Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期三, 10 七月 2024 20:04:16 +0800
Subject: [PATCH] feat:完成车间管理部分的重构

---
 src/views/systemSetting/silkStandardSetting/index.vue |  136 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 106 insertions(+), 30 deletions(-)

diff --git a/src/views/systemSetting/silkStandardSetting/index.vue b/src/views/systemSetting/silkStandardSetting/index.vue
index f2ac1f7..6ff2501 100644
--- a/src/views/systemSetting/silkStandardSetting/index.vue
+++ b/src/views/systemSetting/silkStandardSetting/index.vue
@@ -10,19 +10,19 @@
       </CommonSearch>
     </div>
     <div class="body-card">
-      <div class="edit-save">
-        <div class="edit-save-icon" @click="editSaveClick">
+      <div class="edit-save" @click="editSaveClick">
+        <div class="edit-save-icon">
           <i :class="isEdit ? 'el-icon-unlock' : 'el-icon-lock'"></i>
         </div>
         <div class="edit-sace-label">{{ isEdit ? "閿佸畾淇濆瓨" : "鐣岄潰璁捐" }}</div>
       </div>
       <div>
-        111锛歿{ this.silkTableList.tableData }}
         <SilkTableList
           :detail-enter="isEdit"
           :silk-table-list="silkTableList"
           @inputContent="inputContent"
           @addProjectClick="addBtnClick"
+          :isEdit='isEdit'
           @clearupProject="clearupProject"
           @deleteClick="clearupProject"
           @addColumnClick="addColumnClick"
@@ -56,7 +56,7 @@
           prop: "checkItem",
           projectName: true,
           isCallMethod: true,
-          getCallMethod: this.getCheckItemName
+          getCallMethod: this.getCheckItemName,
         },
         { label: "寮�濮嬬氦搴�", prop: "startFineness", inputFloat: true },
         { label: "缁撴潫绾ゅ害", prop: "endFineness", inputFloat: true },
@@ -65,7 +65,6 @@
         { label: "鐗归噹", prop: "rankC", inputFloat: true }
       ],
       tableColumn: [],
-      columnNum: 0,
       dataObj: {
         checkItem: 1,
         startFineness: 0,
@@ -92,7 +91,21 @@
         if (res.code === 200) {
           if (res.data.length > 0) {
             this.tableData = []
-            this.tableColumn = this.defaultColumn
+            this.tableColumn = [
+              {
+                label: "妫�鏌ラ」鐩悕绉�",
+                prop: "checkItem",
+                projectName: true,
+                isCallMethod: true,
+                getCallMethod: this.getCheckItemName,
+              },
+              { label: "寮�濮嬬氦搴�", prop: "startFineness", inputFloat: true },
+              { label: "缁撴潫绾ゅ害", prop: "endFineness", inputFloat: true },
+              { label: "閲庣氦", prop: "rankA", inputFloat: true },
+              { label: "澶ч噹", prop: "rankB", inputFloat: true },
+              { label: "鐗归噹", prop: "rankC", inputFloat: true }
+            ]
+            // this.tableColumn=this.defaultColumn
             this.columnDataProcess(res.data[0].dynamicsRanks)
             this.rankObj = {}
             this.allDataProcess(res.data)
@@ -127,11 +140,15 @@
           inputFloat: true
         }
       })
-      this.columnNum = list.length + 1
+      let currentIndex=0
+      this.tableColumn.map((item, index) => {
+        if (item.prop == 'rankA') {
+          currentIndex = index
+        }
+      })
       for (let j = 0; j < list.length; j++) {
-        this.tableColumn.splice(2, 0, list[j])
+        this.tableColumn.splice(currentIndex+j, 0, list[j])
       }
-      console.log(this.tableColumn)
       this.silkTableList.tableColumn = this.tableColumn
     },
     setTableForm() {
@@ -139,14 +156,15 @@
         tableData: this.tableData,
         isReturn: false,
         tableColumn: [
-          { label: "妫�鏌ラ」鐩悕绉�", prop: "projectName", projectName: true },
-          { label: "寮�濮嬬氦搴�", prop: "start", inputFloat: true },
-          { label: "缁撴潫绾ゅ害", prop: "end", inputFloat: true },
-          { label: "閲庣氦", prop: "price1", inputFloat: true },
-          { label: "澶ч噹", prop: "price2", inputFloat: true },
-          { label: "鐗归噹", prop: "price3", inputFloat: true }
+          { label: "妫�鏌ラ」鐩悕绉�", prop: "checkItem", projectName: true },
+          { label: "寮�濮嬬氦搴�", prop: "startFineness", inputFloat: true },
+          { label: "缁撴潫绾ゅ害", prop: "endFineness", inputFloat: true },
+          { label: "閲庣氦", prop: "rankA", inputFloat: true },
+          { label: "澶ч噹", prop: "rankB", inputFloat: true },
+          { label: "鐗归噹", prop: "rankC", inputFloat: true }
         ]
       }
+      this.tableColumn=this.silkTableList.tableColumn
     },
     // 鎼滅储
     onFilterSearch(searchText) {
@@ -154,8 +172,10 @@
     },
     // 鏂板
     addBtnClick() {
+      console.log(this.silkTableList.tableData,'===1')
+      console.log(this.tableData,'===2')
       if(this.isEdit){
-        this.tableData.push({
+        this.silkTableList.tableData.push({
           projectName: "",
           start: 0,
           end: 0,
@@ -163,6 +183,7 @@
           price2: 0,
           price3: 0
         })
+        this.tableData=this.silkTableList.tableData
       }else{
         this.$message.error('璇峰厛瑙i攣鍐嶆柊澧烇紒')
       }
@@ -199,18 +220,45 @@
     },
     // 鍒犻櫎
     clearupProject(data, index) {
-      console.log(data)
-      this.tableData.splice(index, 1)
+        this.$confirm('纭畾瑕佸垹闄ゅ悧, 鏄惁缁х画?', '鎻愮ず', {
+            confirmButtonText: '纭畾',
+            cancelButtonText: '鍙栨秷',
+            type: 'warning'
+        }).then(() => {
+            this.tableData.splice(index, 1)
+            this.silkTableList.tableData=this.tableData
+        }).catch(() => {
+        });
     },
     // 淇濆瓨缂栬緫鎸夐挳鍒囨崲
     editSaveClick() {
+      let isOk=false;
+      this.silkTableList.tableColumn.map((item)=>{
+        if(!item.label||!item.prop){
+          isOk=true
+        }
+      })
+      if(isOk){
+        this.$message.error('璇峰厛濉啓瀹屾垚琛ㄥご锛�')
+        return true;
+      }
       this.isEdit = !this.isEdit
+      this.silkTableList.tableData.map((item)=>{
+        item.addColumn=false;
+      })
+      
+      let tableData=JSON.parse(
+                  JSON.stringify(this.silkTableList.tableData)
+                );
+        // if(tableData.length==0&&!this.isEdit){
+        //   this.$message.error('璇峰厛鏂板鍐嶄繚瀛�!')
+        //   return true;
+        // }
       if (!this.isEdit) {
-        let params = this.saveParam()
+        let params = this.saveParam(tableData)
         saveRankStandard({
           rankStandard: params
         }).then((res) => {
-          console.log(res)
           if (res.code == 200) {
             this.$message.success("淇濆瓨鎴愬姛")
             this.getData()
@@ -218,8 +266,18 @@
         })
       }
     },
-    saveParam() {
-      let saveList = this.tableData.map((item) => {
+    saveParam(tableData) {
+        for(let i in tableData){
+          tableData[i].dynamicsRanks=[]
+          for(let j in this.columnInputList){
+            tableData[i].dynamicsRanks.push({
+              rankName:this.columnInputList[j].rankName,
+              rankProp:this.columnInputList[j].rankProp,
+              rankValue:tableData[i][this.columnInputList[j].rankProp]
+           })
+          }
+        }
+      let saveList = tableData.map((item) => {
         return {
           checkItem: item.checkItem,
           dynamicsRanks: item.dynamicsRanks,
@@ -235,15 +293,25 @@
     },
     // 娣诲姞鍒�
     addColumnClick() {
-      let propStr = "prop" + this.columnNum
-      this.tableColumn.splice(2, 0, { label: "", prop: propStr, inputFloat: true, addColumn: true })
+      let currentIndex=0
+      this.tableColumn.map((item, index) => {
+        if (item.prop == 'rankA') {
+          currentIndex = index
+        }
+      })
+      let num=0
+      if(this.tableColumn.length>0){
+        if(this.tableColumn[Number(currentIndex)-1].prop.indexOf('prop')!=-1){
+          num=this.tableColumn[Number(currentIndex)-1].prop.slice(4)
+        }
+      }
+      let propStr = "prop" + (Number(num)+1)
+      
+      this.tableColumn.splice(currentIndex, 0, { label: "", prop: propStr, inputFloat: true, addColumn: true })
       this.$set(this.dataObj, propStr, 0)
       this.$set(this.rankObj, propStr, 0)
-      console.log(this.columnInputList)
       this.columnInputList.push({ rankProp: propStr, rankName: "", rankValue: 0 })
-      console.log(this.tableColumn, this.dataObj, "32323", this.columnInputList)
       this.silkTableList.tableColumn = this.tableColumn
-      this.columnNum += 1
       let allList = this.tableData.map((item) => {
         return {
           ...item,
@@ -252,6 +320,7 @@
       })
       this.tableData = allList
       this.silkTableList.tableData = allList
+      this.$forceUpdate()
     },
     // 鍒犻櫎鍒�
     clearupColumn(prop) {
@@ -261,19 +330,24 @@
           currentIndex = index
         }
       })
+      let columnInputIndex=0
+      this.columnInputList.forEach((item,index) => {
+        if (item.rankProp == prop) {
+          columnInputIndex = index
+        }
+      })
+      this.columnInputList.splice(columnInputIndex,1)
       this.tableColumn.splice(currentIndex, 1)
       this.silkTableList.tableColumn = this.tableColumn
       this.$delete(this.dataObj, prop)
     },
     // 鍒楄〃澶磋緭鍏ュ洖璋�
     addColumnInputChange(val, prop) {
-      console.log(val, prop, this.columnInputList)
       this.columnInputList.forEach((item) => {
         if (item.rankProp == prop) {
           item.rankName = val
         }
       })
-      console.log(this.columnInputList, "888")
     },
     getCheckItemName(val) {
       if (val) {
@@ -310,13 +384,15 @@
     height: calc(100% - 180px);
     border-radius: 4px;
     .edit-save {
+      width:100px;
+      padding:0  10px;
       display: flex;
       align-items: center;
       margin-bottom: 10px;
+      cursor: pointer;
       .edit-save-icon {
         font-size: 24px;
         color: #5582f3;
-        cursor: pointer;
       }
       .edit-sace-label {
         margin-left: 10px;

--
Gitblit v1.8.0