From a7b2d5a24bd06972b13db7fc15b777067b3b2c75 Mon Sep 17 00:00:00 2001 From: MTrun <1262327911@qq.com> Date: Wed, 23 Mar 2022 20:41:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=20mock=20=E6=8E=A5=E5=8F=A3=E8=BD=AE?= =?UTF-8?q?=E8=AF=A2=E8=AF=B7=E6=B1=82=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/enums/httpEnum.ts | 8 ++++ src/hooks/useChartDataFetch.hook.ts | 39 +++++++++++++++++++ .../Charts/Bars/BarCommon/config.ts | 3 +- .../Charts/Bars/BarCommon/index.vue | 11 ++++-- .../Charts/Bars/BarCrossrange/index.vue | 5 ++- .../Charts/Lines/LineCommon/index.vue | 2 +- .../Charts/Lines/LineGradientSingle/index.vue | 2 +- .../Charts/Lines/LineGradients/index.vue | 2 +- .../Charts/Pies/PieCommon/index.vue | 2 +- src/packages/public/publicConfig.ts | 4 +- .../chartEditStore/chartEditStore.d.ts | 12 +----- .../components/ChartDataAjax/index.vue | 3 +- .../ChartDataMatchingAndShow/index.vue | 1 - .../components/ChartDataStatic/index.vue | 9 +---- .../ChartData/hooks/useFile.hooks.ts | 8 ++-- .../components/ChartData/index.d.ts | 3 +- .../components/ChartData/index.vue | 7 +++- src/views/preview/hooks/useScale.hook.ts | 2 +- src/views/preview/hooks/useStore.hook.ts | 9 +++++ src/views/preview/index.vue | 2 + src/views/preview/utils/index.ts | 27 +------------ src/views/preview/utils/storage.ts | 26 +++++++++++++ 22 files changed, 117 insertions(+), 70 deletions(-) create mode 100644 src/hooks/useChartDataFetch.hook.ts create mode 100644 src/views/preview/hooks/useStore.hook.ts create mode 100644 src/views/preview/utils/storage.ts diff --git a/src/enums/httpEnum.ts b/src/enums/httpEnum.ts index b8ead3f5..165948f5 100644 --- a/src/enums/httpEnum.ts +++ b/src/enums/httpEnum.ts @@ -10,6 +10,14 @@ export enum ResultEnum { TIMEOUT = 10042, } +// 数据相关 +export enum RequestDataTypeEnum { + // 静态数据 + STATIC = 0, + // 请求数据 + AJAX = 1, +} + /** * @description: 请求方法 */ diff --git a/src/hooks/useChartDataFetch.hook.ts b/src/hooks/useChartDataFetch.hook.ts new file mode 100644 index 00000000..4d4b1db4 --- /dev/null +++ b/src/hooks/useChartDataFetch.hook.ts @@ -0,0 +1,39 @@ +import { toRefs, watchEffect } from 'vue' +import { http } from '@/api/http' +import { CreateComponentType } from '@/packages/index.d' +import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' +import { RequestDataTypeEnum } from '@/enums/httpEnum' + +/** + * 数据监听与更改 + * @param chartConfig + */ +export const useChartDataFetch = (chartConfig: CreateComponentType) => { + let fetchInterval = 0 + + watchEffect(() => { + clearInterval(fetchInterval) + + const chartEditStore = useChartEditStore() + const { requestOriginUrl, requestInterval } = toRefs( + chartEditStore.getRequestGlobalConfig + ) + const { requestDataType, requestHttpType, requestUrl } = toRefs( + chartConfig.data + ) + if (requestDataType.value !== RequestDataTypeEnum.AJAX) return + // 处理地址 + if (requestUrl?.value && requestInterval.value > 0) { + // requestOriginUrl 允许为空 + const completePath = requestOriginUrl && requestOriginUrl.value + requestUrl.value + if (!completePath) return + + fetchInterval = setInterval(async () => { + const res = await http(requestHttpType.value)(completePath || '', {}) + if(res.data) { + chartConfig.option.dataset = res.data as any + } + }, requestInterval.value * 1000) + } + }) +} diff --git a/src/packages/components/Charts/Bars/BarCommon/config.ts b/src/packages/components/Charts/Bars/BarCommon/config.ts index ac6272dd..187ff852 100644 --- a/src/packages/components/Charts/Bars/BarCommon/config.ts +++ b/src/packages/components/Charts/Bars/BarCommon/config.ts @@ -47,8 +47,7 @@ export const option = { ] } -export default class Config extends publicConfig - implements CreateComponentType { +export default class Config extends publicConfig implements CreateComponentType { public key = BarCommonConfig.key public chartConfig = cloneDeep(BarCommonConfig) // 图表配置项 diff --git a/src/packages/components/Charts/Bars/BarCommon/index.vue b/src/packages/components/Charts/Bars/BarCommon/index.vue index b3a61dc3..8f2491f0 100644 --- a/src/packages/components/Charts/Bars/BarCommon/index.vue +++ b/src/packages/components/Charts/Bars/BarCommon/index.vue @@ -1,5 +1,5 @@ diff --git a/src/packages/components/Charts/Bars/BarCrossrange/index.vue b/src/packages/components/Charts/Bars/BarCrossrange/index.vue index 7fd87b19..dc27f366 100644 --- a/src/packages/components/Charts/Bars/BarCrossrange/index.vue +++ b/src/packages/components/Charts/Bars/BarCrossrange/index.vue @@ -1,5 +1,5 @@ diff --git a/src/packages/components/Charts/Lines/LineCommon/index.vue b/src/packages/components/Charts/Lines/LineCommon/index.vue index 98f97c1e..8915dd7d 100644 --- a/src/packages/components/Charts/Lines/LineCommon/index.vue +++ b/src/packages/components/Charts/Lines/LineCommon/index.vue @@ -1,5 +1,5 @@