Merge branch 'projects/mescc/develop' into projects/mescc/zhp

This commit is contained in:
‘937886381’
2024-05-07 10:04:53 +08:00
23 changed files with 198 additions and 70 deletions

View File

@@ -0,0 +1,69 @@
<!--
filename: ChartContainer.vue
author: liubin
date: 2024-04-10 08:54:33
description:
todo: 驾驶舱和首页的 ChartContainer, 实现滑动条 和动态宽高
-->
<template>
<div class="chart-container" :class="{ 'no-scroll': noScroll }">
<slot />
</div>
</template>
<script>
export default {
name: "ChartContainer",
components: {},
props: {
noScroll: {
type: Boolean,
default: false,
},
},
data() {
return {};
},
computed: {},
methods: {},
};
</script>
<style scoped lang="scss">
.chart-container {
height: 0;
flex: 1;
overflow-x: scroll;
}
.no-scroll::-webkit-scrollbar {
width: 0;
height: 0;
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-button {
width: 0;
height: 0;
// width: 10px;
// height: 10px;
// background: #14305f;
}
::-webkit-scrollbar-track {
background: #14305f;
border: 0 none;
border-radius: 0;
}
::-webkit-scrollbar-thumb {
background: #004798;
border: 0 none;
border-radius: 6px;
}
</style>

View File

@@ -1,10 +0,0 @@
export default {
getData: async function (url) {
//
return await new Promise((resolve, reject) => {
setTimeout(() => {
resolve([90119, 40801, 44028]);
}, 1200);
});
},
};

View File

@@ -7,23 +7,41 @@
<template>
<div class="efficiency-copilot">
<db-container title="芯片良率" icon="chip2"></db-container>
<db-container title="标准组件良率" icon="std"></db-container>
<db-container title="芯片OEE" icon="chip"></db-container>
<db-container title="转化效率" icon="cube"></db-container>
<Container title="芯片良率" icon="chip2"></Container>
<Container title="标准组件良率" icon="std"></Container>
<Container title="芯片OEE" icon="chip"></Container>
<Container title="转化效率" icon="cube"></Container>
</div>
</template>
<script>
import Container from "../../dashboard/components/Container.vue";
import Container from "@/views/copilot/components/Container.vue";
export default {
name: "EfficiencyCopilot",
components: { DbContainer: Container },
components: { Container },
props: {
period: {
type: String,
default: "日",
},
},
data() {
return {};
},
computed: {},
methods: {},
watch: {
period: {
handler(val) {
val && this.fetchData(val);
},
immediate: true,
},
},
methods: {
fetchData(period = "日") {
console.log(`效率驾驶舱,获取${period}数据`);
this.$store.dispatch("copilot/initCopilot", { period, source: "efficiency" });
},
},
};
</script>

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@@ -10,7 +10,7 @@
</template>
<script>
import DoubleRingWrapperVue from "./base/DoubleRingWrapper.vue";
import DoubleRingWrapperVue from "./sub/ring/DoubleRingWrapper.vue";
export default {
name: "BipvOutput",

View File

@@ -6,7 +6,7 @@
-->
<template>
<bar-chart-base
<BarChartBase
:legend="legend"
:series="series"
:xAxis="xAxis"
@@ -16,7 +16,7 @@
</template>
<script>
import BarChartBase from "./base/BarChartBase.vue";
import BarChartBase from "./sub/bar/BarChartBase.vue";
export default {
name: "ChipInvest",

View File

@@ -10,7 +10,7 @@
</template>
<script>
import DoubleRingWrapperVue from "./base/DoubleRingWrapper.vue";
import DoubleRingWrapperVue from "./sub/ring/DoubleRingWrapper.vue";
export default {
name: "ChipOutput",

View File

@@ -6,7 +6,7 @@
-->
<template>
<bar-chart-base
<BarChartBase
:legend="legend"
:series="series"
:xAxis="xAxis"
@@ -16,7 +16,7 @@
</template>
<script>
import BarChartBase from "./base/BarChartBase.vue";
import BarChartBase from "./sub/bar/BarChartBase.vue";
export default {
name: "FtoInvest",

View File

@@ -10,7 +10,7 @@
</template>
<script>
import DoubleRingWrapperVue from "./base/DoubleRingWrapper.vue";
import DoubleRingWrapperVue from "./sub/ring/DoubleRingWrapper.vue";
export default {
name: "StdOutput",

View File

@@ -26,13 +26,13 @@
<script>
import screenfull from "screenfull";
import ChartContainerVue from "../../../../components/ChartContainer.vue";
import ChartContainer from "../../../../components/ChartContainer.vue";
import chartMixin from "@/mixins/chart.js";
export default {
name: "BarChartBase",
components: {
ChartContainer: ChartContainerVue,
ChartContainer,
},
mixins: [chartMixin],
props: {

View File

@@ -98,6 +98,7 @@ export default {
_cities[idx].value = v ?? 0;
}
);
//
_cities.splice(4, 1);
return _cities;
},

View File

@@ -8,14 +8,15 @@
<template>
<div class="city-item inner-shadow">
<CityName :value="location" />
<CityValue :value="value+''" :period="period" />
<CityValue :value="value + ''" :period="period" />
</div>
</template>
<script>
import CityNameVue from "./CityName.vue";
import CityValueVue from "./CityValue.vue";
import GradientTextVue from "./GradientText.vue";
import GradientTextVue from "../gradient/GradientText.vue";
export default {
name: "CityItem",
components: {

View File

@@ -13,7 +13,7 @@
</template>
<script>
import Icon from "./icon.png";
import Icon from "../../../assets/icon.png";
export default {
name: "CityName",

View File

@@ -18,7 +18,7 @@
</template>
<script>
import GradientTextVue from "./GradientText.vue";
import GradientTextVue from "../gradient/GradientText.vue";
export default {
name: "CityValue",

View File

@@ -8,7 +8,7 @@
<template>
<div class="double-ring-chart">
<div ref="chart" class="double-ring-chart__container"></div>
<!-- :style="{ height: vHeight + 'vh' }" -->
<!-- style="{ height: vHeight + 'vh' }" -->
<div class="double-ring-chart__legend">
<div v-for="item in legendItems" :key="item.label" class="legend-item">
<span class="legend-item__label">{{ item.label }}</span>
@@ -21,7 +21,7 @@
<script>
import chartMixin from "@/mixins/chart.js";
import fullscreenMixin from "@/mixins/fullscreen.js";
import getOptions from "./double-ring-chart-options";
import getOptions from "../../../options/double-ring-chart-options";
export default {
name: "DoubleRingChart",
@@ -75,6 +75,7 @@ export default {
getter.current[this.factoryId],
];
}
// [100, 200, 200]
return [
getter.previous[this.factoryId],
getter.current[this.factoryId],

View File

@@ -27,9 +27,9 @@
</template>
<script>
import CopilotSelect from "../../select.vue";
import CopilotSelect from "@/views/copilot/components/select.vue";
import DoubleRingChartVue from "./DoubleRingChart.vue";
import CityData from "./CityData.vue";
import CityData from "../city/CityData.vue";
export default {
name: "DoubleRingWrapper",

View File

@@ -30,22 +30,22 @@
</template>
<script>
import Container from "../components/Container.vue";
import StdOutputVue from "../components/charts/StdOutput.vue";
import ChipOutputVue from "../components/charts/ChipOutput.vue";
import FtoInvestVue from "../components/charts/FtoInvest.vue";
import BipvOutputVue from "../components/charts/BipvOutput.vue";
import ChipInvestVue from "../components/charts/ChipInvest.vue";
import Container from "@/views/copilot/components/Container.vue";
import StdOutput from "./components/StdOutput.vue";
import ChipOutput from "./components/ChipOutput.vue";
import FtoInvest from "./components/FtoInvest.vue";
import BipvOutput from "./components/BipvOutput.vue";
import ChipInvest from "./components/ChipInvest.vue";
export default {
name: "YieldCopilot",
components: {
DbContainer: Container,
StdOutput: StdOutputVue,
ChipOutput: ChipOutputVue,
BipvOutput: BipvOutputVue,
FtoInvest: FtoInvestVue,
ChipInvest: ChipInvestVue,
StdOutput,
ChipOutput,
BipvOutput,
FtoInvest,
ChipInvest,
},
props: {
period: {

View File

@@ -12,7 +12,7 @@
<h2>{{ info.companyName }}</h2>
<ul>
<li v-for="item in info.items" :key="item.label">
{{ item.label }} {{ item.value | currency }}
{{ item.label }} {{ item.value | numberFilter }}
</li>
</ul>
</div>
@@ -35,8 +35,12 @@ export default {
},
},
filters: {
currency(value) {
return value.toLocaleString();
numberFilter(value) {
if (value != null && !isNaN(parseInt(value))) {
return parseInt(value).toLocaleString();
} else {
return '-';
}
},
},
data() {