fix:需求完善

This commit is contained in:
2026-07-01 16:24:18 +08:00
parent f3ae9e6520
commit d6855c9f5c
9 changed files with 405 additions and 43 deletions
+65
View File
@@ -0,0 +1,65 @@
export type StoreDraftForm = {
name: string;
phone: string;
district: string;
address: string;
intro: string;
bankAccountName: string;
bankAccountNo: string;
bankBranch: string;
};
export const STORE_DRAFT_KEY = 'partner_store_draft_v1';
export const defaultStoreForm = (): StoreDraftForm => ({
name: '',
phone: '',
district: '金水区',
address: '',
intro: '',
bankAccountName: '',
bankAccountNo: '',
bankBranch: '',
});
export function loadStoreDraft(): StoreDraftForm | null {
try {
const raw = localStorage.getItem(STORE_DRAFT_KEY);
if (!raw) return null;
return { ...defaultStoreForm(), ...JSON.parse(raw) };
} catch {
return null;
}
}
export function saveStoreDraft(form: StoreDraftForm) {
localStorage.setItem(STORE_DRAFT_KEY, JSON.stringify(form));
}
export function clearStoreDraft() {
localStorage.removeItem(STORE_DRAFT_KEY);
}
const PHONE_RE = /^1\d{10}$/;
const BANK_RE = /^\d{16,19}$/;
export function validateStoreStep1(form: StoreDraftForm): string | null {
if (!form.name.trim()) return '请填写门店名称';
if (!form.phone.trim()) return '请填写联系电话';
if (!PHONE_RE.test(form.phone.trim())) return '联系电话须为11位手机号';
if (!form.district.trim()) return '请填写区县';
if (!form.address.trim()) return '请填写详细地址';
if (form.intro.trim()) {
const len = form.intro.trim().length;
if (len < 10 || len > 500) return '门店简介须为 10~500 字';
}
return null;
}
export function validateStoreStep3(form: StoreDraftForm): string | null {
if (!form.bankAccountName.trim()) return '请填写户主姓名';
if (!form.bankAccountNo.trim()) return '请填写银行卡号';
if (!BANK_RE.test(form.bankAccountNo.replace(/\s/g, ''))) return '银行卡号须为 16~19 位数字';
if (!form.bankBranch.trim()) return '请填写开户支行';
return null;
}