From 68eee6caeec1753bfba8c937ab862ef05cb42bb8 Mon Sep 17 00:00:00 2001 From: litian <2804272236@qq.com> Date: 星期二, 14 五月 2024 16:36:13 +0800 Subject: [PATCH] biji --- vite.config.ts | 2 src/assets/main.css | 61 ++++---- src/assets/js/config.ts | 3 src/qiankunState/state.ts | 6 electron/main.ts | 2 src/child.ts | 1 src/views/home.vue | 316 +++++++++++++++++++++++++++++---------------- 7 files changed, 244 insertions(+), 147 deletions(-) diff --git a/electron/main.ts b/electron/main.ts index db462f2..e1a7f61 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -48,7 +48,7 @@ require('electron-reload')('../', { electron: require(elePath) }) - win.loadURL('http://192.168.3.203:8005') + win.loadURL('http://localhost:8005') win.webContents.openDevTools() } else { win.loadURL(path.join(__dirname, 'index.html')) diff --git a/src/assets/js/config.ts b/src/assets/js/config.ts index 3373752..314ab80 100644 --- a/src/assets/js/config.ts +++ b/src/assets/js/config.ts @@ -1,6 +1,7 @@ // 娴嬭瘯 export const ctx = "http://182.92.203.7:3001"; export const downloaderFileCtx = "http://182.92.203.7:3007/DigitalTextbookReader"; -export const ctxUrl = "http://182.92.203.7:3007"; //鏈嶅姟鍣ㄥ湴鍧� +export const ctxUrl = "http://182.92.203.7:3007/books/book/1"; //鏈嶅姟鍣ㄥ湴鍧� +export const resourceUrl = "http://182.92.203.7:3007/books/resource/1"; //璧勬簮鍦板潃 export const requestCtx = "https://jsek.bnuic.com"; //jsek diff --git a/src/assets/main.css b/src/assets/main.css index 492df2b..702bb60 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -38,34 +38,33 @@ } /* 璁剧疆 */ -.settingBox{ - .inline{ - display: flex; - justify-content: space-between; - } - .lineTypeBox{ - width:190px; - padding:0 !important; - .typeItem{ - line-height:16px; - } - } - .bgColor{ - display: flex; - width: 190px; - .flex1 { - flex: 1; - .scribeItem { - width: 30px; - height: 30px; - border-radius: 5px; - border: 1px solid; - display: flex; - justify-content: center; - align-items: center; - } - } - } +.settingBox .inline { + display: flex; + justify-content: space-between; +} +.settingBox.lineTypeBox { + width: 190px; + padding: 0 !important; + +} +.settingBox.lineTypeBox .typeItem { + line-height: 16px !important; +} +.settingBox .bgColor { + display: flex; + width: 190px; +} +.settingBox .bgColor .flex1 { + flex: 1; +} +.settingBox .bgColor .scribeItem { + width: 30px; + height: 30px; + border-radius: 5px; + border: 1px solid; + display: flex; + justify-content: center; + align-items: center; } /* 鐢荤瑪宸ュ叿 */ .popinnerBox .brush { @@ -194,9 +193,9 @@ flex: 1; text-align: center; } -.popinnerBox .cleanup .cleanupItem img{ - height:17px; - width:20px; +.popinnerBox .cleanup .cleanupItem img { + height: 17px; + width: 20px; } .el-input__inner { diff --git a/src/child.ts b/src/child.ts index e80be34..b6b8fb8 100644 --- a/src/child.ts +++ b/src/child.ts @@ -6,6 +6,7 @@ actions.onGlobalStateChange((state, prev) => { console.log("鐖跺眰鍙樺寲锛�",state, prev) + }) export const microApps = { diff --git a/src/qiankunState/state.ts b/src/qiankunState/state.ts index 6646904..8adcda0 100644 --- a/src/qiankunState/state.ts +++ b/src/qiankunState/state.ts @@ -1,6 +1,10 @@ const state = { state: 0, - windowSelection: null + bookName:"", + bookId:0, + windowSelection: null, + fontSizeNum: 16, + bgColor: '#FBF9F4' } diff --git a/src/views/home.vue b/src/views/home.vue index 44c6920..ee53874 100644 --- a/src/views/home.vue +++ b/src/views/home.vue @@ -285,7 +285,7 @@ <div class="">宸蹭笂璇撅細{{ headerData.classTime }}</div> </div> <div class="progress"> - <div class="bookName">瀛﹀墠鍎跨鍗敓涓庝繚鍋ワ紙绗笁鐗堬級</div> + <div class="bookName">{{bookName}}</div> <div>{{ headerData.process }}%</div> </div> <div class="rightBox"> @@ -302,7 +302,7 @@ <!-- 寰簲鐢ㄧ洅瀛� --> <div class="pageBox-content" @scroll="pageScroll"> <div class="content-box"> - <div id="container" @mousedown="handleMouseDown" @mousemove="handleMousemove"></div> + <div id="container" @mousedown="handleMouseDown" @mousemove="handleMousemove" ></div> <!-- 鐢荤瑪鐢诲竷 --> <div class="canvas-box" v-show="canvasShow"> <canvas id="canvasRef" :width="canvasWith" :height="canvasheight"></canvas> @@ -402,14 +402,34 @@ </div> </div> <template #reference> - <div :class="floatingToolData.activeToolData == item.name ? 'floatToolActive floatToolItem' : 'floatToolItem'"> - <img :src="floatingToolData.activeToolData == item.name ? item.activeIcon : item.icon" alt="" /> + <div + :class=" + floatingToolData.activeToolData == item.name + ? 'floatToolActive floatToolItem' + : 'floatToolItem' + " + > + <img + :src="floatingToolData.activeToolData == item.name ? item.activeIcon : item.icon" + alt="" + /> <div class="text">{{ item.name }}</div> </div> </template> </el-popover> - <div :class="floatingToolData.activeToolData == item.name ? 'floatToolActive floatToolItem' : 'floatToolItem'" v-else @click="floatItemHandle(item)"> - <img :src="floatingToolData.activeToolData == item.name ? item.activeIcon : item.icon" alt="" /> + <div + :class=" + floatingToolData.activeToolData == item.name + ? 'floatToolActive floatToolItem' + : 'floatToolItem' + " + v-else + @click="floatItemHandle(item)" + > + <img + :src="floatingToolData.activeToolData == item.name ? item.activeIcon : item.icon" + alt="" + /> <div class="text">{{ item.name }}</div> </div> </div> @@ -418,7 +438,7 @@ <div class="toolList"> <el-popover placement="top" width="250" trigger="click"> <div class="popinnerBox"> - <div class="brush" > + <div class="brush"> <div class="thickness"> <div :class="toolSelectData.thicknessActive == '1' ? 'small active' : 'small'" @@ -528,7 +548,7 @@ <template #reference> <div class="floatToolItem" @click="toolSelectHandle('wenzi')"> <div class="imgBox"> - <img :src="wenzi2" alt="" /> + <img :src="wenzi2" alt="" /> </div> <div class="text">鏂囧瓧</div> </div> @@ -574,7 +594,7 @@ </div> </div> <template #reference> - <div class="floatToolItem" @click="toolSelectHandle('tuxing')"> + <div class="floatToolItem" @click="toolSelectHandle('tuxing')"> <div class="imgBox"> <img :src="tuxing" alt="" /> </div> @@ -582,7 +602,7 @@ </div> </template> </el-popover> - <div class="floatToolItem" @click="toolSelectHandle('xiangpi')"> + <div class="floatToolItem" @click="toolSelectHandle('xiangpi')"> <div class="imgBox"> <img :src="clearPrevious" alt="" /> </div> @@ -761,8 +781,8 @@ </template> <script setup lang="ts"> -import { ref, reactive, watch, onMounted, inject } from 'vue' -import { ctxUrl } from '@/assets/js/config' +import { ref, reactive, watch, onMounted, onBeforeMount,inject } from 'vue' +import { ctxUrl,resourceUrl } from '@/assets/js/config' import { useRouter, useRoute } from 'vue-router' import useClipboard from 'vue-clipboard3' const { toClipboard } = useClipboard() @@ -876,15 +896,13 @@ ) let microApp = null // 寰簲鐢ㄥ疄渚� +const bookName = ref('') +const bookId = ref(1) onMounted(() => { // canvasWith.value = window.innerWidth - 540 // canvasheight.value = window.innerHeight - 110 - getNotesList() // 鑾峰彇楂樹寒 - getlineHeightList() //鑾峰彇楂樹寒 - getScribeList() //鑾峰彇鍒掔嚎 getCatalogueData() getResourceData() - getScreenshotList() // setTimeout(() => { // canvasWith.value = document.getElementById('container').offsetWidth // canvasheight.value = document.getElementById('container').offsetHeight @@ -903,17 +921,25 @@ // 鍔犺浇寰簲鐢� microApp = loadMicroApp(microApps.book1, { sandbox: { - strictStyleIsolation: true, - experimentalStyleIsolation: true + // strictStyleIsolation: true, + // experimentalStyleIsolation: true } }) - + window.qiankunActions.onGlobalStateChange((state, prev) => { + bookName.value = state.bookName + bookId.value = state.bookId + + }) + window.qiankunActions.setGlobalState({ state: 1, // 鍔犺浇瀛愬簲鐢� - windowSelection: (data) => { // 缁戝畾瀛愬簲鐢ㄩ�夋嫨鐩戝惉浜嬩欢 + windowSelection: (data) => { + // 缁戝畾瀛愬簲鐢ㄩ�夋嫨鐩戝惉浜嬩欢 console.log(data, '瀛愬簲鐢ㄩ�夋嫨') + getSelection(data) } }) + }) watch( @@ -926,11 +952,20 @@ } } ) +watch( + () => bookId.value, + (val) => { + getNotesList() // 鑾峰彇绗旇 + getlineHeightList() //鑾峰彇楂樹寒 + getScribeList() //鑾峰彇鍒掔嚎 + getScreenshotList() //鎴浘 + } +) //鑾峰彇鐩綍 const catalogueData = ref([]) const getCatalogueData = () => { axios - .get(ctxUrl + '/books/test/information.json') + .get(ctxUrl + '/information.json') .then(function (response) { var json = response.data // 澶勭悊鑾峰彇鍒扮殑json鏁版嵁 @@ -945,7 +980,6 @@ label: 'label' } const handleNodeClick = (data) => { - console.log(data.id, 12) document.getElementById(data.id).scrollIntoView() } @@ -983,7 +1017,7 @@ const testWord = ref('') //word閾炬帴 const getResourceData = () => { axios - .get(ctxUrl + '/books/test/resource.json') + .get(ctxUrl + '/resource.json') .then(function (response) { var json = response.data // 澶勭悊鑾峰彇鍒扮殑json鏁版嵁 @@ -1004,9 +1038,9 @@ resourVisble.value = true resourType.value = data.type if (data.type == 'video') { - testVideo.value = ctxUrl + '/books/test/resourceData/' + data.name + testVideo.value = resourceUrl + '/resourceData/' + data.name } else if (data.type == 'word') { - testWord.value = ctxUrl + '/books/test/resourceData/' + data.name + testWord.value = resourceUrl + '/resourceData/' + data.name } } @@ -1028,7 +1062,6 @@ resourceDataList.value = resourceData.value.attachmentList break } - console.log(resourceDataList.value) } const searchBtn = () => { if (searchShow.value) { @@ -1067,7 +1100,6 @@ // 閫変腑鑿滃崟 const activeMenu = ref(0) //璧勬簮绫诲瀷 - const resourceType = ref('default') // 鑿滃崟鐐瑰嚮 const menuItemClick = (index) => { @@ -1091,17 +1123,18 @@ } //鍒锋柊褰撳墠椤甸潰 const reload = () => { - if (microApp) { - microApp.unmount() // 鍗歌浇寰簲鐢� - microApp = loadMicroApp(microApps.book1, { - sandbox: { - strictStyleIsolation: true, - experimentalStyleIsolation: true - } - }) - } else { - location.reload() - } + location.reload() + // if (microApp) { + // microApp.unmount() // 鍗歌浇寰簲鐢� + // microApp = loadMicroApp(microApps.book1, { + // sandbox: { + // strictStyleIsolation: true, + // experimentalStyleIsolation: true + // } + // }) + // } else { + // location.reload() + // } } const selectResourceType = (type) => { @@ -1154,9 +1187,15 @@ }) const fontSizeSelect = (item) => { settingForm.fontSizeActive = item.key + window.qiankunActions.setGlobalState({ + fontSizeNum: settingForm.fontSizeActive, // 鍔犺浇瀛愬簲鐢� + }) } const bgColorSelect = (item) => { settingForm.bgColorActive = item.key + window.qiankunActions.setGlobalState({ + bgColor: settingForm.bgColorActive, // 鍔犺浇瀛愬簲鐢� + }) } //绗旇棰滆壊绛涢�� const searchClick = (item) => { @@ -1407,13 +1446,12 @@ } } const dragstart = (e) => { - console.log(e) floatingToolData.startclientx = e.clientX floatingToolData.startclienty = e.clientY } //鐢荤瑪鎿嶄綔鏍忎簨浠� const toolSelectData = reactive({ - activeTool:'', + activeTool: '', fontSizeActive: '16', thicknessActive: '3', //鐢荤瑪閫変腑绮楃粏 lineTypeActive: 'solid', //鐢荤瑪閫変腑绾跨被鍨� @@ -1423,9 +1461,13 @@ toolSelectData.activeTool = title switch (title) { case 'huabi': - init() + init() break case 'wenzi': + break + case 'tuichu': + canvasShow.value = false + floatingToolData.activeToolData = '' break } } @@ -1453,7 +1495,6 @@ canvas.value.freeDrawingBrush.color = toolSelectData.lineColorActive canvas.value.freeDrawingBrush.width = toolSelectData.thicknessActive } - //鏍囩鏄剧ず闅愯棌 const labelShow = (str) => {} @@ -1496,7 +1537,7 @@ setKeyRequests: [ { domain: 'screenshot', - key: '2358', + key: bookId.value, value: JSON.stringify(screenshotList.value) } ] @@ -1519,7 +1560,7 @@ method: 'post', data: { domain: 'screenshot', - keys: ['2358'] + keys: [bookId.value] } }).then((res) => { if (res && res.length > 0 && res[0].value) { @@ -1535,6 +1576,7 @@ //閫変腑鏂囧瓧宸ュ叿鏍� const selectText = ref('') //閫変腑鏂囧瓧 const selectNode = ref(null) +const selectPage = ref(1) const showToolBox = ref(false) const dialogToolData = reactive({ left: 500, @@ -1561,22 +1603,34 @@ } } -// const handleMouseUp = (e) => { -// if (move.value) { -// const txt = window.getSelection()?.toString() -// selectText.value = txt -// const node = window.getSelection() -// let html = node.anchorNode.parentNode.parentNode -// dialogToolData.chapter = html.firstChild.innerHTML -// if (txt) { -// showToolBox.value = true -// dialogToolData.top = e.y -// dialogToolData.left = e.x -// } -// isMouseDown.value = false -// } -// move.value = false -// } +const handleMouseUp = (e) => { + if (move.value) { + const txt = window.getSelection()?.toString() + selectText.value = txt + const node = window.getSelection() + let html = node.anchorNode.parentNode.parentNode + dialogToolData.chapter = html.firstChild.innerHTML + if (txt) { + showToolBox.value = true + dialogToolData.top = e.y + dialogToolData.left = e.x + } + isMouseDown.value = false + } + move.value = false +} + +const getSelection =(data)=>{ + if (data.txt) { + console.log(data.node,"data") + showToolBox.value = true + selectText.value = data.txt + selectNode.value = data.node.innerHTML + selectPage.value = data.page + dialogToolData.top = data.y + dialogToolData.left = data.x + } +} const pageScroll = (e) => { showToolBox.value = false @@ -1752,13 +1806,16 @@ const clickSelect = (item) => { colorActive.value = item.key if (toolActive.value == '楂樹寒') { - dialogToolData.lineHeight.push({ + let lineHeightData = { selectNode: selectNode.value, selectText: selectText.value, + selectPage: selectPage.value, color: colorActive.value, chapter: dialogToolData.chapter, createDate: new Date() - }) + } + dialogToolData.lineHeight.push(lineHeightData) + console.log(dialogToolData.lineHeight,"鍓峮ode") request({ url: '/identity/api/ApiAppUserSetKey', method: 'post', @@ -1766,7 +1823,7 @@ setKeyRequests: [ { domain: 'highLight', - key: '2358', + key: bookId.value, value: JSON.stringify(dialogToolData.lineHeight) } ] @@ -1782,6 +1839,7 @@ dialogToolData.scribeList.push({ selectNode: selectNode.value, selectText: selectText.value, + selectPage: selectPage.value, color: colorActive.value, chapter: dialogToolData.chapter, createDate: new Date() @@ -1793,7 +1851,7 @@ setKeyRequests: [ { domain: 'underline', - key: '2358', + key: bookId.value, value: JSON.stringify(dialogToolData.scribeList) } ] @@ -1812,12 +1870,18 @@ const obj = { desc: formData.desc } + if(!colorActive.value){ + ElMessage.error('璇烽�夋嫨绗旇棰滆壊!') + return + } if (!lock.value) { lock.value = true if (formData.desc.replace(/^\s*|\s*$/g, '')) { dialogToolData.notesList.push({ + selectNode: selectNode.value, selectText: selectText.value, color: colorActive.value, + selectPage: selectPage.value, chapter: dialogToolData.chapter, createDate: new Date(), note: formData.desc.replace(/^\s*|\s*$/g, '') @@ -1829,7 +1893,7 @@ setKeyRequests: [ { domain: 'notes', - key: '2358', + key: bookId.value, value: JSON.stringify(dialogToolData.notesList) } ] @@ -1859,13 +1923,13 @@ method: 'post', data: { domain: 'notes', - keys: ['2358'] + keys: [bookId.value] } }).then((res) => { if (res && res.length > 0 && res[0].value) { dialogToolData.notesList = JSON.parse(res[0].value) let list = JSON.parse(res[0].value) - let textDom1 = document.getElementById('container') + let textDom1 = document.querySelector('.temp-book') if (list.length > 0) { list.forEach((item, index) => { item.createDate = moment(item.createDate).format('YYYY-MM-DD') @@ -1887,15 +1951,19 @@ } } //椤甸潰娣诲姞绗旇 - let containerElement = document.createElement('span') - containerElement.style.textDecoration = 'underline' - containerElement.innerText = item.selectText let rReg1 = new RegExp(`${item.selectText}`, 'ig') let text1 = textDom1.innerHTML - let rHtml1 = '' - rHtml1 = text1.replace( + let nHtmlText1 = item.selectNode + + let nHtml1 = '' + nHtml1 = nHtmlText1.replace( rReg1, `<span style="padding-bottom:2px; border-bottom: 2px solid;border-bottom-color:${item.color}" class="underline">${item.selectText}</span><img src="${biji1}" style="cursor: pointer" onclick="notesVisbleShow('${item.selectText}')"/>` + ) + let rHtml1 = '' + rHtml1 = text1.replace( + nHtmlText1, + nHtml1 ) textDom1.innerHTML = rHtml1 }) @@ -1912,26 +1980,29 @@ method: 'post', data: { domain: 'underline', - keys: ['2358'] + keys: [bookId.value] } }).then((res) => { if (res && res.length > 0 && res[0].value) { dialogToolData.scribeList = JSON.parse(res[0].value) scribeData.scribeDataList = JSON.parse(res[0].value) - let textDom1 = document.getElementById('container') - console.log(scribeData.scribeDataList, '鍒掔嚎') + let textDom1 = document.querySelector('.temp-book') if (scribeData.scribeDataList.length > 0) { for (let i = 0; i < scribeData.scribeDataList.length; i++) { let item = scribeData.scribeDataList[i] - let containerElement = document.createElement('span') - containerElement.style.textDecoration = 'underline' - containerElement.innerText = item.selectText let rReg1 = new RegExp(`${item.selectText}`, 'ig') let text1 = textDom1.innerHTML + let nHtmlText1 = item.selectNode + + let nHtml1 = '' + nHtml1 = nHtmlText1.replace( + rReg1, + `<el-popover placement="bottom" :width="100" trigger="click"><div><el-button onclick="deleteScribeShow('${item.selectText}')">鍒犻櫎</el-button></div><template #reference><span style="text-decoration:underline;text-decoration-style: wavy;text-underline-thickness:2px;text-decoration-color:${item.color};cursor: pointer">${item.selectText}</span></template></el-popover>` + ) let rHtml1 = '' rHtml1 = text1.replace( - rReg1, - `<span style="text-decoration:underline;text-decoration-style: wavy;text-underline-thickness:2px;text-decoration-color:${item.color};cursor: pointer">${item.selectText}</span>` + nHtmlText1, + nHtml1 ) textDom1.innerHTML = rHtml1 } @@ -1947,26 +2018,31 @@ method: 'post', data: { domain: 'highLight', - keys: ['2358'] + keys: [bookId.value] } }).then((res) => { if (res && res.length > 0 && res[0].value) { dialogToolData.lineHeight = JSON.parse(res[0].value) scribeData.lineHeightList = JSON.parse(res[0].value) console.log(scribeData.lineHeightList, '楂樹寒') - let textDom = document.getElementById('container') + let textDom = document.querySelector('.temp-book') + console.log(textDom) if (scribeData.lineHeightList.length > 0) { for (let i = 0; i < scribeData.lineHeightList.length; i++) { let item = scribeData.lineHeightList[i] - let heightLightElement = document.createElement('i') - heightLightElement.style.backgroundColor = item.color - heightLightElement.innerText = item.selectText let rReg = new RegExp(`${item.selectText}`, 'ig') let text = textDom.innerHTML - let rHtml = '' - rHtml = text.replace( + let nHtmlText = item.selectNode + let nHtml = '' + nHtml = nHtmlText.replace( rReg, `<span style="background: ${item.color};padding: 2px;cursor: pointer">${item.selectText}</span>` + ) + // nHtmlText = nHtml + let rHtml = '' + rHtml = text.replace( + nHtmlText, + nHtml ) textDom.innerHTML = rHtml } @@ -1980,7 +2056,13 @@ addNoteVisble.value = true let notes = dialogToolData.notesList.find((item) => item.selectText == txt) formData.desc = notes.note + colorActive.value = notes.color + selectNode.value = notes.selectNode + selectText.value = notes.selectText + selectPage.value = notes.selectPage + dialogToolData.chapter = notes.chapter } + window.deleteScribeShow = function (txt) { console.log(txt, 2) let list = scribeData.scribeDataList.filter((item) => item.selectText != txt) @@ -1991,7 +2073,7 @@ setKeyRequests: [ { domain: 'underline', - key: '2358', + key: bookId.value, value: JSON.stringify(list) } ] @@ -2011,7 +2093,7 @@ setKeyRequests: [ { domain: 'highLight', - key: '2358', + key: bookId.value, value: JSON.stringify(list) } ] @@ -2030,7 +2112,9 @@ dialogToolData.notesList.findIndex((itemData) => itemData.selectText == item.selectText), 1 ) + selectNode.value = item.selectNode selectText.value = item.selectText + selectPage.value = item.selectPage colorActive.value = item.color dialogToolData.chapter = item.chapter formData.desc = item.note @@ -2049,7 +2133,7 @@ setKeyRequests: [ { domain: 'notes', - key: '2358', + key: bookId.value, value: JSON.stringify(list) } ] @@ -2058,6 +2142,15 @@ ElMessage({ message: '鍒犻櫎绗旇鎴愬姛!', type: 'success' + }) + console.log(document.querySelectorAll('.underline')) + let list = document.querySelectorAll('.underline') + list.forEach(itemNode =>{ + console.log(itemNode.nextSibling) + if(itemNode.innerText == item.selectText){ + itemNode.removeAttribute('style'); + itemNode.nextSibling?.remove() + } }) getNotesList() }) @@ -2745,45 +2838,44 @@ margin-right: 5px; } } - .floatToolItem:hover ,.floatToolActive{ + .floatToolItem:hover, + .floatToolActive { background-color: #fff; color: #0093ff; } } - - - .brushBox{ + .brushBox { position: fixed; left: 500px; - bottom:20px; + bottom: 20px; z-index: 99; border-radius: 5px; - background:#fff; + background: #fff; // padding: 10px; overflow: hidden; - border:1px solid #0093FF; - .toolList{ - display:flex; + border: 1px solid #0093ff; + .toolList { + display: flex; justify-content: center; align-items: center; .floatToolItem { - margin:10px; - width:48px; + margin: 10px; + width: 48px; border-radius: 5px; - text-align:center; - flex:1; - .imgBox{ - height:22px; - width:22px; - text-align:center; - margin:0 auto; - margin-bottom:5px; + text-align: center; + flex: 1; + .imgBox { + height: 22px; + width: 22px; + text-align: center; + margin: 0 auto; + margin-bottom: 5px; } } - .layOutTool{ - padding-left:15px; - border-left:1px solid #E0E0E0 + .layOutTool { + padding-left: 15px; + border-left: 1px solid #e0e0e0; } } } diff --git a/vite.config.ts b/vite.config.ts index e11d194..4c0d644 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -12,7 +12,7 @@ electron({ // 閰嶇疆 Electron 鍏ュ彛鏂囦欢 entry: 'electron-commonJS/main.js' - }), + }), ], resolve: { alias: { -- Gitblit v1.9.1