From 7f70cb15d035f0c233b9e62b9e43aa985317c908 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期一, 04 十一月 2024 10:22:45 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/user/UserCreate.jsx | 113 +++++++++++++++++++++++++++----------------------------- 1 files changed, 55 insertions(+), 58 deletions(-) diff --git a/zy-acs-flow/src/page/user/UserCreate.jsx b/zy-acs-flow/src/page/user/UserCreate.jsx index b272ab6..5a129ed 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, @@ -30,6 +31,8 @@ import DialogCloseButton from "../components/DialogCloseButton"; 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; @@ -48,8 +51,8 @@ notify('common.response.success'); }; - const handleError = async (data) => { - notify('common.response.fail'); + const handleError = async (error) => { + notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } }); }; return ( @@ -69,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 = 'validate.pwdMisMatch'; + } + return errors; + }}> <DialogTitle id="form-dialog-title" sx={{ position: 'sticky', top: 0, @@ -95,30 +120,34 @@ </Grid> <Grid item xs={6} display="flex" gap={1}> <TextInput - label="table.field.user.password" - source="password" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput label="table.field.user.nickname" source="nickname" parse={v => v} /> </Grid> <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.user.avatar" - source="avatar" - parse={v => v} + <TreeSelectInput + resource="dept" + label="table.field.user.deptId" + source="deptId" /> </Grid> <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.user.code" - source="code" - parse={v => v} + <RolesSelect + label="table.field.user.role" + source="roleIds" + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <PasswordInput + label="table.field.user.password" + source="password" + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <PasswordInput + label="table.field.user.confirmPwd" + source="confirmPassword" /> </Grid> <Grid item xs={6} display="flex" gap={1}> @@ -130,6 +159,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}> @@ -147,27 +183,6 @@ /> </Grid> <Grid item xs={6} display="flex" gap={1}> - <SelectInput - label="table.field.user.emailVerified" - source="emailVerified" - choices={[ - { id: 0, name: '鍚�' }, - { id: 1, name: '鏄�' }, - ]} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <ReferenceInput - source="deptId" - reference="dept" - > - <AutocompleteInput - label="table.field.user.deptId" - optionText="name" - /> - </ReferenceInput> - </Grid> - <Grid item xs={6} display="flex" gap={1}> <TextInput label="table.field.user.realName" source="realName" @@ -180,24 +195,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