重新打开应用是否自动登录判断优化 #18
|
|
@ -11,6 +11,12 @@ export const PostRoom = (data: any) =>
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data,
|
data,
|
||||||
})
|
})
|
||||||
|
export const PostRoomInfo = (data: any) =>
|
||||||
|
request({
|
||||||
|
url: `/home/room-info`,
|
||||||
|
method: 'put',
|
||||||
|
data,
|
||||||
|
})
|
||||||
export const DeleteRoom = (roomId: string) =>
|
export const DeleteRoom = (roomId: string) =>
|
||||||
request({
|
request({
|
||||||
url: `/home/room?roomId=${roomId}`,
|
url: `/home/room?roomId=${roomId}`,
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,12 @@ export const PutUserPwd = (data: { id: string, pwd: string }) =>
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const GetSubDpList = () =>
|
||||||
|
request({
|
||||||
|
url: `/pub/sub-dp-list`,
|
||||||
|
method: 'get',
|
||||||
|
})
|
||||||
|
|
||||||
export const GetRoleDpList = () =>
|
export const GetRoleDpList = () =>
|
||||||
request({
|
request({
|
||||||
url: `/pub/role-dp-list`,
|
url: `/pub/role-dp-list`,
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import styles from '@/page/Home/Index/index.module.scss'
|
import styles from '@/page/Home/Index/index.module.scss'
|
||||||
import { useEffect, useState, useRef } from "react";
|
import { useEffect, useState, useRef } from "react";
|
||||||
import Operation from '@/components/Operation';
|
import Operation from '@/components/Operation';
|
||||||
import { Button, Input, Modal, Pagination, Empty, message, Popover, Popconfirm, DatePicker } from "antd";
|
import { Button, Input, Modal, Pagination, Empty, message, Popover, Popconfirm, DatePicker, Select } from "antd";
|
||||||
import { GetRoom, PostRoom, GetCheckoutRoomNum, GetRoomRtcToken, DeleteRoom, GetRecord } from '@/api/Home/Index';
|
import { GetRoom, PostRoom, GetCheckoutRoomNum, GetRoomRtcToken, DeleteRoom, GetRecord, PostRoomInfo } from '@/api/Home/Index';
|
||||||
import ImageUrl from '@/utils/package/imageUrl'
|
import ImageUrl from '@/utils/package/imageUrl'
|
||||||
import { ExclamationCircleFilled, ReloadOutlined } from '@ant-design/icons';
|
import { ExclamationCircleFilled, ReloadOutlined } from '@ant-design/icons';
|
||||||
import JoinSetting from '@/components/JoinSetting';
|
import JoinSetting from '@/components/JoinSetting';
|
||||||
|
|
@ -12,6 +12,7 @@ import { useNavigate } from 'react-router-dom';
|
||||||
import { role } from '@/config/role';
|
import { role } from '@/config/role';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import StupWizard from '@/components/StupWizard';
|
import StupWizard from '@/components/StupWizard';
|
||||||
|
import { GetSubDpList } from '@/api/Home/User';
|
||||||
const fs = require('fs').promises;
|
const fs = require('fs').promises;
|
||||||
const { exec } = require('child_process');
|
const { exec } = require('child_process');
|
||||||
const { RangePicker } = DatePicker;
|
const { RangePicker } = DatePicker;
|
||||||
|
|
@ -26,15 +27,20 @@ const Index: React.FC = () => {
|
||||||
})
|
})
|
||||||
const [createRoomModal, setCreateRoomModal] = useState(false)
|
const [createRoomModal, setCreateRoomModal] = useState(false)
|
||||||
const [timeSelectModal, setTimeSelectModal] = 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: "",
|
roomName: "",
|
||||||
roomNum: ""
|
roomNum: "",
|
||||||
|
subject: "",
|
||||||
|
year: ""
|
||||||
})
|
})
|
||||||
const joinSettingRef = useRef<any>();
|
const joinSettingRef = useRef<any>();
|
||||||
const stupWizardRef = useRef<any>();
|
const stupWizardRef = useRef<any>();
|
||||||
const [user, setUser] = useState<any>({});
|
const [user, setUser] = useState<any>({});
|
||||||
const [currentRoomInfo, setCurrentRoomInfo] = useState<any>({});
|
const [currentRoomInfo, setCurrentRoomInfo] = useState<any>({});
|
||||||
|
const [subjectList, setSubjectList] = useState<any>([]);
|
||||||
const [timeData, setTimeData] = useState<any>([]);
|
const [timeData, setTimeData] = useState<any>([]);
|
||||||
|
const [isCreateRoom, setIsCreateRoom] = useState<boolean>(false);
|
||||||
const userInfo = JSON.parse(storage.getItem('user') as string)
|
const userInfo = JSON.parse(storage.getItem('user') as string)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setUser(userInfo)
|
setUser(userInfo)
|
||||||
|
|
@ -62,7 +68,12 @@ const Index: React.FC = () => {
|
||||||
setList({
|
setList({
|
||||||
...list,
|
...list,
|
||||||
total: res.data.total,
|
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> => {
|
const getRoomRtcToken = async (roomNum: string, callBack: Function): Promise<void> => {
|
||||||
Promise.all([GetRoomRtcToken(roomNum), GetRoomRtcToken(roomNum + 'a')]).then(res => {
|
Promise.all([GetRoomRtcToken(roomNum), GetRoomRtcToken(roomNum + 'a')]).then(res => {
|
||||||
if (res[0].code === 200 && res[1].code === 200) {
|
if (res[0].code === 200 && res[1].code === 200) {
|
||||||
|
|
@ -166,8 +184,13 @@ const Index: React.FC = () => {
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setCreateRoomFrom({
|
setCreateRoomFrom({
|
||||||
roomName: "",
|
roomName: "",
|
||||||
roomNum: ""
|
roomNum: "",
|
||||||
|
subject: "",
|
||||||
|
year: "",
|
||||||
|
id: "",
|
||||||
})
|
})
|
||||||
|
getSubDpList()
|
||||||
|
setIsCreateRoom(true)
|
||||||
setCreateRoomModal(true)
|
setCreateRoomModal(true)
|
||||||
}}
|
}}
|
||||||
style={{ marginRight: '22px' }}
|
style={{ marginRight: '22px' }}
|
||||||
|
|
@ -234,13 +257,26 @@ const Index: React.FC = () => {
|
||||||
okText="确定"
|
okText="确定"
|
||||||
cancelText="取消"
|
cancelText="取消"
|
||||||
>
|
>
|
||||||
<div>删除会议室</div>
|
<div className='meetingContentFooterPopoverDel'>删除会议室</div>
|
||||||
</Popconfirm> : null}
|
</Popconfirm> : null}
|
||||||
<div onClick={() => {
|
<div className='meetingContentFooterPopoverDefault' onClick={() => {
|
||||||
changeOpen(index, false)
|
changeOpen(index, false)
|
||||||
setTimeSelectModal(true)
|
setTimeSelectModal(true)
|
||||||
}}>导出参会记录</div>
|
}}>导出参会记录</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)
|
changeOpen(index, false)
|
||||||
}}>取消</div>
|
}}>取消</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -298,7 +334,7 @@ const Index: React.FC = () => {
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
<div className={styles.indexContentPagination}>
|
<div className={styles.indexContentPagination}>
|
||||||
<Pagination size="small" total={list.total} onChange={(e) => {
|
<Pagination size="small" total={list.total} onChange={(e: number) => {
|
||||||
setList({
|
setList({
|
||||||
...list,
|
...list,
|
||||||
pageIndex: e
|
pageIndex: e
|
||||||
|
|
@ -307,10 +343,10 @@ const Index: React.FC = () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</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>
|
||||||
<div>
|
<div>
|
||||||
<Input
|
{isCreateRoom ? <Input
|
||||||
placeholder="请输入房间号"
|
placeholder="请输入房间号"
|
||||||
style={{ marginBottom: '14px' }}
|
style={{ marginBottom: '14px' }}
|
||||||
className={styles.letterSpacing}
|
className={styles.letterSpacing}
|
||||||
|
|
@ -344,7 +380,7 @@ const Index: React.FC = () => {
|
||||||
>获取随机房间号
|
>获取随机房间号
|
||||||
</span>
|
</span>
|
||||||
}
|
}
|
||||||
/>
|
/> : null}
|
||||||
<Input.TextArea
|
<Input.TextArea
|
||||||
placeholder="请输入房间名字"
|
placeholder="请输入房间名字"
|
||||||
style={{ marginBottom: '14px' }}
|
style={{ marginBottom: '14px' }}
|
||||||
|
|
@ -358,6 +394,30 @@ const Index: React.FC = () => {
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
autoSize />
|
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>
|
||||||
<div style={{
|
<div style={{
|
||||||
display: 'flex', justifyContent: 'center'
|
display: 'flex', justifyContent: 'center'
|
||||||
|
|
@ -370,6 +430,13 @@ const Index: React.FC = () => {
|
||||||
if (!createRoomFrom.roomNum) {
|
if (!createRoomFrom.roomNum) {
|
||||||
return message.error('请输入房间号!')
|
return message.error('请输入房间号!')
|
||||||
}
|
}
|
||||||
|
if (!createRoomFrom.year) {
|
||||||
|
return message.error('请输入届!')
|
||||||
|
}
|
||||||
|
if (createRoomFrom.subject === "") {
|
||||||
|
return message.error('请选择学科!')
|
||||||
|
}
|
||||||
|
if (isCreateRoom) {
|
||||||
isGetCheckoutRoomNum(createRoomFrom.roomNum, (bool: boolean) => {
|
isGetCheckoutRoomNum(createRoomFrom.roomNum, (bool: boolean) => {
|
||||||
if (bool) {
|
if (bool) {
|
||||||
message.error('房间号已存在!')
|
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>
|
||||||
</div>
|
</div>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
|
||||||
|
|
@ -811,7 +811,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
>div:nth-child(1) {
|
.meetingContentFooterPopoverDel {
|
||||||
background-color: #FF5219;
|
background-color: #FF5219;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
@ -823,7 +823,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
>div:nth-child(2) {
|
.meetingContentFooterPopoverDefault {
|
||||||
background-color: #31353A;
|
background-color: #31353A;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
@ -835,7 +835,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
>div:nth-child(3) {
|
.meetingContentFooterPopoverCancel {
|
||||||
background-color: #101418;
|
background-color: #101418;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
||||||
|
|
@ -2228,11 +2228,11 @@ const Meeting: React.FC = () => {
|
||||||
okText="结束"
|
okText="结束"
|
||||||
cancelText="取消"
|
cancelText="取消"
|
||||||
>
|
>
|
||||||
<div>全员结束会议</div>
|
<div className='meetingContentFooterPopoverDel'>全员结束会议</div>
|
||||||
</Popconfirm>
|
</Popconfirm>
|
||||||
: null}
|
: null}
|
||||||
<div onClick={() => leaveChannel()}>仅自己离开</div>
|
<div className='meetingContentFooterPopoverDefault' onClick={() => leaveChannel()}>仅自己离开</div>
|
||||||
<div onClick={() => { setOpen(false) }}>取消</div>
|
<div className='meetingContentFooterPopoverCancel' onClick={() => { setOpen(false) }}>取消</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
title=""
|
title=""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue