{"remainingRequest":"D:\\jenkins\\workspace\\xypm-web\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xypm-web\\src\\views\\StatisticalReport\\ProjectAccount.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xypm-web\\src\\views\\StatisticalReport\\ProjectAccount.vue","mtime":1681501867278},{"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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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\nimport dictUtils from '@/components/dict/DictSelectUtils.js'\r\nexport default {\r\n  name: 'ProjectAccount',\r\n  data() {\r\n    return {\r\n      // url:'',\r\n      data: [],\r\n      selectData: [],\r\n      expandTableData: [],\r\n      searchForm: {\r\n        id: '',\r\n        projectId: '',\r\n        createTime: new Date().getFullYear(),\r\n      },\r\n      importData: {},\r\n      loading2: false,\r\n      loading: false,\r\n      findling: false, //查询加载\r\n      pageSizes: [10, 20, 50, 100, 200, 300, 500],\r\n      pagerCount: 11,\r\n      pagination: {page: 1, pageSize: 10, total: 0},\r\n      pageResult: {\r\n        page: 1,\r\n        pageSize: 20,\r\n        total: 0,\r\n      },\r\n      queryFilter: {\r\n        querys:[]\r\n      },\r\n      size: '',\r\n      projectStatusList:[],\r\n      statusList:[],  //项目状态列表\r\n      dialogVisible: false,\r\n      detailData: [],\r\n      defaultExpandAll: false,\r\n      expandRowKeys: [],\r\n      projectType: {},\r\n      expandLoading: false,\r\n      optionYears: [], //顶部搜索年份选择数组\r\n    }\r\n  },\r\n  created() {\r\n    this.getYear()\r\n    this.projectStatusList = dictUtils.getDictItemsFromCache('xmgl-xmzt')\r\n    this.projectStatusList.forEach(item=>{\r\n      if(item.value<12){\r\n        this.statusList.push({\r\n          value:'1',name:'在建'\r\n        })\r\n      }else{\r\n        this.statusList.push({\r\n          value:'2',name:'新建'\r\n        })\r\n      }\r\n    })\r\n    this.statusList = this.statusList.filter(function(item,index,self){\r\n            return self.findIndex(el=>el.value==item.value)===index\r\n        })\r\n  },\r\n  methods: {\r\n    //获取顶部搜索的年份区间\r\n    getYear() {\r\n      const myDate = new Date()\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    handleExport() {\r\n      this.loading2 = true\r\n      let query = [\r\n        {\r\n          group: 'defaultQueryGroup',\r\n          operation: 'EQUAL',\r\n          relation: 'AND',\r\n          property: 'parent_id_',\r\n          value: 'root',\r\n        },\r\n      ]\r\n      let search = {\r\n        id_: this.searchForm.projectId,\r\n        PROJECT_TYPE_: this.searchForm.id,\r\n        CREATE_TIME_: this.searchForm.createTime,\r\n        // project_status_: this.searchForm.prijectStatus,\r\n        // decision_basis_type_: this.searchForm.decisionBasisType,\r\n        // bidding_charge_type_: this.searchForm.biddingChargeType\r\n      }\r\n      for (let i in search) {\r\n        if (search[i] && i !== 'CREATE_TIME_') {\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        } else if (search[i] && i == 'CREATE_TIME_') {\r\n          query.push({\r\n            group: 'createTimeGroup',\r\n            operation: 'BETWEEN',\r\n            relation: 'AND',\r\n            property: 'COMMENCEMENT_TIME_',\r\n            value: [\r\n              `${this.searchForm.createTime}-01-01 00:00:00`,\r\n              `${this.searchForm.createTime}-12-31 23:59:59`,\r\n            ],\r\n          })\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',\r\n          //   parentGroup: 'createTimeGroup',\r\n          //   property: 'PROJECT_STATUS_',\r\n          //   relation: 'AND',\r\n          //   value: '12',\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      }\r\n      req\r\n        .downloadPostCopy(\r\n          '${cqxy}/biz/ledger/projectLedger/v1/exportDataToExcel',\r\n          param\r\n        )\r\n        .then((res) => {\r\n          if (res.status == 200) {\r\n            this.loading2 = false\r\n            this.$message.success('导出成功')\r\n          } else {\r\n            this.loading2 = false\r\n            this.$message.error('导出失败')\r\n          }\r\n        })\r\n    },\r\n    handleExpandAll() {\r\n      this.defaultExpandAll = !this.defaultExpandAll\r\n      if (!this.defaultExpandAll) {\r\n        this.expandRowKeys = []\r\n      } else {\r\n        this.expandRowKeys = this.data.map((item) => {\r\n          if (item.name !== '总计') {\r\n            return item.id\r\n          }\r\n        })\r\n      }\r\n    },\r\n    /* 导入回调事件 */\r\n    load() {},\r\n    handleDialogCancel() {\r\n      this.dialogVisible = false\r\n    },\r\n    handleDialogClose() {\r\n      this.dialogVisible = false\r\n    },\r\n    handleRowDBClick(data, id) {\r\n      this.detailData = data\r\n      this.dialogVisible = true\r\n    },\r\n    /* 内部表格分页方法 */\r\n    handleSizeChange(pageSize, id) {\r\n      let pagination = {...this.data[id].pagination, pageSize}\r\n      this.$set(this.data[id].pagination, 'page', pagination.page)\r\n      this.$set(this.data[id].pagination, 'pageSize', pagination.pageSize)\r\n      this.$set(this.data[id].pagination, 'total', pagination.total)\r\n      this.handleExpandChange(this.projectType)\r\n    },\r\n    handleCurrentChange(page, id) {\r\n      let pagination = {...this.data[id].pagination, page}\r\n      this.$set(this.data[id].pagination, 'page', pagination.page)\r\n      this.$set(this.data[id].pagination, 'pageSize', pagination.pageSize)\r\n      this.$set(this.data[id].pagination, 'total', pagination.total)\r\n      this.handleExpandChange(this.projectType, true)\r\n    },\r\n    handleExpandChange(row, doNotResetPage) {\r\n      // console.log(row, 'row')\r\n      this.expandLoading = true\r\n      this.projectType = {\r\n        value: row.value,\r\n        id: row.id,\r\n      }\r\n      // 默认重置页码为第一页\r\n      if (!doNotResetPage) {\r\n        if (row.id) {\r\n          this.data[row.id].pagination.page = 1\r\n        }\r\n      }\r\n      let param = {}\r\n      if (row.id) {\r\n        param = {\r\n          pageBean: {\r\n            ...this.data[row.id].pagination,\r\n            showTotal: true,\r\n          },\r\n          querys: [\r\n            {\r\n              operation: 'EQUAL',\r\n              property: 'PROJECT_TYPE_',\r\n              relation: 'AND',\r\n              value: this.projectType.value,\r\n            },\r\n          ],\r\n        }\r\n      } else {\r\n        param = {\r\n          pageBean: {\r\n            ...this.pagination,\r\n            showTotal: true,\r\n          },\r\n          querys: [\r\n            {\r\n              operation: 'EQUAL',\r\n              property: 'PROJECT_TYPE_',\r\n              relation: 'AND',\r\n              value: this.projectType.value,\r\n            },\r\n          ],\r\n        }\r\n      }\r\n      param.querys.push({\r\n        group: 'defaultQueryGroup',\r\n        operation: 'EQUAL',\r\n        relation: 'AND',\r\n        property: 'parent_id_',\r\n        value: 'root',\r\n      })\r\n      if (this.searchForm.createTime) {\r\n        param.querys.push(\r\n          {\r\n            group: 'createTimeGroup',\r\n            operation: 'BETWEEN',\r\n            parentGroup: '',\r\n            property: 'commencement_time_',\r\n            relation: 'AND',\r\n            value: [\r\n              `${this.searchForm.createTime}-01-01 00:00:00`,\r\n              `${this.searchForm.createTime}-12-31 23:59:59`,\r\n            ],\r\n          },\r\n        )\r\n      }\r\n      delete param.pageBean.total\r\n      this.$http\r\n        .post('${cqxy}/biz/ledger/projectLedger/v1/page', param)\r\n        .then((resp) => {\r\n          console.log(resp, 'respssss')\r\n          this.expandLoading = false\r\n          let response = resp.data.value\r\n          if (row.id) {\r\n            this.$set(this.data[row.id], 'expandTableData', response.data)\r\n            this.$set(this.data[row.id].pagination, 'page', response.page)\r\n            this.$set(\r\n              this.data[row.id].pagination,\r\n              'pageSize',\r\n              response.pageSize\r\n            )\r\n            this.$set(this.data[row.id].pagination, 'total', response.total)\r\n          }\r\n          console.log(this.data, 'this.data')\r\n          // this.pagination = {\r\n          //   page: response.page,\r\n          //   pageSize: response.pageSize,\r\n          //   total: response.total\r\n          // }\r\n        })\r\n    },\r\n    loadData(param, cb) {\r\n      this.queryFilter.querys = [\r\n        {\r\n          group: 'defaultQueryGroup',\r\n          operation: 'EQUAL',\r\n          relation: 'AND',\r\n          property: 'parent_id_',\r\n          value: 'root',\r\n        },\r\n      ]\r\n      let search = {\r\n        id_: this.searchForm.projectId,\r\n        PROJECT_TYPE_: this.searchForm.id,\r\n        CREATE_TIME_: this.searchForm.createTime,\r\n      }\r\n      for (let i in search) {\r\n        if (search[i] && i !== 'CREATE_TIME_') {\r\n          this.queryFilter.querys.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        } else if (search[i] && i == 'CREATE_TIME_') {\r\n          this.queryFilter.querys.push({\r\n            group: 'createTimeGroup',\r\n            operation: 'BETWEEN',\r\n            relation: 'AND',\r\n            property: 'COMMENCEMENT_TIME_',\r\n            value: [\r\n              `${this.searchForm.createTime}-01-01 00:00:00`,\r\n              `${this.searchForm.createTime}-12-31 23:59:59`,\r\n            ],\r\n          })\r\n        }\r\n      }\r\n      this.selectData = []\r\n      this.$http\r\n        .post('${yhxt}/biz/ledger/projectLedger/v1/typeData', this.queryFilter)\r\n        .then((res) => {\r\n          if (res.data.state) {\r\n            console.log(res,'res');\r\n            res.data.value.forEach((item, index) => {\r\n              item.id = index\r\n              if (item.name == '总计' || Number(item.total) == 0) {\r\n                item.hasChildren = 'false'\r\n              } else {\r\n                item.hasChildren = true\r\n                this.selectData.push({\r\n                  name: item.name,\r\n                  id: item.value,\r\n                })\r\n              }\r\n            })\r\n            this.data = res.data.value\r\n            this.data.forEach((item, index) => {\r\n              this.projectType = {\r\n                name: item.name,\r\n                id: item.id,\r\n                value: item.value,\r\n              }\r\n              item.expandTableData = []\r\n              item.pagination = {page: 1, pageSize: 10, total: 0}\r\n            })\r\n          } else {\r\n            this.$message.error(res.data.message)\r\n          }\r\n        })\r\n      if (cb) {\r\n        cb()\r\n      }\r\n    },\r\n    findinfo() {\r\n      this.loadData()\r\n      this.findling = true\r\n      this.$refs.projectInfo.getProjectData(this.searchForm.createTime)\r\n      if (this.searchForm.id) {\r\n        this.defaultExpandAll = !this.defaultExpandAll\r\n        this.expandRowKeys = this.data.map((item) => {\r\n          if (item.name !== '总计' && item.id === this.searchForm.id) {\r\n            return item.id\r\n          }\r\n        })\r\n      }\r\n      if (this.searchForm.projectId || this.searchForm.createTime) {\r\n        this.defaultExpandAll = true\r\n        this.expandRowKeys = this.data.map((item) => {\r\n          if (item.name !== '总计') {\r\n            return item.id\r\n          }\r\n        })\r\n      }\r\n      let query = [\r\n        {\r\n          group: 'defaultQueryGroup',\r\n          operation: 'EQUAL',\r\n          relation: 'AND',\r\n          property: 'parent_id_',\r\n          value: 'root',\r\n        },\r\n      ]\r\n      let search = {\r\n        id_: this.searchForm.projectId,\r\n        PROJECT_TYPE_: this.searchForm.id,\r\n        CREATE_TIME_: this.searchForm.createTime,\r\n        // project_status_: this.searchForm.projectStatus,\r\n        // decision_basis_type_: this.searchForm.decisionBasisType,\r\n        // bidding_charge_type_: this.searchForm.biddingChargeType\r\n      }\r\n      let projectStatus = ''\r\n      if(this.searchForm.projectStatus==1){\r\n        projectStatus = '12'\r\n      }\r\n      if(this.searchForm.projectStatus==2){\r\n        projectStatus = ''\r\n      }\r\n      for (let i in search) {\r\n        if (search[i] && i !== 'CREATE_TIME_') {\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          //     group: 'createTimeSubGroup',\r\n          //     operation: 'LESS_EQUAL',\r\n          //     parentGroup: 'createTimeGroup',\r\n          //     property: 'commencement_time_',\r\n          //     relation: 'OR',\r\n          //     value: `${this.searchForm.createTime}-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 (search[i] && i == 'CREATE_TIME_') {\r\n          query.push({\r\n            group: 'createTimeGroup',\r\n            operation: 'BETWEEN',\r\n            parentGroup: '',\r\n            property: 'commencement_time_',\r\n            relation: 'AND',\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              group: 'createTimeSubGroup',\r\n              operation: 'LESS_EQUAL',\r\n              parentGroup: 'createTimeGroup',\r\n              property: 'commencement_time_',\r\n              relation: 'OR',\r\n              value: `${this.searchForm.createTime}-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: projectStatus,\r\n            })\r\n        }\r\n      }\r\n      if(projectStatus==''){\r\n        query.splice(query.length-2)\r\n      }\r\n      let data = {\r\n        pageBean: {\r\n          page: -1,\r\n          pageSize: -1,\r\n          showTotal: true,\r\n        },\r\n        querys: query,\r\n      }\r\n      this.$http\r\n        .post('${cqxy}/biz/ledger/projectLedger/v1/page', data)\r\n        .then((resp) => {\r\n          console.log(resp, 'expandTableData')\r\n          this.expandTableData = resp.data.value.data\r\n          this.selectData.forEach((item) => {\r\n            this.expandTableData.forEach((val) => {\r\n              if (item.projectType == item.id) {\r\n                item.expandTableData.push(val)\r\n              }\r\n            })\r\n          })\r\n          this.data.forEach((item) => {\r\n            this.expandTableData.forEach((val) => {\r\n              if (item.value == val.projectType) {\r\n                item.expandTableData.push(val)\r\n              }\r\n            })\r\n          })\r\n          this.handleExpandChange(this.projectType, false)\r\n          this.findling = false\r\n          this.pageResult = {\r\n            page: resp.data.value.page,\r\n            pageSize: resp.data.value.pageSize,\r\n            total: resp.data.value.total,\r\n          }\r\n        })\r\n    },\r\n    /* 重置清除查询字段 */\r\n    handleReset() {\r\n      this.searchForm = {\r\n        id: '',\r\n        projectId: '',\r\n        projectStatus: '',\r\n        decisionBasisType: '',\r\n        biddingChargeType: '',\r\n      }\r\n      this.selectData = []\r\n      this.expandRowKeys = []\r\n      this.defaultExpandAll = false\r\n      this.$refs.AtTable.load()\r\n    },\r\n  },\r\n}\r\n",null]}