Compare commits
No commits in common. "da1c80406fbb87e5ba60ed302ad37318141bcb20" and "e3199b43debbc56bf6f6214e4a77725d1348d468" have entirely different histories.
da1c80406f
...
e3199b43de
|
@ -1,33 +0,0 @@
|
||||||
|
|
||||||
<template>
|
|
||||||
<el-dialog v-model="open" v-bind="dAttrs">
|
|
||||||
<el-progress type="dashboard" v-bind="$attrs.pg" />
|
|
||||||
</el-dialog>
|
|
||||||
</template>
|
|
||||||
<script setup>
|
|
||||||
// 功能说明 弹窗进度条组件
|
|
||||||
import { computed, useAttrs } from 'vue'
|
|
||||||
const attrs = useAttrs()
|
|
||||||
const props = defineProps({
|
|
||||||
visible: { // 是否显示弹窗
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
},
|
|
||||||
})
|
|
||||||
// 数据更新
|
|
||||||
const emit = defineEmits(['update:visible'])
|
|
||||||
// 弹窗显示-双向绑定
|
|
||||||
const open = computed({
|
|
||||||
get: () => props.visible,
|
|
||||||
set: val => emit('update:visible', val)
|
|
||||||
})
|
|
||||||
// 弹窗属性
|
|
||||||
const dAttrs = computed(() => {
|
|
||||||
const attrsNew = { ...attrs }
|
|
||||||
delete attrsNew.pg
|
|
||||||
return attrsNew
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
|
|
||||||
</style>
|
|
|
@ -50,7 +50,6 @@
|
||||||
<EditDialog v-model="isEdit" :item="curItem" />
|
<EditDialog v-model="isEdit" :item="curItem" />
|
||||||
<AdjustDialog v-model="isAdjust" :item="curItem" />
|
<AdjustDialog v-model="isAdjust" :item="curItem" />
|
||||||
<PptDialog @add-success="addAiPPT" :dataList="resultList" v-model="pptDialog"/>
|
<PptDialog @add-success="addAiPPT" :dataList="resultList" v-model="pptDialog"/>
|
||||||
<progress-dialog v-model:visible="pgDialog.visible" v-bind="pgDialog" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
@ -59,7 +58,6 @@ import { sessionStore } from '@/utils/store'
|
||||||
import emitter from '@/utils/mitt'
|
import emitter from '@/utils/mitt'
|
||||||
import EditDialog from './edit-dialog.vue'
|
import EditDialog from './edit-dialog.vue'
|
||||||
import AdjustDialog from './adjust-dialog.vue'
|
import AdjustDialog from './adjust-dialog.vue'
|
||||||
import progressDialog from './progress-dialog.vue'
|
|
||||||
import { completion, tempResult } from '@/api/mode/index.js'
|
import { completion, tempResult } from '@/api/mode/index.js'
|
||||||
// import { dataSetJson } from '@/utils/comm.js'
|
// import { dataSetJson } from '@/utils/comm.js'
|
||||||
import * as commUtils from '@/utils/comm.js'
|
import * as commUtils from '@/utils/comm.js'
|
||||||
|
@ -79,22 +77,7 @@ const resultList = ref([])
|
||||||
const courseObj = reactive({
|
const courseObj = reactive({
|
||||||
node: null, // 选择的课程节点
|
node: null, // 选择的课程节点
|
||||||
})
|
})
|
||||||
const pgDialog = reactive({ // 弹窗-进度条
|
|
||||||
visible: false,
|
|
||||||
title: 'PPT解析中...',
|
|
||||||
width: 300,
|
|
||||||
showClose: false,
|
|
||||||
draggable: true,
|
|
||||||
beforeClose: done => {}, // 阻止-弹窗事件
|
|
||||||
pg: { // 进度条-参数
|
|
||||||
percentage: 0, // 百分比
|
|
||||||
color: [
|
|
||||||
{ color: '#1989fa', percentage: 50 }, // 蓝色
|
|
||||||
{ color: '#e6a23c', percentage: 80 }, // 橙色
|
|
||||||
{ color: '#5cb87a', percentage: 100 }, // 绿色
|
|
||||||
]
|
|
||||||
}
|
|
||||||
})
|
|
||||||
emitter.on('changeMode', (item) => {
|
emitter.on('changeMode', (item) => {
|
||||||
console.log(item, 'item')
|
console.log(item, 'item')
|
||||||
resultList.value = item.child
|
resultList.value = item.child
|
||||||
|
@ -132,8 +115,6 @@ const params = reactive(
|
||||||
const addAiPPT = async(res) => {
|
const addAiPPT = async(res) => {
|
||||||
let node = courseObj.node
|
let node = courseObj.node
|
||||||
if (!node) return msgUtils.msgWarning('请选择章节?')
|
if (!node) return msgUtils.msgWarning('请选择章节?')
|
||||||
pgDialog.visible = true
|
|
||||||
pgDialog.pg.percentage = 0
|
|
||||||
//TODO res中有PPT地址
|
//TODO res中有PPT地址
|
||||||
const params = { evalid: node.id, edituserid: userStore.id, pageSize: 1 }
|
const params = { evalid: node.id, edituserid: userStore.id, pageSize: 1 }
|
||||||
const resEnpt = await HTTP_SERVER_API('getCourseList', params)
|
const resEnpt = await HTTP_SERVER_API('getCourseList', params)
|
||||||
|
@ -148,16 +129,10 @@ const addAiPPT = async(res) => {
|
||||||
const resPptJson = await PPTXFileToJson(buffer)
|
const resPptJson = await PPTXFileToJson(buffer)
|
||||||
const { def, slides, ...content } = resPptJson
|
const { def, slides, ...content } = resPptJson
|
||||||
// 转换图片|音频|视频 为线上地址
|
// 转换图片|音频|视频 为线上地址
|
||||||
let completed = 0
|
|
||||||
const total = slides.length
|
|
||||||
for( let o of slides ) {
|
for( let o of slides ) {
|
||||||
completed++
|
|
||||||
await toRousrceUrl(o)
|
await toRousrceUrl(o)
|
||||||
// 设置进度条
|
|
||||||
pgDialog.pg.percentage = Math.floor(completed / total * 100)
|
|
||||||
}
|
}
|
||||||
pgDialog.pg.percentage = 0
|
// return
|
||||||
pgDialog.visible = false
|
|
||||||
// 生成ppt课件-父级
|
// 生成ppt课件-父级
|
||||||
const p_params = {parentContent: JSON.stringify(content)}
|
const p_params = {parentContent: JSON.stringify(content)}
|
||||||
const parentid = await HTTP_SERVER_API('addEntpcoursefile', p_params)
|
const parentid = await HTTP_SERVER_API('addEntpcoursefile', p_params)
|
||||||
|
|
Loading…
Reference in New Issue