提交 3749e9c0 authored 作者: fit2cloud-chenyw's avatar fit2cloud-chenyw

fix: 移动端查看分享仪表板报错

上级 6e82e707
package io.dataease.base.mapper.ext; package io.dataease.base.mapper.ext;
import io.dataease.mobile.dto.HomeItemDTO; import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public interface HomeMapper { public interface HomeMapper {
List<HomeItemDTO> queryStore(Map<String, Object> param); List<HomeItemDTO> queryStore(Map<String, Object> param);
List<HomeItemDTO> queryHistory(); List<HomeItemDTO> queryHistory();
List<HomeItemDTO> queryShare(Map<String, Object> param); List<HomeItemShareDTO> queryShare(Map<String, Object> param);
} }
...@@ -18,14 +18,17 @@ ...@@ -18,14 +18,17 @@
order by s.create_time desc order by s.create_time desc
</select> </select>
<select id="queryShare" resultType="io.dataease.mobile.dto.HomeItemDTO"> <select id="queryShare" resultType="io.dataease.mobile.dto.HomeItemShareDTO">
select select
distinct(s.panel_group_id) as id, distinct(s.panel_group_id) as id,
g.name as title, g.name as title,
s.create_time as `time` s.create_time as `time`,
u.nick_name,
u.user_id
from panel_share s from panel_share s
inner join panel_group g inner join panel_group g
on s.panel_group_id = g.id on s.panel_group_id = g.id
left join sys_user u on u.username = IFNULL(s.granter,g.create_by)
where where
g.mobile_layout = 1 and ( g.mobile_layout = 1 and (
( s.target_id = #{userId} and s.type = 0 ) or ( s.target_id = #{userId} and s.type = 0 ) or
......
...@@ -2,6 +2,7 @@ package io.dataease.mobile.api; ...@@ -2,6 +2,7 @@ package io.dataease.mobile.api;
import io.dataease.commons.utils.Pager; import io.dataease.commons.utils.Pager;
import io.dataease.mobile.dto.HomeItemDTO; import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import io.dataease.mobile.dto.HomeRequest; import io.dataease.mobile.dto.HomeRequest;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -15,6 +16,8 @@ public interface HomeApi { ...@@ -15,6 +16,8 @@ public interface HomeApi {
@PostMapping("/query") @PostMapping("/query")
Pager<List<HomeItemDTO>> query(@RequestBody HomeRequest request); Pager<List<HomeItemDTO>> query(@RequestBody HomeRequest request);
@PostMapping("/queryShares")
Pager<List<HomeItemShareDTO>> queryShares(@RequestBody HomeRequest request);
@PostMapping("/detail/{id}") @PostMapping("/detail/{id}")
Object detail(@PathVariable String id); Object detail(@PathVariable String id);
......
package io.dataease.mobile.dto;
import lombok.Data;
@Data
public class HomeItemShareDTO extends HomeItemDTO {
private String nickName;
private Long userId;
}
...@@ -3,6 +3,7 @@ package io.dataease.mobile.server; ...@@ -3,6 +3,7 @@ package io.dataease.mobile.server;
import io.dataease.commons.utils.Pager; import io.dataease.commons.utils.Pager;
import io.dataease.mobile.api.HomeApi; import io.dataease.mobile.api.HomeApi;
import io.dataease.mobile.dto.HomeItemDTO; import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import io.dataease.mobile.dto.HomeRequest; import io.dataease.mobile.dto.HomeRequest;
import io.dataease.mobile.service.HomeService; import io.dataease.mobile.service.HomeService;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -15,8 +16,6 @@ public class HomeServer implements HomeApi { ...@@ -15,8 +16,6 @@ public class HomeServer implements HomeApi {
@Resource @Resource
private HomeService homeService; private HomeService homeService;
@Override @Override
public Pager<List<HomeItemDTO>> query(HomeRequest request) { public Pager<List<HomeItemDTO>> query(HomeRequest request) {
return homeService.query(request); return homeService.query(request);
...@@ -27,5 +26,10 @@ public class HomeServer implements HomeApi { ...@@ -27,5 +26,10 @@ public class HomeServer implements HomeApi {
return null; return null;
} }
@Override
public Pager<List<HomeItemShareDTO>> queryShares(HomeRequest request) {
return homeService.queryShares(request);
}
} }
...@@ -8,6 +8,7 @@ import io.dataease.commons.utils.AuthUtils; ...@@ -8,6 +8,7 @@ import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.PageUtils; import io.dataease.commons.utils.PageUtils;
import io.dataease.commons.utils.Pager; import io.dataease.commons.utils.Pager;
import io.dataease.mobile.dto.HomeItemDTO; import io.dataease.mobile.dto.HomeItemDTO;
import io.dataease.mobile.dto.HomeItemShareDTO;
import io.dataease.base.mapper.ext.HomeMapper; import io.dataease.base.mapper.ext.HomeMapper;
import io.dataease.mobile.dto.HomeRequest; import io.dataease.mobile.dto.HomeRequest;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -29,27 +30,28 @@ public class HomeService { ...@@ -29,27 +30,28 @@ public class HomeService {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("userId", user.getUserId()); param.put("userId", user.getUserId());
switch (request.getType()){ param.put("userId", user.getUserId());
if (null != request.getLastTime()) {
param.put("lastTime", request.getLastTime());
case 2: }
return PageUtils.setPageInfo(page, homeMapper.queryStore(param));
}
Long deptId = user.getDeptId(); public Pager<List<HomeItemShareDTO>> queryShares(HomeRequest request) {
List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList()); CurrentUserDto user = AuthUtils.getUser();
Page<Object> page = PageHelper.startPage(1, 13, true);
param.put("deptId", deptId); Map<String, Object> param = new HashMap<>();
param.put("roleIds", roleIds); param.put("userId", user.getUserId());
if (null != request.getLastTime()) { Long deptId = user.getDeptId();
param.put("lastTime", request.getLastTime()); List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
}
return PageUtils.setPageInfo(page, homeMapper.queryShare(param)); param.put("deptId", deptId);
default: param.put("roleIds", roleIds);
param.put("userId", user.getUserId()); if (null != request.getLastTime()) {
if (null != request.getLastTime()) { param.put("lastTime", request.getLastTime());
param.put("lastTime", request.getLastTime());
}
return PageUtils.setPageInfo(page, homeMapper.queryStore(param));
} }
return PageUtils.setPageInfo(page, homeMapper.queryShare(param));
} }
} }
...@@ -22,7 +22,7 @@ export function proxyInitPanelData(panelId, proxy, callback) { ...@@ -22,7 +22,7 @@ export function proxyInitPanelData(panelId, proxy, callback) {
queryPanelJumpInfo(panelId, proxy).then(rsp => { queryPanelJumpInfo(panelId, proxy).then(rsp => {
store.commit('setNowPanelJumpInfo', rsp.data) store.commit('setNowPanelJumpInfo', rsp.data)
}) })
callback(response) callback && callback(response)
}) })
} }
......
...@@ -8,6 +8,7 @@ import Preview from './Preview' ...@@ -8,6 +8,7 @@ import Preview from './Preview'
import { uuid } from 'vue-uuid' import { uuid } from 'vue-uuid'
import { initPanelData } from '@/api/panel/panel' import { initPanelData } from '@/api/panel/panel'
import { queryTargetPanelJumpInfo } from '@/api/panel/linkJump' import { queryTargetPanelJumpInfo } from '@/api/panel/linkJump'
import { proxyInitPanelData } from '@/api/panel/shareProxy'
export default { export default {
components: { Preview }, components: { Preview },
...@@ -15,12 +16,8 @@ export default { ...@@ -15,12 +16,8 @@ export default {
return { return {
dataLoading: false, dataLoading: false,
backScreenShot: false, backScreenShot: false,
mainHeight: '100vh!important' mainHeight: '100vh!important',
} shareUserId: null
},
watch: {
'$route.params.reportId': function() {
this.restore()
} }
}, },
computed: { computed: {
...@@ -37,6 +34,7 @@ export default { ...@@ -37,6 +34,7 @@ export default {
this.restore() this.restore()
} }
}, },
mounted() { mounted() {
this.restore() this.restore()
}, },
...@@ -45,35 +43,59 @@ export default { ...@@ -45,35 +43,59 @@ export default {
this.mainHeight = mainHeight this.mainHeight = mainHeight
}, },
restore() { restore() {
debugger
const _this = this const _this = this
_this.dataLoading = true _this.dataLoading = true
_this.panelId = this.$route.params.reportId if (!this.$route.params.reportId) {
return
}
const arr = this.$route.params.reportId.split('|')
if (!arr || arr.length === 0) {
return
}
_this.panelId = arr[0]
if (arr.length > 1) {
this.shareUserId = arr[1]
}
if (_this.$route.params.backScreenShot !== undefined) { if (_this.$route.params.backScreenShot !== undefined) {
_this.backScreenShot = _this.$route.params.backScreenShot _this.backScreenShot = _this.$route.params.backScreenShot
} }
// 加载视图数据 // 加载视图数据
initPanelData(this.panelId, function() { if (this.shareUserId !== null) {
_this.dataLoading = false const param = { userId: this.shareUserId }
// 如果含有跳转参数 进行触发 proxyInitPanelData(this.panelId, param, () => {
const tempParam = localStorage.getItem('jumpInfoParam') this.initCallBack()
if (tempParam) { })
localStorage.removeItem('jumpInfoParam') } else {
const jumpParam = JSON.parse(tempParam) initPanelData(this.panelId, () => {
const jumpRequestParam = { this.initCallBack()
sourcePanelId: jumpParam.sourcePanelId, })
sourceViewId: jumpParam.sourceViewId, }
sourceFieldId: jumpParam.sourceFieldId, },
targetPanelId: _this.panelId
} initCallBack() {
_this.dataLoading = true this.dataLoading = false
// 刷新跳转目标仪表板联动信息 // 如果含有跳转参数 进行触发
queryTargetPanelJumpInfo(jumpRequestParam).then(rsp => { const tempParam = localStorage.getItem('jumpInfoParam')
_this.dataLoading = false if (tempParam) {
_this.$store.commit('setNowTargetPanelJumpInfo', rsp.data) localStorage.removeItem('jumpInfoParam')
_this.$store.commit('addViewTrackFilter', jumpParam) const jumpParam = JSON.parse(tempParam)
}) const jumpRequestParam = {
sourcePanelId: jumpParam.sourcePanelId,
sourceViewId: jumpParam.sourceViewId,
sourceFieldId: jumpParam.sourceFieldId,
targetPanelId: this.panelId
} }
}) this.dataLoading = true
// 刷新跳转目标仪表板联动信息
queryTargetPanelJumpInfo(jumpRequestParam).then(rsp => {
this.dataLoading = false
this.$store.commit('setNowTargetPanelJumpInfo', rsp.data)
this.$store.commit('addViewTrackFilter', jumpParam)
})
}
}, },
resetID(data) { resetID(data) {
if (data) { if (data) {
......
...@@ -110,6 +110,7 @@ export default { ...@@ -110,6 +110,7 @@ export default {
const param = { userId: data.userId } const param = { userId: data.userId }
proxyInitPanelData(data.id, param, function() { proxyInitPanelData(data.id, param, function() {
bus.$emit('set-panel-show-type', 1) bus.$emit('set-panel-show-type', 1)
bus.$emit('set-panel-share-user', data.userId)
}) })
this.$refs['botTree'].setCurrentKey(null) this.$refs['botTree'].setCurrentKey(null)
}, },
......
...@@ -137,7 +137,7 @@ import bus from '@/utils/bus' ...@@ -137,7 +137,7 @@ import bus from '@/utils/bus'
import { queryAll } from '@/api/panel/pdfTemplate' import { queryAll } from '@/api/panel/pdfTemplate'
import ShareHead from '@/views/panel/GrantAuth/ShareHead' import ShareHead from '@/views/panel/GrantAuth/ShareHead'
import { initPanelData } from '@/api/panel/panel' import { initPanelData } from '@/api/panel/panel'
import { proxyInitPanelData } from '@/api/panel/shareProxy'
export default { export default {
name: 'PanelViewShow', name: 'PanelViewShow',
components: { Preview, SaveToTemplate, PDFPreExport, ShareHead }, components: { Preview, SaveToTemplate, PDFPreExport, ShareHead },
...@@ -162,7 +162,8 @@ export default { ...@@ -162,7 +162,8 @@ export default {
snapshotInfo: '', snapshotInfo: '',
showType: 0, showType: 0,
dataLoading: false, dataLoading: false,
exporting: false exporting: false,
shareUserId: null
} }
}, },
computed: { computed: {
...@@ -214,6 +215,9 @@ export default { ...@@ -214,6 +215,9 @@ export default {
bus.$on('set-panel-show-type', type => { bus.$on('set-panel-show-type', type => {
this.showType = type || 0 this.showType = type || 0
}) })
bus.$on('set-panel-share-user', userId => {
this.shareUserId = userId
})
this.initPdfTemplate() this.initPdfTemplate()
}, },
methods: { methods: {
...@@ -227,7 +231,10 @@ export default { ...@@ -227,7 +231,10 @@ export default {
this.fullscreen = true this.fullscreen = true
}, },
newTab() { newTab() {
const url = '#/preview/' + this.$store.state.panel.panelInfo.id let url = '#/preview/' + this.$store.state.panel.panelInfo.id
if (this.showType === 1 && this.shareUserId !== null) {
url += ('|' + this.shareUserId)
}
window.open(url, '_blank') window.open(url, '_blank')
}, },
saveToTemplate() { saveToTemplate() {
...@@ -344,7 +351,10 @@ export default { ...@@ -344,7 +351,10 @@ export default {
this.$emit('editPanel') this.$emit('editPanel')
}, },
refreshPanel() { refreshPanel() {
initPanelData(this.panelInfo.id) if (this.showType === 1 && this.shareUserId !== null) {
const param = { userId: this.shareUserId }
proxyInitPanelData(this.panelInfo.id, param, null)
} else { initPanelData(this.panelInfo.id) }
} }
} }
} }
......
import request from '@/common/js/request' import request from '@/common/js/request'
export function requestHome(data) { export function requestHome(data) {
let url = '/mobile/home/query'
if (data && data.type === 2) {
url = 'mobile/home/queryShares'
}
return request({ return request({
url: '/mobile/home/query', url: url,
method: 'post', method: 'post',
loading: true, loading: true,
data data
......
...@@ -75,7 +75,8 @@ export default { ...@@ -75,7 +75,8 @@ export default {
const param = { const param = {
id: node.id, id: node.id,
title: node.text, title: node.text,
index: 4 index: 4,
userId: node.userId
} }
if(node.type === 'panel') { if(node.type === 'panel') {
......
...@@ -72,7 +72,8 @@ export default { ...@@ -72,7 +72,8 @@ export default {
const param = { const param = {
id: node.id, id: node.id,
title: node.text, title: node.text,
index: 4 index: 4,
userId: node.userId
} }
if(node.type === 'panel') { if(node.type === 'panel') {
......
...@@ -101,7 +101,8 @@ export default { ...@@ -101,7 +101,8 @@ export default {
const param = { const param = {
id: node.id, id: node.id,
title: node.text, title: node.text,
index: 4 index: 4,
userId: node.userId
} }
if(node.type === 'panel') { if(node.type === 'panel') {
......
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
methods: { methods: {
addRecent() { addRecent() {
const item = {id: this.banner.id, title: this.banner.title, index: this.banner.index} const item = {id: this.banner.id, title: this.banner.title, index: this.banner.index, userId: this.banner.userId}
addRecent(item) addRecent(item)
}, },
enshrine() { enshrine() {
...@@ -167,9 +167,11 @@ ...@@ -167,9 +167,11 @@
}) })
}, },
loadLinkUrl() { loadLinkUrl() {
this.url = process.env.VUE_APP_BASE_API + 'tempMobileLink/' + this.banner.id + "/" + getToken()
if (this.banner.index && this.banner.index === 2 && this.banner.userId) {
this.url = process.env.VUE_APP_BASE_API + 'tempMobileLink/' + this.banner.id + "/" + getToken() this.url = process.env.VUE_APP_BASE_API + 'tempMobileLink/' + this.banner.id + '|' + this.banner.userId + "/" + getToken()
}
const url = this.url const url = this.url
/* uni.hideLoading() */ /* uni.hideLoading() */
setTimeout(() => { setTimeout(() => {
......
...@@ -118,6 +118,9 @@ ...@@ -118,6 +118,9 @@
datas.forEach(item => { datas.forEach(item => {
item.article_type = 1 item.article_type = 1
item.image_url = '../../../static/yibiaobans.png' item.image_url = '../../../static/yibiaobans.png'
if(item.nickName) {
item.title += ('(' + item.nickName + ')')
}
if(item.time) if(item.time)
item.rightText = formatHistoryDate(item.time) item.rightText = formatHistoryDate(item.time)
}) })
...@@ -151,10 +154,12 @@ ...@@ -151,10 +154,12 @@
const param = { const param = {
id: node.id, id: node.id,
title: node.title, title: node.title,
index: this.tabIndex index: this.tabIndex,
userId: node.userId
} }
if(this.tabIndex === 1) { if(this.tabIndex === 1) {
param.index = node.index param.index = node.index
param.userId = node.userId
} }
uni.navigateTo({ uni.navigateTo({
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论