Compare commits

...

5 Commits

Author SHA1 Message Date
ca21a0cbed 首页 2024-05-11 11:15:17 +08:00
dd7c5f11ab Merge branch 'projects/mescc/develop' into projects/mescc/zjl 2024-05-10 13:22:06 +08:00
b18a7a8fb4 Merge pull request 'projects/mescc/zhp' (#13) from projects/mescc/zhp into projects/mescc/develop
Some checks are pending
continuous-integration/drone/push Build is pending
Reviewed-on: #13
2024-05-10 11:13:43 +08:00
‘937886381’
6b2c0ebec3 Merge branch 'projects/mescc/develop' into projects/mescc/zhp 2024-05-10 11:11:10 +08:00
‘937886381’
f312be08bf 驾驶舱 2024-05-10 11:10:42 +08:00
20 changed files with 207 additions and 121 deletions

View File

@ -1,7 +1,7 @@
###
# @Author: zhp
# @Date: 2024-04-28 13:42:51
# @LastEditTime: 2024-05-08 08:57:33
# @LastEditTime: 2024-05-10 08:42:44
# @LastEditors: zhp
# @Description:
###

View File

@ -30,3 +30,19 @@ export function getProduceDataDetail(data){
query: data
})
}
// export function cockpitDataMonitor(data) {
// return request({
// url: '/ip/prod-output/cockpitDataMonitor',
// method: 'post',
// data: data
// })
// }
export function cockpitDataMonitor(query) {
return request({
url: 'https://restapi.amap.com/v3/weather/weatherInfo?key=95bdbdc1c387a170105f84cd416c4c9f&city=110108',
method: 'get',
query: query
})
}

BIN
src/assets/images/login.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 530 KiB

View File

@ -133,8 +133,8 @@ $base1px: 0.15vh; // 1px / 1080px;
width: 100%;
clear: both;
position: relative;
top: calc(56 * #{$base1px});
height: calc(128 * #{$base1px});
top: calc(#{$base1px});
height: calc(100 * #{$base1px});
display: flex;
align-items: center;
justify-content: center;
@ -189,7 +189,7 @@ $base1px: 0.15vh; // 1px / 1080px;
height: calc(16 * 0.12vh);
line-height: calc(16 * 0.12vh);
font-size: calc(12 * 0.12vh);
color: #8c8c8c;
color: #C7C7C7;
a,
a:hover,

View File

@ -1,6 +1,7 @@
import * as echarts from "echarts";
function __resizeHandler(entries) {
console.log(entries);
for (const entry of entries) {
if (entry.contentBoxSize) {
// manipulate contentBoxSize
@ -32,7 +33,7 @@ export default {
const resizeObserver = new ResizeObserver(__resizeHandler.bind(this));
return {
MIN_WIDTH: 400,
MIN_WIDTH: 390,
chart_mixin_chartInstance: null,
chart_mixin_observer: resizeObserver,
chart_mixin_options: {

View File

@ -67,7 +67,7 @@ const mutations = {
state.copilot.energy = payload.data;
break;
case "efficiency":
console.log('222222', payload.chipOee)
console.log('222222', payload)
state.copilot.efficiency.chipOee = payload.chipOee;
state.copilot.efficiency.transformRate = payload.transformRate;
state.copilot.efficiency.chipRate = payload.chipRate;
@ -81,8 +81,8 @@ const actions = {
/** 初始化首页数据 */
async initHome({ commit }) {
const dataArr = await getHomeInfo();
const targetArr = await getHomeTarget();
const payload = splitCurrentAndPrevious(dataArr, targetArr);
const targetArr = await getHomeInfo();
const payload = splitCurrentAndPrevious(dataArr.prodOutputResultDO, targetArr.prodTargetDO);
commit("SET_HOME_INFO", payload);
},
/** 初始化驾驶舱数据 */
@ -98,18 +98,25 @@ const actions = {
yield: splitCurrentAndPrevious,
comprehensive: () => null,
efficiency: splitCurrentAndPreviousA,
}[source];
}[source]
console.log(handler)
// 获取产量数据
// console.log('qqqqqq',handler)
let { data: factoryList, type } = await fetcher(period);
let { data: factoryList, type } = await fetcher(period)
console.log(factoryList,type);
let targetList = null;
if (source === "yield" || source === "efficiency") {
// 获取目标数据
let { data } = await fetcher(period, true)
console.log('11111',data)
targetList = data;
// console.log('11111',data)
targetList = data
}
const payload = handler(factoryList, targetList);
let factoryData = factoryList.prodOutputResultDO ? factoryList.prodOutputResultDO : factoryList.prodOutputRateDO
let targetData = targetList.ProdTargetDO ? targetList.ProdTargetDO : targetList.ProdTargetDO
console.log(factoryList.ProdOutputDO)
console.log('ryf',factoryList)
const payload = handler(factoryData, targetData)
console.log(payload)
commit("SET_COPILOT_INFO", { type, payload });
},
};
@ -127,58 +134,61 @@ function splitCurrentAndPreviousA(factoryListResponse, targetListResponse) {
// 初始数据
const { chipOee, transformRate, chipRate, stdRate } = initA();
factoryListResponse = [
{
factory: 0,
oee: 0.8,
previousYearOee: 0.7,
componentConversionEfficiency: 0.8,
previousYearComponentConversionEfficiency: 0.7,
glassType: 0,
yieldRate: 0.8,
previousYearYieldRate: 0.7,
chipYieldRate: 0.38,
componentYieldRate: 0.73,
},
{
factory: 1,
oee: 0.8,
previousYearOee: 0.7,
componentConversionEfficiency: 0.8,
previousYearComponentConversionEfficiency: 0.7,
glassType: 1,
yieldRate: 0.8,
previousYearYieldRate: 0.7,
chipYieldRate: 0.38,
componentYieldRate: 0.73,
},
{
factory: 2,
oee: 0.8,
previousYearOee: 0.7,
componentConversionEfficiency: 0.8,
previousYearComponentConversionEfficiency: 0.7,
glassType: 1,
yieldRate: 0.8,
previousYearYieldRate: 0.7,
chipYieldRate: 0.38,
componentYieldRate: 0.73,
},
{
factory: 3,
oee: 0.8,
previousYearOee: 0.7,
componentConversionEfficiency: 0.8,
previousYearComponentConversionEfficiency: 0.7,
glassType: 0,
yieldRate: 0.8,
previousYearYieldRate: 0.7,
chipYieldRate: 0.38,
componentYieldRate: 0.73,
},
];
// factoryListResponse = [
// {
// factory: 0,
// oee: 0.8,
// previousYearOee: 0.7,
// componentConversionEfficiency: 0.8,
// previousYearComponentConversionEfficiency: 0.7,
// glassType: 0,
// yieldRate: 0.8,
// previousYearYieldRate: 0.7,
// chipYieldRate: 0.38,
// componentYieldRate: 0.73,
// },
// {
// factory: 1,
// oee: 0.8,
// previousYearOee: 0.7,
// componentConversionEfficiency: 0.8,
// previousYearComponentConversionEfficiency: 0.7,
// glassType: 1,
// yieldRate: 0.8,
// previousYearYieldRate: 0.7,
// chipYieldRate: 0.38,
// componentYieldRate: 0.73,
// },
// {
// factory: 2,
// oee: 0.8,
// previousYearOee: 0.7,
// componentConversionEfficiency: 0.8,
// previousYearComponentConversionEfficiency: 0.7,
// glassType: 1,
// yieldRate: 0.8,
// previousYearYieldRate: 0.7,
// chipYieldRate: 0.38,
// componentYieldRate: 0.73,
// },
// {
// factory: 3,
// oee: 0.8,
// previousYearOee: 0.7,
// componentConversionEfficiency: 0.8,
// previousYearComponentConversionEfficiency: 0.7,
// glassType: 0,
// yieldRate: 0.8,
// previousYearYieldRate: 0.7,
// chipYieldRate: 0.38,
// componentYieldRate: 0.73,
// },
// ];
if (factoryListResponse) {
for (const factory of factoryListResponse) {
if (factory.glassType === 1) {
console.log(factory.yieldRate)
}
const fId = getFactoryId(factory);
// 获取目标值
if (targetListResponse) {
@ -222,6 +232,7 @@ function splitCurrentAndPrevious(factoryListResponse, targetListResponse) {
const { chipInvest, ftoInvest, chipOutput, stdOutput, bipvOutput } = init();
if (factoryListResponse) {
for (const factory of factoryListResponse) {
const fId = getFactoryId(factory);
// 获取目标值
if (targetListResponse) {
@ -317,7 +328,6 @@ function initA() {
};
// 芯片良率
const chipRate = deepClone(stdRate);
return {
chipOee,
transformRate,
@ -369,7 +379,7 @@ function random_default(min = 0, max = 1) {
/* 接口 */
async function getHomeInfo() {
const { code, data } = await axios.post("/ip/prod-output/query-by-date", {
const { code, data } = await axios.post("ip/prod-output/cockpitData", {
factorys: [],
date: 4,
});
@ -401,14 +411,14 @@ function getUrl(copilot_module) {
};
switch (copilot_module) {
case "yield":
url.comparison = "/ip/prod-output/query-by-date";
url.target = "/ip/prod-target/query-by-date";
url.comparison = "ip/prod-output/cockpitData";
// url.target = "/ip/prod-target/query-by-date";
break;
case "energy":
break;
case "efficiency":
url.comparison = "/ip/prod-output/query-Rate-List";
url.target = "/ip/prod-target/query-rate-target";
url.comparison = "ip/prod-output/cockpitDataRate";
// url.target = "/ip/prod-target/query-rate-target";
break;
}
@ -418,7 +428,7 @@ function getUrl(copilot_module) {
async function doFetch(copilot_module = "yield", fetch_target, params) {
const url = getUrl(copilot_module);
const { code, data } = await axios.post(
fetch_target ? url.target : url.comparison,
url.comparison,
{
...params,
}

View File

@ -7,13 +7,12 @@
-->
<template>
<div class="copilot-layout" ref="copilot-layout">
<div class="copilot-layout" ref="copilot-layout" :class="[ page== '产量' ? 'produce': 'other' ]">
<CopilotHeaderVue :active="page" :period="period" @update:active="page = $event" @update:period="period = $event" />
<YieldCopilot v-if="page == '产量'" :period="period" />
<EnergyCopilot v-if="page == '综合'" :period="period" />
<EfficiencyCopilot v-if="page == '效率'" :period="period" />
<div class="copilot-footer">© 中建材智能自动化研究院有限公司</div>
</div>
</template>
@ -36,8 +35,24 @@ export default {
return {
page: "产量",
period: "日",
currentsStyles: '',
};
},
// watch: {
// page(val) {
// if (val === '') {
// console.log(val)
// this.currentsStyles =
// 'height: calc(100% + 38px)'
// console.log(this.currentsStyles)
// } else {
// console.log(val)
// this.currentsStyles = 'height:100%+38px'
// console.log(this.currentsStyles)
// }
// immediate: true
// }
// }
// mounted() {
// document.body.style.minHeight = "1024px";
// document.body.style.minWidth = "1550px";
@ -54,9 +69,8 @@ export default {
padding: 16px;
background: url(../../assets/images/copilot-bg.png) 0 0 / 100% 100% no-repeat;
position: absolute;
height: calc(100% + 38px);
left: -16px;
top: -8px;
/* top: -8px; */
width: calc(100% + 30px);
z-index: 1001;
color: #fff;
@ -65,6 +79,12 @@ export default {
gap: 8px;
}
.produce{
height: calc(100% + 38px);
}
.other {
height: 100vh + 50px;
}
.copilot-footer {
/** position: absolute;
bottom: 10px; **/

View File

@ -88,7 +88,7 @@ export default {
function getTemplate(period, dataList) {
const year = new Date().getFullYear();
const month = new Date().getMonth() + 1;
console.log('11111', dataList);
// console.log('11111', dataList);
return period == "日" || period == "周"
? [
{

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-05-07 10:25:10
* @LastEditTime: 2024-05-08 15:55:24
* @LastEditTime: 2024-05-09 08:44:21
* @LastEditors: zhp
* @Description:
-->
@ -53,7 +53,7 @@ export default {
display: grid;
gap: 8px;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(1, 1fr);
grid-template-rows: repeat(4, 1fr);
}
.span-2 {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-05-07 13:22:43
* @LastEditTime: 2024-05-08 15:52:09
* @LastEditTime: 2024-05-09 16:22:24
* @LastEditors: zhp
* @Description:
-->
@ -38,7 +38,7 @@ export default {
props: {
vHeight: {
type: Number,
default: 34,
default: 36,
},
legend: {
type: Array,

View File

@ -10,7 +10,9 @@
<div class="cities">
<CopilotButtons :options="cities" @update:active="handleCityUpdate" />
</div>
<!-- <div style="flex:1;padding: 0 20%;"> -->
<div class="chart" ref="chart"></div>
<!-- </div> -->
<div class="legend" v-if="period == '月' || period == '年'">
<div class="legend-item" v-for="lgd in legend" :key="lgd.label">
<span class="legend-item__value">{{ lgd.value }}</span>
@ -123,6 +125,7 @@ export default {
},
watch: {
period() {
console.log(this.$store.getters.copilot.efficiency)
this.initOptions(this.options);
},
factoryId() {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-05-07 10:25:10
* @LastEditTime: 2024-05-08 14:54:24
* @LastEditTime: 2024-05-09 09:04:07
* @LastEditors: zhp
* @Description:
-->

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-05-07 10:04:53
* @LastEditTime: 2024-05-08 15:58:14
* @LastEditTime: 2024-05-09 08:56:44
* @LastEditors: zhp
* @Description:
-->
@ -73,8 +73,8 @@ export default {
flex: 1;
display: grid;
gap: 16px;
grid-template-columns: 1fr 1fr;
grid-template-rows: .5fr .5fr;
grid-template-columns:repeat(2, 1fr);
grid-template-rows: repeat(2, 1fr)
}
.efficiency-copilot > div {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-05-07 10:25:10
* @LastEditTime: 2024-05-08 15:29:28
* @LastEditTime: 2024-05-09 08:41:11
* @LastEditors: zhp
* @Description:
-->
@ -74,7 +74,7 @@ export default {
display: grid;
gap: 16px;
grid-template-columns: 1fr 1fr;
/* grid-template-rows: 1fr 1fr; */
grid-template-rows: 1fr 1fr;
}
.energy-copilot > div {

View File

@ -17,7 +17,35 @@ export default {
headerBGC: "rgba(0, 106, 205, 0.22)",
oddRowBGC: "rgba(0, 106, 205, 0.22)",
evenRowBGC: "rgba(rgba(2, 13, 45, 0.18)",
data: [
data: [],
rowNum: 12,
waitTime: 3000,
columnWidth: [50],
align: ["center"],
carousel: "page",
},
};
},
mounted() {
this.getTableList();
this.tableReset();
window.addEventListener("resize", this.tableReset);
},
methods: {
tableReset() {
this.aa = false;
debounce(() => {
this.initTable();
}, 500)();
},
initTable() {
this.aa = true;
},
getTableList() {
let _this = this;
setTimeout(
(function name() {
_this.config.data = [
["1", "行1列1", "行1列2", "行1列3", "50%"],
["2", "行2列1", "行2列2", "行2列3", "50%"],
["3", "行3列1", "行3列2", "行3列3", "50%"],
@ -38,28 +66,11 @@ export default {
["18", "行18列1", "行18列2", "行18列3", "50%"],
["19", "行19列1", "行19列2", "行19列3", "50%"],
["20", "行20列1", "行20列2", "行20列3", "50%"],
],
rowNum: 12,
waitTime: 3000,
columnWidth: [50],
align: ["center"],
carousel: "page",
},
};
},
mounted() {
this.tableReset();
window.addEventListener("resize", this.tableReset);
},
methods: {
tableReset() {
this.aa = false;
debounce(() => {
];
})(),
2000
);
this.initTable();
}, 500)();
},
initTable() {
this.aa = true;
},
},
};

View File

@ -39,6 +39,7 @@ import ProdMonitor from "./components/ProdMonitor.vue";
import Store from "./components/Store.vue";
import Energy from "./components/Energy.vue";
import Order from "./components/Order.vue";
import { cockpitDataMonitor } from "@/api/produceData";
export default {
name: "FactoryData",
components: {
@ -119,11 +120,23 @@ export default {
// ];
},
},
mounted() {
this.getMes1();
},
methods: {
updateCompany(obj) {
this.companyId = obj.companyId;
this.companyName = obj.companyName;
},
getMes1() {
// cockpitDataMonitor({
// factorys: ["1"],
// date: 4,
// }).then((res) => {
// console.log(res);
// });
cockpitDataMonitor().then((res) => {});
},
},
};
</script>

View File

@ -7,7 +7,9 @@
<template>
<div class="double-ring-chart">
<div ref="chart" class="double-ring-chart__container"></div>
<div class="double-ring-chart__container">
<div ref="chart" style="height: 90%;"></div>
</div>
<!-- style="{ height: vHeight + 'vh' }" -->
<div class="double-ring-chart__legend">
<div v-for="item in legendItems" :key="item.label" class="legend-item">
@ -170,6 +172,9 @@ function calculateItems(period, valueTuple) {
.double-ring-chart__container {
flex:1;
padding: 0 10%;
/* margin: 10%; */
/* min-width: 300px; */
height: 0;
}

View File

@ -15,8 +15,8 @@ export default ({
tooltip: {},
title: {
text: titleValue,
left: "49%",
top: "39%",
left: "44%",
top: "37%",
textAlign: "center",
textStyle: {
fontWeight: 600,
@ -37,7 +37,7 @@ export default ({
type: "pie",
name: "当前目标",
radius: ["70%", "85%"],
center: ["50%", "52%"],
center: ["45%", "52%"],
emptyCircleStyle: {
color: "#042c5f33",
},
@ -46,7 +46,7 @@ export default ({
{
type: "pie",
radius: ["70%", "85%"],
center: ["50%", "52%"],
center: ["45%", "52%"],
avoidLabelOvervlap: false,
label: {
show: false,
@ -97,7 +97,7 @@ export default ({
{
type: "pie",
radius: ["55%", "70%"],
center: ["50%", "52%"],
center: ["45%", "52%"],
avoidLabelOvervlap: false,
label: {
show: false,

View File

@ -9,7 +9,7 @@
class="welcome"
style="
position: absolute;
top: 15%;
top: 12%;
left: 20%;
user-select: none;
display: flex;
@ -51,6 +51,11 @@
向世界先进水平挑战为人类社会文明做贡献
</p>
</div>
<img
src="../assets/images/login.png"
style="position: absolute; top: 30%; left: 15%; width: 40vw"
alt=""
/>
</div>
<!-- 表单 -->
<div class="field">
@ -64,7 +69,7 @@
style=""
class="cnbm_logo"
/>
<h3 class="title" style="margin: 16px 0;">集团工业互联网平台</h3>
<h3 class="title" style="margin: 16px 0">发电玻璃智能管控平台</h3>
</h2>
<h2 class="pc-title" style="">
<img
@ -75,7 +80,9 @@
style=""
class="cnbm_logo"
/>
<span style="font-weight: bold; letter-spacing: 1px; font-size: 32px;">集团工业互联网平台</span>
<span style="font-weight: bold; letter-spacing: 1px; font-size: 32px"
>发电玻璃智能管控平台</span
>
</h2>
<!-- 表单 -->
@ -164,7 +171,7 @@
</div>
<!-- footer -->
<div class="footer">
Copyright © 2023 中建材智能自动化研究院有限公司 All Rights Reserved.
版权所有中建材智能自动化研究院有限公司&nbsp;&nbsp;&nbsp;版本1.0
</div>
</div>
</div>