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