Merge branch 'main' of github.com:dataease/dataease into main
This commit is contained in:
commit
7c429d9662
@ -7,12 +7,13 @@ import io.dataease.dto.panel.PanelSharePo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface ExtPanelShareMapper {
|
||||
|
||||
int batchInsert(@Param("shares") List<PanelShare> shares);
|
||||
|
||||
List<PanelSharePo> query(GridExample example);
|
||||
List<PanelSharePo> query(Map<String, Object> param);
|
||||
|
||||
List<PanelShare> queryWithResource(GridExample example);
|
||||
}
|
||||
|
||||
@ -16,16 +16,17 @@
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="query" parameterType="io.dataease.base.mapper.ext.query.GridExample" resultMap="treeNodeMap">
|
||||
<select id="query" resultMap="treeNodeMap">
|
||||
select distinct s.panel_group_id as id, g.create_by as creator, g.name
|
||||
from panel_share s
|
||||
left join panel_group g on g.id = s.panel_group_id
|
||||
<if test="_parameter != null">
|
||||
<include refid="io.dataease.base.mapper.ext.query.GridSql.gridCondition" />
|
||||
</if>
|
||||
<if test="orderByClause != null">
|
||||
order by ${orderByClause}
|
||||
</if>
|
||||
where
|
||||
( s.target_id = #{userId} and s.type = 0 ) or
|
||||
( s.target_id = #{deptId} and s.type = 1 ) or
|
||||
s.target_id in
|
||||
<foreach collection="roleIds" item="roleId" open='(' separator=',' close=')'>
|
||||
#{roleId}
|
||||
</foreach>
|
||||
<if test="orderByClause == null">
|
||||
order by s.create_time desc
|
||||
</if>
|
||||
|
||||
@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@ -92,7 +93,14 @@ public class ShareService {
|
||||
Long deptId = user.getDeptId();
|
||||
List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
|
||||
|
||||
List<Long> targetIds = new ArrayList<>();
|
||||
Map<String, Object> param = new HashMap<>();
|
||||
param.put("userId", userId);
|
||||
param.put("deptId", deptId);
|
||||
param.put("roleIds", roleIds);
|
||||
|
||||
List<PanelSharePo> datas = extPanelShareMapper.query(param);
|
||||
|
||||
/*List<Long> targetIds = new ArrayList<>();
|
||||
targetIds.add(userId);
|
||||
targetIds.add(deptId);
|
||||
targetIds.addAll(roleIds);
|
||||
@ -105,14 +113,15 @@ public class ShareService {
|
||||
request.setConditions(new ArrayList<ConditionEntity>(){{add(condition);}});
|
||||
|
||||
GridExample example = request.convertExample();
|
||||
List<PanelSharePo> datas = extPanelShareMapper.query(example);
|
||||
List<PanelSharePo> datas = extPanelShareMapper.query(example);*/
|
||||
List<PanelShareDto> dtoLists = datas.stream().map(po -> BeanUtils.copyBean(new PanelShareDto(), po)).collect(Collectors.toList());
|
||||
return convertTree(dtoLists);
|
||||
}
|
||||
|
||||
//List构建Tree
|
||||
private List<PanelShareDto> convertTree(List<PanelShareDto> datas){
|
||||
Map<String, List<PanelShareDto>> map = datas.stream().filter(panelShareDto -> StringUtils.isNotEmpty(panelShareDto.getCreator())).collect(Collectors.groupingBy(PanelShareDto::getCreator));
|
||||
String username = AuthUtils.getUser().getUsername();
|
||||
Map<String, List<PanelShareDto>> map = datas.stream().filter(panelShareDto -> StringUtils.isNotEmpty(panelShareDto.getCreator()) && !StringUtils.equals(username, panelShareDto.getCreator())).collect(Collectors.groupingBy(PanelShareDto::getCreator));
|
||||
return map.entrySet().stream().map(entry -> {
|
||||
PanelShareDto panelShareDto = new PanelShareDto();
|
||||
panelShareDto.setName(entry.getKey());
|
||||
|
||||
@ -119,11 +119,11 @@ export function fieldValues(fieldId) {
|
||||
})
|
||||
}
|
||||
|
||||
export function isKettleRunning() {
|
||||
export function isKettleRunning(showLoading = true) {
|
||||
return request({
|
||||
url: '/dataset/group/isKettleRunning',
|
||||
method: 'post',
|
||||
loading: true
|
||||
loading: showLoading
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -158,7 +158,7 @@ export default {
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="css">
|
||||
<style lang="css" scoped>
|
||||
.cron {
|
||||
text-align: left;
|
||||
padding: 10px;
|
||||
|
||||
@ -238,7 +238,9 @@ div:focus {
|
||||
color: #23beef;
|
||||
margin: 0 2px 0 0;
|
||||
}
|
||||
.el-popper{
|
||||
position: fixed!important;
|
||||
.showRightPanel{
|
||||
.el-popper{
|
||||
position: fixed!important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ import Group from './group/Group'
|
||||
|
||||
import ChartHome from './data/ChartHome'
|
||||
import ChartEdit from './view/ChartEdit'
|
||||
import { removeClass } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'Chart',
|
||||
@ -30,6 +31,9 @@ export default {
|
||||
param: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
removeClass(document.body, 'showRightPanel')
|
||||
},
|
||||
methods: {
|
||||
switchComponent(c) {
|
||||
this.param = c.param
|
||||
@ -49,7 +53,7 @@ export default {
|
||||
<style scoped>
|
||||
.ms-aside-container {
|
||||
height: calc(100vh - 56px);
|
||||
padding: 15px;
|
||||
padding: 10px 15px;
|
||||
min-width: 260px;
|
||||
max-width: 460px;
|
||||
}
|
||||
|
||||
@ -188,7 +188,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
kettleState() {
|
||||
isKettleRunning().then(res => {
|
||||
isKettleRunning(false).then(res => {
|
||||
this.kettleRunning = res.data
|
||||
})
|
||||
},
|
||||
|
||||
@ -25,6 +25,7 @@ import AddSQL from './add/AddSQL'
|
||||
import AddExcel from './add/AddExcel'
|
||||
import AddCustom from './add/AddCustom'
|
||||
import FieldEdit from './data/FieldEdit'
|
||||
import { removeClass } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'DataSet',
|
||||
@ -35,6 +36,9 @@ export default {
|
||||
param: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
removeClass(document.body, 'showRightPanel')
|
||||
},
|
||||
methods: {
|
||||
switchComponent(c) {
|
||||
this.param = c.param
|
||||
@ -69,14 +73,14 @@ export default {
|
||||
<style scoped>
|
||||
.ms-aside-container {
|
||||
height: calc(100vh - 56px);
|
||||
padding: 15px;
|
||||
padding: 10px 15px;
|
||||
min-width: 260px;
|
||||
max-width: 460px;
|
||||
}
|
||||
|
||||
.ms-main-container {
|
||||
height: calc(100vh - 56px);
|
||||
padding: 15px 15px 0 15px;
|
||||
padding: 10px 15px 0 15px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template xmlns:el-col="http://www.w3.org/1999/html">
|
||||
<el-col style="padding: 0 10px 0 10px;">
|
||||
<el-col style="padding: 0 5px 0 5px;">
|
||||
<el-col>
|
||||
<el-row>
|
||||
<span class="header-title">{{ $t('panel.default_panel') }}</span>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<de-container>
|
||||
<de-aside-container>
|
||||
<de-aside-container style="padding: 0 10px;">
|
||||
<el-tabs v-model="activeName" class="tab-panel" :stretch="true" @tab-click="handleClick">
|
||||
<el-tab-pane name="PanelList">
|
||||
<span slot="label"><i class="el-icon-document" />{{ $t('panel.panel_list') }}</span>
|
||||
@ -107,4 +107,8 @@ export default {
|
||||
.tab-panel>>>.el-tabs__nav-wrap::after {
|
||||
height: 1px;
|
||||
}
|
||||
.tab-panel>>>.el-tabs__item{
|
||||
/* width: 10px; */
|
||||
padding: 0 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,39 +3,40 @@
|
||||
<el-col v-if="panelInfo.name.length>0" class="panel-design">
|
||||
<el-row class="panel-design-head">
|
||||
<!--仪表板头部区域-->
|
||||
<el-col :span="12" style="text-overflow:ellipsis;overflow: hidden;white-space: nowrap;font-size: 14px">
|
||||
<span>{{ panelInfo.name || '测试仪表板' }}</span>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<span v-if="hasDataPermission('export',panelInfo.privileges)" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.save_to_panel')">
|
||||
<el-button class="el-icon-folder-checked" size="mini" circle @click="saveToTemplate" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<span v-if="hasDataPermission('export',panelInfo.privileges)" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.export_to_panel')">
|
||||
<el-button class="el-icon-download" size="mini" circle @click="downloadToTemplate" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<span style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.preview')">
|
||||
<el-button class="el-icon-view" size="mini" circle @click="clickPreview" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<div style="border-bottom: 1px solid #dfe4ed;height: 100%;">
|
||||
<el-col :span="12" style="text-overflow:ellipsis;overflow: hidden;white-space: nowrap;font-size: 14px">
|
||||
<span>{{ panelInfo.name || '测试仪表板' }}</span>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<span v-if="hasDataPermission('export',panelInfo.privileges)" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.save_to_panel')">
|
||||
<el-button class="el-icon-folder-checked" size="mini" circle @click="saveToTemplate" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<span v-if="hasDataPermission('export',panelInfo.privileges)" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.export_to_panel')">
|
||||
<el-button class="el-icon-download" size="mini" circle @click="downloadToTemplate" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<span style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.preview')">
|
||||
<el-button class="el-icon-view" size="mini" circle @click="clickPreview" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
|
||||
<span v-if="!hasStar && panelInfo" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.store')">
|
||||
<el-button class="el-icon-star-off" size="mini" circle @click="star" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
|
||||
<span v-if="hasStar && panelInfo" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('commons.cancel')">
|
||||
<el-button class="el-icon-star-on" size="mini" circle @click="unstar" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
</el-col>
|
||||
<span v-if="!hasStar && panelInfo" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('panel.store')">
|
||||
<el-button class="el-icon-star-off" size="mini" circle @click="star" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
|
||||
<span v-if="hasStar && panelInfo" style="float: right;margin-right: 10px">
|
||||
<el-tooltip :content="$t('commons.cancel')">
|
||||
<el-button class="el-icon-star-on" size="mini" circle @click="unstar" />
|
||||
</el-tooltip>
|
||||
</span>
|
||||
</el-col>
|
||||
</div>
|
||||
</el-row>
|
||||
<!-- 仪表板预览区域-->
|
||||
<el-row class="panel-design-preview">
|
||||
@ -217,9 +218,8 @@ export default {
|
||||
.panel-design-head {
|
||||
height: 40px;
|
||||
background-color: white;
|
||||
padding: 0 6px;
|
||||
padding: 0 10px;
|
||||
line-height: 40px;
|
||||
border-bottom: 1px solid #dfe4ed;
|
||||
}
|
||||
|
||||
.panel-design-preview {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user