Merge pull request '1.pptList 实验室功能' (#168) from zdg_dev into main
Reviewed-on: #168
This commit is contained in:
commit
086836e016
|
@ -74,8 +74,6 @@ const initLoad: Function = () => {
|
||||||
!!(opt.ratio??null) && slidesStore.setViewportRatio(opt.ratio)// 有比例配置项
|
!!(opt.ratio??null) && slidesStore.setViewportRatio(opt.ratio)// 有比例配置项
|
||||||
}
|
}
|
||||||
return PPTApi.getSlideList(resource.id)
|
return PPTApi.getSlideList(resource.id)
|
||||||
// PPTApi.updateWorkList()
|
|
||||||
// return Promise.resolve()
|
|
||||||
}
|
}
|
||||||
return Promise.resolve()
|
return Promise.resolve()
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,8 @@ export class Utils {
|
||||||
}, delay)
|
}, delay)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 延时
|
||||||
|
static sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
|
||||||
}
|
}
|
||||||
|
|
||||||
/** ppt相关后端接口处理 */
|
/** ppt相关后端接口处理 */
|
||||||
|
@ -84,6 +86,12 @@ export class PPTApi {
|
||||||
slidesStore.setWorkItem(workItem)
|
slidesStore.setWorkItem(workItem)
|
||||||
// 没有上课时调用-作业列表
|
// 没有上课时调用-作业列表
|
||||||
if(!classcourse) this.updateWorkList()
|
if(!classcourse) this.updateWorkList()
|
||||||
|
// 没有上课时调用-批量更新缩略图
|
||||||
|
if(!classcourse) {
|
||||||
|
Utils.sleep(1500).then(() => {
|
||||||
|
this.batchUpdateThumUrl()
|
||||||
|
})
|
||||||
|
}
|
||||||
resolve(true)
|
resolve(true)
|
||||||
} else msgUtils.msgError(res.msg || '获取数据失败');resolve(false)
|
} else msgUtils.msgError(res.msg || '获取数据失败');resolve(false)
|
||||||
})
|
})
|
||||||
|
@ -233,13 +241,20 @@ export class PPTApi {
|
||||||
|
|
||||||
// 批量更新缩略图-异步
|
// 批量更新缩略图-异步
|
||||||
static batchUpdateThumUrl() {
|
static batchUpdateThumUrl() {
|
||||||
return new Promise(async resolve => {
|
return nextTick().then(async () => {
|
||||||
const list = slidesStore.workItem || []
|
const list = slidesStore.workItem || []
|
||||||
if (!list.length) return resolve()
|
if (!list.length) return
|
||||||
const upList = []
|
const upList = []
|
||||||
for (const [ind,o] of list.entries()) {
|
for (const [ind,o] of list.entries()) {
|
||||||
|
const isCreate = !o.fileurl // 是否创建
|
||||||
|
if (isCreate) {
|
||||||
const thumUrl = await this.getSlideThumUrl(ind)
|
const thumUrl = await this.getSlideThumUrl(ind)
|
||||||
|
upList.push({ id: o.id, fileurl: thumUrl })
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (!upList.length) return
|
||||||
|
// 批量更新
|
||||||
|
return await API_entpcoursefile.batchUpdateNew(upList)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,8 @@ export class MsgEnum {
|
||||||
MSG_homework : 'HOMEWORK',
|
MSG_homework : 'HOMEWORK',
|
||||||
/** @desc: 公屏 - 课堂作业|活动 */
|
/** @desc: 公屏 - 课堂作业|活动 */
|
||||||
MSG_pushSreen_work : 'pushSreen_work',
|
MSG_pushSreen_work : 'pushSreen_work',
|
||||||
|
/** @desc: 公屏 - 实验 */
|
||||||
|
MSG_pushSreen_experiment : 'pushSreen_experiment',
|
||||||
/** @desc: 点赞 */
|
/** @desc: 点赞 */
|
||||||
MSG_dz : 'dz',
|
MSG_dz : 'dz',
|
||||||
/** @desc: 疑惑 */
|
/** @desc: 疑惑 */
|
||||||
|
|
|
@ -10,6 +10,7 @@ import { MsgEnum } from './types' // 消息枚举
|
||||||
import ChatWs from '@/plugins/socket' // 聊天socket
|
import ChatWs from '@/plugins/socket' // 聊天socket
|
||||||
import Classcourse from './classcourse' // 课程相关
|
import Classcourse from './classcourse' // 课程相关
|
||||||
import msgUtils from '@/plugins/modal' // 消息工具
|
import msgUtils from '@/plugins/modal' // 消息工具
|
||||||
|
import * as dialogUtils from '@/utils/dialog' // 弹窗-函数
|
||||||
import { Homework } from './index' // api-作业相关
|
import { Homework } from './index' // api-作业相关
|
||||||
// import emitter from '@/utils/mitt' //mitt 事件总线
|
// import emitter from '@/utils/mitt' //mitt 事件总线
|
||||||
import useExecPlay from '../views/Screen/hooks/useExecPlay' // 播放控制
|
import useExecPlay from '../views/Screen/hooks/useExecPlay' // 播放控制
|
||||||
|
@ -114,6 +115,10 @@ export default () => {
|
||||||
if (!content.id) return
|
if (!content.id) return
|
||||||
Homework.showHomework(content.id)
|
Homework.showHomework(content.id)
|
||||||
break
|
break
|
||||||
|
case MsgEnum.HEADS.MSG_pushSreen_experiment: // 打开实验:
|
||||||
|
if (!content.url) return
|
||||||
|
dialogUtils.openLink(content.url)
|
||||||
|
break
|
||||||
case MsgEnum.HEADS.MSG_closed: // 下课:
|
case MsgEnum.HEADS.MSG_closed: // 下课:
|
||||||
close()
|
close()
|
||||||
break
|
break
|
||||||
|
|
|
@ -100,6 +100,8 @@ export class MsgEnum {
|
||||||
MSG_homework : 'HOMEWORK',
|
MSG_homework : 'HOMEWORK',
|
||||||
/** @desc: 公屏 - 课堂作业|活动 */
|
/** @desc: 公屏 - 课堂作业|活动 */
|
||||||
MSG_pushSreen_work : 'pushSreen_work',
|
MSG_pushSreen_work : 'pushSreen_work',
|
||||||
|
/** @desc: 公屏 - 实验 */
|
||||||
|
MSG_pushSreen_experiment : 'pushSreen_experiment',
|
||||||
/** @desc: 点赞 */
|
/** @desc: 点赞 */
|
||||||
MSG_dz : 'dz',
|
MSG_dz : 'dz',
|
||||||
/** @desc: 疑惑 */
|
/** @desc: 疑惑 */
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
/**
|
||||||
|
* 弹窗-函数
|
||||||
|
*/
|
||||||
|
import { h, render } from 'vue'
|
||||||
|
import { ElDialog } from 'element-plus'
|
||||||
|
|
||||||
|
// 打开弹窗-函数
|
||||||
|
export const openDialog = (option, content) => {
|
||||||
|
let vNode
|
||||||
|
const body = document.body
|
||||||
|
const dOpts = {
|
||||||
|
modelValue: true,
|
||||||
|
width: 800,
|
||||||
|
height: 600,
|
||||||
|
title: '添加-超连接',
|
||||||
|
draggable: true,
|
||||||
|
'onUpdate:modelValue': val => {
|
||||||
|
if (vNode && !val) render(null, body)
|
||||||
|
},
|
||||||
|
...option
|
||||||
|
}
|
||||||
|
vNode = h(ElDialog, dOpts, {
|
||||||
|
default: typeof content == 'function' ? content(h) : content
|
||||||
|
})
|
||||||
|
render(vNode, body)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打开链接
|
||||||
|
export const openLink = (option, title) => {
|
||||||
|
// https://phet.colorado.edu/sims/html/number-play/latest/number-play_zh_CN.html
|
||||||
|
const isStr = typeof option == 'string'
|
||||||
|
const opt = isStr ? {} : option
|
||||||
|
const url = isStr ? option : option?.url || option?.src || option?.href
|
||||||
|
const titleNew = isStr? title||'实验室' : option?.title || '添加-超连接'
|
||||||
|
openDialog({
|
||||||
|
title: titleNew,
|
||||||
|
...opt
|
||||||
|
}, (h) => {
|
||||||
|
return h('iframe', {
|
||||||
|
src: url,
|
||||||
|
width: '100%',
|
||||||
|
style: {
|
||||||
|
height: 'calc(80vh - 75px)',
|
||||||
|
},
|
||||||
|
scrolling: 'no',
|
||||||
|
frameborder: '0',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
|
@ -734,6 +734,10 @@ const msgHandle = (msg) => {
|
||||||
Homework.win = null
|
Homework.win = null
|
||||||
window.close() // 关闭窗口
|
window.close() // 关闭窗口
|
||||||
break
|
break
|
||||||
|
case MsgEnum.HEADS.MSG_pushSreen_experiment: // 实验:
|
||||||
|
Homework.win = null
|
||||||
|
window.close() // 关闭窗口
|
||||||
|
break
|
||||||
// case 'TIMAddRecvNewMsgCallback': // 收到新消息 data=[]
|
// case 'TIMAddRecvNewMsgCallback': // 收到新消息 data=[]
|
||||||
// {
|
// {
|
||||||
// (data||[]).forEach(o => {
|
// (data||[]).forEach(o => {
|
||||||
|
|
Loading…
Reference in New Issue