From 0d38a1209478e55ace242a736f166db21f0b45df Mon Sep 17 00:00:00 2001 From: zdg Date: Tue, 17 Dec 2024 17:34:47 +0800 Subject: [PATCH] ppt --- src/renderer/src/AixPPTist/src/api/chat.ts | 3 +- .../src/AixPPTist/src/api/classcourse.ts | 29 ++++++--- src/renderer/src/AixPPTist/src/api/watcher.ts | 7 ++- .../AixPPTist/src/views/Screen/BaseView.vue | 60 +++++++++++-------- .../src/views/Screen/PresenterView.vue | 19 ++++-- .../src/views/Screen/hooks/useExecPlay.ts | 22 +++++-- .../src/views/classManage/reserv-item-apt.vue | 6 +- 7 files changed, 95 insertions(+), 51 deletions(-) diff --git a/src/renderer/src/AixPPTist/src/api/chat.ts b/src/renderer/src/AixPPTist/src/api/chat.ts index 92a5806..6cf016e 100644 --- a/src/renderer/src/AixPPTist/src/api/chat.ts +++ b/src/renderer/src/AixPPTist/src/api/chat.ts @@ -4,6 +4,7 @@ import ChatWs from '@/plugins/socket' // 聊天socket import { sessionStore } from '@/utils/store' // electron-store 状态管理 +import * as API_classcourse from '@/api/teaching/classcourse' // 后端api export default () => { const classcourse = sessionStore.get('curr.classcourse') // 课堂信息 @@ -12,7 +13,7 @@ export default () => { // 下课消息 const exitCourse = async() => { if(!timgroupid) throw new Error('未获取到群组ID') - await updateClasscourse({ id: classcourse.id, status: 'closed' }) + await API_classcourse.updateClasscourse({ id: classcourse.id, status: 'closed' }) return ChatWs.closedCourse(timgroupid) } return { diff --git a/src/renderer/src/AixPPTist/src/api/classcourse.ts b/src/renderer/src/AixPPTist/src/api/classcourse.ts index e513f3c..7e7e3c3 100644 --- a/src/renderer/src/AixPPTist/src/api/classcourse.ts +++ b/src/renderer/src/AixPPTist/src/api/classcourse.ts @@ -7,13 +7,13 @@ import { sessionStore } from '@/utils/store' // electron-store 状态管理 import * as useStore from '../store' // pptist-状态管理 import ChatWs from '@/plugins/socket' // 聊天socket import msgUtils from '@/plugins/modal' // 消息工具 -import useExecPlay from '../views/Screen/hooks/useExecPlay' // 播放控制 +import emitter from '@/utils/mitt' //mitt 事件总线 +import { nextTick } from 'vue' const slidesStore = useStore.useSlidesStore() // 幻灯片-状态管理 const screenStore = useStore.useScreenStore() // 全屏-状态管理 const classcourseStore = useStore.useClasscourseStore() // 课堂信息-状态管理 const classcourse = sessionStore.get('curr.classcourse') // 课堂信息 -const execPlay = useExecPlay() // 播放控制 export class Classcourse { msgObj:ElMessageBox = null // 提示消息对象 @@ -23,10 +23,12 @@ export class Classcourse { constructor() { this.load() } + // 延时 + sleep = ms => new Promise(resolve => setTimeout(resolve, ms)) /** * @description 加载 */ - load() { + async load() { console.log('classcourse-load', classcourse) // 打开全屏 const isCourse = !!classcourse @@ -39,13 +41,22 @@ export class Classcourse { this.classcourse = classcourse // 课堂信息 this.id = classcourse.id // 课堂id // 如果课堂信息有paging,则更新当前页码 - const isPaging = !!classcourse.paging - if (isPaging) slidesStore.updateSlideIndex(classcourse.paging) + const { paging } = classcourse + const isPaging = !!paging || paging === 0 + if (isPaging) { + console.log('更新当前页码', paging) + await this.sleep(200) + emitter.emit('useExecPlay', {key:'turnSlideToIndex', paging}) + await this.sleep(1000) // 如果课堂信息有paging,则更新动画播放状态 - const isAnim = !!classcourse.cartoonTimes - if (isAnim) { // 动画播放 - for (let i = 0; i <= classcourse.cartoonTimes; i++) { - execPlay.runAnimation(true) // 异步执行动画 + const isAnim = !!classcourse.cartoonTimes + if (isAnim) { // 动画播放 + console.log('动画播放1', classcourse) + for (let i = 0; i < classcourse.cartoonTimes; i++) { + console.log('动画播放2', i) + // 异步执行动画 + emitter.emit('useExecPlay', {key:'execNext', isAsync:true}) + } } } // 课堂信息-状态管理 diff --git a/src/renderer/src/AixPPTist/src/api/watcher.ts b/src/renderer/src/AixPPTist/src/api/watcher.ts index d4cea21..ef9f65f 100644 --- a/src/renderer/src/AixPPTist/src/api/watcher.ts +++ b/src/renderer/src/AixPPTist/src/api/watcher.ts @@ -37,7 +37,8 @@ export default () => { // 监听幻灯片下标变化 watch(() => slidesStore.slideIndex, (newVal, oldVal) => { - PPTApi.updateWorkList() + if (!!Classcourse.id) return // 上课状态,不更新右侧作业列表 + PPTApi.updateWorkList() // 更新作业列表 }) // 消息监听ws @@ -91,7 +92,8 @@ export default () => { case MsgEnum.HEADS.MSG_slideFlapping: // 幻灯片翻页 const slideIndex = content?.current || 0 const type = content?.animation - if (type === 'Nextsteps') emitter.emit('useExecPlay', 'execNext') // 下一步 + // if (type === 'Nextsteps') emitter.emit('useExecPlay', 'execNext') // 下一步 + if (type === 'Nextsteps') emitter.emit('useExecPlay', {key:'execNext', isAsync:true}) // 下一步 else if (type === 'Previoustep') emitter.emit('useExecPlay', 'turnPrevSlide') // 上一步清空-动画 else slidesStore.updateSlideIndex(slideIndex) // 更新幻灯片下标 break @@ -122,5 +124,4 @@ export default () => { window.close() // 关闭窗口 }, 1000) } - } diff --git a/src/renderer/src/AixPPTist/src/views/Screen/BaseView.vue b/src/renderer/src/AixPPTist/src/views/Screen/BaseView.vue index c8ef0b3..fc4940a 100644 --- a/src/renderer/src/AixPPTist/src/views/Screen/BaseView.vue +++ b/src/renderer/src/AixPPTist/src/views/Screen/BaseView.vue @@ -52,7 +52,7 @@ - + @@ -61,7 +61,7 @@