{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\flow\\simulation\\ProcessSimulation.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\flow\\simulation\\ProcessSimulation.vue","mtime":1675071992881},{"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//\n//\n//\n//\n//\n//\n//\n\r\nimport uc from \"@/api/uc.js\";\r\nimport utils from \"@/hotent-ui-util.js\";\r\nimport {Base64} from \"js-base64\";\r\nconst eipAuthDialog = () => import(\"@/components/dialog/EipAuthDialog.vue\");\r\nconst processSimulationInst = () => import(\"@/views/flow/simulation/ProcessSimulationInst.vue\");\r\nconst chart = () => import(\"@/components/form/chart/Chart.vue\");\r\n\r\nexport default {\r\n  components: {\r\n    eipAuthDialog,\r\n    processSimulationInst,\r\n    chart\r\n  },\r\n  computed: {\r\n    deleteUrl: function() {\r\n      return window.context.bpmRunTime + \"/runtime/bpmTestCase/v1/remove\";\r\n    },\r\n    saveUrl: function() {\r\n      let preUrl = window.context.bpmRunTime + \"/runtime/bpmTestCase/v1/save\";\r\n      return preUrl;\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      formDialogVisible: false,\r\n      dialogVisible: false,\r\n      processSimulationdialogVisible: false,\r\n      baseFlowInfo: {defKyes:[],nodeInfo:{},formId:null},\r\n      defKey: null,\r\n      testCase: {\r\n        name: \"\",\r\n        defKey: \"\",\r\n        boFormData:{},\r\n        startor: [],\r\n        actionType: {},\r\n        bpmDebugger: {},\r\n      },\r\n      testCaseSaveModel:{},\r\n      isSubmit: true,\r\n      data: [],\r\n      pageResult: {\r\n        page: 1,\r\n        pageSize: 20,\r\n        total: 0\r\n      },\r\n      previewFormUrl: \"\",\r\n      reportDialogVisible: false,\r\n      reportData:{},\r\n      reportOption:{},\r\n      isAddDialog: false\r\n    };\r\n  },\r\n  mounted() {\r\n    this.$validator = this.$root.$validator;\r\n    window.addEventListener('message', (e)=>{\r\n      if(e.data && e.data.formData){\r\n        this.testCase.boFormData =  e.data.formData;\r\n      }\r\n    })\r\n  },\r\n  methods: {\r\n    handleReportClose(){\r\n      this.reportDialogVisible = false;\r\n    },\r\n    batchStartFlow(id){\r\n      let elTable = null;\r\n      if (this.$refs.testCaseTable.$refs.htTable) {\r\n        elTable = this.$refs.testCaseTable.$refs.htTable;\r\n      }\r\n      if (\r\n        elTable &&\r\n        elTable.selection &&\r\n        elTable.selection.length == 0 && !id\r\n      ) {\r\n        this.$message.error(\"请至少选择一条数据\");\r\n        return;\r\n      }\r\n\r\n      let ids = [];\r\n\r\n      for (let item of elTable.selection) {\r\n        ids.push(item.id);\r\n      }\r\n      if(id){\r\n        ids.push(id);\r\n      }\r\n      let idstr = ids.join(\",\");\r\n      this.$http.post(window.context.bpmRunTime+\"/runtime/bpmTestCase/v1/startTest\",idstr).then(res=>{\r\n        if(res.data.state){\r\n          this.$message(res.data.message);\r\n        }else{\r\n          this.$message(res.data.message);\r\n        }\r\n      });\r\n    },\r\n    initData(){\r\n      this.$http.get(window.context.bpmRunTime+\"/runtime/bpmTestCase/v1/getBaseInfo?defKey=\"+this.defKey).then(res=>{\r\n        Object.assign(this.baseFlowInfo,res.data);\r\n      });\r\n    },\r\n    addItem(type,defKey){\r\n      if(type==\"actionType\"){\r\n        var obj = {\"nodeId\":\"\",\"actionName\":\"agree\",\"count\":1};\r\n        if(!this.testCase.actionType[defKey]){\r\n          this.$set(this.testCase.actionType,defKey,[])\r\n        }\r\n        this.$set(this.testCase.actionType[defKey],this.testCase.actionType[defKey].length,obj);\r\n      }\r\n\r\n      if(type==\"bpmDebugger\"){\r\n        if(!this.testCase.bpmDebugger[defKey]){\r\n          this.$set(this.testCase.bpmDebugger,defKey,[]);\r\n        }\r\n        this.$set(this.testCase.bpmDebugger[defKey],this.testCase.bpmDebugger[defKey].length,[]);\r\n      }\r\n    },\r\n    delItem(arr,key){\r\n      arr.splice(key,1);\r\n\t  },\r\n    selectNodeId(type,defKey,key,idx){\r\n      if(type==\"actionType\"){\r\n        var __arr = [...this.testCase.actionType[defKey]];\r\n        __arr.splice(idx,1);\r\n        let isExist = __arr.find(item=>{return item.nodeId==key.nodeId})\r\n        if( isExist ){\r\n          this.$message.warning(\"已经设置了该节点,请重新选择,请不要重复设置\");\r\n          key.nodeId = \"\";\r\n        }\r\n      }\r\n\r\n      if(type==\"bpmDebugger\"){\r\n         var __arr = [...this.testCase.bpmDebugger[defKey]];\r\n        __arr.splice(idx,1);\r\n        let isExist = __arr.find(item=>{return item==key})\r\n        if(isExist){\r\n          this.$message.warning(\"已经设置了该节点,请重新选择,请不要重复设置\", {icon: 2});\r\n          key = \"\";\r\n          return;\r\n        }\r\n      }\r\n    },\r\n    showAuthDialog() {\r\n      let conf = {\r\n        right: [],\r\n        permissionList: [\r\n          { type: \"user\", title: \"用户\" },\r\n          { type: \"org\", title: \"组织\" },\r\n          { type: \"pos\", title: \"岗位\" },\r\n          { type: \"role\", title: \"角色\" }\r\n        ]\r\n      };\r\n      if (this.testCase.startor) {\r\n        conf.right = this.testCase.startor;\r\n      }\r\n      this.$refs.eipAuthDialog.showDialog(conf);\r\n    },\r\n    showFormDialog(){\r\n      this.previewFormUrl =  window.context.front +\r\n                \"/previewForm/\" +\r\n                this.baseFlowInfo.formId +\r\n                \"?token=\" +\r\n                this.$store.state.login.currentUser.token+\r\n                \"&formData=\" + Base64.encode(JSON.stringify(this.testCase.boFormData));\r\n      this.formDialogVisible = true;\r\n    },\r\n    handleFormDialogClose(cancel = true){\r\n      if (cancel && this.isAddDialog){\r\n        this.testCase.boFormData = {};\r\n      }\r\n      this.formDialogVisible = false;\r\n    },\r\n    showReportDialog(){\r\n      let elTable = this.$refs.testCaseTable.$refs.htTable;\r\n      if(!elTable.selection || elTable.selection.length==0){\r\n        this.$message.warning(\"请至少选择一个测试用例\");\r\n        return;\r\n      }\r\n      let aryIds = [];\r\n      elTable.selection.forEach(element => {\r\n        aryIds.push(element.id);\r\n      });\r\n\r\n      this.$http.post(window.context.bpmRunTime+\"/runtime/bpmTestCase/v1/getReportData\",aryIds.join(\",\")).then(res=>{\r\n\r\n        this.reportData = res.data.value;\r\n\t\t\t\tlet app = {};\r\n\r\n\t\t\t\tapp.config = {\r\n\t\t\t\t    rotate: 90,\r\n\t\t\t\t    align: 'left',\r\n\t\t\t\t    verticalAlign: 'middle',\r\n\t\t\t\t    position: 'insideBottom',\r\n\t\t\t\t    distance: 15,\r\n\t\t\t\t};\r\n        let labelOption = {\r\n\t\t\t\t    normal: {\r\n\t\t\t\t        show: true,\r\n\t\t\t\t        position: app.config.position,\r\n\t\t\t\t        distance: app.config.distance,\r\n\t\t\t\t        align: app.config.align,\r\n\t\t\t\t        verticalAlign: app.config.verticalAlign,\r\n\t\t\t\t        rotate: app.config.rotate,\r\n\t\t\t\t        formatter: '{c}  {name|{a}}',\r\n\t\t\t\t        fontSize: 16,\r\n\t\t\t\t        rich: {\r\n\t\t\t\t            name: {\r\n\t\t\t\t                textBorderColor: '#fff'\r\n\t\t\t\t            }\r\n\t\t\t\t        }\r\n\t\t\t\t    }\r\n\t\t\t\t};\r\n\r\n        this.reportOption = {\r\n            name:\"流程仿真报表\",\r\n            subtext:\"实例状态\",\r\n\t\t\t\t    color: ['#003366', '#4cabce', '#e5323e'],\r\n\t\t\t\t    tooltip: {\r\n\t\t\t\t        trigger: 'axis',\r\n\t\t\t\t        axisPointer: {\r\n\t\t\t\t            type: 'shadow'\r\n\t\t\t\t        }\r\n\t\t\t\t    },\r\n\t\t\t\t    legend: {\r\n\t\t\t\t        data: ['end-已结束', 'unend-未结束', 'endProcess--人工结束']\r\n\t\t\t\t    },\r\n\t\t\t\t    toolbox: {\r\n\t\t\t\t        show: true,\r\n\t\t\t\t        orient: 'vertical',\r\n\t\t\t\t        left: 'right',\r\n\t\t\t\t        top: 'center',\r\n\t\t\t\t        feature: {\r\n\t\t\t\t            mark: {show: true},\r\n\t\t\t\t            dataView: {show: true, readOnly: false},\r\n\t\t\t\t            magicType: {show: true, type: ['line', 'bar', 'stack', 'tiled']},\r\n\t\t\t\t            restore: {show: true},\r\n\t\t\t\t            saveAsImage: {show: true}\r\n\t\t\t\t        }\r\n\t\t\t\t    },\r\n\t\t\t\t    calculable: true,\r\n\t\t\t\t    xAxis: [\r\n\t\t\t\t        {\r\n\t\t\t\t            type: 'category',\r\n\t\t\t\t            axisTick: {show: false},\r\n\t\t\t\t            data: this.reportData.xAxis\r\n\t\t\t\t        }\r\n\t\t\t\t    ],\r\n\t\t\t\t    yAxis: [\r\n\t\t\t\t        {\r\n\t\t\t\t            type: 'value'\r\n\t\t\t\t        }\r\n\t\t\t\t    ],\r\n\t\t\t\t    series: [\r\n\t\t\t\t        {\r\n\t\t\t\t            name: 'end-已结束',\r\n\t\t\t\t            type: 'bar',\r\n\t\t\t\t            barGap: 0,\r\n\t\t\t\t            label: labelOption,\r\n\t\t\t\t            data: this.reportData.end\r\n\t\t\t\t        },\r\n\t\t\t\t        {\r\n\t\t\t\t            name: 'unend-未结束',\r\n\t\t\t\t            type: 'bar',\r\n\t\t\t\t            label: labelOption,\r\n\t\t\t\t            data: this.reportData.unend\r\n\t\t\t\t        },\r\n\t\t\t\t        {\r\n\t\t\t\t            name: 'endProcess--人工结束',\r\n\t\t\t\t            type: 'bar',\r\n\t\t\t\t            label: labelOption,\r\n\t\t\t\t            data: this.reportData.endProcess\r\n\t\t\t\t        }\r\n\t\t\t\t    ]\r\n\t\t\t\t}\r\n\r\n        this.reportDialogVisible = true;\r\n      });\r\n\r\n    },\r\n    showInstDialog(){\r\n      this.$refs.processSimulationInst.handleInstDialogShow(this.defKey);\r\n    },\r\n    dialogOnConfirm(res){\r\n      this.testCase.startor = res;\r\n    },\r\n    handleClose() {\r\n      this.dialogVisible = false;\r\n    },\r\n    showProcessSimulation(defKey){\r\n      this.defKey = defKey;\r\n      this.testCase.defKey = defKey;\r\n      this.initData();\r\n      this.processSimulationdialogVisible = true;\r\n    },\r\n    handleCloseProcessSimulation() {\r\n      this.processSimulationdialogVisible = false;\r\n    },\r\n    showDialog(add = true) {\r\n      if (add){\r\n        this.testCase = {name: \"\",boFormData:{},startor: [],actionType: {},bpmDebugger: {},id:\"\",pkVal:\"\"};\r\n        this.isAddDialog = true;\r\n      }\r\n      this.dialogVisible = true;\r\n    },\r\n    dialogCancle(dialogVisible) {\r\n      this[dialogVisible] = false;\r\n      this.isAddDialog = false;\r\n    },\r\n    loadData(param, cb) {\r\n      if(!param.querys){\r\n        param.querys = [];\r\n      }\r\n      let defKeyParam = {property: \"def_key_\", value: this.defKey, group: \"quick\", relation: \"AND\", operation: \"EQUAL\"};\r\n      param.querys = param.querys.concat(defKeyParam);\r\n      this.$http.post(window.context.bpmRunTime+\"/runtime/bpmTestCase/v1/list\",param).then(response => {\r\n          this.data = 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    handleCommand(params) {\r\n      switch (params.command) {\r\n        case \"editTestCase\":\r\n          let temp = {};\r\n          temp = {...temp,...params.row};\r\n          temp.startor = JSON.parse(temp.startor);\r\n          temp.bpmDebugger =  JSON.parse(temp.bpmDebugger);\r\n          temp.boFormData =  JSON.parse(temp.boFormData);\r\n          temp.actionType =  JSON.parse(temp.actionType);\r\n          this.testCase = temp;\r\n          this.showDialog(false);\r\n          break;\r\n        case \"startFlow\":\r\n          this.batchStartFlow(params.row.id);\r\n          break;\r\n        default:\r\n          break;\r\n      }\r\n    },\r\n    async beforeSaveData() {\r\n      //  提交前可以改变model中的数据\r\n      this.testCaseSaveModel = {...this.testCaseSaveModel,...this.testCase};\r\n      this.testCaseSaveModel.boFormData = JSON.stringify(this.testCaseSaveModel.boFormData);\r\n      this.testCaseSaveModel.startor = JSON.stringify(this.testCaseSaveModel.startor);\r\n      this.testCaseSaveModel.actionType = JSON.stringify(this.testCaseSaveModel.actionType);\r\n      this.testCaseSaveModel.bpmDebugger = JSON.stringify(this.testCaseSaveModel.bpmDebugger);\r\n      this.testCaseSaveModel.defKey = this.defKey;\r\n      this.isSubmit = true;\r\n    },\r\n    afterSaveData() {\r\n      this.dialogVisible = false;\r\n      this.$refs.testCaseTable.load();\r\n      setTimeout(() => {\r\n        this.testCase = {name: \"\",boFormData:{},startor: [],actionType: {},bpmDebugger: {},id:\"\",pkVal:\"\"}\r\n      }, 200);\r\n    },\r\n    afterLoadData(data) {\r\n      // 菜单权限复制\r\n      if (this.dialogVisibleMenuPerm) {\r\n        this.allowRoles = data;\r\n      }\r\n      // 编辑角色\r\n      if (this.dialogVisible) {\r\n        this.role = data.value;\r\n        setTimeout(() => this.$validator.validateAll(\"editRoleForm\"));\r\n      }\r\n    }\r\n  }\r\n};\r\n",null]}