From 7974aeabe416fa201b9e6fe226d93c0c4b940db2 Mon Sep 17 00:00:00 2001 From: zhuhao <979263092@qq.com> Date: Thu, 8 Aug 2024 17:38:45 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=EF=BC=9A=E9=A2=84?= =?UTF-8?q?=E7=BA=A6=E5=88=97=E8=A1=A8=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron.vite.config.mjs | 4 +- src/renderer/src/api/classManage/index.js | 16 +++++ src/renderer/src/layout/components/Header.vue | 1 + src/renderer/src/router/index.js | 6 ++ .../src/views/classManage/classReserv.vue | 56 +++++++++++++++ .../src/views/classManage/reserv-item.vue | 72 +++++++++++++++++++ .../src/views/prepare/container/reserv.vue | 44 +++++++++++- src/renderer/src/views/prepare/index.vue | 4 +- 8 files changed, 197 insertions(+), 6 deletions(-) create mode 100644 src/renderer/src/views/classManage/classReserv.vue create mode 100644 src/renderer/src/views/classManage/reserv-item.vue diff --git a/electron.vite.config.mjs b/electron.vite.config.mjs index c48cc00..9b9c503 100644 --- a/electron.vite.config.mjs +++ b/electron.vite.config.mjs @@ -24,8 +24,8 @@ export default defineConfig({ server: { proxy: { '/dev-api': { - target: 'http://27.128.240.72:7865', - // target: 'http://192.168.2.52:7863', + // target: 'http://27.128.240.72:7865', + target: 'http://192.168.2.52:7863', changeOrigin: true, rewrite: (p) => p.replace(/^\/dev-api/, '') } diff --git a/src/renderer/src/api/classManage/index.js b/src/renderer/src/api/classManage/index.js index 14a8314..e783daf 100644 --- a/src/renderer/src/api/classManage/index.js +++ b/src/renderer/src/api/classManage/index.js @@ -130,3 +130,19 @@ export function addStudentmainByNameArray(data) { data: data }) } +//新增课程预约 +export function addSmartClassReserv(data) { + return request({ + url: '/smarttalk/classReserv/addSmartClassReserv', + method: 'post', + data: data + }) +} +//查询课程预约 +export function getSelfReserv() { + return request({ + url: '/smarttalk/classReserv/getSelfReserv', + method: 'get' + }) +} + diff --git a/src/renderer/src/layout/components/Header.vue b/src/renderer/src/layout/components/Header.vue index 00deb25..799bf33 100644 --- a/src/renderer/src/layout/components/Header.vue +++ b/src/renderer/src/layout/components/Header.vue @@ -35,6 +35,7 @@ \ No newline at end of file + From c29a3d7a775f4121be183c839d56f5ce68df0ea3 Mon Sep 17 00:00:00 2001 From: zhuhao <979263092@qq.com> Date: Fri, 9 Aug 2024 17:26:04 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=EF=BC=9A=E9=A2=84?= =?UTF-8?q?=E7=BA=A6=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/views/tool/sphere.vue | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/renderer/src/views/tool/sphere.vue b/src/renderer/src/views/tool/sphere.vue index a0b06fb..982b5e6 100644 --- a/src/renderer/src/views/tool/sphere.vue +++ b/src/renderer/src/views/tool/sphere.vue @@ -36,14 +36,7 @@ // 功能说明:electron 悬浮球 import { onMounted, ref, reactive, watchEffect } from 'vue' import { useRoute } from 'vue-router'; -import logo from '@root/resources/icon.png' // logo -import boardVue from './components/board.vue' // 画板-子组件 -import sideVue from './components/side.vue' // 画板-子组件 -import vDrag from './directive/drag' // 自定义指令-拖拽 -import vIgnore from './directive/ignore' // 自定义指令-穿透 import { endClass } from '@/api/classManage' -import { useToolState } from '@/store/modules/tool' - import logo from '@root/resources/icon.png' // logo import boardVue from './components/board.vue' // 画板-子组件 import sideVue from './components/side.vue' // 画板-子组件 From 7cf3487bfb7956be46cab4151c7f2f04389a5dce Mon Sep 17 00:00:00 2001 From: zhuhao <979263092@qq.com> Date: Fri, 9 Aug 2024 17:42:19 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=EF=BC=9A=E9=A2=84?= =?UTF-8?q?=E7=BA=A6=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/renderer/src/views/prepare/index.vue | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 6e9dff0..5cf82e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aix-win", - "version": "1.0.5", + "version": "1.0.6", "description": "An Electron application with Vue", "main": "./out/main/index.js", "author": "example.com", diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue index 403faab..ddd793d 100644 --- a/src/renderer/src/views/prepare/index.vue +++ b/src/renderer/src/views/prepare/index.vue @@ -209,7 +209,7 @@ export default { ipcRenderer.on('download-file-default-prog' + fileName, this.progDownFile) ipcRenderer.once('download-file-default' + fileName, (e, isSuccess) => { if (isSuccess === true) { - resolve(appRootFilePath + fileName) + resolve(fileName) } else { ElMessage({ type: 'info', @@ -218,7 +218,7 @@ export default { } }) } else { - resolve(appRootFilePath + fileName) + resolve(fileName) } }) }) From 9d38f715a1fe582975d04ab7ed3de0da59710213 Mon Sep 17 00:00:00 2001 From: lyc Date: Mon, 12 Aug 2024 09:38:39 +0800 Subject: [PATCH 08/20] edit --- src/renderer/src/store/modules/tool.js | 1 + src/renderer/src/views/tool/components/lesson.vue | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/store/modules/tool.js b/src/renderer/src/store/modules/tool.js index 9ec7d55..a07b10e 100644 --- a/src/renderer/src/store/modules/tool.js +++ b/src/renderer/src/store/modules/tool.js @@ -9,6 +9,7 @@ export const useToolState = defineStore('tool', { showBoardAll: false, // 全屏画板-是否显示 isPdfWin: false, // pdf窗口是否打开 isToolWin: false, // 工具窗口是否打开 + curSubjectNode: {} // 当前教材节点 (包含当前教材 单元) }), actions: { } diff --git a/src/renderer/src/views/tool/components/lesson.vue b/src/renderer/src/views/tool/components/lesson.vue index b8c5c71..87f65f1 100644 --- a/src/renderer/src/views/tool/components/lesson.vue +++ b/src/renderer/src/views/tool/components/lesson.vue @@ -126,4 +126,16 @@ onMounted(()=>{ }) - \ No newline at end of file + \ No newline at end of file From 974aaf35221ac34369e2b4b55fff0a8d48e77972 Mon Sep 17 00:00:00 2001 From: zhuhao <979263092@qq.com> Date: Mon, 12 Aug 2024 09:41:01 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=EF=BC=9A=E9=A2=84?= =?UTF-8?q?=E7=BA=A6=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/views/prepare/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/src/views/prepare/index.vue b/src/renderer/src/views/prepare/index.vue index ddd793d..b243c41 100644 --- a/src/renderer/src/views/prepare/index.vue +++ b/src/renderer/src/views/prepare/index.vue @@ -402,7 +402,7 @@ export default { return addEntpcourse(cform) }, openReserv(){ - // this.$refs['reservDialog'].openDialog() + this.$refs['reservDialog'].openDialog() }, // 打开外部链接 handleOutLink(key) { From 0b67ca30f84d95df16a6bf14f99d121516f389aa Mon Sep 17 00:00:00 2001 From: lyc Date: Mon, 12 Aug 2024 15:55:50 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/hooks/useGetHomework.js | 124 ++++++++++++++++++ src/renderer/src/store/modules/tool.js | 5 +- .../views/prepare/container/set-homework.vue | 3 +- src/renderer/src/views/prepare/index.vue | 5 +- .../src/views/tool/components/homework.vue | 48 +++++-- .../src/views/tool/components/lesson.vue | 82 ++++++++---- 6 files changed, 223 insertions(+), 44 deletions(-) create mode 100644 src/renderer/src/hooks/useGetHomework.js diff --git a/src/renderer/src/hooks/useGetHomework.js b/src/renderer/src/hooks/useGetHomework.js new file mode 100644 index 0000000..fb358d5 --- /dev/null +++ b/src/renderer/src/hooks/useGetHomework.js @@ -0,0 +1,124 @@ +import useUserStore from '@/store/modules/user' +import { homeworklist, listEntpcourse } from '@/api/teaching/classwork' + +const userStore = useUserStore() +// 当前选中教材章节节点 +let curNode = null +// 查询作业列表所需要的ID +let chapterId = null + +export const useGetHomework = async (node) => { + /** + * node + */ + if (!node) return + curNode = node + + // 获取查询作业列表所需ID + let { rows } = await getChapterId() + if (rows.length > 0) { + chapterId = rows[0].id + } else { + // 没有则 传教新的entpcourse 再次查询 + await createEntpcourse() + let { rows } = await getChapterId() + chapterId = rows[0].id + } + + return await getHomeWorkList() + + +} + +// 根据教材章节ID 查询作业列表所需ID +const getChapterId = () => { + return listEntpcourse({ + evalid: curNode.id ? curNode.id : curNode.parentNode.id, + edituserid: userStore.user.userId, + pageSize: 500 + }) +} + +// 创建新的entpcourse +const createEntpcourse = () => { + // 参照 web AIx 传入参数 + var cform = {} + cform.entpid = userStore.deptId + cform.level = 1 + cform.parentid = 0 + cform.dictid = 0 + cform.evalid = curNode.id + cform.evalparentid = 0 + cform.edusubject = curNode.edusubject + cform.edudegree = curNode.edudegree + cform.edustage = curNode.edustage + cform.coursetype = '课标学科' + cform.coursetitle = curNode.itemtitle + cform.coursedesc = '' + cform.status = '' + cform.dflag = 0 + cform.edituserid = userStore.userId + cform.createblankfile = 'yes' + return addEntpcourse(cform) +} + +const getHomeWorkList = async () => { + return await homeworklist({ + entpcourseid: chapterId, + edituserid: userStore.user.userId, + pageSize: 100 + }).then((res) => { + //以下代码 参照AIx web端 作业布置 + let list = [] + for (var i = 0; i < res.rows.length; i++) { + res.rows[i].taskconfig = [] + + // 找child + for (var j = 0; j < res.rows.length; j++) { + if (res.rows[j].parentid == res.rows[i].id) { + var ss = [] + if (res.rows[j].classworkdatastudentids != null) { + ss = JSON.parse('[' + res.rows[j].classworkdatastudentids + ']') + } + var js = { + id: res.rows[j].id, + classid: res.rows[j].classid, + classcaption: res.rows[j].classcaption, + parentid: 0, + worktype: '', + workkey: res.rows[j].workkey, + worktag: '', + entpcourseid: 0, + evalid: 0, + edusubject: '', + edudegree: '', + workdate: '', + title: '', + workcodes: '', + studentlist: ss, + deaddate: res.rows[j].deaddate, + timelength: res.rows[j].timelength, + weights: res.rows[j].weights, + feedtype: res.rows[j].feedtype + } + res.rows[i].taskconfig.push(js) + } + } + res.rows[i].fileShowName = res.rows[i].uniquekey + + // 注意slideid>0的,这一些作业是添加到PPT页面的,所以在作业管理中不能出现 + // 2024-05-15,酉阳,jackyshen + if (res.rows[i].classid == 0 && res.rows[i].slideid == 0) { + list.push(res.rows[i]) + } + + // 如果是习题训练任务,则检查一共有多少道 + if (res.rows[i].entpcourseworklist != '') { + res.rows[i].entpcourseworklistarray = JSON.parse('[' + res.rows[i].entpcourseworklist + ']') + } else { + res.rows[i].entpcourseworklistarray = [] + } + } + return list + }) +} diff --git a/src/renderer/src/store/modules/tool.js b/src/renderer/src/store/modules/tool.js index a07b10e..ac4e440 100644 --- a/src/renderer/src/store/modules/tool.js +++ b/src/renderer/src/store/modules/tool.js @@ -9,7 +9,10 @@ export const useToolState = defineStore('tool', { showBoardAll: false, // 全屏画板-是否显示 isPdfWin: false, // pdf窗口是否打开 isToolWin: false, // 工具窗口是否打开 - curSubjectNode: {} // 当前教材节点 (包含当前教材 单元) + curSubjectNode: { + data: {}, // 当前教材节点 (包含当前教材 单元) + querySearch: {} // 查询资源所需参数 + } }), actions: { } diff --git a/src/renderer/src/views/prepare/container/set-homework.vue b/src/renderer/src/views/prepare/container/set-homework.vue index f591826..c607e43 100644 --- a/src/renderer/src/views/prepare/container/set-homework.vue +++ b/src/renderer/src/views/prepare/container/set-homework.vue @@ -1,6 +1,6 @@ From 1f9788498ac0aab3f7075121e0e7b0f19fc00d3c Mon Sep 17 00:00:00 2001 From: yangws <1607839436@qq.com> Date: Tue, 13 Aug 2024 15:12:55 +0800 Subject: [PATCH 19/20] =?UTF-8?q?fix:=E5=8E=BB=E6=8E=89defineProps,?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E4=BF=AE=E6=94=B9=E5=A4=87=E8=AF=BE-?= =?UTF-8?q?=E8=AF=BE=E6=A0=87=E7=A0=94=E8=AF=BB=EF=BC=8C=E9=AB=98=E8=80=83?= =?UTF-8?q?=E7=A0=94=E8=AF=BB=EF=BC=8C=E6=95=99=E5=AD=A6=E5=A4=A7=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E9=93=BE=E6=8E=A5=E4=B8=8D=E8=83=BD=E5=90=8C=E6=97=B6?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E7=9A=84bug;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/classManage/select/index.vue | 2 +- src/renderer/src/plugins/shareStore.js | 19 +++++++++++++++++-- .../src/views/classManage/basicGroup.vue | 2 +- .../src/views/classManage/classInfo.vue | 2 +- .../src/views/classManage/studentList.vue | 2 +- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/renderer/src/components/classManage/select/index.vue b/src/renderer/src/components/classManage/select/index.vue index b8959c3..6a11142 100644 --- a/src/renderer/src/components/classManage/select/index.vue +++ b/src/renderer/src/components/classManage/select/index.vue @@ -5,7 +5,7 @@ diff --git a/src/renderer/src/components/pdf/index.vue b/src/renderer/src/components/pdf/index.vue index 2ab4c39..e588373 100644 --- a/src/renderer/src/components/pdf/index.vue +++ b/src/renderer/src/components/pdf/index.vue @@ -73,11 +73,6 @@ const renderPage = async (canvasobj) => { canvasContext: canvasobj.context, viewport: viewport } - // console.log(renderContext,22222222222222222222) - // const textContent = await page.getTextContent(); - // console.log(textContent); - // const annotations = await page.getAnnotations(); - // console.log(annotations); page.render(renderContext).promise.then((res) => { const img = document.createElement('img') img.src = canvasobj.canvas.toDataURL('image/png') @@ -90,7 +85,6 @@ const renderPage = async (canvasobj) => { if (canvasobj.index == 0) { canvasFabricVue.value.canvas.setWidth(screenWidth) canvasFabricVue.value.canvas.setHeight(screenHeight) - // updateCanvasBackgroundImage(canvasFabricVue,img) displayData(canvasFabricVue, canvsStore, canvasobj, fabric, img) } else { canvas1FabricVue.value.canvas.setWidth(screenWidth) @@ -198,10 +192,7 @@ const initPdf = async (type = 'default') => { }) } // 保存数据 - // savecanvsStore(imgarr, canvsStore) - if (props.pdfObj.numberOfPdf == 1) { - // imgarr.value[0] canvasFabricVue.value.history.clean() } else { canvasFabricVue.value.history.clean() @@ -380,7 +371,10 @@ defineExpose({ savaDataStore }) watchEffect(() => { - console.log(toolState,'监听') + setTimeout(() => { + console.log(toolState,'监听') + + }, 300) if(toolState.isPdfWin){ // if(toolState.isToolWin){ // ispointer.value=false diff --git a/src/renderer/src/views/classBegins/index.vue b/src/renderer/src/views/classBegins/index.vue index 3d7e874..5876c9c 100644 --- a/src/renderer/src/views/classBegins/index.vue +++ b/src/renderer/src/views/classBegins/index.vue @@ -41,6 +41,7 @@ const { ipcRenderer } = require('electron') import { getBookMarkById } from '@/api/eTextbook/index' import {useToolState} from '@/store/modules/tool' pdfjsLib.GlobalWorkerOptions.workerSrc = getStaticUrl('/lib/build/pdf.worker.mjs') + const toolState = useToolState(); const route = useRoute(); const isOnLoadShow = ref(false) //加载完毕显示 @@ -70,14 +71,9 @@ const navtopage = (type) => { if (pdfObj.numPages > numPagesTotal.value) return pdfCanvaslist.value.initPdf('rest') } -// 最小化窗口 +// 关闭窗口 const minimize = async () => { await pdfCanvaslist.value.savaDataStore() - // toolState.isPdfWin=false - // toolState.showBoardAll=true //恢复默认值 - // console.log(toolState.showBoardAll,"关闭") - // // ipcRenderer.send('tool-sphere:reset') //重置tool状态 - // ipcRenderer.send('open-PDF:minimize') } const handleUpdate = (data) => { numPagesTotal.value = data @@ -104,11 +100,12 @@ const switchPageMode = () => { } } onMounted(async () => { - toolState.isPdfWin=true + toolState.isPdfWin=true //设置打开pdf窗口 // pdfObj.pdfUrl = getStaticUrl(route.query.path, 'user', 'selfFile', true) //线上 pdfObj.pdfUrl = getStaticUrl('aaa.pdf', 'user', 'selfFile', true) //本地 textbookId.value = route.query.textbookId pdfObj.bookId=textbookId.value + //初始化获取接口数据 getBookMarkById(textbookId.value).then(res=>{ pdfObj.allPageData=getUniqueArrayByLastOccurrence(res.data) isOnLoadShow.value=true