Merge pull request #1437 from dataease/pr@dev@fix_panel-filter

feat: 仪表板tab组件内视图,支持放大和编辑
This commit is contained in:
王嘉豪 2021-12-14 11:45:24 +08:00 committed by GitHub
commit 791a76ca3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 55 additions and 6 deletions

View File

@ -12,6 +12,7 @@
<resultMap id="LinkJumpInfoMap" type="io.dataease.dto.panel.linkJump.PanelLinkJumpInfoDTO" extends="io.dataease.base.mapper.PanelLinkJumpInfoMapper.BaseResultMap">
<result column="source_field_id" jdbcType="VARCHAR" property="sourceFieldId"/>
<result column="source_field_name" jdbcType="VARCHAR" property="sourceFieldName"/>
<result column="publicJumpId" jdbcType="VARCHAR" property="publicJumpId"/>
<collection property="targetViewInfoList" ofType="io.dataease.base.domain.PanelLinkJumpTargetViewInfo">
<result column="target_view_id" jdbcType="VARCHAR" property="targetViewId"/>
<result column="target_field_id" jdbcType="VARCHAR" property="targetFieldId"/>
@ -35,6 +36,7 @@
panel_link_jump_info.jump_type,
panel_link_jump_info.target_panel_id,
panel_link_jump_info.content,
panel_link_mapping.id as publicJumpId,
ifnull( panel_link_jump_info.checked, 0 ) AS checked,
panel_link_jump_target_view_info.target_view_id,
panel_link_jump_target_view_info.target_field_id
@ -45,6 +47,7 @@
LEFT JOIN panel_link_jump_info ON panel_link_jump.id = panel_link_jump_info.link_jump_id
AND dataset_table_field.id = panel_link_jump_info.source_field_id
LEFT JOIN panel_link_jump_target_view_info ON panel_link_jump_info.id = panel_link_jump_target_view_info.link_jump_info_id
LEFT JOIN panel_link_mapping on panel_link_jump_info.target_panel_id = panel_link_mapping.resource_id
WHERE
chart_view.id =#{source_view_id}
ORDER BY

View File

@ -19,6 +19,9 @@ public class PanelLinkJumpInfoDTO extends PanelLinkJumpInfo {
private String sourceJumpInfo;
//存在公共链接的目标仪表板
private String publicJumpId;
private List<PanelLinkJumpTargetViewInfo> targetViewInfoList=new ArrayList<>();// linkType = inner 时使用

View File

@ -40,7 +40,9 @@ export default {
},
computed: {
...mapState([
'linkageSettingStatus'
'linkageSettingStatus',
'componentData',
'canvasStyleData'
])
},
mounted() {

View File

@ -208,7 +208,8 @@ export default {
...mapState([
'canvasStyleData',
'nowPanelTrackInfo',
'nowPanelJumpInfo'
'nowPanelJumpInfo',
'publicLinkStatus'
])
},
@ -399,9 +400,23 @@ export default {
//
if (jumpInfo.linkType === 'inner') {
if (jumpInfo.targetPanelId) {
const url = '#/preview/' + jumpInfo.targetPanelId
localStorage.setItem('jumpInfoParam', JSON.stringify(param))
window.open(url, jumpInfo.jumpType)
if (this.publicLinkStatus) {
// ID
if (jumpInfo.publicJumpId) {
const url = '/link/' + jumpInfo.publicJumpId
window.open(url, jumpInfo.jumpType)
} else {
this.$message({
type: 'warn',
message: '当前是公共链接模式,目标仪表板未设置公共链接,无法跳转',
showClose: true
})
}
} else {
const url = '#/preview/' + jumpInfo.targetPanelId
window.open(url, jumpInfo.jumpType)
}
} else {
this.$message({
type: 'warn',

View File

@ -79,6 +79,8 @@ const data = {
componentGap: 5,
// 移动端布局状态
mobileLayoutStatus: false,
// 公共链接状态(当前是否是公共链接打开)
publicLinkStatus: false,
pcMatrixCount: {
x: 36,
y: 18
@ -326,6 +328,9 @@ const data = {
setMobileLayoutStatus(state, status) {
state.mobileLayoutStatus = status
},
setPublicLinkStatus(state, status) {
state.publicLinkStatus = status
},
// 启用移动端布局
openMobileLayout(state) {
state.componentDataCache = JSON.stringify(state.componentData)

View File

@ -32,6 +32,7 @@ export default {
methods: {
loadInit() {
this.$store.commit('setPublicLinkStatus', true)
debugger
// this.link = getQueryVariable(this.PARAMKEY)
this.link = this.$route.query.link

View File

@ -9,7 +9,7 @@ import { loadResource } from '@/api/link'
import { uuid } from 'vue-uuid'
import Preview from '@/components/canvas/components/Editor/Preview'
import { getPanelAllLinkageInfo } from '@/api/panel/linkage'
import { queryPanelJumpInfo } from '@/api/panel/linkJump'
import { queryPanelJumpInfo, queryTargetPanelJumpInfo } from '@/api/panel/linkJump'
export default {
name: 'LinkView',
@ -43,7 +43,27 @@ export default {
queryPanelJumpInfo(this.resourceId).then(rsp => {
this.$store.commit('setNowPanelJumpInfo', rsp.data)
})
this.show = true
//
const tempParam = localStorage.getItem('jumpInfoParam')
if (tempParam) {
localStorage.removeItem('jumpInfoParam')
const jumpParam = JSON.parse(tempParam)
const jumpRequestParam = {
sourcePanelId: jumpParam.sourcePanelId,
sourceViewId: jumpParam.sourceViewId,
sourceFieldId: jumpParam.sourceFieldId,
targetPanelId: this.panelId
}
this.show = false
//
queryTargetPanelJumpInfo(jumpRequestParam).then(rsp => {
this.show = true
this.$store.commit('setNowTargetPanelJumpInfo', rsp.data)
this.$store.commit('addViewTrackFilter', jumpParam)
})
} else {
this.show = true
}
})
},
resetID(data) {