{"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\\bizComponents\\eipControl\\EipSubExportDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\bizComponents\\eipControl\\EipSubExportDialog.vue","mtime":1675071991475},{"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\r\nimport XLSX from \"xlsx/dist/xlsx.core.min.js\";\r\nimport { saveAs } from \"file-saver\";\r\nimport SubPagination from \"@/components/bizComponents/eipControl/bus/SubPagination.js\";\r\n\r\nexport default {\r\n  name: \"eip-sub-export-dialog\",\r\n  props: {\r\n    dataSubname: {\r\n      type: String,\r\n      required: true,\r\n    },\r\n    dataColumns: {\r\n      type: String,\r\n      required: true,\r\n    },\r\n    dataSubdesc: {\r\n      type: String,\r\n      default: \"子表数据\",\r\n    },\r\n  },\r\n  computed: {\r\n    columns: function () {\r\n      return eval(Base64.decode(this.dataColumns));\r\n    }\r\n  },\r\n  methods: {\r\n    changeRowKey(rows) {\r\n      var exportData = [];\r\n      rows.forEach(row => {\r\n        var exportRow = {};\r\n        this.columns.forEach(col => {\r\n          exportRow[col.desc] = row[col.name];\r\n        });\r\n        exportData.push(exportRow);\r\n      });\r\n      return exportData;\r\n    },\r\n    handleCommand(type) {\r\n      SubPagination.exportData(this.dataSubname, type)\r\n        .then((data) => {\r\n          let exportData = this.changeRowKey(data);\r\n          const sheet = XLSX.utils.json_to_sheet(exportData),\r\n            blob = this.sheet2blob(sheet);\r\n\r\n          saveAs(blob, `${this.dataSubdesc}.xls`);\r\n        })\r\n        .catch((err) => {\r\n          this.$message.error(`数据导出失败：${err}`);\r\n        });\r\n    },\r\n    sheet2blob(sheet, sheetName) {\r\n      sheetName = sheetName || \"sheet1\";\r\n      var workbook = {\r\n        SheetNames: [sheetName],\r\n        Sheets: {},\r\n      };\r\n      workbook.Sheets[sheetName] = sheet;\r\n      // 生成excel的配置项\r\n      var wopts = {\r\n        bookType: \"xls\", // 要生成的文件类型\r\n        bookSST: false, // 是否生成Shared String Table，官方解释是，如果开启生成速度会下降，但在低版本IOS设备上有更好的兼容性\r\n        type: \"binary\",\r\n      };\r\n      var wbout = XLSX.write(workbook, wopts);\r\n      var blob = new Blob([s2ab(wbout)], { type: \"application/octet-stream\" });\r\n      // 字符串转ArrayBuffer\r\n      function s2ab(s) {\r\n        var buf = new ArrayBuffer(s.length);\r\n        var view = new Uint8Array(buf);\r\n        for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;\r\n        return buf;\r\n      }\r\n      return blob;\r\n    },\r\n  },\r\n};\r\n",null]}