重新打开应用是否自动登录判断优化 #18
|
|
@ -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`,
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue