diff --git a/.env b/.env index 9456b8c..1c67321 100644 --- a/.env +++ b/.env @@ -8,4 +8,4 @@ VITE_OPEN = true VITE_OPEN_CDN = false # public path 配置线上环境路径(打包)、本地通过 http-server 访问时,请置空即可 -VITE_PUBLIC_PATH = 'https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/event_web/202605081710/' \ No newline at end of file +VITE_PUBLIC_PATH = 'https://yuedong-wechatapplet.oss-cn-shanghai.aliyuncs.com/static/event_web/202606040917/' \ No newline at end of file diff --git a/src/views/team/athlete/index.vue b/src/views/team/athlete/index.vue index c1422ca..a699223 100644 --- a/src/views/team/athlete/index.vue +++ b/src/views/team/athlete/index.vue @@ -165,7 +165,7 @@ :disabled="sending || !isPhoneValid"> {{ sending ? `${sendTimer}s` : '获取验证码' }} - 手机号未变更 + 手机号未变更 @@ -217,6 +217,9 @@ const initParam = ref({ }) const formRules = computed(() => { + // 编辑运动员且原来有手机号,则手机号必填;否则非必填 + const isMobileRequired = !!(formData.value.id && originalMobile.value); + const baseRules = { name: [ { required: true, message: '请输入运动员姓名', trigger: 'blur' } @@ -227,18 +230,30 @@ const formRules = computed(() => { gender: [ { required: true, message: '请选择性别', trigger: 'change' } ], - mobile: [ - { required: true, message: '请输入联系电话', trigger: 'blur' }, - { - validator: (rule, value, cb) => { - const reg = /^1[3-9]\d{9}$/; - if (!value) return cb(new Error('请输入联系电话')); - if (!reg.test(value)) return cb(new Error('请输入正确的手机号')); - cb(); - }, - trigger: 'blur' - } - ], + mobile: isMobileRequired + ? [ + { required: true, message: '请输入联系电话', trigger: 'blur' }, + { + validator: (rule, value, cb) => { + const reg = /^1[3-9]\d{9}$/; + if (!value) return cb(new Error('请输入联系电话')); + if (!reg.test(value)) return cb(new Error('请输入正确的手机号')); + cb(); + }, + trigger: 'blur' + } + ] + : [ + { + validator: (rule, value, cb) => { + if (!value) return cb(); // 非必填,允许为空 + const reg = /^1[3-9]\d{9}$/; + if (!reg.test(value)) return cb(new Error('请输入正确的手机号')); + cb(); + }, + trigger: 'blur' + } + ], idCardImageUrl: [ { required: true, message: '请上传身份证照片', trigger: 'change' } ], @@ -246,8 +261,8 @@ const formRules = computed(() => { { required: true, message: '请选择出生日期', trigger: 'change' } ], }; - - // 只在需要验证码时添加验证码验证规则 + + // 填写了手机号且手机号发生变更(新增或修改)时,验证码必填 if (needVerificationCode.value) { baseRules.verificationCode = [ { required: true, message: '请输入验证码', trigger: 'blur' }, @@ -305,7 +320,8 @@ const isMobileChanged = computed(() => { return formData.value.mobile !== originalMobile.value; }); const needVerificationCode = computed(() => { - return isMobileChanged.value; + // 填写了手机号 且 手机号发生了变更(新增或修改),才需要验证码 + return !!(formData.value.mobile && isMobileChanged.value); }); // 团队新增弹窗相关