From ee658ecd4d1c37d36bd65304521c34754bf4e37f Mon Sep 17 00:00:00 2001 From: yanzili <978387851@qq.com> Date: Fri, 25 Jun 2021 13:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- report-ui/package.json | 5 + report-ui/src/main.js | 7 + report-ui/src/mixins/common.js | 111 +- report-ui/src/router/index.js | 4 + .../bigscreen/designer/form/contentMenu.vue | 17 +- .../designer/form/customColorComponents.vue | 61 +- .../designer/form/dynamicCollapseForm.vue | 80 - .../designer/form/dynamicComponents.vue | 1 - .../bigscreen/designer/form/dynamicForm.vue | 215 +- .../views/report/bigscreen/designer/index.vue | 249 +- .../views/report/bigscreen/designer/tools.js | 4175 +++++++++-------- .../designer/widget/widgetBarchart.vue | 106 +- .../designer/widget/widgetBarlinechart.vue | 113 +- .../designer/widget/widgetFunnel.vue | 51 +- .../bigscreen/designer/widget/widgetGauge.vue | 5 +- .../designer/widget/widgetHollowPiechart.vue | 51 +- .../designer/widget/widgetLinechart.vue | 86 +- .../designer/widget/widgetPiechart.vue | 51 +- .../src/views/report/bigscreen/index.vue | 8 +- .../views/report/bigscreen/viewer/index.vue | 11 +- report-ui/src/views/report/report/index.vue | 4 +- 21 files changed, 2903 insertions(+), 2508 deletions(-) delete mode 100644 report-ui/src/views/report/bigscreen/designer/form/dynamicCollapseForm.vue diff --git a/report-ui/package.json b/report-ui/package.json index 3384eee1..179bcd1f 100644 --- a/report-ui/package.json +++ b/report-ui/package.json @@ -27,9 +27,14 @@ "nprogress": "0.2.0", "sortablejs": "^1.10.2", "uninstall": "0.0.0", + "v-chart": "^1.0.0", "vue": "2.6.11", "vue-codemirror": "^4.0.6", + "vue-color": "^2.8.1", + "vue-drag-resize": "^1.5.4", + "vue-echarts": "^5.0.0-beta.0", "vue-router": "3.0.1", + "vue-ruler-tool": "^1.2.4", "vuedraggable": "^2.24.1", "vuex": "3.0.1" }, diff --git a/report-ui/src/main.js b/report-ui/src/main.js index 51895c44..410b359f 100644 --- a/report-ui/src/main.js +++ b/report-ui/src/main.js @@ -14,6 +14,13 @@ import router from './router' import store from './store' import * as filter from './filter' import mixins from '@/mixins' +import echarts from 'echarts'; +// 全局定义echarts +import ECharts from 'vue-echarts' +import 'echarts/lib/chart/bar' +import 'echarts/lib/component/tooltip' +// import 'echarts-gl' +Vue.component('v-chart', ECharts) // permission control import '@/permission' diff --git a/report-ui/src/mixins/common.js b/report-ui/src/mixins/common.js index 61fda6be..f53bf314 100644 --- a/report-ui/src/mixins/common.js +++ b/report-ui/src/mixins/common.js @@ -1,24 +1,24 @@ export default { - data() { + data () { return { } }, computed: { }, - created() { + created () { }, - mounted() { + mounted () { }, - destroyed() { + destroyed () { }, methods: { - goBack() { + goBack () { this.$router.go(-1) }, - refresh() { + refresh () { this.$router.go(0) }, - parseString(object) { + parseString (object) { if (typeof object === 'undefined' || object == null) { return '' } @@ -33,7 +33,7 @@ export default { } return '' }, - isBlank(val) { + isBlank (val) { if (typeof val === 'undefined') { return true } @@ -42,49 +42,88 @@ export default { } return false }, - // 封装定制删除数组中的值 - contains(a, obj) { - var i = a.length - while (i--) { - if (a[i] === obj) { - return i - } - } - return false - }, - //获取url后边参数 - getUrlKey: function(name) { - return ( - decodeURIComponent( - (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ''])[1].replace( - /\+/g, - '%20' - ) - ) || null - ) + // 封装定制删除数组中的值 + contains (a, obj) { + var i = a.length + while (i--) { + if (a[i] === obj) { + return i + } + } + return false + }, + //获取url后边参数 + getUrlKey: function (name) { + return ( + decodeURIComponent( + (new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ''])[1].replace( + /\+/g, + '%20' + ) + ) || null + ) }, /** * */ - resetForm(data) { + resetForm (data) { let formKeys = Object.keys(data) for (let k of formKeys) { data[k] = null } }, - sortArray(propertyName){ - return function(object1,object2){ + sortArray (propertyName) { + return function (object1, object2) { var value1 = object1[propertyName]; var value2 = object2[propertyName]; - - if(value1 < value2){ + + if (value1 < value2) { return -1; - }else if(value1 > value2){ + } else if (value1 > value2) { return 1; - }else{ + } else { return 0; } } - } + }, + objToOne (obj) { + var tmpData = {} + for (var index in obj) { + if (typeof obj[index] == 'object') { + var resObj = this.objToOne(obj[index]) + Object.assign(tmpData, resObj) // 这里使用对象合并 + } else { + tmpData[index] = obj[index] + } + } + return tmpData + }, + isNotNull (val) { + return !this.isNull(val) + }, + isNull (val) { + // 特殊判断 + if (val && parseInt(val) === 0) return false + const list = ['$parent'] + if (val instanceof Date || typeof val === 'boolean' || typeof val === 'number') return false + if (val instanceof Array) { + if (val.length === 0) return true + } else if (val instanceof Object) { + val = this.deepClone(val) + list.forEach((ele) => { + delete val[ele] + }) + for (var o in val) { + return false + } + return true + } else { + if (val === 'null' || val == null || val === 'undefined' || val === undefined || val === '') { + return true + } + return false + } + return false + }, } } diff --git a/report-ui/src/router/index.js b/report-ui/src/router/index.js index ee7071d5..2c35dfa4 100644 --- a/report-ui/src/router/index.js +++ b/report-ui/src/router/index.js @@ -83,8 +83,12 @@ export const constantRouterMap = [ meta: { title: '大屏报表', icon: 'iconnavicon-ywcs' }, children: [ { path: 'bigscreen', name: 'bigscreen', component: () => import('@/views/report/bigscreen/index'), meta: { title: '大屏报表', icon: 'iconchufaqipeizhi-hui', keepAlive: true, isBack: true } }, + // { path: '/bigscreen/viewer', name: 'bigscreenViewer', component: () => import('@/views/report/bigscreen/viewer'), meta: { title: '预览', icon: 'i', keepAlive: false, isBack: true } }, + // { path: '/bigscreen/designer', name: 'bigscreenDesigner', component: () => import('@/views/report/bigscreen/designer'), meta: { title: '设计', icon: 'i', keepAlive: false, isBack: true } }, ] }, + { path: '/bigscreen/viewer', component: () => import('@/views/report/bigscreen/viewer'), hidden: true }, + { path: '/bigscreen/designer', component: () => import('@/views/report/bigscreen/designer'), hidden: true }, // { // path: '/report', // component: Layout, diff --git a/report-ui/src/views/report/bigscreen/designer/form/contentMenu.vue b/report-ui/src/views/report/bigscreen/designer/form/contentMenu.vue index 2e828337..15482708 100644 --- a/report-ui/src/views/report/bigscreen/designer/form/contentMenu.vue +++ b/report-ui/src/views/report/bigscreen/designer/form/contentMenu.vue @@ -1,6 +1,11 @@ - diff --git a/report-ui/src/views/report/bigscreen/designer/form/dynamicComponents.vue b/report-ui/src/views/report/bigscreen/designer/form/dynamicComponents.vue index ae13c5a1..a12528b3 100644 --- a/report-ui/src/views/report/bigscreen/designer/form/dynamicComponents.vue +++ b/report-ui/src/views/report/bigscreen/designer/form/dynamicComponents.vue @@ -36,7 +36,6 @@ export default { data() { return { dataSetValue: '', - dataSet: [], // 数据集 userNameList: [], // 用户 setParamList: [], // 对应的不同的图形数据参数 diff --git a/report-ui/src/views/report/bigscreen/designer/form/dynamicForm.vue b/report-ui/src/views/report/bigscreen/designer/form/dynamicForm.vue index efaa753e..27ebc476 100644 --- a/report-ui/src/views/report/bigscreen/designer/form/dynamicForm.vue +++ b/report-ui/src/views/report/bigscreen/designer/form/dynamicForm.vue @@ -1,3 +1,4 @@ +/* eslint-disable vue/valid-v-for */ - - - - 取 消 - 确 定 - - - - - - @@ -150,7 +95,6 @@ import 'codemirror/mode/sql/sql.js' import 'codemirror/mode/shell/shell.js' import dynamicComponents from './dynamicComponents.vue' import customColorComponents from './customColorComponents' -import vueJsonEditor from 'vue-json-editor' export default { name: 'DynamicForm', components: { @@ -158,8 +102,6 @@ export default { codemirror, dynamicComponents, customColorComponents, - // eslint-disable-next-line vue/no-unused-components - vueJsonEditor }, model: { prop: 'value', @@ -169,7 +111,7 @@ export default { options: Array, value: { type: [Object], - default: () => { }, + default: () => {}, }, }, data() { @@ -194,7 +136,6 @@ export default { }, watch: { value(newValue, oldValue) { - console.log(newValue) this.formData = newValue || {} }, options() { @@ -265,11 +206,25 @@ export default { setDefaultValue() { if (this.options && this.options.length > 0) { for (let i = 0; i < this.options.length; i++) { - this.formData[this.options[i].name] = this.deepClone(this.options[i].value) + const obj = this.options[i] + if (Object.prototype.toString.call(obj) == '[object Object]') { + this.formData[this.options[i].name] = this.deepClone(this.options[i].value) + } else if (Object.prototype.toString.call(obj) == '[object Array]') { + for (let j = 0; j < obj.length; j++) { + const list = obj[j].list + list.forEach((el) => { + this.formData[el.name] = el.value + }) + } + } } this.formData = Object.assign({}, this.formData) } }, + // 是否显示 那种格式 + isShowForm(val, type) { + return Object.prototype.toString.call(val) == type + }, }, } @@ -283,4 +238,24 @@ export default { width: 100%; height: 100% !important; } +.el-collapse { + border-top: none; + border-bottom: none; +} +/deep/.el-collapse-item__header { + height: 40px; + line-height: 40px; + background: transparent; + color: #bcc9d4; + font-weight: 300; + font-size: 12px; + border-color: #282e3a; +} +/deep/.el-collapse-item__wrap { + background: transparent; + border: none; +} +/deep/.el-collapse-item__content { + padding-bottom: 0; +} diff --git a/report-ui/src/views/report/bigscreen/designer/index.vue b/report-ui/src/views/report/bigscreen/designer/index.vue index a04601c9..52ec8c71 100644 --- a/report-ui/src/views/report/bigscreen/designer/index.vue +++ b/report-ui/src/views/report/bigscreen/designer/index.vue @@ -6,15 +6,20 @@ !--> @@ -82,7 +131,6 @@ import { insertDashboard, detailDashboard } from '@/api/bigscreen' import { widgetTools, getToolByCode } from './tools' import widget from './widget/widget.vue' import dynamicForm from './form/dynamicForm.vue' -import dynamicCollapseForm from './form/dynamicCollapseForm.vue' import draggable from 'vuedraggable' import VueRulerTool from 'vue-ruler-tool' // 大屏设计页面的标尺插件 import contentMenu from './form/contentMenu' @@ -93,10 +141,9 @@ export default { VueRulerTool, widget, dynamicForm, - dynamicCollapseForm, contentMenu, }, - data() { + data () { return { widgetTools: widgetTools, // 左侧工具栏的组件图标,将js变量加入到当前作用域 widthLeftForTools: 200, // 左侧工具栏宽度 @@ -147,7 +194,6 @@ export default { // 当前激活组件右侧配置属性 widgetOptions: { setup: [], // 配置 - collapse: [], data: [], // 数据 position: [], // 坐标 }, @@ -163,7 +209,7 @@ export default { }, computed: { // 左侧折叠切换时,动态计算中间区的宽度 - middleWidth() { + middleWidth () { var widthLeftAndRight = 0 if (this.toolIsShow) { widthLeftAndRight += this.widthLeftForTools // 左侧工具栏宽度 @@ -174,26 +220,26 @@ export default { var middleWidth = this.bodyWidth - widthLeftAndRight return middleWidth }, - middleHeight() { + middleHeight () { return this.bodyHeight }, // 设计台按大屏的缩放比例 - bigscreenScaleInWorkbench() { + bigscreenScaleInWorkbench () { var widthScale = this.middleWidth / this.bigscreenWidth var heightScale = this.middleHeight / this.bigscreenHeight return Math.min(widthScale, heightScale) }, - workbenchTransform() { + workbenchTransform () { return `scale(${this.bigscreenScaleInWorkbench}, ${this.bigscreenScaleInWorkbench})` }, // 大屏在设计模式的大小 - bigscreenWidthInWorkbench() { + bigscreenWidthInWorkbench () { return this.getPXUnderScale(this.bigscreenWidth) }, - bigscreenHeightInWorkbench() { + bigscreenHeightInWorkbench () { return this.getPXUnderScale(this.bigscreenHeight) }, - layerWidget() { + layerWidget () { const layerWidgetArr = [] for (let i = 0; i < this.widgets.length; i++) { layerWidgetArr.push(getToolByCode(this.widgets[i].type)) @@ -201,7 +247,7 @@ export default { return layerWidgetArr }, }, - mounted() { + mounted () { // 一进入时,加载屏幕配置属性 this.setOptionsOnClickScreen() @@ -210,7 +256,7 @@ export default { this.widgets = [] }, methods: { - async initEchartData() { + async initEchartData () { const reportCode = this.$route.query.reportCode const { code, data } = await detailDashboard(reportCode) if (code != 200) return @@ -219,7 +265,7 @@ export default { this.widgets = processData this.dashboard = screenData }, - handleBigScreen(data) { + handleBigScreen (data) { const optionScreen = this.deepClone(getToolByCode('screen').options) const setup = optionScreen.setup for (const key in data) { @@ -237,7 +283,8 @@ export default { width: data.width, } }, - handleInitEchartsData(data) { + handleInitEchartsData (data) { + console.log(data) const widgets = data.dashboard.widgets const widgetsData = [] for (let i = 0; i < widgets.length; i++) { @@ -257,7 +304,7 @@ export default { } return widgetsData }, - handleOptionsData(data, option) { + handleOptionsData (data, option) { for (const key in data.setup) { for (let i = 0; i < option.setup.length; i++) { if (key == option.setup[i].name) { @@ -281,21 +328,21 @@ export default { } } } - // collapse - for (const key in data.collapse) { - for (let i = 0; i < option.collapse.length; i++) { - const itemList = option.collapse[i].list - for (let j = 0; j < itemList.length; j++) { - if (key == itemList[j].name) { - itemList[j].value = data.collapse[key] - } - } - } - } + // // collapse + // for (const key in data.collapse) { + // for (let i = 0; i < option.collapse.length; i++) { + // const itemList = option.collapse[i].list + // for (let j = 0; j < itemList.length; j++) { + // if (key == itemList[j].name) { + // itemList[j].value = data.collapse[key] + // } + // } + // } + // } return option }, // 保存数据 - async saveData() { + async saveData () { if (!this.widgets || this.widgets.length == 0) { this.$message.error('请添加组件') return @@ -311,23 +358,24 @@ export default { }, widgets: this.widgets, } - console.log(this.dashboard) - console.log(screenData) const { code, data } = await insertDashboard(screenData) if (code != '200') return }, // 预览 - viewScreen() { - var routeUrl = this.$router.resolve({ path: '/report/bigscreen/viewer', query: { reportCode: this.$route.query.reportCode }}) + viewScreen () { + var routeUrl = this.$router.resolve({ + path: '/report/bigscreen/viewer', + query: { reportCode: this.$route.query.reportCode }, + }) window.open(routeUrl.href, '_blank') }, // 在缩放模式下的大小 - getPXUnderScale(px) { + getPXUnderScale (px) { return this.bigscreenScaleInWorkbench * px }, // 拖动一个组件放到工作区中去,在拖动结束时,放到工作区对应的坐标点上去 - widgetOnDragged(evt, widgetCode) { + widgetOnDragged (evt, widgetCode) { var widgetType = widgetCode // 获取结束坐标和列名 @@ -344,13 +392,11 @@ export default { // 复制一个组件 var tool = getToolByCode(widgetType) - var widgetJson = { type: widgetType, value: { setup: {}, data: {}, - collapse: {}, position: { width: 0, height: 0, @@ -361,29 +407,32 @@ export default { }, options: tool.options, } - // 处理默认值 const widgetJsonValue = this.handleDefaultValue(widgetJson) - // 将选中的复制组件,放到工作区中去 - this.widgets.push(this.deepClone(widgetJsonValue)) - console.log(this.widgets) // 激活新组件的配置属性 this.setOptionsOnClickWidget(this.widgets.length - 1) }, // 对组件默认值处理 - handleDefaultValue(widgetJson) { + handleDefaultValue (widgetJson) { for (const key in widgetJson) { if (key == 'options') { // collapse、data、position、setup // setup 处理 for (let i = 0; i < widgetJson.options.setup.length; i++) { const item = widgetJson.options.setup[i] - if (item.value) { + if (Object.prototype.toString.call(item) == '[object Object]') { widgetJson.value.setup[item.name] = item.value + } else if (Object.prototype.toString.call(item) == '[object Array]') { + for (let j = 0; j < item.length; j++) { + const list = item[j].list + list.forEach((el) => { + widgetJson.value.setup[el.name] = el.value + }) + } } } // position @@ -393,18 +442,6 @@ export default { widgetJson.value.position[item.name] = item.value } } - // collapse 处理 - if (widgetJson.options.collapse && widgetJson.options.collapse.length > 0) { - for (let i = 0; i < widgetJson.options.collapse.length; i++) { - const itemList = widgetJson.options.collapse[i].list - for (let j = 0; j < itemList.length; j++) { - const itemChildList = itemList[j] - if (itemChildList.value) { - widgetJson.value.collapse[itemChildList.name] = itemChildList.value - } - } - } - } // data 处理 if (widgetJson.options.data && widgetJson.options.data.length > 0) { for (let i = 0; i < widgetJson.options.data.length; i++) { @@ -420,7 +457,7 @@ export default { }, // 如果是点击大屏设计器中的底层,加载大屏底层属性 - setOptionsOnClickScreen() { + setOptionsOnClickScreen () { this.screenCode = 'screen' // 选中不同的组件 右侧都显示第一栏 this.activeName = 'first' @@ -428,7 +465,7 @@ export default { }, // 如果是点击某个组件,获取该组件的配置项 - setOptionsOnClickWidget(index) { + setOptionsOnClickWidget (index) { // 选中不同的组件 右侧都显示第一栏 this.activeName = 'first' this.screenCode = '' @@ -437,6 +474,7 @@ export default { return } this.widgetIndex = index + console.log(this.deepClone(this.widgets[index]['options'])) this.widgetOptions = this.deepClone(this.widgets[index]['options']) return } else { @@ -446,7 +484,7 @@ export default { }, // 将当前选中的组件,右侧属性值更新 - widgetValueChanged(key, val) { + widgetValueChanged (key, val) { /* 更新指定 this.widgets 中第 this.widgetIndex 个组件的value widgets: [{ type: 'widget-text', @@ -456,19 +494,18 @@ export default { position: {} } }]*/ - if (this.screenCode == 'screen') { this.dashboard = this.deepClone(val) } + for (let i = 0; i < this.widgets.length; i++) { if (this.widgetIndex == i) { this.widgets[i].value[key] = this.deepClone(val) - this.setDefaultValue(this.widgets[i].options[key], key, val) + this.setDefaultValue(this.widgets[i].options[key], val) } } - // console.log(this.widgets) }, - rightClick(event, index) { + rightClick (event, index) { this.rightClickIndex = index const left = event.clientX const top = event.clientY @@ -482,33 +519,31 @@ export default { this.visibleContentMenu = true return false }, - deletelayer() { + deletelayer () { this.widgets.splice(this.rightClickIndex, 1) }, - setDefaultValue(options, type, val) { - // type: setup、collapse、data、position - const optionsArr = options - if (type == 'collapse') { - for (let i = 0; i < optionsArr.length; i++) { - const list = optionsArr[i].list - for (let j = 0; j < list.length; j++) { - for (const k in val) { - if (list[j].name == k) { - list[j].value = val[k] - } + setDefaultValue (options, val) { + for (let i = 0; i < options.length; i++) { + if (Object.prototype.toString.call(options[i]) == '[object Object]') { + for (const k in val) { + if (options[i].name == k) { + options[i].value = val[k] } } - } - } else { - for (let i = 0; i < optionsArr.length; i++) { - for (const k in val) { - if (optionsArr[i].name == k) { - optionsArr[i].value = val[k] - } + } else if (Object.prototype.toString.call(options[i]) == '[object Array]') { + for (let j = 0; j < options[i].length; j++) { + const list = options[i][j].list + for (let z = 0; z < list.length; z++) { + for (const k in val) { + if (list[z].name == k) { + list[z].value = val[k] + } + } + } } } } - } + }, }, } diff --git a/report-ui/src/views/report/bigscreen/designer/tools.js b/report-ui/src/views/report/bigscreen/designer/tools.js index b1e16d00..e9161d10 100644 --- a/report-ui/src/views/report/bigscreen/designer/tools.js +++ b/report-ui/src/views/report/bigscreen/designer/tools.js @@ -57,7 +57,7 @@ const screenConfig = { name: 'backgroundImage', required: false, placeholder: '', - value: 'http://10.108.26.197//file/download/adfc22ac-ed7f-4141-aeb9-ee81f16ac92d', + value: 'http://10.108.26.197/business/file/download/adfc22ac-ed7f-4141-aeb9-ee81f16ac92d', }, ], data: [], @@ -949,410 +949,463 @@ const widgetTools = [ placeholder: '', value: false, }, - ], - // 折叠面板 - collapse: [ - { - name: '柱体设置', - list: [ - { - type: 'el-slider', - label: '最大宽度', - name: 'maxWidth', - required: false, - placeholder: '', - value: 20, - }, - { - type: 'el-slider', - label: '圆角', - name: 'radius', - require: false, - placeholder: '', - value: 8, - }, - { - type: 'el-slider', - label: '最小高度', - name: 'minHeight', - require: false, - placeholder: '', - value: 20, - }, - ], - }, - { - name: '标题设置', - list: [ - { - type: 'el-switch', - label: '标题', - name: 'isNoTitle', - required: false, - placeholder: '', - value: false, - }, - { - type: 'el-input-text', - label: '标题', - name: 'titleText', - required: false, - placeholder: '', - value: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'textColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'textFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'textFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体位置', - name: 'textAlign', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '副标题', - name: 'subText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'subTextFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'subTextFontSize', - required: false, - placeholder: '', - }, - ], - }, - { - name: 'X轴设置', - list: [ - { - type: 'el-input-text', - label: '名称', - name: 'xName', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '显示', - name: 'hideX', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '坐标名颜色', - name: 'xNameColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'xNameFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-slider', - label: '文字角度', - name: 'textAngle', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '文字间隔', - name: 'textInterval', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '轴反转', - name: 'reversalX', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '颜色', - name: 'Xcolor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字号', - name: 'fontSizeX', - required: false, - placeholder: '', - value: 16, - }, - ], - }, - { - name: 'Y轴设置', - list: [ - { - type: 'el-input-text', - label: '名称', - name: 'textNameY', - require: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '显示', - name: 'isShowY', - require: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '坐标名颜色', - name: 'NameColorY', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'NameFontSizeY', - required: false, - placeholder: '', - value: 16, - }, - { - type: 'el-switch', - label: '轴反转', - name: 'reversalY', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '颜色', - name: 'colorY', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字号', - name: 'fontSizeY', - required: false, - placeholder: '', - value: 16, - }, - ], - }, - { - name: '数值设定', - list: [ - { - type: 'el-switch', - label: '显示', - name: 'isShow', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'fontWeight', - required: false, - placeholder: '', - }, - ], - }, { - name: '提示语设置', - list: [ - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lineColor', - required: false, - placeholder: '', - }, - ], - }, { - name: '坐标轴边距设置', - list: [ - { - type: 'el-slider', - label: '左边距(像素)', - name: 'marginLeft', - required: false, - placeholder: '', - value: 10, - }, { - type: 'el-slider', - label: '顶边距(像素)', - name: 'marginTop', - required: false, - placeholder: '', - value: 10, - }, { - type: 'el-slider', - label: '右边距(像素)', - name: 'marginRight', - required: false, - placeholder: '', - value: 10, - }, { - type: 'el-slider', - label: '底边距(像素)', - name: 'marginBottom', - required: false, - placeholder: '', - value: 10, - }, - ], - }, { - name: '图例操作', - list: [ - { - type: 'el-switch', - label: '图例', - name: 'isShowLegend', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lengedColor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'lengedFontSize', - required: false, - placeholder: '', - value: 16, - }, - { - type: 'el-input-number', - label: '图例宽度', - name: 'lengedWidth', - required: false, - placeholder: '', - value: 15, - }, - { - type: 'el-select', - label: '横向位置', - name: 'lateralPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'left', name: '左对齐' }, - { code: 'right', name: '右对齐' }, - ], - }, - { - type: 'el-select', - label: '纵向位置', - name: 'longitudinalPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'top', name: '顶部' }, - { code: 'bottom', name: '底部' }, - ], - }, - { - type: 'el-select', - label: '布局前置', - name: 'layoutFront', - required: false, - placeholder: '', - selectOptions: [ - { code: 'vertical', name: '竖排' }, - { code: 'horizontal', name: '横排' }, - ], - }, - ], - }, { - name: '自定义配色', - list: [ - { - type: 'customColor', - label: '', - name: 'customColor', - required: false, - value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], - }, - ], - }, + type: 'vue-color', + label: '背景颜色', + name: 'background', + required: false, + placeholder: '', + value: '' + }, + [ + { + name: '柱体设置', + list: [ + { + type: 'el-slider', + label: '最大宽度', + name: 'maxWidth', + required: false, + placeholder: '', + value: 10, + }, + { + type: 'el-slider', + label: '圆角', + name: 'radius', + require: false, + placeholder: '', + value: 5, + }, + { + type: 'el-slider', + label: '最小高度', + name: 'minHeight', + require: false, + placeholder: '', + value: 0, + }, + ], + }, + { + name: '标题设置', + list: [ + { + type: 'el-switch', + label: '标题', + name: 'isNoTitle', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-input-text', + label: '标题', + name: 'titleText', + required: false, + placeholder: '', + value: '', + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'textColor', + required: false, + placeholder: '', + value: '#FFD700' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'textFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'textFontSize', + required: false, + placeholder: '', + value: 20 + }, + { + type: 'el-select', + label: '字体位置', + name: 'textAlign', + required: false, + placeholder: '', + selectOptions: [ + { code: 'center', name: '居中' }, + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: 'center' + }, + { + type: 'el-input-text', + label: '副标题', + name: 'subText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: 'rgba(30, 144, 255, 1)' + }, + { + type: 'el-input-text', + label: '字体粗细', + name: 'subTextFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'subTextFontSize', + required: false, + placeholder: '', + value: 20 + }, + ], + }, + { + name: 'X轴设置', + list: [ + { + type: 'el-input-text', + label: '名称', + name: 'xName', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-switch', + label: '显示', + name: 'hideX', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '坐标名颜色', + name: 'xNameColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'xNameFontSize', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'el-slider', + label: '文字角度', + name: 'textAngle', + required: false, + placeholder: '', + value: 0 + }, + { + type: 'el-input-number', + label: '文字间隔', + name: 'textInterval', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-switch', + label: '轴反转', + name: 'reversalX', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '颜色', + name: 'Xcolor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字号', + name: 'fontSizeX', + required: false, + placeholder: '', + value: 12, + }, + ], + }, + { + name: 'Y轴设置', + list: [ + { + type: 'el-input-text', + label: '名称', + name: 'textNameY', + require: false, + placeholder: '', + value: '' + }, + { + type: 'el-switch', + label: '显示', + name: 'isShowY', + require: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '坐标名颜色', + name: 'NameColorY', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'NameFontSizeY', + required: false, + placeholder: '', + value: 12, + }, + { + type: 'el-switch', + label: '轴反转', + name: 'reversalY', + required: false, + placeholder: '', + value: false + }, + { + type: 'vue-color', + label: '颜色', + name: 'colorY', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字号', + name: 'fontSizeY', + required: false, + placeholder: '', + value: 12, + }, + ], + }, + { + name: '数值设定', + list: [ + { + type: 'el-switch', + label: '显示', + name: 'isShow', + required: false, + placeholder: '', + value: false + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: 14 + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'fontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + ], + }, + { + name: '提示语设置', + list: [ + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lineColor', + required: false, + placeholder: '', + }, + ], + }, { + name: '坐标轴边距设置', + list: [ + { + type: 'el-slider', + label: '左边距(像素)', + name: 'marginLeft', + required: false, + placeholder: '', + value: 10, + }, { + type: 'el-slider', + label: '顶边距(像素)', + name: 'marginTop', + required: false, + placeholder: '', + value: 50, + }, { + type: 'el-slider', + label: '右边距(像素)', + name: 'marginRight', + required: false, + placeholder: '', + value: 40, + }, { + type: 'el-slider', + label: '底边距(像素)', + name: 'marginBottom', + required: false, + placeholder: '', + value: 10, + }, + ], + }, { + name: '图例操作', + list: [ + { + type: 'el-switch', + label: '图例', + name: 'isShowLegend', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lengedColor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'lengedFontSize', + required: false, + placeholder: '', + value: 16, + }, + { + type: 'el-input-number', + label: '图例宽度', + name: 'lengedWidth', + required: false, + placeholder: '', + value: 15, + }, + { + type: 'el-select', + label: '横向位置', + name: 'lateralPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: '' + }, + { + type: 'el-select', + label: '纵向位置', + name: 'longitudinalPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'top', name: '顶部' }, + { code: 'bottom', name: '底部' }, + ], + value: '' + }, + { + type: 'el-select', + label: '布局前置', + name: 'layoutFront', + required: false, + placeholder: '', + selectOptions: [ + { code: 'vertical', name: '竖排' }, + { code: 'horizontal', name: '横排' }, + ], + value: '' + }, + ], + }, { + name: '自定义配色', + list: [ + { + type: 'customColor', + label: '', + name: 'customColor', + required: false, + value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], + }, + ], + }, + ], ], // 数据 data: [ @@ -1383,7 +1436,7 @@ const widgetTools = [ placeholder: 'px', relactiveDom: 'dataType', relactiveDomValue: 'staticData', - value: '{"categories": ["苹果","三星","小米","oppo","vivo"],"series": [{"name": "手机品牌","data": [1000879,3400879,2300879,5400879,3400879]}]}', + value: '{"categories": ["苹果","三星","小米","oppo","vivo"],"series": [{"name": "手机品牌","data": [1000,2229,3879,2379,4079]}]}', }, { type: 'dycustComponents', @@ -1450,434 +1503,493 @@ const widgetTools = [ placeholder: '', value: '折线图', }, - ], - // 折叠面板 - collapse: [ - { - name: '折线设置', - list: [ - { - type: 'el-switch', - label: '标记点', - name: 'markPoint', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-slider', - label: '点大小', - name: 'pointSize', - required: false, - placeholder: '', - value: 10, - }, - { - type: 'el-switch', - label: '平滑曲线', - name: 'smoothCurve', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-switch', - label: '面积堆积', - name: 'area', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-slider', - label: '面积厚度', - name: 'areaThickness', - required: false, - placeholder: '', - value: 5, - }, - { - type: 'el-slider', - label: '线条宽度', - name: 'lineWidth', - required: false, - placeholder: '', - value: 4, - }, - ], - }, { - name: '标题设置', - list: [ - { - type: 'el-switch', - label: '标题', - name: 'isNoTitle', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '标题', - name: 'titleText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'textColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'textFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'textFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体位置', - name: 'textAlign', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '副标题', - name: 'subText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'subTextFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'subTextFontSize', - required: false, - placeholder: '', - }, - ], - }, - { - name: 'X轴设置', - list: [ - { - type: 'el-input-text', - label: '名称', - name: 'xName', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '显示', - name: 'hideX', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '坐标名颜色', - name: 'xNameColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'xNameFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-slider', - label: '文字角度', - name: 'textAngle', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '文字间隔', - name: 'textInterval', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '轴反转', - name: 'reversalX', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '颜色', - name: 'Xcolor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字号', - name: 'fontSizeX', - required: false, - placeholder: '', - value: 16, - }, - ], - }, - { - name: 'Y轴设置', - list: [ - { - type: 'el-input-text', - label: '名称', - name: 'textNameY', - require: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '显示', - name: 'isShowY', - require: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '坐标名颜色', - name: 'NameColorY', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'NameFontSizeY', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '轴反转', - name: 'reversalY', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '颜色', - name: 'colorY', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字号', - name: 'fontSizeY', - required: false, - placeholder: '', - value: 16, - }, - ], - }, - { - name: '数值设定', - list: [ - { - type: 'el-switch', - label: '显示', - name: 'isShow', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'fontWeight', - required: false, - placeholder: '', - }, - ], - }, - { - name: '提示语设置', - list: [ - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lineColor', - required: false, - placeholder: '', - }, - ], - }, - { - name: '坐标轴边距设置', - list: [ - { - type: 'el-slider', - label: '左边距(像素)', - name: 'marginLeft', - required: false, - placeholder: '', - value: 10, - }, - { - type: 'el-slider', - label: '顶边距(像素)', - name: 'marginTop', - required: false, - placeholder: '', - value: 10, - }, - { - type: 'el-slider', - label: '右边距(像素)', - name: 'marginRight', - required: false, - placeholder: '', - value: 10, - }, - { - type: 'el-slider', - label: '底边距(像素)', - name: 'marginBottom', - required: false, - placeholder: '', - value: 10, - }, - ], - }, { - name: '图例操作', - list: [ - { - type: 'el-switch', - label: '图例', - name: 'isShowLegend', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lengedColor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'lengedFontSize', - required: false, - placeholder: '', - value: 16, - }, - { - type: 'el-input-number', - label: '图例宽度', - name: 'lengedWidth', - required: false, - placeholder: '', - value: 15, - }, - { - type: 'el-select', - label: '横向位置', - name: 'lateralPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'left', name: '左对齐' }, - { code: 'right', name: '右对齐' }, - ], - }, - { - type: 'el-select', - label: '纵向位置', - name: 'longitudinalPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'top', name: '顶部' }, - { code: 'bottom', name: '底部' }, - ], - }, - { - type: 'el-select', - label: '布局前置', - name: 'layoutFront', - required: false, - placeholder: '', - selectOptions: [ - { code: 'vertical', name: '竖排' }, - { code: 'horizontal', name: '横排' }, - ], - }, - ], - }, { - name: '自定义配色', - list: [ - { - type: 'customColor', - label: '', - name: 'customColor', - required: false, - value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], - }, - ], - }, + type: 'vue-color', + label: '背景颜色', + name: 'background', + required: false, + placeholder: '', + value: '' + }, + [ + { + name: '折线设置', + list: [ + { + type: 'el-switch', + label: '标记点', + name: 'markPoint', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-slider', + label: '点大小', + name: 'pointSize', + required: false, + placeholder: '', + value: 10, + }, + { + type: 'el-switch', + label: '平滑曲线', + name: 'smoothCurve', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-switch', + label: '面积堆积', + name: 'area', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-slider', + label: '面积厚度', + name: 'areaThickness', + required: false, + placeholder: '', + value: 5, + }, + { + type: 'el-slider', + label: '线条宽度', + name: 'lineWidth', + required: false, + placeholder: '', + value: 4, + }, + ], + }, + { + name: '标题设置', + list: [ + { + type: 'el-switch', + label: '标题', + name: 'isNoTitle', + required: false, + placeholder: '', + value: false + }, + { + type: 'el-input-text', + label: '标题', + name: 'titleText', + required: false, + placeholder: '', + value: '', + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'textColor', + required: false, + placeholder: '', + value: '##FFD700' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'textFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'textFontSize', + required: false, + placeholder: '', + value: 20 + }, + { + type: 'el-select', + label: '字体位置', + name: 'textAlign', + required: false, + placeholder: '', + selectOptions: [ + { code: 'center', name: '居中' }, + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: 'center' + }, + { + type: 'el-input-text', + label: '副标题', + name: 'subText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'subTextFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'subTextFontSize', + required: false, + placeholder: '', + value: 20 + }, + ], + }, + { + name: 'X轴设置', + list: [ + { + type: 'el-input-text', + label: '名称', + name: 'xName', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-switch', + label: '显示', + name: 'hideX', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '坐标名颜色', + name: 'xNameColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'xNameFontSize', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'el-slider', + label: '文字角度', + name: 'textAngle', + required: false, + placeholder: '', + value: 0 + }, + { + type: 'el-input-number', + label: '文字间隔', + name: 'textInterval', + required: false, + placeholder: '', + value: 0 + }, + { + type: 'el-switch', + label: '轴反转', + name: 'reversalX', + required: false, + placeholder: '', + value: false + }, + { + type: 'vue-color', + label: '颜色', + name: 'Xcolor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-text', + label: '字号', + name: 'fontSizeX', + required: false, + placeholder: '', + value: 12, + }, + ], + }, + { + name: 'Y轴设置', + list: [ + { + type: 'el-input-text', + label: '名称', + name: 'textNameY', + require: false, + placeholder: '', + value: '' + }, + { + type: 'el-switch', + label: '显示', + name: 'isShowY', + require: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '坐标名颜色', + name: 'NameColorY', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-input-text', + label: '字体大小', + name: 'NameFontSizeY', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'el-switch', + label: '轴反转', + name: 'reversalY', + required: false, + placeholder: '', + value: false + }, + { + type: 'vue-color', + label: '颜色', + name: 'colorY', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-text', + label: '字号', + name: 'fontSizeY', + required: false, + placeholder: '', + value: 12, + }, + ], + }, + { + name: '数值设定', + list: [ + { + type: 'el-switch', + label: '显示', + name: 'isShow', + required: false, + placeholder: '', + value: false + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'fontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + ], + }, + { + name: '提示语设置', + list: [ + { + type: 'el-input-text', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lineColor', + required: false, + placeholder: '', + value: '' + }, + ], + }, + { + name: '坐标轴边距设置', + list: [ + { + type: 'el-slider', + label: '左边距(像素)', + name: 'marginLeft', + required: false, + placeholder: '', + value: 10, + }, + { + type: 'el-slider', + label: '顶边距(像素)', + name: 'marginTop', + required: false, + placeholder: '', + value: 50, + }, + { + type: 'el-slider', + label: '右边距(像素)', + name: 'marginRight', + required: false, + placeholder: '', + value: 40, + }, + { + type: 'el-slider', + label: '底边距(像素)', + name: 'marginBottom', + required: false, + placeholder: '', + value: 10, + }, + ], + }, { + name: '图例操作', + list: [ + { + type: 'el-switch', + label: '图例', + name: 'isShowLegend', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lengedColor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'lengedFontSize', + required: false, + placeholder: '', + value: 16, + }, + { + type: 'el-input-number', + label: '图例宽度', + name: 'lengedWidth', + required: false, + placeholder: '', + value: 15, + }, + { + type: 'el-select', + label: '横向位置', + name: 'lateralPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: 'left' + }, + { + type: 'el-select', + label: '纵向位置', + name: 'longitudinalPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'top', name: '顶部' }, + { code: 'bottom', name: '底部' }, + ], + value: '' + }, + { + type: 'el-select', + label: '布局前置', + name: 'layoutFront', + required: false, + placeholder: '', + selectOptions: [ + { code: 'vertical', name: '竖排' }, + { code: 'horizontal', name: '横排' }, + ], + value: '' + }, + ], + }, { + name: '自定义配色', + list: [ + { + type: 'customColor', + label: '', + name: 'customColor', + required: false, + value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], + }, + ], + }, + ], ], // 数据 data: [ @@ -1908,7 +2020,7 @@ const widgetTools = [ placeholder: 'px', relactiveDom: 'dataType', relactiveDomValue: 'staticData', - value: '{"categories": ["苹果","三星","小米","oppo","vivo"],"series": [{"name": "手机品牌","data": [1000879,3400879,2300879,5400879,3400879]}]}', + value: '{"categories": ["苹果","三星","小米","oppo","vivo"],"series": [{"name": "手机品牌","data": [1009,3409,2309,5409,3409]}]}', }, { type: 'dycustComponents', @@ -1970,428 +2082,477 @@ const widgetTools = [ type: 'el-input-text', label: '图层名称', name: 'layerName', - required: false, - placeholder: '', - value: '柱线图', - }, - ], - // 折叠面板 - collapse: [ - { - name: '折线设置', - list: [ - { - type: 'el-switch', - label: '标记点', - name: 'markPoint', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-slider', - label: '点大小', - name: 'pointSize', - required: false, - placeholder: '', - value: 10, - }, - { - type: 'el-switch', - label: '平滑曲线', - name: 'smoothCurve', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-switch', - label: '面积堆积', - name: 'area', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-slider', - label: '面积厚度', - name: 'areaThickness', - required: false, - placeholder: '', - value: 5, - }, - { - type: 'el-slider', - label: '线条宽度', - name: 'lineWidth', - required: false, - placeholder: '', - value: 4, - }, - ], - }, { - name: '柱体设置', - list: [ - { - type: 'el-slider', - label: '最大宽度', - name: 'maxWidth', - required: false, - placeholder: '', - value: 20, - }, - { - type: 'el-slider', - label: '圆角', - name: 'radius', - require: false, - placeholder: '', - value: 8, - }, - { - type: 'el-slider', - label: '最小高度', - name: 'minHeight', - require: false, - placeholder: '', - value: 20, - }, - ], - }, { - name: '标题设置', - list: [ - { - type: 'el-switch', - label: '标题', - name: 'isNoTitle', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '标题', - name: 'titleText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'textColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'textFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'textFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体位置', - name: 'textAlign', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '副标题', - name: 'subText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'subTextFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'subTextFontSize', - required: false, - placeholder: '', - }, - ], - }, - { - name: 'X轴设置', - list: [ - { - type: 'el-input-text', - label: '名称', - name: 'xName', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '显示', - name: 'hideX', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '坐标名颜色', - name: 'xNameColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'xNameFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-slider', - label: '文字角度', - name: 'textAngle', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '文字间隔', - name: 'textInterval', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '轴反转', - name: 'reversalX', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '颜色', - name: 'Xcolor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字号', - name: 'fontSizeX', - required: false, - placeholder: '', - value: 16, - }, - ], - }, - { - name: 'Y轴设置', - list: [ - { - type: 'el-input-text', - label: '名称', - name: 'textNameY', - require: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '显示', - name: 'isShowY', - require: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '坐标名颜色', - name: 'NameColorY', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'NameFontSizeY', - required: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '轴反转', - name: 'reversalY', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '颜色', - name: 'colorY', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字号', - name: 'fontSizeY', - required: false, - placeholder: '', - value: 16, - }, - ], + required: false, + placeholder: '', + value: '柱线图', }, { - name: '提示语设置', - list: [ - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lineColor', - required: false, - placeholder: '', - }, - ], - }, { - name: '坐标轴边距设置', - list: [ - { - type: 'el-slider', - label: '左边距(像素)', - name: 'marginLeft', - required: false, - placeholder: '', - value: 10, - }, { - type: 'el-slider', - label: '顶边距(像素)', - name: 'marginTop', - required: false, - placeholder: '', - value: 10, - }, { - type: 'el-slider', - label: '右边距(像素)', - name: 'marginRight', - required: false, - placeholder: '', - value: 10, - }, { - type: 'el-slider', - label: '底边距(像素)', - name: 'marginBottom', - required: false, - placeholder: '', - value: 10, - }, - ], - }, { - name: '图例操作', - list: [ - { - type: 'el-switch', - label: '图例', - name: 'isShowLegend', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lengedColor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'lengedFontSize', - required: false, - placeholder: '', - value: 16, - }, - { - type: 'el-input-number', - label: '图例宽度', - name: 'lengedWidth', - required: false, - placeholder: '', - value: 15, - }, - { - type: 'el-select', - label: '横向位置', - name: 'lateralPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'left', name: '左对齐' }, - { code: 'right', name: '右对齐' }, - ], - }, - { - type: 'el-select', - label: '纵向位置', - name: 'longitudinalPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'top', name: '顶部' }, - { code: 'bottom', name: '底部' }, - ], - }, - { - type: 'el-select', - label: '布局前置', - name: 'layoutFront', - required: false, - placeholder: '', - selectOptions: [ - { code: 'vertical', name: '竖排' }, - { code: 'horizontal', name: '横排' }, - ], - }, - ], - }, { - name: '自定义配色', - list: [ - { - type: 'customColor', - label: '', - name: 'customColor', - required: false, - value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }], - }, - ], - }, + type: 'vue-color', + label: '背景颜色', + name: 'background', + required: false, + placeholder: '', + value: '' + }, + [ + { + name: '折线设置', + list: [ + { + type: 'el-switch', + label: '标记点', + name: 'markPoint', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-slider', + label: '点大小', + name: 'pointSize', + required: false, + placeholder: '', + value: 10, + }, + { + type: 'el-switch', + label: '平滑曲线', + name: 'smoothCurve', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-switch', + label: '面积堆积', + name: 'area', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-slider', + label: '面积厚度', + name: 'areaThickness', + required: false, + placeholder: '', + value: 5, + }, + { + type: 'el-slider', + label: '线条宽度', + name: 'lineWidth', + required: false, + placeholder: '', + value: 4, + }, + ], + }, { + name: '柱体设置', + list: [ + { + type: 'el-slider', + label: '最大宽度', + name: 'maxWidth', + required: false, + placeholder: '', + value: 10, + }, + { + type: 'el-slider', + label: '圆角', + name: 'radius', + require: false, + placeholder: '', + value: 5, + }, + { + type: 'el-slider', + label: '最小高度', + name: 'minHeight', + require: false, + placeholder: '', + value: 0, + }, + ], + }, { + name: '标题设置', + list: [ + { + type: 'el-switch', + label: '标题', + name: 'isNoTitle', + required: false, + placeholder: '', + value: true + }, + { + type: 'el-input-text', + label: '标题', + name: 'titleText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'textColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'textFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'textFontSize', + required: false, + placeholder: '', + value: 20 + }, + { + type: 'el-select', + label: '字体位置', + name: 'textAlign', + required: false, + placeholder: '', + selectOptions: [ + { code: 'center', name: '居中' }, + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: 'left' + }, + { + type: 'el-input-text', + label: '副标题', + name: 'subText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'subTextFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'subTextFontSize', + required: false, + placeholder: '', + value: 20 + }, + ], + }, + { + name: 'X轴设置', + list: [ + { + type: 'el-input-text', + label: '名称', + name: 'xName', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-switch', + label: '显示', + name: 'hideX', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '坐标名颜色', + name: 'xNameColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'xNameFontSize', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'el-slider', + label: '文字角度', + name: 'textAngle', + required: false, + placeholder: '', + value: 0 + }, + { + type: 'el-input-number', + label: '文字间隔', + name: 'textInterval', + required: false, + placeholder: '', + value: 0 + }, + { + type: 'el-switch', + label: '轴反转', + name: 'reversalX', + required: false, + placeholder: '', + value: 0 + }, + { + type: 'vue-color', + label: '颜色', + name: 'Xcolor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字号', + name: 'fontSizeX', + required: false, + placeholder: '', + value: 16, + }, + ], + }, + { + name: 'Y轴设置', + list: [ + { + type: 'el-input-text', + label: '名称', + name: 'textNameY', + require: false, + placeholder: '', + value: '' + }, + { + type: 'el-switch', + label: '显示', + name: 'isShowY', + require: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '坐标名颜色', + name: 'NameColorY', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'NameFontSizeY', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'el-switch', + label: '轴反转', + name: 'reversalY', + required: false, + placeholder: '', + value: 0 + }, + { + type: 'vue-color', + label: '颜色', + name: 'colorY', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字号', + name: 'fontSizeY', + required: false, + placeholder: '', + value: 12, + }, + ], + }, + { + name: '提示语设置', + list: [ + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lineColor', + required: false, + placeholder: '', + value: '#fff' + }, + ], + }, { + name: '坐标轴边距设置', + list: [ + { + type: 'el-slider', + label: '左边距(像素)', + name: 'marginLeft', + required: false, + placeholder: '', + value: 10, + }, { + type: 'el-slider', + label: '顶边距(像素)', + name: 'marginTop', + required: false, + placeholder: '', + value: 50, + }, { + type: 'el-slider', + label: '右边距(像素)', + name: 'marginRight', + required: false, + placeholder: '', + value: 40, + }, { + type: 'el-slider', + label: '底边距(像素)', + name: 'marginBottom', + required: false, + placeholder: '', + value: 10, + }, + ], + }, { + name: '图例操作', + list: [ + { + type: 'el-switch', + label: '图例', + name: 'isShowLegend', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lengedColor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-text', + label: '字体大小', + name: 'lengedFontSize', + required: false, + placeholder: '', + value: 16, + }, + { + type: 'el-input-number', + label: '图例宽度', + name: 'lengedWidth', + required: false, + placeholder: '', + value: 15, + }, + { + type: 'el-select', + label: '横向位置', + name: 'lateralPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: '' + }, + { + type: 'el-select', + label: '纵向位置', + name: 'longitudinalPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'top', name: '顶部' }, + { code: 'bottom', name: '底部' }, + ], + value: '' + }, + { + type: 'el-select', + label: '布局前置', + name: 'layoutFront', + required: false, + placeholder: '', + selectOptions: [ + { code: 'vertical', name: '竖排' }, + { code: 'horizontal', name: '横排' }, + ], + value: '' + }, + ], + }, { + name: '自定义配色', + list: [ + { + type: 'customColor', + label: '', + name: 'customColor', + required: false, + value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }], + }, + ], + }, + ], ], // 数据 data: [ @@ -2488,236 +2649,283 @@ const widgetTools = [ placeholder: '', value: '饼图', }, - ], - // 折叠面板 - collapse: [ - { - name: '标题设置', - list: [ - { - type: 'el-switch', - label: '标题', - name: 'isNoTitle', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '标题', - name: 'titleText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'textColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'textFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'textFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体位置', - name: 'textAlign', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '副标题', - name: 'subText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'subTextFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'subTextFontSize', - required: false, - placeholder: '', - }, - ], - }, - { - name: '数值设定', - list: [ - { - type: 'el-switch', - label: '显示', - name: 'isShow', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-switch', - label: '数值', - name: 'numberValue', - require: false, - placeholder: '', - value: true, - }, - { - type: 'el-switch', - label: '百分比', - name: 'percentage', - require: false, - placeholder: '', - value: false, - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - value: 14, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'fontWeight', - required: false, - placeholder: '', - }, - ], - }, - { - name: '提示语设置', - list: [ - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '网格线颜色', - name: 'lineColor', - required: false, - placeholder: '', - }, - ], - }, - { - name: '图例操作', - list: [ - { - type: 'el-switch', - label: '图例', - name: 'isShowLegend', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lengedColor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'lengedFontSize', - required: false, - placeholder: '', - value: 16, - }, - { - type: 'el-input-number', - label: '图例宽度', - name: 'lengedWidth', - required: false, - placeholder: '', - value: 15, - }, - { - type: 'el-select', - label: '横向位置', - name: 'lateralPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'left', name: '左对齐' }, - { code: 'right', name: '右对齐' }, - ], - }, - { - type: 'el-select', - label: '纵向位置', - name: 'longitudinalPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'top', name: '顶部' }, - { code: 'bottom', name: '底部' }, - ], - }, - { - type: 'el-select', - label: '布局前置', - name: 'layoutFront', - required: false, - placeholder: '', - selectOptions: [ - { code: 'vertical', name: '竖排' }, - { code: 'horizontal', name: '横排' }, - ], - }, - ], - }, { - name: '自定义配色', - list: [ - { - type: 'customColor', - label: '', - name: 'customColor', - required: false, - value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], - }, - ], - }, + type: 'vue-color', + label: '背景颜色', + name: 'background', + required: false, + placeholder: '', + value: '' + }, + [ + { + name: '标题设置', + list: [ + { + type: 'el-switch', + label: '标题', + name: 'isNoTitle', + required: false, + placeholder: '', + value: true + }, + { + type: 'el-input-text', + label: '标题', + name: 'titleText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'textColor', + required: false, + placeholder: '', + value: '#fff' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'textFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'textFontSize', + required: false, + placeholder: '', + value: 20 + }, + { + type: 'el-select', + label: '字体位置', + name: 'textAlign', + required: false, + placeholder: '', + selectOptions: [ + { code: 'center', name: '居中' }, + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: 'left' + }, + { + type: 'el-input-text', + label: '副标题', + name: 'subText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'subTextFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'subTextFontSize', + required: false, + placeholder: '', + value: 12 + }, + ], + }, + { + name: '数值设定', + list: [ + { + type: 'el-switch', + label: '显示', + name: 'isShow', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-switch', + label: '数值', + name: 'numberValue', + require: false, + placeholder: '', + value: true, + }, + { + type: 'el-switch', + label: '百分比', + name: 'percentage', + require: false, + placeholder: '', + value: false, + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: 14, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'fontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + ], + }, + { + name: '提示语设置', + list: [ + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'vue-color', + label: '网格线颜色', + name: 'lineColor', + required: false, + placeholder: '', + value: '' + }, + ], + }, + { + name: '图例操作', + list: [ + { + type: 'el-switch', + label: '图例', + name: 'isShowLegend', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lengedColor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-text', + label: '字体大小', + name: 'lengedFontSize', + required: false, + placeholder: '', + value: 16, + }, + { + type: 'el-input-number', + label: '图例宽度', + name: 'lengedWidth', + required: false, + placeholder: '', + value: 15, + }, + { + type: 'el-select', + label: '横向位置', + name: 'lateralPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: '' + }, + { + type: 'el-select', + label: '纵向位置', + name: 'longitudinalPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'top', name: '顶部' }, + { code: 'bottom', name: '底部' }, + ], + value: '' + }, + { + type: 'el-select', + label: '布局前置', + name: 'layoutFront', + required: false, + placeholder: '', + selectOptions: [ + { code: 'vertical', name: '竖排' }, + { code: 'horizontal', name: '横排' }, + ], + value: '' + }, + ], + }, + { + name: '自定义配色', + list: [ + { + type: 'customColor', + label: '', + name: 'customColor', + required: false, + value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], + }, + ], + }, + ], ], // 数据 data: [ @@ -2815,235 +3023,283 @@ const widgetTools = [ placeholder: '', value: '空心饼图', }, - ], - // 折叠面板 - collapse: [ - { - name: '标题设置', - list: [ - { - type: 'el-switch', - label: '标题', - name: 'isNoTitle', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '标题', - name: 'titleText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'textColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'textFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'textFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体位置', - name: 'textAlign', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '副标题', - name: 'subText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'subTextFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'subTextFontSize', - required: false, - placeholder: '', - }, - ], - }, - { - name: '数值设定', - list: [ - { - type: 'el-switch', - label: '显示', - name: 'isShow', - required: false, - placeholder: '', - value: true, - }, - { - type: 'el-switch', - label: '数值', - name: 'numberValue', - require: false, - placeholder: '', - value: false, - }, - { - type: 'el-switch', - label: '百分比', - name: 'percentage', - require: false, - placeholder: '', - value: true, - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'fontWeight', - required: false, - placeholder: '', - }, - ], - }, - { - name: '提示语设置', - list: [ - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '网格线颜色', - name: 'lineColor', - required: false, - placeholder: '', - }, - ], - }, - { - name: '图例操作', - list: [ - { - type: 'el-switch', - label: '图例', - name: 'isShowLegend', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lengedColor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'lengedFontSize', - required: false, - placeholder: '', - value: 16, - }, - { - type: 'el-input-number', - label: '图例宽度', - name: 'lengedWidth', - required: false, - placeholder: '', - value: 10, - }, - { - type: 'el-select', - label: '横向位置', - name: 'lateralPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'left', name: '左对齐' }, - { code: 'right', name: '右对齐' }, - ], - }, - { - type: 'el-select', - label: '纵向位置', - name: 'longitudinalPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'top', name: '顶部' }, - { code: 'bottom', name: '底部' }, - ], - }, - { - type: 'el-select', - label: '布局前置', - name: 'layoutFront', - required: false, - placeholder: '', - selectOptions: [ - { code: 'vertical', name: '竖排' }, - { code: 'horizontal', name: '横排' }, - ], - }, - ], - }, { - name: '自定义配色', - list: [ - { - type: 'customColor', - label: '', - name: 'customColor', - required: false, - value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], - }, - ], - }, + type: 'vue-color', + label: '背景颜色', + name: 'background', + required: false, + placeholder: '', + value: '' + }, + [ + { + name: '标题设置', + list: [ + { + type: 'el-switch', + label: '标题', + name: 'isNoTitle', + required: false, + placeholder: '', + value: true + }, + { + type: 'el-input-text', + label: '标题', + name: 'titleText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'textColor', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'textFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'textFontSize', + required: false, + placeholder: '', + value: 20 + }, + { + type: 'el-select', + label: '字体位置', + name: 'textAlign', + required: false, + placeholder: '', + selectOptions: [ + { code: 'center', name: '居中' }, + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: 'left' + }, + { + type: 'el-input-text', + label: '副标题', + name: 'subText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'subTextFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'subTextFontSize', + required: false, + placeholder: '', + value: '' + }, + ], + }, + { + name: '数值设定', + list: [ + { + type: 'el-switch', + label: '显示', + name: 'isShow', + required: false, + placeholder: '', + value: true, + }, + { + type: 'el-switch', + label: '数值', + name: 'numberValue', + require: false, + placeholder: '', + value: false, + }, + { + type: 'el-switch', + label: '百分比', + name: 'percentage', + require: false, + placeholder: '', + value: true, + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'fontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + ], + }, + { + name: '提示语设置', + list: [ + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '网格线颜色', + name: 'lineColor', + required: false, + placeholder: '', + value: '' + }, + ], + }, + { + name: '图例操作', + list: [ + { + type: 'el-switch', + label: '图例', + name: 'isShowLegend', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lengedColor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'lengedFontSize', + required: false, + placeholder: '', + value: 16, + }, + { + type: 'el-input-number', + label: '图例宽度', + name: 'lengedWidth', + required: false, + placeholder: '', + value: 10, + }, + { + type: 'el-select', + label: '横向位置', + name: 'lateralPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: '' + }, + { + type: 'el-select', + label: '纵向位置', + name: 'longitudinalPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'top', name: '顶部' }, + { code: 'bottom', name: '底部' }, + ], + value: '' + }, + { + type: 'el-select', + label: '布局前置', + name: 'layoutFront', + required: false, + placeholder: '', + selectOptions: [ + { code: 'vertical', name: '竖排' }, + { code: 'horizontal', name: '横排' }, + ], + value: '' + }, + ], + }, + { + name: '自定义配色', + list: [ + { + type: 'customColor', + label: '', + name: 'customColor', + required: false, + value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], + }, + ], + }, + ], ], // 数据 data: [ @@ -3141,228 +3397,275 @@ const widgetTools = [ placeholder: '', value: '漏斗图', }, - ], - // 折叠面板 - collapse: [ - { - name: '文字设置', - list: [ - { - type: 'el-switch', - label: '显示', - name: 'isShow', - require: false, - placeholder: '', - value: true, - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'fontSize', - require: false, - placeholder: '', - value: 16, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'color', - require: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'fontWeight', - require: false, - placeholder: '', - }, - { - type: 'el-switch', - label: '反转', - name: 'reversal', - require: false, - placeholder: '', - }, - ], - }, - { - name: '标题设置', - list: [ - { - type: 'el-switch', - label: '标题', - name: 'isNoTitle', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '标题', - name: 'titleText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'textColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'textFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'textFontSize', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体位置', - name: 'textAlign', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '副标题', - name: 'subText', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'subTextColor', - required: false, - placeholder: '', - }, - { - type: 'el-input-text', - label: '字体粗细', - name: 'subTextFontWeight', - required: false, - placeholder: '', - }, - { - type: 'el-input-number', - label: '字体大小', - name: 'subTextFontSize', - required: false, - placeholder: '', - }, - ], - }, - { - name: '提示语设置', - list: [ - { - type: 'el-input-text', - label: '字体大小', - name: 'fontSize', - required: false, - placeholder: '', - }, - { - type: 'vue-color', - label: '网格线颜色', - name: 'lineColor', - required: false, - placeholder: '', - }, - ], - }, - { - name: '图例操作', - list: [ - { - type: 'el-switch', - label: '图例', - name: 'isShowLegend', - required: false, - placeholder: '', - value: true, - }, - { - type: 'vue-color', - label: '字体颜色', - name: 'lengedColor', - required: false, - placeholder: '', - value: '#fff', - }, - { - type: 'el-input-text', - label: '字体大小', - name: 'lengedFontSize', - required: false, - placeholder: '', - value: 16, - }, - { - type: 'el-input-number', - label: '图例宽度', - name: 'lengedWidth', - required: false, - placeholder: '', - value: 10, - }, - { - type: 'el-select', - label: '横向位置', - name: 'lateralPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'left', name: '左对齐' }, - { code: 'right', name: '右对齐' }, - ], - }, - { - type: 'el-select', - label: '纵向位置', - name: 'longitudinalPosition', - required: false, - placeholder: '', - selectOptions: [ - { code: 'top', name: '顶部' }, - { code: 'bottom', name: '底部' }, - ], - }, - { - type: 'el-select', - label: '布局前置', - name: 'layoutFront', - required: false, - placeholder: '', - selectOptions: [ - { code: 'vertical', name: '竖排' }, - { code: 'horizontal', name: '横排' }, - ], - }, - ], - }, { - name: '自定义配色', - list: [ - { - type: 'customColor', - label: '', - name: 'customColor', - required: false, - value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], - }, - ], - }, + type: 'vue-color', + label: '背景颜色', + name: 'background', + required: false, + placeholder: '', + value: '' + }, + [ + { + name: '文字设置', + list: [ + { + type: 'el-switch', + label: '显示', + name: 'isShow', + require: false, + placeholder: '', + value: true, + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + require: false, + placeholder: '', + value: 12, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'color', + require: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-select', + label: '字体粗细', + name: 'fontWeight', + require: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-switch', + label: '反转', + name: 'reversal', + require: false, + placeholder: '', + value: 0 + }, + ], + }, + { + name: '标题设置', + list: [ + { + type: 'el-switch', + label: '标题', + name: 'isNoTitle', + required: false, + placeholder: '', + value: true + }, + { + type: 'el-input-text', + label: '标题', + name: 'titleText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'textColor', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'textFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'textFontSize', + required: false, + placeholder: '', + value: 12 + }, + { + type: 'el-select', + label: '字体位置', + name: 'textAlign', + required: false, + placeholder: '', + selectOptions: [ + { code: 'center', name: '居中' }, + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: 'left' + }, + { + type: 'el-input-text', + label: '副标题', + name: 'subText', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'subTextColor', + required: false, + placeholder: '', + value: '' + }, + { + type: 'el-select', + label: '字体粗细', + name: 'subTextFontWeight', + required: false, + placeholder: '', + selectOptions: [ + { code: 'normal', name: '正常' }, + { code: 'bold', name: '粗体' }, + { code: 'bolder', name: '特粗体' }, + { code: 'lighter', name: '细体' } + ], + value: 'normal' + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'subTextFontSize', + required: false, + placeholder: '', + value: '' + }, + ], + }, + { + name: '提示语设置', + list: [ + { + type: 'el-input-number', + label: '字体大小', + name: 'fontSize', + required: false, + placeholder: '', + value: '' + }, + { + type: 'vue-color', + label: '网格线颜色', + name: 'lineColor', + required: false, + placeholder: '', + value: '' + }, + ], + }, + { + name: '图例操作', + list: [ + { + type: 'el-switch', + label: '图例', + name: 'isShowLegend', + required: false, + placeholder: '', + value: true, + }, + { + type: 'vue-color', + label: '字体颜色', + name: 'lengedColor', + required: false, + placeholder: '', + value: '#fff', + }, + { + type: 'el-input-number', + label: '字体大小', + name: 'lengedFontSize', + required: false, + placeholder: '', + value: 16, + }, + { + type: 'el-input-number', + label: '图例宽度', + name: 'lengedWidth', + required: false, + placeholder: '', + value: 10, + }, + { + type: 'el-select', + label: '横向位置', + name: 'lateralPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'left', name: '左对齐' }, + { code: 'right', name: '右对齐' }, + ], + value: '' + }, + { + type: 'el-select', + label: '纵向位置', + name: 'longitudinalPosition', + required: false, + placeholder: '', + selectOptions: [ + { code: 'top', name: '顶部' }, + { code: 'bottom', name: '底部' }, + ], + value: '' + }, + { + type: 'el-select', + label: '布局前置', + name: 'layoutFront', + required: false, + placeholder: '', + selectOptions: [ + { code: 'vertical', name: '竖排' }, + { code: 'horizontal', name: '横排' }, + ], + value: '' + }, + ], + }, + { + name: '自定义配色', + list: [ + { + type: 'customColor', + label: '', + name: 'customColor', + required: false, + value: [{ color: '#ED0E0E' }, { color: '#6CCD17' }, { color: '#172CCD' }, { color: '#B817CD' }, { color: '#AFCD17' }], + }, + ], + }, + ], ], // 数据 data: [ @@ -3500,9 +3803,15 @@ const widgetTools = [ placeholder: '', value: 20, }, + { + type: 'vue-color', + label: '背景颜色', + name: 'background', + required: false, + placeholder: '', + value: '' + }, ], - // 折叠面板 - collapse: [], // 数据 data: [ { diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetBarchart.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetBarchart.vue index f4d7b2f7..6a7109fd 100644 --- a/report-ui/src/views/report/bigscreen/designer/widget/widgetBarchart.vue +++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetBarchart.vue @@ -1,7 +1,6 @@ @@ -13,7 +12,7 @@ export default { value: Object, ispreview: Boolean, }, - data () { + data() { return { options: { grid: {}, @@ -48,49 +47,51 @@ export default { type: 'bar', barGap: '0%', itemStyle: { - borderRadius: null - } + borderRadius: null, + }, }, ], }, optionsStyle: {}, // 样式 optionsData: {}, // 数据 - optionsCollapse: {}, // 图标属性 + optionsSetup: {}, } }, computed: { - styleObj () { + styleObj() { return { position: this.ispreview ? 'absolute' : 'static', width: this.optionsStyle.width + 'px', height: this.optionsStyle.height + 'px', left: this.optionsStyle.left + 'px', top: this.optionsStyle.top + 'px', + background: this.optionsSetup.background, } }, }, watch: { value: { - handler (val) { + handler(val) { + console.log(val) this.optionsStyle = val.position this.optionsData = val.data - this.optionsCollapse = val.collapse + this.optionsCollapse = val.setup this.optionsSetup = val.setup this.editorOptions() }, deep: true, }, }, - mounted () { + mounted() { this.optionsStyle = this.value.position this.optionsData = this.value.data - this.optionsCollapse = this.value.collapse + this.optionsCollapse = this.value.setup this.optionsSetup = this.value.setup this.editorOptions() }, methods: { // 修改图标options属性 - editorOptions () { + editorOptions() { this.setOptionsTitle() this.setOptionsX() this.setOptionsY() @@ -102,11 +103,12 @@ export default { this.setOptionsData() }, // 标题修改 - setOptionsTitle () { - const optionsCollapse = this.optionsCollapse + setOptionsTitle() { + const optionsCollapse = this.optionsSetup const title = {} title.text = optionsCollapse.titleText - title.textAlign = optionsCollapse.textAlign + title.show = optionsCollapse.isNoTitle + title.left = optionsCollapse.textAlign title.textStyle = { color: optionsCollapse.textColor, fontSize: optionsCollapse.textFontSize, @@ -122,8 +124,8 @@ export default { this.options.title = title }, // X轴设置 - setOptionsX () { - const optionsCollapse = this.optionsCollapse + setOptionsX() { + const optionsCollapse = this.optionsSetup const xAxis = { type: 'category', show: optionsCollapse.hideX, // 坐标轴是否显示 @@ -136,19 +138,25 @@ export default { inverse: optionsCollapse.reversalX, // 轴反转 axisLabel: { show: true, - interval: optionsCollapse.textInterval,// 文字角度 - rotate: optionsCollapse.textAngle,// 文字角度 + interval: optionsCollapse.textInterval, // 文字角度 + rotate: optionsCollapse.textAngle, // 文字角度 textStyle: { color: optionsCollapse.Xcolor, // x轴 坐标文字颜色 fontSize: optionsCollapse.fontSizeX, }, }, + axisLine: { + show: true, + lineStyle: { + color: '#fff', + }, + }, } this.options.xAxis = xAxis }, // Y轴设置 - setOptionsY () { - const optionsCollapse = this.optionsCollapse + setOptionsY() { + const optionsCollapse = this.optionsSetup const yAxis = { type: 'value', show: optionsCollapse.isShowY, // 坐标轴是否显示 @@ -165,13 +173,22 @@ export default { fontSize: optionsCollapse.fontSizeY, }, }, + splitLine: { + show: false, + }, + axisLine: { + show: true, + lineStyle: { + color: '#fff', + }, + }, } this.options.yAxis = yAxis }, // 数值设定 or 柱体设置 - setOptionsTop () { - const optionsCollapse = this.optionsCollapse + setOptionsTop() { + const optionsCollapse = this.optionsSetup const series = this.options.series for (const key in series) { @@ -191,8 +208,8 @@ export default { this.options.series = series }, // tooltip 设置 - setOptionsTooltip () { - const optionsCollapse = this.optionsCollapse + setOptionsTooltip() { + const optionsCollapse = this.optionsSetup const tooltip = { trigger: 'item', show: true, @@ -203,21 +220,21 @@ export default { } this.options.tooltip = tooltip }, - //边距设置 - setOptionsMargin () { - const optionsCollapse = this.optionsCollapse + // 边距设置 + setOptionsMargin() { + const optionsCollapse = this.optionsSetup const grid = { left: optionsCollapse.marginLeft, right: optionsCollapse.marginRight, bottom: optionsCollapse.marginBottom, top: optionsCollapse.marginTop, - containLabel: true + containLabel: true, } this.options.grid = grid }, // 图例操作 legend - setOptionsLegend () { - const optionsCollapse = this.optionsCollapse + setOptionsLegend() { + const optionsCollapse = this.optionsSetup const legend = this.options.legend legend.show = optionsCollapse.isShowLegend legend.left = optionsCollapse.lateralPosition == 'left' ? 0 : 'auto' @@ -232,23 +249,23 @@ export default { legend.itemWidth = optionsCollapse.lengedWidth }, // 图例颜色修改 - setOptionsColor () { - const optionsCollapse = this.optionsCollapse + setOptionsColor() { + const optionsCollapse = this.optionsSetup const customColor = optionsCollapse.customColor if (!customColor) return - let arrColor = [] + const arrColor = [] for (let i = 0; i < customColor.length; i++) { arrColor.push(customColor[i].color) } - let itemStyle = { + const itemStyle = { normal: { color: (params) => { return arrColor[params.dataIndex] }, - barBorderRadius: optionsCollapse.radius - } + barBorderRadius: optionsCollapse.radius, + }, } - for (let key in this.options.series) { + for (const key in this.options.series) { if (this.options.series[key].type == 'bar') { this.options.series[key].itemStyle = itemStyle } @@ -256,13 +273,15 @@ export default { this.options = Object.assign({}, this.options) }, // 数据解析 - setOptionsData () { + setOptionsData() { const optionsSetup = this.optionsSetup + console.log(optionsSetup) const optionsData = this.optionsData // 数据类型 静态 or 动态 + console.log(optionsData) optionsData.dataType == 'staticData' ? this.staticDataFn(optionsData.staticData, optionsSetup) : this.dynamicDataFn(optionsData.dynamicData, optionsSetup) }, // 静态数据 - staticDataFn (val, optionsSetup) { + staticDataFn(val, optionsSetup) { const staticData = JSON.parse(val) // x轴 if (optionsSetup.verticalShow) { @@ -278,14 +297,15 @@ export default { } // series const series = this.options.series - for (let i in series) { + for (const i in series) { if (series[i].type == 'bar') { series[i].data = staticData.series[0].data } } }, // 动态数据 - dynamicDataFn (val, optionsSetup) { + dynamicDataFn(val, optionsSetup) { + console.log(val) if (!val) return // x轴 if (optionsSetup.verticalShow) { @@ -302,7 +322,7 @@ export default { // series const series = this.options.series - for (let i in series) { + for (const i in series) { if (series[i].type == 'bar') { series[i].data = val.series[i].data } diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetBarlinechart.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetBarlinechart.vue index 8db50ba4..489ac4e8 100644 --- a/report-ui/src/views/report/bigscreen/designer/widget/widgetBarlinechart.vue +++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetBarlinechart.vue @@ -1,7 +1,6 @@ @@ -13,7 +12,7 @@ export default { value: Object, ispreview: Boolean, }, - data () { + data() { return { options: { color: [], @@ -32,7 +31,7 @@ export default { textStyle: { color: '#fff', }, - data: ["货运量", "货运总量"] + data: ['货运量', '货运总量'], }, xAxis: [ { @@ -80,54 +79,58 @@ export default { type: 'bar', data: [], itemStyle: { - barBorderRadius: null - } + barBorderRadius: null, + }, }, { name: '', type: 'line', yAxisIndex: 1, data: [], - itemStyle: {} + itemStyle: {}, }, ], }, optionsStyle: {}, // 样式 optionsData: {}, // 数据 optionsCollapse: {}, // 图标属性 + optionsSetup: {}, } }, computed: { - styleObj () { + styleObj() { return { position: this.ispreview ? 'absolute' : 'static', width: this.optionsStyle.width + 'px', height: this.optionsStyle.height + 'px', left: this.optionsStyle.left + 'px', top: this.optionsStyle.top + 'px', + background: this.optionsSetup.background, } }, }, watch: { value: { - handler (val) { + handler(val) { this.optionsStyle = val.position this.optionsData = val.data this.optionsCollapse = val.collapse + this.optionsSetup = val.setup this.editorOptions() }, deep: true, }, }, - created () { + created() { this.optionsStyle = this.value.position this.optionsData = this.value.data this.optionsCollapse = this.value.collapse + this.optionsSetup = this.value.setup this.editorOptions() }, methods: { // 修改图标options属性 - editorOptions () { + editorOptions() { this.setOptionsTitle() this.setOptionsX() this.setOptionsY() @@ -140,11 +143,12 @@ export default { this.setOptionsColor() }, // 标题修改 - setOptionsTitle () { - const optionsCollapse = this.optionsCollapse + setOptionsTitle() { + const optionsCollapse = this.optionsSetup const title = {} title.text = optionsCollapse.titleText - title.textAlign = optionsCollapse.textAlign + title.show = optionsCollapse.isNoTitle + title.left = optionsCollapse.textAlign title.textStyle = { color: optionsCollapse.textColor, fontSize: optionsCollapse.textFontSize, @@ -160,9 +164,8 @@ export default { this.options.title = title }, // X轴设置 - setOptionsX () { - const optionsCollapse = this.optionsCollapse - console.log(optionsCollapse) + setOptionsX() { + const optionsCollapse = this.optionsSetup const xAxis = { type: 'category', show: optionsCollapse.hideX, // 坐标轴是否显示 @@ -175,19 +178,25 @@ export default { inverse: optionsCollapse.reversalX, // 轴反转 axisLabel: { show: true, - interval: optionsCollapse.textInterval,// 文字角度 - rotate: optionsCollapse.textAngle,// 文字角度 + interval: optionsCollapse.textInterval, // 文字角度 + rotate: optionsCollapse.textAngle, // 文字角度 textStyle: { color: optionsCollapse.Xcolor, // x轴 坐标文字颜色 fontSize: optionsCollapse.fontSizeX, }, }, + axisLine: { + show: true, + lineStyle: { + color: '#fff', + }, + }, } this.options.xAxis = xAxis }, // Y轴设置 - setOptionsY () { - const optionsCollapse = this.optionsCollapse + setOptionsY() { + const optionsCollapse = this.optionsSetup const yAxis = [ { type: 'value', @@ -205,6 +214,15 @@ export default { fontSize: optionsCollapse.fontSizeY, }, }, + splitLine: { + show: false, + }, + axisLine: { + show: true, + lineStyle: { + color: '#fff', + }, + }, }, { type: 'value', @@ -222,14 +240,23 @@ export default { fontSize: optionsCollapse.fontSizeY, }, }, + splitLine: { + show: false, + }, + axisLine: { + show: true, + lineStyle: { + color: '#fff', + }, + }, }, ] this.options.yAxis = yAxis }, // 折线设置 - setOptionsTop () { - const optionsCollapse = this.optionsCollapse + setOptionsTop() { + const optionsCollapse = this.optionsSetup const series = this.options.series for (const key in series) { if (series[key].type == 'line') { @@ -261,8 +288,8 @@ export default { } this.options.series = series }, - setOptionsBar () { - const optionsCollapse = this.optionsCollapse + setOptionsBar() { + const optionsCollapse = this.optionsSetup const series = this.options.series for (const key in series) { if (series[key].type == 'bar') { @@ -282,8 +309,8 @@ export default { this.options.series = series }, // tooltip 设置 - setOptionsTooltip () { - const optionsCollapse = this.optionsCollapse + setOptionsTooltip() { + const optionsCollapse = this.optionsSetup const tooltip = { trigger: 'item', show: true, @@ -294,21 +321,21 @@ export default { } this.options.tooltip = tooltip }, - //边距设置 - setOptionsMargin () { - const optionsCollapse = this.optionsCollapse + // 边距设置 + setOptionsMargin() { + const optionsCollapse = this.optionsSetup const grid = { left: optionsCollapse.marginLeft, right: optionsCollapse.marginRight, bottom: optionsCollapse.marginBottom, top: optionsCollapse.marginTop, - containLabel: true + containLabel: true, } this.options.grid = grid }, // 图例操作 legend - setOptionsLegend () { - const optionsCollapse = this.optionsCollapse + setOptionsLegend() { + const optionsCollapse = this.optionsSetup const legend = this.options.legend legend.show = optionsCollapse.isShowLegend legend.left = optionsCollapse.lateralPosition == 'left' ? 0 : 'auto' @@ -323,11 +350,11 @@ export default { legend.itemWidth = optionsCollapse.lengedWidth }, // 图例颜色修改 - setOptionsColor () { - const optionsCollapse = this.optionsCollapse + setOptionsColor() { + const optionsCollapse = this.optionsSetup const customColor = optionsCollapse.customColor if (!customColor) return - let arrColor = [] + const arrColor = [] for (let i = 0; i < customColor.length; i++) { arrColor.push(customColor[i].color) } @@ -335,32 +362,32 @@ export default { this.options = Object.assign({}, this.options) }, // 数据处理 - setOptionsData () { + setOptionsData() { const optionsData = this.optionsData // 数据类型 静态 or 动态 optionsData.dataType == 'staticData' ? this.staticDataFn(optionsData.staticData) : this.dynamicDataFn(optionsData.dynamicData) }, - staticDataFn (val) { + staticDataFn(val) { const staticData = JSON.parse(val) // x轴 this.options.xAxis.data = staticData.xAxis // series const series = this.options.series - for (let i in series) { - for (let j in staticData.series) { + for (const i in series) { + for (const j in staticData.series) { if (series[i].type == staticData.series[j].type) { series[i].data = staticData.series[j].data } } } }, - dynamicDataFn (val) { + dynamicDataFn(val) { if (!val) return // x轴 this.options.xAxis.data = val.xAxis // series const series = this.options.series - for (let i in series) { - for (let j in val.series) { + for (const i in series) { + for (const j in val.series) { if (series[i].type == val.series[j].type) { series[i].data = val.series[j].data } diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetFunnel.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetFunnel.vue index 5b58ef1b..98a8ec05 100644 --- a/report-ui/src/views/report/bigscreen/designer/widget/widgetFunnel.vue +++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetFunnel.vue @@ -1,7 +1,6 @@ @@ -13,7 +12,7 @@ export default { value: Object, ispreview: Boolean, }, - data () { + data() { return { options: { color: [], @@ -75,39 +74,43 @@ export default { optionsStyle: {}, // 样式 optionsData: {}, // 数据 optionsCollapse: {}, // 图标属性 + optionsSetup: {}, } }, computed: { - styleObj () { + styleObj() { return { position: this.ispreview ? 'absolute' : 'static', width: this.optionsStyle.width + 'px', height: this.optionsStyle.height + 'px', left: this.optionsStyle.left + 'px', top: this.optionsStyle.top + 'px', + background: this.optionsSetup.background, } }, }, watch: { value: { - handler (val) { + handler(val) { this.optionsStyle = val.position this.optionsData = val.data this.optionsCollapse = val.collapse + this.optionsSetup = val.setup this.editorOptions() }, deep: true, }, }, - created () { + created() { this.optionsStyle = this.value.position this.optionsData = this.value.data this.optionsCollapse = this.value.collapse + this.optionsSetup = this.value.setup this.editorOptions() }, methods: { // 修改图标options属性 - editorOptions () { + editorOptions() { this.setOptionsText() this.setOptionsTitle() this.setOptionsTooltip() @@ -116,8 +119,8 @@ export default { this.setOptionsData() }, // 文字设置 - setOptionsText () { - const optionsCollapse = this.optionsCollapse + setOptionsText() { + const optionsCollapse = this.optionsSetup const series = this.options.series for (const key in series) { @@ -132,12 +135,12 @@ export default { } }, // 标题修改 - setOptionsTitle () { - const optionsCollapse = this.optionsCollapse + setOptionsTitle() { + const optionsCollapse = this.optionsSetup const title = {} title.show = optionsCollapse.isNoTitle title.text = optionsCollapse.titleText - title.textAlign = optionsCollapse.textAlign + title.left = optionsCollapse.textAlign title.textStyle = { color: optionsCollapse.textColor, fontSize: optionsCollapse.textFontSize, @@ -153,8 +156,8 @@ export default { this.options.title = title }, // 提示语设置 tooltip - setOptionsTooltip () { - const optionsCollapse = this.optionsCollapse + setOptionsTooltip() { + const optionsCollapse = this.optionsSetup const tooltip = { trigger: 'item', show: true, @@ -166,8 +169,8 @@ export default { this.options.tooltip = tooltip }, // 图例操作 legend - setOptionsLegend () { - const optionsCollapse = this.optionsCollapse + setOptionsLegend() { + const optionsCollapse = this.optionsSetup const legend = this.options.legend legend.show = optionsCollapse.isShowLegend legend.left = optionsCollapse.lateralPosition == 'left' ? 0 : 'auto' @@ -182,32 +185,32 @@ export default { legend.itemWidth = optionsCollapse.lengedWidth }, // 图例颜色修改 - setOptionsColor () { - const optionsCollapse = this.optionsCollapse + setOptionsColor() { + const optionsCollapse = this.optionsSetup const customColor = optionsCollapse.customColor if (!customColor) return - let arrColor = [] + const arrColor = [] for (let i = 0; i < customColor.length; i++) { arrColor.push(customColor[i].color) } this.options.color = arrColor this.options = Object.assign({}, this.options) }, - setOptionsData () { + setOptionsData() { const optionsData = this.optionsData // 数据类型 静态 or 动态 optionsData.dataType == 'staticData' ? this.staticDataFn(optionsData.staticData) : this.dynamicDataFn(optionsData.dynamicData) }, - staticDataFn (val) { + staticDataFn(val) { const staticData = JSON.parse(val) - for (let key in this.options.series) { + for (const key in this.options.series) { if (this.options.series[key].type == 'funnel') { this.options.series[key].data = staticData } } }, - dynamicDataFn (val) { + dynamicDataFn(val) { if (!val) return - for (let key in this.options.series) { + for (const key in this.options.series) { if (this.options.series[key].type == 'funnel') { this.options.series[key].data = val } diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetGauge.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetGauge.vue index e4aa13d5..f1d41665 100644 --- a/report-ui/src/views/report/bigscreen/designer/widget/widgetGauge.vue +++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetGauge.vue @@ -61,6 +61,7 @@ export default { height: this.optionsStyle.height + 'px', left: this.optionsStyle.left + 'px', top: this.optionsStyle.top + 'px', + background: this.optionsSetup.background, } }, }, @@ -106,7 +107,7 @@ export default { staticDataFn(val) { const unit = JSON.parse(val).unit const series = this.options.series - for (let key in series) { + for (const key in series) { series[key].detail.formatter = `{value}${unit}` series[key].data[0] = { value: JSON.parse(val).value, @@ -117,7 +118,7 @@ export default { dynamicDataFn(val) { if (!val) return const series = this.options.series - for (let key in series) { + for (const key in series) { series[key].detail.formatter = `{value}${val.unit}` series[key].data[0] = { value: val.value, diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetHollowPiechart.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetHollowPiechart.vue index 4bedb578..69518546 100644 --- a/report-ui/src/views/report/bigscreen/designer/widget/widgetHollowPiechart.vue +++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetHollowPiechart.vue @@ -1,7 +1,6 @@ @@ -13,7 +12,7 @@ export default { value: Object, ispreview: Boolean, }, - data () { + data() { return { options: { color: [], @@ -53,39 +52,43 @@ export default { optionsStyle: {}, // 样式 optionsData: {}, // 数据 optionsCollapse: {}, // 图标属性 + optionsSetup: {}, } }, computed: { - styleObj () { + styleObj() { return { position: this.ispreview ? 'absolute' : 'static', width: this.optionsStyle.width + 'px', height: this.optionsStyle.height + 'px', left: this.optionsStyle.left + 'px', top: this.optionsStyle.top + 'px', + background: this.optionsSetup.background, } }, }, watch: { value: { - handler (val) { + handler(val) { this.optionsStyle = val.position this.optionsData = val.data this.optionsCollapse = val.collapse + this.optionsSetup = val.setup this.editorOptions() }, deep: true, }, }, - created () { + created() { this.optionsStyle = this.value.position this.optionsData = this.value.data this.optionsCollapse = this.value.collapse + this.optionsSetup = this.value.setup this.editorOptions() }, methods: { // 修改图标options属性 - editorOptions () { + editorOptions() { this.setOptionsTitle() this.setOptionsValue() this.setOptionsTooltip() @@ -94,12 +97,12 @@ export default { this.setOptionsData() }, // 标题设置 - setOptionsTitle () { - const optionsCollapse = this.optionsCollapse + setOptionsTitle() { + const optionsCollapse = this.optionsSetup const title = {} title.show = optionsCollapse.isNoTitle title.text = optionsCollapse.titleText - title.textAlign = optionsCollapse.textAlign + title.left = optionsCollapse.textAlign title.textStyle = { color: optionsCollapse.textColor, fontSize: optionsCollapse.textFontSize, @@ -115,8 +118,8 @@ export default { this.options.title = title }, // 数值设定 - setOptionsValue () { - const optionsCollapse = this.optionsCollapse + setOptionsValue() { + const optionsCollapse = this.optionsSetup const series = this.options.series const numberValue = optionsCollapse.numberValue ? '{c}' : '' const percentage = optionsCollapse.percentage ? '({d})%' : '' @@ -143,8 +146,8 @@ export default { } }, // 提示语设置 tooltip - setOptionsTooltip () { - const optionsCollapse = this.optionsCollapse + setOptionsTooltip() { + const optionsCollapse = this.optionsSetup const tooltip = { trigger: 'item', show: true, @@ -156,8 +159,8 @@ export default { this.options.tooltip = tooltip }, // 图例操作 legend - setOptionsLegend () { - const optionsCollapse = this.optionsCollapse + setOptionsLegend() { + const optionsCollapse = this.optionsSetup const legend = this.options.legend legend.show = optionsCollapse.isShowLegend legend.left = optionsCollapse.lateralPosition == 'left' ? 0 : 'auto' @@ -172,32 +175,32 @@ export default { legend.itemWidth = optionsCollapse.lengedWidth }, // 图例颜色修改 - setOptionsColor () { - const optionsCollapse = this.optionsCollapse + setOptionsColor() { + const optionsCollapse = this.optionsSetup const customColor = optionsCollapse.customColor if (!customColor) return - let arrColor = [] + const arrColor = [] for (let i = 0; i < customColor.length; i++) { arrColor.push(customColor[i].color) } this.options.color = arrColor this.options = Object.assign({}, this.options) }, - setOptionsData () { + setOptionsData() { const optionsData = this.optionsData // 数据类型 静态 or 动态 optionsData.dataType == 'staticData' ? this.staticDataFn(optionsData.staticData) : this.dynamicDataFn(optionsData.dynamicData) }, - staticDataFn (val) { + staticDataFn(val) { const staticData = JSON.parse(val) - for (let key in this.options.series) { + for (const key in this.options.series) { if (this.options.series[key].type == 'pie') { this.options.series[key].data = staticData } } }, - dynamicDataFn (val) { + dynamicDataFn(val) { if (!val) return - for (let key in this.options.series) { + for (const key in this.options.series) { if (this.options.series[key].type == 'pie') { this.options.series[key].data = val } diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue index 0dacec38..ee58a63e 100644 --- a/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue +++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetLinechart.vue @@ -1,7 +1,6 @@ @@ -13,7 +12,7 @@ export default { value: Object, ispreview: Boolean, }, - data () { + data() { return { options: { grid: {}, @@ -62,39 +61,43 @@ export default { optionsStyle: {}, // 样式 optionsData: {}, // 数据 optionsCollapse: {}, // 图标属性 + optionsSetup: {}, } }, computed: { - styleObj () { + styleObj() { return { position: this.ispreview ? 'absolute' : 'static', width: this.optionsStyle.width + 'px', height: this.optionsStyle.height + 'px', left: this.optionsStyle.left + 'px', top: this.optionsStyle.top + 'px', + background: this.optionsSetup.background, } }, }, watch: { value: { - handler (val) { + handler(val) { this.optionsStyle = val.position this.optionsData = val.data this.optionsCollapse = val.collapse + this.optionsSetup = val.setup this.editorOptions() }, deep: true, }, }, - created () { + created() { this.optionsStyle = this.value.position this.optionsData = this.value.data this.optionsCollapse = this.value.collapse + this.optionsSetup = this.value.setup this.editorOptions() }, methods: { // 修改图标options属性 - editorOptions () { + editorOptions() { this.setOptionsTitle() this.setOptionsX() this.setOptionsY() @@ -106,12 +109,12 @@ export default { this.setOptionsColor() }, // 标题修改 - setOptionsTitle () { - const optionsCollapse = this.optionsCollapse + setOptionsTitle() { + const optionsCollapse = this.optionsSetup const title = {} title.text = optionsCollapse.titleText title.show = optionsCollapse.isNoTitle - title.textAlign = optionsCollapse.textAlign + title.left = optionsCollapse.textAlign title.textStyle = { color: optionsCollapse.textColor, fontSize: optionsCollapse.textFontSize, @@ -127,8 +130,8 @@ export default { this.options.title = title }, // X轴设置 - setOptionsX () { - const optionsCollapse = this.optionsCollapse + setOptionsX() { + const optionsCollapse = this.optionsSetup const xAxis = { type: 'category', show: optionsCollapse.hideX, // 坐标轴是否显示 @@ -141,19 +144,25 @@ export default { inverse: optionsCollapse.reversalX, // 轴反转 axisLabel: { show: true, - interval: optionsCollapse.textInterval,// 文字角度 - rotate: optionsCollapse.textAngle,// 文字角度 + interval: optionsCollapse.textInterval, // 文字角度 + rotate: optionsCollapse.textAngle, // 文字角度 textStyle: { color: optionsCollapse.Xcolor, // x轴 坐标文字颜色 fontSize: optionsCollapse.fontSizeX, }, }, + axisLine: { + show: true, + lineStyle: { + color: '#fff', + }, + }, } this.options.xAxis = xAxis }, // Y轴设置 - setOptionsY () { - const optionsCollapse = this.optionsCollapse + setOptionsY() { + const optionsCollapse = this.optionsSetup const yAxis = { type: 'value', show: optionsCollapse.isShowY, // 坐标轴是否显示 @@ -170,13 +179,22 @@ export default { fontSize: optionsCollapse.fontSizeY, }, }, + splitLine: { + show: false, + }, + axisLine: { + show: true, + lineStyle: { + color: '#fff', + }, + }, } this.options.yAxis = yAxis }, // 折线设置 - setOptionsTop () { - const optionsCollapse = this.optionsCollapse + setOptionsTop() { + const optionsCollapse = this.optionsSetup const series = this.options.series for (const key in series) { if (series[key].type == 'line') { @@ -209,8 +227,8 @@ export default { this.options.series = series }, // tooltip 设置 - setOptionsTooltip () { - const optionsCollapse = this.optionsCollapse + setOptionsTooltip() { + const optionsCollapse = this.optionsSetup const tooltip = { trigger: 'item', show: true, @@ -221,21 +239,21 @@ export default { } this.options.tooltip = tooltip }, - //边距设置 - setOptionsMargin () { - const optionsCollapse = this.optionsCollapse + // 边距设置 + setOptionsMargin() { + const optionsCollapse = this.optionsSetup const grid = { left: optionsCollapse.marginLeft, right: optionsCollapse.marginRight, bottom: optionsCollapse.marginBottom, top: optionsCollapse.marginTop, - containLabel: true + containLabel: true, } this.options.grid = grid }, // 图例操作 legend - setOptionsLegend () { - const optionsCollapse = this.optionsCollapse + setOptionsLegend() { + const optionsCollapse = this.optionsSetup const legend = this.options.legend legend.show = optionsCollapse.isShowLegend legend.left = optionsCollapse.lateralPosition == 'left' ? 0 : 'auto' @@ -251,11 +269,11 @@ export default { console.log(legend) }, // 图例颜色修改 - setOptionsColor () { - const optionsCollapse = this.optionsCollapse + setOptionsColor() { + const optionsCollapse = this.optionsSetup const customColor = optionsCollapse.customColor if (!customColor) return - let arrColor = [] + const arrColor = [] for (let i = 0; i < customColor.length; i++) { arrColor.push(customColor[i].color) } @@ -263,29 +281,29 @@ export default { this.options = Object.assign({}, this.options) }, // 处理数据 - setOptionsData () { + setOptionsData() { const optionsData = this.optionsData // 数据类型 静态 or 动态 optionsData.dataType == 'staticData' ? this.staticDataFn(optionsData.staticData) : this.dynamicDataFn(optionsData.dynamicData) }, - staticDataFn (val) { + staticDataFn(val) { const staticData = JSON.parse(val) // x轴 this.options.xAxis.data = staticData.categories // series const series = this.options.series - for (let i in series) { + for (const i in series) { if (series[i].type == 'line') { series[i].data = staticData.series[0].data } } }, - dynamicDataFn (val) { + dynamicDataFn(val) { if (!val) return // x轴 this.options.xAxis.data = val.xAxis // series const series = this.options.series - for (let i in series) { + for (const i in series) { if (series[i].type == 'line') { series[i].data = val.series[i].data } diff --git a/report-ui/src/views/report/bigscreen/designer/widget/widgetPiechart.vue b/report-ui/src/views/report/bigscreen/designer/widget/widgetPiechart.vue index 4e4c129b..fab49dd6 100644 --- a/report-ui/src/views/report/bigscreen/designer/widget/widgetPiechart.vue +++ b/report-ui/src/views/report/bigscreen/designer/widget/widgetPiechart.vue @@ -1,7 +1,6 @@ @@ -13,7 +12,7 @@ export default { value: Object, ispreview: Boolean, }, - data () { + data() { return { options: { title: { @@ -48,39 +47,43 @@ export default { optionsStyle: {}, // 样式 optionsData: {}, // 数据 optionsCollapse: {}, // 图标属性 + optionsSetup: {}, } }, computed: { - styleObj () { + styleObj() { return { position: this.ispreview ? 'absolute' : 'static', width: this.optionsStyle.width + 'px', height: this.optionsStyle.height + 'px', left: this.optionsStyle.left + 'px', top: this.optionsStyle.top + 'px', + background: this.optionsSetup.background, } }, }, watch: { value: { - handler (val) { + handler(val) { this.optionsStyle = val.position this.optionsData = val.data this.optionsCollapse = val.collapse + this.optionsSetup = val.setup this.editorOptions() }, deep: true, }, }, - created () { + created() { this.optionsStyle = this.value.position this.optionsData = this.value.data this.optionsCollapse = this.value.collapse + this.optionsSetup = this.value.setup this.editorOptions() }, methods: { // 修改图标options属性 - editorOptions () { + editorOptions() { this.setOptionsTitle() this.setOptionsValue() this.setOptionsTooltip() @@ -89,12 +92,12 @@ export default { this.setOptionsData() }, // 标题设置 - setOptionsTitle () { - const optionsCollapse = this.optionsCollapse + setOptionsTitle() { + const optionsCollapse = this.optionsSetup const title = {} title.show = optionsCollapse.isNoTitle title.text = optionsCollapse.titleText - title.textAlign = optionsCollapse.textAlign + title.left = optionsCollapse.textAlign title.textStyle = { color: optionsCollapse.textColor, fontSize: optionsCollapse.textFontSize, @@ -110,8 +113,8 @@ export default { this.options.title = title }, // 数值设定 - setOptionsValue () { - const optionsCollapse = this.optionsCollapse + setOptionsValue() { + const optionsCollapse = this.optionsSetup const series = this.options.series const numberValue = optionsCollapse.numberValue ? '{c}' : '' const percentage = optionsCollapse.percentage ? '({d})%' : '' @@ -138,8 +141,8 @@ export default { } }, // 提示语设置 tooltip - setOptionsTooltip () { - const optionsCollapse = this.optionsCollapse + setOptionsTooltip() { + const optionsCollapse = this.optionsSetup const tooltip = { trigger: 'item', show: true, @@ -151,8 +154,8 @@ export default { this.options.tooltip = tooltip }, // 图例操作 legend - setOptionsLegend () { - const optionsCollapse = this.optionsCollapse + setOptionsLegend() { + const optionsCollapse = this.optionsSetup const legend = this.options.legend legend.show = optionsCollapse.isShowLegend legend.left = optionsCollapse.lateralPosition == 'left' ? 0 : 'auto' @@ -167,32 +170,32 @@ export default { legend.itemWidth = optionsCollapse.lengedWidth }, // 图例颜色修改 - setOptionsColor () { - const optionsCollapse = this.optionsCollapse + setOptionsColor() { + const optionsCollapse = this.optionsSetup const customColor = optionsCollapse.customColor if (!customColor) return - let arrColor = [] + const arrColor = [] for (let i = 0; i < customColor.length; i++) { arrColor.push(customColor[i].color) } this.options.color = arrColor this.options = Object.assign({}, this.options) }, - setOptionsData () { + setOptionsData() { const optionsData = this.optionsData // 数据类型 静态 or 动态 optionsData.dataType == 'staticData' ? this.staticDataFn(optionsData.staticData) : this.dynamicDataFn(optionsData.dynamicData) }, - staticDataFn (val) { + staticDataFn(val) { const staticData = JSON.parse(val) - for (let key in this.options.series) { + for (const key in this.options.series) { if (this.options.series[key].type == 'pie') { this.options.series[key].data = staticData } } }, - dynamicDataFn (val) { + dynamicDataFn(val) { if (!val) return - for (let key in this.options.series) { + for (const key in this.options.series) { if (this.options.series[key].type == 'pie') { this.options.series[key].data = val } diff --git a/report-ui/src/views/report/bigscreen/index.vue b/report-ui/src/views/report/bigscreen/index.vue index 991b5190..4de48e9f 100644 --- a/report-ui/src/views/report/bigscreen/index.vue +++ b/report-ui/src/views/report/bigscreen/index.vue @@ -72,11 +72,11 @@ export default { mounted () { }, methods: { openDesign (reportId) { - var routeUrl = this.$router.resolve({ path: '/report/bigscreen/designer', query: { reportId: reportId } }) + var routeUrl = this.$router.resolve({ path: '/bigscreen/designer', query: { reportId: reportId } }) window.open(routeUrl.href, '_blank') }, viewDesign (reportId) { - var routeUrl = this.$router.resolve({ path: '/report/bigscreen/viewer', query: { reportId: reportId } }) + var routeUrl = this.$router.resolve({ path: '/bigscreen/viewer', query: { reportId: reportId } }) window.open(routeUrl.href, '_blank') }, }, @@ -102,11 +102,11 @@ export default { } .bg::before { - content: ''; + content: ""; position: absolute; width: 100%; height: 100%; - background-image: url('../../../assets/images/charts.jpg'); + background-image: url("../../../assets/images/charts.jpg"); background-size: 100% 100%; background-repeat: no-repeat; background-position: left top; diff --git a/report-ui/src/views/report/bigscreen/viewer/index.vue b/report-ui/src/views/report/bigscreen/viewer/index.vue index 6330ad9a..0b3a0189 100644 --- a/report-ui/src/views/report/bigscreen/viewer/index.vue +++ b/report-ui/src/views/report/bigscreen/viewer/index.vue @@ -7,7 +7,10 @@ @@ -20,7 +23,7 @@ export default { components: { widget, }, - data() { + data () { return { list: [ { @@ -94,11 +97,11 @@ export default { widgets: [], } }, - mounted() { + mounted () { this.getData() }, methods: { - async getData() { + async getData () { const reportCode = this.$route.query.reportCode const { code, data } = await detailDashboard(reportCode) if (code != 200) return diff --git a/report-ui/src/views/report/report/index.vue b/report-ui/src/views/report/report/index.vue index 7bd46df7..e91eff4d 100644 --- a/report-ui/src/views/report/report/index.vue +++ b/report-ui/src/views/report/report/index.vue @@ -340,7 +340,7 @@ export default { window.open(routeUrl.href, '_blank') } else { // eslint-disable-next-line no-redeclare - var routeUrl = this.$router.resolve({ path: '/report/bigscreen/viewer', query: { reportCode: val.reportCode } }) + var routeUrl = this.$router.resolve({ path: '/bigscreen/viewer', query: { reportCode: val.reportCode } }) window.open(routeUrl.href, '_blank') } }, @@ -351,7 +351,7 @@ export default { window.open(routeUrl.href, '_blank') } else { // eslint-disable-next-line no-redeclare - var routeUrl = this.$router.resolve({ path: '/report/bigscreen/designer', query: { reportCode: val.reportCode, reportId: val.id, accessKey: val.accessKey } }) + var routeUrl = this.$router.resolve({ path: '/bigscreen/designer', query: { reportCode: val.reportCode, reportId: val.id, accessKey: val.accessKey } }) window.open(routeUrl.href, '_blank') } },