{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\customView\\MathRowDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\customView\\MathRowDialog.vue","mtime":1675071992131},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nexport default {\r\n name: \"math-row-dialog\",\r\n props: [\"visible\", \"boDefData\", \"rowMathExp\",\"boSubEntity\",\"subTables\"],\r\n data() {\r\n return {\r\n expandAll: true,\r\n defaultProps: {\r\n children: \"children\",\r\n label: \"desc\"\r\n },\r\n countSetting: { isSingleRecord: false, rowMathExps: [] },\r\n curMathExp:'',\r\n curMathExpIndex:-1,\r\n };\r\n },\r\n mounted() {\r\n this.mathExpAssign(this.rowMathExp);\r\n },\r\n watch: {\r\n mathExp(val) {\r\n this.mathExpAssign(val);\r\n },\r\n },\r\n methods: {\r\n mathExpAssign(val) {\r\n if(!val){\r\n val = [];\r\n }\r\n this.$set(this.countSetting, \"rowMathExps\", val);\r\n },\r\n cancel() {\r\n this.$emit(\"update:visible\", false);\r\n },\r\n confirm() {\r\n this.$emit(\"update:rowMathExp\", this.countSetting.rowMathExps);\r\n try {\r\n if(this.$parent && this.$parent.$parent.setHotColumRowMathExp){\r\n this.$parent.$parent.setHotColumRowMathExp(this.countSetting.rowMathExps);\r\n }\r\n } catch (error) {}\r\n this.$emit(\"update:visible\", false);\r\n },\r\n //统计函数相关配置\r\n async insert(myValue) {\r\n const cindex = this.curMathExpIndex;\r\n const myField = document.getElementById(cindex+'_singleText');\r\n var value = myValue;\r\n var endPosition = 0;\r\n if (myValue == \"abs\") {\r\n value = \"FormMath.abs()\";\r\n endPosition = 1;\r\n } else if (myValue == \"round\") {\r\n value = \"FormMath.round()\";\r\n endPosition = 1;\r\n } else if (myValue == \"sqrt\") {\r\n value = \"FormMath.sqrt()\";\r\n endPosition = 1;\r\n } else if (myValue == \"tofixed\") {\r\n endPosition = 3;\r\n value = \"FormMath.tofixed(,2)\";\r\n } else if (myValue == \"convertCurrency\") {\r\n value = \"FormMath.convertCurrency()\";\r\n endPosition = 1;\r\n } else if (myValue == \"()\") {\r\n endPosition = 1;\r\n } else if (myValue == \"sum\") {\r\n value = \"FormMath.sum()\";\r\n endPosition = 1;\r\n } else if (myValue == \"max\") {\r\n value = \"FormMath.max()\";\r\n endPosition = 1;\r\n } else if (myValue == \"min\") {\r\n value = \"FormMath.min()\";\r\n endPosition = 1;\r\n } else if (myValue == \"average\") {\r\n value = \"FormMath.average()\";\r\n endPosition = 1;\r\n }\r\n if (myField.selectionStart || myField.selectionStart === 0) {\r\n var startPos = myField.selectionStart;\r\n var endPos = myField.selectionEnd;\r\n this.curMathExp =\r\n myField.value.substring(0, startPos) +\r\n value +\r\n myField.value.substring(endPos, myField.value.length);\r\n await this.$nextTick(); // 这句是重点, 圈起来\r\n myField.focus();\r\n myField.setSelectionRange(\r\n endPos + value.length,\r\n endPos + value.length - endPosition\r\n );\r\n }\r\n if(!this.countSetting.rowMathExps[cindex]['mathExp']){\r\n this.countSetting.rowMathExps[cindex]['mathExp'] = value;\r\n }else{\r\n this.countSetting.rowMathExps[cindex]['mathExp'] += value;\r\n }\r\n },\r\n handleNodeClick(data, treeNode) {\r\n if (data.dataType != \"number\") {\r\n this.$message({ message: \"请选择数字类型的字段! \", type: \"warning\" });\r\n return;\r\n }\r\n var isMain = treeNode.parent.data.nodeType == \"main\";\r\n var path = \"data.\" + data.path + \".\" + data.name;\r\n if (!isMain && this.countSetting.isSingleRecord) {\r\n path = \"item.\" + data.name;\r\n }\r\n\r\n if (isMain && this.countSetting.isSingleRecord) {\r\n this.$message({\r\n message: \"子表中单条记录运算模式下,不能选择主表字段!\",\r\n type: \"warning\"\r\n });\r\n return;\r\n }\r\n var desc = \"\";\r\n if (isMain || this.countSetting.isSingleRecord) {\r\n desc = \"{\" + data.desc + \"(\" + path + \")\" + \"}\";\r\n } else {\r\n desc = \"[{\" + data.desc + \"(\" + path + \")\" + \"}]\";\r\n }\r\n this.insert(desc);\r\n },\r\n addMathExp(){\r\n this.countSetting.rowMathExps.push({desc:'',mathExp:''});\r\n },\r\n rowClick(index){\r\n this.curMathExpIndex = index;\r\n this.curMathExp = this.countSetting.rowMathExps[index]['mathExp'];\r\n },\r\n mathExpRemove(item){\r\n this.countSetting.rowMathExps.remove(item);\r\n },\r\n up(index, data) {\r\n if (index === 0) {\r\n this.$message({\r\n message: \"已经是列表中第一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n let temp = data[index - 1];\r\n Vue.set(data, index - 1, data[index]);\r\n Vue.set(data, index, temp);\r\n }\r\n },\r\n down(index, data) {\r\n if (index === data.length - 1) {\r\n this.$message({\r\n message: \"已经是列表中最后一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n this.isTransition = true;\r\n let i = data[index + 1];\r\n Vue.set(data, index + 1, data[index]);\r\n Vue.set(data, index, i);\r\n }\r\n },\r\n }\r\n};\r\n",null]}