From d4d5b1359706d628ee3b850d6371185184e06ab6 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 10 九月 2024 14:54:57 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/user/UserEdit.jsx |   57 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/zy-acs-flow/src/page/user/UserEdit.jsx b/zy-acs-flow/src/page/user/UserEdit.jsx
index c42b04f..c1fe113 100644
--- a/zy-acs-flow/src/page/user/UserEdit.jsx
+++ b/zy-acs-flow/src/page/user/UserEdit.jsx
@@ -21,7 +21,7 @@
     DeleteButton,
     PasswordInput,
 } from 'react-admin';
-import { useWatch, useFormContext } from "react-hook-form";
+import { useFormContext } from 'react-hook-form';
 import { Stack, Grid, Box, Typography } from '@mui/material';
 import * as Common from '@/utils/common';
 import { EDIT_MODE } from '@/config/setting';
@@ -33,13 +33,45 @@
 import TreeSelectInput from "../components/TreeSelectInput";
 
 const FormToolbar = () => {
-    const { getValues } = useFormContext();
+    const { setValue, getValues } = useFormContext();
 
     return (
         <Toolbar sx={{ justifyContent: 'space-between' }}>
             <SaveButton />
             <DeleteButton mutationMode="optimistic" />
         </Toolbar>
+    )
+}
+
+const PasswordInputContainer = () => {
+    const translate = useTranslate();
+    const { setValue } = useFormContext();
+    const record = useRecordContext();
+
+    useEffect(() => {
+        setTimeout(() => {
+            if (record && record.password) {
+                setValue('password', '');
+            }
+        }, 200)
+    }, [setValue, record]);
+
+    return (
+        <>
+            <Typography variant="h6" gutterBottom>
+                {translate('common.edit.title.changePwd')}
+            </Typography>
+            <Stack direction='row' gap={2}>
+                <PasswordInput
+                    label="table.field.user.password"
+                    source="password"
+                />
+                <PasswordInput
+                    label="table.field.user.confirmPwd"
+                    source="confirmPassword"
+                />
+            </Stack>
+        </>
     )
 }
 
@@ -53,7 +85,6 @@
             warnWhenUnsavedChanges
             toolbar={<FormToolbar />}
             mode="onTouched"
-            defaultValues={{}}
             validate={(values) => {
                 const errors = {};
                 if (!values.username) {
@@ -72,14 +103,9 @@
                         errors.email = error;
                     }
                 }
-                if (!values.password) {
-                    errors.password = 'ra.validation.required';
-                }
                 if (values.password && values.password !== values.confirmPassword) {
                     errors.confirmPassword = 'validate.pwdMisMatch';
                 }
-                console.log(values);
-
                 return errors;
             }}
         >
@@ -155,20 +181,7 @@
                             parse={v => v}
                         />
                     </Stack>
-                    <Typography variant="h6" gutterBottom>
-                        {translate('common.edit.title.changePwd')}
-                    </Typography>
-                    <Stack direction='row' gap={2}>
-                        <PasswordInput
-                            label="table.field.user.password"
-                            source="password"
-                        />
-                        <PasswordInput
-                            label="table.field.user.confirmPwd"
-                            source="confirmPassword"
-                            value={record?.password}
-                        />
-                    </Stack>
+                    <PasswordInputContainer />
                 </Grid>
                 <Grid item xs={12} md={4}>
                     <Typography variant="h6" gutterBottom>

--
Gitblit v1.9.1