{"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]}