From bc320aedcc430e6490e009d4dffdf799e934ebdf Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Thu, 10 Apr 2025 15:24:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BB=AA=E8=A1=A8=E6=9D=BF):=20=E4=BB=AA?= =?UTF-8?q?=E8=A1=A8=E6=9D=BF=E8=AE=A1=E7=AE=97=E5=AD=97=E6=AE=B5=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=BF=9B=E8=A1=8C=E5=8A=A0=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core-frontend/src/api/chart.ts | 23 ++++++++++- core/core-frontend/src/api/dataset.ts | 38 +++++++++---------- .../api/visualization/dataVisualization.ts | 22 ++++++++++- .../src/utils/CalculateFields.ts | 36 ++++++++++++++++++ 4 files changed, 95 insertions(+), 24 deletions(-) create mode 100644 core/core-frontend/src/utils/CalculateFields.ts diff --git a/core/core-frontend/src/api/chart.ts b/core/core-frontend/src/api/chart.ts index 0c5ce85fef..1ea918f032 100644 --- a/core/core-frontend/src/api/chart.ts +++ b/core/core-frontend/src/api/chart.ts @@ -1,5 +1,6 @@ import request from '@/config/axios' - +import { originNameHandleWithArr, originNameHandleBackWithArr } from '@/utils/CalculateFields' +import { cloneDeep } from 'lodash-es' export interface Field { id: number | string datasourceId: number | string @@ -28,6 +29,7 @@ export interface ComponentInfo { export const getFieldByDQ = async (id, chartId, data): Promise => { return request.post({ url: `/chart/listByDQ/${id}/${chartId}`, data: data }).then(res => { + originNameHandleBackWithArr(res?.data, ['dimensionList', 'quotaList']) return res?.data }) } @@ -53,10 +55,27 @@ export const deleteChartFieldByChartId = async (chartId): Promise => // 通过图表对象获取数据 export const getData = async (data): Promise => { delete data.data - return request.post({ url: '/chartData/getData', data }).then(res => { + const copyData = cloneDeep(data) + const fields = [ + 'xAxis', + 'xAxisExt', + 'yAxis', + 'yAxisExt', + 'extBubble', + 'extLabel', + 'extStack', + 'extTooltip' + ] + const dataFields = ['fields', 'sourceFields'] + originNameHandleWithArr(copyData, fields) + return request.post({ url: '/chartData/getData', data: copyData }).then(res => { if (res.code === 0) { + originNameHandleBackWithArr(res?.data, fields) + originNameHandleBackWithArr(res?.data?.data, dataFields) return res?.data } else { + originNameHandleBackWithArr(res, fields) + originNameHandleBackWithArr(res?.data, dataFields) return res } }) diff --git a/core/core-frontend/src/api/dataset.ts b/core/core-frontend/src/api/dataset.ts index fe6c5c2f30..bef312c427 100644 --- a/core/core-frontend/src/api/dataset.ts +++ b/core/core-frontend/src/api/dataset.ts @@ -1,5 +1,9 @@ import request from '@/config/axios' -import { Base64 } from 'js-base64' +import { + originNameHandle, + originNameHandleBack, + originNameHandleBackWithArr +} from '@/utils/CalculateFields' import { type Field } from '@/api/chart' import { cloneDeep } from 'lodash-es' import type { BusiTreeRequest } from '@/models/tree/TreeNode' @@ -70,22 +74,6 @@ export interface Table { type: string unableCheck?: boolean } - -const originNameHandle = (arr = []) => { - arr.forEach(ele => { - if (ele.extField === 2) { - ele.originName = Base64.encodeURI(ele.originName) - } - }) -} - -const originNameHandleBack = (arr = []) => { - arr.forEach(ele => { - if (ele.extField === 2) { - ele.originName = Base64.decode(ele.originName) - } - }) -} // 获取权限路 // edit export const saveDatasetTree = async (data: DatasetOrFolder): Promise => { @@ -256,6 +244,9 @@ export const getDsDetails = async (data): Promise => { } export const getDsDetailsWithPerm = async (data): Promise => { return request.post({ url: '/datasetTree/detailWithPerm', data }).then(res => { + ;(res?.data || []).forEach(ele => { + originNameHandleBackWithArr(ele, ['dimensionList', 'quotaList']) + }) return res?.data }) } @@ -273,15 +264,22 @@ export const columnPermissionList = (page: number, limit: number, datasetId: num export const rowPermissionTargetObjList = (datasetId: number, type: string) => request.get({ url: '/dataset/rowPermissions/authObjs/' + datasetId + '/' + type }) -export const listFieldByDatasetGroup = (datasetId: number) => - request.post({ url: '/datasetField/listByDatasetGroup/' + datasetId }) +export const listFieldByDatasetGroup = (datasetId: number) => { + return request.post({ url: '/datasetField/listByDatasetGroup/' + datasetId }).then(res => { + originNameHandleBack(res?.data) + return res + }) +} export const multFieldValuesForPermissions = (data = {}) => { return request.post({ url: '/datasetField/multFieldValuesForPermissions', data }) } export const listFieldsWithPermissions = (datasetId: number) => { - return request.get({ url: '/datasetField/listWithPermissions/' + datasetId }) + return request.get({ url: '/datasetField/listWithPermissions/' + datasetId }).then(res => { + originNameHandleBack(res?.data) + return res + }) } export const copilotFields = (datasetId: number) => { diff --git a/core/core-frontend/src/api/visualization/dataVisualization.ts b/core/core-frontend/src/api/visualization/dataVisualization.ts index 918c64b8ac..f355992ff6 100644 --- a/core/core-frontend/src/api/visualization/dataVisualization.ts +++ b/core/core-frontend/src/api/visualization/dataVisualization.ts @@ -1,5 +1,7 @@ import request from '@/config/axios' import type { BusiTreeRequest } from '@/models/tree/TreeNode' +import { originNameHandleWithArr } from '@/utils/CalculateFields' +import { cloneDeep } from 'lodash-es' export interface ResourceOrFolder { name: string id?: number | string @@ -73,8 +75,24 @@ export const appCanvasNameCheck = async data => export const updateBase = data => request.post({ url: '/dataVisualization/updateBase', data }) -export const updateCanvas = data => - request.post({ url: '/dataVisualization/updateCanvas', data, loading: true }) +export const updateCanvas = data => { + const copyData = cloneDeep(data) + const fields = [ + 'xAxis', + 'xAxisExt', + 'yAxis', + 'yAxisExt', + 'extBubble', + 'extLabel', + 'extStack', + 'extTooltip' + ] + + for (const key in copyData.canvasViewInfo) { + originNameHandleWithArr(copyData.canvasViewInfo[key], fields) + } + return request.post({ url: '/dataVisualization/updateCanvas', data: copyData, loading: true }) +} export const moveResource = data => request.post({ url: '/dataVisualization/move', data }) diff --git a/core/core-frontend/src/utils/CalculateFields.ts b/core/core-frontend/src/utils/CalculateFields.ts new file mode 100644 index 0000000000..986b635e23 --- /dev/null +++ b/core/core-frontend/src/utils/CalculateFields.ts @@ -0,0 +1,36 @@ +import { Base64 } from 'js-base64' + +const originNameHandle = (arr = []) => { + arr.forEach(ele => { + if (ele.extField === 2) { + ele.originName = Base64.encodeURI(ele.originName) + } + }) +} + +const originNameHandleBack = (arr = []) => { + arr.forEach(ele => { + if (ele.extField === 2) { + ele.originName = Base64.decode(ele.originName) + } + }) +} + +const originNameHandleWithArr = (obj = {}, fields) => { + fields.forEach(ele => { + originNameHandle(obj[ele]) + }) +} + +const originNameHandleBackWithArr = (obj = {}, fields) => { + fields.forEach(ele => { + originNameHandleBack(obj[ele]) + }) +} + +export { + originNameHandle, + originNameHandleBack, + originNameHandleWithArr, + originNameHandleBackWithArr +}