Files
education/frontend/node_modules/.cache/vue-loader/6d73cdfd16f0fb959205d6ef1ad5b522.json
T

1 line
9.6 KiB
JSON

{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\components\\ExcelImportDialog\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\components\\ExcelImportDialog\\index.vue","mtime":1787567871498},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBnZXRUb2tlbiB9IGZyb20gJ0AvdXRpbHMvYXV0aCcNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBwcm9wczogew0KICAgIC8vIOWvueivneahhuagh+mimA0KICAgIHRpdGxlOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAn5pWw5o2u5a+85YWlJw0KICAgIH0sDQogICAgLy8g5a+56K+d5qGG5a695bqmDQogICAgd2lkdGg6IHsNCiAgICAgIHR5cGU6IFN0cmluZywNCiAgICAgIGRlZmF1bHQ6ICc0MDBweCcNCiAgICB9LA0KICAgIC8vIOS4iuS8oOaOpeWPo+WcsOWdgO+8iOW/heS8oO+8iQ0KICAgIGFjdGlvbjogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgcmVxdWlyZWQ6IHRydWUNCiAgICB9LA0KICAgIC8vIOaooeadv+S4i+i9veaOpeWPo+WcsOWdgO+8jOS4jeS8oOWImeS4jeaYvuekuuS4i+i9veaooeadv+mTvuaOpQ0KICAgIHRlbXBsYXRlQWN0aW9uOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAnJw0KICAgIH0sDQogICAgLy8g5qih5p2/5paH5Lu25ZCNDQogICAgdGVtcGxhdGVGaWxlTmFtZTogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogJ3RlbXBsYXRlJw0KICAgIH0sDQogICAgLy8g6KaG55uW5pu05paw5Yu+6YCJ5qGG55qE6K+05piO5paH5a2XDQogICAgdXBkYXRlU3VwcG9ydExhYmVsOiB7DQogICAgICB0eXBlOiBTdHJpbmcsDQogICAgICBkZWZhdWx0OiAn5piv5ZCm5pu05paw5bey57uP5a2Y5Zyo55qE5pWw5o2uJw0KICAgIH0NCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgdmlzaWJsZTogZmFsc2UsDQogICAgICBpc1VwbG9hZGluZzogZmFsc2UsDQogICAgICB1cGRhdGVTdXBwb3J0OiBmYWxzZSwNCiAgICAgIGhlYWRlcnM6IHsgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgZ2V0VG9rZW4oKSB9DQogICAgfQ0KICB9LA0KICBjb21wdXRlZDogew0KICAgIHVwbG9hZFVybCgpIHsNCiAgICAgIHJldHVybiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgdGhpcy5hY3Rpb24gKyAnP3VwZGF0ZVN1cHBvcnQ9JyArICh0aGlzLnVwZGF0ZVN1cHBvcnQgPyAxIDogMCkNCiAgICB9LA0KICAgIHRlbXBsYXRlVXJsKCkgew0KICAgICAgcmV0dXJuICEhdGhpcy50ZW1wbGF0ZUFjdGlvbg0KICAgIH0NCiAgfSwNCiAgbWV0aG9kczogew0KICAgIC8vIOaJk+W8gOWvueivneahhu+8iOS+m+eItue7hOS7tumAmui/hyByZWYg6LCD55So77yJDQogICAgb3BlbigpIHsNCiAgICAgIHRoaXMudXBkYXRlU3VwcG9ydCA9IGZhbHNlDQogICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2UNCiAgICAgIHRoaXMudmlzaWJsZSA9IHRydWUNCiAgICAgIHRoaXMuJG5leHRUaWNrKCgpID0+IHsNCiAgICAgICAgaWYgKHRoaXMuJHJlZnMudXBsb2FkUmVmKSB7DQogICAgICAgICAgdGhpcy4kcmVmcy51cGxvYWRSZWYuY2xlYXJGaWxlcygpDQogICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCiAgICAvLyDlhbPpl63ml7bmuIXnkIYNCiAgICBoYW5kbGVDbG9zZSgpIHsNCiAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSBmYWxzZQ0KICAgICAgaWYgKHRoaXMuJHJlZnMudXBsb2FkUmVmKSB7DQogICAgICAgIHRoaXMuJHJlZnMudXBsb2FkUmVmLmNsZWFyRmlsZXMoKQ0KICAgICAgfQ0KICAgIH0sDQogICAgLy8g5LiL6L295qih5p2/DQogICAgaGFuZGxlRG93bmxvYWRUZW1wbGF0ZSgpIHsNCiAgICAgIHRoaXMuZG93bmxvYWQodGhpcy50ZW1wbGF0ZUFjdGlvbiwge30sIGAke3RoaXMudGVtcGxhdGVGaWxlTmFtZX1fJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0ueGxzeGApDQogICAgfSwNCiAgICAvLyDkuIrkvKDov5vluqYNCiAgICBoYW5kbGVQcm9ncmVzcygpIHsNCiAgICAgIHRoaXMuaXNVcGxvYWRpbmcgPSB0cnVlDQogICAgfSwNCiAgICAvLyDkuIrkvKDmiJDlip8NCiAgICBoYW5kbGVTdWNjZXNzKHJlc3BvbnNlKSB7DQogICAgICB0aGlzLnZpc2libGUgPSBmYWxzZQ0KICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IGZhbHNlDQogICAgICBpZiAodGhpcy4kcmVmcy51cGxvYWRSZWYpIHsNCiAgICAgICAgdGhpcy4kcmVmcy51cGxvYWRSZWYuY2xlYXJGaWxlcygpDQogICAgICB9DQogICAgICB0aGlzLiRhbGVydCgiPGRpdiBzdHlsZT0nb3ZlcmZsb3c6YXV0bztvdmVyZmxvdy14OmhpZGRlbjttYXgtaGVpZ2h0Ojcwdmg7cGFkZGluZzoxMHB4IDIwcHggMDsnPiIgKyByZXNwb25zZS5tc2cgKyAnPC9kaXY+JywgJ+WvvOWFpee7k+aenCcsIHsgZGFuZ2Vyb3VzbHlVc2VIVE1MU3RyaW5nOiB0cnVlIH0pDQogICAgICB0aGlzLiRlbWl0KCdzdWNjZXNzJykNCiAgICB9LA0KICAgIC8vIOaPkOS6pOS4iuS8oA0KICAgIGhhbmRsZVN1Ym1pdCgpIHsNCiAgICAgIGNvbnN0IGZpbGVzID0gdGhpcy4kcmVmcy51cGxvYWRSZWYudXBsb2FkRmlsZXMNCiAgICAgIGlmICghZmlsZXMgfHwgZmlsZXMubGVuZ3RoID09PSAwKSB7DQogICAgICAgIHRoaXMuJG1vZGFsLm1zZ0Vycm9yKCfor7fpgInmi6nopoHkuIrkvKDnmoTmlofku7bjgIInKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCiAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1swXS5uYW1lLnRvTG93ZXJDYXNlKCkNCiAgICAgIGlmICghbmFtZS5lbmRzV2l0aCgnLnhscycpICYmICFuYW1lLmVuZHNXaXRoKCcueGxzeCcpKSB7DQogICAgICAgIHRoaXMuJG1vZGFsLm1zZ0Vycm9yKCfor7fpgInmi6nlkI7nvIDkuLogInhscyIg5oiWICJ4bHN4IiDnmoTmlofku7bjgIInKQ0KICAgICAgICByZXR1cm4NCiAgICAgIH0NCiAgICAgIHRoaXMuJHJlZnMudXBsb2FkUmVmLnN1Ym1pdCgpDQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/components/ExcelImportDialog","sourcesContent":["<template>\r\n <el-dialog :title=\"title\" :visible.sync=\"visible\" :width=\"width\" append-to-body @close=\"handleClose\">\r\n <el-upload ref=\"uploadRef\" :limit=\"1\" accept=\".xlsx, .xls\" :headers=\"headers\" :action=\"uploadUrl\" :disabled=\"isUploading\" :on-progress=\"handleProgress\" :on-success=\"handleSuccess\" :auto-upload=\"false\" drag>\r\n <i class=\"el-icon-upload\"></i>\r\n <div class=\"el-upload__text\">将文件拖到此处,或<em>点击上传</em></div>\r\n <div class=\"el-upload__tip text-center\" slot=\"tip\">\r\n <div class=\"el-upload__tip\" slot=\"tip\">\r\n <el-checkbox v-model=\"updateSupport\"> {{ updateSupportLabel }} </el-checkbox>\r\n </div>\r\n <span>仅允许导入xls、xlsx格式文件。</span>\r\n <el-link v-if=\"templateUrl\" type=\"primary\" :underline=\"false\" style=\"font-size: 12px; vertical-align: baseline\" @click=\"handleDownloadTemplate\">下载模板</el-link>\r\n </div>\r\n </el-upload>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button type=\"primary\" @click=\"handleSubmit\">确 定</el-button>\r\n <el-button @click=\"visible = false\">取 消</el-button>\r\n </div>\r\n </el-dialog>\r\n</template>\r\n\r\n<script>\r\nimport { getToken } from '@/utils/auth'\r\n\r\nexport default {\r\n props: {\r\n // 对话框标题\r\n title: {\r\n type: String,\r\n default: '数据导入'\r\n },\r\n // 对话框宽度\r\n width: {\r\n type: String,\r\n default: '400px'\r\n },\r\n // 上传接口地址(必传)\r\n action: {\r\n type: String,\r\n required: true\r\n },\r\n // 模板下载接口地址,不传则不显示下载模板链接\r\n templateAction: {\r\n type: String,\r\n default: ''\r\n },\r\n // 模板文件名\r\n templateFileName: {\r\n type: String,\r\n default: 'template'\r\n },\r\n // 覆盖更新勾选框的说明文字\r\n updateSupportLabel: {\r\n type: String,\r\n default: '是否更新已经存在的数据'\r\n }\r\n },\r\n data() {\r\n return {\r\n visible: false,\r\n isUploading: false,\r\n updateSupport: false,\r\n headers: { Authorization: 'Bearer ' + getToken() }\r\n }\r\n },\r\n computed: {\r\n uploadUrl() {\r\n return process.env.VUE_APP_BASE_API + this.action + '?updateSupport=' + (this.updateSupport ? 1 : 0)\r\n },\r\n templateUrl() {\r\n return !!this.templateAction\r\n }\r\n },\r\n methods: {\r\n // 打开对话框(供父组件通过 ref 调用)\r\n open() {\r\n this.updateSupport = false\r\n this.isUploading = false\r\n this.visible = true\r\n this.$nextTick(() => {\r\n if (this.$refs.uploadRef) {\r\n this.$refs.uploadRef.clearFiles()\r\n }\r\n })\r\n },\r\n // 关闭时清理\r\n handleClose() {\r\n this.isUploading = false\r\n if (this.$refs.uploadRef) {\r\n this.$refs.uploadRef.clearFiles()\r\n }\r\n },\r\n // 下载模板\r\n handleDownloadTemplate() {\r\n this.download(this.templateAction, {}, `${this.templateFileName}_${new Date().getTime()}.xlsx`)\r\n },\r\n // 上传进度\r\n handleProgress() {\r\n this.isUploading = true\r\n },\r\n // 上传成功\r\n handleSuccess(response) {\r\n this.visible = false\r\n this.isUploading = false\r\n if (this.$refs.uploadRef) {\r\n this.$refs.uploadRef.clearFiles()\r\n }\r\n this.$alert(\"<div style='overflow:auto;overflow-x:hidden;max-height:70vh;padding:10px 20px 0;'>\" + response.msg + '</div>', '导入结果', { dangerouslyUseHTMLString: true })\r\n this.$emit('success')\r\n },\r\n // 提交上传\r\n handleSubmit() {\r\n const files = this.$refs.uploadRef.uploadFiles\r\n if (!files || files.length === 0) {\r\n this.$modal.msgError('请选择要上传的文件。')\r\n return\r\n }\r\n const name = files[0].name.toLowerCase()\r\n if (!name.endsWith('.xls') && !name.endsWith('.xlsx')) {\r\n this.$modal.msgError('请选择后缀为 \"xls\" 或 \"xlsx\" 的文件。')\r\n return\r\n }\r\n this.$refs.uploadRef.submit()\r\n }\r\n }\r\n}\r\n</script>\r\n"]}]}