用户信息优化

This commit is contained in:
yj 2024-10-11 11:22:52 +08:00
parent c7d6f90174
commit 5381a47293
2 changed files with 129 additions and 23 deletions

View File

@ -19,6 +19,13 @@ export const PutUser = (data: any) =>
method: 'put', method: 'put',
data data
}) })
export const PutUserBth = (data: any) =>
request({
url: `/user/bth`,
method: 'put',
data
})
export const DeleteUser = (data: any) => export const DeleteUser = (data: any) =>
request({ request({
url: `/user`, url: `/user`,

View File

@ -3,7 +3,7 @@ import { useEffect, useState, useRef } from "react";
import Operation from '@/components/Operation'; import Operation from '@/components/Operation';
import { Button, Input, Table, Pagination, Modal, message, Select } from "antd"; import { Button, Input, Table, Pagination, Modal, message, Select } from "antd";
import { ExclamationCircleFilled, SearchOutlined } from '@ant-design/icons'; import { ExclamationCircleFilled, SearchOutlined } from '@ant-design/icons';
import { GetUserList, PostUser, PutUser, DeleteUser, PutUserPwd, GetRoleDpList, PostUserImport } from '@/api/Home/User'; import { GetUserList, PostUser, PutUser, DeleteUser, PutUserPwd, GetRoleDpList, PostUserImport, GetSubDpList, PutUserBth } from '@/api/Home/User';
import * as CryptoJS from 'crypto-js'; import * as CryptoJS from 'crypto-js';
import ImageUrl from '@/utils/package/imageUrl'; import ImageUrl from '@/utils/package/imageUrl';
import { storage } from '@/utils'; import { storage } from '@/utils';
@ -15,7 +15,7 @@ const fs = require('fs').promises;
const User: React.FC = () => { const User: React.FC = () => {
const stupWizardRef = useRef<any>(); const stupWizardRef = useRef<any>();
const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]); const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]);
const [isCreateUser, setIsCreateUser] = useState(false); const [isCreateUser, setIsCreateUser] = useState<'add' | 'batch' | 'edit'>();
const [list, setList] = useState({ const [list, setList] = useState({
data: [], data: [],
searchKeywod: '', searchKeywod: '',
@ -30,7 +30,9 @@ const User: React.FC = () => {
Account: "", Account: "",
RoleId: null, RoleId: null,
Pwd: "", Pwd: "",
UserName: "" UserName: "",
subject: null,
year: "",
}) })
const [changeUserPawModal, setChangeUserPawModal] = useState(false) const [changeUserPawModal, setChangeUserPawModal] = useState(false)
const [changeImportModal, setChangeImportModal] = useState(false) const [changeImportModal, setChangeImportModal] = useState(false)
@ -39,6 +41,10 @@ const User: React.FC = () => {
newPwd: '', newPwd: '',
}) })
const [deleteUserPawModal, setDeleteUserPawModal] = useState(false) const [deleteUserPawModal, setDeleteUserPawModal] = useState(false)
const [subjectList, setSubjectList] = useState<any>([]);
useEffect(() => {
getSubDpList()
}, []);
useEffect(() => { useEffect(() => {
getUserList() getUserList()
@ -61,6 +67,7 @@ const User: React.FC = () => {
} }
}), }),
}) })
setSelectedRowKeys([])
} }
}) })
} }
@ -118,7 +125,13 @@ const User: React.FC = () => {
} }
} }
} }
const getSubDpList = async (): Promise<void> => {
await GetSubDpList().then(res => {
if (res.code === 200) {
setSubjectList(res.data.map((item: any) => { return { value: item.value, label: item.name } }))
}
})
}
return ( return (
<> <>
<div className={styles.user}> <div className={styles.user}>
@ -131,13 +144,15 @@ const User: React.FC = () => {
onClick={() => { onClick={() => {
getRoleDpList((bool: boolean) => { getRoleDpList((bool: boolean) => {
if (bool) { if (bool) {
setIsCreateUser(true) setIsCreateUser('add')
setAddUserFrom({ setAddUserFrom({
Id: "", Id: "",
Account: "", Account: "",
RoleId: null, RoleId: null,
Pwd: "", Pwd: "",
UserName: "", UserName: "",
subject: null,
year: "",
}) })
setAddUserModal(true) setAddUserModal(true)
} }
@ -154,6 +169,31 @@ const User: React.FC = () => {
className='m-ant-btn'> className='m-ant-btn'>
</Button> </Button>
<Button type="primary"
onClick={() => {
if (selectedRowKeys.length) {
getRoleDpList((bool: boolean) => {
if (bool) {
setIsCreateUser('batch')
setAddUserFrom({
Id: "",
Account: "",
RoleId: null,
Pwd: "",
UserName: "",
subject: null,
year: "",
})
setAddUserModal(true)
}
})
} else {
message.error('请选择需要修改的用户!')
}
}}
className='m-ant-btn'>
</Button>
<Button type="primary" <Button type="primary"
icon={<img src={ImageUrl.icon21} alt="" />} icon={<img src={ImageUrl.icon21} alt="" />}
className={styles.userBtnsDel} className={styles.userBtnsDel}
@ -161,7 +201,7 @@ const User: React.FC = () => {
if (selectedRowKeys.length) { if (selectedRowKeys.length) {
setDeleteUserPawModal(true) setDeleteUserPawModal(true)
} else { } else {
message.error('请选择要删除的用户') message.error('请选择要删除的用户')
} }
}} }}
> >
@ -214,7 +254,13 @@ const User: React.FC = () => {
<div style={{ color: item.isOnline ? '#02B188' : 'rgb(221 11 11)' }}>{item.isOnline ? '在线' : '离线'}</div> <div style={{ color: item.isOnline ? '#02B188' : 'rgb(221 11 11)' }}>{item.isOnline ? '在线' : '离线'}</div>
</> </>
)} /> )} />
<Column title="操作" render={(item) => ( <Column title="届" dataIndex="year" key="year" />
<Column title="学科" render={(item) => (
<>
<div>{subjectList.find((subject: any) => subject.value === item.subject)?.label}</div>
</>
)} />
<Column title="操作" width={200} render={(item) => (
<> <>
<Button <Button
type="primary" type="primary"
@ -223,13 +269,15 @@ const User: React.FC = () => {
onClick={() => { onClick={() => {
getRoleDpList((bool: boolean) => { getRoleDpList((bool: boolean) => {
if (bool) { if (bool) {
setIsCreateUser(false) setIsCreateUser('edit')
setAddUserFrom({ setAddUserFrom({
...addUserFrom, ...addUserFrom,
Id: item.id, Id: item.id,
Account: item.account, Account: item.account,
RoleId: item.roleId, RoleId: item.roleId,
UserName: item.userName, UserName: item.userName,
subject: item.subject,
year: item.year,
}) })
setAddUserModal(true) setAddUserModal(true)
} }
@ -268,10 +316,10 @@ const User: React.FC = () => {
</div> </div>
</div> </div>
</div> </div>
<Modal title={isCreateUser ? '添加用户' : '编辑用户'} open={addUserModal} footer={null} closable={false} centered width={'500px'}> <Modal title={isCreateUser === 'add' ? '添加用户' : isCreateUser === 'edit' ? '编辑用户' : '批量修改用户信息'} open={addUserModal} footer={null} closable={false} centered width={'500px'}>
<div> <div>
<div className={styles.addUserModal}> <div className={styles.addUserModal}>
<div> {isCreateUser !== 'batch' ? <div>
<span></span> <span></span>
<Input <Input
style={{ flexGrow: 1 }} style={{ flexGrow: 1 }}
@ -286,7 +334,7 @@ const User: React.FC = () => {
}); });
}} }}
/> />
</div> </div> : null}
<div> <div>
<span></span> <span></span>
<Select <Select
@ -300,7 +348,7 @@ const User: React.FC = () => {
}); });
}} />; }} />;
</div> </div>
{isCreateUser ? <div> {isCreateUser === 'add' ? <div>
<span></span> <span></span>
<Input.Password <Input.Password
placeholder="请输入密码" placeholder="请输入密码"
@ -314,7 +362,7 @@ const User: React.FC = () => {
}} }}
/> />
</div> : null} </div> : null}
<div> {isCreateUser !== 'batch' ? <div>
<span></span> <span></span>
<Input <Input
placeholder="请输入用户名称" placeholder="请输入用户名称"
@ -327,6 +375,35 @@ const User: React.FC = () => {
}); });
}} }}
/> />
</div> : null}
<div>
<span></span>
<Input
placeholder="请输入届"
value={addUserFrom.year}
onChange={(e) => {
const regex = /^[0-9]*$/;
if (regex.test(e.target.value)) {
setAddUserFrom({
...addUserFrom,
year: e.target.value
});
}
}}
/>
</div>
<div>
<span></span>
<Select
placeholder='请选择学科'
style={{ flexGrow: 1 }}
options={subjectList}
value={addUserFrom.subject} onChange={(e) => {
setAddUserFrom({
...addUserFrom,
subject: e
});
}} />
</div> </div>
</div> </div>
<div style={{ <div style={{
@ -334,43 +411,66 @@ const User: React.FC = () => {
}}> }}>
<Button type="primary" style={{ backgroundColor: '#31353A', marginRight: '14px' }} onClick={() => setAddUserModal(false)}></Button> <Button type="primary" style={{ backgroundColor: '#31353A', marginRight: '14px' }} onClick={() => setAddUserModal(false)}></Button>
<Button type="primary" className='m-ant-btn' onClick={async () => { <Button type="primary" className='m-ant-btn' onClick={async () => {
if (!addUserFrom.Account) { if (!addUserFrom.Account && isCreateUser !== 'batch') {
return message.error('请输入账号!') return message.error('请输入账号!')
} }
if (!addUserFrom.RoleId) { if (!addUserFrom.RoleId) {
return message.error('请选择角色!') return message.error('请选择角色!')
} }
if (!addUserFrom.Pwd && isCreateUser) { if (!addUserFrom.Pwd && isCreateUser === 'add') {
return message.error('请输入密码!') return message.error('请输入密码!')
} }
if (!addUserFrom.UserName) { if (!addUserFrom.UserName && isCreateUser !== 'batch') {
return message.error('请输入用户名称!') return message.error('请输入用户名称!')
} }
if (isCreateUser) { if (!addUserFrom.year) {
return message.error('请输入届!')
}
if (addUserFrom.subject === null) {
return message.error('请选择学科!')
}
if (isCreateUser === 'add') {
await PostUser({ await PostUser({
...addUserFrom, ...addUserFrom,
Pwd: CryptoJS.MD5(addUserFrom.Pwd).toString(CryptoJS.enc.Hex) Pwd: CryptoJS.MD5(addUserFrom.Pwd).toString(CryptoJS.enc.Hex)
}).then(res => { }).then(res => {
if (res.code === 200) { if (res.code === 200) {
setAddUserModal(false) setAddUserModal(false)
message.success('添加成功!') res.data ? message.success('添加成功!') : message.error('添加失败!')
} }
}) })
} else { } else if (isCreateUser === 'edit') {
await PutUser({ await PutUser({
Id: addUserFrom.Id, Id: addUserFrom.Id,
Account: addUserFrom.Account, Account: addUserFrom.Account,
RoleId: addUserFrom.RoleId, RoleId: addUserFrom.RoleId,
UserName: addUserFrom.UserName UserName: addUserFrom.UserName,
subject: addUserFrom.subject,
year: addUserFrom.year,
}).then(res => { }).then(res => {
if (res.code === 200) { if (res.code === 200) {
setAddUserModal(false) setAddUserModal(false)
message.success('修改成功!') res.data ? message.success('修改成功!') : message.error('修改失败!')
}
})
} else {
const param = selectedRowKeys.map((item: any) => {
return {
id: item,
subject: addUserFrom.subject,
year: addUserFrom.year,
RoleId: addUserFrom.RoleId,
}
})
await PutUserBth(param).then(res => {
if (res.code === 200) {
setAddUserModal(false)
res.data ? message.success('修改成功!') : message.error('修改失败!')
} }
}) })
} }
await getUserList() await getUserList()
}}>{isCreateUser ? '添加' : '修改'}</Button> }}>{isCreateUser === 'add' ? '添加' : '修改'}</Button>
</div> </div>
</div> </div>
</Modal> </Modal>
@ -443,7 +543,6 @@ const User: React.FC = () => {
DeleteUser(selectedRowKeys).then(res => { DeleteUser(selectedRowKeys).then(res => {
if (res.code === 200) { if (res.code === 200) {
setDeleteUserPawModal(false) setDeleteUserPawModal(false)
setSelectedRowKeys([])
message.success('删除成功!') message.success('删除成功!')
getUserList() getUserList()
} }