From 7b6048096661d8cbcdb17f0ecfda667ae5716d69 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 10 九月 2024 10:49:15 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/user/UserCreate.jsx | 80 ++++++++++++++++++++++++--------------- 1 files changed, 49 insertions(+), 31 deletions(-) diff --git a/zy-acs-flow/src/page/user/UserCreate.jsx b/zy-acs-flow/src/page/user/UserCreate.jsx index 04e888d..1790c3f 100644 --- a/zy-acs-flow/src/page/user/UserCreate.jsx +++ b/zy-acs-flow/src/page/user/UserCreate.jsx @@ -13,10 +13,11 @@ AutocompleteInput, Toolbar, required, - useDataProvider, + PasswordInput, useNotify, Form, useCreateController, + email, } from 'react-admin'; import { Dialog, @@ -31,6 +32,7 @@ import StatusSelectInput from "../components/StatusSelectInput"; import MemoInput from "../components/MemoInput"; import TreeSelectInput from "../components/TreeSelectInput"; +import RolesSelect from './RolesSelect' const UserCreate = (props) => { const { open, setOpen } = props; @@ -70,7 +72,29 @@ disableRestoreFocus maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl' > - <Form> + <Form validate={values => { + const errors = {}; + if (!values.username) { + errors.username = 'ra.validation.required'; + } + if (!values.nickname) { + errors.nickname = 'ra.validation.required'; + } + if (!values.roleIds) { + errors.roleIds = 'ra.validation.required'; + } + if (!values.email) { + } else { + const error = email()(values.email); + if (error) { + errors.email = error; + } + } + if (values.password && values.password !== values.confirmPassword) { + errors.confirmPassword = 'resources.customers.errors.password_mismatch'; + } + return errors; + }}> <DialogTitle id="form-dialog-title" sx={{ position: 'sticky', top: 0, @@ -102,11 +126,23 @@ /> </Grid> <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.user.code" - source="code" - parse={v => v} + <TreeSelectInput + resource="dept" + label="table.field.user.deptId" + source="deptId" /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <RolesSelect + label="table.field.user.role" + source="roleIds" + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <PasswordInput source="password" /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <PasswordInput source="confirmPassword" /> </Grid> <Grid item xs={6} display="flex" gap={1}> <SelectInput @@ -117,6 +153,13 @@ { id: 1, name: '鐢�' }, { id: 2, name: '濂�' }, ]} + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.user.code" + source="code" + parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> @@ -134,13 +177,6 @@ /> </Grid> <Grid item xs={6} display="flex" gap={1}> - <TreeSelectInput - resource="dept" - label="table.field.user.deptId" - source="deptId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> <TextInput label="table.field.user.realName" source="realName" @@ -153,24 +189,6 @@ source="idCard" parse={v => v} /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.user.birthday" - source="birthday" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.user.introduction" - source="introduction" - parse={v => v} - /> - </Grid> - - <Grid item xs={6} display="flex" gap={1}> - <StatusSelectInput /> </Grid> <Grid item xs={12} display="flex" gap={1}> <Stack direction="column" spacing={1} width={'100%'}> -- Gitblit v1.9.1