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