This commit is contained in:
ditiqi 2025-02-25 10:00:02 +08:00
parent 3432b1af79
commit d5aa2f02d1
1 changed files with 48 additions and 27 deletions

View File

@ -2,9 +2,10 @@ import { Button, Form, Input, Spin, Switch, message } from "antd";
import { useContext, useEffect } from "react"; import { useContext, useEffect } from "react";
import { useStaff } from "@nice/client"; import { useStaff } from "@nice/client";
import DepartmentSelect from "../department/department-select"; import DepartmentSelect from "../department/department-select";
import { api } from "@nice/client" import { api } from "@nice/client";
import { StaffEditorContext } from "./staff-editor"; import { StaffEditorContext } from "./staff-editor";
import { useAuth } from "@web/src/providers/auth-provider"; import { useAuth } from "@web/src/providers/auth-provider";
import AvatarUploader from "../../common/uploader/AvatarUploader";
export default function StaffForm() { export default function StaffForm() {
const { create, update } = useStaff(); // Ensure you have these methods in your hooks const { create, update } = useStaff(); // Ensure you have these methods in your hooks
const { const {
@ -21,6 +22,7 @@ export default function StaffForm() {
{ where: { id: editId } }, { where: { id: editId } },
{ enabled: !!editId } { enabled: !!editId }
); );
const { isRoot } = useAuth(); const { isRoot } = useAuth();
async function handleFinish(values: any) { async function handleFinish(values: any) {
const { const {
@ -31,8 +33,9 @@ export default function StaffForm() {
password, password,
phoneNumber, phoneNumber,
officerId, officerId,
enabled enabled,
} = values avatar,
} = values;
setFormLoading(true); setFormLoading(true);
try { try {
if (data && editId) { if (data && editId) {
@ -46,8 +49,9 @@ export default function StaffForm() {
password, password,
phoneNumber, phoneNumber,
officerId, officerId,
enabled enabled,
} avatar,
},
}); });
} else { } else {
await create.mutateAsync({ await create.mutateAsync({
@ -58,8 +62,9 @@ export default function StaffForm() {
domainId: fieldDomainId ? fieldDomainId : domainId, domainId: fieldDomainId ? fieldDomainId : domainId,
password, password,
officerId, officerId,
phoneNumber phoneNumber,
} avatar,
},
}); });
form.resetFields(); form.resetFields();
if (deptId) form.setFieldValue("deptId", deptId); if (deptId) form.setFieldValue("deptId", deptId);
@ -77,13 +82,14 @@ export default function StaffForm() {
useEffect(() => { useEffect(() => {
form.resetFields(); form.resetFields();
if (data && editId) { if (data && editId) {
form.setFieldValue("username", data.username); form.setFieldValue("username", data?.username);
form.setFieldValue("showname", data.showname); form.setFieldValue("showname", data?.showname);
form.setFieldValue("domainId", data.domainId); form.setFieldValue("domainId", data?.domainId);
form.setFieldValue("deptId", data.deptId); form.setFieldValue("deptId", data?.deptId);
form.setFieldValue("officerId", data.officerId); form.setFieldValue("officerId", data?.officerId);
form.setFieldValue("phoneNumber", data.phoneNumber); form.setFieldValue("phoneNumber", data?.phoneNumber);
form.setFieldValue("enabled", data.enabled) form.setFieldValue("enabled", data?.enabled);
form.setFieldValue("avatar", data?.avatar);
} }
}, [data]); }, [data]);
useEffect(() => { useEffect(() => {
@ -99,6 +105,7 @@ export default function StaffForm() {
<Spin /> <Spin />
</div> </div>
)} )}
<Form <Form
disabled={isLoading} disabled={isLoading}
form={form} form={form}
@ -106,6 +113,9 @@ export default function StaffForm() {
requiredMark="optional" requiredMark="optional"
autoComplete="off" autoComplete="off"
onFinish={handleFinish}> onFinish={handleFinish}>
<Form.Item name={"avatar"} label="头像">
<AvatarUploader></AvatarUploader>
</Form.Item>
{canManageAnyStaff && ( {canManageAnyStaff && (
<Form.Item <Form.Item
name={"domainId"} name={"domainId"}
@ -127,7 +137,8 @@ export default function StaffForm() {
rules={[{ required: true }]} rules={[{ required: true }]}
name={"username"} name={"username"}
label="帐号"> label="帐号">
<Input allowClear <Input
allowClear
autoComplete="new-username" // 使用非标准的自动完成值 autoComplete="new-username" // 使用非标准的自动完成值
spellCheck={false} spellCheck={false}
/> />
@ -136,7 +147,8 @@ export default function StaffForm() {
rules={[{ required: true }]} rules={[{ required: true }]}
name={"showname"} name={"showname"}
label="姓名"> label="姓名">
<Input allowClear <Input
allowClear
autoComplete="new-name" // 使用非标准的自动完成值 autoComplete="new-name" // 使用非标准的自动完成值
spellCheck={false} spellCheck={false}
/> />
@ -146,8 +158,8 @@ export default function StaffForm() {
{ {
required: false, required: false,
pattern: /^\d{5,18}$/, pattern: /^\d{5,18}$/,
message: "请输入正确的证件号(数字)" message: "请输入正确的证件号(数字)",
} },
]} ]}
name={"officerId"} name={"officerId"}
label="证件号"> label="证件号">
@ -158,20 +170,29 @@ export default function StaffForm() {
{ {
required: false, required: false,
pattern: /^\d{6,11}$/, pattern: /^\d{6,11}$/,
message: "请输入正确的手机号(数字)" message: "请输入正确的手机号(数字)",
} },
]} ]}
name={"phoneNumber"} name={"phoneNumber"}
label="手机号"> label="手机号">
<Input autoComplete="new-phone" // 使用非标准的自动完成值 <Input
spellCheck={false} allowClear /> autoComplete="new-phone" // 使用非标准的自动完成值
spellCheck={false}
allowClear
/>
</Form.Item> </Form.Item>
<Form.Item label="密码" name={"password"}> <Form.Item label="密码" name={"password"}>
<Input.Password spellCheck={false} visibilityToggle autoComplete="new-password" /> <Input.Password
spellCheck={false}
visibilityToggle
autoComplete="new-password"
/>
</Form.Item> </Form.Item>
{editId && <Form.Item label="是否启用" name={"enabled"}> {editId && (
<Form.Item label="是否启用" name={"enabled"}>
<Switch></Switch> <Switch></Switch>
</Form.Item>} </Form.Item>
)}
</Form> </Form>
</div> </div>
); );