-
+
+
汽车标准制修订情况
+
+ - 总体
+
+
+
+ {{item}}
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/screen/util/BarAndLineOptions.js b/src/views/screen/util/BarAndLineOptions.js
new file mode 100644
index 0000000..5fc0700
--- /dev/null
+++ b/src/views/screen/util/BarAndLineOptions.js
@@ -0,0 +1,250 @@
+import * as echarts from 'echarts'
+
+import { deepMerge } from '../../../utils/util'
+
+
+export const BarAndLineOptions = {
+ color: [
+ {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ {
+ offset: 0, color: '#4471EF' // 0% 处的颜色
+ },
+ {
+ offset: 0.8, color: '#2D419A' // 100% 处的颜色
+ },
+ {
+ offset: 1, color: 'transparent' // 100% 处的颜色
+ }
+ ],
+ global: false // 缺省为 false
+ },
+ {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ {
+ offset: 0, color: '#00D8F1' // 0% 处的颜色
+ },
+ {
+ offset: 0.9, color: '#4679B1' // 100% 处的颜色
+ },
+ {
+ offset: 1, color: 'transparent' // 100% 处的颜色
+ }
+ ],
+ global: false // 缺省为 false
+ },
+ '#6CFBCE'],
+ tooltip: {
+ trigger: 'axis',
+ formatter: params => {
+ // 获取xAxis data中的数据
+ let dataStr = ''
+ params.forEach(item => {
+ console.log('--item--------', item)
+ let color = ''
+ if(typeof item.color === 'string') {
+ color = item.color
+ } else {
+ color = item.color.colorStops[0].color
+ }
+ if(item.seriesType === 'bar') {
+ dataStr += `
+
+
+ ${item.seriesName}
+ ${item.value}
+
+
`
+ } else {
+ let valueText = item.value === undefined ? '-' : `${item.value}%`
+ dataStr += `
+
+
+ ${item.seriesName}
+ ${valueText}
+
+
`
+ }
+ })
+ return dataStr
+ },
+ borderWidth: 0,
+ //提示框浮层的背景颜色
+ backgroundColor: '#233062',
+ //额外附加到浮层的 css 样式。如下为浮层添加阴影的示例:
+ extraCssText: 'box-shadow: 0 0 4px #7599E8 inset;'
+ },
+
+ legend: {
+ //图例的公用文本样式。
+ textStyle: {
+ color: '#7599E8'
+ },
+ lineStyle: {
+ opacity: 0
+ },
+ itemWidth: 14,
+ // itemHeight: 14,
+ right: '3%',
+ top: '1%'
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ toolbox: {},
+ xAxis: {
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#7599E8'
+ }
+ },
+ axisLabel: {
+ show: true,
+ color: '#7FA6FB',
+ interval: 0,
+ formatter: function(params) {
+ let newParamsName = '' // 最终拼接成的字符串
+ let paramsNameNumber = params.length // 实际标签的个数
+ let provideNumber = 8 // 每行能显示的字的个数
+ let rowNumber = Math.ceil(paramsNameNumber / provideNumber) // 换行的话,需要显示几行,向上取整
+ /**
+ * 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
+ */
+ // 条件等同于rowNumber>1
+ if (paramsNameNumber > provideNumber) {
+ /** 循环每一行,p表示行 */
+ for (let p = 0; p < rowNumber; p++) {
+ let tempStr = ''// 表示每一次截取的字符串
+ let start = p * provideNumber // 开始截取的位置
+ let end = start + provideNumber // 结束截取的位置
+ // 此处特殊处理最后一行的索引值
+ if (p === rowNumber - 1) {
+ // 最后一次不换行
+ tempStr = params.substring(start, paramsNameNumber)
+ } else {
+ // 每一次拼接字符串并换行
+ tempStr = params.substring(start, end) + '\n'
+ }
+ newParamsName += tempStr // 最终拼成的字符串
+ }
+ } else {
+ // 将旧标签的值赋给新标签
+ newParamsName = params
+ }
+ return newParamsName
+ }
+ },
+ type: 'category',
+ boundaryGap: ['30%', '20%'],
+ // 刻度线设置
+ axisTick: {
+ show: false
+ },
+ // TODO 需要自己扩展的
+ data: []
+ },
+ yAxis: [
+ {
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#7599E8'
+ }
+ },
+ axisLabel: {
+ show: true,
+ color: '#7FA6FB'
+ },
+ splitLine: {
+ lineStyle: {
+ color: '#7599E8',
+ type: 'dashed'
+ }
+ },
+ type: 'value',
+ nameTextStyle: {
+ color: '#7FA6FB'
+ }
+ },
+ {
+ type: 'value',
+ // min: 0,
+ // max: 100,
+ axisLabel: {
+ show: false,
+ formatter: '{value} %',
+ },
+ splitLine: {
+ show: false
+ }
+ }
+ ],
+ series: [
+ {
+ name:'应完成项目数',
+ // data: this.yData[0],
+ type: 'bar',
+ barMaxWidth:20,
+ itemStyle:{
+ borderRadius:[4,4,0,0]
+ }
+ },
+ {
+ name:'实际完成项目数',
+ // data: this.yData[1],
+ type: 'bar',
+ barMaxWidth:20,
+ itemStyle:{
+ borderRadius:[4,4,0,0]
+ }
+ },
+ {
+ name:'实际完成比例',
+ // data: this.yData[2],
+ type: 'line',
+ yAxisIndex: 1,
+ showSymbol: false,
+ symbol: 'path://M 30 10 A 20 20 0 1 0 30 50 A 20 20 0 1 0 30 10 Z M 30 15 A 15 15 0 1 1 30 45 A 15 15 0 1 1 30 15 Z',
+ areaStyle: {
+ opacity: 0.8,
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+ {
+ offset: 0,
+ color: '#6CFBCE'
+ },
+ {
+ offset: 1,
+ color: '#1B2451'
+ }
+ ])
+ },
+ },
+ ]
+}
+
+// 生成柱折状图---制修订、各项目完成情况专用
+export function createBarAndLineChart(idName, option) {
+ const chartDom = document.getElementById(idName)
+ echarts.dispose(chartDom)
+ // debugger
+ let chartOption = deepMerge({}, BarAndLineOptions, option)
+ let myChart = echarts.init(chartDom)
+ chartOption && myChart.setOption(chartOption)
+ window.addEventListener('resize', () => {
+ myChart.resize()
+ })
+}
diff --git a/src/views/screen/util/BarOptions.js b/src/views/screen/util/BarOptions.js
index 67c88a2..74512d8 100644
--- a/src/views/screen/util/BarOptions.js
+++ b/src/views/screen/util/BarOptions.js
@@ -84,11 +84,11 @@ export const BarOptions = {
},
itemWidth: 14,
// itemHeight: 14,
- right: '2%'
+ right: '3%'
},
grid: {
left: '3%',
- right: '7%',
+ right: '4%',
bottom: '3%',
containLabel: true
},
@@ -175,7 +175,7 @@ export function createBarChart(idName, option) {
const chartDom = document.getElementById(idName)
echarts.dispose(chartDom)
// debugger
- let chartOption = deepMerge(BarOptions, option)
+ let chartOption = deepMerge({}, BarOptions, option)
let myChart = echarts.init(chartDom)
chartOption && myChart.setOption(chartOption)
window.addEventListener('resize', () => {
diff --git a/src/views/screen/util/LineOptions.js b/src/views/screen/util/LineOptions.js
index ac9ebdd..e2633bf 100644
--- a/src/views/screen/util/LineOptions.js
+++ b/src/views/screen/util/LineOptions.js
@@ -110,7 +110,7 @@ export function createLineChart(idName, option) {
const chartDom = document.getElementById(idName)
echarts.dispose(chartDom)
// debugger
- let chartOption = deepMerge(LineOptions, option)
+ let chartOption = deepMerge({}, LineOptions, option)
let myChart = echarts.init(chartDom)
chartOption && myChart.setOption(chartOption)
window.addEventListener('resize', () => {
diff --git a/src/views/screen/util/PieOptions.js b/src/views/screen/util/PieOptions.js
index d8bba4e..d14a601 100644
--- a/src/views/screen/util/PieOptions.js
+++ b/src/views/screen/util/PieOptions.js
@@ -74,7 +74,7 @@ export function createPieChart(idName, option) {
const chartDom = document.getElementById(idName)
echarts.dispose(chartDom)
// debugger
- let chartOption = deepMerge(PieOptions, option)
+ let chartOption = deepMerge({}, PieOptions, option)
console.log('-----chartOption-------', chartOption)
let myChart = echarts.init(chartDom)
chartOption && myChart.setOption(chartOption)