From 8feea28b1d7ca211f6dbbae1f0bf8474cfe1c077 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期五, 26 四月 2024 15:16:36 +0800 Subject: [PATCH] 增薪资方案增加清除的操作+清除操作的逻辑处理点击一次清除上次点击的内容,并且重新组合数据渲染对应样式 --- src/views/employeeSalary/salaryPlan/components/addDialog.vue | 134 +++++++++++++++++++++++++++++--------------- 1 files changed, 87 insertions(+), 47 deletions(-) diff --git a/src/views/employeeSalary/salaryPlan/components/addDialog.vue b/src/views/employeeSalary/salaryPlan/components/addDialog.vue index fcf5242..d78d102 100644 --- a/src/views/employeeSalary/salaryPlan/components/addDialog.vue +++ b/src/views/employeeSalary/salaryPlan/components/addDialog.vue @@ -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"> @@ -213,7 +226,7 @@ salaryFormulaHtml: "", error: "", purchaseTypeList: [1], - cycle: '1', + cycle: "1", }, activeName: 1, formulaName: [ @@ -351,34 +364,43 @@ salaryFormulaHtml: "", error: "", purchaseTypeList: [1], - cycle: '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 = ""; + this.form.purchaseTypeList = [1]; + 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]); + } + } + } } }, // 鐐瑰嚮鐢熶骇鏁版嵁鍜岃�冨嫟鍙婅ˉ璐存暟鎹� 璧嬪�艰璐瑰叕寮忓畾涔� @@ -400,13 +422,24 @@ 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 isString = "+-*/"; let arr = this.form.salaryFormula.split("锛�"); - arr=arr.splice(0,arr.length-1) - for (let i=0;i<arr.length;i++) { + 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 +464,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,9 +487,9 @@ } 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); } } }, @@ -464,7 +497,7 @@ if (type == 1) { this.form.purchaseTypeList = form.purchaseTypeList; } else if (type == 2) { - this.form.cycle = form.cycle+''; + this.form.cycle = form.cycle + ""; } else if (type == 3) { this.formulaClick( { @@ -531,29 +564,29 @@ 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("锛�") + 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 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 +664,7 @@ } } .formula-input { - width: calc(100% - 100px); + width: calc(100% - 90px); height: 100px; padding: 10px 10px; overflow-y: auto; @@ -639,12 +672,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