{"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\\form\\chart\\ReportSetting.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\chart\\ReportSetting.vue","mtime":1675071992038},{"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\r\nimport flow from \"@/api/flow.js\";\r\nconst eipFlowDialog = () => import(\"@/components/dialog/EipFlowDialog.vue\");\r\nconst eipSysTypeDialog = () =>\r\n  import(\"@/components/dialog/EipSysTypeDialog.vue\");\r\nconst eipUserSelector = () =>\r\n  import(\"@/components/selector/EipUserSelector.vue\");\r\nconst eipOrgSelector = () => import(\"@/components/selector/EipOrgSelector.vue\");\r\nexport default {\r\n  components: {\r\n    eipFlowDialog,\r\n    eipSysTypeDialog,\r\n    eipUserSelector,\r\n    eipOrgSelector\r\n  },\r\n  props: {\r\n    id: {\r\n      type: String,\r\n      default: \"\"\r\n    },\r\n    report: {\r\n      type: Object,\r\n      default: () => {\r\n        return { id: \"\", name: \"\" };\r\n      }\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      dialogVisible: false,\r\n      data: {\r\n        porp: {\r\n          flowType: \"1\",\r\n          name: \"\",\r\n          orgNames: \"\",\r\n          orgType: \"1\",\r\n          calcuCycle: \"year\",\r\n          dimension: \"org\",\r\n          orgIds:'',\r\n          orgNames:''\r\n        },\r\n        reportName: \"\"\r\n      },\r\n      strategy: [\r\n        { key: \"start_throughput\", value: \"启动流程吞吐量\" },\r\n        { key: \"handle_throughput\", value: \"办件吞吐量\" },\r\n        { key: \"handle_efficiency\", value: \"办件效率\" },\r\n        { key: \"work_status\", value: \"工作状态\" },\r\n        { key: \"task_num\", value: \"任务量\" },\r\n        { key: \"inst_start_num\", value: \"流程启动\" },\r\n        { key: \"flow_status\", value: \"流程状态\" }\r\n      ],\r\n      period: [\r\n        { key: \"year\", value: \"年度\" },\r\n        { key: \"quarter\", value: \"季度\" },\r\n        { key: \"monthly\", value: \"月度\" },\r\n        { key: \"custom\", value: \"自定义\" }\r\n      ],\r\n      timeArray: [],\r\n      yearArray: [],\r\n      quarterArray: [],\r\n      monthlyArray: [],\r\n      customArray: [],\r\n      changeInit: {\r\n        year: new Date().getFullYear(),\r\n        quarter: new Date().getFullYear() + \"-2\",\r\n        monthly: new Date().getFullYear() + \"-\" + (new Date().getMonth() + 1),\r\n        custom: \"2020-01-01\"\r\n      },\r\n      name: \"\"\r\n    };\r\n  },\r\n  mounted() {\r\n    this.initTimeArray();\r\n  },\r\n  methods: {\r\n    beforeClose() {\r\n      this.dialogVisible = false;\r\n    },\r\n    handleOpen() {\r\n      this.dialogVisible = true;\r\n      this.$nextTick(() => {\r\n        if (this.id) {\r\n          this.getReportSettingData();\r\n        } else {\r\n          this.name = \"\";\r\n          this.data = {\r\n            reportName: \"\",\r\n            porp: {\r\n              name: \"\",\r\n              id: \"\",\r\n              flowType: \"1\",\r\n              orgType: \"1\",\r\n              calcuCycle: \"year\",\r\n              dimension: \"org\",\r\n              orgIds:'',\r\n              orgNames:'',\r\n              userIds:'',\r\n              userNames:'',\r\n              calcuStart: new Date().getFullYear(),\r\n              calcuEnd: new Date().getFullYear(),\r\n              flowStatus: {\r\n                running: true,\r\n                back: true,\r\n                manualend: true,\r\n                end: true,\r\n                instances: true,\r\n                hourLong: true,\r\n                incomplete: true,\r\n                avgLong: true,\r\n                overtime: true,\r\n                closingRate: true\r\n              }\r\n            },\r\n            rightContent: {\r\n              histogram: true,\r\n              line: true,\r\n              pie: true,\r\n              dataViews: true\r\n            },\r\n            isDefault: \"1\",\r\n            reportId: this.report.id ? this.report.id : \"\",\r\n            name: this.report.name ? this.report.name : \"\"\r\n          };\r\n        }\r\n      });\r\n    },\r\n    getReportSettingData() {\r\n      flow.getAct(this.id).then(data => {\r\n        if (data && data.porp) {\r\n          data.porp = JSON.parse(data.porp);\r\n          //选择的是用户\r\n          if (data.porp.orgType == 2) {\r\n            data.porp.userIds = data.porp.orgIds || '';\r\n            data.porp.userNames = data.porp.orgNames || '';\r\n            data.porp.orgIds =  '';\r\n            data.porp.orgNames =  '';\r\n          }else{\r\n            data.porp.userIds = '';\r\n            data.porp.userNames = '';\r\n            data.porp.orgIds =  data.porp.orgIds || '';\r\n            data.porp.orgNames = data.porp.orgNames || '';\r\n          }\r\n        }\r\n        this.data = data;\r\n        this.data.rightContent = JSON.parse(data.rightContent);\r\n        this.data.name = this.report.name;\r\n      });\r\n    },\r\n    initTimeArray() {\r\n      let date = new Date();\r\n      date.setMonth(-10);\r\n      let monthlyYear = date.getFullYear();\r\n      let currentYear = new Date().getFullYear();\r\n\r\n      for (let i = 0; i < 20; i++) {\r\n        this.yearArray.push({\r\n          key: currentYear - (10 - i),\r\n          value: currentYear - (10 - i) + \"年\"\r\n        });\r\n        this.quarterArray.push({\r\n          key: currentYear - Math.floor((10 - i + 1) / 4) + \"-\" + ((i % 4) + 1),\r\n          value:\r\n            currentYear -\r\n            Math.floor((10 - i + 1) / 4) +\r\n            \"年第\" +\r\n            ((i % 4) + 1) +\r\n            \"季度\"\r\n        });\r\n        date.setMonth(i % 12);\r\n        date.setFullYear(monthlyYear + Math.floor(i / 12));\r\n        this.monthlyArray.push({\r\n          key: date.getFullYear() + \"-\" + (date.getMonth() + 1),\r\n          value: date.getFullYear() + \"年\" + (date.getMonth() + 1) + \"月\"\r\n        });\r\n      }\r\n    },\r\n    dialogOnConfirm(data) {\r\n      this.data.porp.name = \"\";\r\n      this.data.porp.id = \"\";\r\n      for (let i = 0; i < data.length; i++) {\r\n        if (i === data.length - 1) {\r\n          this.data.porp.name += data[i].name;\r\n          this.data.porp.id += data[i].defKey;\r\n          break;\r\n        }\r\n        this.data.porp.name += data[i].name + \",\";\r\n        this.data.porp.id += data[i].defKey + \",\";\r\n      }\r\n    },\r\n    sysTypeDialogOnConfirm(data) {\r\n      this.data.porp.name = \"\";\r\n      this.data.porp.id = \"\";\r\n      for (let i = 0; i < data.length; i++) {\r\n        if (i === data.length - 1) {\r\n          this.data.porp.name += data[i].name;\r\n          this.data.porp.id += data[i].id;\r\n          break;\r\n        }\r\n        this.data.porp.name += data[i].name + \",\";\r\n        this.data.porp.id += data[i].id + \",\";\r\n      }\r\n    },\r\n    showDialog(type) {\r\n      if (type === \"eipFlowDialog\") {\r\n        let params = [];\r\n        let names = [];\r\n        let ids = [];\r\n        if (this.data.porp.name) {\r\n          names = this.data.porp.name.split(\",\");\r\n          ids = this.data.porp.id.split(\",\");\r\n        }\r\n        for (let i = 0; i < names.length; i++) {\r\n          params.push({ name: names[i], defKey: ids[i] });\r\n        }\r\n        this.$refs[type].showDialog(params);\r\n      } else {\r\n        this.$refs[type].showDialog();\r\n      }\r\n    },\r\n    changeType(data) {\r\n      this.data.porp.calcuStart = this.changeInit[data];\r\n      this.data.porp.calcuEnd = this.changeInit[data];\r\n    },\r\n    changeFlowType() {\r\n      this.data.porp.id = \"\";\r\n      this.data.porp.name = \"\";\r\n    },\r\n    save() {\r\n      if (this.report.id) {\r\n        this.saveAct();\r\n      } else {\r\n        this.saveTitle();\r\n      }\r\n    },\r\n    saveTitle() {\r\n      let titleData = {\r\n        name: this.name,\r\n        type: 0,\r\n        id: \"\"\r\n      };\r\n      this.data.name = this.name;\r\n      if (!this.saveCheck()){\r\n        return;\r\n      }\r\n      flow.saveReport(titleData).then(data => {\r\n        if (data.state) {\r\n          this.data.reportId = data.value;\r\n          this.data.name = this.name;\r\n          this.saveAct();\r\n        } else {\r\n          this.$message.error(data.message);\r\n        }\r\n      });\r\n    },\r\n    saveAct() {\r\n      if (!this.saveCheck()){\r\n        return;\r\n      }\r\n      let data = { ...this.data };\r\n      data = JSON.parse(JSON.stringify(data));\r\n      //选择的是用户\r\n      if (data && data.porp && data.porp.orgType == 2) {\r\n         data.porp.orgIds =  data.porp.userIds ;\r\n         data.porp.orgNames = data.porp.userNames ;\r\n      }\r\n      data.rightContent = JSON.stringify(data.rightContent);\r\n      data.porp = JSON.stringify(data.porp);\r\n      flow.saveAct(data).then(result => {\r\n        if (result.state) {\r\n          this.$message({ type: \"success\", message: \"保存报表成功\" });\r\n          this.dialogVisible = false;\r\n          this.$emit(\"after-save\", {});\r\n        } else {\r\n          this.$message.error(\"保存报表失败\");\r\n        }\r\n      });\r\n    },\r\n    saveCheck(){\r\n      if (!this.data.name) {\r\n        this.$message({ type: \"warning\", message: \"请输入分类标题\" });\r\n        return false;\r\n      }\r\n      if (!this.data.reportName) {\r\n        this.$message({ type: \"warning\", message: \"请输入统计标题\" });\r\n        return false;\r\n      }\r\n      if (this.data.porp.dimension === \"flow\" && !this.data.porp.id) {\r\n        this.$message({ type: \"warning\", message: \"请选择流程范围\" });\r\n        return false;\r\n      }\r\n      if (this.data.porp.dimension === \"org\" && ((this.data.porp.orgType==='1' && !this.data.porp.orgIds) || (this.data.porp.orgType==='2' && !this.data.porp.userIds))) {\r\n        this.$message({\r\n          type: \"warning\",\r\n          message:\r\n            this.data.porp.orgType === \"1\" ? \"请选择部门范围\" : \"请选择人员\"\r\n        });\r\n        return false;\r\n      }\r\n      if (!this.data.params) {\r\n        this.$message({ type: \"warning\", message: \"请选择统计策略\" });\r\n        return false;\r\n      }\r\n      if (this.data.porp.calcuCycle === \"year\") {\r\n        if (this.data.porp.calcuEnd < this.data.porp.calcuStart) {\r\n          this.$message({\r\n            type: \"warning\",\r\n            message: \"结束时间不能小于开始时间\"\r\n          });\r\n          return false;\r\n        }\r\n      } else if (\r\n        this.data.porp.calcuCycle === \"quarter\" ||\r\n        this.data.porp.calcuCycle === \"monthly\"\r\n      ) {\r\n        let strEndYear = parseInt(this.data.porp.calcuEnd.slice(0, 4));\r\n        let strStartYear = parseInt(this.data.porp.calcuStart.slice(0, 4));\r\n\r\n        let strEnd = parseInt(this.data.porp.calcuEnd.slice(5));\r\n        let strStart = parseInt(this.data.porp.calcuStart.slice(5));\r\n\r\n        if (strEndYear < strStartYear) {\r\n          this.$message({\r\n            type: \"warning\",\r\n            message: \"结束时间不能小于开始时间\"\r\n          });\r\n          return false;\r\n        } else if (strEndYear === strStartYear) {\r\n          if (strEnd < strStart) {\r\n            this.$message({\r\n              type: \"warning\",\r\n              message: \"结束时间不能小于开始时间\"\r\n            });\r\n            return false;\r\n          }\r\n        }\r\n      }\r\n      return true;\r\n    }\r\n  }\r\n};\r\n",null]}