vue2 element-ul 上传

1.html

 <el-upload :data={portraitId:peoFile.id} multiple :action="uploadFileUrl"
                            :before-upload="handleBeforeUpload" :on-error="handleUploadError"
                            :on-success="handleUploadSuccess" :show-file-list="false" :headers="headers"
                            class="upload-file-uploader" ref="upload">
                            <el-button size="mini" type="primary">上传文件</el-button>
                        </el-upload>

2.js

//若依系统引入token
import { getToken } from "@/utils/auth";
//data里面定义上传地址,请求投加上token
 headers: {
                Authorization: "Bearer " + getToken(),
            },
  uploadFileUrl: process.env.VUE_APP_BASE_API + "/xxxxxxx/xxxxxxxx", // 上传的图片服务器地址  
//在data里面定义上传文件的格式以作为判断
fileType: ["pdf", "doc", "docx", "ppt", "pptx", "xls", "xlsx", 'png', 'jpg', 'jpeg', 'txt', 'zip', 'rar', '7z'],
 // 上传前校检格式和大小
        handleBeforeUpload(file) {
            // 校检文件大小
            let fileSize = Number(file.size / 1024 / 1024);
            if (fileSize) {
                const isLt = file.size / 1024 / 1024 > 20;
                if (isLt) {
                    this.$modal.msgError(`${file.name}上传文件大小不能超过20MB!`);
                    return false;
                }
            }
            if (this.fileType) {
                let fileExtension = "";
                if (file.name.lastIndexOf(".") > -1) {
                    fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
                }
                if (file.name.lastIndexOf(",") > -1) {
                    this.$modal.msgError(`文件名不能包括','号`);
                    return
                }
                const isTypeOk = this.fileType.some((type) => {
                    if (file.type.indexOf(type) > -1) return true;
                    if (fileExtension && fileExtension.indexOf(type) > -1) return true;
                    return false;
                });
                if (!isTypeOk) {
                    this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
                    return false;
                }
            }
            this.$modal.loading("正在上传文件,请稍候...");
            return true;
        },
 handleUploadError(err) {
            this.$modal.msgError("上传文件失败,请重试");
            this.$modal.closeLoading()
        },
    // 上传成功回调
        handleUploadSuccess(response, file, fileList, index) {
            console.log(response, file, fileList, index);
            if (response.code == 200) {
                this.$modal.msgSuccess(`${file.raw.name}文件导入成功`);
                console.log(this.peoFile);
                // this.deptId = this.peoFile.deptId
                // this.getList()
                let data = {
                    portraitId: this.peoFile.id
                }
                queryAllDetailById(data).then(res => {
                    if (res && res.code == 200) {
                        this.otherFileList = res.data.piccAuditFiles
                        res.data.piccAuditFiles.forEach(item => {
                            item.createtime = item.createtime.slice(0, 10)
                        });
                        this.tableData = res.data.piccAuditFiles
                        this.title = `${res.data.portrait.name}的审计相关文件`
                        this.isFirst = false
                        this.isPortraitFile = false
                        this.before = res.data.before
                    }
                })
                this.$modal.closeLoading();
            } else {
                this.$modal.msgError(response.msg);
                this.$modal.closeLoading();
            }
        },

好的,以下是一个简单的学生注册页面的 Vue 代码,使用element-ui 组件库: ```html <template> <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm"> <el-form-item label="姓名" prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="性别" prop="gender"> <el-radio-group v-model="form.gender"> <el-radio label="male">男</el-radio> <el-radio label="female">女</el-radio> </el-radio-group> </el-form-item> <el-form-item label="年龄" prop="age"> <el-input-number v-model="form.age" :min="1" :max="100"></el-input-number> </el-form-item> <el-form-item label="专业" prop="major"> <el-input v-model="form.major"></el-input> </el-form-item> <el-form-item label="联系方式" prop="phone"> <el-input v-model="form.phone"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm('form')">提交</el-button> <el-button @click="resetForm('form')">重置</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { form: { name: '', gender: '', age: '', major: '', phone: '' }, rules: { name: [ { required: true, message: '请输入姓名', trigger: 'blur' }, { min: 2, max: 5, message: '长度在 2 到 5 个字符', trigger: 'blur' } ], gender: [ { required: true, message: '请选择性别', trigger: 'change' } ], age: [ { required: true, message: '请输入年龄', trigger: 'blur' }, { type: 'number', message: '请输入数字', trigger: 'blur' } ], major: [ { required: true, message: '请输入专业', trigger: 'blur' }, ], phone: [ { required: true, message: '请输入联系方式', trigger: 'blur' }, { pattern: /^1[3456789]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' } ] } }; }, methods: { submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { // 表单验证通过,提交表单 console.log(this.form); } else { return false; } }); }, resetForm(formName) { this.$refs[formName].resetFields(); } } }; </script> ``` 上述代码中,使用了 `el-form` 表单、`el-form-item` 表单项、`el-input` 输入框、`el-input-number` 数字输入框、`el-radio-group` 单选框组、`el-radio` 单选框、`el-button` 按钮 等组件。同时,为了方便表单验证,使用了 `rules` 属性和 `validate()` 方法。 希望这个示例能够对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值