From c8ab0b3de86e04bec77c3a7e327093b6c3d2b7d5 Mon Sep 17 00:00:00 2001 From: junjun Date: Thu, 22 Dec 2022 23:53:31 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=A7=86=E5=9B=BE):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E4=B8=8B=E9=92=BB=E5=90=8E=E4=B8=8B=E9=92=BB?= =?UTF-8?q?=E5=88=97=E4=BD=8D=E7=BD=AE=E5=81=8F=E7=A7=BB=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/chart/chart/table/table-info.js | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/frontend/src/views/chart/chart/table/table-info.js b/frontend/src/views/chart/chart/table/table-info.js index b469f88edb..321f6398d0 100644 --- a/frontend/src/views/chart/chart/table/table-info.js +++ b/frontend/src/views/chart/chart/table/table-info.js @@ -32,6 +32,21 @@ export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) const drillFilters = JSON.parse(JSON.stringify(chart.drillFilters)) const drillExp = drillFilters[drillFilters.length - 1].datasetTableField + // 记录下钻起始字段的index + let xAxis = [] + try { + xAxis = JSON.parse(chart.xaxis) + } catch (err) { + xAxis = JSON.parse(JSON.stringify(chart.xaxis)) + } + let index = 0 + for (let i = 0; i < xAxis.length; i++) { + if (xAxis[i].id === drillFilters[0].fieldId) { + index = i + break + } + } + // 移除所有下钻字段 const removeField = [] for (let i = 0; i < chart.drillFilters.length; i++) { @@ -78,6 +93,11 @@ export function baseTableInfo(s2, container, chart, action, tableData, pageInfo) } } }) + + // 修正下钻字段的index,获取下钻位置元素添加到index位置,并删除 + const ele = columns[columns.length - 1] + columns.splice(index, 0, ele) + columns.splice(columns.length - 1, 1) } else { fields.forEach(ele => { const f = getCurrentField(chart.xaxis, ele) @@ -190,6 +210,21 @@ export function baseTableNormal(s2, container, chart, action, tableData) { const drillFilters = JSON.parse(JSON.stringify(chart.drillFilters)) const drillExp = drillFilters[drillFilters.length - 1].datasetTableField + // 记录下钻起始字段的index + let xAxis + try { + xAxis = JSON.parse(chart.xaxis) + } catch (err) { + xAxis = JSON.parse(JSON.stringify(chart.xaxis)) + } + let index = 0 + for (let i = 0; i < xAxis.length; i++) { + if (xAxis[i].id === drillFilters[0].fieldId) { + index = i + break + } + } + // 移除所有下钻字段 const removeField = [] for (let i = 0; i < chart.drillFilters.length; i++) { @@ -230,6 +265,17 @@ export function baseTableNormal(s2, container, chart, action, tableData) { } } }) + + // 修正下钻字段的index,获取下钻位置元素添加到index位置,并删除 + let yAxis + try { + yAxis = JSON.parse(chart.yaxis) + } catch (err) { + yAxis = JSON.parse(JSON.stringify(chart.yaxis)) + } + const ele = columns[columns.length - 1 - yAxis.length] + columns.splice(index, 0, ele) + columns.splice(columns.length - 1 - yAxis.length, 1) } else { fields.forEach(ele => { const f = getCurrentField(chart.yaxis, ele)