dev
姜玉琦 2024-08-09 02:09:22 +08:00
parent 35bb45245d
commit 2cbef1c5c5
3 changed files with 224 additions and 104 deletions

View File

@ -0,0 +1,30 @@
import request from '@/utils/request'
// 查询塔基配置列表
const findtowerConfigGroupOnline=(deptId, projectId)=> {
return request({
url: `bgscreen/tower/findtowerConfigGroupOnline?deptId=${deptId||0}&projectId=${projectId||0}`,
method: 'get'
})
}
// 查询塔基配置列表
const findtowerConfigListByProjectId=(deptId, projectId)=> {
return request({
url: `bgscreen/tower/findtowerConfigListByProjectId?deptId=${deptId||0}&projectId=${projectId||0}`,
method: 'get'
})
}
// 查询塔基运行数据
const findtowerStatisticsView=(deviceSn)=> {
return request({
url: `bgscreen/tower/findtowerStatisticsView?deviceSn=${deviceSn}`,
method: 'get'
})
}
export default{
findtowerConfigGroupOnline,
findtowerConfigListByProjectId,
findtowerStatisticsView
}

View File

@ -25,6 +25,7 @@ import gzDict from './gzaiBox/dict'
import plan from './plan/index'
import periodical from './periodical/index'
import engin from './engin'
import tower from './device/tower/index'
import {axios,download} from '@/utils/request'
export default {
project,
@ -55,5 +56,6 @@ export default {
downFile:download,
engin,
gzAiBoxVideo,
gzDict
gzDict,
tower
}

View File

@ -17,7 +17,7 @@
</div>
<div class="equipment-list-data">
<p style="font-size: 16px;">塔机总数</p>
<div><span>3</span><span style="font-size: 12px;"></span></div>
<div><span>{{towerTotalNum}}</span><span style="font-size: 12px;"></span></div>
</div>
</div>
</el-col>
@ -33,20 +33,20 @@
</div>
<div class="equipment-list-data">
<p style="font-size: 16px;">监控总数</p>
<div><span class="fgreen">3</span><span style="font-size: 12px;"></span></div>
<div><span class="fgreen">{{towerTotalNum}}</span><span style="font-size: 12px;"></span></div>
</div>
</div>
</el-col>
</el-row>
<el-row style="height:160px;overflow: hidden;">
<staff-survey-chart :height="200" :unit="'个'" :data="data1" :width="140"></staff-survey-chart>
<staff-survey-chart :height="200" :unit="'个'" :data="towerConfigView" :width="140"></staff-survey-chart>
</el-row>
<el-row style="height:calc(100% - 283px);">
<div class="warning-info-title" style="padding-left: 20px;position: relative;z-index: 9;">
<div :class="'active'">监控列表</div>
</div>
<div class="drv-list scroll" id="listMin">
<div v-for="(it, idx) in devList" :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)">
<div class="item-content">
<div class="dev-row1">
@ -65,11 +65,15 @@
<div class="dev-row1-col2">
<div class="data-row">
<span>设备名称:</span>
<span>{{ it.name }}</span>
<span>{{ it.deviceName }}</span>
</div>
<div class="data-row">
<span>总包单位:</span>
<span>{{ it.deptName }}</span>
</div>
<div class="data-row">
<span>设备状态:</span>
<span :class="it.state == 0 ? 'is-offline' : 'is-online'">{{ it.state == 0 ? '离线' : '在线'
<span :class="it.online == 2 ? 'is-offline' : 'is-online'">{{ it.online == 2 ? '离线' : '在线'
}}</span>
</div>
</div>
@ -79,13 +83,13 @@
<div class="dev-row2-col">
<div class="data-row">
<span>司机:</span>
<span>{{ it.driver }}</span>
<span>{{ it.driName }}</span>
</div>
</div>
<div class="dev-row2-col">
<div class="data-row">
<span>电话:</span>
<span class="sp-tel">{{ it.driverTel }}</span>
<span class="sp-tel">{{ it.driPhone }}</span>
</div>
</div>
</div>
@ -94,13 +98,13 @@
<div class="dev-row2-col">
<div class="data-row">
<span>安全员:</span>
<span>{{ it.safer }}</span>
<span>{{ it.safName }}</span>
</div>
</div>
<div class="dev-row2-col">
<div class="data-row">
<span>电话:</span>
<span class="sp-tel">{{ it.saferTel }}</span>
<span class="sp-tel">{{ it.safPhone }}</span>
</div>
</div>
</div>
@ -332,14 +336,15 @@ import '@/components/staff-survey-chart'
import '@/components/tower-crane-value-1'
import '@/components/tower-crane-value-2'
import '@/components/safe-curve-chart'
import debounce from "lodash.debounce";
export default {
//
name: 'JhbigscreenTowerCrane',
data() {
return {
index: 0,
data1: [],
devList: [],
towerConfigView: [],
towerConfigList: [],
selDev: {},
devBottomInfo: [],
direction: 'right',
@ -348,12 +353,20 @@ export default {
momentData: {},
forIndex:0,
warningInterval:undefined,
towerTotalNum:0,
dept: null,
prjs: [],
project: null,
projectLvlDict: [],
};
},
mounted() {
//
this.warningInterval = setInterval(this.safeAutomaticRoll,10000);
created() {
this.$api.dict("project_level").then((d) => {
this.projectLvlDict = d || [];
});
this.initMe();
},
mounted() {
this.momentData = JSON.parse('{"point":[[null,null]],"dataX":[15,20,25,30,35,40,45,50,55,60],"dataY":[3,3,3,3,2.59,2.2,1.9,1.66,1.46,1.3]}');
this.devBottomInfo = [{ title: "幅度", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
{ title: "风速", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
@ -361,95 +374,170 @@ export default {
{ title: "倾角", data1: 59, data2: 5, scale1: '0', scale2: '0m' },
{ title: "转角", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
{ title: "高度", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
];
this.data1 = [
{ text: "在线数量", value: 1 },
{ text: "离线数量", value: 2 },
];
this.devList = [{
name: "xxxxxx1#塔机",
state: 0,
driver: "张大三,张小山",
driverTel: "1338899090,133889902",
safer: "张九",
saferTel: "13388664433",
buttress: "21.4/35.9",
power: "80",
selected: true,
postArmLength: 10,
downHeight: 10,
torqueData: 10,
overload: 10,
enterTime: "2024-02-02 14:00",
ampData: 10,//
foreArmLength: 0,//
heightData: 0,//
angleData: 0,//
}, {
name: "xxxxxx2#塔机",
state: 0,
buttress: "21.4/35.9",
power: "80",
driver: "张大三,张小山",
driverTel: "1338899090,133889902",
safer: "张九",
saferTel: "13388664433",
selected: false,
postArmLength: 20,
downHeight: 20,
torqueData: 20,
overload: 20,
enterTime: "2024-02-02 14:00",
ampData: 20,//
foreArmLength: 20,//
heightData: 20,//
angleData: 20,//
}, {
name: "xxxxxx3#塔机",
state: 1,
buttress: "21.4/35.9",
power: "80",
driver: "张大三,张小山",
driverTel: "1338899090,133889902",
safer: "张九",
saferTel: "13388664433",
selected: false,
postArmLength: 30,
downHeight: 30,
torqueData: 30,
overload: 30,
enterTime: "2024-02-02 14:00",
ampData: 30,//
foreArmLength: 30,//
heightData: 30,//
angleData: 30,//
}];
this.selDev = this.devList[0];
this.warningData = [{
warn_name: "预警A",
images: ['images/831.jpg'],
towerName: 'XXXX塔机',
warn_context: '告警内容',
warn_time: '24-02-02 14:00',
project_abbreviation: 'xxx项目'
}, {
warn_name: "预警A",
images: ['images/831.jpg'],
towerName: 'XXXX塔机',
warn_context: '告警内容',
warn_time: '24-02-02 14:00',
project_abbreviation: 'xxx项目'
}, {
warn_name: "预警A",
images: ['images/831.jpg'],
towerName: 'XXXX塔机',
warn_context: '告警内容',
warn_time: '24-02-02 14:00',
project_abbreviation: 'xxx项目'
},]
];
this.$bus.$on(
"projectChange",
debounce((res) => {
this.project = res||this.$root.project;
this.dept=this.$root.dept||this.dept;
this.prjs= this.$root.projects||this.prjs;
this.initMe();
})
);
if (this.$root.hasInitHeader) {
this.initMe();
}
},
// mounted() {
// //
// this.warningInterval = setInterval(this.safeAutomaticRoll,10000);
// this.momentData = JSON.parse('{"point":[[null,null]],"dataX":[15,20,25,30,35,40,45,50,55,60],"dataY":[3,3,3,3,2.59,2.2,1.9,1.66,1.46,1.3]}');
// this.devBottomInfo = [{ title: "", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
// { title: "", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
// { title: "", data1: 13.8, data2: 10.8, scale1: '0', scale2: '0m' },
// { title: "", data1: 59, data2: 5, scale1: '0', scale2: '0m' },
// { title: "", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
// { title: "", data1: 59, data2: 58, scale1: '0', scale2: '0m' },
// ];
// this.devList = [{
// name: "xxxxxx1#",
// state: 0,
// driver: "",
// driverTel: "1338899090,133889902",
// safer: "",
// saferTel: "13388664433",
// buttress: "21.4/35.9",
// power: "80",
// selected: true,
// postArmLength: 10,
// downHeight: 10,
// torqueData: 10,
// overload: 10,
// enterTime: "2024-02-02 14:00",
// ampData: 10,//
// foreArmLength: 0,//
// heightData: 0,//
// angleData: 0,//
// }, {
// name: "xxxxxx2#",
// state: 0,
// buttress: "21.4/35.9",
// power: "80",
// driver: "",
// driverTel: "1338899090,133889902",
// safer: "",
// saferTel: "13388664433",
// selected: false,
// postArmLength: 20,
// downHeight: 20,
// torqueData: 20,
// overload: 20,
// enterTime: "2024-02-02 14:00",
// ampData: 20,//
// foreArmLength: 20,//
// heightData: 20,//
// angleData: 20,//
// }, {
// name: "xxxxxx3#",
// state: 1,
// buttress: "21.4/35.9",
// power: "80",
// driver: "",
// driverTel: "1338899090,133889902",
// safer: "",
// saferTel: "13388664433",
// selected: false,
// postArmLength: 30,
// downHeight: 30,
// torqueData: 30,
// overload: 30,
// enterTime: "2024-02-02 14:00",
// ampData: 30,//
// foreArmLength: 30,//
// heightData: 30,//
// angleData: 30,//
// }];
// this.selDev = this.devList[0];
// this.warningData = [{
// warn_name: "A",
// images: ['images/831.jpg'],
// towerName: 'XXXX',
// warn_context: '',
// warn_time: '24-02-02 14:00',
// project_abbreviation: 'xxx'
// }, {
// warn_name: "A",
// images: ['images/831.jpg'],
// towerName: 'XXXX',
// warn_context: '',
// warn_time: '24-02-02 14:00',
// project_abbreviation: 'xxx'
// }, {
// warn_name: "A",
// images: ['images/831.jpg'],
// towerName: 'XXXX',
// warn_context: '',
// warn_time: '24-02-02 14:00',
// project_abbreviation: 'xxx'
// },]
// },
methods: {
initMe(){
this.initTowerConfigView();
this.initTowerConfigList();
},
getProjectId(cb) {
let func = () => {
let prjId = this.project?.id || 0;
if (prjId == 0) {
if (!this.prjs || this.prjs.length == 0) {
setTimeout(func, 100);
} else {
if (this.prjs.length > 1) {
cb && cb(this.prjs[1].id);
} else {
cb(0);
}
}
} else {
cb && cb(prjId);
}
};
func();
},
initTowerConfigView(){
this.getProjectId((id) => {
this.$api.tower.findtowerConfigGroupOnline(null,id).then((d) => {
let list = [];
let total = 0;
if(d.data && d.data.length>0){
d.data.forEach(datum => {
total += datum.total;
if(datum.online==1){
list.push({ text: "在线数量", value: datum.total });
}else{
list.push({ text: "离线数量", value: datum.total });
}
});
}
this.towerTotalNum = total;
this.towerConfigView = list;
});
});
},
initTowerConfigList(){
this.getProjectId((id) => {
this.$api.tower.findtowerConfigListByProjectId(null,id).then((d) => {
this.towerConfigList = d.data||[];
});
});
},
initCountData(){
this.$api.tower.findtowerStatisticsView(this.selDev.deviceSn).then((d) => {
//this.towerConfigList = d.data||[];
});
},
calcTop(d) {
let tmp = 100 - (d.data2 * 100.0 / d.data1);
return `top:calc(20px + ${tmp > 78 ? 78 : tmp}%)`;