From de1e0c5a2e1ef8cf6abbe995d249a8831ea46a83 Mon Sep 17 00:00:00 2001 From: lyc Date: Mon, 22 Jul 2024 11:24:36 +0800 Subject: [PATCH 01/25] window-tools --- .../src/components/window-tools/index.vue | 61 +++++++++++++++++++ src/renderer/src/layout/components/Header.vue | 45 +------------- src/renderer/src/views/login/index.vue | 7 +-- 3 files changed, 67 insertions(+), 46 deletions(-) create mode 100644 src/renderer/src/components/window-tools/index.vue diff --git a/src/renderer/src/components/window-tools/index.vue b/src/renderer/src/components/window-tools/index.vue new file mode 100644 index 0000000..f32fe27 --- /dev/null +++ b/src/renderer/src/components/window-tools/index.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/src/renderer/src/layout/components/Header.vue b/src/renderer/src/layout/components/Header.vue index 4e4b31b..54c773e 100644 --- a/src/renderer/src/layout/components/Header.vue +++ b/src/renderer/src/layout/components/Header.vue @@ -14,12 +14,7 @@
-
- - {{ isMaxSize ? '' : - '' }} - -
+
@@ -46,11 +41,11 @@ import { ref, watch } from 'vue' import { useRouter } from 'vue-router' import { ElMessageBox } from 'element-plus' +import WindowTools from '@/components/window-tools/index.vue' import useUserStore from '@/store/modules/user' + const userStore = useUserStore() -const { ipcRenderer } = window.electron || {} -const isMaxSize = ref(false) const router = useRouter() const currentRoute = ref('') @@ -81,19 +76,6 @@ watch( { immediate: true } ) -// 最小化 -const minimizeWindow = () => { - ipcRenderer.send('minimize-window') -} -//最大化 -const maximizeWindow = () => { - ipcRenderer?.send('maximize-window') - isMaxSize.value = !isMaxSize.value -} -//关闭 -const closeWindow = () => { - ipcRenderer.send('close-window') -} const changePage = (url) => { router.push(url) @@ -118,11 +100,9 @@ function logout() { type: 'warning' }).then(() => { userStore.logOut().then(() => { - // location.href = '/index#/login'; router.replace('/login') }).catch(()=>{ router.replace('/login') - // location.href = '/index#/login'; }) }).catch(() => { }); } @@ -213,25 +193,6 @@ watch(()=> userStore.avatar,() => { padding-bottom: 5px; flex-direction: column; - .header-tool { - -webkit-app-region: no-drag; - span { - border-radius: 3px; - cursor: pointer; - padding: 2px 10px; - &:hover { - background-color: #c4c4c4; - } - } - .close{ - &:hover{ - background-color: #fb4a3e; - .iconfont{ - color: #fff; - } - } - } - } .user { .user-info { diff --git a/src/renderer/src/views/login/index.vue b/src/renderer/src/views/login/index.vue index 9478a18..ffabd98 100644 --- a/src/renderer/src/views/login/index.vue +++ b/src/renderer/src/views/login/index.vue @@ -7,10 +7,7 @@
- 布置作业 + 布置作业 上传资料 新建课件
@@ -73,8 +73,8 @@ import { toTimeText } from '@/utils/date' import { ElMessage } from 'element-plus' import { parseCataByNode, creatPPT, asyncLocalFile } from '@/utils/talkFile' import FileOperBatch from '@/views/prepare/container/file-oper-batch.vue' -import useUserStore from '@/store/modules/user' -import { homeWorkConfig } from '@/utils/config' + +import outLink from '@/utils/linkConfig' const { ipcRenderer } = window.electron || {} export default { @@ -102,7 +102,6 @@ export default { }, // 当前教材封面图 curBookImg: '', - userStore: '' } }, computed: { @@ -118,7 +117,7 @@ export default { this.callback(param) }) this.lastAsyncAllTime = localStorage.getItem('lastAsyncAllTime') - this.userStore = useUserStore() + }, mounted() { }, @@ -251,15 +250,14 @@ export default { this.uploadData.textbookId = data.textBook.curBookId this.asyncAllFile() }, - // 布置组后也 - handleHomeWork(){ - ipcRenderer.send('openWork',{ - fullPath: homeWorkConfig.fullPath, - cookieData: { - url: homeWorkConfig.host, - name: homeWorkConfig.name, - value: this.userStore.token - } + // 打开外部链接 + handleOutLink(key){ + // key 对应的 linkConfig.js 外部链接配置 + let configObj = outLink[key] + // 通知主进程 + ipcRenderer.send('openWindow', { + fullPath: configObj.fullPath, + cookieData: {...(configObj.data)} }) }, } From 4e9c93da1585ea1db0d8ee97407664c348f357d1 Mon Sep 17 00:00:00 2001 From: zhuhao <979263092@qq.com> Date: Wed, 24 Jul 2024 14:48:18 +0800 Subject: [PATCH 13/25] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=EF=BC=9A=E5=A4=B4?= =?UTF-8?q?=E5=83=8F=E7=9B=B8=E5=85=B3=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron.vite.config.mjs | 7 +------ src/renderer/src/layout/components/Header.vue | 3 --- src/renderer/src/store/modules/user.js | 7 ++++--- src/renderer/src/views/profile/index.vue | 1 + src/renderer/src/views/profile/userAvatar.vue | 4 ++-- 5 files changed, 8 insertions(+), 14 deletions(-) diff --git a/electron.vite.config.mjs b/electron.vite.config.mjs index af2f6ab..7add6c4 100644 --- a/electron.vite.config.mjs +++ b/electron.vite.config.mjs @@ -26,12 +26,7 @@ export default defineConfig({ target: 'http://192.168.2.52:7863', changeOrigin: true, rewrite: (p) => p.replace(/^\/dev-api/, '') - }, - '/profile': { - target: 'http://192.168.2.52:7863', - ws: true, - changeOrigin: true - }, + } }, }, plugins: [vue(), WindiCSS()], diff --git a/src/renderer/src/layout/components/Header.vue b/src/renderer/src/layout/components/Header.vue index 9bdb708..e4642b3 100644 --- a/src/renderer/src/layout/components/Header.vue +++ b/src/renderer/src/layout/components/Header.vue @@ -113,9 +113,6 @@ const emits = defineEmits(['setLayout']) function setLayout() { emits('setLayout'); } -watch(()=> userStore.avatar,() => { - userImg.value = userStore.avatar; -},{deep:true}) diff --git a/src/renderer/src/views/resource/index.vue b/src/renderer/src/views/resource/index.vue index 8550e42..6720e26 100644 --- a/src/renderer/src/views/resource/index.vue +++ b/src/renderer/src/views/resource/index.vue @@ -71,7 +71,6 @@ const submitFile = (data) => { item.fileData = fileData item.callback = fileCallBack }) - // console.log(fileList) uploaderState().pushFile(fileList) } From 4e2ac7c92e57f9e34596d9e01453834debd0a6b2 Mon Sep 17 00:00:00 2001 From: zhangxuelin <959231531@qq.com> Date: Fri, 26 Jul 2024 10:26:34 +0800 Subject: [PATCH 21/25] =?UTF-8?q?pdf=E7=9A=84=E5=B1=95=E7=A4=BA=20?= =?UTF-8?q?=E7=BF=BB=E9=A1=B5=20=E5=8F=8A=E6=95=B0=E6=8D=AE=E5=9B=9E?= =?UTF-8?q?=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/components/pdf/index.vue | 266 +++++++++++++----- .../src/plugins/fabric/event/clickEvent.js | 6 + src/renderer/src/utils/pdfAndFabric.js | 129 +++++++++ src/renderer/src/views/classBegins/index.vue | 173 ++++++------ 4 files changed, 418 insertions(+), 156 deletions(-) create mode 100644 src/renderer/src/utils/pdfAndFabric.js diff --git a/src/renderer/src/components/pdf/index.vue b/src/renderer/src/components/pdf/index.vue index ce95200..15c1821 100644 --- a/src/renderer/src/components/pdf/index.vue +++ b/src/renderer/src/components/pdf/index.vue @@ -1,97 +1,213 @@ \ No newline at end of file diff --git a/src/renderer/src/plugins/fabric/event/clickEvent.js b/src/renderer/src/plugins/fabric/event/clickEvent.js index 98c5816..1bc085f 100644 --- a/src/renderer/src/plugins/fabric/event/clickEvent.js +++ b/src/renderer/src/plugins/fabric/event/clickEvent.js @@ -28,6 +28,8 @@ export class CanvasClickEvent { // 事件:按下鼠标 canvas?.on('mouse:down', (e) => { + console.log(222222222222222222222222222) + this.isMouseDown = true if (this.isSpaceKeyDown) { return @@ -148,6 +150,8 @@ export class CanvasClickEvent { // 事件:移动鼠标 canvas?.on('mouse:move', (e) => { + console.log(222222222222222222222222222) + if (this.isMouseDown) { // Press space, drag the canvas, stop drawing. if (this.isSpaceKeyDown) { @@ -180,6 +184,8 @@ export class CanvasClickEvent { // 事件:松开鼠标 canvas?.on('mouse:up', (e) => { + console.log(222222222222222222222222222) + this.isMouseDown = false if (this.autoDrawInk?.[0]?.length > 3) { autoDrawData.addInk([...this.autoDrawInk]) diff --git a/src/renderer/src/utils/pdfAndFabric.js b/src/renderer/src/utils/pdfAndFabric.js new file mode 100644 index 0000000..f4b0ca9 --- /dev/null +++ b/src/renderer/src/utils/pdfAndFabric.js @@ -0,0 +1,129 @@ +// 所有事件 +export function handleevent(canvas, imgarr, type = 'defalut') { + // 鼠标按下 + canvas.on('mouse:down', function (e) {}) + // // 监听鼠标移动事件 + // canvas.on('mouse:move', (options) => { + // console.log('Mouse move event:', options); + // }); + + // 监听鼠标释放事件 + canvas.on('mouse:up', (options) => { + //判断是点击的哪一个 + if (type == 'defalut') { + if (imgarr.value[0].index == 0) { + imgarr.value[0].JSONdata = canvas.toJSON() + } + if (imgarr.value[1].index == 0) { + imgarr.value[1].JSONdata = canvas.toJSON() + } + } else { + if (imgarr.value[0].index == 1) { + imgarr.value[0].JSONdata = canvas.toJSON() + } + if (imgarr.value[1].index == 1) { + imgarr.value[1].JSONdata = canvas.toJSON() + } + } + }) +} +// 保存数据 +export function savecanvsStore(imgarr, canvsStore) { + canvsStore.pageArr = mergeAndReplace(canvsStore.pageArr, imgarr.value) + // console.log(canvsStore.pageArr,22222222222222222222+'存入') +} +// 重显数据 +export function displayData(canvas, canvsStore, canvasobj, fabric, img) { + // 初始化 + if (!canvsStore.pageArr.length) { + fabric.Image.fromURL(img.src, (img) => { + img.set({ + left: 0, + top: 0, + scaleX: canvas.value.width / img.width, + scaleY: canvas.value.height / img.height + }) + canvas.value.setBackgroundImage(img, canvas.value.renderAll.bind(canvas.value)) + }) + return + } + canvsStore.pageArr.forEach((item) => { + //初始化 + if (item.page == canvasobj.page) { + canvas.value.clear() // 清除 Canvas + // console.log(item.JSONdata, '找到一样的数据') + canvas.value.loadFromJSON(item.JSONdata, () => { + // 在所有对象加载完成后重新渲染画布 + requestAnimationFrame(() => { + // 渲染所有对象 + canvas.value.renderAll.bind(canvas.value) + canvas.value.renderAll() + }) + }) + } else { + // 使用 requestAnimationFrame 来更新画布,确保在下一帧进行重绘 + canvas.value.clear() // 清除 Canvas + requestAnimationFrame(function () { + fabric.Image.fromURL(img.src, (img) => { + img.set({ + left: 0, + top: 0, + scaleX: canvas.value.width / img.width, + scaleY: canvas.value.height / img.height + }) + canvas.value.setBackgroundImage(img, canvas.value.renderAll.bind(canvas.value)) + }) + // 渲染所有对象 + canvas.value.renderAll.bind(canvas.value) + }) + } + }) +} + +//page 一样替换 +const mergeAndReplace = (arr1, arr2) => { + // // 用于存储替换后的数组 + // const resultArray = array1.map(item1 => { + // // 在 array2 中查找 page 相同的对象 + // const replacement = array2.find(item2 => item2.page == item1.page); + // // 如果找到替换对象,则返回替换对象,否则返回原对象 + // return replacement ? replacement : item1; + // }); + + // // 将 array2 中 page 不在 array1 中的对象追加到结果数组中 + // array2.forEach(item2 => { + // const existsInArray1 = array1.some(item1 => item1.page == item2.page); + // if (!existsInArray1) { + // resultArray.push(item2); + // } + // }); + + // return resultArray; + + // 创建一个映射,将 arr2 中的对象按 page 属性存储 + let map = new Map(arr2.map((item) => [item.page, item])) + + // 使用 map 替换 arr1 中相应 page 的对象,并添加 arr2 中的对象 + arr1 = arr1.map((item) => (map.has(item.page) ? map.get(item.page) : item)) + + // 将 map 中存在但 arr1 中不存在的对象添加到 arr1 + for (let [page, obj] of map) { + if (!arr1.some((item) => item.page === page)) { + arr1.push(obj) + } + } + return arr1 +} + +// 初始化数据 +export function initcanvasdata(canvas) { + canvas.value.clear() // 清除 Canvas + // 设置画布的背景色或其他属性 + canvas.value.backgroundColor = 'rgba(255, 255, 255, 1)' // 白色背景 + + // 使用 requestAnimationFrame 来更新画布,确保在下一帧进行重绘 + requestAnimationFrame(function () { + // 渲染所有对象 + canvas.value.renderAll.bind(canvas.value) + }) +} diff --git a/src/renderer/src/views/classBegins/index.vue b/src/renderer/src/views/classBegins/index.vue index d80c99a..26e226d 100644 --- a/src/renderer/src/views/classBegins/index.vue +++ b/src/renderer/src/views/classBegins/index.vue @@ -1,78 +1,89 @@ ")}catch(h){console&&console.log(h)}}c=function(){var h,v=document.createElement("div");v.innerHTML=l._iconfont_svg_string_2794390,(v=v.getElementsByTagName("svg")[0])&&(v.setAttribute("aria-hidden","true"),v.style.position="absolute",v.style.width=0,v.style.height=0,v.style.overflow="hidden",v=v,(h=document.body).firstChild?p(v,h.firstChild):h.appendChild(v))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),c()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(t=c,z=l.document,i=!1,d(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,M())})}function M(){i||(i=!0,t())}function d(){try{z.documentElement.doScroll("left")}catch(h){return void setTimeout(d,50)}M()}}(window); \ No newline at end of file +window._iconfont_svg_string_2794390='',function(v){var h=(h=document.getElementsByTagName("script"))[h.length-1],l=h.getAttribute("data-injectcss"),h=h.getAttribute("data-disable-injectsvg");if(!h){var c,a,t,i,z,p=function(h,l){l.parentNode.insertBefore(h,l)};if(l&&!v.__iconfont__svg__cssinject__){v.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(h){console&&console.log(h)}}c=function(){var h,l=document.createElement("div");l.innerHTML=v._iconfont_svg_string_2794390,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(h=document.body).firstChild?p(l,h.firstChild):h.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(c,0):(a=function(){document.removeEventListener("DOMContentLoaded",a,!1),c()},document.addEventListener("DOMContentLoaded",a,!1)):document.attachEvent&&(t=c,i=v.document,z=!1,d(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,M())})}function M(){z||(z=!0,t())}function d(){try{i.documentElement.doScroll("left")}catch(h){return void setTimeout(d,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 7cec3f4..5549155 100644 --- a/src/renderer/src/assets/iconfont/iconfont.json +++ b/src/renderer/src/assets/iconfont/iconfont.json @@ -5,6 +5,83 @@ "css_prefix_text": "icon-", "description": "", "glyphs": [ + { + "icon_id": "720967", + "name": "更多", + "font_class": "xiazai9", + "unicode": "e60b", + "unicode_decimal": 58891 + }, + { + "icon_id": "3596229", + "name": "互动", + "font_class": "hudong", + "unicode": "e60c", + "unicode_decimal": 58892 + }, + { + "icon_id": "5233263", + "name": "橡皮擦", + "font_class": "xiangpica", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "5905756", + "name": "更多", + "font_class": "gengduo", + "unicode": "e62d", + "unicode_decimal": 58925 + }, + { + "icon_id": "11107711", + "name": "聚焦", + "font_class": "jujiao", + "unicode": "e615", + "unicode_decimal": 58901 + }, + { + "icon_id": "36969022", + "name": "画笔", + "font_class": "huabi", + "unicode": "e795", + "unicode_decimal": 59285 + }, + { + "icon_id": "30792830", + "name": "28D鼠标箭头-copy", + "font_class": "mouse", + "unicode": "e603", + "unicode_decimal": 58883 + }, + { + "icon_id": "694110", + "name": "下一页", + "font_class": "xiayiye", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "694115", + "name": "上一页", + "font_class": "shangyiye", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "930693", + "name": "双页", + "font_class": "shuangye", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "2144697", + "name": "单页模板", + "font_class": "danyemoban", + "unicode": "e859", + "unicode_decimal": 59481 + }, { "icon_id": "17990800", "name": "铃铛", diff --git a/src/renderer/src/assets/iconfont/iconfont.svg b/src/renderer/src/assets/iconfont/iconfont.svg index 73737de..bdabebc 100644 --- a/src/renderer/src/assets/iconfont/iconfont.svg +++ b/src/renderer/src/assets/iconfont/iconfont.svg @@ -14,6 +14,28 @@ /> + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/renderer/src/assets/iconfont/iconfont.ttf b/src/renderer/src/assets/iconfont/iconfont.ttf index 8a4ce47f1a69e6440d0ecf48ae8f4777855a7038..6e8efeb843254ec0c4ee9a12e3ee44a87aeea69c 100644 GIT binary patch delta 3219 zcma)8eQZs#;3XQr4-hHr7dNMYW1{e{5Pev<7Xev}*mN+A1b(rCeBr)=6~x2mHKqeN#%> zNt^B8x%ZrV-o5ARp64?&PdtPt(q=0F9s_{E{S)Qs-nYNx0#JSlVEgIl!MTyp-S__( zKzj|K_{rFCd8p;ZH|{0fzY>aLB+&lCUZVN03CqVO4$r=BuU@15t`h(H!KwY_ZM(kq zZ+d=^__2xd>@1k+66KPY31wsr{bB*+xt z6kq`|3OEH_fXoBVB*;*Tg#?)l+$llE1E&ZJkQ>11OaYMxPA3Y8ByyiA2r)StgA(K~ z@UR4V4qO~apcnubh7c$k!22XbD*1K^iV*OA35pf)J0&P;!1qW{{DAM308<<~C_zC5 zUY4Nn0^cV=fd;-`fb7d{~0g0DMG(5(0cwf>HyVqANg20zNK5=>mQLz!Zcs z2mCGx$|3NB63|5BgaqXk_@o4782FR~R)XpY_<{sg7F;GB0je>$vO|KZ4X*5#5Or7k z^uT*);3JA(xm}qwm7~fjrm$&t)~4D{+2i&Fbx_MW4m;~*C7Ba$Gk{DP>)|ALf{6BPt^101h1`vD3dhVK^A7b4rT6?$bLfkOEf%yHEYvDv9 zY+4t^fC=kjV`n4%Fi{)vf)HC5LxvGrve;!9T}p1}<~v$*yVj4aR~~=d`q`Izi5pl~ z<5t8%3!!+NNbGi_U@SBi45QGvKvR4_7CIM<$AjnO(m9eDX2B36qA`G zX}$YLqi>tB#|Vdw6s}b2al9{W>8W&T;48_wR3wthr|=`Q0gqVkbYk(w8;Ni@u{Y7z zX9TQwKs27}CH53cQ0r)#(Cpxy`1Z zGe1nUv?K&Uekr~!wk8uJ5xWGYytI zx422Jm!e_PTd4XjdyfrJo~dt_R3EB(gq$mN6ie7_FScVg<-w)$ z7`}fQr_l3)d%3&ByFJ%zf%C4g=E-X+{`vB@diM)%cQ-G&#T&2s8?Kc0{PWRZZ#nrrqHhb?NrGla8oApgWX$C;DBeS4g&s){vca_}$7|u7GA4 zj!1wumYXZr*(UKabt6Ql zS9QO29`k;^viFtR2cMQBYco2H$^%5`ryLbbNIB}$D{FP1Pgj1g`@Wx<&Q52rzcx^$ z#C3j{onf=|N=ne*nGLXwj87-cluFj?)LDyN0Vcby$V(v^E@(-4Tg9Tdt^bQ>sm+yN z#Io6#av_%OZPF`0)SH@g#eM9I^*wJe=*3Avm(DlcTwveI#%??z9%oGzBa%!;l#ioL z$F>H&s?Z_wr(35U%@Ya{3Bu1`R)5rih4~$8`c2GX9#`N>YLM-?3Rfd7U?*s^2sFT>q(dqI1Wo>kLa&%~BN5<-lE151kGGciC7-|b|6tTif3lYT$G;yT} zC#k`W<7i||4|Nw)K?zDxhI05BzXFvAB7`ui5aErE(RDb=n=PC|J?!z}VESPz9t|p&khHcc3zeU!g`wP;nfS7KOSYJ$ce#3Xqt>WFWl? z(}G-6m>{H2VXBaRg-Jsaic?kg9^=o3@Nk;GR*igOx2F!5ry7Ck_ugf zj4JdKazmlBkedoUhKwn68`@=g`Q<09yY-BC+x!SkBQvR&nG-u9r L#SGRx-DT!4pD6EA diff --git a/src/renderer/src/assets/iconfont/iconfont.woff b/src/renderer/src/assets/iconfont/iconfont.woff index dd9fc0b5de2426eb6c8939c6a924e27ca2953d03..313a0ccafa55e10a1712f431893f4bbd085f96b0 100644 GIT binary patch delta 7974 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 O#IXtA3Y5}v!Yl(0-