From 96def0107d8e15b31ef68876ee10fe0abab942ef 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: Fri, 30 Sep 2022 16:03:35 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=8E=A5=E5=8F=A3=E8=BF=94=E5=9B=9E=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=95=B0=E6=8D=AE=EF=BC=8C=E9=A1=B5=E9=9D=A2=E4=BC=9A?= =?UTF-8?q?=E5=8D=A1=E6=AD=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/axios.ts | 1 - src/packages/components/Charts/Bars/BarCommon/index.vue | 6 ++++-- src/packages/components/Charts/Bars/BarCrossrange/index.vue | 4 +++- src/packages/components/Charts/Lines/LineCommon/index.vue | 4 +++- src/packages/components/Charts/Mores/TreeMap/index.vue | 3 ++- src/packages/components/Charts/Mores/WaterPolo/index.vue | 3 ++- src/packages/components/Charts/Pies/PieCommon/index.vue | 2 +- .../components/Charts/Scatters/ScatterCommon/index.vue | 3 ++- 8 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/api/axios.ts b/src/api/axios.ts index c913ea09..9833998f 100644 --- a/src/api/axios.ts +++ b/src/api/axios.ts @@ -27,7 +27,6 @@ axiosInstance.interceptors.response.use( return Promise.resolve(res.data) }, (err: AxiosResponse) => { - window['$message'].error('接口异常,请检查!') Promise.reject(err) } ) diff --git a/src/packages/components/Charts/Bars/BarCommon/index.vue b/src/packages/components/Charts/Bars/BarCommon/index.vue index b186a6d1..54aaa27b 100644 --- a/src/packages/components/Charts/Bars/BarCommon/index.vue +++ b/src/packages/components/Charts/Bars/BarCommon/index.vue @@ -24,6 +24,7 @@ import { CreateComponentType } from '@/packages/index.d' import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' import { isPreview } from '@/utils' import { DatasetComponent, GridComponent, TooltipComponent, LegendComponent } from 'echarts/components' +import isObject from 'lodash/isObject' const props = defineProps({ themeSetting: { @@ -51,8 +52,9 @@ const option = computed(() => { // dataset 无法变更条数的补丁 watch( () => props.chartConfig.option.dataset, - (newData, oldData) => { - if (newData.dimensions.length !== oldData.dimensions.length) { + (newData: { dimensions: any }, oldData) => { + if (!isObject(newData) || !('dimensions' in newData)) return + if (newData?.dimensions.length !== oldData?.dimensions.length) { const seriesArr = [] for (let i = 0; i < newData.dimensions.length - 1; i++) { seriesArr.push(seriesItem) diff --git a/src/packages/components/Charts/Bars/BarCrossrange/index.vue b/src/packages/components/Charts/Bars/BarCrossrange/index.vue index 5e928ee0..d42ce328 100644 --- a/src/packages/components/Charts/Bars/BarCrossrange/index.vue +++ b/src/packages/components/Charts/Bars/BarCrossrange/index.vue @@ -23,6 +23,7 @@ import { useChartDataFetch } from '@/hooks' import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' import { isPreview } from '@/utils' import { DatasetComponent, GridComponent, TooltipComponent, LegendComponent } from 'echarts/components' +import isObject from 'lodash/isObject' const props = defineProps({ themeSetting: { @@ -50,7 +51,8 @@ const option = computed(() => { // dataset 无法变更条数的补丁 watch( () => props.chartConfig.option.dataset, - (newData, oldData) => { + (newData: { dimensions: any }, oldData) => { + if (!isObject(newData) || !('dimensions' in newData)) return if (newData?.dimensions.length !== oldData?.dimensions.length) { const seriesArr = [] for (let i = 0; i < newData.dimensions.length - 1; i++) { diff --git a/src/packages/components/Charts/Lines/LineCommon/index.vue b/src/packages/components/Charts/Lines/LineCommon/index.vue index 4af2be19..8a5c4f44 100644 --- a/src/packages/components/Charts/Lines/LineCommon/index.vue +++ b/src/packages/components/Charts/Lines/LineCommon/index.vue @@ -24,6 +24,7 @@ import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore import { useChartDataFetch } from '@/hooks' import { isPreview } from '@/utils' import { DatasetComponent, GridComponent, TooltipComponent, LegendComponent } from 'echarts/components' +import isObject from 'lodash/isObject' const props = defineProps({ themeSetting: { @@ -51,7 +52,8 @@ const option = computed(() => { // dataset 无法变更条数的补丁 watch( () => props.chartConfig.option.dataset, - (newData, oldData) => { + (newData: { dimensions: any }, oldData) => { + if (!isObject(newData) || !('dimensions' in newData)) return if (newData?.dimensions.length !== oldData?.dimensions.length) { const seriesArr = [] for (let i = 0; i < newData.dimensions.length - 1; i++) { diff --git a/src/packages/components/Charts/Mores/TreeMap/index.vue b/src/packages/components/Charts/Mores/TreeMap/index.vue index de2516ea..1e0801ee 100644 --- a/src/packages/components/Charts/Mores/TreeMap/index.vue +++ b/src/packages/components/Charts/Mores/TreeMap/index.vue @@ -14,7 +14,7 @@ import { mergeTheme } from '@/packages/public/chart' import { useChartDataFetch } from '@/hooks' import { CreateComponentType } from '@/packages/index.d' import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' -import { isPreview } from '@/utils' +import { isPreview, isArray } from '@/utils' const props = defineProps({ themeSetting: { @@ -49,6 +49,7 @@ const dataSetHandle = (dataset: typeof dataJson) => { watch( () => props.chartConfig.option.dataset, newData => { + if(!isArray(newData)) return dataSetHandle(newData) }, { diff --git a/src/packages/components/Charts/Mores/WaterPolo/index.vue b/src/packages/components/Charts/Mores/WaterPolo/index.vue index 14112d94..30038f01 100644 --- a/src/packages/components/Charts/Mores/WaterPolo/index.vue +++ b/src/packages/components/Charts/Mores/WaterPolo/index.vue @@ -10,7 +10,7 @@ import 'echarts-liquidfill/src/liquidFill.js' import { CanvasRenderer } from 'echarts/renderers' import { GridComponent } from 'echarts/components' import config from './config' -import { isPreview, isString } from '@/utils' +import { isPreview, isString, isNumber } from '@/utils' import { chartColorsSearch, defaultTheme } from '@/settings/chartThemes/index' import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' import { useChartDataFetch } from '@/hooks' @@ -75,6 +75,7 @@ const dataHandle = (newData: number | string) => { watch( () => props.chartConfig.option.dataset, newData => { + if(!isString(newData) && !isNumber(newData)) return props.chartConfig.option.series[0].data = [dataHandle(newData)] option.value = props.chartConfig.option }, diff --git a/src/packages/components/Charts/Pies/PieCommon/index.vue b/src/packages/components/Charts/Pies/PieCommon/index.vue index 3f47c66a..e8f2c68a 100644 --- a/src/packages/components/Charts/Pies/PieCommon/index.vue +++ b/src/packages/components/Charts/Pies/PieCommon/index.vue @@ -50,7 +50,7 @@ watch( props.chartConfig.option.series[0].roseType = true } }, - { deep: true, immediate: true } + { deep: false, immediate: true } ) const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore) diff --git a/src/packages/components/Charts/Scatters/ScatterCommon/index.vue b/src/packages/components/Charts/Scatters/ScatterCommon/index.vue index a68c0911..945df53d 100644 --- a/src/packages/components/Charts/Scatters/ScatterCommon/index.vue +++ b/src/packages/components/Charts/Scatters/ScatterCommon/index.vue @@ -20,7 +20,7 @@ import config, { includes, seriesItem } from './config' import { mergeTheme } from '@/packages/public/chart' import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore' import { useChartDataFetch } from '@/hooks' -import { isPreview } from '@/utils' +import { isPreview, isArray } from '@/utils' import { DatasetComponent, GridComponent, @@ -69,6 +69,7 @@ const option = computed(() => { watch( () => props.chartConfig.option.dataset, (newData, oldData) => { + if (!isArray(newData)) return if (newData?.length !== oldData?.length) { replaceMergeArr.value = ['series'] // eslint-disable-next-line vue/no-mutating-props