diff --git a/electron-builder-prod.yml b/electron-builder-prod.yml index f8e0b9a..67e3c68 100644 --- a/electron-builder-prod.yml +++ b/electron-builder-prod.yml @@ -43,7 +43,7 @@ appImage: npmRebuild: false publish: provider: generic - url: https://prev.ysaix.com:7868/src/assets/smarttalk/ + url: https://prev.ysaix.com:7868/src/assets/smarttalkws/ electronDownload: mirror: https://npmmirror.com/mirrors/electron/ # 额外依赖打包到输出目录 diff --git a/electron-builder.yml b/electron-builder.yml index 4b26cd1..3f52b2f 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -42,7 +42,7 @@ appImage: npmRebuild: false publish: provider: generic - url: https://file.ysaix.com:7868/src/assets/smarttalk/ + url: https://file.ysaix.com:7868/src/assets/smarttalkws/ electronDownload: mirror: https://npmmirror.com/mirrors/electron/ # 额外依赖打包到输出目录 diff --git a/package.json b/package.json index ecf3b97..1c822d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aix-win", - "version": "2.5.0", + "version": "2.5.1", "description": "", "main": "./out/main/index.js", "author": "上海交大重庆人工智能研究院", diff --git a/src/main/index.js b/src/main/index.js index 639d237..18df801 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -88,7 +88,7 @@ function createLoginWindow() { function createMainWindow() { mainWindow = new BrowserWindow({ width: 1350, - minWidth: 1200, + minWidth: 1370, height: 700, minHeight: 700, show: false, diff --git a/src/renderer/src/assets/iconfont/iconfont.css b/src/renderer/src/assets/iconfont/iconfont.css index 7a2dab4..2ed596e 100644 --- a/src/renderer/src/assets/iconfont/iconfont.css +++ b/src/renderer/src/assets/iconfont/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 4723712 */ - src: url('iconfont.woff2?t=1730272564579') format('woff2'), - url('iconfont.woff?t=1730272564579') format('woff'), - url('iconfont.ttf?t=1730272564579') format('truetype'); + src: url('iconfont.woff2?t=1730448425319') format('woff2'), + url('iconfont.woff?t=1730448425319') format('woff'), + url('iconfont.ttf?t=1730448425319') format('truetype'); } .iconfont { @@ -13,6 +13,42 @@ -moz-osx-font-smoothing: grayscale; } +.icon-xiaoxi:before { + content: "\e677"; +} + +.icon-fuzhi:before { + content: "\e6f6"; +} + +.icon-tianjia:before { + content: "\e675"; +} + +.icon-bianji-gangbi:before { + content: "\e6d8"; +} + +.icon-rss-line:before { + content: "\e782"; +} + +.icon-touxiang:before { + content: "\e655"; +} + +.icon-xiangxia:before { + content: "\e85d"; +} + +.icon--kejian:before { + content: "\e6a3"; +} + +.icon-fanhui:before { + content: "\e604"; +} + .icon-tianchongxing-:before { content: "\e641"; } diff --git a/src/renderer/src/assets/iconfont/iconfont.js b/src/renderer/src/assets/iconfont/iconfont.js index bc0fce0..19c4023 100644 --- a/src/renderer/src/assets/iconfont/iconfont.js +++ b/src/renderer/src/assets/iconfont/iconfont.js @@ -1 +1 @@ -window._iconfont_svg_string_4723712='',(l=>{var h=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var v,a,t,z,i,p=function(h,c){c.parentNode.insertBefore(h,c)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}v=function(){var h,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_4723712,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(h=document.body).firstChild?p(c,h.firstChild):h.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(v,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),v()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(t=v,z=l.document,i=!1,o(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,M())})}function M(){i||(i=!0,t())}function o(){try{z.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}M()}})(window); \ No newline at end of file +window._iconfont_svg_string_4723712='',(l=>{var h=(c=(c=document.getElementsByTagName("script"))[c.length-1]).getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var a,v,t,i,z,p=function(h,c){c.parentNode.insertBefore(h,c)};if(h&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}a=function(){var h,c=document.createElement("div");c.innerHTML=l._iconfont_svg_string_4723712,(c=c.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",c=c,(h=document.body).firstChild?p(c,h.firstChild):h.appendChild(c))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(v=function(){document.removeEventListener("DOMContentLoaded",v,!1),a()},document.addEventListener("DOMContentLoaded",v,!1)):document.attachEvent&&(t=a,i=l.document,z=!1,o(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,M())})}function M(){z||(z=!0,t())}function o(){try{i.documentElement.doScroll("left")}catch(h){return void setTimeout(o,50)}M()}})(window); \ No newline at end of file diff --git a/src/renderer/src/assets/iconfont/iconfont.json b/src/renderer/src/assets/iconfont/iconfont.json index bc3a0e0..1542e47 100644 --- a/src/renderer/src/assets/iconfont/iconfont.json +++ b/src/renderer/src/assets/iconfont/iconfont.json @@ -5,6 +5,69 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "2158298", + "name": "消息", + "font_class": "xiaoxi", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "12024469", + "name": "复制", + "font_class": "fuzhi", + "unicode": "e6f6", + "unicode_decimal": 59126 + }, + { + "icon_id": "17887886", + "name": "添加", + "font_class": "tianjia", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24268380", + "name": "编辑-钢笔", + "font_class": "bianji-gangbi", + "unicode": "e6d8", + "unicode_decimal": 59096 + }, + { + "icon_id": "42198021", + "name": "rss-line", + "font_class": "rss-line", + "unicode": "e782", + "unicode_decimal": 59266 + }, + { + "icon_id": "700853", + "name": "头像", + "font_class": "touxiang", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "16398985", + "name": "向下", + "font_class": "xiangxia", + "unicode": "e85d", + "unicode_decimal": 59485 + }, + { + "icon_id": "6571029", + "name": "60-课件", + "font_class": "-kejian", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "26283779", + "name": "返回", + "font_class": "fanhui", + "unicode": "e604", + "unicode_decimal": 58884 + }, { "icon_id": "6446310", "name": "博士", diff --git a/src/renderer/src/assets/iconfont/iconfont.ttf b/src/renderer/src/assets/iconfont/iconfont.ttf index caaedec..e9417dd 100644 Binary files a/src/renderer/src/assets/iconfont/iconfont.ttf and b/src/renderer/src/assets/iconfont/iconfont.ttf differ diff --git a/src/renderer/src/assets/iconfont/iconfont.woff b/src/renderer/src/assets/iconfont/iconfont.woff index 2a10d4d..7d3e222 100644 Binary files a/src/renderer/src/assets/iconfont/iconfont.woff and b/src/renderer/src/assets/iconfont/iconfont.woff differ diff --git a/src/renderer/src/assets/iconfont/iconfont.woff2 b/src/renderer/src/assets/iconfont/iconfont.woff2 index 0c91d58..bf9da5f 100644 Binary files a/src/renderer/src/assets/iconfont/iconfont.woff2 and b/src/renderer/src/assets/iconfont/iconfont.woff2 differ diff --git a/src/renderer/src/components/PdfJs/index.vue b/src/renderer/src/components/PdfJs/index.vue index 0973e5e..f99aa83 100644 --- a/src/renderer/src/components/PdfJs/index.vue +++ b/src/renderer/src/components/PdfJs/index.vue @@ -16,6 +16,10 @@ const props = defineProps({ isWin: { type: Boolean, default: false + }, + showCatalog: { + type: Boolean, + default: true } }) /**pdf文件地址 */ @@ -25,7 +29,15 @@ const fileUrl = props.isWin ? props.url : getAppInstallUrl('pdfjs-dist/web/viewe onMounted(() => { /** 将传入的pdf地址进行编码,防止中文识别错误 */ if(props.isWin) pdfUrl.value = fileUrl - else pdfUrl.value = fileUrl + encodeURIComponent(props.url) + '#pageMode=outline' + else{ + let url = fileUrl + encodeURIComponent(props.url) + if(props.showCatalog){ + pdfUrl.value = url + '#pageMode=outline' + } + else{ + pdfUrl.value = url + } + } }) diff --git a/src/renderer/src/hooks/useGetSubject.js b/src/renderer/src/hooks/useGetSubject.js index 2b61a08..b25b4b1 100644 --- a/src/renderer/src/hooks/useGetSubject.js +++ b/src/renderer/src/hooks/useGetSubject.js @@ -51,6 +51,7 @@ export const useGetSubject = async () =>{ } const { rows } = await listEvaluation(subjectParams) subjectList = rows + sessionStore.set('subject.curBook', rows[0]) sessionStore.set('subject.bookList', rows) treeData = getTreeData(subjectList[0].id) // 设置一个默认的curNode diff --git a/src/renderer/src/layout/components/Aside.vue b/src/renderer/src/layout/components/Aside.vue index ba39451..433612e 100644 --- a/src/renderer/src/layout/components/Aside.vue +++ b/src/renderer/src/layout/components/Aside.vue @@ -78,7 +78,7 @@ const headerMenus = [ name: '教学大模型', id: 1, icon: 'icon-shouye', - path: '/index' + path: '/model/index' }, { name: '教学工作台', diff --git a/src/renderer/src/layout/components/Header.vue b/src/renderer/src/layout/components/Header.vue index d827775..bc94c34 100644 --- a/src/renderer/src/layout/components/Header.vue +++ b/src/renderer/src/layout/components/Header.vue @@ -1,232 +1,63 @@ diff --git a/src/renderer/src/router/index.js b/src/renderer/src/router/index.js index 1a789b1..7c52183 100644 --- a/src/renderer/src/router/index.js +++ b/src/renderer/src/router/index.js @@ -19,127 +19,148 @@ export const constantRoutes = [ path: '/fullscreenpdf', component: () => import('@/views/fullScreenPdf/index.vue'), name: 'fullscreenpdf', - meta: {title: '全屏显示PDF'} + meta: { title: '全屏显示PDF' } }, { path: '/teachClassTask', component: () => import('@/views/classTask/teachClassTask.vue'), hidden: true }, + { + path: '/model', + component: Layout, + name: 'model', + meta: { title: '教学大模型' }, + children: [ + { + path: 'index', + component: () => import('@/views/model/index.vue'), + name: 'model-index', + meta: { title: '教学大模型' } + }, + { + path: 'curriculum', + component: () => import('@/views/curriculum-standards/index.vue'), + name: 'curriculum-standard', + meta: { title: '课标研读' } + }, + { + path: 'teaching', + component: () => import('@/views/teaching-material/index.vue'), + name: 'teaching-material', + meta: { title: '教材研读' } + }, + { + path: 'examination', + component: () => import('@/views/examination-analysis/index.vue'), + name: 'examination-analysis', + meta: { title: '考试分析' } + }, + ] + }, { path: '/', component: Layout, redirect: '/home', + meta: { title: '教学工作台' }, children: [ - { - path: '/index', - component: () => import('@/views/index/index.vue'), - name: 'index', - meta: {title: '首页'} - }, { path: '/home', component: () => import('@/views/desktop/index.vue'), name: 'desktop', - meta: {title: '主页'} - }, - { - path: '/homepage', - component: () => import('@/views/homePage/index.vue'), - name: 'homepage', - meta: {title: '主页'} + meta: { title: '教学工作台' } }, { path: '/resource', component: () => import('@/views/resource/index.vue'), name: 'resource', - meta: {title: '资源库'} + meta: { title: '资源库' } }, { - path: '/prepare', + path: 'prepare', component: () => import('@/views/prepare/index.vue'), name: 'prepare', - meta: {title: '教学实践'} + meta: { title: '教学实践', showBread: true } }, { path: '/teach', component: () => import('@/views/teach/index.vue'), name: 'teach', - meta: {title: '授课'} + meta: { title: '授课' } }, { path: '/standardanalysis', component: () => import('@/views/teach/standardAnalysis/index.vue'), name: 'standardanalysis', - meta: {title: '课标分析'} + meta: { title: '课标分析', showBread: true } }, { path: '/textbookAnalysis', component: () => import('@/views/textbookAnalysis/index.vue'), name: 'textbookAnalysis', - meta: {title: '教材分析'} + meta: { title: '教材分析', showBread: true } }, { path: '/profile', component: () => import('@/views/profile/index.vue'), name: 'profile', - meta: {title: '个人中心'} + meta: { title: '个人中心' } }, { path: '/testpdf', component: () => import('@/views/testPdf/index.vue'), name: 'testpdf', - meta: {title: '测试PDF'} + meta: { title: '测试PDF' } }, - + { path: '/classReserv', component: () => import('@/views/classManage/classReserv.vue'), name: 'classReserv', - meta: {title: '课程预约'} + meta: { title: '课程预约' } }, { path: '/class', component: () => import('@/views/classManage/index.vue'), name: 'class', - meta: {title: '班级中心'}, + meta: { title: '班级中心' } }, { path: '/classTaskAssign', component: () => import('@/views/classTask/classTaskAssign.vue'), name: 'classTaskAssign', - meta: {title: '作业布置'}, + meta: { title: '作业布置', showBread: true } }, { path: '/classTask', component: () => import('@/views/classTask/classTask.vue'), name: 'classCorrect', - meta: {title: '作业批改'}, + meta: { title: '作业批改', showBread: true } }, { path: '/newClassTask', component: () => import('@/views/classTask/newClassTask.vue'), name: 'newClassCorrect', - meta: {title: '作业设计'}, + meta: { title: '作业设计', showBread: true } }, { path: '/examReport', component: () => import('@/views/examReport/index.vue'), name: 'examReport', - meta: {title: '考试分析'} + meta: { title: '考试分析', showBread: true } }, { path: '/hashrate', component: () => import('@/views/hashrate/index.vue'), name: 'hashrate', - meta: {title: '算力'} + meta: { title: '算力' } }, { path: '/setting', component: () => import('@/views/setting/index.vue'), name: 'setting', - meta: {title: '设置'} - }, + meta: { title: '设置' } + } { path: '/joinSchool', component: () => import('@/views/joinSchool/index.vue'), diff --git a/src/renderer/src/views/classManage/components/newClass.vue b/src/renderer/src/views/classManage/components/newClass.vue new file mode 100644 index 0000000..27929df --- /dev/null +++ b/src/renderer/src/views/classManage/components/newClass.vue @@ -0,0 +1,232 @@ + + + + + \ No newline at end of file diff --git a/src/renderer/src/views/classManage/index.vue b/src/renderer/src/views/classManage/index.vue index ed76ad7..331e9cf 100644 --- a/src/renderer/src/views/classManage/index.vue +++ b/src/renderer/src/views/classManage/index.vue @@ -1,14 +1,15 @@