From b1876ef3cdcb819e4799fe0d5c84f95bdb96529b Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期四, 09 五月 2024 16:13:04 +0800
Subject: [PATCH] 1.车间看板开发
---
src/views/kanbanManager/cj.vue | 432 +++++++++++++++--------------------------------------
1 files changed, 122 insertions(+), 310 deletions(-)
diff --git a/src/views/kanbanManager/cj.vue b/src/views/kanbanManager/cj.vue
index eafa9fb..7404a26 100644
--- a/src/views/kanbanManager/cj.vue
+++ b/src/views/kanbanManager/cj.vue
@@ -6,17 +6,18 @@
<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">
- <span>{{ title }}鏁板瓧鍖栫湅鏉�</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;"
>
@@ -27,94 +28,20 @@
<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"
- >
- <el-table
- ref="tableDataLeftCenterRef"
- :data="tableDataCenterTop"
- class="tableData tableDataCell"
- style="width: 100%;"
- :header-cell-style="headerCellStyle"
- :cell-style="cellStyle"
- height="500"
- >
- <el-table-column
- prop="wo_code"
- label="宸ュ崟鍙�"
- width="220"
+ <div style="height: 450px">
+ <dv-border-box-12>
+ <dv-scroll-board
+ ref="scrollBoardTop"
+ :config="configTableTop"
+ style="width: 99%;height: 430px;margin:0 auto;padding-top: 13px;"
/>
- <el-table-column
- prop="partcode"
- label="浜у搧缂栫爜"
- width="160"
- />
- <el-table-column
- prop="partname"
- label="浜у搧鍚嶇О"
- width="160"
- />
- <el-table-column
- prop="partspec"
- label="浜у搧瑙勬牸"
- width="160"
- >
- <template slot-scope="{row}">
- {{ row.partspec ? row.partspec : '/' }}
- </template>
- </el-table-column>
- <el-table-column
- prop="plan_qty"
- label="浠诲姟鏁伴噺"
- width="120"
- />
- <el-table-column
- prop="good_qty"
- label="鍚堟牸鏁伴噺"
- width="120"
- />
- <el-table-column
- prop="ng_qty"
- label="涓嶈壇鏁伴噺"
- width="120"
- />
- <el-table-column
- prop="laborbad_qty"
- label="宸ュ簾鏁伴噺"
- width="120"
- />
- <el-table-column
- prop="materielbad_qty"
- label="鏂欏簾鏁伴噺"
- width="120"
- />
- <el-table-column
- prop="seq"
- label="宸ュ簭椤哄簭"
- width="120"
- />
- <el-table-column
- prop="step_code"
- label="宸ュ簭缂栫爜"
- width="120"
- />
- <el-table-column
- prop="step_name"
- label="宸ュ簭鍚嶇О"
- width="120"
- />
- <el-table-column
- prop="schedule"
- label="瀹屾垚杩涘害(%)"
- width="213"
- />
- </el-table>
+ </dv-border-box-12>
</div>
- </div>
+ </div>
</div>
+
<!-- 涓嬭竟-->
<div style="display: flex;justify-content: space-between;margin-top: 15px;">
<div style="width: 1000px;">
@@ -122,18 +49,23 @@
<svg-icon icon-class="blcs" 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 style="height: 380px;">
+ <dv-border-box-12>
+ <div id="cjzl03" class="flex_c_c" style="width: 100%;height:100%" />
+ </dv-border-box-12>
</div>
+
</div>
<div style="width: 850px;">
<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 id="cjzl04" class="flex_c_c" style="width: 100%;height:100%" />
+ <div style="height: 380px;">
+ <dv-border-box-12>
+ <div id="cjzl04" class="flex_c_c" style="width: 100%;height:100%" />
+ </dv-border-box-12>
</div>
</div>
</div>
@@ -150,30 +82,61 @@
WorkShopProduceBottomRightData,
WorkShopProduceTopData
} 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: [],
RightBottom: [],
- tableDataCenterTop: [],
+ configTableTop: {
+ headerBGC: 'rgba(38, 68 ,139, 0.2)', // 琛ㄥご鑳屾櫙鑹�
+ oddRowBGC: 'transparent', // 濂囨暟琛岃儗鏅壊
+ evenRowBGC: 'transparent', // 鍋舵暟琛岃儗鏅壊
+ headerHeight: 45,
+ waitTime: 3000,
+ rowNum: 8,
- wkshopcode: '',
- title: ''
+ header: [
+ '<span style="color:#09d8f2;">宸ュ崟鍙�</span>',
+ '<span style="color:#09d8f2;">浜у搧缂栫爜</span>',
+ '<span style="color:#09d8f2;">浜у搧鍚嶇О</span>',
+ '<span style="color:#09d8f2;">浜у搧瑙勬牸</span>',
+ '<span style="color:#09d8f2;">浠诲姟鏁伴噺</span>',
+ '<span style="color:#09d8f2;">鍚堟牸鏁伴噺</span>',
+ '<span style="color:#09d8f2;">涓嶈壇鏁伴噺</span>',
+ '<span style="color:#09d8f2;">宸ュ簾鏁伴噺</span>',
+ '<span style="color:#09d8f2;">鏂欏簾鏁伴噺</span>',
+ '<span style="color:#09d8f2;">宸ュ簭椤哄簭</span>',
+ '<span style="color:#09d8f2;">宸ュ簭缂栫爜</span>',
+ '<span style="color:#09d8f2;">宸ュ簭鍚嶇О</span>',
+ '<span style="color:#09d8f2;">瀹屾垚杩涘害(%)</span>'
+ ],
+ data: [
+ // ['<span style="color:#37a2da;">琛�1鍒�1</span>', '琛�1鍒�2', '琛�1鍒�3'],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+ // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
+
+ ],
+ // index: true,
+ columnWidth: [150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150],
+ align: ['center', 'center', 'center', 'center', 'center', 'center', 'center', 'center', 'center', 'center', 'center', 'center', 'center']
+ // carousel: 'page'
+ }
}
},
@@ -186,87 +149,54 @@
}, 1000 * 60 * 120)
},
mounted() {
- this.getAllApi()
+ this.getWorkShopProduceTopData()
+ setInterval(() => {
+ this.getWorkShopProduceTopData()
+ }, 10 * 1000)
+
+ this.getWorkShopProduceBottomLeftData()
+ this.getWorkShopProduceBottomRightData()
},
methods: {
- async getWorkShopProduceTopData() {
- WorkShopProduceTopData({ wkshopcode: this.wkshopcode.join(',') }).then(res => {
- this.tableDataCenterTop = res.data
-
- const divData = this.$refs.tableDataLeftCenterRef.bodyWrapper
- const timer = setInterval(() => {
- // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
- divData.scrollTop += 1
- if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
- divData.scrollTop = 0
- WorkShopProduceTopData({ wkshopcode: this.wkshopcode.join(',') }).then(res => {
- this.tableDataCenterTop = res.data
-
- if (this.tableDataCenterTop.length > 11) {
- clearInterval(timer)
- this.getWorkShopProduceTopData()
- }
- })
- }
- }, this.tableDataCenterTop.length <= 11 ? 1000 * 15 : 200)
+ getWorkShopProduceTopData() {
+ WorkShopProduceTopData().then(res => {
+ const flag = this.compareArrays(this.configTableTop.data, res.data)
+ if (!flag) {
+ this.configTableTop.data = res.data.map(i =>
+ [
+ i.wo_code,
+ i.partcode,
+ i.partname,
+ i.partspec ? i.partspec : '/',
+ i.plan_qty,
+ i.good_qty,
+ `<span style="color: red;">${i.ng_qty}</span>`,
+ `<span style="color: red;">${i.laborbad_qty}</span>`,
+ `<span style="color: red;">${i.materielbad_qty}</span>`,
+ i.seq,
+ i.step_code,
+ i.step_name,
+ parseFloat(i.schedule.toFixed(2))
+ ]
+ )
+ this.$refs['scrollBoardTop'].updateRows(this.configTableTop.data)
+ }
})
},
+ async getWorkShopProduceBottomLeftData() {
+ const res4 = await WorkShopProduceBottomLeftData()
+ this.cjzl03_xData = res4.data.map(i => i.click_date)
+ this.cjzl03_yData = res4.data.map(i => i.count)
- async getAllApi() {
- const res = await PrentOrganizationNoCompany()
- this.wkshopArr = res.data
+ loadEcharts('cjzl03', cjzl03_2(this.cjzl03_xData, this.cjzl03_yData))
+ },
- if (window.location.hash.indexOf('?') !== -1) {
- const code = window.location.hash.split('?')[1].split('=')[1]
- this.title = this.wkshopArr.find(i => i.torg_code === code).torg_name
- this.wkshopcode = [code]
- }
-
- this.wkshopcode.forEach(i => {
- const aa = this.wkshopArr.find(j => j.torg_code === i).torg_name
- this.legendData.push(aa)
- })
-
- const res4 = await WorkShopProduceBottomLeftData({ wkshopcode: this.wkshopcode.join(',') })
- this.cjzl03_xData = res4.data[this.wkshopcode[0]].map(i => i.click_date)
- for (const res4Key in res4.data) {
- if (this.wkshopcode.includes(res4Key)) {
- const bb = res4.data[res4Key].map(i => i.count)
- this.cjzl03_yData.push(bb)
- }
- }
- loadEcharts('cjzl03', cjzl03_2(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
- setInterval(() => {
- WorkShopProduceBottomLeftData({ wkshopcode: this.wkshopcode.join(',') }).then(res4 => {
- this.cjzl03_yData = []
-
- this.cjzl03_xData = res4.data[this.wkshopcode[0]].map(i => i.click_date)
- for (const res4Key in res4.data) {
- if (this.wkshopcode.includes(res4Key)) {
- const bb = res4.data[res4Key].map(i => i.count)
- this.cjzl03_yData.push(bb)
- }
- }
- loadEcharts('cjzl03', cjzl03_2(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
- })
- }, 1000 * 50)
-
- const res5 = await WorkShopProduceBottomRightData({ wkshopcode: 'CJ001' })
+ async getWorkShopProduceBottomRightData() {
+ const res5 = await WorkShopProduceBottomRightData()
this.RightBottom = res5.data
if (this.RightBottom.length > 0) {
loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
}
-
- setInterval(() => {
- WorkShopProduceBottomRightData({ wkshopcode: 'CJ001' }).then(res5 => {
- this.RightBottom = res5.data
- if (this.RightBottom.length > 0) {
- loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
- }
- })
- }, 1000 * 60)
-
- await this.getWorkShopProduceTopData()
},
// 鑾峰彇褰撳墠鏃堕棿
@@ -285,25 +215,23 @@
this.headTime = `${y}-${m}-${d} ${hh}:${mm}:${ss} ${week}`
},
- headerCellStyle() {
- return {
- backgroundColor: 'transparent',
- padding: '10px 0',
- textAlign: 'center',
- color: '#07acc2',
- border: 'none',
- fontSize: '18px'
+
+ // 涓や釜鏁扮粍鍋氬姣�
+ compareArrays(arr1, arr2) {
+ const set1 = new Set(arr1)
+ const set2 = new Set(arr2)
+
+ if (set1.size !== set2.size) {
+ return false
}
- },
- cellStyle() {
- return {
- padding: '7px 0',
- textAlign: 'center',
- backgroundColor: 'transparent',
- color: '#fff',
- border: 'none',
- fontSize: '18px'
+
+ for (const value of set1) {
+ if (!set2.has(value)) {
+ return false
+ }
}
+
+ return true
}
}
@@ -312,129 +240,13 @@
</script>
<style lang="scss" scoped>
-$main_color: #09d8f2;
-$color01: #00FFFF;
-.tableData {
- background: transparent;
+
+::v-deep .header-item {
+ font-size: 16px !important;
}
-.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__body-wrapper {
- background: transparent;
-}
-
-::v-deep .el-table th,
-::v-deep .el-table tr,
-::v-deep .el-table td {
- background-color: transparent;
-}
-
-::v-deep .gutter {
- display: none;
-}
-
-.all_block01 {
- width: 237px;
- 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;
- }
+::v-deep .row-item {
+ font-size: 16px !important;
}
</style>
--
Gitblit v1.9.3