| | |
| | | > |
| | | </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"> |
| | |
| | | salaryFormulaHtml: "", |
| | | error: "", |
| | | purchaseTypeList: [1], |
| | | cycle: '1', |
| | | cycle: "1", |
| | | }, |
| | | activeName: 1, |
| | | formulaName: [ |
| | |
| | | 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]); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | // 点击生产数据和考勤及补贴数据 赋值计费公式定义 |
| | |
| | | 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, 符号那边需要有值 |
| | | if (isString.indexOf(arr[i]) != -1 || arr[i] == "(") { |
| | |
| | | } |
| | | } 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; |
| | | } |
| | |
| | | } |
| | | |
| | | 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); |
| | | } |
| | | } |
| | | }, |
| | |
| | | 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( |
| | | { |
| | |
| | | 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({ |
| | |
| | | } |
| | | } |
| | | .formula-input { |
| | | width: calc(100% - 100px); |
| | | width: calc(100% - 90px); |
| | | height: 100px; |
| | | padding: 10px 10px; |
| | | overflow-y: auto; |
| | |
| | | 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; |