This commit is contained in:
2026-09-02 10:05:46 +08:00
parent e5e412682c
commit 6dcea387d3
3 changed files with 11 additions and 8 deletions
+1 -1
View File
@@ -7,7 +7,7 @@ export interface RegisterMerchantRequest {
displayName: string
companyName: string
legalPerson: string
legalPhone: string
phone: string
contactEmail?: string
countryCode?: string
address?: string
+5 -2
View File
@@ -50,10 +50,13 @@ test('persists both rotating tokens according to the remember choice', () => {
})
test('implements every backend registration field and real submission', () => {
for (const field of ['username', 'companyName', 'displayName', 'legalPerson', 'legalPhone', 'contactEmail', 'countryCode', 'address', 'password', 'agreement']) {
for (const field of ['username', 'companyName', 'displayName', 'legalPerson', 'phone', 'contactEmail', 'countryCode', 'address', 'password', 'agreement']) {
assert.match(registerSource, new RegExp(`prop="${field}"`))
}
assert.match(registerSource, /label="登录手机号" prop="legalPhone"/)
assert.match(registerSource, /label="登录手机号" prop="phone"/)
assert.doesNotMatch(registerSource, /legalPhone/)
assert.match(authApiSource, /phone: string/)
assert.doesNotMatch(authApiSource, /legalPhone/)
assert.match(registerSource, /注册时同时初始化公司联系电话;注册后两者可分别修改,互不联动/)
assert.match(registerSource, /registerMerchant\(/)
assert.match(registerSource, /4–64 位/)
+5 -5
View File
@@ -11,7 +11,7 @@ interface RegisterForm {
companyName: string
displayName: string
legalPerson: string
legalPhone: string
phone: string
contactEmail: string
countryCode: string
address: string
@@ -24,7 +24,7 @@ const formRef = ref<FormInstance>()
const submitting = ref(false)
const submitted = ref(false)
const submittedAt = ref('')
const form = reactive<RegisterForm>({ username: '', companyName: '', displayName: '', legalPerson: '', legalPhone: '', contactEmail: '', countryCode: 'CN', address: '', password: '', agreement: false })
const form = reactive<RegisterForm>({ username: '', companyName: '', displayName: '', legalPerson: '', phone: '', contactEmail: '', countryCode: 'CN', address: '', password: '', agreement: false })
const rules: FormRules<RegisterForm> = {
username: [
@@ -46,7 +46,7 @@ const rules: FormRules<RegisterForm> = {
contactEmail: [
{ type: 'email', message: '请输入有效的邮箱地址', trigger: 'blur' },
],
legalPhone: [
phone: [
{ required: true, message: '请输入手机号', trigger: 'blur' },
{ pattern: /^1[3-9]\d{9}$/, message: '请输入有效的中国大陆手机号', trigger: 'blur' },
],
@@ -74,7 +74,7 @@ async function submit() {
displayName: form.displayName.trim(),
companyName: form.companyName.trim(),
legalPerson: form.legalPerson.trim(),
legalPhone: form.legalPhone.trim(),
phone: form.phone.trim(),
contactEmail: form.contactEmail.trim() || undefined,
countryCode: form.countryCode,
address: form.address.trim() || undefined,
@@ -131,7 +131,7 @@ async function submit() {
<h2 id="contact-section-title">联系信息</h2>
<div class="register-form-grid">
<el-form-item label="联系人" prop="displayName" required><el-input v-model="form.displayName" maxlength="64" placeholder="请输入联系人姓名" /></el-form-item>
<el-form-item label="登录手机号" prop="legalPhone" required><el-input v-model="form.legalPhone" type="tel" autocomplete="tel" inputmode="numeric" maxlength="11" placeholder="请输入 11 位手机号" :prefix-icon="Phone" /><span class="register-security-note">注册时同时初始化公司联系电话;注册后两者可分别修改,互不联动。</span></el-form-item>
<el-form-item label="登录手机号" prop="phone" required><el-input v-model="form.phone" type="tel" autocomplete="tel" inputmode="numeric" maxlength="11" placeholder="请输入 11 位手机号" :prefix-icon="Phone" /><span class="register-security-note">注册时同时初始化公司联系电话;注册后两者可分别修改,互不联动。</span></el-form-item>
<el-form-item label="联系邮箱" prop="contactEmail"><el-input v-model="form.contactEmail" type="email" autocomplete="email" maxlength="128" placeholder="选填,用于接收业务通知" :prefix-icon="Mail" /></el-form-item>
<el-form-item label="企业地址" prop="address"><el-input v-model="form.address" maxlength="255" placeholder="选填,最多 255 个字符" /></el-form-item>
</div>