| | |
| | | return myChart |
| | | } |
| | | |
| | | const colorX = '#c7e7ff' |
| | | const colorY = '#7696c5' |
| | | |
| | | // 系统首页图 |
| | | export function barTop(data, colorArr) { |
| | | var salvProName = ['x'] |
| | |
| | | } |
| | | return option |
| | | } |
| | | |
| | | // 看板头部背景条 |
| | | export function kbTop() { |
| | | var getXY = ['学前教育系'] // 数据点名称 |
| | | var getRS = [255] // 学生满意度 |
| | | |
| | | var max = Math.ceil(255 / 10) * 10 |
| | | |
| | | const option = { |
| | | backgroundColor: 'transparent', |
| | | grid: { |
| | | left: '0%', |
| | | right: '0%', |
| | | bottom: '0%', |
| | | top: '0%' |
| | | // containLabel: true |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'value', |
| | | show: false, |
| | | axisLabel: { |
| | | margin: 5, |
| | | color: '#666666', |
| | | textStyle: { |
| | | fontSize: '13' |
| | | } |
| | | }, |
| | | min: 0, |
| | | max: max, // 计算最大值 |
| | | interval: max / 5, // 平均分为5份 |
| | | splitNumber: 5, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: '#D1D1D1' |
| | | } |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#333333' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | } |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'category', |
| | | inverse: true, |
| | | show: false, |
| | | axisLabel: { |
| | | textStyle: { |
| | | color: '#6F84BD', |
| | | fontSize: '13' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: false |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | axisLine: { |
| | | show: false, |
| | | lineStyle: { |
| | | color: '#333333' |
| | | } |
| | | }, |
| | | data: getXY |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '值', |
| | | type: 'bar', |
| | | zlevel: 1, |
| | | xAxisIndex: 0, |
| | | label: { |
| | | show: false, |
| | | position: 'right', |
| | | color: '#6F84BD', |
| | | fontSize: 14, |
| | | offset: [10, 0] |
| | | }, |
| | | itemStyle: { |
| | | normal: { |
| | | barBorderRadius: [10, 10, 10, 10], |
| | | color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{ |
| | | offset: 0, |
| | | color: '#91ddec' // 0% 处的颜色 |
| | | }, { |
| | | offset: 1, |
| | | color: '#09d8f2' // 100% 处的颜色 |
| | | }], false) |
| | | } |
| | | }, |
| | | barWidth: 15, |
| | | data: getRS |
| | | } |
| | | ] |
| | | } |
| | | |
| | | return option |
| | | } |
| | | |
| | | // 车间质量左下周不良 |
| | | export function line02() { |
| | | return { |
| | | backgroundColor: 'transparent', |
| | | tooltip: {}, |
| | | // title: { |
| | | // show: false, |
| | | // text: '订单完成总数', |
| | | // left: '50%', |
| | | // top: '5%', |
| | | // textAlign: 'center', |
| | | // textStyle: { |
| | | // // color: '#fff', |
| | | // color: '#00ffff', |
| | | // fontSize: '20', |
| | | // fontWeight: 'bolder' |
| | | // } |
| | | // }, |
| | | grid: { |
| | | left: '0%', |
| | | right: '2%', |
| | | bottom: '5%', |
| | | top: '8%', |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | show: false, |
| | | itemGap: 50, |
| | | data: ['注册总量', '最新注册量'], |
| | | textStyle: { |
| | | color: '#f9f9f9', |
| | | borderColor: '#fff' |
| | | } |
| | | }, |
| | | xAxis: [{ |
| | | type: 'category', |
| | | boundaryGap: true, |
| | | axisLabel: { |
| | | interval: 0, |
| | | formatter: '{value}', |
| | | fontSize: 14, |
| | | margin: 20, |
| | | textStyle: { |
| | | color: colorX |
| | | } |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#032c58' |
| | | } |
| | | }, |
| | | splitLine: { |
| | | show: false, |
| | | lineStyle: { |
| | | color: '#032c58' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'] |
| | | }], |
| | | yAxis: [ |
| | | { |
| | | // max: 800, |
| | | boundaryGap: false, |
| | | splitNumber: 4, |
| | | type: 'value', |
| | | axisLabel: { |
| | | textStyle: { |
| | | fontSize: 14, |
| | | color: colorY |
| | | } |
| | | }, |
| | | // name: '单', |
| | | // nameTextStyle: { |
| | | // color: colorY, |
| | | // fontSize: 14, |
| | | // lineHeight: 20 |
| | | // }, |
| | | splitLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: '#032c58' |
| | | } |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: '#032c58' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | show: true |
| | | } |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '注册总量', |
| | | type: 'line', |
| | | // smooth: true, //是否平滑曲线显示 |
| | | // symbol:'circle', // 默认是空心圆(中间是白色的),改成实心圆 |
| | | showAllSymbol: true, |
| | | symbol: 'emptyCircle', |
| | | symbolSize: 6, |
| | | lineStyle: { |
| | | normal: { |
| | | color: '#28ffb3' // 线条颜色 |
| | | }, |
| | | borderColor: '#f0f' |
| | | }, |
| | | label: { |
| | | show: true, |
| | | position: 'top', |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#28ffb3' |
| | | |
| | | } |
| | | }, |
| | | tooltip: { |
| | | show: false |
| | | }, |
| | | areaStyle: { // 区域填充样式 |
| | | normal: { |
| | | // 线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。 |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ |
| | | offset: 0, |
| | | color: 'rgba(0,154,120,1)' |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: 'rgba(0,0,0, 0)' |
| | | } |
| | | ], false), |
| | | shadowColor: 'rgba(53,142,215, 0.9)', // 阴影颜色 |
| | | shadowBlur: 20 // shadowBlur设图形阴影的模糊大小。配合shadowColor,shadowOffsetX/Y, 设置图形的阴影效果。 |
| | | } |
| | | }, |
| | | data: [393, 438, 485, 631, 689, 824, 700] |
| | | // data: [600 + Math.floor(Math.random() * 100), 600 + Math.floor(Math.random() * 100), 600 + Math.floor(Math.random() * 100), 600 + Math.floor(Math.random() * 100), 600 + Math.floor(Math.random() * 100), 600 + Math.floor(Math.random() * 100), 600 + Math.floor(Math.random() * 100)] |
| | | } |
| | | // { |
| | | // name: '最新注册量', |
| | | // type: 'bar', |
| | | // barWidth: 20, |
| | | // tooltip: { |
| | | // show: false |
| | | // }, |
| | | // label: { |
| | | // show: true, |
| | | // position: 'top', |
| | | // textStyle: { |
| | | // color: '#fff', |
| | | // } |
| | | // }, |
| | | // itemStyle: { |
| | | // normal: { |
| | | // // barBorderRadius: 5, |
| | | // // color: new echarts.graphic.LinearGradient( |
| | | // // 0, 0, 0, 1, |
| | | // // [{ |
| | | // // offset: 0, |
| | | // // color: '#14c8d4' |
| | | // // }, |
| | | // // { |
| | | // // offset: 1, |
| | | // // color: '#43eec6' |
| | | // // } |
| | | // // ] |
| | | // // ) |
| | | // color: function (params) { |
| | | // var colorList = ['#0ec1ff', '#10cdff', '#12daff', '#15ebff', '#17f8ff', '#1cfffb', '#1dfff1']; |
| | | // return colorList[params.dataIndex]; |
| | | // } |
| | | // } |
| | | // }, |
| | | // data: [200, 382, 102, 267, 186, 315, 316] |
| | | // } |
| | | ] |
| | | } |
| | | } |
| | | |
| | | // 车间质量右上 日不良 |
| | | export function bar04() { |
| | | const data = [ |
| | | { |
| | | name: '产线一', |
| | | value: 100 |
| | | }, |
| | | { |
| | | name: '产线二', |
| | | value: 200 |
| | | }, |
| | | { |
| | | name: '产线三', |
| | | value: 64 |
| | | }, |
| | | { |
| | | name: '产线四', |
| | | value: 44 |
| | | } |
| | | ] |
| | | const getSymbolData = (data) => { |
| | | const arr = [] |
| | | for (var i = 0; i < data.length; i++) { |
| | | arr.push({ |
| | | value: data[i].value, |
| | | symbolPosition: 'end' |
| | | }) |
| | | } |
| | | return arr |
| | | } |
| | | |
| | | const option = { |
| | | backgroundColor: 'transparent', |
| | | grid: { |
| | | top: '0%', |
| | | bottom: 0, |
| | | right: '4%', |
| | | left: -20, |
| | | containLabel: true |
| | | }, |
| | | xAxis: { |
| | | show: false |
| | | }, |
| | | yAxis: [{ |
| | | triggerEvent: true, |
| | | show: true, |
| | | inverse: true, |
| | | data: data.map(r => r.name), |
| | | axisLine: { |
| | | show: false |
| | | }, |
| | | splitLine: { |
| | | show: false |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | |
| | | axisLabel: { |
| | | show: true, |
| | | interval: 0, |
| | | color: '#fff', |
| | | align: 'left', |
| | | margin: 60, |
| | | formatter: function(value, index) { |
| | | return '{title|' + value + '}' |
| | | }, |
| | | rich: { |
| | | title: { |
| | | width: 50, |
| | | align: 'right', |
| | | fontSize: 18 |
| | | } |
| | | } |
| | | } |
| | | }, { |
| | | triggerEvent: true, |
| | | show: true, |
| | | inverse: true, |
| | | data: data.map(r => r.name), |
| | | axisLine: { |
| | | show: false |
| | | }, |
| | | splitLine: { |
| | | show: false |
| | | }, |
| | | axisTick: { |
| | | show: false |
| | | }, |
| | | axisLabel: { |
| | | interval: 0, |
| | | shadowOffsetX: '-20px', |
| | | color: ['#fff'], |
| | | align: 'left', |
| | | verticalAlign: 'center', |
| | | lineHeight: 40, |
| | | fontSize: 18, |
| | | formatter: function(value, index) { |
| | | return data[index].value + '' |
| | | } |
| | | |
| | | } |
| | | }], |
| | | series: [ |
| | | { |
| | | name: 'XXX', |
| | | type: 'pictorialBar', |
| | | symbol: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAMAAADWZboaAAAAZlBMVEUAAABe3uVe3+Vf3uVf3+Zf3uVg3+Zg3+Zf3+Vi4OZh4OZg3+Z86/Bh3+Zi4Odj4Odi4OZ86/B76/B86/Bj4ed56+9x5+xn4umB7/N87PB36e+A7/N+7fF/7vJ/7vJ+7fGA7/OB7/PReX+lAAAAIXRSTlMABQkVDREmIhk3MR10LEFFPHh7cUprXE35h2XnqMLAp+mHAG9cAAAB5ElEQVRIx83WjU7CMBQFYIoiKMqU/XUboHv/l/Tce7t2XamDNSacETEmX86tlK2rx4py150o+MstMBLwWRfHKo6JCVxLnvmFGBjFQ58oF1//sUZhGy/ClSTWObgnL4O+bkeN4nY2okfNMbkRt9/vtxz8InoTsWplJSCzFxPmO8+GpSIByX3YQAuGDWtRKhKjCnxDXhF6Z4yxnZ20Wgko7BMRDmxtSGVaI4kdTIgb+zTYoJQlIMlDlmUFgrcDWWC201qSayqlTkiCddWWeV62VU0YlnpRi9VOKaSUsiyq/N0krwq2Ugt7lVpZl5BfHNiytjagMi+XYp0kCR45hMlivVQrE/uU5pXSrCB5bM6d1t2lOZItMqmliT3q5uVxqxzyW/ccfYLNKx7ZTeykMvNyac2yt2Fbc61MHLSC0rwoxbiNdlQ3GBm1NLHQsHUrtEXppR/ljNpW6DbSCoqlFiVoN6YdaFlgsSFVPs1BdT8OaB5QyQzVcaqWDows/zepxR8ObLglTrdtCRVuRNj4Rrxh+//0ke2f8KVL+Kon3GCSbmsJN9OUW3j6g0Ns+LgCij2u0h+Sghc8mlMPBMgdx5DFh59VmOVHrvmDnoNxCz3J7MFWsMuaLyR089xz/xhlfijvwutR8gv3zk6BLUUeCgAAAABJRU5ErkJggg==', |
| | | symbolSize: [50, 50], |
| | | symbolOffset: [20, 0], |
| | | z: 12, |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | data: getSymbolData(data) |
| | | }, |
| | | { |
| | | name: '条', |
| | | type: 'bar', |
| | | showBackground: true, |
| | | // barBorderRadius: 30, |
| | | yAxisIndex: 0, |
| | | data: data, |
| | | barWidth: 10, |
| | | // align: left, |
| | | itemStyle: { |
| | | normal: { |
| | | color: 'rgba(41, 162, 245, 1)', |
| | | barBorderRadius: 10 |
| | | } |
| | | // color: '#A71A2B', |
| | | // barBorderRadius: 4, |
| | | } |
| | | // label: { |
| | | // normal: { |
| | | // color: '#fff', |
| | | // show: true, |
| | | // position: ["-80px", 0], |
| | | // textStyle: { |
| | | // fontSize: 16 |
| | | // }, |
| | | // formatter: function(a, b) { |
| | | // return a.name |
| | | // } |
| | | // } |
| | | // } |
| | | }] |
| | | } |
| | | |
| | | return option |
| | | } |
| | | |
| | | // 车间质量右下 周不良 |
| | | export function pie02() { |
| | | const bgColor = 'transparent' |
| | | const title = '总不良数' |
| | | const color = ['#0E7CE2', '#FF8352', '#E271DE', '#F8456B', '#00FFFF', '#4AEAB0'] |
| | | const echartData = [ |
| | | { |
| | | name: '产线一', |
| | | value: '456' |
| | | }, |
| | | { |
| | | name: '产线二', |
| | | value: '123' |
| | | }, |
| | | { |
| | | name: '产线三', |
| | | value: '312' |
| | | }, |
| | | { |
| | | name: '产线四', |
| | | value: '222' |
| | | } |
| | | ] |
| | | |
| | | const formatNumber = function(num) { |
| | | const reg = /(?=(\B)(\d{3})+$)/g |
| | | return num.toString().replace(reg, ',') |
| | | } |
| | | const total = echartData.reduce((a, b) => { |
| | | return a + b.value * 1 |
| | | }, 0) |
| | | |
| | | const option = { |
| | | backgroundColor: bgColor, |
| | | color: color, |
| | | // tooltip: { |
| | | // trigger: 'item' |
| | | // }, |
| | | title: [{ |
| | | text: '{name|' + title + '}\n{val|' + formatNumber(total) + '}', |
| | | top: 'center', |
| | | left: 'center', |
| | | textStyle: { |
| | | rich: { |
| | | name: { |
| | | fontSize: 18, |
| | | fontWeight: 'normal', |
| | | color: '#fff', |
| | | padding: [10, 0] |
| | | }, |
| | | val: { |
| | | fontSize: 32, |
| | | fontWeight: 'bold', |
| | | color: '#fff' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // { |
| | | // text: '单位:个', |
| | | // top: 20, |
| | | // left: 20, |
| | | // textStyle: { |
| | | // fontSize: 14, |
| | | // color: '#666666', |
| | | // fontWeight: 400 |
| | | // } |
| | | // } |
| | | ], |
| | | // legend: { |
| | | // orient: 'vertical', |
| | | // icon: 'rect', |
| | | // x: '80%', |
| | | // y: 'center', |
| | | // itemWidth: 12, |
| | | // itemHeight: 12, |
| | | // align: 'left', |
| | | // textStyle: { |
| | | // rich: { |
| | | // name: { |
| | | // fontSize: 12 |
| | | // }, |
| | | // value: { |
| | | // fontSize: 16, |
| | | // padding: [0, 5, 0, 15] |
| | | // }, |
| | | // unit: { |
| | | // fontSize: 12 |
| | | // } |
| | | // } |
| | | // }, |
| | | // formatter: function(name) { |
| | | // let res = echartData.filter(v => v.name === name); |
| | | // res = res[0] || {}; |
| | | // let unit = res.unit || ''; |
| | | // return '{name|' + name + '} {value|' + res.value + '}{unit|' + unit + '}' |
| | | // } |
| | | // // data: legendName |
| | | // }, |
| | | series: [ |
| | | { |
| | | type: 'pie', |
| | | radius: ['35%', '50%'], |
| | | center: ['50%', '50%'], |
| | | data: echartData, |
| | | hoverAnimation: false, |
| | | itemStyle: { |
| | | normal: { |
| | | borderColor: bgColor, |
| | | borderWidth: 2 |
| | | } |
| | | }, |
| | | labelLine: { |
| | | normal: { |
| | | // showAbove: false, |
| | | length: 20, |
| | | length2: 45, |
| | | lineStyle: { |
| | | color: '#fff' |
| | | } |
| | | } |
| | | }, |
| | | label: { |
| | | normal: { |
| | | formatter: params => { |
| | | return ( |
| | | '{icon|●}{name|' + params.name + '}{value|' + |
| | | formatNumber(params.value) + '}' |
| | | ) |
| | | }, |
| | | padding: [0, -50, 25, -50], |
| | | rich: { |
| | | icon: { |
| | | fontSize: 16, |
| | | color: 'red' |
| | | }, |
| | | name: { |
| | | fontSize: 16, |
| | | padding: [0, 10, 0, 4], |
| | | color: '#fff' |
| | | }, |
| | | value: { |
| | | fontSize: 18, |
| | | fontWeight: 'bold', |
| | | color: '#fff' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }] |
| | | } |
| | | return option |
| | | } |