10702 4 лет назад
Родитель
Сommit
286bf8f7d2
2 измененных файлов с 30 добавлено и 262 удалено
  1. 30 33
      src/views/file/Upload.vue
  2. 0 229
      src/views/file/Upload2.vue

+ 30 - 33
src/views/file/Upload.vue

@@ -45,19 +45,12 @@
 
             <span slot="tip">{{message}}</span>
           </el-form-item>
-          <!--                          <el-upload -->
-          <!--                           class="upload-demo"-->
-          <!--                           :headers="headers"-->
-          <!--                           :http-request="httpRequest"-->
-          <!--                           :data="form"-->
-          <!--                </el-upload>-->
-
 
           <!--    操作:      -->
           <el-form-item>
             <el-button
                 type="primary"
-                @click="submitForm(formRef)"
+                @click="submitForm(formRef,uploadRef)"
             >
               立即创建
             </el-button>
@@ -117,15 +110,11 @@ export default {
     //文件上传后,保存在数组fileList里
     function getFile(file, files) {
       fileList = files;
-      console.log(file)
-      console.log("file")
-      console.log(file.raw instanceof File)
-      console.log(fileList)
-      console.log("fileList")
     }
+
     //提交表单
-    const submitForm = async (formEl) => {
-      if (!formEl) return
+    const submitForm = async (formEl,uploadEl) => {
+      if (!formEl || !uploadEl) return
       await formEl.validate((valid, fields) => {
         if (valid) {
           if (fileList.length <= 0) {
@@ -136,30 +125,37 @@ export default {
           //将表单内其他内容添加进formData
           formData.append('fileName', form.fileName+'.csv')
           formData.append('file', fileList[0].raw);
-          console.log("fileList[0]:")
-          console.log(fileList[0])
-          console.log(fileList[0] instanceof File)
           formData.append('userId', "1")
 
           //调用接口,提交即可
-
-          console.log("formData")
-          console.log(formData.get('fileName'))
-          console.log(formData.get('file'))
-          console.log(formData.get('userId'))
-          // let formData={
-          //   userId:1,
-          //   fileName:form.fileName+'.csv',
-          //   file:fileList[0]
-          // }
-          ElMessage.success('校验成功!')
+          ElMessage.success('文件名校验成功!')
           UploadFile(formData).then(res => {
             console.log(res)
+            fileList=[]
+            formEl.resetFields()
+            uploadEl.clearFiles()
+
             if (res.status === 200)
             {
-              // fullscreenLoading = false;
-              resetForm(formRef,uploadRef)
-              ElMessage.success('上传成功');
+              ElMessageBox({
+                title: '文件上传',
+                message: `文件: ${form.fileName}上传成功`,
+                confirmButtonText: '确定',
+                beforeClose: (action, instance, done) => {
+                  if (action === 'confirm') {
+                    instance.confirmButtonLoading = true
+                    instance.confirmButtonText = 'Loading...'
+                    setTimeout(() => {
+                      done()
+                      setTimeout(() => {
+                        instance.confirmButtonLoading = false
+                      }, 125)
+                    }, 125)
+                  } else {
+                    done()
+                  }
+                },
+              })
             }
             else
               {
@@ -176,6 +172,7 @@ export default {
 
     //重置表单
     function resetForm(formEl,uploadEl){
+      fileList=[]
       if (!formEl || !uploadEl) return
       formEl.resetFields()
       uploadEl.clearFiles()
@@ -240,7 +237,7 @@ export default {
       getFile,
       beforeUploadFile,
       beforeRemoveFile,
-      handleExceed
+      handleExceed,
     }
   }
 }

+ 0 - 229
src/views/file/Upload2.vue

@@ -1,229 +0,0 @@
-<template>
-    <div>
-        <div class="crumbs">
-            <el-breadcrumb separator="/">
-                <el-breadcrumb-item>
-                    <i class="el-icon-lx-calendar"></i> 表单
-                </el-breadcrumb-item>
-                <el-breadcrumb-item>文件上传</el-breadcrumb-item>
-            </el-breadcrumb>
-        </div>
-        <div class="container">
-          <div>
-            <el-form
-                :model="form"
-                :rules="rules"
-                ref="formRef"
-                label-width="120px"
-            >
-
-              <el-form-item label="文件名" prop="fileName"  style="width: 400px;">
-                <el-input placeholder="在此填写文件名" v-model="form.fileName"></el-input>
-              </el-form-item>
-
-<!--              <el-form-item label="上传文件">-->
-<!--                <el-upload ref="upload"-->
-<!--                           class="upload-demo"-->
-<!--                           name="file"-->
-<!--                           accept="'text/csv','application/vnd.ms-excel','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'"-->
-<!--                           drag=true-->
-<!--                           :headers="headers"-->
-<!--                           :http-request="httpRequest"-->
-<!--                           :before-remove="beforeRemove"-->
-<!--                           :before-upload="beforeUploadFile"-->
-<!--                           :on-exceed="handleExceed"-->
-<!--                           :limit="1"-->
-<!--                           :auto-upload="false"-->
-<!--                           :on-change="getFile"-->
-<!--                           :data="form"-->
-<!--                           :file-list="fileList"-->
-<!--                           style="width: 500px;">-->
-<!--                </el-upload>-->
-<!--                <span slot="tip">{{message}}</span>-->
-<!--              </el-form-item>-->
-
-              <el-form-item>
-                <el-button
-                    type="primary"
-                    @click="submitForm(formRef)"
-                    v-loading.fullscreen.lock="fullscreenLoading"
-                >
-                  立即创建
-                </el-button>
-
-                <el-button
-                    @click="resetForm(formRef)"
-                >
-                  重置
-                </el-button>
-              </el-form-item>
-            </el-form>
-          </div>
-        </div>
-    </div>
-</template>
-
-<script lang="ts">
-import { reactive, ref } from 'vue'
-import { ElMessage, ElMessageBox } from "element-plus"
-
-export default {
-    name: "upload2",
-    components: {
-    },
-    setup() {
-      const fullscreenLoading=ref(false);
-      //表单,不要和ref重名
-      const form= reactive({
-        fileName: '',
-      })
-      //html元素
-      const formRef=ref('formRef')
-      //上传
-      const headers={
-        "content-type": "multipart/form-data"
-      };
-      const message= '请上传csv/xlsx/xls格式的文件';
-      //文件列表
-      let fileList= []
-      //用于放数据  FormData类型
-      let formData= {}
-
-      //校验规则
-      const rules = reactive({
-        fileName:
-          [
-            {
-              max:64,
-              message: '文件名最多64个字符!',
-              trigger:  'blur',
-            },
-            {
-              required:true,
-              message: '必须填写文件名!',
-              trigger:  'blur',
-            }
-          ]
-      })
-
-      //上传
-      function getFile(file, fieList) {
-        this.fileList = fieList;
-        // FormData 对象
-        this.formData = new FormData()
-      }
-
-      //上传前
-      function beforeUploadFile(file) {
-        let extension = file.name.substring(file.name.lastIndexOf('.') + 1);
-        console.log(extension);
-        if (extension !== 'apk') {
-          // ElMessage.warning('只能上传后缀是.zip/.rar/.apk的文件'); //控制文件类型
-          ElMessage.warning('文件类型不对'); //控制文件类型
-          return false
-        }
-      }
-      //超限制
-      function handleExceed(files, fileList) {
-        ElMessage.warning("目前只能上传一个包")
-      }
-
-      //移除
-      function beforeRemove(file, fileList) {
-        let extension = file.name.substring(file.name.lastIndexOf('.') + 1);
-        if (extension !== 'apk') {
-          return
-        }
-        return this.$confirm(`确定移除 ${file.name}?`)
-      }
-
-
-      function httpRequest(param) {
-        const fileObj = param.file // 相当于input里取得的files
-        this.formData.append('apk', fileObj) // 文件对象
-        console.log("文件包" + this.formData.get('apk'));
-      }
-
-      //提交
-      const submitForm = async (formEl) => {
-        if (!formEl) return
-        await formEl.validate((valid, fields) => {
-          if (valid)
-          {
-            console.log('submit!')
-          }
-
-          else
-          {
-            console.log('error submit!', fields)
-          }
-        })
-      }
-        // form.validate((valid) => {
-        //   if (valid) {
-        //     if (this.fileList.length <= 0) {
-        //       ElMessage.error("至少上传一个包!");
-        //       return;
-        //     }
-        //     this.$refs.upload.submit();
-        //     //换行自动添加为<br/>
-        //     //将表单内其他内容添加进formData
-        //     this.formData.append('version', this.form.version)
-        //     this.formData.append('type', "0")
-        //     this.fullscreenLoading = true;
-        //     //调用后端接口,提交即可
-        //     UploadFile(this.formData).then(res => {
-        //       console.log(res)
-        //       if (res.status === 200) {
-        //         this.fullscreenLoading = false;
-        //         ElMessage({
-        //           message: '上传成功',
-        //           type: 'success'
-        //         });
-        //         this.formData = {}
-        //         this.fileList = []
-        //         resetForm(form)
-        //       } else {
-        //         ElMessage.error("上传失败");
-        //       }
-        //     })
-        //   } else {
-        //     // console.log('error submit!!');
-        //     return false;
-        //   }
-        // });
-
-      //重置
-      const resetForm = (formEl) => {
-        if (!formEl) return
-        formEl.resetFields()
-      }
-
-     return{
-       form,
-       rules,
-       headers,
-       message,
-       httpRequest,
-       beforeRemove,
-       beforeUploadFile,
-       handleExceed,
-       getFile,
-       fileList,
-       submitForm,
-       resetForm,
-       fullscreenLoading,
-     }
-    },
-};
-</script>
-
-
-<style scoped>
-.row-flex{
-  display:flex;
-  flex-direction:row;
-  justify-content: center;
-  align-items: center;
-}
-</style>