{"remainingRequest":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\examine-fvue\\src\\components\\eipControl\\EipSubExportDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\examine-fvue\\src\\components\\eipControl\\EipSubExportDialog.vue","mtime":1667280203998},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\examine-fvue\\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/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]}