{"remainingRequest":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xypm-web\\src\\views\\ProcessManagement\\ScheduleManagement\\MonthlyEngineeringReport.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xypm-web\\src\\views\\ProcessManagement\\ScheduleManagement\\MonthlyEngineeringReport.vue","mtime":1687290684395},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xypm-web\\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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 ProjectInfoDialog from '@/components/dialog/ProjectInfoDialog.vue'\r\nimport req from '@/request.js'\r\nimport utils from '@/utils.js'\r\nexport default {\r\n  name: 'MonthlyEngineeringReport',\r\n  components: {\r\n    ProjectInfoDialog,\r\n  },\r\n  props: {\r\n    pid: {\r\n      type: String,\r\n      default: '',\r\n    },\r\n    isShow: {\r\n      type: Boolean,\r\n      default: true,\r\n    },\r\n  },\r\n  data() {\r\n    return {\r\n      importData: {\r\n        title: '工程月报导入',\r\n        templateName: '工程月报模板.xls',\r\n        downloadUrl: '/../fvue/static/excel/MonthlyEngineeringReport.xlsx',\r\n        importUrl:\r\n          window.context.cqxy +\r\n          '/biz/processManagement/progressManageReport/v1/importExcelData',\r\n        showProject: true,\r\n        projectId: '',\r\n        // params: {\r\n        //   portDate: '',\r\n        //   portType: '',\r\n        //   portUnit: '',\r\n        //   // portUserId: '',\r\n        //   portUserName: '',\r\n        // },\r\n      },\r\n      loading: false,\r\n      projectObj: [], //获取的所有项目数组\r\n      labelPosition: 'right', //表单对齐方式\r\n      searchForm: {\r\n        projectId: '',\r\n        portDate: '',\r\n        portType: '',\r\n        portUserName: '',\r\n      }, //顶部搜索参数\r\n      data: [], //表格数据\r\n      pageResult: {\r\n        page: 1,\r\n        pageSize: 20,\r\n        total: 0,\r\n      },\r\n      form: {\r\n        portUserId: '',\r\n        portUserName: '',\r\n        imageProgress: 0,\r\n        investmentRatio: '0.75',\r\n        engineeringChange: 0,\r\n        projectOvervie: 0,\r\n        projectInfo: {\r\n          projectName: '',\r\n          projectCode: '',\r\n        },\r\n        accessoryInfo: [],\r\n      },\r\n      projectMoney: '',\r\n      totalMoney: '',\r\n      dialogVisible: false,\r\n      dialogTitle: '添加',\r\n      //表单验证\r\n      rules: {\r\n        'projectInfo.projectName': {\r\n          required: true,\r\n          message: '项目名称不能为空',\r\n          trigger: 'blur',\r\n        },\r\n        // 'projectInfo.projectCode': {\r\n        //   required: true,\r\n        //   message: '项目代码不能为空',\r\n        //   trigger: 'blur',\r\n        // },\r\n        // portDate: {\r\n        //   required: true,\r\n        //   message: '填报日期不能为空',\r\n        //   trigger: 'blur',\r\n        // },\r\n        // portType: {\r\n        //   required: true,\r\n        //   message: '填报类型不能为空',\r\n        //   trigger: 'blur',\r\n        // },\r\n        // portUnit: {\r\n        //   required: true,\r\n        //   message: '填报方不能为空',\r\n        //   trigger: 'blur',\r\n        // },\r\n        // portUserName: {\r\n        //   required: true,\r\n        //   message: '经办人不能为空',\r\n        //   trigger: 'blur',\r\n        // },\r\n      },\r\n    }\r\n  },\r\n  computed: {\r\n    deleteUrl: function () {\r\n      return (\r\n        window.context.cqxy +\r\n        '/biz/processManagement/progressManageReport/v1/delete'\r\n      )\r\n    },\r\n    //计算工程进度的值\r\n    // \"form.imageProgress\": {\r\n    //   get:function() {\r\n    //     let num =\r\n    //       Math.round(\r\n    //         (this.form.progressDescription / this.projectMoney) * 100\r\n    //      ) / 100\r\n    //     return Number.isNaN(num) ? 0 : num == 'Infinity' ? 100 : num\r\n    //   },\r\n    //   set: function(newValue) {\r\n    //     this.form.imageProgress = newValue + '%'\r\n    //   }\r\n    // },\r\n    //计算累计总投资的值\r\n    // 'form.projectOvervie': {\r\n    //   get: () => {\r\n    //     let num =\r\n    //       Number(this.form.progressDescription) + Number(this.totalMoney)\r\n    //     return Number.isNaN(num) ? 0 : num !== 'undefined' ? num : 0\r\n    //   },\r\n    //   set: newValue => {\r\n    //     this.form.projectOvervie = newValue\r\n    //   }\r\n    // },\r\n    // //计算本月产值的值\r\n    // 'form.engineeringChange': {\r\n    //   get: () => {\r\n    //     let num = Math.round((this.form.progressDescription / 75) * 100) / 100\r\n    //     return Number.isNaN(num) ? 0 : num\r\n    //   },\r\n    //   set: newValue => {\r\n    //     this.form.engineeringChange = newValue + '%'\r\n    //   }\r\n    // }\r\n  },\r\n  watch: {\r\n    // 'form.progressDescription': function(newValue, oldValue) {\r\n    //   newValue = newValue ? newValue : 0\r\n    //   let num1 = FormMath.toNumber(newValue)\r\n    //   let num2 = FormMath.toNumber(this.projectMoney) * 10000\r\n    //   num2 = num2 == 0 ? 1 : num2 //解决可能出现的inifity,例2/0 = inifity\r\n    //   let num3 = FormMath.toNumber(this.totalMoney)\r\n    //   this.form.imageProgress = FormMath.tofixed((num1 / num2) * 100, 2)\r\n    //   let ary = [num1, num3]\r\n    //   this.form.projectOvervie = FormMath.tofixed(FormMath.sum(ary), 2)\r\n    //   this.form.engineeringChange = FormMath.tofixed(num1 / 0.75, 2)\r\n    // },\r\n    projectMoney: function (newValue, oldValue) {\r\n      newValue = newValue == 0 ? 1 : newValue\r\n      let num1 = FormMath.toNumber(this.form.progressDescription)\r\n      num1 = num1 ? num1 : 0\r\n      let num2 = FormMath.toNumber(newValue) * 10000\r\n      let num3 = FormMath.toNumber(this.totalMoney)\r\n      this.form.imageProgress = FormMath.tofixed((num1 / num2) * 100, 2)\r\n      // let ary = [num1, num3]\r\n      // this.form.projectOvervie = FormMath.tofixed(FormMath.sum(ary), 2)\r\n      this.form.projectOvervie = num3\r\n      // this.form.engineeringChange = FormMath.tofixed(num1 / 0.75, 2)\r\n      let num4 = this.form.investmentRatio\r\n      this.form.engineeringChange = FormMath.tofixed(num1 / num4, 2)\r\n    },\r\n    totalMoney: function (newValue, oldValue) {\r\n      let num1 = FormMath.toNumber(this.form.progressDescription)\r\n      num1 = num1 ? num1 : 0\r\n      let num2 = FormMath.toNumber(this.projectMoney) * 10000\r\n      num2 = num2 == 0 ? 1 : num2\r\n      let num3 = FormMath.toNumber(newValue)\r\n      this.form.imageProgress = FormMath.tofixed((num1 / num2) * 100, 2)\r\n      // let ary = [num1, num3]\r\n      // this.form.projectOvervie = FormMath.tofixed(FormMath.sum(ary), 2)\r\n      this.form.projectOvervie = num3\r\n      let num4 = this.form.investmentRatio\r\n      this.form.engineeringChange = FormMath.tofixed(num1 / num4, 2)\r\n    },\r\n  },\r\n  mounted() {\r\n    this.initProjectAll()\r\n  },\r\n\r\n  methods: {\r\n    //获取投资总和\r\n    gettotalMoney(projectId) {\r\n      let params = {\r\n        projectId: projectId,\r\n        // registerDate: this.getDate(),\r\n        registerDate: this.form.portDate,\r\n      }\r\n      this.$http\r\n        .post(\r\n          '${cqxy}/biz/processManagement/progressManageReport/v1/getInvestmentTotal',\r\n          params\r\n        )\r\n        .then((res) => {\r\n          this.totalMoney = res.data.value\r\n        })\r\n    },\r\n    //重置\r\n    handleReset() {\r\n      this.searchForm.projectId = ''\r\n      this.searchForm.portDate = ''\r\n      this.searchForm.portType = ''\r\n      this.searchForm.portUserName = ''\r\n      this.$refs['searchForm'].resetFields()\r\n      this.pageResult = {\r\n        page: 1,\r\n        pageSize: 20,\r\n        total: 0,\r\n      }\r\n      this.$refs['searchForm'].resetFields()\r\n      this.$nextTick(() => {\r\n        this.$refs.AtTable.load()\r\n      })\r\n    },\r\n    handleSelectProject(data) {\r\n      this.form.portUserName = data.projectManager\r\n      this.form.projectInfo.projectName = data.projectName\r\n      this.form.projectInfo.projectCode = data.projectCode\r\n      this.form.projectId = data.id\r\n      this.gettotalMoney(this.form.projectId)\r\n      this.projectMoney = data.projectMoney\r\n      this.$refs.ruleForm.clearValidate()\r\n    },\r\n    //打开选择项目弹框\r\n    handleFocusProject() {\r\n      this.$refs.project.open()\r\n    },\r\n    //导入后重新加载数据\r\n    load() {\r\n      this.$refs.AtTable.load()\r\n    },\r\n    //导出\r\n    handleExport() {\r\n      let query = []\r\n      let search = {\r\n        'pm.ID_': this.searchForm.projectId,\r\n        port_type_: this.searchForm.portType,\r\n        port_date_: this.searchForm.portDate,\r\n      }\r\n      if (!this.isShow) {\r\n        search['pm.ID_'] = this.pid\r\n      }\r\n      for (let i in search) {\r\n        if (search[i]) {\r\n          query.push({\r\n            group: 'advance',\r\n            operation: 'LIKE',\r\n            property: i,\r\n            relation: 'AND',\r\n            value: search[i],\r\n          })\r\n        }\r\n      }\r\n      let param = {\r\n        pageBean: {\r\n          page: 1,\r\n          pageSize: -1,\r\n          showTotal: true,\r\n        },\r\n\r\n        querys: query,\r\n        sorter: [],\r\n      }\r\n      req\r\n        .downloadPostCopy(\r\n          '${cqxy}/biz/processManagement/progressManageReport/v1/exportDataToExcel',\r\n          param\r\n        )\r\n        .then((res) => {\r\n          if (res.status == 200) {\r\n            this.$message.success('导出成功')\r\n          } else {\r\n            this.$message.error('导出失败')\r\n          }\r\n        })\r\n    },\r\n    //获取附件信息\r\n    accessoryInfo(info) {\r\n      this.form.accessoryInfo = info\r\n    },\r\n    initProjectAll() {\r\n      //初始获取所有项目数据\r\n      if (this.isShow) {\r\n        this.$http.post('${cqxy}/biz/projectManagement/pm/v1/All').then(\r\n          (res) => {\r\n            this.projectObj = res.data.value\r\n          },\r\n          (error) => {\r\n            reject(error)\r\n          }\r\n        )\r\n      } else {\r\n        let params = {\r\n          pageBean: {\r\n            page: 1,\r\n            pageSize: 500,\r\n            total: 0,\r\n          },\r\n          querys: [\r\n            {\r\n              group: 'main',\r\n              operation: 'EQUAL',\r\n              property: 'id',\r\n              relation: 'AND',\r\n              value: this.pid,\r\n            },\r\n          ],\r\n        }\r\n        this.$http\r\n          .post('${cqxy}/biz/projectManagement/pm/v1/page', params)\r\n          .then((res) => {\r\n            if (res.data.state) {\r\n              let resp = res.data.value\r\n              this.projectObj = resp.rows\r\n            }\r\n          })\r\n      }\r\n    },\r\n    //查询\r\n    handleSearch() {\r\n      this.$refs.AtTable.load()\r\n    },\r\n    afterSaveData() {\r\n      setTimeout(() => {\r\n        this.form = {\r\n          projectId: '',\r\n          portDate: '',\r\n          portType: '',\r\n          // portUserId: '',\r\n          portUserName: '',\r\n          projectInfo: {\r\n            projectName: '',\r\n            projectCode: '',\r\n          },\r\n          accessoryInfo: [],\r\n        }\r\n        this.dialogVisible = false\r\n        this.$refs.AtTable.load()\r\n      }, 500)\r\n    },\r\n    handleAdd() {\r\n      this.isEdit = false\r\n      this.dialogTitle = '添加'\r\n      this.dialogVisible = true\r\n      let date = new Date()\r\n      // let currentUser = JSON.parse(window.sessionStorage.currentUser)\r\n      this.form = {\r\n        projectId: '',\r\n        portDate: utils.formatDateYear(date),\r\n        portType: 2,\r\n        // portUserId: currentUser.userId,\r\n        // portUserName: currentUser.username,\r\n        portUserName: '',\r\n        imageProgress: 0,\r\n        investmentRatio: '0.75',\r\n        engineeringChange: 0,\r\n        projectOvervie: 0,\r\n        projectInfo: {\r\n          projectName: '',\r\n          projectCode: '',\r\n        },\r\n        accessoryInfo: [],\r\n      }\r\n      if (this.isShow) {\r\n        let selectedProject = this.projectObj.find((item) => {\r\n          if (item.currentProject && item.currentProject == 1) {\r\n            return item.currentProject == 1\r\n          }\r\n        })\r\n        this.form.portUserName = selectedProject.portUserName\r\n        this.form.projectInfo.projectName = selectedProject.projectName\r\n        this.form.projectInfo.projectCode = selectedProject.projectCode\r\n        this.form.projectId = selectedProject.id\r\n        this.form.portUserName = selectedProject.projectManager\r\n        this.projectMoney = selectedProject.projectMoney\r\n        this.gettotalMoney(this.form.projectId)\r\n      } else {\r\n        //根据项目id查询\r\n        this.form.portUserName = this.projectObj[0].portUserName\r\n        this.form.projectInfo.projectName = this.projectObj[0].projectName\r\n        this.form.projectInfo.projectCode = this.projectObj[0].projectCode\r\n        this.form.projectId = this.projectObj[0].id\r\n        this.form.portUserName = this.projectObj[0].projectManager\r\n        this.projectMoney = this.projectObj[0].projectMoney\r\n        this.gettotalMoney(this.form.projectId)\r\n      }\r\n    },\r\n    handleRowDBClick(data) {\r\n      this.isEdit = true\r\n      if (this.isShow) {\r\n        let selectedProject = this.projectObj.find((item) => {\r\n          if (item.currentProject && item.currentProject == 1) {\r\n            return item.currentProject == 1\r\n          }\r\n        })\r\n        this.form.portUserName = selectedProject.portUserName\r\n        this.form.projectInfo.projectName = selectedProject.projectName\r\n        this.form.projectInfo.projectCode = selectedProject.projectCode\r\n        this.form.projectId = selectedProject.id\r\n        this.form.portUserName = selectedProject.projectManager\r\n        this.projectMoney = selectedProject.projectMoney\r\n        this.gettotalMoney(this.form.projectId)\r\n      } else {\r\n        //根据项目id查询\r\n        this.form.portUserName = this.projectObj[0].portUserName\r\n        this.form.projectInfo.projectName = this.projectObj[0].projectName\r\n        this.form.projectInfo.projectCode = this.projectObj[0].projectCode\r\n        this.form.projectId = this.projectObj[0].id\r\n        this.form.portUserName = this.projectObj[0].projectManager\r\n        this.projectMoney = this.projectObj[0].projectMoney\r\n        this.gettotalMoney(this.form.projectId)\r\n      }\r\n      this.dialogTitle = '修改'\r\n      this.$http\r\n        .post(\r\n          '${cqxy}/biz/processManagement/progressManageReport/v1/detail/' +\r\n            data.id\r\n        )\r\n        .then((res) => {\r\n          this.dialogVisible = true\r\n          let resp = res.data.value\r\n          this.form = resp\r\n        })\r\n    },\r\n\r\n    handleSelect(selection) {},\r\n    //取消\r\n    handleDialogCancel() {\r\n      this.dialogVisible = false\r\n      this.form = {\r\n        projectId: '',\r\n        portDate: '',\r\n        portType: '',\r\n        portUserId: '',\r\n        investmentRatio: '0.75',\r\n        portUserName: '',\r\n        projectInfo: {\r\n          projectName: '',\r\n          projectCode: '',\r\n        },\r\n        accessoryInfo: [],\r\n      }\r\n    },\r\n    //关闭窗口\r\n    handleDialogClose(val) {\r\n      this.dialogVisible = false\r\n      this.form = {\r\n        projectId: '',\r\n        portDate: '',\r\n        portType: '',\r\n        portUserId: '',\r\n        portUserName: '',\r\n        projectInfo: {\r\n          projectName: '',\r\n          projectCode: '',\r\n        },\r\n        accessoryInfo: [],\r\n      }\r\n    },\r\n    //提交保存\r\n    handleDialogSubmit(formName) {\r\n      this.$refs[formName].validate((valid) => {\r\n        if (valid) {\r\n          if (this.form.accessoryInfo && this.form.accessoryInfo.length > 0) {\r\n            this.loading = true\r\n            this.form.decisionBasisType = this.form.decisionBasisType + ''\r\n            this.form.accessoryInfo.forEach((item) => {\r\n              if (item.id) {\r\n                delete item.id\r\n              }\r\n            })\r\n          }\r\n          this.form.imageProgress = this.form.imageProgress + '%'\r\n          this.$http\r\n            .post(\r\n              '${cqxy}/biz/processManagement/progressManageReport/v1/save',\r\n              this.form\r\n            )\r\n            .then((res) => {\r\n              if (res.status == 200) {\r\n                setTimeout(() => {\r\n                  this.$message.success(res.data.message)\r\n                  this.afterSaveData()\r\n                }, 500)\r\n              } else {\r\n                this.$message.error(res.data.message)\r\n              }\r\n              this.loading = false\r\n            })\r\n        }\r\n        // else if (this.form.accessoryInfo.length === 0) {\r\n        //   this.$message.error('至少上传一个附件')\r\n        // }\r\n        else {\r\n          this.$message({\r\n            message: '*号必填项,不能为空!',\r\n            type: 'warning',\r\n          })\r\n          return false\r\n        }\r\n      })\r\n    },\r\n    loadData(param, cb) {\r\n      let query = []\r\n      let search = {\r\n        'pm.ID_': this.searchForm.projectId,\r\n        port_type_: this.searchForm.portType,\r\n        port_date_: this.searchForm.portDate,\r\n      }\r\n      if (!this.isShow) {\r\n        search['pm.ID_'] = this.pid\r\n        this.importData.projectId = this.pid\r\n      }\r\n      for (let i in search) {\r\n        if (search[i]) {\r\n          query.push({\r\n            group: 'advance',\r\n            operation: 'LIKE',\r\n            property: i,\r\n            relation: 'AND',\r\n            value: search[i],\r\n          })\r\n        }\r\n      }\r\n      if (param.querys && param.querys.length) {\r\n        param.querys.push(...query)\r\n      } else {\r\n        param.querys = query\r\n      }\r\n      this.$http\r\n        .post(\r\n          '${cqxy}/biz/processManagement/progressManageReport/v1/page',\r\n          param\r\n        )\r\n        .then(\r\n          (resp) => {\r\n            let response = resp.data.value\r\n            this.data = response.rows\r\n            this.pageResult = {\r\n              page: response.page,\r\n              pageSize: response.pageSize,\r\n              total: response.total,\r\n            }\r\n          },\r\n          (error) => {\r\n            reject(error)\r\n          }\r\n        )\r\n        .finally(() => {\r\n          if (cb) {\r\n            cb()\r\n          }\r\n        })\r\n    },\r\n    handleInput(val) {\r\n      val = val ? val : 0\r\n      let num1 = FormMath.toNumber(val)\r\n      let num2 = FormMath.toNumber(this.projectMoney) * 10000\r\n      num2 = num2 == 0 ? 1 : num2 //解决可能出现的inifity,例2/0 = inifity\r\n      let num3 = FormMath.toNumber(this.totalMoney)\r\n      this.form.imageProgress = FormMath.tofixed((num1 / num2) * 100, 2)\r\n      // let ary = [num1, num3]\r\n      // this.form.projectOvervie = FormMath.tofixed(FormMath.sum(ary), 2)\r\n      this.form.projectOvervie = num3\r\n      let num4 = this.form.investmentRatio\r\n      this.form.engineeringChange = FormMath.tofixed(num1 / num4, 2)\r\n    },\r\n    handleInvestmentRatio(val) {\r\n      let num1 = FormMath.toNumber(this.form.progressDescription)\r\n      num1 = num1 ? num1 : 0\r\n      this.form.engineeringChange = FormMath.tofixed(num1 / val, 2)\r\n    },\r\n  },\r\n}\r\n",null]}