|
|
@@ -9,9 +9,17 @@
|
|
|
<dv-decoration-8 class="dv-dec-8" :color="decorationColor" />
|
|
|
<div class="title">
|
|
|
<span class="title-text">UAS-MES可视化平台</span>
|
|
|
- <dv-decoration-6 class="dv-dec-6" :reverse="true" :color="['#50e3c2', '#67a1e5']" />
|
|
|
+ <dv-decoration-6
|
|
|
+ class="dv-dec-6"
|
|
|
+ :reverse="true"
|
|
|
+ :color="['#50e3c2', '#67a1e5']"
|
|
|
+ />
|
|
|
</div>
|
|
|
- <dv-decoration-8 class="dv-dec-8" :reverse="true" :color="decorationColor" />
|
|
|
+ <dv-decoration-8
|
|
|
+ class="dv-dec-8"
|
|
|
+ :reverse="true"
|
|
|
+ :color="decorationColor"
|
|
|
+ />
|
|
|
</div>
|
|
|
<dv-decoration-10 class="dv-dec-10-s" />
|
|
|
</div>
|
|
|
@@ -21,7 +29,9 @@
|
|
|
<div class="d-flex aside-width">
|
|
|
<div class="react-left ml-4 react-l-s bg-color-blue">
|
|
|
<span class="react-left"></span>
|
|
|
- <span class="text fw-b" style="font-size:24px;">普耐尔MES数据看板</span>
|
|
|
+ <span class="text fw-b" style="font-size: 24px"
|
|
|
+ >普耐尔MES数据看板</span
|
|
|
+ >
|
|
|
</div>
|
|
|
<div class="react-left ml-3">
|
|
|
<span class="text">生产实况分析</span>
|
|
|
@@ -29,30 +39,82 @@
|
|
|
</div>
|
|
|
<div class="d-flex aside-width">
|
|
|
<div class="react-right bg-color-r mr-3">
|
|
|
- <!-- <span class="text ">设备运行分析</span>-->
|
|
|
- <span class="text" @click="fullScreen" ref="fullScreen">全屏</span>
|
|
|
- <span class="text" @click="exitFullScreen" ref="exitFullScreen" style="display: none">退出全屏</span>
|
|
|
+ <span
|
|
|
+ class="text"
|
|
|
+ @click="fullScreen"
|
|
|
+ ref="fullScreen"
|
|
|
+ v-show="!isFullScreen"
|
|
|
+ >全屏</span
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ class="text"
|
|
|
+ @click="exitFullScreen"
|
|
|
+ ref="exitFullScreen"
|
|
|
+ v-show="isFullScreen"
|
|
|
+ >退出全屏</span
|
|
|
+ >
|
|
|
</div>
|
|
|
- <div class="react-right mr-4 react-l-s" style="width: 900px">
|
|
|
- <span class="react-after"></span>
|
|
|
+ <div
|
|
|
+ class="react-right mr-4 react-l-s right_titile"
|
|
|
+ style="width: 900px"
|
|
|
+ >
|
|
|
<el-dropdown class="dropdown">
|
|
|
<span class="el-dropdown-link" ref="echarType">
|
|
|
- 测试车间<i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
+ 测试车间
|
|
|
+ <i class="el-icon-arrow-down el-icon--right"></i>
|
|
|
+
|
|
|
</span>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
- <el-dropdown-item><router-link to="assembly"> 组装车间 </router-link></el-dropdown-item>
|
|
|
- <el-dropdown-item><router-link to="package"> 包装车间 </router-link></el-dropdown-item>
|
|
|
+ <el-dropdown-item
|
|
|
+ ><router-link to="assembly">
|
|
|
+ 组装车间
|
|
|
+ </router-link></el-dropdown-item
|
|
|
+ >
|
|
|
+ <el-dropdown-item
|
|
|
+ ><router-link to="package">
|
|
|
+ 包装车间
|
|
|
+ </router-link></el-dropdown-item
|
|
|
+ >
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
|
+ <el-select
|
|
|
+ v-model="linecode"
|
|
|
+ class="dropdown"
|
|
|
+ @change="handleBlur"
|
|
|
+ style="width: 150px"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in linedata"
|
|
|
+ :key="item.LI_CODE"
|
|
|
+ :label="item.LI_CODE"
|
|
|
+ :value="item.LI_CODE"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
<span class="text"> </span>
|
|
|
- <span class="text">{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span>
|
|
|
+ <span class="text"
|
|
|
+ >{{ dateYear }} {{ dateWeek }} {{ dateDay }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="body-box">
|
|
|
-
|
|
|
-
|
|
|
+ <div>
|
|
|
+ <dv-border-box-12>
|
|
|
+ <chartLeft />
|
|
|
+ </dv-border-box-12>
|
|
|
+ <dv-border-box-12>
|
|
|
+ <chartRight />
|
|
|
+ </dv-border-box-12>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <dv-border-box-12>
|
|
|
+ <barLeft />
|
|
|
+ </dv-border-box-12>
|
|
|
+ <dv-border-box-12>
|
|
|
+ <barRight />
|
|
|
+ </dv-border-box-12>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -61,7 +123,11 @@
|
|
|
|
|
|
<script>
|
|
|
import drawMixin from "../../utils/drawMixin";
|
|
|
-import { formatTime } from '../../utils/index.js'
|
|
|
+import { formatTime } from "../../utils/index.js";
|
|
|
+import chartLeft from "./chartLeft.vue";
|
|
|
+import chartRight from "./chartRight.vue";
|
|
|
+import barLeft from "./barLeft.vue";
|
|
|
+import barRight from "./barRight.vue";
|
|
|
|
|
|
export default {
|
|
|
mixins: [drawMixin],
|
|
|
@@ -72,58 +138,136 @@ export default {
|
|
|
dateDay: null,
|
|
|
dateYear: null,
|
|
|
dateWeek: null,
|
|
|
- weekday: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
|
|
|
- decorationColor: ['#568aea', '#000000'],
|
|
|
+ weekday: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
|
|
|
+ decorationColor: ["#568aea", "#000000"],
|
|
|
isFullScreen: false,
|
|
|
- }
|
|
|
+ };
|
|
|
},
|
|
|
components: {
|
|
|
-
|
|
|
+ chartLeft,
|
|
|
+ chartRight,
|
|
|
+ barLeft,
|
|
|
+ barRight,
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getLines();
|
|
|
+ this.isFullScreen = !!document.fullscreenElement;
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.timeFn()
|
|
|
- this.cancelLoading()
|
|
|
+ this.timeFn();
|
|
|
+ this.cancelLoading();
|
|
|
this.$nextTick(() => {
|
|
|
- this.autoFullScreen()
|
|
|
- })
|
|
|
+ this.fullScreen();
|
|
|
+ });
|
|
|
},
|
|
|
beforeDestroy() {
|
|
|
- clearInterval(this.timing)
|
|
|
+ clearInterval(this.timing);
|
|
|
},
|
|
|
methods: {
|
|
|
timeFn() {
|
|
|
this.timing = setInterval(() => {
|
|
|
- this.dateDay = formatTime(new Date(), 'HH: mm: ss')
|
|
|
- this.dateYear = formatTime(new Date(), 'yyyy-MM-dd')
|
|
|
- this.dateWeek = this.weekday[new Date().getDay()]
|
|
|
- }, 1000)
|
|
|
+ this.dateDay = formatTime(new Date(), "HH: mm: ss");
|
|
|
+ this.dateYear = formatTime(new Date(), "yyyy-MM-dd");
|
|
|
+ this.dateWeek = this.weekday[new Date().getDay()];
|
|
|
+ }, 1000);
|
|
|
},
|
|
|
cancelLoading() {
|
|
|
setTimeout(() => {
|
|
|
- this.loading = false
|
|
|
- }, 5000)
|
|
|
+ this.loading = false;
|
|
|
+ }, 5000);
|
|
|
+ },
|
|
|
+ fullScreen() {
|
|
|
+ if (this.isFullScreen) return;
|
|
|
+
|
|
|
+ const element = document.documentElement;
|
|
|
+ if (element.requestFullscreen) {
|
|
|
+ element.requestFullscreen();
|
|
|
+ } else if (element.webkitRequestFullscreen) {
|
|
|
+ element.webkitRequestFullscreen();
|
|
|
+ } else if (element.msRequestFullscreen) {
|
|
|
+ element.msRequestFullscreen();
|
|
|
+ }
|
|
|
+ this.isFullScreen = true;
|
|
|
+ },
|
|
|
+ exitFullScreen() {
|
|
|
+ if (document.exitFullscreen) {
|
|
|
+ document.exitFullscreen();
|
|
|
+ } else if (document.webkitExitFullscreen) {
|
|
|
+ document.webkitExitFullscreen();
|
|
|
+ } else if (document.msExitFullscreen) {
|
|
|
+ document.msExitFullscreen();
|
|
|
+ }
|
|
|
+ this.isFullScreen = false;
|
|
|
+ },
|
|
|
+ getLines() {
|
|
|
+ this.$http.get("kanban/getLinesByWorkCenter.action?wccode=组装").then(
|
|
|
+ (res) => {
|
|
|
+ if (res.data.linedata) {
|
|
|
+ const data = res.data.linedata.concat({
|
|
|
+ LI_CODE: "所有",
|
|
|
+ LI_NAME: "所有",
|
|
|
+ });
|
|
|
+ if (
|
|
|
+ this.$cookie.get("AS_LI_CODE") &&
|
|
|
+ data.some(
|
|
|
+ (item) => item.LI_CODE === this.$cookie.get("AS_LI_CODE")
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ sessionStorage.setItem("li_code", this.$cookie.get("AS_LI_CODE"));
|
|
|
+ } else {
|
|
|
+ sessionStorage.setItem("li_code", data[0].LI_CODE);
|
|
|
+ this.$cookie.set("AS_LI_CODE", data[0].LI_CODE, {
|
|
|
+ expires: 30,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ this.linedata = data;
|
|
|
+ } else {
|
|
|
+ sessionStorage.setItem("li_code", "");
|
|
|
+ }
|
|
|
+ this.linecode = sessionStorage.getItem("li_code");
|
|
|
+ },
|
|
|
+ (result) => {
|
|
|
+ console.error(result);
|
|
|
+ }
|
|
|
+ );
|
|
|
},
|
|
|
- handleBlur(val) {
|
|
|
- sessionStorage.setItem('li_code', val);
|
|
|
- this.$cookie.set("PC_LI_CODE", val, {
|
|
|
- expires: 30,
|
|
|
- });
|
|
|
- location.reload();
|
|
|
- }
|
|
|
},
|
|
|
-}
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-@import '../../assets/scss/testShop.scss';
|
|
|
+@import "../../assets/scss/testShop.scss";
|
|
|
+
|
|
|
+.host-body {
|
|
|
+ .body-box {
|
|
|
+ width: 100%;
|
|
|
+ height: 900px;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ > div {
|
|
|
+ width: 100%;
|
|
|
+ height: 440px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ > div {
|
|
|
+ width: 50%;
|
|
|
+ height: 100%;
|
|
|
+ float: left;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
.dropdown {
|
|
|
font-size: 18px;
|
|
|
color: #568aea;
|
|
|
transform: skewX(45deg);
|
|
|
+ cursor: pointer;
|
|
|
|
|
|
::v-deep .el-select-dropdown {
|
|
|
border: 1px solid #0f1325;
|
|
|
- background: #04308D !important;
|
|
|
+ background: #04308d !important;
|
|
|
}
|
|
|
|
|
|
::v-deep .el-input__inner {
|