Commit 29886bb4fa3c711eed0920213d6e07928e4b0bc6
1 parent
43bc7e14
perf(views/ContentHeader/headerRightBtn): 新增了external扩展目录,这里升级版本有冲突WARNING
Showing
3 changed files
with
113 additions
and
1 deletions
1 | +<template> | |
2 | + <n-space class="go-mt-0"> | |
3 | + <n-button v-for="item in comBtnList" :key="item.title" :type="item.type" ghost @click="item.event"> | |
4 | + <template #icon> | |
5 | + <component :is="item.icon"></component> | |
6 | + </template> | |
7 | + <span>{{ item.title }}</span> | |
8 | + </n-button> | |
9 | + </n-space> | |
10 | +</template> | |
11 | + | |
12 | +<script setup lang="ts"> | |
13 | +import { computed } from 'vue' | |
14 | +import { renderIcon, goDialog, fetchPathByName, routerTurnByPath, setSessionStorage, getLocalStorage } from '@/utils' | |
15 | +import { PreviewEnum } from '@/enums/pageEnum' | |
16 | +import { StorageEnum } from '@/enums/storageEnum' | |
17 | +import { useRoute } from 'vue-router' | |
18 | +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' | |
19 | +import { syncData } from '../../../ContentEdit/components/EditTools/hooks/useSyncUpdate.hook' | |
20 | +import { icon } from '@/plugins' | |
21 | +import { cloneDeep } from 'lodash' | |
22 | + | |
23 | +const { BrowsersOutlineIcon, SendIcon, AnalyticsIcon } = icon.ionicons5 | |
24 | +const chartEditStore = useChartEditStore() | |
25 | + | |
26 | +const routerParamsInfo = useRoute() | |
27 | + | |
28 | +// 预览 | |
29 | +const previewHandle = () => { | |
30 | + const path = fetchPathByName(PreviewEnum.CHART_PREVIEW_NAME, 'href') | |
31 | + if (!path) return | |
32 | + const { id } = routerParamsInfo.params | |
33 | + // id 标识 | |
34 | + const previewId = typeof id === 'string' ? id : id[0] | |
35 | + const storageInfo = chartEditStore.getStorageInfo | |
36 | + const sessionStorageInfo = getLocalStorage(StorageEnum.GO_CHART_STORAGE_LIST) || [] | |
37 | + | |
38 | + if (sessionStorageInfo?.length) { | |
39 | + const repeateIndex = sessionStorageInfo.findIndex((e: { id: string }) => e.id === previewId) | |
40 | + // 重复替换 | |
41 | + if (repeateIndex !== -1) { | |
42 | + sessionStorageInfo.splice(repeateIndex, 1, { id: previewId, ...storageInfo }) | |
43 | + setSessionStorage(StorageEnum.GO_CHART_STORAGE_LIST, sessionStorageInfo) | |
44 | + } else { | |
45 | + sessionStorageInfo.push({ | |
46 | + id: previewId, | |
47 | + ...storageInfo | |
48 | + }) | |
49 | + setSessionStorage(StorageEnum.GO_CHART_STORAGE_LIST, sessionStorageInfo) | |
50 | + } | |
51 | + } else { | |
52 | + setSessionStorage(StorageEnum.GO_CHART_STORAGE_LIST, [{ id: previewId, ...storageInfo }]) | |
53 | + } | |
54 | + // 跳转 | |
55 | + routerTurnByPath(path, [previewId], undefined, true) | |
56 | +} | |
57 | + | |
58 | +// 发布 | |
59 | +const sendHandle = () => { | |
60 | + goDialog({ | |
61 | + message: '想体验发布功能,请前往 master-fetch 分支查看: https://demo.mtruning.club/#/login', | |
62 | + positiveText: '了然', | |
63 | + closeNegativeText: true, | |
64 | + onPositiveCallback: () => {} | |
65 | + }) | |
66 | +} | |
67 | + | |
68 | +const btnList = [ | |
69 | + { | |
70 | + select: true, | |
71 | + title: '同步内容', | |
72 | + type: 'primary', | |
73 | + icon: renderIcon(AnalyticsIcon), | |
74 | + event: syncData | |
75 | + }, | |
76 | + { | |
77 | + select: true, | |
78 | + title: '预览', | |
79 | + icon: renderIcon(BrowsersOutlineIcon), | |
80 | + event: previewHandle | |
81 | + }, | |
82 | + // { | |
83 | + // select: true, | |
84 | + // title: '发布', | |
85 | + // icon: renderIcon(SendIcon), | |
86 | + // event: sendHandle | |
87 | + // } | |
88 | +] | |
89 | + | |
90 | +const comBtnList = computed(() => { | |
91 | + if (chartEditStore.getEditCanvas.isCodeEdit) { | |
92 | + return btnList | |
93 | + } | |
94 | + const cloneList = cloneDeep(btnList) | |
95 | + cloneList.shift() | |
96 | + return cloneList | |
97 | +}) | |
98 | +</script> | |
99 | + | |
100 | +<style lang="scss" scoped> | |
101 | +.align-center { | |
102 | + margin-top: -4px; | |
103 | +} | |
104 | +</style> | ... | ... |
... | ... | @@ -52,7 +52,12 @@ const chartEditStore = useChartEditStore() |
52 | 52 | chartHistoryStoreStore.canvasInit(chartEditStore.getEditCanvas) |
53 | 53 | |
54 | 54 | const HeaderLeftBtn = loadAsyncComponent(() => import('./ContentHeader/headerLeftBtn/index.vue')) |
55 | -const HeaderRightBtn = loadAsyncComponent(() => import('./ContentHeader/headerRightBtn/index.vue')) | |
55 | +/** | |
56 | + * THINGS_KIT 升级版本这里有冲突 | |
57 | + * 源文件 './ContentHeader/headerRightBtn/index.vue' | |
58 | + * 修改后 './ContentHeader/headerRightBtn/external/index.vue' | |
59 | + */ | |
60 | +const HeaderRightBtn = loadAsyncComponent(() => import('./ContentHeader/headerRightBtn/external/index.vue')) | |
56 | 61 | const HeaderTitle = loadAsyncComponent(() => import('./ContentHeader/headerTitle/index.vue')) |
57 | 62 | const ContentLayers = loadAsyncComponent(() => import('./ContentLayers/index.vue')) |
58 | 63 | const ContentCharts = loadAsyncComponent(() => import('./ContentCharts/index.vue')) | ... | ... |