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

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

@[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";
    
目录
相关文章
|
前端开发
vscode编写前端提升效率的三个必不可缺的插件以及使用方法
vscode编写前端提升效率的三个必不可缺的插件以及使用方法
|
SQL 数据库 Windows
若依代码生成详细教程
我觉得若依官方的代码生成教程过于简单,网上的教程很多连个效果图都没有。 本文要达到的效果如下:[学生管理] 下有个 [学生信息] 菜单,里面可以增删改查。
5090 0
若依代码生成详细教程
|
1月前
|
人工智能 Java 数据库连接
IDEA开发 常用代码规范插件 常用辅助类插件
IDEA开发 常用代码规范插件 常用辅助类插件
45 0
|
5月前
|
NoSQL Java Redis
若依如何使用(基本环境的配置)
若依如何使用(基本环境的配置)
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的 在线文档管理系统附带文章和源代码
基于SpringBoot+Vue的 在线文档管理系统附带文章和源代码
106 1
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js的附带文章和装饰工程管理系统源代码设计说明文档ppt
基于springboot+vue.js的附带文章和装饰工程管理系统源代码设计说明文档ppt
29 0
|
6月前
|
JavaScript 前端开发
若依 自定义实现导入功能
若依 自定义实现导入功能
147 1
|
6月前
|
XML Java 数据库连接
代码生成插件easycode
代码生成插件easycode
|
资源调度 前端开发
前端工程化:plop自动生成文件(快速开发,创建模板文件)
前端工程化:plop自动生成文件(快速开发,创建模板文件)
218 0
|
JavaScript 前端开发 API
前端工程自动化——动态导入
介绍webpack的require.context用法和实例