update code

prv
haha 2024-03-10 00:34:11 +08:00
parent e9eb913eba
commit f5fd49755f
16 changed files with 1113 additions and 296 deletions

View File

@ -376,7 +376,7 @@ body::-webkit-scrollbar{
position: absolute;
top: 880px;
padding: 10px 40px;
background: url("../images/ai/branch_btn_bgd.png") no-repeat center/100% 100%;
background: url("../images/branch_btn_bgd.png") no-repeat center/100% 100%;
color: #c8d7fe;
cursor: pointer;
z-index: 999;
@ -1057,7 +1057,7 @@ body::-webkit-scrollbar{
.sf-equipment-overview-bgd{
height: 240px;
width: 400px;
background: url("../images/ai/tower_crane.png") no-repeat center/100% 100%;
background: url("../images/tower_crane.png") no-repeat center/100% 100%;
position: relative;
margin: auto;
}
@ -1098,7 +1098,7 @@ body::-webkit-scrollbar{
.sf-hook{
width: 16px;
height: 30px;
background: url("../images/ai/drag_hook.png") no-repeat center/100% 100%;
background: url("../images/drag_hook.png") no-repeat center/100% 100%;
}
.circular{
position: absolute;
@ -1106,12 +1106,12 @@ body::-webkit-scrollbar{
height: 120px;
bottom: 15px;
right: 15px;
background: url("../images/ai/circular.png") no-repeat center/100% 100%;
background: url("../images/circular.png") no-repeat center/100% 100%;
}
.needle{
width: 100%;
height: 100%;
background: url("../images/ai/needle.png") no-repeat center/100% 100%;
background: url("../images/needle.png") no-repeat center/100% 100%;
transform:rotate(0deg);
}
.dot-track{

Binary file not shown.

After

Width:  |  Height:  |  Size: 1004 KiB

View File

@ -9,7 +9,7 @@
<link rel="stylesheet" href="/cdn/element-ui/lib/theme-chalk/index.css">
<link rel="stylesheet" href="css/largeScreenLayout.css">
<link rel="stylesheet" href="css/largeScreenStyle.css?v=2023101401">
<link rel="stylesheet" href="css/sichuanTibet.css">
<!-- <script type="text/javascript" src="http://api.map.baidu.com/api?type=webgl&v=1.0&ak=qmQNEi1qbFX628WfMt4imhdT87RbCRzK"></script> -->
<script src="/cdn/vue/dist/vue.js"></script>
<script src="/cdn/element-ui/lib/index.js"></script>

View File

@ -40,7 +40,9 @@ Vue.component("classify-bar", {
//然后异步执行echarts的初始化函数
newPromise.then(() => {
if(data.length==0){
return;
}
var max = data[0].total
var nameData = [];
var totalData = []

View File

@ -27,10 +27,7 @@
</div>
</div>
</div>
</div>
<!--
<div :class="nav == 4 ? 'head-nav active' : 'head-nav'" @click="pageJump(4, '#/quality')">质量管理</div>
-->
</div>
<div :class="nav == 41 || nav == 42 || nav==4 ? 'head-nav active' : 'head-nav'" style="position: relative;"
class="has-submenu">
<div @click="pageJump(4, '#/quality')">质量管理</div>
@ -134,6 +131,7 @@
<script>
import { mapGetters } from 'vuex'
import Cookies from 'js-cookie'
import {routes} from '../router/index'
export default {
props: {
red: {
@ -170,14 +168,7 @@ export default {
window.headerApp = this
await this.initMe();
this.getWeather();
if (location.hash.indexOf("#/detail") >= 0) { this.nav = 2; }
else if (location.hash.indexOf("#/safety") >= 0) { this.nav = 3; }
else if (location.hash.indexOf("#/quality") >= 0) { this.nav = 4; }
else if (location.hash.indexOf("#/progress") >= 0) { this.nav = 5; }
else if (location.hash.indexOf("#/video") >= 0) { this.nav = 61; }
else if (location.hash.indexOf("#/aiVideo") >= 0) { this.nav = 62; }
else if (location.hash.indexOf("#/engin") >= 0) { this.nav = 7; }
else { this.nav = 1; }
this.nav=this.$route.meta?.nav||1
this.setTitle();
this.timerID = setInterval(this.updateTime, 1000);
this.updateTime();

View File

@ -40,7 +40,7 @@ Vue.component("safe-curve-chart", {
var Ymax = Math.max.apply(null,data.dataY);
option = {
let option = {
tooltip: {
position: "top",
formatter: function (params) {

View File

@ -1,4 +1,6 @@
import Vue from 'vue'
/**
* 顶部header
*/
Vue.component("tower-crane-value-1", {
template: `
<div class="safe-tower-content">
@ -10,16 +12,20 @@ Vue.component("tower-crane-value-1", {
<el-col :span="3">
<div class="safe-tower-content-data-list">
<p>后臂长</p>
<div><span v-html="value.foreArmLength">0</span> m</div>
<div><span v-html="value.postArmLength">0</span> m</div>
</div>
<div class="safe-tower-content-data-list">
<p>前臂长</p>
<div><span v-html="value.postArmLength">0</span> m</div>
<div><span v-html="value.foreArmLength">0</span> m</div>
</div>
<div class="safe-tower-content-data-list">
<p>塔身高</p>
<div><span v-html="value.downHeight">0</span> m</div>
</div>
<div class="safe-tower-content-data-list">
<p>功率</p>
<div><span v-html="value.power"></span> kw</div>
</div>
</el-col>
<el-col :span="18">
<div class="safe-tower-icon">
@ -59,6 +65,10 @@ Vue.component("tower-crane-value-1", {
<p>进场时间</p>
<div class="safe-tower-content-data-list-time"><span v-html="value.enterTime">0</span></div>
</div>
<div class="safe-tower-content-data-list">
<p>扶墙高度</p>
<div><span style="font-size: 16px;" v-html="value.buttress"></span></div>
</div>
</el-col>
</el-row>
</div>
@ -103,10 +113,12 @@ Vue.component("tower-crane-value-1", {
}
},
mounted(){
this.animation()
//this.animation()
},
methods: {
animation(){
var leftValue = this.ampdata //幅度
var brachium = this.forearmlength //臂长 //定制
@ -133,6 +145,10 @@ Vue.component("tower-crane-value-1", {
},
},
watch:{
value:function () {
console.log(this.value)
this.animation()
},
ampdata:function () {
this.animation()
},

View File

@ -1,4 +1,6 @@
import Vue from 'vue'
/**
* 顶部header
*/
Vue.component("tower-crane-value-2", {
template: `
<div class="safe-tower-content">
@ -10,16 +12,20 @@ Vue.component("tower-crane-value-2", {
<el-col :span="3">
<div class="safe-tower-content-data-list">
<p>后臂长</p>
<div><span v-html="value.foreArmLength">0</span> m</div>
<div><span v-html="value.postArmLength">0</span> m</div>
</div>
<div class="safe-tower-content-data-list">
<p>前臂长</p>
<div><span v-html="value.postArmLength">0</span> m</div>
<div><span v-html="value.foreArmLength">0</span> m</div>
</div>
<div class="safe-tower-content-data-list">
<p>塔身高</p>
<div><span v-html="value.downHeight">0</span> m</div>
</div>
<div class="safe-tower-content-data-list">
<p>功率</p>
<div><span v-html="value.power"></span> kw</div>
</div>
</el-col>
<el-col :span="18">
<div class="safe-tower-icon">
@ -59,6 +65,10 @@ Vue.component("tower-crane-value-2", {
<p>进场时间</p>
<div class="safe-tower-content-data-list-time"><span v-html="value.enterTime">0</span></div>
</div>
<div class="safe-tower-content-data-list">
<p>扶墙高度</p>
<div><span style="font-size: 16px;" v-html="value.buttress"></span></div>
</div>
</el-col>
</el-row>
</div>

View File

@ -1,26 +1,40 @@
<template>
<div>
<!-- -->
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenTowerCrane',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<div class="project-concrete-strength">
<el-row>
<el-col :span="6">
<module-one-1-1 label="质量目标"></module-one-1-1>
<module-one-2-1 label="过程管控"></module-one-2-1>
</el-col>
<el-col :span="12">
<module-one-1-2 label="当前监测值"></module-one-1-2>
<module-one-1-2 label="温度趋势"></module-one-1-2>
<module-one-1-2 label="成熟度趋势"></module-one-1-2>
</el-col>
<el-col :span="6"></el-col>
</el-row>
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenConcreteStrength',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<style lang="less">
.project-concrete-strength {}
</style>

View File

@ -1,26 +1,44 @@
<template>
<div>
<!-- -->
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenTowerCrane',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<div class="project-standard-curing-room">
<el-row>
<el-col :span="6">
<module-one-1-1 label="质量目标"></module-one-1-1>
<module-one-2-1 label="过程管控"></module-one-2-1>
</el-col>
<el-col :span="12">
<module-one-1-2 label="当前监测值">
</module-one-1-2>
<module-one-1-2 label="温度趋势">
</module-one-1-2>
<module-one-1-2 label="湿度趋势">
</module-one-1-2>
</el-col>
<el-col :span="6">
</el-col>
</el-row>
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenStandardCuringRoom',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<style lang="less">
.project-standard-curing-room {}
</style>

View File

@ -1,26 +1,45 @@
<template>
<div>
<!-- -->
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenTowerCrane',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<div class="project-distribution-box">
<el-row>
<el-col :span="18">
<module-one-1-3 label="配电箱监测">
</module-one-1-3>
<module-one-1-3 label="温度监控">
</module-one-1-3>
<module-one-1-3 label="电流监控">
</module-one-1-3>
</el-col>
<el-col :span="6">
</el-col>
</el-row>
</div>
</template>
<script>
import '@/components/module/module-one-1-3'
export default {
//
name: 'JhbigscreenDistributionBox',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<style lang="less">
.project-distribution-box {}
</style>

View File

@ -1,26 +1,36 @@
<template>
<div>
<!-- -->
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenTowerCrane',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<div class="project-dumbwaiter">
<el-row>
<el-col :span="6">
<module-one-3-1 label="设备概况">
</module-one-3-1>
</el-col>
<el-col :span="18">
</el-col>
</el-row>
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenDumbwaiter',
data() {
return {
};
},
mounted() {
},
methods: {
},
};
</script>
<style lang="less">
.project-dumbwaiter {}
</style>

View File

@ -1,26 +1,456 @@
<template>
<div>
<!-- -->
</div>
</template>
<script>
export default {
//
name: 'JhbigscreenTowerCrane',
data() {
return {
};
<div class="project-excavation" @click="clickOutside">
<el-row>
<el-col :span="6">
<module-one-2-1 label="监测概况">
<div class="analyse-equipment" style="position: absolute;top: 10px;left: 325px;">深基坑监测</div>
<div class="czz-max">
<div class="czz-number">
<div class="czz-number-content">
<div class="czz-number-img czz-number-img-blue">
<svg class="my-svg-icon-blue"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3815">
<path
d="M96 334.4A48 48 0 0 0 144 288V144H288a48 48 0 0 0 0-96H96A48 48 0 0 0 48 96v192A48 48 0 0 0 96 334.4zM288 880H144V768a48 48 0 0 0-96 0v160A48 48 0 0 0 96 976h192a48 48 0 0 0 0-96zM928 687.04A48 48 0 0 0 880 736v144H736a48 48 0 0 0 0 96h192a48 48 0 0 0 48-48v-192a48 48 0 0 0-48-48.96zM928 48h-194.56a48 48 0 0 0 0 96h146.56V288a48 48 0 0 0 96 0V96A48 48 0 0 0 928 48zM522.88 194.88c-155.2 0-281.28 136-281.28 302.72 0 156.16 134.08 282.88 206.08 352 9.28 8.64 17.6 16.32 24.32 23.36a72.64 72.64 0 0 0 50.88 21.12 71.68 71.68 0 0 0 50.56-21.12c6.72-7.04 15.04-14.72 24.32-23.36 72-68.16 206.4-194.88 206.4-352 0-166.72-126.4-302.72-281.28-302.72zM544 790.4c-7.36 7.04-14.08 13.12-19.84 19.2l-20.16-19.2c-67.84-64-181.12-171.2-181.12-292.8s90.24-224 201.28-224 201.28 99.84 201.28 224S610.56 726.4 544 790.4zM529.6 370.88a123.84 123.84 0 1 0 123.84 123.84 123.84 123.84 0 0 0-123.84-123.84z m0 167.68a43.84 43.84 0 1 1 43.84-43.84 43.52 43.52 0 0 1-43.84 43.84z"
p-id="3816"></path>
</svg>
</div>
<div class="survey_content_number">
<p>监测点位数</p>
<div class="survey_content_value"><span v-html="monTotal"></span> </div>
</div>
</div>
<div class="czz-number-content">
<div class="czz-number-img czz-number-img-green">
<svg class="my-svg-icon-green"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5561">
<path
d="M636.062286 948.357007l-248.319027-0.77782-190.565895-458.913786h629.645272l-190.76035 459.691606z"
fill="#0C42B2" opacity=".8" p-id="5562"></path>
<path
d="M512 661.146981C329.01785 661.146981 191.149259 531.639954 191.149259 359.741739 191.149259 178.509685 341.07406 19.445499 512 19.445499S832.850741 178.509685 832.850741 359.741739C832.850741 531.639954 694.98215 661.146981 512 661.146981z"
fill="#1F3C78" p-id="5563"></path>
<path
d="M512 38.890999C672.619825 38.890999 813.405241 188.815799 813.405241 359.741739 813.405241 520.55602 683.898215 641.701481 512 641.701481S210.594759 520.55602 210.594759 359.741739C210.594759 188.815799 351.380175 38.890999 512 38.890999m0-38.890999C324.156476 0 171.70376 171.898215 171.70376 359.741739S324.156476 680.59248 512 680.59248 852.29624 547.585264 852.29624 359.741739 699.843524 0 512 0z"
fill="#3D79F1" p-id="5564"></path>
<path
d="M396.299278 934.939613a115.700722 79.337638 0 1 0 231.401444 0 115.700722 79.337638 0 1 0-231.401444 0Z"
fill="#0C41AD" p-id="5565"></path>
</svg>
</div>
<div class="survey_content_number">
<p>在线点位数</p>
<div class="survey_content_value survey_content_value_color_green"><span
v-html="onlineDevTotal"></span> </div>
</div>
</div>
</div>
<classify-bar :data="classifyBarData" :height="200"></classify-bar>
<div class="analyse-title">
<div class="analyse-text">报警分析</div>
</div>
<el-row style="margin-top:12px;">
<el-col :span="8">
<div class="time-study-value">
<p>今日报警数</p>
<div class="analyse-num"><span v-cloak>{{ todayTotal }}</span> </div>
</div>
<div class="time-study-value">
<p>本周报警数</p>
<div class="analyse-num"><span v-cloak>{{ weekTotal }}</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" v-cloak>{{ item.warn_context }}</div>
<div class="glr-rate-value glr-rate-red-value"><span v-cloak>{{ item.total }}</span></div>
</div>
</div>
</div>
</el-col>
</el-row>
</div>
</module-one-2-1>
</el-col>
<el-col :span="12">
<module-one-2-2 label="点位图" style="position: relative;">
<div class="sjk-icon-max" style="height: calc(100% - 80px);">
<div class="sjk-img-min" :style="{ 'background': urlImgBgd }">
</div>
<div class="sjk-icon-spot">
<img v-for="item in forBitMappedImageData" :src="item.imgUrl"
:style="{ 'top': item.top + 'px', 'left': item.left + 'px' }" v-show="item.state"
@click="onClickSpot(item.sensorType, item.sensorInfoId, item.isBase, item.status, item)"
class="icon-img">
<img v-for="item in forBitMappedImageDataPJ" :src="item.imgUrl"
:style="{ 'top': item.top + 'px', 'left': item.left + 'px' }" v-show="item.state"
@click="onClickSpotPJ(item.sensorType, item.id, item.sensorInfoId, item)" class="icon-img">
</div>
<div class="sjk-popup" :style="{ 'top': popupPosition.top + 'px', 'left': popupPosition.left + 'px' }"
id="clickPopup" v-if="popupShow">
<div class="sjk-popup-content">
<div class="sjk-popup-title">
<div v-cloak>{{ pointPositionName }}</div>
</div>
<div class="sjk-popup-time" v-cloak>{{ lineTime }}</div>
<div class="sjk-popup-table" v-if="offLine">
<table>
<tr>
<th>监测详情</th>
<th>变化量</th>
<th>预警</th>
<th>报警</th>
</tr>
<tr v-for="item in popupArrData">
<td v-cloak>{{ item.text }}</td>
<td v-cloak>{{ item.data }}</td>
<td v-cloak>{{ item.warningUp }}/{{ item.warningDown }}</td>
<td v-cloak>{{ item.policeUp }}/{{ item.policeDown }}</td>
</tr>
</table>
</div>
<div class="sjk-off-line" v-if="!offLine">
设备离线
</div>
</div>
</div>
</div>
<div class="sjk-icon-legend" style="left: 11px;bottom: 11px;width: calc(100% - 22px);">
<div class="sjk-icon-legend-color">
<div class="sjk-icon-legend-color-list">
<div class="sjk-icon-legend-color-list-box box-green"></div>
<div class="sjk-icon-legend-color-list-text">稳定</div>
</div>
<div class="sjk-icon-legend-color-list">
<div class="sjk-icon-legend-color-list-box box-red"></div>
<div class="sjk-icon-legend-color-list-text">报警</div>
</div>
<div class="sjk-icon-legend-color-list">
<div class="sjk-icon-legend-color-list-box box-orange"></div>
<div class="sjk-icon-legend-color-list-text">预警</div>
</div>
<div class="sjk-icon-legend-color-list">
<div class="sjk-icon-legend-color-list-box box-blue"></div>
<div class="sjk-icon-legend-color-list-text">基准线</div>
</div>
<div class="sjk-icon-legend-color-list">
<div class="sjk-icon-legend-color-list-box box-grey"></div>
<div class="sjk-icon-legend-color-list-text">离线</div>
</div>
</div>
<div class="sjk-icon-legend-right">
<div :class="item.class" v-for="item in legendArrData" @click="legendScreen(item.type)">
<img :src="item.url">
<span v-cloak>{{ item.text }}</span>
</div>
</div>
</div>
</module-one-2-2>
</el-col>
<el-col :span="6">
<module-one-1-1 label="监测时长">
</module-one-1-1>
<module-one-1-1 label="变化速率统计">
</module-one-1-1>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<module-one-1-2 label="基坑近7天变化趋势">
<div class="sjk-chart-line" v-loading="loading" element-loading-text=""
element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0)">
<div class="sjk-chart-line-title">
<div :class="btnNav == 1 ? 'active' : ''" @click="onClickPoint(1)"></div>
<div :class="btnNav == 2 ? 'active' : ''" @click="onClickPoint(2)"></div>
<div :class="btnNav == 3 ? 'active' : ''" @click="onClickPoint(3)"></div>
</div>
<div class="trend-chart-max" v-if="btnNav == 1">
<trend-line-chart :height="220" :chartdata="CollWeiyiPointData"
:data="CollWeiyiPointDataData"></trend-line-chart>
</div>
<div v-if="btnNav == 2">
<el-row>
<el-col :span="12">
<div class="trend-chart-max">
<trend-line-chart :height="220" :chartdata="CollQingxiePointDataX"
:data="CollQingxiePointDataXdData"></trend-line-chart>
</div>
</el-col>
<el-col :span="12">
<div class="trend-chart-max">
<trend-line-chart :height="220" :chartdata="CollQingxiePointDataY"
:data="CollQingxiePointDataYdData"></trend-line-chart>
</div>
</el-col>
</el-row>
</div>
<div class="trend-chart-max" v-if="btnNav == 3">
<trend-line-chart :height="220" :chartdata="YingLiPointData"
:data="YingLiPointDataData"></trend-line-chart>
</div>
</div>
</module-one-1-2>
</el-col>
<el-col :span="12">
<module-one-1-2 label="累计变化量">
</module-one-1-2>
</el-col>
</el-row>
</div>
</template>
<script>
import '@/components/module/module-one-2-2'
import '@/components/module/module-one-1-2'
import '@/components/module/module-one-2-1'
import '@/components/classify-bar'
import '@/components/trend-line-chart'
export default {
//
name: 'JhbigscreenExcavation',
data() {
return {
monTotal: 3,
onlineDevTotal: 3,
classifyBarData: [],
todayTotal: 10,
weekTotal: 99,
warningType: [],
warningTypeInterval: undefined,
warningTypeIndex: 0,
urlImgBgd: '',
forBitMappedImageData: [],
forBitMappedImageDataPJ: [],
legendArrData: [],
popupShow: false,
popupPosition: {},
pointPositionName: '',
popupArrData: [],
offLine: true,
loading: false,
btnNav: 1,
CollWeiyiPointData:[],
CollWeiyiPointDataData:[],
CollQingxiePointDataX:[],
CollQingxiePointDataXdData:[],
CollQingxiePointDataY:[],
CollQingxiePointDataYdData:[],
YingLiPointData:[],
YingLiPointDataData:[],
};
},
mounted() {
this.classifyBarData = [{ name: '沉降', total: 15, yesMonitor: 2, notMonitor: 0, unit: '个' }, { name: '倾斜', total: 15, yesMonitor: 3, notMonitor: 0, unit: '个' }, { name: '应力', total: 15, yesMonitor: 4, notMonitor: 0, unit: '个' },]
this.warningType = [{ warn_context: '报警类型A', total: 4 }, { warn_context: '报警类型B', total: 4 }, { warn_context: '报警类型C', total: 4 }, { warn_context: '报警类型D', total: 4 }, { warn_context: '报警类型E', total: 4 }, { warn_context: '报警类型F', total: 4 }, { warn_context: '报警类型G', total: 4 }, { warn_context: '报警类型H', total: 4 },]
this.urlImgBgd = "url(images/data/excavation-01.jpg) 100% 100%";
this.forBitMappedImageData = JSON.parse('[{"sensorTypeName":"位移(WY)","pointName":"位移26","drawId":"7039969819126403072","sensorInfoId":"7042034685840703494","url":"","xpixels":1492.266916,"sortValue":1,"createData":"2023-03-20 20:06:19","top":86.56728596535274,"fileSize":"2276*1280","left":607.8571428571429,"ypixels":117.403425,"sensorType":"CollWeiyiPoint","statusTime":"2024-03-09 22:40:04","otherProjectId":"1634117283072266241","isBase":"0","sensorSmallType":"24","drawName":"御井路公租房.jpg","status":"0","state":true,"imgUrl":"images/place_chenjiang_green.png"},{"sensorTypeName":"沉降(CJ)","pointName":"沉降53","drawId":"7039969819126403072","sensorInfoId":"7039970088807718912","url":"","xpixels":423.054061,"sortValue":1,"createData":"2023-03-20 20:06:19","top":152.63871453678132,"fileSize":"2276*1280","left":211.42857142857142,"ypixels":336.059302,"sensorType":"CollWeiyiPoint","statusTime":"2024-03-09 22:40:04","otherProjectId":"1634117283072266241","isBase":"1","sensorSmallType":"80","drawName":"御井路公租房.jpg","status":"0","state":true,"imgUrl":"images/place_chenjiang_blue.png"},{"sensorTypeName":"倾斜(QX)","pointName":"倾斜44","drawId":"7039969819126403072","sensorInfoId":"7039970088841273344","url":"","xpixels":387.71104,"sortValue":1,"createData":"2023-03-13 11:22:53","top":112.99585739392417,"fileSize":"2276*1280","left":317.1428571428571,"ypixels":766.483595,"sensorType":"CollQingxiePoint","statusTime":"2024-03-09 22:40:04","otherProjectId":"1634117283072266241","isBase":"0","sensorSmallType":"33","drawName":"御井路公租房.jpg","status":"0","state":true,"imgUrl":"images/place_qingxie_green.png"}]')
this.forBitMappedImageDataPJ = JSON.parse('[{"top":205.49585739392415,"left":224.64285714285714,"fileSize":"2276*1280","pointName":"倾斜45","sensorType":"CollQingxiePoint","id":1831,"otherProjectId":"1634117283072266241","project_name":"XXXXX项目EPC总承包项目","sensorInfoId":"7052577632253038592","url":"","status":"2","state":true,"imgUrl":"images/pj_grey.png"},{"top":271.56728596535277,"left":179.71428571428572,"fileSize":"2276*1280","pointName":"倾斜46","sensorType":"CollQingxiePoint","id":1831,"otherProjectId":"1634117283072266241","project_name":"XXXXX项目EPC总承包项目","sensorInfoId":"7052577632253038596","url":"","status":"2","state":true,"imgUrl":"images/pj_grey.png"},{"top":337.6387145367813,"left":171.78571428571428,"fileSize":"2276*1280","pointName":"倾斜47","sensorType":"CollQingxiePoint","id":1831,"otherProjectId":"1634117283072266241","project_name":"XXXXX项目EPC总承包项目","sensorInfoId":"7052577632253038600","url":"","status":"2","state":true,"imgUrl":"images/pj_grey.png"},{"top":245.13871453678132,"left":211.42857142857142,"fileSize":"2276*1280","pointName":"倾斜48","sensorType":"CollQingxiePoint","id":1831,"otherProjectId":"1634117283072266241","project_name":"XXXXX项目EPC总承包项目","sensorInfoId":"7052896778106015744","url":"","status":"2","state":true,"imgUrl":"images/pj_grey.png"},{"top":311.2101431082099,"left":211.42857142857142,"fileSize":"2276*1280","pointName":"倾斜49","sensorType":"CollQingxiePoint","id":1831,"otherProjectId":"1634117283072266241","project_name":"XXXXX项目EPC总承包项目","sensorInfoId":"7052896778106015748","url":"","status":"2","state":true,"imgUrl":"images/pj_grey.png"},{"top":350.85300025106704,"left":185,"fileSize":"2276*1280","pointName":"倾斜50","sensorType":"CollQingxiePoint","id":1831,"otherProjectId":"1634117283072266241","project_name":"XXXXX项目EPC总承包项目","sensorInfoId":"7052896778106015752","url":"","status":"2","state":true,"imgUrl":"images/pj_grey.png"}]');
this.legendArrData = JSON.parse('[{"type":"CollWeiyiPoint","class":"sjk-icon-legend-right-icon","url":"images/legend_chenjiang.png","text":"沉降"},{"type":"CollQingxiePoint","class":"sjk-icon-legend-right-icon","url":"images/legend_qingxie.png","text":"倾斜"}]')
this.CollWeiyiPointDataData=JSON.parse('[["0","0","0","0","0","0","0"],["0","0","0","0","0","0","0"],[30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30]]');
this.CollWeiyiPointData=JSON.parse('{"dataX":["2024-03-03","2024-03-04","2024-03-05","2024-03-06","2024-03-07","2024-03-08","2024-03-09"],"data":[["0","0","0","0","0","0","0"],["0","0","0","0","0","0","0"],[30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30]],"legend":["位移26","沉降53","阈值上限","阈值下限"],"color":["#a83836","#ffd900","#16a951","#ab4c90","#1785aa","#622a1d","#f26839","#e29c46","#808080","#067749","#8c4356","#a88e44","#88ada6","#789262","#ca6924","#a1afc9","#ae7001","#748a98","#549688","#b36d61","#426666","#a98175","#8a6c3a","#a88462","#574167","#f99070","#8a6c3a","#96cd55","#50606d","#c9dd23","#6b6883","#2e4e7d","#a88462","#b35b43","#c89b40","#cca4e3","#698aab","#9b4400","#a69abe","#725e83","#75878b","#9ba88e","#675758","#675758","#ab4c90","#ab4c90","#f39801","#7b8d43","#745398","#b3ada1"],"unit":"mm"}');
this.CollQingxiePointDataX=JSON.parse('{"dataX":["2024-03-03","2024-03-04","2024-03-05","2024-03-06","2024-03-07","2024-03-08","2024-03-09"],"data":[["0","0","0","0","0","0","0"],["0","0","0","0","0","0","0"],[1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]],"legend":["位移26","沉降53","阈值上限","阈值下限"],"color":["#a83836","#ffd900","#16a951","#ab4c90","#1785aa","#622a1d","#f26839","#e29c46","#808080","#067749","#8c4356","#a88e44","#88ada6","#789262","#ca6924","#a1afc9","#ae7001","#748a98","#549688","#b36d61","#426666","#a98175","#8a6c3a","#a88462","#574167","#f99070","#8a6c3a","#96cd55","#50606d","#c9dd23","#6b6883","#2e4e7d","#a88462","#b35b43","#c89b40","#cca4e3","#698aab","#9b4400","#a69abe","#725e83","#75878b","#9ba88e","#675758","#675758","#ab4c90","#ab4c90","#f39801","#7b8d43","#745398","#b3ada1"],"unit":"°(X方向)"}');
this.CollQingxiePointDataXdData=JSON.parse('[["0","0","0","0","0","0","0"],["0","0","0","0","0","0","0"],[1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]]');
this.CollQingxiePointDataY=JSON.parse('{"dataX":["2024-03-03","2024-03-04","2024-03-05","2024-03-06","2024-03-07","2024-03-08","2024-03-09"],"data":[["0","0","0","0","0","0","0"],["0","0","0","0","0","0","0"],[1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]],"legend":["位移26","沉降53","阈值上限","阈值下限"],"color":["#a83836","#ffd900","#16a951","#ab4c90","#1785aa","#622a1d","#f26839","#e29c46","#808080","#067749","#8c4356","#a88e44","#88ada6","#789262","#ca6924","#a1afc9","#ae7001","#748a98","#549688","#b36d61","#426666","#a98175","#8a6c3a","#a88462","#574167","#f99070","#8a6c3a","#96cd55","#50606d","#c9dd23","#6b6883","#2e4e7d","#a88462","#b35b43","#c89b40","#cca4e3","#698aab","#9b4400","#a69abe","#725e83","#75878b","#9ba88e","#675758","#675758","#ab4c90","#ab4c90","#f39801","#7b8d43","#745398","#b3ada1"],"unit":"°(Y方向)"}');
this.CollQingxiePointDataYdData=JSON.parse('[["0","0","0","0","0","0","0"],["0","0","0","0","0","0","0"],[1,1,1,1,1,1,1,1,1,1,1,1,1,1],[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]]');
this.YingLiPointData=JSON.parse('{"dataX":["2024-03-04","2024-03-05","2024-03-06","2024-03-07","2024-03-08","2024-03-09","2024-03-10"],"data":[["0","0","0","0","0","0"],["0","0","0","0","0","0"],["0","0","0","0","0","0"]],"legend":["ZD-YW-1","ZD-YW-2","ZD-YW-3"],"color":["#a83836","#ffd900","#16a951","#ab4c90","#1785aa","#622a1d","#f26839","#e29c46","#808080","#067749","#8c4356","#a88e44","#88ada6","#789262","#ca6924","#a1afc9","#ae7001","#748a98","#549688","#b36d61","#426666","#a98175","#8a6c3a","#a88462","#574167","#f99070","#8a6c3a","#96cd55","#50606d","#c9dd23","#6b6883","#2e4e7d","#a88462","#b35b43","#c89b40","#cca4e3","#698aab","#9b4400","#a69abe","#725e83","#75878b","#9ba88e","#675758","#675758","#ab4c90","#ab4c90","#f39801","#7b8d43","#745398","#b3ada1"],"unit":"KN"}');
this.YingLiPointDataData=JSON.parse('[["0","0","0","0","0","0"],["0","0","0","0","0","0"],["0","0","0","0","0","0"]]');
this.init();
},
methods: {
init() {
this.warningTypeInterval = setInterval(this.automaticRollType, 5000);
},
mounted() {
listMinMouseoverType() {
clearInterval(this.warningTypeInterval);
},
methods: {
listMinMouseoutType() {
this.warningTypeInterval = setInterval(this.automaticRollType, 5000);
},
};
</script>
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' })
if ($("#afootOverflowTypePJ").scrollTop() == height * this.warningType.length - $("#afootOverflowTypePJ").innerHeight()) {
this.warningTypeIndex = 0
} else {
this.warningTypeIndex = this.warningTypeIndex + 1
}
$("#afootOverflowTypePJ").animate({ scrollTop: (height * this.warningTypeIndex) + 'px' })
},
legendScreen(type) {
var data = this.forBitMappedImageData
data.map(x => {
if (x.sensorType == type) {
if (x.state == true) {
x.state = false
} else {
x.state = true
}
}
return x
})
var legendData = this.legendArrData
legendData.map(y => {
if (y.type == type) {
if (y.class == 'sjk-icon-legend-right-icon') {
y.class = 'sjk-icon-legend-right-icon sjk-legend-filter'
} else {
y.class = 'sjk-icon-legend-right-icon'
}
}
return y
})
this.forBitMappedImageData = data
this.legendArrData = legendData
},
//
onClickSpot(type, id, isBase, status, it) {
this.deviceId = id
var posX = 0, posY = 0;
var event = event || window.event;
if (event.pageX || event.pageY) {
posX = event.pageX;
posY = event.pageY;
} else if (event.clientX || event.clientY) {
posX = event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
posY = event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
}
var position = {}
if (type == 'CollWeiyiPoint') {
position = {
top: posY - 110,
left: posX + 30
}
} else if (type == 'CollQingxiePoint') {
position = {
top: posY - 110,
left: posX + 30
}
}
this.popupPosition = position
if (isBase) {
this.popupShow = true
if (type == "CollWeiyiPoint") {
this.pointPositionName = `沉降监测-${it.pointName}`
}
if (type == "CollQingxiePoint") {
this.pointPositionName = `倾斜监测-${it.pointName}`
}
this.popupArrData = [];
}
},
onClickSpotPJ(type, projectId, id, it) {
this.deviceId = id
var posX = 0, posY = 0;
var event = event || window.event;
if (event.pageX || event.pageY) {
posX = event.pageX;
posY = event.pageY;
} else if (event.clientX || event.clientY) {
posX = event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
posY = event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
}
var position = {}
if (type == 'CollWeiyiPoint') {
position = {
top: posY - 110,
left: posX + 30
}
} else if (type == 'CollQingxiePoint') {
position = {
top: posY - 110,
left: posX + 30
}
}
this.pointPositionName = `爬架-倾斜监测-${it.pointName}`;
this.popupPosition = position
this.popupShow = true;
this.popupArrData = [];
},
//
clickOutside(event) {
const current = document.getElementById("clickPopup");
if (current) {
if (!current.contains(event.target)) {
if (event.target._prevClass != 'icon-img') {
this.popupShow = false
}
}
}
},
//
onClickPoint(n) {
this.btnNav = n
if (n == 1) {
this.sensorType = 'CollWeiyiPoint'
} else if (n == 2) {
this.sensorType = 'CollQingxiePoint'
} else if (n == 3) {
this.sensorType = 'YingLi'
}
},
},
};
</script>
<style lang="less">
.project-excavation {
.my-svg-icon-blue,
.my-svg-icon-green {
width: 28px !important;
height: 28px !important;
position: relative;
top: -10px;
}
.my-svg-icon-green * {
fill: #63F8BC !important;
}
.my-svg-icon-blue * {
fill: #7c9ce1 !important
}
.sjk-img-min {
height: 100%;
}
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<div>
<div class="project-personnel-position">
<!-- -->
</div>
</template>
@ -7,7 +7,7 @@
<script>
export default {
//
name: 'JhbigscreenTowerCrane',
name: 'JhbigscreenPersonnelPosition',
data() {
return {
@ -23,4 +23,9 @@
},
};
</script>
</script>
<style lang="less">
.project-personnel-position{
}
</style>

View File

@ -41,12 +41,13 @@
<el-row style="height:160px;overflow: hidden;">
<staff-survey-chart :height="200" :unit="'个'" :data="data1" :width="140"></staff-survey-chart>
</el-row>
<el-row>
<el-row style="height:calc(100% - 283px);">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">监控列表</div>
</div>
<div class="drv-list scroll">
<div v-for="(it, idx) in devList" :key="idx" class="drv-item">
<div class="drv-list scroll" id="listMin">
<div v-for="(it, idx) in devList" :key="idx" class="drv-item list-for"
:class="index == idx ? 'active' : ''" @click="onTowerCraneList(idx)">
<div class="item-content">
<div class="dev-row1">
<div class="survey_content">
@ -68,7 +69,8 @@
</div>
<div class="data-row">
<span>设备状态:</span>
<span :class="it.state == 0 ? 'is-offline' : 'is-online'">{{ it.state == 0 ? '离线' : '在线' }}</span>
<span :class="it.state == 0 ? 'is-offline' : 'is-online'">{{ it.state == 0 ? '离线' : '在线'
}}</span>
</div>
</div>
</div>
@ -110,108 +112,204 @@
</el-col>
<el-col :span="18">
<module-one-3-1 cls="no-lable no-border" style="position: relative;">
<el-row>
<el-col :span="16">
<el-row>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">吊重次数(10)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">5</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">500</div>
<el-row style="height:calc(100% - 270px);">
<el-col :span="16">
<el-row>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">吊重次数(10)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">5</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">500</div>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">超载次数(10)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">5</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">500</div>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">超载率(10%)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">10%</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">12%</div>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">告警次数(10)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">5</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">500</div>
</div>
</div>
</el-col>
</el-row>
<div class="dev-info">
<div class="safe-tower-crane-max ">
<div class="safe-tower-crane-min" style="position: relative">
<el-row>
<el-col :span="2">
<div class="safe-tower-left" @click="safeTowerLeft"></div>
</el-col>
<el-col :span="20">
<div class="safe-tower-content-max">
<transition :name="direction">
<component :is="comName" :value="selDev" :width="360" :height="200" :top="55" :left="85"
:ampdata="selDev.ampData" :forearmlength="selDev.foreArmLength"
:heightdata="selDev.heightData" :downheight="selDev.downHeight"
:angledata="selDev.angleData"></component>
</transition>
</div>
</el-col>
<el-col :span="2">
<div class="safe-tower-right" @click="safeTowerRight"></div>
</el-col>
</el-row>
</div>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">超载次数(10)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">5</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">500</div>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">超载率(10%)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">10%</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">12%</div>
</div>
</div>
</el-col>
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">告警次数(10)</div>
<div class="title-bg"></div>
</div>
<div class="data-row2">
<div class="data-row2-col">
<div class="s-text">本月</div>
<div class="s-number">5</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">500</div>
</div>
</div>
</el-col>
</el-row>
<div class="dev-info">
</div>
</el-col>
<el-col :span="8">
222222222
<div class="safe-height">
<div class="analyse-map">
<div class="analyse-title">
<div class="analyse-text">正在发生</div>
<div class="analyse-equipment">塔机监测</div>
</div>
<div class="afoot-content safe-afoot-content">
<div class="afoot-overflow safe-afoot-overflow" id="afootOverflow"
@mouseout="warningListMinMouseout" @mouseover="warningListMinMouseover">
<div v-if="warningData.length == 0" class="not-data"></div>
<div v-if="warningData.length > 0" class="afoot-con-for" style="height: 180px"
v-for="item in warningData">
<div class="afoot-machinery-nam safe-afoot-machinery-nam" v-cloak>{{ item.warn_name }}</div>
<div class="afoot-machinery-info">
<div class="afoot-machinery-img">
<img :src="item.images" v-if="item.images">
</div>
<div class="afoot-machinery-data">
<div class="afoot-machinery-state" v-cloak>{{ item.towerName }}{{ item.warn_context }}
</div>
<div class="afoot-machinery-time" v-cloak>{{ item.warn_time }}</div>
</div>
</div>
<div class="afoot-machinery-project" v-cloak>{{ item.project_abbreviation }}</div>
</div>
</div>
</div>
</div>
<div class="analyse-map">
<div class="analyse-title analyse_title_blue">
<div class="analyse-text">力矩曲线</div>
</div>
<div class="safe-moment">
<safe-curve-chart :height="260" :momentdata="momentData"></safe-curve-chart>
</div>
</div>
</div>
</el-col>
</el-row>
<el-row class="dev-info-list">
<el-col :span="4" class="dev-info-item" v-for="(it,idx) in devBottomInfo" :key="idx">
<el-col :span="4" class="dev-info-item" v-for="(it, idx) in devBottomInfo" :key="idx">
<div class="info-item-content">
<div class="row-1">
<span class="sp-title">{{ it.title }}</span>
<svg v-if="idx==0" class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11357"><path d="M511.362506 77.130254A435.935081 435.935081 0 0 0 75.427425 511.360799 435.935081 435.935081 0 0 0 511.362506 948.574282a435.935081 435.935081 0 0 0 434.656679-437.213483A435.935081 435.935081 0 0 0 511.362506 77.130254zM511.362506 1.278402a511.360799 511.360799 0 0 1 511.360799 511.360799 511.360799 511.360799 0 0 1-511.360799 511.360799A511.360799 511.360799 0 0 1 0.001707 512.639201 511.360799 511.360799 0 0 1 511.362506 0zM322.585144 283.379109a37.499792 37.499792 0 0 0-53.26675 0 37.925926 37.925926 0 0 0 0 53.692884l131.675406 131.675406a121.022056 121.022056 0 0 0-13.636288 56.675822A124.004994 124.004994 0 0 0 511.362506 649.428215a124.004994 124.004994 0 0 0 124.004993-124.004994A124.004994 124.004994 0 0 0 511.362506 401.418227a124.857262 124.857262 0 0 0-56.675822 13.636288zM511.362506 477.270079a48.579276 48.579276 0 0 1 48.153142 48.153142A48.153142 48.153142 0 0 1 511.362506 573.576363a48.153142 48.153142 0 0 1-48.579276-48.153142A48.579276 48.579276 0 0 1 511.362506 477.270079z m-281.24844-51.13608a302.981273 302.981273 0 0 0-14.91469 98.01082 37.925926 37.925926 0 0 0 37.925926 37.925926 37.499792 37.499792 0 0 0 37.499792-37.925926 235.652102 235.652102 0 0 1 11.079484-74.147316 37.499792 37.499792 0 0 0-23.863504-47.727008 37.073658 37.073658 0 0 0-47.727008 23.863504zM511.362506 227.98169a317.895963 317.895963 0 0 0-98.436954 14.91469 38.35206 38.35206 0 0 0-23.863504 47.727007 38.35206 38.35206 0 0 0 48.153142 24.289638A235.652102 235.652102 0 0 1 511.362506 303.833541a221.163546 221.163546 0 0 1 221.589679 221.58968 37.925926 37.925926 0 0 0 37.925926 37.925926 37.925926 37.925926 0 0 0 37.925926-37.925926A298.293799 298.293799 0 0 0 511.362506 229.260092z" fill="#363636" p-id="11358"></path></svg>
<svg v-if="idx==1" class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6961"><path d="M174.5 394.1h331.2c91 0 166-73.2 166.3-164.2 0.3-91-73.7-165.1-164.7-165.1-43.2 0-84 16.6-114.9 46.7-15.5 15.1-27.7 32.9-36.2 52.2-12.7 29.1 8.4 61.7 40.1 62.6 18.5 0.5 35.2-10.4 42.6-27.3 11.6-26.2 37.7-44.2 68.3-44.2 41.4 0 75.1 33.9 74.7 75.4-0.4 41.1-34.5 73.9-75.6 73.9H174.5c-24.9 0-45 20.1-45 45s20.2 45 45 45zM189.3 634.2l0.6 45-0.6-45zM682 626.9c-0.6 0-0.8 0-427.3 6.3-7.3 0.1-14.2 0.2-20.5 0.3-24.8 0.4-44.7 20.8-44.3 45.6 0.3 24.9 20.8 44.8 45.7 44.4 6.3-0.1 13.2-0.2 20.5-0.3 124.9-1.9 415.3-6.2 426.2-6.3 42.8 0.2 77.2 36.5 74.2 80-2.8 39.8-35.9 70-75.7 69.3-30.2-0.5-55.9-18.5-67.2-44.5-7.3-16.8-24.1-27.5-42.5-27-31.7 0.9-52.8 33.5-40.1 62.6 8.4 19.4 20.6 37.1 36.2 52.2 30.9 30.1 71.8 46.7 115 46.7 91.8-0.1 166.8-77 164.5-168.8-2.3-88.9-75.3-160.5-164.7-160.5zM856.6 240.3c-29-11.5-60.5 10.1-60.5 41.4v1.3c0 18 10.9 34.4 27.6 41.1 27.5 11 47 38 47 69.4 0 41.2-33.5 74.7-74.7 74.7H112.6c-24.9 0-45 20.1-45 45s20.1 45 45 45h683.5c90.8 0 164.7-73.9 164.7-164.7-0.1-69.5-43.3-129-104.2-153.2z" p-id="6962"></path></svg>
<svg v-if="idx==2" class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7867"><path d="M675.84 102.4c36.7616 0 66.56 29.7984 66.56 66.56v148.48h122.88c36.23424 0 65.70496 28.9536 66.53952 64.98816L931.84 384v481.28c0 36.7616-29.7984 66.56-66.56 66.56H158.72c-36.7616 0-66.56-29.7984-66.56-66.56V384c0-36.7616 29.7984-66.56 66.56-66.56h122.88V168.96c0-36.23424 28.9536-65.70496 64.98816-66.53952L348.16 102.4z m184.32 286.72H163.84v471.04h696.32V389.12z m-209.92 107.52a10.24 10.24 0 0 1 10.24 10.24v51.2a10.24 10.24 0 0 1-10.24 10.24h-102.40512l0.00512 194.56a10.24 10.24 0 0 1-10.24 10.24H486.4a10.24 10.24 0 0 1-10.24-10.24l-0.00512-194.56H373.76a10.24 10.24 0 0 1-10.24-10.24V506.88a10.24 10.24 0 0 1 10.24-10.24h276.48z m20.48-322.56H353.28v143.36h317.44V174.08z" fill="#666666" p-id="7868"></path></svg>
<svg v-if="idx==3" class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1042 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8742"><path d="M760.685714 376.685714l27.428572-56.685714c9.142857-18.285714 16.457143-36.571429 25.6-53.028571h1.828571c9.142857 16.457143 20.114286 34.742857 29.257143 53.028571l32.914286 56.685714h85.942857l-95.085714-149.942857 89.6-155.428571h-82.285715l-25.6 53.028571c-7.314286 18.285714-14.628571 34.742857-21.942857 51.2h-1.828571c-9.142857-16.457143-18.285714-34.742857-27.428572-51.2L768 71.314286h-85.942857l89.6 146.285714-95.085714 159.085714h84.114285zM213.942857 877.714286H162.742857V73.142857h-73.142857v841.142857c0 20.114286 16.457143 36.571429 36.571429 36.571429h841.142857v-73.142857H213.942857zM522.624 464.512l-51.712 51.730286 51.712 51.712 51.730286-51.712-51.730286-51.730286zM315.757714 671.049143l-51.730285 51.712 51.730285 51.712 51.712-51.712-51.712-51.712zM421.705143 570.916571l-51.748572 51.712 51.730286 51.730286 51.730286-51.712-51.712-51.730286zM212.315429 773.010286l-51.712 51.712 51.712 51.730285 51.730285-51.730285-51.730285-51.712zM307.2 398.628571l51.2-51.2-64-64c109.714286 9.142857 210.285714 53.028571 288.914286 120.685715l-9.142857 9.142857 51.2 51.2 9.142857-9.142857c67.657143 74.971429 113.371429 170.057143 128 276.114285l-60.342857-60.342857-51.2 51.2 128 128c7.314286 7.314286 16.457143 10.971429 25.6 10.971429 9.142857 0 18.285714-3.657143 25.6-10.971429l128-128-51.2-51.2-69.485715 69.485715C808.228571 457.142857 576 232.228571 290.742857 212.114286l67.657143-67.657143-51.2-51.2-128 128c-14.628571 14.628571-14.628571 36.571429 0 51.2l128 126.171428z" p-id="8743"></path></svg>
<svg v-if="idx==4" class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9822"><path d="M894.56 268.64l31.68 59.52-391.2 208.32-31.68-59.52 391.2-208.32z" fill="#666666" p-id="9823"></path><path d="M512 33.44C247.52 33.44 33.44 247.52 33.44 512s214.08 478.56 478.56 478.56 478.56-214.08 478.56-478.56S776.48 33.44 512 33.44z m0 852c-202.08 0-366.24-167.52-366.24-374.88S309.92 135.68 512 135.68s366.24 167.52 366.24 374.88-163.68 374.88-366.24 374.88z" fill="#666666" p-id="9824"></path></svg>
<svg v-if="idx==5" class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10417"><path d="M819.198 910.218 204.799 910.218c-50.267 0-91.022-40.75-91.022-91.02L113.777 204.822c0-50.29 40.755-91.045 91.022-91.045l614.398 0c50.27 0 91.02 40.755 91.02 91.045l0 614.376C910.218 869.468 869.468 910.218 819.198 910.218zM841.953 227.554c0-25.122-20.385-45.51-45.51-45.51L227.554 182.044c-25.122 0-45.51 20.387-45.51 45.51l0 568.889c0 25.125 20.387 45.535 45.51 45.535l568.889 0c25.125 0 45.51-20.39 45.51-45.535L841.953 227.554zM603.268 400.952l-57.14-57.115 0 335.802 55.505-55.5c13.335-13.31 34.93-13.335 48.265 0 13.33 13.335 13.33 34.95 0 48.29l-105.77 105.765c-1.615 3.415-3.525 6.78-6.37 9.625-7.1 7.08-16.475 10.1-25.76 9.67-9.262 0.46-18.66-2.59-25.76-9.69-2.842-2.85-4.8-6.15-6.347-9.58l-105.79-105.79c-13.335-13.34-13.335-34.955 0-48.29 13.332-13.31 34.927-13.335 48.262 0l55.502 55.5L477.865 343.837l-57.117 57.115c-13.335 13.357-34.952 13.335-48.287 0s-13.335-34.93 0-48.265l115.395-115.37c13.332-13.335 34.927-13.357 48.262 0l115.395 115.37c13.335 13.335 13.335 34.952 0 48.265C638.198 414.286 616.583 414.286 603.268 400.952z" fill="#272636" p-id="10418"></path></svg>
<div class="row-1">
<span class="sp-title">{{ it.title }}</span>
<svg v-if="idx == 0" class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11357">
<path
d="M511.362506 77.130254A435.935081 435.935081 0 0 0 75.427425 511.360799 435.935081 435.935081 0 0 0 511.362506 948.574282a435.935081 435.935081 0 0 0 434.656679-437.213483A435.935081 435.935081 0 0 0 511.362506 77.130254zM511.362506 1.278402a511.360799 511.360799 0 0 1 511.360799 511.360799 511.360799 511.360799 0 0 1-511.360799 511.360799A511.360799 511.360799 0 0 1 0.001707 512.639201 511.360799 511.360799 0 0 1 511.362506 0zM322.585144 283.379109a37.499792 37.499792 0 0 0-53.26675 0 37.925926 37.925926 0 0 0 0 53.692884l131.675406 131.675406a121.022056 121.022056 0 0 0-13.636288 56.675822A124.004994 124.004994 0 0 0 511.362506 649.428215a124.004994 124.004994 0 0 0 124.004993-124.004994A124.004994 124.004994 0 0 0 511.362506 401.418227a124.857262 124.857262 0 0 0-56.675822 13.636288zM511.362506 477.270079a48.579276 48.579276 0 0 1 48.153142 48.153142A48.153142 48.153142 0 0 1 511.362506 573.576363a48.153142 48.153142 0 0 1-48.579276-48.153142A48.579276 48.579276 0 0 1 511.362506 477.270079z m-281.24844-51.13608a302.981273 302.981273 0 0 0-14.91469 98.01082 37.925926 37.925926 0 0 0 37.925926 37.925926 37.499792 37.499792 0 0 0 37.499792-37.925926 235.652102 235.652102 0 0 1 11.079484-74.147316 37.499792 37.499792 0 0 0-23.863504-47.727008 37.073658 37.073658 0 0 0-47.727008 23.863504zM511.362506 227.98169a317.895963 317.895963 0 0 0-98.436954 14.91469 38.35206 38.35206 0 0 0-23.863504 47.727007 38.35206 38.35206 0 0 0 48.153142 24.289638A235.652102 235.652102 0 0 1 511.362506 303.833541a221.163546 221.163546 0 0 1 221.589679 221.58968 37.925926 37.925926 0 0 0 37.925926 37.925926 37.925926 37.925926 0 0 0 37.925926-37.925926A298.293799 298.293799 0 0 0 511.362506 229.260092z"
fill="#363636" p-id="11358"></path>
</svg>
<svg v-if="idx == 1" class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6961">
<path
d="M174.5 394.1h331.2c91 0 166-73.2 166.3-164.2 0.3-91-73.7-165.1-164.7-165.1-43.2 0-84 16.6-114.9 46.7-15.5 15.1-27.7 32.9-36.2 52.2-12.7 29.1 8.4 61.7 40.1 62.6 18.5 0.5 35.2-10.4 42.6-27.3 11.6-26.2 37.7-44.2 68.3-44.2 41.4 0 75.1 33.9 74.7 75.4-0.4 41.1-34.5 73.9-75.6 73.9H174.5c-24.9 0-45 20.1-45 45s20.2 45 45 45zM189.3 634.2l0.6 45-0.6-45zM682 626.9c-0.6 0-0.8 0-427.3 6.3-7.3 0.1-14.2 0.2-20.5 0.3-24.8 0.4-44.7 20.8-44.3 45.6 0.3 24.9 20.8 44.8 45.7 44.4 6.3-0.1 13.2-0.2 20.5-0.3 124.9-1.9 415.3-6.2 426.2-6.3 42.8 0.2 77.2 36.5 74.2 80-2.8 39.8-35.9 70-75.7 69.3-30.2-0.5-55.9-18.5-67.2-44.5-7.3-16.8-24.1-27.5-42.5-27-31.7 0.9-52.8 33.5-40.1 62.6 8.4 19.4 20.6 37.1 36.2 52.2 30.9 30.1 71.8 46.7 115 46.7 91.8-0.1 166.8-77 164.5-168.8-2.3-88.9-75.3-160.5-164.7-160.5zM856.6 240.3c-29-11.5-60.5 10.1-60.5 41.4v1.3c0 18 10.9 34.4 27.6 41.1 27.5 11 47 38 47 69.4 0 41.2-33.5 74.7-74.7 74.7H112.6c-24.9 0-45 20.1-45 45s20.1 45 45 45h683.5c90.8 0 164.7-73.9 164.7-164.7-0.1-69.5-43.3-129-104.2-153.2z"
p-id="6962"></path>
</svg>
<svg v-if="idx == 2" class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7867">
<path
d="M675.84 102.4c36.7616 0 66.56 29.7984 66.56 66.56v148.48h122.88c36.23424 0 65.70496 28.9536 66.53952 64.98816L931.84 384v481.28c0 36.7616-29.7984 66.56-66.56 66.56H158.72c-36.7616 0-66.56-29.7984-66.56-66.56V384c0-36.7616 29.7984-66.56 66.56-66.56h122.88V168.96c0-36.23424 28.9536-65.70496 64.98816-66.53952L348.16 102.4z m184.32 286.72H163.84v471.04h696.32V389.12z m-209.92 107.52a10.24 10.24 0 0 1 10.24 10.24v51.2a10.24 10.24 0 0 1-10.24 10.24h-102.40512l0.00512 194.56a10.24 10.24 0 0 1-10.24 10.24H486.4a10.24 10.24 0 0 1-10.24-10.24l-0.00512-194.56H373.76a10.24 10.24 0 0 1-10.24-10.24V506.88a10.24 10.24 0 0 1 10.24-10.24h276.48z m20.48-322.56H353.28v143.36h317.44V174.08z"
fill="#666666" p-id="7868"></path>
</svg>
<svg v-if="idx == 3" class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1042 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8742">
<path
d="M760.685714 376.685714l27.428572-56.685714c9.142857-18.285714 16.457143-36.571429 25.6-53.028571h1.828571c9.142857 16.457143 20.114286 34.742857 29.257143 53.028571l32.914286 56.685714h85.942857l-95.085714-149.942857 89.6-155.428571h-82.285715l-25.6 53.028571c-7.314286 18.285714-14.628571 34.742857-21.942857 51.2h-1.828571c-9.142857-16.457143-18.285714-34.742857-27.428572-51.2L768 71.314286h-85.942857l89.6 146.285714-95.085714 159.085714h84.114285zM213.942857 877.714286H162.742857V73.142857h-73.142857v841.142857c0 20.114286 16.457143 36.571429 36.571429 36.571429h841.142857v-73.142857H213.942857zM522.624 464.512l-51.712 51.730286 51.712 51.712 51.730286-51.712-51.730286-51.730286zM315.757714 671.049143l-51.730285 51.712 51.730285 51.712 51.712-51.712-51.712-51.712zM421.705143 570.916571l-51.748572 51.712 51.730286 51.730286 51.730286-51.712-51.712-51.730286zM212.315429 773.010286l-51.712 51.712 51.712 51.730285 51.730285-51.730285-51.730285-51.712zM307.2 398.628571l51.2-51.2-64-64c109.714286 9.142857 210.285714 53.028571 288.914286 120.685715l-9.142857 9.142857 51.2 51.2 9.142857-9.142857c67.657143 74.971429 113.371429 170.057143 128 276.114285l-60.342857-60.342857-51.2 51.2 128 128c7.314286 7.314286 16.457143 10.971429 25.6 10.971429 9.142857 0 18.285714-3.657143 25.6-10.971429l128-128-51.2-51.2-69.485715 69.485715C808.228571 457.142857 576 232.228571 290.742857 212.114286l67.657143-67.657143-51.2-51.2-128 128c-14.628571 14.628571-14.628571 36.571429 0 51.2l128 126.171428z"
p-id="8743"></path>
</svg>
<svg v-if="idx == 4" class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9822">
<path d="M894.56 268.64l31.68 59.52-391.2 208.32-31.68-59.52 391.2-208.32z" fill="#666666"
p-id="9823"></path>
<path
d="M512 33.44C247.52 33.44 33.44 247.52 33.44 512s214.08 478.56 478.56 478.56 478.56-214.08 478.56-478.56S776.48 33.44 512 33.44z m0 852c-202.08 0-366.24-167.52-366.24-374.88S309.92 135.68 512 135.68s366.24 167.52 366.24 374.88-163.68 374.88-366.24 374.88z"
fill="#666666" p-id="9824"></path>
</svg>
<svg v-if="idx == 5" class="icon"
style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10417">
<path
d="M819.198 910.218 204.799 910.218c-50.267 0-91.022-40.75-91.022-91.02L113.777 204.822c0-50.29 40.755-91.045 91.022-91.045l614.398 0c50.27 0 91.02 40.755 91.02 91.045l0 614.376C910.218 869.468 869.468 910.218 819.198 910.218zM841.953 227.554c0-25.122-20.385-45.51-45.51-45.51L227.554 182.044c-25.122 0-45.51 20.387-45.51 45.51l0 568.889c0 25.125 20.387 45.535 45.51 45.535l568.889 0c25.125 0 45.51-20.39 45.51-45.535L841.953 227.554zM603.268 400.952l-57.14-57.115 0 335.802 55.505-55.5c13.335-13.31 34.93-13.335 48.265 0 13.33 13.335 13.33 34.95 0 48.29l-105.77 105.765c-1.615 3.415-3.525 6.78-6.37 9.625-7.1 7.08-16.475 10.1-25.76 9.67-9.262 0.46-18.66-2.59-25.76-9.69-2.842-2.85-4.8-6.15-6.347-9.58l-105.79-105.79c-13.335-13.34-13.335-34.955 0-48.29 13.332-13.31 34.927-13.335 48.262 0l55.502 55.5L477.865 343.837l-57.117 57.115c-13.335 13.357-34.952 13.335-48.287 0s-13.335-34.93 0-48.265l115.395-115.37c13.332-13.335 34.927-13.357 48.262 0l115.395 115.37c13.335 13.335 13.335 34.952 0 48.265C638.198 414.286 616.583 414.286 603.268 400.952z"
fill="#272636" p-id="10418"></path>
</svg>
</div>
<div class="row-scale">
<div class="row-scale-ctx">
<div v-for="i in 10" :key="i" class="scale-item"></div>
</div>
<span class="sp-data1 sp-data sp-sc">报警:{{ it.data1}}</span>
<span class="sp-data2 sp-data sp-sc" v-if="it.data2>=5" :style="calcTop(it)">:{{ it.data2}}</span>
<span class="sp-data1 sp-data sp-sc">报警:{{ it.data1 }}</span>
<span class="sp-data2 sp-data sp-sc" v-if="it.data2 >= 5" :style="calcTop(it)">:{{ it.data2
}}</span>
<span class="sp-sc1 sp-sc">{{ it.scale1 }}</span>
<span class="sp-sc2 sp-sc">{{ it.scale2 }}</span>
</div>
@ -220,7 +318,7 @@
</el-row>
</module-one-3-1>
</el-col>
</el-row>
</div>
@ -231,27 +329,39 @@
import '@/components/module/module-one-2-1'
import '@/components/module/module-one-3-1'
import '@/components/staff-survey-chart'
import '@/components/tower-crane-value-1'
import '@/components/tower-crane-value-2'
import '@/components/safe-curve-chart'
export default {
//
name: 'JhbigscreenTowerCrane',
data() {
return {
index: 0,
data1: [],
devList: [],
selDev: {},
devBottomInfo:[]
devBottomInfo: [],
direction: 'right',
comName: 'tower-crane-value-1',
warningData: [],
momentData: {},
forIndex:0,
warningInterval:undefined,
};
},
mounted() {
this.devBottomInfo=[{title:"幅度",data1:59,data2:58,scale1:'0',scale2:'0m'},
{title:"风速",data1:59,data2:58,scale1:'0',scale2:'0m'},
{title:"吊重",data1:13.8,data2:10.8,scale1:'0',scale2:'0m'},
{title:"倾角",data1:59,data2:5,scale1:'0',scale2:'0m'},
{title:"转角",data1:59,data2:58,scale1:'0',scale2:'0m'},
{title:"高度",data1:59,data2:58,scale1:'0',scale2:'0m'},
];
//
this.warningInterval = setInterval(this.safeAutomaticRoll,10000);
this.momentData = JSON.parse('{"point":[[null,null]],"dataX":[15,20,25,30,35,40,45,50,55,60],"dataY":[3,3,3,3,2.59,2.2,1.9,1.66,1.46,1.3]}');
this.devBottomInfo = [{ title: "幅度", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
{ title: "风速", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
{ title: "吊重", data1: 13.8, data2: 10.8, scale1: '0', scale2: '0m' },
{ title: "倾角", data1: 59, data2: 5, scale1: '0', scale2: '0m' },
{ title: "转角", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
{ title: "高度", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
];
this.data1 = [
{ text: "在线数量", value: 1 },
{ text: "离线数量", value: 2 },
@ -263,32 +373,149 @@ export default {
driverTel: "1338899090,133889902",
safer: "张九",
saferTel: "13388664433",
buttress: "21.4/35.9",
power: "80",
selected: true,
postArmLength: 10,
downHeight: 10,
torqueData: 10,
overload: 10,
enterTime: "2024-02-02 14:00",
ampData: 10,//
foreArmLength: 0,//
heightData: 0,//
angleData: 0,//
}, {
name: "xxxxxx2#塔机",
state: 0,
buttress: "21.4/35.9",
power: "80",
driver: "张大三,张小山",
driverTel: "1338899090,133889902",
safer: "张九",
saferTel: "13388664433",
selected: false,
postArmLength: 20,
downHeight: 20,
torqueData: 20,
overload: 20,
enterTime: "2024-02-02 14:00",
ampData: 20,//
foreArmLength: 20,//
heightData: 20,//
angleData: 20,//
}, {
name: "xxxxxx3#塔机",
state: 1,
buttress: "21.4/35.9",
power: "80",
driver: "张大三,张小山",
driverTel: "1338899090,133889902",
safer: "张九",
saferTel: "13388664433",
selected: false,
postArmLength: 30,
downHeight: 30,
torqueData: 30,
overload: 30,
enterTime: "2024-02-02 14:00",
ampData: 30,//
foreArmLength: 30,//
heightData: 30,//
angleData: 30,//
}];
this.selDev = this.devList[0];
this.warningData = [{
warn_name: "预警A",
images: ['images/831.jpg'],
towerName: 'XXXX塔机',
warn_context: '告警内容',
warn_time: '24-02-02 14:00',
project_abbreviation: 'xxx项目'
}, {
warn_name: "预警A",
images: ['images/831.jpg'],
towerName: 'XXXX塔机',
warn_context: '告警内容',
warn_time: '24-02-02 14:00',
project_abbreviation: 'xxx项目'
}, {
warn_name: "预警A",
images: ['images/831.jpg'],
towerName: 'XXXX塔机',
warn_context: '告警内容',
warn_time: '24-02-02 14:00',
project_abbreviation: 'xxx项目'
},]
},
methods: {
calcTop(d){
let tmp=100-(d.data2*100.0/d.data1);
return `top:calc(20px + ${tmp>78?78:tmp}%)`;
}
calcTop(d) {
let tmp = 100 - (d.data2 * 100.0 / d.data1);
return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`;
},
safeTowerLeft() {
this.direction = 'left'
this.automaticRoll()
},
safeTowerRight() {
//
this.direction = 'right'
this.automaticRoll()
},
automaticRoll() {
//
if (this.direction == 'right') {
if (this.index == this.devList.length - 1) {
this.index = 0
} else {
this.index = this.index + 1
}
} else {
if (this.index == 0) {
this.index = this.devList.length - 1
} else {
this.index = this.index - 1
}
}
this.selDev = this.devList[this.index];
if (this.comName == 'tower-crane-value-1') {
this.comName = 'tower-crane-value-2'
} else {
this.comName = 'tower-crane-value-1'
}
var height = $(".list-for").innerHeight()
$("#listMin").animate({ scrollTop: (height * this.index) + 'px' })
},
onTowerCraneList(n) {
this.index = n
this.selDev = this.devList[this.index];
//
this.direction = 'right'
if (this.comName == 'tower-crane-value-1') {
this.comName = 'tower-crane-value-2'
} else {
this.comName = 'tower-crane-value-1'
}
},
safeAutomaticRoll() {
var height = $(".safe-afoot-overflow").innerHeight()
console.log(height)
if (this.forIndex == this.warningData.length) {
this.forIndex = 0
} else {
this.forIndex = this.forIndex + 1
}
$("#afootOverflow").animate({ scrollTop: (height * this.forIndex) + 'px' })
},
warningListMinMouseover() {
clearInterval(this.warningInterval);
},
warningListMinMouseout() {
this.warningInterval = setInterval(this.safeAutomaticRoll, 10000);
},
},
};
</script>
@ -297,27 +524,34 @@ export default {
.my-svg-icon-blue,
.my-svg-icon-green {
width: 28px;
height: 28px;
width: 28px !important;
height: 28px !important;
position: relative;
top: -10px;
}
.my-svg-icon-green * {
fill: #63F8BC;
fill: #63F8BC !important;
}
.my-svg-icon-blue {
fill: #002d8d;
fill: #002d8d !important;
}
.drv-list {
padding: 0px 12px;
max-height: calc(100vh - 280px);
max-height: calc(100% - 55px);
overflow-y: auto;
.drv-item {
border-bottom: dotted 1px #429fff;
cursor: pointer;
&.active {
.item-content {
background-color: #42a1ff60;
}
}
&:first-child {
.item-content {
@ -364,6 +598,14 @@ export default {
margin-left: 4px;
color: #79bbe3;
}
&.is-offline {
color: burlywood;
}
&.is-online {
color: #63F8BC;
}
}
}
}
@ -379,12 +621,13 @@ export default {
}
.data-row2 {
margin-top: 10px;
display: grid;
grid-template-columns: 50% 50%;
.data-row2-col {
text-align: center;
line-height: 30px;
line-height: 40px;
.s-text {
color: #497deb;
@ -396,9 +639,6 @@ export default {
}
}
}
.dev-info{
height: calc(100vh - 323px);
}
.dev-info-list {
height: 280px;
@ -408,66 +648,111 @@ export default {
border-image: linear-gradient(to bottom, #f7f1f100, #3473c3d4);
border-image-slice: 1;
height: 100%;
.row-1{
.row-1 {
position: relative;
.sp-title{
.sp-title {
position: relative;
left:12px;
color:#ccd7e5d4;
font-size:12px;
left: 12px;
color: #ccd7e5d4;
font-size: 12px;
}
svg.icon{
position:absolute;
svg.icon {
position: absolute;
right: 12px;
fill:#9c1ef1 !important;
width:20px !important;
fill: #9c1ef1 !important;
width: 20px !important;
height: 20px !important;
*{
fill:#9c1ef1 !important;
* {
fill: #9c1ef1 !important;
}
}
}
.row-scale{
.row-scale {
height: calc(100% - 24px);
position: relative;
text-align: center;
.row-scale-ctx{
.row-scale-ctx {
height: 100%;
display: inline-block;
width: 30%;
.scale-item{
.scale-item {
margin: 22% 0px;
height: 4%;
background: #002d8d94;
border-radius: 5%;
}
}
.sp-sc{
.sp-sc {
position: absolute;
bottom:2px;
left:50%;
bottom: 2px;
left: 50%;
font-size: 12px;
color: #72b5f9;
}
.sp-sc1{
margin-left:calc(-15% - 20px);
.sp-sc1 {
margin-left: calc(-15% - 20px);
}
.sp-sc2{
margin-left:calc(15% + 10px);
.sp-sc2 {
margin-left: calc(15% + 10px);
}
.sp-data{
.sp-data {
text-align: right;
margin-left:calc(-15% - 50px);
margin-left: calc(-15% - 50px);
}
.sp-data1{
top:10px;
.sp-data1 {
top: 10px;
}
}
}
padding:12px;
height: 100%;
}
}
.left-enter {
left: -100%;
transform: translateX(-100%);
}
.left-leave-to {
left: 0;
transform: translateX(100%);
position: absolute;
}
.left-enter-active,
.left-leave-active {
transition: all 1s ease;
}
.right-enter {
left: 100%;
transform: translateX(100%);
}
.right-leave-to {
left: 0;
transform: translateX(-100%);
position: absolute;
}
.right-enter-active,
.right-leave-active {
transition: all 1s ease;
}
}
</style>

View File

@ -6,80 +6,95 @@ Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'index',
name: 'index',
meta:{nav:1,},
component: () => import(/* webpackChunkName: "index" */ '../pages/index.vue')
},
{
path: '/detail',
name: 'detail',
meta:{nav:2,},
component: () => import(/* webpackChunkName: "detail" */ '../pages/projectDetail.vue')
},
{
path: '/progress',
name: 'progress',
meta:{nav:5,},
component: () => import(/* webpackChunkName: "progress" */ '../pages/projectProgress.vue')
}
,
{
path: '/quality',
name: 'quality',
meta:{nav:4,},
component: () => import(/* webpackChunkName: "quality" */ '../pages/projectQuality.vue')
} ,
{
path: '/concreteStrength',
name: 'concreteStrength',
meta:{nav:42,},
component: () => import(/* webpackChunkName: "concreteStrength" */ '../pages/quality/concreteStrength.vue')
} ,
{
path: '/standardCuringRoom',
name: 'standardCuringRoom',
meta:{nav:41,},
component: () => import(/* webpackChunkName: "standardCuringRoom" */ '../pages/quality/standardCuringRoom.vue')
}
,
{
path: '/safety',
name: 'safety',
meta:{nav:3,},
component: () => import(/* webpackChunkName: "safety" */ '../pages/projectSafety.vue')
}
, {
path: '/distributionBox',
name: 'distributionBox',
meta:{nav:33,},
component: () => import(/* webpackChunkName: "distributionBox" */ '../pages/safe/distributionBox.vue')
}
, {
path: '/dumbwaiter',
name: 'dumbwaiter',
meta:{nav:34,},
component: () => import(/* webpackChunkName: "dumbwaiter" */ '../pages/safe/dumbwaiter.vue')
}
, {
path: '/excavation',
name: 'excavation',
name: 'excavation',
meta:{nav:32,},
component: () => import(/* webpackChunkName: "excavation" */ '../pages/safe/excavation.vue')
}
, {
path: '/towerCrane',
name: 'towerCrane',
meta:{nav:31,},
component: () => import(/* webpackChunkName: "towerCrane" */ '../pages/safe/towerCrane.vue')
}
,
{
path: '/video',
name: 'video',
meta:{nav:61,},
component: () => import(/* webpackChunkName: "video" */ '../pages/projectVideo.vue')
},
{
path: '/aiVideo',
name: 'aiVideo',
meta:{nav:62,},
component: () => import(/* webpackChunkName: "video" */ '../pages/toAIVideoProject.vue')
},
{
path: '/engin',
name: 'engin',
meta:{nav:7,},
component: () => import(/* webpackChunkName: "video" */ '../pages/projectEngin.vue')
},
{
path: '/photography',
name: 'photography',
meta:{nav:63,},
component: () => import(/* webpackChunkName: "video" */ '../pages/photography.vue')
}
]
@ -88,5 +103,7 @@ const router = new VueRouter({
base: process.env.BASE_URL,
routes
})
export {
routes
}
export default router