# Conflicts:
#	yanzhu-bigscreen/src/components/header.vue
dev_xd
姜玉琦 2025-04-20 13:33:24 +08:00
commit 1fda12bdff
483 changed files with 7014 additions and 20664 deletions

View File

@ -3,95 +3,78 @@
<el-row>
<el-col :span="8">
<div class="head-title-tab">
<div :class="nav == 1 ? 'head-nav active' : 'head-nav'" @click="doNav(1)"></div>
<div :class="nav == 1 ? 'head-nav active' : 'head-nav'" @click="doNav(1)" v-if="1==2"></div>
<div :class="nav == 2 ? 'head-nav active' : 'head-nav'" @click="doNav(2)"></div>
<div :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'"
style="position: relative;" class="has-submenu">
<div :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
<div @click="doNav(3)"></div>
<div class="header-btn-list">
<div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style="">
<div class="header-btn-list-item" style>
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 301 ? 'active' : ''" class="sub-btn"
@click="doNav(301)">安全隐患排查</button>
<button type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn"
@click="doNav(302)">教育培训</button>
<button type="button" :class="nav == 303 ? 'active' : ''" class="sub-btn"
@click="doNav(303)">基坑监测</button>
<button type="button" :class="nav == 304 ? 'active' : ''" class="sub-btn"
@click="doNav(304)">塔基监测</button>
<button type="button" :class="nav == 301 ? 'active' : ''" class="sub-btn" @click="doNav(301)"></button>
<button type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn" @click="doNav(302)"></button>
<button type="button" :class="nav == 303 ? 'active' : ''" class="sub-btn" @click="doNav(303)"></button>
<button type="button" :class="nav == 304 ? 'active' : ''" class="sub-btn" @click="doNav(304)"></button>
</div>
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn"
@click="doNav(305)">高支模监测</button>
<button type="button" :class="nav == 306 ? 'active' : ''" class="sub-btn"
@click="doNav(306)">配电箱监测</button>
<button type="button" :class="nav == 307 ? 'active' : ''" class="sub-btn"
@click="doNav(307)">爬架监测</button>
<button type="button" :class="nav == 308 ? 'active' : ''" class="sub-btn"
@click="doNav(308)">施工电梯监测</button>
<button type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn" @click="doNav(305)"></button>
<button type="button" :class="nav == 306 ? 'active' : ''" class="sub-btn" @click="doNav(306)"></button>
<button type="button" :class="nav == 307 ? 'active' : ''" class="sub-btn" @click="doNav(307)"></button>
<button type="button" :class="nav == 308 ? 'active' : ''" class="sub-btn" @click="doNav(308)"></button>
</div>
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
<<<<<<< HEAD
<button type="button" :class="nav == 309 ? 'active' : ''" class="sub-btn"
@click="doNav(309)">视频监控</button>
<button type="button" :class="nav == 310 ? 'active' : ''" class="sub-btn"
@click="doNav(310)">AI预警</button>
<button type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn"
@click="doNav(311)">标准化管理</button>
=======
<button type="button" :class="nav == 309 ? 'active' : ''" class="sub-btn" @click="doNav(309)"></button>
<button type="button" :class="nav == 310 ? 'active' : ''" class="sub-btn" @click="doNav(310)">AI</button>
<button type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn" @click="doNav(311)"></button>
>>>>>>> 73fd57044f093b7a1819035a572efe8a70a36234
</div>
</div>
</div>
</div>
<div :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'"
style="position: relative;" class="has-submenu">
<div :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
<div @click="doNav(4)"></div>
<div class="header-btn-list">
<div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style="">
<div class="header-btn-list-item" style>
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 401 ? 'active' : ''" class="sub-btn"
@click="doNav(401)">质量隐患排查</button>
<button type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn"
@click="doNav(402)">材料取样复试</button>
<button type="button" :class="nav == 403 ? 'active' : ''" class="sub-btn"
@click="doNav(403)">举牌验收</button>
<button type="button" :class="nav == 404 ? 'active' : ''" class="sub-btn"
@click="doNav(404)">标养室监测</button>
<button type="button" :class="nav == 401 ? 'active' : ''" class="sub-btn" @click="doNav(401)"></button>
<button type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn" @click="doNav(402)"></button>
<button type="button" :class="nav == 403 ? 'active' : ''" class="sub-btn" @click="doNav(403)"></button>
<button type="button" :class="nav == 404 ? 'active' : ''" class="sub-btn" @click="doNav(404)"></button>
</div>
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 405 ? 'active' : ''" class="sub-btn"
@click="doNav(405)">标准化管理</button>
<button type="button" :class="nav == 406 ? 'active' : ''" class="sub-btn"
@click="doNav(406)">混泥土监测</button>
<button type="button" :class="nav == 407 ? 'active' : ''" class="sub-btn"
@click="doNav(407)">爬架监测</button>
<button type="button" :class="nav == 408 ? 'active' : ''" class="sub-btn"
@click="doNav(408)">施工电梯监测</button>
<button type="button" :class="nav == 405 ? 'active' : ''" class="sub-btn" @click="doNav(405)"></button>
<button type="button" :class="nav == 406 ? 'active' : ''" class="sub-btn" @click="doNav(406)"></button>
<button type="button" :class="nav == 407 ? 'active' : ''" class="sub-btn" @click="doNav(407)"></button>
<button type="button" :class="nav == 408 ? 'active' : ''" class="sub-btn" @click="doNav(408)"></button>
</div>
</div>
</div>
</div>
<div :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'"
style="position: relative;" class="has-submenu">
<div :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
<div @click="doNav(5)"></div>
<div class="header-btn-list">
<div class="header-btn-list-arrow"></div>
<div class="header-btn-list-item" style="">
<div class="header-btn-list-item" style>
<div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 5 ? 'active' : ''" class="sub-btn"
@click="doNav(5)">进度管理</button>
<button type="button" :class="nav == 501 ? 'active' : ''" class="sub-btn"
@click="doNav(501)">延时摄影</button>
<button type="button" :class="nav == 5 ? 'active' : ''" class="sub-btn" @click="doNav(5)"></button>
<button type="button" :class="nav == 501 ? 'active' : ''" class="sub-btn" @click="doNav(501)"></button>
</div>
</div>
</div>
</div>
</div>
</el-col>
<el-col :span="8" class="header-center">
<img class="prj-logo" :src="selProject.setting.orgLogo"
v-if="selProject && selProject.setting && selProject.setting.orgLogo" />
<img class="prj-logo" :src="selProject.setting.orgLogo" v-if="selProject && selProject.setting && selProject.setting.orgLogo" />
{{ selProject?.setting?.orgName || '数字建安施工管理平台' }}
</el-col>
<el-col :span="8">
@ -99,31 +82,43 @@
<div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿</div>
</div>
<div class="header-title-user-info" style="display:inline-block;float:right;">
<el-select v-model="selProjectId" popper-class="header-sel-project-pop"
style="width: 150px;margin-right: 20px;height:30px;line-height: 30px;"
@change="doProjectSelect">
<el-option v-for="it in projects" :key="it.id" :label="it.projectName"
:value="it.id"></el-option>
<el-select v-model="selProjectId" popper-class="header-sel-project-pop" style="width: 150px;margin-right: 20px;height:30px;line-height: 30px;" @change="doProjectSelect">
<el-option v-for="it in projects" :key="it.id" :label="it.projectName" :value="it.id"></el-option>
</el-select>
<span class="command" @click="doLogout">{{ nickName }}
<span class="command" @click="doLogout">
{{ nickName }}
<i class="el-icon-switch-button"></i>
</span>
</div>
<i class="set-fullscreen set-font-size"
style="margin-left: 16px;position: absolute;top: 0px;right: 24px;" @click="toggleFullScreen">
<svg class="icon" v-if="!isFullScreen"
<i class="set-fullscreen set-font-size" style="margin-left: 16px;position: absolute;top: 0px;right: 24px;" @click="toggleFullScreen">
<svg
class="icon"
v-if="!isFullScreen"
style="width: 20px; vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3304">
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3304"
>
<path
d="M145.066667 85.333333h153.6c25.6 0 42.666667-17.066667 42.666666-42.666666S324.266667 0 298.666667 0H34.133333C25.6 0 17.066667 8.533333 8.533333 17.066667 0 25.6 0 34.133333 0 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666666s42.666667-17.066667 42.666666-42.666666V145.066667l230.4 230.4c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733334L145.066667 85.333333z m170.666666 563.2L162.133333 802.133333l-76.8 76.8V725.333333C85.333333 699.733333 68.266667 682.666667 42.666667 682.666667s-42.666667 17.066667-42.666667 42.666666v256c0 25.6 17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666666-42.666667s-17.066667-42.666667-42.666666-42.666666H145.066667l76.8-76.8 153.6-153.6c17.066667-17.066667 17.066667-42.666667 0-59.733334-17.066667-17.066667-42.666667-17.066667-59.733334 0z m665.6 34.133334c-25.6 0-42.666667 17.066667-42.666666 42.666666v153.6l-76.8-76.8-153.6-153.6c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733334l153.6 153.6 76.8 76.8H725.333333c-25.6 0-42.666667 17.066667-42.666666 42.666666s17.066667 42.666667 42.666666 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666666z m0-682.666667h-256c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666666h153.6l-76.8 76.8-153.6 153.6c-17.066667 17.066667-17.066667 42.666667 0 59.733334 17.066667 17.066667 42.666667 17.066667 59.733334 0l153.6-153.6 76.8-76.8v153.6c0 25.6 17.066667 42.666667 42.666666 42.666666s42.666667-17.066667 42.666667-42.666666v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z"
fill="" p-id="3305"></path>
fill
p-id="3305"
/>
</svg>
<svg class="icon" v-else
<svg
class="icon"
v-else
style="width: 24px; vertical-align: middle;fill: currentColor;overflow: hidden;"
viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3952">
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="3952"
>
<path
d="M384 597.333333h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h153.6L17.066667 947.2c-17.066667 17.066667-17.066667 42.666667 0 59.733333 17.066667 17.066667 42.666667 17.066667 59.733333 0L341.333333 742.4v153.6c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z m358.4 85.333334h153.6c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667h-256c-25.6 0-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V742.4l264.533333 264.533333c17.066667 17.066667 42.666667 17.066667 59.733333 0 17.066667-17.066667 17.066667-42.666667 0-59.733333L742.4 682.666667zM640 426.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667H742.4L1006.933333 76.8c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333 0L682.666667 281.6V128c0-25.6-17.066667-42.666667-42.666667-42.666667s-42.666667 17.066667-42.666667 42.666667v256c0 25.6 17.066667 42.666667 42.666667 42.666667z m-256-341.333334c-25.6 0-42.666667 17.066667-42.666667 42.666667v153.6L76.8 8.533333C59.733333 0 25.6 0 8.533333 8.533333 0 25.6 0 59.733333 8.533333 76.8L281.6 341.333333H128c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h256c25.6 0 42.666667-17.066667 42.666667-42.666667v-256c0-25.6-17.066667-42.666667-42.666667-42.666667z"
p-id="3953"></path>
p-id="3953"
/>
</svg>
</i>
</el-col>
@ -144,103 +139,110 @@ export default {
},
computed: {
nickName() {
return this.$store.getters.nickName;
return this.$store.getters.nickName
},
curNav() {
return this.$store.getters.nav;
}
return this.$store.getters.nav
},
},
watch: {
curNav(n, o) {
this.nav = this.$store.getters.nav;
}
this.nav = this.$store.getters.nav
},
},
mounted() {
window.xapp = this;
this.$api.project.findMyProjectList().then(d => {
this.projects = d.rows || [];
window.xapp = this
this.$api.project.findMyProjectList().then((d) => {
this.projects = d.rows || []
if (this.projects.length > 0) {
let id = localStorage.getItem("selProj") || this.projects[0].id
this.selProjectId = +id;
this.doProjectSelect();
let id = localStorage.getItem('selProj') || this.projects[0].id
this.selProjectId = +id
this.doProjectSelect()
}
});
})
},
methods: {
toggleFullScreen() {
let el = document.body;
this.$toggleFullScreen(el);
let el = document.body
this.$toggleFullScreen(el)
setTimeout(() => {
this.isFullScreen = document.fullscreenElement == el;
}, 400);
this.isFullScreen = document.fullscreenElement == el
}, 400)
},
doProjectSelect() {
let tmps = this.projects.filter(d => d.id == this.selProjectId);
let tmps = this.projects.filter((d) => d.id == this.selProjectId)
if (tmps.length > 0) {
this.$store.dispatch('SetSelProject', tmps[0]);
this.selProject = tmps[0];
this.$store.dispatch('SetSelProject', tmps[0])
this.selProject = tmps[0]
} else {
this.$store.dispatch('SetSelProject', null);
this.selProject = null;
this.$store.dispatch('SetSelProject', null)
this.selProject = null
}
localStorage.setItem("selProj", this.selProjectId);
localStorage.setItem('selProj', this.selProjectId)
},
doNav(n) {
if (this.nav == n) {
return;
return
}
this.nav = n;
this.nav = n
switch (n) {
case 1:
this.$router.push("/index");
break;
this.$router.push('/index')
break
case 2:
this.$router.push("/detail");
break;
this.$router.push('/detail')
break
case 3:
this.$router.push("/prjSafety");
break;
this.$router.push('/prjSafety')
break
case 309:
this.$router.push("/videoMonitor");
break;
this.$router.push('/videoMonitor')
break
case 301:
this.$router.push("/safetyCheck");
break;
this.$router.push('/safetyCheck')
break
case 304:
this.$router.push("/towerCrane");
break;
this.$router.push('/towerCrane')
break
case 306:
<<<<<<< HEAD
this.$router.push("/powerIot");
break;
case 310:
this.$router.push("/aiWarning");
break;
=======
this.$router.push('/powerIot')
break
>>>>>>> 73fd57044f093b7a1819035a572efe8a70a36234
case 4:
this.$router.push("/prjQuality");
break;
this.$router.push('/prjQuality')
break
case 5:
this.$router.push("/prjProgress");
break;
this.$router.push('/prjProgress')
break
case 6:
this.$router.push("/greenCarbon");
break;
this.$router.push('/greenCarbon')
break
case 501:
this.$router.push("/photography");
break;
this.$router.push('/photography')
break
}
},
doLogout() {
this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = window.XDBSAPP;
type: 'warning',
})
}).catch(() => { });
}
}
.then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = window.XDBSAPP
})
})
.catch(() => {})
},
},
}
</script>
@ -307,10 +309,8 @@ export default {
}
}
}
}
}
}
}
}
@ -373,8 +373,6 @@ export default {
}
@media (min-width: 2561px) {
.header-center {
font-size: 52px !important;
margin-top: 10px;

File diff suppressed because it is too large Load Diff

View File

@ -18,16 +18,16 @@
>
<path
d="M929.84 550.848a29.155 29.155 0 0 0 29.153-29.154V347.16a29.282 29.282 0 0 0-17.9-27.291c-0.028-0.012-0.055-0.019-0.082-0.029L358.4 67.362a0.324 0.324 0 0 0-0.038-0.014 29.452 29.452 0 0 0-25.538 1.186L80.374 204.472A29.229 29.229 0 0 0 65 230.2v291.5a29.155 29.155 0 0 0 29.157 29.15h111.9a87.872 87.872 0 0 0 53.29 53.293V900.69h-87.453a29.155 29.155 0 0 0 0 58.309h408.125a29.155 29.155 0 0 0 0-58.309h-87.456V609.154h29.153a87.594 87.594 0 0 0 82.441-58.306h238.228v145.767a29.154 29.154 0 0 0 29.152 29.154 29.155 29.155 0 1 1-20.612 49.77 29.152 29.152 0 0 0-41.225 41.228 87.471 87.471 0 1 0 90.99-144.342V550.85h29.15zM375.957 317.62h29.152c70.392 0 129.283 50.159 142.826 116.613H405.109a29.187 29.187 0 0 1-29.152-29.154V317.62z m-174.91 174.922h-77.739V375.929h77.739v116.613z m5.013-174.922h-82.752v-70.047l194.346-104.654v116.4H288.5a87.6 87.6 0 0 0-82.44 58.301z m111.594 583.069v-75.384l75.379 75.384h-75.379zM434.26 859.46L329.728 754.922 434.26 650.383V859.46zM317.654 684.539v-75.385h75.379z m233.214-162.845a29.187 29.187 0 0 1-29.152 29.154H288.5a29.187 29.187 0 0 1-29.152-29.154v-174.92A29.187 29.187 0 0 1 288.5 317.62h29.153v87.461a87.557 87.557 0 0 0 87.455 87.461h145.76v29.152z m-3.1-204.074a203.383 203.383 0 0 0-142.659-58.306h-29.154v-120.8l413.3 179.1H547.766z m61.406 174.922v-29.155a203.612 203.612 0 0 0-7.079-53.31l82.458 82.463h-75.381zM650.4 375.927h209.063L754.931 480.465z m174.91 116.615l75.38-75.383v75.383h-75.38z"
fill=""
fill
p-id="3341"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p style="font-size: 16px">塔机总数</p>
<div>
<span>{{ towerTotalNum }}</span
><span style="font-size: 12px"></span>
<span>{{ towerTotalNum }}</span>
<span style="font-size: 12px"></span>
</div>
</div>
</div>
@ -46,42 +46,28 @@
<path
d="M128 128c-23.552 0-42.496 18.944-42.496 42.496v512c0 23.552 18.944 42.496 42.496 42.496h768c23.552 0 42.496-18.944 42.496-42.496v-512c0-23.552-18.944-42.496-42.496-42.496H128z m0-42.496h768c47.104 0 85.504 38.4 85.504 85.504v512c0 47.104-38.4 85.504-85.504 85.504H128c-47.104 0-85.504-38.4-85.504-85.504v-512c0-47.616 38.4-85.504 85.504-85.504zM846.336 487.424l-150.528-215.04c-2.56-4.096-4.608-6.656-7.168-9.728-4.608-4.608-9.216-6.656-14.336-6.656-5.12 0-10.24 2.048-14.336 6.656-3.584 4.096-3.584 5.12-7.168 9.728l-177.152 252.928-128-163.84c-8.192-10.24-19.968-10.752-28.16-5.632-4.608 3.072-6.656 5.632-9.728 9.728L167.936 573.44c-8.192 11.776-6.144 21.504 5.632 29.696 11.776 8.192 21.504 6.144 29.696-5.632L330.24 409.6l128.512 164.864c8.704 11.264 21.504 11.264 29.696 3.584 3.072-2.56 7.168-8.704 10.752-13.824l174.08-248.832 137.216 196.096c8.192 11.776 17.92 13.312 29.696 5.12 12.288-7.68 14.336-17.408 6.144-29.184zM149.504 896h725.504c14.336 0 21.504 7.168 21.504 21.504 0 14.336-7.168 21.504-21.504 21.504H149.504c-14.336 0-21.504-7.168-21.504-21.504 0-14.336 7.168-21.504 21.504-21.504zM362.496 725.504c14.336 0 21.504 7.168 21.504 21.504v170.496c0 14.336-7.168 21.504-21.504 21.504-14.336 0-21.504-7.168-21.504-21.504v-170.496c0.512-14.336 7.68-21.504 21.504-21.504zM661.504 725.504c14.336 0 21.504 7.168 21.504 21.504v170.496c0 14.336-7.168 21.504-21.504 21.504-14.336 0-21.504-7.168-21.504-21.504v-170.496c0-14.336 7.168-21.504 21.504-21.504z"
p-id="4373"
></path>
/>
</svg>
</div>
<div class="equipment-list-data">
<p style="font-size: 16px">监控总数</p>
<div>
<span class="fgreen">{{ towerTotalNum }}</span
><span style="font-size: 12px"></span>
<span class="fgreen">{{ towerTotalNum }}</span>
<span style="font-size: 12px"></span>
</div>
</div>
</div>
</el-col>
</el-row>
<el-row style="height: 160px; overflow: hidden">
<staff-survey-chart
:height="200"
:unit="'个'"
:data="towerConfigView"
:width="140"
></staff-survey-chart>
<staff-survey-chart :height="200" :unit="'个'" :data="towerConfigView" :width="140"></staff-survey-chart>
</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="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
<div :class="'active'">监控列表</div>
</div>
<div class="drv-list scroll" id="listMin">
<div
v-for="(it, idx) in towerConfigList"
:key="idx"
class="drv-item list-for"
:class="index == idx ? 'active' : ''"
@click="onTowerCraneList(idx)"
>
<div v-for="(it, idx) in towerConfigList" :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">
@ -102,7 +88,7 @@
d="M929.84 550.848a29.155 29.155 0 0 0 29.153-29.154V347.16a29.282 29.282 0 0 0-17.9-27.291c-0.028-0.012-0.055-0.019-0.082-0.029L358.4 67.362a0.324 0.324 0 0 0-0.038-0.014 29.452 29.452 0 0 0-25.538 1.186L80.374 204.472A29.229 29.229 0 0 0 65 230.2v291.5a29.155 29.155 0 0 0 29.157 29.15h111.9a87.872 87.872 0 0 0 53.29 53.293V900.69h-87.453a29.155 29.155 0 0 0 0 58.309h408.125a29.155 29.155 0 0 0 0-58.309h-87.456V609.154h29.153a87.594 87.594 0 0 0 82.441-58.306h238.228v145.767a29.154 29.154 0 0 0 29.152 29.154 29.155 29.155 0 1 1-20.612 49.77 29.152 29.152 0 0 0-41.225 41.228 87.471 87.471 0 1 0 90.99-144.342V550.85h29.15zM375.957 317.62h29.152c70.392 0 129.283 50.159 142.826 116.613H405.109a29.187 29.187 0 0 1-29.152-29.154V317.62z m-174.91 174.922h-77.739V375.929h77.739v116.613z m5.013-174.922h-82.752v-70.047l194.346-104.654v116.4H288.5a87.6 87.6 0 0 0-82.44 58.301z m111.594 583.069v-75.384l75.379 75.384h-75.379zM434.26 859.46L329.728 754.922 434.26 650.383V859.46zM317.654 684.539v-75.385h75.379z m233.214-162.845a29.187 29.187 0 0 1-29.152 29.154H288.5a29.187 29.187 0 0 1-29.152-29.154v-174.92A29.187 29.187 0 0 1 288.5 317.62h29.153v87.461a87.557 87.557 0 0 0 87.455 87.461h145.76v29.152z m-3.1-204.074a203.383 203.383 0 0 0-142.659-58.306h-29.154v-120.8l413.3 179.1H547.766z m61.406 174.922v-29.155a203.612 203.612 0 0 0-7.079-53.31l82.458 82.463h-75.381zM650.4 375.927h209.063L754.931 480.465z m174.91 116.615l75.38-75.383v75.383h-75.38z"
fill="#1195db"
p-id="5289"
></path>
/>
</svg>
</div>
</div>
@ -118,9 +104,11 @@
</div>
<div class="data-row">
<span>设备状态:</span>
<span :class="it.online == 2 ? 'is-offline' : 'is-online'">{{
<span :class="it.online == 2 ? 'is-offline' : 'is-online'">
{{
it.online == 2 ? "离线" : "在线"
}}</span>
}}
</span>
</div>
</div>
</div>
@ -166,10 +154,7 @@
<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="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
<div :class="'active'">吊重次数({{ towerConfigStat.a0 }})</div>
<div class="title-bg"></div>
</div>
@ -186,10 +171,7 @@
</el-col>
<el-col :span="6">
<div
class="warning-info-title"
style="padding-left: 20px; position: relative; z-index: 9"
>
<div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
<div :class="'active'">超载次数({{ towerConfigStat.b0 }})</div>
<div class="title-bg"></div>
</div>
@ -206,36 +188,24 @@
</el-col>
<el-col :span="6">
<div
class="warning-info-title"
style="padding-left: 20px; position: relative; z-index: 9"
>
<div :class="'active'">
超载率({{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }})
</div>
<div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
<div :class="'active'">超载率({{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }})</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">
{{ getRoudValue(towerConfigStat.b1, towerConfigStat.a1) }}
</div>
<div class="s-number">{{ getRoudValue(towerConfigStat.b1, towerConfigStat.a1) }}</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">
{{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }}
</div>
<div class="s-number">{{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }}</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="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
<div :class="'active'">告警次数(10)</div>
<div class="title-bg"></div>
</div>
@ -296,32 +266,16 @@
<div class="analyse-equipment">塔机监测</div>
</div>
<div class="afoot-content safe-afoot-content">
<div
class="afoot-overflow safe-afoot-overflow"
id="afootOverflow"
>
<div v-if="warningData.length == 0" class="not-data">
暂无预警数据
</div>
<div class="afoot-overflow safe-afoot-overflow" id="afootOverflow">
<div v-if="warningData.length == 0" class="not-data"></div>
<div
v-if="warningData.length > 0"
class="quality-table special-table scroll"
style="height: 180px;padding:0px;"
>
<el-table :data="warningData" class="mytable"
style="width: 100%;background: transparent;" height="265" ref="fbsubordinateUnit">
<div v-if="warningData.length > 0" class="quality-table special-table scroll" style="height: 180px;padding:0px;">
<el-table :data="warningData" class="mytable" style="width: 100%;background: transparent;" height="265" ref="fbsubordinateUnit">
<el-table-column prop="createTime" label="发送时间" width="160"></el-table-column>
<el-table-column label="预警类型">
<template slot-scope="scope">
<div class="tag-group">
<el-tag
v-for="item in dicts"
v-if="dic(item.dictValue,scope.row.warnings)"
type="danger"
effect="dark">
{{ item.dictLabel }}
</el-tag>
<el-tag v-for="item in dicts" v-if="dic(item.dictValue,scope.row.warnings)" type="danger" effect="dark">{{ item.dictLabel }}</el-tag>
</div>
</template>
</el-table-column>
@ -335,10 +289,7 @@
<div class="analyse-text">力矩曲线</div>
</div>
<div class="safe-moment">
<safe-curve-chart
:height="260"
:momentdata="momentData"
></safe-curve-chart>
<safe-curve-chart :height="260" :momentdata="momentData"></safe-curve-chart>
</div>
</div>
</div>
@ -346,12 +297,7 @@
</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>
@ -374,7 +320,7 @@
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"
@ -394,7 +340,7 @@
<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"
@ -415,7 +361,7 @@
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"
@ -435,7 +381,7 @@
<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"
@ -452,16 +398,12 @@
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="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
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"
@ -482,7 +424,7 @@
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">
@ -490,12 +432,7 @@
<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-data2 sp-data sp-sc" v-if="it.data2 >= 5" :style="calcTop(it)">:{{ it.data2 }}</span>
<span class="sp-sc2 sp-sc">{{ it.scale2 }}</span>
</div>
</div>
@ -509,16 +446,16 @@
</template>
<script>
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";
import debounce from "lodash.debounce";
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'
import debounce from 'lodash.debounce'
export default {
//
name: "JhbigscreenTowerCrane",
name: 'JhbigscreenTowerCrane',
data() {
return {
index: 0,
@ -526,29 +463,29 @@ export default {
towerConfigList: [],
towerConfigStat: { a0: 0, b0: 0, c0: 0, a1: 0, b1: 0, c1: 0 },
runData: {
height: "0",
range: "0",
rotation: "0",
load: "0",
windSpeed: "0",
leanAngleX: "0",
leanAngleY: "0",
loadPercent: "0",
momentPercent: "0",
windSpeedPercent: "0",
height: '0',
range: '0',
rotation: '0',
load: '0',
windSpeed: '0',
leanAngleX: '0',
leanAngleY: '0',
loadPercent: '0',
momentPercent: '0',
windSpeedPercent: '0',
warnings: null,
},
selDev: {},
devBottomInfo: [
{ title: "幅度", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "风速", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "吊重", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "倾角", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "转角", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "高度", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: '幅度', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '风速', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '吊重', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '倾角', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '转角', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '高度', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
],
direction: "right",
comName: "tower-crane-value-1",
direction: 'right',
comName: 'tower-crane-value-1',
warningData: [],
momentData: {},
forIndex: 0,
@ -559,242 +496,240 @@ export default {
prjs: [],
project: null,
dicts: [],
};
}
},
created() {
this.$api.dict("device_tower_warning").then((d) => {
this.dicts = d || [];
});
this.$api.dict('device_tower_warning').then((d) => {
this.dicts = d || []
})
},
mounted() {
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.$bus.$on(
"projectChange",
'projectChange',
debounce((res) => {
this.project = res || this.$root.project;
this.dept = this.$root.dept || this.dept;
this.prjs = this.$root.projects || this.prjs;
this.index = 0;
this.initMe();
this.project = res || this.$root.project
this.dept = this.$root.dept || this.dept
this.prjs = this.$root.projects || this.prjs
this.index = 0
this.initMe()
})
);
this.initMe();
)
this.initMe()
},
methods: {
initMe() {
this.initTowerConfigView();
this.initTowerConfigList();
this.initTowerConfigView()
this.initTowerConfigList()
},
getProjectId(cb) {
let func = () => {
let prjId = this.project?.id || 0;
let prjId = this.project?.id || 0
if (prjId == 0) {
if (!this.prjs || this.prjs.length == 0) {
setTimeout(func, 100);
setTimeout(func, 100)
} else {
if (this.prjs.length > 1) {
cb && cb(this.prjs[1].id);
cb && cb(this.prjs[1].id)
} else {
cb(0);
cb(0)
}
}
} else {
cb && cb(prjId);
cb && cb(prjId)
}
};
func();
}
func()
},
initTowerConfigView() {
this.getProjectId((id) => {
this.$api.tower.findTowerConfigGroupOnline(null, id).then((d) => {
let list = [];
let total = 0;
let list = []
let total = 0
if (d.data && d.data.length > 0) {
d.data.forEach((datum) => {
total += datum.total;
total += datum.total
if (datum.online == 1) {
list.push({ text: "在线数量", value: datum.total });
list.push({ text: '在线数量', value: datum.total })
if (d.data.length == 1) {
list.push({ text: "离线数量", value: 0 });
list.push({ text: '离线数量', value: 0 })
}
} else {
list.push({ text: "离线数量", value: datum.total });
list.push({ text: '离线数量', value: datum.total })
}
});
})
}
this.towerTotalNum = total;
this.towerConfigView = list;
});
});
this.towerTotalNum = total
this.towerConfigView = list
})
})
},
initTowerConfigList() {
this.getProjectId((id) => {
this.$api.tower.findTowerConfigListByProjectId(null, id).then((d) => {
this.towerConfigList = d.data || [];
this.towerConfigList = d.data || []
if (d.data.length > 0) {
this.initSelDev(this.index);
}else{
this.runData.height = "0";
this.runData.range = "0";
this.runData.rotation = "0";
this.runData.load = "0";
this.runData.windSpeed = "0";
this.runData.leanAngleX = "0";
this.runData.leanAngleY = "0";
this.runData.loadPercent = "0";
this.runData.momentPercent = "0";
this.runData.windSpeedPercent = "0";
this.runData.warnings = null;
this.devBottomInfo[0].data1 = 0;
this.devBottomInfo[1].data1 = 0;
this.devBottomInfo[2].data1 = 0;
this.devBottomInfo[3].data1 = 0;
this.devBottomInfo[4].data1 = 0;
this.devBottomInfo[5].data1 = 0;
this.devBottomInfo[0].data2 = 0;
this.devBottomInfo[1].data2 = 0;
this.devBottomInfo[2].data2 = 0;
this.devBottomInfo[3].data2 = 0;
this.devBottomInfo[4].data2 = 0;
this.devBottomInfo[5].data2 = 0;
this.towerConfigStat.a0 = 0;
this.towerConfigStat.b0 = 0;
this.towerConfigStat.c0 = 0;
this.towerConfigStat.a1 = 0;
this.towerConfigStat.b1 = 0;
this.towerConfigStat.c1 = 0;
this.warningData = [];
this.selDev = {deviceName:"未找到设备",frontBrachium:0,afterBrachium:0};
this.initSelDev(this.index)
} else {
this.runData.height = '0'
this.runData.range = '0'
this.runData.rotation = '0'
this.runData.load = '0'
this.runData.windSpeed = '0'
this.runData.leanAngleX = '0'
this.runData.leanAngleY = '0'
this.runData.loadPercent = '0'
this.runData.momentPercent = '0'
this.runData.windSpeedPercent = '0'
this.runData.warnings = null
this.devBottomInfo[0].data1 = 0
this.devBottomInfo[1].data1 = 0
this.devBottomInfo[2].data1 = 0
this.devBottomInfo[3].data1 = 0
this.devBottomInfo[4].data1 = 0
this.devBottomInfo[5].data1 = 0
this.devBottomInfo[0].data2 = 0
this.devBottomInfo[1].data2 = 0
this.devBottomInfo[2].data2 = 0
this.devBottomInfo[3].data2 = 0
this.devBottomInfo[4].data2 = 0
this.devBottomInfo[5].data2 = 0
this.towerConfigStat.a0 = 0
this.towerConfigStat.b0 = 0
this.towerConfigStat.c0 = 0
this.towerConfigStat.a1 = 0
this.towerConfigStat.b1 = 0
this.towerConfigStat.c1 = 0
this.warningData = []
this.selDev = { deviceName: '未找到设备', frontBrachium: 0, afterBrachium: 0 }
}
});
});
})
})
},
initCountData() {
this.$api.tower.findTowerStatisticsView(this.selDev.deviceSn).then((d) => {
this.towerConfigStat = d.data || [];
});
this.towerConfigStat = d.data || []
})
},
initLimitData() {
this.$api.tower.selectDevTowerDataLimitList(this.selDev.deviceSn).then((d) => {
this.devBottomInfo[0].data2 = d.data[0].rangeLimitStart;
this.devBottomInfo[1].data2 = d.data[0].windSpeedWarning;
this.devBottomInfo[2].data2 = d.data[0].loadWarning;
this.devBottomInfo[3].data2 = d.data[0].leanWarning;
this.devBottomInfo[4].data2 = d.data[0].rotationLimitStart;
this.devBottomInfo[5].data2 = d.data[0].highLimitWarning;
});
this.devBottomInfo[0].data2 = d.data.length > 0 ? d.data[0].rangeLimitStart : 0
this.devBottomInfo[1].data2 = d.data.length > 0 ? d.data[0].windSpeedWarning : 0
this.devBottomInfo[2].data2 = d.data.length > 0 ? d.data[0].loadWarning : 0
this.devBottomInfo[3].data2 = d.data.length > 0 ? d.data[0].leanWarning : 0
this.devBottomInfo[4].data2 = d.data.length > 0 ? d.data[0].rotationLimitStart : 0
this.devBottomInfo[5].data2 = d.data.length > 0 ? d.data[0].highLimitWarning : 0
})
},
initRunData() {
this.$api.tower.selectDevTowerDataRunList(this.selDev.deviceSn).then((d) => {
if (d.data.length > 0) {
this.runData.height = d.data[0].height;
this.runData.range = d.data[0].range;
this.runData.rotation = d.data[0].rotation;
this.runData.load = d.data[0].load;
this.runData.windSpeed = d.data[0].windSpeed;
this.runData.leanAngleX = d.data[0].leanAngleX;
this.runData.leanAngleY = d.data[0].leanAngleY;
this.runData.loadPercent = d.data[0].loadPercent;
this.runData.momentPercent = d.data[0].momentPercent;
this.runData.windSpeedPercent = d.data[0].windSpeedPercent;
this.runData.warnings = d.data[0].warnings;
this.devBottomInfo[0].data1 = d.data[0].range;
this.devBottomInfo[1].data1 = d.data[0].windSpeed;
this.devBottomInfo[2].data1 = d.data[0].load;
this.devBottomInfo[3].data1 = d.data[0].leanAnglePercent
? d.data[0].leanAnglePercent
: 0;
this.devBottomInfo[4].data1 = d.data[0].rotation;
this.devBottomInfo[5].data1 = d.data[0].height;
this.runData.height = d.data[0].height
this.runData.range = d.data[0].range
this.runData.rotation = d.data[0].rotation
this.runData.load = d.data[0].load
this.runData.windSpeed = d.data[0].windSpeed
this.runData.leanAngleX = d.data[0].leanAngleX
this.runData.leanAngleY = d.data[0].leanAngleY
this.runData.loadPercent = d.data[0].loadPercent
this.runData.momentPercent = d.data[0].momentPercent
this.runData.windSpeedPercent = d.data[0].windSpeedPercent
this.runData.warnings = d.data[0].warnings
this.devBottomInfo[0].data1 = d.data[0].range
this.devBottomInfo[1].data1 = d.data[0].windSpeed
this.devBottomInfo[2].data1 = d.data[0].load
this.devBottomInfo[3].data1 = d.data[0].leanAnglePercent ? d.data[0].leanAnglePercent : 0
this.devBottomInfo[4].data1 = d.data[0].rotation
this.devBottomInfo[5].data1 = d.data[0].height
}
this.warningData = d.data || [];
});
this.warningData = d.data || []
})
},
calcTop(d) {
let tmp = 100 - (d.data2 * 100.0) / d.data1;
return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`;
let tmp = 100 - (d.data2 * 100.0) / d.data1
return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`
},
getRoudValue(a, b) {
if (a > 0) {
return (parseFloat(a / b) * 100).toFixed(1) + "%";
return (parseFloat(a / b) * 100).toFixed(1) + '%'
} else {
return "0%";
return '0%'
}
},
safeTowerLeft() {
this.direction = "left";
this.automaticRoll();
this.direction = 'left'
this.automaticRoll()
},
safeTowerRight() {
//
this.direction = "right";
this.automaticRoll();
this.direction = 'right'
this.automaticRoll()
},
automaticRoll() {
//
if (this.direction == "right") {
if (this.direction == 'right') {
if (this.index == this.towerConfigList.length - 1) {
this.index = 0;
this.index = 0
} else {
this.index = this.index + 1;
this.index = this.index + 1
}
} else {
if (this.index == 0) {
this.index = this.towerConfigList.length - 1;
this.index = this.towerConfigList.length - 1
} else {
this.index = this.index - 1;
this.index = this.index - 1
}
}
this.selDev = this.towerConfigList[this.index];
var height = $(".list-for").innerHeight();
$("#listMin").animate({ scrollTop: height * this.index + "px" });
this.selDev = this.towerConfigList[this.index]
var height = $('.list-for').innerHeight()
$('#listMin').animate({ scrollTop: height * this.index + 'px' })
},
initSelDev(n) {
this.selDev = this.towerConfigList[this.index];
this.initLimitData();
this.initRunData();
this.selDev = this.towerConfigList[this.index]
this.initLimitData()
this.initRunData()
//
clearInterval(this.warningInterval);
this.warningInterval = setInterval(this.initRunData, 60000);
this.initCountData();
clearInterval(this.countvwInterval);
this.countvwInterval = setInterval(this.initCountData, 60000);
clearInterval(this.warningInterval)
this.warningInterval = setInterval(this.initRunData, 60000)
this.initCountData()
clearInterval(this.countvwInterval)
this.countvwInterval = setInterval(this.initCountData, 60000)
},
onTowerCraneList(n) {
this.index = n;
this.selDev = this.towerConfigList[this.index];
this.initLimitData();
this.initCountData();
this.index = n
this.selDev = this.towerConfigList[this.index]
this.initLimitData()
this.initCountData()
//
this.direction = "right";
this.direction = 'right'
},
safeAutomaticRoll() {
var height = $(".safe-afoot-overflow").innerHeight();
console.log(height);
var height = $('.safe-afoot-overflow').innerHeight()
console.log(height)
if (this.forIndex == this.warningData.length) {
this.forIndex = 0;
this.forIndex = 0
} else {
this.forIndex = this.forIndex + 1;
this.forIndex = this.forIndex + 1
}
$("#afootOverflow").animate({ scrollTop: height * this.forIndex + "px" });
$('#afootOverflow').animate({ scrollTop: height * this.forIndex + 'px' })
},
warningListMinMouseover() {
clearInterval(this.warningInterval);
clearInterval(this.warningInterval)
},
warningListMinMouseout() {
this.warningInterval = setInterval(this.safeAutomaticRoll, 10000);
this.warningInterval = setInterval(this.safeAutomaticRoll, 10000)
},
dic(ds,value){
if(value.split(",").indexOf(ds)>-1){
return true;
}else{
dic(ds, value) {
if (value.split(',').indexOf(ds) > -1) {
return true
} else {
return false
}
}
},
};
},
}
</script>
<style lang="less">
.project-tower-crane {
@ -889,12 +824,7 @@ export default {
.title-bg {
background: rgb(2, 0, 36);
background: linear-gradient(
185deg,
rgba(2, 0, 36, 0.2) 0%,
rgba(9, 9, 121, 0.06) 48%,
rgba(0, 212, 255, 0.5) 100%
);
background: linear-gradient(185deg, rgba(2, 0, 36, 0.2) 0%, rgba(9, 9, 121, 0.06) 48%, rgba(0, 212, 255, 0.5) 100%);
position: absolute;
width: 60%;
height: 20px;

View File

@ -1,21 +1,21 @@
<template>
<div class="index-page main-page">
</div>
<div class="index-page main-page"></div>
</template>
<script>
export default {
data() {
return {
selProject: null
selProject: null,
}
},
mounted() {
this.$store.dispatch('ChangeNav', 1);
this.$bus.$on('projectChange', prj => {
this.selProject = prj;
});
}
window.location.href = '#/detail'
this.$store.dispatch('ChangeNav', 1)
this.$bus.$on('projectChange', (prj) => {
this.selProject = prj
})
},
}
</script>

View File

@ -12,7 +12,7 @@
<div class="dept-info" v-else>
<img class="dept-img" src="images/company_3.png" />
<div class="dept-row">
<div class="dept-name">{{ deptType1.deptName }}</div>
<div class="dept-name" :title="deptType1.deptName">{{ deptType1.deptName }}</div>
<div class="dept-leader-phone" :title="(deptType1.leader || '') + ' ' + (deptType1.phone || '')">
<span class="dept-leader">{{ deptType1.leader }}</span>
<span class="dept-phone">{{ deptType1.phone }}</span>
@ -26,7 +26,7 @@
<div class="dept-info" v-else>
<img class="dept-img" src="images/company_2.png" />
<div class="dept-row">
<div class="dept-name">{{ deptType2.deptName }}</div>
<div class="dept-name" :title="deptType2.deptName">{{ deptType2.deptName }}</div>
<div class="dept-leader-phone" :title="(deptType2.leader || '') + ' ' + (deptType2.phone || '')">
<span class="dept-leader">{{ deptType2.leader }}</span>
<span class="dept-phone">{{ deptType2.phone }}</span>
@ -56,7 +56,7 @@
<div class="dept-info" v-else>
<img class="dept-img" src="images/company_11.png" />
<div class="dept-row">
<div class="dept-name">{{ deptType4.deptName }}</div>
<div class="dept-name" :title="deptType4.deptName">{{ deptType4.deptName }}</div>
<div class="dept-leader-phone" :title="(deptType4.leader || '') + ' ' + (deptType4.phone || '')">
<span class="dept-leader">{{ deptType4.leader }}</span>
<span class="dept-phone">{{ deptType4.phone }}</span>
@ -72,7 +72,7 @@
<div class="dept-info" v-else>
<img class="dept-img" src="images/company_12.png" />
<div class="dept-row">
<div class="dept-name">{{ deptType5.deptName }}</div>
<div class="dept-name" :title="deptType5.deptName">{{ deptType5.deptName }}</div>
<div class="dept-leader-phone" :title="(deptType5.leader || '') + ' ' + (deptType5.phone || '')">
<span class="dept-leader">{{ deptType5.leader }}</span>
<span class="dept-phone">{{ deptType5.phone }}</span>
@ -87,7 +87,7 @@
<div class="dept-info" v-else>
<img class="dept-img" src="images/company_10.png" />
<div class="dept-row">
<div class="dept-name">{{ deptType6.deptName }}</div>
<div class="dept-name" :title="deptType6.deptName">{{ deptType6.deptName }}</div>
<div class="dept-leader-phone" :title="(deptType6.leader || '') + ' ' + (deptType6.phone || '')">
<span class="dept-leader">{{ deptType6.leader }}</span>
<span class="dept-phone">{{ deptType6.phone }}</span>
@ -820,6 +820,9 @@ export default {
.dept-name {
color: #50a2eb;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.dept-leader-phone {
@ -904,7 +907,7 @@ export default {
.prj-img-nav {
position: absolute;
z-index: 999;
left: calc(50% - 100px);
.prj-img-nav-item {
display: inline-block;
line-height: 30px;

View File

@ -1,8 +1,6 @@
<template>
<MyDialog v-if="show" v-model="show" width="60vw" height="75vh" class="safety-check-dialog">
<template slot="title">
{{ title }}
</template>
<template slot="title">{{ title }}</template>
<div class="head-title-tab" style="padding: 10px 0px;">
<div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">{{ counts[0] }}</div>
<div :class="nav == 3 ? 'head-nav active' : 'head-nav'" @click="doNav(3)">{{ counts[1] }}</div>
@ -12,20 +10,17 @@
</div>
<div class="scroll data-list" :key="dataKey">
<div v-if="rows.length == 0" style="text-align: center;" class="div-no-data">
<img src="images/nodata.png" style="width: 120px;">
<img src="images/nodata.png" style="width: 120px;" />
<div style="text-align: center;font-size: 12px;color:#888;">暂无数据</div>
</div>
<div v-for="(it, idx) in rows" :key="idx" class="data-item">
<div class="left-image">
<div class="left-header">
<span class="sp-nav" :class="it.imgSel == 0 ? 'active' : ''" @click="it.imgSel = 0">整改前</span>
<span class="sp-nav" :class="it.imgSel == 1 ? 'active' : ''" v-if="it.checkState == 4"
@click="it.imgSel = 1">整改后</span>
<span class="sp-nav" :class="it.imgSel == 1 ? 'active' : ''" v-if="it.checkState == 4" @click="it.imgSel = 1"></span>
</div>
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl" v-if="it.imgSel == 0"
:preview-src-list="[it.smarkUrl]"></el-image>
<el-image class="img-sm" fit="scale-down" :src="it.marksPicture" v-if="it.imgSel == 1"
:preview-src-list="[it.marksPicture]"></el-image>
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl" v-if="it.imgSel == 0" :preview-src-list="[it.smarkUrl]"></el-image>
<el-image class="img-sm" fit="scale-down" :src="it.marksPicture" v-if="it.imgSel == 1" :preview-src-list="[it.marksPicture]"></el-image>
</div>
<div class="right-data">
<el-col :span="12">
@ -63,8 +58,15 @@
</div>
</div>
</div>
<el-pagination v-if="rows.length > 0" layout="total,prev, pager, next" @current-change="handleCurrentChange"
:total="total" :page-size="pageSize" :current-page.sync="pageNum" class="bg-pagination"></el-pagination>
<el-pagination
v-if="rows.length > 0"
layout="total,prev, pager, next"
@current-change="handleCurrentChange"
:total="total"
:page-size="pageSize"
:current-page.sync="pageNum"
class="bg-pagination"
></el-pagination>
</MyDialog>
</template>
@ -73,7 +75,7 @@ export default {
data() {
return {
show: false,
title: "安全隐患排查",
title: '安全隐患排查',
prjInfo: {},
nav: 6,
problemType: null,
@ -88,39 +90,39 @@ export default {
},
methods: {
handleCurrentChange(n) {
this.pageNum = n;
this.loadData();
this.pageNum = n
this.loadData()
},
getDict(n) {
let tmps = this.dangerTypeDict.filter(d => d.value == n);
return tmps.length > 0 ? tmps[0].label : '';
let tmps = this.dangerTypeDict.filter((d) => d.value == n)
return tmps.length > 0 ? tmps[0].label : ''
},
doNav(n) {
this.nav = n;
this.loadData();
this.nav = n
this.loadData()
},
showDialog(prj, n, dangerTypeDict) {
this.dangerTypeDict = dangerTypeDict;
this.problemType = n == 0 ? null : n;
this.prjInfo = prj;
this.title = ["安全隐患排查", "日常巡检", "周检", "月检", "转型检查"][n];
this.pageNum = 0;
this.show = true;
this.getCount(n);
this.loadData();
this.dangerTypeDict = dangerTypeDict
this.problemType = n == 0 ? null : n
this.prjInfo = prj
this.title = ['安全隐患排查', '日常巡检', '周检', '月检', '专项检查'][n]
this.pageNum = 0
this.show = true
this.getCount(n)
this.loadData()
},
getCount(n) {
let postData = {
projectId: this.prjInfo.id,
comId: this.prjInfo.comId,
infoType: 0
};
if (n > 0) {
postData.problemType = n;
infoType: 0,
}
this.$api.safety.listCountForBG(postData).then(d => {
this.counts = d.data.filter(it => it.projectName != 'a').map(it => it.id)
});
if (n > 0) {
postData.problemType = n
}
this.$api.safety.listCountForBG(postData).then((d) => {
this.counts = d.data.filter((it) => it.projectName != 'a').map((it) => it.id)
})
},
loadData() {
let postData = {
@ -130,19 +132,18 @@ export default {
pageNum: this.pageNum,
pageSize: this.pageSize,
problemType: this.problemType,
projectName: this.nav
};
this.$api.safety.listForBG(postData).then(d => {
this.total = d.total;
this.rows = (d.rows || []).map(it => {
it.imgSel = 0;
return it;
});
this.dataKey++;
});
}
projectName: this.nav,
}
this.$api.safety.listForBG(postData).then((d) => {
this.total = d.total
this.rows = (d.rows || []).map((it) => {
it.imgSel = 0
return it
})
this.dataKey++
})
},
},
}
</script>
@ -189,16 +190,14 @@ export default {
line-height: 30px;
text-align: center;
background: #fff;
color: #5B84EB;
color: #5b84eb;
cursor: pointer;
&.active {
color: #fff;
background: #5B84EB;
background: #5b84eb;
}
}
}
.el-image {
@ -213,12 +212,11 @@ export default {
line-height: 30px;
.sp-label {
color: #8BFFD2;
color: #8bffd2;
}
}
}
}
}
@media (min-width: 1921px) and (max-width: 2560px) {
@ -241,14 +239,11 @@ export default {
max-height: calc(75vh - 180px);
.data-item {
.right-data {
font-size: 18px;
.sp-label {
color: #8BFFD2;
color: #8bffd2;
}
}
}
@ -276,14 +271,11 @@ export default {
max-height: calc(75vh - 180px);
.data-item {
.right-data {
font-size: 24px;
.sp-label {
color: #8BFFD2;
color: #8bffd2;
}
}
}

View File

@ -3,9 +3,7 @@
<el-col :span="6" class="h100">
<module-one-1-1 label="安全隐患排查" class="chart1-module">
<el-col :span="12" v-for="(it, idx) in chart1Data" :key="idx">
<div
class="equipment-list-min equipment-list-min_div quality-target-index-min quality-target-index-min_div">
<div class="equipment-list-min equipment-list-min_div quality-target-index-min quality-target-index-min_div">
<div class="czz-number-img czz-number-img-blue">
<svg-icon icon-class="notesearch"></svg-icon>
</div>
@ -14,7 +12,8 @@
<span>{{ it.name }}</span>
</div>
<div class="equipment-list-data equipment-list-data_div_bottom">
<span class="sp-data">{{ it.value || 0 }}</span><span class="sp-unit"></span>
<span class="sp-data">{{ it.value || 0 }}</span>
<span class="sp-unit"></span>
</div>
</div>
</div>
@ -24,12 +23,13 @@
<img src="images/icon2001.png" class="img-openwin" @click="showDlg(1)" />
<div class="div-item-chart">
<div class="data-item-chart">
<div class="total-info">{{ item1Data.total }}<br />
<div class="total-info">
{{ item1Data.total }}
<br />
<span class="sp-label">问题总数</span>
</div>
<div class="chart-gif chart-overview-gif"></div>
<my-chart :key="itemChartKey1" id="project-safety-check-item1" width="100%" height="100%"
:render="o => renderDataItem(1)"></my-chart>
<my-chart :key="itemChartKey1" id="project-safety-check-item1" width="100%" height="100%" :render="o => renderDataItem(1)"></my-chart>
</div>
<div class="div-item-info" :key="itemChartKey1">
<div v-for="(it, idx) in item1Data.infos" :key="idx" :class="'item-info'">
@ -44,8 +44,7 @@
<div class="glr-title">最新提交</div>
<div class="div-item-list scroll">
<div v-for="(it, idx) in item1Data.items" :key="idx" class="list-item">
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl"
:preview-src-list="[it.smarkUrl]"></el-image>
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl" :preview-src-list="[it.smarkUrl]"></el-image>
<div class="list-item-info">
<div class="item-row">
<span class="sp-label">提交人:</span>
@ -80,8 +79,7 @@
<el-col :span="18" class="h100">
<module-one-1-3 label="隐患类别统计">
<img src="images/icon2001.png" class="img-openwin" @click="showDlg(0)" />
<my-chart :key="chartKey2" id="project-safety-check-chart2" width="100%" height="100%"
:render="renderChart2"></my-chart>
<my-chart :key="chartKey2" id="project-safety-check-chart2" width="100%" height="100%" :render="renderChart2"></my-chart>
</module-one-1-3>
<el-row class="el-right">
<el-col :span="8">
@ -89,12 +87,13 @@
<img src="images/icon2001.png" class="img-openwin" @click="showDlg(2)" />
<div class="div-item-chart">
<div class="data-item-chart">
<div class="total-info">{{ item2Data.total }}<br />
<div class="total-info">
{{ item2Data.total }}
<br />
<span class="sp-label">问题总数</span>
</div>
<div class="chart-gif chart-overview-gif"></div>
<my-chart :key="itemChartKey1" id="project-safety-check-item2" width="100%"
height="100%" :render="o => renderDataItem(2)"></my-chart>
<my-chart :key="itemChartKey1" id="project-safety-check-item2" width="100%" height="100%" :render="o => renderDataItem(2)"></my-chart>
</div>
<div class="div-item-info" :key="itemChartKey1">
<div v-for="(it, idx) in item2Data.infos" :key="idx" :class="'item-info'">
@ -104,14 +103,12 @@
<span class="sp-percent led-number" v-if="idx > 0">{{ it.percent }}%</span>
</div>
</div>
</div>
<div class="div-item-data">
<div class="glr-title">最新提交</div>
<div class="div-item-list scroll">
<div v-for="(it, idx) in item2Data.items" :key="idx" class="list-item">
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl"
:preview-src-list="[it.smarkUrl]"></el-image>
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl" :preview-src-list="[it.smarkUrl]"></el-image>
<div class="list-item-info">
<div class="item-row">
<span class="sp-label">提交人:</span>
@ -148,12 +145,13 @@
<img src="images/icon2001.png" class="img-openwin" @click="showDlg(3)" />
<div class="div-item-chart">
<div class="data-item-chart">
<div class="total-info">{{ item3Data.total }}<br />
<div class="total-info">
{{ item3Data.total }}
<br />
<span class="sp-label">问题总数</span>
</div>
<div class="chart-gif chart-overview-gif"></div>
<my-chart :key="itemChartKey1" id="project-safety-check-item3" width="100%"
height="100%" :render="o => renderDataItem(3)"></my-chart>
<my-chart :key="itemChartKey1" id="project-safety-check-item3" width="100%" height="100%" :render="o => renderDataItem(3)"></my-chart>
</div>
<div class="div-item-info" :key="itemChartKey1">
<div v-for="(it, idx) in item3Data.infos" :key="idx" :class="'item-info'">
@ -163,14 +161,12 @@
<span class="sp-percent led-number" v-if="idx > 0">{{ it.percent }}%</span>
</div>
</div>
</div>
<div class="div-item-data">
<div class="glr-title">最新提交</div>
<div class="div-item-list scroll">
<div v-for="(it, idx) in item3Data.items" :key="idx" class="list-item">
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl"
:preview-src-list="[it.smarkUrl]"></el-image>
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl" :preview-src-list="[it.smarkUrl]"></el-image>
<div class="list-item-info">
<div class="item-row">
<span class="sp-label">提交人:</span>
@ -203,16 +199,17 @@
</module-one-2-1>
</el-col>
<el-col :span="8">
<module-one-2-1 label="转型检查">
<module-one-2-1 label="专项检查">
<img src="images/icon2001.png" class="img-openwin" @click="showDlg(4)" />
<div class="div-item-chart">
<div class="data-item-chart">
<div class="total-info">{{ item4Data.total }}<br />
<div class="total-info">
{{ item4Data.total }}
<br />
<span class="sp-label">问题总数</span>
</div>
<div class="chart-gif chart-overview-gif"></div>
<my-chart :key="itemChartKey1" id="project-safety-check-item4" width="100%"
height="100%" :render="o => renderDataItem(3)"></my-chart>
<my-chart :key="itemChartKey1" id="project-safety-check-item4" width="100%" height="100%" :render="o => renderDataItem(3)"></my-chart>
</div>
<div class="div-item-info" :key="itemChartKey1">
<div v-for="(it, idx) in item4Data.infos" :key="idx" :class="'item-info'">
@ -222,14 +219,12 @@
<span class="sp-percent led-number" v-if="idx > 0">{{ it.percent }}%</span>
</div>
</div>
</div>
<div class="div-item-data">
<div class="glr-title">最新提交</div>
<div class="div-item-list scroll">
<div v-for="(it, idx) in item4Data.items" :key="idx" class="list-item">
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl"
:preview-src-list="[it.smarkUrl]"></el-image>
<el-image class="img-sm" fit="scale-down" :src="it.smarkUrl" :preview-src-list="[it.smarkUrl]"></el-image>
<div class="list-item-info">
<div class="item-row">
<span class="sp-label">提交人:</span>
@ -281,17 +276,17 @@ export default {
dpi: '',
selProject: null,
legendOpt1: {
icon: "rect",
icon: 'rect',
textStyle: {
color: "#c3dbfd",
color: '#c3dbfd',
fontSize: 14,
rich: {
name: {
color: "#c3dbfd",
color: '#c3dbfd',
padding: [0, 20, 0, 0],
},
percent: {
color: "#4676FD"
color: '#4676FD',
},
},
},
@ -322,42 +317,42 @@ export default {
datas: [],
infos: [],
items: [],
}
},
}
},
mounted() {
window.safetyApp = this;
this.$store.dispatch('ChangeNav', 301);
this.$bus.$on('projectChange', prj => {
this.selProject = prj;
this.init();
});
this.selProject = this.$store.getters.selProject;
this.init();
this.dpi = this.$dpi();
window.addEventListener("resize", () => {
window.safetyApp = this
this.$store.dispatch('ChangeNav', 301)
this.$bus.$on('projectChange', (prj) => {
this.selProject = prj
this.init()
})
this.selProject = this.$store.getters.selProject
this.init()
this.dpi = this.$dpi()
window.addEventListener('resize', () => {
if (this.dpi != this.$dpi()) {
this.dpi = this.$dpi();
this.chartKey++;
this.chartKey2++;
this.dpi = this.$dpi()
this.chartKey++
this.chartKey2++
}
});
this.$api.dict("ssp_proble_sub_type").then((d) => {
this.dangerTypeDict = d || [];
});
})
this.$api.dict('ssp_proble_sub_type').then((d) => {
this.dangerTypeDict = d || []
})
},
methods: {
showDlg(n) {
this.$refs.dlg.showDialog(this.selProject, n, this.dangerTypeDict);
this.$refs.dlg.showDialog(this.selProject, n, this.dangerTypeDict)
},
init() {
if (!this.selProject) {
return;
return
}
let postData = {
projectId: this.selProject.id,
comId: this.selProject.comId
};
comId: this.selProject.comId,
}
let ajaxs = [
this.$api.safety.groupByProblemType(postData),
this.$api.safety.groupByDangerType(postData),
@ -369,119 +364,122 @@ export default {
this.$api.safety.listForBG({ ...postData, problemType: 3, infoType: 0, pageNum: 1, pageSize: 5 }),
this.$api.safety.listCountForBG({ ...postData, problemType: 4, infoType: 0 }),
this.$api.safety.listForBG({ ...postData, problemType: 4, infoType: 0, pageNum: 1, pageSize: 5 }),
];
this.$api.http.all(ajaxs).then(res => {
this.chart1Data = (res[0].data || []).map(it => {
]
this.$api.http.all(ajaxs).then((res) => {
this.chart1Data = (res[0].data || []).map((it) => {
return {
id: it.nickedInfo,
value: it.id,
name: it.problemType,
data: it
data: it,
}
});
this.chart2Data = (res[1].data || []).map(it => {
})
this.chart2Data = (res[1].data || []).map((it) => {
return {
id: it.nickedInfo,
name: it.dangerType,
value1: it.id,
value2: it.comId,
}
});
this.showChart1();//
this.showChart2();//
})
this.showChart1() //
this.showChart2() //
this.makeItemData(this.item1Data, res[2].data)
this.item1Data.items = res[3].rows;
this.item1Data.items = res[3].rows
this.makeItemData(this.item2Data, res[4].data)
this.item2Data.items = res[5].rows;
this.item2Data.items = res[5].rows
this.makeItemData(this.item3Data, res[6].data)
this.item3Data.items = res[7].rows;
this.item3Data.items = res[7].rows
this.makeItemData(this.item4Data, res[8].data)
this.item4Data.items = res[9].rows;
this.itemChartKey1++;
});
},
showChart1(n) {
this.item4Data.items = res[9].rows
this.itemChartKey1++
})
},
showChart1(n) {},
showChart2() {
this.chartKey2++;
this.chartKey2++
},
getStatus(s) {
let checkStates = [{ value: "0", label: '待整改' }, { value: "1", label: '待复检' },
{ value: "3", label: '复检驳回' },
{ value: "4", label: '复检通过' }];
let objs = checkStates.filter(it => it.value == s);
return objs.length > 0 ? objs[0].label : '';
let checkStates = [
{ value: '0', label: '待整改' },
{ value: '1', label: '待复检' },
{ value: '3', label: '复检驳回' },
{ value: '4', label: '复检通过' },
]
let objs = checkStates.filter((it) => it.value == s)
return objs.length > 0 ? objs[0].label : ''
},
makeItemData(item, res) {
let labels = ['问题总数', '待整改', '待复检', '复检驳回', '整改完成', '超时整改'];
item.total = res[0].id;
let total = res[0].id;
item.datas = [];
let labels = ['问题总数', '待整改', '待复检', '复检驳回', '整改完成', '超时整改']
item.total = res[0].id
let total = res[0].id
item.datas = []
for (let i = 1; i < 5; i++) {
item.datas.push({
name: labels[i],
value: res[i].id
});
value: res[i].id,
})
}
item.infos = [];
item.infos = []
for (let i = 0; i < res.length; i++) {
item.infos.push({
name: labels[i],
value: res[i].id,
type: res[i].projectName,
percent: total == 0 ? 0 : (res[i].id / total * 100.0).toFixed(1)
});
percent: total == 0 ? 0 : ((res[i].id / total) * 100.0).toFixed(1),
})
}
},
renderDataItem(n) {
let is1K = this.$dpi() == "1K";
let is2K = this.$dpi() == "2K";
let objs = this._data['item' + n + 'Data'];
let is1K = this.$dpi() == '1K'
let is2K = this.$dpi() == '2K'
let objs = this._data['item' + n + 'Data']
let option = {
color: ["#71BCC4", "#EEBE47", "#5EA85D", "#5B84EB", "#E76168"],
color: ['#71BCC4', '#EEBE47', '#5EA85D', '#5B84EB', '#E76168'],
series: [
{
type: 'pie',
radius: ['40%', '70%'],
padAngle: 1,
itemStyle: {
borderRadius: 5
}, emphasis: {
borderRadius: 5,
},
emphasis: {
label: {
show: false,
}
},
},
label: {
show: false
show: false,
},
labelLine: {
show: false
show: false,
},
data: objs.datas
data: objs.datas,
},
],
}
]
};
return option;
return option
},
renderChart2(opt) {
let is1K = this.$dpi() == "1K";
let is2K = this.$dpi() == "2K";
let is1K = this.$dpi() == '1K'
let is2K = this.$dpi() == '2K'
let option = {
grid: {
left: "5%",
right: "5%",
bottom: "0%",
top: "15%",
left: '5%',
right: '5%',
bottom: '0%',
top: '15%',
containLabel: true,
},
tooltip: {
trigger: "axis",
valueFormatter: (v) => { return v },
trigger: 'axis',
valueFormatter: (v) => {
return v
},
textStyle: {
fontSize: is1K ? 12 : is2K ? 14 : 24
fontSize: is1K ? 12 : is2K ? 14 : 24,
},
},
legend: {
@ -491,89 +489,89 @@ export default {
itemHeight: is1K ? 14 : is2K ? 20 : 20,
itemGap: is1K ? 20 : is2K ? 30 : 40,
textStyle: {
color: "#fff",
color: '#fff',
fontSize: is1K ? 14 : is2K ? 20 : 30,
}
},
},
xAxis: [
{
type: "category",
data: this.chart2Data.map(it => it.name.replace(/[“”]/g, "'")),
type: 'category',
data: this.chart2Data.map((it) => it.name.replace(/[“”]/g, "'")),
axisLabel: {
width: is1K ? 60 : is2K ? 140 : 220,
rotate: 15,
margin: 15,
rotate: 10,
fontSize: is1K ? 12 : is2K ? 14 : 22,
overflow: "break",
color: "#a2c8f9"
overflow: 'break',
color: '#a2c8f9',
},
splitLine: {
lineStyle: {
opacity: 0.1
}
}
opacity: 0.1,
},
},
},
],
yAxis: [
{
type: "value",
type: 'value',
minInterval: 1,
axisLabel: {
formatter: '{value}',
color: "#2ec2b3",
fontSize: is1K ? 12 : is2K ? 14 : 24
color: '#2ec2b3',
fontSize: is1K ? 12 : is2K ? 14 : 24,
},
splitLine: {
lineStyle: {
opacity: 0.1
}
opacity: 0.1,
},
},
},
],
series: [
{
name: '问题数',
type: "bar",
type: 'bar',
barGap: '0%',
barWidth: '20%',
label: {
show: true,
position: "top",
color: "#4DAAFC",
fontSize: is1K ? 12 : is2K ? 14 : 24
position: 'top',
color: '#4DAAFC',
fontSize: is1K ? 12 : is2K ? 14 : 24,
},
lineStyle: {
color: "#7ddff2",
color: '#7ddff2',
},
itemStyle: {
normal: { areaStyle: { type: "default", color: "#7ddff2", opacity: 0.1 } },
normal: { areaStyle: { type: 'default', color: '#7ddff2', opacity: 0.1 } },
},
data: this.chart2Data.map(it => it.value1),
data: this.chart2Data.map((it) => it.value1),
},
{
name: '待改数',
type: "bar",
type: 'bar',
barGap: '0%',
barWidth: '20%',
label: {
show: true,
position: "top",
color: "#4DAAFC",
fontSize: is1K ? 12 : is2K ? 14 : 24
position: 'top',
color: '#4DAAFC',
fontSize: is1K ? 12 : is2K ? 14 : 24,
},
lineStyle: {
color: "#006594",
color: '#006594',
},
itemStyle: {
normal: { areaStyle: { type: "default", color: "#006594", opacity: 0.1 } },
normal: { areaStyle: { type: 'default', color: '#006594', opacity: 0.1 } },
},
data: this.chart2Data.map((it) => it.value2),
},
data: this.chart2Data.map(it => it.value2),
}
],
};
return option;
}
}
return option
},
},
}
</script>
@ -693,19 +691,19 @@ export default {
top: 4px;
&.is-b {
background-color: #71BCC4;
background-color: #71bcc4;
}
&.is-c {
background-color: #EEBE47;
background-color: #eebe47;
}
&.is-d {
background-color: #5EA85D;
background-color: #5ea85d;
}
&.is-e {
background-color: #5B84EB;
background-color: #5b84eb;
}
}
@ -725,7 +723,7 @@ export default {
.sp-percent {
margin-left: 8px;
color: #5B84EB;
color: #5b84eb;
}
}
}
@ -763,7 +761,7 @@ export default {
line-height: 24px;
.sp-label {
color: #8BFFD2;
color: #8bffd2;
}
}
}
@ -933,8 +931,6 @@ export default {
}
}
}
}
.div-item-chart {
@ -1032,6 +1028,5 @@ export default {
}
}
}
}
</style>

View File

@ -11,8 +11,8 @@
<div class="equipment-list-data">
<p class="p-label">塔机总数</p>
<div>
<span class="span-num led-number">{{ towerTotalNum }}</span><span
class="span-unit"></span>
<span class="span-num led-number">{{ towerTotalNum }}</span>
<span class="span-unit"></span>
</div>
</div>
</div>
@ -25,8 +25,8 @@
<div class="equipment-list-data">
<p class="p-label">监控总数</p>
<div>
<span class="span-num led-number">{{ towerTotalNum }}</span><span
class="span-unit"></span>
<span class="span-num led-number">{{ towerTotalNum }}</span>
<span class="span-unit"></span>
</div>
</div>
</div>
@ -34,8 +34,7 @@
</el-row>
<el-row style="height: 160px; overflow: hidden" :key="chart1Key">
<staff-survey-chart :height="chart1Height" :unit="'个'" :data="towerConfigView"
width="100%"></staff-survey-chart>
<staff-survey-chart :height="chart1Height" :unit="'个'" :data="towerConfigView" width="100%"></staff-survey-chart>
</el-row>
<el-row class="left-data-list">
@ -43,8 +42,7 @@
<div :class="'active'">监控列表</div>
</div>
<div class="drv-list scroll" id="listMin">
<div v-for="(it, idx) in towerConfigList" :key="idx" class="drv-item list-for"
:class="index == idx ? 'active' : ''" @click="onTowerCraneList(idx)">
<div v-for="(it, idx) in towerConfigList" :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">
@ -64,10 +62,11 @@
</div>
<div class="data-row">
<span class="sp-label">设备状态:</span>
<span class="sp-value"
:class="it.online == 2 ? 'is-offline' : 'is-online'">{{
<span class="sp-value" :class="it.online == 2 ? 'is-offline' : 'is-online'">
{{
it.online == 2 ? "离线" : "在线"
}}</span>
}}
</span>
</div>
</div>
</div>
@ -108,7 +107,6 @@
</module-one-3-1>
</el-col>
<el-col :span="18" class="h100">
<el-row class="main-content">
<el-col :span="16" class="h100">
<el-row class="total-data">
@ -148,23 +146,17 @@
<el-col :span="6">
<div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
<div :class="'active'">
超载率({{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }})
</div>
<div :class="'active'">超载率({{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }})</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">
{{ getRoudValue(towerConfigStat.b1, towerConfigStat.a1) }}
</div>
<div class="s-number">{{ getRoudValue(towerConfigStat.b1, towerConfigStat.a1) }}</div>
</div>
<div class="data-row2-col">
<div class="s-text">累计</div>
<div class="s-number">
{{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }}
</div>
<div class="s-number">{{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }}</div>
</div>
</div>
</el-col>
@ -191,24 +183,32 @@
<div class="safe-tower-crane-min" style="position: relative">
<el-row class="row-crane-min">
<el-col :span="2">
<div class="safe-tower-left" v-if="towerConfigList.length > 1"
@click="safeTowerLeft"></div>
<div class="safe-tower-left" v-if="towerConfigList.length > 1" @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" :tHeight="runData.height" :tLoad="runData.load"
:tRotation="runData.rotation" :tRange="runData.range"
:tLeanAngleX="runData.leanAngleX" :tLeanAngleY="runData.leanAngleY"
<component
:is="comName"
:value="selDev"
:width="360"
:height="200"
:top="55"
:left="85"
:tHeight="runData.height"
:tLoad="runData.load"
:tRotation="runData.rotation"
:tRange="runData.range"
:tLeanAngleX="runData.leanAngleX"
:tLeanAngleY="runData.leanAngleY"
:tLoadPercent="runData.loadPercent"
:tMomentPercent="runData.momentPercent"></component>
:tMomentPercent="runData.momentPercent"
></component>
</transition>
</div>
</el-col>
<el-col :span="2">
<div class="safe-tower-right" v-if="towerConfigList.length > 1"
@click="safeTowerRight"></div>
<div class="safe-tower-right" v-if="towerConfigList.length > 1" @click="safeTowerRight"></div>
</el-col>
</el-row>
</div>
@ -224,25 +224,16 @@
</div>
<div class="afoot-content safe-afoot-content">
<div class="afoot-overflow safe-afoot-overflow" id="afootOverflow">
<div v-if="warningData.length == 0" class="not-data">
暂无预警数据
</div>
<div v-if="warningData.length == 0" class="not-data"></div>
<div v-if="warningData.length > 0" class="quality-table special-table scroll"
style="padding:0px;" :key="tbHeight">
<el-table :data="warningData" class="mytable"
style="width: 100%;background: transparent;" :height="tbHeight"
ref="fbsubordinateUnit">
<div v-if="warningData.length > 0" class="quality-table special-table scroll" style="padding:0px;" :key="tbHeight">
<el-table :data="warningData" class="mytable" style="width: 100%;background: transparent;" :height="tbHeight" ref="fbsubordinateUnit">
<el-table-column prop="createTime" label="发送时间"></el-table-column>
<el-table-column label="预警类型">
<template slot-scope="scope">
<div class="tag-group">
<template v-for="(item, idx) in dicts">
<el-tag :key="idx"
v-if="dic(item.value, scope.row.warnings)" type="danger"
effect="dark">
{{ item.label }}
</el-tag>
<el-tag :key="idx" v-if="dic(item.value, scope.row.warnings)" type="danger" effect="dark">{{ item.label }}</el-tag>
</template>
</div>
</template>
@ -257,8 +248,7 @@
<div class="analyse-text">力矩曲线</div>
</div>
<div class="safe-moment">
<my-chart :key="itemChartKey1" id="project-tower-crane-item2" width="100%" height="100%"
:render="o => renderDataItem2(o)"></my-chart>
<my-chart :key="itemChartKey1" id="project-tower-crane-item2" width="100%" height="100%" :render="o => renderDataItem2(o)"></my-chart>
</div>
</div>
</div>
@ -282,8 +272,10 @@
<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-data2 sp-data sp-sc" v-if="it.data2 >= 5" :style="calcTop(it)">
报警:{{
it.data2 }}
</span>
<span class="sp-sc2 sp-sc">{{ it.scale2 }}</span>
</div>
</div>
@ -294,9 +286,9 @@
</template>
<script>
import debounce from "lodash.debounce";
import "@/components/tower-crane-value-1";
import "@/components/tower-crane-value-2";
import debounce from 'lodash.debounce'
import '@/components/tower-crane-value-1'
import '@/components/tower-crane-value-2'
export default {
data() {
return {
@ -311,29 +303,29 @@ export default {
towerConfigList: [],
towerConfigStat: { a0: 0, b0: 0, c0: 0, a1: 0, b1: 0, c1: 0 },
runData: {
height: "0",
range: "0",
rotation: "0",
load: "0",
windSpeed: "0",
leanAngleX: "0",
leanAngleY: "0",
loadPercent: "0",
momentPercent: "0",
windSpeedPercent: "0",
height: '0',
range: '0',
rotation: '0',
load: '0',
windSpeed: '0',
leanAngleX: '0',
leanAngleY: '0',
loadPercent: '0',
momentPercent: '0',
windSpeedPercent: '0',
warnings: null,
},
selDev: {},
devBottomInfo: [
{ title: "幅度", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "风速", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "吊重", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "倾角", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "转角", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: "高度", data1: 0, data2: 0, scale1: "0", scale2: "0m" },
{ title: '幅度', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '风速', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '吊重', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '倾角', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '转角', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
{ title: '高度', data1: 0, data2: 0, scale1: '0', scale2: '0m' },
],
direction: "right",
comName: "tower-crane-value-1",
direction: 'right',
comName: 'tower-crane-value-1',
warningData: [],
momentData: {},
forIndex: 0,
@ -347,287 +339,289 @@ export default {
}
},
mounted() {
window.safetyApp = this;
this.$store.dispatch('ChangeNav', 304);
this.$bus.$on('projectChange', prj => {
this.selProject = prj;
this.init();
});
this.selProject = this.$store.getters.selProject;
this.init();
this.dpi = this.$dpi();
this.resize();
window.addEventListener("resize", () => {
window.safetyApp = this
this.$store.dispatch('ChangeNav', 304)
this.$bus.$on('projectChange', (prj) => {
this.selProject = prj
this.init()
})
this.selProject = this.$store.getters.selProject
this.init()
this.dpi = this.$dpi()
this.resize()
window.addEventListener('resize', () => {
if (this.dpi != this.$dpi()) {
this.dpi = this.$dpi();
this.resize();
this.dpi = this.$dpi()
this.resize()
}
});
this.$api.dict("ssp_proble_sub_type").then((d) => {
this.dangerTypeDict = d || [];
});
})
this.$api.dict('ssp_proble_sub_type').then((d) => {
this.dangerTypeDict = d || []
})
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]}'
);
)
},
created() {
this.$api.dict("device_tower_warning").then((d) => {
this.dicts = d || [];
console.log("---->", this.dicts);
});
this.$api.dict('device_tower_warning').then((d) => {
this.dicts = d || []
console.log('---->', this.dicts)
})
},
methods: {
resize() {
this.chart1Key++;
this.itemChartKey1++;
let is1K = this.$dpi() == "1K";
let is2K = this.$dpi() == "2K";
this.tbHeight = is1K ? 290 : is2K ? 410 : 770;
this.chart1Key++
this.itemChartKey1++
let is1K = this.$dpi() == '1K'
let is2K = this.$dpi() == '2K'
this.tbHeight = is1K ? 290 : is2K ? 410 : 770
},
init() {
if (!this.selProject) {
return;
return
}
this.initTowerConfigView();
this.initTowerConfigList();
this.initTowerConfigView()
this.initTowerConfigList()
},
getRoudValue(a, b) {
if (a > 0) {
return (parseFloat(a / b) * 100).toFixed(1) + "%";
return (parseFloat(a / b) * 100).toFixed(1) + '%'
} else {
return "0%";
return '0%'
}
},
initTowerConfigView() {
let postData = {
comId: this.selProject.comId,
projectId: this.selProject.id,
};
}
this.$api.tower.findTowerConfigGroupOnline(postData).then((d) => {
let list = [];
let total = 0;
let list = []
let total = 0
if (d.data && d.data.length > 0) {
d.data.forEach((datum) => {
total += datum.total;
total += datum.total
if (datum.online == 1) {
list.push({ text: "在线数量", value: datum.total });
list.push({ text: '在线数量', value: datum.total })
if (d.data.length == 1) {
list.push({ text: "离线数量", value: 0 });
list.push({ text: '离线数量', value: 0 })
}
} else {
list.push({ text: "离线数量", value: datum.total });
list.push({ text: '离线数量', value: datum.total })
}
});
})
}
this.towerTotalNum = total;
this.towerConfigView = list;
});
this.towerTotalNum = total
this.towerConfigView = list
})
},
initTowerConfigList() {
let postData = {
comdId: this.selProject.comId,
projectId: this.selProject.id,
};
this.$api.tower.findTowerConfigListByProjectId(postData).then((d) => {
this.towerConfigList = d.data || [];
if (d.data.length > 0) {
this.initSelDev(this.index);
} else {
this.runData.height = "0";
this.runData.range = "0";
this.runData.rotation = "0";
this.runData.load = "0";
this.runData.windSpeed = "0";
this.runData.leanAngleX = "0";
this.runData.leanAngleY = "0";
this.runData.loadPercent = "0";
this.runData.momentPercent = "0";
this.runData.windSpeedPercent = "0";
this.runData.warnings = null;
this.devBottomInfo[0].data1 = 0;
this.devBottomInfo[1].data1 = 0;
this.devBottomInfo[2].data1 = 0;
this.devBottomInfo[3].data1 = 0;
this.devBottomInfo[4].data1 = 0;
this.devBottomInfo[5].data1 = 0;
this.devBottomInfo[0].data2 = 0;
this.devBottomInfo[1].data2 = 0;
this.devBottomInfo[2].data2 = 0;
this.devBottomInfo[3].data2 = 0;
this.devBottomInfo[4].data2 = 0;
this.devBottomInfo[5].data2 = 0;
this.towerConfigStat.a0 = 0;
this.towerConfigStat.b0 = 0;
this.towerConfigStat.c0 = 0;
this.towerConfigStat.a1 = 0;
this.towerConfigStat.b1 = 0;
this.towerConfigStat.c1 = 0;
this.warningData = [];
this.selDev = { deviceName: "未找到设备", frontBrachium: 0, afterBrachium: 0 };
}
});
this.$api.tower.findTowerConfigListByProjectId(postData).then((d) => {
this.towerConfigList = d.data || []
if (d.data.length > 0) {
this.initSelDev(this.index)
} else {
this.runData.height = '0'
this.runData.range = '0'
this.runData.rotation = '0'
this.runData.load = '0'
this.runData.windSpeed = '0'
this.runData.leanAngleX = '0'
this.runData.leanAngleY = '0'
this.runData.loadPercent = '0'
this.runData.momentPercent = '0'
this.runData.windSpeedPercent = '0'
this.runData.warnings = null
this.devBottomInfo[0].data1 = 0
this.devBottomInfo[1].data1 = 0
this.devBottomInfo[2].data1 = 0
this.devBottomInfo[3].data1 = 0
this.devBottomInfo[4].data1 = 0
this.devBottomInfo[5].data1 = 0
this.devBottomInfo[0].data2 = 0
this.devBottomInfo[1].data2 = 0
this.devBottomInfo[2].data2 = 0
this.devBottomInfo[3].data2 = 0
this.devBottomInfo[4].data2 = 0
this.devBottomInfo[5].data2 = 0
this.towerConfigStat.a0 = 0
this.towerConfigStat.b0 = 0
this.towerConfigStat.c0 = 0
this.towerConfigStat.a1 = 0
this.towerConfigStat.b1 = 0
this.towerConfigStat.c1 = 0
this.warningData = []
this.selDev = { deviceName: '未找到设备', frontBrachium: 0, afterBrachium: 0 }
}
})
},
dic(ds, value) {
if (value.split(",").indexOf(ds) > -1) {
return true;
if (value.split(',').indexOf(ds) > -1) {
return true
} else {
return false
}
},
initSelDev(n) {
this.selDev = this.towerConfigList[this.index];
this.initLimitData();
this.initRunData();
this.selDev = this.towerConfigList[this.index]
this.initLimitData()
this.initRunData()
//
clearInterval(this.warningInterval);
this.warningInterval = setInterval(this.initRunData, 60000);
this.initCountData();
clearInterval(this.countvwInterval);
this.countvwInterval = setInterval(this.initCountData, 60000);
clearInterval(this.warningInterval)
this.warningInterval = setInterval(this.initRunData, 60000)
this.initCountData()
clearInterval(this.countvwInterval)
this.countvwInterval = setInterval(this.initCountData, 60000)
},
initCountData() {
this.$api.tower.findTowerStatisticsView(this.selDev.deviceSn).then((d) => {
this.towerConfigStat = d.data || [];
});
this.towerConfigStat = d.data || []
})
},
initLimitData() {
this.$api.tower.selectDevTowerDataLimitList(this.selDev.deviceSn).then((d) => {
this.devBottomInfo[0].data2 = d.data[0].rangeLimitStart;
this.devBottomInfo[1].data2 = d.data[0].windSpeedWarning;
this.devBottomInfo[2].data2 = d.data[0].loadWarning;
this.devBottomInfo[3].data2 = d.data[0].leanWarning;
this.devBottomInfo[4].data2 = d.data[0].rotationLimitStart;
this.devBottomInfo[5].data2 = d.data[0].highLimitWarning;
});
if (d.length > 0) {
this.devBottomInfo[0].data2 = d.data[0].rangeLimitStart
this.devBottomInfo[1].data2 = d.data[0].windSpeedWarning
this.devBottomInfo[2].data2 = d.data[0].loadWarning
this.devBottomInfo[3].data2 = d.data[0].leanWarning
this.devBottomInfo[4].data2 = d.data[0].rotationLimitStart
this.devBottomInfo[5].data2 = d.data[0].highLimitWarning
}
})
},
initRunData() {
this.$api.tower.selectDevTowerDataRunList(this.selDev.deviceSn).then((d) => {
if (d.data.length > 0) {
this.runData.height = d.data[0].height;
this.runData.range = d.data[0].range;
this.runData.rotation = d.data[0].rotation;
this.runData.load = d.data[0].load;
this.runData.windSpeed = d.data[0].windSpeed;
this.runData.leanAngleX = d.data[0].leanAngleX;
this.runData.leanAngleY = d.data[0].leanAngleY;
this.runData.loadPercent = d.data[0].loadPercent;
this.runData.momentPercent = d.data[0].momentPercent;
this.runData.windSpeedPercent = d.data[0].windSpeedPercent;
this.runData.warnings = d.data[0].warnings;
this.devBottomInfo[0].data1 = d.data[0].range;
this.devBottomInfo[1].data1 = d.data[0].windSpeed;
this.devBottomInfo[2].data1 = d.data[0].load;
this.devBottomInfo[3].data1 = d.data[0].leanAnglePercent
? d.data[0].leanAnglePercent
: 0;
this.devBottomInfo[4].data1 = d.data[0].rotation;
this.devBottomInfo[5].data1 = d.data[0].height;
this.runData.height = d.data[0].height
this.runData.range = d.data[0].range
this.runData.rotation = d.data[0].rotation
this.runData.load = d.data[0].load
this.runData.windSpeed = d.data[0].windSpeed
this.runData.leanAngleX = d.data[0].leanAngleX
this.runData.leanAngleY = d.data[0].leanAngleY
this.runData.loadPercent = d.data[0].loadPercent
this.runData.momentPercent = d.data[0].momentPercent
this.runData.windSpeedPercent = d.data[0].windSpeedPercent
this.runData.warnings = d.data[0].warnings
this.devBottomInfo[0].data1 = d.data[0].range
this.devBottomInfo[1].data1 = d.data[0].windSpeed
this.devBottomInfo[2].data1 = d.data[0].load
this.devBottomInfo[3].data1 = d.data[0].leanAnglePercent ? d.data[0].leanAnglePercent : 0
this.devBottomInfo[4].data1 = d.data[0].rotation
this.devBottomInfo[5].data1 = d.data[0].height
}
this.warningData = d.data || [];
});
this.warningData = d.data || []
})
},
calcTop(d) {
let tmp = 100 - (d.data2 * 100.0) / d.data1;
return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`;
let tmp = 100 - (d.data2 * 100.0) / d.data1
return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`
},
getRoudValue(a, b) {
if (a > 0) {
return (parseFloat(a / b) * 100).toFixed(1) + "%";
return (parseFloat(a / b) * 100).toFixed(1) + '%'
} else {
return "0%";
return '0%'
}
},
safeTowerLeft() {
this.direction = "left";
this.automaticRoll();
this.direction = 'left'
this.automaticRoll()
},
safeTowerRight() {
//
this.direction = "right";
this.automaticRoll();
this.direction = 'right'
this.automaticRoll()
},
automaticRoll() {
//
if (this.direction == "right") {
if (this.direction == 'right') {
if (this.index == this.towerConfigList.length - 1) {
this.index = 0;
this.index = 0
} else {
this.index = this.index + 1;
this.index = this.index + 1
}
} else {
if (this.index == 0) {
this.index = this.towerConfigList.length - 1;
this.index = this.towerConfigList.length - 1
} else {
this.index = this.index - 1;
this.index = this.index - 1
}
}
this.selDev = this.towerConfigList[this.index];
var height = $(".list-for").innerHeight();
$("#listMin").animate({ scrollTop: height * this.index + "px" });
this.selDev = this.towerConfigList[this.index]
var height = $('.list-for').innerHeight()
$('#listMin').animate({ scrollTop: height * this.index + 'px' })
},
onTowerCraneList(n) {
this.index = n;
this.selDev = this.towerConfigList[this.index];
this.initLimitData();
this.initCountData();
this.index = n
this.selDev = this.towerConfigList[this.index]
this.initLimitData()
this.initCountData()
//
this.direction = "right";
this.direction = 'right'
},
safeAutomaticRoll() {
var height = $(".safe-afoot-overflow").innerHeight();
console.log(height);
var height = $('.safe-afoot-overflow').innerHeight()
console.log(height)
if (this.forIndex == this.warningData.length) {
this.forIndex = 0;
this.forIndex = 0
} else {
this.forIndex = this.forIndex + 1;
this.forIndex = this.forIndex + 1
}
$("#afootOverflow").animate({ scrollTop: height * this.forIndex + "px" });
$('#afootOverflow').animate({ scrollTop: height * this.forIndex + 'px' })
},
warningListMinMouseover() {
clearInterval(this.warningInterval);
clearInterval(this.warningInterval)
},
warningListMinMouseout() {
this.warningInterval = setInterval(this.safeAutomaticRoll, 10000);
this.warningInterval = setInterval(this.safeAutomaticRoll, 10000)
},
renderDataItem2(o) {
let data = this.momentData;
let data = this.momentData
var color = '#20bc00'
var Xmax = Math.max.apply(null, data.dataX);
var Ymax = Math.max.apply(null, data.dataY);
let is1K = this.$dpi() == "1K";
let is2K = this.$dpi() == "2K";
var Xmax = Math.max.apply(null, data.dataX)
var Ymax = Math.max.apply(null, data.dataY)
let is1K = this.$dpi() == '1K'
let is2K = this.$dpi() == '2K'
let option = {
tooltip: {
position: "top",
position: 'top',
formatter: function (params) {
var fd = params.data[0];
var fd = params.data[0]
var dz = params.data[1]
res = '<div style="padding: 5px 10px;">' +
'<div style="padding-bottom: 5px;">幅度:<span>' + fd + '</span> m</div>' +
'<div>吊重:<span>' + dz + '</span> t</div>' +
res =
'<div style="padding: 5px 10px;">' +
'<div style="padding-bottom: 5px;">幅度:<span>' +
fd +
'</span> m</div>' +
'<div>吊重:<span>' +
dz +
'</span> t</div>' +
'</div>'
return res
},
},
grid: {
top: "20%",
right: "15%",
left: "4%",
bottom: "5%",
containLabel: true
top: '20%',
right: '15%',
left: '4%',
bottom: '5%',
containLabel: true,
},
xAxis: [
{
type: "value",
type: 'value',
name: '幅度/m',
max: 60,
nameTextStyle: {
color: "#c5d9fc",
fontSize: is1K ? 12 : is2K ? 14 : 24
color: '#c5d9fc',
fontSize: is1K ? 12 : is2K ? 14 : 24,
},
splitLine: {
//线
@ -637,32 +631,31 @@ export default {
axisLabel: {
//
textStyle: {
color: "#c5d9fc",
color: '#c5d9fc',
margin: 20,
fontSize: 30
fontSize: 30,
},
},
},
{
type: "category",
type: 'category',
boundaryGap: false,
position: "bottom",
position: 'bottom',
axisLine: {
//线x
show: true,
lineStyle: {
color: "#194e92",
type: "dashed",
color: '#194e92',
type: 'dashed',
},
},
axisLabel: {
show: false,
//
textStyle: {
color: "#c5d9fc",
color: '#c5d9fc',
margin: 20,
fontSize: 30
fontSize: 30,
},
},
data: data.dataX,
@ -672,11 +665,11 @@ export default {
{
name: '吊重/t',
nameTextStyle: {
color: "#c5d9fc",
fontSize: is1K ? 12 : is2K ? 14 : 24
color: '#c5d9fc',
fontSize: is1K ? 12 : is2K ? 14 : 24,
},
max: Ymax + 1,
type: "value",
type: 'value',
splitNumber: 7,
splitLine: {
show: false,
@ -685,15 +678,15 @@ export default {
//线x
show: true,
lineStyle: {
color: "#194e92",
type: "dashed",
color: '#194e92',
type: 'dashed',
},
},
axisLabel: {
margin: 20,
textStyle: {
color: "#c5d9fc",
fontSize: is1K ? 12 : is2K ? 14 : 18
color: '#c5d9fc',
fontSize: is1K ? 12 : is2K ? 14 : 18,
},
},
axisTick: { show: false },
@ -701,9 +694,10 @@ export default {
],
series: [
{
name: "吊重",
type: "effectScatter",
rippleEffect: { //
name: '吊重',
type: 'effectScatter',
rippleEffect: {
//
color: 'purple', // ,
brushType: 'fill', // ,线,'stroke' 'fill'
period: 2, //
@ -714,20 +708,19 @@ export default {
symbolSize: 15, //
itemStyle: {
color: color,
},
data: data.point,
},
{
type: "line",
symbol: "none",
type: 'line',
symbol: 'none',
smooth: true,
xAxisIndex: 1,
yAxisIndex: 0,
lineStyle: {
normal: {
width: 3,
color: "#5968db", // 线
color: '#5968db', // 线
},
},
areaStyle: {
@ -740,22 +733,22 @@ export default {
0,
1,
[
{ offset: 0, color: "rgb(25,43,115,0.9)" },
{ offset: 0.7, color: "rgba(25,43,115, 0)" },
{ offset: 0, color: 'rgb(25,43,115,0.9)' },
{ offset: 0.7, color: 'rgba(25,43,115, 0)' },
],
false
),
shadowColor: "rgba(25,43,115, 1)", //
shadowColor: 'rgba(25,43,115, 1)', //
},
},
data: data.dataY,
},
],
};
return option;
}
}
return option
},
},
}
</script>
@ -779,13 +772,13 @@ export default {
&.czz-number-img-blue {
.svg-icon {
fill: #1e90ff
fill: #1e90ff;
}
}
&.czz-number-img-green {
.svg-icon {
fill: ForestGreen
fill: ForestGreen;
}
}
}
@ -847,7 +840,6 @@ export default {
}
}
}
}
.dev-row2 {
@ -1062,7 +1054,6 @@ export default {
width: 50px;
height: 50px;
}
}
.p-label {
@ -1137,7 +1128,6 @@ export default {
margin-left: 4px;
}
}
}
}
}
@ -1175,7 +1165,6 @@ export default {
}
.safe-tower-content-data {
.safe-tower-icon {
transform: scale(1.5);
position: relative;
@ -1188,10 +1177,7 @@ export default {
padding: 30px 5px;
}
}
}
}
.analyse-map {
@ -1294,7 +1280,6 @@ export default {
width: 80px;
height: 80px;
}
}
.p-label {
@ -1369,7 +1354,6 @@ export default {
margin-left: 4px;
}
}
}
}
}
@ -1407,7 +1391,6 @@ export default {
}
.safe-tower-content-data {
.safe-tower-icon {
transform: scale(2.5);
position: relative;
@ -1420,7 +1403,6 @@ export default {
padding: 60px 5px;
}
}
}
}
@ -1506,6 +1488,5 @@ export default {
}
}
}
}
</style>

View File

@ -1,26 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="/favicon.ico">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
/>
<link rel="icon" href="/favicon.ico" />
<title>数字建安施工</title>
<script type="text/javascript"
src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=6zAD8CIavtzWnkGg0a7roush5maGMIPn"></script>
<link href="Engine/Widgets/widgets.css" rel="stylesheet" />
<script src="./gis/BIMGISEngine.js"></script>
<!--
<script src="Engine/Cesium.js"></script>
<script src="Engine/BIMGISEngine.js"></script>
<script src="Engine/BIMGISEngine.js"></script>
<script src="ServerEngine/BIMGISEngine.js"></script>
-->
<script
type="text/javascript"
src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=6zAD8CIavtzWnkGg0a7roush5maGMIPn"
></script>
<script src="./static/BIMGISEngine.js"></script>
<script src="./gis/config.js"></script>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<!--[if lt IE 11
]><script>
window.location.href = "/html/ie.html";
</script><!
[endif]-->
<style>
html,
body,
@ -54,7 +54,7 @@
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
border-top-color: #fff;
-webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite;
@ -72,7 +72,7 @@
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
border-top-color: #fff;
-webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
@ -89,7 +89,7 @@
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
border-top-color: #fff;
-moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
@ -97,7 +97,6 @@
animation: spin 1.5s linear infinite;
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
@ -126,13 +125,12 @@
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #7171C6;
background: #7171c6;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
@ -147,21 +145,20 @@
right: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.loaded #loader {
@ -188,8 +185,8 @@
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #FFF;
font-family: "Open Sans";
color: #fff;
font-size: 19px;
width: 100%;
text-align: center;
@ -204,13 +201,13 @@
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #FFF;
color: #fff;
opacity: 0.5;
}
</style>
</head>
</head>
<body>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader"></div>
@ -220,6 +217,5 @@
</div>
</div>
<script type="module" src="/src/main.js"></script>
</body>
</body>
</html>

View File

@ -21,6 +21,7 @@
"@rollup/plugin-commonjs": "^28.0.0",
"@vueup/vue-quill": "1.2.0",
"@vueuse/core": "10.11.0",
"ant-design-vue": "^4.2.6",
"axios": "0.28.1",
"bpmn-js": "^11.4.1",
"diagram-js": "^11.9.1",
@ -34,7 +35,9 @@
"jsencrypt": "3.3.2",
"nprogress": "0.2.0",
"pinia": "2.1.7",
"qs": "^6.14.0",
"ruoyi": "file:",
"spark-md5": "^3.0.2",
"vkbeautify": "^0.99.3",
"vue": "3.4.31",
"vue-cropper": "1.1.1",
@ -42,8 +45,10 @@
},
"devDependencies": {
"@vitejs/plugin-vue": "5.0.5",
"less": "^4.3.0",
"sass": "1.77.5",
"unplugin-auto-import": "0.17.6",
"unplugin-vue-components": "^28.5.0",
"unplugin-vue-setup-extend-plus": "1.0.1",
"vite": "5.3.2",
"vite-plugin-compression": "0.5.1",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Some files were not shown because too many files have changed in this diff Show More