2160 lines
112 KiB
HTML
2160 lines
112 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="en">
|
|||
|
<head>
|
|||
|
<meta charset="UTF-8">
|
|||
|
<link rel="stylesheet" href="https://cdn.makalu.cc/css/element-ui/index.css">
|
|||
|
<link rel="stylesheet" href="/css/largeScreenLayout.css">
|
|||
|
<link rel="stylesheet" href="/css/largeScreenStyle.css">
|
|||
|
<link rel="stylesheet" href="/css/amplifyModuleStyle.css">
|
|||
|
<title>数字化集成管控平台</title>
|
|||
|
<style>
|
|||
|
.el-table {
|
|||
|
background: none;
|
|||
|
}
|
|||
|
|
|||
|
.el-table td {
|
|||
|
border: none;
|
|||
|
color: #c9d9fa;
|
|||
|
}
|
|||
|
|
|||
|
.el-table th {
|
|||
|
background: #1a3956;
|
|||
|
}
|
|||
|
|
|||
|
.el-table thead {
|
|||
|
color: #ffffff;
|
|||
|
}
|
|||
|
|
|||
|
.el-table--enable-row-hover .el-table__body tr:hover > td {
|
|||
|
background: #002d56;
|
|||
|
}
|
|||
|
|
|||
|
.el-table__body-wrapper::-webkit-scrollbar {
|
|||
|
width: 0px;
|
|||
|
height: 0px;
|
|||
|
}
|
|||
|
|
|||
|
.el-table::before {
|
|||
|
background: none;
|
|||
|
}
|
|||
|
|
|||
|
.el-carousel__container {
|
|||
|
height: 510px;
|
|||
|
}
|
|||
|
</style>
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div id="app">
|
|||
|
<!--大屏背景-->
|
|||
|
<background-video></background-video>
|
|||
|
<!--大屏内容-->
|
|||
|
<div class="screen-content-max">
|
|||
|
<screen-header :nav="1" @itemdata="onItemData"></screen-header>
|
|||
|
<div class="screen-content">
|
|||
|
<el-row>
|
|||
|
<el-col :span="6">
|
|||
|
<module-one-1-1 label="项目概况" :amplify="true" name="amplify-xmkg">
|
|||
|
<div class="company-name-max">
|
|||
|
<div class="company-project-introduction" @click="projectIntroduction">
|
|||
|
<span>项目简介</span>
|
|||
|
<img src="/images/check_icon.png">
|
|||
|
</div>
|
|||
|
<el-row>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="company-name">
|
|||
|
<div class="company-img"><img src="/images/company_13.png"></div>
|
|||
|
<div class="company-info">
|
|||
|
<div class="company-title">建设单位</div>
|
|||
|
<el-tooltip class="item" effect="dark" placement="top-end">
|
|||
|
<div slot="content" style="font-size: 20px;" v-cloak>{{buildUnit}}</div>
|
|||
|
<div class="company-text" v-cloak>{{buildUnit}}</div>
|
|||
|
</el-tooltip>
|
|||
|
<div class="company-person-info" v-cloak>{{buildUnitManagerName}}
|
|||
|
{{phone_show == 0 ? buildUnitManagerPhone : ''}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="company-name">
|
|||
|
<div class="company-img"><img src="/images/company_14.png"></div>
|
|||
|
<div class="company-info">
|
|||
|
<div class="company-title">设计单位</div>
|
|||
|
<el-tooltip class="item" effect="dark" placement="top-end">
|
|||
|
<div slot="content" style="font-size: 20px;" v-cloak>{{designUnit}}
|
|||
|
</div>
|
|||
|
<div class="company-text" v-cloak>{{designUnit}}</div>
|
|||
|
</el-tooltip>
|
|||
|
<div class="company-person-info" v-cloak>{{designUnitManagerName}}
|
|||
|
{{phone_show == 0 ? designUnitManagerPhone : ''}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
<el-row>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="company-name">
|
|||
|
<div class="company-img"><img src="/images/company_15.png"></div>
|
|||
|
<div class="company-info">
|
|||
|
<div class="company-title">总包单位</div>
|
|||
|
<el-tooltip class="item" effect="dark" placement="top-end">
|
|||
|
<div slot="content" style="font-size: 20px;" v-cloak>{{allUnit}}</div>
|
|||
|
<div class="company-text" v-cloak>{{allUnit}}</div>
|
|||
|
</el-tooltip>
|
|||
|
<div class="company-person-info" v-cloak>{{allUnitManagerName}}
|
|||
|
{{phone_show == 0 ? allUnitManagerPhone : ''}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="company-name">
|
|||
|
<div class="company-img"><img src="/images/company_11.png"></div>
|
|||
|
<div class="company-info">
|
|||
|
<div class="company-title">监理单位</div>
|
|||
|
<el-tooltip class="item" effect="dark" placement="top-end">
|
|||
|
<div slot="content" style="font-size: 20px;" v-cloak>
|
|||
|
{{supervisorUnit}}
|
|||
|
</div>
|
|||
|
<div class="company-text" v-cloak>{{supervisorUnit}}</div>
|
|||
|
</el-tooltip>
|
|||
|
<div class="company-person-info" v-cloak>{{supervisorUnitManagerName}}
|
|||
|
{{phone_show == 0 ? supervisorUnitManagerPhone : ''}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
<el-row>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="company-name">
|
|||
|
<div class="company-img"><img src="/images/company_12.png"></div>
|
|||
|
<div class="company-info">
|
|||
|
<div class="company-title">检测机构</div>
|
|||
|
<el-tooltip class="item" effect="dark" placement="top-end">
|
|||
|
<div slot="content" style="font-size: 20px;" v-cloak>{{testingUnit}}
|
|||
|
</div>
|
|||
|
<div class="company-text" v-cloak>{{testingUnit}}</div>
|
|||
|
</el-tooltip>
|
|||
|
<div class="company-person-info" v-cloak>{{testingUnitManagerName}}
|
|||
|
{{phone_show == 0 ? testingUnitManagerPhone : ''}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="company-name">
|
|||
|
<div class="company-img"><img src="/images/company_10.png"></div>
|
|||
|
<div class="company-info">
|
|||
|
<div class="company-title">勘察单位</div>
|
|||
|
<el-tooltip class="item" effect="dark" placement="top-end">
|
|||
|
<div slot="content" style="font-size: 20px;" v-cloak>{{surveyUnit}}
|
|||
|
</div>
|
|||
|
<div class="company-text" v-cloak>{{surveyUnit}}</div>
|
|||
|
</el-tooltip>
|
|||
|
<div class="company-person-info" v-cloak>{{surveyUnitManagerName}}
|
|||
|
{{phone_show == 0 ? surveyUnitManagerPhone : ''}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</div>
|
|||
|
</module-one-1-1>
|
|||
|
<module-one-1-1 label="劳务人员概况" :amplify="true" name="amplify-lwrygk">
|
|||
|
<div class="warning-info">
|
|||
|
<div class="warning-info-title">
|
|||
|
<div :class="infoNav==1?'active':''" @click="onWarningInfoNav(1,'今日出勤')">今日出勤</div>
|
|||
|
<div :class="infoNav==0?'active':''" @click="onWarningInfoNav(0,'在岗人数')">在岗人数</div>
|
|||
|
</div>
|
|||
|
<el-row>
|
|||
|
<el-col :span="8">
|
|||
|
<div class="survey_content">
|
|||
|
<div class="survey_content_img">
|
|||
|
<img :src="surveyUrl">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="survey_content_number labour-survey_content_number">
|
|||
|
<div class="survey_content_value"><span v-html="lwDataTotal"></span> 人</div>
|
|||
|
<p v-cloak>{{staffText}}</p>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="16">
|
|||
|
<staff-survey-chart :height="220" :data="laborPersonnelData"
|
|||
|
@personnel="clickBarPersonnel"
|
|||
|
:width="145"></staff-survey-chart>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</div>
|
|||
|
</module-one-1-1>
|
|||
|
<module-one-1-1 label="设备概况" :amplify="true" name="amplify-sbgk">
|
|||
|
<div class="survey_title">
|
|||
|
<div class="survey_title_btn">
|
|||
|
<div :class="overview==0?'survey_title_btn_min active':'survey_title_btn_min'"
|
|||
|
@click="onClickoOverview(0)">设备数量
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="survey_title_btn">
|
|||
|
<div :class="overview==1?'survey_title_btn_min active':'survey_title_btn_min'"
|
|||
|
@click="onClickoOverview(1)">绑定数量
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="survey_title_btn">
|
|||
|
<div :class="overview==2?'survey_title_btn_min active':'survey_title_btn_min'"
|
|||
|
@click="onClickoOverview(2)">监测数量
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="survey_content">
|
|||
|
<div class="survey_content_img">
|
|||
|
<img :src="surveyUrlSb">
|
|||
|
</div>
|
|||
|
<div class="survey_content_number">
|
|||
|
<p v-cloak>{{showOverviewLabel}}</p>
|
|||
|
<div class="survey_content_value"><span v-cloak>{{showOverviewData.countNum}}</span> 台</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="survey_title">
|
|||
|
<div class="survey_title_btn">
|
|||
|
<div class="survey_text survey_text_zy"></div>
|
|||
|
<div class="survey_text_value">
|
|||
|
<p>自有</p>
|
|||
|
<span v-cloak>{{showOverviewData.zyNum}}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="survey_title_btn">
|
|||
|
<div class="survey_text survey_text_zl"></div>
|
|||
|
<div class="survey_text_value">
|
|||
|
<p>租赁</p>
|
|||
|
<span v-cloak>{{showOverviewData.zlNum}}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="survey_title_btn">
|
|||
|
<div class="survey_text survey_text_fb"></div>
|
|||
|
<div class="survey_text_value">
|
|||
|
<p>分包</p>
|
|||
|
<span v-cloak>{{showOverviewData.fbNum}}</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</module-one-1-1>
|
|||
|
</el-col>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="modify-project-amount" @mouseout="costMouseout" @mouseover="costMouseover">
|
|||
|
<div class="modify-btn"><img src="/images//foot_left.png" @click="modifyLeftBtn"></div>
|
|||
|
<div class="modify-content" id="modifyContent" ref="modifyContent">
|
|||
|
<div class="modify-content-overflow" style="width: 3360px;">
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>计划开工日期/实际开工日期</p>
|
|||
|
<div v-if="projectOverview.planStartTime != undefined"><span v-cloak style="font-size: 16px;">{{projectOverview.planStartTime}}/{{projectOverview.actualStartDate}}</span>
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.planStartTime == undefined"><span>暂无数据</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<!--<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>实际开工日期</p>
|
|||
|
<div v-if="projectOverview.actualStartDate != undefined"><span v-cloak>{{projectOverview.actualStartDate}}</span>
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.actualStartDate == undefined"><span>暂无数据</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>-->
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>计划竣工日期</p>
|
|||
|
<div v-if="projectOverview.planEndDate != undefined"><span v-cloak>{{projectOverview.planEndDate}}</span>
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.planEndDate == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>合同工期</p>
|
|||
|
<div v-if="projectOverview.contractMoney != undefined"><span v-cloak>{{projectOverview.contractMoney}}</span>
|
|||
|
天
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.contractMoney == undefined"><span>暂无数据</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>本月完成</p>
|
|||
|
<div v-if="projectOverview.monthMoney != undefined"><span v-cloak>{{projectOverview.monthMoney}}</span>
|
|||
|
万元
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.monthMoney == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>年累完成</p>
|
|||
|
<div v-if="projectOverview.yearMoney != undefined"><span v-cloak>{{projectOverview.yearMoney}}</span>
|
|||
|
万元
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.yearMoney == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>开累完成</p>
|
|||
|
<div v-if="projectOverview.kaileiMoney != undefined"><span v-cloak>{{projectOverview.kaileiMoney}}</span>
|
|||
|
万元
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.kaileiMoney == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>工程造价</p>
|
|||
|
<div v-if="projectOverview.allMoney != undefined"><span v-cloak>{{projectOverview.allMoney}} </span>
|
|||
|
万元
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.allMoney == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>建筑面积</p>
|
|||
|
<div v-if="projectOverview.allArea != undefined"><span v-cloak>{{projectOverview.allArea}}</span>
|
|||
|
平方米
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.allArea == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>占地面积</p>
|
|||
|
<div v-if="projectOverview.floorArea"><span v-cloak>{{projectOverview.floorArea}}</span>
|
|||
|
平方米
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.floorArea == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<!--滚动需要多余复制3组数数据-->
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>计划开工日期/实际开工日期</p>
|
|||
|
<div v-if="projectOverview.planStartTime != undefined"><span v-cloak style="font-size: 16px;">{{projectOverview.planStartTime}}/{{projectOverview.actualStartDate}}</span>
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.planStartTime == undefined"><span>暂无数据</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<!--<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>实际开工日期</p>
|
|||
|
<div v-if="projectOverview.actualStartDate != undefined"><span v-cloak>{{projectOverview.actualStartDate}}</span>
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.actualStartDate == undefined"><span>暂无数据</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>-->
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>计划竣工日期</p>
|
|||
|
<div v-if="projectOverview.planEndDate != undefined"><span v-cloak>{{projectOverview.planEndDate}}</span>
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.planEndDate == undefined"><span>暂无数据</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="project-amount">
|
|||
|
<div class="project-amount-bgd">
|
|||
|
<div class="project-amount-con">
|
|||
|
<p>合同工期</p>
|
|||
|
<div v-if="projectOverview.contractMoney != undefined"><span v-cloak>{{projectOverview.contractMoney}}</span>
|
|||
|
天
|
|||
|
</div>
|
|||
|
<div v-if="projectOverview.contractMoney == undefined"><span>暂无数据</span>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="modify-btn"><img src="/images/foot_right.png" @click="modifyRightBtn"></div>
|
|||
|
</div>
|
|||
|
<div class="aerial-view-max">
|
|||
|
<div class="aerial-view-min">
|
|||
|
<el-carousel trigger="click" v-if="projectOverview.newCarouselVideo.length <= 0">
|
|||
|
<el-carousel-item v-for="item in projectOverview.newCarouselImg" :interval="5000">
|
|||
|
<img :src="item.url" v-if="item.url&&item.url.length > 0">
|
|||
|
</el-carousel-item>
|
|||
|
</el-carousel>
|
|||
|
<div v-if="projectOverview.newCarouselVideo.length > 0">
|
|||
|
<video muted autoplay="autoplay" controls loop="loop">
|
|||
|
<source :src="projectOverview.newCarouselVideo[0].url">
|
|||
|
</video>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<module-one-1-2 label="项目里程碑">
|
|||
|
<div class="dangerous-max">
|
|||
|
<div class="dangerous-tab">
|
|||
|
<div :class="activeNum==i?'active':''" v-if="dangerName != ''"
|
|||
|
v-for="(item,i) in dangerName" @click="changeData(item.id,i)" v-cloak>{{item.danger_name}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="dangerous-timeline-max">
|
|||
|
<div class="dangerous-timeline-min" :style="{width: maxWidth+'px'}">
|
|||
|
<div class="dangerous-timeline-con" v-for="item in timeAxisData" style="font-size: 14px;">
|
|||
|
<div class="dangerous-text" v-cloak>{{item.title}}</div>
|
|||
|
<div class="dangerous-dot">
|
|||
|
<div class="dangerous-dot-item"></div>
|
|||
|
</div>
|
|||
|
<div class="dangerous-time-max">
|
|||
|
<div class="dangerous-time-min" v-cloak>计划:{{item.planTime}}</div>
|
|||
|
<div class="dangerous-time-min" v-cloak>实际:{{item.actualTime ==
|
|||
|
''?'--':item.actualTime}}
|
|||
|
</div>
|
|||
|
<div class="project-expect-state dangerous-time-nav"
|
|||
|
v-if="item.state==0&&item.actualTime">正常完成
|
|||
|
</div>
|
|||
|
<div class="project-expect-state dangerous-time-nav active"
|
|||
|
v-if="item.state==1&&item.actualTime" v-cloak>逾期{{item.expectDays}}天
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="strip-max" v-if="maxWidth > 0" :style="{width: maxWidth+'px'}">
|
|||
|
<div class="strip-min" :style="{width:minWidth+'px'}"></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</module-one-1-2>
|
|||
|
</el-col>
|
|||
|
<el-col :span="6">
|
|||
|
<div style="padding: 10px;">
|
|||
|
<div class="analyse-title analyse_title_blue">
|
|||
|
<div class="analyse-text">安全生产</div>
|
|||
|
</div>
|
|||
|
<div class="safe-production ">
|
|||
|
<div style="padding-right: 10px;">第</div>
|
|||
|
<people-number :number="workSafetyNumber" unit="天"></people-number>
|
|||
|
<div class="safe-production-time" v-cloak>{{workSafetyTime}}</div>
|
|||
|
</div>
|
|||
|
<div class="analyse-title analyse_title_blue">
|
|||
|
<div class="analyse-text">环境监测</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="weather-forecast">
|
|||
|
<div class="weather-forecast-list">
|
|||
|
<div class="weather-forecast-date">{{showDay(0)}}</div>
|
|||
|
<div class="weather-forecast-img">
|
|||
|
<img v-if="cityWeather.showapi_res_body" :src="cityWeather.showapi_res_body.f1.day_weather_pic">
|
|||
|
</div>
|
|||
|
<div class="weather-forecast-temp" v-cloak>
|
|||
|
{{(cityWeather.showapi_res_body ? cityWeather.showapi_res_body.f1.night_air_temperature : 0) + ' ℃ ~ '
|
|||
|
+ (cityWeather.showapi_res_body? cityWeather.showapi_res_body.f1.day_air_temperature : 0) + " ℃"}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="weather-forecast-list">
|
|||
|
<div class="weather-forecast-date">{{showDay(1)}}</div>
|
|||
|
<div class="weather-forecast-img">
|
|||
|
<img v-if="cityWeather.showapi_res_body" :src="cityWeather.showapi_res_body.f2.day_weather_pic">
|
|||
|
</div>
|
|||
|
<div class="weather-forecast-temp" v-cloak>
|
|||
|
{{(cityWeather.showapi_res_body ? cityWeather.showapi_res_body.f2.night_air_temperature : 0) + ' ℃ ~ '
|
|||
|
+ (cityWeather.showapi_res_body ? cityWeather.showapi_res_body.f2.day_air_temperature : 0) + " ℃"}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="weather-forecast-list">
|
|||
|
<div class="weather-forecast-date">{{showDay(2)}}</div>
|
|||
|
<div class="weather-forecast-img">
|
|||
|
<img v-if="cityWeather.showapi_res_body" :src="cityWeather.showapi_res_body.f3.day_weather_pic">
|
|||
|
</div>
|
|||
|
<div class="weather-forecast-temp" v-cloak>
|
|||
|
{{(cityWeather.showapi_res_body ? cityWeather.showapi_res_body.f3.night_air_temperature : 0) + ' ℃ ~ '
|
|||
|
+ (cityWeather.showapi_res_body ? cityWeather.showapi_res_body.f3.day_air_temperature : 0) + " ℃"}}
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="xhz-device-data" style="margin-bottom: 32px;">
|
|||
|
<el-row>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="xhz-device-data-min">
|
|||
|
<div class="survey_content">
|
|||
|
<div class="survey_content_img xhz-education_bgd">
|
|||
|
<img src="/images/qy.png">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="xhz-current-value-data">
|
|||
|
<div>当前气压</div>
|
|||
|
<p><span v-cloak>{{cityWeather.environment ? cityWeather.environment.hpa : 0}}</span> hPa</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="xhz-device-data-min">
|
|||
|
<div class="survey_content">
|
|||
|
<div class="survey_content_img xhz-education_bgd">
|
|||
|
<img src="/images/hj_PM10.png">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="xhz-current-value-data">
|
|||
|
<div>当前PM10</div>
|
|||
|
<p><span v-cloak>{{cityWeather.environment ? cityWeather.environment.pm10 : 0}}</span> ug/m³</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="xhz-device-data-min">
|
|||
|
<div class="survey_content">
|
|||
|
<div class="survey_content_img xhz-education_bgd">
|
|||
|
<img src="/images/hj_wendu.png">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="xhz-current-value-data">
|
|||
|
<div>当前温度</div>
|
|||
|
<p><span v-cloak>{{cityWeather.environment ? cityWeather.environment.temperature : 0}}</span> ℃</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="12">
|
|||
|
<div class="xhz-device-data-min">
|
|||
|
<div class="survey_content">
|
|||
|
<div class="survey_content_img xhz-education_bgd">
|
|||
|
<img src="/images/hj_shidu.png">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="xhz-current-value-data">
|
|||
|
<div>当前湿度</div>
|
|||
|
<p><span v-cloak>{{cityWeather.environment ? cityWeather.environment.humidity : 0}}</span> %RH</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</div>
|
|||
|
<module-one-1-1 label="告警分析">
|
|||
|
<div style="padding-top: 30px;">
|
|||
|
<el-row>
|
|||
|
<el-col :span="8">
|
|||
|
<div class="time-study-value">
|
|||
|
<p>今日告警数</p>
|
|||
|
<!--<div class="analyse-num"><span>{{warning.warnDeviceNum}}</span> 台</div>-->
|
|||
|
<div class="analyse-num"><span v-cloak>{{showWarnDeviceNum}}</span> 条</div>
|
|||
|
</div>
|
|||
|
<div class="time-study-value">
|
|||
|
<p>本周告警数</p>
|
|||
|
<!--<div class="analyse-num"><span>{{warning.warnNum}}</span> 条</div>-->
|
|||
|
<div class="analyse-num"><span v-cloak>{{showWarnNum}}</span> 条</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="16">
|
|||
|
<div class="survey-oil-title">
|
|||
|
<div class="survey-oil-hr"></div>
|
|||
|
<div class="survey-oil-text">告警类型</div>
|
|||
|
</div>
|
|||
|
<div class="analyse-number-max" id="afootOverflowType"
|
|||
|
@mouseout="listMinMouseoutType" @mouseover="listMinMouseoverType">
|
|||
|
<div class="glr-login-number-max analyse-num-max" v-for="item in warningType" >
|
|||
|
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
|
|||
|
<div class="glr-login-number analyse-login-numbe">
|
|||
|
<div><img src="/images//text_red_spot.png">{{item.name}}</div>
|
|||
|
<div class="glr-rate-value glr-rate-red-value"><span>{{item.value}}</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="glr-login-number-max analyse-num-max" v-for="(item,i) in warningList" @click="onOpenPopup(i,item.warningCategory)">
|
|||
|
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
|
|||
|
<div class="glr-login-number analyse-login-numbe">
|
|||
|
<div class="glr-login-number-sz"><img src="/images//text_red_spot.png" v-cloak>{{showWarningCategory(item.warningCategory)}}</div>
|
|||
|
<div class="glr-rate-value glr-rate-red-value">
|
|||
|
<span v-cloak>{{item.dayCount}}/{{item.weekCount}}</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</div>
|
|||
|
|
|||
|
</module-one-1-1>
|
|||
|
</el-col>
|
|||
|
<!--<el-col :span="6">
|
|||
|
<div class="analyse-max">
|
|||
|
<div class="analyse-map">
|
|||
|
<div class="analyse-title">
|
|||
|
<div class="analyse-text">正在发生</div>
|
|||
|
</div>
|
|||
|
<div class="afoot-content" style="padding: 15px 15px 15px 15px;">
|
|||
|
<div class="afoot-overflow" id="afootOverflow" @mouseout="listMinMouseout"
|
|||
|
@mouseover="listMinMouseover">
|
|||
|
<div class="afoot-con-for" v-for="item in warningData">
|
|||
|
<div class="afoot-machinery-nam" v-cloak>{{item.equipment}}</div>
|
|||
|
<div class="afoot-machinery-info">
|
|||
|
<div class="afoot-machinery-img">
|
|||
|
<el-image
|
|||
|
style="width: 70px; height: 70px"
|
|||
|
:src="item.images"
|
|||
|
:preview-src-list="[item.images]" v-if="item.images">
|
|||
|
</el-image>
|
|||
|
<img :src="item.warningImages" v-else="item.warningImages">
|
|||
|
<!– <img :src="item.warningImages" v-if="item.warningImages">–>
|
|||
|
</div>
|
|||
|
<div class="afoot-machinery-data">
|
|||
|
<div class="afoot-machinery-state" v-cloak>{{item.warningContent}} -- {{item.warningName}}</div>
|
|||
|
<div class="afoot-machinery-time" v-cloak>{{item.warningTime}}</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="afoot-machinery-project" v-cloak>项目:{{item.projectName}}</div>
|
|||
|
<div class="afoot-machinery-project" v-if="item.warningAddress != ''" v-cloak>
|
|||
|
地址:{{item.warningAddress}}
|
|||
|
</div>
|
|||
|
<machinery-baidu-map :data="item"
|
|||
|
v-if="item.latitude !=''"></machinery-baidu-map>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="analyse-min">
|
|||
|
<div class="analyse-title">
|
|||
|
<div class="analyse-text">报警分析</div>
|
|||
|
</div>
|
|||
|
<el-row>
|
|||
|
<el-col :span="8">
|
|||
|
<div class="time-study-value">
|
|||
|
<p>今日报警数</p>
|
|||
|
<!–<div class="analyse-num"><span>{{warning.warnDeviceNum}}</span> 台</div>–>
|
|||
|
<div class="analyse-num"><span v-cloak>{{showWarnDeviceNum}}</span> 条</div>
|
|||
|
</div>
|
|||
|
<div class="time-study-value">
|
|||
|
<p>本周报警数</p>
|
|||
|
<!–<div class="analyse-num"><span>{{warning.warnNum}}</span> 条</div>–>
|
|||
|
<div class="analyse-num"><span v-cloak>{{showWarnNum}}</span> 条</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
<el-col :span="16">
|
|||
|
<div class="survey-oil-title">
|
|||
|
<div class="survey-oil-hr"></div>
|
|||
|
<div class="survey-oil-text">预警类型</div>
|
|||
|
</div>
|
|||
|
<div class="analyse-number-max" id="afootOverflowType"
|
|||
|
@mouseout="listMinMouseoutType" @mouseover="listMinMouseoverType">
|
|||
|
<!– <div class="glr-login-number-max analyse-num-max" v-for="item in warningType" >
|
|||
|
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
|
|||
|
<div class="glr-login-number analyse-login-numbe">
|
|||
|
<div><img src="/images//text_red_spot.png">{{item.name}}</div>
|
|||
|
<div class="glr-rate-value glr-rate-red-value"><span>{{item.value}}</span></div>
|
|||
|
</div>
|
|||
|
</div> –>
|
|||
|
<div class="glr-login-number-max analyse-num-max" v-for="(item,i) in warningList" @click="onOpenPopup(i,item.warningCategory)">
|
|||
|
<div class="glr-login-number-bgd glr-login-number-red-bgd"></div>
|
|||
|
<div class="glr-login-number analyse-login-numbe">
|
|||
|
<div class="glr-login-number-sz"><img src="/images//text_red_spot.png" v-cloak>{{item.warningCategory}}</div>
|
|||
|
<div class="glr-rate-value glr-rate-red-value">
|
|||
|
<span v-cloak>{{item.dayCount}}/{{item.weekCount}}</span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-col>-->
|
|||
|
|
|||
|
</el-row>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<transition name="el-zoom-in-top">
|
|||
|
<div class="popup-project-introduction-max" v-show="popupShow" style="display: none"
|
|||
|
@click="closeProjectIntroductionAll">
|
|||
|
<div class="popup-project-introduction-min">
|
|||
|
<div class="popup-project-introduction-con">
|
|||
|
<div class="popup-project-introduction-title">
|
|||
|
<div>项目简介</div>
|
|||
|
<div class="popup-project-introduction-close" @click="closeProjectIntroduction">×</div>
|
|||
|
</div>
|
|||
|
<div class="popup-project-introduction-details">
|
|||
|
<div class="popup-project-introduction-info">
|
|||
|
<div v-if="projectOverview.introduce != ''" v-html="projectOverview.introduce"></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</transition>
|
|||
|
|
|||
|
<transition name="el-zoom-in-top">
|
|||
|
<div class="popup-project-introduction-max" v-show="personnelShow" style="display: none"
|
|||
|
@click="closeProjectIntroductionAll">
|
|||
|
<div class="popup-project-introduction-min">
|
|||
|
<div class="popup-project-introduction-con">
|
|||
|
<div class="popup-project-introduction-title">
|
|||
|
<div v-cloak>{{labourTableTitle}}</div>
|
|||
|
<div class="popup-project-introduction-close" @click="closeProjectIntroduction">×</div>
|
|||
|
</div>
|
|||
|
<div class="popup-project-introduction-details">
|
|||
|
<div class="popup-project-introduction-info">
|
|||
|
<el-table :data="labourTableData.data" style="width: 100%" height="500"
|
|||
|
:row-style="rowStyle" @cell-mouse-enter="tableMouseEnter"
|
|||
|
@cell-mouse-leave="tableMouseLeave" ref="tableRoll">
|
|||
|
<el-table-column align="center" :label="item.label" :width="item.width"
|
|||
|
v-for="item in labourTableData.label">
|
|||
|
<template slot-scope="scope">
|
|||
|
<el-image @click="imgAmplify(scope.row.userphoto)"
|
|||
|
style="width: 50px; height: 50px" :src="scope.row.userphoto"
|
|||
|
fit="cover" :preview-src-list="srcList"
|
|||
|
v-if="item.data == 'userphoto'"></el-image>
|
|||
|
<div v-if="item.data == 'idcardnum'" class="" v-cloak>
|
|||
|
{{scope.row[item.data].replace(/^(.{6})(?:\d+)(.{4})$/,"\$1****\$2")}}
|
|||
|
</div>
|
|||
|
<div v-if="item.data != 'userphoto' && item.data != 'idcardnum'" class="" v-cloak>
|
|||
|
{{scope.row[item.data]}}
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
</el-table-column>
|
|||
|
</el-table>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</transition>
|
|||
|
|
|||
|
|
|||
|
<transition name="el-zoom-in-top">
|
|||
|
<div class="popup-project-introduction-max" v-show="warningShow" style="display: none"
|
|||
|
@click="closeProjectIntroductionAll">
|
|||
|
<div class="popup-project-introduction-min">
|
|||
|
<div class="popup-project-introduction-con">
|
|||
|
<div class="popup-project-introduction-title">
|
|||
|
<div>告警列表</div>
|
|||
|
<div class="popup-project-introduction-close" @click="closeProjectIntroduction">×</div>
|
|||
|
</div>
|
|||
|
<div class="popup-project-introduction-details">
|
|||
|
<div class="sjk-chart-line-title sjk-chart-line-title-border" >
|
|||
|
<div v-for="(item,i) in warningList" :class="warningNav==i?'active':''" @click="onWarningNavBtn(i,item.warningCategory)">{{showWarningCategory(item.warningCategory)}}</div>
|
|||
|
</div>
|
|||
|
<div class="warning-popup-project-introduction-info" @scroll="scrollEventFn" ref="mianscroll">
|
|||
|
<div class="warning-popup-project-for" v-for="item in warningListData">
|
|||
|
<el-row>
|
|||
|
<el-col :span="16">
|
|||
|
<div class="warning-popup-project-data">
|
|||
|
<div class="warning-popup-project-data-left">
|
|||
|
<el-image
|
|||
|
style="width: 60px; height: 60px"
|
|||
|
:src="item.images"
|
|||
|
:preview-src-list="[item.images]" v-if="item.images">
|
|||
|
</el-image>
|
|||
|
<img :src="item.warningImages" v-else="item.warningImages" width="60" height="60">
|
|||
|
<div class="warning-popup-project-data-left-value">
|
|||
|
<div class="warning-popup-color-blue" v-html="item.equipment"></div>
|
|||
|
<div v-html="item.warning_time"></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="warning-popup-project-data-right">
|
|||
|
<div v-if="item.warningValue != ''">实际值:<span class="warning-popup-color-red" v-html="item.warningValue"></span></div>
|
|||
|
<!--<div>预警值:<span class="warning-popup-color-blue" v-html="item.warningValue"></span></div>-->
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="warning-popup-project-data">
|
|||
|
<div class="warning-popup-project-data-right">
|
|||
|
<div>告警类型:<span class="warning-popup-color-silvery" v-cloak>{{item.warningName.replaceAll("预警","告警")}}</span></div>
|
|||
|
<div>整改时间:<span class="warning-popup-color-blue"
|
|||
|
v-html="item.processedTime==''?item.afootTime:item.processedTime"></span></div>
|
|||
|
</div>
|
|||
|
<div class="warning-popup-project-data-right">
|
|||
|
<div style="width: 200%;">告警内容:<span class="warning-popup-color-silvery" v-cloak>{{item.warningContent.replaceAll("报警","告警")}}</span></div>
|
|||
|
<div>整改人:<span class="warning-popup-color-blue"
|
|||
|
v-html="item.processedUser==''?item.afootUser:item.processedUser"></span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="warning-popup-project-data">
|
|||
|
<div class="warning-popup-project-data-right">
|
|||
|
<div>告警时间:<span class="warning-popup-color-silvery" v-html="item.warningTime"></span></div>
|
|||
|
</div><div class="warning-popup-project-data-right">
|
|||
|
<div>整改方案:<span class="warning-popup-color-blue"
|
|||
|
v-html="item.processedUser==''?item.afootUser:item.processedUser"></span></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<!-- <div class="warning-popup-color">整改方案:<span class="warning-popup-color-blue" v-html="item.processedRemarks==''?item.afootRemarks:item.processedRemarks"></span></div>-->
|
|||
|
</el-col>
|
|||
|
<el-col :span="8">
|
|||
|
<machinery-baidu-map :data="item" :height="180" v-if="item.latitude !=''"></machinery-baidu-map>
|
|||
|
</el-col>
|
|||
|
</el-row>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</transition>
|
|||
|
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
<script src="https://cdn.makalu.cc/js/moment/2.24.0/moment.min.js"></script>
|
|||
|
<script type="text/javascript" src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=5M76qMCiVjSG7bGOTcYmZdg0MQinsKve"></script>
|
|||
|
<script src="https://cdn.makalu.cc/js/moment/2.24.0/moment.min.js"></script>
|
|||
|
<script src="https://cdn.makalu.cc/js/vue/vue.js"></script>
|
|||
|
<script src="https://cdn.makalu.cc/js/element-ui/index.js"></script>
|
|||
|
<script src="/js/jquery-3.0.0.min.js"></script>
|
|||
|
<script src="/js/echarts.js"></script>
|
|||
|
|
|||
|
<!--module-->
|
|||
|
<script src="/components/module/module-one-1-1.js"></script>
|
|||
|
<script src="/components/module/module-one-1-2.js"></script>
|
|||
|
<!--组件-->
|
|||
|
<script src="/components/background_video.js"></script>
|
|||
|
<script src="/components/header.js"></script>
|
|||
|
<script src="/components/header-btn.js"></script>
|
|||
|
<script src="/components/staff-survey-chart.js"></script>
|
|||
|
<script src="/components/machinery-baidu-map.js"></script>
|
|||
|
<script src="/components/people-number.js"></script>
|
|||
|
|
|||
|
|
|||
|
<!--放大组件-->
|
|||
|
<script src="/components/amplify/xiangmugaikuang/amplify-xmkg.js"></script>
|
|||
|
<script src="/components/amplify/xiangmugaikuang/amplify-lwrygk.js"></script>
|
|||
|
<script src="/components/amplify/xiangmugaikuang/amplify-sbgk.js"></script>
|
|||
|
|
|||
|
<!-- 请求依赖 -->
|
|||
|
<script src="https://cdn.makalu.cc/js/axios/axios.min.js"></script>
|
|||
|
<script>
|
|||
|
let requestUrl = "https://jzgj.crfeb.com.cn/largeScreen/digitalConstruction/";
|
|||
|
let deptId = 131;
|
|||
|
var vm = new Vue({
|
|||
|
el: '#app',
|
|||
|
data() {
|
|||
|
return {
|
|||
|
workSafetyTimeTimeout: undefined,
|
|||
|
cityWeather:{},
|
|||
|
workSafetyNumber:0,
|
|||
|
workSafetyTime:"00时00分00秒",
|
|||
|
//项目概况
|
|||
|
phone_show:'',
|
|||
|
buildUnit: '',
|
|||
|
buildUnitManagerName: '',
|
|||
|
buildUnitManagerPhone: '',
|
|||
|
designUnit: '',
|
|||
|
designUnitManagerName: '',
|
|||
|
designUnitManagerPhone: '',
|
|||
|
allUnit: '',
|
|||
|
allUnitManagerName: '',
|
|||
|
allUnitManagerPhone: '',
|
|||
|
supervisorUnit: '',
|
|||
|
supervisorUnitManagerName: '',
|
|||
|
supervisorUnitManagerPhone: '',
|
|||
|
testingUnit: '',
|
|||
|
testingUnitManagerName: '',
|
|||
|
testingUnitManagerPhone: '',
|
|||
|
surveyUnit: '',
|
|||
|
surveyUnitManagerName: '',
|
|||
|
surveyUnitManagerPhone: '',
|
|||
|
top: 0,
|
|||
|
introduceInterval: undefined,
|
|||
|
show: true,
|
|||
|
popupShow: false,
|
|||
|
//项目信息
|
|||
|
projectOverview: {
|
|||
|
introduce: '',
|
|||
|
engineering: '',
|
|||
|
contractMoney: '',
|
|||
|
allArea: '',
|
|||
|
aerialView: '',
|
|||
|
planStartTime: '',
|
|||
|
planEndDate: '',
|
|||
|
actualStartDate: '',
|
|||
|
allMoney: 0,
|
|||
|
contractMoney: 0,
|
|||
|
kaileiMoney: 0,
|
|||
|
newCarouselImg: [],
|
|||
|
newCarouselVideo: [],
|
|||
|
},
|
|||
|
//造价
|
|||
|
costIndex: 0,
|
|||
|
direction: 'right',
|
|||
|
costInterval: undefined,
|
|||
|
//劳务人员
|
|||
|
infoNav: 1,
|
|||
|
staffText: '今日出勤',
|
|||
|
surveyUrl: '/images/survey_icon_5.png',
|
|||
|
laborPersonnelData: [
|
|||
|
// { text:"职工", value:52 },
|
|||
|
// { text:"劳务派遣", value:45 },
|
|||
|
// { text:"其他", value:20 },
|
|||
|
],
|
|||
|
personnelShow: false,
|
|||
|
lwDataTotal: 0,
|
|||
|
labourTableTitle: '',
|
|||
|
labourTableData: {
|
|||
|
label: [],
|
|||
|
data: []
|
|||
|
},
|
|||
|
srcList: [],
|
|||
|
tableInterval: '',
|
|||
|
rowStyle: {
|
|||
|
color: '#B6CFEF',
|
|||
|
fontSize: '12px',
|
|||
|
height: '32px'
|
|||
|
},
|
|||
|
//设备概况
|
|||
|
overview: 0,
|
|||
|
overviewInterval: '',
|
|||
|
surveyUrlSb: '/images/survey_icon_1.png',
|
|||
|
showOverviewLabel: '设备数量',
|
|||
|
showOverviewData: {},
|
|||
|
//正在发生
|
|||
|
warningData: [],
|
|||
|
|
|||
|
//重大节点预期预警
|
|||
|
maxWidth: 0,
|
|||
|
minWidth: 0,
|
|||
|
timeAxisData: [],
|
|||
|
dangerName: [],
|
|||
|
activeNum: 0,
|
|||
|
//正在发生
|
|||
|
warningInterval: undefined,
|
|||
|
forIndex: 0,
|
|||
|
//预警类型
|
|||
|
warningType: [],
|
|||
|
warning: {},
|
|||
|
warningList: [],
|
|||
|
warningTypeInterval: undefined,
|
|||
|
warningTypeIndex: 0,
|
|||
|
projectId: '',
|
|||
|
projectName: '',
|
|||
|
showWarnDeviceNum:'',
|
|||
|
showWarnNum:'',
|
|||
|
|
|||
|
|
|||
|
//模块放大
|
|||
|
amplifyShow: false,
|
|||
|
|
|||
|
//预警列表弹窗
|
|||
|
warningShow:false,
|
|||
|
warningNav:0,
|
|||
|
warningListData:[],
|
|||
|
pageNo:1,
|
|||
|
pageFlag:true,
|
|||
|
warningTypeId:'',
|
|||
|
flag:true,
|
|||
|
labourTableTitle:""
|
|||
|
}
|
|||
|
},
|
|||
|
// computed: {
|
|||
|
// showWarnNum() {
|
|||
|
// let num = 0
|
|||
|
// for (let war of this.warningList) {
|
|||
|
// num += war.warnNum
|
|||
|
// }
|
|||
|
// return num
|
|||
|
// },
|
|||
|
// showWarnDeviceNum() {
|
|||
|
// let num = 0
|
|||
|
// for (let war of this.warningList) {
|
|||
|
// num += war.warnDeviceNum
|
|||
|
// }
|
|||
|
// return num
|
|||
|
// },
|
|||
|
// showWarningData() {
|
|||
|
// let arr = []
|
|||
|
// for (let war of this.warningList) {
|
|||
|
// for (let data of war.warningData) {
|
|||
|
// arr.push(data)
|
|||
|
// }
|
|||
|
// }
|
|||
|
// return arr
|
|||
|
// }
|
|||
|
// },
|
|||
|
created() {
|
|||
|
this.init()
|
|||
|
},
|
|||
|
mounted() {
|
|||
|
|
|||
|
},
|
|||
|
methods: {
|
|||
|
init() {
|
|||
|
this.getCityWeather()
|
|||
|
chooseMenu = {
|
|||
|
mainMenu: 0,
|
|||
|
itemMenu: 0,
|
|||
|
}
|
|||
|
localStorage.setItem("chooseMenu", JSON.stringify(chooseMenu));
|
|||
|
//项目基本信息
|
|||
|
this.tableProject(JSON.parse(localStorage.getItem("data")).id)
|
|||
|
//劳务人员概况
|
|||
|
this.getLWData(this.infoNav);
|
|||
|
// this.introduceInterval = setInterval(this.timer,50);
|
|||
|
//设备概况
|
|||
|
this.getOverviewData();
|
|||
|
//设备概况点击事件定时器
|
|||
|
this.overviewInterval = setInterval(this.overviewClick, 5000);
|
|||
|
//重大节点预期预警
|
|||
|
//this.getTimeAxisData(JSON.parse(localStorage.getItem("data")).id)
|
|||
|
//项目里程碑
|
|||
|
this.getProjectTimeAxisData(JSON.parse(localStorage.getItem("data")).id)
|
|||
|
//报警分析
|
|||
|
this.getProjectWarningTypeList();
|
|||
|
this.getProjectWarningList("","");
|
|||
|
|
|||
|
// this.getWarnAnalysis();
|
|||
|
// this.gainBYSWarning()
|
|||
|
// this.gainAIWarningData()
|
|||
|
// this.getHJWarningData()
|
|||
|
//项目概况
|
|||
|
this.tableProject(JSON.parse(localStorage.getItem("data")).id)
|
|||
|
//正在发生 定时器
|
|||
|
this.warningInterval = setInterval(this.automaticRoll, 5000);
|
|||
|
//预警类型 定时器
|
|||
|
this.warningTypeInterval = setInterval(this.automaticRollType, 5000);
|
|||
|
// 造价 定时器
|
|||
|
this.costInterval = setInterval(this.manufacturingCostRoll,5000);
|
|||
|
|
|||
|
//劳务人员概况弹窗 自动滚动
|
|||
|
this.tableInterval = setInterval(this.tableScroll, 50);
|
|||
|
let that = this
|
|||
|
this.workSafetyTimeTimeout = setInterval(function(){
|
|||
|
that.workSafetyTime = moment().format("HH时mm分ss秒")
|
|||
|
},1000)
|
|||
|
},
|
|||
|
//项目概况
|
|||
|
//查询项目基本信息
|
|||
|
tableProject(projectId) {
|
|||
|
axios({
|
|||
|
method: 'post',
|
|||
|
url: "/api/project/info",
|
|||
|
data: {
|
|||
|
"project_id": projectId
|
|||
|
}
|
|||
|
}).then(res => {
|
|||
|
console.log(res)
|
|||
|
this.projectId = projectId;
|
|||
|
this.phone_show = res.data.data.phone_show
|
|||
|
this.buildUnit = res.data.data.build_unit
|
|||
|
this.buildUnitManagerName = res.data.data.build_unit_manager_name
|
|||
|
this.buildUnitManagerPhone = res.data.data.build_unit_manager_phone
|
|||
|
this.designUnit = res.data.data.design_unit
|
|||
|
this.designUnitManagerName = res.data.data.design_unit_manager_name
|
|||
|
this.designUnitManagerPhone = res.data.data.design_unit_manager_phone
|
|||
|
this.allUnit = res.data.data.all_unit
|
|||
|
this.allUnitManagerName = res.data.data.all_unit_manager_name
|
|||
|
this.allUnitManagerPhone = res.data.data.all_unit_manager_phone
|
|||
|
this.supervisorUnit = res.data.data.supervisor_unit
|
|||
|
this.supervisorUnitManagerName = res.data.data.supervisor_unit_manager_name
|
|||
|
this.supervisorUnitManagerPhone = res.data.data.supervisor_unit_manager_phone
|
|||
|
this.testingUnit = res.data.data.testing_unit
|
|||
|
this.testingUnitManagerName = res.data.data.testing_unit_manager_name
|
|||
|
this.testingUnitManagerPhone = res.data.data.testing_unit_manager_phone
|
|||
|
this.surveyUnit = res.data.data.survey_unit
|
|||
|
this.surveyUnitManagerName = res.data.data.survey_unit_manager_name
|
|||
|
this.surveyUnitManagerPhone = res.data.data.survey_unit_manager_phone
|
|||
|
this.projectOverview.allArea = res.data.data.all_area;
|
|||
|
this.projectOverview.allMoney = res.data.data.all_money;
|
|||
|
this.projectOverview.contractMoney = res.data.data.contract_monery;
|
|||
|
this.projectOverview.yearMoney = res.data.data.year_money;
|
|||
|
this.projectOverview.monthMoney = res.data.data.month_money;
|
|||
|
this.projectOverview.kaileiMoney = res.data.data.kailei_money;
|
|||
|
this.projectOverview.aerialView = res.data.data.middle_img;
|
|||
|
this.projectOverview.introduce = res.data.data.project_overview;
|
|||
|
this.projectOverview.planStartTime = res.data.data.plan_start_date;
|
|||
|
this.projectOverview.planEndDate = res.data.data.plan_end_date;
|
|||
|
this.projectOverview.actualStartDate = res.data.data.actual_start_date;
|
|||
|
this.projectOverview.floorArea = res.data.data.floorArea;
|
|||
|
let TempNewCarouselVideo = []
|
|||
|
let TempNewCarouselImg = []
|
|||
|
//展示项目级轮播图
|
|||
|
res.data.data.fileUrl.split(",").forEach(item => {
|
|||
|
let type = item.substr(item.lastIndexOf(".") + 1)
|
|||
|
if (type != 'jpg' && type != "png" && type != 'jpeg') {
|
|||
|
TempNewCarouselVideo.push({url: item})
|
|||
|
} else {
|
|||
|
TempNewCarouselImg.push({url: item})
|
|||
|
}
|
|||
|
})
|
|||
|
this.projectOverview.newCarouselImg = TempNewCarouselImg
|
|||
|
this.projectOverview.newCarouselVideo = TempNewCarouselVideo
|
|||
|
|
|||
|
if(this.projectId == "196"){
|
|||
|
this.workSafetyNumber = 475
|
|||
|
|
|||
|
}else{
|
|||
|
this.workSafetyNumber = moment().diff(moment(this.projectOverview.actualStartDate), 'days')
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
|
|||
|
})
|
|||
|
},
|
|||
|
//项目介绍弹窗
|
|||
|
projectIntroduction() {
|
|||
|
this.popupShow = true
|
|||
|
},
|
|||
|
closeProjectIntroduction() {
|
|||
|
this.popupShow = false
|
|||
|
this.personnelShow = false
|
|||
|
this.warningShow = false
|
|||
|
},
|
|||
|
closeProjectIntroductionAll(e) {
|
|||
|
if (e.target.className == 'popup-project-introduction-max') {
|
|||
|
this.popupShow = false
|
|||
|
this.personnelShow = false
|
|||
|
this.warningShow = false
|
|||
|
}
|
|||
|
},
|
|||
|
|
|||
|
//打开预警类型弹窗
|
|||
|
onOpenPopup(index,warningTypeId){
|
|||
|
this.warningShow = true
|
|||
|
this.warningNav = index
|
|||
|
this.warningTypeId = warningTypeId;
|
|||
|
this.pageNo = 1;
|
|||
|
this.warningListData = [];
|
|||
|
this.getProjectWarningList(warningTypeId,1);
|
|||
|
},
|
|||
|
onWarningNavBtn(n,warningTypeId){
|
|||
|
this.warningNav = n;
|
|||
|
this.pageNo = 1;
|
|||
|
this.warningTypeId = warningTypeId;
|
|||
|
this.warningListData = [];
|
|||
|
this.getProjectWarningList(warningTypeId,1);
|
|||
|
},
|
|||
|
//滚动分页
|
|||
|
scrollEventFn(e){
|
|||
|
if (e.srcElement.scrollTop + e.srcElement.clientHeight > e.srcElement.scrollHeight - 5 && this.flag ) {
|
|||
|
console.log("倒低了");
|
|||
|
this.flag = false;
|
|||
|
this.pageNo = this.pageNo+1;
|
|||
|
if(this.pageFlag){
|
|||
|
this.getProjectWarningList(this.warningTypeId,this.pageNo);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
//劳务人员概况
|
|||
|
getLWData(infoNav) {
|
|||
|
this.lwLoading = true;
|
|||
|
axios.post("https://smz.makalu.cc/mkl/screenApi/getAllUserData?token=" + JSON.parse(localStorage.getItem("data")).smz_token + "&deptId=131&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id + "&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id, {}).then(res => {
|
|||
|
this.lwLoading = false;
|
|||
|
var laborPersonnelData = [];
|
|||
|
if (infoNav == 0) {
|
|||
|
laborPersonnelData.push({text: "特种作业人员", value: res.data.whiteUserInfo.specialTotal, type: 2})
|
|||
|
laborPersonnelData.push({text: "劳务人员(不含特种人员)", value: res.data.whiteUserInfo.unSpecialTotal, type: 1})
|
|||
|
laborPersonnelData.push({text: "管理人员", value: res.data.whiteUserInfo.glrs, type: 0})
|
|||
|
this.lwDataTotal = parseInt(res.data.whiteUserInfo.specialTotal)+parseInt(res.data.whiteUserInfo.unSpecialTotal)+parseInt(res.data.whiteUserInfo.glrs)
|
|||
|
} else {
|
|||
|
laborPersonnelData.push({text: "特种作业人员", value: res.data.cqUserInfo.specialTotal, type: 2})
|
|||
|
laborPersonnelData.push({text: "劳务人员(不含特种人员)", value: res.data.cqUserInfo.unSpecialTotal, type: 1})
|
|||
|
laborPersonnelData.push({text: "管理人员", value: res.data.cqUserInfo.glrs, type: 0})
|
|||
|
this.lwDataTotal = res.data.rcrs
|
|||
|
}
|
|||
|
this.ljaqjy = res.data.jspxrs;
|
|||
|
var safetyEducationData = [];
|
|||
|
var safetyEducationData2 = [];
|
|||
|
safetyEducationData.push({
|
|||
|
text: "培训通过率",
|
|||
|
value: (res.data.jspxrs * res.data.pxtgl / 100).toFixed(0)
|
|||
|
});
|
|||
|
safetyEducationData2.push({text: "接受培训率", value: res.data.jspxrs});
|
|||
|
this.safetyEducationData = safetyEducationData;
|
|||
|
this.safetyEducationData2 = safetyEducationData2;
|
|||
|
this.laborPersonnelData = laborPersonnelData;
|
|||
|
this.pxTotal = res.data.jspxrs;
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
|
|||
|
},
|
|||
|
//劳务人员概况
|
|||
|
onWarningInfoNav(n, text) {
|
|||
|
this.infoNav = n
|
|||
|
this.staffText = text
|
|||
|
this.getLWData(this.infoNav);
|
|||
|
if (n == 0) {
|
|||
|
this.surveyUrl = '../../images/survey_icon_4.png'
|
|||
|
} else {
|
|||
|
this.surveyUrl = '../../images/survey_icon_5.png'
|
|||
|
}
|
|||
|
},
|
|||
|
clickBarPersonnel(index) {// 2 管理人员 1 劳务人员 0 特种作业人员
|
|||
|
this.personnelShow = true
|
|||
|
if (this.infoNav == 0) {
|
|||
|
if (index == 2) {
|
|||
|
this.labourTableTitle = '管理人员'
|
|||
|
axios.post("https://smz.makalu.cc/mkl/screenApi/getUnCqUserList?token="+JSON.parse(localStorage.getItem("data")).smz_token+"&maxDay=6&team_type=2&deptId=131&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id + "&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id, {}).then(res => {
|
|||
|
this.labourTableData.label = [
|
|||
|
{
|
|||
|
label: '照片',
|
|||
|
width: '',
|
|||
|
data: 'userphoto'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '姓名',
|
|||
|
width: '80',
|
|||
|
data: 'name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '身份证号',
|
|||
|
width: '',
|
|||
|
data: 'idcardnum'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '年龄',
|
|||
|
width: '80',
|
|||
|
data: 'age'
|
|||
|
},
|
|||
|
{
|
|||
|
label:'劳务公司',
|
|||
|
width:'',
|
|||
|
data:'enterprise_name'
|
|||
|
},
|
|||
|
/*{
|
|||
|
label: '职务',
|
|||
|
width: '',
|
|||
|
data: 'post'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '职称',
|
|||
|
width: '',
|
|||
|
data: 'titles'
|
|||
|
},*/
|
|||
|
];
|
|||
|
|
|||
|
if (res.data.state == 'OK') {
|
|||
|
this.labourTableData.data = res.data.data;
|
|||
|
} else {
|
|||
|
this.labourTableData.data = []
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
} else if (index == 1) {
|
|||
|
this.labourTableTitle = '劳务人员(不含特种人员)'
|
|||
|
axios.post("https://smz.makalu.cc/mkl/screenApi/getUnCqUserList?token="+JSON.parse(localStorage.getItem("data")).smz_token+"&maxDay=6&special_flag=2&team_type=1&deptId=131&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id + "&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id, {}).then(res => {
|
|||
|
this.labourTableData.label = [
|
|||
|
{
|
|||
|
label: '照片',
|
|||
|
width: '',
|
|||
|
data: 'userphoto'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '姓名',
|
|||
|
width: '80',
|
|||
|
data: 'name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '身份证号',
|
|||
|
width: '',
|
|||
|
data: 'idcardnum'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '年龄',
|
|||
|
width: '80',
|
|||
|
data: 'age'
|
|||
|
},
|
|||
|
{
|
|||
|
label:'劳务公司',
|
|||
|
width:'',
|
|||
|
data:'enterprise_name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '工种',
|
|||
|
width: '',
|
|||
|
data: 'work_type'
|
|||
|
},
|
|||
|
];
|
|||
|
if (res.data.state == 'OK') {
|
|||
|
this.labourTableData.data = res.data.data;
|
|||
|
} else {
|
|||
|
this.labourTableData.data = []
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
} else if (index == 0) {
|
|||
|
this.labourTableTitle = '特种作业人员'
|
|||
|
axios.post("https://smz.makalu.cc/mkl/screenApi/getUnCqUserList?token="+JSON.parse(localStorage.getItem("data")).smz_token+"&maxDay=6&special_flag=1&team_type=1&deptId=131&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id + "&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id, {}).then(res => {
|
|||
|
this.labourTableData.label = [
|
|||
|
{
|
|||
|
label: '照片',
|
|||
|
width: '',
|
|||
|
data: 'userphoto'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '姓名',
|
|||
|
width: '80',
|
|||
|
data: 'name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '身份证号',
|
|||
|
width: '',
|
|||
|
data: 'idcardnum'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '年龄',
|
|||
|
width: '80',
|
|||
|
data: 'age'
|
|||
|
},
|
|||
|
{
|
|||
|
label:'劳务公司',
|
|||
|
width:'',
|
|||
|
data:'enterprise_name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '工种',
|
|||
|
width: '',
|
|||
|
data: 'work_type'
|
|||
|
},
|
|||
|
];
|
|||
|
if (res.data.state == 'OK') {
|
|||
|
this.labourTableData.data = res.data.data;
|
|||
|
} else {
|
|||
|
this.labourTableData.data = []
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
} else {
|
|||
|
if (index == 2) {
|
|||
|
this.labourTableTitle = '管理人员'
|
|||
|
axios.post("https://smz.makalu.cc/mkl/screenApi/getCqUserInfoList?token=" + JSON.parse(localStorage.getItem("data")).smz_token + "&team_type=2&deptId=131&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id + "&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id, {}).then(res => {
|
|||
|
this.labourTableData.label = [
|
|||
|
{
|
|||
|
label: '照片',
|
|||
|
width: '',
|
|||
|
data: 'userphoto'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '姓名',
|
|||
|
width: '80',
|
|||
|
data: 'name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '身份证号',
|
|||
|
width: '',
|
|||
|
data: 'idcardnum'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '年龄',
|
|||
|
width: '80',
|
|||
|
data: 'age'
|
|||
|
},
|
|||
|
{
|
|||
|
label:'劳务公司',
|
|||
|
width:'',
|
|||
|
data:'enterprise_name'
|
|||
|
},
|
|||
|
/* {
|
|||
|
label: '职务',
|
|||
|
width: '',
|
|||
|
data: 'post'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '职称',
|
|||
|
width: '',
|
|||
|
data: 'titles'
|
|||
|
},*/
|
|||
|
];
|
|||
|
|
|||
|
if (res.data.state == 'OK') {
|
|||
|
this.labourTableData.data = res.data.data;
|
|||
|
} else {
|
|||
|
this.labourTableData.data = []
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
} else if (index == 1) {
|
|||
|
this.labourTableTitle = '劳务人员(不含特种人员)'
|
|||
|
axios.post("https://smz.makalu.cc/mkl/screenApi/getCqUserInfoList?token=" + JSON.parse(localStorage.getItem("data")).smz_token + "&team_type=1&special_flag=2&deptId=131&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id + "&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id, {}).then(res => {
|
|||
|
this.labourTableData.label = [
|
|||
|
{
|
|||
|
label: '照片',
|
|||
|
width: '',
|
|||
|
data: 'userphoto'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '姓名',
|
|||
|
width: '80',
|
|||
|
data: 'name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '身份证号',
|
|||
|
width: '',
|
|||
|
data: 'idcardnum'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '年龄',
|
|||
|
width: '80',
|
|||
|
data: 'age'
|
|||
|
},
|
|||
|
{
|
|||
|
label:'劳务公司',
|
|||
|
width:'',
|
|||
|
data:'enterprise_name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '工种',
|
|||
|
width: '',
|
|||
|
data: 'work_type'
|
|||
|
},
|
|||
|
];
|
|||
|
if (res.data.state == 'OK') {
|
|||
|
this.labourTableData.data = res.data.data;
|
|||
|
} else {
|
|||
|
this.labourTableData.data = []
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
} else if (index == 0) {
|
|||
|
this.labourTableTitle = '特种作业人员'
|
|||
|
axios.post("https://smz.makalu.cc/mkl/screenApi/getCqUserInfoList?token=" + JSON.parse(localStorage.getItem("data")).smz_token + "&team_type=1&special_flag=1&deptId=131&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id + "&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id, {}).then(res => {
|
|||
|
this.labourTableData.label = [
|
|||
|
{
|
|||
|
label: '照片',
|
|||
|
width: '',
|
|||
|
data: 'userphoto'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '姓名',
|
|||
|
width: '80',
|
|||
|
data: 'name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '身份证号',
|
|||
|
width: '',
|
|||
|
data: 'idcardnum'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '年龄',
|
|||
|
width: '80',
|
|||
|
data: 'age'
|
|||
|
},
|
|||
|
{
|
|||
|
label:'劳务公司',
|
|||
|
width:'',
|
|||
|
data:'enterprise_name'
|
|||
|
},
|
|||
|
{
|
|||
|
label: '工种',
|
|||
|
width: '',
|
|||
|
data: 'work_type'
|
|||
|
},
|
|||
|
];
|
|||
|
if (res.data.state == 'OK') {
|
|||
|
this.labourTableData.data = res.data.data;
|
|||
|
} else {
|
|||
|
this.labourTableData.data = []
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
imgAmplify(url) {
|
|||
|
this.srcList.push(url)
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
//设备概况数据
|
|||
|
getOverviewData() {
|
|||
|
axios.post(requestUrl + "getEquipmentOverview?deptId=" + deptId + "&projectId=" + JSON.parse(localStorage.getItem("data")).jzgj + "&typtProjectId=" + JSON.parse(localStorage.getItem("data")).id + "&typtDeptId=" + JSON.parse(localStorage.getItem("data")).dept_id, {}).then(res => {
|
|||
|
this.overviewData = [res.data.data.count, res.data.data.bind, res.data.data.monitor];
|
|||
|
this.showOverviewData = this.overviewData[0];
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
},
|
|||
|
//设备概况点击事件定时器方法
|
|||
|
overviewClick() {
|
|||
|
if (this.overview < 2) {
|
|||
|
this.overview = this.overview + 1
|
|||
|
} else {
|
|||
|
this.overview = 0
|
|||
|
}
|
|||
|
this.showOverviewData = this.overviewData[this.overview];
|
|||
|
if (this.overview == 0) {
|
|||
|
this.showOverviewLabel = '设备数量'
|
|||
|
this.surveyUrlSb = '/images/survey_icon_1.png'
|
|||
|
} else if (this.overview == 1) {
|
|||
|
this.showOverviewLabel = '绑定数量'
|
|||
|
this.surveyUrlSb = '/images/survey_icon_2.png'
|
|||
|
} else {
|
|||
|
this.showOverviewLabel = '监测数量'
|
|||
|
this.surveyUrlSb = '/images/survey_icon_3.png'
|
|||
|
}
|
|||
|
},
|
|||
|
//设备概况点击事件
|
|||
|
onClickoOverview(n) {
|
|||
|
this.overview = n
|
|||
|
this.showOverviewData = this.overviewData[this.overview];
|
|||
|
if (this.overview == 0) {
|
|||
|
this.showOverviewLabel = '设备数量'
|
|||
|
this.surveyUrlSb = '/images/survey_icon_1.png'
|
|||
|
} else if (this.overview == 1) {
|
|||
|
this.showOverviewLabel = '绑定数量'
|
|||
|
this.surveyUrlSb = '/images/survey_icon_2.png'
|
|||
|
} else {
|
|||
|
this.showOverviewLabel = '监测数量'
|
|||
|
this.surveyUrlSb = '/images/survey_icon_3.png'
|
|||
|
}
|
|||
|
},
|
|||
|
//本周时间
|
|||
|
getWeekStartAndEnd(){
|
|||
|
let data = new Date() //当前日期
|
|||
|
let year = Number(data.getFullYear());//当前年
|
|||
|
let month = Number(data.getMonth())+1;
|
|||
|
let nowMonth =Number(data.getMonth()); //当前月
|
|||
|
let day = Number(data.getDate()); //当天
|
|||
|
//计算某日是本月第几周
|
|||
|
let mydate=new Date(year,month-1,day);
|
|||
|
let weekday=mydate.getDay(); //获取该日是星期几,0代表星期日//今天本周的第几天
|
|||
|
if(weekday == 0){
|
|||
|
weekday = 7;
|
|||
|
}
|
|||
|
|
|||
|
//本周的开始时间
|
|||
|
let startDate = new Date(year, nowMonth, day + 1 - weekday);
|
|||
|
let startyear = startDate.getFullYear();
|
|||
|
let startmonth = (startDate.getMonth()+1) < 10 ? '0'+(startDate.getMonth()+1): startDate.getMonth()+1;
|
|||
|
let startday = startDate.getDate() < 10 ? '0'+startDate.getDate() :startDate.getDate();
|
|||
|
let startTime =startyear+'-'+startmonth+'-'+startday
|
|||
|
|
|||
|
//本周的结束时间
|
|||
|
let endDate = new Date(year, nowMonth, day + 7 - weekday);
|
|||
|
let sendyear = endDate.getFullYear();
|
|||
|
let endmonth = (endDate.getMonth()+1) < 10 ? '0'+(endDate.getMonth()+1): endDate.getMonth()+1;
|
|||
|
let endday = endDate.getDate() < 10 ? '0'+endDate.getDate() :endDate.getDate();
|
|||
|
let endTime =sendyear+'-'+endmonth+'-'+endday
|
|||
|
return {"startTime":startTime,"endTime":endTime};
|
|||
|
},
|
|||
|
//报警分析
|
|||
|
getProjectWarningTypeList(){
|
|||
|
let timeParam = this.getWeekStartAndEnd();
|
|||
|
console.log(timeParam);
|
|||
|
axios.get("/api/warning/getProjectWarningTypeList",
|
|||
|
{
|
|||
|
params: {
|
|||
|
"deptId": 131,
|
|||
|
"projectId": JSON.parse(localStorage.getItem("data")).id,
|
|||
|
"startDate": timeParam.startTime,
|
|||
|
"endDate": timeParam.endTime
|
|||
|
}
|
|||
|
}
|
|||
|
).then(res => {
|
|||
|
this.warningList = res.data.list;
|
|||
|
this.showWarnNum = res.data.weekNum;
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
},
|
|||
|
getProjectWarningList(warningTypeId,pageNo){
|
|||
|
axios.get("/api/warning/getProjectWarningList",
|
|||
|
{
|
|||
|
params: {
|
|||
|
"deptId": 131,
|
|||
|
"projectId": JSON.parse(localStorage.getItem("data")).id,
|
|||
|
"warningType":warningTypeId,
|
|||
|
"pageNo":pageNo ==""?null:(pageNo - 1) * 10
|
|||
|
}
|
|||
|
}
|
|||
|
).then(res => {
|
|||
|
if(warningTypeId == ""){
|
|||
|
this.showWarnDeviceNum = res.data.length;
|
|||
|
this.warningData = res.data;
|
|||
|
}else{
|
|||
|
for(let i = 0;i<res.data.length;i++){
|
|||
|
this.warningListData.push(res.data[i]);
|
|||
|
}
|
|||
|
this.pageFlag = res.data.length < 10?false:true;
|
|||
|
this.flag = res.data.length>0?true:false;
|
|||
|
}
|
|||
|
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
},
|
|||
|
getWarnAnalysis() {
|
|||
|
//机械预警
|
|||
|
axios.get("https://jzgj.crfeb.com.cn/largeScreen/digitalConstruction/getWarnAnalysis",
|
|||
|
{
|
|||
|
params: {
|
|||
|
"deptId": 131,
|
|||
|
"projectId": JSON.parse(localStorage.getItem("data")).jzgj,
|
|||
|
"typtProjectId": JSON.parse(localStorage.getItem("data")).dept_id
|
|||
|
}
|
|||
|
}
|
|||
|
).then(res => {
|
|||
|
let data = res.data.data;
|
|||
|
this.warningType = data.type;
|
|||
|
this.warning = data.count;
|
|||
|
data.list.map(x => {
|
|||
|
x.images = "/images/warning_jixie.png"
|
|||
|
})
|
|||
|
this.warningData = data.list;
|
|||
|
if (data.list.length > 0) {
|
|||
|
this.warningList.push({
|
|||
|
type: "机械预警",
|
|||
|
warningData: data.list,
|
|||
|
warnDeviceNum: 0,
|
|||
|
warnNum: data.list.length
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
this.getDeviceWarnData();
|
|||
|
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
},
|
|||
|
getDeviceWarnData() {
|
|||
|
//安全预警
|
|||
|
axios.get("https://aqzg.makalu.cc/api/statistics/getDeviceWarnData", {
|
|||
|
params: {
|
|||
|
"deptId": 131,
|
|||
|
"projectId": JSON.parse(localStorage.getItem("data")).aqzg
|
|||
|
}
|
|||
|
}
|
|||
|
).then(res => {
|
|||
|
let objArray = [];
|
|||
|
for (let i = 0; i < res.data.length; i++) {
|
|||
|
let obj = {
|
|||
|
"images": "/images/warning_jixie.png",
|
|||
|
"address": "",
|
|||
|
"latitude": "",
|
|||
|
"equipment": res.data[i].towerName,
|
|||
|
"time": res.data[i].warn_time,
|
|||
|
"projectName": res.data[i].project_abbreviation,
|
|||
|
"content": res.data[i].warn_context,
|
|||
|
"longitude": ""
|
|||
|
}
|
|||
|
objArray.push(obj);
|
|||
|
}
|
|||
|
this.warning = {
|
|||
|
warnDeviceNum: parseInt(this.warning.warnDeviceNum) + parseInt(res.data.length),
|
|||
|
warnNum: this.warning.warnNum
|
|||
|
};
|
|||
|
|
|||
|
let tmpObj = {
|
|||
|
type: "安全预警",
|
|||
|
warnDeviceNum: parseInt(this.warning.warnDeviceNum) + parseInt(res.data.length),
|
|||
|
warnNum: this.warning.warnNum
|
|||
|
}
|
|||
|
this.getDeviceWarnWeekData(tmpObj);
|
|||
|
|
|||
|
for (let i = 0; i < this.warningData.length; i++) {
|
|||
|
objArray.push(this.warningData[i]);
|
|||
|
}
|
|||
|
this.warningData = objArray;
|
|||
|
|
|||
|
/* if (res.data.length > 0) {
|
|||
|
this.warningList.push({
|
|||
|
type: "安全预警",
|
|||
|
warningData: objArray,
|
|||
|
warnDeviceNum: parseInt(this.warning.warnDeviceNum) + parseInt(res.data.length),
|
|||
|
warnNum: this.warning.warnNum
|
|||
|
})
|
|||
|
}
|
|||
|
*/
|
|||
|
|
|||
|
let array = this.arrCheck(res.data);
|
|||
|
let warningType = this.warningType;
|
|||
|
for (let i = 0; i < warningType.length; i++) {
|
|||
|
array.push(warningType[i]);
|
|||
|
}
|
|||
|
this.warningType = array;
|
|||
|
}).catch(err => {
|
|||
|
});
|
|||
|
},
|
|||
|
arrCheck(arr) {
|
|||
|
let map = {};
|
|||
|
let dest = [];
|
|||
|
for (let i = 0; i < arr.length; i++) {
|
|||
|
let field = arr[i];
|
|||
|
if (!map[field.warn_context]) {
|
|||
|
dest.push({
|
|||
|
name: field.warn_context,
|
|||
|
value: 1
|
|||
|
});
|
|||
|
map[field.warn_context] = field;
|
|||
|
} else {
|
|||
|
for (let j = 0; j < dest.length; j++) {
|
|||
|
let fieldd = dest[j];
|
|||
|
if (fieldd.name == field.warn_context) {
|
|||
|
fieldd.value = fieldd.value + 1;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
return dest;
|
|||
|
},
|
|||
|
/**
|
|||
|
* 获取设备周预警,安全智管
|
|||
|
*/
|
|||
|
getDeviceWarnWeekData(obj) {
|
|||
|
var now = new Date();
|
|||
|
var nowTime = now.getTime();
|
|||
|
var day = now.getDay();
|
|||
|
var oneDayTime = 24 * 60 * 60 * 1000;
|
|||
|
var MondayTime = nowTime - (day - 1) * oneDayTime;
|
|||
|
var SundayTime = nowTime + (7 - day) * oneDayTime;
|
|||
|
axios.get("https://aqzg.makalu.cc/api/statistics/getDeviceWarnData", {
|
|||
|
params: {
|
|||
|
"deptId": 131,
|
|||
|
"projectId": JSON.parse(localStorage.getItem("data")).aqzg,
|
|||
|
"startDate": this.format(new Date(MondayTime)),
|
|||
|
"endDate": this.format(new Date(SundayTime))
|
|||
|
}
|
|||
|
}
|
|||
|
).then(res => {
|
|||
|
this.warning = {
|
|||
|
warnDeviceNum: this.warning.warnDeviceNum,
|
|||
|
warnNum: parseInt(this.warning.warnNum) + parseInt(res.data.length)
|
|||
|
};
|
|||
|
|
|||
|
let tmp = {}
|
|||
|
let devn = 0
|
|||
|
for (let re of res.data) {
|
|||
|
if (!tmp[re.towerName]) {
|
|||
|
tmp[re.towerName] = true
|
|||
|
devn++
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
let tmpObj = {
|
|||
|
type: "安全预警",
|
|||
|
warningData: res.data,
|
|||
|
warnDeviceNum: obj.warnDeviceNum,
|
|||
|
warnNum: res.data.length
|
|||
|
}
|
|||
|
this.gainPDXWarning(tmpObj)
|
|||
|
}).catch(err => {
|
|||
|
console.log(err);
|
|||
|
})
|
|||
|
},
|
|||
|
//格式化时间
|
|||
|
format(dat) {
|
|||
|
//获取年月日,时间
|
|||
|
var year = dat.getFullYear();
|
|||
|
var mon = (dat.getMonth() + 1) < 10 ? "0" + (dat.getMonth() + 1) : dat.getMonth() + 1;
|
|||
|
var data = dat.getDate() < 10 ? "0" + (dat.getDate()) : dat.getDate();
|
|||
|
var hour = dat.getHours() < 10 ? "0" + (dat.getHours()) : dat.getHours();
|
|||
|
var min = dat.getMinutes() < 10 ? "0" + (dat.getMinutes()) : dat.getMinutes();
|
|||
|
var seon = dat.getSeconds() < 10 ? "0" + (dat.getSeconds()) : dat.getSeconds();
|
|||
|
var newDate = year + "-" + mon + "-" + data + " " + hour + ":" + min + ":" + seon;
|
|||
|
return newDate;
|
|||
|
},
|
|||
|
//造价
|
|||
|
modifyLeftBtn() {
|
|||
|
this.direction = 'left'
|
|||
|
this.manufacturingCostRoll()
|
|||
|
},
|
|||
|
modifyRightBtn() {
|
|||
|
this.direction = 'right'
|
|||
|
this.manufacturingCostRoll()
|
|||
|
},
|
|||
|
manufacturingCostRoll() {
|
|||
|
var width = $(".project-amount").innerWidth() * 3
|
|||
|
if (this.direction == 'right') {
|
|||
|
if (this.costIndex == 3) {
|
|||
|
this.costIndex = 0
|
|||
|
this.$refs.modifyContent.scrollLeft = 0
|
|||
|
} else {
|
|||
|
this.costIndex = this.costIndex + 1
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (this.costIndex == 0) {
|
|||
|
this.costIndex = 3
|
|||
|
this.$refs.modifyContent.scrollLeft = 2520
|
|||
|
} else {
|
|||
|
this.costIndex = this.costIndex - 1
|
|||
|
}
|
|||
|
}
|
|||
|
$(this.$refs.modifyContent).animate({scrollLeft: (width * this.costIndex) + 'px'})
|
|||
|
this.direction = 'right'
|
|||
|
},
|
|||
|
costMouseover() {
|
|||
|
clearInterval(this.costInterval);
|
|||
|
},
|
|||
|
costMouseout() {
|
|||
|
this.costInterval = setInterval(this.manufacturingCostRoll, 5000);
|
|||
|
},
|
|||
|
//head选择项目返回值
|
|||
|
onItemData(e) {
|
|||
|
if (e.type == 1) {
|
|||
|
location.href = 'toIndex'
|
|||
|
} else {
|
|||
|
location.reload();
|
|||
|
}
|
|||
|
this.tableProject(e.id)
|
|||
|
},
|
|||
|
//项目概况
|
|||
|
timer() {
|
|||
|
let that = this
|
|||
|
this.$nextTick(function () {
|
|||
|
let height = that.$refs.introduce.offsetHeight
|
|||
|
let content = that.$refs.content.offsetHeight
|
|||
|
if (this.top == -height) {
|
|||
|
this.show = false
|
|||
|
this.top = content
|
|||
|
} else {
|
|||
|
this.show = true
|
|||
|
this.top -= 1
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
TimerEnter() {//鼠标移入停止滚动
|
|||
|
clearInterval(this.introduceInterval);
|
|||
|
},
|
|||
|
TimerLeave() {//鼠标离开继续滚动
|
|||
|
this.introduceInterval = setInterval(this.timer, 50);
|
|||
|
},
|
|||
|
getProjectTimeAxisData(){
|
|||
|
/*var timeAxisData = [
|
|||
|
{
|
|||
|
title:'项目开工',
|
|||
|
planTime:'2022-09-01',
|
|||
|
actualTima:'2022-09-01',
|
|||
|
expectDays:'0',
|
|||
|
state:0, // 0 正常完工 1 预期
|
|||
|
},
|
|||
|
{
|
|||
|
title:'筏板开始施工',
|
|||
|
planTime:'2022-11-29',
|
|||
|
actualTima:'2022-11-29',
|
|||
|
expectDays:'0',
|
|||
|
state:0, // 0 正常完工 1 预期
|
|||
|
},
|
|||
|
{
|
|||
|
title:'车库主体结构施工完成',
|
|||
|
planTime:'2023-05-15',
|
|||
|
actualTima:'',
|
|||
|
expectDays:'0',
|
|||
|
state:0, // 0 正常完工 1 预期
|
|||
|
},{
|
|||
|
title:'主楼结构施工完成',
|
|||
|
planTime:'2023-08-31',
|
|||
|
actualTima:'',
|
|||
|
expectDays:'0',
|
|||
|
state:0, // 0 正常完工 1 预期
|
|||
|
},{
|
|||
|
title:'1-6号楼外窗20层完成,精装修完成12层',
|
|||
|
planTime:'2023-12-31',
|
|||
|
actualTima:'',
|
|||
|
expectDays:'0',
|
|||
|
state:0, // 0 正常完工 1 预期
|
|||
|
},
|
|||
|
{
|
|||
|
title:'计划竣工日期',
|
|||
|
planTime:'2024-08-21',
|
|||
|
actualTima:'',
|
|||
|
expectDays:'0',
|
|||
|
state:0, // 0 正常完工 1 预期
|
|||
|
},
|
|||
|
|
|||
|
]*/
|
|||
|
let that = this
|
|||
|
axios.post("/api/project/selectSonList",{
|
|||
|
"projectId":JSON.parse(localStorage.getItem("data")).id
|
|||
|
}).then(res => {
|
|||
|
let timeAxisData = res.data.data
|
|||
|
let index = 0
|
|||
|
for (let i = 0; i < timeAxisData.length; i++) {
|
|||
|
if(!timeAxisData[i].actualTime){
|
|||
|
// index = i-1
|
|||
|
break
|
|||
|
}
|
|||
|
index++;
|
|||
|
}
|
|||
|
that.maxWidth = timeAxisData.length * 200
|
|||
|
if(index == timeAxisData.length || index == 0){
|
|||
|
that.minWidth = that.minWidth + (index*200)
|
|||
|
}else{
|
|||
|
that.minWidth = that.minWidth + (index*200 -100)
|
|||
|
}
|
|||
|
that.timeAxisData = timeAxisData
|
|||
|
})
|
|||
|
|
|||
|
},
|
|||
|
//重大节点预期预警
|
|||
|
getTimeAxisData(projectId) {
|
|||
|
var timeAxisData = []
|
|||
|
//请求数据
|
|||
|
axios({
|
|||
|
method: 'post',
|
|||
|
url: "/api/danger/queryProjectDanger",
|
|||
|
data: {
|
|||
|
"project_id": projectId
|
|||
|
}
|
|||
|
}).then(res => {
|
|||
|
if (res.data.code == 200) {
|
|||
|
|
|||
|
this.dangerName = res.data.data.danger_name
|
|||
|
timeAxisData = res.data.data.dangerList
|
|||
|
|
|||
|
var index = timeAxisData.length - 1
|
|||
|
for (let i = 0; i < timeAxisData.length; i++) {
|
|||
|
if (timeAxisData[i].actualTima == '') {
|
|||
|
index = i - 1
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
this.maxWidth = timeAxisData.length * 200
|
|||
|
if (index == timeAxisData.length - 1) {
|
|||
|
this.minWidth = this.minWidth + (index * 200 + 100)
|
|||
|
} else {
|
|||
|
this.minWidth = this.minWidth + (index * 200)
|
|||
|
}
|
|||
|
|
|||
|
this.timeAxisData = timeAxisData
|
|||
|
} else {
|
|||
|
this.timeAxisData = []
|
|||
|
}
|
|||
|
|
|||
|
}).catch(err => {
|
|||
|
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
changeData(id, i) {
|
|||
|
this.activeNum = i
|
|||
|
this.timeAxisData = []
|
|||
|
var timeAxisDataA = []
|
|||
|
//请求数据
|
|||
|
axios({
|
|||
|
method: 'post',
|
|||
|
url: "/api/danger/queryProjectId",
|
|||
|
data: {
|
|||
|
"project_id": JSON.parse(localStorage.getItem("data")).id,
|
|||
|
"danger_id": id
|
|||
|
}
|
|||
|
}).then(res => {
|
|||
|
if (res.data.code == 200) {
|
|||
|
|
|||
|
timeAxisDataA = res.data.dangerList
|
|||
|
|
|||
|
var index = timeAxisDataA.length - 1
|
|||
|
for (let i = 0; i < timeAxisDataA.length; i++) {
|
|||
|
if (timeAxisDataA[i].actualTima == '') {
|
|||
|
index = i - 1
|
|||
|
break
|
|||
|
}
|
|||
|
}
|
|||
|
this.maxWidth = timeAxisDataA.length * 200
|
|||
|
if (index == timeAxisDataA.length - 1) {
|
|||
|
this.minWidth = this.minWidth + (index * 200 + 100)
|
|||
|
} else {
|
|||
|
this.minWidth = this.minWidth + (index * 200)
|
|||
|
}
|
|||
|
|
|||
|
this.timeAxisData = timeAxisDataA
|
|||
|
} else {
|
|||
|
this.timeAxisData = []
|
|||
|
}
|
|||
|
|
|||
|
}).catch(err => {
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
},
|
|||
|
automaticRollType() {
|
|||
|
var height = $(".glr-login-number-max").innerHeight()
|
|||
|
if ($("#afootOverflowType").scrollTop() == height * this.warningType.length - $("#afootOverflowType").innerHeight()) {
|
|||
|
this.warningTypeIndex = 0
|
|||
|
} else {
|
|||
|
this.warningTypeIndex = this.warningTypeIndex + 1
|
|||
|
}
|
|||
|
$("#afootOverflowType").animate({scrollTop: (height * this.warningTypeIndex) + 'px'})
|
|||
|
},
|
|||
|
listMinMouseoverType() {
|
|||
|
clearInterval(this.warningTypeInterval);
|
|||
|
},
|
|||
|
listMinMouseoutType() {
|
|||
|
this.warningTypeInterval = setInterval(this.automaticRollType, 5000);
|
|||
|
},
|
|||
|
automaticRoll() {
|
|||
|
var height = $(".afoot-con-for").innerHeight()
|
|||
|
if (this.forIndex == this.warningData.length) {
|
|||
|
this.forIndex = 0
|
|||
|
} else {
|
|||
|
this.forIndex = this.forIndex + 1
|
|||
|
}
|
|||
|
$("#afootOverflow").animate({scrollTop: (height * this.forIndex) + 'px'})
|
|||
|
},
|
|||
|
listMinMouseover() {
|
|||
|
clearInterval(this.warningInterval);
|
|||
|
},
|
|||
|
listMinMouseout() {
|
|||
|
this.warningInterval = setInterval(this.automaticRoll, 10000);
|
|||
|
},
|
|||
|
// 人员弹窗表格滚动 方法 --------- 开始
|
|||
|
tableScroll() {
|
|||
|
let maxHeight = this.$refs.tableRoll.$el.querySelectorAll('.el-table__body')[0].offsetHeight;
|
|||
|
let clientHeight = this.$refs.tableRoll.bodyWrapper.clientHeight;
|
|||
|
if (Math.abs(this.$refs.tableRoll.bodyWrapper.scrollTop - (maxHeight - clientHeight)) < 5) { //预留5像素误差
|
|||
|
this.$refs.tableRoll.bodyWrapper.scrollTop = 0;
|
|||
|
} else {
|
|||
|
this.$refs.tableRoll.bodyWrapper.scrollTop += 1;//32是每一行表格的高度,每秒滚一行
|
|||
|
}
|
|||
|
},
|
|||
|
tableMouseEnter() {//鼠标移入停止滚动
|
|||
|
clearInterval(this.tableInterval);
|
|||
|
},
|
|||
|
tableMouseLeave() {//鼠标离开继续滚动
|
|||
|
this.tableInterval = setInterval(this.tableScroll, 50);
|
|||
|
},
|
|||
|
// 人员弹窗滚动 方法 ------ 结束
|
|||
|
/**
|
|||
|
* 获取配电箱异常信息
|
|||
|
*/
|
|||
|
gainPDXWarning(obj) {
|
|||
|
let that = this
|
|||
|
$.post("/api/iot/power/warringList?pageNum=1&pageSize=10",
|
|||
|
{
|
|||
|
type: "配电箱",
|
|||
|
startTime: moment().day(0).format("YYYY-MM-DD 23:59:59"),
|
|||
|
endTime: moment().day(7).format("YYYY-MM-DD 23:59:59")
|
|||
|
},
|
|||
|
res => {
|
|||
|
//console.log(res);
|
|||
|
for (let row of res.rows) {
|
|||
|
obj.warningData.push(row)
|
|||
|
}
|
|||
|
obj.warnDeviceNum += 0
|
|||
|
obj.warnNum += res.total
|
|||
|
if (obj.warnNum > 0) {
|
|||
|
this.warningList.push(obj)
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
/**
|
|||
|
* 获取标养室异常信息
|
|||
|
*/
|
|||
|
gainBYSWarning() {
|
|||
|
let that = this
|
|||
|
$.post(
|
|||
|
"/api/iot/power/warringList?pageNum=1&pageSize=10",
|
|||
|
{
|
|||
|
type: "标养室",
|
|||
|
startTime: moment().day(0).format("YYYY-MM-DD 23:59:59"),
|
|||
|
endTime: moment().day(7).format("YYYY-MM-DD 23:59:59")
|
|||
|
},
|
|||
|
res => {
|
|||
|
let tmp = {
|
|||
|
type: "质量预警",
|
|||
|
warningData: res.rows,
|
|||
|
warnDeviceNum: 24,
|
|||
|
warnNum: res.total
|
|||
|
}
|
|||
|
$.post(
|
|||
|
"/api/iot/power/warringList?pageNum=1&pageSize=10",
|
|||
|
{
|
|||
|
type: "标养室",
|
|||
|
startTime: moment().format("YYYY-MM-DD 00:00:00"),
|
|||
|
endTime: moment().format("YYYY-MM-DD 23:59:59")
|
|||
|
},
|
|||
|
res => {
|
|||
|
//console.log(res);
|
|||
|
tmp.warnDeviceNum = res.total
|
|||
|
that.warningList.push(tmp)
|
|||
|
}
|
|||
|
)
|
|||
|
}
|
|||
|
)
|
|||
|
},
|
|||
|
gainAIWarningData() {
|
|||
|
axios.post("https://aqzg.makalu.cc/api/video/getAnalysisDetailList", {
|
|||
|
projectId: JSON.parse(localStorage.getItem("data")).aqzg,
|
|||
|
// dataNum:50
|
|||
|
}).then(res => {
|
|||
|
this.warningList.push({
|
|||
|
type: "AI预警",
|
|||
|
warningData: res.data,
|
|||
|
warnDeviceNum: res.data.length,
|
|||
|
warnNum: res.data.length
|
|||
|
})
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
},
|
|||
|
getHJWarningData() {
|
|||
|
axios.get("/mkl/api/getWaringIngBaseInfo?projectId="+JSON.parse(localStorage.getItem("data")).smz, {
|
|||
|
}).then(res => {
|
|||
|
if(res.data.data.length > 0 ) {
|
|||
|
var data = res.data.data;
|
|||
|
this.warningList.push({
|
|||
|
type: "环境预警",
|
|||
|
warningData: res.data.data,
|
|||
|
warnDeviceNum: res.data.data.length,
|
|||
|
warnNum: res.data.data.length
|
|||
|
})
|
|||
|
}
|
|||
|
}).catch(err => {
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
getCityWeather(){
|
|||
|
let that = this
|
|||
|
axios.post("/api/iot/power/getCityWeather",{
|
|||
|
id: JSON.parse(localStorage.getItem("data")).id
|
|||
|
}).then(res => {
|
|||
|
if(res.data.code == 0){
|
|||
|
that.cityWeather= res.data.data
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
showDay(n){
|
|||
|
if(n==0) {
|
|||
|
return "今天"
|
|||
|
} else if(n == 1) {
|
|||
|
return "明天"
|
|||
|
} else {
|
|||
|
return "后天"
|
|||
|
}
|
|||
|
// return moment().add(n,'days').format("MM月DD日")
|
|||
|
},
|
|||
|
showWarningCategory(str){
|
|||
|
let name = ""
|
|||
|
switch (str){
|
|||
|
case "AI预警":
|
|||
|
name = "安全着装告警"
|
|||
|
break
|
|||
|
case "安全预警":
|
|||
|
name = "监测告警"
|
|||
|
break
|
|||
|
case "质量预警":
|
|||
|
name = "标养室告警"
|
|||
|
break
|
|||
|
}
|
|||
|
return name
|
|||
|
}
|
|||
|
},
|
|||
|
// 表格滚动调用的函数
|
|||
|
beforeDestroy() {
|
|||
|
clearInterval(this.tableInterval);
|
|||
|
},
|
|||
|
})
|
|||
|
</script>
|
|||
|
</html>
|