安全教育
This commit is contained in:
parent
e28b562b84
commit
140a53a773
@ -6,15 +6,15 @@
|
|||||||
|
|
||||||
<div class="textDivBox">
|
<div class="textDivBox">
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>67</span>
|
<span>{{threeLevel.projectWorkerNumber}}</span>
|
||||||
<p>项目总人数</p>
|
<p>项目总人数</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>51</span>
|
<span>{{threeLevel.projectTrainWorkerNumber}}</span>
|
||||||
<p>项目培训人数</p>
|
<p>项目培训人数</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>46.79%</span>
|
<span>{{threeLevel.projectTrainRatio}}%</span>
|
||||||
<p>项目培训率</p>
|
<p>项目培训率</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -28,11 +28,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tbody">
|
<div class="tbody">
|
||||||
<vue-scroll>
|
<vue-scroll>
|
||||||
<div class="row" v-for="i in 20" :key="i">
|
<div class="row" v-for="i in threeLevel.workerSafeEducationList" :key="i.id">
|
||||||
<div class="td">每日安全交底</div>
|
<div class="td">{{i.eduCourseName}}</div>
|
||||||
<div class="td">缪维彪</div>
|
<div class="td">{{i.eduTeacher}}</div>
|
||||||
<div class="td">45</div>
|
<div class="td">{{(i.eduClasshour!=0?i.eduClasshour/60:0)}}</div>
|
||||||
<div class="td">2022-09-28</div>
|
<div class="td">{{i.eduTime}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="row" v-if="threeLevel.workerSafeEducationList.length==0">
|
||||||
|
<div style="font-size:14px;color: #999;text-align: center;width: 100%;">暂无数据</div>
|
||||||
</div>
|
</div>
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
</div>
|
</div>
|
||||||
@ -43,11 +46,11 @@
|
|||||||
|
|
||||||
<div class="textDivBox">
|
<div class="textDivBox">
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>3次</span>
|
<span>{{shouting.allCount}}</span>
|
||||||
<p>今日班前喊话次数</p>
|
<p>今日班前喊话次数</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>12</span>
|
<span>{{shouting.todayCount}}</span>
|
||||||
<p>班前喊话次数</p>
|
<p>班前喊话次数</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -61,11 +64,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tbody">
|
<div class="tbody">
|
||||||
<vue-scroll>
|
<vue-scroll>
|
||||||
<div class="row" v-for="(item,index) in imgList" :key="index">
|
<div class="row" v-for="(item,index) in shouting.shoutInfoList" :key="index">
|
||||||
<div class="td">{{item.time}}</div>
|
<div class="td">{{item.shoutTime}}</div>
|
||||||
<div class="td">{{item.names}}</div>
|
<div class="td">{{item.dutyUserName}}</div>
|
||||||
<div class="td">{{item.team}}</div>
|
<div class="td">{{item.teamName}}</div>
|
||||||
<div class="td"><img :src="item.src" /></div>
|
<div class="td"><img :src="item.shoutImage" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row" v-if="shouting.shoutInfoList.length==0">
|
||||||
|
<div style="font-size:14px;color: #999;text-align: center;width: 100%;">暂无数据</div>
|
||||||
</div>
|
</div>
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
</div>
|
</div>
|
||||||
@ -80,19 +86,19 @@
|
|||||||
|
|
||||||
<div class="textDivBox">
|
<div class="textDivBox">
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>67次</span>
|
<span>{{safetyDisclosure.trainNumber}}次</span>
|
||||||
<p>培训次数</p>
|
<p>培训次数</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>23次</span>
|
<span>{{safetyDisclosure.specialOperationsNumber}}次</span>
|
||||||
<p>特种作业</p>
|
<p>特种作业</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>11次</span>
|
<span>{{safetyDisclosure.disclosureInRainySeasonNumber}}次</span>
|
||||||
<p>雨季交底</p>
|
<p>雨季交底</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="textDiv">
|
<div class="textDiv">
|
||||||
<span>26次</span>
|
<span>{{safetyDisclosure.electricityDisclosureNumber}}次</span>
|
||||||
<p>用电交底</p>
|
<p>用电交底</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -106,11 +112,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tbody">
|
<div class="tbody">
|
||||||
<vue-scroll>
|
<vue-scroll>
|
||||||
<div class="row" v-for="i in 20" :key="i">
|
<div class="row" v-for="i in safetyDisclosure.workerSafeEducationList" :key="i.id">
|
||||||
<div class="td">每日安全交底</div>
|
<div class="td">{{i.eduCourseName}}</div>
|
||||||
<div class="td">钢筋交底</div>
|
<div class="td">{{i.eduTypeList[i.eduType]}}</div>
|
||||||
<div class="td">缪维彪</div>
|
<div class="td">{{i.eduTeacher}}</div>
|
||||||
<div class="td">2022-09-28</div>
|
<div class="td">{{i.eduTime}}</div>
|
||||||
|
</div>
|
||||||
|
<div class="row" v-if="safetyDisclosure.workerSafeEducationList.length==0">
|
||||||
|
<div style="font-size:14px;color: #999;text-align: center;width: 100%;">暂无数据</div>
|
||||||
</div>
|
</div>
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
</div>
|
</div>
|
||||||
@ -122,29 +131,60 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Card from '../components/Card.vue'
|
import Card from '../components/Card.vue'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import {getThreeLevelDataByProjectSnApi,getSecurityDataByProjectSnApi,getTodayInfoByProjectSnApi} from '@/assets/js/api/zhongjianFourth'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Card
|
Card
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
imgList: [
|
|
||||||
{ src:require("../assets/images/common/bg_fmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_wmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_wmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_kmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_fmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_pmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_rmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_dmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_bmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_amk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_nmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
{ src:require("../assets/images/common/bg_nmk.png"),time:"2022-09-28", names:"缪维彪",team:"钢筋班组"},
|
|
||||||
|
|
||||||
]
|
threeLevel:{
|
||||||
|
workerSafeEducationList:[]
|
||||||
|
},
|
||||||
|
safetyDisclosure:{
|
||||||
|
workerSafeEducationList:[]
|
||||||
|
},
|
||||||
|
shouting:{
|
||||||
|
shoutInfoList:[]
|
||||||
|
},
|
||||||
|
eduTypeList:{
|
||||||
|
1:'入场三级教育',2:'定期安全教育',3:'日常安全交底',4:'VR安全教育',5:'班前教育',6:'日常教育(日常违规教育)',7:'每日交底(方案交底)',8:'每日交底(安全技术交底)',9:'每日交底(大工程交底)',10:'入职培训'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(['projectSn']),
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getThreeLevelDataByProjectSn();
|
||||||
|
this.getSecurityDataByProjectSn();
|
||||||
|
this.getTodayInfoByProjectSn();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 进场三级交底
|
||||||
|
getThreeLevelDataByProjectSn(){
|
||||||
|
getThreeLevelDataByProjectSnApi({projectSn:this.projectSn}).then(res=>{
|
||||||
|
console.log(res,'getThreeLevelDataByProjectSn')
|
||||||
|
this.threeLevel=res.result;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//安全交底
|
||||||
|
getSecurityDataByProjectSn(){
|
||||||
|
getSecurityDataByProjectSnApi({projectSn:this.projectSn}).then(res=>{
|
||||||
|
console.log(res,'getThreeLevelDataByProjectSn')
|
||||||
|
this.safetyDisclosure=res.result;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//班前喊话
|
||||||
|
getTodayInfoByProjectSn(){
|
||||||
|
getTodayInfoByProjectSnApi({projectSn:this.projectSn}).then(res=>{
|
||||||
|
console.log(res,'getTodayInfoByProjectSnApi')
|
||||||
|
this.shouting=res.result;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -10,12 +10,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tbody">
|
<div class="tbody">
|
||||||
<vue-scroll>
|
<vue-scroll>
|
||||||
<div class="row" v-for="(item,index) in aiList" :key="index">
|
<div class="row" v-for="(item, index) in aiList" :key="index">
|
||||||
<div>
|
<div>
|
||||||
<img :src= item.src />
|
<img :src=item.imageUrl />
|
||||||
</div>
|
</div>
|
||||||
<div class="carNum">{{item.thingType}}</div>
|
<div class="carNum">{{ alarmTypeList[item.thingType] }}</div>
|
||||||
<div class="datetime">{{item.time}}</div>
|
<div class="datetime">{{ item.createTime }}</div>
|
||||||
</div>
|
</div>
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
</div>
|
</div>
|
||||||
@ -25,18 +25,39 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Card from "../components/Card.vue";
|
import Card from "../components/Card.vue";
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import {
|
||||||
|
|
||||||
|
selectNewPAiListApi
|
||||||
|
} from '@/assets/js/api/zhongjianFourth'
|
||||||
export default {
|
export default {
|
||||||
components: { Card },
|
components: { Card },
|
||||||
data(){
|
data() {
|
||||||
return{
|
return {
|
||||||
aiList:[
|
alarmTypeList: {
|
||||||
{ src:require("../assets/images/common/bg_smk.png"),thingType:"上班抽烟", time: "2022-01-23 15:30" },
|
1: '烟感', 2: '明火', 3: '人员倒地', 4: '未戴安全帽', 5: '区域入侵', 6: '越界入侵', 7: '人员聚集衣', 8: '反光衣', 9: '裸土覆盖', 13: '口罩识别', 14: '徘徊预警', 15: '物体滞留监测', 16: '绊线监测'
|
||||||
{ src:require("../assets/images/common/bg_omk.png"),thingType:"未戴安全帽", time: "2022-01-23 15:30" },
|
},
|
||||||
{ src:require("../assets/images/common/bg_ymk.png"),thingType:"未穿反光衣", time: "2022-01-23 15:30" },
|
aiList: [
|
||||||
{ src:require("../assets/images/common/bg_ymk.png"),thingType:"未穿反光衣", time: "2022-01-23 15:30" },
|
{ imageUrl: require("../assets/images/common/bg_smk.png"), thingType: "3", createTime: "2022-01-23 15:30" },
|
||||||
|
{ imageUrl: require("../assets/images/common/bg_omk.png"), thingType: "2", createTime: "2022-01-23 15:30" },
|
||||||
|
{ imageUrl: require("../assets/images/common/bg_ymk.png"), thingType: "6", createTime: "2022-01-23 15:30" },
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapState(['projectSn']),
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getSelectNewPAiListApi()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getSelectNewPAiListApi() {
|
||||||
|
selectNewPAiListApi({ projectSn: this.projectSn, count: 20 }).then(res => {
|
||||||
|
console.log(res, '=============ai分析')
|
||||||
|
this.aiList = res.result.length>0?res.result:this.aiList;
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -45,32 +66,41 @@ export default {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
||||||
.thead {
|
.thead {
|
||||||
height: 36px;
|
height: 36px;
|
||||||
line-height: 36px;
|
line-height: 36px;
|
||||||
color: #59b2c0;
|
color: #59b2c0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tbody {
|
.tbody {
|
||||||
height: calc(100% - 30px);
|
height: calc(100% - 30px);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div {
|
div {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
|
|||||||
@ -3,13 +3,10 @@
|
|||||||
<div class="charts">
|
<div class="charts">
|
||||||
<div class="dllm">
|
<div class="dllm">
|
||||||
<div class="woria">
|
<div class="woria">
|
||||||
<JRingChart
|
<JRingChart :title="{ text: '安全隐患', subTitle: `${safetyPatrolInspection.allTotalNum}件`, fontSize: 18 }"
|
||||||
:title="{ text: '安全隐患', subTitle: `${todayInspection.totalNum}件`, fontSize: 18 }"
|
|
||||||
:color="['#6EE4F0', '#E7622A']"
|
:color="['#6EE4F0', '#E7622A']"
|
||||||
:data="[{ value: safetyPeril.rectificationNum, name:'已处理' }, { value: safetyPeril.noRectificationNum, name:'未处理' }]"
|
:data="[{ value: safetyPatrolInspection.allRectificationNum, name: '已处理' }, { value: safetyPatrolInspection.allNoRectificationNum, name: '未处理' }]"
|
||||||
:radius="['60%', '85%']"
|
:radius="['60%', '85%']" :legend="false" />
|
||||||
:legend="false"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="legend">
|
<div class="legend">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -17,8 +14,8 @@
|
|||||||
<span>占比</span>
|
<span>占比</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span>{{ safetyPeril.rectificationNum || 0 }}</span>
|
<span>{{ safetyPatrolInspection.allRectificationNum || 0 }}</span>
|
||||||
<span>{{ safetyPeril.rectificationRatio || 0 }}%</span>
|
<span>{{ safetyPatrolInspection.allRectificationRatio || 0 }}%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="legend">
|
<div class="legend">
|
||||||
@ -27,20 +24,17 @@
|
|||||||
<span>占比</span>
|
<span>占比</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span>{{ safetyPeril.noRectificationNum || 0 }}</span>
|
<span>{{ safetyPatrolInspection.allNoRectificationNum || 0 }}</span>
|
||||||
<span>{{ safetyPeril.noRectificationRatio || 0 }}%</span>
|
<span>{{ safetyPatrolInspection.noRectificationRatio || 0 }}%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dllm">
|
<div class="dllm">
|
||||||
<div class="woria">
|
<div class="woria">
|
||||||
<JRingChart
|
<JRingChart :title="{ text: '今日隐患', subTitle: `${safetyPatrolInspection.todayTotalNum}件`, fontSize: 18 }"
|
||||||
:title="{ text: '今日巡检', subTitle: `${todayInspection.totalNum}件`, fontSize: 18 }"
|
|
||||||
:color="['#6EE4F0', '#E7622A']"
|
:color="['#6EE4F0', '#E7622A']"
|
||||||
:data="[{ value: todayInspection.rectificationNum, name:'已巡检' }, { value: todayInspection.noRectificationNum, name:'未巡检' }]"
|
:data="[{ value: safetyPatrolInspection.todayRectificationNum, name: '已巡检' }, { value: safetyPatrolInspection.todayNoRectificationRatio, name: '未巡检' }]"
|
||||||
:radius="['60%', '85%']"
|
:radius="['60%', '85%']" :legend="false" />
|
||||||
:legend="false"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="legend">
|
<div class="legend">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@ -48,8 +42,8 @@
|
|||||||
<span>占比</span>
|
<span>占比</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span>{{ todayInspection.rectificationNum || 0 }}</span>
|
<span>{{ safetyPatrolInspection.todayRectificationNum || 0 }}</span>
|
||||||
<span>{{ todayInspection.rectificationRatio || 0 }}%</span>
|
<span>{{ safetyPatrolInspection.todayRectificationRatio || 0 }}%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="legend">
|
<div class="legend">
|
||||||
@ -58,8 +52,8 @@
|
|||||||
<span>占比</span>
|
<span>占比</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<span>{{ todayInspection.noRectificationNum || 0 }}</span>
|
<span>{{ safetyPatrolInspection.todayNoRectificationRatio || 0 }}</span>
|
||||||
<span>{{ todayInspection.noRectificationRatio || 0 }}%</span>
|
<span>{{ safetyPatrolInspection.todayNoRectificationRatio || 0 }}%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -74,11 +68,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="tbody">
|
<div class="tbody">
|
||||||
<vue-scroll>
|
<vue-scroll>
|
||||||
<div class="row" :class="fmtStatusColor(item.status)" v-for="(item, index) in list" :key="index">
|
<div class="row" :class="fmtStatusColor(item.status)"
|
||||||
<div class="td">{{ fmtType(item.type) }}</div>
|
v-for="(item, index) in safetyPatrolInspection.hiddenDangerInspectRecordList" :key="index">
|
||||||
<div class="td">{{ item.datetime }}</div>
|
<div class="td">{{ fmtType(item.recordType) }}</div>
|
||||||
|
<div class="td">{{ item.inspectTime }}</div>
|
||||||
<div class="td" :class="fmtStatusColor(item.status)">{{ fmtStatus(item.status) }}</div>
|
<div class="td" :class="fmtStatusColor(item.status)">{{ fmtStatus(item.status) }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row" v-if="safetyPatrolInspection.hiddenDangerInspectRecordList.length == 0">
|
||||||
|
<div style="font-size:14px;color: #999;text-align: center;width: 100%;">暂无数据</div>
|
||||||
|
</div>
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -87,9 +85,9 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {
|
import {
|
||||||
// getSafetyPerilInfo,
|
getAllTodayDataHdirApi,
|
||||||
getTodayInspectionInfo
|
getTodayInspectionInfo
|
||||||
} from '@/assets/js/api/zhongjianFourth'
|
} from '@/assets/js/api/zhongjianFourth'
|
||||||
import { mapState } from 'vuex'
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
import Card from '../components/Card.vue'
|
import Card from '../components/Card.vue'
|
||||||
@ -98,6 +96,9 @@ export default {
|
|||||||
components: { Card, JRingChart },
|
components: { Card, JRingChart },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
safetyPatrolInspection: {
|
||||||
|
hiddenDangerInspectRecordList:[]
|
||||||
|
},
|
||||||
// 安全隐患
|
// 安全隐患
|
||||||
safetyPeril: {
|
safetyPeril: {
|
||||||
rectificationNum: 0,
|
rectificationNum: 0,
|
||||||
@ -125,12 +126,19 @@ export default {
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// this.getSafetyPerilInfo()
|
// this.getSafetyPerilInfo()
|
||||||
this.getTodayInspectionInfo()
|
this.getTodayInspectionInfo();
|
||||||
|
this.getAllTodayDataHdir();
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapState(['projectSn']),
|
...mapState(['projectSn']),
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getAllTodayDataHdir() {
|
||||||
|
getAllTodayDataHdirApi({ projectSn: this.projectSn }).then(res => {
|
||||||
|
console.log(res, 'getAllTodayDataHdir')
|
||||||
|
this.safetyPatrolInspection = res.result
|
||||||
|
})
|
||||||
|
},
|
||||||
// /** 查询安全隐患数据 */
|
// /** 查询安全隐患数据 */
|
||||||
// getSafetyPerilInfo() {
|
// getSafetyPerilInfo() {
|
||||||
// getSafetyPerilInfo({ projectSn: this.projectSn }).then(res => {
|
// getSafetyPerilInfo({ projectSn: this.projectSn }).then(res => {
|
||||||
@ -152,10 +160,11 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
fmtType(type) {
|
fmtType(type) {
|
||||||
return type === 1 ? '物料堆放' : type === 2 ? '未戴安全帽' : type === 3 ? '未穿反光衣' : '--'
|
return type == 1 ? '隐患问题' : type == 2 ? '排查记录' : ''
|
||||||
|
// return type === 1 ? '物料堆放' : type === 2 ? '未戴安全帽' : type === 3 ? '未穿反光衣' : '--'
|
||||||
},
|
},
|
||||||
fmtStatus(status) {
|
fmtStatus(status) {
|
||||||
return status === 1 ? '未处理' : status === 2 ? '已处理' : status === 3 ? '整改中' : '--'
|
return status === 1 ? '无需整改' : status === 2 ? '待整改' : status === 3 ? '待复查' : status === 4 ? '合格' : status === 5 ? '不合格' : ''
|
||||||
},
|
},
|
||||||
fmtStatusColor(status) {
|
fmtStatusColor(status) {
|
||||||
return status === 1 ? 'orange' : status === 2 ? 'green' : status === 3 ? 'blue' : ''
|
return status === 1 ? 'orange' : status === 2 ? 'green' : status === 3 ? 'blue' : ''
|
||||||
@ -170,19 +179,23 @@ export default {
|
|||||||
height: 47%;
|
height: 47%;
|
||||||
display: flex;
|
display: flex;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
||||||
.dllm {
|
.dllm {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.woria {
|
.woria {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 92px);
|
height: calc(100% - 92px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.legend {
|
.legend {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -192,30 +205,38 @@ export default {
|
|||||||
height: 6px;
|
height: 6px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(2)::before {
|
&:nth-child(2)::before {
|
||||||
width: 12px;
|
width: 12px;
|
||||||
height: 12px;
|
height: 12px;
|
||||||
background-color: #6ee4ef;
|
background-color: #6ee4ef;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(3)::before {
|
&:nth-child(3)::before {
|
||||||
width: 12px;
|
width: 12px;
|
||||||
height: 12px;
|
height: 12px;
|
||||||
background-color: #e7622a;
|
background-color: #e7622a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
width: 60%;
|
width: 60%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
width: 40%;
|
width: 40%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:first-child {
|
&:first-child {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
@ -226,24 +247,30 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.security-list {
|
.security-list {
|
||||||
margin-top: 3%;
|
margin-top: 3%;
|
||||||
height: 48%;
|
height: 48%;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
||||||
.thead {
|
.thead {
|
||||||
color: #6ae3eb;
|
color: #6ae3eb;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tbody {
|
.tbody {
|
||||||
height: calc(100% - 50px);
|
height: calc(100% - 50px);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.row {
|
.row {
|
||||||
width: 98%;
|
width: 98%;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
&.orange {
|
&.orange {
|
||||||
|
|
||||||
//background: linear-gradient(90deg, #356f83, #213c4f);
|
//background: linear-gradient(90deg, #356f83, #213c4f);
|
||||||
&::before {
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
@ -252,23 +279,30 @@ export default {
|
|||||||
// background-color: #67d4d9;
|
// background-color: #67d4d9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.td {
|
.td {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&:nth-child(1) {
|
&:nth-child(1) {
|
||||||
width: 28%;
|
width: 28%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(2) {
|
&:nth-child(2) {
|
||||||
width: calc(72% - 80px);
|
width: calc(72% - 80px);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(3) {
|
&:nth-child(3) {
|
||||||
width: 80px;
|
width: 80px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.orange {
|
&.orange {
|
||||||
color: #e7622a;
|
color: #e7622a;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.green {
|
&.green {
|
||||||
color: #40cdad;
|
color: #40cdad;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.blue {
|
&.blue {
|
||||||
color: #64ccd9;
|
color: #64ccd9;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,33 @@
|
|||||||
<template>
|
<template>
|
||||||
<Card title="设备监控">
|
<Card title="设备监控">
|
||||||
<div class="devices">
|
<div class="devices">
|
||||||
<vue-scroll>
|
<div class="">
|
||||||
<div class="device" v-for="i in 5" :key="i">
|
<div class="flex between devList">
|
||||||
<div class="device-name">空压机{{i}}</div>
|
<div v-for="(item, index) in devList" :key="index" @click="selectDev(item.val,index)" class="devItem">
|
||||||
|
<span :class="selectDevVal==item.val?'that_class':''" >
|
||||||
|
{{ item.tit }}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<vue-scroll style="height:calc(100% - 52px)">
|
||||||
|
<!-- ai设备 -->
|
||||||
|
<aiDev v-if="devindex==0" :list="viewlist"></aiDev>
|
||||||
|
<!-- 电箱 -->
|
||||||
|
<electrical :list="viewlist" v-if="(devindex==2)"></electrical>
|
||||||
|
<!-- 绿色设备 -->
|
||||||
|
<environmentDevList :list="viewlist" v-if="(devindex==3)"></environmentDevList>
|
||||||
|
<!-- 升降机 -->
|
||||||
|
<lifterList :list="viewlist" v-if="(devindex==4)"></lifterList>
|
||||||
|
<!-- 塔吊 -->
|
||||||
|
<towerList :list="viewlist" v-if="(devindex==5)"></towerList>
|
||||||
|
<!-- 摄像 -->
|
||||||
|
<videoItemList :list="viewlist" v-if="(devindex==6)"></videoItemList>
|
||||||
|
|
||||||
|
<!-- <div class="device" v-for="i in 5" :key="i">
|
||||||
|
<div class="device-name">空压机{{ i }}</div>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<img class="image" src="../assets/images/common/bg_kyj.png" />
|
<img class="image" src="../assets/images/common/bg_kyj.png" />
|
||||||
<div class="detail">
|
<div class="detail">
|
||||||
@ -15,39 +39,149 @@
|
|||||||
<div class="detail-item">漏电流:99A</div>
|
<div class="detail-item">漏电流:99A</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
</div>
|
</div>
|
||||||
</Card>
|
</Card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Card from '../components/Card.vue'
|
import { getAllDevApi } from '@/assets/js/api/zhongjianFourth';
|
||||||
|
import { mapState } from 'vuex';
|
||||||
|
import aiDev from './rightTopComponents/aiDevList.vue'
|
||||||
|
import electrical from './rightTopComponents/electrical.vue'
|
||||||
|
import environmentDevList from './rightTopComponents/environmentDevList.vue'
|
||||||
|
import lifterList from './rightTopComponents/lifterList.vue'
|
||||||
|
import towerList from './rightTopComponents/towerList.vue'
|
||||||
|
import videoItemList from './rightTopComponents/videoItemList.vue'
|
||||||
|
import Card from '../components/Card.vue';
|
||||||
export default {
|
export default {
|
||||||
components: { Card }
|
components: { Card,aiDev,electrical,environmentDevList,lifterList,towerList,videoItemList},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
viewlist:[],
|
||||||
|
devList: [
|
||||||
|
{
|
||||||
|
tit: 'AI设备',
|
||||||
|
val: 1,
|
||||||
|
key:'aiList'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tit: '车辆',
|
||||||
|
val: 2,
|
||||||
|
key:'carList'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tit: '电箱',
|
||||||
|
val: 3,
|
||||||
|
key:'electricalDevList',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tit: '绿色设备',
|
||||||
|
val: 4,
|
||||||
|
key:'environmentDevList',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tit: '升降机',
|
||||||
|
val: 5,
|
||||||
|
key:'lifterList'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tit: '塔吊',
|
||||||
|
val: 6,
|
||||||
|
key:'towerList'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tit: '摄像头',
|
||||||
|
val: 7,
|
||||||
|
key:'videoItemList'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
selectDevVal:1,
|
||||||
|
devindex:0,
|
||||||
|
allDevlist:[]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
...mapState(['projectSn']),
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getAllDev();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
selectDev(v,i) {
|
||||||
|
this.selectDevVal = v;
|
||||||
|
this.devindex=i;
|
||||||
|
let key=this.devList[i].key;
|
||||||
|
this.viewlist=this.allDevlist[key]
|
||||||
|
|
||||||
|
},
|
||||||
|
getAllDev() {
|
||||||
|
getAllDevApi({ projectSn: this.projectSn }).then(res => {
|
||||||
|
console.log(res, 'getAllDevApi===========')
|
||||||
|
this.allDevlist=res.result
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
.that_class{
|
||||||
|
color: #6EE5F0!important;
|
||||||
|
}
|
||||||
|
.devList {
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
font-size: 14px;
|
||||||
|
height: 40px;
|
||||||
|
|
||||||
|
.devItem {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.between {
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.start {
|
||||||
|
justify-content: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrap {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
.devices {
|
.devices {
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
||||||
.device {
|
.device {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 176px;
|
height: 176px;
|
||||||
|
|
||||||
.device-name {
|
.device-name {
|
||||||
// margin-top: 20px;
|
// margin-top: 20px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
height: 22px;
|
height: 22px;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
color: #68d8e4;
|
color: #68d8e4;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.image {
|
.image {
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
width: 170px;
|
width: 170px;
|
||||||
@ -55,12 +189,15 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.green {
|
.green {
|
||||||
color: #46d7b6;
|
color: #46d7b6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.grey {
|
.grey {
|
||||||
color: #9da1aa;
|
color: #9da1aa;
|
||||||
}
|
}
|
||||||
|
|
||||||
.orange {
|
.orange {
|
||||||
color: #e7622a;
|
color: #e7622a;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,84 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="device" v-for="i in list" :key="i">
|
||||||
|
<div class="device-name">{{i.hardwareName}}</div>
|
||||||
|
<div class="info">
|
||||||
|
|
||||||
|
<div class="detail">
|
||||||
|
<div class="detail-item green">状态:{{(i.deviceState==1?'在线':'离线')}}</div>
|
||||||
|
<div class="detail-item grey">标识:{{i.hardwareId}}</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="(list.length==0)" style="font-size: 14px;color: #999;text-align: center;margin-top: 120px;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Array,
|
||||||
|
default: function(){
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.devices {
|
||||||
|
padding-left: 20px;
|
||||||
|
height: 100%;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
.device {
|
||||||
|
width: 100%;
|
||||||
|
// margin-top: 12px;
|
||||||
|
|
||||||
|
.device-name {
|
||||||
|
// margin-top: 20px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
|
||||||
|
line-height: 22px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #68d8e4;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
margin-right: 20px;
|
||||||
|
width: 170px;
|
||||||
|
height: 140px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: #46d7b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grey {
|
||||||
|
color: #9da1aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
color: #e7622a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,86 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="device" v-for="i in list" :key="i">
|
||||||
|
<div class="device-name">{{ i.devName }}</div>
|
||||||
|
<div class="info">
|
||||||
|
|
||||||
|
<div class="detail">
|
||||||
|
<div class="detail-item green">状态:{{ i.isClosed == 1 ? '在线' : '离线' }}</div>
|
||||||
|
<div class="detail-item grey">开关状态:{{ i.switchState == 1 ? '开' : '关' }}</div>
|
||||||
|
<div class="detail-item grey">安装单位:{{ i.installCompany }}</div>
|
||||||
|
<div class="detail-item orange">安装地址:{{ i.installAddress }}</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="(list.length==0)" style="font-size: 14px;color: #999;text-align: center;margin-top: 120px;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Array,
|
||||||
|
default: function () {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.devices {
|
||||||
|
padding-left: 20px;
|
||||||
|
height: 100%;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
.device {
|
||||||
|
width: 100%;
|
||||||
|
// margin-top: 12px;
|
||||||
|
|
||||||
|
.device-name {
|
||||||
|
// margin-top: 20px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
|
||||||
|
line-height: 22px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #68d8e4;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
margin-right: 20px;
|
||||||
|
width: 170px;
|
||||||
|
height: 140px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: #46d7b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grey {
|
||||||
|
color: #9da1aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
color: #e7622a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="device" v-for="i in list" :key="i">
|
||||||
|
<div class="device-name">{{i.deviceName}}</div>
|
||||||
|
<div class="info">
|
||||||
|
<!-- <img class="image" src="../../assets/images/common/bg_kyj.png" /> -->
|
||||||
|
<div class="detail">
|
||||||
|
<div class="detail-item green">状态:{{ i.isClosed == 1 ? '在线' : '离线' }}</div>
|
||||||
|
<div class="detail-item grey">是否启用:{{ i.isEnable == 1 ? '是' : '否' }}</div>
|
||||||
|
|
||||||
|
<div class="detail-item orange">安装地址:{{ i.address }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="(list.length==0)" style="font-size: 14px;color: #999;text-align: center;margin-top: 120px;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Array,
|
||||||
|
default: function () {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.devices {
|
||||||
|
padding-left: 20px;
|
||||||
|
height: 100%;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
.device {
|
||||||
|
width: 100%;
|
||||||
|
// margin-top: 12px;
|
||||||
|
|
||||||
|
.device-name {
|
||||||
|
// margin-top: 20px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
|
||||||
|
line-height: 22px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #68d8e4;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
margin-right: 20px;
|
||||||
|
width: 170px;
|
||||||
|
height: 140px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: #46d7b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grey {
|
||||||
|
color: #9da1aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
color: #e7622a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="device" v-for="i in list" :key="i">
|
||||||
|
<div class="device-name">{{ i.devName }}</div>
|
||||||
|
<div class="info">
|
||||||
|
<img class="image" :src="i.installationImage" />
|
||||||
|
<div class="detail">
|
||||||
|
<div class="detail-item green">状态:{{ i.devOnline == 1 ? '在线' : '离线' }}</div>
|
||||||
|
<div class="detail-item grey">设备状态:{{devStateList[i.devState]}}</div>
|
||||||
|
<div class="detail-item orange">类型:{{i.elevatorType==0?'单笼':'多笼'}}</div>
|
||||||
|
<div class="detail-item">额定人数:{{i.ratedPeopleNum}}</div>
|
||||||
|
<div class="detail-item">最大载重:{{i.maxLoad}}</div>
|
||||||
|
<div class="detail-item">最大高度:{{i.maxHeight}}</div>
|
||||||
|
<div class="detail-item">承包企业:{{i.generalContractorsName}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="(list.length==0)" style="font-size: 14px;color: #999;text-align: center;margin-top: 120px;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
devStateList:{
|
||||||
|
1:'设备进场',2:'设备安装',3:'设备验收',4:'设备使用',5:'设备拆除',6:'设备退场'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Array,
|
||||||
|
default: function () {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.devices {
|
||||||
|
padding-left: 20px;
|
||||||
|
height: 100%;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
.device {
|
||||||
|
width: 100%;
|
||||||
|
// margin-top: 12px;
|
||||||
|
|
||||||
|
.device-name {
|
||||||
|
// margin-top: 20px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
|
||||||
|
line-height: 22px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #68d8e4;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
margin-right: 20px;
|
||||||
|
width: 170px;
|
||||||
|
height: 140px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: #46d7b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grey {
|
||||||
|
color: #9da1aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
color: #e7622a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,94 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="device" v-for="i in list" :key="i">
|
||||||
|
<div class="device-name">{{ i.devName }}</div>
|
||||||
|
<div class="info">
|
||||||
|
<img class="image" :src="i.installationImage" />
|
||||||
|
<div class="detail">
|
||||||
|
|
||||||
|
<div class="detail-item grey">设备状态:{{devStateList[i.devState]}}</div>
|
||||||
|
<div class="detail-item orange">类型:{{typeObj[i.type]}}</div>
|
||||||
|
<div class="detail-item">额定人数:{{i.ratedPeopleNum}}</div>
|
||||||
|
<div class="detail-item">最大起重重量:{{i.maxLiftingCapacity}}</div>
|
||||||
|
<div class="detail-item">塔身高度:{{i.maxHeight}}</div>
|
||||||
|
<div class="detail-item">塔节数量:{{i.nodeCount}}</div>
|
||||||
|
<div class="detail-item">承包企业:{{i.generalContractorsName}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="list.length==0" style="font-size: 14px;color: #999;text-align: center;margin-top: 120px;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
devStateList:{
|
||||||
|
1:'设备进场',2:'设备安装',3:'设备验收',4:'设备使用',5:'设备拆除',6:'设备退场'
|
||||||
|
},
|
||||||
|
typeObj:{
|
||||||
|
1:'塔吊',2:'升降机',3:'龙门吊'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Array,
|
||||||
|
default: function () {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.devices {
|
||||||
|
padding-left: 20px;
|
||||||
|
height: 100%;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
.device {
|
||||||
|
width: 100%;
|
||||||
|
// margin-top: 12px;
|
||||||
|
|
||||||
|
.device-name {
|
||||||
|
// margin-top: 20px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
|
||||||
|
line-height: 22px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #68d8e4;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
margin-right: 20px;
|
||||||
|
width: 170px;
|
||||||
|
height: 140px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: #46d7b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grey {
|
||||||
|
color: #9da1aa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
color: #e7622a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,99 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="device" v-for="i in list" :key="i">
|
||||||
|
<div class="device-name">{{ i.videoName }}</div>
|
||||||
|
<div class="info">
|
||||||
|
<img class="image" :src="i.coverUrl" />
|
||||||
|
<div class="detail">
|
||||||
|
|
||||||
|
<div class="detail-item green">状态:{{ i.deviceState == 1 ? '在线' : '离线' }}</div>
|
||||||
|
<div class="detail-item red">报警总数:{{i.alarmCount}}</div>
|
||||||
|
<div class="detail-item orange">类型:{{deviceTypeObj[i.deviceType]}}</div>
|
||||||
|
<div class="detail-item green">视频类型:{{videoTypeObj[i.videoType]}}</div>
|
||||||
|
|
||||||
|
<div class="detail-item">最大载重:{{i.maxLoad}}</div>
|
||||||
|
<div class="detail-item">AI识别功能:{{(i.aiFunctionType==0?'否':'是')}}</div>
|
||||||
|
|
||||||
|
<div class="detail-item">承包企业:{{i.generalContractorsName}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-if="(list.length==0)" style="font-size: 14px;color: #999;text-align: center;margin-top: 120px;">暂无数据</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
deviceTypeObj:{
|
||||||
|
1:'枪机',2:'球机',3:'热成像',4:'单兵',5:'全景',6:'无人机'
|
||||||
|
},
|
||||||
|
videoTypeObj:{
|
||||||
|
1:'萤石云',2:'乐橙',3:'ISC',4:'大华',5:'宇视',6:'国标'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
list: {
|
||||||
|
type: Array,
|
||||||
|
default: function () {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.devices {
|
||||||
|
padding-left: 20px;
|
||||||
|
height: 100%;
|
||||||
|
color: #fff;
|
||||||
|
|
||||||
|
.device {
|
||||||
|
width: 100%;
|
||||||
|
// margin-top: 12px;
|
||||||
|
|
||||||
|
.device-name {
|
||||||
|
// margin-top: 20px;
|
||||||
|
height: 40px;
|
||||||
|
line-height: 40px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
|
||||||
|
line-height: 22px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #68d8e4;
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
margin-right: 20px;
|
||||||
|
width: 170px;
|
||||||
|
height: 140px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
color: #46d7b6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grey {
|
||||||
|
color: #9da1aa;
|
||||||
|
}
|
||||||
|
.red{
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
color: #e7622a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Loading…
x
Reference in New Issue
Block a user