# 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-row>
<el-col :span="8"> <el-col :span="8">
<div class="head-title-tab"> <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 == 2 ? 'head-nav active' : 'head-nav'" @click="doNav(2)"></div>
<div :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'" <div :class="(nav >= 300 && nav < 400) || nav == 3 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
style="position: relative;" class="has-submenu">
<div @click="doNav(3)"></div> <div @click="doNav(3)"></div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <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;"> <div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 301 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 301 ? 'active' : ''" class="sub-btn" @click="doNav(301)"></button>
@click="doNav(301)">安全隐患排查</button> <button type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn" @click="doNav(302)"></button>
<button type="button" :class="nav == 302 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 303 ? 'active' : ''" class="sub-btn" @click="doNav(303)"></button>
@click="doNav(302)">教育培训</button> <button type="button" :class="nav == 304 ? 'active' : ''" class="sub-btn" @click="doNav(304)"></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>
<div class="header-btn-list-padding menu-row1" style="text-align: left;"> <div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 305 ? 'active' : ''" class="sub-btn" @click="doNav(305)"></button>
@click="doNav(305)">高支模监测</button> <button type="button" :class="nav == 306 ? 'active' : ''" class="sub-btn" @click="doNav(306)"></button>
<button type="button" :class="nav == 306 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 307 ? 'active' : ''" class="sub-btn" @click="doNav(307)"></button>
@click="doNav(306)">配电箱监测</button> <button type="button" :class="nav == 308 ? 'active' : ''" class="sub-btn" @click="doNav(308)"></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>
<div class="header-btn-list-padding menu-row1" style="text-align: left;"> <div class="header-btn-list-padding menu-row1" style="text-align: left;">
<<<<<<< HEAD
<button type="button" :class="nav == 309 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 309 ? 'active' : ''" class="sub-btn"
@click="doNav(309)">视频监控</button> @click="doNav(309)">视频监控</button>
<button type="button" :class="nav == 310 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 310 ? 'active' : ''" class="sub-btn"
@click="doNav(310)">AI预警</button> @click="doNav(310)">AI预警</button>
<button type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 311 ? 'active' : ''" class="sub-btn"
@click="doNav(311)">标准化管理</button> @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> </div>
</div> </div>
<div :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'" <div :class="(nav >= 400 && nav < 500) || nav == 4 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
style="position: relative;" class="has-submenu">
<div @click="doNav(4)"></div> <div @click="doNav(4)"></div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <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;"> <div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 401 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 401 ? 'active' : ''" class="sub-btn" @click="doNav(401)"></button>
@click="doNav(401)">质量隐患排查</button> <button type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn" @click="doNav(402)"></button>
<button type="button" :class="nav == 402 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 403 ? 'active' : ''" class="sub-btn" @click="doNav(403)"></button>
@click="doNav(402)">材料取样复试</button> <button type="button" :class="nav == 404 ? 'active' : ''" class="sub-btn" @click="doNav(404)"></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>
<div class="header-btn-list-padding menu-row1" style="text-align: left;"> <div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 405 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 405 ? 'active' : ''" class="sub-btn" @click="doNav(405)"></button>
@click="doNav(405)">标准化管理</button> <button type="button" :class="nav == 406 ? 'active' : ''" class="sub-btn" @click="doNav(406)"></button>
<button type="button" :class="nav == 406 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 407 ? 'active' : ''" class="sub-btn" @click="doNav(407)"></button>
@click="doNav(406)">混泥土监测</button> <button type="button" :class="nav == 408 ? 'active' : ''" class="sub-btn" @click="doNav(408)"></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> </div>
</div> </div>
<div :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'" <div :class="(nav >= 500 && nav < 600) || nav == 5 ? 'head-nav active' : 'head-nav'" style="position: relative;" class="has-submenu">
style="position: relative;" class="has-submenu">
<div @click="doNav(5)"></div> <div @click="doNav(5)"></div>
<div class="header-btn-list"> <div class="header-btn-list">
<div class="header-btn-list-arrow"></div> <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;"> <div class="header-btn-list-padding menu-row1" style="text-align: left;">
<button type="button" :class="nav == 5 ? 'active' : ''" class="sub-btn" <button type="button" :class="nav == 5 ? 'active' : ''" class="sub-btn" @click="doNav(5)"></button>
@click="doNav(5)">进度管理</button> <button type="button" :class="nav == 501 ? 'active' : ''" class="sub-btn" @click="doNav(501)"></button>
<button type="button" :class="nav == 501 ? 'active' : ''" class="sub-btn"
@click="doNav(501)">延时摄影</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="8" class="header-center"> <el-col :span="8" class="header-center">
<img class="prj-logo" :src="selProject.setting.orgLogo" <img class="prj-logo" :src="selProject.setting.orgLogo" v-if="selProject && selProject.setting && selProject.setting.orgLogo" />
v-if="selProject && selProject.setting && selProject.setting.orgLogo" />
{{ selProject?.setting?.orgName || '数字建安施工管理平台' }} {{ selProject?.setting?.orgName || '数字建安施工管理平台' }}
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -99,31 +82,43 @@
<div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿</div> <div :class="nav == 6 ? 'head-nav active' : 'head-nav'" @click="doNav(6)">绿</div>
</div> </div>
<div class="header-title-user-info" style="display:inline-block;float:right;"> <div class="header-title-user-info" style="display:inline-block;float:right;">
<el-select v-model="selProjectId" popper-class="header-sel-project-pop" <el-select v-model="selProjectId" popper-class="header-sel-project-pop" style="width: 150px;margin-right: 20px;height:30px;line-height: 30px;" @change="doProjectSelect">
style="width: 150px;margin-right: 20px;height:30px;line-height: 30px;" <el-option v-for="it in projects" :key="it.id" :label="it.projectName" :value="it.id"></el-option>
@change="doProjectSelect">
<el-option v-for="it in projects" :key="it.id" :label="it.projectName"
:value="it.id"></el-option>
</el-select> </el-select>
<span class="command" @click="doLogout">{{ nickName }} <span class="command" @click="doLogout">
{{ nickName }}
<i class="el-icon-switch-button"></i> <i class="el-icon-switch-button"></i>
</span> </span>
</div> </div>
<i class="set-fullscreen set-font-size" <i class="set-fullscreen set-font-size" style="margin-left: 16px;position: absolute;top: 0px;right: 24px;" @click="toggleFullScreen">
style="margin-left: 16px;position: absolute;top: 0px;right: 24px;" @click="toggleFullScreen"> <svg
<svg class="icon" v-if="!isFullScreen" class="icon"
v-if="!isFullScreen"
style="width: 20px; vertical-align: middle;fill: currentColor;overflow: hidden;" 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 <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" 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>
<svg class="icon" v-else <svg
class="icon"
v-else
style="width: 24px; vertical-align: middle;fill: currentColor;overflow: hidden;" 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 <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" 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> </svg>
</i> </i>
</el-col> </el-col>
@ -144,103 +139,110 @@ export default {
}, },
computed: { computed: {
nickName() { nickName() {
return this.$store.getters.nickName; return this.$store.getters.nickName
}, },
curNav() { curNav() {
return this.$store.getters.nav; return this.$store.getters.nav
} },
}, },
watch: { watch: {
curNav(n, o) { curNav(n, o) {
this.nav = this.$store.getters.nav; this.nav = this.$store.getters.nav
} },
}, },
mounted() { mounted() {
window.xapp = this; window.xapp = this
this.$api.project.findMyProjectList().then(d => { this.$api.project.findMyProjectList().then((d) => {
this.projects = d.rows || []; this.projects = d.rows || []
if (this.projects.length > 0) { if (this.projects.length > 0) {
let id = localStorage.getItem("selProj") || this.projects[0].id let id = localStorage.getItem('selProj') || this.projects[0].id
this.selProjectId = +id; this.selProjectId = +id
this.doProjectSelect(); this.doProjectSelect()
} }
}); })
}, },
methods: { methods: {
toggleFullScreen() { toggleFullScreen() {
let el = document.body; let el = document.body
this.$toggleFullScreen(el); this.$toggleFullScreen(el)
setTimeout(() => { setTimeout(() => {
this.isFullScreen = document.fullscreenElement == el; this.isFullScreen = document.fullscreenElement == el
}, 400); }, 400)
}, },
doProjectSelect() { 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) { if (tmps.length > 0) {
this.$store.dispatch('SetSelProject', tmps[0]); this.$store.dispatch('SetSelProject', tmps[0])
this.selProject = tmps[0]; this.selProject = tmps[0]
} else { } else {
this.$store.dispatch('SetSelProject', null); this.$store.dispatch('SetSelProject', null)
this.selProject = null; this.selProject = null
} }
localStorage.setItem("selProj", this.selProjectId); localStorage.setItem('selProj', this.selProjectId)
}, },
doNav(n) { doNav(n) {
if (this.nav == n) { if (this.nav == n) {
return; return
} }
this.nav = n; this.nav = n
switch (n) { switch (n) {
case 1: case 1:
this.$router.push("/index"); this.$router.push('/index')
break; break
case 2: case 2:
this.$router.push("/detail"); this.$router.push('/detail')
break; break
case 3: case 3:
this.$router.push("/prjSafety"); this.$router.push('/prjSafety')
break; break
case 309: case 309:
this.$router.push("/videoMonitor"); this.$router.push('/videoMonitor')
break; break
case 301: case 301:
this.$router.push("/safetyCheck"); this.$router.push('/safetyCheck')
break; break
case 304: case 304:
this.$router.push("/towerCrane"); this.$router.push('/towerCrane')
break; break
case 306: case 306:
<<<<<<< HEAD
this.$router.push("/powerIot"); this.$router.push("/powerIot");
break; break;
case 310: case 310:
this.$router.push("/aiWarning"); this.$router.push("/aiWarning");
break; break;
=======
this.$router.push('/powerIot')
break
>>>>>>> 73fd57044f093b7a1819035a572efe8a70a36234
case 4: case 4:
this.$router.push("/prjQuality"); this.$router.push('/prjQuality')
break; break
case 5: case 5:
this.$router.push("/prjProgress"); this.$router.push('/prjProgress')
break; break
case 6: case 6:
this.$router.push("/greenCarbon"); this.$router.push('/greenCarbon')
break; break
case 501: case 501:
this.$router.push("/photography"); this.$router.push('/photography')
break; break
} }
}, },
doLogout() { doLogout() {
this.$confirm('确定注销并退出系统吗?', '提示', { this.$confirm('确定注销并退出系统吗?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning',
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = window.XDBSAPP;
}) })
}).catch(() => { }); .then(() => {
} this.$store.dispatch('LogOut').then(() => {
} location.href = window.XDBSAPP
})
})
.catch(() => {})
},
},
} }
</script> </script>
@ -307,10 +309,8 @@ export default {
} }
} }
} }
} }
} }
} }
} }
} }
@ -373,8 +373,6 @@ export default {
} }
@media (min-width: 2561px) { @media (min-width: 2561px) {
.header-center { .header-center {
font-size: 52px !important; font-size: 52px !important;
margin-top: 10px; margin-top: 10px;

File diff suppressed because it is too large Load Diff

View File

@ -18,16 +18,16 @@
> >
<path <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" 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" p-id="3341"
></path> />
</svg> </svg>
</div> </div>
<div class="equipment-list-data"> <div class="equipment-list-data">
<p style="font-size: 16px">塔机总数</p> <p style="font-size: 16px">塔机总数</p>
<div> <div>
<span>{{ towerTotalNum }}</span <span>{{ towerTotalNum }}</span>
><span style="font-size: 12px"></span> <span style="font-size: 12px"></span>
</div> </div>
</div> </div>
</div> </div>
@ -46,42 +46,28 @@
<path <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" 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" p-id="4373"
></path> />
</svg> </svg>
</div> </div>
<div class="equipment-list-data"> <div class="equipment-list-data">
<p style="font-size: 16px">监控总数</p> <p style="font-size: 16px">监控总数</p>
<div> <div>
<span class="fgreen">{{ towerTotalNum }}</span <span class="fgreen">{{ towerTotalNum }}</span>
><span style="font-size: 12px"></span> <span style="font-size: 12px"></span>
</div> </div>
</div> </div>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-row style="height: 160px; overflow: hidden"> <el-row style="height: 160px; overflow: hidden">
<staff-survey-chart <staff-survey-chart :height="200" :unit="'个'" :data="towerConfigView" :width="140"></staff-survey-chart>
:height="200"
:unit="'个'"
:data="towerConfigView"
:width="140"
></staff-survey-chart>
</el-row> </el-row>
<el-row style="height: calc(100% - 283px)"> <el-row style="height: calc(100% - 283px)">
<div <div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
class="warning-info-title"
style="padding-left: 20px; position: relative; z-index: 9"
>
<div :class="'active'">监控列表</div> <div :class="'active'">监控列表</div>
</div> </div>
<div class="drv-list scroll" id="listMin"> <div class="drv-list scroll" id="listMin">
<div <div v-for="(it, idx) in towerConfigList" :key="idx" class="drv-item list-for" :class="index == idx ? 'active' : ''" @click="onTowerCraneList(idx)">
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="item-content">
<div class="dev-row1"> <div class="dev-row1">
<div class="survey_content"> <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" 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" fill="#1195db"
p-id="5289" p-id="5289"
></path> />
</svg> </svg>
</div> </div>
</div> </div>
@ -118,9 +104,11 @@
</div> </div>
<div class="data-row"> <div class="data-row">
<span>设备状态:</span> <span>设备状态:</span>
<span :class="it.online == 2 ? 'is-offline' : 'is-online'">{{ <span :class="it.online == 2 ? 'is-offline' : 'is-online'">
{{
it.online == 2 ? "离线" : "在线" it.online == 2 ? "离线" : "在线"
}}</span> }}
</span>
</div> </div>
</div> </div>
</div> </div>
@ -166,10 +154,7 @@
<el-col :span="16"> <el-col :span="16">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<div <div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
class="warning-info-title"
style="padding-left: 20px; position: relative; z-index: 9"
>
<div :class="'active'">吊重次数({{ towerConfigStat.a0 }})</div> <div :class="'active'">吊重次数({{ towerConfigStat.a0 }})</div>
<div class="title-bg"></div> <div class="title-bg"></div>
</div> </div>
@ -186,10 +171,7 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div <div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
class="warning-info-title"
style="padding-left: 20px; position: relative; z-index: 9"
>
<div :class="'active'">超载次数({{ towerConfigStat.b0 }})</div> <div :class="'active'">超载次数({{ towerConfigStat.b0 }})</div>
<div class="title-bg"></div> <div class="title-bg"></div>
</div> </div>
@ -206,36 +188,24 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div <div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
class="warning-info-title" <div :class="'active'">超载率({{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }})</div>
style="padding-left: 20px; position: relative; z-index: 9"
>
<div :class="'active'">
超载率({{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }})
</div>
<div class="title-bg"></div> <div class="title-bg"></div>
</div> </div>
<div class="data-row2"> <div class="data-row2">
<div class="data-row2-col"> <div class="data-row2-col">
<div class="s-text">本月</div> <div class="s-text">本月</div>
<div class="s-number"> <div class="s-number">{{ getRoudValue(towerConfigStat.b1, towerConfigStat.a1) }}</div>
{{ getRoudValue(towerConfigStat.b1, towerConfigStat.a1) }}
</div>
</div> </div>
<div class="data-row2-col"> <div class="data-row2-col">
<div class="s-text">累计</div> <div class="s-text">累计</div>
<div class="s-number"> <div class="s-number">{{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }}</div>
{{ getRoudValue(towerConfigStat.b0, towerConfigStat.a0) }}
</div>
</div> </div>
</div> </div>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<div <div class="warning-info-title" style="padding-left: 20px; position: relative; z-index: 9">
class="warning-info-title"
style="padding-left: 20px; position: relative; z-index: 9"
>
<div :class="'active'">告警次数(10)</div> <div :class="'active'">告警次数(10)</div>
<div class="title-bg"></div> <div class="title-bg"></div>
</div> </div>
@ -296,32 +266,16 @@
<div class="analyse-equipment">塔机监测</div> <div class="analyse-equipment">塔机监测</div>
</div> </div>
<div class="afoot-content safe-afoot-content"> <div class="afoot-content safe-afoot-content">
<div <div class="afoot-overflow safe-afoot-overflow" id="afootOverflow">
class="afoot-overflow safe-afoot-overflow" <div v-if="warningData.length == 0" class="not-data"></div>
id="afootOverflow"
>
<div v-if="warningData.length == 0" class="not-data">
暂无预警数据
</div>
<div <div v-if="warningData.length > 0" class="quality-table special-table scroll" style="height: 180px;padding:0px;">
v-if="warningData.length > 0" <el-table :data="warningData" class="mytable" style="width: 100%;background: transparent;" height="265" ref="fbsubordinateUnit">
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 prop="createTime" label="发送时间" width="160"></el-table-column>
<el-table-column label="预警类型"> <el-table-column label="预警类型">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="tag-group"> <div class="tag-group">
<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>
v-for="item in dicts"
v-if="dic(item.dictValue,scope.row.warnings)"
type="danger"
effect="dark">
{{ item.dictLabel }}
</el-tag>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -335,10 +289,7 @@
<div class="analyse-text">力矩曲线</div> <div class="analyse-text">力矩曲线</div>
</div> </div>
<div class="safe-moment"> <div class="safe-moment">
<safe-curve-chart <safe-curve-chart :height="260" :momentdata="momentData"></safe-curve-chart>
:height="260"
:momentdata="momentData"
></safe-curve-chart>
</div> </div>
</div> </div>
</div> </div>
@ -346,12 +297,7 @@
</el-row> </el-row>
<el-row class="dev-info-list"> <el-row class="dev-info-list">
<el-col <el-col :span="4" class="dev-info-item" v-for="(it, idx) in devBottomInfo" :key="idx">
:span="4"
class="dev-info-item"
v-for="(it, idx) in devBottomInfo"
:key="idx"
>
<div class="info-item-content"> <div class="info-item-content">
<div class="row-1"> <div class="row-1">
<span class="sp-title">{{ it.title }}</span> <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" 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" fill="#363636"
p-id="11358" p-id="11358"
></path> />
</svg> </svg>
<svg <svg
v-if="idx == 1" v-if="idx == 1"
@ -394,7 +340,7 @@
<path <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" 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" p-id="6962"
></path> />
</svg> </svg>
<svg <svg
v-if="idx == 2" 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" 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" fill="#666666"
p-id="7868" p-id="7868"
></path> />
</svg> </svg>
<svg <svg
v-if="idx == 3" v-if="idx == 3"
@ -435,7 +381,7 @@
<path <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" 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" p-id="8743"
></path> />
</svg> </svg>
<svg <svg
v-if="idx == 4" v-if="idx == 4"
@ -452,16 +398,12 @@
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
p-id="9822" p-id="9822"
> >
<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" />
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 <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" 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" fill="#666666"
p-id="9824" p-id="9824"
></path> />
</svg> </svg>
<svg <svg
v-if="idx == 5" 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" 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" fill="#272636"
p-id="10418" p-id="10418"
></path> />
</svg> </svg>
</div> </div>
<div class="row-scale"> <div class="row-scale">
@ -490,12 +432,7 @@
<div v-for="i in 10" :key="i" class="scale-item"></div> <div v-for="i in 10" :key="i" class="scale-item"></div>
</div> </div>
<span class="sp-data1 sp-data sp-sc">报警:{{ it.data1 }}</span> <span class="sp-data1 sp-data sp-sc">报警:{{ it.data1 }}</span>
<span <span class="sp-data2 sp-data sp-sc" v-if="it.data2 >= 5" :style="calcTop(it)">:{{ it.data2 }}</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> <span class="sp-sc2 sp-sc">{{ it.scale2 }}</span>
</div> </div>
</div> </div>
@ -509,16 +446,16 @@
</template> </template>
<script> <script>
import "@/components/module/module-one-2-1"; import '@/components/module/module-one-2-1'
import "@/components/module/module-one-3-1"; import '@/components/module/module-one-3-1'
import "@/components/staff-survey-chart"; import '@/components/staff-survey-chart'
import "@/components/tower-crane-value-1"; import '@/components/tower-crane-value-1'
import "@/components/tower-crane-value-2"; import '@/components/tower-crane-value-2'
import "@/components/safe-curve-chart"; import '@/components/safe-curve-chart'
import debounce from "lodash.debounce"; import debounce from 'lodash.debounce'
export default { export default {
// //
name: "JhbigscreenTowerCrane", name: 'JhbigscreenTowerCrane',
data() { data() {
return { return {
index: 0, index: 0,
@ -526,29 +463,29 @@ export default {
towerConfigList: [], towerConfigList: [],
towerConfigStat: { a0: 0, b0: 0, c0: 0, a1: 0, b1: 0, c1: 0 }, towerConfigStat: { a0: 0, b0: 0, c0: 0, a1: 0, b1: 0, c1: 0 },
runData: { runData: {
height: "0", height: '0',
range: "0", range: '0',
rotation: "0", rotation: '0',
load: "0", load: '0',
windSpeed: "0", windSpeed: '0',
leanAngleX: "0", leanAngleX: '0',
leanAngleY: "0", leanAngleY: '0',
loadPercent: "0", loadPercent: '0',
momentPercent: "0", momentPercent: '0',
windSpeedPercent: "0", windSpeedPercent: '0',
warnings: null, warnings: null,
}, },
selDev: {}, selDev: {},
devBottomInfo: [ 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", direction: 'right',
comName: "tower-crane-value-1", comName: 'tower-crane-value-1',
warningData: [], warningData: [],
momentData: {}, momentData: {},
forIndex: 0, forIndex: 0,
@ -559,242 +496,240 @@ export default {
prjs: [], prjs: [],
project: null, project: null,
dicts: [], dicts: [],
}; }
}, },
created() { created() {
this.$api.dict("device_tower_warning").then((d) => { this.$api.dict('device_tower_warning').then((d) => {
this.dicts = d || []; this.dicts = d || []
}); })
}, },
mounted() { mounted() {
this.momentData = JSON.parse( 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]}' '{"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( this.$bus.$on(
"projectChange", 'projectChange',
debounce((res) => { debounce((res) => {
this.project = res || this.$root.project; this.project = res || this.$root.project
this.dept = this.$root.dept || this.dept; this.dept = this.$root.dept || this.dept
this.prjs = this.$root.projects || this.prjs; this.prjs = this.$root.projects || this.prjs
this.index = 0; this.index = 0
this.initMe(); this.initMe()
}) })
); )
this.initMe(); this.initMe()
}, },
methods: { methods: {
initMe() { initMe() {
this.initTowerConfigView(); this.initTowerConfigView()
this.initTowerConfigList(); this.initTowerConfigList()
}, },
getProjectId(cb) { getProjectId(cb) {
let func = () => { let func = () => {
let prjId = this.project?.id || 0; let prjId = this.project?.id || 0
if (prjId == 0) { if (prjId == 0) {
if (!this.prjs || this.prjs.length == 0) { if (!this.prjs || this.prjs.length == 0) {
setTimeout(func, 100); setTimeout(func, 100)
} else { } else {
if (this.prjs.length > 1) { if (this.prjs.length > 1) {
cb && cb(this.prjs[1].id); cb && cb(this.prjs[1].id)
} else { } else {
cb(0); cb(0)
} }
} }
} else { } else {
cb && cb(prjId); cb && cb(prjId)
} }
}; }
func(); func()
}, },
initTowerConfigView() { initTowerConfigView() {
this.getProjectId((id) => { this.getProjectId((id) => {
this.$api.tower.findTowerConfigGroupOnline(null, id).then((d) => { this.$api.tower.findTowerConfigGroupOnline(null, id).then((d) => {
let list = []; let list = []
let total = 0; let total = 0
if (d.data && d.data.length > 0) { if (d.data && d.data.length > 0) {
d.data.forEach((datum) => { d.data.forEach((datum) => {
total += datum.total; total += datum.total
if (datum.online == 1) { if (datum.online == 1) {
list.push({ text: "在线数量", value: datum.total }); list.push({ text: '在线数量', value: datum.total })
if (d.data.length == 1) { if (d.data.length == 1) {
list.push({ text: "离线数量", value: 0 }); list.push({ text: '离线数量', value: 0 })
} }
} else { } else {
list.push({ text: "离线数量", value: datum.total }); list.push({ text: '离线数量', value: datum.total })
} }
}); })
} }
this.towerTotalNum = total; this.towerTotalNum = total
this.towerConfigView = list; this.towerConfigView = list
}); })
}); })
}, },
initTowerConfigList() { initTowerConfigList() {
this.getProjectId((id) => { this.getProjectId((id) => {
this.$api.tower.findTowerConfigListByProjectId(null, id).then((d) => { this.$api.tower.findTowerConfigListByProjectId(null, id).then((d) => {
this.towerConfigList = d.data || []; this.towerConfigList = d.data || []
if (d.data.length > 0) { if (d.data.length > 0) {
this.initSelDev(this.index); this.initSelDev(this.index)
}else{ } else {
this.runData.height = "0"; this.runData.height = '0'
this.runData.range = "0"; this.runData.range = '0'
this.runData.rotation = "0"; this.runData.rotation = '0'
this.runData.load = "0"; this.runData.load = '0'
this.runData.windSpeed = "0"; this.runData.windSpeed = '0'
this.runData.leanAngleX = "0"; this.runData.leanAngleX = '0'
this.runData.leanAngleY = "0"; this.runData.leanAngleY = '0'
this.runData.loadPercent = "0"; this.runData.loadPercent = '0'
this.runData.momentPercent = "0"; this.runData.momentPercent = '0'
this.runData.windSpeedPercent = "0"; this.runData.windSpeedPercent = '0'
this.runData.warnings = null; this.runData.warnings = null
this.devBottomInfo[0].data1 = 0; this.devBottomInfo[0].data1 = 0
this.devBottomInfo[1].data1 = 0; this.devBottomInfo[1].data1 = 0
this.devBottomInfo[2].data1 = 0; this.devBottomInfo[2].data1 = 0
this.devBottomInfo[3].data1 = 0; this.devBottomInfo[3].data1 = 0
this.devBottomInfo[4].data1 = 0; this.devBottomInfo[4].data1 = 0
this.devBottomInfo[5].data1 = 0; this.devBottomInfo[5].data1 = 0
this.devBottomInfo[0].data2 = 0; this.devBottomInfo[0].data2 = 0
this.devBottomInfo[1].data2 = 0; this.devBottomInfo[1].data2 = 0
this.devBottomInfo[2].data2 = 0; this.devBottomInfo[2].data2 = 0
this.devBottomInfo[3].data2 = 0; this.devBottomInfo[3].data2 = 0
this.devBottomInfo[4].data2 = 0; this.devBottomInfo[4].data2 = 0
this.devBottomInfo[5].data2 = 0; this.devBottomInfo[5].data2 = 0
this.towerConfigStat.a0 = 0; this.towerConfigStat.a0 = 0
this.towerConfigStat.b0 = 0; this.towerConfigStat.b0 = 0
this.towerConfigStat.c0 = 0; this.towerConfigStat.c0 = 0
this.towerConfigStat.a1 = 0; this.towerConfigStat.a1 = 0
this.towerConfigStat.b1 = 0; this.towerConfigStat.b1 = 0
this.towerConfigStat.c1 = 0; this.towerConfigStat.c1 = 0
this.warningData = []; this.warningData = []
this.selDev = {deviceName:"未找到设备",frontBrachium:0,afterBrachium:0}; this.selDev = { deviceName: '未找到设备', frontBrachium: 0, afterBrachium: 0 }
} }
}); })
}); })
}, },
initCountData() { initCountData() {
this.$api.tower.findTowerStatisticsView(this.selDev.deviceSn).then((d) => { this.$api.tower.findTowerStatisticsView(this.selDev.deviceSn).then((d) => {
this.towerConfigStat = d.data || []; this.towerConfigStat = d.data || []
}); })
}, },
initLimitData() { initLimitData() {
this.$api.tower.selectDevTowerDataLimitList(this.selDev.deviceSn).then((d) => { this.$api.tower.selectDevTowerDataLimitList(this.selDev.deviceSn).then((d) => {
this.devBottomInfo[0].data2 = d.data[0].rangeLimitStart; this.devBottomInfo[0].data2 = d.data.length > 0 ? d.data[0].rangeLimitStart : 0
this.devBottomInfo[1].data2 = d.data[0].windSpeedWarning; this.devBottomInfo[1].data2 = d.data.length > 0 ? d.data[0].windSpeedWarning : 0
this.devBottomInfo[2].data2 = d.data[0].loadWarning; this.devBottomInfo[2].data2 = d.data.length > 0 ? d.data[0].loadWarning : 0
this.devBottomInfo[3].data2 = d.data[0].leanWarning; this.devBottomInfo[3].data2 = d.data.length > 0 ? d.data[0].leanWarning : 0
this.devBottomInfo[4].data2 = d.data[0].rotationLimitStart; this.devBottomInfo[4].data2 = d.data.length > 0 ? d.data[0].rotationLimitStart : 0
this.devBottomInfo[5].data2 = d.data[0].highLimitWarning; this.devBottomInfo[5].data2 = d.data.length > 0 ? d.data[0].highLimitWarning : 0
}); })
}, },
initRunData() { initRunData() {
this.$api.tower.selectDevTowerDataRunList(this.selDev.deviceSn).then((d) => { this.$api.tower.selectDevTowerDataRunList(this.selDev.deviceSn).then((d) => {
if (d.data.length > 0) { if (d.data.length > 0) {
this.runData.height = d.data[0].height; this.runData.height = d.data[0].height
this.runData.range = d.data[0].range; this.runData.range = d.data[0].range
this.runData.rotation = d.data[0].rotation; this.runData.rotation = d.data[0].rotation
this.runData.load = d.data[0].load; this.runData.load = d.data[0].load
this.runData.windSpeed = d.data[0].windSpeed; this.runData.windSpeed = d.data[0].windSpeed
this.runData.leanAngleX = d.data[0].leanAngleX; this.runData.leanAngleX = d.data[0].leanAngleX
this.runData.leanAngleY = d.data[0].leanAngleY; this.runData.leanAngleY = d.data[0].leanAngleY
this.runData.loadPercent = d.data[0].loadPercent; this.runData.loadPercent = d.data[0].loadPercent
this.runData.momentPercent = d.data[0].momentPercent; this.runData.momentPercent = d.data[0].momentPercent
this.runData.windSpeedPercent = d.data[0].windSpeedPercent; this.runData.windSpeedPercent = d.data[0].windSpeedPercent
this.runData.warnings = d.data[0].warnings; this.runData.warnings = d.data[0].warnings
this.devBottomInfo[0].data1 = d.data[0].range; this.devBottomInfo[0].data1 = d.data[0].range
this.devBottomInfo[1].data1 = d.data[0].windSpeed; this.devBottomInfo[1].data1 = d.data[0].windSpeed
this.devBottomInfo[2].data1 = d.data[0].load; this.devBottomInfo[2].data1 = d.data[0].load
this.devBottomInfo[3].data1 = d.data[0].leanAnglePercent this.devBottomInfo[3].data1 = d.data[0].leanAnglePercent ? d.data[0].leanAnglePercent : 0
? d.data[0].leanAnglePercent this.devBottomInfo[4].data1 = d.data[0].rotation
: 0; this.devBottomInfo[5].data1 = d.data[0].height
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) { calcTop(d) {
let tmp = 100 - (d.data2 * 100.0) / d.data1; let tmp = 100 - (d.data2 * 100.0) / d.data1
return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`; return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`
}, },
getRoudValue(a, b) { getRoudValue(a, b) {
if (a > 0) { if (a > 0) {
return (parseFloat(a / b) * 100).toFixed(1) + "%"; return (parseFloat(a / b) * 100).toFixed(1) + '%'
} else { } else {
return "0%"; return '0%'
} }
}, },
safeTowerLeft() { safeTowerLeft() {
this.direction = "left"; this.direction = 'left'
this.automaticRoll(); this.automaticRoll()
}, },
safeTowerRight() { safeTowerRight() {
// //
this.direction = "right"; this.direction = 'right'
this.automaticRoll(); this.automaticRoll()
}, },
automaticRoll() { automaticRoll() {
// //
if (this.direction == "right") { if (this.direction == 'right') {
if (this.index == this.towerConfigList.length - 1) { if (this.index == this.towerConfigList.length - 1) {
this.index = 0; this.index = 0
} else { } else {
this.index = this.index + 1; this.index = this.index + 1
} }
} else { } else {
if (this.index == 0) { if (this.index == 0) {
this.index = this.towerConfigList.length - 1; this.index = this.towerConfigList.length - 1
} else { } else {
this.index = this.index - 1; this.index = this.index - 1
} }
} }
this.selDev = this.towerConfigList[this.index]; this.selDev = this.towerConfigList[this.index]
var height = $(".list-for").innerHeight(); var height = $('.list-for').innerHeight()
$("#listMin").animate({ scrollTop: height * this.index + "px" }); $('#listMin').animate({ scrollTop: height * this.index + 'px' })
}, },
initSelDev(n) { initSelDev(n) {
this.selDev = this.towerConfigList[this.index]; this.selDev = this.towerConfigList[this.index]
this.initLimitData(); this.initLimitData()
this.initRunData(); this.initRunData()
// //
clearInterval(this.warningInterval); clearInterval(this.warningInterval)
this.warningInterval = setInterval(this.initRunData, 60000); this.warningInterval = setInterval(this.initRunData, 60000)
this.initCountData(); this.initCountData()
clearInterval(this.countvwInterval); clearInterval(this.countvwInterval)
this.countvwInterval = setInterval(this.initCountData, 60000); this.countvwInterval = setInterval(this.initCountData, 60000)
}, },
onTowerCraneList(n) { onTowerCraneList(n) {
this.index = n; this.index = n
this.selDev = this.towerConfigList[this.index]; this.selDev = this.towerConfigList[this.index]
this.initLimitData(); this.initLimitData()
this.initCountData(); this.initCountData()
// //
this.direction = "right"; this.direction = 'right'
}, },
safeAutomaticRoll() { safeAutomaticRoll() {
var height = $(".safe-afoot-overflow").innerHeight(); var height = $('.safe-afoot-overflow').innerHeight()
console.log(height); console.log(height)
if (this.forIndex == this.warningData.length) { if (this.forIndex == this.warningData.length) {
this.forIndex = 0; this.forIndex = 0
} else { } 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() { warningListMinMouseover() {
clearInterval(this.warningInterval); clearInterval(this.warningInterval)
}, },
warningListMinMouseout() { warningListMinMouseout() {
this.warningInterval = setInterval(this.safeAutomaticRoll, 10000); this.warningInterval = setInterval(this.safeAutomaticRoll, 10000)
}, },
dic(ds,value){ dic(ds, value) {
if(value.split(",").indexOf(ds)>-1){ if (value.split(',').indexOf(ds) > -1) {
return true; return true
}else{ } else {
return false return false
} }
}
}, },
}; },
}
</script> </script>
<style lang="less"> <style lang="less">
.project-tower-crane { .project-tower-crane {
@ -889,12 +824,7 @@ export default {
.title-bg { .title-bg {
background: rgb(2, 0, 36); background: rgb(2, 0, 36);
background: linear-gradient( 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%);
185deg,
rgba(2, 0, 36, 0.2) 0%,
rgba(9, 9, 121, 0.06) 48%,
rgba(0, 212, 255, 0.5) 100%
);
position: absolute; position: absolute;
width: 60%; width: 60%;
height: 20px; height: 20px;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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