Admin
2022-12-05 335e8bebc173bd2fbf5fdfcbc3a4d307be9187c5
src/views/specialCheck/components/sendWork.vue
@@ -6,8 +6,27 @@
        :close-on-click-modal="false"
        width="60%"
        center
        :show-close="false"
        @close="resetForm('workForm')"
    >
        <el-upload
            class="upload-demo"
            action
            :http-request="uploadFile"
            :on-preview="handlePreview"
            :on-remove="handleRemove"
            :before-upload="beforeUpload"
            :before-remove="beforeRemove"
            multiple
            :limit="1"
            :on-exceed="handleExceed"
            accept=".pdf, .doc, .docx"
            :file-list="fileList">
            <div style="display: flex;align-items: center">
                <el-button type="primary" style="margin-right: 80px">检查内容上传</el-button>
                <div slot="tip" class="el-upload__tip">只能上传doc/docx文件</div>
            </div>
        </el-upload>
        <el-form :model="workForm" :rules="rules" ref="workForm" label-width="80px">
            <el-form-item label="专项检查任务名称:" label-width="180px" prop="taskName">
                <el-input v-model="workForm.taskName"></el-input>
@@ -64,7 +83,7 @@
                </el-row>
            </div>
            <div class="form-part">
                <h3>市州级检查指标</h3>
                <h3>地(州、市)级检查指标</h3>
<!--                <p>批发企业:</p>-->
                <el-divider content-position="left">批发企业</el-divider>
                <el-row>
@@ -163,6 +182,7 @@
            </el-form-item>
        </el-form>
        <span slot="footer" class="dialog-footer">
          <el-button type="warning" @click="cancleSend" plain>取消</el-button>
          <el-button @click="resetForm('workForm')">重置</el-button>
          <el-button type="primary" v-stop-re-click @click="confirmSend('workForm')">确认下发</el-button>
        </span>
@@ -171,12 +191,14 @@
<script>
    import {computePageCount} from "@/utils";
    import{sendCheckTask} from "@/api/specialCheck"
    import{sendCheckTask, uploadFile, delateFile} from "@/api/specialCheck"
    export default {
        name: "sendWork",
        data(){
            return{
                dialogVisible:false,
                fileList: [],
                fileType: ['pdf','doc','docx'],
                workForm: {
                    taskName: '',
                    provinceWholesaleCheckTarget: null,
@@ -193,7 +215,8 @@
                    areaWholesaleCheckDeadline: '',
                    areaRetailCheckTarget: null,
                    areaRetailCheckDeadline: '',
                    enterpriseSelfCheckDeadline: ''
                    enterpriseSelfCheckDeadline: '',
                    taskDescFileName: null
                },
                rules: {
                    taskName: [{ required: true, message: '请输入任务名称', trigger: 'blur' }],
@@ -216,6 +239,102 @@
        watch: {
        },
        methods:{
            //上传文件的事件
            async uploadFile(item){
                const t = this
                const loading = this.$loading({
                    lock: true,
                    text: '正在上传文件...',
                    spinner: 'el-icon-loading'
                });
                //上传文件的需要formdata类型;所以要转
                let FormDatas = new FormData()
                FormDatas.append('taskDescFile',item.file);
                const res = await uploadFile(FormDatas)
                if(res.data.code == '200'){
                    loading.close();
                    t.$message({
                        type:'success',
                        message: '上传成功'
                    })
                    t.fileList.push(item.file)
                    console.log(t.fileList,'fileList')
                    t.workForm.taskDescFileName = res.data.result
                }else{
                    loading.close();
                    t.$message({
                        type:'warning',
                        message:res.data.message
                    })
                }
                // axios({
                //     method: 'post',
                //     url: 'http://192.168.0.29:8100/checkTask/upload/taskDescFile',
                //     headers:this.headers,
                //     timeout: 30000,
                //     data: FormDatas
                // }).then(res=>{
                //     if(res.data.id != '' || res.data.id != null){
                //         this.fileList.push(item.file);//成功过后手动将文件添加到展示列表里
                //         let i = this.fileList.indexOf(item.file)
                //         this.fileList[i].id = res.data.id;//id也添加进去,最后整个大表单提交的时候需要的
                //         if(this.fileList.length > 0){//如果上传了附件就把校验规则给干掉
                //             this.fileflag = false;
                //             this.$set(this.rules.url,0,'')
                //         }
                //         //this.handleSuccess();
                //     }
                // })
            },
            //上传文件之前
            beforeUpload(file){
                // const t = this
                // if (file.type != "" || file.type != null || file.type != undefined){
                //     //截取文件的后缀,判断文件类型
                //     console.log(t.fileType,file.name,'666')
                //     const FileExt = file.name.replace(/.+\./, "").toLowerCase();
                //     // //计算文件的大小
                //     // const isLt5M = file.size / 1024 / 1024 < 50; //这里做文件大小限制
                //     // //如果大于50M
                //     // if (!isLt5M) {
                //     //     this.$showMessage('上传文件大小不能超过 50MB!');
                //     //     return false;
                //     // }
                //     //如果文件类型不在允许上传的范围内
                //     if(t.fileType.indexOf(FileExt) !== -1){
                //         return true;
                //     }
                //     else {
                //         t.$message.error("上传文件格式不正确!");
                //         return false;
                //     }
                // }
            },
            async handleRemove(file, fileList) {
                const t = this
                const res = await delateFile({taskDescFileName: t.workForm.taskDescFileName})
                if(res.data.code == '200'){
                    t.$message({
                        type:'success',
                        message: '删除成功'
                    })
                    t.fileList = []
                }else{
                    t.$message({
                        type:'warning',
                        message:res.data.message
                    })
                }
            },
            handlePreview(file) {
                console.log(file);
            },
            handleExceed(files, fileList) {
                this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
            },
            beforeRemove(file, fileList) {
                return this.$confirm(`确定移除 ${ file.name }?`);
            },
            confirmSend(formName){
                const t = this
                t.$refs[formName].validate((valid) => {
@@ -230,22 +349,24 @@
                        }).then(async () => {
                            const loading = this.$loading({
                                lock: true,
                                text: '正在下发',
                                text: '正在下发...',
                                spinner: 'el-icon-loading'
                            });
                            let res = await sendCheckTask(t.workForm)
                            if(res.data.code === "200"){
                                loading.close();
                                t.$message({
                                    type:'success',
                                    message: '任务下发成功'
                                })
                            }else{
                                loading.close();
                                t.$message({
                                    type:'warning',
                                    message:res.data.message
                                })
                            }
                            loading.close();
                            t.fileList = []
                            t.dialogVisible = false
                            t.$parent.getSpecialCheckTask();
                        }).catch(() => {
@@ -259,8 +380,28 @@
                    }
                });
            },
            resetForm(formName) {
                this.$refs[formName].resetFields();
            cancleSend(){
               this.resetForm('workForm')
                this.dialogVisible = false
            },
            async resetForm(formName) {
                const t = this
                if(t.workForm.taskDescFileName !== null){
                    const res = await delateFile({taskDescFileName: t.workForm.taskDescFileName})
                    if(res.data.code == '200'){
                        t.$message({
                            type:'success',
                            message: '已取消下发'
                        })
                    }else{
                        t.$message({
                            type:'warning',
                            message:res.data.message
                        })
                    }
                }
                t.$refs[formName].resetFields()
                t.fileList = []
            }
        },
    }
@@ -279,6 +420,21 @@
        background-color: #fafafa;
        color: #034EA2;
    }
    .upload-demo{
        margin-bottom: 20px;
        background: #fafafa;
        padding: 20px 15px;
        border-radius: 8px;
        .el-upload__tip{
            font-size: 14px;
            color: #999;
        }
        .el-upload-list{
            background-color: #ccc !important;
        }
    }
    .form-part{
        background: #fafafa;
        padding: 10px 15px;