Forráskód Böngészése

//魔百合优化

15114606900@163.com 2 éve
szülő
commit
4cc3b5e9bf
2 módosított fájl, 260 hozzáadás és 3 törlés
  1. 257 0
      src/components/modUpload.vue
  2. 3 3
      src/pages/main/mbh/CMkMagicBoxTop.vue

+ 257 - 0
src/components/modUpload.vue

@@ -0,0 +1,257 @@
+<template>
+    <div v-loading="loading">
+        <el-upload class="upload-demo" :drag="fileInfo.type !== 'btn'" multiple :limit="fileInfo.limit" ref="upload"
+            action="string" :on-remove="handleRemove" :on-exceed="handleExceed" :file-list="fileList"
+             :auto-upload="true" :show-file-list="fileInfo.type !== 'btn'"
+            :before-upload="deforeUp" :http-request="signUpload">
+            <div v-if="fileInfo.type !== 'btn'">
+                <i class="el-icon-upload"></i>
+                <div class="el-upload__text">点击上传</div>
+            </div>
+            <div v-if="fileInfo.type === 'btn'">
+                <el-button :size="fileInfo.size?fileInfo.size:'medium'" :type="fileInfo.btntype" @click="aa">{{fileInfo.typename}}</el-button>
+            </div>
+        </el-upload>
+    </div>
+</template>
+<script>
+    export default {
+        props: ['fileInfo', 'fileList','type'],
+        data() {
+            return {
+                fileLists: [],
+                attList: [],
+                loading: false,
+                num: 0,
+                s: false
+            }
+        },
+        methods: {
+            aa(){
+                this.$emit("test");
+            },
+            signUpload(){},
+            //删除
+            handleRemove(file) {
+                for (let i = 0; i < this.attList.length; i++) {
+                    if (this.attList[i].fileName === file.name) {
+                        this.attList.splice(i, 1);
+                        this.$emit('uploadBack', this.attList)
+                    }
+                }
+            },
+            //数量限制
+            handleExceed(files, fileList) {
+                this.$message.warning(
+                    `当前限制选择 ${this.fileInfo.limit} 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`
+                );
+            },
+            deforeUp(file) {
+                const isJPG = (file.type === 'image/jpeg') || (file.type ==='image/png');
+
+                if (!isJPG) {
+                    this.$message.error('只能上传jpg或png图片!');
+                    return false
+                }
+                if (this.fileInfo.fileSize) {
+                    const isLt2M = file.size / 1024 / 1024 < this.fileInfo.fileSize;
+                    if (!isLt2M) {
+                        this.$message.error('上传文件大小不能超过 '+this.fileInfo.fileSize+'MB!');
+                        return false
+                    }
+                } else{
+                    const isLt2M = file.size / 1024 / 1024 < 100;
+                    if (!isLt2M) {
+                        this.$message.error('上传文件大小不能超过 20MB!');
+                        return false
+                    }
+                }
+
+                if(this.fileInfo.type == 'img'){
+                    const isImg = file.type.split("/")[0] == 'image';
+                    if (!isImg) {
+                        this.$message.error('请上传图片格式文件!');
+                        return false
+                    }
+                }
+                if(this.fileInfo.typexz == 'ppt'){
+                    const isImg = file.name.split(".")[1] == 'pptx';
+                    // console.log(file.name.split(".")[1] == 'pptx')
+                    if (!isImg) {
+                        this.$message.error('请上传ppt格式文件!');
+                        return false
+                    }
+                }
+                if(this.fileInfo.typexz == 'csv'){
+                    const isImg = file.name.split(".")[1] == 'csv';
+                    if (!isImg) {
+                        this.$message.error('请上传csv格式文件!');
+                        return false
+                    }
+                }
+                if(this.fileInfo.typexz == 'xlsx'){
+                    const isImg = file.name.split(".")[1] == 'xlsx';
+                    if (!isImg) {
+                        this.$message.error('请上传xlsx格式文件!');
+                        return false
+                    }
+                }
+                this.loading = true;
+                let query = new FormData();
+                query.append("files", file);
+                if(this.fileInfo.typename == '一键上传'){
+                    query.append("categoryId", this.fileInfo.categoryId);
+                    query.append("categoryName", this.fileInfo.categoryName);
+                }
+                if(this.fileInfo.typename == '新增素材'){
+                    query.append("advType", this.fileInfo.advType);
+                    query.append("advTypeName", this.fileInfo.advTypeName);
+                }
+                if(this.fileInfo.url == '/market/cIllegalCallTask/importTempByProv'||this.fileInfo.url == '/market/cChannelInfo/cIllegalCallTask/importTempByProv'){
+                    query.append("taskId", this.fileInfo.taskId);
+                    query.append("tempId", this.fileInfo.tempId);
+                }
+                //违规外呼
+                if(this.fileInfo.uploadType == 'outCall'){
+                    query.append("uploadType", 'outCall');
+                    query.append("relId", this.fileInfo.relId);
+                }
+                if(this.fileInfo.uploadType == 'train'){
+                    query.append("uploadType", 'train');
+                    query.append("relId", this.fileInfo.relId);
+                }
+                //运营类项目考核及结算
+                if(this.fileInfo.url == '/market/cmkAttachInfo/upload'){
+                    query.append("uploadType", this.fileInfo.uploadType);
+                }
+                if(this.fileInfo.url == '/market/cStoreOutWo/importData'){
+                    query.append("woNo", this.fileInfo.woNo);
+                }
+                if(this.fileInfo.url == '/market/cStoreScheTrainEva/importDataEva'){
+                    query.append("evaId", this.fileInfo.evaId);
+                }
+                this.num++;
+                let _this = this;
+                this.$http({
+                    url: this.fileInfo.url,
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: query,
+                }).then((res) => {
+                    if (this.fileInfo.type === 'btn') {
+                        this.$refs['upload'].clearFiles();
+                        this.$emit('uploadBack',res)
+                        if(res.data.result==0){
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'success'
+                            });
+                            location.reload();
+                        }else if(res.data.result==1){
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'error'
+                            });
+                        }else if(res.data.result==2){
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'warning'
+                            });
+                        }else if(res.data.result==3){
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'info'
+                            });
+                        }else{
+                            _this.$message({
+                                message: res.data.desc,
+                                type: 'success'
+                            });
+
+                        }
+                        this.num--;
+                        if (this.num == 0) {
+                            this.loading = false;
+                        }
+                        return
+                    }
+                    if (this.fileInfo.type === 'voice') {
+                        this.attList = res.data;
+                    } else {
+                        this.attList.push({
+                            id: res.data.body.id,
+                            fileName: res.data.body.fileName,
+                            fileCode: res.data.body.fileCode,
+                            opName: res.data.body.opName,
+                            opNo: res.data.body.opNo,
+                            opTime: res.data.body.opTime,
+                            attchFileId: res.data.body.attchFileId,
+                            type: res.data.body.type,
+                        });
+                    }
+                    this.$emit('uploadBack', this.attList);
+                    this.num--;
+                    if (this.num == 0) {
+                        this.loading = false;
+                    }
+                    return true
+                }).catch((res) => {
+                    this.$message({
+                        message: file.name+'上传失败',
+                        type: 'error'
+                    });
+                    this.num--;
+                    if (this.num == 0) {
+                        this.loading = false;
+                    }
+                    for (let i = 0; i < this.$refs['upload'].uploadFiles.length; i++) {
+                        if(file.name == this.$refs['upload'].uploadFiles[i].name){
+                            this.$refs['upload'].uploadFiles.splice(i,1)
+                        }
+                    }
+                    return false
+                })
+            },
+        },
+        mounted() {
+
+        },
+        created() {
+            this.attList = [];
+            for (let i = 0; i < this.fileList.length; i++) {
+                this.attList.push({
+                    id: this.fileList[i].id,
+                    fileName: this.fileList[i].fileName,
+                    fileCode: this.fileList[i].fileCode,
+                    opName: this.fileList[i].opName,
+                    opNo: this.fileList[i].opNo,
+                    opTime: this.fileList[i].opTime,
+                    attchFileId: this.fileList[i].attchFileId,
+                    type: this.fileList[i].type,
+                })
+            }
+        },
+        watch: {
+            fileList() {
+                this.attList = [];
+                for (let i = 0; i < this.fileList.length; i++) {
+                    this.attList.push({
+                        id: this.fileList[i].id,
+                        fileName: this.fileList[i].fileName,
+                        fileCode: this.fileList[i].fileCode,
+                        opName: this.fileList[i].opName,
+                        opNo: this.fileList[i].opNo,
+                        opTime: this.fileList[i].opTime,
+                        attchFileId: this.fileList[i].attchFileId,
+                        type: this.fileList[i].type,
+                    })
+                }
+            }
+        }
+    }
+</script>
+<style scoped lang="scss">
+
+</style>

+ 3 - 3
src/pages/main/mbh/CMkMagicBoxTop.vue

@@ -321,7 +321,7 @@
                                 type="success"
                                 >选取图片</el-button>
                             
-                        <span class="multiUploadLabelerr">只支持jpg、png格式的文件上传,且总文件大小在20M以内</span>
+                        <span class="multiUploadLabelerr">只支持jpg、png格式的文件上传,且单个文件大小在2M以内</span>
                             <!-- <div slot="tip" class="el-upload__tip">
                                 只能上传jpg/png文件,且不超过500kb
                             </div> -->
@@ -524,9 +524,9 @@ export default {
           this.$message.error('只能上传jpg或png图片!');
             return isJPG;
         }
-            const isLt2M = file.size / 1024 / 1024 < 20;
+            const isLt2M = file.size / 1024 / 1024 < 2;
         if (!isLt2M) {
-            this.$message.error('上传文件大小不能超过 20MB!');
+            this.$message.error('上传文件大小不能超过 2MB!');
             return  isLt2M;
         }
             return isJPG;