forked from github/dataease
Merge remote-tracking branch 'origin/main' into main
This commit is contained in:
commit
f8f504f30a
@ -2,6 +2,7 @@ package io.dataease.service.chart;
|
|||||||
|
|
||||||
import io.dataease.base.domain.*;
|
import io.dataease.base.domain.*;
|
||||||
import io.dataease.base.mapper.ChartGroupMapper;
|
import io.dataease.base.mapper.ChartGroupMapper;
|
||||||
|
import io.dataease.commons.utils.AuthUtils;
|
||||||
import io.dataease.commons.utils.BeanUtils;
|
import io.dataease.commons.utils.BeanUtils;
|
||||||
import io.dataease.controller.request.chart.ChartGroupRequest;
|
import io.dataease.controller.request.chart.ChartGroupRequest;
|
||||||
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||||
@ -28,6 +29,7 @@ public class ChartGroupService {
|
|||||||
checkName(chartGroup);
|
checkName(chartGroup);
|
||||||
if (StringUtils.isEmpty(chartGroup.getId())) {
|
if (StringUtils.isEmpty(chartGroup.getId())) {
|
||||||
chartGroup.setId(UUID.randomUUID().toString());
|
chartGroup.setId(UUID.randomUUID().toString());
|
||||||
|
chartGroup.setCreateBy(AuthUtils.getUser().getUsername());
|
||||||
chartGroup.setCreateTime(System.currentTimeMillis());
|
chartGroup.setCreateTime(System.currentTimeMillis());
|
||||||
chartGroupMapper.insert(chartGroup);
|
chartGroupMapper.insert(chartGroup);
|
||||||
} else {
|
} else {
|
||||||
@ -65,6 +67,7 @@ public class ChartGroupService {
|
|||||||
public List<ChartGroupDTO> tree(ChartGroupRequest ChartGroup) {
|
public List<ChartGroupDTO> tree(ChartGroupRequest ChartGroup) {
|
||||||
ChartGroupExample ChartGroupExample = new ChartGroupExample();
|
ChartGroupExample ChartGroupExample = new ChartGroupExample();
|
||||||
ChartGroupExample.Criteria criteria = ChartGroupExample.createCriteria();
|
ChartGroupExample.Criteria criteria = ChartGroupExample.createCriteria();
|
||||||
|
criteria.andCreateByEqualTo(AuthUtils.getUser().getUsername());
|
||||||
if (StringUtils.isNotEmpty(ChartGroup.getName())) {
|
if (StringUtils.isNotEmpty(ChartGroup.getName())) {
|
||||||
criteria.andNameLike("%" + ChartGroup.getName() + "%");
|
criteria.andNameLike("%" + ChartGroup.getName() + "%");
|
||||||
}
|
}
|
||||||
@ -92,6 +95,7 @@ public class ChartGroupService {
|
|||||||
for (ChartGroupDTO obj : list) {
|
for (ChartGroupDTO obj : list) {
|
||||||
ChartGroupExample ChartGroupExample = new ChartGroupExample();
|
ChartGroupExample ChartGroupExample = new ChartGroupExample();
|
||||||
ChartGroupExample.Criteria criteria = ChartGroupExample.createCriteria();
|
ChartGroupExample.Criteria criteria = ChartGroupExample.createCriteria();
|
||||||
|
criteria.andCreateByEqualTo(AuthUtils.getUser().getUsername());
|
||||||
if (StringUtils.isNotEmpty(ChartGroup.getName())) {
|
if (StringUtils.isNotEmpty(ChartGroup.getName())) {
|
||||||
criteria.andNameLike("%" + ChartGroup.getName() + "%");
|
criteria.andNameLike("%" + ChartGroup.getName() + "%");
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.google.gson.Gson;
|
|||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import io.dataease.base.domain.*;
|
import io.dataease.base.domain.*;
|
||||||
import io.dataease.base.mapper.ChartViewMapper;
|
import io.dataease.base.mapper.ChartViewMapper;
|
||||||
|
import io.dataease.commons.utils.AuthUtils;
|
||||||
import io.dataease.commons.utils.BeanUtils;
|
import io.dataease.commons.utils.BeanUtils;
|
||||||
import io.dataease.controller.request.chart.ChartViewRequest;
|
import io.dataease.controller.request.chart.ChartViewRequest;
|
||||||
import io.dataease.datasource.constants.DatasourceTypes;
|
import io.dataease.datasource.constants.DatasourceTypes;
|
||||||
@ -48,6 +49,7 @@ public class ChartViewService {
|
|||||||
int i = chartViewMapper.updateByPrimaryKeySelective(chartView);
|
int i = chartViewMapper.updateByPrimaryKeySelective(chartView);
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
chartView.setId(UUID.randomUUID().toString());
|
chartView.setId(UUID.randomUUID().toString());
|
||||||
|
chartView.setCreateBy(AuthUtils.getUser().getUsername());
|
||||||
chartView.setCreateTime(timestamp);
|
chartView.setCreateTime(timestamp);
|
||||||
chartView.setUpdateTime(timestamp);
|
chartView.setUpdateTime(timestamp);
|
||||||
chartViewMapper.insert(chartView);
|
chartViewMapper.insert(chartView);
|
||||||
@ -58,6 +60,7 @@ public class ChartViewService {
|
|||||||
public List<ChartViewWithBLOBs> list(ChartViewRequest chartViewRequest) {
|
public List<ChartViewWithBLOBs> list(ChartViewRequest chartViewRequest) {
|
||||||
ChartViewExample chartViewExample = new ChartViewExample();
|
ChartViewExample chartViewExample = new ChartViewExample();
|
||||||
ChartViewExample.Criteria criteria = chartViewExample.createCriteria();
|
ChartViewExample.Criteria criteria = chartViewExample.createCriteria();
|
||||||
|
criteria.andCreateByEqualTo(AuthUtils.getUser().getUsername());
|
||||||
if (StringUtils.isNotEmpty(chartViewRequest.getSceneId())) {
|
if (StringUtils.isNotEmpty(chartViewRequest.getSceneId())) {
|
||||||
criteria.andSceneIdEqualTo(chartViewRequest.getSceneId());
|
criteria.andSceneIdEqualTo(chartViewRequest.getSceneId());
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import io.dataease.base.domain.DatasetGroup;
|
|||||||
import io.dataease.base.domain.DatasetGroupExample;
|
import io.dataease.base.domain.DatasetGroupExample;
|
||||||
import io.dataease.base.domain.DatasetTable;
|
import io.dataease.base.domain.DatasetTable;
|
||||||
import io.dataease.base.mapper.DatasetGroupMapper;
|
import io.dataease.base.mapper.DatasetGroupMapper;
|
||||||
|
import io.dataease.commons.utils.AuthUtils;
|
||||||
import io.dataease.commons.utils.BeanUtils;
|
import io.dataease.commons.utils.BeanUtils;
|
||||||
import io.dataease.controller.request.dataset.DataSetGroupRequest;
|
import io.dataease.controller.request.dataset.DataSetGroupRequest;
|
||||||
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||||
@ -33,6 +34,7 @@ public class DataSetGroupService {
|
|||||||
checkName(datasetGroup);
|
checkName(datasetGroup);
|
||||||
if (StringUtils.isEmpty(datasetGroup.getId())) {
|
if (StringUtils.isEmpty(datasetGroup.getId())) {
|
||||||
datasetGroup.setId(UUID.randomUUID().toString());
|
datasetGroup.setId(UUID.randomUUID().toString());
|
||||||
|
datasetGroup.setCreateBy(AuthUtils.getUser().getUsername());
|
||||||
datasetGroup.setCreateTime(System.currentTimeMillis());
|
datasetGroup.setCreateTime(System.currentTimeMillis());
|
||||||
datasetGroupMapper.insert(datasetGroup);
|
datasetGroupMapper.insert(datasetGroup);
|
||||||
} else {
|
} else {
|
||||||
@ -75,6 +77,7 @@ public class DataSetGroupService {
|
|||||||
public List<DataSetGroupDTO> tree(DataSetGroupRequest datasetGroup) {
|
public List<DataSetGroupDTO> tree(DataSetGroupRequest datasetGroup) {
|
||||||
DatasetGroupExample datasetGroupExample = new DatasetGroupExample();
|
DatasetGroupExample datasetGroupExample = new DatasetGroupExample();
|
||||||
DatasetGroupExample.Criteria criteria = datasetGroupExample.createCriteria();
|
DatasetGroupExample.Criteria criteria = datasetGroupExample.createCriteria();
|
||||||
|
criteria.andCreateByEqualTo(AuthUtils.getUser().getUsername());
|
||||||
if (StringUtils.isNotEmpty(datasetGroup.getName())) {
|
if (StringUtils.isNotEmpty(datasetGroup.getName())) {
|
||||||
criteria.andNameLike("%" + datasetGroup.getName() + "%");
|
criteria.andNameLike("%" + datasetGroup.getName() + "%");
|
||||||
}
|
}
|
||||||
@ -102,6 +105,7 @@ public class DataSetGroupService {
|
|||||||
for (DataSetGroupDTO obj : list) {
|
for (DataSetGroupDTO obj : list) {
|
||||||
DatasetGroupExample datasetGroupExample = new DatasetGroupExample();
|
DatasetGroupExample datasetGroupExample = new DatasetGroupExample();
|
||||||
DatasetGroupExample.Criteria criteria = datasetGroupExample.createCriteria();
|
DatasetGroupExample.Criteria criteria = datasetGroupExample.createCriteria();
|
||||||
|
criteria.andCreateByEqualTo(AuthUtils.getUser().getUsername());
|
||||||
if (StringUtils.isNotEmpty(datasetGroup.getName())) {
|
if (StringUtils.isNotEmpty(datasetGroup.getName())) {
|
||||||
criteria.andNameLike("%" + datasetGroup.getName() + "%");
|
criteria.andNameLike("%" + datasetGroup.getName() + "%");
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import io.dataease.base.domain.*;
|
|||||||
import io.dataease.base.mapper.DatasetTableIncrementalConfigMapper;
|
import io.dataease.base.mapper.DatasetTableIncrementalConfigMapper;
|
||||||
import io.dataease.base.mapper.DatasetTableMapper;
|
import io.dataease.base.mapper.DatasetTableMapper;
|
||||||
import io.dataease.base.mapper.DatasourceMapper;
|
import io.dataease.base.mapper.DatasourceMapper;
|
||||||
|
import io.dataease.commons.utils.AuthUtils;
|
||||||
import io.dataease.commons.utils.BeanUtils;
|
import io.dataease.commons.utils.BeanUtils;
|
||||||
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||||
import io.dataease.datasource.constants.DatasourceTypes;
|
import io.dataease.datasource.constants.DatasourceTypes;
|
||||||
@ -51,6 +52,7 @@ public class DataSetTableService {
|
|||||||
checkName(datasetTable);
|
checkName(datasetTable);
|
||||||
if (StringUtils.isEmpty(datasetTable.getId())) {
|
if (StringUtils.isEmpty(datasetTable.getId())) {
|
||||||
datasetTable.setId(UUID.randomUUID().toString());
|
datasetTable.setId(UUID.randomUUID().toString());
|
||||||
|
datasetTable.setCreateBy(AuthUtils.getUser().getUsername());
|
||||||
datasetTable.setCreateTime(System.currentTimeMillis());
|
datasetTable.setCreateTime(System.currentTimeMillis());
|
||||||
DataTableInfoDTO dataTableInfoDTO = new DataTableInfoDTO();
|
DataTableInfoDTO dataTableInfoDTO = new DataTableInfoDTO();
|
||||||
if (StringUtils.equalsIgnoreCase("db", datasetTable.getType())) {
|
if (StringUtils.equalsIgnoreCase("db", datasetTable.getType())) {
|
||||||
@ -77,8 +79,10 @@ public class DataSetTableService {
|
|||||||
|
|
||||||
public List<DatasetTable> list(DataSetTableRequest dataSetTableRequest) {
|
public List<DatasetTable> list(DataSetTableRequest dataSetTableRequest) {
|
||||||
DatasetTableExample datasetTableExample = new DatasetTableExample();
|
DatasetTableExample datasetTableExample = new DatasetTableExample();
|
||||||
|
DatasetTableExample.Criteria criteria = datasetTableExample.createCriteria();
|
||||||
|
criteria.andCreateByEqualTo(AuthUtils.getUser().getUsername());
|
||||||
if (StringUtils.isNotEmpty(dataSetTableRequest.getSceneId())) {
|
if (StringUtils.isNotEmpty(dataSetTableRequest.getSceneId())) {
|
||||||
datasetTableExample.createCriteria().andSceneIdEqualTo(dataSetTableRequest.getSceneId());
|
criteria.andSceneIdEqualTo(dataSetTableRequest.getSceneId());
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotEmpty(dataSetTableRequest.getSort())) {
|
if (StringUtils.isNotEmpty(dataSetTableRequest.getSort())) {
|
||||||
datasetTableExample.setOrderByClause(dataSetTableRequest.getSort());
|
datasetTableExample.setOrderByClause(dataSetTableRequest.getSort());
|
||||||
|
@ -25,7 +25,30 @@
|
|||||||
<el-form-item :label="$t('chart.text_color')" class="form-item">
|
<el-form-item :label="$t('chart.text_color')" class="form-item">
|
||||||
<colorPicker v-model="tooltipForm.textStyle.color" style="margin-top: 6px;cursor: pointer;z-index: 999;border: solid 1px black" @change="changeTooltipAttr" />
|
<colorPicker v-model="tooltipForm.textStyle.color" style="margin-top: 6px;cursor: pointer;z-index: 999;border: solid 1px black" @change="changeTooltipAttr" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('chart.content_formatter')" class="form-item">
|
<el-form-item class="form-item">
|
||||||
|
<span slot="label">
|
||||||
|
<span class="span-box">
|
||||||
|
<span>{{ $t('chart.content_formatter') }}</span>
|
||||||
|
<el-tooltip class="item" effect="dark" placement="bottom">
|
||||||
|
<div slot="content">
|
||||||
|
模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名,数据值等。
|
||||||
|
<br>
|
||||||
|
在 trigger 为 'axis' 的时候,会有多个系列的数据,此时可以通过 {a0}, {a1}, {a2} 这种后面加索引的方式表示系列的索引。
|
||||||
|
<br>
|
||||||
|
不同图表类型下的 {a},{b},{c},{d} 含义不一样。 其中变量{a}, {b}, {c}, {d}在不同图表类型下代表数据含义为:
|
||||||
|
<br><br>
|
||||||
|
折线(区域)图、柱状(条形)图、K线图 : {a}(系列名称),{b}(类目值),{c}(数值), {d}(无)
|
||||||
|
<br>
|
||||||
|
散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无)
|
||||||
|
<br>
|
||||||
|
地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)
|
||||||
|
<br>
|
||||||
|
饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
|
||||||
|
</div>
|
||||||
|
<i class="el-icon-info" style="cursor: pointer;" />
|
||||||
|
</el-tooltip>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
<el-input v-model="tooltipForm.formatter" type="textarea" :autosize="{ minRows: 4, maxRows: 4}" :placeholder="$t('chart.formatter_plc')" @blur="changeTooltipAttr" />
|
<el-input v-model="tooltipForm.formatter" type="textarea" :autosize="{ minRows: 4, maxRows: 4}" :placeholder="$t('chart.formatter_plc')" @blur="changeTooltipAttr" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
@ -47,7 +47,7 @@ export default {
|
|||||||
.ms-aside-container {
|
.ms-aside-container {
|
||||||
height: 50vh;
|
height: 50vh;
|
||||||
min-width: 180px;
|
min-width: 180px;
|
||||||
max-width: 300px;
|
max-width: 280px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ms-main-container {
|
.ms-main-container {
|
||||||
|
@ -9,19 +9,19 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-divider />
|
<el-divider />
|
||||||
|
|
||||||
<el-row>
|
<!-- <el-row>-->
|
||||||
<el-form>
|
<!-- <el-form>-->
|
||||||
<el-form-item class="form-item">
|
<!-- <el-form-item class="form-item">-->
|
||||||
<el-input
|
<!-- <el-input-->
|
||||||
v-model="search"
|
<!-- v-model="search"-->
|
||||||
size="mini"
|
<!-- size="mini"-->
|
||||||
:placeholder="$t('dataset.search')"
|
<!-- :placeholder="$t('dataset.search')"-->
|
||||||
prefix-icon="el-icon-search"
|
<!-- prefix-icon="el-icon-search"-->
|
||||||
clearable
|
<!-- clearable-->
|
||||||
/>
|
<!-- />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-form>
|
<!-- </el-form>-->
|
||||||
</el-row>
|
<!-- </el-row>-->
|
||||||
|
|
||||||
<el-col class="custom-tree-container">
|
<el-col class="custom-tree-container">
|
||||||
<div class="block">
|
<div class="block">
|
||||||
@ -77,9 +77,10 @@
|
|||||||
:data="tableData"
|
:data="tableData"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
:expand-on-click-node="true"
|
:expand-on-click-node="true"
|
||||||
|
class="tree-list"
|
||||||
@node-click="sceneClick"
|
@node-click="sceneClick"
|
||||||
>
|
>
|
||||||
<span slot-scope="{ node, data }" class="custom-tree-node">
|
<span slot-scope="{ node, data }" class="custom-tree-node-list">
|
||||||
<span>
|
<span>
|
||||||
<span>
|
<span>
|
||||||
({{ data.type }})
|
({{ data.type }})
|
||||||
@ -107,6 +108,7 @@ export default {
|
|||||||
search: '',
|
search: '',
|
||||||
data: [],
|
data: [],
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
tables: [],
|
||||||
currGroup: null,
|
currGroup: null,
|
||||||
expandedArray: [],
|
expandedArray: [],
|
||||||
groupForm: {
|
groupForm: {
|
||||||
@ -129,6 +131,13 @@ export default {
|
|||||||
// this.groupForm.name = val;
|
// this.groupForm.name = val;
|
||||||
// this.tree(this.groupForm);
|
// this.tree(this.groupForm);
|
||||||
// }
|
// }
|
||||||
|
search(val) {
|
||||||
|
if (val && val !== '') {
|
||||||
|
this.tableData = JSON.parse(JSON.stringify(this.tables.filter(ele => { return ele.name.includes(val) })))
|
||||||
|
} else {
|
||||||
|
this.tableData = JSON.parse(JSON.stringify(this.tables))
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.tree(this.groupForm)
|
this.tree(this.groupForm)
|
||||||
@ -171,7 +180,8 @@ export default {
|
|||||||
sort: 'type asc,create_time desc,name asc',
|
sort: 'type asc,create_time desc,name asc',
|
||||||
sceneId: this.currGroup.id
|
sceneId: this.currGroup.id
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
this.tableData = response.data
|
this.tables = response.data
|
||||||
|
this.tableData = JSON.parse(JSON.stringify(this.tables))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -216,6 +226,10 @@ export default {
|
|||||||
padding: 12px 0;
|
padding: 12px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.tree-list>>>.el-tree-node__expand-icon.is-leaf{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.custom-tree-node {
|
.custom-tree-node {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -225,6 +239,15 @@ export default {
|
|||||||
padding-right: 8px;
|
padding-right: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.custom-tree-node-list {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-size: 14px;
|
||||||
|
padding:0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
.custom-position {
|
.custom-position {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="4">
|
<el-col style="width: 200px;">
|
||||||
<el-form ref="form" :model="form" label-width="60px" size="mini" class="row-style">
|
<el-form ref="form" :model="form" label-width="60px" size="mini" class="row-style">
|
||||||
<el-form-item :label="$t('dataset.showRow')">
|
<el-form-item :label="$t('dataset.showRow')">
|
||||||
<el-input v-model="form.row">
|
<el-input v-model="form.row">
|
||||||
|
Loading…
Reference in New Issue
Block a user