|
@@ -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%;
|