|
@@ -9,17 +9,6 @@ import LookModel from './model/look-model';
|
|
|
import JoinModel from './model/join-model';
|
|
|
import MessageModel from './model/message-model';
|
|
|
import { state } from '/src/state'
|
|
|
-const svg = `
|
|
|
- <path class="path" d="
|
|
|
- M 30 15
|
|
|
- L 28 17
|
|
|
- M 25.61 25.61
|
|
|
- A 15 15, 0, 0, 1, 15 30
|
|
|
- A 15 15, 0, 1, 1, 27.99 7.5
|
|
|
- L 15 15
|
|
|
- " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
|
|
|
- `
|
|
|
-
|
|
|
type itemType = 'message' | 'join' | 'look'
|
|
|
|
|
|
export default defineComponent({
|
|
@@ -34,13 +23,37 @@ export default defineComponent({
|
|
|
messageList: [] as any[], // 回复学生列表
|
|
|
joinList: [] as any[], // 连麦学生列表
|
|
|
lookList: [] as any[], // 观看学生列表
|
|
|
+ loadingMessage: false, // 消息列表状态
|
|
|
+ loadingJoin: false, // 连麦列表状态
|
|
|
+ loadingLook: false, // 观看列表状态
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
+ this.initStatus()
|
|
|
event.on(LIVE_EVENT_MESSAGE["RC:Chatroom:Welcome"], this.onWelcome);
|
|
|
event.on(LIVE_EVENT_MESSAGE["RC:TxtMsg"], this.onMessage);
|
|
|
+ //
|
|
|
+ setTimeout(() => {
|
|
|
+ console.log('messageList', this.messageList)
|
|
|
+ if(this.type === 'join') {
|
|
|
+ this.loadingJoin = false;
|
|
|
+ } else if(this.type === 'look') {
|
|
|
+ this.loadingLook = false;
|
|
|
+ } else if(this.type === 'message') {
|
|
|
+ this.loadingMessage = false;
|
|
|
+ }
|
|
|
+ }, 2000);
|
|
|
},
|
|
|
methods: {
|
|
|
+ initStatus() {
|
|
|
+ if(this.type === 'join') {
|
|
|
+ this.loadingJoin = this.joinList.length > 0 ? false : true;
|
|
|
+ } else if(this.type === 'look') {
|
|
|
+ this.loadingLook = this.lookList.length > 0 ? false : true;
|
|
|
+ } else if(this.type === 'message') {
|
|
|
+ this.loadingMessage = this.messageList.length > 0 ? false : true;
|
|
|
+ }
|
|
|
+ },
|
|
|
onMessage(value: any) {
|
|
|
if (value && value.user) {
|
|
|
console.log(state.user)
|
|
@@ -59,6 +72,7 @@ export default defineComponent({
|
|
|
tempObj.isSelf = true
|
|
|
}
|
|
|
this.messageList.push(tempObj);
|
|
|
+ this.loadingLook = false
|
|
|
}
|
|
|
console.log(this.messageList)
|
|
|
},
|
|
@@ -81,6 +95,8 @@ export default defineComponent({
|
|
|
if (!isExist) {
|
|
|
this.lookList.push(tempObj);
|
|
|
}
|
|
|
+
|
|
|
+ this.loadingLook = false
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -88,42 +104,25 @@ export default defineComponent({
|
|
|
event.off(LIVE_EVENT_MESSAGE["RC:Chatroom:Welcome"], this.onmessage);
|
|
|
event.off(LIVE_EVENT_MESSAGE["RC:TxtMsg"], this.onmessage);
|
|
|
},
|
|
|
- computed: {
|
|
|
- loading() {
|
|
|
- return false
|
|
|
- switch (this.type) {
|
|
|
- case 'message':
|
|
|
- return this.messageList.length === 0
|
|
|
- case 'join':
|
|
|
- return this.joinList.length === 0
|
|
|
- case 'look':
|
|
|
- return this.lookList.length === 0
|
|
|
- default:
|
|
|
- return false
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
render() {
|
|
|
return (
|
|
|
- <div style={{ minHeight: '100%' }} v-loading={this.loading} element-loading-spinner={svg}
|
|
|
- element-loading-svg-view-box="-10, -10, 50, 50"
|
|
|
- element-loading-background="rgba(0, 0, 0, 0.8)">
|
|
|
+ <div style={{ minHeight: '100%', position: 'relative' }}>
|
|
|
{this.type === 'message' ?
|
|
|
this.messageList && this.messageList.length > 0 ? this.messageList.map(item => (
|
|
|
<MessageModel data={this.messageList} />
|
|
|
- )) : this.loading ? null : <Empty text="暂无学员互动!" icon="noData-no-message" />
|
|
|
+ )) : this.loadingMessage ? <div class={styles.loadingStyle} v-loading={this.loadingMessage} element-loading-background="rgba(0, 0, 0, 0.8)"></div> : <Empty text="暂无学员互动!" icon="noData-no-message" />
|
|
|
: null}
|
|
|
|
|
|
{this.type === 'join' ?
|
|
|
this.joinList && this.joinList.length > 0 ? this.joinList.map(item => (
|
|
|
<JoinModel data={this.joinList} />
|
|
|
- )) : this.loading ? null : <Empty text="暂无学员发起连麦!" icon="noData-no-join" />
|
|
|
+ )) : this.loadingJoin ? <div class={styles.loadingStyle} v-loading={this.loadingJoin} element-loading-background="rgba(0, 0, 0, 0.8)"></div> : <Empty text="暂无学员发起连麦!" icon="noData-no-join" />
|
|
|
: null}
|
|
|
|
|
|
{this.type === 'look' ?
|
|
|
this.lookList && this.lookList.length > 0 ? this.lookList.map(item => (
|
|
|
<LookModel data={this.lookList} />
|
|
|
- )) : this.loading ? null : <Empty text="暂无学员观看!" icon="noData-no-user" />
|
|
|
+ )) : this.loadingLook ? <div class={styles.loadingStyle} v-loading={this.loadingLook} element-loading-background="rgba(0, 0, 0, 0.8)"></div> : <Empty text="暂无学员观看!" icon="noData-no-user" />
|
|
|
: null}
|
|
|
</div>
|
|
|
)
|