若依代码生成自带导入功能

简介: 若依代码生成自带导入功能

@[TOC]

1 修改ruoyi-generator下resources下vm.java.controller

  • 新增导出模板接口
    /**
       * 导出模板
       */
      @PostMapping("/importTemplate")
      public void importTemplate(HttpServletResponse response)
      {
         
          ExcelUtil<{
         mathJaxContainer[0]}{
         ClassName}>(${
         ClassName}.class);
          util.importTemplateExcel(response, "${functionName}数据");
      }
    
  • 新增导入数据
      /**
       * 导入数据
       */
      @Log(title = "${functionName}", businessType = BusinessType.IMPORT)
      @PreAuthorize("@ss.hasPermi('${permissionPrefix}:import')")
      @PostMapping("/importData")
      public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
      {
         
          ExcelUtil<{
         mathJaxContainer[1]}{
         ClassName}>(${
         ClassName}.class);
          List<${
         ClassName}> list = util.importExcel(file.getInputStream());
          int count = 0;
          for ({
         mathJaxContainer[2]}{
         className} : list) {
         
              int i = {
         mathJaxContainer[3]}{
         ClassName}(${
         className});
              count = count + i;
          }
          return AjaxResult.success("导入成功" + count + "条信息!");
      }
    

    2 修改vue下index.vue.vm文件

  • 新增方法
    /** 下载模板操作 */
      importTemplate() {
         
        this.download('${moduleName}/${businessName}/importTemplate', {
         
        }, `template_#[[${
           new Date().getTime()}]]#.xlsx`)
      },
      /** 导入按钮操作 */
      handleImport() {
         
        this.upload.title = "${functionName}导入";
        this.upload.open = true;
      },
      // 文件上传中处理
      handleFileUploadProgress(event, file, fileList) {
         
        this.upload.isUploading = true;
      },
      // 文件上传成功处理
      handleFileSuccess(response, file, fileList) {
         
        this.upload.open = false;
        this.upload.isUploading = false;
        this.$refs.upload.clearFiles();
        this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", {
          dangerouslyUseHTMLString: true });
        this.getList();
      },
      // 提交上传文件
      submitFileForm() {
         
        this.$refs.upload.submit();
      }
    
  • 新增data
    // 导入参数
        upload: {
         
          // 是否显示弹出层(导入)
          open: false,
          // 弹出层标题(导入)
          title: "",
          // 是否禁用上传
          isUploading: false,
          // 是否更新已经存在的用户数据
          updateSupport: 0,
          // 设置上传的请求头部
          headers: {
          Authorization: "Bearer " + getToken() },
          // 上传的地址
          url: process.env.VUE_APP_BASE_API + "/${moduleName}/${businessName}/importData"
        },
    
  • 新增对话框
    <!-- 导入对话框 -->
      <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
        <el-upload
            ref="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>
    
  • 导入token
    import {
         getToken} from "@/utils/auth";
    
目录
相关文章
|
SQL 数据库 Windows
若依代码生成详细教程
我觉得若依官方的代码生成教程过于简单,网上的教程很多连个效果图都没有。 本文要达到的效果如下:[学生管理] 下有个 [学生信息] 菜单,里面可以增删改查。
5188 0
若依代码生成详细教程
|
2月前
|
JSON 数据可视化 小程序
uview/小程序可视化表单代码生成器文档
uview/小程序可视化表单代码生成器文档
37 0
|
7月前
|
JavaScript 前端开发
若依 自定义实现导入功能
若依 自定义实现导入功能
210 1
|
7月前
|
Oracle Java 关系型数据库
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
Generator【SpringBoot集成】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程(注意事项+建表SQL+代码生成类封装+测试类)
141 0
|
移动开发 Java fastjson
Spring Boot 我随手封装了一个万能的 Excel 导出工具,传什么都能导出!
Spring Boot 我随手封装了一个万能的 Excel 导出工具,传什么都能导出!
Spring Boot 我随手封装了一个万能的 Excel 导出工具,传什么都能导出!
|
JavaScript 前端开发 API
前端工程自动化——动态导入
介绍webpack的require.context用法和实例
|
缓存 算法 JavaScript
如何开发一个导入/导出插件
在开发过程中,或多或少都会遇到数据格式转换的问题,如果只是简单的数据,那自然用什么方式都可以,如果遇到数据非常多、层级复杂、关联性强的数据,则需要摸索出一套合适的方法,本文会介绍两种比较可行的转换模型,他们各自适合不同的场景和喜好。
|
JSON JavaScript Go
一日一技:如何正确在自己项目里面集成别人的代码?
一日一技:如何正确在自己项目里面集成别人的代码?
558 0
一日一技:如何正确在自己项目里面集成别人的代码?
|
SQL JSON 前端开发
|
前端开发 测试技术