Bläddra i källkod

Merge remote-tracking branch 'origin/byll_console' into qc_zn

# Conflicts:
#	webpack.config.js
zhouna 5 år sedan
förälder
incheckning
d72e66a9ff
8 ändrade filer med 161 tillägg och 34 borttagningar
  1. 3 1
      src/css/console.less
  2. 9 20
      src/html/console.html
  3. 1 1
      src/html/qcList.html
  4. 91 5
      src/js/console.js
  5. 26 2
      src/js/index.js
  6. 26 3
      src/js/qcList.js
  7. 2 1
      src/js/utils.js
  8. 3 1
      webpack.config.js

+ 3 - 1
src/css/console.less

@@ -88,13 +88,15 @@
   height: 44px;
   line-height: 44px;
   padding-left: 15px;
-  border-bottom: 1px solid #E2E5EF;
   font-size: 14px;
   font-weight: bold;
   letter-spacing: 1px;
   p {
     display: inline-block;
     font-size: 16px;
+    span {
+      font-size: 16px;
+    }
   }
   .monthYear {
     float: right;

+ 9 - 20
src/html/console.html

@@ -3,32 +3,22 @@
 <head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <!-- <link rel="stylesheet" href="./resource/swiper.css"> -->
   <title>Document</title>
 </head>
 <body >
-    <div class="partTitle">
-      <p>住院病案首页数据质量管理与控制指标</p>
-      <div class="monthYear">
-        <span class="mon">本月</span>
-        <span class="year">本年</span>
-      </div> 
-    </div>
+  <div class="partTitle">
+    <p><span></span>质控科数据概览</p>
+    <div class="monthYear">
+      <span class="mon">本月</span>
+      <span class="year">本年</span>
+    </div> 
+  </div>
+  <div id="lineChart" class="barChartPay"></div>
+  <div class="grayLine"></div>
   <div class="partWrap clearfix">
-    <!-- <div class="partTitles"></div> -->
     <ul class="clearfix partAll">
 
     </ul>
-    <!-- <div class="swiperWrap swiper-container">
-      <div class="swiper-wrapper">
-          <div class="swiper-slide"> Slide1</div>
-          <div class="swiper-slide"> Slide2</div>
-          <div class="swiper-slide"> Slide3</div>
-          <div class="swiper-slide"> Slide4</div>
-          <div class="swiper-slide"> Slide5</div>
-          <div class="swiper-slide"> Slide6</div>
-      </div>
-    </div> -->
     <div class="grayLine"></div>
     <div class="pubEchart paymoney">
       <p class="title">医院运行指标</p>
@@ -59,6 +49,5 @@
       </div>
     </div>
   </div>
-  <!-- <script src="./resource/swiper.min.js"></script> -->
 </body>
 </html>

+ 1 - 1
src/html/qcList.html

@@ -22,7 +22,7 @@
                     <span>病人姓名:</span>
                     <input class="patientNameInp" type="text" placeholder="请输入病人姓名">
                 </span>
-                <span class="filterItem typeFilter">
+                <span class="filterItem typeFilter deptListWrap">
                     <span>科室:</span>
                     <span class="selectDept"> 
                         全部

+ 91 - 5
src/js/console.js

@@ -5,7 +5,7 @@ require("../images/logo.png")
 
 // import 'zrender/lib/svg/svg';
 const echarts = require('echarts');
-const {post,setCookie,delCookie} = require('../js/utils.js');
+const {post,setCookie,delCookie,getCookie} = require('../js/utils.js');
 
 $(function(){
 //   var mySwiper = new Swiper('.swiper-container',{
@@ -16,6 +16,7 @@ $(function(){
     $(".partWrap").css({
         height:$(window).height()-38+'px'
     })
+    $(".partTitle p span").html(getCookie("hospital"))
   initConsole()//质控列表
   getBarData()//图标数据获取
   dateChange()
@@ -101,8 +102,8 @@ function getBarData(type){
     }).then((res)=>{
         let data = res.data;
         if(data.code == 0){
-            let result1 = data.data['平均住院费用']
-            let result2 = data.data['平均住院日']
+            let result1 = data.data['平均住院费用']||[]
+            let result2 = data.data['平均住院日']||[]
             let dataX1=[],dataY1=[],dataX2=[],dataY2=[];
             for(let i = 0;i < result1.length;i++){
                 dataX1.push(result1[i].deptName)
@@ -121,17 +122,102 @@ function getBarData(type){
     }).then((res)=>{
         let data = res.data;
         if(data.code == 0){
-            let result1 = data.data['缺陷排行列表']
-            let result2 = data.data['各科室缺陷占比']
+            let result1 = data.data['缺陷排行列表']||[]
+            let result2 = data.data['各科室缺陷占比']||[]
             for(let i = 0;i < result2.length;i++){
                 result2[i].value = result2[i].num
             }
             queList(result1)
             emptyCircle(result2)
             panDetail(result2)
+            lineChart()
         }
     })
+}
+//折现图
+function lineChart(dataX,dataY){
+    var myCharts = echarts.init(document.getElementById('lineChart'));
+    option = {
+        color:"#5A8EEE",
+        tooltip: {
+            trigger: 'axis'
+        },
+        toolbox: {
+            show: false,
+            feature: {
+                dataZoom: {
+                    yAxisIndex: 'none'
+                },
+                dataView: {readOnly: false},
+                magicType: {type: ['line', 'bar']},
+                restore: {
 
+                },
+                saveAsImage: {}
+            },
+            emphasis:{
+                iconStyle:{
+                    color:'red'
+                }
+            },
+        },
+        xAxis: {
+            type: 'category',
+            boundaryGap: false,
+            data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'],
+            axisLabel: {//x轴刻度
+                textStyle: {
+                    color: '#333'
+                },
+                rotate:'45'
+            },
+            axisLine: {//x轴
+                lineStyle:{
+                    color:'#AAAAAA'
+                }
+            }
+        },
+        yAxis: {
+            type: 'value',
+            axisLabel: {
+                formatter: '{value} °C',
+                textStyle: {
+                    color: '#333333'
+                }
+            },
+            
+            axisLine: {//y轴
+                show: false
+            },
+            axisTick: {
+                show: false
+            },
+            splitLine:{//分割线
+                lineStyle:{
+                    color:'#EFF3FC'
+                }
+            }
+        },
+        series: [
+            {
+                name: '最高气温',
+                type: 'line',
+                data: [11, 11, 15, 13, 12, 13, 10],
+                // markPoint: {
+                //     data: [
+                //         {type: 'max', name: '最大值'},
+                //         {type: 'min', name: '最小值'}
+                //     ]
+                // },
+                // markLine: {
+                //     data: [
+                //         {type: 'average', name: '平均值'}
+                //     ]
+                // }
+            }
+        ]
+    };
+    myCharts.setOption(option);
 }
 //柱状图住院费用
 function barChartPay(dataX,dataY){

+ 26 - 2
src/js/index.js

@@ -3,7 +3,7 @@ const $ = require('jquery');
 require('jquery-templates');
 const md5 = require('js-md5');
 require("./modal.js")
-const {api,post,pageMap,delCookie} = require('./utils.js');
+const {api,post,pageMap,delCookie,setCookie} = require('./utils.js');
 let userInfo={};
 $(function(){
   getMenu();
@@ -66,10 +66,34 @@ function getMenu(){
       const data = res.data.data;
       initMenu(data.menuWrappers,data.userLoginDTO);
       userInfo = data.userLoginDTO
+      setCookie("hospital",data.basHospitalInfoDTO.name)
+      getAllCode(data.menuWrappers)
     }
   });
 };
-
+function getAllCode(data){
+  let lis = []
+  for(let i = 0;i < data.length;i++){
+    let tmpSon = data[i]
+    lis.push(tmpSon.code)
+    if(tmpSon.subMenuList.length > 0){//三层
+      for(let j = 0;j<tmpSon.subMenuList.length;j++){//第二层循环
+        let tmpGrandSon = tmpSon.subMenuList[j]
+        lis.push(tmpGrandSon.code)
+        for(let m = 0;m < tmpGrandSon.sysUserPermissionDTOList.length;m++){
+          let tmpData = tmpGrandSon.sysUserPermissionDTOList[m]
+          lis.push(tmpData.code)
+        }
+      }
+    }else{//两层
+      for(let n = 0;n < tmpSon.sysUserPermissionDTOList.length;n++){
+        let tmpData = tmpSon.sysUserPermissionDTOList[n]
+        lis.push(tmpData.code)
+      }
+    }
+  }
+  setCookie("codeLis",JSON.stringify(lis))
+}
 function sureChangeWord(){
   $(document).on('click','.sureChange',function(){
     let oldword = $(".oldword").val().trim()

+ 26 - 3
src/js/qcList.js

@@ -2,7 +2,7 @@ const $ = require('jquery');
 require("../css/qcList.less");
 require('./modal.js');
 const {api} = require('./api.js')
-const {post} = require('./utils.js')
+const {post,getCookie} = require('./utils.js')
 require('./../resource/jquery-ui/jquery-ui.min.js');
 require('./../resource/jquery-ui/jquery-ui.min.css');
 const iconCheck= require("./../images/icon_check.png")
@@ -31,6 +31,16 @@ $('.iconCalen').on("mouseleave", function(e){
 $('.iconCalen').on("click", function(e){
     $(this).parent().find("input").focus()
 })
+$('.recordScoreBtn').css("opacity",hasData('FUNC000017')?'1':'0.5')
+
+//判断有无某一权限
+function hasData(data){
+    let lis = JSON.parse(getCookie("codeLis"))
+    if(lis.indexOf(data)>-1){//有权限
+        return true
+    }
+    return false;
+  }
 function getTabData(activePage){
     const param = {
         current:activePage,
@@ -103,7 +113,7 @@ function renderTab(data,hisId){
         str += `
             <tr  data-index=${i}>
                 <td class="scoreOperaItem textCenter">${item.hasSelect ? `<img class="iconCheck" src=${iconCheck} />`:`<img class="iconCheck" src=${iconUnCheck} />`}</td>
-                <td  class="recordScoreOperaBtn textCenter">评分</td>
+                <td  class="recordScoreOperaBtn textCenter" style="opacity:${hasData('FUNC000017')?'1':'0.5'}">评分</td>
                 <td >${item.behospitalCode || "-"}</td>
                 <td>${item.fileCode || "-"}</td>
                 <td  class="textCenter"><span  data-index=${i} class="patientNameSpan">${item.name || "-"}<span></td>
@@ -196,6 +206,9 @@ function bindScoreOperaItem(){
 }
 function bindRecordScoreOper(){
     $(".recordScoreOperaBtn").on("click",  function(e){
+        if(!hasData('FUNC000017')){
+            return
+        }
         const index = $(this).parent().attr("data-index")
         const behospitalCode = tabList[index].behospitalCode
         loading()
@@ -220,6 +233,9 @@ function bindOperaAll(){
 }
 
 $('.selectDept').on("click", function(e){
+    if($(this).prev().html() == '科室:'&&!hasData("FUNC000030")){
+        return
+    }
     e.stopPropagation()
     $(".levelList ").css("display","none")
     $(".selectLevel .arrow").attr("src",iconDown)
@@ -234,7 +250,11 @@ $('.selectDept').on("click", function(e){
 })
 
 //获取科室列表
-getDeptList()
+if(hasData("FUNC000030")){
+    getDeptList()
+}else{
+    $(".deptListWrap").css("opacity","0.5")
+}
 function getDeptList(){
     post(api.getDeptList,{inputStr:""}).then(res =>{
         if(res.data.code == '0'){
@@ -285,6 +305,9 @@ function hideLoading(){
     $("#mainBox .loadingBox", parent.document).remove()
 }
 $('.recordScoreBtn').on("click",function(e){
+    if(!hasData('FUNC000017')){
+        return
+    }
     let scoreList = []
     for(let i = 0; i <tabList.length; i++){
         if(tabList[i].hasSelect){

+ 2 - 1
src/js/utils.js

@@ -152,6 +152,7 @@ $(window).resize(function(){
   setBoxHeight();
 });
 
+
 module.exports = {
   pageMap,
   api,
@@ -161,5 +162,5 @@ module.exports = {
   setCookie,
   getCookie,
   delCookie,
-  setBoxHeight,
+  setBoxHeight
 };

+ 3 - 1
webpack.config.js

@@ -6,8 +6,10 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const CopyWebpackPlugin = require('copy-webpack-plugin');
 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
 const webpack = require('webpack');
-const proxyHost = "http://192.168.2.241:5858";
+const proxyHost = "http://192.168.2.236:5858";
+// const proxyHost = "http://192.168.2.241:5858";
 // const proxyHost = "http://192.168.3.117:5858";//铁钢
+// const proxyHost = "http://192.168.3.113:5858";//王峰
 module.exports = {
   entry: {
     index: path.resolve(__dirname, 'src/js', 'index.js'),