From e9a02d180b91ee7a383d25d5e19853630026b4b1 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期四, 06 三月 2025 14:57:17 +0800
Subject: [PATCH] 1.看板修改
---
src/assets/images/bg3.webp | 0
src/views/login/index.vue | 71 +--
src/api/kanbanManager.js | 8
src/views/kanbanManager/zhkb_back.vue | 560 +++++++++++++++++++++++++++++++++++
src/views/kanbanManager/zhkb.vue | 116 ------
src/utils/myEcharts.js | 173 ++++++++++
6 files changed, 776 insertions(+), 152 deletions(-)
diff --git a/src/api/kanbanManager.js b/src/api/kanbanManager.js
index ec3a1e0..c89ab8e 100644
--- a/src/api/kanbanManager.js
+++ b/src/api/kanbanManager.js
@@ -93,3 +93,11 @@
method: 'get'
})
}
+
+// 杞﹂棿缁煎悎鐪嬫澘,宸︿笂鐢熶骇璁㈠崟宸ュ簭鎵ц鎯呭喌
+export function WorkShopCompreLeftTopCopy() {
+ return request({
+ url: 'KanBanManagerent/WorkShopCompreLeftTopCopy',
+ method: 'get'
+ })
+}
diff --git a/src/assets/images/bg3.webp b/src/assets/images/bg3.webp
new file mode 100644
index 0000000..4df6cdf
--- /dev/null
+++ b/src/assets/images/bg3.webp
Binary files differ
diff --git a/src/utils/myEcharts.js b/src/utils/myEcharts.js
index 3fb285e..aed1df6 100644
--- a/src/utils/myEcharts.js
+++ b/src/utils/myEcharts.js
@@ -2119,12 +2119,12 @@
return option
}
-export function all02(data) {
+export function all02(data, title) {
return {
backgroundColor: 'transparent',
// tooltip: {},
title: {
- text: '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺',
+ text: title,
left: '50%',
top: '0%',
textAlign: 'center',
@@ -3243,3 +3243,172 @@
}
return option
}
+
+export function bar3(data) {
+ const option = {
+ backgroundColor: 'transparent',
+ grid: {
+ left: '1%',
+ right: '4%',
+ bottom: '6%',
+ top: '20%',
+ containLabel: true
+ },
+ legend: { // 鍥句緥缁勪欢锛岄鑹插拰鍚嶅瓧
+ left: 'center',
+ top: 10,
+ itemGap: 16,
+ itemWidth: 18,
+ itemHeight: 10,
+ data: [{
+ name: '浠诲姟鏁�'
+ },
+ {
+ name: '瀹屽伐鏁�'
+ }],
+ textStyle: {
+ color: colorX,
+ fontStyle: 'normal',
+ fontFamily: '寰蒋闆呴粦',
+ fontSize: 16
+ }
+ },
+ xAxis: [
+ {
+ type: 'category',
+ // data: data.map(i => i.step_code),
+ data: data.map(i => i.stepname),
+ boundaryGap: true,
+ axisLabel: {
+ interval: 0,
+ formatter: '{value}',
+ fontSize: 16,
+ margin: 20,
+ textStyle: {
+ color: colorX
+ }
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: false
+ }
+ }
+ ],
+ yAxis: [
+ {
+ // max: Math.max(...data.map(i => i.plan_qty)) * 1.2,
+ boundaryGap: false,
+ splitNumber: 4,
+ type: 'value',
+ axisLabel: {
+ textStyle: {
+ fontSize: 18,
+ color: colorX
+ }
+ },
+ // name: '鍗�',
+ // nameTextStyle: {
+ // color: colorY,
+ // fontSize: 14,
+ // lineHeight: 20
+ // },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: true
+ }
+ }
+ ],
+ series: [
+ {
+ name: '浠诲姟鏁�',
+ type: 'bar',
+ data: data.map(i => i.plan_qty),
+ barWidth: 20,
+ barGap: 0, // 鏌遍棿璺濈
+ label: { // 鍥惧舰涓婄殑鏂囨湰鏍囩
+ normal: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ color: colorX,
+ fontStyle: 'normal',
+ fontFamily: '寰蒋闆呴粦',
+ fontSize: 16
+ }
+ }
+ },
+ itemStyle: { // 鍥惧舰鏍峰紡
+ normal: {
+ barBorderRadius: [5, 5, 0, 0],
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 1, color: 'rgba(127, 128, 225, 0.7)'
+ }, {
+ offset: 0.9, color: 'rgba(72, 73, 181, 0.7)'
+ }, {
+ offset: 0.31, color: 'rgba(0, 208, 208, 0.7)'
+ }, {
+ offset: 0.15, color: 'rgba(0, 208, 208, 0.7)'
+ }, {
+ offset: 0, color: 'rgba(104, 253, 255, 0.7)'
+ }], false)
+ }
+ }
+ },
+ {
+ name: '瀹屽伐鏁�',
+ type: 'bar',
+ data: data.map(i => i.good_qty),
+ barWidth: 20,
+ barGap: 1, // 鏌遍棿璺濈
+ label: { // 鍥惧舰涓婄殑鏂囨湰鏍囩
+ normal: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ color: colorX,
+ fontStyle: 'normal',
+ fontFamily: '寰蒋闆呴粦',
+ fontSize: 16
+ }
+ }
+ },
+ itemStyle: { // 鍥惧舰鏍峰紡
+ normal: {
+ barBorderRadius: [5, 5, 0, 0],
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 1, color: 'rgba(127, 128, 225, 0.7)'
+ }, {
+ offset: 0.9, color: 'rgba(72, 73, 181, 0.7)'
+ }, {
+ offset: 0.25, color: 'rgba(226, 99, 74, 0.7)'
+ }, {
+ offset: 0, color: 'rgba(253, 200, 106, 0.7)'
+ }], false)
+ }
+ }
+ }
+ ]
+ }
+ return option
+}
diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue
index 6563c7d..6f9041a 100644
--- a/src/views/kanbanManager/zhkb.vue
+++ b/src/views/kanbanManager/zhkb.vue
@@ -90,49 +90,13 @@
<div style="width: 925px;">
<div class="smallTitle">
<svg-icon icon-class="cxjg" class="svg_class" />
- 鐢熶骇璁㈠崟(褰撴湀)
+ 鍔犲伐宸ュ簭(杩�60澶�)
</div>
<div
class="lineContent horn"
style="height: 380px;display: flex;flex-direction: column;justify-content: space-between"
>
- <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly">
- <div v-for="i in LeftBottomData01" :key="i.wkshp_code" class="flex_c_s">
- <div class="all_block01 flex_c_s" style="width: 275px;">
- <div class="flex_c_c all_block02" style="">{{ i.wkshp_name }}</div>
- <div class="" style="display: flex;justify-content:space-between">
- <div class="all_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
- <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div>
- </div>
- <div class="" style="display: flex;justify-content:space-between">
- <div class="all_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div>
- <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div>
- </div>
- </div>
- </div>
-
- </div>
-
- <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly">
- <div v-for="i in LeftBottomData02" :key="i.wkshp_code" class="flex_c_s">
- <div class="all_block01 flex_c_s" style="width: 275px;">
- <div class="flex_c_c all_block02" style=" background: rgba(9, 216, 242, 0.2);">{{ i.wkshp_name }}</div>
- <div class="" style="display: flex;justify-content:space-between">
- <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">浠诲姟鏁�</div>
- <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.plan_qty }}</div>
- </div>
- <div class="" style="display: flex;justify-content:space-between">
- <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">鍏ュ簱鏁�</div>
- <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.quantity }}</div>
- </div>
- </div>
- </div>
-
- </div>
-
- <!-- <div style="height: 260px;">-->
- <!-- <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />-->
- <!-- </div>-->
+ <div id="bar3" class="flex_c_c" style="width: 100%;height:100%;" />
</div>
</div>
<div style="width: 925px;">
@@ -169,9 +133,13 @@
<script>
import './kbCommon.css'
-import { loadEcharts, all02, all03 } from '@/utils/myEcharts'
+import { loadEcharts, all02, bar3 } from '@/utils/myEcharts'
import {
- WorkShopCompreLeftBottom, WorkShopCompreLeftTop, WorkShopCompreRightBottom, WorkShopCompreRightTop
+ WorkShopCompreLeftBottom,
+ WorkShopCompreLeftTop,
+ WorkShopCompreLeftTopCopy,
+ WorkShopCompreRightBottom,
+ WorkShopCompreRightTop
} from '@/api/kanbanManager'
export default {
@@ -304,72 +272,12 @@
}, 1000 * 40)
// 宸︿笅 鐢熶骇璁㈠崟
- const res4 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') })
- for (const res4Key in res4.data.LeftTop) {
- const data = {
- good_qty: 0,
- plan_qty: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res4Key)) {
- data.good_qty = res4.data.LeftTop[res4Key][0].good_qty
- data.plan_qty = res4.data.LeftTop[res4Key][0].plan_qty
- data.wkshp_code = res4.data.LeftTop[res4Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
- this.LeftBottomData01.push(data)
- }
- }
- for (const res4Key in res4.data.LeftBottom) {
- const data = {
- quantity: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res4Key)) {
- data.quantity = res4.data.LeftBottom[res4Key][0].quantity
- data.plan_qty = res4.data.LeftBottom[res4Key][0].plan_qty
- data.wkshp_code = res4.data.LeftBottom[res4Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
- this.LeftBottomData02.push(data)
- }
- }
- // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02))
+ const res4 = await WorkShopCompreLeftTopCopy()
+ loadEcharts('bar3', bar3(res4.data))
setInterval(() => {
- WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => {
- this.LeftBottomData01 = []
- this.LeftBottomData02 = []
- for (const res4Key in res4.data.LeftTop) {
- const data = {
- good_qty: 0,
- plan_qty: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res4Key)) {
- data.good_qty = res2.data.LeftTop[res4Key][0].good_qty
- data.plan_qty = res2.data.LeftTop[res4Key][0].plan_qty
- data.wkshp_code = res2.data.LeftTop[res4Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
- this.LeftBottomData01.push(data)
- }
- }
- for (const res4Key in res2.data.LeftBottom) {
- const data = {
- quantity: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res4Key)) {
- data.quantity = res2.data.LeftBottom[res4Key][0].quantity
- data.plan_qty = res2.data.LeftBottom[res4Key][0].plan_qty
- data.wkshp_code = res2.data.LeftBottom[res4Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
- this.LeftBottomData02.push(data)
- }
- }
- // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02))
+ WorkShopCompreLeftTopCopy().then(res4 => {
+ loadEcharts('bar3', bar3(res4.data))
})
}, 1000 * 30)
diff --git a/src/views/kanbanManager/zhkb_back.vue b/src/views/kanbanManager/zhkb_back.vue
new file mode 100644
index 0000000..6563c7d
--- /dev/null
+++ b/src/views/kanbanManager/zhkb_back.vue
@@ -0,0 +1,560 @@
+<template>
+ <div>
+ <div class="kb_dashboard" style="display:flex;flex-direction: column;justify-content: space-between">
+
+ <div class="kb_backgroundCustom" />
+
+ <div class="kb_header">
+ <div class="kb_headTime" style="top: 35px;left: 20px">
+ <span>姘稿悍甯傛柊鍏夌伅鍏锋湁闄愬叕鍙�</span>
+ </div>
+
+ <div class="kb_headTime kb_header_text" style="top: 35px;left: 800px">
+ <span>杞﹂棿缁煎悎鏁板瓧鍖栫湅鏉�</span>
+ </div>
+
+ <div class="kb_headTime" style="top: 35px;right: 25px">
+ <span>{{ headTime }}</span>
+ </div>
+ </div>
+ <div
+ style=" padding:5px 20px 20px 20px;z-index:2;height: 940px;flex-direction: column;justify-content: space-between;"
+ >
+ <!-- 涓婅竟-->
+ <div style="display: flex;justify-content: space-between">
+ <div style="width: 925px;">
+ <div class="smallTitle">
+ <svg-icon icon-class="blcs" class="svg_class" />
+ 閲囪喘璁㈠崟(鏈�/瀛�)
+ </div>
+ <div
+ class="lineContent horn"
+ style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
+ >
+ <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between">
+
+ <div v-for="i in LeftTopData01" :key="i.Quarter" class="flex_c_s">
+ <div class="all_block03 flex_c_s">
+ <div class="flex_c_c all_block04">{{ i.Quarter }}</div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block04 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
+ <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.quantity }}</div>
+ </div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block04 flex_c_c" style="width: 49% ">鍏ュ簱鏁�</div>
+ <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.ouquantity }}</div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <div style="height: 260px;">
+ <div id="all02_1" class="flex_c_c" style="width: 100%;height:100%;" />
+ </div>
+ </div>
+ </div>
+ <div style="width: 925px;">
+ <div class="smallTitle">
+ <svg-icon icon-class="cggz" class="svg_class" />
+ 閿�鍞鍗�(鏈�/瀛�)
+ </div>
+ <div
+ class="lineContent horn"
+ style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
+ >
+ <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between">
+
+ <div v-for="i in RightTopData01" :key="i.Quarter" class="flex_c_s">
+ <div class="all_block03 flex_c_s">
+ <div class="flex_c_c all_block04">{{ i.Quarter }}</div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block04 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
+ <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.quantity }}</div>
+ </div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block04 flex_c_c" style="width: 49% ">鍑哄簱鏁�</div>
+ <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.ouquantity }}</div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <div style="height: 260px;">
+ <div id="all02" class="flex_c_c" style="width: 100%;height:100%;" />
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- 涓嬭竟-->
+ <div style="display: flex;justify-content: space-between;margin-top: 15px;">
+ <div style="width: 925px;">
+ <div class="smallTitle">
+ <svg-icon icon-class="cxjg" class="svg_class" />
+ 鐢熶骇璁㈠崟(褰撴湀)
+ </div>
+ <div
+ class="lineContent horn"
+ style="height: 380px;display: flex;flex-direction: column;justify-content: space-between"
+ >
+ <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly">
+ <div v-for="i in LeftBottomData01" :key="i.wkshp_code" class="flex_c_s">
+ <div class="all_block01 flex_c_s" style="width: 275px;">
+ <div class="flex_c_c all_block02" style="">{{ i.wkshp_name }}</div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
+ <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div>
+ </div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div>
+ <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <div style="height: 180px;padding: 10px;display: flex;justify-content: space-evenly">
+ <div v-for="i in LeftBottomData02" :key="i.wkshp_code" class="flex_c_s">
+ <div class="all_block01 flex_c_s" style="width: 275px;">
+ <div class="flex_c_c all_block02" style=" background: rgba(9, 216, 242, 0.2);">{{ i.wkshp_name }}</div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">浠诲姟鏁�</div>
+ <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.plan_qty }}</div>
+ </div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">鍏ュ簱鏁�</div>
+ <div class="all_block02 flex_c_c" style="width: 49% ;background: rgba(9, 216, 242, 0.2)">{{ i.quantity }}</div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <!-- <div style="height: 260px;">-->
+ <!-- <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />-->
+ <!-- </div>-->
+ </div>
+ </div>
+ <div style="width: 925px;">
+ <div class="smallTitle">
+ <svg-icon icon-class="ckkc" class="svg_class" />
+ 浠撳簱搴撳瓨
+ </div>
+ <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
+ <div style="display: flex;justify-content: center;position: relative">
+ <div class="kb_center_block_children all_block05">
+ <div style="font-size: 24px;">{{ parseFloat(RightBottom.Y) }}</div>
+ <div class="box02" />
+ <div>鍘熸潗鏂�</div>
+ </div>
+ <div class="kb_center_block_children all_block06">
+ <div style="font-size: 24px;">{{ parseFloat(RightBottom.B) }}</div>
+ <div class="box02" />
+ <div>鍗婃垚鍝�</div>
+ </div>
+ <div class="kb_center_block_children all_block07">
+ <div style="font-size: 24px;">{{ parseFloat(RightBottom.C) }}</div>
+ <div class="box02" />
+ <div>浜ф垚鍝�</div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import './kbCommon.css'
+import { loadEcharts, all02, all03 } from '@/utils/myEcharts'
+import {
+ WorkShopCompreLeftBottom, WorkShopCompreLeftTop, WorkShopCompreRightBottom, WorkShopCompreRightTop
+} from '@/api/kanbanManager'
+
+export default {
+ name: 'Cjsc',
+ data() {
+ return {
+ headTime: '',
+ tableDataRightTop: [],
+ wkshopArr: [],
+ legendData: [],
+
+ LeftTopData01: [],
+ LeftTopData02: [],
+
+ RightTopData01: [],
+ RightTopData02: [],
+
+ LeftBottomData01: [],
+ LeftBottomData02: [],
+
+ RightBottom: {}
+
+ }
+ },
+ created() {
+ setInterval(this.getNowTime, 1000)
+
+ // // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+ setInterval(() => {
+ window.location.reload()
+ }, 1000 * 60 * 120)
+ },
+ mounted() {
+ this.getAllApi()
+ },
+ methods: {
+ async getAllApi() {
+ // const { data: res } = await ShopSearch()
+ const res = [
+ { org_code: '1501', org_name: '鏈ㄦ枡杞﹂棿' },
+ { org_code: '1502', org_name: '瑁呴厤杞﹂棿' },
+ { org_code: '1503', org_name: '鍘嬮摳杞﹂棿' }
+
+ ]
+ this.wkshopArr = res
+ const temp = this.wkshopArr.map(i => i.org_code)
+ // const temp = this.wkshopArr.map(i => i.org_code)
+
+ temp.forEach(i => {
+ const aa = this.wkshopArr.find(j => j.org_code === i).org_name
+ this.legendData.push(aa)
+ })
+
+ // 宸︿笂 閲囪喘璁㈠崟
+ const res2 = await WorkShopCompreLeftBottom()
+ res2.data.BottomLeftTop.forEach(i => {
+ this.LeftTopData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ res2.data.BottomLeftBottom.forEach(i => {
+ this.LeftTopData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ loadEcharts('all02_1', all02(this.LeftTopData02, '姣忔湀閲囪喘鏁伴噺/鍏ュ簱鏁伴噺'))
+ setInterval(() => {
+ this.LeftTopData01 = []
+ this.LeftTopData02 = []
+ WorkShopCompreLeftBottom().then(res2 => {
+ res2.data.BottomLeftTop.forEach(i => {
+ this.LeftTopData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ res2.data.BottomLeftBottom.forEach(i => {
+ this.LeftTopData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ loadEcharts('all02_1', all02(this.LeftTopData02, '姣忔湀閲囪喘鏁伴噺/鍏ュ簱鏁伴噺'))
+ })
+ }, 1000 * 35)
+
+ // 鍙充笂 閿�鍞鍗�
+ const res3 = await WorkShopCompreRightTop()
+ res3.data.RightTop.forEach(i => {
+ this.RightTopData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ res3.data.RightBottom.forEach(i => {
+ this.RightTopData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ loadEcharts('all02', all02(this.RightTopData02, '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺'))
+ setInterval(() => {
+ WorkShopCompreRightTop().then(res3 => {
+ this.RightTopData01 = []
+ this.RightTopData02 = []
+ res3.data.RightTop.forEach(i => {
+ this.RightTopData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ res3.data.RightBottom.forEach(i => {
+ this.RightTopData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ loadEcharts('all02', all02(this.RightTopData02, '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺'))
+ })
+ }, 1000 * 40)
+
+ // 宸︿笅 鐢熶骇璁㈠崟
+ const res4 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') })
+ for (const res4Key in res4.data.LeftTop) {
+ const data = {
+ good_qty: 0,
+ plan_qty: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res4Key)) {
+ data.good_qty = res4.data.LeftTop[res4Key][0].good_qty
+ data.plan_qty = res4.data.LeftTop[res4Key][0].plan_qty
+ data.wkshp_code = res4.data.LeftTop[res4Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftBottomData01.push(data)
+ }
+ }
+ for (const res4Key in res4.data.LeftBottom) {
+ const data = {
+ quantity: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res4Key)) {
+ data.quantity = res4.data.LeftBottom[res4Key][0].quantity
+ data.plan_qty = res4.data.LeftBottom[res4Key][0].plan_qty
+ data.wkshp_code = res4.data.LeftBottom[res4Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftBottomData02.push(data)
+ }
+ }
+ // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02))
+
+ setInterval(() => {
+ WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => {
+ this.LeftBottomData01 = []
+ this.LeftBottomData02 = []
+ for (const res4Key in res4.data.LeftTop) {
+ const data = {
+ good_qty: 0,
+ plan_qty: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res4Key)) {
+ data.good_qty = res2.data.LeftTop[res4Key][0].good_qty
+ data.plan_qty = res2.data.LeftTop[res4Key][0].plan_qty
+ data.wkshp_code = res2.data.LeftTop[res4Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftBottomData01.push(data)
+ }
+ }
+ for (const res4Key in res2.data.LeftBottom) {
+ const data = {
+ quantity: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res4Key)) {
+ data.quantity = res2.data.LeftBottom[res4Key][0].quantity
+ data.plan_qty = res2.data.LeftBottom[res4Key][0].plan_qty
+ data.wkshp_code = res2.data.LeftBottom[res4Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftBottomData02.push(data)
+ }
+ }
+ // loadEcharts('all01', all03(this.legendData, this.LeftBottomData02))
+ })
+ }, 1000 * 30)
+
+ // 鍙充笅 浠撳簱搴撳瓨
+ const res5 = await WorkShopCompreRightBottom()
+ this.RightBottom = res5.data
+
+ setInterval(() => {
+ WorkShopCompreRightBottom().then(res5 => {
+ this.RightBottom = res5.data
+ })
+ }, 1000 * 60)
+ },
+
+ // 鑾峰彇Echarts
+ getEcharts() {
+ // loadEcharts('cjzl01', cjzl01(this.cjzl01Data))
+
+ // loadEcharts('cjzl02_1', cjzl02(this.cjzl02_1Title, this.cjzl02_1Data))
+ // loadEcharts('cjzl02_2', cjzl02(this.cjzl02_2Title, this.cjzl02_2Data))
+ // loadEcharts('cjzl02_3', cjzl02(this.cjzl02_3Title, this.cjzl02_3Data))
+ // loadEcharts('cjzl02_4', cjzl02(this.cjzl02_4Title, this.cjzl02_4Data))
+ // loadEcharts('cjzl02_5', cjzl02(this.cjzl02_5Title, this.cjzl02_5Data))
+
+ // loadEcharts('cjzl04', cjzl04(this.legendData, this.cjzl04Data[0], this.cjzl04Data[1], this.cjzl04Data[2]))// 鍙充晶
+ // loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData))// 宸︿晶
+ },
+
+ // 鑾峰彇褰撳墠鏃堕棿
+ getNowTime() {
+ const dt = new Date()
+ const wk = dt.getDay()
+ const y = dt.getFullYear()
+ const m = (dt.getMonth() + 1 + '').padStart(2, '0')
+ const d = (dt.getDate() + '').padStart(2, '0')
+
+ const hh = (dt.getHours() + '').padStart(2, '0')
+ const mm = (dt.getMinutes() + '').padStart(2, '0')
+ const ss = (dt.getSeconds() + '').padStart(2, '0')
+ const weeks = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�']
+ const week = weeks[wk]
+
+ this.headTime = `${y}-${m}-${d} ${hh}:${mm}:${ss} ${week}`
+ },
+ headerCellStyle() {
+ return {
+ backgroundColor: 'transparent ',
+ padding: '10px 0',
+ textAlign: 'center',
+ color: '#07acc2',
+ border: 'none',
+ fontSize: '20px'
+ }
+ },
+ cellStyle() {
+ return {
+ padding: '7px 0',
+ textAlign: 'center',
+ backgroundColor: 'transparent ',
+ color: '#c7e7ff',
+ border: 'none',
+ fontSize: '20px'
+ }
+ }
+
+ }
+
+}
+</script>
+
+<style lang="scss" scoped>
+$main_color: #09d8f2;
+$color01: #00FFFF;
+.tableData {
+ background: transparent;
+}
+
+.el-table::before {
+ height: 0;
+}
+
+.el-table__empty-text {
+ color: $main_color;
+}
+
+.tableDataCell {
+ ::v-deep .cell {
+ padding: 0 2px;
+ }
+}
+
+::v-deep .el-table__body-wrapper::-webkit-scrollbar {
+ /* width: 0;瀹藉害涓�0鏆楄棌 */
+ width: 0;
+ background: transparent;
+}
+
+::v-deep .el-table th,
+::v-deep .el-table tr,
+::v-deep .el-table td {
+ background-color: transparent;
+}
+
+.all_block01 {
+ width: 187px;
+ height: 180px;
+}
+
+.all_block02 {
+ width: 100%;
+ height: 49px;
+ background: rgba(9, 216, 242, 0.1);
+}
+
+.all_block03 {
+ width: 199px;
+ height: 180px;
+}
+
+.all_block04 {
+ width: 100%;
+ height: 49px;
+ background: rgba(9, 216, 242, 0.1);
+}
+
+.kb_center_block_children {
+ height: 180px;
+ //border: 1px solid $kbBorderColor;
+ width: 240px;
+ display: flex;
+ z-index: 2;
+ justify-content: space-around;
+ align-items: center;
+ flex-direction: column;
+ margin: 10px;
+ font-size: 22px;
+
+ .box02 {
+ background: url("../../assets/images/box02.png") no-repeat;
+ transform: scale(1.5);
+ width: 145px;
+ height: 84px;
+
+ }
+}
+
+.all_block05 {
+ position: absolute;
+ animation: upDown 3s ease-in-out infinite;
+ left: 60px;
+}
+
+.all_block06 {
+ position: absolute;
+ animation: upDown2 3s ease-in-out infinite;
+ left: 290px;
+}
+
+.all_block07 {
+ position: absolute;
+ animation: upDown 3s ease-in-out infinite;
+ left: 520px;
+}
+
+@keyframes upDown {
+ 0% {
+ top: 50px;
+ }
+ 50% {
+ top: 100px;
+ }
+ 100% {
+ top: 50px;
+ }
+}
+
+@keyframes upDown2 {
+ 0% {
+ top: 100px;
+ }
+ 50% {
+ top: 50px;
+ }
+ 100% {
+ top: 100px;
+ }
+}
+</style>
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 0398046..395054e 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -1,44 +1,7 @@
<template>
<div class="login-container">
+ <div class="bg" />
<div class="login-container-center">
- <el-carousel
- :autoplay="true"
- indicator-position="outside"
- height="580px"
- :interval="3000"
- style="width: 500px;margin-left: 20px"
- >
- <el-carousel-item>
- <img src="@/assets/images/img1.png" style="margin-top: -30px">
- <div class="itemLabel">
- <p class="title" :style="{color:$store.state.settings.theme}">鏅烘収鐗╄仈</p>
- <p class="content">鐢熶骇鐜板満鏁版嵁瀹炴椂閲囬泦銆� 浼犻�掋�佸缁村害鍙鍖栧憟鐜�</p>
- </div>
- </el-carousel-item>
- <el-carousel-item>
- <img src="@/assets/images/img2.png" style="margin-top: -30px">
- <div class="itemLabel">
- <p class="title" :style="{color:$store.state.settings.theme}">绮剧泭鎬濈淮</p>
- <p class="content">杩愮敤绮剧泭鎬濇兂鍜孖T绯荤粺鎶� 鏈墦閫犲伐鍘傚埗閫犲崗鍚屽钩鍙�</p>
- </div>
- </el-carousel-item>
- <el-carousel-item>
- <img src="@/assets/images/img3.png" style="margin-top: -30px">
- <div class="itemLabel">
- <p class="title" :style="{color:$store.state.settings.theme}">琛屼笟缁勪欢</p>
- <p class="content">鍩轰簬鍒堕�犳ā鍨嬪揩閫熺伒娲诲湴 閰嶇疆瀹㈡埛涓撳睘鐨勫簲鐢ㄥ満鏅�</p>
- </div>
- </el-carousel-item>
- <!-- <el-carousel-item v-for="item in carouselArr" :key="item.title">-->
- <!-- <div :style="{ width:'200px',height:'300px' ,margin:'95px 0px 35px 155px'}">-->
- <!-- <img :src="item.url" alt="" style="width: 200px;height: 300px">-->
- <!-- </div>-->
- <!-- <div class="itemLabel">-->
- <!-- <div class="title">{{ item.title }}</div>-->
- <!-- <div class="content">{{ item.content }}</div>-->
- <!-- </div>-->
- <!-- </el-carousel-item>-->
- </el-carousel>
<el-form
ref="loginForm"
@@ -105,7 +68,8 @@
<el-button
:loading="loading"
type="primary"
- style="width:100%;margin-top:30px;letter-spacing: 10px;height: 40px;"
+ style="width:100%;margin-top:30px;letter-spacing: 10px;height: 40px;
+ background: #6e67fe !important;"
@click.native.prevent="handleLogin"
>鐧诲綍
</el-button>
@@ -341,23 +305,38 @@
min-height: 100%;
width: 100%;
//background-color: $bg;
+ background-color: #6e67fe;
overflow: hidden;
- background: url("../../assets/images/login_bg.png") no-repeat;
- background-size: 100% 100%;
- opacity: 1;
+ //background: url("../../assets/images/login_bg.png") no-repeat;
+ //background: url("../../assets/images/bg3.webp") no-repeat;
+ //background-size: 100% 100%;
+ //opacity: 1;
+
+ .bg{
+ background: url("../../assets/images/bg3.webp") no-repeat;
+ background-size: 100% 100%;
+ width: 60vw;
+ height: 100vh;
+ //margin-top: 10vh;
+
+ }
.login-container-center {
- width: 1000px;
+ //width: 1000px;
+ width: 546px;
height: 600px;
background-color: #fff;
border-radius: 10px;
z-index: 0.5;
//浣跨洅瀛愬眳涓�
position: absolute;
- left: 50%;
- top: 50%;
- transform: translate(-50%, -50%);
+ right: 5vw;
+ top: calc(50vh - 300px);
+ //left: 50%;
+ //top: 50%;
+ //transform: translate(-50%, -50%);
+ //transform: scale(0.9);
.itemLabel {
display: flex;
justify-content: center;
--
Gitblit v1.9.3