From e52fe71fb9c6dd82f996a9db07b2bd765c27f09b Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期二, 21 一月 2025 16:36:58 +0800 Subject: [PATCH] 添加校验 --- src/views/usermng/product.vue | 4 ++-- src/views/login/register.vue | 38 ++++++++++++++++++++++++++++++-------- src/utils/validate.js | 11 +++++++++++ 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/utils/validate.js b/src/utils/validate.js index af3aa08..87863a7 100644 --- a/src/utils/validate.js +++ b/src/utils/validate.js @@ -41,6 +41,17 @@ return reg.test(str) } +export function validEnterNumber(str) { + const reg = /^[A-Za-z0-9]{2,30}$/ + return reg.test(str) +} + +export function verifyPwd(str) { + // false: 强密码不正确 + const reg = /^(?![a-zA-Z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)(?![a-zA-Z\d]+$)(?![a-zA-Z!@#$%^&\.*]+$)(?![\d!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*\-_]{6,16}$/ + return reg.test(str) +} + /** * validate email * @param email diff --git a/src/views/login/register.vue b/src/views/login/register.vue index 13e8778..36c011d 100644 --- a/src/views/login/register.vue +++ b/src/views/login/register.vue @@ -18,7 +18,7 @@ <el-row> <el-col :span="20"> <el-form-item label="终端机用户名" prop="enterprisenumber"> - <el-input v-model="registerForm.enterprisenumber" @change="checkNameAndNumber('number')" placeholder="自定义英文+数字,将作为销售终端用户名"></el-input> + <el-input v-model="registerForm.enterprisenumber" @change="checkNameAndNumber('number')" placeholder="自定义英文或数字,将作为销售终端用户名"></el-input> </el-form-item> </el-col> <el-col :span="4" style="margin-top:10px;" v-if="showNumber"> @@ -481,7 +481,7 @@ import {isNameExist, isNumberExist, register} from "../../api/login"; import {getCityListData, getProvinceListData} from "../../api/area"; import {parseError} from "../../utils/messageDialog"; -import {validEnterName} from "../../utils/validate"; +import {validEnterName, validEnterNumber, verifyPwd} from "../../utils/validate"; export default { name: "register", @@ -492,6 +492,28 @@ }else{ if(!validEnterName(value)){ callback(new Error('名称不能包含中文括号')) + }else{ + callback() + } + } + } + let checkNumber = (rule, value, callback)=>{ + if(value === ''){ + callback(new Error('请填写终端机用户名')) + }else{ + if(!validEnterNumber(value)){ + callback(new Error('名称请使用英文或数字(长度2到30),不能包含中文')) + }else{ + callback() + } + } + } + let checkPassword = (rule, value, callback)=>{ + if(value === ''){ + callback(new Error('请填写密码')) + }else{ + if(!verifyPwd(value)){ + callback(new Error('密码须同时包含字母、数字、特殊字符,长度在6-16之间')) }else{ callback() } @@ -539,10 +561,10 @@ { required: true, validator: checkEnterName, trigger: 'blur' }, ], enterprisenumber:[ - { required: true, message: '请填写终端机用户名', trigger: 'blur' }, + { required: true, validator: checkNumber, trigger: 'blur' }, ], password:[ - { required: true, message: '请填写密码', trigger: 'change' }, + { required: true, validator: checkPassword, trigger: 'change' }, ], type:[ { required: true, message: '请选择企业类型', trigger: 'blur' }, @@ -1105,10 +1127,10 @@ message: '终端机用户名已存在', }) }else{ - this.$message({ - type:'success', - message:'终端机用户名可以使用' - }) + // this.$message({ + // type:'success', + // message:'终端机用户名可以使用' + // }) this.showNumber = false } }else{ diff --git a/src/views/usermng/product.vue b/src/views/usermng/product.vue index c200030..132f30a 100644 --- a/src/views/usermng/product.vue +++ b/src/views/usermng/product.vue @@ -37,7 +37,7 @@ </el-option> </el-select> <el-button v-if="getBtnPermission('add')" class="filter-item" style="margin-left: 10px;" type="primary" - icon="el-icon-plus" @click="showCreateHandle">旧系统信息录入 + icon="el-icon-plus" @click="showCreateHandle">万能码信息录入 </el-button> <el-upload v-if="userType === 1" class="filter-item" @@ -51,7 +51,7 @@ :on-success="onSuccessHandler" :on-error="onErrorHandler" :auto-upload="true"> - <el-dropdown @command="handleCommand" split-button trigger="hover" type="primary" style="margin-left: 10px;" icon="el-icon-plus" :disabled="uploadBtnControl">旧系统信息导入 + <el-dropdown @command="handleCommand" split-button trigger="hover" type="primary" style="margin-left: 10px;" icon="el-icon-plus" :disabled="uploadBtnControl">万能码信息导入 <el-button type="primary" slot="trigger" :disabled="uploadBtnControl"></el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item icon="el-icon-plus" command="download" >下载模板</el-dropdown-item> -- Gitblit v1.9.2