| | |
| | | required, |
| | | useRecordContext, |
| | | DeleteButton, |
| | | PasswordInput, |
| | | } from 'react-admin'; |
| | | import { useWatch, useFormContext } from "react-hook-form"; |
| | | import { Stack, Grid, Box, Typography } from '@mui/material'; |
| | |
| | | import CustomerTopToolBar from "../components/EditTopToolBar"; |
| | | import MemoInput from "../components/MemoInput"; |
| | | import StatusSelectInput from "../components/StatusSelectInput"; |
| | | import RolesSelect from "./RolesSelect"; |
| | | |
| | | const FormToolbar = () => { |
| | | const { getValues } = useFormContext(); |
| | |
| | | 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}> |
| | |
| | | /> |
| | | </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" |
| | |
| | | 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> |