mirror of
https://github.com/dataease/dataease.git
synced 2025-02-25 03:52:59 +08:00
Merge branch 'dev' into pr@dev@cluster
This commit is contained in:
commit
71557bfe8f
@ -183,6 +183,7 @@
|
||||
`result_count`,
|
||||
`result_mode`,
|
||||
`chart_type`,
|
||||
`is_plugin`,
|
||||
`senior`,
|
||||
`data_from`)
|
||||
SELECT #{newChartId},
|
||||
@ -210,6 +211,7 @@
|
||||
`result_count`,
|
||||
`result_mode`,
|
||||
'private',
|
||||
`is_plugin`,
|
||||
`senior`,
|
||||
`data_from`
|
||||
FROM chart_view_cache
|
||||
|
@ -2,6 +2,7 @@ package io.dataease.plugins.server;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@ -113,7 +114,8 @@ public class SSOServer {
|
||||
}
|
||||
private Map<String, String> config(OidcXpackService oidcXpackService) {
|
||||
List<SysSettingDto> sysSettingDtos = oidcXpackService.oidcSettings();
|
||||
Map<String, String> config = sysSettingDtos.stream().collect(Collectors.toMap(SysSettingDto::getParamKey, SysSettingDto::getParamValue));
|
||||
Map<String, String> config = sysSettingDtos.stream().collect(HashMap::new,(m, v)->m.put(v.getParamKey(), v.getParamValue()), HashMap::putAll);
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
|
@ -224,7 +224,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == DeTypeConstants.DE_TIME) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
if (x.getDeType() == 2 || x.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i);
|
||||
// 处理横轴字段
|
||||
@ -253,7 +257,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == DeTypeConstants.DE_TIME) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
if (y.getDeType() == 2 || y.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
|
||||
// 处理纵轴字段
|
||||
@ -333,7 +341,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
if (x.getDeType() == 2 || x.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i);
|
||||
// 处理横轴字段
|
||||
@ -409,7 +421,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == DeTypeConstants.DE_TIME) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
if (x.getDeType() == 2 || x.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i);
|
||||
// 处理横轴字段
|
||||
@ -438,7 +454,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == DeTypeConstants.DE_TIME) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
if (y.getDeType() == 2 || y.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
|
||||
// 处理纵轴字段
|
||||
@ -517,7 +537,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
if (x.getDeType() == 2 || x.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i);
|
||||
// 处理横轴字段
|
||||
@ -549,7 +573,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == 1) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
if (y.getDeType() == 2 || y.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
|
||||
// 处理纵轴字段
|
||||
@ -635,7 +663,11 @@ public class EsQueryProvider extends QueryProvider {
|
||||
} else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == 1) {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
if (y.getDeType() == 2 || y.getDeType() == 3) {
|
||||
originField = String.format(EsSqlLConstants.CAST, String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()), "bigint");
|
||||
} else {
|
||||
originField = String.format(EsSqlLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName());
|
||||
}
|
||||
}
|
||||
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
|
||||
// 处理纵轴字段
|
||||
|
@ -89,3 +89,4 @@ INSERT INTO `system_parameter`(`param_key`, `param_value`, `type`, `sort`) VALUE
|
||||
|
||||
UPDATE `demo_gdp_district_top100` set `province` = '新疆维吾尔自治区' WHERE `province` = '新疆维吾尔族自治区';
|
||||
|
||||
INSERT INTO `my_plugin`(`plugin_id`, `name`, `store`, `free`, `cost`, `category`, `descript`, `version`, `install_type`, `creator`, `load_mybatis`, `release_time`, `install_time`, `module_name`, `icon`) VALUES (3, 'tabs插件', 'default', 0, 20000, 'panel', 'tabs插件', '1.0-SNAPSHOT', NULL, 'fit2cloud-chenyw', 0, NULL, NULL, 'dataease-extensions-tabs-backend', NULL);
|
76
frontend/src/components/AsyncSoltComponent/index.vue
Normal file
76
frontend/src/components/AsyncSoltComponent/index.vue
Normal file
@ -0,0 +1,76 @@
|
||||
<template>
|
||||
<component
|
||||
:is="mode"
|
||||
:ref="refId"
|
||||
v-bind="$attrs"
|
||||
v-on="$listeners"
|
||||
>
|
||||
<template v-slot:default>
|
||||
<slot name="default" />
|
||||
</template>
|
||||
</component>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { uuid } from 'vue-uuid'
|
||||
import { get } from '@/api/system/dynamic'
|
||||
|
||||
export default {
|
||||
name: 'AsyncComponent',
|
||||
inheritAttrs: true,
|
||||
props: {
|
||||
// 父组件提供请求地址
|
||||
url: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
resData: '',
|
||||
mode: '',
|
||||
refId: null
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
url: {
|
||||
immediate: true,
|
||||
async handler(val, oldVal) {
|
||||
if (!this.url) return
|
||||
// Cache 缓存 根据 url 参数
|
||||
if (!window.SyncComponentCache) {
|
||||
window.SyncComponentCache = {}
|
||||
}
|
||||
let res
|
||||
if (!window.SyncComponentCache[this.url]) {
|
||||
window.SyncComponentCache[this.url] = get(this.url)
|
||||
|
||||
// window.SyncComponentCache[this.url] = Axios.get(this.url)
|
||||
res = await window.SyncComponentCache[this.url]
|
||||
} else {
|
||||
res = await window.SyncComponentCache[this.url]
|
||||
}
|
||||
|
||||
const Fn = Function
|
||||
this.mode = new Fn(`return ${res.data || res}`)()
|
||||
/* if (res && res.data) {
|
||||
const Fn = Function
|
||||
this.mode = new Fn(`return ${res.data || res}`)()
|
||||
} */
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.refId = uuid.v1
|
||||
},
|
||||
methods: {
|
||||
/* chartResize() {
|
||||
this.$refs[this.refId] && this.$refs[this.refId].chartResize && this.$refs[this.refId].chartResize()
|
||||
}, */
|
||||
callPluginInner(param) {
|
||||
const { methodName, methodParam } = param
|
||||
this.$refs[this.refId] && this.$refs[this.refId][methodName] && this.$refs[this.refId][methodName](methodParam)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
@ -531,7 +531,7 @@ export default {
|
||||
width: this.computedMainSlotWidth,
|
||||
height: this.computedMainSlotHeight
|
||||
}
|
||||
if (this.element.commonBackground&&this.element.commonBackground.enable) {
|
||||
if (this.element.commonBackground && this.element.commonBackground.enable) {
|
||||
if (this.element.commonBackground.backgroundType === 'innerImage') {
|
||||
style['background'] = `url(${this.element.commonBackground.innerImage}) no-repeat`
|
||||
} else if (this.element.commonBackground.backgroundType === 'outerImage') {
|
||||
@ -1604,7 +1604,6 @@ export default {
|
||||
},
|
||||
// 记录当前样式
|
||||
recordCurStyle() {
|
||||
// debugger
|
||||
const style = {
|
||||
...this.defaultStyle
|
||||
}
|
||||
@ -1619,7 +1618,6 @@ export default {
|
||||
|
||||
// 记录当前样式 矩阵处理
|
||||
recordMatrixCurStyle() {
|
||||
// debugger
|
||||
const left = Math.round(this.left / this.curCanvasScale.matrixStyleWidth) * this.curCanvasScale.matrixStyleWidth
|
||||
const top = Math.round(this.top / this.curCanvasScale.matrixStyleHeight) * this.curCanvasScale.matrixStyleHeight
|
||||
const width = Math.round(this.width / this.curCanvasScale.matrixStyleWidth) * this.curCanvasScale.matrixStyleWidth
|
||||
@ -1644,7 +1642,6 @@ export default {
|
||||
},
|
||||
// 记录当前样式 跟随阴影位置 矩阵处理
|
||||
recordMatrixCurShadowStyle() {
|
||||
// debugger
|
||||
const left = (this.element.x - 1) * this.curCanvasScale.matrixStyleWidth
|
||||
const top = (this.element.y - 1) * this.curCanvasScale.matrixStyleHeight
|
||||
const width = this.element.sizex * this.curCanvasScale.matrixStyleWidth
|
||||
|
@ -12,7 +12,6 @@ export default {
|
||||
computed: {
|
||||
styleInfo() {
|
||||
// console.log('styleInfo==>')
|
||||
// debugger
|
||||
// console.log('dragComponentInfo==>' + this.dragComponentInfo.shadowStyle.x)
|
||||
let left = 0
|
||||
let top = 0
|
||||
|
@ -169,7 +169,6 @@ export default {
|
||||
},
|
||||
// 记录当前样式 跟随阴影位置 矩阵处理
|
||||
recordMatrixCurShadowStyle() {
|
||||
// debugger
|
||||
const left = (this.curComponent.x - 1) * this.curCanvasScale.matrixStyleWidth
|
||||
const top = (this.curComponent.y - 1) * this.curCanvasScale.matrixStyleHeight
|
||||
const width = this.curComponent.sizex * this.curCanvasScale.matrixStyleWidth
|
||||
@ -202,7 +201,11 @@ export default {
|
||||
// }
|
||||
// },
|
||||
edit() {
|
||||
bus.$emit('change_panel_right_draw', true)
|
||||
if (this.curComponent.type === 'custom') {
|
||||
bus.$emit('component-dialog-edit')
|
||||
} else if (this.curComponent.type === 'v-text' || this.curComponent.type === 'rect-shape') {
|
||||
bus.$emit('component-dialog-style')
|
||||
} else { bus.$emit('change_panel_right_draw', true) }
|
||||
},
|
||||
linkageEdit() {
|
||||
|
||||
|
@ -43,7 +43,6 @@ export default {
|
||||
this.mainHeight = mainHeight
|
||||
},
|
||||
restore() {
|
||||
debugger
|
||||
const _this = this
|
||||
_this.dataLoading = true
|
||||
if (!this.$route.params.reportId) {
|
||||
|
@ -128,7 +128,6 @@ export default {
|
||||
this.$store.commit('recordSnapshot', 'bottomComponent')
|
||||
},
|
||||
linkageSetting() {
|
||||
debugger
|
||||
// sourceViewId 也加入查询
|
||||
const targetViewIds = this.componentData.filter(item => item.type === 'view' && item.propValue && item.propValue.viewId)
|
||||
.map(item => item.propValue.viewId)
|
||||
|
@ -126,7 +126,6 @@ export default {
|
||||
this.$store.commit('recordSnapshot')
|
||||
},
|
||||
linkageSetting() {
|
||||
debugger
|
||||
// sourceViewId 也加入查询
|
||||
const targetViewIds = this.componentData.filter(item => item.type === 'view' && item.propValue && item.propValue.viewId)
|
||||
.map(item => item.propValue.viewId)
|
||||
|
@ -1270,7 +1270,6 @@ export default {
|
||||
this.timeMachine = null
|
||||
},
|
||||
openChartDetailsDialog(chartInfo) {
|
||||
debugger
|
||||
this.showChartInfo = chartInfo.chart
|
||||
this.showChartTableInfo = chartInfo.tableChart
|
||||
this.chartDetailsVisible = true
|
||||
|
@ -140,6 +140,12 @@
|
||||
</el-tooltip>
|
||||
</div>
|
||||
|
||||
<div v-if="attrShow('deTabStyle')" style="width: 20px;float: left;margin-top: 2px;margin-left: 10px;">
|
||||
<el-tooltip content="tab内部样式">
|
||||
<tab-style :style-info="styleInfo" />
|
||||
</el-tooltip>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
@ -150,7 +156,6 @@ import Hyperlinks from '@/components/canvas/components/Editor/Hyperlinks'
|
||||
import VideoLinks from '@/components/canvas/components/Editor/VideoLinks'
|
||||
import DateFormat from '@/components/canvas/components/Editor/DateFormat'
|
||||
import { COLOR_PANEL } from '@/views/chart/chart/chart'
|
||||
import { chartTransStr2Object } from '@/views/panel/panel'
|
||||
|
||||
export default {
|
||||
components: { Hyperlinks, DateFormat, VideoLinks },
|
||||
@ -245,7 +250,8 @@ export default {
|
||||
'borderWidth',
|
||||
'borderRadius',
|
||||
'opacity',
|
||||
'borderColor'
|
||||
'borderColor',
|
||||
'deTabStyle'
|
||||
],
|
||||
// 矩形组件显示的属性
|
||||
'rect-shape': [
|
||||
@ -416,6 +422,18 @@ export default {
|
||||
},
|
||||
styleChange() {
|
||||
this.$store.commit('recordStyleChange')
|
||||
},
|
||||
goHeadFontColor() {
|
||||
this.$refs.headFontColorPicker.handleTrigger()
|
||||
},
|
||||
goHeadFontActiveColor() {
|
||||
this.$refs.headFontActiveColorPicker.handleTrigger()
|
||||
},
|
||||
goHeadBorderColor() {
|
||||
this.$refs.headBorderColorPicker.handleTrigger()
|
||||
},
|
||||
goHeadBorderActiveColor() {
|
||||
this.$refs.headBorderActiveColorPicker.handleTrigger()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -448,7 +466,6 @@ export default {
|
||||
display: inline!important;
|
||||
}
|
||||
|
||||
|
||||
::v-deep input::-webkit-outer-spin-button,
|
||||
::v-deep input::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none !important;
|
||||
|
@ -1,6 +1,19 @@
|
||||
<template>
|
||||
<div class="de-tabs-div">
|
||||
<el-tabs v-model="activeTabName" type="card" class="de-tabs" @tab-click="handleClick">
|
||||
<async-solt-component
|
||||
v-model="activeTabName"
|
||||
:url="url"
|
||||
type="card"
|
||||
style-type="radioGroup"
|
||||
class="de-tabs-height"
|
||||
:font-color="fontColor"
|
||||
:active-color="activeColor"
|
||||
:border-color="borderColor"
|
||||
:border-active-color="borderActiveColor"
|
||||
@tab-click="handleClick"
|
||||
>
|
||||
<!-- <plugin-com ref="dataease-tabs" v-model="activeTabName" type="card" class="de-tabs" component-name="dataease-tabs" @tab-click="handleClick"> -->
|
||||
<!-- <el-tabs v-model="activeTabName" type="card" class="de-tabs" @tab-click="handleClick"> -->
|
||||
<el-tab-pane
|
||||
v-for="(item, index) in element.options.tabList"
|
||||
:key="item.name+index"
|
||||
@ -58,7 +71,8 @@
|
||||
</div>
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</async-solt-component>
|
||||
<!-- </el-tabs> -->
|
||||
|
||||
<el-dialog
|
||||
:title="$t('detabs.eidttitle')"
|
||||
@ -108,7 +122,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import AsyncSoltComponent from '@/components/AsyncSoltComponent'
|
||||
import ViewSelect from '@/views/panel/ViewSelect'
|
||||
import { uuid } from 'vue-uuid'
|
||||
import bus from '@/utils/bus'
|
||||
@ -118,7 +132,7 @@ import { chartCopy } from '@/api/chart/chart'
|
||||
import { buildFilterMap } from '@/utils/conditionUtil'
|
||||
export default {
|
||||
name: 'DeTabls',
|
||||
components: { ViewSelect },
|
||||
components: { ViewSelect, AsyncSoltComponent },
|
||||
props: {
|
||||
element: {
|
||||
type: Object,
|
||||
@ -150,7 +164,13 @@ export default {
|
||||
dialogVisible: false,
|
||||
textarea: '',
|
||||
curItem: null,
|
||||
viewDialogVisible: false
|
||||
viewDialogVisible: false,
|
||||
url: '/api/pluginCommon/component/dataease-tabs'
|
||||
/* fontColor: '#999999',
|
||||
activeColor: '#f18406',
|
||||
|
||||
borderColor: '#999999',
|
||||
borderActiveColor: '#f18406' */
|
||||
|
||||
}
|
||||
},
|
||||
@ -165,11 +185,24 @@ export default {
|
||||
const map = buildFilterMap(this.componentData)
|
||||
return map
|
||||
},
|
||||
|
||||
...mapState([
|
||||
'componentData',
|
||||
'curComponent',
|
||||
'mobileLayoutStatus'
|
||||
])
|
||||
]),
|
||||
fontColor() {
|
||||
return this.element && this.element.style && this.element.style.headFontColor || 'none'
|
||||
},
|
||||
activeColor() {
|
||||
return this.element && this.element.style && this.element.style.headFontActiveColor || 'none'
|
||||
},
|
||||
borderColor() {
|
||||
return this.element && this.element.style && this.element.style.headBorderColor || 'none'
|
||||
},
|
||||
borderActiveColor() {
|
||||
return this.element && this.element.style && this.element.style.headBorderActiveColor || 'none'
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
curComponent: {
|
||||
@ -315,7 +348,7 @@ export default {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.de-tabs {
|
||||
.de-tabs-height {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
97
frontend/src/components/widget/DeWidget/TabStyle.vue
Normal file
97
frontend/src/components/widget/DeWidget/TabStyle.vue
Normal file
@ -0,0 +1,97 @@
|
||||
<template>
|
||||
|
||||
<el-popover
|
||||
placement="right"
|
||||
trigger="click"
|
||||
>
|
||||
<el-form ref="tabsStyleForm" :model="styleInfo" size="small" class="demo-form-inline">
|
||||
<el-form-item label="头部字体颜色" prop="headFrontColor">
|
||||
<div class="picker-color-div" @click="triggerTheme('headFontColor')">
|
||||
<el-input
|
||||
v-model="styleInfo.headFontColor"
|
||||
readonly
|
||||
class="theme-input"
|
||||
>
|
||||
<el-color-picker ref="headFontColorPicker" slot="prefix" v-model="styleInfo.headFontColor" class="theme-picker" @change="styleChange" />
|
||||
</el-input>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="头部字体选中颜色" prop="headFontActiveColor">
|
||||
<div class="picker-color-div" @click="triggerTheme('headFontActiveColor')">
|
||||
<el-input
|
||||
v-model="styleInfo.headFontActiveColor"
|
||||
readonly
|
||||
class="theme-input"
|
||||
>
|
||||
<el-color-picker ref="headFontActiveColorPicker" slot="prefix" v-model="styleInfo.headFontActiveColor" class="theme-picker" @change="styleChange" />
|
||||
</el-input>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="头部边框颜色" prop="headBorderColor">
|
||||
<div class="picker-color-div" @click="triggerTheme('headBorderColor')">
|
||||
<el-input
|
||||
v-model="styleInfo.headBorderColor"
|
||||
readonly
|
||||
class="theme-input"
|
||||
>
|
||||
<el-color-picker ref="headBorderColorPicker" slot="prefix" v-model="styleInfo.headBorderColor" class="theme-picker" @change="styleChange" />
|
||||
</el-input>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="头部边框选中颜色" prop="headBorderActiveColor">
|
||||
<div class="picker-color-div" @click="triggerTheme('headBorderActiveColor')">
|
||||
<el-input
|
||||
v-model="styleInfo.headBorderActiveColor"
|
||||
readonly
|
||||
class="theme-input"
|
||||
>
|
||||
<el-color-picker ref="headBorderActiveColorPicker" slot="prefix" v-model="styleInfo.headBorderActiveColor" class="theme-picker" @change="styleChange" />
|
||||
</el-input>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<i slot="reference" class="iconfont icon-tabs" />
|
||||
</el-popover>
|
||||
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
export default {
|
||||
name: 'TabStyle',
|
||||
props: {
|
||||
styleInfo: {
|
||||
type: Object,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
||||
...mapState([
|
||||
'componentData',
|
||||
'curComponent'
|
||||
])
|
||||
},
|
||||
methods: {
|
||||
triggerTheme(key) {
|
||||
const pickKey = key + 'Picker'
|
||||
const current = this.$refs[pickKey]
|
||||
current && (current.showPicker = true)
|
||||
},
|
||||
styleChange() {
|
||||
this.$store.commit('recordStyleChange')
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
@ -573,6 +573,7 @@ export default {
|
||||
secret: 'Please key Secret',
|
||||
scope: 'Please key scope',
|
||||
redirectUrl: 'Please key redirectUrl',
|
||||
input_mapping: 'Please key OIDC mapping',
|
||||
open: 'Enable OIDC Authentication'
|
||||
},
|
||||
role: {
|
||||
|
@ -575,6 +575,7 @@ export default {
|
||||
secret: '請輸入Secret',
|
||||
scope: '請輸入scope',
|
||||
redirectUrl: '請輸入redirectUrl',
|
||||
input_mapping: '請輸入OIDC屬性映射',
|
||||
open: '啓用OIDC認證'
|
||||
},
|
||||
role: {
|
||||
|
@ -576,6 +576,7 @@ export default {
|
||||
secret: '请输入Secret',
|
||||
scope: '请输入scope',
|
||||
redirectUrl: '请输入redirectUrl',
|
||||
input_mapping: '請輸入OIDC屬性映射',
|
||||
open: '启用OIDC认证'
|
||||
},
|
||||
role: {
|
||||
|
@ -399,9 +399,9 @@ div:focus {
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
.el-color-dropdown__link-btn {
|
||||
/* .el-color-dropdown__link-btn {
|
||||
display: none !important;
|
||||
}
|
||||
} */
|
||||
|
||||
.el-table {
|
||||
background-color: var(--TableBG) !important;
|
||||
@ -549,11 +549,11 @@ div:focus {
|
||||
}
|
||||
|
||||
.blackTheme .el-tabs__item:not(.is-active) {
|
||||
color: var(--TextPrimary) !important;
|
||||
color: var(--TextPrimary);
|
||||
}
|
||||
|
||||
.blackTheme .el-tabs__item:hover {
|
||||
color: var(--Main) !important;
|
||||
color: var(--Main);
|
||||
}
|
||||
|
||||
.blackTheme:not(.in-panel) .elx-table--main-wrapper {
|
||||
@ -793,3 +793,20 @@ div:focus {
|
||||
margin-left: 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.picker-color-div {
|
||||
height: 32px;
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.theme-input {
|
||||
>input {
|
||||
padding-left: 40px !important;
|
||||
}
|
||||
|
||||
>span.el-input__prefix {
|
||||
padding-top: 0px;
|
||||
}
|
||||
}
|
||||
|
@ -5,3 +5,14 @@ export function pdfTemplateReplaceAll(content, source, target) {
|
||||
return content
|
||||
}
|
||||
|
||||
export function randomRange(min, max) {
|
||||
let returnStr = ''
|
||||
const range = (max ? Math.round(Math.random() * (max - min)) + min : min)
|
||||
const charStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
|
||||
|
||||
for (var i = 0; i < range; i++) {
|
||||
var index = Math.round(Math.random() * (charStr.length - 1))
|
||||
returnStr += charStr.substring(index, index + 1)
|
||||
}
|
||||
return returnStr
|
||||
}
|
||||
|
@ -1404,12 +1404,10 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
debugger
|
||||
// this.get(this.$store.state.chart.viewId);
|
||||
// this.initAreas()
|
||||
},
|
||||
mounted() {
|
||||
debugger
|
||||
this.bindPluginEvent()
|
||||
this.initFromPanel()
|
||||
this.chartInit()
|
||||
|
@ -77,6 +77,7 @@ import {
|
||||
shortUrl,
|
||||
setOverTime
|
||||
} from '@/api/link'
|
||||
import { randomRange } from '@/utils/StringUtils'
|
||||
export default {
|
||||
|
||||
name: 'LinkGenerate',
|
||||
@ -171,14 +172,7 @@ export default {
|
||||
},
|
||||
|
||||
createPwd() {
|
||||
const randomNum = () => {
|
||||
return Math.floor(Math.random() * 10) + ''
|
||||
}
|
||||
let result = ''
|
||||
for (let index = 0; index < this.pwdNums; index++) {
|
||||
result += randomNum()
|
||||
}
|
||||
return result
|
||||
return randomRange(this.pwdNums)
|
||||
},
|
||||
|
||||
resetPwd() {
|
||||
|
@ -23,7 +23,7 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item prop="username">
|
||||
<el-input v-model="loginForm.username" placeholder="ID" autofocus />
|
||||
<el-input v-model="loginForm.username" placeholder="ID" autofocus :disabled="loginTypes.includes(2) && loginForm.loginType === 2" />
|
||||
</el-form-item>
|
||||
<el-form-item prop="password">
|
||||
<el-input
|
||||
@ -33,12 +33,13 @@
|
||||
maxlength="30"
|
||||
show-word-limit
|
||||
autocomplete="new-password"
|
||||
:disabled="loginTypes.includes(2) && loginForm.loginType === 2"
|
||||
@keypress.enter.native="handleLogin"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="login-btn">
|
||||
<el-button type="primary" class="submit" size="default" @click.native.prevent="handleLogin">
|
||||
<el-button type="primary" class="submit" size="default" :disabled="loginTypes.includes(2) && loginForm.loginType === 2" @click.native.prevent="handleLogin">
|
||||
{{ $t('commons.login') }}
|
||||
</el-button>
|
||||
<div v-if="uiInfo && uiInfo['ui.demo.tips'] && uiInfo['ui.demo.tips'].paramValue" class="demo-tips">
|
||||
|
@ -228,7 +228,6 @@ export default {
|
||||
created() {
|
||||
},
|
||||
mounted() {
|
||||
debugger
|
||||
this.init()
|
||||
},
|
||||
destroyed() {
|
||||
@ -237,7 +236,6 @@ export default {
|
||||
init() {
|
||||
// 获取当前仪表板外部跳转蚕食信息
|
||||
queryWithPanelId(this.panelInfo.id).then(rsp => {
|
||||
debugger
|
||||
this.outerParams = rsp.data
|
||||
this.outerParamsInfoArray = this.outerParams.outerParamsInfoArray
|
||||
if (this.outerParamsInfoArray.length > 0) {
|
||||
|
@ -578,7 +578,6 @@ export default {
|
||||
this.$store.commit('resetViewEditInfo')
|
||||
},
|
||||
mounted() {
|
||||
debugger
|
||||
// this.insertToBody()
|
||||
bus.$on('component-on-drag', () => {
|
||||
this.show = false
|
||||
|
Loading…
Reference in New Issue
Block a user