{"remainingRequest":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xypm-web\\src\\views\\StatisticalReport\\PaymentAccount.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xypm-web\\src\\views\\StatisticalReport\\PaymentAccount.vue","mtime":1723543352528},{"path":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"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\r\nimport req from '@/request.js'\r\nconst BigNumber = require('bignumber.js')\r\nexport default {\r\n  name: 'paymentAccount',\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    alias: {\r\n      type: String,\r\n      default: '',\r\n    },\r\n  },\r\n  data() {\r\n    return {\r\n      total: {\r\n        projectName: '合计',\r\n        amountAppropriated: 0,\r\n        contractAmount: 0,\r\n        contractName: '----',\r\n        payRatio: '----',\r\n        payeeAmountTotal: 0,\r\n        purpose: '----',\r\n        registerDate: '----',\r\n        registerPersonName: '----',\r\n      },\r\n      justShowSearch: this.isShow,\r\n      url: '',\r\n      size: 'medium',\r\n      loading: false,\r\n      searchForm: {\r\n        projectName: '', //项目名称\r\n        createTime: new Date().getFullYear(), //当前年份\r\n        projectType: '', //项目类型\r\n        purpose: '',\r\n      },\r\n      optionYears: [], //顶部搜索年份选择数组\r\n      details: {\r\n        projectInfo: {},\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      dialogVisible: false,\r\n      investTotal: 0,\r\n    }\r\n  },\r\n  created() {\r\n    this.getYear()\r\n    this.getYearTotal()\r\n  },\r\n  methods: {\r\n    getYearTotal() {\r\n      if (this.searchForm.createTime && this.searchForm.createTime != '') {\r\n        let formData = new FormData()\r\n        formData.append('year', this.searchForm.createTime)\r\n        this.$http\r\n          .post('${cqxy}/biz/ledger/pay/v1/totalPayByYear', formData)\r\n          .then((res) => {\r\n            let data = res.data.value\r\n            //  this.payTotal=data.payTotal\r\n            this.investTotal = res.data.value\r\n          })\r\n      } else {\r\n        let formData = new FormData()\r\n        formData.append('year', 0)\r\n        this.$http\r\n          .post('${cqxy}/biz/ledger/pay/v1/totalPayByYear', formData)\r\n          .then((res) => {\r\n            this.investTotal = res.data.value\r\n            this.currentYear = null\r\n          })\r\n      }\r\n    },\r\n    //获取顶部搜索的年份区间\r\n    getYear() {\r\n      const myDate = new Date()\r\n      this.currentYear = myDate.getFullYear()\r\n      this.beforeYear = this.currentYear - 1\r\n      const startYear = 2006 //起始年份\r\n      const endYear = myDate.getFullYear() //结束年份\r\n      for (let i = endYear; i >= startYear; i--) {\r\n        this.optionYears.push({\r\n          label: i + '年',\r\n          value: i,\r\n        })\r\n      }\r\n    },\r\n    handleReset() {\r\n      this.searchForm.projectName = ''\r\n      this.searchForm.createTime = ''\r\n      this.searchForm.projectType = ''\r\n      this.searchForm.purpose = ''\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.$nextTick(() => {\r\n        this.$refs.AtTable.load()\r\n      })\r\n    },\r\n    //导出\r\n    handleExport() {\r\n      this.loading = true\r\n      let query = []\r\n      let search = {\r\n        'pm.PROJECT_NAME_': this.searchForm.projectName,\r\n        project_type_: this.searchForm.projectType,\r\n        CREATE_TIME_: this.searchForm.createTime,\r\n        year_month_: this.searchForm.yearMonth,\r\n      }\r\n      if (!this.isShow) {\r\n        search['pm.ID_'] = this.pid\r\n        ;(search.purpose_ = this.searchForm.purpose), delete search.CREATE_TIME_\r\n      }\r\n      for (let i in search) {\r\n        if (search[i]) {\r\n          if (i == 'CREATE_TIME_') {\r\n            query.push(\r\n              {\r\n                group: 'createTimeGroup',\r\n                operation: 'BETWEEN',\r\n                parentGroup: '',\r\n                property: 'commencement_time_',\r\n                relation: 'OR',\r\n                value: [\r\n                  `${search[i]}-01-01 00:00:00`,\r\n                  `${search[i]}-12-31 23:59:59`,\r\n                ],\r\n              }\r\n              // {\r\n              //   group: 'createTimeSubGroup',\r\n              //   operation: 'LESS_EQUAL',\r\n              //   parentGroup: 'createTimeGroup',\r\n              //   property: 'commencement_time_',\r\n              //   relation: 'AND',\r\n              //   value: `${search[i]}-12-31 23:59:59`,\r\n              // },\r\n              // {\r\n              //   group: 'createTimeSubGroup',\r\n              //   operation: 'LESS',\r\n              //   parentGroup: 'createTimeGroup',\r\n              //   property: 'PROJECT_STATUS_',\r\n              //   relation: 'AND',\r\n              //   value: '12',\r\n              // }\r\n            )\r\n          } else if (i == 'year_month_') {\r\n            let lastDate = search[i][1]\r\n            let str = lastDate.split('-')\r\n            let year = parseInt(str[0])\r\n            let month = parseInt(str[1])\r\n            let date = new Date(year, month, 0).getDate()\r\n            let arr = [`${search[i][0]}-01`, `${search[i][1]}-${date}`]\r\n            console.log(arr)\r\n            query.push({\r\n              group: 'createTimeGroup',\r\n              operation: 'BETWEEN',\r\n              parentGroup: '',\r\n              property: 'register_date_',\r\n              relation: 'OR',\r\n              value: arr,\r\n            })\r\n          } else if (i == 'pm.PROJECT_NAME_') {\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          } else {\r\n            query.push({\r\n              group: 'advance',\r\n              operation: 'EQUAL',\r\n              property: i,\r\n              relation: 'AND',\r\n              value: search[i],\r\n            })\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        querys: query,\r\n        sorter: [\r\n          {\r\n            direction: 'ASC',\r\n            property: 'pr.PROJECT_ID_',\r\n          },\r\n          {\r\n            direction: 'ASC',\r\n            property: 'pr.CONTRACT_ID_',\r\n          },\r\n          {\r\n            direction: 'DESC',\r\n            property: 'pr.REGISTER_DATE_',\r\n          },\r\n        ],\r\n      }\r\n      req\r\n        .downloadPostCopy('${cqxy}/biz/ledger/pay/v1/exportDataToExcel', param)\r\n        .then((res) => {\r\n          if (res.status == 200) {\r\n            this.loading = false\r\n            this.$message.success('导出成功')\r\n          } else {\r\n            this.loading = false\r\n            this.$message.error('导出失败')\r\n          }\r\n        })\r\n    },\r\n\r\n    //查询\r\n    handleSearch() {\r\n      this.$refs.AtTable.load()\r\n    },\r\n    handleRowDBClick(data) {\r\n      console.log(data)\r\n      this.dialogVisible = true\r\n      this.details = data\r\n    },\r\n    // handleDict(val, obj, str) {\r\n    //   console.log('val:'+val,'obj:'+obj.name,'str:'+str)\r\n    //   // if (str === 'jdgl-yt') {\r\n    //   //   this.searchForm.purpose = obj.name\r\n    //   // }\r\n    // },\r\n    handleSelect(selection) {},\r\n    loadData(param, cb) {\r\n      if (this.isShow) {\r\n        // this.$refs.projectInfo.getProjectData(this.searchForm.createTime)\r\n      }\r\n      let query = []\r\n      let search = {\r\n        'pm.PROJECT_NAME_': this.searchForm.projectName,\r\n        project_type_: this.searchForm.projectType,\r\n        CREATE_TIME_: this.searchForm.createTime,\r\n        year_month_: this.searchForm.yearMonth,\r\n      }\r\n      if (!this.isShow) {\r\n        search['pm.ID_'] = this.pid\r\n        ;(search.purpose_ = this.searchForm.purpose), delete search.CREATE_TIME_\r\n      }\r\n      for (let i in search) {\r\n        if (search[i]) {\r\n          if (i == 'CREATE_TIME_') {\r\n            this.currentYear = this.searchForm.createTime\r\n            this.beforeYear = this.currentYear - 1\r\n            query.push(\r\n              {\r\n                group: 'createTimeGroup',\r\n                operation: 'BETWEEN',\r\n                parentGroup: '',\r\n                property: 'commencement_time_',\r\n                relation: 'OR',\r\n                value: [\r\n                  `${search[i]}-01-01 00:00:00`,\r\n                  `${search[i]}-12-31 23:59:59`,\r\n                ],\r\n              }\r\n              // {\r\n              //   group: 'createTimeSubGroup',\r\n              //   operation: 'LESS_EQUAL',\r\n              //   parentGroup: 'createTimeGroup',\r\n              //   property: 'register_date_',\r\n              //   relation: 'AND',\r\n              //   value: `${search[i]}-12-31 23:59:59`,\r\n              // },\r\n              // {\r\n              //   group: 'createTimeSubGroup',\r\n              //   operation: 'LESS',\r\n              //   parentGroup: 'createTimeGroup',\r\n              //   property: 'PROJECT_STATUS_',\r\n              //   relation: 'AND',\r\n              //   value: '12',\r\n              // }\r\n            )\r\n          } else if (i == 'year_month_') {\r\n            let lastDate = search[i][1]\r\n            let str = lastDate.split('-')\r\n            let year = parseInt(str[0])\r\n            let month = parseInt(str[1])\r\n            let date = new Date(year, month, 0).getDate()\r\n            let arr = [`${search[i][0]}-01`, `${search[i][1]}-${date}`]\r\n            query.push({\r\n              group: 'createTimeGroup',\r\n              operation: 'BETWEEN',\r\n              parentGroup: '',\r\n              property: 'register_date_',\r\n              relation: 'OR',\r\n              value: arr,\r\n            })\r\n          } else if (i == 'pm.PROJECT_NAME_') {\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          } else {\r\n            query.push({\r\n              group: 'advance',\r\n              operation: 'EQUAL',\r\n              property: i,\r\n              relation: 'AND',\r\n              value: search[i],\r\n            })\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('${cqxy}/biz/ledger/pay/v1/page', param)\r\n        .then(\r\n          (resp) => {\r\n            let response = resp.data.value\r\n            let data = response.rows\r\n            this.total.amountAppropriated = this.calculationTotal(data, 'amountAppropriated')\r\n            this.total.contractAmount = this.calculationTotal(data, 'contractAmount')\r\n            this.total.payeeAmountTotal = this.calculationTotal(data, 'payeeAmountTotal')\r\n            if (data.length !== 0) {\r\n              data.push(this.total)\r\n            }\r\n            this.data = data\r\n            // console.log(response, 'response')\r\n\r\n            this.pageResult = {\r\n              page: response.page,\r\n              pageSize: response.pageSize,\r\n              total: response.total,\r\n            }\r\n            this.getYearTotal()\r\n          },\r\n          (error) => {\r\n            reject(error)\r\n          }\r\n        )\r\n        .finally(() => cb())\r\n    },\r\n    // 计算列表合同金额合计金额\r\n    calculationTotal(data, key) {\r\n      let total = new BigNumber(0)\r\n      if (key && data && data.length !== 0) {\r\n        data.forEach((item) => {\r\n          if (item[key]) {\r\n            total = total.plus(item[key])\r\n          } else {\r\n            total = total.plus(0)\r\n          }\r\n        })\r\n      }\r\n      return this.moneyFormatter(total)\r\n    },\r\n    cellClassNameFn(row) {\r\n      // 列表项目名称为【合计】隐藏复选框\r\n      if (row.row.projectName === '合计') {\r\n        return 'table-column-hidden'\r\n      }\r\n    },\r\n  },\r\n}\r\n",null]}