From caeb71b06d19a8ffd854c19e5e4b58f7180cdce8 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 29 四月 2024 18:55:14 +0800
Subject: [PATCH] 纤度检验表的保存接口参数修改

---
 src/views/employeeSalary/salaryPlan/components/addDialog.vue |  256 +++++++++++++++++++++++++++++++++++----------------
 1 files changed, 176 insertions(+), 80 deletions(-)

diff --git a/src/views/employeeSalary/salaryPlan/components/addDialog.vue b/src/views/employeeSalary/salaryPlan/components/addDialog.vue
index fcf5242..6fd49ea 100644
--- a/src/views/employeeSalary/salaryPlan/components/addDialog.vue
+++ b/src/views/employeeSalary/salaryPlan/components/addDialog.vue
@@ -35,9 +35,9 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item prop="salaryType" label="钖祫绫诲瀷">
+        <el-form-item prop="salaryTypeId" label="钖祫绫诲瀷">
           <el-select
-            v-model="form.salaryType"
+            v-model="form.salaryTypeId"
             style="width: calc(100% - 40px)"
             placeholder="璇烽�夋嫨杞﹂棿"
           >
@@ -45,7 +45,7 @@
               v-for="item in unitList"
               :key="item.id"
               :label="item.name"
-              :value="item.name"
+              :value="item.id"
             >
             </el-option>
           </el-select>
@@ -65,9 +65,22 @@
           >
           </el-input> -->
           <div class="formula-input" v-html="form.salaryFormulaHtml"></div>
-          <el-button class="formula-btn" type="text" @click="checkFormula()"
-            >妫�鏌ュ叕寮�</el-button
-          >
+          <div class="formula-btn-right">
+            <el-button
+              class="formula-btn-t"
+              type="text"
+              :disabled="form.salaryFormulaHtml.length > 0 ? false : true"
+              @click="deleteFormula()"
+              >娓呴櫎</el-button
+            >
+            <el-button
+              class="formula-btn"
+              :disabled="form.salaryFormulaHtml.length > 0 ? false : true"
+              type="text"
+              @click="checkFormula()"
+              >妫�鏌ュ叕寮�</el-button
+            >
+          </div>
         </el-form-item>
         <div class="formula-error">
           <span v-if="form.error == 1" class="color_blue">
@@ -129,7 +142,7 @@
                     v-if="item.type == 2"
                     class="el-icon-setting margin_left_5px cursor_pointer"
                     style="font-size: 18px; color: gray"
-                    @click="handleConstSetShow(2)"
+                    @click="handleConstSetShow(10)"
                   ></i>
                 </div>
               </div>
@@ -156,7 +169,7 @@
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button type="cancel" @click="cancelMethod()">鍙栨秷</el-button>
-        <el-button type="primary" @click="submitForm('form')">纭� 瀹�</el-button>
+        <el-button type="primary" :loading="isAddloading" @click="submitForm('form')">纭� 瀹�</el-button>
       </span>
     </el-dialog>
     <BomDialog
@@ -168,15 +181,15 @@
     <SilkSetDialog
       ref="silkSetDialog"
       @confirmValueSave="confirmValueSave"
-      :editRow="form"
+      :editRow="{wildSilkList:wildSilkList}"
       title="閰嶇疆"
     ></SilkSetDialog>
     <ConstantSetDialog
       ref="constantSetDialog"
       @confirmValueSave="confirmValueSave"
       :constType="constType"
-      :editRow="form"
-      :title="constType == 2 ? '閰嶇疆' : '杈撳叆'"
+      :editRow="constType == 10?{absenteeism:absenteeism}:form"
+      :title="constType == 10 ? '閰嶇疆' : '杈撳叆'"
     ></ConstantSetDialog>
   </div>
 </template>
@@ -208,13 +221,15 @@
       form: {
         name: "",
         workTypes: [],
-        salaryType: "",
+        salaryTypeId: null,
         salaryFormula: "",
         salaryFormulaHtml: "",
         error: "",
-        purchaseTypeList: [1],
-        cycle: '1',
       },
+      // 婊″嫟濂栬缃�
+      absenteeism:{value:1,id:null},
+      // 璁剧疆閲庣氦鐨勭敓涓濇爣鍑�
+      wildSilkList: {value:'閲庣氦',id:null},
       activeName: 1,
       formulaName: [
         {
@@ -310,7 +325,7 @@
             trigger: ["blur", "change"],
           },
         ],
-        salaryType: [
+        salaryTypeId: [
           { required: true, message: "璇烽�夋嫨", trigger: ["blur", "change"] },
         ],
         salaryFormulaHtml: [
@@ -319,11 +334,14 @@
       },
       unitList: [],
       constType: "",
+      isAddloading: false,
     };
   },
   computed: {},
   created() {
     this.handleGetBomKindDictList();
+    this.handleGetBomKindDictList(9);
+    this.handleGetBomKindDictList(10);
     this.getSelectDataList();
   },
   mounted() {},
@@ -346,39 +364,45 @@
         this.form = {
           name: "",
           workTypes: [],
-          salaryType: "",
+          salaryTypeId: null,
           salaryFormula: "",
           salaryFormulaHtml: "",
           error: "",
-          purchaseTypeList: [1],
-          cycle: '1',
         };
         this.$nextTick(() => {
           this.$refs["form"].resetFields();
           if (this.editRow.id) {
             this.form = JSON.parse(JSON.stringify(this.editRow));
-            let salaryFormula=this.form.salaryFormula?this.form.salaryFormula:''
-            this.form.salaryFormulaHtml=''
-            this.form.salaryFormula=''
-            this.form.purchaseTypeList =[1]
-            let arr=salaryFormula?salaryFormula.split('锛�'):[]
-            let formulaNameArr=this.formulaName.concat(this.formulaNameTwo).concat(this.formulaSymbol)
-            if(arr.length>0){
-              for(let i in arr){
-                for(let j in formulaNameArr){
-                  let reg2 =
-                    /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
-                  if (reg2.test(arr[i])) {
-                    this.formulaClick({ name: "甯搁噺鏁板瓧", type: 3, width: 2, },arr[i]);
-                  }else if(formulaNameArr[j].name==arr[i]){
-                    this.formulaClick(formulaNameArr[j])
-                  }
-                }
-              }
-            }
-           
+            let salaryFormula = this.form.salaryFormula
+              ? this.form.salaryFormula
+              : "";
+            this.form.salaryFormulaHtml = "";
+            this.form.salaryFormula = "";
+            let arr = salaryFormula ? salaryFormula.split(",") : [];
+            this.getSalaryFormulaHtml(arr);
           }
         });
+      }
+    },
+    getSalaryFormulaHtml(arr) {
+      let formulaNameArr = this.formulaName
+        .concat(this.formulaNameTwo)
+        .concat(this.formulaSymbol);
+      if (arr.length > 0) {
+        for (let i in arr) {
+          for (let j in formulaNameArr) {
+            let reg2 =
+              /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
+            if (reg2.test(arr[i])) {
+              this.formulaClick(
+                { name: "甯搁噺鏁板瓧", type: 3, width: 2 },
+                arr[i]
+              );
+            } else if (formulaNameArr[j].name == arr[i]) {
+              this.formulaClick(formulaNameArr[j]);
+            }
+          }
+        }
       }
     },
     // 鐐瑰嚮鐢熶骇鏁版嵁鍜岃�冨嫟鍙婅ˉ璐存暟鎹� 璧嬪�艰璐瑰叕寮忓畾涔�
@@ -396,17 +420,28 @@
           name +
           "</span>";
       }
-      this.form.salaryFormula = this.form.salaryFormula + name + "锛�";
+      this.form.salaryFormula = this.form.salaryFormula + name + ",";
       this.form.salaryFormulaHtml = this.form.salaryFormulaHtml + string;
       this.$forceUpdate();
+    },
+    deleteFormula() {
+      let salaryFormula = this.form.salaryFormula
+              ? this.form.salaryFormula
+              : "";
+      let arr = salaryFormula.split(",");
+      arr = arr.splice(0, arr.length - 1);
+      arr = arr.splice(0, arr.length - 1);
+      this.form.salaryFormulaHtml = "";
+      this.form.salaryFormula = "";
+      this.getSalaryFormulaHtml(arr);
     },
     checkFormula() {
       if (this.form.salaryFormula) {
         let string = true;
-        let isString = '+-*/';
-        let arr = this.form.salaryFormula.split("锛�");
-        arr=arr.splice(0,arr.length-1)
-        for (let i=0;i<arr.length;i++) {
+        let isString = "+-*/";
+        let arr = this.form.salaryFormula.split(",");
+        arr = arr.splice(0, arr.length - 1);
+        for (let i = 0; i < arr.length; i++) {
           if (arr[i] != "") {
             // 闄ゆ暟涓嶈兘涓�0, 绗﹀彿閭h竟闇�瑕佹湁鍊�
             if (isString.indexOf(arr[i]) != -1 || arr[i] == "(") {
@@ -431,7 +466,7 @@
               }
             } else if (arr[i] == ")") {
               if (i < arr.length - 1) {
-                if (isString.indexOf(arr[i+1]) == -1) {
+                if (isString.indexOf(arr[i + 1]) == -1) {
                   string = false;
                   break;
                 }
@@ -454,17 +489,29 @@
         }
 
         if (!string) {
-          this.$set(this.form,'error',2)
+          this.$set(this.form, "error", 2);
         } else {
-          this.$set(this.form,'error',1)
+          this.$set(this.form, "error", 1);
         }
       }
     },
     confirmValueSave(form, type) {
-      if (type == 1) {
-        this.form.purchaseTypeList = form.purchaseTypeList;
-      } else if (type == 2) {
-        this.form.cycle = form.cycle+'';
+      if (type == 9) {
+        let wildSilkList = form.wildSilkList;
+        this.handleConfirmSave([
+          {
+            name:wildSilkList.join(','),
+            id:this.wildSilkList.id
+          }
+        ],type)
+      } else if (type == 10) {
+        let absenteeism = form.absenteeism + "";
+        this.handleConfirmSave([
+          {
+            name:absenteeism,
+            id:this.absenteeism.id
+          }
+        ],type)
       } else if (type == 3) {
         this.formulaClick(
           {
@@ -478,11 +525,15 @@
     },
     // 閲庣氦鏁伴噺
     handleSlikSetShow() {
+      this.handleGetBomKindDictList(9);
       this.$refs.silkSetDialog.islook = true;
     },
     // 婊″嫟濂�
     handleConstSetShow(val) {
       this.constType = val;
+      if(val==10){
+        this.handleGetBomKindDictList(10);
+      }
       this.$refs.constantSetDialog.islook = true;
     },
     // 鍗曚綅
@@ -490,24 +541,66 @@
       this.handleGetBomKindDictList();
       this.$refs.editDialog.editDialogVisible = true;
     },
-    handleConfirmSave(dataList) {
-      saveSalaryType({
-        type: 8,
-        values: dataList,
-      }).then((res) => {
+    handleConfirmSave(dataList,val) {
+      let params={}
+      if(val==9||val==10){
+        params={
+          type: val,
+          values: dataList,
+        }
+      }else{
+        params={
+          type: 8,
+          values: dataList,
+        }
+      }
+      this.isAddloading = true;
+      saveSalaryType(params).then((res) => {
         if (res.code == 200) {
           this.$message({
             message: "鎿嶄綔鎴愬姛锛�",
             type: "success",
           });
-          this.$refs.editDialog.editDialogVisible = false;
-          this.handleGetBomKindDictList();
+          if(val==9){
+            this.$refs.silkSetDialog.islook = false;
+          }else  if(val==10){
+            this.$refs.constantSetDialog.islook = false;
+          }else{
+            this.$refs.editDialog.editDialogVisible = false;
+          }
+          this.handleGetBomKindDictList(val?val:'');
         }
+        this.isAddloading = false;
+      }).catch(() => {
+                setTimeout(() => {
+                  this.isAddloading = false;
+                }, 3000);
       });
     },
-    handleGetBomKindDictList() {
-      getSalaryTypeList({ type: 8 }).then((res) => {
-        this.unitList = res.data;
+    handleGetBomKindDictList(val) {
+      getSalaryTypeList({ type: val?val:8 }).then((res) => {
+        if(val==9){
+          // 閲庣氦鐨勭敓涓濇爣鍑嗛厤缃�
+          this.wildSilkList=(res.data&&res.data.length>0)?{
+            ...res.data[0],
+            value:res.data[0].name.split(',')||[]
+          }:{
+            id:null,
+            value:['閲庣氦']
+          }
+        }else if(val==10){
+          // 鑰冨嫟閰嶇疆
+          this.absenteeism=(res.data&&res.data.length>0)?{
+            ...res.data[0],
+            value:res.data[0].name||1
+          }:{
+            id:null, 
+            value:1
+          }
+        }else{
+          this.unitList = res.data;
+        }
+       
       });
     },
     getSelectDataList() {
@@ -531,29 +624,25 @@
     submitForm(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          this.checkFormula()
-          if(this.form.error==2){
+          this.checkFormula();
+          if (this.form.error == 2) {
             this.$message.error("璇锋鏌ヨ璐瑰叕寮忓畾涔夛紒");
             return true;
           }
           let form = JSON.parse(JSON.stringify(this.form));
-          let arr = form.salaryFormula.split("锛�");
-           arr=arr.splice(0,arr.length-1)
-           form.salaryFormula=arr.join("锛�")
-          if (form.purchaseTypeList.length == 0) {
-            this.$message.error("璇风偣鍑婚噹绾ゆ暟閲忛厤缃敓涓濇爣鍑嗭紒");
-            return true;
-          }
-          let workTypes=[]
-          if(form.workTypes&&form.workTypes.length>0){
-            for(let i in form.workTypes){
+          let arr = form.salaryFormula.split(",");
+          arr = arr.splice(0, arr.length - 1);
+          form.salaryFormula = arr.join(",");
+          let workTypes = [];
+          if (form.workTypes && form.workTypes.length > 0) {
+            for (let i in form.workTypes) {
               workTypes.push({
-                workName:form.workTypes[i].label,
-                id:form.workTypes[i].value
-              })
+                workName: form.workTypes[i].label,
+                id: form.workTypes[i].value,
+              });
             }
           }
-          form.workTypes=workTypes
+          form.workTypes = workTypes;
           saveSalaryPlan(form).then((res) => {
             if (res.code == 200) {
               this.$message({
@@ -631,7 +720,7 @@
     }
   }
   .formula-input {
-    width: calc(100% - 100px);
+    width: calc(100% - 90px);
     height: 100px;
     padding: 10px 10px;
     overflow-y: auto;
@@ -639,12 +728,19 @@
     border: 1px solid #e4e7ed;
     cursor: not-allowed;
     float: left;
-    margin-right: 20px;
   }
-  .formula-btn {
+  .formula-btn-right {
+    width: 60px;
     float: left;
-    margin-top: 80px;
+    position: relative;
+    .formula-btn-t {
+      margin-left: 10px;
+    }
+    .formula-btn {
+      margin-top: 40px;
+    }
   }
+
   .formula-error {
     width: calc(100% - 110px);
     line-height: 28px;

--
Gitblit v1.8.0