From 5bf7dfb7915ef5a1bd57382c8c3a32fdfcfc0e5e Mon Sep 17 00:00:00 2001 From: cp3hnu Date: Wed, 7 Aug 2024 09:43:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- react-ui/src/pages/Monitor/Job/edit.tsx | 10 +++- react-ui/src/pages/System/Dept/edit.tsx | 28 +++++++++-- react-ui/src/pages/System/Dict/edit.tsx | 11 +++-- react-ui/src/pages/System/Post/edit.tsx | 13 +++-- react-ui/src/pages/System/Role/edit.tsx | 20 ++++---- .../pages/System/User/components/DeptTree.tsx | 24 +++++---- react-ui/src/pages/System/User/edit.tsx | 49 ++++++++++++++++--- react-ui/src/pages/System/User/index.tsx | 2 + 8 files changed, 116 insertions(+), 41 deletions(-) diff --git a/react-ui/src/pages/Monitor/Job/edit.tsx b/react-ui/src/pages/Monitor/Job/edit.tsx index 7a7e5e24..218b985e 100644 --- a/react-ui/src/pages/Monitor/Job/edit.tsx +++ b/react-ui/src/pages/Monitor/Job/edit.tsx @@ -33,6 +33,10 @@ export type JobFormProps = { const JobForm: React.FC = (props) => { const [form] = Form.useForm(); const { jobGroupOptions, statusOptions } = props; + const formLayout = { + labelCol: { span: 5 }, + wrapperCol: { span: 19 }, + }; useEffect(() => { form.resetFields(); @@ -44,7 +48,7 @@ const JobForm: React.FC = (props) => { cronExpression: props.values.cronExpression, misfirePolicy: props.values.misfirePolicy, concurrent: props.values.concurrent, - status: props.values.status, + status: props.values.status ?? Object.keys(statusOptions)[0], createBy: props.values.createBy, createTime: props.values.createTime, updateBy: props.values.updateBy, @@ -67,7 +71,7 @@ const JobForm: React.FC = (props) => { return ( = (props) => { submitter={false} layout="horizontal" onFinish={handleFinish} + {...formLayout} + size="large" > = (props) => { const [form] = Form.useForm(); - const { statusOptions, deptTree } = props; + const formLayout = { + labelCol: { span: 8 }, + wrapperCol: { span: 16 }, + }; + + const formItemLayout = { + labelCol: { span: 4 }, + wrapperCol: { span: 20 }, + }; useEffect(() => { form.resetFields(); @@ -34,11 +42,11 @@ const DeptForm: React.FC = (props) => { parentId: props.values.parentId, ancestors: props.values.ancestors, deptName: props.values.deptName, - orderNum: props.values.orderNum, + orderNum: props.values.orderNum ?? 1, leader: props.values.leader, phone: props.values.phone, email: props.values.email, - status: props.values.status, + status: props.values.status ?? Object.keys(statusOptions)[0], delFlag: props.values.delFlag, createBy: props.values.createBy, createTime: props.values.createTime, @@ -60,7 +68,7 @@ const DeptForm: React.FC = (props) => { return ( = (props) => { submitter={false} layout="horizontal" onFinish={handleFinish} + {...formLayout} + size="large" > = (props) => { request={async () => { return deptTree; }} + {...formItemLayout} placeholder="请选择上级部门" rules={[ { @@ -185,6 +196,15 @@ const DeptForm: React.FC = (props) => { required: false, message: , }, + { + type: 'email', + message: ( + + ), + }, ]} /> = (props) => { const [form] = Form.useForm(); - const { statusOptions } = props; + const formLayout = { + labelCol: { span: 4 }, + wrapperCol: { span: 20 }, + }; useEffect(() => { form.resetFields(); @@ -31,7 +34,7 @@ const DictTypeForm: React.FC = (props) => { dictId: props.values.dictId, dictName: props.values.dictName, dictType: props.values.dictType, - status: props.values.status, + status: props.values.status ?? Object.keys(statusOptions)[0], createBy: props.values.createBy, createTime: props.values.createTime, updateBy: props.values.updateBy, @@ -53,7 +56,7 @@ const DictTypeForm: React.FC = (props) => { return ( = (props) => { submitter={false} layout="horizontal" onFinish={handleFinish} + {...formLayout} + size="large" > = (props) => { const [form] = Form.useForm(); - const { statusOptions } = props; + const formLayout = { + labelCol: { span: 4 }, + wrapperCol: { span: 20 }, + }; useEffect(() => { form.resetFields(); @@ -31,8 +34,8 @@ const PostForm: React.FC = (props) => { postId: props.values.postId, postCode: props.values.postCode, postName: props.values.postName, - postSort: props.values.postSort, - status: props.values.status, + postSort: props.values.postSort ?? 1, + status: props.values.status ?? Object.keys(statusOptions)[0], createBy: props.values.createBy, createTime: props.values.createTime, updateBy: props.values.updateBy, @@ -54,7 +57,7 @@ const PostForm: React.FC = (props) => { return ( = (props) => { submitter={false} layout="horizontal" onFinish={handleFinish} + {...formLayout} + size="large" > = (props) => { const [menuIds, setMenuIds] = useState([]); const { statusOptions } = props; + const formLayout = { + labelCol: { span: 4 }, + wrapperCol: { span: 20 }, + }; + useEffect(() => { form.resetFields(); form.setFieldsValue({ roleId: props.values.roleId, roleName: props.values.roleName, roleKey: props.values.roleKey, - roleSort: props.values.roleSort, + roleSort: props.values.roleSort ?? 1, dataScope: props.values.dataScope, menuCheckStrictly: props.values.menuCheckStrictly, deptCheckStrictly: props.values.deptCheckStrictly, - status: props.values.status, + status: props.values.status ?? Object.keys(statusOptions)[0], delFlag: props.values.delFlag, createBy: props.values.createBy, createTime: props.values.createTime, @@ -62,7 +67,7 @@ const RoleForm: React.FC = (props) => { return ( = (props) => { layout="horizontal" submitter={false} onFinish={handleFinish} + {...formLayout} + size="large" > = (props) => { message: , }, ]} - fieldProps={{ - defaultValue: 1, - }} /> = (props) => { message: , }, ]} - fieldProps={{ - defaultValue: '0', - }} /> = (props) => { id: 'system.role.auth', defaultMessage: '菜单权限', })} + style={{ width: '100%' }} > = (props) => { const [treeData, setTreeData] = useState([]); const [expandedKeys, setExpandedKeys] = useState([]); - const [autoExpandParent, setAutoExpandParent] = useState(true); + const [selectedKeys, setSelectedKeys] = useState([]); const fetchDeptList = async () => { const hide = message.loading('正在查询'); try { - await getDeptTree({}).then((res: any) => { - const exKeys = []; - exKeys.push('1'); - setTreeData(res); - exKeys.push(res[0].children[0].id); - setExpandedKeys(exKeys); - props.onSelect(res[0].children[0]); - }); + const res = await getDeptTree({}); + const treeData = res.map((item: any) => ({ ...item, key: item.id })); + setTreeData(treeData); + props.onSelect(treeData[0]); + setExpandedKeys([treeData[0].key]); + setSelectedKeys([treeData[0].key]); hide(); return true; } catch (error) { @@ -44,12 +42,12 @@ const DeptTree: React.FC = (props) => { }, []); const onSelect = (keys: React.Key[], info: any) => { + setSelectedKeys(keys); props.onSelect(info.node); }; - const onExpand = (expandedKeysValue: React.Key[]) => { - setExpandedKeys(expandedKeysValue); - setAutoExpandParent(false); + const onExpand = (keys: React.Key[]) => { + setExpandedKeys(keys); }; return ( @@ -58,7 +56,7 @@ const DeptTree: React.FC = (props) => { defaultExpandAll onExpand={onExpand} expandedKeys={expandedKeys} - autoExpandParent={autoExpandParent} + selectedKeys={selectedKeys} onSelect={onSelect} treeData={treeData} /> diff --git a/react-ui/src/pages/System/User/edit.tsx b/react-ui/src/pages/System/User/edit.tsx index 101ec96c..e5253ca3 100644 --- a/react-ui/src/pages/System/User/edit.tsx +++ b/react-ui/src/pages/System/User/edit.tsx @@ -34,6 +34,15 @@ const UserForm: React.FC = (props) => { const userId = Form.useWatch('userId', form); const { sexOptions, statusOptions } = props; const { roles, posts, depts } = props; + const formLayout = { + labelCol: { span: 8 }, + wrapperCol: { span: 16 }, + }; + + const formItemLayout = { + labelCol: { span: 4 }, + wrapperCol: { span: 20 }, + }; useEffect(() => { form.resetFields(); @@ -42,13 +51,13 @@ const UserForm: React.FC = (props) => { deptId: props.values.deptId, postIds: props.postIds, roleIds: props.roleIds, - userName: props.values.userName, + userName: props.values.userName ?? '', nickName: props.values.nickName, email: props.values.email, phonenumber: props.values.phonenumber, - sex: props.values.sex, + sex: props.values.sex || '0', avatar: props.values.avatar, - status: props.values.status, + status: props.values.status || Object.keys(statusOptions)[0], delFlag: props.values.delFlag, loginIp: props.values.loginIp, loginDate: props.values.loginDate, @@ -69,7 +78,7 @@ const UserForm: React.FC = (props) => { return ( = (props) => { layout="horizontal" submitter={false} onFinish={handleFinish} + {...formLayout} + size="large" + labelAlign="right" + autoComplete="off" > = (props) => { required: false, message: , }, + { + pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, + message: ( + + ), + }, ]} /> = (props) => { required: false, message: , }, + { + type: 'email', + message: ( + + ), + }, ]} /> = (props) => { hidden={userId} placeholder="请输入用户账号" colProps={{ md: 12, xl: 12 }} + fieldProps={{ + autoComplete: 'off', + }} rules={[ { required: true, @@ -173,6 +207,10 @@ const UserForm: React.FC = (props) => { hidden={userId} placeholder="请输入密码" colProps={{ md: 12, xl: 12 }} + fieldProps={{ + autoComplete: 'new-password', + }} + allowClear rules={[ { required: false, @@ -187,7 +225,6 @@ const UserForm: React.FC = (props) => { id: 'system.user.sex', defaultMessage: '用户性别', })} - initialValue={'0'} placeholder="请输入用户性别" colProps={{ md: 12, xl: 12 }} rules={[ @@ -204,7 +241,6 @@ const UserForm: React.FC = (props) => { id: 'system.user.status', defaultMessage: '帐号状态', })} - initialValue={'0'} placeholder="请输入帐号状态" colProps={{ md: 12, xl: 12 }} rules={[ @@ -246,6 +282,7 @@ const UserForm: React.FC = (props) => { })} placeholder="请输入备注" colProps={{ md: 24, xl: 24 }} + {...formItemLayout} rules={[ { required: false, diff --git a/react-ui/src/pages/System/User/index.tsx b/react-ui/src/pages/System/User/index.tsx index 73cd0984..e4e65596 100644 --- a/react-ui/src/pages/System/User/index.tsx +++ b/react-ui/src/pages/System/User/index.tsx @@ -429,6 +429,8 @@ const UserTableList: React.FC = () => { ); } setCurrentRow(undefined); + setPostIds([]); + setRoleIds([]); setModalVisible(true); }} >