This commit is contained in:
2026-09-11 16:17:24 +08:00
parent 80e83a6668
commit ec7f76fede
18 changed files with 263 additions and 31 deletions
+1 -1
View File
@@ -6,7 +6,7 @@ export interface RegisterMerchantRequest {
password: string
displayName: string
companyName: string
legalPerson: string
legalPerson?: string
phone: string
contactEmail?: string
countryCode?: string
@@ -67,6 +67,15 @@ test('implements every backend registration field and real submission', () => {
assert.match(registerSource, /registerMerchant\(/)
assert.match(registerSource, /4–64 位/)
assert.match(registerSource, /8–72 位/)
assert.match(registerSource, /label="法定代表人(选填)" prop="legalPerson"/)
assert.doesNotMatch(registerSource, /label="法定代表人[^\"]*" prop="legalPerson" required/)
assert.doesNotMatch(registerSource, /required: true, message: '请输入法定代表人'/)
assert.match(authApiSource, /legalPerson\?: string/)
})
test('shows an explicit registration entry directly below the login button', () => {
assert.match(loginSource, /<el-button[^>]*class="auth-submit"[\s\S]*?<p class="login-register-entry">还没有企业账号?<RouterLink to="\/register">立即注册<\/RouterLink><\/p>/)
assert.match(stylesSource, /\.login-register-entry \{[^}]*text-align: center;/)
})
test('shows immediate login after registration and separates company review from account activation', () => {
+1
View File
@@ -119,6 +119,7 @@ function showResetHint() {
<button type="button" @click="showResetHint">忘记密码?</button>
</div>
<el-button native-type="submit" class="auth-submit" type="primary" :loading="loading">登录 <ArrowRight :size="17" /></el-button>
<p class="login-register-entry">还没有企业账号?<RouterLink to="/register">立即注册</RouterLink></p>
</el-form>
</div>
</AuthShell>
+3 -3
View File
@@ -40,7 +40,6 @@ const rules: FormRules<RegisterForm> = {
{ max: 64, message: '联系人姓名最多 64 个字符', trigger: 'blur' },
],
legalPerson: [
{ required: true, message: '请输入法定代表人', trigger: 'blur' },
{ max: 64, message: '法定代表人最多 64 个字符', trigger: 'blur' },
],
contactEmail: [
@@ -68,12 +67,13 @@ async function submit() {
submitting.value = true
try {
const legalPerson = form.legalPerson.trim()
await registerMerchant({
username: form.username.trim(),
password: form.password,
displayName: form.displayName.trim(),
companyName: form.companyName.trim(),
legalPerson: form.legalPerson.trim(),
...(legalPerson ? { legalPerson } : {}),
phone: form.phone.trim(),
contactEmail: form.contactEmail.trim() || undefined,
countryCode: form.countryCode,
@@ -122,7 +122,7 @@ async function submit() {
<h2 id="company-section-title">企业信息</h2>
<div class="register-form-grid">
<el-form-item label="企业名称" prop="companyName" class="register-form-full" required><el-input v-model="form.companyName" maxlength="100" placeholder="请输入营业执照上的企业名称" /></el-form-item>
<el-form-item label="法定代表人" prop="legalPerson" required><el-input v-model="form.legalPerson" maxlength="64" placeholder="请输入营业执照法定代表人" /></el-form-item>
<el-form-item label="法定代表人(选填)" prop="legalPerson"><el-input v-model="form.legalPerson" maxlength="64" placeholder="可在企业资料中后续补充" /></el-form-item>
<el-form-item label="国家/地区" prop="countryCode"><el-select v-model="form.countryCode" class="register-select"><el-option label="中国大陆(CN)" value="CN" /></el-select></el-form-item>
</div>
</section>