若以框架下百万信息的导入

1.第一步:先做前端页面的按钮

若依自带的框架是没有导入功能的,所以我们要找到相对应的页面,去添加导入功能。

我的导入功能是在药品页面呈现的,所以找到前端页面的views分类下面所要找的页面下面的index.vue页面中进行代码添加。按钮的整体框架没有改变,需要改变一下点击实现的事件,也就是@click=”handleImport”这段代码,这句代码是用来确实点击的事件,而下面这句代码是用来确保只有‘medicines:medicines:import’才能实现这个导入按钮的实现。

<el-col :span="1.5">

              <el-button

                type="info"

                plain

                icon="el-icon-upload2"

                size="mini"

                @click="handleImport"

                v-hasPermi="['medicines:medicines:import']"

              >导入</el-button>

            </el-col>

而导入按钮弹窗呈现的页面代码则是

<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">

              <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>

为了实现导入功能,还需要添加import { getToken } from ‘@/utils/auth’这段代码,是为了控制权限和用户认证。

然后需要添加信息导入参数

 upload: {

                // 是否显示弹出层(用户导入)

                open: false,

                // 弹出层标题(用户导入)

                title: "",

                // 是否禁用上传

                isUploading: false,

                // 是否更新已经存在的用户数据

                updateSupport: 0,

                // 设置上传的请求头部

                headers: { Authorization: "Bearer " + getToken() },

                // 上传的地址

                url: process.env.VUE_APP_BASE_API + "/medicines/medicines/import"

              },

下面是导入操作

 /** 导入按钮操作 */

         handleImport() {

          this.upload.title = "药品导入";

          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();

          },

还有模板下载的操作

  1. 第二步:后端代码

导入操作的后端代码,要实现这一步需要在实体类中在要导入的实体前面加上@Excel标签

模板下载的代码

在功能测试的时候要看看是不是和自己预期的一样,如果不一样要看看模板下载的类是否有继承的父类,这样会导致模板下载错误,解决方法是把父类中的@Excel标签去掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值