Commit a3ea7996 by liuyang

Merge branch 'dev' of http://git.pseer.com:8800/platform/hp-smart into dev-ly

parents d6d4e1d1 4fc2fa00
package com.baosight.hpjx.hp.bi.service;
import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.service.impl.ServiceBase;
public class ServiceHPBI004 extends ServiceBase {
@Override
public EiInfo initLoad(EiInfo inInfo) {
return super.initLoad(inInfo);
}
}
......@@ -136,6 +136,7 @@
FROM ${hpjxSchema}.T_HPKC011 a
JOIN ${hpjxSchema}.T_HPSC001 b on a.PROJ_CODE = b.PROJ_CODE
WHERE 1=1
AND A.AMOUNT > 0
<include refid="condition"/>
<include refid="customCondition"/>
<dynamic prepend="ORDER BY">
......
<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 v-for="(item,index) in 3"
:key="index" style="width: 28%;height: 70%;display: flex;flex-wrap: wrap;justify-content: center;margin-top: 2.5vh"
>
<div class="content-main-title">50.5</div>
<img src="../../hpjx/common/img/production-icon.png" class="production-icon" alt/>
<div class="content-main-footer">用工量/工</div>
</div>
</div>
</div>
<div class="home-page-bootom margin-top">
<div class="page-content-title">
<div class="page-title-span">
工序
</div>
</div>
<div class="page-content-main" style="flex-wrap: wrap">
<div v-for="(item,index) in 3"
:key="index" style="width: 100%;height: 30%;display: flex;justify-content: space-between;"
>
<div class="page-content-left">
<div class="data-title-span temp">160</div>
<div style="width: 100%;display: flex;" class="temp">
<img src="../../hpjx/common/img/produce-img.png" class="produce-img " alt/>
</div>
<div class="content-main-footer temp">组立/吨</div>
</div>
<div class="page-content-left">
<div class="data-title-span temp">160</div>
<div style="width: 100%;" class="temp">
<img src="../../hpjx/common/img/produce-img.png" class="produce-img " alt/>
</div>
<div class="content-main-footer temp">组立/吨</div>
</div>
</div>
</div>
</div>
<!-- <select></select>-->
</div>
</template>
<script>
module.exports = {
data(){
return {
name: '红安',
dataPicker:new Date,
};
},
}
</script>
<style scoped>
.home-page-left{
width: 100%;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}
.home-page-content{
width: 100%;
//height: 28vh;
height:24vh;
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;
background-image: url("../../../../../common/img/productionTitle.png");
background-size: 100% 100%;
background-repeat: no-repeat;
z-index: -1;;
}
.home-page-bootom{
width: 100%;
//height: 28vh;
height: 50vh;
background-image: url("../../../../../common/img/productionlongBackground.png");
background-size: 100% 100%;
background-repeat: no-repeat;
position: relative;
}
.home-page-bootom::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;;
}
.page-content-title{
width: 100%;
height: 5vh;
}
.page-title-span{
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 1vw;
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;
}
.data-title-span{
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 20px;
color: #01A9FF;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: -30px;
}
.page-content-main{
width: 100%;
height: 90%;
display: flex;
justify-content: center;
padding: 1vw 2vw;
}
.margin-top{
margin-top: 6vh;
}
.content-main-title{
width: 100%;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 20px;
color: #01A9FF;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: -30px;
}
.content-main-footer{
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 14px;
color: #FFFFFF;
}
.production-icon{
width: 3vw;
height: 6vh;
background-repeat: no-repeat;
background-size: contain;
}
.page-content-left{
width: 50%;
}
.bootom-content-title{
width: 100%;
height: 2vh;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 13px;
color: #01A9FF;
line-height: 25px;
}
.temp{
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
}
.produce-img{
margin-top: 2.5vh;
width: 5vw;
height: 100%;
background-size: 100% 100%;
background-repeat: no-repeat;
}
</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-left">
<div class="home-page-content">
<div class="page-content-title">
<div class="page-title-span">
项目生产明细
</div>
</div>
<div class="page-content-main">
<div v-for="(item,index) in dataList"
:key="index" style="width: 28%;height: 70%;display: flex;flex-wrap: wrap;justify-content: center;margin-top: 25px"
>
</div>
</div>
</div>
<!-- <select></select>-->
</div>
</template>
<script>
module.exports = {
data(){
return {
name: '红安',
dataPicker:new Date,
dataList:['项目名称','计划完成时间','计划产量','实际产量','进度']
};
},
}
</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{
width: 100%;
height: 90%;
display: flex;
justify-content: center;
}
</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: 40
},
width: {
type: Number,
default: 100
}
},
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 v-for="(item,index) in queryInfoList"
:key="index" style="width: 28%;height: 70%;display: flex;flex-wrap: wrap;justify-content: center;margin-top: 25px"
>
<div class="content-main-title">{{ queryDataObject[item]}}</div>
<img src="../../hpjx/common/img/production-icon.png" class="production-icon" alt/>
<div class="content-main-footer">{{queryRCLList[index]}}</div>
</div>
</div>
</div>
<div class="home-page-content margin-top">
<div class="page-content-title">
<div class="page-title-span">
月累计产量
</div>
</div>
<div class="page-content-main">
<div v-for="(item,index) in queryMonthList"
:key="index" style="width: 28%;height: 70%;display: flex;flex-wrap: wrap;justify-content: center;margin-top: 25px"
>
<div class="content-main-title">{{ queryMonthObject[item]}}</div>
<img src="../../hpjx/common/img/production-icon.png" class="production-icon" alt/>
<div class="content-main-footer">{{queryRCLList[index]}}</div>
</div>
</div>
</div>
<div class="home-page-content margin-top">
<div class="page-content-title">
<div class="page-title-span">
年产量
</div>
</div>
<div class="page-content-main">
<div v-for="(item,index) in queryYearList"
:key="index" style="width: 28%;height: 70%;display: flex;flex-wrap: wrap;justify-content: center;margin-top: 25px"
>
<div class="content-main-title">{{ queryYearObject[item]}}</div>
<img src="../../hpjx/common/img/production-icon.png" class="production-icon" alt/>
<div class="content-main-footer">{{queryRCLList[index]}}</div>
</div>
</div>
</div>
<!-- <select></select>-->
</div>
</template>
<script>
module.exports = {
props:{
factory:String,
datapicker:String,
},
data(){
return {
name: '红安',
dataPicker:new Date,
queryRCLList:['用工量/工','实际产量/T','人均产量/工'],
queryInfoList:['ygl','sjcl','rjcl'],
queryMonthList:['ljygl','ljsjcl','ljrjcl'],
queryYearList:['nljyg','nljsjcl','nljrjcl'],
queryRCLInfoList:[],
queryDataObject:[],
queryMonthObject:[],
queryYearObject:[],
};
},
mounted(){
this.queryRCLInfo();
this.queryYCLinfo();
this.queryNCLinfo();
},
methods:{
queryRCLInfo(){
let _this = this;
var inInfo = new EiInfo();
inInfo.set('inqu_status-0-factoryCode',this.factory)
inInfo.set('inqu_status-0-date',this.datapicker)
IPLAT.EiCommunicator.send('HPBI003', 'queryRCLInfo', inInfo, {
onSuccess: function (res) {
if(undefined != res.extAttr.result[0]){
_this.queryDataObject = res.extAttr.result[0];
}
},
onFail: function (err) {
console.error('request_tools----------------->错误信息', err);
}
},
{async: false}
);
},
queryYCLinfo(){
let _this = this;
var inInfo = new EiInfo();
inInfo.set('inqu_status-0-factoryCode',this.factory)
inInfo.set('inqu_status-0-date',this.datapicker)
IPLAT.EiCommunicator.send('HPBI003', 'queryYCLinfo', inInfo, {
onSuccess: function (res) {
if(undefined != res.extAttr.result[0]){
_this.queryMonthObject = res.extAttr.result[0];
}
},
onFail: function (err) {
console.error('request_tools----------------->错误信息', err);
}
},
{async: false}
);
},
queryNCLinfo(){
let _this = this;
var inInfo = new EiInfo();
inInfo.set('inqu_status-0-factoryCode',this.factory)
inInfo.set('inqu_status-0-date',this.datapicker)
IPLAT.EiCommunicator.send('HPBI003', 'queryNCLinfo', inInfo, {
onSuccess: function (res) {
if(undefined != res.extAttr.result[0]) {
_this.queryYearObject = res.extAttr.result[0];
}
},
onFail: function (err) {
console.error('request_tools----------------->错误信息', err);
}
},
{async: false}
);
},
}
}
</script>
<style scoped>
.home-page-left{
width: 100%;
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
}
.home-page-content{
width: 100%;
height:24vh;
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;
background-image: url("../../../../../common/img/productionTitle.png");
background-size: 100% 100%;
background-repeat: no-repeat;
z-index: -1;
}
.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;
}
.page-content-main{
width: 100%;
height: 20vh;
display: flex;
justify-content: center;
}
.margin-top{
margin-top: 7vh;
}
.content-main-title{
width: 100%;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 20px;
color: #01A9FF;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: -30px;
}
.content-main-footer{
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 14px;
color: #FFFFFF;
}
.production-icon{
width: 3vw;
height: 6vh;
background-repeat: no-repeat;
background-size: contain;
}
</style>
<template>
<div class="home-page-main">
<div class="top-main">{{name}}</div>
<el-date-picker
class="data-picker"
v-model="dataPicker"
type="date"
placeholder="选择日期"
value-format="yyyyMMdd"
>
</el-date-picker>
<!-- <select></select>-->
</div>
</template>
<script>
module.exports = {
data(){
return {
name: '红安', // 初始化当前日期时间
dataPicker:new Date,
};
},
mounted(){
this.queryCompanyInfo();
},
methods:{
queryCompanyInfo(){
let _this = this;
var inInfo = new EiInfo();
// inInfo.set('requestList','[{\\"ids\\":[\\"show65\\"],\\"params\\":\\"\\"}]')
IPLAT.EiCommunicator.send('HPBI002', 'queryCompanyInfo', inInfo, {
onSuccess: function (res) {
console.log('queryCompanyInfo',res)
},
onFail: function (err) {
console.error('request_tools----------------->错误信息', err);
}
},
{async: false}
);
},
},
}
</script>
<style scoped>
.home-page-main{
width: 100%;
display: flex;
justify-content: flex-start;
}
.top-main{
width: 10vw;
height: 4vh;
background-image: url("../../../../../common/img/select.png");
background-size: cover;
background-repeat: repeat-y;
background-position: center;
display: flex;
align-content: center;
//justify-content: center;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 1vw;
color: #FFFFFF;
flex-wrap: wrap;
padding-left: 1vw;
}
.data-picker{
width: 10vw;
height: 4vh;
margin-left: 1vw;
font-size: 1vw;
}
</style>
<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="../../hpjx/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="../../hpjx/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="../../hpjx/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="../../hpjx/common/img/architectureDiagram.png" style="width: 100%;height: 100%" alt/>
</div>
</div>
<!-- <div class="right-device img">-->
<!-- </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: 50%;
height: 100%;
margin-top: 2vh;
background-image: url("../../../../../common/img/deviceImgRight.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 device-span" style="padding-top: 0.2vh;margin-left: 2vw">
激光切割机
</div>
<div class="device-main device-span">
123
</div>
</div>
</div>
<div class="right-device device">
<div v-for="(item,index) in 3"
:key="index" style="width: 100%;height: 31.2%;display: flex;margin-bottom: 1.9vh">
<div class="device-background" style="width: 49%;height:100%;margin-left: 1vw">
<div class="device-title device-span" style="padding-top: 0.2vh;margin-left: 2vw">
激光切割机
</div>
<div class="device-main device-span" >
123
</div>
</div>
<div class="device-background" style="width: 49%;height:100%;margin-left: 1vw">
<div class="device-title device-span" style="padding-top: 0.2vh;margin-left: 2vw">
激光切割机
</div>
<div class="device-main device-span">
123
</div>
</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{
width: 100%;
height: 3vh;
font-family: Microsoft YaHei;
font-weight: 400;
font-size: 1vw;
color: #FFFFFF;
}
.device-title{
width: 100%;
height: 5vh;
}
.device-main{
}
</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