{"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\\flow\\FlowEditBoSetting.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\flow\\FlowEditBoSetting.vue","mtime":1675071991803},{"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//\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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport {Message} from 'element-ui'\r\nimport req from '@/request.js'\r\nconst eipScriptDialog = () => import('@/components/dialog/EipScriptDialog.vue')\r\nconst FlowVarSelector = () => import('@/components/flow/FlowVarSelector.vue')\r\nconst FlowConditionBuildDialog = () =>\r\n import('@/components/flow/FlowConditionBuildDialog.vue')\r\nexport default {\r\n name: 'FlowEditBoSetting',\r\n components: {FlowVarSelector, FlowConditionBuildDialog, eipScriptDialog},\r\n props: {\r\n defId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n tabType: 'beforeShow',\r\n treeData: [], //树数据\r\n defaultProps: {\r\n children: 'children',\r\n label: 'desc',\r\n },\r\n dialogVisibleSetting: false, //是否显示Bo任务节点设置\r\n selectedNode: '', //选择的节点\r\n nodeDefList: [], //可选择的节点\r\n nodeSetMap: {}, //节点设置的数据\r\n isClearForm: false, //是否清空已配置的表单\r\n data: {bodef: {boSaveMode: 'database', boDefs: []}},\r\n dataDialog: {beforeShow: '', whenSave: '', defKey: '', description: ''}, //Bo任务节点设置对话框返回的值\r\n isEdit: false, //是否是点击修改按钮进入的Bo任务节点设置对话框,\r\n curEditIndex: null,\r\n curEditNodeId: '',\r\n }\r\n },\r\n methods: {\r\n //Bo任务节点设置对话框确认事件\r\n saveDataDialog() {\r\n if (!this.dataDialog.description) {\r\n this.$message.warning('请输入描述')\r\n return\r\n }\r\n //判断是否是修改\r\n if (!this.isEdit) {\r\n //不是修改\r\n let list = this.nodeSetMap[this.selectedNode]\r\n if (!list) {\r\n this.nodeSetMap[this.selectedNode] = []\r\n list = this.nodeSetMap[this.selectedNode]\r\n }\r\n list.push(this.dataDialog)\r\n this.isEdit = false\r\n } else {\r\n this.nodeSetMap[this.curEditNodeId].splice(\r\n this.curEditIndex,\r\n 1,\r\n this.dataDialog\r\n )\r\n }\r\n this.dialogVisibleSetting = false\r\n },\r\n //监督可选变量的返回值(显示前)\r\n varTreeBeforeShow(data) {\r\n this.dataDialog.beforeShow = this.dataDialog.beforeShow + data.pathValue\r\n },\r\n //监督可选变量的返回值(保存时)\r\n varTreeWhenSave(data) {\r\n this.dataDialog.whenSave = this.dataDialog.whenSave + data.pathValue\r\n },\r\n //显示常用脚本\r\n showDialog(action) {\r\n this.$refs[action].showDialog()\r\n },\r\n //树鼠标左击事件(treeNode:当前节点对象,node:可以拿到父节点对象)\r\n handleNodeClick(treeNode, node, nodeCompent) {\r\n let def\r\n let pDef //父定义\r\n if (!treeNode.nodeType || treeNode.nodeType == 'main') {\r\n return\r\n }\r\n if (treeNode.nodeType == 'field') {\r\n def = node.parent\r\n } else {\r\n def = node\r\n }\r\n if (def.data.nodeType == 'sub') {\r\n pDef = def.parent\r\n }\r\n if (!this.dataDialog.description) {\r\n this.dataDialog.description = treeNode.desc\r\n }\r\n let txt = ''\r\n if (treeNode.nodeType == 'field') {\r\n //字段\r\n if (!pDef) {\r\n //主表字段\r\n pDef = def\r\n txt =\r\n pDef.data.boDefAlias +\r\n '.get(\"data\").put(\"' +\r\n treeNode.name +\r\n '\",\"\");'\r\n } else {\r\n //子表字段\r\n if (this.tabType == 'beforeShow') {\r\n if (pDef.data.nodeType == 'sub') {\r\n //孙表\r\n const rootDef = pDef.parent\r\n txt += '//设置新增孙表的默认值\\n\\r'\r\n txt +=\r\n rootDef.data.boDefAlias +\r\n '.get(\"initDataMap\").get(\"' +\r\n pDef.data.name +\r\n '\").get(\"initData\").get(\"' +\r\n def.data.name +\r\n '\").put(\"' +\r\n treeNode.name +\r\n '\",\"\");'\r\n } else {\r\n txt += '//设置新增子表的默认值\\n\\r'\r\n txt +=\r\n pDef.data.boDefAlias +\r\n '.get(\"initDataMap\").get(\"' +\r\n def.data.name +\r\n '\").put(\"' +\r\n treeNode.name +\r\n '\",\"\");'\r\n }\r\n } else {\r\n if (pDef.data.nodeType == 'sub') {\r\n //孙表\r\n const rootDef = pDef.parent\r\n txt +=\r\n '//设置已有子表某个字段的值,参数为(子表名,孙表名,孙表字段名,字段值,子表下标,孙表下标)或(子表名,孙表名,孙表字段名,字段值,子表下标)或(子表名,孙表名,孙表字段名,字段值)无下标每条数据都会修改\\n\\r'\r\n txt +=\r\n rootDef.data.boDefAlias +\r\n '.setSunFiledVal(\"' +\r\n pDef.data.name +\r\n '\",\"' +\r\n def.data.name +\r\n '\",\"' +\r\n treeNode.name +\r\n '\",\"\",0,0);'\r\n } else {\r\n txt +=\r\n '//设置已有子表某个字段的值,参数为(子表名,字段名,字段值,下标)或者(子表名,字段名,字段值),无下标每条数据都会修改\\n\\r'\r\n txt +=\r\n pDef.data.boDefAlias +\r\n '.setSubFiledVal(\"' +\r\n def.data.name +\r\n '\",\"' +\r\n treeNode.name +\r\n '\",\"\",0);'\r\n }\r\n }\r\n }\r\n } else {\r\n //子表\r\n txt =\r\n 'ArrayNode list = ' +\r\n pDef.data.boDefAlias +\r\n '.getSubTableData(\"' +\r\n def.data.name +\r\n '\");'\r\n }\r\n if (this.tabType == 'beforeShow') {\r\n //如果是显示前\r\n this.dataDialog.beforeShow = this.dataDialog.beforeShow + txt\r\n } else if (this.tabType == 'whenSave') {\r\n //如果是保存时\r\n this.dataDialog.whenSave = this.dataDialog.whenSave + txt\r\n }\r\n this.dataDialog.defKey = pDef.data.boDefAlias\r\n },\r\n //根据任务节点ID获取任务节点名称\r\n getDesc(nodeId) {\r\n for (let i = 0; i < this.nodeDefList.length; i++) {\r\n let tmp = this.nodeDefList[i]\r\n if (tmp.nodeId == nodeId) {\r\n return tmp.name + '(' + nodeId + ')'\r\n }\r\n }\r\n return nodeId\r\n },\r\n //添加\r\n editNodeSet(editNodeId, index, nodeSet) {\r\n let passConf = {}\r\n passConf.node = this.selectedNode\r\n passConf.ids = ''\r\n this.data.bodef.boDefs.forEach((item) => {\r\n if (passConf.ids != '') {\r\n passConf.ids += ','\r\n }\r\n passConf.ids += item.id\r\n })\r\n //判断是否从编辑进来的\r\n if (nodeSet) {\r\n passConf.data = nodeSet\r\n for (let i = 0; i < this.nodeDefList.length; i++) {\r\n let tmp = this.nodeDefList[i]\r\n if (tmp.nodeId == nodeId) {\r\n passConf.node = tmp\r\n break\r\n }\r\n }\r\n this.dataDialog = JSON.parse(JSON.stringify(nodeSet)) //给显示前和保存时的脚本内容赋值\r\n this.curEditIndex = index\r\n this.curEditNodeId = editNodeId\r\n this.isEdit = true\r\n } else if (!nodeSet) {\r\n this.isEdit = false\r\n this.dataDialog = {\r\n beforeShow: '',\r\n whenSave: '',\r\n defKey: '',\r\n description: '',\r\n } //初始化显示前和保存时的脚本内容\r\n }\r\n if (!passConf.ids) {\r\n Message.warning('请在流程配置中先绑定表单')\r\n return\r\n }\r\n let nodeId = passConf.node.nodeId\r\n const this_ = this\r\n //显示BO数据树\r\n req\r\n .post('${form}/bo/def/v1/getBOTree', passConf.ids)\r\n .then(function (res) {\r\n this_.treeData = []\r\n this_.treeData.push(res.data)\r\n this_.tabType = 'beforeShow'\r\n this_.dialogVisibleSetting = true\r\n })\r\n },\r\n //保存\r\n save(isRest) {\r\n let data = this.data\r\n //判断是否绑定表单\r\n if (data.bodef.boDefs.length == 0) {\r\n Message.warning('请在流程配置中先绑定表单')\r\n return\r\n }\r\n // 拼装提交的数据\r\n data.bodef.boDefs.forEach((item) => {\r\n item.key = item.alias\r\n })\r\n data.formInitItems = []\r\n if (this.nodeSetMap.length != 0) {\r\n for (let key in this.nodeSetMap) {\r\n let temp = {}\r\n temp.nodeId = key\r\n temp.parentDefKey = ''\r\n temp.saveFieldsSetting = []\r\n temp.showFieldsSetting = []\r\n this.nodeSetMap[key].forEach((item) => {\r\n // 都为空就不保存\r\n if (!item.beforeShow && !item.whenSave) {\r\n return\r\n }\r\n item.beforeShow = item.beforeShow ? item.beforeShow : ''\r\n item.whenSave = item.whenSave ? item.whenSave : ''\r\n let tmp = {}\r\n tmp.boDefCode = item.defKey\r\n tmp.description = item.description\r\n tmp.setting = item.whenSave\r\n temp.saveFieldsSetting.push(tmp)\r\n temp = JSON.parse(JSON.stringify(temp))\r\n tmp.setting = item.beforeShow\r\n temp.showFieldsSetting.push(tmp)\r\n })\r\n data.formInitItems.push(temp)\r\n }\r\n }\r\n let param = {}\r\n param.json = JSON.stringify(data)\r\n param.topDefKey = ''\r\n param.flowId = this.defId\r\n param.isClearForm = this.isClearForm\r\n\r\n req.post('${bpmModel}/flow/def/v1/saveSetBos', param).then(function (r) {\r\n r = r.data\r\n let opName = '保存'\r\n if (isRest) {\r\n opName = '重置'\r\n }\r\n if (r.state) {\r\n Message.success(opName + '成功')\r\n } else {\r\n Message.error(opName + '失败')\r\n }\r\n })\r\n },\r\n //重置\r\n reset() {\r\n this.$confirm('此操作将清除所有数据, 是否继续?', '提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning',\r\n })\r\n .then(() => {\r\n this.nodeSetMap = {}\r\n this.save(true)\r\n })\r\n .catch(() => {})\r\n },\r\n //关闭侧边栏\r\n close() {\r\n this.dialogVisibleSetting = false\r\n this.isEdit = false\r\n },\r\n //删除\r\n deleteSetting(list, index) {\r\n list.splice(index, 1)\r\n },\r\n },\r\n mounted() {\r\n this.$loading()\r\n this.$validator = this.$root.$validator\r\n const this_ = this\r\n let url =\r\n '${bpmModel}/flow/def/v1/nodeBos?defId=' + this.defId + '&topDefKey='\r\n req.get(url).then(function (data) {\r\n data = data.data\r\n if (data.nodeDefList && data.nodeDefList.length > 0) {\r\n data.nodeDefList.forEach((n) => {\r\n n.name += '(' + n.nodeId + ')'\r\n })\r\n this_.nodeDefList = data.nodeDefList\r\n this_.selectedNode = data.nodeDefList[0].nodeId // 默认选一个\r\n }\r\n // 初始化json的数据\r\n if (data.json.bodef.boSaveMode) {\r\n this_.data.bodef.boSaveMode = data.json.bodef.boSaveMode\r\n }\r\n if (data.json.bodef) {\r\n for (let x = 0; x < data.json.bodef.boDefs.length; x++) {\r\n let item = data.json.bodef.boDefs[x]\r\n let temp = {}\r\n temp.alias = item.key\r\n temp.name = item.name\r\n temp.scope = item.scope\r\n req\r\n .get('${form}/bo/def/v1/getObject?key=' + item.key)\r\n .then(function (req) {\r\n req = req.data\r\n temp.id = req.id\r\n this_.data.bodef.boDefs.push(temp)\r\n //最后一个索引的元素时关系加载框\r\n if (x == data.json.bodef.boDefs.length - 1) {\r\n this_.$loading().close()\r\n }\r\n })\r\n }\r\n }\r\n if (data.json.formInitItems) {\r\n data.json.formInitItems.forEach((item) => {\r\n for (let i = 0; i < item.saveFieldsSetting.length; i++) {\r\n let temp = {}\r\n let savet = item.saveFieldsSetting[i]\r\n let showt = item.showFieldsSetting[i]\r\n temp.description = savet.description\r\n temp.defKey = savet.boDefCode\r\n temp.beforeShow = showt.setting\r\n temp.whenSave = savet.setting\r\n let list = this_.nodeSetMap[item.nodeId]\r\n if (!list) {\r\n this_.nodeSetMap[item.nodeId] = []\r\n list = this_.nodeSetMap[item.nodeId]\r\n }\r\n list.push(temp)\r\n }\r\n })\r\n }\r\n this_.$loading().close()\r\n })\r\n },\r\n}\r\n",null]}