Commit 29886bb4fa3c711eed0920213d6e07928e4b0bc6

Authored by fengwotao
1 parent 43bc7e14

perf(views/ContentHeader/headerRightBtn): 新增了external扩展目录,这里升级版本有冲突WARNING

  1 +import HeaderRightBtn from './index.vue'
  2 +
  3 +export { HeaderRightBtn }
... ...
  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'))
... ...