heyang 2 years ago
parent
commit
a2378d9aa5
7 changed files with 200 additions and 77 deletions
  1. 1 1
      .env.development
  2. 11 5
      .env.production
  3. 4 0
      src/api/http.js
  4. 1 1
      src/utils/request.js
  5. 113 27
      src/views/dangerDetail.vue
  6. 43 42
      src/views/home.vue
  7. 27 1
      src/views/labPersonDetail.vue

+ 1 - 1
.env.development

@@ -9,7 +9,7 @@ VUE_APP_ENV = 'development'
 # 韩
 # VUE_APP_BASE_API =  '192.168.1.20:8080'
 # 飞
-#VUE_APP_BASE_API =  '192.168.1.17:8080'
+# VUE_APP_BASE_API =  '192.168.1.17:8080'
 # 88服务器
 # VUE_APP_BASE_API = '192.168.1.88/labSystem'
 # 43服务器

+ 11 - 5
.env.production

@@ -22,13 +22,19 @@ VUE_APP_ENV = 'production'
 #VUE_APP_BASE_API = '192.168.1.248/labSystem/'
 # 矿大-南湖(线上)
 # VUE_APP_BASE_API = 'lab.sxitdlc.com/labSystem/'
-# 矿大-南湖(本地)
-#VUE_APP_BASE_API = '192.168.251.2/labSystem/'
+# 矿大-化工
+# VUE_APP_BASE_API = 'lab.sxitdlc.com/labSaasSystem/'
 # 43服务器
-# VUE_APP_BASE_API = '192.168.1.43/labSystem/'
+ VUE_APP_BASE_API = '192.168.1.43/labSystem/'
 # 苏大
-VUE_APP_BASE_API = 'znyj.labcenter.suda.edu.cn/labSystem/'
+#VUE_APP_BASE_API = 'znyj.labcenter.suda.edu.cn/labSystem/'
 
 # ####################内网接口配置####################
 # 苏大-内网
-VUE_APP_BASE_LOCAL_API = '10.20.10.7/labSystem/'
+#VUE_APP_BASE_LOCAL_API = '10.20.10.7/labSystem/'
+# 43
+VUE_APP_BASE_LOCAL_API = '192.168.1.43/labSystem/'
+# 矿大-南湖(本地)
+#VUE_APP_BASE_API = '192.168.251.2/labSystem/'
+# 矿大-化工
+# VUE_APP_BASE_API = 'lab.sxitdlc.com/labSaasSystem/'

+ 4 - 0
src/api/http.js

@@ -9,6 +9,8 @@ export const getLogoInfo = data => get("/system/logo/config/getLogoInfo",data)
 
 //安全隐患统计
 export const optionCharts = data => get("/laboratory/bigview/check/option/charts",data)
+//安全隐患统计-按实验室
+export const optionLabCharts = data => get("/laboratory/bigview/pitfallSubColumn",data)
 //人员违规统计
 export const newStatistics = data => get("/laboratory/violation/bigData/newStatistics",data)
 //安全准入办理统计
@@ -66,6 +68,8 @@ export const indexCheckDetalsWzg = data => get("/laboratory/checkRecordDetails/i
 export const indexCheckDetalsYzg = data => get("/laboratory/checkRecordDetails/indexCheckDetalsYzg",data)
 //进入实验室人员
 export const onlineByBigView = data => get("/laboratory/bigview/sub/onlineByBigView",data)
+//进入实验室人员tip列表查询
+export const onlineDetail = data => get("laboratory/bigview/sub/onlineDetail",data)
 //安全分级
 export const classifiedListAll = data => get("/laboratory/classified/listAll",data)
 //安全分类

+ 1 - 1
src/utils/request.js

@@ -37,7 +37,7 @@ axios.defaults.withCredentials = false;
 
 // 允许跨域
 axios.defaults.headers.post["Access-Control-Allow-Origin-Type"] = "*";
-//axios.defaults.headers.common["Authorization"] = 'Bearer 2a5d6288-c101-42b6-83a6-f3ffb11f822b';//`Bearer ${localStorage.getItem('access_token')`;
+//axios.defaults.headers.common["Authorization"] = 'Bearer 5c9a6c56-14f1-46b2-ba14-c7d203817a9c';//`Bearer ${localStorage.getItem('access_token')`;
 axios.defaults.headers.common["Authorization"] = 'Bearer '+localStorage.getItem('Authorization')+''
 
 //设置超时

+ 113 - 27
src/views/dangerDetail.vue

@@ -8,6 +8,9 @@
       </div>
       <div class="main_t_b" id="danger_chart"></div>
     </div>
+    <div class="main_btn">
+      <i :key="index"  :class='currentIndex==index?"active":""'  v-for="(item,index) in btnList" @click="btnFun(index)">{{item}}</i>
+    </div>
     <div class="main_b">
       <!--查询条件-->
       <el-form :model="editForm" ref="queryParams" class="form-box" :inline="true" style="margin:20px;">
@@ -78,7 +81,7 @@ import {
   departmentsList,
   getSubjectDict,
   optionChartDetails,
-  optionCharts
+  optionCharts, optionLabCharts
 } from "../api/http"
 import Header from '@/components/header.vue'
 export default {
@@ -97,15 +100,27 @@ export default {
         pageNum:1,
         pageSize:10
       },
+
       subjectOptions:[],//院系
       dangerList:[],//隐患类型
       labList:[],//实验室
       dateRange:[],//时间
       totalNum:0,
       tableData:[],
+      btnList:['按隐患类型统计','按实验室统计'],
+      currentIndex:0,
     }
   },
   methods: {
+    btnFun(index){
+      this.currentIndex = index
+      console.log(this.currentIndex)
+      if(this.currentIndex==0){
+        this.getAjaxData()
+      }else{
+        this.getLabAjaxData()
+      }
+    },
     back(){
       this.$router.push('/')
     },
@@ -120,6 +135,37 @@ export default {
     indexMethod(index) {
       return (this.editForm.pageNum - 1) * this.editForm.pageSize + index + 1;
     },
+    //隐患类型
+    checkOptionList:function () {
+      let _this=this;
+      checkOptionList({}).then((res) =>{
+        if(res.code==200){
+          let data=res.data;
+          _this.dangerList=data
+        }
+      })
+    },
+    //查询院系
+    departmentsList:function () {
+      let _this=this;
+      departmentsList().then((res) =>{
+        if(res.code==200){
+          let data=res.data;
+          _this.subjectOptions=data
+        }
+      })
+    },
+    //查询实验室
+    getSubjectDict:function () {
+      let _this=this;
+      getSubjectDict().then((res) =>{
+        if(res.code==200){
+          let data=res.data;
+          _this.labList=data
+
+        }
+      })
+    },
     //请求列表
     getAjaxList:function (){
       let _this=this;
@@ -146,6 +192,7 @@ export default {
         }
       })
     },
+    //查询图表
     getAjaxData: function () {
       let _this=this;
 
@@ -165,50 +212,45 @@ export default {
             dataX.push( data[i].optionName)
             dataCount.push(data[i].count)
           }
-          _this.safetyDetailFun(dataX,dataCount)
-
-        }
-      })
-
-      //隐患类型
-      checkOptionList({}).then((res) =>{
-        if(res.code==200){
-          let data=res.data;
-          _this.dangerList=data
-
-        }
-      })
+          _this.safetyDetailFun(dataX,dataCount,false)
 
-      //查询院系
-      departmentsList().then((res) =>{
-        if(res.code==200){
-          let data=res.data;
-          _this.subjectOptions=data
         }
       })
-      //查询实验室
-      getSubjectDict().then((res) =>{
+    },
+    getLabAjaxData: function () {
+      let _this=this;
+      //人员违规统计图表
+      let obj={
+        'pageNum':1,
+        'pageSize':50,
+      }
+      optionLabCharts(obj).then((res) =>{
         if(res.code==200){
+          let dataX=[];
+          let dataCount=[];
           let data=res.data;
-          _this.labList=data
+          for (var i = 0; i < data.length; i++) {
+            dataX.push( data[i].subName)
+            dataCount.push(data[i].count)
+          }
+          _this.safetyDetailFun(dataX,dataCount,true)
 
         }
       })
     },
     /*查询*/
     onSearch() {
-
       if(this.dateRange.length>0){
         this.editForm.beginTimeStr = this.dateRange[0];
         this.editForm.endTimeStr = this.dateRange[1];
       }
       this.editForm.pageNum =1;
+      this.currentIndex=0;
       this.getAjaxList();
       this.getAjaxData();
     },
     /*重置*/
     resetForm() {
-
       this.editForm.schoolDeptId = "";
       this.editForm.optionId = "";
       this.editForm.subId = "";
@@ -222,7 +264,7 @@ export default {
       this.getAjaxList();
     },
     /*安全隐患详情图表*/
-    safetyDetailFun:function (dataX,dataCount) {
+    safetyDetailFun:function (dataX,dataCount,SlideType) {
       let safetydetailOption = {
 
         color: ['#3398DB'],
@@ -235,7 +277,7 @@ export default {
         grid: {
           left: '3%',
           right: '4%',
-          bottom: '3%',
+          bottom: '8%',
           containLabel: true
         },
         xAxis : [
@@ -251,7 +293,7 @@ export default {
               formatter: function (params) {
                 var newParamsName = "";
                 var paramsNameNumber = params.length;
-                var provideNumber = 3;
+                var provideNumber = 6;
                 var rowNumber = Math.ceil(paramsNameNumber / provideNumber);
                 if (paramsNameNumber > provideNumber) {
                   for (var p = 0; p < rowNumber; p++) {
@@ -325,6 +367,21 @@ export default {
           }
 
         ],
+        dataZoom: [
+          {
+            type: "slider",
+            show: SlideType,
+            xAxisIndex: [0],
+            start: 0,
+            end: 50,
+            bottom:'-4%',
+            textStyle:{
+              color:"#ccd7d7"
+            }
+          },
+        ],
+
+
         series : [
           {
             name:'安全隐患',
@@ -362,6 +419,9 @@ export default {
     }
   },
   mounted() {
+    this.checkOptionList()
+    this.departmentsList()
+    this.getSubjectDict()
     this.getAjaxData()
     this.getAjaxList()
   },
@@ -397,6 +457,32 @@ export default {
   z-index: 50;
 
   background: #062338;
+  .main_btn{
+    position: absolute;
+    top: rh(140);
+    right: rw(102);
+    z-index: 1000;
+    width: rw(260);
+    height: rh(40);
+    border: 1px solid #1ED0F8;
+    border-radius: 0px rw(4) rh(4) 0px;
+    display: flex;
+    overflow: hidden;
+    >i{
+      flex: 1;
+      font-size: rh(14);
+      font-family: Microsoft YaHei;
+      font-weight: 400;
+      color: #999999;
+      background: none;
+      line-height:rh(40);
+      text-align: center;
+    }
+    .active{
+      color: #FFFFFF;
+      background: #1ED0F8;
+    }
+  }
 
   .header {
     width: 100%;

File diff suppressed because it is too large
+ 43 - 42
src/views/home.vue


+ 27 - 1
src/views/labPersonDetail.vue

@@ -53,6 +53,16 @@
                 <el-table-column align="center" header-align='center' prop="typeName" label="安全分类"></el-table-column>
                 <el-table-column align="center" header-align='center' prop="classifiedName" label="安全分级"></el-table-column>
                 <el-table-column align="center" header-align='center' prop="online" label="实验室人数"></el-table-column>
+                <el-table-column align="center" header-align='center' prop="groupUserName"  label="实验室人员">
+                  <template slot-scope="scope">
+                    <!-- 悬浮提示 -->
+                    <el-tooltip placement="left"  :open-delay="1000" effect="dark">
+                      <div slot="content"><i style="width: 80px;display: inline-block;color: #1ED0F8;">姓名</i> <i  style="width: 140px;display: inline-block;color: #1ED0F8;">签到时间</i></div>
+                      <div slot="content" :key="index" v-for="(item,index) in scope.row.groupLabPersonTip"><i style="width: 80px;display: inline-block;">{{item.name}}</i> <i style="width: 140px;display: inline-block;">{{item.time}}</i></div>
+                      <div>{{scope.row.groupLabPerson.substr(0, 20) + "..."}}</div>
+                    </el-tooltip>
+                  </template>
+                </el-table-column>
             </el-table>
             <el-pagination
                     style="margin-top: 14px"
@@ -69,7 +79,7 @@
 </template>
 
 <script>
-import {classifiedListAll, classtypeListAll, onlineByBigView,departmentsList,getSubjectDict} from "../api/http"
+import {classifiedListAll, classtypeListAll, onlineByBigView,departmentsList,getSubjectDict,onlineDetail} from "../api/http"
 import Header from '@/components/header.vue'
 export default {
   components: {
@@ -132,6 +142,22 @@ export default {
           let data = res.rows;
           if(data && data.length>0){
             _this.tableData = data;
+            let list=[];
+            let list2=[];
+            _this.tableData.forEach(function (item) {
+              list=item.groupUserName.split(',')//字符串逗号切割数组 [欧杨@@2023-04-03 16:15:46,王瑾@@2023-04-03 15:00:52]
+              let list3=[];
+              let list4=['欧杨','王瑾','欧杨','王瑾','欧杨','王瑾','欧杨','王瑾','欧杨','王瑾',];
+              list.forEach(function (item2) {
+                list2=item2.split('@@')//[欧杨,2023-04-03 16:15:46]
+                list3.push({name:list2[0],time:list2[1]})//获取名称和时间
+                list4.push(list2[0])//获取名称
+              })
+              item.groupLabPerson=list4.join(',')
+              item.groupLabPersonTip=list3
+            })
+            console.log(_this.tableData)
+
             _this.totalNum = parseInt(res.total);
           }else{
             _this.tableData = [];