导出
前端
$nextTick 让前面的事情执行完
<code-type-dialog:visible.sync="dialogVisible"title="选择生成类型":show-file-name="showFileName"@confirm="generate"/>
data(){return {dialogVisible: false,showFileName: false,}},handleExport() {// 导出this.download('system/operlog/export', {...this.queryParams}, `operlog_${new Date().getTime()}.xlsx`)},download() {this.dialogVisible = truethis.showFileName = truethis.operationType = 'download'},
后端
导入
前端
<!-- 用户导入对话框 --><el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body><el-uploadref="upload":limit="1"accept=".xlsx, .xls":headers="upload.headers":action="upload.url + '?updateSupport=' + upload.updateSupport":disabled="upload.isUploading":on-progress="handleFileUploadProgress":on-success="handleFileSuccess":auto-upload="false"drag><i class="el-icon-upload"></i><div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div><div class="el-upload__tip text-center" slot="tip"><div class="el-upload__tip" slot="tip"><el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据</div><span>仅允许导入xls、xlsx格式文件。</span><el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link></div></el-upload><div slot="footer" class="dialog-footer"><el-button type="primary" @click="submitFileForm">确 定</el-button><el-button @click="upload.open = false">取 消</el-button></div></el-dialog>
后端
@Log(title = "用户管理", businessType = BusinessType.IMPORT)@PreAuthorize(hasPermi = "system:user:import")@PostMapping("/importData")public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);List<SysUser> userList = util.importExcel(file.getInputStream());String operName = SecurityUtils.getUserId()+"";String message = userService.importUser(userList, updateSupport, operName);return AjaxResult.success(message);}
