From 9a4c8548e3bb761cec5fc508650b727a345f9009 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期二, 18 二月 2025 16:55:43 +0800
Subject: [PATCH] 1.大岛2.0看板重构
---
src/views/kanbanManager/zhkb.vue | 427 +++++++++++++++++++++++-----------------------------
1 files changed, 189 insertions(+), 238 deletions(-)
diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue
index 1512f7c..1526df9 100644
--- a/src/views/kanbanManager/zhkb.vue
+++ b/src/views/kanbanManager/zhkb.vue
@@ -10,13 +10,14 @@
</div>
<div class="kb_headTime kb_header_text" style="top: 35px;left: 800px">
- <span>妗ヤ笅缁煎悎鏁板瓧鍖栫湅鏉�</span>
+ <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;"
>
@@ -24,46 +25,56 @@
<div style="display: flex;justify-content: space-between">
<div style="width: 925px;">
<div class="smallTitle">
- <svg-icon icon-class="blcs" class="svg_class" />
- 閲囪喘璁㈠崟(鏈�/瀛�)
+ <svg-icon icon-class="cxjg" 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">
+ <dv-border-box-12 style="height: 415px;">
+ <div style="height: 180px;padding: 10px;display: flex; justify-content: space-around;">
+ <div v-for="i in LeftTopData01" :key="i.wkshp_code" class="flex_c_s">
<div class="all_block03 flex_c_s">
- <div class="flex_c_c all_block04">{{ i.Quarter }}</div>
+ <div class="flex_c_c all_block04">{{ i.wkshp_name }}</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 class="all_block04 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</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 class="all_block04 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div>
+ <div class="all_block04 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-around;margin-top: 20px;">
+ <div v-for="i in LeftTopData02" :key="i.wkshp_code" class="flex_c_s">
+ <div class="all_block03 flex_c_s">
+ <div class="flex_c_c all_block04">{{ i.wkshp_name }}</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.plan_qty }}</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.quantity }}</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 style="height: 260px;">-->
+ <!-- <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />-->
+ <!-- </div>-->
+ </dv-border-box-12>
+
</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">
+ <dv-border-box-12 style="height: 415px;">
+ <div style="height: 180px;padding: 10px;display: flex; justify-content: space-around;">
<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>
@@ -77,71 +88,72 @@
</div>
</div>
</div>
-
</div>
- <div style="height: 260px;">
+ <div style="height: 220px;">
<div id="all02" class="flex_c_c" style="width: 100%;height:100%;" />
</div>
- </div>
+ </dv-border-box-12>
+
</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" />
- 鐢熶骇璁㈠崟(褰撴湀)
+ <svg-icon icon-class="cgdd" 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>
+
+ <dv-border-box-12 style="height: 415px;display:flex;">
+
+ <div style="height: 180px;padding: 10px;display: flex; justify-content: space-around;">
+ <div v-for="i in LeftBottomData01" :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_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
- <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div>
+ <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_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div>
- <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div>
+ <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: 220px;">
+ <div id="all03" class="flex_c_c" style="width: 100%;height:100%;" />
+ </div>
- </div>
- <div style="height: 260px;">
- <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />
- </div>
- </div>
+ </dv-border-box-12>
+
</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">
+
+ <dv-border-box-12 style="height: 415px;">
<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 style="font-size: 24px;">{{ RightBottom? parseFloat(RightBottom.Y):'NaN' }}</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 style="font-size: 24px;">{{ RightBottom? parseFloat(RightBottom.B):'NaN' }}</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 style="font-size: 24px;">{{ RightBottom? parseFloat(RightBottom.C):'NaN' }}</div>
<div class="box02" />
<div>浜ф垚鍝�</div>
</div>
-
</div>
- </div>
+ </dv-border-box-12>
+
</div>
</div>
</div>
@@ -151,9 +163,12 @@
<script>
import './kbCommon.css'
-import { loadEcharts, all02, all03 } from '@/utils/myEcharts'
+import { loadEcharts, all02 } from '@/utils/myEcharts'
import {
- WorkShopCompreLeftBottom, WorkShopCompreLeftTop, WorkShopCompreRightBottom, WorkShopCompreRightTop
+ WorkShopCompreLeftTop,
+ WorkShopCompreRightBottom,
+ WorkShopCompreRightTop,
+ WorkShopCompreLeftBottom
} from '@/api/kanbanManager'
export default {
@@ -161,9 +176,6 @@
data() {
return {
headTime: '',
- tableDataRightTop: [],
- wkshopArr: [],
- legendData: [],
LeftTopData01: [],
LeftTopData02: [],
@@ -187,141 +199,75 @@
}, 1000 * 60 * 120)
},
mounted() {
- this.getAllApi()
+ this.getWorkShopCompreLeftTop()
+ setInterval(() => {
+ this.getWorkShopCompreLeftTop()
+ }, 10 * 1000)
+
+ this.getWorkShopCompreRightTop()
+ setInterval(() => {
+ this.getWorkShopCompreRightTop()
+ }, 15 * 1000)
+
+ this.getWorkShopCompreLeftBottom()
+ setInterval(() => {
+ this.getWorkShopCompreLeftBottom()
+ }, 20 * 1000)
+
+ this.getWorkShopCompreRightBottom()
+ setInterval(() => {
+ this.getWorkShopCompreRightBottom()
+ }, 25 * 1000)
},
methods: {
- async getAllApi() {
- // const { data: res } = await ShopSearch()
+ getWorkShopCompreLeftTop() {
const res = [
- { org_code: '101', org_name: '鍙戞场杞﹂棿' },
- { org_code: '102', org_name: '鎸ゅ嚭杞﹂棿' }
-
+ { org_code: 'CJ001', org_name: '瑁呴厤杞﹂棿' },
+ { org_code: 'CJ002', org_name: '鐢垫睜杞﹂棿' },
+ { org_code: 'CJ003', 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 temp = ['CJ001', 'CJ002', 'CJ003']
- // 宸︿笂 閲囪喘璁㈠崟
- 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(() => {
+ WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => {
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
- })
+ for (const res4Key in res2.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 = res.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftTopData01.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 = res.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftTopData02.push(data)
+ }
+ }
})
- 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) {
+ this.LeftTopData01 = []
+ this.LeftTopData02 = []
+ for (const res4Key in res2.data.LeftTop) {
const data = {
good_qty: 0,
plan_qty: 0,
@@ -332,8 +278,8 @@
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)
+ data.wkshp_name = res.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftTopData01.push(data)
}
}
for (const res4Key in res2.data.LeftBottom) {
@@ -346,37 +292,62 @@
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)
+ data.wkshp_name = res.find(i => i.org_code === data.wkshp_code).org_name
+ this.LeftTopData02.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))
+ getWorkShopCompreRightTop() {
+ 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))
+ })
+ },
- // 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))
+ getWorkShopCompreLeftBottom() {
+ WorkShopCompreLeftBottom().then(res3 => {
+ this.LeftBottomData01 = []
+ this.LeftBottomData02 = []
+ res3.data.BottomLeftTop.forEach(i => {
+ this.LeftBottomData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ res3.data.BottomLeftBottom.forEach(i => {
+ this.LeftBottomData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ loadEcharts('all03', all02(this.LeftBottomData02))
+ })
+ },
- // 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))// 宸︿晶
+ getWorkShopCompreRightBottom() {
+ WorkShopCompreRightBottom().then(res5 => {
+ this.RightBottom = res5.data
+ })
},
// 鑾峰彇褰撳墠鏃堕棿
@@ -394,26 +365,6 @@
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'
- }
}
}
@@ -455,7 +406,7 @@
}
.all_block01 {
- width: 187px;
+ width: 237px;
height: 180px;
}
@@ -466,7 +417,7 @@
}
.all_block03 {
- width: 199px;
+ width: 220px;
height: 180px;
}
@@ -499,43 +450,43 @@
.all_block05 {
position: absolute;
- animation: upDown 3s ease-in-out infinite;
- left: 70px;
+ animation: upDown 5s ease-in-out infinite;
+ left: 80px;
}
.all_block06 {
position: absolute;
- animation: upDown2 3s ease-in-out infinite;
- left: 320px;
+ animation: upDown2 5s ease-in-out infinite;
+ left: 330px;
}
.all_block07 {
position: absolute;
- animation: upDown 3s ease-in-out infinite;
- left: 570px;
+ animation: upDown 5s ease-in-out infinite;
+ left: 580px;
}
@keyframes upDown {
0% {
- top: 50px;
+ top: 75px;
}
50% {
- top: 100px;
+ top: 150px;
}
100% {
- top: 50px;
+ top: 75px;
}
}
@keyframes upDown2 {
0% {
- top: 100px;
+ top: 150px;
}
50% {
- top: 50px;
+ top: 75px;
}
100% {
- top: 100px;
+ top: 150px;
}
}
</style>
--
Gitblit v1.9.3