+
+ {{ NEW_LOGIN_PASSWORD_HINT }}
+
+
+
+ {{ passwordStrength === 3 ? '密码符合规则' : '密码尚未符合规则' }}
+
@@ -129,6 +137,12 @@
type AgentDistributionRegistrationParams
} from '@/api/modules/agentDistribution'
import { regionData } from '@/utils/constants/regionData'
+ import { getAgentRegistrationFailureMessage } from '@/utils/business/agentRegistrationError'
+ import {
+ createNewLoginPasswordRule,
+ getNewLoginPasswordError,
+ NEW_LOGIN_PASSWORD_HINT
+ } from '@/utils/validation/loginPassword'
const route = useRoute()
@@ -180,7 +194,7 @@
code: [{ required: true, message: '请输入短信验证码', trigger: 'blur' }],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
- { min: 8, max: 32, message: '密码长度为 8-32 位', trigger: 'blur' }
+ createNewLoginPasswordRule()
],
shop_name: [{ required: true, message: '请输入店铺名称', trigger: 'blur' }],
username: [
@@ -234,14 +248,7 @@
const passwordStrength = computed(() => {
const pwd = form.password
if (!pwd) return 0
- let score = 0
- if (pwd.length >= 8) score += 1
- if (/[a-z]/.test(pwd) && /[A-Z]/.test(pwd)) score += 1
- if (/\d/.test(pwd)) score += 1
- if (/[^A-Za-z0-9]/.test(pwd)) score += 1
- if (score >= 4) return 3
- if (score >= 2) return 2
- return 1
+ return getNewLoginPasswordError(pwd) ? 1 : 3
})
const strengthClass = computed(() => {
@@ -267,9 +274,9 @@
}
const handleSubmit = () => {
- if (!formRef.value) return
+ if (!formRef.value || submitting.value) return
formRef.value.validate(async (valid) => {
- if (!valid) return
+ if (!valid || submitting.value) return
submitting.value = true
try {
const params: AgentDistributionRegistrationParams = {
@@ -291,10 +298,10 @@
if (res.code === 0) {
submitted.value = true
} else {
- ElMessage.error('分销码不可用')
+ ElMessage.error(getAgentRegistrationFailureMessage(res))
}
- } catch {
- ElMessage.error('分销码不可用')
+ } catch (error) {
+ ElMessage.error(getAgentRegistrationFailureMessage(error))
} finally {
submitting.value = false
}
@@ -315,19 +322,19 @@