From 5eeb8864bebb1dc4f97f2feef32b742d8a9a10d5 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 14 九月 2022 15:43:04 +0800
Subject: [PATCH] 1.新增报表管理菜单
---
src/views/kb/ckgl.vue | 310 ++++++++++++++++++++++++++++++---------------------
1 files changed, 183 insertions(+), 127 deletions(-)
diff --git a/src/views/kb/ckgl.vue b/src/views/kb/ckgl.vue
index 50337ca..749ccb1 100644
--- a/src/views/kb/ckgl.vue
+++ b/src/views/kb/ckgl.vue
@@ -10,13 +10,18 @@
<span>{{ headTime }}</span>
</div>
</div>
-
+ <MarqueeTips
+ :content="MarqueeTipsContent"
+ class="MarqueeTipsContentClass"
+ style="top:90px"
+ :speed="speed"
+ />
<div class="kb_content">
<div class="kb_left">
<!-- 1-->
<div class="kb_left_top kb_pd10">
<div class="kb_left_top_block" style="margin-top: 10px">
- <div class="headTitle">浜у搧寰呭叆搴擄細</div>
+ <div class="headTitle kb_title_text">浜у搧寰呭叆搴�</div>
<div class="content">
<el-table
ref="tableDataTopRef"
@@ -24,90 +29,117 @@
style="width: 100%;"
:header-cell-style="headerCellStyle"
:cell-style="cellStyle"
- height="440"
+ height="400"
>
<el-table-column
prop="voucherdate"
label="鍗曟嵁鏃ユ湡"
- width="86"
+ width="120"
>
<template slot-scope="{row}">
- <div>{{ row.voucherdate.substring(5, 10) }}</div>
+ <div v-if=" row.voucherdate">{{ row.voucherdate.substring(0, 10) }}</div>
+ <div v-else />
</template>
</el-table-column>
<el-table-column
prop="wo"
label="鍗曟嵁缂栧彿"
- width="165"
+ width="159"
/>
<el-table-column
prop="wkshp_name"
label="鐢熶骇杞﹂棿"
- width="86"
+ width="105"
/>
<el-table-column
prop="saleOrderCode"
label="閿�鍞鍗曞彿"
- width="178"
- />
+ width="180"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
<el-table-column
prop="materiel_code"
label="浜у搧缂栧彿"
- width="86"
+ width="96"
/>
<el-table-column
prop="materiel_name"
label="浜у搧鍚嶇О"
- width="105"
- />
+ width="160"
+ >
+ <template slot-scope="{row}">
+ <div class="ellipsis">{{ row.materiel_name }}</div>
+ </template>
+ </el-table-column>
<el-table-column
prop="specification"
label="瑙勬牸鍨嬪彿"
- width="85"
- />
+ width="128"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
<el-table-column
prop="stck_name"
label="棰勫叆浠撳簱"
width="100"
- />
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.stck_name">{{ row.stck_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
<el-table-column
prop="quantity"
label="鏁伴噺"
- width="60"
+ width="55"
/>
<el-table-column
prop="totalStockInQuantity"
label="宸插叆搴撴暟閲�"
- width="105"
- />
- <el-table-column
- prop="uomname"
- label="鍗曚綅"
- width="90"
- />
- <el-table-column
- prop="preStartDate"
- label="棰勮寮�宸�"
- width="86"
+ width="80"
>
<template slot-scope="{row}">
- <div>{{ row.preStartDate.substring(5, 10) }}</div>
+ <div v-if="row.totalStockInQuantity">{{ row.totalStockInQuantity }}</div>
+ <div v-else>0</div>
</template>
</el-table-column>
<el-table-column
+ prop="uomname"
+ label="鍗曚綅"
+ width="50"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="preStartDate"-->
+ <!-- label="棰勮寮�宸�"-->
+ <!-- width="100"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.preStartDate">{{ row.preStartDate.substring(0, 10) }}</div>-->
+ <!-- <div v-else />-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
prop="preFinishDate"
- label="棰勮瀹屽伐"
- width="86"
+ label="棰勮鍏ュ簱"
+ width="120"
>
<template slot-scope="{row}">
- <div>{{ row.preFinishDate.substring(5, 10) }}</div>
+ <div v-if="row.preFinishDate">{{ row.preFinishDate.substring(0, 10) }}</div>
+ <div v-else />
</template>
</el-table-column>
</el-table>
</div>
</div>
<div class="kb_left_top_block" style="margin-top: 25px">
- <div class="headTitle">浜у搧寰呭彂璐э細</div>
+ <div class="headTitle kb_title_text">浜у搧寰呭彂璐�</div>
<div class="content">
<el-table
ref="tableDataBottomRef"
@@ -120,88 +152,99 @@
<el-table-column
prop="voucherdate"
label="鍗曟嵁鏃ユ湡"
- width="86"
+ width="110"
>
<template slot-scope="{row}">
- <div>{{ row.voucherdate.substring(5, 10) }}</div>
+ <div v-if="row.voucherdate">{{ row.voucherdate.substring(0, 10) }}</div>
+ <div v-else />
</template>
</el-table-column>
<el-table-column
prop="wo"
label="鍗曟嵁缂栧彿"
- width="165"
+ width="145"
/>
<el-table-column
prop="customename"
label="瀹㈡埛"
- width="170"
- />
+ width="125"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.customename" class="ellipsis">{{ row.customename }}</div>
+ <div v-else />
+ </template>
+ </el-table-column>
<el-table-column
prop="username"
label="涓氬姟鍛�"
- width="68"
+ width="65"
/>
<el-table-column
prop="SourceVoucherCode"
label="鏉ユ簮鍗曞彿"
- width="119"
- />
+ width="145"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.SourceVoucherCode">{{ row.SourceVoucherCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
<el-table-column
prop="materiel_code"
label="浜у搧缂栧彿"
- width="86"
+ width="96"
/>
<el-table-column
prop="materiel_name"
label="浜у搧鍚嶇О"
- width="86"
+ width="170"
/>
<el-table-column
prop="specification"
label="瑙勬牸鍨嬪彿"
- width="86"
- />
+ width="100"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.specification" class="ellipsis">{{ row.specification }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
<el-table-column
prop="quantity"
label="鏁伴噺"
- width="60"
+ width="47"
/>
<el-table-column
prop="saleOutQuantity"
label="宸插彂璐ф暟閲�"
- width="100"
- />
+ width="80"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOutQuantity">{{ row.saleOutQuantity }}</div>
+ <div v-else>0</div>
+ </template>
+ </el-table-column>
<el-table-column
prop="priuserdefnvc1"
label="妫�楠屾柟寮�"
- width="86"
+ width="80"
/>
<el-table-column
prop="priuserdefnvc2"
label="妫�楠屼汉鍛�"
- width="86"
+ width="80"
/>
<el-table-column
prop="deliveryDate"
label="棰勮浜よ揣鏃ユ湡"
- width="120"
+ width="110"
>
- <!-- <template slot-scope="{row}">-->
- <!-- <div>{{ row.deliveryDate.substring(5,10) }}</div>-->
- <!-- </template>-->
+ <template slot-scope="{row}">
+ <div v-if="row.deliveryDate">{{ row.deliveryDate.substring(0,10) }}</div>
+ <div v-else>/</div>
+ </template>
</el-table-column>
</el-table>
- </div>
- </div>
- </div>
- <!-- 2-->
- <div v-if="false" class="kb_left_bottom kb_pd10">
- <div class="kb_left_bottom_content">
- <div class="content01">
- <!-- <div id="bar03" style="width: 100%;height:100%" />-->
- </div>
- <div class="content01">
- <!-- <div id="bar04" style="width: 100%;height:100%" />-->
</div>
</div>
</div>
@@ -209,11 +252,11 @@
<div class="kb_right kb_pd10">
<div class="kb_right_top kb_pd10">
<div class="kb_right_top_content">
- <div class="content_head">浜у搧搴撳瓨閲忔帓琛孴op5锛�</div>
- <div class="content_body">
+ <div class="content_head kb_title_text" style="margin-top: 30px;">浜у搧搴撳瓨閲忔帓琛孴op5</div>
+ <div class="content_body" style="height:402px;">
<div id="bar03" style="width: 100%;height:100%" />
</div>
- <div class="content_head" style="margin-top: 12px">鍘熸枡搴撳瓨閲忔帓琛孴op5锛�</div>
+ <div class="content_head kb_title_text" style="margin-top: 12px">鍗婃垚鍝佸簱瀛橀噺鎺掕Top5</div>
<div class="content_body">
<div id="bar04" style="width: 100%;height:100%" />
</div>
@@ -230,20 +273,26 @@
import './kbCommon.css'
import { bar02, loadEcharts } from '@/utils/myEcharts'
import {
- LineSearchBottomLeftData,
WareHouseRightBottomData,
WareHouseRightTopData,
WareHouseTopBottomData,
WareHouseTopLeftData
} from '@/api/dzkb'
+import MarqueeTips from 'vue-marquee-tips'
export default {
name: 'Index2',
+ components: {
+ MarqueeTips
+ },
data() {
return {
headTime: '',
tableDataTop: [],
- tableDataBottom: []
+ tableDataBottom: [],
+
+ MarqueeTipsContent: '', // 鍏憡
+ speed: 100// 鍏憡鎾斁鐨勯�熷害
}
},
@@ -254,72 +303,90 @@
this.getWareHouseTopLeftData()
this.getWareHouseTopBottomData()
this.getEcharts()
+
+ this.getMarqueeTipsContent()
},
methods: {
+ // 鑾峰彇鍏憡
+ getMarqueeTipsContent() {
+ this.MarqueeTipsContent = '鍚勪綅鍛樺伐浠細鏍规嵁涓婄骇鐨勯�氱煡锛岀粨鍚堟垜浼佸疄闄呮儏鍐碉紝鐜板皢20xx骞寸殑鍏冩棪鏀惧亣閫氱煡濡備笅锛氫竴銆�1鏈�1鏃ヨ嚦1鏈�3鏃ユ斁鍋囪皟浼戯紝鍏�3澶┿��1鏈�4鏃ユ寮忎笂鐝�備簩銆佽妭鍋囨棩鏈熼棿锛屽悇鐝粍瑕佷弗鏍艰惤瀹炰笂绾х殑閲嶈鎸囩ず绮剧锛屾寜鐓т笂绾х殑鍏蜂綋瑕佹眰锛岃鐪熸姄濂借惤瀹炶妭鏃ユ湡闂村�肩彮澶囧嫟宸ヤ綔锛岀‘淇濊妭鏃ユ湡闂翠紒涓氬悇椤瑰伐浣滄甯歌繍杞�倄x浼佷笟20xx骞�12鏈�28鏃�'
+ const spance = ' '.padStart(this.MarqueeTipsContent.length * 2, ' ')
+ this.MarqueeTipsContent = this.MarqueeTipsContent + spance
+ this.speed = this.MarqueeTipsContent.length / 10
+ },
// 鑾峰彇宸︿笂table鏁版嵁
getWareHouseTopLeftData() {
WareHouseTopLeftData().then(res => {
this.tableDataTop = res.data
- })
- const divData = this.$refs.tableDataTopRef.bodyWrapper
- // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
- setInterval(() => {
- // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
- divData.scrollTop += 1
- // divData.scrollTop += divData.scrollHeight / this.tableData.length
- // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
- if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
- // 閲嶇疆table璺濈椤堕儴璺濈
- divData.scrollTop = 0
- WareHouseTopLeftData().then(res => {
- this.tableDataTop = res.data
- })
- }
- }, this.tableDataTop.length <= 10 ? 1000 * 6 : 100)
+ const divData = this.$refs.tableDataTopRef.bodyWrapper
+ // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+ const task = setInterval(() => {
+ // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+ divData.scrollTop += 1
+ // divData.scrollTop += divData.scrollHeight / this.tableData.length
+ // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+ if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+ // 閲嶇疆table璺濈椤堕儴璺濈
+ divData.scrollTop = 0
+ WareHouseTopLeftData().then(res => {
+ this.tableDataTop = res.data
+ if (this.tableDataTop.length > 9) {
+ clearInterval(task)
+ this.getWareHouseTopLeftData()
+ }
+ })
+ }
+ }, this.tableDataTop.length <= 9 ? 1000 * 3 : 100)
+ })
},
// 鑾峰彇宸︿笅table鏁版嵁
getWareHouseTopBottomData() {
WareHouseTopBottomData().then(res => {
this.tableDataBottom = res.data
- })
- const divData = this.$refs.tableDataBottomRef.bodyWrapper
- // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
- setInterval(() => {
- // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
- divData.scrollTop += 1
- // divData.scrollTop += divData.scrollHeight / this.tableData.length
- // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
- if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
- // 閲嶇疆table璺濈椤堕儴璺濈
- divData.scrollTop = 0
- WareHouseTopBottomData().then(res => {
- this.tableDataBottom = res.data
- })
- }
- }, this.tableDataBottom.length <= 10 ? 1000 * 6 : 100)
+ const divData = this.$refs.tableDataBottomRef.bodyWrapper
+ // 鎷垮埌鍏冪礌鍚庯紝瀵瑰厓绱犺繘琛屽畾鏃跺鍔犺窛绂婚《閮ㄨ窛绂伙紝瀹炵幇婊氬姩鏁堟灉(姝ら厤缃负姣�100姣绉诲姩1鍍忕礌)
+ const task = setInterval(() => {
+ // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+ divData.scrollTop += 1
+ // divData.scrollTop += divData.scrollHeight / this.tableData.length
+ // 鍒ゆ柇鍏冪礌鏄惁婊氬姩鍒板簳閮�(鍙楂樺害+璺濈椤堕儴=鏁翠釜楂樺害)
+ if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+ // 閲嶇疆table璺濈椤堕儴璺濈
+ divData.scrollTop = 0
+ WareHouseTopBottomData().then(res => {
+ this.tableDataBottom = res.data
+
+ if (this.tableDataBottom.length > 10) {
+ clearInterval(task)
+ this.getWareHouseTopBottomData()
+ }
+ })
+ }
+ }, this.tableDataBottom.length <= 10 ? 1000 * 3 : 100)
+ })
},
// 鑾峰彇echarts
getEcharts() {
WareHouseRightTopData().then(res => {
- loadEcharts('bar03', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+ loadEcharts('bar03', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
})
WareHouseRightBottomData().then(res => {
- loadEcharts('bar04', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+ loadEcharts('bar04', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
})
setInterval(() => {
WareHouseRightTopData().then(res => {
- loadEcharts('bar03', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+ loadEcharts('bar03', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
})
}, 1000 * 15)
setInterval(() => {
WareHouseRightBottomData().then(res => {
- loadEcharts('bar04', bar02(res.data.map(i => i.CanuseBaseQuantity), res.data.map(i => i.materiel_name)))
+ loadEcharts('bar04', bar02(res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.CanuseBaseQuantity), res.data.filter(i => i.CanuseBaseQuantity > 0).map(i => i.materiel_name)))
})
}, 1000 * 15)
},
@@ -363,7 +430,8 @@
</script>
<style scoped lang="scss">
-$kbBorderColor: #09d8f2;
+//$kbBorderColor: #09d8f2;
+$kbBorderColor: rgba(9,216,242,0.4);
$kbBackgroundColor: rgba(30, 33, 46, 0.6);
.kb_content {
@@ -375,12 +443,13 @@
letter-spacing: 2px;
.kb_left {
- width: 1345px;
+ width: 1380px;
height: 100%;
padding-left: 5px;
.kb_left_top {
- height: 920px;
+ height:880px;
+ margin-top: 40px;
display: flex;
flex-direction: column;
justify-content: flex-start;
@@ -411,27 +480,10 @@
}
- .kb_left_bottom {
- height: 395px;
-
- .kb_left_bottom_content {
- height: 360px;
- display: flex;
- justify-content: space-between;
-
- .content01 {
- width: 48%;
- height: 100%;
- border: 1px solid $kbBorderColor;
- background-color: $kbBackgroundColor;
- border-radius: 5px;
- }
- }
- }
}
.kb_right {
- width: 575px;
+ width: 540px;
height: 100%;
.kb_right_top {
@@ -452,7 +504,7 @@
}
.content_body {
- height: 442px;
+ height: 443px;
border: 1px solid $kbBorderColor;
background-color: $kbBackgroundColor;
@@ -475,4 +527,8 @@
::v-deep .el-table::before {
height: 0;
}
+
+::v-deep .cell {
+ padding: 0 !important;
+}
</style>
--
Gitblit v1.9.3