From fb6f82d799e5cbd789875e8f24d47413485ee8bd Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期五, 10 五月 2024 11:25:32 +0800
Subject: [PATCH] 1.综合看板开发
---
src/views/kanbanManager/zhkb.vue | 389 ++++++++++++++++++++++---------------------------------
1 files changed, 155 insertions(+), 234 deletions(-)
diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue
index 8306516..17f2448 100644
--- a/src/views/kanbanManager/zhkb.vue
+++ b/src/views/kanbanManager/zhkb.vue
@@ -6,7 +6,7 @@
<div class="kb_header">
<div class="kb_headTime" style="top: 35px;left: 20px">
- <span>娴欐睙闃块瞾鍏嬪仴韬櫒鏉愭湁闄愬叕鍙�</span>
+ <span>姘稿悍甯傚湥娌e浠跺姞宸ュ巶</span>
</div>
<div class="kb_headTime kb_header_text" style="top: 35px;left: 800px">
@@ -17,52 +17,50 @@
<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: 1000px;">
+ <div style="width: 925px;">
<div class="smallTitle">
<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-around">
- <div v-for="i in LeftTopData01" :key="i.wkshp_code" class="flex_c_s">
- <div class="all_block01 flex_c_s" style="width: 317px;">
- <div class="flex_c_c all_block02">{{ i.wkshp_name }}</div>
+ <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.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.inquantity }}</div>
</div>
</div>
</div>
</div>
- <div style="height: 280px;">
+
+ <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: 850px;">
+ <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>
@@ -76,32 +74,53 @@
</div>
</div>
</div>
-
</div>
<div style="height: 260px;">
<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: 1000px;">
+ <div style="width: 925px;">
<div class="smallTitle">
- <svg-icon icon-class="blcs" class="svg_class" />
- 璐ㄩ噺涓嶈壇(杩戜竴鍛�)
+ <svg-icon icon-class="cgdd" class="svg_class" />
+ 閲囪喘璁㈠崟(鏈�/瀛�)
</div>
- <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
- <div id="cjzl03" class="flex_c_c" style="width: 100%;height:100%" />
- </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_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="all03" class="flex_c_c" style="width: 100%;height:100%;" />
+ </div>
+
+ </dv-border-box-12>
+
</div>
- <div style="width: 850px;">
+ <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>
@@ -118,9 +137,9 @@
<div class="box02" />
<div>浜ф垚鍝�</div>
</div>
-
</div>
- </div>
+ </dv-border-box-12>
+
</div>
</div>
</div>
@@ -130,31 +149,29 @@
<script>
import './kbCommon.css'
-import { loadEcharts, all01, all02, cjzl03 } from '@/utils/myEcharts'
+import { loadEcharts, all02 } from '@/utils/myEcharts'
import {
WorkShopCompreLeftTop,
WorkShopCompreRightBottom,
WorkShopCompreRightTop,
- WorkShopProduceBottomLeftData
+ WorkShopCompreLeftBottom
} from '@/api/kanbanManager'
-import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
export default {
name: 'Cjsc',
data() {
return {
headTime: '',
- tableDataRightTop: [],
- wkshopArr: [],
- legendData: [],
LeftTopData01: [],
LeftTopData02: [],
RightTopData01: [],
RightTopData02: [],
- cjzl03_xData: [],
- cjzl03_yData: [],
+
+ LeftBottomData01: [],
+ LeftBottomData02: [],
+
RightBottom: {}
}
@@ -168,173 +185,97 @@
}, 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 res = await PrentOrganizationNoCompany()
- this.wkshopArr = res.data
-
- const temp = ['00301', '00302', '00303']
-
- temp.forEach(i => {
- const aa = this.wkshopArr.find(j => j.torg_code === i).torg_name
- this.legendData.push(aa)
- })
-
- const res2 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') })
- for (const res2Key in res2.data.LeftTop) {
- const data = {
- good_qty: 0,
- plan_qty: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res2Key)) {
- data.good_qty = res2.data.LeftTop[res2Key][0].good_qty
- data.plan_qty = res2.data.LeftTop[res2Key][0].plan_qty
- data.wkshp_code = res2.data.LeftTop[res2Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
- this.LeftTopData01.push(data)
- }
- }
- for (const res2Key in res2.data.LeftBottom) {
- const data = {
- quantity: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res2Key)) {
- data.quantity = res2.data.LeftBottom[res2Key][0].quantity
- data.plan_qty = res2.data.LeftBottom[res2Key][0].plan_qty
- data.wkshp_code = res2.data.LeftBottom[res2Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
- this.LeftTopData02.push(data)
- }
- }
- loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
-
- setInterval(() => {
- WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => {
- this.LeftTopData01 = []
- this.LeftTopData02 = []
- for (const res2Key in res2.data.LeftTop) {
- const data = {
- good_qty: 0,
- plan_qty: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res2Key)) {
- data.good_qty = res2.data.LeftTop[res2Key][0].good_qty
- data.plan_qty = res2.data.LeftTop[res2Key][0].plan_qty
- data.wkshp_code = res2.data.LeftTop[res2Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
- this.LeftTopData01.push(data)
- }
- }
- for (const res2Key in res2.data.LeftBottom) {
- const data = {
- quantity: 0,
- wkshp_code: '',
- wkshp_name: ''
- }
- if (temp.includes(res2Key)) {
- data.quantity = res2.data.LeftBottom[res2Key][0].quantity
- data.plan_qty = res2.data.LeftBottom[res2Key][0].plan_qty
- data.wkshp_code = res2.data.LeftBottom[res2Key][0].wkshp_code
- data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
- this.LeftTopData02.push(data)
- }
- }
- loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
- })
- }, 1000 * 30)
-
- 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
- })
+ getWorkShopCompreLeftTop() {
+ WorkShopCompreLeftTop().then(res2 => {
+ this.LeftTopData01 = []
+ this.LeftTopData02 = []
+ res2.data.LeftTop.forEach(i => {
+ this.LeftTopData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ inquantity: i.inquantity
})
- res3.data.RightBottom.forEach(i => {
- this.RightTopData02.push({
- Month: i.Month + '鏈�',
- quantity: i.quantity,
- ouquantity: i.ouquantity
- })
+ })
+ res2.data.LeftBottom.forEach(i => {
+ this.LeftTopData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.inquantity
})
- loadEcharts('all02', all02(this.RightTopData02))
})
- }, 1000 * 40)
-
- const res4 = await WorkShopProduceBottomLeftData({ wkshopcode: temp.join(',') })
- this.cjzl03_xData = res4.data[temp[0]].map(i => i.click_date)
- for (const res4Key in res4.data) {
- if (temp.includes(res4Key)) {
- const bb = res4.data[res4Key].map(i => i.count)
- this.cjzl03_yData.push(bb)
- }
- }
- loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
- setInterval(() => {
- WorkShopProduceBottomLeftData({ wkshopcode: temp.join(',') }).then(res4 => {
- this.cjzl03_yData = []
-
- this.cjzl03_xData = res4.data[temp[0]].map(i => i.click_date)
- for (const res4Key in res4.data) {
- if (temp.includes(res4Key)) {
- const bb = res4.data[res4Key].map(i => i.count)
- this.cjzl03_yData.push(bb)
- }
- }
- loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
- })
- }, 1000 * 50)
-
- const res5 = await WorkShopCompreRightBottom()
- this.RightBottom = res5.data
-
- setInterval(() => {
- WorkShopCompreRightBottom().then(res5 => {
- this.RightBottom = res5.data
- })
- }, 1000 * 60)
+ loadEcharts('all01', all02(this.LeftTopData02))
+ })
},
- // 鑾峰彇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
+ })
},
// 鑾峰彇褰撳墠鏃堕棿
@@ -352,26 +293,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'
- }
}
}
@@ -424,7 +345,7 @@
}
.all_block03 {
- width: 199px;
+ width: 220px;
height: 180px;
}
@@ -457,43 +378,43 @@
.all_block05 {
position: absolute;
- animation: upDown 3s ease-in-out infinite;
- left: 60px;
+ animation: upDown 5s ease-in-out infinite;
+ left: 80px;
}
.all_block06 {
position: absolute;
- animation: upDown2 3s ease-in-out infinite;
- left: 290px;
+ animation: upDown2 5s ease-in-out infinite;
+ left: 330px;
}
.all_block07 {
position: absolute;
- animation: upDown 3s ease-in-out infinite;
- left: 520px;
+ 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