From a8211c6a4150a3ddcfa716c6b4d8c0b4bc395469 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=94=E8=B7=91=E7=9A=84=E9=9D=A2=E6=9D=A1?= <1262327911@qq.com> Date: Wed, 28 Sep 2022 21:31:41 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=B1=82=E7=BA=A7?= =?UTF-8?q?=E7=9A=84=20UI=20=E6=A0=B7=E5=BC=8F,=E6=94=AF=E6=8C=81=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E5=9B=BE=E6=A0=87=E5=AE=8C=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/LayersGroupListItem/index.vue | 68 ++++++++++------- .../components/LayersListItem/index.vue | 62 ++++++++------- .../components/LayersStatus/index.ts | 3 + .../components/LayersStatus/index.vue | 75 +++++++++++++++++++ src/views/chart/ContentLayers/enums.ts | 1 - src/views/chart/ContentLayers/index.d.ts | 4 + src/views/chart/ContentLayers/index.vue | 4 +- 7 files changed, 158 insertions(+), 59 deletions(-) create mode 100644 src/views/chart/ContentLayers/components/LayersStatus/index.ts create mode 100644 src/views/chart/ContentLayers/components/LayersStatus/index.vue create mode 100644 src/views/chart/ContentLayers/index.d.ts diff --git a/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue b/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue index c971276b..8fb6abb1 100644 --- a/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue +++ b/src/views/chart/ContentLayers/components/LayersGroupListItem/index.vue @@ -2,7 +2,7 @@
- - +
@@ -34,6 +33,7 @@ :key="element.id" :componentData="element" :layer-mode="layerMode" + :isGroup="true" @mousedown="mousedownHandle($event, element, componentGroupData.id)" @mouseenter="mouseenterHandle(element)" @mouseleave="mouseleaveHandle(element)" @@ -53,10 +53,9 @@ import { useContextMenu, divider } from '@/views/chart/hooks/useContextMenu.hook import { MenuOptionsItemType } from '@/views/chart/hooks/useContextMenu.hook.d' import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' import { LayersListItem } from '../LayersListItem' +import { LayersStatus } from '../LayersStatus/index' +import { LayerModeEnum } from '../../index.d' import { icon } from '@/plugins' -import { LayerModeEnum } from '../../enums' - -const { LockClosedOutlineIcon, EyeOffOutlineIcon } = icon.ionicons5 const props = defineProps({ componentGroupData: { @@ -64,10 +63,8 @@ const props = defineProps({ required: true }, layerMode: { - type: Object as PropType, - default(): LayerModeEnum { - return 'thumbnail' - } + type: String as PropType, + default: LayerModeEnum.THUMBNAIL } }) @@ -88,6 +85,27 @@ const themeColor = computed(() => { return designStore.getAppTheme }) +// 是否选中文本 +const selectText = computed(() => { + return props.layerMode === LayerModeEnum.TEXT +}) + +// 计算当前选中目标 +const select = computed(() => { + const id = props.componentGroupData.id + return chartEditStore.getTargetChart.selectId.find((e: string) => e === id) +}) + +// 悬浮 +const hover = computed(() => { + return props.componentGroupData.id === chartEditStore.getTargetChart.hoverId +}) + +// 组件状态 隐藏/锁定 +const status = computed(() => { + return props.componentGroupData.status +}) + // 右键 const optionsHandle = ( targetList: MenuOptionsItemType[], @@ -134,21 +152,6 @@ const clickHandle = (e: MouseEvent) => { mousedownHandle(e, props.componentGroupData) } -// 计算当前选中目标 -const select = computed(() => { - const id = props.componentGroupData.id - return chartEditStore.getTargetChart.selectId.find((e: string) => e === id) -}) - -// 悬浮 -const hover = computed(() => { - return props.componentGroupData.id === chartEditStore.getTargetChart.hoverId -}) - -const status = computed(() => { - return props.componentGroupData.status -}) - // 组点击事件 const groupMousedownHandle = (e: MouseEvent) => { onClickOutSide() @@ -206,10 +209,19 @@ $textSize: 10px; margin: 10px 5%; margin-bottom: 5px; @extend .go-transition-quick; + @include deep() { + .go-content-layers-list-item { + margin-right: 0 !important; + width: 95% !important; + } + } - :deep(.go-content-layers-list-item) { - margin-right: 0 !important; - width: 95% !important; + &:hover { + @include deep() { + .icon-item { + opacity: 1; + } + } } .root-item-content { diff --git a/src/views/chart/ContentLayers/components/LayersListItem/index.vue b/src/views/chart/ContentLayers/components/LayersListItem/index.vue index d37d8c63..2b7ecf48 100644 --- a/src/views/chart/ContentLayers/components/LayersListItem/index.vue +++ b/src/views/chart/ContentLayers/components/LayersListItem/index.vue @@ -1,5 +1,5 @@ diff --git a/src/views/chart/ContentLayers/enums.ts b/src/views/chart/ContentLayers/enums.ts index 0cb26ab2..e69de29b 100644 --- a/src/views/chart/ContentLayers/enums.ts +++ b/src/views/chart/ContentLayers/enums.ts @@ -1 +0,0 @@ -export type LayerModeEnum = 'thumbnail' | 'text' diff --git a/src/views/chart/ContentLayers/index.d.ts b/src/views/chart/ContentLayers/index.d.ts new file mode 100644 index 00000000..06596dee --- /dev/null +++ b/src/views/chart/ContentLayers/index.d.ts @@ -0,0 +1,4 @@ +export enum LayerModeEnum { + THUMBNAIL = 'thumbnail', + TEXT = 'text' +} diff --git a/src/views/chart/ContentLayers/index.vue b/src/views/chart/ContentLayers/index.vue index 54efde08..c3323410 100644 --- a/src/views/chart/ContentLayers/index.vue +++ b/src/views/chart/ContentLayers/index.vue @@ -17,7 +17,7 @@ v-for="(item, index) in layerModeEnumList" :key="index" ghost - size="tiny" + size="small" :type="layerMode === item.value ? 'primary' : 'tertiary'" @click="layerMode = item.value as LayerModeEnum" > @@ -77,7 +77,7 @@ import { MenuEnum, MouseEventButton, WinKeyboard, MacKeyboard } from '@/enums/ed import { LayersListItem } from './components/LayersListItem/index' import { LayersGroupListItem } from './components/LayersGroupListItem/index' -import { LayerModeEnum } from './enums' +import { LayerModeEnum } from './index.d' import { icon } from '@/plugins'