From 37593bc2574e2c95c1cd10be26924f770f6932cb 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: Wed, 12 Oct 2022 21:57:30 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Charts/Bars/BarCommon/index.vue | 24 ++-- .../Charts/Bars/BarCrossrange/index.vue | 24 ++-- .../Charts/Lines/LineCommon/index.vue | 24 ++-- .../Charts/Lines/LineGradientSingle/index.vue | 74 ++++++------ .../Charts/Lines/LineGradients/index.vue | 108 ++++++++---------- .../Charts/Lines/LineLinearSingle/index.vue | 22 ++-- .../components/Charts/Maps/MapBase/index.vue | 38 +++--- .../components/Charts/Mores/Heatmap/index.vue | 6 +- .../components/Charts/Mores/Process/index.vue | 6 +- .../components/Charts/Mores/Radar/index.vue | 6 +- .../components/Charts/Mores/TreeMap/index.vue | 8 +- .../Charts/Mores/WaterPolo/index.vue | 38 +++--- .../Charts/Pies/PieCircle/index.vue | 8 +- .../Charts/Pies/PieCommon/index.vue | 22 ++-- .../Charts/Scatters/ScatterCommon/index.vue | 26 +++-- .../Decorates/Mores/CountDown/index.vue | 12 +- .../Decorates/Mores/FlipperNumber/index.vue | 6 +- .../Decorates/Mores/TimeCommon/index.vue | 93 +++++++-------- .../Informations/Mores/WordCloud/index.vue | 9 +- .../Tables/Tables/TableList/index.vue | 51 ++++----- .../Tables/Tables/TableScrollBoard/index.vue | 92 ++++++++++----- 21 files changed, 390 insertions(+), 307 deletions(-) diff --git a/src/packages/components/Charts/Bars/BarCommon/index.vue b/src/packages/components/Charts/Bars/BarCommon/index.vue index 2c3b8d3c..77f6da02 100644 --- a/src/packages/components/Charts/Bars/BarCommon/index.vue +++ b/src/packages/components/Charts/Bars/BarCommon/index.vue @@ -53,17 +53,21 @@ const option = computed(() => { watch( () => props.chartConfig.option.dataset, (newData: { dimensions: any }, oldData) => { - if (!isObject(newData) || !('dimensions' in newData)) return - if (Array.isArray(newData?.dimensions)) { - const seriesArr = [] - for (let i = 0; i < newData.dimensions.length - 1; i++) { - seriesArr.push(seriesItem) + try { + if (!isObject(newData) || !('dimensions' in newData)) return + if (Array.isArray(newData?.dimensions)) { + const seriesArr = [] + for (let i = 0; i < newData.dimensions.length - 1; i++) { + seriesArr.push(seriesItem) + } + replaceMergeArr.value = ['series'] + props.chartConfig.option.series = seriesArr + nextTick(() => { + replaceMergeArr.value = [] + }) } - replaceMergeArr.value = ['series'] - props.chartConfig.option.series = seriesArr - nextTick(() => { - replaceMergeArr.value = [] - }) + } catch (error) { + console.log(error) } }, { diff --git a/src/packages/components/Charts/Bars/BarCrossrange/index.vue b/src/packages/components/Charts/Bars/BarCrossrange/index.vue index cef123cf..c8d2957a 100644 --- a/src/packages/components/Charts/Bars/BarCrossrange/index.vue +++ b/src/packages/components/Charts/Bars/BarCrossrange/index.vue @@ -52,17 +52,21 @@ const option = computed(() => { watch( () => props.chartConfig.option.dataset, (newData: { dimensions: any }, oldData) => { - if (!isObject(newData) || !('dimensions' in newData)) return - if (Array.isArray(newData?.dimensions)) { - const seriesArr = [] - for (let i = 0; i < newData.dimensions.length - 1; i++) { - seriesArr.push(seriesItem) + try { + if (!isObject(newData) || !('dimensions' in newData)) return + if (Array.isArray(newData?.dimensions)) { + const seriesArr = [] + for (let i = 0; i < newData.dimensions.length - 1; i++) { + seriesArr.push(seriesItem) + } + replaceMergeArr.value = ['series'] + props.chartConfig.option.series = seriesArr + nextTick(() => { + replaceMergeArr.value = [] + }) } - replaceMergeArr.value = ['series'] - props.chartConfig.option.series = seriesArr - nextTick(() => { - replaceMergeArr.value = [] - }) + } catch (error) { + console.log(error) } }, { diff --git a/src/packages/components/Charts/Lines/LineCommon/index.vue b/src/packages/components/Charts/Lines/LineCommon/index.vue index 70955874..33149e84 100644 --- a/src/packages/components/Charts/Lines/LineCommon/index.vue +++ b/src/packages/components/Charts/Lines/LineCommon/index.vue @@ -53,17 +53,21 @@ const option = computed(() => { watch( () => props.chartConfig.option.dataset, (newData: { dimensions: any }, oldData) => { - if (!isObject(newData) || !('dimensions' in newData)) return - if (Array.isArray(newData?.dimensions)) { - const seriesArr = [] - for (let i = 0; i < newData.dimensions.length - 1; i++) { - seriesArr.push(seriesItem) + try { + if (!isObject(newData) || !('dimensions' in newData)) return + if (Array.isArray(newData?.dimensions)) { + const seriesArr = [] + for (let i = 0; i < newData.dimensions.length - 1; i++) { + seriesArr.push(seriesItem) + } + replaceMergeArr.value = ['series'] + props.chartConfig.option.series = seriesArr + nextTick(() => { + replaceMergeArr.value = [] + }) } - replaceMergeArr.value = ['series'] - props.chartConfig.option.series = seriesArr - nextTick(() => { - replaceMergeArr.value = [] - }) + } catch (error) { + console.log(error) } }, { diff --git a/src/packages/components/Charts/Lines/LineGradientSingle/index.vue b/src/packages/components/Charts/Lines/LineGradientSingle/index.vue index 877e4407..e0d9fb7e 100644 --- a/src/packages/components/Charts/Lines/LineGradientSingle/index.vue +++ b/src/packages/components/Charts/Lines/LineGradientSingle/index.vue @@ -1,10 +1,5 @@ @@ -37,14 +32,7 @@ const props = defineProps({ } }) -use([ - DatasetComponent, - CanvasRenderer, - LineChart, - GridComponent, - TooltipComponent, - LegendComponent, -]) +use([DatasetComponent, CanvasRenderer, LineChart, GridComponent, TooltipComponent, LegendComponent]) const chartEditStore = useChartEditStore() const option = reactive({ @@ -52,32 +40,42 @@ const option = reactive({ }) // 渐变色处理 -watch(() => chartEditStore.getEditCanvasConfig.chartThemeColor, (newColor: keyof typeof chartColorsSearch) => { - if (!isPreview()) { - const themeColor = chartColorsSearch[newColor] || chartColorsSearch[defaultTheme] - props.chartConfig.option.series.forEach((value: any, index: number) => { - value.areaStyle.color = new graphic.LinearGradient(0, 0, 0, 1, [ - { - offset: 0, - color: themeColor[3] - }, - { - offset: 1, - color: 'rgba(0,0,0, 0)' - } - ]) - }) +watch( + () => chartEditStore.getEditCanvasConfig.chartThemeColor, + (newColor: keyof typeof chartColorsSearch) => { + try { + if (!isPreview()) { + const themeColor = chartColorsSearch[newColor] || chartColorsSearch[defaultTheme] + props.chartConfig.option.series.forEach((value: any, index: number) => { + value.areaStyle.color = new graphic.LinearGradient(0, 0, 0, 1, [ + { + offset: 0, + color: themeColor[3] + }, + { + offset: 1, + color: 'rgba(0,0,0, 0)' + } + ]) + }) + } + option.value = mergeTheme(props.chartConfig.option, props.themeSetting, includes) + props.chartConfig.option = option.value + } catch (error) { + console.log(error) + } + }, + { + immediate: true } - option.value = mergeTheme(props.chartConfig.option, props.themeSetting, includes) - props.chartConfig.option = option.value -}, { - immediate: true -}) +) - -watch(() => props.chartConfig.option.dataset, () => { - option.value = props.chartConfig.option -}) +watch( + () => props.chartConfig.option.dataset, + () => { + option.value = props.chartConfig.option + } +) const { vChartRef } = useChartDataFetch(props.chartConfig, useChartEditStore) diff --git a/src/packages/components/Charts/Lines/LineGradients/index.vue b/src/packages/components/Charts/Lines/LineGradients/index.vue index f2162003..8643426f 100644 --- a/src/packages/components/Charts/Lines/LineGradients/index.vue +++ b/src/packages/components/Charts/Lines/LineGradients/index.vue @@ -1,93 +1,79 @@ diff --git a/src/packages/components/Charts/Lines/LineLinearSingle/index.vue b/src/packages/components/Charts/Lines/LineLinearSingle/index.vue index 4dd94fa8..19f4ef70 100644 --- a/src/packages/components/Charts/Lines/LineLinearSingle/index.vue +++ b/src/packages/components/Charts/Lines/LineLinearSingle/index.vue @@ -43,17 +43,21 @@ const option = reactive({ watch( () => chartEditStore.getEditCanvasConfig.chartThemeColor, (newColor: keyof typeof chartColorsSearch) => { - if (!isPreview()) { - const themeColor = chartColorsSearch[newColor] || chartColorsSearch[defaultTheme] - props.chartConfig.option.series.forEach((value: any) => { - value.lineStyle.shadowColor = themeColor[2] - value.lineStyle.color.colorStops.forEach((v: { color: string }, i: number) => { - v.color = themeColor[i] + try { + if (!isPreview()) { + const themeColor = chartColorsSearch[newColor] || chartColorsSearch[defaultTheme] + props.chartConfig.option.series.forEach((value: any) => { + value.lineStyle.shadowColor = themeColor[2] + value.lineStyle.color.colorStops.forEach((v: { color: string }, i: number) => { + v.color = themeColor[i] + }) }) - }) + } + option.value = mergeTheme(props.chartConfig.option, props.themeSetting, includes) + props.chartConfig.option = option.value + } catch (error) { + console.log(error) } - option.value = mergeTheme(props.chartConfig.option, props.themeSetting, includes) - props.chartConfig.option = option.value }, { immediate: true diff --git a/src/packages/components/Charts/Maps/MapBase/index.vue b/src/packages/components/Charts/Maps/MapBase/index.vue index 8524684a..f927e64a 100644 --- a/src/packages/components/Charts/Maps/MapBase/index.vue +++ b/src/packages/components/Charts/Maps/MapBase/index.vue @@ -64,9 +64,9 @@ registerMap(props.chartConfig.option.mapRegion.adcode, { geoJSON: {} as any, spe // 进行更换初始化地图 如果为china 单独处理 const registerMapInitAsync = async () => { await nextTick() - if (props.chartConfig.option.mapRegion.adcode!="china") { + if (props.chartConfig.option.mapRegion.adcode != 'china') { await getGeojson(props.chartConfig.option.mapRegion.adcode) - }else{ + } else { await hainanLandsHandle(props.chartConfig.option.mapRegion.showHainanIsLands) } vEchartsSetOption() @@ -90,12 +90,12 @@ const dataSetHandle = async (dataset: any) => { isPreview() && vEchartsSetOption() } // 处理海南群岛 -const hainanLandsHandle=async(newData:boolean)=>{ +const hainanLandsHandle = async (newData: boolean) => { if (newData) { - await getGeojson('china') - } else { - registerMap('china', { geoJSON: mapJsonWithoutHainanIsLands as any, specialAreas: {} }) - } + await getGeojson('china') + } else { + registerMap('china', { geoJSON: mapJsonWithoutHainanIsLands as any, specialAreas: {} }) + } } //监听 dataset 数据发生变化 watch( @@ -113,8 +113,12 @@ watch( watch( () => props.chartConfig.option.mapRegion.showHainanIsLands, async newData => { - await hainanLandsHandle(newData) - vEchartsSetOption() + try { + await hainanLandsHandle(newData) + vEchartsSetOption() + } catch (error) { + console.log(error) + } }, { deep: false @@ -125,12 +129,16 @@ watch( watch( () => props.chartConfig.option.mapRegion.adcode, async newData => { - await getGeojson(newData) - props.chartConfig.option.geo.map = newData - props.chartConfig.option.series.forEach((item: any) => { - if (item.type === 'map') item.map = newData - }) - vEchartsSetOption() + try { + await getGeojson(newData) + props.chartConfig.option.geo.map = newData + props.chartConfig.option.series.forEach((item: any) => { + if (item.type === 'map') item.map = newData + }) + vEchartsSetOption() + } catch (error) { + console.log(error) + } }, { deep: false diff --git a/src/packages/components/Charts/Mores/Heatmap/index.vue b/src/packages/components/Charts/Mores/Heatmap/index.vue index f306453b..45cb810c 100644 --- a/src/packages/components/Charts/Mores/Heatmap/index.vue +++ b/src/packages/components/Charts/Mores/Heatmap/index.vue @@ -75,7 +75,11 @@ const dataSetHandle = (dataset: typeof dataJson) => { watch( () => props.chartConfig.option.dataset, newData => { - dataSetHandle(newData) + try { + dataSetHandle(newData) + } catch (error) { + console.log(error) + } }, { deep: false diff --git a/src/packages/components/Charts/Mores/Process/index.vue b/src/packages/components/Charts/Mores/Process/index.vue index f23db2d7..5faf79bf 100644 --- a/src/packages/components/Charts/Mores/Process/index.vue +++ b/src/packages/components/Charts/Mores/Process/index.vue @@ -57,7 +57,11 @@ const option = shallowReactive({ watch( () => props.chartConfig.option.dataset, (newData: any) => { - option.dataset = toNumber(newData, 2) + try { + option.dataset = toNumber(newData, 2) + } catch (error) { + console.log(error) + } }, { deep: false diff --git a/src/packages/components/Charts/Mores/Radar/index.vue b/src/packages/components/Charts/Mores/Radar/index.vue index cc2992e5..2e523267 100644 --- a/src/packages/components/Charts/Mores/Radar/index.vue +++ b/src/packages/components/Charts/Mores/Radar/index.vue @@ -57,7 +57,11 @@ const dataSetHandle = (dataset: typeof dataJson) => { watch( () => props.chartConfig.option.dataset, newData => { - dataSetHandle(newData) + try { + dataSetHandle(newData) + } catch (error) { + console.log(error) + } }, { deep: false diff --git a/src/packages/components/Charts/Mores/TreeMap/index.vue b/src/packages/components/Charts/Mores/TreeMap/index.vue index 1e0801ee..7964f174 100644 --- a/src/packages/components/Charts/Mores/TreeMap/index.vue +++ b/src/packages/components/Charts/Mores/TreeMap/index.vue @@ -49,8 +49,12 @@ const dataSetHandle = (dataset: typeof dataJson) => { watch( () => props.chartConfig.option.dataset, newData => { - if(!isArray(newData)) return - dataSetHandle(newData) + try { + if (!isArray(newData)) return + dataSetHandle(newData) + } catch (error) { + console.log(error) + } }, { deep: false diff --git a/src/packages/components/Charts/Mores/WaterPolo/index.vue b/src/packages/components/Charts/Mores/WaterPolo/index.vue index 30038f01..f5aa4f74 100644 --- a/src/packages/components/Charts/Mores/WaterPolo/index.vue +++ b/src/packages/components/Charts/Mores/WaterPolo/index.vue @@ -42,23 +42,27 @@ const option = reactive({ watch( () => chartEditStore.getEditCanvasConfig.chartThemeColor, (newColor: keyof typeof chartColorsSearch) => { - if (!isPreview()) { - const themeColor = chartColorsSearch[newColor] || chartColorsSearch[defaultTheme] - // 背景颜色 - props.chartConfig.option.series[0].backgroundStyle.color = themeColor[2] - // 水球颜色 - props.chartConfig.option.series[0].color[0].colorStops = [ - { - offset: 0, - color: themeColor[0] - }, - { - offset: 1, - color: themeColor[1] - } - ] + try { + if (!isPreview()) { + const themeColor = chartColorsSearch[newColor] || chartColorsSearch[defaultTheme] + // 背景颜色 + props.chartConfig.option.series[0].backgroundStyle.color = themeColor[2] + // 水球颜色 + props.chartConfig.option.series[0].color[0].colorStops = [ + { + offset: 0, + color: themeColor[0] + }, + { + offset: 1, + color: themeColor[1] + } + ] + } + option.value = props.chartConfig.option + } catch (error) { + console.log(error) } - option.value = props.chartConfig.option }, { immediate: true @@ -75,7 +79,7 @@ const dataHandle = (newData: number | string) => { watch( () => props.chartConfig.option.dataset, newData => { - if(!isString(newData) && !isNumber(newData)) return + 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/PieCircle/index.vue b/src/packages/components/Charts/Pies/PieCircle/index.vue index 61c50049..60f5c921 100644 --- a/src/packages/components/Charts/Pies/PieCircle/index.vue +++ b/src/packages/components/Charts/Pies/PieCircle/index.vue @@ -48,7 +48,13 @@ const dataHandle = (newData: any) => { // 配置时 watch( () => props.chartConfig.option.dataset, - newData => dataHandle(newData), + newData => { + try { + dataHandle(newData) + } catch (error) { + console.log(error) + } + }, { immediate: true, deep: false diff --git a/src/packages/components/Charts/Pies/PieCommon/index.vue b/src/packages/components/Charts/Pies/PieCommon/index.vue index e8f2c68a..eb99da98 100644 --- a/src/packages/components/Charts/Pies/PieCommon/index.vue +++ b/src/packages/components/Charts/Pies/PieCommon/index.vue @@ -39,15 +39,19 @@ const option = computed(() => { watch( () => props.chartConfig.option.type, newData => { - if (newData === 'nomal') { - props.chartConfig.option.series[0].radius = '70%' - props.chartConfig.option.series[0].roseType = false - } else if (newData === 'ring') { - props.chartConfig.option.series[0].radius = ['40%', '65%'] - props.chartConfig.option.series[0].roseType = false - } else { - props.chartConfig.option.series[0].radius = '70%' - props.chartConfig.option.series[0].roseType = true + try { + if (newData === 'nomal') { + props.chartConfig.option.series[0].radius = '70%' + props.chartConfig.option.series[0].roseType = false + } else if (newData === 'ring') { + props.chartConfig.option.series[0].radius = ['40%', '65%'] + props.chartConfig.option.series[0].roseType = false + } else { + props.chartConfig.option.series[0].radius = '70%' + props.chartConfig.option.series[0].roseType = true + } + } catch (error) { + console.log(error) } }, { deep: false, immediate: true } diff --git a/src/packages/components/Charts/Scatters/ScatterCommon/index.vue b/src/packages/components/Charts/Scatters/ScatterCommon/index.vue index 91eba114..fd69109f 100644 --- a/src/packages/components/Charts/Scatters/ScatterCommon/index.vue +++ b/src/packages/components/Charts/Scatters/ScatterCommon/index.vue @@ -69,17 +69,21 @@ const option = computed(() => { watch( () => props.chartConfig.option.dataset, (newData, oldData) => { - if (!isArray(newData)) return - if (Array.isArray(newData)) { - replaceMergeArr.value = ['series'] - // eslint-disable-next-line vue/no-mutating-props - props.chartConfig.option.series = newData.map((item: { dimensions: any[] }, index: number) => ({ - ...seriesItem, - datasetIndex: index - })) - nextTick(() => { - replaceMergeArr.value = [] - }) + try { + if (!isArray(newData)) return + if (Array.isArray(newData)) { + replaceMergeArr.value = ['series'] + // eslint-disable-next-line vue/no-mutating-props + props.chartConfig.option.series = newData.map((item: { dimensions: any[] }, index: number) => ({ + ...seriesItem, + datasetIndex: index + })) + nextTick(() => { + replaceMergeArr.value = [] + }) + } + } catch (error) { + console.log(error) } }, { diff --git a/src/packages/components/Decorates/Mores/CountDown/index.vue b/src/packages/components/Decorates/Mores/CountDown/index.vue index 263d6187..97f8e15a 100644 --- a/src/packages/components/Decorates/Mores/CountDown/index.vue +++ b/src/packages/components/Decorates/Mores/CountDown/index.vue @@ -133,10 +133,14 @@ const renderCountdown: CountdownProps['render'] = ({ hours, minutes, seconds }) } const updateTotalDuration = () => { - countdownActive.value = false - totalDuration.value = useEndDate.value ? endDate.value - new Date().getTime() : dataset.value * 1000 - countdownRef.value?.reset && countdownRef.value?.reset() - countdownActive.value = true + try { + countdownActive.value = false + totalDuration.value = useEndDate.value ? endDate.value - new Date().getTime() : dataset.value * 1000 + countdownRef.value?.reset && countdownRef.value?.reset() + countdownActive.value = true + } catch (error) { + console.log(error) + } } watch( diff --git a/src/packages/components/Decorates/Mores/FlipperNumber/index.vue b/src/packages/components/Decorates/Mores/FlipperNumber/index.vue index c9e8d666..d6c3275d 100644 --- a/src/packages/components/Decorates/Mores/FlipperNumber/index.vue +++ b/src/packages/components/Decorates/Mores/FlipperNumber/index.vue @@ -60,7 +60,11 @@ const updateDatasetHandler = (newVal: string | number) => { watch( () => props.chartConfig.option, newVal => { - updateDatasetHandler((newVal as OptionType).dataset) + try { + updateDatasetHandler((newVal as OptionType).dataset) + } catch (error) { + console.log(error) + } }, { immediate: true, diff --git a/src/packages/components/Decorates/Mores/TimeCommon/index.vue b/src/packages/components/Decorates/Mores/TimeCommon/index.vue index 53317e7e..a8e41763 100644 --- a/src/packages/components/Decorates/Mores/TimeCommon/index.vue +++ b/src/packages/components/Decorates/Mores/TimeCommon/index.vue @@ -11,23 +11,23 @@ diff --git a/src/packages/components/Informations/Mores/WordCloud/index.vue b/src/packages/components/Informations/Mores/WordCloud/index.vue index beab5ebc..4c9626e3 100644 --- a/src/packages/components/Informations/Mores/WordCloud/index.vue +++ b/src/packages/components/Informations/Mores/WordCloud/index.vue @@ -47,9 +47,12 @@ const option = computed(() => { }) const dataSetHandle = (dataset: typeof dataJson) => { - dataset && (props.chartConfig.option.series[0].data = dataset) - - vChartRef.value && isPreview() && vChartRef.value.setOption(props.chartConfig.option) + try { + dataset && (props.chartConfig.option.series[0].data = dataset) + vChartRef.value && isPreview() && vChartRef.value.setOption(props.chartConfig.option) + } catch (error) { + console.log(error) + } } // dataset 无法变更条数的补丁 diff --git a/src/packages/components/Tables/Tables/TableList/index.vue b/src/packages/components/Tables/Tables/TableList/index.vue index f24001ed..5fd3e02d 100644 --- a/src/packages/components/Tables/Tables/TableList/index.vue +++ b/src/packages/components/Tables/Tables/TableList/index.vue @@ -10,19 +10,12 @@
No.{{ item.ranking }}
- {{ - status.mergedConfig.valueFormatter - ? status.mergedConfig.valueFormatter(item) - : item.value - }} + {{ status.mergedConfig.valueFormatter ? status.mergedConfig.valueFormatter(item) : item.value }} {{ unit }}
-
+
@@ -39,8 +32,8 @@ import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore const props = defineProps({ chartConfig: { type: Object as PropType, - required: true, - }, + required: true + } }) const { w, h } = toRefs(props.chartConfig.attr) const { rowNum, unit, color, textColor, borderColor, indexFontSize, leftFontSize, rightFontSize } = toRefs( @@ -50,13 +43,15 @@ const { rowNum, unit, color, textColor, borderColor, indexFontSize, leftFontSize const status = reactive({ mergedConfig: props.chartConfig.option, rowsData: [], - rows: [{ - scroll: 0, - ranking: 1, - name: '', - value: '', - percent: 0 - }], + rows: [ + { + scroll: 0, + ranking: 1, + name: '', + value: '', + percent: 0 + } + ], heights: [0], animationIndex: 0, animationHandler: 0, @@ -81,16 +76,16 @@ const calcRowsData = () => { // abs of max const maxAbs = Math.abs(max) const total = max + minAbs - dataset = dataset.map((row: any, i:number) => ({ + dataset = dataset.map((row: any, i: number) => ({ ...row, ranking: i + 1, - percent: ((row.value + minAbs) / total) * 100, + percent: ((row.value + minAbs) / total) * 100 })) const rowLength = dataset.length if (rowLength > rowNum && rowLength < 2 * rowNum) { dataset = [...dataset, ...dataset] } - dataset = dataset.map((d:any, i:number) => ({ ...d, scroll: i })) + dataset = dataset.map((d: any, i: number) => ({ ...d, scroll: i })) status.rowsData = dataset status.rows = dataset } @@ -134,11 +129,15 @@ const stopAnimation = () => { } const onRestart = async () => { - if (!status.mergedConfig) return - stopAnimation() - calcRowsData() - calcHeights(true) - animation(true) + try { + if (!status.mergedConfig) return + stopAnimation() + calcRowsData() + calcHeights(true) + animation(true) + } catch (error) { + console.log(error) + } } onRestart() diff --git a/src/packages/components/Tables/Tables/TableScrollBoard/index.vue b/src/packages/components/Tables/Tables/TableScrollBoard/index.vue index 3ea2a228..669be3ed 100644 --- a/src/packages/components/Tables/Tables/TableScrollBoard/index.vue +++ b/src/packages/components/Tables/Tables/TableScrollBoard/index.vue @@ -1,24 +1,47 @@