From 408ce401cadce66e4de748dec48daf5e8af00477 Mon Sep 17 00:00:00 2001 From: YM <479443481@qq.com> Date: 星期三, 15 五月 2024 23:35:52 +0800 Subject: [PATCH] 1 --- src/views/home.vue | 212 +++++++++++++++++++++++++++++----------------------- 1 files changed, 119 insertions(+), 93 deletions(-) diff --git a/src/views/home.vue b/src/views/home.vue index 2e5faef..99ecf54 100644 --- a/src/views/home.vue +++ b/src/views/home.vue @@ -92,9 +92,14 @@ <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"> + <el-input + class="custom-input" + placeholder="璇疯緭鍏ュ唴瀹�" + v-model="searchText" + @keyup.enter="searchBook" + > <template #prefix> - <el-icon @click="searchBook"><Search /></el-icon> + <el-icon><Search /></el-icon> </template> </el-input> </div> @@ -113,12 +118,14 @@ <!-- 鐩綍 --> <div class="menuList" v-if="activeMenu == 0"> <el-tree + ref="catalogTree" style="max-width: 600px" default-expand-all="true" :data="catalogueData" :props="defaultProps" v-if="catalogueData.length > 0" @node-click="handleNodeClick" + :filter-node-method="filterNode" /> <div v-if="catalogueData.length == 0"> <el-empty :image-size="60" description="鏆傛棤鏁版嵁" /> @@ -144,7 +151,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"> @@ -153,8 +160,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 @@ -179,11 +186,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> @@ -708,7 +715,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"> @@ -779,7 +786,9 @@ <template #footer> <span class="dialog-footer"> <el-button @click="screenshotClose">鍙� 娑�</el-button> - <el-button type="primary" @click="addScreenshot" :loading="screenshotLoading">纭� 瀹�</el-button> + <el-button type="primary" @click="addScreenshot" :loading="screenshotLoading" + >纭� 瀹�</el-button + > </span> </template> </el-dialog> @@ -983,7 +992,11 @@ windowSelection: (data) => { // 缁戝畾瀛愬簲鐢ㄩ�夋嫨鐩戝惉浜嬩欢 console.log(data, '瀛愬簲鐢ㄩ�夋嫨') - getSelection(data) + if (data.txt) { + getSelection(data) + } else { + showToolBox.value = false + } }, catalogChange: (data) => { activeCatalog.value = data.showCatalogList @@ -1000,7 +1013,6 @@ console.log(data, '椤甸潰鍒囨崲锛氱洰鍓嶆樉绀洪〉闈㈠拰瀵瑰簲鐨勭珷鑺備俊鎭�') } }) - // 璋冪敤瀛愬眰鏂规硶 // if (window.qiankunState && window.qiankunState.aa) window.qiankunState.aa(1) }) @@ -1030,7 +1042,7 @@ axios .get(resourceUrl + '/1/information.json?t=123') .then(function (response) { - console.log(response.data); + console.log(response.data) var json = response.data // 澶勭悊鑾峰彇鍒扮殑json鏁版嵁 catalogueData.value = json.data @@ -1043,8 +1055,15 @@ children: 'children', label: 'label' } +const filterNode = (value, data) => { + if (!value) return true + return data.label.indexOf(value) !== -1 +} + const handleNodeClick = (data) => { - document.getElementById(data.id).scrollIntoView() + console.log(data) + if (window.qiankunState && window.qiankunState.gotoPage) + window.qiankunState.gotoPage(data.chapter, data.start) } //鑾峰彇璧勬簮 @@ -1189,7 +1208,7 @@ case '0': break case '1': - getNotesList() + // getSignData() break case '2': break @@ -1279,11 +1298,16 @@ } else { menuState.notesColor = 'all' } - getNotesList() + // getNotesList() } +const catalogTree = ref() const searchBook = async () => { + if (activeMenu.value == 0) { + 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)) @@ -1592,10 +1616,7 @@ const labelShow = (str) => {} //鏍囩 -const reMark =() => { - - -} +const reMark = () => {} //鎴浘 //鎴浘浜嬩欢 function jitT() { @@ -1637,16 +1658,18 @@ } ] } - }).then((res) => { - screenshotLoading.value = false - getScreenshotList() - nameData.value = '' - urlData.value = '' - floatingToolData.activeToolData = '' - screenshotVisble.value = false - }).catch(function (error) { - screenshotLoading.value = false }) + .then((res) => { + screenshotLoading.value = false + getScreenshotList() + nameData.value = '' + urlData.value = '' + floatingToolData.activeToolData = '' + screenshotVisble.value = false + }) + .catch(function (error) { + screenshotLoading.value = false + }) } else { ElMessage.error('鎴浘鍚嶇О涓嶈兘涓虹┖!') } @@ -1906,6 +1929,7 @@ case '楂樹寒': dom = 'highLightData-' + bookId.value data = dialogToolData.lineHeight[dialogToolData.chapter] + if (!data) data = [] data.push({ id: toolClass.uuid(8), txt: dialogToolData.txt, @@ -1917,6 +1941,7 @@ case '鍒掔嚎': dom = 'underline-' + bookId.value data = dialogToolData.scribeList[dialogToolData.chapter] + if (!data) data = [] data.push({ id: toolClass.uuid(8), txt: dialogToolData.txt, @@ -1928,14 +1953,16 @@ case '绗旇': if (!formData.desc.replace(/^\s*|\s*$/g, '')) { ElMessage.error('绗旇鍐呭涓嶈兘涓虹┖!') - return + return } if (!noteColorActive.value) { ElMessage.error('璇烽�夋嫨绗旇棰滆壊!') return } dom = 'notes-' + bookId.value - data = dialogToolData.notesList.length != 0 ? dialogToolData.notesList[dialogToolData.chapter] : [] + data = + dialogToolData.notesList.length != 0 ? dialogToolData.notesList[dialogToolData.chapter] : [] + if (!data) data = [] data.push({ id: toolClass.uuid(8), txt: dialogToolData.txt, @@ -1945,7 +1972,7 @@ createDate: new Date(), note: formData.desc.replace(/^\s*|\s*$/g, '') }) - + break } request({ @@ -1962,38 +1989,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 = () => { @@ -2047,7 +2048,7 @@ url: '/identity/api/ApiGetAppUserKey', method: 'post', data: { - domain: 'note-' + bookId.value, + domain: 'notes-' + bookId.value, keys: activeCatalog.value.map((item) => item + '') } }).then((res) => { @@ -2056,7 +2057,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] @@ -2074,17 +2077,29 @@ top: 0, left: 0, deleteType: '', - deleteTxt: '' + id: '' }) // 鍒掔嚎銆佺瑪璁般�侀珮浜偣鍑诲洖璋� -window.signClick = (type, id)=>{ - console.log("signClick鐐瑰嚮浜嬩欢鍥炶皟鐨勫疄渚�", type, 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 + } } 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 @@ -2092,23 +2107,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 = () => { @@ -2189,10 +2223,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', @@ -2210,20 +2244,12 @@ 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() }) } } - //鍐呭鍖哄煙椤堕儴鏄剧ず -- Gitblit v1.9.1