diff --git a/src/enums/eventEnum.ts b/src/enums/eventEnum.ts new file mode 100644 index 00000000..a8110a71 --- /dev/null +++ b/src/enums/eventEnum.ts @@ -0,0 +1,31 @@ +// 基础事件类型(vue不加 on) +export enum BaseEvent { + // 点击 + ON_CLICK = 'click', + // 双击 + ON_DBL_CLICK = 'dblclick', + // 移入 + ON_MOUSE_ENTER = 'mouseenter', + // 移出 + ON_MOUSE_LEAVE = 'mouseleave', +} + +// vue3 生命周期事件 +export enum EventLife { + // 渲染之后 + VNODE_MOUNTED = 'vnodeMounted', + // 渲染之前 + VNODE_BEFORE_MOUNT = 'vnodeBeforeMount', +} + +// 内置字符串函数对象列表 +export const excludeParseEventKeyList = [ + EventLife.VNODE_BEFORE_MOUNT, + EventLife.VNODE_MOUNTED, + BaseEvent.ON_CLICK, + BaseEvent.ON_DBL_CLICK, + BaseEvent.ON_MOUSE_ENTER, + BaseEvent.ON_MOUSE_LEAVE, + //过滤器 + 'filter' +] \ No newline at end of file diff --git a/src/hooks/useLifeHandler.hook.ts b/src/hooks/useLifeHandler.hook.ts index 23ed5e00..2412a79a 100644 --- a/src/hooks/useLifeHandler.hook.ts +++ b/src/hooks/useLifeHandler.hook.ts @@ -1,4 +1,5 @@ -import { CreateComponentType, CreateComponentGroupType, EventLife, BaseEvent } from '@/packages/index.d' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { EventLife } from '@/enums/eventEnum' import * as echarts from 'echarts' // 所有图表组件集合对象 diff --git a/src/packages/index.d.ts b/src/packages/index.d.ts index f431bf75..e1f626b3 100644 --- a/src/packages/index.d.ts +++ b/src/packages/index.d.ts @@ -1,3 +1,4 @@ +import { BaseEvent, EventLife } from '@/enums/eventEnum' import type { GlobalThemeJsonType } from '@/settings/chartThemes/index' import type { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' @@ -90,26 +91,6 @@ export const BlendModeEnumList = [ { label: '亮度', value: 'luminosity' } ] -// 基础事件类型(vue不加 on) -export enum BaseEvent { - // 点击 - ON_CLICK = 'click', - // 双击 - ON_DBL_CLICK = 'dblclick', - // 移入 - ON_MOUSE_ENTER = 'mouseenter', - // 移出 - ON_MOUSE_LEAVE = 'mouseleave', -} - -// vue3 生命周期事件 -export enum EventLife { - // 渲染之后 - VNODE_MOUNTED = 'vnodeMounted', - // 渲染之前 - VNODE_BEFORE_MOUNT = 'vnodeBeforeMount', -} - // 组件实例类 export interface PublicConfigType { id: string diff --git a/src/packages/public/publicConfig.ts b/src/packages/public/publicConfig.ts index 49dda2b0..c4288638 100644 --- a/src/packages/public/publicConfig.ts +++ b/src/packages/public/publicConfig.ts @@ -1,6 +1,7 @@ import { getUUID } from '@/utils' import { RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d' import { groupTitle } from '@/settings/designSetting' +import { BaseEvent, EventLife } from '@/enums/eventEnum' import { RequestHttpEnum, RequestDataTypeEnum, @@ -9,8 +10,6 @@ import { RequestBodyEnum } from '@/enums/httpEnum' import { - BaseEvent, - EventLife, ChartFrameEnum, PublicConfigType, CreateComponentType, diff --git a/src/utils/storage.ts b/src/utils/storage.ts index 0cc733f0..5b9f6922 100644 --- a/src/utils/storage.ts +++ b/src/utils/storage.ts @@ -57,7 +57,7 @@ export const setSessionStorage = (k: string, v: T) => { export const getSessionStorage: (k: string) => any = (k: string) => { const item = window.sessionStorage.getItem(k) try { - return item ? JSON.parse(item) : item + return item ? JSONParse(item) : item } catch (err) { return item } diff --git a/src/utils/utils.ts b/src/utils/utils.ts index c1fc2f67..34161e04 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -10,6 +10,7 @@ import cloneDeep from 'lodash/cloneDeep' import { WinKeyboard } from '@/enums/editPageEnum' import { RequestHttpIntervalEnum, RequestParamsObjType } from '@/enums/httpEnum' import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { excludeParseEventKeyList } from '@/enums/eventEnum' /** * * 判断是否是开发环境 @@ -319,6 +320,7 @@ export const JSONStringify = (data: T) => { */ export const JSONParse = (data: string) => { return JSON.parse(data, (k, v) => { + if (excludeParseEventKeyList.includes(k)) return v if (typeof v === 'string' && v.indexOf && (v.indexOf('function') > -1 || v.indexOf('=>') > -1)) { return eval(`(function(){return ${v}})()`) } else if (typeof v === 'string' && v.indexOf && (v.indexOf('return ') > -1)) { diff --git a/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue b/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue index a697a628..581fefcb 100644 --- a/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventAdvancedHandle/index.vue @@ -164,7 +164,8 @@ import { useTargetData } from '../../../hooks/useTargetData.hook' import { templateList } from './importTemplate' import { npmPkgs } from '@/hooks' import { icon } from '@/plugins' -import { CreateComponentType, EventLife } from '@/packages/index.d' +import { CreateComponentType } from '@/packages/index.d' +import { EventLife } from '@/enums/eventEnum' const { targetData, chartEditStore } = useTargetData() const { DocumentTextIcon, ChevronDownIcon, PencilIcon } = icon.ionicons5 diff --git a/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue b/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue index ec01f60b..2defea36 100644 --- a/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue +++ b/src/views/chart/ContentConfigurations/components/ChartEvent/components/ChartEventBaseHandle/index.vue @@ -127,7 +127,7 @@ import { ref, computed, watch, toRefs, toRaw } from 'vue' import { MonacoEditor } from '@/components/Pages/MonacoEditor' import { useTargetData } from '../../../hooks/useTargetData.hook' -import { CreateComponentType, BaseEvent } from '@/packages/index.d' +import { BaseEvent } from '@/enums/eventEnum' import { icon } from '@/plugins' const { targetData, chartEditStore } = useTargetData() diff --git a/src/views/chart/hooks/useSync.hook.ts b/src/views/chart/hooks/useSync.hook.ts index a0783962..9376e412 100644 --- a/src/views/chart/hooks/useSync.hook.ts +++ b/src/views/chart/hooks/useSync.hook.ts @@ -5,7 +5,8 @@ import { useChartHistoryStore } from '@/store/modules/chartHistoryStore/chartHis import { useChartLayoutStore } from '@/store/modules/chartLayoutStore/chartLayoutStore' import { ChartLayoutStoreEnum } from '@/store/modules/chartLayoutStore/chartLayoutStore.d' import { fetchChartComponent, fetchConfigComponent, createComponent } from '@/packages/index' -import { BaseEvent, EventLife, CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { CreateComponentType, CreateComponentGroupType } from '@/packages/index.d' +import { BaseEvent, EventLife } from '@/enums/eventEnum' import { PublicGroupConfigClass } from '@/packages/public/publicConfig' import merge from 'lodash/merge'