import echarts from "echarts" const rowLimit = (params, max) => { let result = '' //一行显示几个字 let rowMax = max let rowNumber = Math.ceil(params.length / rowMax) // 超过 3 个字换行 if (params.length > 3) { for (let p = 0; p < rowNumber; p++) { let tempStr = '' let start = p * rowMax let end = start + rowMax if (p == rowNumber - 1) { tempStr = params.substring(start, params.length); } else { tempStr = params.substring(start, end) + '\n' } result += tempStr } } else { result = params } return result } export const acceptOption1 = { // 图表标题 title: { show: true, text: '检测受理类型', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, grid: { top: '80px' }, xAxis: { type: 'category', data: ['理化', '微生物', '细胞活率', '残留检测', '细胞鉴别'], axisTick: { alignWithLabel: true }, axisLabel: { style: { fill: '#fff' }, formatter (params) { return rowLimit(params, 2) } }, axisLine: { lineStyle: { color: '#fff' } } // axisLabel: { // inside: true, // color: "#000", // }, // axisTick: { // show: true, // }, // axisLine: { // show: true, // }, // z: 10 }, yAxis: { type: 'value', name: '', nameTextStyle: { color: '#fff', fontSize: 14 }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff' } } }, series: [{ type: 'bar', name: '', data: [], barMaxWidth: '35px', itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ]), label: { show: true, position: 'top', textStyle: { color: '#fff', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } }, emphasis: { itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#2378f7" }, { offset: 0.7, color: "#2378f7" }, { offset: 1, color: "#83bff6" }, ]) } } }], tooltip: { show: true, trigger: 'axis' } } export const colors = [ '#d20962', '#f47721', '#7ac143', '#00a78e', '#00bce4', '#7d3f98', '#037ef3', '#f85a40', '#00c16e', '#12CBC4', '#b4a996', '#7552cc', '#67809f', '#f19066' ] export function* getRandomColor (shuffledColors) { let index = 0 while (index < shuffledColors.length) { yield shuffledColors[index] index++ } } let colorList = [] export const acceptOption = { title: { show: true, text: '检测类型', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, legend: { // type: 'scroll', orient: 'horizontal', show: true, left: 'center', bottom: 10, // right: 10, // top: 100, formatter (params) { let l = 7 if (params.length > l) { return params.substring(0, l) + '\n' + params.substring(l) } return params }, // formatter: ['{a|{name}}'].join('\n'), // textStyle: { // rich: { // a: { // width: 80, // overflow: 'break', // lineHeight: 12 // } // } // }, z: 3, itemWidth: 25, itemHeight: 14, itemGap: 10, data: [] }, series: [ { name: '任务完成情况', type: 'pie', radius: '55%', center: ['50%', '50%'], data: [], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' }, normal: { label: { show: true, position: 'outer', // formatter: `占比:{d}%\n\n\r{b}:{c}`, formatter: `{b}:{d}%`, fontSize: 14 }, labelLine: { show: true } } } } ], color: colorList, tooltip: { show: true, trigger: 'item', formatter: '任务情况
{b}:{c}
占比:{d}%' } } export const taskOption = { // 图表标题 title: { show: true, text: '检测任务情况', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, grid: { top: '80px', bottom: '30px' }, xAxis: { type: 'category', data: ['委托', '任务分配', '检测', '报告'], axisTick: { alignWithLabel: true }, axisLabel: { style: { fill: '#fff' }, formatter (params) { return rowLimit(params, 2) } }, axisLine: { lineStyle: { color: '#fff' } } }, yAxis: { type: 'value', name: '', nameTextStyle: { color: '#fff', fontSize: 14 }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff' } } }, series: [{ type: 'bar', name: '', data: [], barWidth: '24px', barGap: '20%', barMaxWidth: '35px', itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ]) }, emphasis: { itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#2378f7" }, { offset: 0.7, color: "#2378f7" }, { offset: 1, color: "#83bff6" }, ]) } }, label: { show: true, position: 'top', textStyle: { color: '#fff', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } }], tooltip: { show: true, trigger: 'axis' } } export const trustOption = { legend: { data: [ { name: '委托', itemStyle: { color: '#00baff' } }, { name: '受理', itemStyle: { color: '#f5d94e' } } ], textStyle: { color: '#fff', }, bottom: 10 }, title: { show: true, text: '检测委托受理量', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, grid: { top: '80px' }, xAxis: { type: 'category', data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], axisTick: { alignWithLabel: true }, axisLabel: { style: { fill: '#fff' } }, axisLine: { lineStyle: { color: '#fff' } } }, yAxis: { type: 'value', name: '', nameTextStyle: { color: '#fff', fontSize: 14 }, splitLine: { show: false }, axisLabel: { style: { fill: '#fff' } }, axisLine: { lineStyle: { color: '#fff' } } }, series: [ { type: 'bar', name: '委托', data: [], barMaxWidth: '35px', barStyle: { fill: 'rgba(0, 186, 255, 0.4)' }, itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ]) }, emphasis: { itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#2378f7" }, { offset: 0.7, color: "#2378f7" }, { offset: 1, color: "#83bff6" }, ]) } }, label: { show: true, position: 'top', textStyle: { color: '#fff', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } }, { type: 'line', name: '受理', data: [], symbol: 'circle', symbolSize: 10, lineArea: { show: true, gradient: ['rgba(245, 217, 79, 0.8)', 'rgba(245, 217, 79, 0.2)'] }, itemStyle: { color: '#f5d94e' }, label: { show: true, position: 'right', textStyle: { color: '#f5d94e', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } } ], tooltip: { show: true, trigger: 'axis' } } export const reportOptionTask = { title: { show: true, text: '检测任务月度完成量', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, grid: { top: '80px' }, xAxis: { type: 'category', data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], axisTick: { alignWithLabel: true }, axisLabel: { style: { fill: '#fff' } }, axisLine: { lineStyle: { color: '#fff' } } }, yAxis: { type: 'value', name: '', nameTextStyle: { color: '#fff', fontSize: 14 }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff' } } }, series: [{ type: 'bar', name: '', data: [], barMaxWidth: '35px', itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ]) }, emphasis: { itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#2378f7" }, { offset: 0.7, color: "#2378f7" }, { offset: 1, color: "#83bff6" }, ]) } }, label: { show: true, position: 'top', textStyle: { color: '#fff', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } }], tooltip: { show: true, trigger: 'axis' } } export const reportOption = { title: { show: true, text: '检测报告月度发放量', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, grid: { top: '80px' }, xAxis: { type: 'category', data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], axisTick: { alignWithLabel: true }, axisLabel: { style: { fill: '#fff' } }, axisLine: { lineStyle: { color: '#fff' } } }, yAxis: { type: 'value', name: '', nameTextStyle: { color: '#fff', fontSize: 14 }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff' } } }, series: [{ type: 'bar', name: '', data: [], barMaxWidth: '35px', itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ]) }, emphasis: { itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#2378f7" }, { offset: 0.7, color: "#2378f7" }, { offset: 1, color: "#83bff6" }, ]) } }, label: { show: true, position: 'top', textStyle: { color: '#fff', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } }], tooltip: { show: true, trigger: 'axis' } } export const sampleOption = { title: { show: true, text: '样品受理情况', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, grid: { top: '80px' }, xAxis: { type: 'category', data: ['已委托未收样', '已收样', '已收不合格', '留样'], axisTick: { alignWithLabel: true }, axisLabel: { style: { fill: '#fff' }, formatter (params) { return rowLimit(params, 3) } }, axisLine: { lineStyle: { color: '#fff' } } }, yAxis: { type: 'value', name: '', nameTextStyle: { color: '#fff', fontSize: 14 }, splitLine: { show: false }, axisLine: { lineStyle: { color: '#fff' } } }, series: [{ type: 'bar', name: '', data: [], barMaxWidth: '35px', itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ]) }, emphasis: { itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#2378f7" }, { offset: 0.7, color: "#2378f7" }, { offset: 1, color: "#83bff6" }, ]) } }, label: { show: true, position: 'top', textStyle: { color: '#fff', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } }], tooltip: { show: true, trigger: 'axis' } } export const monthOption = { legend: { data: [ { name: '任务总数', itemStyle: { color: '#00baff' } }, { name: '已完成', itemStyle: { color: '#f5d94e' } } ], textStyle: { color: '#fff', }, bottom: 10 }, title: { show: true, text: '检测任务月度完成量', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, grid: { top: '80px' }, xAxis: { type: 'category', data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], axisTick: { alignWithLabel: true }, axisLabel: { style: { fill: '#fff' } }, axisLine: { lineStyle: { color: '#fff' } } }, yAxis: { type: 'value', name: '', nameTextStyle: { color: '#fff', fontSize: 14 }, splitLine: { show: false }, axisLabel: { style: { fill: '#fff' } }, axisLine: { lineStyle: { color: '#fff' } } }, series: [ { type: 'bar', name: '任务总数', data: [], barMaxWidth: '35px', barStyle: { fill: 'rgba(0, 186, 255, 0.4)' }, itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ]) }, emphasis: { itemStyle: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#2378f7" }, { offset: 0.7, color: "#2378f7" }, { offset: 1, color: "#83bff6" }, ]) } }, label: { show: true, position: 'top', textStyle: { color: '#fff', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } }, { type: 'line', name: '已完成', data: [], symbol: 'circle', symbolSize: 10, lineArea: { show: true, gradient: ['rgba(245, 217, 79, 0.8)', 'rgba(245, 217, 79, 0.2)'] }, itemStyle: { color: '#f5d94e' }, label: { show: true, position: 'right', textStyle: { color: '#f5d94e', fontSize: 14 }, formatter (params) { return params.value ? params.value : '' } } } ], tooltip: { show: true, trigger: 'axis' } } export const yearOption = { title: { show: true, text: '检测任务年度完成量', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, legend: { orient: 'horizontal', show: true, left: 'center', bottom: 10, z: 3, itemWidth: 25, itemHeight: 14, itemGap: 10, data: [ { name: '未完成', textStyle: { color: '#ff6347' } }, { name: '已完成', textStyle: { color: '#3f3' } } ] }, series: [ { name: '任务完成情况', type: 'pie', radius: '55%', center: ['50%', '50%'], data: [], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' }, normal: { label: { show: true, position: 'outer', formatter: `占比:{d}%\n\n\r{b}:{c}`, // formatter: `{b}:{c}\n\n\r占比:{d}%`, fontSize: 14 }, labelLine: { show: true } } } } ], color: ['#ff6347', '#3f3'], tooltip: { show: true, trigger: 'item', formatter: '任务情况
{b}:{c}
占比:{d}%' } } // 假数据 export const satisfaction = { title: { show: true, text: '客户满意度', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, legend: { orient: 'horizontal', show: true, left: 'center', bottom: 10, z: 3, itemWidth: 25, itemHeight: 14, itemGap: 10, data: [ { name: '不满意', textStyle: { color: '#d20962' } }, { name: '满意', textStyle: { color: '#188df0' } } ] }, series: [ { name: '满意度占比', type: 'pie', radius: '55%', center: ['50%', '50%'], data: [ { name: '不满意', value: 5 }, { name: '满意', value: 995 } ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' }, normal: { label: { show: true, position: 'outer', formatter: `占比:{d}%`, fontSize: 14, color: '#fff' }, labelLine: { show: true } } } } ], color: ['#d20962', new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ])], tooltip: { show: true, trigger: 'item', formatter: '统计情况
{b}:{c}
占比:{d}%' } } export const contract = { title: { show: true, text: '合同履约率', textStyle: { color: '#fff', fontSize: 20, fontWeight: '600' }, textAlign: 'center', left: '50%', top: '20px' }, legend: { orient: 'horizontal', show: true, left: 'center', bottom: 10, z: 3, itemWidth: 25, itemHeight: 14, itemGap: 10, data: [ { name: '未履约', textStyle: { color: '#d20962' } }, { name: '已履约', textStyle: { color: '#188df0' } } ] }, series: [ { name: '任务完成情况', type: 'pie', radius: '55%', center: ['50%', '50%'], data: [ { name: '未履约', value: 0 }, { name: '已履约', value: 100 } ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' }, normal: { label: { show: true, position: 'outer', formatter: `占比:{d}%`, fontSize: 14, color: '#fff' }, labelLine: { show: true } } } } ], color: ['#d20962', new echarts.graphic.LinearGradient(0, 0, 0, 1, [ { offset: 0, color: "#83bff6" }, { offset: 0.5, color: "#188df0" }, { offset: 1, color: "#188df0" }, ])], tooltip: { show: true, trigger: 'item', formatter: '统计情况
{b}:{c}
占比:{d}%' } }