{"remainingRequest":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\reform-fvue\\src\\views\\BigScreen\\components\\subComponents\\projectBatchMH.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\reform-fvue\\src\\views\\BigScreen\\components\\subComponents\\projectBatchMH.vue","mtime":1741616770417},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\reform-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\reform-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\r\nimport apiList from '@/api/bigScreen/majorView.js'\r\nimport utils from '@/utils.js'\r\nimport ExcelJS from 'exceljs';\r\nexport default {\r\n props: {\r\n tableOptions: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n },\r\n },\r\n },\r\n data() {\r\n return {\r\n loading: false,\r\n loadingColor: 'rgba(6, 46, 106, 0.4)',\r\n tableData: [],\r\n workbook: null,\r\n projectCategory: ''\r\n }\r\n },\r\n beforeDestroy() {\r\n this.$bus.$off('changeDate')\r\n },\r\n mounted() {\r\n this.getData()\r\n this.$bus.$on('changeDate', (searchDate) => {\r\n this.getData()\r\n })\r\n this.$bus.$on('monthExportExcel', (comp) => {\r\n if (comp === 'projectBatchMH') {\r\n this.clickMHExport()\r\n }\r\n })\r\n },\r\n created() {\r\n this.$emit('searchDateChange')\r\n },\r\n methods: {\r\n setStyle(value) {\r\n let style = value < 13\r\n ? 'background :#38a846;font-weight: bold;'\r\n : value == 13\r\n ? 'background:#00b0f0;font-weight: bold;'\r\n : value == 14\r\n ? 'background:#e8e8e8;color:#333;font-weight: bold;'\r\n : 'background:#a0a0a0;font-weight: bold;'\r\n style = style + ';margin: 0 auto;'\r\n return style\r\n },\r\n getDictName(code, value) {\r\n return utils.getDictName(code, value)\r\n },\r\n getData() {\r\n this.loading = true\r\n let { year, month } = JSON.parse(sessionStorage.getItem('searchDate'))\r\n apiList.getReadyAndPlanningData({ year, month, type: '3', projectCategory:this.projectCategory }, res => {\r\n if (res) {\r\n let arr = res.map(item => item.orderNo)\r\n let index = arr.lastIndexOf(1)\r\n this.tableData = res\r\n this.$nextTick(() => {\r\n let tableRow = this.$refs.myTable.$el.querySelectorAll('.el-table__body tbody .el-table__row')\r\n for (let i = 0; i < index; i++) {\r\n tableRow[i].style = 'background-color: rgb(5 54 127) !important;'\r\n }\r\n \r\n })\r\n\r\n this.exportToExcel()\r\n }\r\n this.loading = false\r\n })\r\n },\r\n exportToExcel() {\r\n let columns = [\r\n { title: '项目名称', dataIndex: 'projectName' },\r\n { title: '主责单位', dataIndex: 'unitName' },\r\n { title: '专项小组', dataIndex: 'groupName' },\r\n { title: '形成\\n调研报告', dataIndex: 'produceReport', type: 'value' },\r\n { title: '形成\\n改革方案初稿', dataIndex: \"formScheme\", type: 'value' },\r\n { title: '提出调整准备\\n启动一批的申请', dataIndex: \"requestReadyToStart\", type: 'value' },\r\n { title: '搭建\\n体系架构图', dataIndex: \"buildArchitecture\", type: 'value' },\r\n { title: '明确3个以上\\n年度核心指标', dataIndex: \"defineThreeCoreIndicators\", type: 'value' },\r\n { title: '形成\\n改革措施清单', dataIndex: \"formList\", type: 'value' },\r\n { title: '形成拟出台\\n政策文件清单', dataIndex: \"issueDocument\", type: 'value' },\r\n { title: '提出调整加快\\n实施一批的申请', dataIndex: \"requestToStart\", type: 'value' }\r\n ]\r\n const columnWidths = {\r\n A: 32,\r\n B: 13,\r\n C: 15,\r\n D: 15,\r\n E: 18,\r\n F: 20,\r\n G: 15,\r\n H: 18,\r\n I: 18,\r\n J: 18,\r\n K: 20\r\n }\r\n\r\n const workbook = new ExcelJS.Workbook();\r\n const worksheet = workbook.addWorksheet('Sheet1');\r\n\r\n const data = JSON.parse(JSON.stringify(this.tableData))\r\n\r\n const headerRow = worksheet.addRow(columns.map(column => column.title));\r\n headerRow.eachCell((cell) => {\r\n cell.font = { bold: true, size: 14 };\r\n cell.alignment = {\r\n horizontal: \"center\",// 水平居中\r\n vertical: 'middle', // 垂直居中\r\n };\r\n cell.border = {\r\n top: { style: 'thin' },\r\n left: { style: 'thin' },\r\n bottom: { style: 'thin' },\r\n right: { style: 'thin' }\r\n };\r\n cell.alignment = {\r\n wrapText: true,\r\n vertical: 'middle',\r\n horizontal: 'center'\r\n }\r\n });\r\n\r\n data.forEach((rowData) => {\r\n const newRow = worksheet.addRow(columns.map((column) => {\r\n return column.type === 'value' ? utils.getDictName('zbqdyp_zt', rowData[column.dataIndex] - 0) : (rowData[column.dataIndex] || '')\r\n }));\r\n newRow.eachCell((cell, rowNum) => {\r\n cell.border = {\r\n top: { style: 'thin' },\r\n left: { style: 'thin' },\r\n bottom: { style: 'thin' },\r\n right: { style: 'thin' }\r\n };\r\n cell.alignment = {\r\n wrapText: true\r\n }\r\n if (rowNum > 3) {\r\n cell.fill = returnColor(cell.value)\r\n }\r\n cell.alignment.vertical = 'middle'\r\n cell.alignment.horizontal = 'center'\r\n })\r\n });\r\n Object.keys(columnWidths).forEach((columnLetter) => {\r\n worksheet.getColumn(columnLetter).width = columnWidths[columnLetter];\r\n });\r\n\r\n function returnColor(value) {\r\n let argb = value.indexOf('已完成') !== -1\r\n ? '38a846'\r\n : value.indexOf('推进中') !== -1 ? '00b0f0'\r\n : value.indexOf('未启动') !== -1 ? 'e8e8e8'\r\n : value.indexOf('未完成') !== -1 ? 'f43308'\r\n : value.indexOf('不涉及') !== -1 ? 'a0a0a0' : ''\r\n return {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb }\r\n }\r\n }\r\n\r\n this.workbook = workbook\r\n },\r\n clickMHExport() {\r\n this.workbook.xlsx.writeBuffer().then((buffer) => {\r\n const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = '谋划储备的重大改革项目关键环节和重要事项进度统计表.xlsx';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n });\r\n }\r\n },\r\n}\r\n",null]}