From 0ef5ef424f90053b99b1cb833ad3ae6dd481f91a Mon Sep 17 00:00:00 2001 From: zdg Date: Thu, 19 Sep 2024 12:02:31 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/plugins/shareStore.js | 5 +- .../container/class-start.vue | 84 +++++-------------- .../views/prepare/container/kj-list-item.vue | 34 +++++--- src/renderer/src/views/prepare/index.vue | 23 +++-- src/renderer/src/views/tool/sphere.vue | 2 +- 5 files changed, 64 insertions(+), 84 deletions(-) rename src/renderer/src/views/{desktop => prepare}/container/class-start.vue (87%) diff --git a/src/renderer/src/plugins/shareStore.js b/src/renderer/src/plugins/shareStore.js index 10aec30..caa5e52 100644 --- a/src/renderer/src/plugins/shareStore.js +++ b/src/renderer/src/plugins/shareStore.js @@ -66,9 +66,10 @@ function stateSyncWatch(storeName, newState) { const keyArr = key.split('.') || [] keyArr.reduce((o,c,i)=>{o[c] = i === keyArr.length-1 ? value : {};return o[c]}, newValue) const jsonStr = JSON.stringify(newValue) // 从新组装-json数据 - // // 更新本地数据-session + // 更新本地数据-session + // console.log('state-change-update:', key, value) sessionStore.set(key, value) - // // 通知主线程更新 + // 通知主线程更新 ipcRenderer?.invoke('pinia-state-change', storeName, jsonStr) // console.log('======',key, value, jsonStr ) } diff --git a/src/renderer/src/views/desktop/container/class-start.vue b/src/renderer/src/views/prepare/container/class-start.vue similarity index 87% rename from src/renderer/src/views/desktop/container/class-start.vue rename to src/renderer/src/views/prepare/container/class-start.vue index 56a3139..cfb9ec9 100644 --- a/src/renderer/src/views/desktop/container/class-start.vue +++ b/src/renderer/src/views/prepare/container/class-start.vue @@ -119,71 +119,22 @@ onMounted(() => { */ const open = async (id) => { visible.value = true - // 获取apt详情 - if (id) await getAptInfo(id) - // 模拟数据 - // myClassActive.value = { - // "createBy": null, - // "createTime": null, - // "updateBy": null, - // "updateTime": null, - // "remark": null, - // "id": 14740, - // "idarray": null, - // "jsonarray": null, - // "entpid": 255, - // "parentid": 14741, - // "linkids": "", - // "linklist": "", - // "entpcourseid": 7300, - // "entpcourseidarray": null, - // "evalid": 39952, - // "evaltitle": " 质点 参考系", - // "coursetitle": " 质点 参考系", - // "classid": 0, - // "ppttype": "file", - // "title": " 质点 参考系", - // "fileidx": 0, - // "fileurl": "", - // "pathfile": null, - // "filetype": "ppt", - // "filesize": null, - // "datacontent": "", - // "filekey": "", - // "filetag": "", - // "dflag": 0, - // "status": "", - // "edituserid": 2781, - // "editusername": "张雪林", - // "edituserheadimgurl": "/profile/avatar/2024/08/12/blob_20240812152930A001.jpeg", - // "edituserentpname": "AIx数字平台内测中心", - // "editstudentid": null, - // "editstudentname": null, - // "timestamp": "2024-09-10 15:07:20", - // "token": null, - // "base64Code": null, - // "orderby": null, - // "childcount": 4, - // "commentlikecount": 0, - // "commenttextcount": 0, - // "commentusecount": 0, - // "commentvisitcount": 90, - // "unixstamp": null, - // "classworkcount": 0, - // "classworklist": "", - // "authjson": "", - // "defaultslide": null - // } - // 获取班级列表 - getClassList() - - // 初始化im-chat - // nextTick(async() => { - // chat = await imChatRef.value?.initImChat() - // }) + if (id) { + // 重置数据 + reset() + // 获取apt详情 + await getAptInfo(id) + // 获取班级列表 + getClassList() + // 初始化im-chat + nextTick(async() => { + chat = await imChatRef.value?.initImChat() + }) + } } // 关闭弹窗 const handleClose = async () => { + reset() // 重置数据 await chat?.logout() chat = null } @@ -204,6 +155,15 @@ const initData = () => { { label: '故障备用', prop: 'backup', show: false }, ] } +// 重置数据 +const reset = () => { + // 初始化-表单数据 + classForm.form = {} + teacherForm.form = { classcourseid: 0 } + dt.isCreate = false + dt.isHistory = false + dt.atCourse = {} +} // 获取课件APT const getAptInfo = async (id) => { const res = await Http_Entpcoursefile.getEntpcoursefile(id) diff --git a/src/renderer/src/views/prepare/container/kj-list-item.vue b/src/renderer/src/views/prepare/container/kj-list-item.vue index 05f068b..2e28989 100644 --- a/src/renderer/src/views/prepare/container/kj-list-item.vue +++ b/src/renderer/src/views/prepare/container/kj-list-item.vue @@ -52,7 +52,8 @@
- 上课 + 上课中 + 上课
-
- - - 标签 - -
-
- - - 删除 - -
+
@@ -98,6 +101,7 @@ import { ElMessage, ElMessageBox } from 'element-plus' import { deleteSmarttalk, updateSmarttalk, getPrepareById } from '@/api/file' import useUserStore from '@/store/modules/user' import outLink from '@/utils/linkConfig' +import { sessionStore } from '@/utils/store' const { ipcRenderer } = window.electron || {} export default { @@ -115,6 +119,10 @@ export default { default: function () { return 0 } + }, + activeClassId: { // 当前上课id + type: String, + default: '' } }, emits: { 'on-start-class': null, 'on-delete': null, 'on-set': null, 'on-delhomework': null,'on-filearg': null }, diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue index 859843b..ca2b197 100644 --- a/src/renderer/src/views/prepare/index.vue +++ b/src/renderer/src/views/prepare/index.vue @@ -20,6 +20,7 @@ :key="index" :item="item" :index="index" + :activeClassId="activeClass?.id" @on-delete="deleteTalk" @on-start-class="startClass" > @@ -192,7 +193,7 @@ import { getClassInfo, getSelfReserv } from '@/api/classManage' import { useGetHomework } from '@/hooks/useGetHomework' import { addEntpcoursefileReturnId } from '@/api/education/entpcoursefile' import ClassReserv from '@/views/classManage/classReserv.vue' -import classStart from '@/views/desktop/container/class-start.vue' // 预备上课 +import classStart from './container/class-start.vue' // 预备上课 const toolStore = useToolState() const fs = require('fs') @@ -246,7 +247,9 @@ export default { // 布置作业弹窗 setDialog: false, row: '', - isOpenHomework: false + isOpenHomework: false, + // 当前上课课程 + activeClass: null, } }, computed: { @@ -272,6 +275,9 @@ export default { }) this.lastAsyncAllTime = localStorage.getItem('lastAsyncAllTime') // this.initReserv() + + // zdg: 获取缓存中的当前课程 + this.activeClass = sessionStore.get('activeClass') || null }, mounted() { this.$watch( @@ -298,15 +304,20 @@ export default { // }, methods: { startClass(item) { - console.log(item) + // console.log(item, sessionStore) if(item.fileFlag === '课件') { + // 关闭状态,打开上课相关功能(已打开,忽略) + const id = sessionStore.has('activeClass.id') ? sessionStore.get('activeClass.id') : null + if (id && id == item.id) return ElMessage.warning('当前正在上课,请勿重复操作') this.openReserv() } if(item.fileFlag === 'apt') { - //TODO 打开apt - const { fileId: aptId } = item - this.$refs.calssRef.open(aptId) + //TODO 打开apt - fileId: aptId + this.$refs.calssRef.open(item.fileId) } + // 当前上课-store + sessionStore.set('activeClass', item) + this.activeClass = item }, initReserv(id) { getClassInfo(id).then((res) => { diff --git a/src/renderer/src/views/tool/sphere.vue b/src/renderer/src/views/tool/sphere.vue index a196e7f..09be0e0 100644 --- a/src/renderer/src/views/tool/sphere.vue +++ b/src/renderer/src/views/tool/sphere.vue @@ -10,7 +10,7 @@ - +