Commit 1dab859c by lyy

生产管理驾驶舱

parent eb97948d
package com.baosight.hggp.hg.sc.domain;
public class queryByWtDto {
private String processName;
private String totalWeight ;
public String getProcessName() {
return processName;
}
public void setProcessName(String processName) {
this.processName = processName;
}
public String getTotalWeight() {
return totalWeight;
}
public void setTotalWeight(String totalWeight) {
this.totalWeight = totalWeight;
}
@Override
public String toString() {
return "queryByWtDto{" +
"processName='" + processName + '\'' +
", totalWeight='" + totalWeight + '\'' +
'}';
}
}
<template>
<div class="home-page-left">
<div class="content-main-title">车间设备分布图</div>
<div class="content-content-title">原材料库</div>
<div style="width: 100%;display: flex">
<div class="content-content-img device-img1" style="margin-left: 3.5vw;margin-right: 3vh">
<img src="../../hggp/common/img/device-img1-content.png" class="device-img1-content img" alt/>
<div class="content-content-title" style="justify-content: flex-start;margin-top: 2.8vh;padding-left: 1vw">型材切割机</div>
</div>
<div class="content-content-img device-img2">
<img src="../../hggp/common/img/device-img2-content.png" class="device-img2-content img" alt/>
<div class="content-content-title" style="justify-content: flex-end;margin-top: 2.8vh;padding-right: 1vw">激光切割机</div>
</div>
</div>
<div style="width: 100%;height: 48vh;display: flex;margin-top: 2vh">
<div style="width: 50%;height: 100%">
<div class="content-content-img device-img1" style="width: 79%;margin-left: 3.2vw;">
<img src="../../hggp/common/img/device-img3-content.png" class="device-img1-content img" alt/>
<div class="content-content-title" style="justify-content: flex-start;margin-top: 2.8vh;padding-left: 1.5vw">组立机</div>
</div>
<div style="width: 79%;margin-left: 3.2vw;height: 28vh;margin-top: 2vh">
<div class="content-device-img img">
<div class="title-content-device img">成库库 1283</div>
</div>
<img src="../../hggp/common/img/architectureDiagram.png" style="width: 100%;height: 100%" alt/>
</div>
</div>
<div class="right-device img">
<div style="width: 100%;height: 30%;display: flex;margin-top: 3vh;">
<div class="content-content-title" style="width: 40%;">组立机</div>
<img src="../../hggp/common/img/device-img3-content.png" class="device-img1-content img" style="margin: 0;" alt/>
</div>
<div style="width: 100%;height: 30%;display: flex;margin-top: 2vh;">
<div class="content-content-title" style="width: 40%;">埋弧焊机</div>
<img src="../../hggp/common/img/device-img4-content.png" class="device-img1-content img" style="margin: 0;" alt/>
</div>
<div style="width: 100%;height: 30%;display: flex;margin-top: 2vh;">
<div class="content-content-title" style="width: 40%;">激光焊接机</div>
<img src="../../hggp/common/img/device-img5-content.png" class="device-img1-content img" style="margin: 0;" alt/>
</div>
</div>
</div>
<!-- <select></select>-->
</div>
</template>
<script>
module.exports = {
data(){
return {
name: '红安',
dataPicker:new Date,
};
},
}
</script>
<style scoped>
.img{
background-size: 100% 100%;
background-repeat: no-repeat;
}
.home-page-left{
width: 100%;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
align-content: flex-start;
background-image: url("../../../../../common/img/manageDeviceBg.png");
background-size: 100% 100%;
background-repeat: no-repeat;
}
.content-main-title{
height: 3vh;
width: 100%;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 1.2vw;
color: #01A9FF;
display: flex;
align-items: center;
justify-content: center;
}
.content-content-title{
width: 100%;
height: 3vh;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 1vw;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
margin-top: 2vh;
}
.content-content-img{
width: 40%;
height: 17vh;
background-size: 100% 100%;
background-repeat: no-repeat;
position: relative;
}
.device-img1{
background-image: url("../../../../../common/img/deviceImgLeft.png");
}
.device-img2{
background-image: url("../../../../../common/img/deviceImgRight.png");
}
.device-img1-content{
width: 9vw;
height: 8vh;
margin-top: 3vh;
margin-left: 3.5vw;
}
.device-img2-content{
width: 9vw;
height: 8vh;
margin-top: 3vh;
margin-left: 3.5vw;
}
.content-device-img{
width: 95%;
height: 5vh;
background-image: url("../../../../../common/img/titleContentDevice.png");
}
.title-content-device{
width: 100%;
height: 100%;
font-family: Adobe Heiti Std;
font-weight: normal;
font-size: 1vw;
color: #FFFFFF;
background: linear-gradient(180deg, #ACE5FF 0%, #FFFFFF 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
display: flex;
justify-content: center;
align-items: center;
//background-image: url("../../../../../common/img/titleContentDevice.png");
}
.right-device{
width: 46%;
height: 100%;
background-image: url("../../../../../common/img/rightLongBg.png");
}
</style>
<template>
<div ref="chartContainer" :style="{ width: '100%', height: '40vh' }"></div>
</template>
<script>
module.exports = {
props: {
option: Object
},
mounted() {
this.initChart();
window.addEventListener('resize', this.handleResize);
},
beforeDestroy() {
if (this.chart) {
this.chart.dispose();
}
window.removeEventListener('resize', this.handleResize);
},
methods: {
initChart() {
this.chart = echarts.init(this.$refs.chartContainer);
this.chart.setOption(this.option);
},
handleResize() {
if (this.chart) {
this.chart.resize();
}
}
}
};
</script>
<template>
<div class="home-page-main">
<div class="left-device device">
<div v-for="(item,index) in 3"
:key="index" class="device-background">
<div class="device-title " style="padding-top: 0.2vh;margin-left: 2vw;display: flex">
<div class="device-span" style="width: 50%">激光切割机</div>
<div style="display: flex;width: 50%">
<div class="openOn-span" style="margin-left: 0.5vw;margin-right: 0.5vw">设备开机</div>
<img src="../../hggp/common/img/powerOn.png" style="width: 1.5vw;height: 3vh" alt/>
</div>
</div>
<div class="device-main device-span">
<div style="display: flex;width: 100%;margin-left: 1vw;height: 3vh">
<div style="margin-right: 0.5vw;color: #FFFFFF;font-size: 0.8vw;">设备型号</div>
<div style="color: #01A9FF;font-size: 1vw;">MZ-1250</div>
</div>
<div style="height: 15.5vh;width: 100%;display: flex;justify-content: center;align-items: center;">
<img src="../../hggp/common/img/avi.png" style="width: 3vw;height: 6vh;" alt/>
</div>
</div>
</div>
</div>
<div class="left-device device" style="margin-left: 2vw;">
<div v-for="(item,index) in 3"
:key="index" class="device-background">
<div class="device-title " style="padding-top: 0.2vh;margin-left: 2vw">
<div class="device-span" >激光切割机</div>
</div>
<div class="device-main device-span">
123
</div>
</div>
</div>
<div class="left-device device" style="margin-left: 2vw;">
<div v-for="(item,index) in 3"
:key="index" class="device-background">
<div class="device-title " style="padding-top: 0.2vh;margin-left: 2vw">
<div class="device-span">激光切割机</div>
</div>
<div class="device-main device-span">
123
</div>
</div>
</div>
</div>
</template>
<script>
module.exports = {
data(){
return {
name: '红安',
dataPicker:new Date,
};
},
}
</script>
<style scoped>
.home-page-main{
width: 100%;
height: 100%;
display: flex;
}
.device{
height: 100%;
}
.left-device{
width: 30%;
}
.right-device{
width: 68%;
height: 100%;
}
.device-background{
width: 100%;
height:31.1%;
background-image: url("../../../../../common/img/productionBackground.png");
background-size: 100% 100%;
background-repeat: no-repeat;
position: relative;
margin-bottom: 2vh;
}
.device-background::before{
content: ""; /* 伪元素需要内容,即使它是空的 */
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 5vh;
background-image: url("../../../../../common/img/productionTitle.png");
background-size: 100% 100%;
background-repeat: no-repeat;
z-index: -1;
}
.device-span{
height: 3vh;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 1vw;
color: #FFFFFF;
}
.openOn-span{
height: 3vh;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 0.8vw;
color: #1AA6CB;
line-height: 3vh;
}
.device-title{
width: 100%;
height: 5vh;
}
.device-main{
width: 100%
}
</style>
<template>
<div ref="chartContainer" :style="{ width: width+'vw', height: height + 'vh' }"></div>
</template>
<script>
module.exports = {
props: {
option: {
type: Object,
required: true,
},
height: {
type: Number,
default: 35
},
width: {
type: Number,
default: 52
}
},
data() {
return {
chart: null,
};
},
watch: {
option: {
handler(newVal) {
if (this.chart) {
this.chart.setOption(newVal);
}
},
deep: true, // 监听对象内部属性的变化
immediate: true, // 在绑定时立即执行一次监听器
},
},
mounted() {
this.initChart();
window.addEventListener('resize', this.handleResize);
},
beforeDestroy() {
if (this.chart) {
this.chart.dispose();
}
window.removeEventListener('resize', this.handleResize);
},
methods: {
initChart() {
this.chart = echarts.init(this.$refs.chartContainer);
this.chart.setOption(this.option);
},
handleResize() {
if (this.chart) {
this.chart.resize();
}
},
},
};
</script>
<template>
<div class="home-page-left">
<div class="home-page-content">
<div class="page-content-title">
<div class="page-title-span">
项目生产明细
</div>
</div>
<div class="page-content-main">
<div class="page-title-project">
<div v-for="(item,index) in dataList"
:key="index" class="project-title-font"
>
{{ item }}
</div>
</div>
<div v-for="(temp,index) in getByProjCodewtWtList" :key="index" class="page-title-project"
style="margin-top: 0.8vh;height: 5vh;border: 1px solid #0097FF ;">
<div v-for="(item,index) in getByProjCodewtWtArray"
:key="index" class="project-title-font" style="opacity: 0.5;"
>
{{ temp[item] }}
</div>
</div>
</div>
</div>
<!-- <select></select>-->
</div>
</template>
<script>
module.exports = {
props:{
factory:String,
datapicker:String,
},
data(){
return {
name: '红安',
projCodeWtList:[],
getByProjCodewtWtList:[],
dataList:['项目名称','计划完成时间','计划产量','实际产量','进度'],
getByProjCodewtWtArray:['projName','completeDate','totalWeight','finishWeight','finishWeight'],
};
},
watch:{
factory(newVal) {
this.getByProjCodewt();
},
datapicker(newVal) {
this.getByProjCodewt();
},
},
mounted(){
this.getByProjCodewt();
},
methods:{
getByProjCodewt(){
let _this = this;
var inInfo = new EiInfo();
console.log('this.factory',this.factory)
console.log('this.factory',this.datapicker)
inInfo.set('inqu_status-0-factoryCode',this.factory)
inInfo.set('inqu_status-0-depositDate',this.dataPicker)
IPLAT.EiCommunicator.send('HGSC007', 'getByProjCodeWt', inInfo, {
onSuccess: function (res) {
_this.getByProjCodewtWtList = res.extAttr.result
console.log('项目生产',res.extAttr.result)
console.log('项目生产',res)
},
onFail: function (err) {
console.error('request_tools----------------->错误信息', err);
}
},
{async: false}
);
},
}
}
</script>
<style scoped>
.home-page-left{
width: 100%;
height: 100%;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}
.home-page-content{
width: 23vw;
height:100%;
background-image: url("../../../../../common/img/productionBackground.png");
background-size: 100% 100%;
background-repeat: no-repeat;
position: relative;
}
.home-page-content::before{
content: ""; /* 伪元素需要内容,即使它是空的 */
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 5vh;
z-index: -1;
background-image: url("../../../../../common/img/productionTitle.png");
background-size: 100% 100%;
background-repeat: no-repeat;
}
.page-content-title{
width: 100%;
height: 5vh;
}
.page-title-span{
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 0.9vw;
color: #CAECFF;
background: linear-gradient(-2deg, #FFFFFF 0%, #CAECFF 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin-left: 2vw;
padding-top: 0.2vh;
}
.page-content-main{
height: 90%;
margin: 1vw 1vh;
overflow: auto;
}
::-webkit-scrollbar {
width: 0.3vw;
cursor:pointer;
}
::-webkit-scrollbar-thumb {
background-color: rgba(94, 113, 135, 0.5) !important;
cursor:pointer;
}
.page-content-main::-webkit-scrollbar-thumb {
background-color: rgb(42, 36, 36);
border-radius: 10px;
}
.page-title-project{
width: 100%;
height: 4vh;
background: #071938;
border-radius: 2px;
display: flex;
}
.project-title-font{
width: 25%;
height: 100%;
display: flex;
font-size: 0.7vw;
justify-content: center;
align-items: center;
color: #fff;
overflow: hidden;
flex-wrap: wrap;
}
</style>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment