vue3账户注册页面

<template>
    <div>
        <div class="crumbs">

        </div>
        <div class="container">
            <div class="form-box">
                <el-form ref="formRef" :rules="rules" :model="form" label-width="80px" >
                    <el-form-item label="账号" prop="code" label-width="100px">
                        <el-input v-model="form.code"></el-input>
                    </el-form-item>
                    <el-form-item label="密码" prop="pwd" label-width="100px">
                        <el-input v-model="form.pwd" show-password></el-input>
                    </el-form-item>
                    <el-form-item label="确认密码" prop="confirm" label-width="100px">
                        <el-input v-model="form.confirm" show-password></el-input>
                    </el-form-item>
                    <el-form-item label="手机号码" prop="mobile" label-width="100px">
                        <el-input v-model="form.mobile" maxlength="11"></el-input>
                    </el-form-item>
                    <el-form-item label="名称" prop="userName" label-width="100px">
                        <el-input v-model="form.userName"></el-input>
                    </el-form-item>

                    <el-form-item style="margin-left: 12%">
                        <el-button type="primary" @click="submit(formRef)">注册</el-button>
                        <el-button @click="resetForm(formRef)">重置</el-button>
                    </el-form-item>
                </el-form>
            </div>
        </div>
    </div>
</template>

<script>
    import { reactive, ref } from "vue";
    import {ElLoading, ElMessage, ElMessageBox} from "element-plus";
    import md5 from "js-md5";
    import {regularKey, REQ_SUCCESS_GET} from "../../assets/js/commonConfig";
    import {addOperator} from "../../api/apiIndex";

export default {
    name: "registerOperator",
    setup() {
        const formRef = ref('');
        const validateConfirm = (rule,value,callback) =>{
            if(value === ''){
                callback(new Error("确认密码栏不能为空"))
            }else if(value !== form.pwd){
                callback(new Error("两次输入的密码不一致"))
            }else {
                callback()
            }
        }
        const rules = {
            code:[
                {
                    required:true,
                    message:"账号不能为空!",
                    trigger:"blur"
                }
            ],
            pwd:[
                {
                    required:true,
                    message:"密码不能为空!",
                    trigger:"blur"
                },
                {
                    pattern:regularKey,
                    message:"密码必须为6-16位的字母、数字或符号任意两种的组合!",
                    trigger: "blur"
                }
            ],
            mobile:[
                {
                    required:true,
                    message:"手机号不能为空!",
                    trigger:"blur"
                },{
                    pattern:/^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
                    message: "请输入正确的手机号码",
                    trigger: "blur"
                }
            ],
            userName:[
                {
                    required:true,
                    message:"名称不能为空!",
                    trigger:"blur"
                }
            ],
            confirm:[
                {
                    validator:validateConfirm,
                    trigger:"blur"
                }
            ],
        };
        const form = reactive({
            code: "",
            pwd:"",
            mobile:"",
            userName:"",
            confirm:"",
        });

        const submit = (formEl) =>{
            if(!formEl){
                return;
            }
            formEl.validate((valid, fields) =>{
                if(valid){
                    const loading = ElLoading.service({
                        lock: true,
                        text: '注册中···',
                        background: 'rgba(0, 0, 0, 0.7)',
                    })
                    addOperator({
                        userCode:form.code,
                        userPassword:md5(md5(form.pwd)),
                        mobile:form.mobile,
                        userName:form.userName,
                    },res => {
                        loading.close();
                        console.log('注册集运人员结果',res);
                        if(res.retCode == REQ_SUCCESS_GET){
                            ElMessage.success('创建集运人员成功');
                            formEl.resetFields();
                        }else{
                            ElMessage.error(res.retMsg);
                        }
                    },err => {
                        loading.close();
                        console.log('注册集运人员异常',err)
                        ElMessage.error('创建集运人员异常')
                    })
                }else{
                    ElMessage.error('参数异常,请根据参数规则检查参数!');
                    console.log("error,校验失败",fields);
                    return;
                }
            })
        }

        const resetForm = (formEl) =>{
            formEl.resetFields();
        }
        return {
            rules,
            form,
            formRef,
            submit,
            resetForm,
        };
    }
}

</script>

<style scoped>

    .el-form-item__label{
        width: 100px !important;
    }
    >>>.el-form-item__label {
        width: 150px !important;
    }
    table tbody::-webkit-scrollbar {
        width: 6px;
    }

</style>

 

posted @ 2022-05-30 15:09  梦幻&浮云%  阅读(259)  评论(0编辑  收藏  举报