webadmin去掉新建门店的短信验证

This commit is contained in:
2026-07-07 18:17:45 +08:00
parent 67eed11276
commit 887d728496
6 changed files with 14 additions and 71 deletions
+1 -3
View File
@@ -8,7 +8,6 @@ export type StoreCreateForm = {
districtCode?: string;
name: string;
phone: string;
smsCode: string;
address: string;
intro?: string;
coverUrl?: string;
@@ -23,7 +22,7 @@ const PHONE_RE = /^1\d{10}$/;
const BANK_RE = /^\d{16,19}$/;
export function validateStoreCreateStep1(
form: Pick<StoreCreateForm, 'partnerId' | 'cityId' | 'regionCodes' | 'name' | 'phone' | 'smsCode' | 'address' | 'intro'>,
form: Pick<StoreCreateForm, 'partnerId' | 'cityId' | 'regionCodes' | 'name' | 'phone' | 'address' | 'intro'>,
): string | null {
if (!form.partnerId) return '请选择开城合伙人';
if (!form.regionCodes || form.regionCodes.length < 3) return '请选择省 / 市 / 区县';
@@ -31,7 +30,6 @@ export function validateStoreCreateStep1(
if (!form.name?.trim()) return '请填写门店名称';
if (!form.phone?.trim()) return '请填写门店手机号';
if (!PHONE_RE.test(form.phone.trim())) return '门店手机号须为11位手机号';
if (!form.smsCode?.trim()) return '请填写短信验证码';
if (!form.address?.trim()) return '请填写详细地址';
if (form.intro?.trim()) {
const len = form.intro.trim().length;
+2 -43
View File
@@ -83,7 +83,6 @@ export default function StoresPage() {
const [createOpen, setCreateOpen] = useState(false);
const [createStep, setCreateStep] = useState(0);
const [createError, setCreateError] = useState('');
const [smsCooldown, setSmsCooldown] = useState(0);
const [partners, setPartners] = useState<PartnerOption[]>([]);
const [cities, setCities] = useState<CityOption[]>([]);
const [optionsLoading, setOptionsLoading] = useState(false);
@@ -141,38 +140,9 @@ export default function StoresPage() {
setCreateOpen(false);
setCreateStep(0);
setCreateError('');
setSmsCooldown(0);
createForm.resetFields();
}
async function sendCreateSms() {
const phone = String(createForm.getFieldValue('phone') ?? '').trim();
if (!/^1\d{10}$/.test(phone)) {
message.error('请先填写正确的11位门店手机号');
return;
}
if (smsCooldown > 0) return;
try {
await request('/admin/stores/phone/sms/send', {
method: 'POST',
body: JSON.stringify({ phone }),
});
message.success('验证码已发送');
setSmsCooldown(60);
const timer = setInterval(() => {
setSmsCooldown((s) => {
if (s <= 1) {
clearInterval(timer);
return 0;
}
return s - 1;
});
}, 1000);
} catch (e) {
message.error(e instanceof Error ? e.message : '发送失败');
}
}
function openCreateModal() {
void loadOptions();
createForm.setFieldsValue({
@@ -192,7 +162,7 @@ export default function StoresPage() {
return;
}
try {
await createForm.validateFields(['partnerId', 'regionCodes', 'cityId', 'name', 'phone', 'smsCode', 'address']);
await createForm.validateFields(['partnerId', 'regionCodes', 'cityId', 'name', 'phone', 'address']);
} catch {
return;
}
@@ -220,7 +190,6 @@ export default function StoresPage() {
city: values.city,
name: values.name.trim(),
phone: values.phone.trim(),
smsCode: values.smsCode.trim(),
district: values.district.trim(),
address: values.address.trim(),
intro: values.intro?.trim() || undefined,
@@ -239,7 +208,7 @@ export default function StoresPage() {
if (e && typeof e === 'object' && 'errorFields' in e) {
const fields = e as { errorFields?: Array<{ name: string[] }> };
const first = fields.errorFields?.[0]?.name?.[0];
if (first === 'partnerId' || first === 'cityId' || first === 'regionCodes' || first === 'name' || first === 'phone' || first === 'smsCode') {
if (first === 'partnerId' || first === 'cityId' || first === 'regionCodes' || first === 'name' || first === 'phone') {
setCreateStep(0);
}
return;
@@ -409,16 +378,6 @@ export default function StoresPage() {
<Form.Item name="phone" label="门店手机号(登录账号)" rules={[{ required: true, message: '请填写门店手机号' }]}>
<Input placeholder="11位手机号" />
</Form.Item>
<Form.Item label="短信验证" required>
<Space.Compact style={{ width: '100%' }}>
<Form.Item name="smsCode" noStyle rules={[{ required: true, message: '请填写验证码' }]}>
<Input placeholder="验证码" maxLength={6} />
</Form.Item>
<Button disabled={smsCooldown > 0} onClick={() => void sendCreateSms()}>
{smsCooldown > 0 ? `${smsCooldown}s` : '获取验证码'}
</Button>
</Space.Compact>
</Form.Item>
<Form.Item name="address" label="详细地址" rules={[{ required: true, message: '请填写详细地址' }]}>
<Input.TextArea rows={2} placeholder="请输入详细门牌号" />
</Form.Item>