From 403da33c30fc628c1608b96d95efdc12e70c3b06 Mon Sep 17 00:00:00 2001
From: pyt <626651354@qq.com>
Date: 星期三, 26 二月 2025 15:40:23 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/H5/threeSide

---
 management/src/pages/setting/user/components/addAndEdit.jsx |  187 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 129 insertions(+), 58 deletions(-)

diff --git a/management/src/pages/setting/user/components/addAndEdit.jsx b/management/src/pages/setting/user/components/addAndEdit.jsx
index 854ba9d..d5e7f2e 100644
--- a/management/src/pages/setting/user/components/addAndEdit.jsx
+++ b/management/src/pages/setting/user/components/addAndEdit.jsx
@@ -1,7 +1,7 @@
-import { Form, Input, Modal, Tree, Button, Spin, Row, Col, Select } from 'antd';
+import { Form, Input, Modal, Tree, Button, Spin, Row, Col, Select, Radio } from 'antd';
 import { forwardRef, useImperativeHandle, useState } from 'react';
 import { useEffect } from 'react';
-import { getTree, getAddTree } from '../service';
+import { getDepartmentList } from '../service';
 import { Color } from 'antd/es/color-picker';
 const formItemLayout = {
     labelCol: { span: 8 },
@@ -27,7 +27,7 @@
     //所属角色
     const [roleList, setRoleList] = useState([])
     //账号层级
-    const [levelList, setLevelList] = useState([])
+    const [levelList, setLevelList] = useState([{ name: '市级账号', value: 1 }, { name: '区县账号', value: 2 }, { name: '街道账号', value: 3 }, { name: '社区账号', value: 4 }, { name: '党员账号', value: 5 }])
     //所属区县
     const [countyList, setCountyList] = useState([])
     //所属街道
@@ -39,9 +39,18 @@
 
 
     useEffect(() => {
-        // 获取权限树
-        getAddTree().then(res => {
-            setTreeData(res.data)
+        // 获取单位
+        getDepartmentList(1).then(res => {
+            setOneCompanyList(() => res.data)
+        })
+        getDepartmentList(2).then(res => {
+            setTwoCompanyList(() => res.data)
+        })
+        getDepartmentList(3).then(res => {
+            setThreeCompanyList(() => res.data)
+        })
+        getDepartmentList(4).then(res => {
+            setThreeCompanyList(() => res.data)
         })
     }, [])
 
@@ -119,7 +128,7 @@
                 <Row>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="oneDepartmentId"
                             label="所属一级单位"
                             rules={[{ required: true, message: '请选择所属一级单位' }]}
                         >
@@ -127,7 +136,7 @@
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={oneCompanyList}
+                                options={oneCompanyList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -136,15 +145,14 @@
                     </Col>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="twoDepartmentId"
                             label="所属二级单位"
-                            rules={[{ required: true, message: '请选择所属二级单位' }]}
                         >
                             <Select
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={twoCompanyList}
+                                options={twoCompanyList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -153,15 +161,14 @@
                     </Col>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="threeDepartmentId"
                             label="所属三级单位"
-                            rules={[{ required: true, message: '请选择所属三级单位' }]}
                         >
                             <Select
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={threeCompanyList}
+                                options={threeCompanyList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -172,15 +179,14 @@
                 <Row>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="fourDepartmentId"
                             label="所属四级单位"
-                            rules={[{ required: true, message: '请选择所属四级单位' }]}
                         >
                             <Select
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={fourCompanyList}
+                                options={fourCompanyList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -191,7 +197,7 @@
                 <Row>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="systemPostId"
                             label="所属职位"
                             rules={[{ required: true, message: '请选择所属职位' }]}
                         >
@@ -199,7 +205,7 @@
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={positionList}
+                                options={positionList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -208,7 +214,7 @@
                     </Col>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="systemRoleId"
                             label="所属角色"
                             rules={[{ required: true, message: '请选择所属角色' }]}
                         >
@@ -216,7 +222,7 @@
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={roleList}
+                                options={roleList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -227,7 +233,7 @@
                 <Row>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="accountLevel"
                             label="账号层级"
                             rules={[{ required: true, message: '请选择账号层级' }]}
                         >
@@ -235,51 +241,43 @@
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={levelList}
-                                fieldNames={{ label: 'name', value: 'id' }}
-                                filterOption={false}
+                                options={levelList}
+                                fieldNames={{ label: 'name', value: 'value' }}
+                            // filterOption={false}
                             >
                             </Select >
                         </Form.Item>
                     </Col>
                     <Col span={16}>
-                        {/* <div style={{ display: "flex",flex:1 }}> */}
                         <Form.Item
                             label="是否管理员"
                             labelCol={{ span: 4 }}
                             wrapperCol={{ span: 20 }}
-                            style={{marginBottom:0}}
+                            style={{ marginBottom: 0 }}
                         >
                             <div style={{ display: "flex", flex: 1 }}>
                                 <Form.Item
-                                    name="name"
-                                    rules={[{ required: true, message: '请选择账号层级' }]}
+                                    name="isAdmin"
+                                    rules={[{ required: true, message: '是否管理员' }]}
                                 >
-                                    <Select
-                                        key="searchSelect"
-                                        allowClear
-                                        style={{width:'280px'}}
-                                        placeholder="请选择"
-                                        dataSource={levelList}
-                                        fieldNames={{ label: 'name', value: 'id' }}
-                                        filterOption={false}
-                                    >
-                                    </Select >
+                                    <Radio.Group
+                                        // style={style}
+                                        // onChange={onChange}
+                                        // value={value}
+                                        options={[{ value: 1, label: '否', }, { value: 2, label: '是', },
+
+                                        ]}
+                                    />
                                 </Form.Item>
-                                <div style={{fontSize:'12px',Color:"rgba(0,0,0,0.5)"}}>管理员主要用于接收实现临期提醒,以及上级端登录</div>
+                                <div style={{ fontSize: '12px', color: "rgba(0,0,0,0.5)", marginLeft: "10px" }}>管理员主要用于接收实现临期提醒,以及上级端登录</div>
                             </div>
-
-
                         </Form.Item>
-
-                        {/* <div>管理员主要用于接收实现临期提醒,以及上级端登录</div>
-                        </div> */}
                     </Col>
                 </Row>
                 <Row>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="districts"
                             label="所属区县"
                             rules={[{ required: true, message: '请选择所属区县' }]}
                         >
@@ -287,7 +285,7 @@
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={oneCompanyList}
+                                options={oneCompanyList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -296,7 +294,7 @@
                     </Col>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="street"
                             label="所属街道"
                             rules={[{ required: true, message: '请选择所属街道' }]}
                         >
@@ -304,7 +302,7 @@
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={twoCompanyList}
+                                options={twoCompanyList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -313,7 +311,7 @@
                     </Col>
                     <Col span={8}>
                         <Form.Item
-                            name="name"
+                            name="community"
                             label="所属社区"
                             rules={[{ required: true, message: '请选择所属社区' }]}
                         >
@@ -321,7 +319,7 @@
                                 key="searchSelect"
                                 allowClear
                                 placeholder="请选择"
-                                dataSource={threeCompanyList}
+                                options={threeCompanyList}
                                 fieldNames={{ label: 'name', value: 'id' }}
                                 filterOption={false}
                             >
@@ -331,18 +329,91 @@
                 </Row>
                 <Row>
                     <Col span={16}>
-                        <div style={{ display: 'flex' }}>
-
-                        </div>
+                        <Form.Item
+                            label="联系方式"
+                            labelCol={{ span: 4 }}
+                            wrapperCol={{ span: 20 }}
+                            style={{ marginBottom: 0 }}
+                        >
+                            <div style={{ display: "flex", flex: 1 }}>
+                                <Form.Item
+                                    name="phone"
+                                    rules={[{
+                                        validator: (rule, value) => {
+                                            return new Promise((resolve, reject) => {
+                                                if (!value) {
+                                                    reject('请输入联系方式');
+                                                }
+                                                const phoneRegex = /^((\+86)?(13|14|15|16|17|18|19)[0-9]{9})|((\+86)?(0[0-9]{2,3})?([2-9][0-9]{6,7}))$/;
+                                                if (!phoneRegex.test(value)) {
+                                                    reject('请输入正确的电话号码');
+                                                }
+                                                resolve('');
+                                            });
+                                        },
+                                    }]}
+                                >
+                                    <Input disabled={detailType} placeholder='请输入联系方式' />
+                                </Form.Item>
+                                <div style={{ fontSize: '12px', color: "rgba(0,0,0,0.5)", marginLeft: "10px" }}>联系方式将作为登录账号使用</div>
+                            </div>
+                        </Form.Item>
                     </Col>
-
                 </Row>
                 <Row>
                     <Col span={8}>
+                        <Form.Item
+                            required
+                            name="password"
+                            label="登录密码"
+                            rules={[{
+                                validator: (rule, value) => {
+                                    return new Promise((resolve, reject) => {
+                                        if (!value) {
+                                            reject('请输入新密码');
+                                        }
+                                        const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
+                                        if (!passwordRegex.test(value)) {
+                                            reject('密码需要包含大小写字母,数字和特殊符号,且长度为8位以上');
+                                        }
+                                        resolve('');
+                                    });
+                                },
+                            }]}
+                        >
+                            <Input.Password disabled={detailType} placeholder='请输入' />
+                        </Form.Item>
                     </Col>
-                    <Col span={8}>
-                    </Col>
-                    <Col span={8}>
+                    <Col span={16}>
+                        <Form.Item
+                            label="确认密码"
+                            required
+                            labelCol={{ span: 4 }}
+                            wrapperCol={{ span: 20 }}
+                            style={{ marginBottom: 0 }}
+                        >
+                            <div style={{ display: "flex", flex: 1 }}>
+                                <Form.Item
+                                    name="surePassword"
+                                    rules={[{
+                                        validator: (rule, value) => {
+                                            return new Promise((resolve, reject) => {
+                                                if (!value) {
+                                                    reject('请再次输入新密码');
+                                                }
+                                                if (value != form.getFieldValue('password')) {
+                                                    reject('两次密码请保持一致');
+                                                }
+                                                resolve('');
+                                            });
+                                        },
+                                    },]}
+                                >
+                                    <Input.Password disabled={detailType} placeholder='请输入' />
+                                </Form.Item>
+                                <div style={{ fontSize: '12px', color: "rgba(0,0,0,0.5)", marginLeft: "10px" }}>密码需要包含大小写字母,数字和特殊符号,且长度为8位以上</div>
+                            </div>
+                        </Form.Item>
                     </Col>
                 </Row>
 

--
Gitblit v1.7.1