补充上传协议和实名认证
This commit is contained in:
@@ -31,10 +31,13 @@ export default function RealNameDialog({
|
||||
open,
|
||||
onOpenChange,
|
||||
onVerified,
|
||||
mandatory = false,
|
||||
}: {
|
||||
open: boolean
|
||||
onOpenChange: (open: boolean) => void
|
||||
onVerified: () => void
|
||||
/** 强制模式:不可关闭,直到完成实名认证(由外层 Gate 在认证成功后卸载) */
|
||||
mandatory?: boolean
|
||||
}) {
|
||||
const [stage, setStage] = useState<"form" | "scan">("form")
|
||||
const [qrUrl, setQrUrl] = useState("")
|
||||
@@ -46,6 +49,7 @@ export default function RealNameDialog({
|
||||
})
|
||||
|
||||
const handleOpenChange = (next: boolean) => {
|
||||
if (!next && mandatory) return
|
||||
onOpenChange(next)
|
||||
if (!next) {
|
||||
form.reset({ name: "", idCode: "" })
|
||||
@@ -56,7 +60,7 @@ export default function RealNameDialog({
|
||||
|
||||
const handleFinish = () => {
|
||||
onVerified()
|
||||
onOpenChange(false)
|
||||
if (!mandatory) onOpenChange(false)
|
||||
}
|
||||
|
||||
const onSubmit = async (data: RealNameValues) => {
|
||||
@@ -80,7 +84,10 @@ export default function RealNameDialog({
|
||||
}
|
||||
if (code === 30000) {
|
||||
toast.error("该身份已经进行认证,无法再次进行认证,请联系在线客服处理")
|
||||
handleFinish()
|
||||
return
|
||||
}
|
||||
if (code === -10000) {
|
||||
toast.error("接口问题,请联系客服")
|
||||
return
|
||||
}
|
||||
if (code === 10000 && url) {
|
||||
@@ -93,7 +100,12 @@ export default function RealNameDialog({
|
||||
|
||||
return (
|
||||
<Dialog open={open} onOpenChange={handleOpenChange}>
|
||||
<DialogContent className="max-h-[85dvh] overflow-y-auto sm:max-w-lg">
|
||||
<DialogContent
|
||||
className="max-h-[85dvh] overflow-y-auto sm:max-w-lg"
|
||||
showCloseButton={!mandatory}
|
||||
onEscapeKeyDown={mandatory ? e => e.preventDefault() : undefined}
|
||||
onPointerDownOutside={mandatory ? e => e.preventDefault() : undefined}
|
||||
>
|
||||
{stage === "form" ? (
|
||||
<>
|
||||
<DialogHeader>
|
||||
@@ -159,13 +171,15 @@ export default function RealNameDialog({
|
||||
</div>
|
||||
|
||||
<DialogFooter className="gap-3">
|
||||
<Button
|
||||
type="button"
|
||||
variant="outline"
|
||||
onClick={() => handleOpenChange(false)}
|
||||
>
|
||||
取消
|
||||
</Button>
|
||||
{!mandatory && (
|
||||
<Button
|
||||
type="button"
|
||||
variant="outline"
|
||||
onClick={() => handleOpenChange(false)}
|
||||
>
|
||||
取消
|
||||
</Button>
|
||||
)}
|
||||
<Button
|
||||
type="submit"
|
||||
disabled={submitting}
|
||||
@@ -195,9 +209,14 @@ export default function RealNameDialog({
|
||||
</div>
|
||||
|
||||
<DialogFooter className="gap-3">
|
||||
<Button variant="outline" onClick={() => handleOpenChange(false)}>
|
||||
取消
|
||||
</Button>
|
||||
{!mandatory && (
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => handleOpenChange(false)}
|
||||
>
|
||||
取消
|
||||
</Button>
|
||||
)}
|
||||
<Button
|
||||
onClick={handleFinish}
|
||||
className="bg-linear-to-r from-blue-500 to-cyan-400 text-white hover:opacity-90"
|
||||
|
||||
Reference in New Issue
Block a user