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