|
@@ -0,0 +1,144 @@
|
|
|
+
|
|
|
+
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ name:'BatchImport',
|
|
|
+ props:{
|
|
|
+ disabled:{
|
|
|
+ type:Boolean,
|
|
|
+ default:false,
|
|
|
+ },
|
|
|
+ limit:{
|
|
|
+ type:Number,
|
|
|
+ default:1,
|
|
|
+ },
|
|
|
+ fileType:{
|
|
|
+ type:Array,
|
|
|
+ default:()=>['xls', 'xlsx'],
|
|
|
+ },
|
|
|
+ size:{
|
|
|
+ type:String,
|
|
|
+ default:'mini',
|
|
|
+ },
|
|
|
+ isShowTip:{
|
|
|
+ type:Boolean,
|
|
|
+ default:true,
|
|
|
+ },
|
|
|
+ isTemplate:{
|
|
|
+ type:Boolean,
|
|
|
+ default:true,
|
|
|
+ },
|
|
|
+ fileSize: {
|
|
|
+ type: Number,
|
|
|
+ default: 100,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ computed:{
|
|
|
+ tips:{
|
|
|
+ get(){
|
|
|
+ // this.accept.
|
|
|
+ },
|
|
|
+ set(){},
|
|
|
+ },
|
|
|
+ // 是否显示提示
|
|
|
+ showTip() {
|
|
|
+ return this.isShowTip && (this.fileType || this.fileSize);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data(){
|
|
|
+ return {
|
|
|
+ title:'批量导入',
|
|
|
+ visible:false,
|
|
|
+ loading:false,
|
|
|
+ fileList:[],
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ // 确认上传
|
|
|
+ async submitUpload(){
|
|
|
+
|
|
|
+ },
|
|
|
+ // 模板下载
|
|
|
+ async templateDownload(){
|
|
|
+ // 放父组件
|
|
|
+ // this.download('/system/material/download', {}, `物料基本信息模板.xlsx`);
|
|
|
+ },
|
|
|
+ //
|
|
|
+ beforeClose(done){
|
|
|
+ // 关闭前清空
|
|
|
+ done();
|
|
|
+ },
|
|
|
+ // 预览
|
|
|
+ handlePreview(){},
|
|
|
+ // 移除
|
|
|
+ handleRemove(file, fileList){
|
|
|
+ this.fileList = fileList;
|
|
|
+ },
|
|
|
+ // 文件改变
|
|
|
+ onChange(file, fileList){
|
|
|
+ this.fileList = fileList;
|
|
|
+ },
|
|
|
+ // 取消
|
|
|
+ cancal(){
|
|
|
+ this.visible = false;
|
|
|
+ },
|
|
|
+
|
|
|
+ },
|
|
|
+ created(){},
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<template>
|
|
|
+ <el-button :disabled="disabled">
|
|
|
+ {{ title }}
|
|
|
+ <el-dialog
|
|
|
+ :title="title"
|
|
|
+ :visible.sync="visible"
|
|
|
+ v-loading="loading"
|
|
|
+ width="35%"
|
|
|
+ center
|
|
|
+ :before-close="beforeClose"
|
|
|
+ >
|
|
|
+ <el-upload
|
|
|
+ ref="upload"
|
|
|
+ :accept="accept"
|
|
|
+ action="#"
|
|
|
+ :on-preview="handlePreview"
|
|
|
+ :on-remove="handleRemove"
|
|
|
+ :file-list="fileList"
|
|
|
+ :auto-upload="false"
|
|
|
+ :on-change="onChange"
|
|
|
+ :limit="limit"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ slot="trigger"
|
|
|
+ :size="size"
|
|
|
+ type="primary"
|
|
|
+ >选取文件</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="isTemplate"
|
|
|
+ style="margin-left: 10px;"
|
|
|
+ :size="size"
|
|
|
+ type="success"
|
|
|
+ @click="templateDownload"
|
|
|
+ >下载模板</el-button>
|
|
|
+ <div slot="tip" class="el-upload__tip" v-if="isShowTip">
|
|
|
+ 请上传
|
|
|
+ <template v-if="fileSize">
|
|
|
+ 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b>
|
|
|
+ </template>
|
|
|
+ <template v-if="fileType">
|
|
|
+ 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="cancal">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitUpload">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ </el-button>
|
|
|
+</template>
|