From b276c6185137d41c0f7427a3cd663703c8420cf7 Mon Sep 17 00:00:00 2001 From: zyronon Date: Sat, 16 Aug 2025 21:17:49 +0800 Subject: [PATCH] fix:remote ElPopover --- src/main.ts | 1 - .../pc/article/components/EditArticle.vue | 68 +++++++++---------- src/pages/pc/article/components/EditBook.vue | 3 +- src/pages/pc/components/Tooltip.vue | 33 +++++---- src/pages/pc/components/WordItem.vue | 13 ++-- src/pages/pc/components/list/WordList.vue | 15 ++-- 6 files changed, 61 insertions(+), 72 deletions(-) diff --git a/src/main.ts b/src/main.ts index beef3920..99b79821 100644 --- a/src/main.ts +++ b/src/main.ts @@ -12,7 +12,6 @@ const pinia = createPinia() const app = createApp(App) app.use(VueVirtualScroller) -// app.use(ElementPlus) app.use(pinia) app.use(router) diff --git a/src/pages/pc/article/components/EditArticle.vue b/src/pages/pc/article/components/EditArticle.vue index a8c3e2bd..3d22da7e 100644 --- a/src/pages/pc/article/components/EditArticle.vue +++ b/src/pages/pc/article/components/EditArticle.vue @@ -9,7 +9,7 @@ import {genArticleSectionData, splitCNArticle2, splitEnArticle2, usePlaySentence import {_nextTick, _parseLRC, cloneDeep, last} from "@/utils"; import {watch} from "vue"; import Empty from "@/components/Empty.vue"; -import {ElInputNumber, ElOption, ElPopover, ElSelect} from "element-plus"; +import {ElInputNumber} from "element-plus"; import Toast from '@/pages/pc/components/base/toast/Toast.ts' import * as Comparison from "string-comparison" import BaseIcon from "@/components/BaseIcon.vue"; @@ -17,6 +17,7 @@ import Dialog from "@/pages/pc/components/dialog/Dialog.vue"; import {getDefaultArticle} from "@/types/func.ts"; import copy from "copy-to-clipboard"; import {Option, Select} from "@/pages/pc/components/base/select"; +import Tooltip from "@/pages/pc/components/Tooltip.vue"; interface IProps { article?: Article, @@ -293,25 +294,23 @@ function setStartTime(val: Sentence, i: number, j: number) { >
- -
    -
  1. 复制原文,然后分句
  2. -
  3. 点击 分句 按钮进行自动分句 手动编辑分句 -
  4. -
  5. 分句规则:一行一句,段落间空一行
  6. -
  7. 修改完成后点击 应用 按钮同步到左侧结果栏 -
  8. -
+ + -
+ 分句 应用
@@ -357,25 +356,24 @@ function setStartTime(val: Sentence, i: number, j: number) { {{ progress }}%
- -
    -
  1. 复制译文,如果没有请点击 翻译 按钮
  2. -
  3. 点击 分句 按钮进行自动分句 - 手动编辑分句 -
  4. -
  5. 分句规则:一行一句,段落间空一行
  6. -
  7. 修改完成后点击 应用 按钮同步到左侧结果栏 -
  8. -
+ + -
+ 分句 应用
diff --git a/src/pages/pc/article/components/EditBook.vue b/src/pages/pc/article/components/EditBook.vue index e2ad85b2..cbc0e31f 100644 --- a/src/pages/pc/article/components/EditBook.vue +++ b/src/pages/pc/article/components/EditBook.vue @@ -3,7 +3,7 @@ import {Dict, DictId, DictType} from "@/types/types.ts"; import {cloneDeep} from "@/utils"; -import {ElForm, ElFormItem, ElInput, FormInstance, FormRules} from "element-plus"; +import {ElForm, ElFormItem, FormInstance, FormRules} from "element-plus"; import Toast from '@/pages/pc/components/base/toast/Toast.ts' import {onMounted, reactive} from "vue"; import {useRuntimeStore} from "@/stores/runtime.ts"; @@ -11,7 +11,6 @@ import {useBaseStore} from "@/stores/base.ts"; import BaseButton from "@/components/BaseButton.vue"; import {getDefaultDict} from "@/types/func.ts"; import {Option, Select} from "@/pages/pc/components/base/select"; -import Input from "@/pages/pc/components/Input.vue"; import BaseInput from "@/pages/pc/components/base/BaseInput.vue"; const props = defineProps<{ diff --git a/src/pages/pc/components/Tooltip.vue b/src/pages/pc/components/Tooltip.vue index 7626ffaf..1833ba29 100644 --- a/src/pages/pc/components/Tooltip.vue +++ b/src/pages/pc/components/Tooltip.vue @@ -29,7 +29,7 @@ export default { methods: { showPop(e) { if (this.disabled) return - if (!this.title) return + if (!this.title && !this.$slots?.reference) return; e.stopPropagation() let rect = e.target.getBoundingClientRect() this.show = true @@ -49,21 +49,20 @@ export default { }, }, render() { - if (!this.title) return this.$slots.default() - let Vnode = this.$slots.default()[0] + let DefaultNode = this.$slots.default()[0] + let ReferenceNode = this.$slots?.reference?.()?.[0] return <> - - - { - this.show && ( -
- {this.title} -
- ) - } -
-
- + + {this.show && ( +
+ {ReferenceNode ? : this.title} +
+ )} +
+ + + this.show = false} onmouseenter={(e) => this.showPop(e)} onmouseleave={() => this.show = false} @@ -75,13 +74,13 @@ export default { diff --git a/src/pages/pc/components/WordItem.vue b/src/pages/pc/components/WordItem.vue index d4c01c91..9834c028 100644 --- a/src/pages/pc/components/WordItem.vue +++ b/src/pages/pc/components/WordItem.vue @@ -4,6 +4,7 @@ import {Word} from "@/types/types.ts"; import VolumeIcon from "@/components/icon/VolumeIcon.vue"; import {usePlayWordAudio} from "@/hooks/sound.ts"; import {ElPopover} from 'element-plus' +import Tooltip from "@/pages/pc/components/Tooltip.vue"; const props = withDefaults(defineProps<{ item: Word, @@ -36,16 +37,12 @@ const playWordAudio = usePlayWordAudio()
- - - + {{ v.pos + ' ' + v.cn.slice(0, 30) + '...' }} + {{ v.pos + ' ' + v.cn }}
diff --git a/src/pages/pc/components/list/WordList.vue b/src/pages/pc/components/list/WordList.vue index 3d43e57b..f8bc3d4a 100644 --- a/src/pages/pc/components/list/WordList.vue +++ b/src/pages/pc/components/list/WordList.vue @@ -4,7 +4,7 @@ import {Word} from "@/types/types.ts"; import VolumeIcon from "@/components/icon/VolumeIcon.vue"; import BaseList from "@/pages/pc/components/list/BaseList.vue"; import {usePlayWordAudio} from "@/hooks/sound.ts"; -import {ElPopover} from 'element-plus' +import Tooltip from "@/pages/pc/components/Tooltip.vue"; const props = withDefaults(defineProps<{ list: Word[], @@ -54,16 +54,13 @@ defineExpose({scrollToBottom, scrollToItem})
- - - + {{ v.pos + ' ' + v.cn.slice(0, 30) + '...' }} + {{ v.pos + ' ' + v.cn }}