|
@@ -25,12 +25,13 @@ export default function Info() {
|
|
|
const [loading, setLoading] = useState<boolean>(false);
|
|
|
const [avatar, setAvatar] = useState<AvatarFile>()
|
|
|
const [open, setOpen] = useState<boolean>(false);
|
|
|
+ const route = useRouter();
|
|
|
|
|
|
const {register, control, handleSubmit, formState: {errors}} = useForm<FormType>({})
|
|
|
|
|
|
function handleClose() {
|
|
|
setOpen(false);
|
|
|
- useRouter().push("/sale/dealer")
|
|
|
+ route.push("/dealer")
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -90,6 +91,22 @@ export default function Info() {
|
|
|
setOpen(true);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 验证手机号是否已经被使用
|
|
|
+ * @param value 手机号值
|
|
|
+ */
|
|
|
+ async function handleLinkNumberValidate(value: string) {
|
|
|
+ const response = await fetch(`/api/v1/dealer/phoneNumber?phone_number=${value}`)
|
|
|
+ if (!response.ok) {
|
|
|
+ return "验证手机号失败"
|
|
|
+ }
|
|
|
+ const json = await response.json() as Response<undefined>;
|
|
|
+ if (json.code !== 0) {
|
|
|
+ return "手机号已被使用"
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
return (
|
|
|
<Dialog open={open} onOpenChange={setOpen}>
|
|
|
<div className="grid grid-cols-12">
|
|
@@ -207,6 +224,7 @@ export default function Info() {
|
|
|
placeholder="请输入联系电话"
|
|
|
{...register("dealer_link_number", {
|
|
|
required: "联系电话必填",
|
|
|
+ validate: handleLinkNumberValidate,
|
|
|
pattern: {
|
|
|
value: /^(?:(?:\+|00)86)?1[3-9]\d{9}$/,
|
|
|
message: "手机号格式不正确"
|
|
@@ -392,7 +410,7 @@ export default function Info() {
|
|
|
<div className="flex flex-col items-center justify-center gap-1">
|
|
|
<h1 className="text-2xl my-4">创建成功</h1>
|
|
|
<p className="text-muted-foreground">账号为联系电话,
|
|
|
- 默认密码 {process.env.DEFAULT_DEALER_PASSWORD}</p>
|
|
|
+ 默认密码 {process.env.DEFAULT_DEALER_PASSWORD || "tecanswer"}</p>
|
|
|
<p className="text-muted-foreground">经销商后台权限已开通</p>
|
|
|
<Button onClick={() => handleClose()} className="w-52 my-4">确定</Button>
|
|
|
</div>
|