重新打开应用是否自动登录判断优化 #18

Merged
yangqiang merged 14 commits from yangjie into master 2024-10-11 14:15:18 +08:00
5 changed files with 122 additions and 34 deletions
Showing only changes of commit c7d6f90174 - Show all commits

View File

@ -11,6 +11,12 @@ export const PostRoom = (data: any) =>
method: 'post',
data,
})
export const PostRoomInfo = (data: any) =>
request({
url: `/home/room-info`,
method: 'put',
data,
})
export const DeleteRoom = (roomId: string) =>
request({
url: `/home/room?roomId=${roomId}`,

View File

@ -33,6 +33,12 @@ export const PutUserPwd = (data: { id: string, pwd: string }) =>
data
})
export const GetSubDpList = () =>
request({
url: `/pub/sub-dp-list`,
method: 'get',
})
export const GetRoleDpList = () =>
request({
url: `/pub/role-dp-list`,

View File

@ -1,8 +1,8 @@
import styles from '@/page/Home/Index/index.module.scss'
import { useEffect, useState, useRef } from "react";
import Operation from '@/components/Operation';
import { Button, Input, Modal, Pagination, Empty, message, Popover, Popconfirm, DatePicker } from "antd";
import { GetRoom, PostRoom, GetCheckoutRoomNum, GetRoomRtcToken, DeleteRoom, GetRecord } from '@/api/Home/Index';
import { Button, Input, Modal, Pagination, Empty, message, Popover, Popconfirm, DatePicker, Select } from "antd";
import { GetRoom, PostRoom, GetCheckoutRoomNum, GetRoomRtcToken, DeleteRoom, GetRecord, PostRoomInfo } from '@/api/Home/Index';
import ImageUrl from '@/utils/package/imageUrl'
import { ExclamationCircleFilled, ReloadOutlined } from '@ant-design/icons';
import JoinSetting from '@/components/JoinSetting';
@ -12,6 +12,7 @@ import { useNavigate } from 'react-router-dom';
import { role } from '@/config/role';
import dayjs from 'dayjs';
import StupWizard from '@/components/StupWizard';
import { GetSubDpList } from '@/api/Home/User';
const fs = require('fs').promises;
const { exec } = require('child_process');
const { RangePicker } = DatePicker;
@ -26,15 +27,20 @@ const Index: React.FC = () => {
})
const [createRoomModal, setCreateRoomModal] = useState(false)
const [timeSelectModal, setTimeSelectModal] = useState(false)
const [createRoomFrom, setCreateRoomFrom] = useState<{ roomName: string, roomNum: string }>({
const [createRoomFrom, setCreateRoomFrom] = useState<{ id: string, roomName: string, roomNum: string, subject: string, year: string }>({
id: "",
roomName: "",
roomNum: ""
roomNum: "",
subject: "",
year: ""
})
const joinSettingRef = useRef<any>();
const stupWizardRef = useRef<any>();
const [user, setUser] = useState<any>({});
const [currentRoomInfo, setCurrentRoomInfo] = useState<any>({});
const [subjectList, setSubjectList] = useState<any>([]);
const [timeData, setTimeData] = useState<any>([]);
const [isCreateRoom, setIsCreateRoom] = useState<boolean>(false);
const userInfo = JSON.parse(storage.getItem('user') as string)
useEffect(() => {
setUser(userInfo)
@ -62,7 +68,12 @@ const Index: React.FC = () => {
setList({
...list,
total: res.data.total,
data: res.data.items,
data: res.data.items.map((item: any) => {
return {
...item,
open: false
}
}),
})
}
})
@ -80,6 +91,13 @@ const Index: 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 } }))
}
})
}
const getRoomRtcToken = async (roomNum: string, callBack: Function): Promise<void> => {
Promise.all([GetRoomRtcToken(roomNum), GetRoomRtcToken(roomNum + 'a')]).then(res => {
if (res[0].code === 200 && res[1].code === 200) {
@ -166,8 +184,13 @@ const Index: React.FC = () => {
onClick={() => {
setCreateRoomFrom({
roomName: "",
roomNum: ""
roomNum: "",
subject: "",
year: "",
id: "",
})
getSubDpList()
setIsCreateRoom(true)
setCreateRoomModal(true)
}}
style={{ marginRight: '22px' }}
@ -234,13 +257,26 @@ const Index: React.FC = () => {
okText="确定"
cancelText="取消"
>
<div></div>
<div className='meetingContentFooterPopoverDel'></div>
</Popconfirm> : null}
<div onClick={() => {
<div className='meetingContentFooterPopoverDefault' onClick={() => {
changeOpen(index, false)
setTimeSelectModal(true)
}}></div>
<div onClick={() => {
<div className='meetingContentFooterPopoverDefault' onClick={() => {
changeOpen(index, false)
setCreateRoomFrom({
roomName: item.roomName,
roomNum: item.roomNum,
subject: item.subject,
year: item.year,
id: item.id,
})
getSubDpList()
setIsCreateRoom(false)
setCreateRoomModal(true)
}}></div>
<div className='meetingContentFooterPopoverCancel' onClick={() => {
changeOpen(index, false)
}}></div>
</div>
@ -298,19 +334,19 @@ const Index: React.FC = () => {
</div>
}
<div className={styles.indexContentPagination}>
<Pagination size="small" total={list.total} onChange={(e) => {
<Pagination size="small" total={list.total} onChange={(e: number) => {
setList({
...list,
pageIndex: e
})
}} pageSize={list.pageSize} showSizeChanger={false}/>
}} pageSize={list.pageSize} showSizeChanger={false} />
</div>
</div>
</div>
<Modal title="新建会议室" open={createRoomModal} footer={null} closable={false} centered width={'400px'}>
<Modal title={isCreateRoom ? '新建会议室' : '更新会议信息'} open={createRoomModal} footer={null} closable={false} centered width={'400px'}>
<div>
<div>
<Input
{isCreateRoom ? <Input
placeholder="请输入房间号"
style={{ marginBottom: '14px' }}
className={styles.letterSpacing}
@ -344,7 +380,7 @@ const Index: React.FC = () => {
>
</span>
}
/>
/> : null}
<Input.TextArea
placeholder="请输入房间名字"
style={{ marginBottom: '14px' }}
@ -358,6 +394,30 @@ const Index: React.FC = () => {
})
}}
autoSize />
<Input
placeholder="请输入届"
style={{ marginBottom: '14px' }}
value={createRoomFrom.year}
onChange={(e) => {
const regex = /^[0-9]*$/;
if (regex.test(e.target.value)) {
setCreateRoomFrom({
...createRoomFrom,
year: e.target.value
})
}
}}
/>
<Select
placeholder='请选择学科'
style={{ width: '100%', marginBottom: '14px' }}
options={subjectList}
value={createRoomFrom.subject === "" ? null : createRoomFrom.subject} onChange={(e) => {
setCreateRoomFrom({
...createRoomFrom,
subject: e
})
}} />
</div>
<div style={{
display: 'flex', justifyContent: 'center'
@ -370,6 +430,13 @@ const Index: React.FC = () => {
if (!createRoomFrom.roomNum) {
return message.error('请输入房间号!')
}
if (!createRoomFrom.year) {
return message.error('请输入届!')
}
if (createRoomFrom.subject === "") {
return message.error('请选择学科!')
}
if (isCreateRoom) {
isGetCheckoutRoomNum(createRoomFrom.roomNum, (bool: boolean) => {
if (bool) {
message.error('房间号已存在!')
@ -383,7 +450,16 @@ const Index: React.FC = () => {
})
}
})
}}></Button>
} else {
PostRoomInfo(createRoomFrom).then(res => {
if (res.code === 200) {
message.success('更新成功!')
setCreateRoomModal(false)
getRoomList()
}
})
}
}}>{isCreateRoom ? '创建' : '更新'}</Button>
</div>
</div>
</Modal>

View File

@ -811,7 +811,7 @@
}
}
>div:nth-child(1) {
.meetingContentFooterPopoverDel {
background-color: #FF5219;
&:hover {
@ -823,7 +823,7 @@
}
}
>div:nth-child(2) {
.meetingContentFooterPopoverDefault {
background-color: #31353A;
&:hover {
@ -835,7 +835,7 @@
}
}
>div:nth-child(3) {
.meetingContentFooterPopoverCancel {
background-color: #101418;
&:hover {

View File

@ -2228,11 +2228,11 @@ const Meeting: React.FC = () => {
okText="结束"
cancelText="取消"
>
<div></div>
<div className='meetingContentFooterPopoverDel'></div>
</Popconfirm>
: null}
<div onClick={() => leaveChannel()}></div>
<div onClick={() => { setOpen(false) }}></div>
<div className='meetingContentFooterPopoverDefault' onClick={() => leaveChannel()}></div>
<div className='meetingContentFooterPopoverCancel' onClick={() => { setOpen(false) }}></div>
</div>
}
title=""