From cb2ec1d6797261d64ca119a8aaa59b04f11025c1 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期二, 10 九月 2024 11:01:06 +0800 Subject: [PATCH] # --- zy-acs-flow/src/page/user/UserEdit.jsx | 66 ++++++++++++++++++++++++++------- 1 files changed, 52 insertions(+), 14 deletions(-) diff --git a/zy-acs-flow/src/page/user/UserEdit.jsx b/zy-acs-flow/src/page/user/UserEdit.jsx index 6105494..af58bfa 100644 --- a/zy-acs-flow/src/page/user/UserEdit.jsx +++ b/zy-acs-flow/src/page/user/UserEdit.jsx @@ -19,6 +19,7 @@ required, useRecordContext, DeleteButton, + PasswordInput, } from 'react-admin'; import { useWatch, useFormContext } from "react-hook-form"; import { Stack, Grid, Box, Typography } from '@mui/material'; @@ -28,6 +29,7 @@ import CustomerTopToolBar from "../components/EditTopToolBar"; import MemoInput from "../components/MemoInput"; import StatusSelectInput from "../components/StatusSelectInput"; +import RolesSelect from "./RolesSelect"; const FormToolbar = () => { const { getValues } = useFormContext(); @@ -56,7 +58,29 @@ toolbar={<FormToolbar />} mode="onTouched" defaultValues={{}} - // validate={(values) => { }} + 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; + }} > <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}> <Grid item xs={12} md={8}> @@ -130,17 +154,6 @@ /> </Stack> */} <Stack direction='row' gap={2}> - <ReferenceInput - source="deptId" - reference="dept" - > - <AutocompleteInput - label="table.field.user.deptId" - optionText="name" - /> - </ReferenceInput> - </Stack> - <Stack direction='row' gap={2}> <TextInput label="table.field.user.realName" source="realName" @@ -164,13 +177,38 @@ parse={v => v} /> </Stack> - + <Typography variant="h6" gutterBottom> + {translate('common.edit.title.changePwd')} + </Typography> + <Stack direction='row' gap={2}> + <PasswordInput source="password" /> + <PasswordInput source="confirmPassword" /> + </Stack> </Grid> <Grid item xs={12} md={4}> <Typography variant="h6" gutterBottom> {translate('common.edit.title.common')} </Typography> - <StatusSelectInput /> + <Stack direction='row' gap={2}> + <ReferenceInput + source="deptId" + reference="dept" + > + <AutocompleteInput + label="table.field.user.deptId" + optionText="name" + /> + </ReferenceInput> + </Stack> + <Stack direction='row' gap={2}> + <RolesSelect + label="table.field.user.role" + source="roleIds" + /> + </Stack> + <Stack direction='row' gap={2}> + <StatusSelectInput /> + </Stack> <Box mt="2em" /> <MemoInput /> </Grid> -- Gitblit v1.9.1