From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 14 二月 2025 10:08:32 +0800
Subject: [PATCH] #

---
 zy-asrs-flow/src/pages/system/user/components/edit.jsx |  121 ++++++++++++++++++++++++++--------------
 1 files changed, 78 insertions(+), 43 deletions(-)

diff --git a/zy-asrs-flow/src/pages/system/user/components/edit.jsx b/zy-asrs-flow/src/pages/system/user/components/edit.jsx
index cf44e7d..c5d0cff 100644
--- a/zy-asrs-flow/src/pages/system/user/components/edit.jsx
+++ b/zy-asrs-flow/src/pages/system/user/components/edit.jsx
@@ -4,20 +4,25 @@
     ProFormDigit,
     ProFormText,
     ProFormSelect,
-    ProFormDateTimePicker
+    ProFormTreeSelect,
+    ProFormTextArea,
+    ProFormRadio
 } from '@ant-design/pro-components';
+import { FormattedMessage, useIntl } from '@umijs/max';
 import { Form, Modal } from 'antd';
 import moment from 'moment';
 import Http from '@/utils/http';
 
 const Edit = (props) => {
+    const intl = useIntl();
     const [form] = Form.useForm();
     const { } = props;
 
     useEffect(() => {
         form.resetFields();
         form.setFieldsValue({
-            ...props.values
+            ...props.values,
+            roleIds: props.values.userRoleIds
         })
     }, [form, props])
 
@@ -36,7 +41,11 @@
     return (
         <>
             <Modal
-                title="Edit"
+                title={
+                    Object.keys(props.values).length > 0
+                        ? intl.formatMessage({ id: 'page.edit', defaultMessage: '缂栬緫' })
+                        : intl.formatMessage({ id: 'page.add', defaultMessage: '娣诲姞' })
+                }
                 width={640}
                 forceRender
                 destroyOnClose
@@ -57,41 +66,42 @@
                         hidden={true}
                     />
                     <ProForm.Group>
-                        <ProFormSelect
+                        <ProFormTreeSelect
                             name="deptId"
                             label="鎵�灞為儴闂�"
-                            colProps={{ md: 12, xl: 12 }}
-                            fieldProps={{ precision: 0 }}
-                            placeholder="璇烽�夋嫨"
-                            showSearch
-                            debounceTime={300}
-                            request={async ({ keyWords }) => {
-                                const resp = await Http.doPostForm('api/dept/query', { condition: keyWords });
-                                return resp.data;
+                            params={props.treeData}
+                            request={async () => {
+                                return props.treeData;
                             }}
-                        />
-                        <ProFormText
-                            name="nickname"
-                            label="鍚嶇О"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                            rules={[{ required: true, message: "鍚嶇О涓嶈兘涓虹┖锛�" }]}
+                            fieldProps={{
+                                treeDefaultExpandedKeys: [0]
+                            }}
+                            rules={[{ required: true }]}
                         />
-
-                    </ProForm.Group>
-                    <ProForm.Group>
                         <ProFormText
                             name="username"
                             label="鐧诲綍璐﹀彿"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
-                            rules={[{ required: true, message: "鐧诲綍璐﹀彿涓嶈兘涓虹┖锛�" }]}
+                            rules={[{ required: true }]}
                         />
+                    </ProForm.Group>
+                    <ProForm.Group>
                         <ProFormText
-                            name="password"
-                            label="鐧诲綍瀵嗙爜"
+                            name="nickname"
+                            label="鍚嶇О"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
+                            rules={[{ required: true }]}
+                        />
+                        <ProFormSelect
+                            name="sex"
+                            label="鎬у埆"
+                            colProps={{ md: 12, xl: 12 }}
+                            options={[
+                                { label: '鏈煡', value: 0 },
+                                { label: '鐢�', value: 1 },
+                                { label: '濂�', value: 2 },
+                            ]}
                         />
                     </ProForm.Group>
                     <ProForm.Group>
@@ -100,12 +110,31 @@
                             label="鎵嬫満鍙�"
                             colProps={{ md: 12, xl: 12 }}
                             placeholder="璇疯緭鍏�"
+                            rules={[
+                                {
+                                    pattern: /^1[3456789]\d{9}$/,
+                                    message: '璇疯緭鍏ユ纭殑鎵嬫満鍙风爜!',
+                                },
+                                {
+                                    required: false,
+                                    message: '鎵嬫満鍙风爜涓嶈兘涓虹┖!',
+                                },
+                            ]}
+
                         />
                         <ProFormText
                             name="email"
                             label="閭"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
+                            rules={[
+                                {
+                                    type: 'email',
+                                    message: '璇疯緭鍏ユ纭殑閭鍦板潃!',
+                                },
+                                {
+                                    required: false,
+                                },
+                            ]}
                         />
                     </ProForm.Group>
                     <ProForm.Group>
@@ -113,39 +142,45 @@
                             name="realName"
                             label="鐪熷疄濮撳悕"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
                         />
                         <ProFormText
                             name="idCard"
                             label="韬唤璇佸彿"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇疯緭鍏�"
                         />
                     </ProForm.Group>
                     <ProForm.Group>
-                        <ProFormSelect
-                            name="sex"
-                            label="鎬у埆"
-                            colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇烽�夋嫨"
-                            options={[
-                                { label: '鏈煡', value: 0 },
-                                { label: '鐢�', value: 1 },
-                                { label: '濂�', value: 2 },
-                            ]}
-                        />
-                        <ProFormSelect
+                        <ProFormRadio.Group
                             name="status"
                             label="鐘舵��"
                             colProps={{ md: 12, xl: 12 }}
-                            placeholder="璇烽�夋嫨"
                             options={[
                                 { label: '姝e父', value: 1 },
                                 { label: '绂佺敤', value: 0 },
                             ]}
+                            rules={[
+                                {
+                                    required: true,
+                                },
+                            ]}
+                        />
+                        <ProFormSelect
+                            name="roleIds"
+                            mode="multiple"
+                            label="瑙掕壊"
+                            colProps={{ md: 12, xl: 12 }}
+                            rules={[{ required: true, type: 'array', message: '瑙掕壊涓嶈兘涓虹┖!' }]}
+                            request={async ({ keyWords }) => {
+                                const resp = await Http.doPostForm('api/role/query', { condition: keyWords });
+                                return resp.data;
+                            }}
                         />
                     </ProForm.Group>
-
+                    <ProFormTextArea
+                        name="memo"
+                        label="澶囨敞"
+                        colProps={{ md: 24, xl: 24 }}
+                    />
                 </ProForm>
             </Modal>
         </>

--
Gitblit v1.9.1