{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipSubImportDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipSubImportDialog.vue","mtime":1667804639118},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport req from \"@/request.js\";\nimport XLSX from \"xlsx/dist/xlsx.core.min.js\";\nimport SubPagination from \"@/components/eipControl/bus/SubPagination.js\";\n\nvar Base64 = require(\"js-base64\").Base64;\n\nexport default {\n name: \"eip-sub-import-dialog\",\n props: {\n subDesc: {\n type: String,\n default: \"子表模板\"\n },\n dataSubname: {\n type: String,\n required: true\n },\n maxRow: {\n type: String,\n default: null\n },\n mergeExpression: {\n type: String,\n default: null\n },\n dataColumns: {\n type: String,\n required: true\n }\n },\n data: function data() {\n return {\n dialogVisible: false,\n importRows: null,\n showRowData: false,\n mergeFunc: null,\n mode: \"append\",\n modeOptions: [{\n mode: \"append\",\n desc: \"追加导入\"\n }, {\n mode: \"override\",\n desc: \"覆盖导入\"\n }, {\n mode: \"merge\",\n desc: \"合并导入\",\n disabled: true\n }]\n };\n },\n computed: {\n columns: function columns() {\n return eval(Base64.decode(this.dataColumns));\n }\n },\n watch: {\n dialogVisible: {\n handler: function handler(newVal) {\n // 清空附件\n if (!newVal && this.$refs.selectFile) {\n this.$refs.selectFile.value = \"\";\n this.importRows = null;\n this.showRowData = false;\n }\n },\n immediate: true\n },\n mergeExpression: {\n handler: function handler(newVal) {\n if (newVal) {\n // 如果有导入合并的代码,则允许选择合并导入模式\n this.$set(this.modeOptions[2], \"disabled\", false); // 并设置默认为 合并导入\n\n this.mode = \"merge\"; // 解码合并的代码\n\n var funcExp = Base64.decode(newVal);\n this.mergeFunc = eval(\"(\".concat(funcExp, \")\"));\n }\n },\n immediate: true\n }\n },\n methods: {\n //子表模板导出\n exportFormSub: function exportFormSub() {\n req.post(window.context.form + \"/form/form/v1/exportFormSub?subDesc=\" + this.subDesc, this.columns, \"arraybuffer\");\n },\n getNameByDesc: function getNameByDesc(desc) {\n var name = \"\";\n this.columns.forEach(function (col) {\n if (col.desc == desc) {\n name = col.name;\n }\n });\n return name;\n },\n changeRowKey: function changeRowKey(rows) {\n var _this = this;\n\n var importRows = [];\n rows.forEach(function (row) {\n var importRow = {};\n\n for (var key in row) {\n importRow[_this.getNameByDesc(key)] = row[key];\n }\n\n importRows.push(importRow);\n });\n return importRows;\n },\n dialogConfirm: function dialogConfirm() {\n var _this2 = this;\n\n if (this.importRows.length == 0) {\n this.$message.error(\"请选择要导入的文件\");\n return;\n }\n\n if (this.maxRow) {\n var maxRowInt = parseInt(this.maxRow);\n\n if (this.mode == \"override\") {\n //覆盖导入\n var count = this.importRows.length;\n\n if (count > maxRowInt && maxRowInt != 0) {\n this.$message.error(\"子表数据已超过最大行数【\" + maxRowInt + \"】\");\n return;\n }\n } else if (this.mode == \"append\" || this.mode == \"merge\") {\n //追加导入/合并导入\n var boData = document.getElementsByName(\"online-form\")[0].__vue__.data; //获取表单bo对象\n\n\n var pathArr = this.dataSubname.split('.');\n var subTabName = pathArr[2].replace('sub_', '');\n var subInitData = boData[pathArr[1]][pathArr[2]] || []; //子表数据\n\n var num = this.importRows.length + subInitData.length;\n\n if (num > maxRowInt && maxRowInt != 0) {\n this.$message.error(\"子表数据已超过最大行数【\" + maxRowInt + \"】\");\n return;\n }\n }\n }\n\n SubPagination.importData(this.dataSubname, this.importRows, this.mode, this.mergeFunc).then(function () {\n _this2.dialogVisible = false;\n }).catch(function (err) {\n _this2.$message.error(\"\\u6570\\u636E\\u5BFC\\u5165\\u5931\\u8D25\\uFF1A\".concat(err));\n });\n },\n fileChange: function fileChange(m) {\n var _this3 = this;\n\n if (!m || !m.target || !m.target.files || m.target.files.length != 1) {\n return;\n }\n\n this.importRows = [];\n this.readWorkbookFromLocalFile(m.target.files[0], function (rows) {\n _this3.importRows = _this3.changeRowKey(rows);\n });\n },\n // 读取本地excel文件\n readWorkbookFromLocalFile: function readWorkbookFromLocalFile(file, callback) {\n var _this4 = this;\n\n var reader = new FileReader();\n\n reader.onload = function (e) {\n var data = e.target.result;\n var workbook = null;\n\n try {\n // 读取Excel内容\n workbook = XLSX.read(data, {\n type: \"binary\"\n });\n } catch (err) {\n _this4.$message.error(\"所选文件不是有效的Excel文件.\");\n\n return;\n }\n\n var sheetNames = workbook.SheetNames,\n // 只读取第一个sheet的数据\n worksheet = workbook.Sheets[sheetNames[0]];\n\n if (worksheet[\"!merges\"] && worksheet[\"!merges\"].length > 0) {\n var merge = worksheet[\"!merges\"][0],\n rowNum = Number(merge[\"e\"][\"r\"]); // 合并单元格时会导致转换出来的JSON数据格式错乱\n\n _this4.$message.error(\"Excel\\u4E2D\\u4E0D\\u80FD\\u6709\\u5408\\u5E76\\u7684\\u5355\\u5143\\u683C\\uFF0C\\u8BF7\\u68C0\\u67E5\\u7B2C\".concat(rowNum + 1, \"\\u884C\\u6570\\u636E\\u3002\"));\n\n return;\n }\n\n var json = XLSX.utils.sheet_to_json(worksheet);\n\n if (!json || json.constructor != Array) {\n _this4.$message.error(\"读取的数据格式错误。\");\n\n return;\n }\n\n if (callback) callback(json);\n };\n\n reader.readAsBinaryString(file);\n }\n }\n};",null]}