From 137fb8ea6af2789b3238b22bac31d80bced41dfe Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 28 七月 2021 11:39:39 +0800 Subject: [PATCH] 2021-07-28 --- src/menu/components/chart/antv-bar/index.jsx | 658 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 562 insertions(+), 96 deletions(-) diff --git a/src/menu/components/chart/antv-bar/index.jsx b/src/menu/components/chart/antv-bar/index.jsx index 40cfcf1..19cd40e 100644 --- a/src/menu/components/chart/antv-bar/index.jsx +++ b/src/menu/components/chart/antv-bar/index.jsx @@ -8,7 +8,7 @@ import MKEmitter from '@/utils/events.js' import asyncComponent from '@/utils/asyncComponent' import asyncIconComponent from '@/utils/asyncIconComponent' - +import { resetStyle } from '@/utils/utils-custom.js' import Utils from '@/utils/utils.js' import { chartColors } from '@/utils/option.js' import zhCN from '@/locales/zh-CN/model.js' @@ -35,6 +35,7 @@ state = { dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, card: null, + appType: sessionStorage.getItem('appType'), eventListener: null } @@ -50,6 +51,7 @@ width: card.width || 24, height: 400, barSize: 35, + color: 'rgba(0, 0, 0, 0.65)', name: card.name } @@ -73,7 +75,7 @@ parentId: card.parentId || '', format: 'array', // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡 pageable: false, // 缁勪欢灞炴�� - 鏄惁鍙垎椤� - switchable: false, // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹� + switchable: card.type === 'bar' ? true : false, // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹� dataName: card.dataName || '', width: _plot.width, name: _plot.name, @@ -121,9 +123,11 @@ } componentDidMount () { - this.viewrender() MKEmitter.addListener('submitStyle', this.getStyle) MKEmitter.addListener('tabsChange', this.handleTabsChange) + setTimeout(() => { + this.viewrender() + }, 1000) } shouldComponentUpdate (nextProps, nextState) { @@ -150,7 +154,8 @@ _element.innerHTML = '' } - setTimeout(this.viewrender, 100) + this.$timer && clearTimeout(this.$timer) + this.$timer = setTimeout(this.viewrender, 100) } } @@ -193,10 +198,14 @@ */ linerender = () => { const { card } = this.state - let plot = {...card.plot, height: card.plot.height - 80} // 鍘婚櫎title鎵�鍗犵┖闂� - let color = plot.color || 'rgba(0, 0, 0, 0.85)' + let plot = {...card.plot} // 鍘婚櫎title鎵�鍗犵┖闂� + let color = plot.color || 'rgba(0, 0, 0, 0.65)' let X_axis = plot.Xaxis || 'x' let Y_axis = plot.Yaxis || ['y'] + + if (card.plot.title || card.search.length > 0) { + plot.height = card.plot.height - 70 + } let data = this.getdata(X_axis, Y_axis) @@ -235,8 +244,29 @@ chart.data(dv.rows) - chart.axis(X_axis, { label: { style: { fill: color } }, line: { style: { fill: color } } }) - chart.axis('value', { grid: { style: { fill: color } }, label: { style: { fill: color } } }) + // chart.axis(X_axis, { label: { style: { fill: color } }, tickLine: {style: { stroke: color }}, line: { style: { stroke: color } } }) + // chart.axis('value', { grid: { line: { style: { stroke: color } }}, label: { style: { fill: color } } }) + + let xc = {label: { style: { fill: color } }} + let yc = {label: { style: { fill: color } }} + if (plot.grid === 'hidden') { + yc.grid = null + } + if (plot.y_line === 'show') { + yc.line = {style: { stroke: '#D1D2CE' }} + } + if (plot.lineColor) { + xc.tickLine = {style: { stroke: plot.lineColor }} + xc.line = { style: { stroke: plot.lineColor } } + if (yc.grid !== null) { + yc.grid = { line: { style: { stroke: plot.lineColor } }} + } + if (yc.line) { + yc.line = { style: { stroke: plot.lineColor } } + } + } + chart.axis(X_axis, xc) + chart.axis('value', yc) if (plot.coordinate !== 'polar') { chart.scale(X_axis, { @@ -245,7 +275,7 @@ } chart.scale('value', { nice: true, - range: [0, 0.93] + range: [0, 0.9] }) if (!plot.legend || plot.legend === 'hidden') { @@ -280,11 +310,23 @@ let colorIndex = 0 if (plot.colors && plot.colors.length > 0) { - plot.colors.forEach(item => { - if (!colors.has(transfield[item.type])) { - colors.set(transfield[item.type], item.color) + if (plot.ramp === 'true') { + let _s = 'l(0) ' + if (plot.rampDirection === 'vertical') { + _s = 'l(90) ' } - }) + plot.colors.forEach(item => { + if (!colors.has(transfield[item.type])) { + colors.set(transfield[item.type], `${_s}0:${item.color} 1:${item.color1}` ) + } + }) + } else { + plot.colors.forEach(item => { + if (!colors.has(transfield[item.type])) { + colors.set(transfield[item.type], item.color) + } + }) + } } let _chart = chart @@ -304,25 +346,33 @@ if (plot.colors && plot.colors.length > 0) { let limit = chartColors.length _chart.color('key', (key) => { - if (colors.get(key)) { + if (colors.has(key)) { + if (plot.area === 'true' && plot.rampDirection === 'vertical') { + return colors.get(key).replace(/l\(9?0\) 0:|\s1:.*/ig, '') + } return colors.get(key) } else { - colors.set(key, chartColors[colorIndex % limit]) colorIndex++ + return chartColors[(colorIndex - 1) % limit] } }) } else { _chart.color('key') } - if (plot.label === 'true') { - _chart.label('value', (value) => { + if (plot.label !== 'false') { + _chart.label('value*key', (value, key) => { if (plot.show === 'percent') { value = value + '%' + } + let _color = color + + if (plot.labelColor === 'custom' && colors.has(key)) { + _color = colors.get(key) } return { content: value, style: { - fill: color + fill: _color } } }) @@ -336,6 +386,32 @@ .size(3) .shape('circle') } + + if (plot.area === 'true') { + let area = chart.area().position(`${X_axis}*value`).tooltip(false) + if (plot.shape === 'smooth') { + area.shape('smooth') + } + if (plot.colors && plot.colors.length > 0) { + let limit = chartColors.length + area.color('key', (key) => { + if (colors.has(key)) { + return colors.get(key) + } else { + colorIndex++ + return chartColors[(colorIndex - 1) % limit] + } + }) + } else { + area.color('key') + } + } + + if (plot.interaction && plot.interaction.length) { + plot.interaction.forEach(t => { + chart.interaction(t) + }) + } chart.render() } else { this.customrender(data) @@ -347,11 +423,16 @@ */ customrender = (data) => { let card = fromJS(this.state.card).toJS() - let plot = {...card.plot, height: card.plot.height - 80} // 鍘婚櫎title鎵�鍗犵┖闂� - let color = plot.color || 'rgba(0, 0, 0, 0.85)' + let plot = {...card.plot} // 鍘婚櫎title鎵�鍗犵┖闂� + let color = plot.color || 'rgba(0, 0, 0, 0.65)' let fields = [] let legends = [] let transfield = {} + let Bar_axis = [] + + if (card.plot.title || card.search.length > 0) { + plot.height = card.plot.height - 70 + } card.columns.forEach(col => { if (col.field) { @@ -364,41 +445,90 @@ let limit = chartColors.length if (plot.colors && plot.colors.length > 0) { - plot.colors.forEach(item => { - if (!colors.has(item.type)) { - colors.set(item.type, item.color) - } - }) + if (plot.ramp === 'true') { + let bars = {} + plot.customs.forEach(item => { + if (!item.shape || !item.shape[0] || item.shape[0] === 'bar') { + bars[item.type] = true + } + }) + plot.colors.forEach(item => { + if (!colors.has(transfield[item.type])) { + if (bars[item.type]) { + colors.set(transfield[item.type], `l(90) 0:${item.color} 1:${item.color1}` ) + } else { + colors.set(transfield[item.type], `l(0) 0:${item.color} 1:${item.color1}` ) + } + } + }) + } else { + plot.colors.forEach(item => { + if (!colors.has(transfield[item.type])) { + colors.set(transfield[item.type], item.color) + } + }) + } } let axisIndex = 0 let hasBar = false + + plot.$paddingLeft = 30 + plot.$paddingRight = 30 plot.customs.forEach(item => { item.name = transfield[item.type] || item.type item.chartType = item.shape ? (item.shape[0] || 'bar') : 'bar' item.shape = item.shape ? (item.shape[1] || '') : '' - if (colors.get(item.type)) { - item.color = colors.get(item.type) + if (colors.has(item.name)) { + item.color = colors.get(item.name) } else { item.color = chartColors[colorIndex % limit] colorIndex++ } - if (item.chartType === 'bar' && !hasBar) { + if (item.chartType === 'bar') { + Bar_axis.push(item.type) hasBar = true - } else if (item.chartType === 'bar') { - item.chartType = 'line' - item.shape = 'smooth' } if (item.axis === 'true' && axisIndex < 2) { if (axisIndex === 0) { - item.axis = { grid: {style: { fill: color }}, title: { style: { fill: color } }, label: {style: { fill: color }} } + // item.axis = { grid: {line: { style: { stroke: color } }}, title: { style: { fill: color } }, label: {style: { fill: color }} } + item.axis = { label: {style: { fill: color }} } + if (item.title !== 'false') { + item.axis.title = { style: { fill: color } } + plot.$paddingLeft = 50 + } + if (plot.grid === 'hidden') { + item.axis.grid = null + } + if (plot.y_line === 'show') { + item.axis.line = {style: { stroke: '#D1D2CE' }} + } + if (plot.lineColor) { + if (item.axis.grid !== null) { + item.axis.grid = { line: { style: { stroke: plot.lineColor } }} + } + if (item.axis.line) { + item.axis.line = { style: { stroke: plot.lineColor } } + } + } + fields.unshift(item) } else { - item.axis = { grid: null, title: {style: { fill: color }}, label: {style: { fill: color }} } + item.axis = { grid: null, label: {style: { fill: color }} } + if (item.title !== 'false') { + item.axis.title = { style: { fill: color } } + plot.$paddingRight = 60 + } + if (plot.y_line === 'show') { + item.axis.line = {style: { stroke: '#D1D2CE' }} + } + if (plot.lineColor && item.axis.line) { + item.axis.line = { style: { stroke: plot.lineColor } } + } fields.splice(1, 0, item) } axisIndex++ @@ -426,15 +556,29 @@ } }) + let padding = [10, 30, 30, 30] + if (plot.mutilBar === 'overlap') { + Bar_axis = [] + } + + if (!Bar_axis.length) { + padding = [10, plot.$paddingRight, 30, plot.$paddingLeft] + } + const chart = new Chart({ container: card.uuid + 'canvas', autoFit: true, - height: plot.height || 400 + height: plot.height || 400, }) - chart.data(dv.rows) + // chart.axis(plot.Xaxis, { label: { style: { fill: color } }, tickLine: {style: { stroke: color }}, line: { style: { stroke: color } } }) - chart.axis(plot.Xaxis, { label: { style: { fill: color } }, line: { style: { fill: color } } }) + let xc = {label: { style: { fill: color } }} + if (plot.lineColor) { + xc.tickLine = {style: { stroke: plot.lineColor }} + xc.line = { style: { stroke: plot.lineColor } } + } + chart.axis(plot.Xaxis, xc) if (!hasBar) { chart.scale(plot.Xaxis, { @@ -465,16 +609,211 @@ nice: true }) - fields.forEach(item => { - chart.axis(item.name, item.axis) - - chart.scale(item.name, { - nice: true, - range: [0, 0.93] + let lablecfg = { + position: 'top', + offset: 2, + style: { + fill: '#fff' + } + } + + if (plot.label === 'top') { + lablecfg.offset = -5 + lablecfg.style.textBaseline = 'top' + } else if (plot.label === 'middle') { + lablecfg.position = 'middle' + lablecfg.offset = 0 + } else if (plot.label === 'bottom') { + lablecfg.position = 'bottom' + lablecfg.offset = 0 + } else if (plot.label === 'true') { + lablecfg.style.fill = color + } + + if (Bar_axis.length) { + const view1 = chart.createView({ + region: { + start: { x: 0, y: 0 }, + end: { x: 1, y: 1 } + }, + padding + }) + const dst = new DataSet() + const dvt = dst.createView().source(data) + + dvt.transform({ + type: 'fold', + fields: [...Bar_axis], + key: 'key', + value: 'value' + }) + + dvt.transform({ + type: 'map', + callback(row) { + row.key = transfield[row.key] || row.key + return row + }, }) - if (item.chartType === 'bar') { - let _chart = chart + view1.data(dvt.rows) + view1.scale('value', { + nice: true, + range: [0, 0.9] + }) + + let yc = {label: { style: { fill: color } }} + if (plot.grid === 'hidden') { + yc.grid = null + } + if (plot.y_line === 'show') { + yc.line = {style: { stroke: '#D1D2CE' }} + } + if (plot.lineColor) { + if (yc.grid !== null) { + yc.grid = { line: { style: { stroke: plot.lineColor } }} + } + if (yc.line) { + yc.line = { style: { stroke: plot.lineColor } } + } + } + view1.axis('value', yc) + + view1.legend(false) + + if (plot.mutilBar !== 'stack') { + let _chart = view1 + .interval() + .position(`${plot.Xaxis}*value`) + .adjust([ + { + type: 'dodge', + marginRatio: 0 + } + ]) + .shape(plot.shape || 'rect') + .tooltip(`${plot.Xaxis}*value*key`, (name, value, key) => { + if (plot.show === 'percent') { + value = value + '%' + } + return { + name: key, + value: value + } + }) + + if (plot.colors && plot.colors.length > 0) { + let limit = chartColors.length + _chart.color('key', (key) => { + if (colors.has(key)) { + return colors.get(key) + } else { + colorIndex++ + return chartColors[(colorIndex - 1) % limit] + } + }) + } else { + _chart.color('key') + } + if (plot.label !== 'false') { + _chart.label('value*key', (value, key) => { + if (plot.show === 'percent') { + value = value + '%' + } + + if (plot.label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { + lablecfg.style.fill = colors.get(key) + } + return { + content: value, + ...lablecfg + } + }) + } + + if (plot.barSize || plot.correction) { + _chart.size(plot.barSize || 35) + } + if (plot.barRadius) { + _chart.style({ radius: [plot.barRadius, plot.barRadius, 0, 0] }) + } + } else if (plot.mutilBar === 'stack') { + let _chart = view1 + .interval() + .position(`${plot.Xaxis}*value`) + .adjust('stack') + .shape(plot.shape || 'rect') + .tooltip(`${plot.Xaxis}*value*key`, (name, value, type) => { + if (plot.show === 'percent') { + value = value + '%' + } + return { + name: type, + value: value + } + }) + + if (plot.colors && plot.colors.length > 0) { + let limit = chartColors.length + _chart.color('key', (key) => { + if (colors.has(key)) { + return colors.get(key) + } else { + colorIndex++ + return chartColors[(colorIndex - 1) % limit] + } + }) + } else { + _chart.color('key') + } + if (plot.label !== 'false') { + _chart.label('value*key', (value, key) => { + if (plot.show === 'percent') { + value = value + '%' + } + + if (plot.label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { + lablecfg.style.fill = colors.get(key) + } + + return { + content: value, + ...lablecfg + } + }) + } + + if (plot.barSize || plot.correction) { + _chart.size(plot.barSize || 35) + } + if (plot.barRadius) { + _chart.style({ radius: [plot.barRadius, plot.barRadius, 0, 0] }) + } + } + } + + const view2 = chart.createView({ + region: { + start: { x: 0, y: 0 }, + end: { x: 1, y: 1 } + }, + padding + }) + + view2.data(dv.rows) + + view2.legend(false) + + fields.forEach(item => { + if (item.chartType === 'bar' && !Bar_axis.length) { + view2.axis(item.name, item.axis) + + view2.scale(item.name, { + nice: true, + range: [0, 0.9] + }) + + let _chart = view2 .interval() .position(`${plot.Xaxis}*${item.name}`) .color(item.color) @@ -492,21 +831,35 @@ if (plot.barSize) { _chart.size(plot.barSize || 35) } - if (item.label === 'true') { + if (item.label !== 'false') { _chart.label(item.name, (value) => { if (plot.show === 'percent') { value = value + '%' } + + if (plot.label === 'true' && plot.labelColor === 'custom') { + lablecfg.style.fill = item.color + } return { content: value, - style: { - fill: color - } + ...lablecfg } }) } + if (plot.barRadius) { + _chart.style({ radius: [plot.barRadius, plot.barRadius, 0, 0] }) + } } else if (item.chartType === 'line') { - let _chart = chart + if (!Bar_axis.length) { + view2.axis(item.name, item.axis) + } else { + view2.axis(item.name, { grid: null, title: null, label: null }) + } + view2.scale(item.name, { + nice: true, + range: [0, 0.9] + }) + let _chart = view2 .line() .position(`${plot.Xaxis}*${item.name}`) .color(item.color) @@ -521,15 +874,20 @@ } }) - if (item.label === 'true') { + if (item.label !== 'false') { _chart.label(item.name, (value) => { if (plot.show === 'percent') { value = value + '%' } + let _color = color + + if (plot.labelColor === 'custom') { + _color = item.color + } return { content: value, style: { - fill: color + fill: _color } } }) @@ -546,6 +904,14 @@ } }) + if (plot.interaction && plot.interaction.length) { + plot.interaction.forEach(t => { + if (t === 'element-active' || t === 'element-highlight') { + chart.interaction(t) + } + }) + } + chart.render() } @@ -554,10 +920,14 @@ */ barrender = () => { const { card } = this.state - let plot = {...card.plot, height: card.plot.height - 80} - let color = plot.color || 'rgba(0, 0, 0, 0.85)' + let plot = {...card.plot} + let color = plot.color || 'rgba(0, 0, 0, 0.65)' let X_axis = plot.Xaxis || 'x' let Y_axis = plot.Yaxis || ['y'] + + if (card.plot.title || card.search.length > 0) { + plot.height = card.plot.height - 70 + } let data = this.getdata(X_axis, Y_axis) @@ -594,15 +964,36 @@ autoFit: true, height: plot.height || 400 }) - + chart.data(dv.rows) - chart.axis(X_axis, { label: { style: { fill: color } }, line: { style: { fill: color } } }) - chart.axis('value', { grid: { style: { fill: color } }, label: { style: { fill: color } } }) + // chart.axis(X_axis, { label: { style: { fill: color } }, tickLine: {style: { stroke: color }}, line: { style: { stroke: color } } }) + // chart.axis('value', { grid: { line: { style: { stroke: color } }}, label: { style: { fill: color } } }) + + let xc = {label: { style: { fill: color } }} + let yc = {label: { style: { fill: color } }} + if (plot.grid === 'hidden') { + yc.grid = null + } + if (plot.y_line === 'show') { + yc.line = {style: { stroke: '#D1D2CE' }} + } + if (plot.lineColor) { + xc.tickLine = {style: { stroke: plot.lineColor }} + xc.line = { style: { stroke: plot.lineColor } } + if (yc.grid !== null) { + yc.grid = { line: { style: { stroke: plot.lineColor } }} + } + if (yc.line) { + yc.line = { style: { stroke: plot.lineColor } } + } + } + chart.axis(X_axis, xc) + chart.axis('value', yc) chart.scale('value', { nice: true, - range: [0, 0.93] + range: [0, 0.9] }) if (!plot.legend || plot.legend === 'hidden') { @@ -622,10 +1013,6 @@ }) } - if (plot.transpose === 'true') { - chart.coordinate().transpose() - } - if (plot.coordinate === 'polar') { chart.coordinate('polar', { innerRadius: 0.1, @@ -635,13 +1022,60 @@ let colors = new Map() let colorIndex = 0 + let lablecfg = { + position: 'top', + offset: 2, + style: { + fill: '#fff' + } + } + + if (plot.label === 'top') { + lablecfg.offset = -5 + lablecfg.style.textBaseline = 'top' + } else if (plot.label === 'middle') { + lablecfg.position = 'middle' + lablecfg.offset = 0 + } else if (plot.label === 'bottom') { + lablecfg.position = 'bottom' + lablecfg.offset = 0 + } else if (plot.label === 'true') { + lablecfg.style.fill = color + } + + if (plot.transpose === 'true') { + chart.coordinate().transpose() + if (plot.label === 'top') { + delete lablecfg.style.textBaseline + lablecfg.position = 'right' + lablecfg.offset = -3 + lablecfg.style.textAlign = 'end' + } else if (plot.label === 'middle') { + lablecfg.position = 'middle' + lablecfg.offset = 0 + } else if (plot.label === 'bottom') { + lablecfg.position = 'left' + lablecfg.offset = 2 + } else if (plot.label === 'true') { + lablecfg.position = 'right' + lablecfg.offset = 2 + } + } if (plot.colors && plot.colors.length > 0) { - plot.colors.forEach(item => { - if (!colors.has(transfield[item.type])) { - colors.set(transfield[item.type], item.color) - } - }) + if (plot.ramp === 'true') { + plot.colors.forEach(item => { + if (!colors.has(transfield[item.type])) { + colors.set(transfield[item.type], `l(90) 0:${item.color} 1:${item.color1}` ) + } + }) + } else { + plot.colors.forEach(item => { + if (!colors.has(transfield[item.type])) { + colors.set(transfield[item.type], item.color) + } + }) + } } if (plot.adjust !== 'stack') { @@ -668,32 +1102,47 @@ if (plot.colors && plot.colors.length > 0) { let limit = chartColors.length _chart.color('key', (key) => { - if (colors.get(key)) { + if (colors.has(key)) { return colors.get(key) } else { - colors.set(key, chartColors[colorIndex % limit]) colorIndex++ + return chartColors[(colorIndex - 1) % limit] } }) } else { _chart.color('key') } - if (plot.label === 'true') { - _chart.label('value', (value) => { + if (plot.label !== 'false') { + _chart.label('value*key', (value, key) => { if (plot.show === 'percent') { value = value + '%' } + + if (plot.label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { + lablecfg.style.fill = colors.get(key) + } + return { content: value, - style: { - fill: color - } + ...lablecfg } }) } if (plot.barSize || plot.correction) { _chart.size(plot.barSize || 35) + } + if (plot.selectColor) { + _chart.state({ + selected: { + style: { + fill: plot.selectColor, + } + } + }) + } + if (plot.barRadius) { + _chart.style({ radius: [plot.barRadius, plot.barRadius, 0, 0] }) } } else if (plot.adjust === 'stack') { let _chart = chart @@ -714,26 +1163,28 @@ if (plot.colors && plot.colors.length > 0) { let limit = chartColors.length _chart.color('key', (key) => { - if (colors.get(key)) { + if (colors.has(key)) { return colors.get(key) } else { - colors.set(key, chartColors[colorIndex % limit]) colorIndex++ + return chartColors[(colorIndex - 1) % limit] } }) } else { _chart.color('key') } - if (plot.label === 'true') { - _chart.label('value', (value) => { + if (plot.label !== 'false') { + _chart.label('value*key', (value, key) => { if (plot.show === 'percent') { value = value + '%' } + + if (plot.label === 'true' && plot.labelColor === 'custom' && colors.has(key)) { + lablecfg.style.fill = colors.get(key) + } return { content: value, - style: { - fill: color - } + ...lablecfg } }) } @@ -741,6 +1192,24 @@ if (plot.barSize || plot.correction) { _chart.size(plot.barSize || 35) } + if (plot.selectColor) { + _chart.state({ + selected: { + style: { + fill: plot.selectColor, + } + } + }) + } + if (plot.barRadius) { + _chart.style({ radius: [plot.barRadius, plot.barRadius, 0, 0] }) + } + } + + if (plot.interaction && plot.interaction.length) { + plot.interaction.forEach(t => { + chart.interaction(t) + }) } chart.render() @@ -751,13 +1220,15 @@ updateComponent = (component) => { const card = fromJS(this.state.card).toJS() - let refresh = false if (!is(fromJS(component.plot), fromJS(card.plot)) || !is(fromJS(component.style), fromJS(card.style))) { let _element = document.getElementById(card.uuid + 'canvas') if (_element) { _element.innerHTML = '' } - refresh = true + this.$timer && clearTimeout(this.$timer) + this.$timer = setTimeout(() => { + this.viewrender() + }, 150) } component.width = component.plot.width @@ -765,12 +1236,6 @@ this.setState({ card: component - }, () => { - if (refresh) { - setTimeout(() => { - this.viewrender() - }, 100) - } }) this.props.updateConfig(component) } @@ -875,15 +1340,15 @@ } render() { - const { card } = this.state + const { card, appType } = this.state + let _style = resetStyle(card.style) return ( - <div className="menu-line-chart-edit-box" style={{...card.style, height: card.plot.height || 400}} onClick={this.clickComponent} id={card.uuid}> - <NormalHeader config={card} updateComponent={this.updateComponent}/> + <div className="menu-line-chart-edit-box" style={{..._style, height: card.plot.height || 400}} onClick={this.clickComponent} id={card.uuid}> <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ <div className="mk-popover-control"> - <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> - <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" /> + {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch} type="plus-circle" /> : null} + {appType !== 'mob' ? <Icon className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton} type="plus-square" /> : null} <ChartCompileForm config={card} dict={this.state.dict} plotchange={this.updateComponent}/> <CopyComponent type="line" card={card}/> <PasteComponent config={card} options={['action', 'search', 'form']} updateConfig={this.updateComponent} /> @@ -897,12 +1362,13 @@ } trigger="hover"> <Icon type="tool" /> </Popover> - <ActionComponent + {card.plot.title || card.search.length > 0 ? <NormalHeader config={card} updateComponent={this.updateComponent}/> : null} + <div className="canvas" id={card.uuid + 'canvas'}></div> + {appType !== 'mob' ? <ActionComponent type="chart" config={card} updateaction={this.updateComponent} - /> - <div className="canvas" id={card.uuid + 'canvas'}></div> + /> : null} </div> ) } -- Gitblit v1.8.0