Merge pull request #12100 from dataease/pr@dev-v2@refactor_outer-params

refactor: 外部必填参数逻辑优化
This commit is contained in:
王嘉豪 2024-09-09 16:59:58 +08:00 committed by GitHub
commit f61d99e57b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 180 additions and 70 deletions

View File

@ -58,6 +58,11 @@ public class VisualizationOuterParamsInfo implements Serializable {
*/ */
private String defaultValue; private String defaultValue;
/**
* 是否启用默认值
*/
private Boolean enabledDefault;
public String getParamsInfoId() { public String getParamsInfoId() {
return paramsInfoId; return paramsInfoId;
} }
@ -122,6 +127,14 @@ public class VisualizationOuterParamsInfo implements Serializable {
this.defaultValue = defaultValue; this.defaultValue = defaultValue;
} }
public Boolean getEnabledDefault() {
return enabledDefault;
}
public void setEnabledDefault(Boolean enabledDefault) {
this.enabledDefault = enabledDefault;
}
@Override @Override
public String toString() { public String toString() {
return "VisualizationOuterParamsInfo{" + return "VisualizationOuterParamsInfo{" +
@ -133,6 +146,7 @@ public class VisualizationOuterParamsInfo implements Serializable {
", copyId = " + copyId + ", copyId = " + copyId +
", required = " + required + ", required = " + required +
", defaultValue = " + defaultValue + ", defaultValue = " + defaultValue +
", enabledDefault = " + enabledDefault +
"}"; "}";
} }
} }

View File

@ -56,7 +56,7 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams
@Override @Override
public VisualizationOuterParamsDTO queryWithVisualizationId(String visualizationId) { public VisualizationOuterParamsDTO queryWithVisualizationId(String visualizationId) {
VisualizationOuterParamsDTO visualizationOuterParamsDTO = extOuterParamsMapper.queryWithVisualizationId(visualizationId); VisualizationOuterParamsDTO visualizationOuterParamsDTO = extOuterParamsMapper.queryWithVisualizationId(visualizationId);
return visualizationOuterParamsDTO; return visualizationOuterParamsDTO;
} }
@ -77,21 +77,21 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams
String paramsId = UUID.randomUUID().toString(); String paramsId = UUID.randomUUID().toString();
outerParamsDTO.setParamsId(paramsId); outerParamsDTO.setParamsId(paramsId);
VisualizationOuterParams newOuterParams = new VisualizationOuterParams(); VisualizationOuterParams newOuterParams = new VisualizationOuterParams();
BeanUtils.copyBean(newOuterParams,outerParamsDTO); BeanUtils.copyBean(newOuterParams, outerParamsDTO);
outerParamsMapper.insert(newOuterParams); outerParamsMapper.insert(newOuterParams);
Optional.ofNullable(outerParamsDTO.getOuterParamsInfoArray()).orElse(new ArrayList<>()).forEach(outerParamsInfo -> { Optional.ofNullable(outerParamsDTO.getOuterParamsInfoArray()).orElse(new ArrayList<>()).forEach(outerParamsInfo -> {
String paramsInfoId = UUID.randomUUID().toString(); String paramsInfoId = UUID.randomUUID().toString();
outerParamsInfo.setParamsInfoId(paramsInfoId); outerParamsInfo.setParamsInfoId(paramsInfoId);
outerParamsInfo.setParamsId(paramsId); outerParamsInfo.setParamsId(paramsId);
VisualizationOuterParamsInfo newOuterParamsInfo = new VisualizationOuterParamsInfo(); VisualizationOuterParamsInfo newOuterParamsInfo = new VisualizationOuterParamsInfo();
BeanUtils.copyBean(newOuterParamsInfo,outerParamsInfo); BeanUtils.copyBean(newOuterParamsInfo, outerParamsInfo);
outerParamsInfoMapper.insert(newOuterParamsInfo); outerParamsInfoMapper.insert(newOuterParamsInfo);
Optional.ofNullable(outerParamsInfo.getTargetViewInfoList()).orElse(new ArrayList<>()).forEach(targetViewInfo -> { Optional.ofNullable(outerParamsInfo.getTargetViewInfoList()).orElse(new ArrayList<>()).forEach(targetViewInfo -> {
String targetViewInfoId = UUID.randomUUID().toString(); String targetViewInfoId = UUID.randomUUID().toString();
targetViewInfo.setTargetId(targetViewInfoId); targetViewInfo.setTargetId(targetViewInfoId);
targetViewInfo.setParamsInfoId(paramsInfoId); targetViewInfo.setParamsInfoId(paramsInfoId);
VisualizationOuterParamsTargetViewInfo newOuterParamsTargetViewInfo = new VisualizationOuterParamsTargetViewInfo(); VisualizationOuterParamsTargetViewInfo newOuterParamsTargetViewInfo = new VisualizationOuterParamsTargetViewInfo();
BeanUtils.copyBean(newOuterParamsTargetViewInfo,targetViewInfo); BeanUtils.copyBean(newOuterParamsTargetViewInfo, targetViewInfo);
outerParamsTargetViewInfoMapper.insert(newOuterParamsTargetViewInfo); outerParamsTargetViewInfoMapper.insert(newOuterParamsTargetViewInfo);
}); });
}); });
@ -101,28 +101,30 @@ public class VisualizationOuterParamsService implements VisualizationOuterParams
@Override @Override
public VisualizationOuterParamsBaseResponse getOuterParamsInfo(String visualizationId) { public VisualizationOuterParamsBaseResponse getOuterParamsInfo(String visualizationId) {
List<VisualizationOuterParamsInfoDTO> result = extOuterParamsMapper.getVisualizationOuterParamsInfo(visualizationId); List<VisualizationOuterParamsInfoDTO> result = extOuterParamsMapper.getVisualizationOuterParamsInfo(visualizationId);
return new VisualizationOuterParamsBaseResponse(Optional.ofNullable(result).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(VisualizationOuterParamsInfoDTO::getSourceInfo, VisualizationOuterParamsInfoDTO::getTargetInfoList))); return new VisualizationOuterParamsBaseResponse(Optional.ofNullable(result).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(VisualizationOuterParamsInfoDTO::getSourceInfo, VisualizationOuterParamsInfoDTO::getTargetInfoList)),
Optional.ofNullable(result).orElse(new ArrayList<>()).stream().collect(Collectors.toMap(VisualizationOuterParamsInfoDTO::getSourceInfo, paramsInfo -> paramsInfo))
);
} }
@Override @Override
public List<CoreDatasetGroupVO> queryDsWithVisualizationId(String visualizationId) { public List<CoreDatasetGroupVO> queryDsWithVisualizationId(String visualizationId) {
List<CoreDatasetGroupVO> result = extOuterParamsMapper.queryDsWithVisualizationId(visualizationId); List<CoreDatasetGroupVO> result = extOuterParamsMapper.queryDsWithVisualizationId(visualizationId);
if(!CollectionUtils.isEmpty(result)){ if (!CollectionUtils.isEmpty(result)) {
result.forEach(coreDatasetGroupVO -> { result.forEach(coreDatasetGroupVO -> {
List<CoreDatasetTableFieldVO> fields = coreDatasetGroupVO.getDatasetFields(); List<CoreDatasetTableFieldVO> fields = coreDatasetGroupVO.getDatasetFields();
QueryWrapper<CoreDatasetTable> wrapper = new QueryWrapper<>(); QueryWrapper<CoreDatasetTable> wrapper = new QueryWrapper<>();
wrapper.eq("dataset_group_id", coreDatasetGroupVO.getId()); wrapper.eq("dataset_group_id", coreDatasetGroupVO.getId());
List<CoreDatasetTable> tableResult = coreDatasetTableMapper.selectList(wrapper); List<CoreDatasetTable> tableResult = coreDatasetTableMapper.selectList(wrapper);
if(!CollectionUtils.isEmpty(tableResult)){ if (!CollectionUtils.isEmpty(tableResult)) {
tableResult.forEach(coreDatasetTable -> { tableResult.forEach(coreDatasetTable -> {
String sqlVarDetail = coreDatasetTable.getSqlVariableDetails(); String sqlVarDetail = coreDatasetTable.getSqlVariableDetails();
if(StringUtils.isNotEmpty(sqlVarDetail)){ if (StringUtils.isNotEmpty(sqlVarDetail)) {
TypeReference<List<SqlVariableDetails>> listTypeReference = new TypeReference<List<SqlVariableDetails>>() { TypeReference<List<SqlVariableDetails>> listTypeReference = new TypeReference<List<SqlVariableDetails>>() {
}; };
List<SqlVariableDetails> defaultsSqlVariableDetails = JsonUtil.parseList(sqlVarDetail, listTypeReference); List<SqlVariableDetails> defaultsSqlVariableDetails = JsonUtil.parseList(sqlVarDetail, listTypeReference);
defaultsSqlVariableDetails.forEach(sqlVariableDetails -> { defaultsSqlVariableDetails.forEach(sqlVariableDetails -> {
String varFieldId = coreDatasetTable.getId()+"|DE|"+sqlVariableDetails.getVariableName(); String varFieldId = coreDatasetTable.getId() + "|DE|" + sqlVariableDetails.getVariableName();
fields.add(new CoreDatasetTableFieldVO(varFieldId,sqlVariableDetails.getVariableName(), DeTypeConstants.DE_STRING)); fields.add(new CoreDatasetTableFieldVO(varFieldId, sqlVariableDetails.getVariableName(), DeTypeConstants.DE_STRING));
}); });
} }
}); });

View File

@ -1,4 +1,5 @@
ALTER TABLE `visualization_outer_params_info` ALTER TABLE `visualization_outer_params_info`
ADD COLUMN `required` tinyint(1) DEFAULT 0 COMMENT '是否必填', ADD COLUMN `required` tinyint(1) DEFAULT 0 COMMENT '是否必填',
ADD COLUMN `default_value` longtext NULL COMMENT '默认值 JSON格式'; ADD COLUMN `default_value` longtext NULL COMMENT '默认值 JSON格式';
ADD COLUMN `enabled_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否启用默认值';
update visualization_outer_params_info set required =0; update visualization_outer_params_info set required =0;

View File

@ -1,4 +1,5 @@
ALTER TABLE `visualization_outer_params_info` ALTER TABLE `visualization_outer_params_info`
ADD COLUMN `required` tinyint(1) DEFAULT 0 COMMENT '是否必填', ADD COLUMN `required` tinyint(1) DEFAULT 0 COMMENT '是否必填',
ADD COLUMN `default_value` longtext NULL COMMENT '默认值 JSON格式'; ADD COLUMN `default_value` longtext NULL COMMENT '默认值 JSON格式';
ADD COLUMN `enabled_default` tinyint(1) NULL DEFAULT 0 COMMENT '是否启用默认值';
update visualization_outer_params_info set required =0; update visualization_outer_params_info set required =0;

View File

@ -16,8 +16,9 @@
<result column="params_id" jdbcType="VARCHAR" property="paramsId" /> <result column="params_id" jdbcType="VARCHAR" property="paramsId" />
<result column="param_name" jdbcType="VARCHAR" property="paramName" /> <result column="param_name" jdbcType="VARCHAR" property="paramName" />
<result column="checked" jdbcType="BIT" property="checked" /> <result column="checked" jdbcType="BIT" property="checked" />
<result column="required" jdbcType="BIT" property="checked" /> <result column="required" jdbcType="BIT" property="required" />
<result column="default_value" jdbcType="VARCHAR" property="copyFrom" /> <result column="default_value" jdbcType="VARCHAR" property="defaultValue" />
<result column="enabled_default" jdbcType="BIT" property="enabledDefault" />
<result column="copy_from" jdbcType="VARCHAR" property="copyFrom" /> <result column="copy_from" jdbcType="VARCHAR" property="copyFrom" />
<result column="copy_id" jdbcType="VARCHAR" property="copyId" /> <result column="copy_id" jdbcType="VARCHAR" property="copyId" />
</resultMap> </resultMap>
@ -51,6 +52,9 @@
<resultMap id="AllOuterParamsMap" type="io.dataease.api.visualization.dto.VisualizationOuterParamsInfoDTO"> <resultMap id="AllOuterParamsMap" type="io.dataease.api.visualization.dto.VisualizationOuterParamsInfoDTO">
<result column="sourceInfo" jdbcType="VARCHAR" property="sourceInfo"/> <result column="sourceInfo" jdbcType="VARCHAR" property="sourceInfo"/>
<result column="required" jdbcType="VARCHAR" property="required"/>
<result column="default_value" jdbcType="VARCHAR" property="defaultValue"/>
<result column="enabled_default" jdbcType="VARCHAR" property="enabledDefault"/>
<collection property="targetInfoList" ofType="String"> <collection property="targetInfoList" ofType="String">
<result column="targetInfo" jdbcType="VARCHAR"/> <result column="targetInfo" jdbcType="VARCHAR"/>
</collection> </collection>
@ -61,6 +65,9 @@
pop.visualization_id, pop.visualization_id,
popi.params_info_id, popi.params_info_id,
popi.param_name, popi.param_name,
popi.enabled_default,
popi.required,
popi.default_value,
ifnull( popi.checked, 0 ) AS checked, ifnull( popi.checked, 0 ) AS checked,
poptvi.target_view_id, poptvi.target_view_id,
poptvi.target_ds_id, poptvi.target_ds_id,
@ -118,7 +125,10 @@
<select id="getVisualizationOuterParamsInfo" resultMap="AllOuterParamsMap"> <select id="getVisualizationOuterParamsInfo" resultMap="AllOuterParamsMap">
SELECT DISTINCT SELECT DISTINCT
param_name AS sourceInfo, popi.param_name AS sourceInfo,
popi.required AS required,
popi.default_value AS default_value,
popi.enabled_default AS enabled_default,
CONCAT( poptvi.target_view_id, '#', poptvi.target_field_id ) AS targetInfo CONCAT( poptvi.target_view_id, '#', poptvi.target_field_id ) AS targetInfo
FROM FROM
visualization_outer_params pop visualization_outer_params pop

View File

@ -68,7 +68,7 @@
</el-tree> </el-tree>
</el-row> </el-row>
</el-col> </el-col>
<el-col :span="14" class="preview-show"> <el-col :span="13" class="preview-show">
<el-row v-if="state.curNodeId"> <el-row v-if="state.curNodeId">
<el-row class="new-params-title"> 选择参数关联组件 </el-row> <el-row class="new-params-title"> 选择参数关联组件 </el-row>
<el-row class="new-params-filter" v-if="state.outerParamsInfo?.filterInfo?.length"> <el-row class="new-params-filter" v-if="state.outerParamsInfo?.filterInfo?.length">
@ -246,9 +246,31 @@
<empty-background description="请配置参数" img-type="noneWhite" /> <empty-background description="请配置参数" img-type="noneWhite" />
</div> </div>
</el-col> </el-col>
<el-col :span="4" class="params-attach-setting"> <el-col :span="5" class="params-attach-setting">
<el-row v-if="state.curNodeId"> <el-row v-if="state.curNodeId">
<el-row class="new-params-title"> 参数配置 </el-row> <el-row class="new-params-title"> 参数配置 </el-row>
<el-row class="params-attach-content">
<el-row>
<el-checkbox v-model="state.outerParamsInfo.required">必填 </el-checkbox>
</el-row>
<el-row>
<el-checkbox v-model="state.outerParamsInfo.enabledDefault">默认值 </el-checkbox>
</el-row>
<el-input
:ref="el => setArgRef(el, state.outerParamsInfo.paramsInfoId)"
:placeholder="'请输入参数'"
v-model="state.outerParamsInfo.defaultValue"
type="textarea"
:autosize="{ minRows: 4, maxRows: 8 }"
@change="
val =>
validateArgs(
state.outerParamsInfo.defaultValue,
state.outerParamsInfo.paramsInfoId
)
"
/>
</el-row>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
@ -265,13 +287,12 @@
import { ref, reactive, computed, nextTick } from 'vue' import { ref, reactive, computed, nextTick } from 'vue'
import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain' import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { ElCol, ElMessage } from 'element-plus-secondary' import { ElCol, ElInput, ElMessage } from 'element-plus-secondary'
import { useI18n } from '@/hooks/web/useI18n' import { useI18n } from '@/hooks/web/useI18n'
import { deepCopy } from '@/utils/utils' import { deepCopy } from '@/utils/utils'
import generateID from '@/utils/generateID' import generateID from '@/utils/generateID'
import { queryWithVisualizationId, updateOuterParamsSet } from '@/api/visualization/outerParams' import { queryWithVisualizationId, updateOuterParamsSet } from '@/api/visualization/outerParams'
import { queryOuterParamsDsInfo, viewDetailList } from '@/api/visualization/dataVisualization' import { queryOuterParamsDsInfo, viewDetailList } from '@/api/visualization/dataVisualization'
import checkArrayRepeat from '@/utils/check'
import HandleMore from '@/components/handle-more/src/HandleMore.vue' import HandleMore from '@/components/handle-more/src/HandleMore.vue'
import { fieldType } from '@/utils/attr' import { fieldType } from '@/utils/attr'
import EmptyBackground from '@/components/empty-background/src/EmptyBackground.vue' import EmptyBackground from '@/components/empty-background/src/EmptyBackground.vue'
@ -318,6 +339,9 @@ const state = reactive({
outerParamsInfo: { outerParamsInfo: {
content: '', content: '',
linkType: '', linkType: '',
required: false,
enabledDefault: false,
defaultValue: null,
targetViewInfoList: [], targetViewInfoList: [],
paramsInfoId: null paramsInfoId: null
}, },
@ -326,7 +350,8 @@ const state = reactive({
paramName: '', paramName: '',
checked: true, checked: true,
required: false, required: false,
defaultValue: {}, enabledDefault: false,
defaultValue: null,
targetViewInfoList: [] targetViewInfoList: []
}, },
defaultTargetViewInfo: { defaultTargetViewInfo: {
@ -350,6 +375,49 @@ const state = reactive({
} }
}) })
const argRefs = ref({})
const setArgRef = (el, id) => {
if (el) {
argRefs.value[id] = el
}
}
const validateArgs = (val, id) => {
const cref = argRefs.value[id]
const e = cref.input
if (val === null || val === '' || typeof val === 'undefined') {
e.style.color = null
e.parentNode.removeAttribute('style')
const child = e.parentNode.querySelector('.error-msg')
if (child) {
e.parentNode.removeChild(child)
}
return true
}
try {
JSON.parse(val)
e.style.color = null
e.parentNode.removeAttribute('style')
const child = e.parentNode.querySelector('.error-msg')
if (child) {
e.parentNode.removeChild(child)
}
return true
} catch (error) {
e.style.color = 'red'
e.parentNode.setAttribute('style', 'box-shadow: 0 0 0 1px red inset;')
const child = e.parentNode.querySelector('.error-msg')
if (!child) {
const errorDom = document.createElement('div')
errorDom.className = 'error-msg'
errorDom.innerText = '格式错误'
e.parentNode.appendChild(errorDom)
}
return false
}
}
const viewSelectedField = computed(() => const viewSelectedField = computed(() =>
state.outerParamsInfo?.targetViewInfoList?.map(targetViewInfo => targetViewInfo.targetViewId) state.outerParamsInfo?.targetViewInfoList?.map(targetViewInfo => targetViewInfo.targetViewId)
) )
@ -983,4 +1051,18 @@ defineExpose({
.params-attach-setting { .params-attach-setting {
border-left: 1px solid #e6e6e6; border-left: 1px solid #e6e6e6;
} }
.params-attach-content {
padding: 16px;
}
:deep(.error-msg) {
color: red;
position: fixed;
z-index: 9;
font-size: 10px;
height: 10px;
margin-bottom: 12px;
margin-right: -80px;
}
</style> </style>

View File

@ -68,6 +68,7 @@ onBeforeMount(async () => {
} catch (e) { } catch (e) {
console.error(e) console.error(e)
ElMessage.error(t('visualization.outer_param_decode_error')) ElMessage.error(t('visualization.outer_param_decode_error'))
return
} }
} }
if (tokenInfo && Object.keys(tokenInfo).length) { if (tokenInfo && Object.keys(tokenInfo).length) {

View File

@ -72,6 +72,7 @@ onBeforeMount(async () => {
} catch (e) { } catch (e) {
console.error(e) console.error(e)
ElMessage.error(t('visualization.outer_param_decode_error')) ElMessage.error(t('visualization.outer_param_decode_error'))
return
} }
} }
const chartId = embeddedParams?.chartId || embeddedStore.chartId const chartId = embeddedParams?.chartId || embeddedStore.chartId

View File

@ -24,6 +24,7 @@ import {
import { get, set } from 'lodash-es' import { get, set } from 'lodash-es'
import { viewFieldTimeTrans } from '@/utils/viewUtils' import { viewFieldTimeTrans } from '@/utils/viewUtils'
import { useAppearanceStoreWithOut } from '@/store/modules/appearance' import { useAppearanceStoreWithOut } from '@/store/modules/appearance'
import { ElMessage } from 'element-plus-secondary'
export const dvMainStore = defineStore('dataVisualization', { export const dvMainStore = defineStore('dataVisualization', {
state: () => { state: () => {
@ -114,6 +115,8 @@ export const dvMainStore = defineStore('dataVisualization', {
nowPanelJumpInfoTargetPanel: {}, nowPanelJumpInfoTargetPanel: {},
// 当前仪表板的外部参数信息 // 当前仪表板的外部参数信息
nowPanelOuterParamsInfo: {}, nowPanelOuterParamsInfo: {},
// 当前仪表板的外部参数基础信息
nowPanelOuterParamsBaseInfo: null,
// 拖拽的组件信息 // 拖拽的组件信息
dragComponentInfo: null, dragComponentInfo: null,
// 移动端布局状态 // 移动端布局状态
@ -887,6 +890,7 @@ export const dvMainStore = defineStore('dataVisualization', {
}, },
setNowPanelOuterParamsInfo(outerParamsInfo) { setNowPanelOuterParamsInfo(outerParamsInfo) {
this.nowPanelOuterParamsInfo = outerParamsInfo.outerParamsInfoMap this.nowPanelOuterParamsInfo = outerParamsInfo.outerParamsInfoMap
this.nowPanelOuterParamsBaseInfo = outerParamsInfo.outerParamsInfoBaseMap
}, },
// 添加联动 下钻 等查询组件 // 添加联动 下钻 等查询组件
addViewTrackFilter(data) { addViewTrackFilter(data) {
@ -939,8 +943,40 @@ export const dvMainStore = defineStore('dataVisualization', {
}) })
}, },
// 添加外部参数的过滤条件 // 添加外部参数的过滤条件
addOuterParamsFilter(params, curComponentData = this.componentData, source = 'inner') { addOuterParamsFilter(paramsPre, curComponentData = this.componentData, source = 'inner') {
// params 结构 {key1:value1,key2:value2} // params 结构 {key1:value1,key2:value2}
const params = {}
if (this.nowPanelOuterParamsBaseInfo) {
let errorCount = 0
let errorMes = ''
Object.keys(this.nowPanelOuterParamsBaseInfo).forEach(key => {
const targetInfo = this.nowPanelOuterParamsBaseInfo[key]
const userParams = paramsPre[key]
const userParamsIsNull = !userParams || userParams.length === 0
if (targetInfo.required && userParamsIsNull) {
// 要求用户必填 但是用户没有输入参数
errorCount++
errorMes = errorMes + key + ';'
} else if (
userParamsIsNull &&
targetInfo.enabledDefault &&
targetInfo.defaultValue &&
targetInfo.defaultValue.length > 0
) {
// 非必填时 用户没有填写参数 但是启用默认值且有预设默认值时
params[key] = JSON.parse(targetInfo.defaultValue)
} else if (!userParamsIsNull) {
params[key] = paramsPre[key]
}
})
if (errorCount > 0) {
ElMessage.error('参数错误 ' + errorMes + '为必填参数')
return
}
} else {
return
}
if (params) { if (params) {
const preActiveComponentIds = [] const preActiveComponentIds = []
const trackInfo = this.nowPanelOuterParamsInfo const trackInfo = this.nowPanelOuterParamsInfo

View File

@ -86,6 +86,7 @@ const loadCanvasDataAsync = async (dvId, dvType) => {
} catch (e) { } catch (e) {
console.error(e) console.error(e)
ElMessage.error(t('visualization.outer_param_decode_error')) ElMessage.error(t('visualization.outer_param_decode_error'))
return
} }
} }
initCanvasDataMobile( initCanvasDataMobile(

View File

@ -1,5 +1,6 @@
package io.dataease.api.visualization.response; package io.dataease.api.visualization.response;
import io.dataease.api.visualization.dto.VisualizationOuterParamsInfoDTO;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -15,8 +16,11 @@ public class VisualizationOuterParamsBaseResponse {
// 获取仪表板外部参数映射信息 // 获取仪表板外部参数映射信息
private Map<String, List<String>> outerParamsInfoMap; private Map<String, List<String>> outerParamsInfoMap;
public VisualizationOuterParamsBaseResponse(Map<String, List<String>> outerParamsInfoMap) { private Map<String,VisualizationOuterParamsInfoDTO> outerParamsInfoBaseMap;
public VisualizationOuterParamsBaseResponse(Map<String, List<String>> outerParamsInfoMap,Map<String,VisualizationOuterParamsInfoDTO> outerParamsInfoBaseMap) {
this.outerParamsInfoMap = outerParamsInfoMap; this.outerParamsInfoMap = outerParamsInfoMap;
this.outerParamsInfoBaseMap = outerParamsInfoBaseMap;
} }
public VisualizationOuterParamsBaseResponse() { public VisualizationOuterParamsBaseResponse() {

View File

@ -1,6 +1,7 @@
package io.dataease.api.visualization.vo; package io.dataease.api.visualization.vo;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@ -12,6 +13,7 @@ import java.io.Serializable;
* @author fit2cloud * @author fit2cloud
* @since 2024-03-08 * @since 2024-03-08
*/ */
@Data
public class VisualizationOuterParamsInfoVO implements Serializable { public class VisualizationOuterParamsInfoVO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -47,7 +49,10 @@ public class VisualizationOuterParamsInfoVO implements Serializable {
*/ */
private String defaultValue; private String defaultValue;
/**
* 是否启用默认值
*/
private Boolean enabledDefault;
/** /**
* 复制来源 * 复制来源
*/ */
@ -58,54 +63,6 @@ public class VisualizationOuterParamsInfoVO implements Serializable {
*/ */
private String copyId; private String copyId;
public String getParamsInfoId() {
return paramsInfoId;
}
public void setParamsInfoId(String paramsInfoId) {
this.paramsInfoId = paramsInfoId;
}
public String getParamsId() {
return paramsId;
}
public void setParamsId(String paramsId) {
this.paramsId = paramsId;
}
public String getParamName() {
return paramName;
}
public void setParamName(String paramName) {
this.paramName = paramName;
}
public Boolean getChecked() {
return checked;
}
public void setChecked(Boolean checked) {
this.checked = checked;
}
public String getCopyFrom() {
return copyFrom;
}
public void setCopyFrom(String copyFrom) {
this.copyFrom = copyFrom;
}
public String getCopyId() {
return copyId;
}
public void setCopyId(String copyId) {
this.copyId = copyId;
}
@Override @Override
public String toString() { public String toString() {
return "VisualizationOuterParamsInfo{" + return "VisualizationOuterParamsInfo{" +