{"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\\FlowHrScriptSelector.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\flow\\FlowHrScriptSelector.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\r\nimport req from \"@/request.js\";\r\nimport { mapState, mapActions } from \"vuex\";\r\nimport { Message } from \"element-ui\";\r\n\r\nimport FlowVarSelector from \"@/components/flow/FlowVarSelector.vue\";\r\n\r\nconst eipUserDialog = () => import(\"@/components/dialog/EipUserDialog.vue\");\r\nconst eipRoleDialog = () => import(\"@/components/dialog/EipRoleDialog.vue\");\r\nconst eipDemensionDialog = () =>\r\n  import(\"@/components/dialog/EipDemensionDialog.vue\");\r\nconst eipJobDialog = () => import(\"@/components/dialog/EipJobDialog.vue\");\r\nconst eipOrgDialog = () => import(\"@/components/dialog/EipOrgDialog.vue\");\r\nconst eipPostDialog = () => import(\"@/components/dialog/EipPostDialog.vue\");\r\nconst customDialogShow = () =>\r\n  import(\"@/views/form/customDialog/CustomDialogShow.vue\");\r\nconst customDialogShowTree = () =>\r\n  import(\"@/views/form/customDialog/CustomDialogShowTree.vue\");\r\nconst eipTreeDialog = () =>\r\n  import(\"@/views/form/customDialog/EipTreeDialog.vue\");\r\nconst eipUserSelector = () =>\r\n  import(\"@/components/selector/EipUserSelector.vue\");\r\nexport default {\r\n  name: \"hsScript\",\r\n  components: {\r\n    FlowVarSelector,\r\n    eipUserDialog,\r\n    eipRoleDialog,\r\n    eipDemensionDialog,\r\n    eipJobDialog,\r\n    eipOrgDialog,\r\n    eipPostDialog,\r\n    customDialogShow,\r\n    customDialogShowTree,\r\n    eipTreeDialog,\r\n    eipUserSelector\r\n  },\r\n  data() {\r\n    return {\r\n      scriptData: [], //单个节点按钮的配置信息\r\n      dialogVisible: false, //是否显示设置节点按钮侧边栏\r\n      curScript: { params: [] },\r\n      valueTypeList: [\r\n        { key: \"变量\", value: \"0\" },\r\n        { key: \"固定值\", value: \"1\" }\r\n      ],\r\n      parentParam: {},\r\n      curEditParam: {},\r\n      pageResult: {\r\n        page: 1,\r\n        pageSize: 10,\r\n        total: 0\r\n      },\r\n      titlePreview: \"\",\r\n      aliasPreview: \"\",\r\n      customDialogPreview: {},\r\n      curUser: {id:'',name:''},\r\n      startUser: {id:'',name:''},\r\n      result:null,\r\n      resultDialogVisible:false\r\n    };\r\n  },\r\n  methods: {\r\n    showDilaog(param) {\r\n      if (param.calc) {\r\n        if (param.calc.params && param.calc.params.constructor == String) {\r\n          param.calc.params = JSON.parse(param.calc.params);\r\n        }\r\n        if (param.calc.scriptId) {\r\n          let this_ = this;\r\n          req\r\n            .get(\r\n              \"${bpmRunTime}/runtime/conditionScript/v1/get?id=\" +\r\n                param.calc.scriptId\r\n            )\r\n            .then(response => {\r\n              if (response.data) {\r\n                this_.curScript = { ...response.data, ...param.calc };\r\n              }\r\n            });\r\n        }\r\n      }else{\r\n        this.curScript ={ params: [] };\r\n      }\r\n      this.parentParam = param;\r\n      this.dialogVisible = true;\r\n    },\r\n    loadData(param, cb) {\r\n      let this_ = this;\r\n      req\r\n        .post(\r\n          window.context.bpmRunTime + \"/runtime/conditionScript/v1/list\",\r\n          param\r\n        )\r\n        .then(response => {\r\n          this_.scriptData = response.data.rows;\r\n          this_.pageResult = {\r\n            page: response.data.page,\r\n            pageSize: response.data.pageSize,\r\n            total: response.data.total\r\n          };\r\n        })\r\n        .finally(() => cb());\r\n    },\r\n    setCurParam(param) {\r\n      this.curEditParam = param;\r\n    },\r\n    //点击列表某一条数据时触发\r\n    orgRowClick(row, column, event) {\r\n      if (this.curScript && this.curScript.scriptId == row.id) {\r\n        return;\r\n      }\r\n      this.curScript = { params: [] };\r\n      if (row) {\r\n        this.curScript.id = row.id;\r\n        this.curScript.methodDesc = row.methodDesc;\r\n        if (row.methodName) {\r\n          this.curScript.methodName = row.methodName;\r\n        }\r\n        this.curScript.classInsName = row.classInsName;\r\n        let tempArgument = row.argument ? eval(\"(\" + row.argument + \")\") : {};\r\n        for (const p of tempArgument) {\r\n          p.paraCt = p.paraCt || \"\";\r\n          p.valueType = \"1\";\r\n          p.value = \"\";\r\n        }\r\n        this.curScript.params = tempArgument;\r\n      } else {\r\n        this.curScript.id = \"\";\r\n        this.curScript.methodDesc = \"\";\r\n        this.curScript.params = null;\r\n      }\r\n    },\r\n    showDialogSelector(param) {\r\n      this.curEditParam = param;\r\n      let paraCt = this.curEditParam.paraCt;\r\n      let paraCtBindKey = this.curEditParam.paraCtBindKey;\r\n      let index = paraCt.indexOf(\":\");\r\n      let alias = paraCt.substring(index + 1);\r\n      let selectorType = paraCt.substring(0, index);\r\n      if (selectorType == \"cusdg\") {\r\n        this.openCustomDialog(alias);\r\n      } else if (selectorType == \"base\") {\r\n        this.$refs[alias].showDialog();\r\n      }\r\n    },\r\n    openCustomDialog(alias) {\r\n      const this_ = this;\r\n      let url = \"${form}/form/customDialog/v1/getByAlias?alias=\" + alias;\r\n      req.get(url).then(function(customDialog) {\r\n        customDialog = customDialog.data;\r\n        //格式化对话框的显示字段、返回字段、条件字段、排序字段\r\n        customDialog.displayfield = JSON.parse(customDialog.displayfield);\r\n        for (let i = 0; i < customDialog.displayfield.length; i++) {\r\n          customDialog.displayfield[i].field = customDialog.displayfield[\r\n            i\r\n          ].field.toUpperCase();\r\n        }\r\n        customDialog.resultfield = JSON.parse(customDialog.resultfield);\r\n        customDialog.sortfield = JSON.parse(customDialog.sortfield);\r\n        customDialog.conditionfield = JSON.parse(customDialog.conditionfield);\r\n        //列表\r\n        if (customDialog.style == 0) {\r\n          this_.aliasPreview = alias;\r\n          this_.customDialogPreview = customDialog;\r\n          this_.titlePreview = customDialog.name + \"-对话框列表预览\";\r\n          setTimeout(() => {\r\n            this_.$refs.customDialogShow.showDialog(); //显示自定义对话框列表预览弹框\r\n          });\r\n        } else {\r\n          //树形\r\n          this_.aliasPreview = alias;\r\n          this_.customDialogPreview = customDialog;\r\n          this_.titlePreview = customDialog.name + \"-对话框树形预览\";\r\n          let param = {};\r\n          if (customDialog.conditionfield.length > 0) {\r\n            for (let i = customDialog.conditionfield.length - 1; i >= 0; i--) {\r\n              //判断条件字段是否是动态传入（defaultType：4：动态传入，2：固定值 ）\r\n              if (customDialog.conditionfield[i].defaultType == \"4\") {\r\n                param[customDialog.conditionfield[i].field] =\r\n                  customDialog.conditionfield[i].comment;\r\n              }\r\n            }\r\n          }\r\n          //有动态传入的字段\r\n          if (JSON.stringify(param) != \"{}\") {\r\n            customDialog.param = param;\r\n            setTimeout(() => {\r\n              this_.$refs.customDialogShowTree.showDialog(); //显示自定义对话框列表预览弹框\r\n            });\r\n          } else {\r\n            setTimeout(() => {\r\n              this_.$refs.eipTreeDialog.showDialog();\r\n            });\r\n          }\r\n        }\r\n      });\r\n    },\r\n    dialogOnConfirm(data) {\r\n      this.setParam(this.curEditParam, this.curEditParam.paraCtBindKey, data);\r\n    },\r\n\r\n    setParam(param, key, aryData) {\r\n      if (key) {\r\n        key = key.toUpperCase();\r\n      }\r\n      let isString = param.paraType == \"java.lang.String\";\r\n      let vals = \"\";\r\n      let descriptions = \"\";\r\n      if (typeof aryData === \"object\" && !isNaN(aryData.length)) {\r\n        for (let i = 0; i < aryData.length; i++) {\r\n          let obj = this.objectAttrToUpperCase(aryData[i]);\r\n          let val = obj[key];\r\n          let tmp = obj[\"name\"]\r\n            ? obj[\"name\"]\r\n            : obj[\"NAME\"]\r\n            ? obj[\"NAME\"]\r\n            : obj[key];\r\n          vals += i == 0 ? val : \",\" + val;\r\n          descriptions += i == 0 ? tmp : \",\" + tmp;\r\n        }\r\n      } else {\r\n        vals = aryData[key];\r\n        descriptions = aryData[\"name\"] ? aryData[\"name\"] : aryData[key];\r\n      }\r\n      param.value = isString ? '\"' + vals + '\"' : vals;\r\n      param.description = descriptions;\r\n    },\r\n    objectAttrToUpperCase(oldObj) {\r\n      let newObj = {};\r\n      if (oldObj && oldObj.constructor == Object) {\r\n        for (const key in oldObj) {\r\n          newObj[key.toUpperCase()] = oldObj[key];\r\n        }\r\n      }\r\n      return newObj;\r\n    },\r\n    //保存按钮\r\n    handleClose(isTest) {\r\n      if (this.curScript.id == null || this.curScript.id == \"\") {\r\n        this.$message.error(\"请选择脚本\");\r\n        return;\r\n      }\r\n      let script =\r\n        \"\" +\r\n        this.curScript.classInsName +\r\n        \".\" +\r\n        this.curScript.methodName +\r\n        \"(\";\r\n      let desc = \"【\" + this.curScript.methodDesc + \"】参数:(\";\r\n      let pass = true;\r\n      for (let i = 0, p; (p = this.curScript.params[i]); i++) {\r\n        if (p.valueType == \"1\"){\r\n          p.description = p.value;\r\n        }else if (isTest) {\r\n          this.$message.error(\"不支持使用变量测试\");\r\n          pass =false;\r\n          return;\r\n        }\r\n        let str = p.description || p.value;\r\n        desc += p.paraDesc + \":\" + str + \" \";\r\n        script += this.dealValue(p) + \" \";\r\n        if (i < this.curScript.params.length - 1) {\r\n          script += \",\";\r\n          desc += \",\";\r\n        }\r\n      }\r\n      if (!pass) {\r\n        return;\r\n      }\r\n      script += \")\";\r\n      desc += \")\";\r\n      let params = this.curScript.params;\r\n      let data = {\r\n        scriptId: this.curScript.id,\r\n        params: params,\r\n        script: script,\r\n        desc: desc\r\n      };\r\n      if (!isTest) {\r\n        this.$emit(\"scriptSelectorConfirm\", data);\r\n        this.dialogVisible = false;\r\n      } else {\r\n        let param = { script: script,userId:this.curUser.id,startId:this.startUser.id };\r\n        let this_ =this;\r\n        this.$http\r\n          .post(\"${bpmRunTime}/runtime/conditionScript/v1/testScript\", param)\r\n          .then(function(resp) {\r\n            let data = resp.data;\r\n            if (data.state) {\r\n              if (data.value && data.value.length > 0) {\r\n                 this_.result = JSON.stringify(data.value);\r\n                 this_.resultDialogVisible = true;\r\n              }else{\r\n                this_.$message.warning(\"未计算出人员,请检查参数配置\");\r\n              }\r\n            } \r\n          });\r\n      }\r\n    },\r\n    //处理固定值string类型参数的格式\r\n    dealValue(p) {\r\n      if (p.paraType == \"java.lang.String\" && p.valueType == \"1\") {\r\n        try {\r\n          if(!p.value){\r\n               p.value = '\"\"';\r\n          }else if(p.value.indexOf('\\\"') <0){\r\n              p.value = '\"' + p.value + '\"';\r\n          }\r\n        } catch (e) {}\r\n      }else if ((p.paraType == \"java.lang.Boolean\" || p.paraType == \"java.lang.boolean\")&& p.valueType == \"1\") {\r\n        if(!p.value){\r\n               p.value = 'false';\r\n          }\r\n      }\r\n      return p.value;\r\n    },\r\n    varTreeOnConfirm(node) {\r\n      this.curEditParam.value = node.pathValue;\r\n      this.curEditParam.description = node.desc;\r\n    },\r\n    handleSavePreview(data) {\r\n      Message.success(\"返回数据为：\" + JSON.stringify(data));\r\n    }\r\n  },\r\n  mounted() {}\r\n};\r\n",null]}