luolei 5 năm trước cách đây
mục cha
commit
e82defd904
3 tập tin đã thay đổi với 989 bổ sung0 xóa
  1. 446 0
      src/css/deptConsole.less
  2. 97 0
      src/html/deptConsole.html
  3. 446 0
      src/js/deptConsole.js

+ 446 - 0
src/css/deptConsole.less

@@ -0,0 +1,446 @@
+body.console {
+  overflow: auto;
+  background-color: #f5f5f5;
+}
+.echarts {
+  width: 100%;
+  height: 300px;
+  padding: 0 15px;
+}
+.barChartPay {
+  width: 100%;
+  height: 300px;
+}
+.emptyCircle {
+  width: 35%;
+  height: 200px;
+  float: left;
+  margin-top: 32px;
+}
+#emptyCircleB {
+  margin-top: 50px;
+}
+.partAll {
+  background-color: #fff;
+}
+.partWrap {
+  // overflow: auto;
+  height: auto;
+  background: #f5f5f5;
+  min-width: 1185px;
+  ul {
+    padding: 0 40px;
+  }
+  .partLi {
+    float: left;
+    margin: 15px 0;
+    width: 20%;
+    height: 100px;
+    overflow: hidden;
+    .partIn {
+      height: 100px;
+      box-sizing: border-box;
+      border-radius: 3px;
+      padding: 10px 15px;
+      border: 1px solid #E2E5EF;
+      margin: 0 6px;
+    }
+    p {
+      padding-bottom: 10px;
+      color: #51649C;
+    }
+    .top {
+      margin-bottom: 12px;
+    }
+    .btm {
+      padding-bottom: 4px;
+      img {
+        float: left;
+        width: 40px;
+      }
+      span {
+        float: right;
+        font-size: 28px;
+        color: #51649C;
+      }
+    }
+  }
+  
+  .title {
+    font-size: 16px;
+    font-weight: bold;
+    border-bottom: 1px solid #E2E5EF;
+    height: 36px;
+    line-height: 36px;
+    padding-left: 15px;
+  }
+}
+.swiperWrap {
+  width: 300px;
+  border: 1px solid #ccc;
+}
+.grayLine {
+  height: 10px;
+  background-color: #f5f5f5;
+}
+.partTitleT {
+  height: 44px;
+}
+.partTitle {
+  position: absolute;
+  top: 0;
+  right: 0;
+  width: 100%;
+  box-sizing: border-box;
+  background-color: #fff;
+  z-index: 20;
+  height: 44px;
+  line-height: 44px;
+  padding-left: 15px;
+  font-size: 14px;
+  font-weight: bold;
+  letter-spacing: 1px;
+  p {
+    display: inline-block;
+    font-size: 16px;
+    span {
+      font-size: 16px;
+    }
+  }
+  .dateDetail {
+    font-size: 12px;
+    color: #777777;
+    margin-right: 30px;
+    font-weight: normal;
+  }
+  .monthYear {
+    float: right;
+    margin-right: 20px;
+    border: 1px solid #5A8EEE;
+    height: 28px;
+    line-height: 28px;
+    border-radius: 4px;
+    overflow: hidden;
+    cursor: pointer;
+    margin-top: 7px;
+    span {
+      width: 48px;
+      height: 28px;
+      line-height: 28px;
+      display: inline-block;
+      text-align: center;
+      font-weight: normal;
+    }
+    .mon {
+      background-color: #5A8EEE;
+      color: #fff;
+    }
+    .year {
+      color: #5A8EEE;
+    }
+  }
+}
+.partTitles {
+  height: 44px;
+  line-height: 44px;
+  padding-left: 10px;
+  margin-right: 0;
+}
+.pubEchart {
+  width: 100%;
+  display: inline-block;
+  margin-bottom: 10px;
+  background-color: #fff;
+  border-top: 10px solid #f5f5f5;
+}
+.pubEchartB {
+  width: 55%;
+  display: inline-block;
+  margin-bottom: 10px;
+  background-color: #fff;
+  border-top: 10px solid #f5f5f5;
+  border-left: 10px solid #f5f5f5;
+  box-sizing: border-box;
+}
+.paymoney {
+  box-sizing: border-box;
+  position: relative;
+}
+.dept {
+  box-sizing: border-box;
+}
+.circle {
+  height: 304px;
+  width: 100%;
+  display: inline-block;
+  background-color: #fff;
+  box-sizing: border-box;
+  position: relative;
+}
+.circleB {
+  height: 350px;
+  width: 100%;
+  display: inline-block;
+  background-color: #fff;
+  box-sizing: border-box;
+  position: relative;
+}
+.btmWrap {
+  width: 100%;
+  overflow: hidden;
+}
+.explainPan {
+  width: 60%;
+  float: right;
+  position: absolute;
+  top: 50%;
+  right: 0;
+  padding-right: 30px;
+  box-sizing: border-box;
+  max-height: 250px;
+  overflow: auto;
+  table {
+    width: 100%;
+  }
+  .explainLi {
+    height: 30px;
+    line-height: 30px;
+    span {
+      display: inline-block;
+    }
+    .tip {
+      display: inline-block;
+      width: 10px;
+      height: 10px;
+      border-radius: 50%;
+      background-color: red;
+      margin-right: 10px;
+    }
+    .deptName {
+      color: #777;
+      p {
+        width: 145px;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+      }
+      .smp {
+        width: 100px;
+      }
+    }
+    .deptNum {
+      color: #333;
+      font-size: 16px;
+      font-weight: bold;
+      padding-right: 10px;
+      width: 40px;
+      text-align: right;
+    }
+    .percent {
+      color: #777;
+      width: 40px;
+    }
+  }
+}
+
+
+.part01 {
+  width: 38%;
+  background-color: #fff;
+  border-right: 10px solid #f5f5f5;
+  box-sizing: border-box;
+  ul {
+    padding: 40px 20px;
+    border-bottom: 10px solid #f5f5f5;
+    li {
+      float: left;
+      width: 33.33%;
+      border-left: 3px solid #F2637B;
+      height: 72px;
+      box-sizing: border-box;
+      padding-left: 12px;
+      &.li02 {
+        border-left: 3px solid #37CBCB;
+      }
+      &.li03 {
+        border-left: 3px solid #FAD336;
+      }
+    }
+  }
+  
+  .defect {
+    background-color: #fff;
+    height: 452px;
+    overflow: hidden;
+    .list {
+      padding: 15px 5px;
+      width: 100%;
+      box-sizing: border-box;
+      overflow: auto;
+      height: 405px;
+    }
+    .thead {
+      td {
+        color: #51649C;
+      }
+    }
+    .qtable {
+      width: 100%;
+      overflow: auto;
+    }
+    td {
+      padding: 7px 10px;
+      i {
+        width: 17px;
+        height: 17px;
+        line-height: 17px;
+        border-radius: 8px;
+        background-color: #999;
+        color: #fff;
+        display: inline-block;
+        text-align: center;
+        font-size: 12px;
+      }
+    }
+    tr {
+      border-bottom: 1px solid #f5f5f5;
+      box-sizing: border-box;
+    }
+    .td01 {
+      width: 30px;
+    }
+    .td02 {
+      
+    }
+    .td03 {
+      width: 40px;
+    }
+    .td04 {
+      width: 40px;
+    }
+  }
+}
+.part02{
+  border-right: 10px solid #f5f5f5;
+  box-sizing: border-box;
+  width: 62%;
+  background-color: #fff;
+  .bingli {
+    padding: 20px;
+    li {
+      float: left;
+      width: 23%;
+      text-align: center;
+    }
+    .fst {
+      // border-right: 1px solid #E2E5EF;
+      box-sizing: border-box;
+      width: 30%;
+    }
+  }
+  .bingliLis {
+    border-top: 1px solid #E2E5EF;
+    padding: 20px 30px;
+    p {
+      text-align: center;
+      font-weight: bold;
+      font-size: 16px;
+      padding-bottom: 2px;
+    }
+  }
+  .panPartPub {
+    width: 33.33%;
+    height: 130px;
+    float: left;
+    position: relative;
+    p {
+      text-align: center;
+      font-size: 12px;
+      font-weight: normal;
+      width: 100px;
+      position: absolute;
+      bottom: 0;
+      left: 50%;
+      margin-left: -50px;
+    }
+    .fen {
+      width: 100px;
+      height: 100px;
+      position: absolute;
+      left: 50%;
+      margin-left: -50px;
+    }
+  }
+}
+
+.partTitlePub {
+  height: 44px;
+  line-height: 44px;
+  padding: 0 15px;
+  box-sizing: border-box;
+  border-bottom: 1px solid #E2E5EF;
+  font-weight: bold;
+  font-size: 16px;
+  .name {
+    float: left;
+    font-size: 16px;
+  }
+  .personNum {
+    float: right;
+    color: #51649C;
+  }
+}
+
+.numShow {
+  font-size: 28px;
+  display: inline-block;
+  height: 36px;
+  line-height: 40px;
+  font-weight: bold;
+}
+.explainNum {
+  margin-top: 8px;
+}
+
+.toggleSlide {
+  cursor: pointer;
+  position: absolute;
+  right: 10px;
+  top: 4px;
+  p {
+    width: 100px;
+    height: 26px;
+    line-height: 28px;
+    border: 1px solid #E2E5EF;
+    padding-right: 20px;
+    padding-left: 10px;
+    position: relative;
+    font-size: 14px;
+    border-radius: 4px;
+    img {
+      width: 10px;
+      position: absolute;
+      right: 10px;
+      top: 12px;
+    }
+  }
+  ul {
+    display: none;
+    background-color: #fff;
+    position: absolute;
+    top: 27px;
+    right: 0;
+    border: 1px solid #E2E5EF;
+    z-index: 100;
+    padding: 0;
+    width: 130px;
+    li {
+      height: 30px;
+      line-height: 30px;
+      padding: 0 10px;
+      &:hover {
+        background-color: #EEF4FF;
+      }
+    }
+  }
+}

+ 97 - 0
src/html/deptConsole.html

@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <title>Document</title>
+</head>
+<body class="console">
+  <div class="partTitle">
+    <p><span></span>质控科数据概览</p>
+    <div class="monthYear">
+      <span class="mon">本月</span>
+      <span class="year">本年</span>
+    </div> 
+    <div class="dateDetail fr">
+      
+    </div>
+  </div>
+  <div class="partTitleT"></div>
+  <div class="grayLine"></div>
+  <div class="partWrap clearfix">
+
+      <div class="part01 fl">
+        <p class="partTitlePub clearfix">
+          <span class="name">出院人数统计</span>
+          <span class="personNum">总人数:</span>
+        </p>
+        <ul class="clearfix">
+          <li>
+            <p class="numShow died"></p>
+            <p class="explainNum">死亡人数</p>
+          </li>
+          <li class="li02">
+            <p class="numShow newborn"></p>
+            <p class="explainNum">新生儿人数</p>
+          </li>
+          <li class="li03">
+            <p class="numShow patientNum"></p>
+            <p class="explainNum">手术病人数</p>
+          </li>
+        </ul>
+        <div class="defect">
+          <p class="partTitlePub">各模块缺陷占比排名</p>
+          <div class="list">
+            <table class="qtable">
+  
+            </table>
+          </div>
+        </div>
+      </div>
+      <div class="part02 fl">
+        <ul class="bingli clearfix">
+          <li class="fst">
+            <p class="numShow"></p>
+            <p class="explainNum">累计质控病历数</p>
+          </li>
+          <li>
+            <p class="numShow"></p>
+            <p class="explainNum">甲级病历</p>
+          </li>
+          <li>
+            <p class="numShow"></p>
+            <p class="explainNum">乙级病历</p>
+          </li>
+          <li>
+            <p class="numShow"></p>
+            <p class="explainNum">丙级病历</p>
+          </li>
+        </ul>
+        <div class="bingliLis clearfix">
+          <p>病历评分等级占比</p>
+          <div class="panPartPub panPart02">
+            <div class="fen" id="fen01"></div>
+            <p>甲级占比</p>
+          </div>
+          <div class="panPartPub panPart01">
+            <div class="fen" id="fen02"></div>
+            <p>乙级占比</p>
+          </div>
+          <div class="panPartPub panPart03">
+            <div class="fen" id="fen03"></div>
+            <p>丙级占比</p>
+          </div>
+        </div>
+        <div class="circleB clearfix">
+          <p class="title">条目缺陷占比</p>
+          <div id="emptyCircleB" class="emptyCircle"></div>
+          <div class="explainPan explainPanB">
+            <table>
+              
+            </table>
+          </div>
+        </div>
+      </div>
+  </div>
+</body>
+</html>

+ 446 - 0
src/js/deptConsole.js

@@ -0,0 +1,446 @@
+const $ = require('jquery');
+require("../css/reset.less")
+require("../css/deptConsole.less")
+require("../images/logo.png")
+require("../images/arrow_down.png")
+
+// import 'zrender/lib/svg/svg';
+const echarts = require('echarts');
+const {post,setCookie,delCookie,getCookie} = require('../js/utils.js');
+let payMoney = [],dayLis = [],dateType = 1,slideType = 1;
+$(function(){
+    if(!hasData('YH-KZT')){
+        $("body").html('')
+    }
+    $(".partTitle p span").html(getCookie("hospital"))
+    setInterval(() => {
+        getTimeDetail()
+    }, 1000);
+    // resizeBox()
+    initConsole()//质控列表
+    getBarData()//图标数据获取
+    dateChange()
+    $(window).click(function(){
+        window.parent.userActionHide()
+        $(".toggleSlide ul").css("display","none")
+    })
+    let sildeIS = true
+    if(!hasData('FUNC000045')&&!hasData('FUNC000046')){
+        $(".toggleSlide").css("opacity","0.5")
+        sildeIS = false
+    }
+    $(".toggleSlide p").click(function(e){
+        if(!sildeIS)return
+        e.stopPropagation()
+        $(this).next().slideToggle()
+    })
+})
+//判断有无某一权限
+function hasData(data){
+    let lis = JSON.parse(getCookie("codeLis"))
+    // console.log(lis)
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+  }
+function resizeBox(){
+    $(".partWrap").css({
+        height:$(window).height()-38+'px'
+    })
+}
+//所有数据切换日期筛选
+function dateChange(){
+    $(".monthYear .mon").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        dateType = 1
+        getBarData(1)
+    })
+    $(".monthYear .year").click(function(){
+        $(this).css({
+            backgroundColor:'#5A8EEE',
+            color:'#fff'
+        }).siblings().css({
+            color:'#5A8EEE',
+            backgroundColor:'#fff'
+        })
+        dateType = 2
+        getBarData(2)
+    })
+}
+//控制台数
+function initConsole(result){
+    let url = {
+        '本月病历数':require("../images/icon6.png"),
+        '本月不合格病历-机器':require("../images/icon7.png"),
+        '本月质控数-机器':require("../images/icon10.png"),
+        '本月甲级病历-机器':require("../images/icon8.png"),
+        '本月乙级病历-机器':require("../images/icon9.png"),
+        '本年病历数':require("../images/icon6.png"),
+        '本年不合格病历-机器':require("../images/icon7.png"),
+        '本年质控数-机器':require("../images/icon10.png"),
+        '本年甲级病历-机器':require("../images/icon8.png"),
+        '本年乙级病历-机器':require("../images/icon9.png"),
+    }
+    let dom = '';
+    for(let i in result){
+        if(i.indexOf("人工")==-1){
+            let name = i.split("-")[0];
+            let num = 0;
+            if(name=='本月病历数'||name=='本年病历数'){
+                num = result[i]
+            }else{
+                num = result[name+'-人工']+result[i]
+            }
+            dom += `
+                <li class="partLi">
+                    <div class="partIn">
+                        <p class="top">${name}</p>
+                        <p class="btm clearfix">
+                        <img src="${url[i]}" alt="">
+                        <span>${num}</span>
+                        </p>
+                    </div>
+                </li>
+            `
+        }
+    }
+    $(".partAll").html(dom)
+}
+//获取图表数据
+function getBarData(type){
+    if(hasData('FUNC000049')){
+        // post('/consoleByDept/leaveHosCountByDept',{//出院人数统计
+        post('/console/leaveHosCount',{//出院人数统计
+            "type": type||1//1月2年
+        }).then((res)=>{
+            let data = res.data;
+            if(data.code == 0){
+                // console.log(data)
+                let result1 = data.data['出院人数统计']||[]
+                personNum(result1)
+            }
+        })
+    }
+    if(hasData('FUNC000050')){
+        // post('/consoleByDept/mrCountByDept',{//质控病历统计
+        post('/console/mrCount',{//质控病历统计
+            "type": type||1//1月2年
+        }).then((res)=>{
+            let data = res.data
+            if(data.code == 0){
+                let result3 = data.data['病历数统计']||[]
+                if(result3.length == 0){
+                    result3 = [
+                        {
+                            "id":null,
+                            "name":"累计质控病历数",
+                            "totleNum":0,
+                            "num":0,
+                            "percent":null,
+                            "percentStr":null
+                        },
+                        {
+                            "id":null,
+                            "name":"甲级病历",
+                            "totleNum":10,
+                            "num":0,
+                            "percent":0,
+                            "percentStr":"0.00%"
+                        },
+                        {
+                            "id":null,
+                            "name":"乙级病历",
+                            "totleNum":10,
+                            "num":0,
+                            "percent":0,
+                            "percentStr":"0.00%"
+                        },
+                        {
+                            "id":null,
+                            "name":"丙级病历",
+                            "totleNum":10,
+                            "num":0,
+                            "percent":0,
+                            "percentStr":"0.00%"
+                        }
+                    ]
+                }
+                setNumDetail(result3)
+            }
+        })
+    }
+    if(hasData('FUNC000051')){
+        // post('/consoleByDept/entryCountGroupByCaseAndDept',{//各模块缺陷占比排行
+        post('/console/entryCountGroupByCase',{//各模块缺陷占比排行
+            "type": type||1//1月2年
+        }).then((res)=>{
+            let data = res.data;
+            if(data.code == 0){
+                let result1 = data.data['各模块缺陷占比排行']||[]
+                queList(result1)
+            }
+        })
+    }
+    if(hasData('FUNC000052')){
+        // post('/consoleByDept/entryCountGroupByEntryAndDept',{//条目缺陷占比
+        post('/console/entryCountGroupByEntry',{//条目缺陷占比
+            "type": type||1//1月2年
+        }).then((res)=>{
+            let data = res.data;
+            if(data.code == 0){
+                let result3 = data.data['条目缺陷占比']||[]
+                for(let i = 0;i < result3.length;i++){
+                    result3[i].value = result3[i].num
+                }
+                emptyCircleB(result3)
+                panDetailB(result3)
+            }
+        })
+    }
+}
+//part01
+function personNum(data){
+    $(".personNum").html("总人数:"+data['总人数'])
+    $(".died").html(data['死亡人数'])
+    $(".newborn").html(data['新生儿人数'])
+    $(".patientNum").html(data['手术病人数'])
+}
+//part02
+function setNumDetail(data){
+    // console.log(data,2222222222)
+    if(data.length == 0)return
+    let str = ''
+    for(let i = 0;i < data.length;i++){
+        str += `
+            <li class="${i==0?'fst':''}">
+            <p class="numShow">${data[i].num}</p>
+            <p class="explainNum">${data[i].name}</p>
+            </li>
+        `
+        if(data[i].name == '甲级病历'){
+            let tmp = []
+            data[i].value = data[i].num
+            tmp.push(data[i])
+            tmp.push({percentStr:(1-data[i].percent)*100+'%',value:data[i].totleNum - data[i].num})
+            part02pan(tmp,'fen01')
+        }
+        if(data[i].name == '乙级病历'){
+            let tmp = []
+            data[i].value = data[i].num
+            tmp.push(data[i])
+            tmp.push({percentStr:(1-data[i].percent)*100+'%',value:data[i].totleNum - data[i].num})
+            part02pan(tmp,'fen02')
+        }
+        if(data[i].name == '丙级病历'){
+            let tmp = []
+            data[i].value = data[i].num
+            tmp.push(data[i])
+            tmp.push({percentStr:(1-data[i].percent)*100+'%',value:data[i].totleNum - data[i].num})
+            part02pan(tmp,'fen03')
+        }
+    }
+    $('.bingli').html(str)
+}
+//part02pan
+function part02pan(data,dom){
+    // console.log(data,33333)
+    dom = echarts.init(document.getElementById(dom));
+    $(window).resize(function(){
+        dom.resize()
+    });
+    let bgColor = '#fff';
+    let title = '总量';
+    let color = ['#37CBCB','#dedede'];
+    let echartData = data;
+    option = {
+        backgroundColor: bgColor,
+        color: color,
+        title: [{
+            text:'{val|' + echartData[0].percentStr + '}',
+            top: 'center',
+            left: 'center',
+            textStyle: {
+                rich: {
+                    val: {
+                        fontSize: 14,
+                        color: '#333',
+                        fontWeight: 'bold',
+                        padding: [10, 0]
+                    },
+                    name: {
+                        fontSize: 12,
+                        fontWeight: 'normal',
+                        color: '#777',
+                    }
+                }
+            }
+        }],
+        series: [{
+            name: '',
+            type: 'pie',
+            radius: ['70%', '90%'],
+            data: echartData,
+            hoverAnimation:false,
+            label: {
+                normal: {
+                    show:false,
+                }
+            },
+        }]
+    };      
+    dom.setOption(option);
+}
+//柱状图住院日期
+function emptyCircleB(data){
+    var myChart = echarts.init(document.getElementById('emptyCircleB'));
+    $(window).resize(function(){
+        myChart.resize()
+    });
+    let bgColor = '#fff';
+    let title = '总量';
+    let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
+    let echartData = data;
+    let total = 0;
+    for(let i = 0;i < echartData.length;i++){
+        total += echartData[i].num
+    }
+    option = {
+        backgroundColor: bgColor,
+        color: color,
+        title: [{
+            text: data.length>0?'{val|' + total + '}\n{name|' + title + '}':'',
+            top: 'center',
+            left: 'center',
+            textStyle: {
+                rich: {
+                    val: {
+                        fontSize: 24,
+                        color: '#333',
+                        fontWeight: 'bold',
+                        padding: [10, 0]
+                    },
+                    name: {
+                        fontSize: 12,
+                        fontWeight: 'normal',
+                        color: '#777',
+                    }
+                }
+            }
+        }],
+        tooltip: {
+            trigger: 'item',
+            position: 'right',
+            // formatter: '{b} : {c}  ({d}%)',
+            formatter:function(item){
+                const {name, num, percentStr} = item.data
+                return `${name} : ${num} (${percentStr})`
+            }
+        },
+        series: [{
+            name: '',
+            type: 'pie',
+            radius: ['70%', '90%'],
+            data: echartData,
+            hoverAnimation:true,
+            hoverOffset:5,
+            itemStyle: {
+                normal: {
+                    borderColor: bgColor,
+                    borderWidth: 2
+                }
+            },
+            labelLine: {
+                normal: {
+                    length: 20,
+                    length2: 120,
+                    lineStyle: {
+                        color: '#e6e6e6'
+                    }
+                }
+            },
+            label: {
+                normal: {
+                    show:false,
+                    formatter: params => {
+                        return params.name == 'A类'?params.name:''
+                    },
+                    padding: [0 , -100, 25, -100],
+                    rich: {
+                        icon: {
+                            fontSize: 16
+                        },
+                        name: {
+                            fontSize: 14,
+                            padding: [0, 10, 0, 4],
+                            color: '#666666'
+                        },
+                        value: {
+                            fontSize: 18,
+                            fontWeight: 'bold',
+                            color: '#333333'
+                        }
+                    }
+                }
+            },
+        }]
+    };      
+    myChart.setOption(option);
+}
+//缺陷列表渲染
+function queList(data){
+    let strAll = '',tmp = `mm
+        <tr class="thead">
+        <td class="td01">排名</td>
+        <td class="td02">缺陷详情</td>
+        <td class="td03">数量</td>
+        <td class="td04">占比</td>
+        </tr>`
+    for(let i = 0;i < data.length;i++){
+        strAll += `
+            <tr>
+                <td style="text-align:center;"><i style="background:${i < 3?'#bea571':'#eff3fc'};color:${i < 3?'#fff':'#999'};">${i+1}</i></td>
+                <td>${data[i].name}</td>
+                <td>${data[i].num}</td>
+                <td>${data[i].percentStr}</td>
+            </tr>
+        `
+    }
+    $(".qtable").html(tmp+strAll)
+}
+//饼图列表注释渲染
+function panDetailB(data){
+    let color = ['#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336','#F2637B','#975FE4', '#399FFF', '#37CBCB', '#4CCB73','#FAD336'];
+    let strAll = '';
+    for(let i = 0;i < data.length;i++){
+        strAll += `
+            <tr class="explainLi">
+                <td class="deptName" title="${data[i].name}">
+                    <p><i class="tip" style="background-color:${color[i]}"></i>${data[i].name}</p>
+                </td>
+                <td class="deptNum">${data[i].num}</td>
+                <td class="percent">(${data[i].percentStr})</td>
+            </tr>
+        `
+    }
+    $(".explainPanB table").html(strAll);
+    $(".explainPan").css({
+        marginTop:-($(".explainPan").height()/2-20)+'px'
+    })
+}
+//时间获取
+function getTimeDetail(){
+    const d = new Date();
+    const days = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
+    let sec = d.getSeconds()
+    let min = d.getMinutes()
+    let hour = d.getHours()
+    let str = `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日 / ${days[d.getDay()]} / ${hour>9?hour:'0'+hour}:${min>9?min:'0'+min}:${sec>9?sec:'0'+sec}`
+    $(".dateDetail").html(str)
+}