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 |  148 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 122 insertions(+), 26 deletions(-)

diff --git a/src/views/systemSetting/silkStandardSetting/index.vue b/src/views/systemSetting/silkStandardSetting/index.vue
index f5a7c22..6ff2501 100644
--- a/src/views/systemSetting/silkStandardSetting/index.vue
+++ b/src/views/systemSetting/silkStandardSetting/index.vue
@@ -3,15 +3,15 @@
     <div class="filter-card">
       <CommonSearch :show-add="false" :amount-view="false" placeholder="璇疯緭鍏ュ叧閿瘝" @searchClick="onFilterSearch">
         <template slot="leftButton">
-          <el-button size="small" type="primary" @click="addBtnClick" :disabled="!isEdit">鏂板</el-button>
+          <el-button size="small" type="primary" @click="addBtnClick">鏂板</el-button>
           <el-button size="small" type="primary" @click="refreshClick">鍒锋柊</el-button>
           <el-button size="small" type="primary" @click="printClick" disabled>鎵撳嵃</el-button>
         </template>
       </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>
@@ -22,6 +22,7 @@
           :silk-table-list="silkTableList"
           @inputContent="inputContent"
           @addProjectClick="addBtnClick"
+          :isEdit='isEdit'
           @clearupProject="clearupProject"
           @deleteClick="clearupProject"
           @addColumnClick="addColumnClick"
@@ -55,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 },
@@ -64,7 +65,6 @@
         { label: "鐗归噹", prop: "rankC", inputFloat: true }
       ],
       tableColumn: [],
-      columnNum: 0,
       dataObj: {
         checkItem: 1,
         startFineness: 0,
@@ -76,7 +76,7 @@
       projectOptions: getDataByType("projectOptions"),
       rankObj: {},
       columnInputList: [],
-      dynamicsRanks: []
+      dynamicsRanks: [],
     }
   },
   created() {
@@ -91,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)
@@ -126,19 +140,31 @@
           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() {
       this.silkTableList = {
         tableData: this.tableData,
         isReturn: false,
-        tableColumn: this.tableColumn
+        tableColumn: [
+          { 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) {
@@ -146,7 +172,22 @@
     },
     // 鏂板
     addBtnClick() {
-      this.tableData.push(this.dataObj)
+      console.log(this.silkTableList.tableData,'===1')
+      console.log(this.tableData,'===2')
+      if(this.isEdit){
+        this.silkTableList.tableData.push({
+          projectName: "",
+          start: 0,
+          end: 0,
+          price1: 0,
+          price2: 0,
+          price3: 0
+        })
+        this.tableData=this.silkTableList.tableData
+      }else{
+        this.$message.error('璇峰厛瑙i攣鍐嶆柊澧烇紒')
+      }
+      
     },
     // 鍒锋柊
     refreshClick() {
@@ -179,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()
@@ -198,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,
@@ -215,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,
@@ -232,6 +320,7 @@
       })
       this.tableData = allList
       this.silkTableList.tableData = allList
+      this.$forceUpdate()
     },
     // 鍒犻櫎鍒�
     clearupColumn(prop) {
@@ -241,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) {
@@ -290,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