Merge branch 'dev' of github.com:dataease/dataease into dev

This commit is contained in:
taojinlong 2022-02-22 11:51:53 +08:00
commit a753e4e66c
16 changed files with 303 additions and 146 deletions

View File

@ -10,19 +10,16 @@
<select id="searchOneWithPrivileges" resultMap="BaseResultMapDTO"> <select id="searchOneWithPrivileges" resultMap="BaseResultMapDTO">
select select
chart_view.*, chart_view.*
get_auths(id,'chart',#{userId}) as `privileges`
from chart_view where id = #{id} from chart_view where id = #{id}
</select> </select>
<select id="searchOne" resultMap="BaseResultMapDTO"> <select id="searchOne" resultMap="BaseResultMapDTO">
select select
id, `name`, scene_id, table_id, `type`, title, create_by, create_time, update_time, id, `name`, scene_id, table_id, `type`, title, create_by, create_time, update_time,
style_priority,x_axis, y_axis, custom_attr, custom_style, custom_filter, snapshot, style_priority,x_axis, y_axis, custom_attr, custom_style, custom_filter, snapshot
get_auths(id,'chart',#{userId}) as `privileges` from chart_view
from (select GET_V_AUTH_MODEL_ID_P_USE (#{userId}, 'chart') cids) t,chart_view
<where> <where>
FIND_IN_SET(chart_view.id,cids)
<if test="sceneId != null"> <if test="sceneId != null">
and scene_id = #{sceneId,jdbcType=VARCHAR} and scene_id = #{sceneId,jdbcType=VARCHAR}
</if> </if>
@ -94,6 +91,7 @@
`type`, `type`,
`title`, `title`,
`x_axis`, `x_axis`,
`x_axis_ext`,
`y_axis`, `y_axis`,
`custom_attr`, `custom_attr`,
`custom_style`, `custom_style`,
@ -119,6 +117,7 @@
`type`, `type`,
GET_CHART_VIEW_COPY_NAME ( #{oldChartId} ), GET_CHART_VIEW_COPY_NAME ( #{oldChartId} ),
`x_axis`, `x_axis`,
`x_axis_ext`,
`y_axis`, `y_axis`,
`custom_attr`, `custom_attr`,
`custom_style`, `custom_style`,

View File

@ -130,9 +130,5 @@ public class ChartGroupService {
if (ObjectUtils.isNotEmpty(chartGroup.getLevel())) { if (ObjectUtils.isNotEmpty(chartGroup.getLevel())) {
criteria.andLevelEqualTo(chartGroup.getLevel()); criteria.andLevelEqualTo(chartGroup.getLevel());
} }
List<ChartGroup> list = chartGroupMapper.selectByExample(chartGroupExample);
if (list.size() > 0) {
throw new RuntimeException(Translator.get("i18n_name_cant_repeat_same_group"));
}
} }
} }

View File

@ -1656,10 +1656,6 @@ public class ChartViewService {
if (StringUtils.isNotEmpty(chartView.getName())) { if (StringUtils.isNotEmpty(chartView.getName())) {
criteria.andNameEqualTo(chartView.getName()); criteria.andNameEqualTo(chartView.getName());
} }
List<ChartViewWithBLOBs> list = chartViewMapper.selectByExampleWithBLOBs(chartViewExample);
if (list.size() > 0) {
throw new RuntimeException(Translator.get("i18n_name_cant_repeat_same_group"));
}
} }
public ChartDetail getChartDetail(String id) { public ChartDetail getChartDetail(String id) {

View File

@ -74,11 +74,12 @@ public class PanelViewService {
@Transactional(propagation=Propagation.REQUIRES_NEW) @Transactional(propagation=Propagation.REQUIRES_NEW)
public Boolean syncPanelViews(PanelGroupWithBLOBs panelGroup){ public Boolean syncPanelViews(PanelGroupWithBLOBs panelGroup){
Boolean mobileLayout = false; Boolean mobileLayout = null;
String panelId = panelGroup.getId(); String panelId = panelGroup.getId();
Assert.notNull(panelId, "panelId cannot be null"); Assert.notNull(panelId, "panelId cannot be null");
String panelData = panelGroup.getPanelData(); String panelData = panelGroup.getPanelData();
if(StringUtils.isNotEmpty(panelData)){ if(StringUtils.isNotEmpty(panelData)){
mobileLayout = false;
JSONArray dataArray = JSON.parseArray(panelData); JSONArray dataArray = JSON.parseArray(panelData);
List<PanelViewInsertDTO> panelViewInsertDTOList = new ArrayList<>(); List<PanelViewInsertDTO> panelViewInsertDTOList = new ArrayList<>();
for(int i=0;i<dataArray.size();i++){ for(int i=0;i<dataArray.size();i++){

View File

@ -126,7 +126,8 @@ export default {
'targetLinkageInfo', 'targetLinkageInfo',
'mobileLayoutStatus', 'mobileLayoutStatus',
'mobileComponentData', 'mobileComponentData',
'componentDataCache' 'componentDataCache',
'styleChangeTimes'
]) ])
}, },
created() { created() {

View File

@ -8,62 +8,64 @@
'rect-shape' 'rect-shape'
]" ]"
> >
<EditBarView v-if="editBarViewShowFlag" :is-edit="isEdit" :view-id="element.propValue.viewId" @showViewDetails="openChartDetailsDialog" /> <div :style="componentBackGround">
<div v-if="requestStatus==='error'" class="chart-error-class"> <EditBarView v-if="editBarViewShowFlag" :is-edit="isEdit" :view-id="element.propValue.viewId" @showViewDetails="openChartDetailsDialog" />
<div class="chart-error-message-class"> <div v-if="requestStatus==='error'" class="chart-error-class">
{{ message }},{{ $t('chart.chart_show_error') }} <div class="chart-error-message-class">
<br> {{ message }},{{ $t('chart.chart_show_error') }}
{{ $t('chart.chart_error_tips') }} <br>
{{ $t('chart.chart_error_tips') }}
</div>
</div>
<plugin-com
v-if="chart.isPlugin"
:ref="element.propValue.id"
:component-name="chart.type + '-view'"
:obj="{chart, trackMenu, searchCount, terminalType: scaleCoefficientType}"
class="chart-class"
/>
<chart-component
v-else-if="charViewShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
:terminal-type="scaleCoefficientType"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-g2
v-else-if="charViewG2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-s2
v-else-if="charViewS2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<table-normal
v-else-if="tableShowFlag"
:ref="element.propValue.id"
:show-summary="chart.type === 'table-normal'"
:chart="chart"
class="table-class"
/>
<label-normal v-else-if="labelShowFlag" :ref="element.propValue.id" :chart="chart" class="table-class" />
<div style="position: absolute;left: 8px;bottom:8px;">
<drill-path :drill-filters="drillFilters" @onDrillJump="drillJump" />
</div> </div>
</div>
<plugin-com
v-if="chart.isPlugin"
:ref="element.propValue.id"
:component-name="chart.type + '-view'"
:obj="{chart, trackMenu, searchCount, terminalType: scaleCoefficientType}"
class="chart-class"
/>
<chart-component
v-else-if="charViewShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
:terminal-type="scaleCoefficientType"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-g2
v-else-if="charViewG2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<chart-component-s2
v-else-if="charViewS2ShowFlag"
:ref="element.propValue.id"
class="chart-class"
:chart="chart"
:track-menu="trackMenu"
:search-count="searchCount"
@onChartClick="chartClick"
@onJumpClick="jumpClick"
/>
<table-normal
v-else-if="tableShowFlag"
:ref="element.propValue.id"
:show-summary="chart.type === 'table-normal'"
:chart="chart"
class="table-class"
/>
<label-normal v-else-if="labelShowFlag" :ref="element.propValue.id" :chart="chart" class="table-class" />
<div style="position: absolute;left: 8px;bottom:8px;">
<drill-path :drill-filters="drillFilters" @onDrillJump="drillJump" />
</div> </div>
</div> </div>
</template> </template>
@ -90,6 +92,7 @@ import EditBarView from '@/components/canvas/components/Editor/EditBarView'
import { customAttrTrans, customStyleTrans, recursionTransObj } from '@/components/canvas/utils/style' import { customAttrTrans, customStyleTrans, recursionTransObj } from '@/components/canvas/utils/style'
import ChartComponentS2 from '@/views/chart/components/ChartComponentS2' import ChartComponentS2 from '@/views/chart/components/ChartComponentS2'
import PluginCom from '@/views/system/plugin/PluginCom' import PluginCom from '@/views/system/plugin/PluginCom'
import { hexColorToRGBA } from '@/views/chart/chart/util'
export default { export default {
name: 'UserView', name: 'UserView',
components: { PluginCom, ChartComponentS2, EditBarView, ChartComponent, TableNormal, LabelNormal, DrillPath, ChartComponentG2 }, components: { PluginCom, ChartComponentS2, EditBarView, ChartComponent, TableNormal, LabelNormal, DrillPath, ChartComponentG2 },
@ -166,6 +169,31 @@ export default {
}, },
computed: { computed: {
//
componentBackGround() {
const customStyle = JSON.parse(this.chart.customStyle)
let style = {
height: '100%',
width: '100%',
backgroundSize: '100% 100% !important',
borderRadius: '0px'
}
if (customStyle && customStyle.background) {
style.borderRadius = customStyle.background.borderRadius + 'px!important'
if (customStyle.background.backgroundType === 'outImage' && typeof (customStyle.background.outImage) === 'string') {
style = {
background: `url(${customStyle.background.outImage}) no-repeat`,
...style
}
} else if (!customStyle.background.backgroundType || customStyle.background.backgroundType === 'color') {
style = {
background: hexColorToRGBA(customStyle.background.color, customStyle.background.alpha),
...style
}
}
}
return style
},
scaleCoefficient() { scaleCoefficient() {
if (this.terminal === 'pc' && !this.mobileLayoutStatus) { if (this.terminal === 'pc' && !this.mobileLayoutStatus) {
return 1.1 return 1.1

View File

@ -1,3 +1,8 @@
import {ApplicationContext} from "@/utils/ApplicationContext";
import {BASE_MOBILE_STYLE, HYPERLINKS} from "@/components/canvas/custom-component/component-list";
import store from "@/store";
import {deepCopy, resetID} from "@/components/canvas/utils/utils";
export const DEFAULT_COLOR_CASE = { export const DEFAULT_COLOR_CASE = {
value: 'default', value: 'default',
colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'], colors: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],
@ -192,7 +197,10 @@ export const DEFAULT_YAXIS_EXT_STYLE = {
} }
} }
export const DEFAULT_BACKGROUND_COLOR = { export const DEFAULT_BACKGROUND_COLOR = {
backgroundType: 'color',
color: '#ffffff', color: '#ffffff',
outImage: null,
innerImage: null,
alpha: 100, alpha: 100,
borderRadius: 5 borderRadius: 5
} }

View File

@ -174,7 +174,7 @@ export function componentStyle(chart_option, chart) {
chart_option.radar.splitArea = customStyle.split.splitArea chart_option.radar.splitArea = customStyle.split.splitArea
} }
if (customStyle.background) { if (customStyle.background) {
chart_option.backgroundColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha) // chart_option.backgroundColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
} }
} }
} }

View File

@ -40,7 +40,7 @@ export function getTheme(chart) {
customStyle = JSON.parse(chart.customStyle) customStyle = JSON.parse(chart.customStyle)
// bg // bg
if (customStyle.background) { if (customStyle.background) {
bgColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha) // bgColor = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
} }
// legend // legend
if (customStyle.legend) { if (customStyle.legend) {

View File

@ -7,7 +7,7 @@
:style="trackBarStyleTime" :style="trackBarStyleTime"
@trackClick="trackClick" @trackClick="trackClick"
/> />
<div :id="chartId" style="width: 100%;height: 100%;overflow: hidden;" :style="{ borderRadius: borderRadius}" /> <div :id="chartId" style="width: 100%;height: 100%;overflow: hidden;" />
<div v-if="chart.type === 'map'" class="map-zoom-box"> <div v-if="chart.type === 'map'" class="map-zoom-box">
<div style="margin-bottom: 0.5em;"> <div style="margin-bottom: 0.5em;">
<el-button size="mini" icon="el-icon-plus" circle @click="roamMap(true)" /> <el-button size="mini" icon="el-icon-plus" circle @click="roamMap(true)" />

View File

@ -87,7 +87,7 @@ export default {
}, },
bg_class() { bg_class() {
return { return {
borderRadius: this.borderRadius // borderRadius: this.borderRadius
} }
} }
}, },

View File

@ -1,10 +1,10 @@
<template> <template>
<div ref="chartContainer" style="padding: 0;width: 100%;height: 100%;overflow: hidden;" :style="bg_class"> <div ref="chartContainer" style="padding: 0;width: 100%;height: 100%;overflow: hidden;">
<view-track-bar ref="viewTrack" :track-menu="trackMenu" class="track-bar" :style="trackBarStyleTime" @trackClick="trackClick" /> <view-track-bar ref="viewTrack" :track-menu="trackMenu" class="track-bar" :style="trackBarStyleTime" @trackClick="trackClick" />
<span v-if="chart.type" v-show="title_show" ref="title" :style="title_class" style="cursor: default;display: block;"> <span v-if="chart.type" v-show="title_show" ref="title" :style="title_class" style="cursor: default;display: block;">
<p style="padding:6px 10px 0 10px;margin: 0;overflow: hidden;white-space: pre;text-overflow: ellipsis;">{{ chart.title }}</p> <p style="padding:6px 10px 0 10px;margin: 0;overflow: hidden;white-space: pre;text-overflow: ellipsis;">{{ chart.title }}</p>
</span> </span>
<div ref="tableContainer" style="width: 100%;overflow: hidden;padding: 8px;" :style="{background:container_bg_class.background}"> <div ref="tableContainer" style="width: 100%;overflow: hidden;padding: 8px;">
<div v-if="chart.type === 'table-normal'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-normal-drill' : 'table-dom-normal'" /> <div v-if="chart.type === 'table-normal'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-normal-drill' : 'table-dom-normal'" />
<div v-if="chart.type === 'table-info'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-info-drill' : 'table-dom-info'" /> <div v-if="chart.type === 'table-info'" :id="chartId" style="width: 100%;overflow: hidden;" :class="chart.drill ? 'table-dom-info-drill' : 'table-dom-info'" />
<div v-if="chart.type === 'table-pivot'" :id="chartId" style="width: 100%;overflow: hidden;" class="table-dom-normal" /> <div v-if="chart.type === 'table-pivot'" :id="chartId" style="width: 100%;overflow: hidden;" class="table-dom-normal" />
@ -109,7 +109,6 @@ export default {
}, },
bg_class() { bg_class() {
return { return {
borderRadius: this.borderRadius
} }
} }
}, },
@ -259,12 +258,7 @@ export default {
} }
}, },
setBackGroundBorder() { setBackGroundBorder() {
if (this.chart.customStyle) {
const customStyle = JSON.parse(this.chart.customStyle)
if (customStyle.background) {
this.borderRadius = (customStyle.background.borderRadius || 0) + 'px'
}
}
}, },
chartResize() { chartResize() {
this.initData() this.initData()
@ -325,12 +319,6 @@ export default {
this.$refs.title.style.fontSize = customStyle.text.fontSize + 'px' this.$refs.title.style.fontSize = customStyle.text.fontSize + 'px'
} }
} }
if (customStyle.background) {
this.title_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
this.borderRadius = (customStyle.background.borderRadius || 0) + 'px'
this.container_bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
}
} }
}, },

View File

@ -1,24 +1,74 @@
<template> <template>
<div style="width: 100%"> <div style="width: 100%">
<el-col> <el-col>
<el-form ref="colorForm" :model="colorForm" label-width="80px" size="mini"> <el-row>
<el-form-item :label="$t('chart.color')" class="form-item"> <el-col :span="5" class="col-label-item">
<el-color-picker v-model="colorForm.color" class="color-picker-style" :predefine="predefineColors" @change="changeBackgroundStyle" /> <el-radio v-model="colorForm.backgroundType" label="color" @change="changeBackgroundStyle"><span class="label-item">{{ $t('chart.color') }}</span></el-radio>
</el-form-item> </el-col>
<el-form-item :label="$t('chart.not_alpha')" class="form-item form-item-slider"> <el-col :span="19">
<el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" /> <el-color-picker v-model="colorForm.color" :predefine="predefineColors" size="mini" style="cursor: pointer;z-index: 1004;" @change="changeBackgroundStyle" />
</el-form-item> </el-col>
</el-row>
<el-form-item :label="$t('chart.border_radius')" class="form-item form-item-slider"> <el-row style="height: 60px;margin-top:10px;overflow: hidden">
<el-col :span="5" class="col-label-item">
<el-radio v-model="colorForm.backgroundType" label="outImage" @change="changeBackgroundStyle"><span class="label-item">{{ $t('panel.photo') }}</span></el-radio>
</el-col>
<el-col :span="9">
<el-upload
action=""
accept=".jpeg,.jpg,.png,.gif,.svg"
class="avatar-uploader"
list-type="picture-card"
:class="{disabled:uploadDisabled}"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:file-list="fileList"
:on-change="onChange"
:http-request="upload"
>
<i class="el-icon-plus" />
</el-upload>
<el-dialog top="25vh" width="600px" :modal-append-to-body="false" :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-col>
</el-row>
<el-row>
<el-col :span="5" class="col-label-item">
<span class="label-item">{{ $t('chart.border_radius') }}</span>
</el-col>
<el-col :span="19">
<el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" /> <el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
</el-form-item> </el-col>
</el-form> </el-row>
<el-row v-if="colorForm.backgroundType==='color'">
<el-col :span="5" class="col-label-item">
<span class="label-item">{{ $t('chart.not_alpha') }}</span>
</el-col>
<el-col :span="19">
<el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />
</el-col>
</el-row>
</el-col> </el-col>
<!-- <el-form ref="colorForm" :model="colorForm" label-width="80px" size="mini" :disabled="param && !hasDataPermission('manage',param.privileges)">-->
<!-- &lt;!&ndash; <el-form-item :label="$t('chart.color')" class="form-item">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-color-picker v-model="colorForm.color" class="color-picker-style" :predefine="predefineColors" @change="changeBackgroundStyle" />&ndash;&gt;-->
<!-- &lt;!&ndash; </el-form-item>&ndash;&gt;-->
<!-- <el-form-item :label="$t('chart.not_alpha')" class="form-item form-item-slider">-->
<!-- <el-slider v-model="colorForm.alpha" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="$t('chart.border_radius')" class="form-item form-item-slider">-->
<!-- <el-slider v-model="colorForm.borderRadius" show-input :show-input-controls="false" input-size="mini" @change="changeBackgroundStyle" />-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </el-col>-->
</div> </div>
</template> </template>
<script> <script>
import { COLOR_PANEL, DEFAULT_BACKGROUND_COLOR } from '../../chart/chart' import { COLOR_PANEL, DEFAULT_BACKGROUND_COLOR } from '../../chart/chart'
import { deepCopy } from '@/components/canvas/utils/utils'
export default { export default {
name: 'BackgroundColorSelector', name: 'BackgroundColorSelector',
@ -34,6 +84,10 @@ export default {
}, },
data() { data() {
return { return {
fileList: [],
dialogImageUrl: '',
dialogVisible: false,
uploadDisabled: false,
colorForm: JSON.parse(JSON.stringify(DEFAULT_BACKGROUND_COLOR)), colorForm: JSON.parse(JSON.stringify(DEFAULT_BACKGROUND_COLOR)),
predefineColors: COLOR_PANEL predefineColors: COLOR_PANEL
} }
@ -62,41 +116,117 @@ export default {
customStyle = JSON.parse(chart.customStyle) customStyle = JSON.parse(chart.customStyle)
} }
if (customStyle.background) { if (customStyle.background) {
debugger
this.colorForm = customStyle.background this.colorForm = customStyle.background
this.colorForm.backgroundType = this.colorForm.backgroundType || 'color'
if (this.colorForm.outImage && typeof (this.colorForm.outImage) === 'string') {
this.fileList.push({ url: this.colorForm.outImage })
}
} }
} }
},
onChangeType() {
this.changeBackgroundStyle()
},
handleRemove(file, fileList) {
this.uploadDisabled = false
this.colorForm.outImage = null
this.fileList = []
this.changeBackgroundStyle()
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
onChange(file, fileList) {
var _this = this
_this.uploadDisabled = true
const reader = new FileReader()
reader.onload = function() {
_this.colorForm.outImage = reader.result
_this.changeBackgroundStyle()
}
this.$store.state.styleChangeTimes++
reader.readAsDataURL(file.raw)
},
upload(file) {
// console.log('this is upload')
} }
} }
} }
</script> </script>
<style scoped> <style scoped>
.shape-item{ .shape-item{
padding: 6px; padding: 6px;
border: none; border: none;
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
} }
.form-item-slider>>>.el-form-item__label{ .form-item-slider>>>.el-form-item__label{
font-size: 12px; font-size: 12px;
line-height: 38px; line-height: 38px;
} }
.form-item>>>.el-form-item__label{ .form-item>>>.el-form-item__label{
font-size: 12px; font-size: 12px;
} }
.el-select-dropdown__item{ .el-select-dropdown__item{
padding: 0 20px; padding: 0 20px;
} }
span{ span{
font-size: 12px font-size: 12px
} }
.el-form-item{ .el-form-item{
margin-bottom: 6px; margin-bottom: 6px;
} }
.color-picker-style{ .color-picker-style{
cursor: pointer; cursor: pointer;
z-index: 1003; z-index: 1003;
} }
.avatar-uploader>>>.el-upload {
width: 100px;
height: 60px;
line-height: 70px;
}
.avatar-uploader>>>.el-upload-list li{
width: 100px !important;
height: 60px !important;
}
.disabled>>>.el-upload--picture-card {
display: none;
}
.shape-item{
padding: 6px;
border: none;
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
.el-select-dropdown__item{
padding: 0 20px;
}
span{
font-size: 12px
}
.el-form-item{
margin-bottom: 6px;
}
.label-item{
font-size: 12px;
font-weight: bold;
}
.col-label-item{
text-align: right;
padding-right: 10px;
}
</style> </style>

View File

@ -161,7 +161,7 @@ export default {
this.title_class.fontWeight = customStyle.text.isBolder ? 'bold' : 'normal' this.title_class.fontWeight = customStyle.text.isBolder ? 'bold' : 'normal'
} }
if (customStyle.background) { if (customStyle.background) {
this.bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha) // this.bg_class.background = hexColorToRGBA(customStyle.background.color, customStyle.background.alpha)
} }
} }
}, },

View File

@ -1,5 +1,5 @@
<template> <template>
<div ref="tableContainer" :style="bg_class" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;"> <div ref="tableContainer" style="padding: 8px;width: 100%;height: 100%;overflow: hidden;">
<el-row style="height: 100%;"> <el-row style="height: 100%;">
<p v-show="title_show" ref="title" :style="title_class">{{ chart.title }}</p> <p v-show="title_show" ref="title" :style="title_class">{{ chart.title }}</p>
<ux-grid <ux-grid
@ -124,8 +124,6 @@ export default {
computed: { computed: {
bg_class() { bg_class() {
return { return {
background: hexColorToRGBA('#ffffff', 0),
borderRadius: this.borderRadius
} }
} }
}, },

View File

@ -46,7 +46,6 @@
/> />
<el-button <el-button
:title="$t('chart.change_ds')" :title="$t('chart.change_ds')"
:disabled="!hasDataPermission('manage',param.privileges)"
icon="el-icon-refresh" icon="el-icon-refresh"
type="text" type="text"
size="mini" size="mini"
@ -62,7 +61,6 @@
animation="300" animation="300"
:move="onMove" :move="onMove"
class="drag-list" class="drag-list"
:disabled="!hasDataPermission('manage',param.privileges)"
@add="moveToDimension" @add="moveToDimension"
> >
<transition-group> <transition-group>
@ -88,7 +86,6 @@
animation="300" animation="300"
:move="onMove" :move="onMove"
class="drag-list" class="drag-list"
:disabled="!hasDataPermission('manage',param.privileges)"
@add="moveToQuota" @add="moveToQuota"
> >
<transition-group> <transition-group>
@ -157,7 +154,6 @@
<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="changeChartType()" @change="changeChartType()"
> >
<chart-type ref="cu-chart-type" :chart="view" style="height: 480px" /> <chart-type ref="cu-chart-type" :chart="view" style="height: 480px" />
@ -182,7 +178,6 @@
slot="reference" slot="reference"
size="mini" size="mini"
style="padding: 6px;" style="padding: 6px;"
:disabled="!hasDataPermission('manage',param.privileges)"
> >
{{ $t('chart.change_chart_type') }} {{ $t('chart.change_chart_type') }}
<i class="el-icon-caret-bottom" /> <i class="el-icon-caret-bottom" />
@ -202,7 +197,6 @@
<el-radio-group <el-radio-group
v-model="view.resultMode" v-model="view.resultMode"
class="radio-span" class="radio-span"
:disabled="!hasDataPermission('manage',param.privileges)"
size="mini" size="mini"
@change="calcData" @change="calcData"
> >
@ -212,7 +206,6 @@
v-model="view.resultCount" v-model="view.resultCount"
class="result-count" class="result-count"
size="mini" size="mini"
:disabled="!hasDataPermission('manage',param.privileges)"
@change="calcData" @change="calcData"
/> />
</el-radio> </el-radio>
@ -237,7 +230,6 @@
:no-children-text="$t('commons.treeselect.no_children_text')" :no-children-text="$t('commons.treeselect.no_children_text')"
:no-options-text="$t('commons.treeselect.no_options_text')" :no-options-text="$t('commons.treeselect.no_options_text')"
:no-results-text="$t('commons.treeselect.no_results_text')" :no-results-text="$t('commons.treeselect.no_results_text')"
:disabled="!hasDataPermission('manage',param.privileges)"
@input="calcData" @input="calcData"
@deselect="calcData" @deselect="calcData"
/> />
@ -256,7 +248,6 @@
</span> </span>
<draggable <draggable
v-model="view.xaxisExt" v-model="view.xaxisExt"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -310,7 +301,6 @@
</span> </span>
<draggable <draggable
v-model="view.xaxis" v-model="view.xaxis"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -364,7 +354,6 @@
</span> </span>
<draggable <draggable
v-model="view.yaxis" v-model="view.yaxis"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -403,7 +392,6 @@
</span> </span>
<draggable <draggable
v-model="view.yaxisExt" v-model="view.yaxisExt"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -442,7 +430,6 @@
</span> </span>
<draggable <draggable
v-model="view.extStack" v-model="view.extStack"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -484,7 +471,6 @@
</span> </span>
<draggable <draggable
v-model="view.extBubble" v-model="view.extBubble"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -518,7 +504,6 @@
<!-- </el-button>--> <!-- </el-button>-->
<draggable <draggable
v-model="view.customFilter" v-model="view.customFilter"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -557,7 +542,6 @@
</span> </span>
<draggable <draggable
v-model="view.drillFields" v-model="view.drillFields"
:disabled="!hasDataPermission('manage',param.privileges)"
group="drag" group="drag"
animation="300" animation="300"
:move="onMove" :move="onMove"
@ -609,7 +593,6 @@
<el-radio-group <el-radio-group
v-model="view.stylePriority" v-model="view.stylePriority"
class="radio-span" class="radio-span"
:disabled="!hasDataPermission('manage',param.privileges)"
size="mini" size="mini"
@change="calcStyle" @change="calcStyle"
> >
@ -825,8 +808,8 @@
</el-tabs> </el-tabs>
<el-col style="height: 100%;min-width: 500px;border-top: 1px solid #E6E6E6;"> <el-col style="height: 100%;min-width: 500px;border-top: 1px solid #E6E6E6;">
<el-row style="width: 100%;height: 100%;" class="padding-lr"> <el-row :style="componentBackGround" class="padding-lr">
<div ref="imageWrapper" style="height: 100%"> <div ref="imageWrapper" style="height: 100%;">
<plugin-com <plugin-com
v-if="httpRequest.status && chart.type && view.isPlugin" v-if="httpRequest.status && chart.type && view.isPlugin"
ref="dynamicChart" ref="dynamicChart"
@ -1064,6 +1047,7 @@ import { compareItem } from '@/views/chart/chart/compare'
import ChartComponentS2 from '@/views/chart/components/ChartComponentS2' import ChartComponentS2 from '@/views/chart/components/ChartComponentS2'
import DimensionExtItem from '@/views/chart/components/drag-item/DimensionExtItem' import DimensionExtItem from '@/views/chart/components/drag-item/DimensionExtItem'
import PluginCom from '@/views/system/plugin/PluginCom' import PluginCom from '@/views/system/plugin/PluginCom'
import { hexColorToRGBA } from '@/views/chart/chart/util'
export default { export default {
name: 'ChartEdit', name: 'ChartEdit',
components: { components: {
@ -1206,6 +1190,32 @@ export default {
computed: { computed: {
chartType() { chartType() {
return this.chart.type return this.chart.type
},
//
componentBackGround() {
const customStyle = JSON.parse(JSON.stringify(this.view.customStyle))
let style = {
height: '100%',
width: '100%',
backgroundSize: '100% 100% !important'
}
debugger
if (customStyle && customStyle.background) {
style['borderRadius'] = customStyle.background.borderRadius + 'px'
if (customStyle.background.backgroundType === 'outImage' && typeof (customStyle.background.outImage) === 'string') {
style = {
background: `url(${customStyle.background.outImage}) no-repeat`,
...style
}
} else if (!customStyle.background.backgroundType || customStyle.background.backgroundType === 'color') {
style = {
background: hexColorToRGBA(customStyle.background.color, customStyle.background.alpha),
...style
}
}
}
return style
} }
}, },
watch: { watch: {
@ -1233,6 +1243,7 @@ export default {
// this.initAreas() // this.initAreas()
}, },
mounted() { mounted() {
debugger
this.bindPluginEvent() this.bindPluginEvent()
// this.get(this.$store.state.chart.viewId); // this.get(this.$store.state.chart.viewId);
this.getData(this.param.id) this.getData(this.param.id)
@ -1531,6 +1542,7 @@ export default {
this.closeChangeChart() this.closeChangeChart()
// //
if (this.$route.path.indexOf('panel') > -1) { if (this.$route.path.indexOf('panel') > -1) {
this.$store.commit('recordSnapshot')
bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' }) bus.$emit('PanelSwitchComponent', { name: 'PanelEdit' })
} }
this.$success(this.$t('commons.save_success')) this.$success(this.$t('commons.save_success'))