forked from github/dataease
Merge pull request #12100 from dataease/pr@dev-v2@refactor_outer-params
refactor: 外部必填参数逻辑优化
This commit is contained in:
commit
f61d99e57b
@ -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 +
|
||||||
"}";
|
"}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -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;
|
@ -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;
|
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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) {
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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(
|
||||||
|
@ -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() {
|
||||||
|
@ -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{" +
|
||||||
|
Loading…
Reference in New Issue
Block a user