Merge pull request #168 from dataease/pr@dev@feat_数据集视图权限控制
feat: 视图数据集权限控制
This commit is contained in:
commit
6606ee23a6
@ -7,4 +7,6 @@ import java.util.List;
|
|||||||
|
|
||||||
public interface ExtDataSetTableMapper {
|
public interface ExtDataSetTableMapper {
|
||||||
List<DataSetTableDTO> search(DataSetTableRequest request);
|
List<DataSetTableDTO> search(DataSetTableRequest request);
|
||||||
|
|
||||||
|
DataSetTableDTO searchOne(DataSetTableRequest request);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,33 @@
|
|||||||
<result column="privileges" property="privileges"/>
|
<result column="privileges" property="privileges"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="searchOne" resultMap="BaseResultMapDTO">
|
||||||
|
select
|
||||||
|
id, `name`, scene_id, data_source_id, `type`, `mode`,`info`, create_by, create_time,
|
||||||
|
get_auths(id,'dataset',#{userId}) as `privileges`
|
||||||
|
from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'dataset') cids) t,dataset_table
|
||||||
|
<where>
|
||||||
|
FIND_IN_SET(dataset_table.id,cids)
|
||||||
|
<if test="id != null">
|
||||||
|
and id = #{id,jdbcType=VARCHAR}
|
||||||
|
</if>
|
||||||
|
<if test="sceneId != null">
|
||||||
|
and scene_id = #{sceneId,jdbcType=VARCHAR}
|
||||||
|
</if>
|
||||||
|
<if test="mode != null">
|
||||||
|
and mode = #{mode,jdbcType=INTEGER}
|
||||||
|
</if>
|
||||||
|
<if test="typeFilter != null">
|
||||||
|
and type in
|
||||||
|
<foreach collection="typeFilter" item="item" open="(" separator="," close=")">
|
||||||
|
#{item,jdbcType=INTEGER}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
<if test="sort != null">
|
||||||
|
order by ${sort}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="search" resultMap="BaseResultMapDTO">
|
<select id="search" resultMap="BaseResultMapDTO">
|
||||||
select
|
select
|
||||||
@ -31,7 +58,5 @@
|
|||||||
<if test="sort != null">
|
<if test="sort != null">
|
||||||
order by ${sort}
|
order by ${sort}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -54,6 +54,11 @@ public class DataSetTableController {
|
|||||||
return dataSetTableService.get(id);
|
return dataSetTableService.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("getWithPermission/{id}")
|
||||||
|
public DataSetTableDTO getWithPermission(@PathVariable String id) {
|
||||||
|
return dataSetTableService.getWithPermission(id);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("getFields")
|
@PostMapping("getFields")
|
||||||
public List<TableFiled> getFields(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception {
|
public List<TableFiled> getFields(@RequestBody DataSetTableRequest dataSetTableRequest) throws Exception {
|
||||||
return dataSetTableService.getFields(dataSetTableRequest);
|
return dataSetTableService.getFields(dataSetTableRequest);
|
||||||
|
|||||||
@ -215,6 +215,14 @@ public class DataSetTableService {
|
|||||||
return datasetTableMapper.selectByPrimaryKey(id);
|
return datasetTableMapper.selectByPrimaryKey(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DataSetTableDTO getWithPermission(String id) {
|
||||||
|
DataSetTableRequest dataSetTableRequest = new DataSetTableRequest();
|
||||||
|
dataSetTableRequest.setId(id);
|
||||||
|
dataSetTableRequest.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
|
||||||
|
dataSetTableRequest.setTypeFilter(dataSetTableRequest.getTypeFilter());
|
||||||
|
return extDataSetTableMapper.searchOne(dataSetTableRequest);
|
||||||
|
}
|
||||||
|
|
||||||
public List<TableFiled> getFields(DataSetTableRequest dataSetTableRequest) throws Exception {
|
public List<TableFiled> getFields(DataSetTableRequest dataSetTableRequest) throws Exception {
|
||||||
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
|
Datasource ds = datasourceMapper.selectByPrimaryKey(dataSetTableRequest.getDataSourceId());
|
||||||
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
|
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item">{{ $t('chart.background') }}<i class="el-icon-setting el-icon--right" /></el-button>
|
<el-button slot="reference" :disabled="param && !hasDataPermission('manage',param.privileges)" size="mini" class="shape-item">{{ $t('chart.background') }}<i class="el-icon-setting el-icon--right" /></el-button>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -29,6 +29,10 @@ import { DEFAULT_BACKGROUND_COLOR } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'BackgroundColorSelector',
|
name: 'BackgroundColorSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -53,10 +53,11 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item" :disabled="!legendForm.show">
|
<el-button slot="reference" size="mini" class="shape-item" :disabled="!legendForm.show || !hasDataPermission('manage',param.privileges)">
|
||||||
{{ $t('chart.legend') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.legend') }}<i class="el-icon-setting el-icon--right" />
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="legendForm.show"
|
v-model="legendForm.show"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
class="switch-style"
|
class="switch-style"
|
||||||
@click.stop.native
|
@click.stop.native
|
||||||
@change="changeLegendStyle"
|
@change="changeLegendStyle"
|
||||||
@ -73,6 +74,10 @@ import { DEFAULT_LEGEND_STYLE } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'LegendSelector',
|
name: 'LegendSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item">
|
<el-button slot="reference" :disabled="!hasDataPermission('manage',param.privileges)" size="mini" class="shape-item">
|
||||||
{{ $t('chart.split') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.split') }}<i class="el-icon-setting el-icon--right" />
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
@ -62,6 +62,10 @@ import { DEFAULT_SPLIT } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'SplitSelector',
|
name: 'SplitSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -51,10 +51,11 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item" :disabled="!titleForm.show">
|
<el-button slot="reference" size="mini" class="shape-item" :disabled="!titleForm.show || !hasDataPermission('manage',param.privileges)">
|
||||||
{{ $t('chart.title') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.title') }}<i class="el-icon-setting el-icon--right" />
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="titleForm.show"
|
v-model="titleForm.show"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
class="switch-style"
|
class="switch-style"
|
||||||
@click.stop.native
|
@click.stop.native
|
||||||
@change="changeTitleStyle"
|
@change="changeTitleStyle"
|
||||||
@ -71,6 +72,10 @@ import { DEFAULT_TITLE_STYLE } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'TitleSelector',
|
name: 'TitleSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -72,10 +72,11 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item" :disabled="!axisForm.show">
|
<el-button slot="reference" size="mini" class="shape-item" :disabled="!axisForm.show || !hasDataPermission('manage',param.privileges)">
|
||||||
{{ $t('chart.xAxis') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.xAxis') }}<i class="el-icon-setting el-icon--right" />
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="axisForm.show"
|
v-model="axisForm.show"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
class="switch-style"
|
class="switch-style"
|
||||||
@click.stop.native
|
@click.stop.native
|
||||||
@change="changeXAxisStyle"
|
@change="changeXAxisStyle"
|
||||||
@ -92,6 +93,10 @@ import { DEFAULT_XAXIS_STYLE } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'XAxisSelector',
|
name: 'XAxisSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -72,10 +72,11 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item" :disabled="!axisForm.show">
|
<el-button slot="reference" size="mini" class="shape-item" :disabled="!axisForm.show || !hasDataPermission('manage',param.privileges)">
|
||||||
{{ $t('chart.yAxis') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.yAxis') }}<i class="el-icon-setting el-icon--right" />
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="axisForm.show"
|
v-model="axisForm.show"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
class="switch-style"
|
class="switch-style"
|
||||||
@click.stop.native
|
@click.stop.native
|
||||||
@change="changeYAxisStyle"
|
@change="changeYAxisStyle"
|
||||||
@ -92,6 +93,10 @@ import { DEFAULT_YAXIS_STYLE } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'YAxisSelector',
|
name: 'YAxisSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
<el-tag size="small" class="item-axis">
|
<el-tag size="small" class="item-axis">
|
||||||
{{ item.name }}<i class="el-icon-arrow-down el-icon--right" />
|
{{ item.name }}<i class="el-icon-arrow-down el-icon--right" />
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu v-if="hasDataPermission('manage',param.privileges)" slot="dropdown">
|
||||||
<el-dropdown-item>
|
<el-dropdown-item>
|
||||||
<el-dropdown placement="right-start" size="mini" style="width: 100%" @command="sort">
|
<el-dropdown placement="right-start" size="mini" style="width: 100%" @command="sort">
|
||||||
<span class="el-dropdown-link inner-dropdown-menu">
|
<span class="el-dropdown-link inner-dropdown-menu">
|
||||||
@ -80,6 +80,10 @@
|
|||||||
export default {
|
export default {
|
||||||
name: 'DimensionItem',
|
name: 'DimensionItem',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
item: {
|
item: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<span>
|
<span>
|
||||||
<el-dropdown trigger="click" size="mini" @command="clickItem">
|
<el-dropdown trigger="click" size="mini" :disabled="!hasDataPermission('manage',param.privileges)" @command="clickItem">
|
||||||
<span class="el-dropdown-link">
|
<span class="el-dropdown-link">
|
||||||
<el-tag size="small" class="item-axis">
|
<el-tag size="small" class="item-axis">
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
<span v-if="item.summary" class="summary-span">{{ $t('chart.'+item.summary) }}</span>
|
<span v-if="item.summary" class="summary-span">{{ $t('chart.'+item.summary) }}</span>
|
||||||
<i class="el-icon-arrow-down el-icon--right" />
|
<i class="el-icon-arrow-down el-icon--right" />
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu v-if="hasDataPermission('manage',param.privileges)" slot="dropdown">
|
||||||
<el-dropdown-item>
|
<el-dropdown-item>
|
||||||
<el-dropdown placement="right-start" size="mini" style="width: 100%" @command="summary">
|
<el-dropdown placement="right-start" size="mini" style="width: 100%" @command="summary">
|
||||||
<span class="el-dropdown-link inner-dropdown-menu">
|
<span class="el-dropdown-link inner-dropdown-menu">
|
||||||
@ -81,6 +81,10 @@
|
|||||||
export default {
|
export default {
|
||||||
name: 'QuotaItem',
|
name: 'QuotaItem',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
item: {
|
item: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -49,7 +49,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item">{{ $t('chart.color') }}<i class="el-icon-setting el-icon--right" /></el-button>
|
<el-button slot="reference" :disabled="param && !hasDataPermission('manage',param.privileges)" size="mini" class="shape-item">{{ $t('chart.color') }}<i class="el-icon-setting el-icon--right" /></el-button>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -61,6 +61,10 @@ import { DEFAULT_COLOR_CASE } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'ColorSelector',
|
name: 'ColorSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: false
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -67,10 +67,11 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item" :disabled="!labelForm.show">
|
<el-button slot="reference" size="mini" class="shape-item" :disabled="!labelForm.show || !hasDataPermission('manage',param.privileges)">
|
||||||
{{ $t('chart.label') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.label') }}<i class="el-icon-setting el-icon--right" />
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="labelForm.show"
|
v-model="labelForm.show"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
class="switch-style"
|
class="switch-style"
|
||||||
@click.stop.native
|
@click.stop.native
|
||||||
@change="changeLabelAttr"
|
@change="changeLabelAttr"
|
||||||
@ -87,6 +88,10 @@ import { DEFAULT_LABEL } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'LabelSelector',
|
name: 'LabelSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -143,7 +143,7 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item">{{ $t('chart.size') }}<i class="el-icon-setting el-icon--right" /></el-button>
|
<el-button slot="reference" :disabled="!hasDataPermission('manage',param.privileges)" size="mini" class="shape-item">{{ $t('chart.size') }}<i class="el-icon-setting el-icon--right" /></el-button>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -154,6 +154,10 @@ import { DEFAULT_SIZE } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'SizeSelector',
|
name: 'SizeSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -55,10 +55,11 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-button slot="reference" size="mini" class="shape-item" :disabled="!tooltipForm.show">
|
<el-button slot="reference" size="mini" class="shape-item" :disabled="!tooltipForm.show || !hasDataPermission('manage',param.privileges)">
|
||||||
{{ $t('chart.tooltip') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.tooltip') }}<i class="el-icon-setting el-icon--right" />
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="tooltipForm.show"
|
v-model="tooltipForm.show"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
class="switch-style"
|
class="switch-style"
|
||||||
@click.stop.native
|
@click.stop.native
|
||||||
@change="changeTooltipAttr"
|
@change="changeTooltipAttr"
|
||||||
@ -75,6 +76,10 @@ import { DEFAULT_TOOLTIP } from '../../chart/chart'
|
|||||||
export default {
|
export default {
|
||||||
name: 'TooltipSelector',
|
name: 'TooltipSelector',
|
||||||
props: {
|
props: {
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
chart: {
|
chart: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -689,7 +689,7 @@ export default {
|
|||||||
|
|
||||||
nodeClick(data, node) {
|
nodeClick(data, node) {
|
||||||
if (data.type !== 'group') {
|
if (data.type !== 'group') {
|
||||||
this.$emit('switchComponent', { name: 'ChartEdit', param: { 'id': data.id }})
|
this.$emit('switchComponent', { name: 'ChartEdit', param: data })
|
||||||
}
|
}
|
||||||
// if (data.type === 'scene') {
|
// if (data.type === 'scene') {
|
||||||
// this.sceneMode = true
|
// this.sceneMode = true
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
<span slot="reference" style="line-height: 40px;cursor: pointer;">{{ view.name }}</span>
|
<span slot="reference" style="line-height: 40px;cursor: pointer;">{{ view.name }}</span>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<span style="float: right;line-height: 40px;">
|
<span style="float: right;line-height: 40px;">
|
||||||
<el-button size="mini" @click="changeDs">
|
<el-button v-if="hasDataPermission('manage',param.privileges)" size="mini" @click="changeDs">
|
||||||
{{ $t('chart.change_ds') }}
|
{{ $t('chart.change_ds') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button size="mini" @click="closeEdit">
|
<el-button size="mini" @click="closeEdit">
|
||||||
@ -37,7 +37,7 @@
|
|||||||
prefix-icon="el-icon-search"
|
prefix-icon="el-icon-search"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
<el-button icon="el-icon-setting" type="text" size="mini" style="float: right;width: 20px;margin-left: 6px;" @click="editField" />
|
<el-button :disabled="!table || !hasDataPermission('manage',table.privileges)" icon="el-icon-setting" type="text" size="mini" style="float: right;width: 20px;margin-left: 6px;" @click="editField" />
|
||||||
</div>
|
</div>
|
||||||
<div style="border-bottom: 1px solid #E6E6E6;" class="padding-lr field-height">
|
<div style="border-bottom: 1px solid #E6E6E6;" class="padding-lr field-height">
|
||||||
<span>{{ $t('chart.dimension') }}</span>
|
<span>{{ $t('chart.dimension') }}</span>
|
||||||
@ -47,6 +47,7 @@
|
|||||||
animation="300"
|
animation="300"
|
||||||
:move="onMove"
|
:move="onMove"
|
||||||
class="drag-list"
|
class="drag-list"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
@end="end1"
|
@end="end1"
|
||||||
@start="start1"
|
@start="start1"
|
||||||
>
|
>
|
||||||
@ -68,6 +69,7 @@
|
|||||||
animation="300"
|
animation="300"
|
||||||
:move="onMove"
|
:move="onMove"
|
||||||
class="drag-list"
|
class="drag-list"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
@end="end1"
|
@end="end1"
|
||||||
@start="start1"
|
@start="start1"
|
||||||
>
|
>
|
||||||
@ -111,6 +113,7 @@
|
|||||||
<el-radio-group
|
<el-radio-group
|
||||||
v-model="view.type"
|
v-model="view.type"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
@change="save(true,'chart',true)"
|
@change="save(true,'chart',true)"
|
||||||
>
|
>
|
||||||
<div style="width: 100%;display: flex;display: -webkit-flex;justify-content: space-between;flex-direction: row;flex-wrap: wrap;">
|
<div style="width: 100%;display: flex;display: -webkit-flex;justify-content: space-between;flex-direction: row;flex-wrap: wrap;">
|
||||||
@ -207,7 +210,7 @@
|
|||||||
<el-row class="padding-lr">
|
<el-row class="padding-lr">
|
||||||
<span>{{ $t('chart.style_priority') }}</span>
|
<span>{{ $t('chart.style_priority') }}</span>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-radio-group v-model="view.stylePriority" size="mini" @change="save">
|
<el-radio-group v-model="view.stylePriority" :disabled="!hasDataPermission('manage',param.privileges)" size="mini" @change="save">
|
||||||
<el-radio label="view"><span>{{ $t('chart.chart') }}</span></el-radio>
|
<el-radio label="view"><span>{{ $t('chart.chart') }}</span></el-radio>
|
||||||
<el-radio label="panel"><span>{{ $t('chart.dashboard') }}</span></el-radio>
|
<el-radio label="panel"><span>{{ $t('chart.dashboard') }}</span></el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
@ -215,24 +218,24 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-tabs type="card" :stretch="true" class="tab-header">
|
<el-tabs type="card" :stretch="true" class="tab-header">
|
||||||
<el-tab-pane :label="$t('chart.shape_attr')" class="padding-lr">
|
<el-tab-pane :label="$t('chart.shape_attr')" class="padding-lr">
|
||||||
<color-selector class="attr-selector" :chart="chart" @onColorChange="onColorChange" />
|
<color-selector :param="param" class="attr-selector" :chart="chart" @onColorChange="onColorChange" />
|
||||||
<size-selector class="attr-selector" :chart="chart" @onSizeChange="onSizeChange" />
|
<size-selector :param="param" class="attr-selector" :chart="chart" @onSizeChange="onSizeChange" />
|
||||||
<label-selector v-show="!view.type.includes('table') && !view.type.includes('text')" class="attr-selector" :chart="chart" @onLabelChange="onLabelChange" />
|
<label-selector v-show="!view.type.includes('table') && !view.type.includes('text')" :param="param" class="attr-selector" :chart="chart" @onLabelChange="onLabelChange" />
|
||||||
<tooltip-selector v-show="!view.type.includes('table') && !view.type.includes('text')" class="attr-selector" :chart="chart" @onTooltipChange="onTooltipChange" />
|
<tooltip-selector v-show="!view.type.includes('table') && !view.type.includes('text')" :param="param" class="attr-selector" :chart="chart" @onTooltipChange="onTooltipChange" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane :label="$t('chart.module_style')" class="padding-lr">
|
<el-tab-pane :label="$t('chart.module_style')" class="padding-lr">
|
||||||
<x-axis-selector v-show="view.type.includes('bar') || view.type.includes('line')" class="attr-selector" :chart="chart" @onChangeXAxisForm="onChangeXAxisForm" />
|
<x-axis-selector v-show="view.type.includes('bar') || view.type.includes('line')" :param="param" class="attr-selector" :chart="chart" @onChangeXAxisForm="onChangeXAxisForm" />
|
||||||
<y-axis-selector v-show="view.type.includes('bar') || view.type.includes('line')" class="attr-selector" :chart="chart" @onChangeYAxisForm="onChangeYAxisForm" />
|
<y-axis-selector v-show="view.type.includes('bar') || view.type.includes('line')" :param="param" class="attr-selector" :chart="chart" @onChangeYAxisForm="onChangeYAxisForm" />
|
||||||
<split-selector v-show="view.type.includes('radar')" class="attr-selector" :chart="chart" @onChangeSplitForm="onChangeSplitForm" />
|
<split-selector v-show="view.type.includes('radar')" :param="param" class="attr-selector" :chart="chart" @onChangeSplitForm="onChangeSplitForm" />
|
||||||
<title-selector class="attr-selector" :chart="chart" @onTextChange="onTextChange" />
|
<title-selector :param="param" class="attr-selector" :chart="chart" @onTextChange="onTextChange" />
|
||||||
<legend-selector v-show="!view.type.includes('table') && !view.type.includes('text')" class="attr-selector" :chart="chart" @onLegendChange="onLegendChange" />
|
<legend-selector v-show="!view.type.includes('table') && !view.type.includes('text')" :param="param" class="attr-selector" :chart="chart" @onLegendChange="onLegendChange" />
|
||||||
<background-color-selector class="attr-selector" :chart="chart" @onChangeBackgroundForm="onChangeBackgroundForm" />
|
<background-color-selector :param="param" class="attr-selector" :chart="chart" @onChangeBackgroundForm="onChangeBackgroundForm" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
<div style="height:60px;overflow:auto;border-top: 1px solid #e6e6e6" class="padding-lr filter-class">
|
<div style="height:60px;overflow:auto;border-top: 1px solid #e6e6e6" class="padding-lr filter-class">
|
||||||
<span>{{ $t('chart.result_filter') }}</span>
|
<span>{{ $t('chart.result_filter') }}</span>
|
||||||
<el-button size="mini" class="filter-btn-class" @click="showResultFilter">
|
<el-button :disabled="!hasDataPermission('manage',param.privileges)" size="mini" class="filter-btn-class" @click="showResultFilter">
|
||||||
{{ $t('chart.filter_condition') }}<i class="el-icon-setting el-icon--right" />
|
{{ $t('chart.filter_condition') }}<i class="el-icon-setting el-icon--right" />
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -245,6 +248,7 @@
|
|||||||
<span style="line-height: 32px;width: 80px;text-align: right;">{{ $t('chart.dimension') }}</span>
|
<span style="line-height: 32px;width: 80px;text-align: right;">{{ $t('chart.dimension') }}</span>
|
||||||
<draggable
|
<draggable
|
||||||
v-model="view.xaxis"
|
v-model="view.xaxis"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
group="dimension"
|
group="dimension"
|
||||||
animation="300"
|
animation="300"
|
||||||
:move="onMove"
|
:move="onMove"
|
||||||
@ -252,7 +256,7 @@
|
|||||||
@end="end2"
|
@end="end2"
|
||||||
>
|
>
|
||||||
<transition-group class="draggable-group">
|
<transition-group class="draggable-group">
|
||||||
<dimension-item v-for="(item,index) in view.xaxis" :key="item.id" :index="index" :item="item" @onDimensionItemChange="dimensionItemChange" @onDimensionItemRemove="dimensionItemRemove" @editItemFilter="showDimensionEditFilter" @onNameEdit="showRename" />
|
<dimension-item v-for="(item,index) in view.xaxis" :key="item.id" :param="param" :index="index" :item="item" @onDimensionItemChange="dimensionItemChange" @onDimensionItemRemove="dimensionItemRemove" @editItemFilter="showDimensionEditFilter" @onNameEdit="showRename" />
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</draggable>
|
</draggable>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -260,6 +264,7 @@
|
|||||||
<span style="line-height: 32px;width: 80px;text-align: right;">{{ $t('chart.quota') }}</span>
|
<span style="line-height: 32px;width: 80px;text-align: right;">{{ $t('chart.quota') }}</span>
|
||||||
<draggable
|
<draggable
|
||||||
v-model="view.yaxis"
|
v-model="view.yaxis"
|
||||||
|
:disabled="!hasDataPermission('manage',param.privileges)"
|
||||||
group="quota"
|
group="quota"
|
||||||
animation="300"
|
animation="300"
|
||||||
:move="onMove"
|
:move="onMove"
|
||||||
@ -267,7 +272,7 @@
|
|||||||
@end="end2"
|
@end="end2"
|
||||||
>
|
>
|
||||||
<transition-group class="draggable-group">
|
<transition-group class="draggable-group">
|
||||||
<quota-item v-for="(item,index) in view.yaxis" :key="item.id" :index="index" :item="item" @onQuotaItemChange="quotaItemChange" @onQuotaItemRemove="quotaItemRemove" @editItemFilter="showQuotaEditFilter" @onNameEdit="showRename" />
|
<quota-item v-for="(item,index) in view.yaxis" :key="item.id" :param="param" :index="index" :item="item" @onQuotaItemChange="quotaItemChange" @onQuotaItemRemove="quotaItemRemove" @editItemFilter="showQuotaEditFilter" @onNameEdit="showRename" />
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</draggable>
|
</draggable>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -348,7 +353,7 @@
|
|||||||
<!--视图更换数据集-->
|
<!--视图更换数据集-->
|
||||||
<el-dialog
|
<el-dialog
|
||||||
v-dialogDrag
|
v-dialogDrag
|
||||||
:title="$t('chart.change_ds')+'['+table.name+']'"
|
:title="changeDsTitle"
|
||||||
:visible="selectTableFlag"
|
:visible="selectTableFlag"
|
||||||
:show-close="false"
|
:show-close="false"
|
||||||
width="70%"
|
width="70%"
|
||||||
@ -359,7 +364,7 @@
|
|||||||
<p style="margin-top: 10px;color:#F56C6C;font-size: 12px;">{{ $t('chart.change_ds_tip') }}</p>
|
<p style="margin-top: 10px;color:#F56C6C;font-size: 12px;">{{ $t('chart.change_ds_tip') }}</p>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button size="mini" @click="closeChangeChart">{{ $t('chart.cancel') }}</el-button>
|
<el-button size="mini" @click="closeChangeChart">{{ $t('chart.cancel') }}</el-button>
|
||||||
<el-button type="primary" size="mini" :disabled="!table.id" @click="changeChart">{{ $t('chart.confirm') }}</el-button>
|
<el-button type="primary" size="mini" :disabled="!table || !table.id" @click="changeChart">{{ $t('chart.confirm') }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
@ -485,7 +490,8 @@ export default {
|
|||||||
selectTableFlag: false,
|
selectTableFlag: false,
|
||||||
changeTable: {},
|
changeTable: {},
|
||||||
searchField: '',
|
searchField: '',
|
||||||
editDsField: false
|
editDsField: false,
|
||||||
|
changeDsTitle: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -520,7 +526,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
initTableData(id) {
|
initTableData(id) {
|
||||||
if (id != null) {
|
if (id != null) {
|
||||||
post('/dataset/table/get/' + id, null).then(response => {
|
post('/dataset/table/getWithPermission/' + id, null).then(response => {
|
||||||
this.table = response.data
|
this.table = response.data
|
||||||
this.initTableField(id)
|
this.initTableField(id)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@ -1038,6 +1044,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
changeDs() {
|
changeDs() {
|
||||||
|
this.changeDsTitle = this.$t('chart.change_ds') + '[' + this.table.name + ']'
|
||||||
this.selectTableFlag = true
|
this.selectTableFlag = true
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -77,6 +77,10 @@ export default {
|
|||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
fields: {
|
fields: {
|
||||||
type: Array,
|
type: Array,
|
||||||
required: true
|
required: true
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button size="mini" @click="showUnionEdit">{{ $t('dataset.add_union') }}</el-button>
|
<el-button v-if="hasDataPermission('manage',param.privileges)" size="mini" @click="showUnionEdit">{{ $t('dataset.add_union') }}</el-button>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-table
|
<el-table
|
||||||
size="mini"
|
size="mini"
|
||||||
@ -34,8 +34,8 @@
|
|||||||
:label="$t('dataset.operate')"
|
:label="$t('dataset.operate')"
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="mini" @click="edit(scope.row)">{{ $t('dataset.edit') }}</el-button>
|
<el-button v-if="hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="edit(scope.row)">{{ $t('dataset.edit') }}</el-button>
|
||||||
<el-button type="text" size="mini" @click="deleteUnion(scope.row)">{{ $t('dataset.delete') }}</el-button>
|
<el-button v-if="hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="deleteUnion(scope.row)">{{ $t('dataset.delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -143,6 +143,10 @@ export default {
|
|||||||
table: {
|
table: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
},
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-col>
|
<el-col>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-button icon="el-icon-setting" size="mini" @click="showConfig">
|
<el-button v-if="hasDataPermission('manage',param.privileges)" icon="el-icon-setting" size="mini" @click="showConfig">
|
||||||
{{ $t('dataset.update_setting') }}
|
{{ $t('dataset.update_setting') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="refreshLog">
|
<el-button icon="el-icon-refresh" size="mini" @click="refreshLog">
|
||||||
@ -302,6 +302,10 @@ export default {
|
|||||||
table: {
|
table: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: null
|
default: null
|
||||||
|
},
|
||||||
|
param: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-row style="height: 100%;overflow-y: hidden;width: 100%;">
|
<el-row style="height: 100%;overflow-y: hidden;width: 100%;">
|
||||||
<!-- <span v-show="false">{{ tableRefresh }}</span>-->
|
<!-- <span v-show="false">{{ tableRefresh }}</span>-->
|
||||||
<el-row style="height: 26px;">
|
<el-row style="height: 26px;">
|
||||||
<el-popover
|
<el-popover
|
||||||
placement="right-start"
|
placement="right-start"
|
||||||
@ -14,7 +14,7 @@
|
|||||||
{{ table.name }}
|
{{ table.name }}
|
||||||
</span>
|
</span>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<el-row style="float: right">
|
<el-row v-if="hasDataPermission('manage',param.privileges)" style="float: right">
|
||||||
<el-dropdown v-if="table.type ==='excel'" style="margin-right: 10px;" size="small" trigger="click" @command="clickEditExcel">
|
<el-dropdown v-if="table.type ==='excel'" style="margin-right: 10px;" size="small" trigger="click" @command="clickEditExcel">
|
||||||
<el-button size="mini">
|
<el-button size="mini">
|
||||||
{{ $t('dataset.edit_excel') }}
|
{{ $t('dataset.edit_excel') }}
|
||||||
@ -46,13 +46,13 @@
|
|||||||
|
|
||||||
<el-tabs v-model="tabActive">
|
<el-tabs v-model="tabActive">
|
||||||
<el-tab-pane :label="$t('dataset.data_preview')" name="dataPreview">
|
<el-tab-pane :label="$t('dataset.data_preview')" name="dataPreview">
|
||||||
<tab-data-preview :table="table" :fields="fields" :data="data" :page="page" :form="tableViewRowForm" @reSearch="reSearch" />
|
<tab-data-preview :param="param" :table="table" :fields="fields" :data="data" :page="page" :form="tableViewRowForm" @reSearch="reSearch" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane v-if="table.type !== 'custom' && table.mode === 1" :label="$t('dataset.join_view')" name="joinView">
|
<el-tab-pane v-if="table.type !== 'custom' && table.mode === 1" :label="$t('dataset.join_view')" name="joinView">
|
||||||
<union-view :table="table" />
|
<union-view :param="param" :table="table" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane v-if="table.mode === 1 && (table.type === 'db' || table.type === 'sql')" :label="$t('dataset.update_info')" name="updateInfo">
|
<el-tab-pane v-if="table.mode === 1 && (table.type === 'db' || table.type === 'sql')" :label="$t('dataset.update_info')" name="updateInfo">
|
||||||
<update-info :table="table" />
|
<update-info :param="param" :table="table" />
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -70,7 +70,7 @@ export default {
|
|||||||
components: { UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview },
|
components: { UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview },
|
||||||
props: {
|
props: {
|
||||||
param: {
|
param: {
|
||||||
type: String,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -101,14 +101,14 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'param': function() {
|
'param': function() {
|
||||||
this.initTable(this.param)
|
this.initTable(this.param.id)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.initTable(this.param)
|
this.initTable(this.param.id)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
initTable(id) {
|
initTable(id) {
|
||||||
|
|||||||
@ -672,7 +672,7 @@ export default {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
if (data.type !== 'group') {
|
if (data.type !== 'group') {
|
||||||
this.$emit('switchComponent', { name: 'ViewTable', param: data.id })
|
this.$emit('switchComponent', { name: 'ViewTable', param: data })
|
||||||
}
|
}
|
||||||
// if (node.expanded) {
|
// if (node.expanded) {
|
||||||
// this.expandedArray.push(data.id)
|
// this.expandedArray.push(data.id)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user