1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015 |
- {extend name="common/common2" /}
- {block name="main"}
- <link rel="stylesheet" href="/admin/css/cockpit.css">
- <style>
- .fullscreen{
- width: 60px;
- height: 60px;
- font-size: 40px;
- position: fixed;
- z-index: 100000000000000000000;
- right: 50px;
- top: 50px;
- color: #ffffff;
- cursor: pointer;
- }
- .main2-content .main2-content-fore .daily-box{
- width: 100%;
- height: 32.4vh;
- padding-left: 1vw;
- padding-right: 1vw;
- }
- .main2-content .main2-content-fore .daily-box .check-bl{
- width: 90%;
- height: 8vh;
- border: 2px solid #165B9F;
- border-radius: 4px;
- margin-top: 2vh;
- padding: 3px 0;
- }
- .main2-content .main2-content-fore .daily-box .check-bl .left{
- width: 30%;
- height: 100%;
- /*display: inline-block;*/
- float: left;
- border-right: 2px solid #165B9F;
- text-align: center;
- color: #0BE2DF;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .main2-content .main2-content-fore .daily-box .check-bl .right{
- width: 70%;
- height: 100%;
- /*display: inline-block;*/
- float: right;
- text-align: center;
- color: #0BE2DF;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .main2-content .main2-content-fore .daily-box .check-bl .right .bl{
- font-size: 18px;
- }
- .main2-content .main2-content-fore .daily-box .check-bl .right .nums{
- font-size: 14px;
- }
- .main2-content .main2-content-fore .daily-box .check-nums{
- width: 90%;
- height: 8vh;
- border: 2px solid #165B9F;
- border-radius: 4px;
- margin-top: 1vh;
- padding: 3px 0;
- }
- .main2-content .main2-content-fore .daily-box .check-avg{
- width: 90%;
- height: 8vh;
- border: 2px solid #165B9F;
- border-radius: 4px;
- margin-top: 1vh;
- padding: 3px 0;
- }
- .main2-content .main2-content-fore .daily-box .check-nums .left{
- width: 30%;
- height: 100%;
- display: inline-block;
- float: left;
- border-right: 2px solid #165B9F;
- text-align: center;
- color: #0BE2DF;
- padding-top: 1vh;
- }
- .main2-content .main2-content-fore .daily-box .check-nums .right{
- width: 70%;
- height: 100%;
- /*display: inline-block;*/
- float: right;
- text-align: center;
- color: #0BE2DF;
- padding-top: 1%;
- font-size: 20px;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .main2-content .main2-content-fore .daily-box .check-avg .left{
- width: 30%;
- height: 100%;
- /*display: inline-block;*/
- float: left;
- border-right: 2px solid #165B9F;
- text-align: center;
- color: #0BE2DF;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .main2-content .main2-content-fore .daily-box .check-avg .right{
- width: 70%;
- height: 100%;
- /*display: inline-block;*/
- float: right;
- text-align: center;
- color: #0BE2DF;
- font-size: 20px;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- </style>
- <div class="container1">
- <div class="main">
- <div class="main1">
- <div class="main1-header">
- 领导驾驶舱
- </div>
- </div>
- <div class="main2">
- <div class="main2-left">
- <div class="main2-left-top">
- <div class="work-type-mode">
- <select name="" id="workTypeMode1">
- <option value="1">维修</option>
- <option value="2">保洁</option>
- <option value="3">运送</option>
- <option value="4">安保</option>
- </select>
- </div>
- <div class="main2-left-top-body" id="workMode1">
- </div>
- <div class="main2-left-top-bottom">
- <div class="one">
- <div class="kuai color1"></div>
- <span>总完成率</span>
- </div>
- <div class="one">
- <div class="kuai color2"></div>
- <span>主动完成率</span>
- </div>
- <div class="one">
- <div class="kuai color3"></div>
- <span>被动完成率</span>
- </div>
- </div>
- </div>
- <div class="main2-left-bottom">
- <div class="main2-left-bottom-header" >
- <span>本月工单平均响应时间</span>
- <div class="work-type-mode">
- <select name="" id="workTypeMode2">
- <option value="1">维修</option>
- <option value="2">保洁</option>
- <option value="3">运送</option>
- <option value="4">安保</option>
- </select>
- </div>
- </div>
- <div class="main2-left-bottom-body">
- <div class="response-time">
- <div class="min"><text id="min">0</text><span>hour</span></div>
- <div class="img">
- <img src="/admin/img/tu1.png" alt="">
- </div>
- <div class="comparison" id="comparison">较上月+0hour</div>
- </div>
- </div>
- </div>
- </div>
- <div class="main2-content">
- <div class="main2-content-one">
- <div class="main2-left-bottom-header">
- <span>本月维修类型工单所用工时分析</span>
- </div>
- <div class="main2-content-one-body" id="yearTodo">
- </div>
- </div>
- <div class="main2-content-two">
- <div class="main2-left-bottom-header">
- <span>专项任务完成数量</span>
- </div>
- <div class="main2-content-two-body" id="cleanerTask"></div>
- </div>
- <div class="main2-content-three">
- <div class="main2-left-bottom-header">
- <span>本月耗材消耗分析</span>
- </div>
- <div class="main2-content-three-body" id="mateGoods">
- </div>
- </div>
- <div class="main2-content-fore">
- <div class="main2-left-bottom-header">
- <span>日常工作数据分析</span>
- </div>
- <div class="daily-box">
- <div class="check-bl">
- <div class="left">
- 近3个月<br/>检查率
- </div>
- <div class="right">
- <div style="width: 100%; height: auto">
- <text class="bl" id="daily-count1">0%</text><br/>
- <text class="nums" id="daily-count2">0/0</text>
- </div>
- </div>
- </div>
- <div class="check-nums">
- <div class="left">
- 本月<br/>检查数量
- </div>
- <div class="right" id="daily-count3">0</div>
- </div>
- <div class="check-avg">
- <div class="left">
- 本月<br/>检查平均分
- </div>
- <div class="right" id="daily-count4">0</div>
- </div>
- </div>
- </div>
- </div>
- <div class="main2-right">
- <div class="main2-right-one">
- <div class="main2-left-bottom-header">
- <span>用户数据分析</span>
- </div>
- <div class="main2-right-one-body" id="orgUser"></div>
- </div>
- <div class="main2-right-two">
- <div class="main2-left-bottom-header">
- <span>医废信息</span>
- </div>
- <div class="main2-right-two-body">
- <div class="waste">
- <div class="title" id="waste-title">本月医废收集量</div>
- <div class="kg" id="waste-weight">0kg</div>
- <div class="line"></div>
- <div class="hint">功能未应用-灰色<br/>
- 连续72小时没有数据-红色<br/>
- 功能应用且连续72小时有数据-绿色</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="fullscreen">
- <i class="glyphicon glyphicon-fullscreen" id="fullscreenbtn" onclick="fullScreen(this)"></i>
- </div>
- {/block}
- {block name="script"}
- <script src="/static/echarts-5.2.2.js"></script>
- <script>
- $(window).resize(function(){
- location.reload()
- $('#fullscreenbtn').show();
- changeZoom();
- });
- function changeZoom() {
- var wb = $(window).width()/1920;
- var hb = $(window).height()/1080;
- if(wb >= hb){
- $('body').css({
- 'zoom': hb,
- });
- }else{
- $('body').css({
- 'zoom': wb,
- });
- }
- }
- function fullScreen(_self){
- var el = document.documentElement;
- var rfs = el.requestFullScreen || el.webkitRequestFullScreen || el.mozRequestFullScreen || el.msRequestFullScreen;
- //typeof rfs != "undefined" && rfs
- if (rfs) {
- rfs.call(el);
- } else if (typeof window.ActiveXObject !== "undefined") {
- //for IE,这里其实就是模拟了按下键盘的F11,使浏览器全屏
- var wscript = new ActiveXObject("WScript.Shell");
- if (wscript != null) {
- wscript.SendKeys("{F11}");
- }
- }
- }
- $(function () {
- var mode1 = $('#workTypeMode1').val()
- var url = '{:url("CockpitStatistics/todoCompletion")}';
- var name = '本月-工单完成率';
- $.post(url,{mode:mode1},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- var option = {
- tooltip: {
- show:true,
- trigger: 'item',
- formatter: "{a} : {d}%"
- },
- color:['#3170FF','#FFD131','#F96E33'],
- legend: {
- // top: 'bottom',
- // bottom:0,
- y:'bottom',
- orient: 'vertical',
- hoverAnimation: false, //鼠标移入变大
- itemHeight: 15,//图例的高度
- itemGap:12,//图例之间的间距
- //图例的名字需要和饼图的name一致,才会显示图例
- // data:lists.title,
- textStyle: { //图例文字的样式
- color: '#AAC9F7',
- fontSize: 8
- },
- },
- series: [
- {
- name:lists.title[0],
- type:'pie',
- radius: ['65%', '75%'],
- hoverAnimation:false,
- //环的位置
- label: {
- show: true,
- position: 'center',
- textStyle:{color:'#0BE2DF',fontSize:"10"},
- formatter:function (){
- return name.split('-').join("\n");
- },
- normal: { // 显示的位置
- // position: 'inner'
- }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- emphasis: {
- label: {
- show: true,
- fontSize: '20',
- fontWeight: 'bold'
- }
- },
- data:[
- {
- // name: lists.title[0],
- value:lists.count1.bl1, //需要显示的数据
- },
- {
- value:lists.count1.bl2,
- //不需要显示的数据,颜色设置成和背景一样
- itemStyle: {
- normal: {
- color: '#184997'
- }
- }
- },
- ]
- },
- {
- name:lists.title[1],
- type:'pie',
- radius: ['52%', '60%'],
- hoverAnimation: false, //鼠标移入变大
- label: {
- show: true,
- position: 'center',
- formatter:function (){
- return name.split('-').join("\n");
- },
- // normal: {
- // position: 'inner'
- // }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- emphasis: {
- label: {
- show: true,
- fontSize: '20',
- fontWeight: 'bold'
- }
- },
- data:[
- {
- // name: lists.title[1],
- value:lists.count2.bl1,
- itemStyle: {
- normal: {
- color: '#FFD131'
- }
- }
- },
- {
- value:lists.count2.bl2,
- itemStyle: {
- normal: {
- color: '#184997'
- }
- }
- }
- ]
- },
- {
- name:lists.title[2],
- type:'pie',
- radius: ['42%', '48%'],
- hoverAnimation:false,
- label: {
- show: true,
- position: 'center',
- formatter:function (){
- return name.split('-').join("\n");
- },
- // normal: {
- // position: 'inner'
- // }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- emphasis: {
- label: {
- show: true,
- fontSize: '20',
- fontWeight: 'bold'
- }
- },
- data:[
- {
- // name: lists.title[2],
- value:lists.count3.bl1,
- itemStyle: {
- normal: {
- color: '#F96E33'
- }
- }
- },
- {
- value:lists.count3.bl2,
- itemStyle: {
- normal: {
- color: '#184997'
- }
- }
- }
- ]
- },
- ]
- };
- var myChart = echarts.init(document.getElementById('workMode1'));
- myChart.setOption(option);
- }
- })
- // workTypeMode2
- var mode2 = $('#workTypeMode2').val()
- var url2 = '{:url("CockpitStatistics/todoResponseTime")}';
- $.post(url2,{mode:mode2},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- $('#min').html(lists.count);
- if(lists.count2 >= 0){
- $('#comparison').html('较上月+'+lists.count2+'hour');
- }else {
- $('#comparison').html('较上月'+lists.count2+'hour');
- }
- }
- })
- //yearTodo
- var url3 = '{:url("CockpitStatistics/repairTodo")}';
- $.post(url3,{},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- option = {
- legend: {
- top: 'bottom',
- left: 'center',
- hoverAnimation:false,
- textStyle: { //图例文字的样式
- color: '#AAC9F7',
- // fontSize: 16
- },
- },
- tooltip: {
- trigger: 'item',
- formatter: '{b} : {c}小时 ({d}%)'
- },
- series: [
- {
- name: 'Radius Mode',
- type: 'pie',
- radius: [20, 60],
- // center: ['25%', '50%'],
- roseType: 'radius',
- itemStyle: {
- borderRadius: 5
- },
- label: {
- show: false
- },
- emphasis: {
- label: {
- show: false
- }
- },
- data: lists,
- },
- ],
- };
- var myChart = echarts.init(document.getElementById('yearTodo'));
- myChart.setOption(option);
- }
- })
- //cleanerTask
- var url4 = '{:url("CockpitStatistics/cleanTypeTask")}';
- $.post(url4,{},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- var option;
- option = {
- legend: {
- left: '10',
- top: 'bottom',
- textStyle:{
- color:'#88B1D0',
- fontSize: 12,
- },
- },
- xAxis: {
- type: 'category',
- data: lists.title,
- axisLabel: {
- show: true,
- interval:0,
- textStyle: {
- color: '#fff'
- },
- axisTick: {
- show:false,
- }
- },
- axisLine: {
- lineStyle: {
- type: 'solid',
- color: '#20A3F7',//左边线的颜色
- width:'1'//坐标线的宽度
- }
- },
- },
- yAxis: {
- type: 'value',
- axisLabel: {
- show: true,
- textStyle: {
- color: '#fff'
- },
- },
- splitLine:{
- show:false //去掉网格线
- },
- axisLine: {
- lineStyle: {
- type: 'solid',
- color: '#20A3F7',//左边线的颜色
- // width: '1'//坐标线的宽度
- }
- }
- },
- series: [{
- data: lists.list,
- type: 'bar',
- barWidth :15,
- itemStyle: {
- normal: {
- label: {
- show: true, //开启显示
- position: 'top', //在上方显示
- textStyle: { //数值样式
- color: '#fff',
- fontSize: 16
- }
- }
- }
- }
- }],
- };
- var myChart = echarts.init(document.getElementById('cleanerTask'));
- myChart.setOption(option);
- }
- })
- //mateGoods
- var url5 = '{:url("CockpitStatistics/mateGoods")}';
- $.post(url5,{},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- var option;
- option = {
- legend: {
- left: '10',
- top: 'bottom',
- textStyle:{
- color:'#88B1D0',
- fontSize: 12,
- },
- },
- xAxis: {
- type: 'category',
- data: lists.title,
- axisLabel: {
- show: true,
- interval:0,
- textStyle: {
- color: '#fff'
- },
- axisTick: {
- show:false,
- }
- },
- axisLine: {
- lineStyle: {
- type: 'solid',
- color: '#20A3F7',//左边线的颜色
- width:'1'//坐标线的宽度
- }
- },
- },
- yAxis: {
- type: 'value',
- axisLabel: {
- show: true,
- textStyle: {
- color: '#fff'
- },
- },
- splitLine:{
- show:false //去掉网格线
- },
- axisLine: {
- lineStyle: {
- type: 'solid',
- color: '#20A3F7',//左边线的颜色
- // width: '1'//坐标线的宽度
- }
- }
- },
- series: [{
- data: lists.list,
- type: 'bar',
- barWidth :15,
- itemStyle: {
- normal: {
- label: {
- show: true, //开启显示
- position: 'top', //在上方显示
- textStyle: { //数值样式
- color: '#fff',
- fontSize: 16
- }
- }
- }
- }
- }],
- };
- var myChart = echarts.init(document.getElementById('mateGoods'));
- myChart.setOption(option);
- }
- })
- //orgUser
- var url6 = '{:url("CockpitStatistics/orgUser")}';
- $.post(url6,{},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- option = {
- legend: {
- top: 'bottom',
- left: 'center',
- textStyle: { //图例文字的样式
- color: '#AAC9F7',
- // fontSize: 16
- },
- },
- tooltip: {
- trigger: 'item',
- formatter: '{b} : {c}人 ({d}%)'
- },
- series: [
- {
- name: 'Radius Mode',
- type: 'pie',
- radius: [20, 60],
- // center: ['25%', '50%'],
- roseType: 'radius',
- hoverAnimation:false,
- itemStyle: {
- borderRadius: 5
- },
- label: {
- show: false
- },
- emphasis: {
- label: {
- show: false
- }
- },
- data: lists,
- },
- ],
- };
- var myChart = echarts.init(document.getElementById('orgUser'));
- myChart.setOption(option);
- }
- })
- //title
- var url7 = '{:url("CockpitStatistics/wasteCount")}';
- $.post(url7,{},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- $('#waste-weight').html(lists.count+'kg');
- if(lists.type == 1){
- $('#waste-title').css('color','#435188');
- $('#waste-weight').css('color','#435188');
- }
- if(lists.type == 2){
- $('#waste-title').css('color','#DC1866');
- $('#waste-weight').css('color','#DC1866');
- }
- if(lists.type == 3){
- $('#waste-title').css('color','#0BE2DF');
- $('#waste-weight').css('color','#0BE2DF');
- }
- }
- })
- var url8 = '{:url("CockpitStatistics/dailyDataCount")}';
- $.post(url8,{},function (res) {
- if(res.code == 1) {
- var count = res.data;
- $('#daily-count1').html(count.bl);
- $('#daily-count2').html(count.count2);
- $('#daily-count3').html(count.count3);
- $('#daily-count4').html(count.count4);
- }
- })
- });
- $('#workTypeMode1').change(function (){
- var mode = $('#workTypeMode1').val()
- var url = '{:url("CockpitStatistics/todoCompletion")}';
- var name = '本月-工单完成率';
- $.post(url,{mode:mode},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- var option = {
- tooltip: {
- show:true,
- trigger: 'item',
- formatter: "{a} : {d}%"
- },
- color:['#3170FF','#FFD131','#F96E33'],
- legend: {
- // top: 'bottom',
- // bottom:0,
- y:'bottom',
- orient: 'vertical',
- hoverAnimation: false, //鼠标移入变大
- itemHeight: 15,//图例的高度
- itemGap:12,//图例之间的间距
- //图例的名字需要和饼图的name一致,才会显示图例
- // data:lists.title,
- textStyle: { //图例文字的样式
- color: '#AAC9F7',
- fontSize: 8
- },
- },
- series: [
- {
- name:lists.title[0],
- type:'pie',
- radius: ['65%', '75%'],
- hoverAnimation:false,
- //环的位置
- label: {
- show: true,
- position: 'center',
- textStyle:{color:'#0BE2DF',fontSize:"10"},
- formatter:function (){
- return name.split('-').join("\n");
- },
- normal: { // 显示的位置
- // position: 'inner'
- }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- emphasis: {
- label: {
- show: true,
- fontSize: '20',
- fontWeight: 'bold'
- }
- },
- data:[
- {
- // name: lists.title[0],
- value:lists.count1.bl1, //需要显示的数据
- },
- {
- value:lists.count1.bl2,
- //不需要显示的数据,颜色设置成和背景一样
- itemStyle: {
- normal: {
- color: '#184997'
- }
- }
- },
- ]
- },
- {
- name:lists.title[1],
- type:'pie',
- radius: ['52%', '60%'],
- hoverAnimation: false, //鼠标移入变大
- label: {
- show: true,
- position: 'center',
- formatter:function (){
- return name.split('-').join("\n");
- },
- // normal: {
- // position: 'inner'
- // }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- emphasis: {
- label: {
- show: true,
- fontSize: '20',
- fontWeight: 'bold'
- }
- },
- data:[
- {
- // name: lists.title[1],
- value:lists.count2.bl1,
- itemStyle: {
- normal: {
- color: '#FFD131'
- }
- }
- },
- {
- value:lists.count2.bl2,
- itemStyle: {
- normal: {
- color: '#184997'
- }
- }
- }
- ]
- },
- {
- name:lists.title[2],
- type:'pie',
- radius: ['42%', '48%'],
- hoverAnimation:false,
- label: {
- show: true,
- position: 'center',
- formatter:function (){
- return name.split('-').join("\n");
- },
- // normal: {
- // position: 'inner'
- // }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- emphasis: {
- label: {
- show: true,
- fontSize: '20',
- fontWeight: 'bold'
- }
- },
- data:[
- {
- // name: lists.title[2],
- value:lists.count3.bl1,
- itemStyle: {
- normal: {
- color: '#F96E33'
- }
- }
- },
- {
- value:lists.count3.bl2,
- itemStyle: {
- normal: {
- color: '#184997'
- }
- }
- }
- ]
- },
- ]
- };
- var myChart = echarts.init(document.getElementById('workMode1'));
- myChart.setOption(option);
- }
- })
- })
- $('#workTypeMode2').change(function (){
- var mode2 = $('#workTypeMode2').val()
- var url2 = '{:url("CockpitStatistics/todoResponseTime")}';
- $.post(url2,{mode:mode2},function (res) {
- if(res.code == 1) {
- var lists = res.data;
- $('#min').html(lists.count);
- if(lists.count2 >= 0){
- $('#comparison').html('较上月+'+lists.count2+'min');
- }else {
- $('#comparison').html('较上月'+lists.count2+'min');
- }
- }
- })
- })
- </script>
- {/block}
|