{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\flow\\leaderTodo.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\flow\\leaderTodo.vue","mtime":1667327529403},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 { mapState, mapActions } from \"vuex\";\r\nimport process from \"@/api/process\";\r\nimport FlowTree from \"@/components/flow/flowTree.vue\";\r\nimport utils from \"@/utils.js\";\r\nimport { Message } from \"element-ui\";\r\nimport TaskToCopyTo from \"@/components/flow/task/taskToCopyTo.vue\";\r\nexport default {\r\n  name: \"todo\",\r\n  components: {\r\n    FlowTree,\r\n    TaskToCopyTo\r\n  },\r\n  props: {\r\n    defKey: {\r\n      type: String,\r\n      default: \"\"\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      asideShow:false,\r\n      isAsideShow:false,\r\n      tableData: \"\",\r\n      date: \"\",\r\n      currentTree: \"\",\r\n      fullscreenLoading: true,\r\n      urgentStateConf: {},\r\n      urgentStateConfList: [],\r\n      urgentStateVal: \"\",\r\n      ids: \"\", //待办任务id集合\r\n      defaultFiledShowConf: '',\r\n      defaultFiledShowConfList: [\r\n        { name: \"subject\", desc: \"标题\", frontShow: true },\r\n        { name: \"procInstId\", desc: \"流程编号\", frontShow: true },\r\n        { name: \"procDefName\", desc: \"流程名称\", frontShow: true },\r\n        { name: \"name\", desc: \"任务名称\", frontShow: true },\r\n        { name: \"status\", desc: \"类型\", frontShow: true },\r\n        { name: \"createTime\", desc: \"创建时间\", frontShow: true },\r\n        { name: \"creator\", desc: \"创建人\", frontShow: true },\r\n        { name: \"urgentStateValue\", desc: \"紧急状态\", frontShow: true },\r\n        { name: \"dueExpDate\", desc: \"到期时间\", frontShow: false },\r\n        { name: \"ownerName\", desc: \"所属人\", frontShow: false },\r\n        { name: \"assigneeName\", desc: \"待审批人\", frontShow: false },\r\n        { name: \"prop1\", desc: \"扩展1\", frontShow: false },\r\n        { name: \"prop2\", desc: \"扩展2\", frontShow: false },\r\n        { name: \"prop3\", desc: \"扩展3\", frontShow: false },\r\n        { name: \"prop4\", desc: \"扩展4\", frontShow: false },\r\n        { name: \"prop5\", desc: \"扩展5\", frontShow: false },\r\n        { name: \"prop6\", desc: \"扩展6\", frontShow: false }\r\n      ]\r\n    };\r\n  },\r\n   computed: {\r\n    ...mapState('storeProcess',['rows','pagination','total']),\r\n    currentSwitchValue(){\r\n      return localStorage.leaderTodoAsideShow === 'true' || localStorage.leaderTodoAsideShow === true\r\n    }\r\n  },\r\n  methods: {\r\n    //将当前展开或者收起的值存在localStorage中\r\n    handleSwitch(val){\r\n      localStorage.leaderTodoAsideShow = val\r\n    },\r\n    //流程传阅\r\n    taskToCopyTo() {\r\n      if (this.ids == \"\") {\r\n        Message.warning(\"请选择要传阅的流程\");\r\n        return;\r\n      }\r\n      this.$refs.taskToCopyTo.handleClose(); //父组件调用子组件方法\r\n    },\r\n    //批量勾选待办流程获取\r\n    handleSelectionChange(val) {\r\n      this.ids = \"\";\r\n      if (val.length > 0) {\r\n        for (let i = 0; i < val.length; i++) {\r\n          this.ids = this.ids + val[i].id + \",\";\r\n        }\r\n        this.ids = this.ids.substring(0, this.ids.length - 1);\r\n      }\r\n    },\r\n    //Loading 加载中\r\n    openFullScreen() {\r\n      this.fullscreenLoading = true;\r\n    },\r\n    handleSizeChange: function(size) {\r\n      //每页下拉显示数据\r\n      this.$store.dispatch(\"storeProcess/setPaginationSize\", size);\r\n      this.search();\r\n    },\r\n    handleCurrentChange: function(currentPage) {\r\n      //点击第几页\r\n      this.$store.dispatch(\"storeProcess/setPaginationPageNum\", currentPage);\r\n      this.search();\r\n    },\r\n    //回车查询\r\n    searchEnterFun: function(e) {\r\n      var keyCode = window.event ? e.keyCode : e.which;\r\n      if (keyCode == 13) {\r\n        this.search(\"find\");\r\n      }\r\n    },\r\n    // 查询\r\n    search(str) {\r\n      if (str == \"find\") {\r\n        this.$store.dispatch(\"storeProcess/setPaginationPageNum\", 1);\r\n      }\r\n      let querys = []; //查询条件\r\n      let queryFilter = {};\r\n      let pageBean = { pageBean: this.pagination };\r\n      let beginDate = \"\"; //开始时间\r\n      let endDate = \"\"; //结束时间\r\n      let group = \"main\"; //判断条件\r\n      if (this.tableData) {\r\n        querys = [\r\n          {\r\n            property: \"subject_\",\r\n            value: this.tableData,\r\n            group: \"main\",\r\n            operation: \"LIKE\",\r\n            relation: \"OR\"\r\n          },\r\n          {\r\n            property: \"proc_inst_id_\",\r\n            value: this.tableData,\r\n            group: \"main\",\r\n            operation: \"LIKE\",\r\n            relation: \"OR\"\r\n          },\r\n          {\r\n            property: \"proc_def_name_\",\r\n            value: this.tableData,\r\n            group: \"main\",\r\n            operation: \"LIKE\",\r\n            relation: \"OR\"\r\n          },\r\n          {\r\n            property: \"name_\",\r\n            value: this.tableData,\r\n            group: \"main\",\r\n            operation: \"LIKE\",\r\n            relation: \"OR\"\r\n          }\r\n        ];\r\n        let temp = querys[0];\r\n        for (let index = 1; index < 7; index++) {\r\n          let query = JSON.parse(JSON.stringify(temp));\r\n          query.property = \"prop\" + index;\r\n          querys.push(query);\r\n        }\r\n      }\r\n      if (this.urgentStateVal) {\r\n        querys.push({\r\n          property: \"urgentStateValue\",\r\n          value: this.urgentStateVal,\r\n          group: \"main\",\r\n          operation: \"IN\",\r\n          relation: \"OR\"\r\n        });\r\n      }\r\n      if (this.currentTree) {\r\n        querys.push({\r\n          property: \"type_id_\",\r\n          value: this.currentTree,\r\n          group: \"typeId\",\r\n          operation: \"IN\",\r\n          relation: \"AND\"\r\n        });\r\n      }\r\n      if (this.defKey) {\r\n        querys.push({\r\n          property: \"tmp.proc_def_key_\",\r\n          value: this.defKey,\r\n          operation: \"EQUAL\",\r\n          relation: \"AND\"\r\n        });\r\n      }\r\n      if (this.date) {\r\n        beginDate = utils.formatDate(this.date[0].getTime());\r\n        endDate = utils.formatDate(this.date[1].getTime());\r\n        querys.push({\r\n          property: \"tmp.create_time_\",\r\n          value: [beginDate, endDate],\r\n          group: \"time\",\r\n          operation: \"BETWEEN\",\r\n          relation: \"AND\"\r\n        });\r\n      }\r\n      queryFilter = { pageBean: this.pagination, querys };\r\n      this.openFullScreen();\r\n      this.$store\r\n        .dispatch(\"storeProcess/getLeaderTodoByPagination\", queryFilter)\r\n        .then((data) => {\r\n          if (!data.state){\r\n            if (data.message==='BaseException: 无秘书审批权限！'){\r\n              this.$router.push(\"/v-flow/v-todo\");\r\n              window.location.reload();\r\n            }\r\n          }\r\n          this.fullscreenLoading = false;\r\n        });\r\n    },\r\n    //重置\r\n    reset() {\r\n      this.tableData = \"\";\r\n      this.date = \"\";\r\n      this.search(\"find\");\r\n    },\r\n    handleRowClick(row,newWin) {\r\n      if (row.status == \"SHARE\" || row.status == \"BACKSHARE\") {\r\n        if (row.identityList && row.identityList.length == 1) {\r\n          this.handleOpenUrl(\"/task/\" + row.id + \"/\" + row.identityList[0].id,newWin);\r\n        } else {\r\n          let html =\r\n            \"<select ref=\" +\r\n            Math.random() +\r\n            ' id=\"approvalLeaderSelect\" style=\"width: 200px;height: 30px;border-radius: 4px;margin: 20px 70px;\" ><option value=\"\">请选择</option>';\r\n          row.identityList.forEach(identity => {\r\n            html +=\r\n              '<option value=\"' +\r\n              identity.id +\r\n              '\">' +\r\n              identity.name +\r\n              \"</option>\";\r\n          });\r\n          html += \"</select>\";\r\n          let this_ = this;\r\n          this.$alert(html, \"请选择一个领导代为审批\", {\r\n            dangerouslyUseHTMLString: true,\r\n            beforeClose: function(action, instance, done) {\r\n              if (action == \"confirm\") {\r\n                let se = document.getElementById(\"approvalLeaderSelect\");\r\n                if (se.selectedIndex == 0) {\r\n                  this.$message.warning(\"请选择代为审批的领导\");\r\n                } else {\r\n                  instance.close();\r\n                  this_.handleOpenUrl(\r\n                    \"/task/\" + row.id + \"/\" + se[se.selectedIndex].value,newWin\r\n                  );\r\n                }\r\n              } else {\r\n                instance.close();\r\n              }\r\n            }\r\n          });\r\n        }\r\n      }else if(row.status == \"AGENT\" && row.ownerId!=row.assigneeId && row.ownerId==this.$store.state.login.currentUser.userId){//委托任务\r\n        this.handleOpenUrl(\"/instRead/\" + row.procInstId+\"/agent\",newWin);\r\n      }else {\r\n        this.handleOpenUrl(\"/task/\" + row.id + \"/0\",newWin);\r\n      }\r\n    },\r\n    handleOpenUrl(url,newWin){\r\n      if(!newWin){\r\n        this.$router.push(url);\r\n        return ;\r\n      }\r\n      if(!url){\r\n        return ;\r\n      }\r\n      let token = this.$store.state.login.currentUser.token;\r\n      if(!url.toLowerCase().startsWith(\"http\")){\r\n        url = window.context.front + url;\r\n      }\r\n      if(url.indexOf('?') == -1){\r\n        url = url + \"?token=\" + token;\r\n      }else{\r\n        url = url + \"&token=\" + token;\r\n      }\r\n      window.open(url,\"_blank\");\r\n    },\r\n    //子组件传值父组件(待办分类查询)\r\n    getCurrent(data) {\r\n      if (data.id == 6) {\r\n        this.openFullScreen();\r\n        let pageBean = { pageBean: this.pagination };\r\n        this.$store\r\n          .dispatch(\"storeProcess/getLeaderTodoByPagination\", pageBean)\r\n          .then(() => {\r\n            this.fullscreenLoading = false;\r\n          });\r\n      } else {\r\n        let ids = [];\r\n        this.getFlowTrees(data, ids);\r\n        this.currentTree = ids.join(\",\");\r\n        this.search(\"find\");\r\n      }\r\n    },\r\n    getFlowTrees(data, ids) {\r\n      ids.push(data.id);\r\n      let arr = data.children;\r\n      for (var i = 0; i < arr.length; i++) {\r\n        this.getFlowTrees(arr[i], ids);\r\n      }\r\n    },\r\n    formatConfListToObj(tempList) {\r\n      let editConfObj = {};\r\n      tempList.forEach(c => {\r\n        let key = c.name;\r\n        editConfObj[key] = c;\r\n      });\r\n      this.$set(this, \"defaultFiledShowConf\", editConfObj);\r\n    },\r\n    loadCount() {\r\n      return process.getLeaderTodoCount();\r\n    }\r\n  },\r\n  created() {\r\n\r\n    this.asideShow = this.currentSwitchValue\r\n    this.isAsideShow = this.currentSwitchValue\r\n\r\n    let this_ = this;\r\n    this.$http\r\n      .get(\"${portal}/sys/sysProperties/v1/getByAlias?alias=taskListFiledConf\")\r\n      .then(function(resp) {\r\n        let tempConf = {};\r\n        if (resp.data) {\r\n          tempConf = resp.data;\r\n        } else {\r\n          tempConf = this_.defaultFiledShowConfList;\r\n        }\r\n        this_.formatConfListToObj(tempConf);\r\n      });\r\n\r\n    let querys = [];\r\n    if (this.defKey) {\r\n      querys.push({\r\n        property: \"tmp.proc_def_key_\",\r\n        value: this.defKey,\r\n        operation: \"EQUAL\",\r\n        relation: \"AND\"\r\n      });\r\n    }\r\n    let pageBean = {\r\n      pageBean: { page: \"1\", pageSize: \"10\", showTotal: \"true\" },\r\n      querys\r\n    }; //初次加载默认pageBean\r\n    // this.$store\r\n    //   .dispatch(\"storeProcess/getUrgentStateConf\", { getConf: true })\r\n    //   .then(data => {\r\n        this.$store\r\n          .dispatch(\"storeProcess/getLeaderTodoByPagination\", pageBean)\r\n          .then(() => {\r\n            //页面加载调用tudo.js里面的分页方法\r\n            this.fullscreenLoading = false;\r\n          });\r\n      //   if (data.conf) {\r\n      //     try {\r\n      //       data.conf = JSON.parse(data.conf);\r\n      //     } catch (error) {\r\n      //       data.conf = eval(\"(\" + data.conf + \")\");\r\n      //     }\r\n      //     this.urgentStateConfList = data.conf;\r\n      //     let conf = {};\r\n      //     for (let index = 0, c; (c = data.conf[index++]); ) {\r\n      //       if (c.default) {\r\n      //         this.urgentStateConf.defaultValue = c.state;\r\n      //       }\r\n      //       conf[c.state] = c;\r\n      //     }\r\n      //     this.urgentStateConf.conf = conf;\r\n      //   }\r\n      // });\r\n  }\r\n};\r\n",null]}