diff --git a/src/api/device/tower/index.js b/src/api/device/tower/index.js new file mode 100644 index 0000000..d2003d3 --- /dev/null +++ b/src/api/device/tower/index.js @@ -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 +} \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js index e76138e..61c1ebe 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -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 } \ No newline at end of file diff --git a/src/pages/safe/towerCrane.vue b/src/pages/safe/towerCrane.vue index 5d44f7d..ea56c96 100644 --- a/src/pages/safe/towerCrane.vue +++ b/src/pages/safe/towerCrane.vue @@ -17,7 +17,7 @@

塔机总数

-
3
+
{{towerTotalNum}}
@@ -33,20 +33,20 @@

监控总数

-
3
+
{{towerTotalNum}}
- +
监控列表
-
@@ -65,11 +65,15 @@
设备名称: - {{ it.name }} + {{ it.deviceName }} +
+
+ 总包单位: + {{ it.deptName }}
设备状态: - {{ it.state == 0 ? '离线' : '在线' + {{ it.online == 2 ? '离线' : '在线' }}
@@ -79,13 +83,13 @@
司机: - {{ it.driver }} + {{ it.driName }}
电话: - {{ it.driverTel }} + {{ it.driPhone }}
@@ -94,13 +98,13 @@
安全员: - {{ it.safer }} + {{ it.safName }}
电话: - {{ it.saferTel }} + {{ it.safPhone }}
@@ -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}%)`;