| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699 |
- //安全防范设施改造情况数据
- let securityPrecautions = (
- data = [
- { value: 1048, name: 'GA38-2021' },
- { value: 735, name: 'GA38-2015' },
- { value: 580, name: '未达标' }
- ]
- ) => {
- var colors = ['#146de0', '#27ef5e', '#ffc140']
- let option = {
- title: {
- text: '安全防范改造情况',
- left: 'left'
- },
- tooltip: {
- trigger: 'item'
- },
- legend: {
- orient: 'vertical',
- top: 'center',
- left: '50%',
- data: data,
- formatter: function (name) {
- var data = option.series[0].data
- var total = 0
- var tarValue
- for (var i = 0; i < data.length; i++) {
- total += data[i].value
- if (data[i].name == name) {
- tarValue = data[i].value
- }
- }
- var v = tarValue
- var p = Math.round((tarValue / total) * 100)
- return `${name} ${v}家 ${p}%`
- }
- },
- series: [
- {
- center: ['25%', '60%'],
- name: '生命周期统计',
- type: 'pie',
- radius: '50%',
- data: data,
-
- itemStyle: {
- normal: {
- shadowColor: 'rgba(0, 0, 0, 0.8)',
- shadowBlur: 5,
- color: function (param) {
- // console.log(param.dataIndex)
- return colors[param.dataIndex]
- }
- },
-
- },
- label: {
- position: 'inner',
- textStyle: {
- fontSize: 14,
- color: '#181818'
- },
- formatter: params => {
- return `${params.value}`
- }
- },
- labelLine: {
- show: false
- },
- emphasis: {
- itemStyle: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)'
- }
- }
- }
- ],
- itemStyle: {
- normal: {
- shadowColor: 'rgba(0, 0, 0, 0.8)',
- shadowBlur: 5
- }
- },
- }
- return option
- }
- //GA38-2021标准
- let pieGaData = (
- title = '暂无设置标题',
- data = [
- {
- value: 55,
- name: '203',
- label: {
- normal: {
- show: true
- }
- }
- },
- {
- value: 45,
- name: '正常1',
- label: {
- normal: {
- show: false
- }
- }
- }
- ]
- ) => {
- let option = {
- tooltip: {
- trigger: 'item',
- formatter: '{a} <br/>{b}: {c} ({d}%)'
- },
- title: [
- {
- bottom: 1,
- width: '100%',
- left: 'center',
- text: title
- }
- ],
- color: ['#169bd5', '#ccc'],
- series: [
- {
- name: '',
- type: 'pie',
- center: ['50%', '50%'], // 饼图的圆心坐标
- radius: ['50%', '60%'],
- avoidLabelOverlap: false,
- hoverAnimation: false,
- label: {
- // 饼图图形上的文本标签
- normal: {
- // normal 是图形在默认状态下的样式
- show: true,
- position: 'center',
- color: '#169bd5',
- fontSize: 18,
- fontWeight: 'bold',
- formatter: '{b}\n{d}%' // {b}:数据名; {c}:数据值; {d}:百分比,可以自定义显示内容,
- }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- data: data
- }
- ]
- }
- return option
- }
- //网点业务总览
- let dotData = (
- title = '网点业务库总览',
- data = [
- { value: 666, name: '巡查上报' },
- { value: 193, name: '自行处置' },
- { value: 300, name: '微信市民举报' },
- { value: 200, name: '微治理上报' },
- { value: 100, name: '视频抓拍' }
- ]
- ) => {
- console.log(data, 'sss')
- var color = ['#146de0', '#27ef5e', '#ffc140', '#d151d8', 'red']
- let option = {
- color: color,
- title: {
- text: title,
- left: 'left'
- },
- tooltip: {
- trigger: 'item',
- backgroundColor: 'rgba(0,0,0,0.5)',
- color: '#fff',
- formatter: function (params) {
- return (
- params.name +
- '<br/>' +
- params.marker +
- '<span style="color:' +
- params.color +
- '">' +
- params.data['name'] +
- '\n' +
- params.data['value'] +
- '</span>'
- )
- }
- },
- legend: {
- orient: 'vertical',
- icon: 'circle',
- left: '2%',
- top: '32%',
- itemWidth: 14,
- itemGap: 20,
- textStyle: {
- rich: {
- a: {
- color: '#1f1f1f',
- fontSize: 16,
- padding: [0, 10, 0, 0]
- },
- b: {
- color: '#1f1f1f',
- fontSize: 16,
- padding: [0, 10, 0, 10]
- }
- }
- },
- formatter: function (name) {
- var target, unit
- for (var i = 0, l = data.length; i < l; i++) {
- if (data[i].name == name) {
- target = data[i].value
- unit = data[i].unit
- }
- }
- return `{a| ${name}}{b|${target}}`
- }
- },
- series: [
- {
- name: '',
- type: 'pie',
- radius: ['20%', '65%'],
- center: ['65%', '50%'],
- avoidLabelOverlap: true,
- label: {
- normal: {
- show: true,
- position: 'inside',
- formatter: '{d}%',
- textStyle: {
- align: 'center',
- baseline: 'middle',
- fontSize: 16,
- fontWeight: '100',
- color: '#fff'
- }
- }
- },
- labelLine: {
- show: false
- },
- itemStyle: {
- normal: {
- shadowColor: 'rgba(0, 0, 0, 0.8)',
- shadowBlur: 5
- }
- },
- data: data
- }
- ]
- }
- return option
- }
- //保安情况
- let securityData = (
- title = '保安配备情况',
- data = [
- { value: 666, name: '已配备' },
- { value: 193, name: '未配备' }
- ]
- ) => {
- var color = ['#146de0', '#27ef5e', '#ffc140', '#d151d8', 'red']
- let option = {
- color: color,
- title: {
- text: title,
- left: 'left'
- },
- tooltip: {
- trigger: 'item',
- backgroundColor: 'rgba(0,0,0,0.5)',
- color: '#fff',
- formatter: function (params) {
- return (
- params.name +
- '<br/>' +
- params.marker +
- '<span style="color:' +
- params.color +
- '">' +
- params.data['name'] +
- '\n' +
- params.data['value'] +
- '</span>'
- )
- }
- },
- legend: {
- orient: 'vertical',
- icon: 'circle',
- left: '2%',
- top: '32%',
- itemWidth: 14,
- itemGap: 20,
- textStyle: {
- rich: {
- a: {
- color: '#1f1f1f',
- fontSize: 16,
- padding: [0, 10, 0, 0]
- },
- b: {
- color: '#1f1f1f',
- fontSize: 16,
- padding: [0, 10, 0, 10]
- }
- }
- },
- formatter: function (name) {
- var target, unit
- for (var i = 0, l = data.length; i < l; i++) {
- if (data[i].name == name) {
- target = data[i].value
- unit = data[i].unit
- }
- }
- return `{a| ${name}}{b|${target}}`
- }
- },
- series: [
- {
- name: '',
- type: 'pie',
- radius: ['20%', '65%'],
- center: ['65%', '50%'],
- avoidLabelOverlap: true,
- label: {
- normal: {
- show: true,
- position: 'inside',
- formatter: '{d}%',
- textStyle: {
- align: 'center',
- baseline: 'middle',
- fontSize: 16,
- fontWeight: '100',
- color: '#fff'
- }
- }
- },
- labelLine: {
- show: false
- },
- itemStyle: {
- normal: {
- shadowColor: 'rgba(0, 0, 0, 0.8)',
- shadowBlur: 5
- }
- },
- data: data
- }
- ]
- }
- return option
- }
- //离行式自助银行
- let LHSData = (
- title = '',
- data = [
- { value: 666, name: '已配备' },
- { value: 193, name: '未配备' }
- ]
- ) => {
- var color = ['#146de0', '#27ef5e', '#ffc140', '#d151d8', 'red']
- let option = {
- color: color,
- title: {
- text: title,
- left: 'left'
- },
- tooltip: {
- trigger: 'item',
- backgroundColor: 'rgba(0,0,0,0.5)',
- color: '#fff',
- formatter: function (params) {
- return (
- params.name +
- '<br/>' +
- params.marker +
- '<span style="color:' +
- params.color +
- '">' +
- params.data['name'] +
- '\n' +
- params.data['value'] +
- '</span>'
- )
- }
- },
- legend: {
- orient: 'vertical',
- icon: 'circle',
- left: '2%',
- top: '32%',
- itemWidth: 14,
- itemGap: 20,
- textStyle: {
- rich: {
- a: {
- color: '#1f1f1f',
- fontSize: 16,
- padding: [0, 10, 0, 0]
- },
- b: {
- color: '#1f1f1f',
- fontSize: 16,
- padding: [0, 10, 0, 10]
- }
- }
- },
- formatter: function (name) {
- var target, unit
- for (var i = 0, l = data.length; i < l; i++) {
- if (data[i].name == name) {
- target = data[i].value
- unit = data[i].unit
- }
- }
- return `{a| ${name}}{b|${target}}`
- }
- },
- series: [
- {
- name: '',
- type: 'pie',
- radius: ['20%', '65%'],
- center: ['75%', '50%'],
- avoidLabelOverlap: true,
- label: {
- normal: {
- show: true,
- position: 'inside',
- formatter: '{d}%',
- textStyle: {
- align: 'center',
- baseline: 'middle',
- fontSize: 16,
- fontWeight: '100',
- color: '#fff'
- }
- }
- },
- labelLine: {
- show: false
- },
- data: data
- }
- ]
- }
- return option
- }
- //在行式自助银行
- let ZHSData = (
- title = '在行式自助银行',
- data = [
- { value: 666, name: '穿墙式设备' },
- { value: 193, name: '大堂式设备' }
- ]
- ) => {
- let color = ['#146de0', '#27ef5e', '#ffc140', '#d151d8', 'red']
- const handleData = {}
- let sum = 0
- // 求和
- data.map(item => {
- sum += item.value
- })
- // 数据处理
- data.map(item => {
- handleData[item.name] = item
- handleData[item.name].percentage = ((item.value / sum) * 100).toFixed(1) + '%'
- })
- let option = {
- title: {
- text: title,
- left: 'center'
- },
- legend: {
- show: true,
- icon: 'circle',
- right: '3%',
- left: 'center',
- bottom: '10%',
- itemWidth: 10,
- itemStyle: {
- borderColor: 'none'
- },
- textStyle: {
- rich: {
- name: {
- color: '#606266',
- fontSize: 14
- },
- percentage: {
- color: '#606266',
- fontSize: 16,
- padding: [0, 0, 0, 30],
- align: 'right'
- }
- }
- }
- },
- tooltip: {
- trigger: 'item'
- },
- series: [
- {
- type: 'pie',
- color: ['#4D88FE', '#50CCCB', '#FFBF3C'],
- radius: '130%',
- left: 'center',
- label: {
- normal: {
- position: 'inside', // 在内部显示,outseide 是在外部显示
- show: true,
- formatter: '{c}'
- }
- },
- data: data,
- emphasis: {
- itemStyle: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)'
- }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- itemStyle: {
- normal: {
- shadowColor: 'rgba(0, 0, 0, 0.8)',
- shadowBlur: 5,
- borderColor: '#fff'
- }
- },
- // itemStyle: {
- // borderColor: '#fff'
- // }
- }
- ]
- }
- return option
- }
- //日常履职完成率
- let resumption = (data, type = 0) => {
- var getzszy = ['每日履职', '报警测试', 'UPS维护', '夜间值守', '离行巡检'] //数据点名称
- var getzswcl = [101, 100, 100, 98.65, 98.3] //招生完成率
- var getzswcl2 = [101, 100, 100, 98.65, 98.3] //招生完成率
- var getzswclzd = [] //招生完成率100%
- if (type == 0) {
- if (data && data.length > 0) {
- getzszy = data.map(item => item.orgName)
- getzswcl = data.map(item => parseInt(item.rate * 100))
- getzswcl2 = data.map(item => parseInt(item.rate * 100) + '%')
- }
- } else {
- if (data && data.length > 0) {
- getzszy = data.map(item => item.orgName)
- getzswcl = data.map(item => {
- if (item.isNo) {
- return parseInt(item.rate * 100)
- } else {
- return parseInt(item.rate)
- }
- })
- getzswcl2 = data.map(item => {
- if (item.isNo) {
- return parseInt(item.rate * 100) + '%'
- } else {
- return item.rate + '项'
- }
- })
- }
- }
- for (let i = 0; i < getzswcl.length; i++) {
- if (getzswcl[i] > 100) {
- getzswcl[i] = 100
- }
- getzswclzd.push(100)
- }
- let option = {
- grid: {
- right: '25%',
- bottom: '3%',
- left: '25%',
-
- top: '3%'
- },
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'none'
- },
- formatter: function (params) {
- return getzszy[params[0].dataIndex] + '<br>完成率: ' + getzswcl2[params[0].dataIndex]
- }
- },
- xAxis: {
- show: false,
- type: 'value'
- },
- yAxis: [
- {
- type: 'category',
- inverse: true,
- axisLabel: {
- show: true,
- textStyle: {
- color: '#666666',
- fontSize: '13'
- }
- },
- splitLine: {
- show: false
- },
- axisTick: {
- show: false
- },
- axisLine: {
- show: false
- },
- data: getzszy
- },
- {
- type: 'category',
- inverse: true,
- axisTick: 'none',
- axisLine: 'none',
- show: true,
- axisLabel: {
- textStyle: {
- color: '#333333',
- fontSize: '13'
- },
- // formatter: '{value}%'
- formatter: function (value, index) {
- return value
- }
- },
- data: getzswcl2
- }
- ],
- series: [
- {
- name: '值',
- type: 'bar',
- zlevel: 1,
- itemStyle: {
- normal: {
- barBorderRadius: 5,
- color: '#4E7BFE'
- }
- },
- barWidth: 10,
- data: getzswcl
- },
- {
- name: '背景',
- type: 'bar',
- barWidth: 10,
- barGap: '-100%',
- data: getzswclzd,
- itemStyle: {
- normal: {
- color: 'rgba(103,150,253,0.3)',
- barBorderRadius: 5
- }
- }
- }
- ]
- }
- return option
- }
- export { securityPrecautions, resumption, dotData, securityData, ZHSData, LHSData, pieGaData }
|