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 | 90 ++++++++++++++++++++++++++++---------------- 1 files changed, 57 insertions(+), 33 deletions(-) diff --git a/zy-acs-flow/src/page/user/UserCreate.jsx b/zy-acs-flow/src/page/user/UserCreate.jsx index 04e888d..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, @@ -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; @@ -49,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 ( @@ -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 = 'validate.pwdMisMatch'; + } + return errors; + }}> <DialogTitle id="form-dialog-title" sx={{ position: 'sticky', top: 0, @@ -102,10 +126,28 @@ /> </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 + 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}> @@ -117,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}> @@ -134,13 +183,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 +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