From 1d5d7f10cd90e7b1212a58234ef271584f0035c9 Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期三, 15 五月 2024 23:35:58 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/TextbookReader --- src/views/home.vue | 181 +++++++++++++++++++++++++------------------- 1 files changed, 102 insertions(+), 79 deletions(-) diff --git a/src/views/home.vue b/src/views/home.vue index a82403b..6ca5fd0 100644 --- a/src/views/home.vue +++ b/src/views/home.vue @@ -92,7 +92,12 @@ <div class="menuContent" v-if="menuState.open"> <div class="searchBox"> <div class="inputBox" v-if="activeMenu !== 2"> - <el-input class="custom-input" placeholder="璇疯緭鍏ュ唴瀹�" v-model="searchText" @keyup.enter="searchBook"> + <el-input + class="custom-input" + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="searchText" + @keyup.enter="searchBook" + > <template #prefix> <el-icon><Search /></el-icon> </template> @@ -121,7 +126,14 @@ v-if="catalogueData.length > 0" @node-click="handleNodeClick" :filter-node-method="filterNode" - /> + > + <template #default="{ node, data }"> + <div class="custom-tree-node"> + <div class="catalogueLabel">{{ node.label }}</div> + <span class="pageNum">{{ data.page }}</span> + </div> + </template> + </el-tree> <div v-if="catalogueData.length == 0"> <el-empty :image-size="60" description="鏆傛棤鏁版嵁" /> </div> @@ -146,7 +158,7 @@ </div> </div> <div class="list-box"> - <div v-if="scribeData.noteList.length > 0 && !scribeData.loading"> + <div v-if="scribeData.noteList.length > 0"> <div v-for="(item, index) in scribeData.noteList" :key="item.key" class="listItem"> <div class="textBox"> <div class="title"> @@ -155,8 +167,8 @@ <span>{{ item.createDate }}</span> </div> <div> - <img :src="bianji" @click="update(item, 'note')" /> - <img :src="shanchu" @click="deleteBtn(item, 'note')" /> + <img :src="bianji" @click="update(item)" /> + <img :src="shanchu" @click="deleteBtn(item)" /> </div> </div> <div @@ -181,11 +193,11 @@ {{ item.note }} </div> </div> - <div class="chapter">{{ item.selectText }}</div> + <div class="chapter">{{ item.txt }}</div> </div> </div> </div> - <div v-if="scribeData.noteList.length == 0 && !scribeData.loading"> + <div v-if="scribeData.noteList.length == 0"> <el-empty :image-size="60" description="鏆傛棤鏁版嵁" /> </div> </div> @@ -710,7 +722,7 @@ v-show="lineDelete.showLineDelete" :style="{ top: `${lineDelete.top}px`, left: `${lineDelete.left}px` }" > - <el-button @click="lineDeleteBtn">鍒犻櫎</el-button> + <el-button @click="delUserKey">鍒犻櫎</el-button> </div> <el-dialog title="璧勬簮" align-center v-model="resourVisble" width="845" class="resourDialog"> @@ -789,7 +801,7 @@ </el-dialog> <el-dialog title="鐧惧害鐧剧" align-center v-model="baiduVisible" width="60%" class="myDialogs"> <div class="wendabox"> - <iframe :src="'https://baike.baidu.com/item/' + selectText" frameborder="0"></iframe> + <iframe :src="'https://baike.baidu.com/item/' + dialogToolData.txt" frameborder="0"></iframe> </div> </el-dialog> <el-dialog title="AI鏅鸿兘闂瓟" align-center v-model="wendaVisible" width="26%" class="myDialogs"> @@ -800,7 +812,7 @@ <el-dialog title="璇嶅吀" align-center v-model="cidianVisible" width="60%" class="myDialogs"> <div class="wendabox"> <!-- <iframe src="https://www.vocabulary.com/" frameborder="0"></iframe> --> - <dictionary :searchCon="selectText" /> + <dictionary :searchCon="dialogToolData.txt" /> </div> </el-dialog> <el-dialog @@ -987,10 +999,11 @@ windowSelection: (data) => { // 缁戝畾瀛愬簲鐢ㄩ�夋嫨鐩戝惉浜嬩欢 console.log(data, '瀛愬簲鐢ㄩ�夋嫨') - if(data.txt){ + if (data.txt) { getSelection(data) - }else{ + } else { showToolBox.value = false + toolActive = '' } }, catalogChange: (data) => { @@ -1006,8 +1019,7 @@ // catalogName: "", // } console.log(data, '椤甸潰鍒囨崲锛氱洰鍓嶆樉绀洪〉闈㈠拰瀵瑰簲鐨勭珷鑺備俊鎭�') - }, - + } }) // 璋冪敤瀛愬眰鏂规硶 // if (window.qiankunState && window.qiankunState.aa) window.qiankunState.aa(1) @@ -1029,7 +1041,7 @@ // getNotesList() // 鑾峰彇绗旇 // getlineHeightList() //鑾峰彇楂樹寒 // getScribeList() //鑾峰彇鍒掔嚎 - // getScreenshotList() //鎴浘 + getScreenshotList() //鎴浘 } ) //鑾峰彇鐩綍 @@ -1049,7 +1061,8 @@ } const defaultProps = { children: 'children', - label: 'label' + label: 'label', + page: 'page', } const filterNode = (value, data) => { if (!value) return true @@ -1204,7 +1217,7 @@ case '0': break case '1': - getNotesList() + // getSignData() break case '2': break @@ -1294,7 +1307,7 @@ } else { menuState.notesColor = 'all' } - getNotesList() + // getNotesList() } const catalogTree = ref() const searchBook = async () => { @@ -1302,7 +1315,8 @@ if (catalogTree) catalogTree.value.filter(searchText.value) } if (activeMenu.value == 1) { - getNotesList() + // getNotesList() + getSignData() } if (activeMenu.value == 2) { let dataList = JSON.parse(JSON.stringify(resourceDataList.value)) @@ -1754,7 +1768,7 @@ { icon: fuzhi, activeIcon: fuzhi1, name: '澶嶅埗' }, { icon: AIyuedu, activeIcon: AIyuedu1, name: 'AI闃呰' }, { icon: cidian2, activeIcon: cidian1, name: '璇嶅吀' }, - { icon: baidu, activeIcon: cidian1, name: '鐧剧' } + { icon: baidu, activeIcon: baidu, name: '鐧剧' } // { icon: yuyinyuedu, activeIcon: yuyinyuedu1, name: '璇煶闃呰' } // { icon: cidian2, activeIcon: cidian1, name: '缈昏瘧' } ]) @@ -1903,6 +1917,7 @@ cidianVisible.value = true break case '鐧剧': + console.log('https://baike.baidu.com/item/' + dialogToolData.txt) baiduVisible.value = true break } @@ -1924,6 +1939,7 @@ case '楂樹寒': dom = 'highLightData-' + bookId.value data = dialogToolData.lineHeight[dialogToolData.chapter] + if (!data) data = [] data.push({ id: toolClass.uuid(8), txt: dialogToolData.txt, @@ -1935,6 +1951,7 @@ case '鍒掔嚎': dom = 'underline-' + bookId.value data = dialogToolData.scribeList[dialogToolData.chapter] + if (!data) data = [] data.push({ id: toolClass.uuid(8), txt: dialogToolData.txt, @@ -1955,6 +1972,7 @@ dom = 'notes-' + bookId.value data = dialogToolData.notesList.length != 0 ? dialogToolData.notesList[dialogToolData.chapter] : [] + if (!data) data = [] data.push({ id: toolClass.uuid(8), txt: dialogToolData.txt, @@ -1981,38 +1999,12 @@ } }).then((res) => { showToolBox.value = false + addNoteVisble.value = false colorActive.value = '' noteColorActive.value = '' toolActive.value = '' getSignData() }) -} - -const delUserKey = (type, ids) => { - switch (type) { - case 'Highlight': - dom = 'highLightData-' + bookId.value - data = dialogToolData.lineHeight - break - case 'Dashing': - dom = 'underline-' + bookId.value - data = dialogToolData.scribeList - break - } - data = data.filter((item) => ids.indexOf(item.id) == -1) - request({ - url: '/identity/api/ApiAppUserSetKey', - method: 'post', - data: { - setKeyRequests: [ - { - domain: dom, - key: '', - value: JSON.stringify(data) - } - ] - } - }).then((res) => {}) } const getSignData = () => { @@ -2075,7 +2067,9 @@ const item = res[i] const data = JSON.parse(item.value) // 鍌ㄥ�� + scribeData.noteList = data dialogToolData.notesList[item.key] = data + console.log(dialogToolData.notesList, 'notesList') // 娓叉煋 for (let j = 0; j < data.length; j++) { const citem = data[j] @@ -2093,17 +2087,31 @@ top: 0, left: 0, deleteType: '', - deleteTxt: '' + id: '' }) // 鍒掔嚎銆佺瑪璁般�侀珮浜偣鍑诲洖璋� window.signClick = (type, id) => { console.log('signClick鐐瑰嚮浜嬩欢鍥炶皟鐨勫疄渚�', type, id) + // if (window.qiankunState && window.qiankunState.delSign) window.qiankunState.delSign({ids:[id]}) + if (type == 'Note') { + let data = dialogToolData.notesList.filter((item) => id.indexOf(item.id) == -1) + console.log(data) + formData.desc = notes.note + noteColorActive.value = notes.color + addNoteVisble.value = true + } else { + lineDelete.showLineDelete = true + lineDelete.deleteType = type + lineDelete.id = id + lineDelete.top = 500 + lineDelete.left = 500 + } } window.notesVisbleShow = function (txt) { addNoteVisble.value = true - let notes = dialogToolData.notesList.find((item) => item.selectText == txt) + let notes = dialogToolData.notesList.find((item) => item.id == id) formData.desc = notes.note colorActive.value = notes.color selectNode.value = notes.selectNode @@ -2111,23 +2119,42 @@ selectPage.value = notes.selectPage dialogToolData.chapter = notes.chapter } - -window.deleteScribeShow = function (txt) { - let lines = scribeData.scribeDataList.find((item) => item.selectText == txt) - lineDelete.deleteType = 'underline' - lineDelete.deleteTxt = txt - lineDelete.top = event.screenY - lineDelete.left = event.screenX - lineDelete.showLineDelete = true -} - -window.deletelineHeightShow = function (txt) { - let lines = scribeData.lineHeightList.find((item) => item.selectText == txt) - lineDelete.deleteType = 'highLight' - lineDelete.deleteTxt = txt - lineDelete.top = event.screenY - lineDelete.left = event.screenX - lineDelete.showLineDelete = true +const delUserKey = () => { + let type = lineDelete.deleteType + let ids = lineDelete.id + let dom = '' + let data = null + switch (type) { + case 'Highlight': + dom = 'highLightData-' + bookId.value + data = dialogToolData.lineHeight + break + case 'Dashing': + dom = 'underline-' + bookId.value + data = dialogToolData.scribeList + break + } + data = data.filter((item) => ids.indexOf(item.id) == -1) + console.log(data[0]) + let list = data[0].filter((item) => item.id != ids) + console.log(list) + request({ + url: '/identity/api/ApiAppUserSetKey', + method: 'post', + data: { + setKeyRequests: [ + { + domain: dom, + key: dialogToolData.chapter, + value: JSON.stringify(list) + } + ] + } + }).then((res) => { + if (window.qiankunState && window.qiankunState.delSign) + window.qiankunState.delSign({ ids: [ids] }) + getSignData() + }) } const lineDeleteBtn = () => { @@ -2208,10 +2235,10 @@ } //鍒犻櫎 -const deleteBtn = (item, type) => { +const deleteBtn = (item) => { if (type == 'note') { // 绉婚櫎 - let list = scribeData.noteList.filter((itemData) => itemData.selectText !== item.selectText) + let list = dialogToolData.noteList.filter((itemData) => itemData.id !== item.id) request({ url: '/identity/api/ApiAppUserSetKey', method: 'post', @@ -2229,15 +2256,8 @@ message: '鍒犻櫎绗旇鎴愬姛!', type: 'success' }) - console.log(document.querySelectorAll('.notesline')) - let list = document.querySelectorAll('.notesline') - list.forEach((itemNode) => { - if (itemNode.innerText == item.selectText) { - console.log(itemNode.nextSibling) - itemNode.removeAttribute('style') - itemNode.nextSibling?.remove() - } - }) + if (window.qiankunState && window.qiankunState.delSign) + window.qiankunState.delSign({ ids: [id] }) getNotesList() }) } @@ -2401,7 +2421,7 @@ align-items: center; } .resourceBox { - padding: 15px 0; + padding: 10px 0; margin: 0 20px; border-bottom: 1px solid rgba(204, 204, 204, 0.32); .classification { @@ -2418,7 +2438,8 @@ } .count { width: 35px; - margin: 5px auto; + margin: 0 auto; + margin-top:5px; border-radius: 10px; background: #fff; color: #c8c8c8; @@ -2448,6 +2469,7 @@ } .inputBox { margin-top: 10px; + width:100% !important; } } .resourceTab { @@ -2481,6 +2503,7 @@ } } .inputBox { + width:85%; .custom-input { border: 1px solid #0093ff !important; border-radius: 50px; -- Gitblit v1.9.1