fix:0915会议123456

This commit is contained in:
shijing 2023-09-15 17:07:16 +08:00
parent ed9698aeea
commit 2d2e9c9f74
9 changed files with 375 additions and 280 deletions

BIN
public/img/elec_flow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -10,9 +10,8 @@
</div>
</template>
<script>
import tracking from './tracking/tracking-min.js';
import './tracking/data/face-min.js';
import tracking from './/tracking/tracking-min.js';
import './/tracking/data/face-min.js';
export default {
data() {
return {
@ -77,7 +76,6 @@
this.screenshotCanvas = document.getElementById('screenshotCanvas');
let canvas = document.getElementById('canvas');
let context = canvas.getContext('2d');
// tracker
let tracker = new window.tracking.ObjectTracker('face');
tracker.setInitialScale(4);
@ -119,7 +117,6 @@
let img = base64Img.split(',')[1];
let tolerance = parseFloat(localStorage.getItem('tolerance'));
let imgData = {base64: img,tolerance};
this.$API.auth.login_face.req(imgData).then((res) => {
// debugger;
if (res.username) {

View File

@ -565,6 +565,16 @@ const routes = [
},
"component": "ungrouped/electric_hour"
},
{
"name": "energyPicture",
"path": "/ungrouped/energyPicture",
"meta": {
"title": "能源流向",
"icon": "el-icon-grid",
"perms": ["enm"]
},
"component": "ungrouped/energyPicture"
},
{
"name": "electricDay",
"path": "/ungrouped/electricDay",

View File

@ -232,12 +232,12 @@ export default {
path:"ws://49.232.14.174:2226/ws/my/?token=",
ws:null,
mgroupValues:{
电石渣:{total:0,elec:0},
原料磨:{total:0,elec:0},
煤磨:{total:0,elec:0},
回转窑:{total:0,elec:0},
水泥磨:{total:0,elec:0},
水泥包装:{total:0,elec:0}
电石渣:{total:'0',elec:'0'},
原料磨:{total:'0',elec:'0'},
煤磨:{total:'0',elec:'0'},
回转窑:{total:'0',elec:'0'},
水泥磨:{total:'0',elec:'0'},
水泥包装:{total:'0',elec:'0'}
},
}
},
@ -256,26 +256,26 @@ export default {
this.$nextTick(() => {
this.$API.enm.enstat.req({type:'month_s',month_s:month,year_s:year,page:0}).then((res1) => {
console.log('工段数据:',res1)
debugger
// debugger
res1.forEach(item=>{
if(item.mgroup_name=='电石渣'){
that.mgroupValues.电石渣.total = item.total_production;
that.mgroupValues.电石渣.elec=item.elec_consume_unit;
that.mgroupValues.电石渣.total = item.total_production+'';
that.mgroupValues.电石渣.elec=item.elec_consume_unit+'';
}else if(item.mgroup_name=='原料磨'){
that.mgroupValues.原料磨.total=item.total_production;
that.mgroupValues.原料磨.elec=item.elec_consume_unit;
that.mgroupValues.原料磨.total=item.total_production+'';
that.mgroupValues.原料磨.elec=item.elec_consume_unit+'';
}else if(item.mgroup_name=='煤磨'){
that.mgroupValues.煤磨.total=item.total_production;
that.mgroupValues.煤磨.elec=item.elec_consume_unit;
that.mgroupValues.煤磨.total=item.total_production+'';
that.mgroupValues.煤磨.elec=item.elec_consume_unit+'';
}else if(item.mgroup_name=='回转窑'){
that.mgroupValues.回转窑.total=item.total_production;
that.mgroupValues.回转窑.elec=item.elec_consume_unit;
that.mgroupValues.回转窑.total=item.total_production+'';
that.mgroupValues.回转窑.elec=item.elec_consume_unit+'';
}else if(item.mgroup_name=='水泥磨'){
that.mgroupValues.水泥磨.total=item.total_production;
that.mgroupValues.水泥磨.elec=item.elec_consume_unit;
that.mgroupValues.水泥磨.total=item.total_production+'';
that.mgroupValues.水泥磨.elec=item.elec_consume_unit+'';
}else if(item.mgroup_name=='水泥包装'){
that.mgroupValues.水泥包装.total=item.total_production;
that.mgroupValues.水泥包装.elec=item.elec_consume_unit;
that.mgroupValues.水泥包装.total=item.total_production+'';
that.mgroupValues.水泥包装.elec=item.elec_consume_unit+'';
}
})
})
@ -730,7 +730,6 @@ export default {
control_main.isVertical = false
control_main.top = '-40%';
control_main.left = '-20%';
let meshList = [];
advancedTexture.addControl(control_main);
var button_main = BABYLON_GUI.Button.CreateSimpleButton("button_main", "主视角");
@ -753,6 +752,7 @@ export default {
BABYLON.Animation.CreateAndStartAnimation('at61', camera, 'target', 45, 200, camera.target, that.initialTarget, 0, ease);
}
})
// mesh
const mesh_rect = new BABYLON_GUI.Rectangle('mesh_rect');
mesh_rect.width = "100px";
@ -774,8 +774,8 @@ export default {
// console.table(scene.meshes)
// ------ /[\u4E00-\u9FA5]+/g.test(str)
for (let key in that.sectionNames) {
var value = that.sectionNames[key];
var mesh = scene.getMeshByName(key);
const value = that.sectionNames[key];
const mesh = scene.getMeshByName(key);
if (mesh) {
//
const rect1 = new BABYLON_GUI.Rectangle(value + '_rect');
@ -785,18 +785,30 @@ export default {
rect1.color = "Orange";
rect1.thickness = 2;
rect1.background = "green";
rect1.isPointerBlocker = true; // 穿
advancedTexture.addControl(rect1);
var label = new BABYLON_GUI.TextBlock(value + '_label');
label.text = value;
label.color = 'white';
label.fontSize = '14px';
rect1.addControl(label);
rect1.linkWithMesh(mesh);
rect1.linkOffsetY = -30;
if(value=='电石渣'){
rect1.linkOffsetY = -200;
var line = new BABYLON_GUI.Line();
line.lineWidth = 4;
line.color = "Orange";
line.y1 = 10;
line.y2 = 15;
line.linkOffsetY = -15;
line.dash = [3, 3];
advancedTexture.addControl(line);
line.linkWithMesh(mesh);
let connectedControl = advancedTexture.getControlByName('电石渣_rect')
line.connectedControl = connectedControl;
// line.connectedControl = rect1;
// line.connectedControl = data_view;
}
rect1.onPointerDownObservable.add(() => {
@ -820,6 +832,8 @@ export default {
}
let dataViewName = rect1.name.split('_')[0] + '_data_view';
that.getMgroupChartData(dataViewName);
that.activeSectionName = dataViewName;
that.activeSection = 2;
let dataView = advancedTexture.getControlByName(dataViewName);
if (dataView) {
// //
@ -877,12 +891,14 @@ export default {
rc.fontSize = '16px';
rc.text = "单位产品电耗:";
}else if(j==1&&i==0){
rc.text = that.mgroupValues[value].total;
// rc.text = that.mgroupValues[value].total;
rc.text = "123";
rc.width = "80px";
rc.fontSize = '18px';
rc.color = "rgb(44,237,255)";
}else if(j==1&&i==1){
rc.text = that.mgroupValues[value].elec;
// rc.text = that.mgroupValues[value].total;
rc.text = "456";
rc.width = "80px";
rc.fontSize = '18px';
rc.color = "rgb(44,237,255)";
@ -910,15 +926,6 @@ export default {
data_view.linkOffsetY = -120;
if(value=='电石渣'){
data_view.linkOffsetY = -290;
var line = new BABYLON_GUI.Line();
line.lineWidth = 4;
line.color = "Orange";
line.y2 = 110;
line.linkOffsetY = -15;
line.dash = [3, 3];
advancedTexture.addControl(line);
line.linkWithMesh(mesh);
line.connectedControl = data_view;
}
}
}
@ -952,12 +959,44 @@ export default {
control_main.addControl(checkbox);
var header = new BABYLON_GUI.TextBlock();
header.text = "自动旋转";
header.width = "80px";
header.textHorizontalAlignment = BABYLON_GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
header.color = "white";
control_main.addControl(header);
// checkbox
var checkbox1 = new BABYLON_GUI.Checkbox();
checkbox1.width = "20px";
checkbox1.height = "20px";
checkbox1.isChecked = true;
checkbox1.marginLeft = '16px'
checkbox1.color = "green";
checkbox1.onIsCheckedChangedObservable.add(function (value) {
// debugger;
if (value) {
for (let key in that.sectionNames) {
let name = that.sectionNames[key] + '_data_view';
console.log(name)
let dataView = advancedTexture.getControlByName(name);
dataView.isVisible = true;
}
} else {
for (let key in that.sectionNames) {
let name = that.sectionNames[key] + '_data_view';
console.log(name)
let dataView = advancedTexture.getControlByName(name);
dataView.isVisible = false;
}
}
});
control_main.addControl(checkbox1);
var header1 = new BABYLON_GUI.TextBlock();
header1.text = "工段数据";
header1.width = "80px";
header1.textHorizontalAlignment = BABYLON_GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
header1.color = "white";
control_main.addControl(header1);
//
canvas.addEventListener('mousemove', (event) => {
@ -1048,32 +1087,32 @@ export default {
},
// getMgroupChartData(name){
// var that = this;
// let obj = {};
// obj.type = 'month_s';
// obj.start_time = that.start_time;
// obj.end_time = that.end_time;
// obj.mgroup__name=val;
// obj.page=0;
// this.$API.enm.enstat.req(obj).then((res) => {
// let list0 = res.sort(this.compare('month_s'));
// let list = list0.sort(this.compare('year_s'));
// let seriesData4 = [0,0,0,0,0,0],
// seriesData5 = [0,0,0,0,0,0],
// seriesData6 = [0,0,0,0,0,0];
// list.forEach(item=>{
// let index = that.arrMonth.indexOf(item.month_s);
// seriesData4[index] = Number(item.elec_consume_unit)
// seriesData5[index] = Number(item.total_production)
// seriesData6[index] = Number(item.run_rate)
// })
// that.seriesData4=seriesData4;
// that.seriesData5=seriesData5;
// that.seriesData6=seriesData6;
// that.initCharts1();
// })
// },
getMgroupChartData(name){
var that = this;
let obj = {};
obj.type = 'month_s';
obj.start_time = that.start_time;
obj.end_time = that.end_time;
obj.mgroup__name=name;
obj.page=0;
this.$API.enm.enstat.req(obj).then((res) => {
let list0 = res.sort(this.compare('month_s'));
let list = list0.sort(this.compare('year_s'));
let seriesData4 = [0,0,0,0,0,0],
seriesData5 = [0,0,0,0,0,0],
seriesData6 = [0,0,0,0,0,0];
list.forEach(item=>{
let index = that.arrMonth.indexOf(item.month_s);
seriesData4[index] = Number(item.elec_consume_unit)
seriesData5[index] = Number(item.total_production)
seriesData6[index] = Number(item.run_rate)
})
that.seriesData4=seriesData4;
that.seriesData5=seriesData5;
that.seriesData6=seriesData6;
that.initCharts1();
})
},
},
unmounted() {
this.close();

View File

@ -37,17 +37,16 @@
stripe
@resetQuery="resetQuery"
>
<el-table-column label="所属部门" prop="deptName" show-overflow-tooltip>
<el-table-column label="发生类型" prop="buy_date">
</el-table-column>
<el-table-column label="事件信息" prop="voice_msg" show-overflow-tooltip>
</el-table-column>
<el-table-column label="所属工段" prop="mgroupName">
<template #default="scope">
<span v-if="scope.row.enm_data">{{ scope.row.enm_data.mgroup_name }}</span>
</template>
</el-table-column>
<el-table-column label="所在班组" prop="teamName">
</el-table-column>
<el-table-column label="所在班次" prop="shiftName" show-overflow-tooltip>
</el-table-column>
<el-table-column label="发生时间" prop="production_date">
</el-table-column>
<el-table-column label="发生类型" prop="buy_date">
<el-table-column label="发生时间" prop="happen_time">
</el-table-column>
<el-table-column label="处理超时">
<template #default="scope">
@ -56,11 +55,13 @@
</template>
</el-table-column>
<el-table-column label="状态">
<template #default="scope">
<el-tag v-if="scope.row.mark" type="warning"></el-tag>
<el-tag v-else type="success" effect="plain"></el-tag>
</template>
</el-table-column>
<el-table-column label="处理人">
<template #default="scope">{{ scope.row.keeper_name }}</template>
</el-table-column>
<el-table-column label="备注" show-overflow-tooltip prop="memo">
<template #default="scope">{{ scope.row.handle_user }}</template>
</el-table-column>
<el-table-column label="操作" fixed="right" align="center" width="120px">
<template #default="scope">

View File

@ -170,14 +170,16 @@
</el-col>
<el-col>
<el-card header="报警" style="border-radius: 5px;box-shadow: none;">
<div class="itemsWrap" style="margin-bottom:10px;margin-left:10px">
<el-badge :value="warningNum" :max="99" class="item">
<div class="items" style="margin:0">
<el-badge :value="warningNum" :max="99" style="margin: 10px;">
<div class="items" style="margin:0;" @click="interEvent">
<div class="item-number">能耗超标报警</div>
</div>
</el-badge>
<el-badge :value="warningNum2" :max="99" style="margin: 10px;">
<div class="items" style="margin:0" @click="interEquipment">
<div class="item-number">设备检验</div>
</div>
</el-badge>
</el-card>
</el-col>
</el-row>
@ -197,6 +199,7 @@
yearData:[],
monthData:[],
warningNum:0,
warningNum2:0,
}
},
mounted() {
@ -273,11 +276,16 @@
console.log("socket已经关闭");
}
},
//
getWraningNum(){
let that = this;
that.$API.ecm.event.list.req({cates__code__in:'consume_exceed',is_handled:0,page:1}).then((res) => {
that.warningNum = res.count;
})
that.$API.em.equipment.list.req({tag:'near_check',type:20,page:1}).then((res) => {
debugger;
that.warningNum2 = res.count;
})
},
getYearData(){
let that = this;
@ -314,6 +322,12 @@
this.time = this.$TOOL.dateFormat(new Date(), 'hh:mm:ss')
this.day = this.$TOOL.dateFormat(new Date(), 'yyyy年MM月dd日')
},
interEvent(){
this.$router.replace({path:'/events'})
},
interEquipment(){
this.$router.replace({path:'/em/equipmentc'})
},
}
}

View File

@ -85,9 +85,7 @@
</el-table-column> -->
<el-table-column label="考勤推测">
<template #default="scope">
<span v-if="scope.row.type==10 || scope.row.type==20">
<el-tag :type="type_[scope.row.type].color">{{type_[scope.row.type].label}}</el-tag>
</span>
<span><el-tag :type="type_[scope.row.type].color">{{type_[scope.row.type].label}}</el-tag></span>
<span v-if="(scope.row.type==10 || scope.row.type==20)&&scope.row.exception_type!==null">-</span>
<span v-if="scope.row.exception_type==10" class="nomalState type1">在岗时间短</span>
<span v-if="scope.row.exception_type==20" class="nomalState type2">在岗时间长</span>
@ -120,6 +118,7 @@
type_:{
10: {"label": "上班打卡", "color": ""},
20: {"label": "下班打卡", "color": "success"},
30: {"label": "忽略", "color": "info"},
},
epOptions:{
"employee": "正式员工",

View File

@ -56,6 +56,18 @@
</tr>
</table>
</div>
<charts
v-if="asynDialog"
:type="type"
:title="title"
:cate="cate"
:apiObj = "apiObj"
:mgroup="query.mgroup"
:modelValue="modelValue"
:showClose="showClose"
:echartType='echartType'
@closed="asynDialog = false"
></charts>
</el-card>
</div>
</template>
@ -68,6 +80,14 @@
month:'',
days:'',
},
cate:'设备名',
type:'hour_s',
showClose:true,
modelValue:true,
echartType:'line',
apiObj:this.$API.enm.mpoint.stat,
title:'全场电量小时统计',
asynDialog:false,//
tableDatas:[
['原料车间','电石渣','烘干破主电机',0,0,0,0 ],//0
['原料车间','电石渣合计',0,0,0,0 ],
@ -249,19 +269,6 @@
if(b&&Number(b)){sum=sum+b;}
if(c&&Number(c)){sum=sum+c;}
if(d&&Number(d)){sum=sum+d;}
// if(a!==''){
// if(b!==''){
// sum = a + b;
// }else{
// sum = a;
// }
// }else{
// if(b!==''){
// sum = b;
// }else{
// sum = '';
// }
// }
return sum;
}
let obj = {};

View File

@ -0,0 +1,28 @@
<template>
<el-card style="height: 100%;background-image: url('/img/elec_flow.png');background-size: contain;background-repeat: no-repeat;">
<!-- <el-card style="height: 100%;"> -->
<!-- <img src="/img/elec_flow.png" class="flowImg" style="max-height: 100%;object-fit:contain;" > -->
</el-card>
</template>
<script>
export default {
data() {
return {
imgSrc:''
};
},
mounted() {
},
methods: {
}
};
</script>
<style>
.flowImg{
display: inline-block;
width: clac(100%-210px);
}
</style>