fix(仪表板): 仪表板计算字段没有进行加密

This commit is contained in:
dataeaseShu
2025-04-10 15:24:37 +08:00
committed by Junjun
parent c1e119f231
commit bc320aedcc
4 changed files with 95 additions and 24 deletions

View File

@@ -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<IResponse> => {
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<IResponse> =>
// 通过图表对象获取数据
export const getData = async (data): Promise<IResponse> => {
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
}
})

View File

@@ -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<IResponse> => {
@@ -256,6 +244,9 @@ export const getDsDetails = async (data): Promise<DatasetDetail[]> => {
}
export const getDsDetailsWithPerm = async (data): Promise<DatasetDetail[]> => {
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) => {

View File

@@ -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 })

View File

@@ -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
}