表格与页面样式调整

This commit is contained in:
2026-04-11 17:12:16 +08:00
parent 4307efae98
commit 04426ba36d
33 changed files with 239 additions and 1460 deletions

View File

@@ -14,6 +14,7 @@ import {
DialogContent,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog"
import {
Field,
@@ -30,8 +31,8 @@ import {
SelectValue,
} from "@/components/ui/select"
import type { Admin } from "@/models/admin"
import type { User } from "@/models/user"
import type { ProductDiscount } from "@/models/product_discount"
import type { User } from "@/models/user"
// 表单验证规则
const editUserSchema = z
@@ -67,18 +68,12 @@ const editUserSchema = z
export type EditUserFormValues = z.infer<typeof editUserSchema>
interface EditUserDialogProps {
open: boolean
onOpenChange: (open: boolean) => void
currentUser: User | null
user: User
onSuccess: () => void
}
export function UpdateDialog({
open,
onOpenChange,
currentUser,
onSuccess,
}: EditUserDialogProps) {
export function UpdateDialog({ user, onSuccess }: EditUserDialogProps) {
const [open, setOpen] = useState(false)
const [admins, setAdmins] = useState<Admin[]>([])
const [discounts, setDiscounts] = useState<ProductDiscount[]>([])
const [isSubmitting, setIsSubmitting] = useState(false)
@@ -133,24 +128,21 @@ export function UpdateDialog({
}, [open])
useEffect(() => {
if (currentUser) {
if (open) {
reset({
id: currentUser.id,
username: currentUser.username,
email: currentUser.email || "",
id: user.id,
username: user.username,
email: user.email || "",
password: "",
confirmPassword: "",
admin_id: currentUser.admin_id ? String(currentUser.admin_id) : "",
discount_id: currentUser.discount_id
? String(currentUser.discount_id)
: "",
status:
currentUser.status !== undefined ? String(currentUser.status) : "",
contact_qq: currentUser.contact_qq || "",
contact_wechat: currentUser.contact_wechat || "",
admin_id: user.admin_id ? String(user.admin_id) : "",
discount_id: user.discount_id ? String(user.discount_id) : "",
status: user.status !== undefined ? String(user.status) : "",
contact_qq: user.contact_qq || "",
contact_wechat: user.contact_wechat || "",
})
}
}, [currentUser, reset])
}, [open, user, reset])
const onSubmit = async (data: EditUserFormValues) => {
setIsSubmitting(true)
@@ -194,7 +186,7 @@ export function UpdateDialog({
const result = await updateCust(updateData)
if (result?.success) {
toast.success("修改成功")
onOpenChange(false)
setOpen(false)
onSuccess()
} else {
toast.error(result?.message || "修改失败")
@@ -213,11 +205,14 @@ export function UpdateDialog({
if (!open) {
reset()
}
onOpenChange(open)
setOpen(open)
}
return (
<Dialog open={open} onOpenChange={handleOpenChange}>
<DialogTrigger asChild>
<Button size="sm"></Button>
</DialogTrigger>
<DialogContent className="max-w-2xl max-h-[90vh] overflow-y-auto">
<DialogHeader>
<DialogTitle></DialogTitle>