From 7b8f96254b90c8d9cb01092e8d6ab7263972fee1 Mon Sep 17 00:00:00 2001 From: litian <2804272236@qq.com> Date: 星期三, 15 五月 2024 17:19:24 +0800 Subject: [PATCH] hebing --- src/qiankunState/state.ts | 3 src/child.ts | 4 src/views/home.vue | 217 +++++++++++++++++++++++++++++-------------- src/assets/js/toolClass.ts | 33 ++++++ 4 files changed, 181 insertions(+), 76 deletions(-) diff --git a/src/assets/js/toolClass.ts b/src/assets/js/toolClass.ts index 7ffae70..ab8fc24 100644 --- a/src/assets/js/toolClass.ts +++ b/src/assets/js/toolClass.ts @@ -12,6 +12,37 @@ return fileSizeMsg } +export function uuid(len = 32, radix = 16) { + const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); + let uuid = [], + i; + radix = radix || chars.length; + + if (len) { + // Compact form + for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]; + } else { + // rfc4122, version 4 form + let r; + + // rfc4122 requires these characters + uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; + uuid[14] = '4'; + + // Fill in random data. At i==19 set the high bits of clock sequence as + // per rfc4122, sec. 4.1.5 + for (i = 0; i < 36; i++) { + if (!uuid[i]) { + r = 0 | (Math.random() * 16); + uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r]; + } + } + } + + return uuid.join(''); +} + export default { - getFileSize + getFileSize, + uuid } diff --git a/src/child.ts b/src/child.ts index 38b4ec5..6badc7f 100644 --- a/src/child.ts +++ b/src/child.ts @@ -14,14 +14,14 @@ // - 蹇呴�夛紝寰簲鐢ㄧ殑鍚嶇О锛屽井搴旂敤涔嬮棿蹇呴』纭繚鍞竴 name: 'app-content', // - 蹇呴�夛紝寰簲鐢ㄧ殑鍏ュ彛 - entry: '//182.92.203.7:3007/books/book/1/?t=14', + entry: '//182.92.203.7:3007/books/book/1/', // entry: '//192.168.3.203:8080', // - 蹇呴�夛紝寰簲鐢ㄧ殑瀹瑰櫒鑺傜偣鐨勯�夋嫨鍣ㄦ垨鑰� Element 瀹炰緥 container: '#container', // - 蹇呴�夛紝寰簲鐢ㄧ殑婵�娲昏鍒� //鏀寔鐩存帴閰嶇疆瀛楃涓叉垨瀛楃涓叉暟缁勶紝濡� activeRule: '/app1' 鎴� activeRule: ['/app1', '/app2']锛屽綋閰嶇疆涓哄瓧绗︿覆鏃朵細鐩存帴璺� url 涓殑璺緞閮ㄥ垎鍋氬墠缂�鍖归厤锛屽尮閰嶆垚鍔熻〃鏄庡綋鍓嶅簲鐢ㄤ細琚縺娲汇�� //鏀寔閰嶇疆涓�涓� active function 鍑芥暟鎴栦竴缁� active function銆傚嚱鏁颁細浼犲叆褰撳墠 location 浣滀负鍙傛暟锛屽嚱鏁拌繑鍥� true 鏃惰〃鏄庡綋鍓嶅井搴旂敤浼氳婵�娲汇�傚 location => location.pathname.startsWith('/app1')銆� - activeRule: '/home', //鍖归厤鎵�鏈変互/subPath寮�澶寸殑涓哄瓙搴旂敤 + activeRule: '/home' //鍖归厤鎵�鏈変互/subPath寮�澶寸殑涓哄瓙搴旂敤 //loader - (loading: boolean) => void - 鍙�夛紝loading 鐘舵�佸彂鐢熷彉鍖栨椂浼氳皟鐢ㄧ殑鏂规硶銆� } } diff --git a/src/qiankunState/state.ts b/src/qiankunState/state.ts index 0297e0d..9de3155 100644 --- a/src/qiankunState/state.ts +++ b/src/qiankunState/state.ts @@ -4,7 +4,8 @@ bookId:0, windowSelection: null, showCatalogList:[], - gotoPage:null + gotoPage:null, + renderSign: null } diff --git a/src/views/home.vue b/src/views/home.vue index 7cf65a4..6d0bb4a 100644 --- a/src/views/home.vue +++ b/src/views/home.vue @@ -321,7 +321,9 @@ <div><img :src="zoomOut" @click="changePageSize('reduce')" /></div> </div> <div class="brushImgBox"> - <div><img :src="huabi2" class="brushImg" />鐢荤瑪</div> + <div @click="jumpContent('note' + index)"> + <img :src="huabi2" class="brushImg" />鐢荤瑪 + </div> </div> </div> </div> @@ -827,6 +829,7 @@ import useClipboard from 'vue-clipboard3' const { toClipboard } = useClipboard() const request = inject('request') +const toolClass = inject('toolClass') const qiankunActions = inject('qiankunActions') //鑾峰彇璺敱鍣� let router = useRouter() @@ -938,6 +941,7 @@ let microApp = null // 寰簲鐢ㄥ疄渚� const bookName = ref('') const bookId = ref(1) +const activeCatalog = ref() onMounted(() => { getCatalogueData() getResourceData() @@ -959,9 +963,10 @@ // 鍔犺浇寰簲鐢� microApp = loadMicroApp(microApps.book1, { sandbox: { - // strictStyleIsolation: true, + strictStyleIsolation: true // experimentalStyleIsolation: true - } + }, + singular: true }) window.qiankunActions.onGlobalStateChange((state, prev) => { @@ -981,6 +986,8 @@ getSelection(data) }, catalogChange: (data) => { + activeCatalog.value = data.showCatalogList + getSignData() console.log(data, '绔犺妭鍒囨崲锛氱洰鍓嶆樉绀虹殑涓変釜绔犺妭') }, pageChange: (data) => { @@ -1011,10 +1018,10 @@ watch( () => bookId.value, (val) => { - getNotesList() // 鑾峰彇绗旇 - getlineHeightList() //鑾峰彇楂樹寒 - getScribeList() //鑾峰彇鍒掔嚎 - getScreenshotList() //鎴浘 + // getNotesList() // 鑾峰彇绗旇 + // getlineHeightList() //鑾峰彇楂樹寒 + // getScribeList() //鑾峰彇鍒掔嚎 + // getScreenshotList() //鎴浘 } ) //鑾峰彇鐩綍 @@ -1693,14 +1700,13 @@ //閫変腑鏂囧瓧宸ュ叿鏍� const selectText = ref('') //閫変腑鏂囧瓧 -const selectNode = ref(null) -const selectPage = ref(1) const showToolBox = ref(false) const dialogToolData = reactive({ left: 500, top: 300, + txt: '', + page: '', chapter: '', //閫変腑鏂囧瓧鎵�鍦ㄧ珷鑺� - parentNode: null, lineHeight: [], //楂樹寒 scribeList: [], //鍒掔嚎 notesList: [] //绗旇 @@ -1709,11 +1715,12 @@ ///鍐呭閫変腑 const getSelection = (data) => { if (data.txt) { - console.log(data.node, 'data') + dialogToolData.txt = data.txt + dialogToolData.page = data.page + dialogToolData.chapter = data.chapterNum + dialogToolData.left = data.x + dialogToolData.top = data.y showToolBox.value = true - selectText.value = data.txt - selectNode.value = data.node.innerHTML - selectPage.value = data.page } } @@ -1897,67 +1904,133 @@ const clickSelect = (item) => { colorActive.value = item.key - if (toolActive.value == '楂樹寒') { - 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', - data: { - setKeyRequests: [ - { - domain: 'highLight', - key: bookId.value, - value: JSON.stringify(dialogToolData.lineHeight) - } - ] - } - }).then((res) => { - showToolBox.value = false - colorActive.value = '' - toolActive.value = '' - getlineHeightList() - }) - } - if (toolActive.value == '鍒掔嚎') { - dialogToolData.scribeList.push({ - selectNode: selectNode.value, - selectText: selectText.value, - selectPage: selectPage.value, - color: colorActive.value, - chapter: dialogToolData.chapter, - createDate: new Date() - }) - request({ - url: '/identity/api/ApiAppUserSetKey', - method: 'post', - data: { - setKeyRequests: [ - { - domain: 'underline', - key: bookId.value, - value: JSON.stringify(dialogToolData.scribeList) - } - ] - } - }).then((res) => { - colorActive.value = '' - showToolBox.value = false - toolActive.value = '' - getScribeList() - }) - } + addUserKey() } +const addUserKey = () => { + let dom = '' + let data = null + switch (toolActive.value) { + case '楂樹寒': + dom = 'highLightData-' + bookId.value + data = dialogToolData.lineHeight[dialogToolData.chapter] + data.push({ + id: toolClass.uuid(8), + txt: dialogToolData.txt, + page: dialogToolData.page, + type: 'Highlight', + color: colorActive.value + }) + break + case '鍒掔嚎': + dom = 'underline-' + bookId.value + data = dialogToolData.scribeList[dialogToolData.chapter] + data.push({ + id: toolClass.uuid(8), + txt: dialogToolData.txt, + page: dialogToolData.page, + type: 'Dashing', + color: colorActive.value + }) + break + } + request({ + url: '/identity/api/ApiAppUserSetKey', + method: 'post', + data: { + setKeyRequests: [ + { + domain: dom, + key: dialogToolData.chapter, + value: JSON.stringify(data) + } + ] + } + }).then((res) => { + showToolBox.value = false + colorActive.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 lock = ref(false) + +const getSignData = () => { + request({ + url: '/identity/api/ApiGetAppUserKey', + method: 'post', + data: { + domain: 'highLightData-' + bookId.value, + keys: activeCatalog.value.map((item) => item + '') + } + }).then((res) => { + if (res && res.length > 0) { + for (let i = 0; i < res.length; i++) { + const item = res[i] + const data = JSON.parse(item.value) + // 鍌ㄥ�� + dialogToolData.lineHeight[item.key] = data + // 娓叉煋 + for (let j = 0; j < data.length; j++) { + const citem = data[j] + if (window.qiankunState && window.qiankunState.renderSign) + window.qiankunState.renderSign(citem.type, citem) + } + } + } + }) + request({ + url: '/identity/api/ApiGetAppUserKey', + method: 'post', + data: { + domain: 'underline-' + bookId.value, + keys: activeCatalog.value.map((item) => item + '') + } + }).then((res) => { + if (res && res.length > 0) { + for (let i = 0; i < res.length; i++) { + const item = res[i] + const data = JSON.parse(item.value) + // 鍌ㄥ�� + dialogToolData.scribeList[item.key] = data + // 娓叉煋 + for (let j = 0; j < data.length; j++) { + const citem = data[j] + if (window.qiankunState && window.qiankunState.renderSign) + window.qiankunState.renderSign(citem.type, citem) + } + } + } + }) +} + const addNote = () => { const obj = { desc: formData.desc -- Gitblit v1.9.1