| | |
| | | append-to-body |
| | | v-model="isShowImportView" |
| | | title="导入机构" |
| | | :width="pxToRem(600)" |
| | | :width="pxToRem(500)" |
| | | :close-on-click-modal="false" |
| | | :destroy-on-close="true" |
| | | @close="handleImportClose" |
| | |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-form-item label="上传文件" prop="file"> |
| | | {{ importFileName }} |
| | | |
| | | <el-upload class="avatar-uploader" action="" :show-file-list="false" :before-upload="onImportFileBefore"> |
| | | <el-button type="primary">点击上传</el-button> |
| | | </el-upload> |
| | | <div class="upload-tip"> |
| | | {{ importFileName }} |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | |
| | | |
| | | // 上传文件前处理 |
| | | function onImportFileBefore(file) { |
| | | // 提示请先导出模板 |
| | | // ElMessage.warning('请先导出模板并按模板格式填写数据') |
| | | |
| | | // 检查文件类型 |
| | | const allowedTypes = ['.xlsx', '.xls'] |
| | | const fileExtension = file.name.substring(file.name.lastIndexOf('.')).toLowerCase() |
| | |
| | | ElMessage.error('请上传Excel文件(.xlsx 或 .xls)') |
| | | return false |
| | | } |
| | | let data = new FormData() |
| | | data.append('file', file) |
| | | |
| | | agenciesImportApi(data, { isCovered: importParams.value.isCovered }).then(res => { |
| | | if (res.data.code === 200) { |
| | | ElMessage.success('导入成功') |
| | | // 保存文件名 |
| | | importFileName.value = file.name |
| | | importParams.value.file = file |
| | | isShowImportView.value = false |
| | | getList() |
| | | } else { |
| | | ElMessage.error(res.msg || '导入失败') |
| | | } |
| | | }) |
| | | |
| | | // 保存文件名和文件对象 |
| | | importFileName.value = file.name |
| | | importParams.value.file = file |
| | | ElMessage.success('上传成功') |
| | | |
| | | return false // 阻止组件的默认上传行为 |
| | | } |
| | |
| | | ElMessage.error('请先上传文件') |
| | | return |
| | | } |
| | | // 触发上传操作 |
| | | await onImportFileBefore(importParams.value.file) |
| | | |
| | | // 构建表单数据并调用导入接口 |
| | | let data = new FormData() |
| | | data.append('file', importParams.value.file) |
| | | |
| | | const res = await agenciesImportApi(data, { isCovered: importParams.value.isCovered }) |
| | | if (res.data.code === 200) { |
| | | ElMessage.success('导入成功') |
| | | isShowImportView.value = false |
| | | getList() |
| | | } else { |
| | | ElMessage.error(res.msg || '导入失败') |
| | | } |
| | | } finally { |
| | | importSubmitting.value = false |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .upload-tip { |
| | | margin-left: 5px; |
| | | } |
| | | </style> |