|
|
|
|
@ -0,0 +1,218 @@
|
|
|
|
|
<template>
|
|
|
|
|
<div class="warehouse-table">
|
|
|
|
|
<!-- Element-UI 表格 -->
|
|
|
|
|
<el-table :data="currentPageData" style="width: 100%" height="200" :row-class-name="getRowClass"
|
|
|
|
|
:cell-style="{background: 'transparent', border: 'none'}" :header-cell-class-name="'headerRow'">
|
|
|
|
|
<el-table-column show-overflow-tooltip prop="suozaicangku_text" width="100" label="仓库" align="left" />
|
|
|
|
|
<el-table-column show-overflow-tooltip prop="type" width="80" label="出入库" align="center" />
|
|
|
|
|
<el-table-column show-overflow-tooltip prop="total" width="80" label="数量" align="center" />
|
|
|
|
|
<el-table-column show-overflow-tooltip prop="fenlei_text" width="120" label="种类" align="left" />
|
|
|
|
|
<el-table-column show-overflow-tooltip prop="riqi" label="时间" width="100" align="left" />
|
|
|
|
|
</el-table>
|
|
|
|
|
|
|
|
|
|
<!-- 四个角的三角形 -->
|
|
|
|
|
<div class="corner top-left"></div>
|
|
|
|
|
<div class="corner top-right"></div>
|
|
|
|
|
<div class="corner bottom-left"></div>
|
|
|
|
|
<div class="corner bottom-right"></div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import {
|
|
|
|
|
soCharts
|
|
|
|
|
} from '@/api/charts.js'
|
|
|
|
|
export default {
|
|
|
|
|
name: 'WarehouseTable',
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
// 模拟数据源,可根据实际接口返回调整结构
|
|
|
|
|
tableData: [],
|
|
|
|
|
pageSize: 3, // 每页显示 3 条数据
|
|
|
|
|
currentPage: 1, // 当前页码
|
|
|
|
|
timer: null // 定时器标识
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
// 计算当前页数据
|
|
|
|
|
currentPageData() {
|
|
|
|
|
const start = (this.currentPage - 1) * this.pageSize
|
|
|
|
|
const end = start + this.pageSize
|
|
|
|
|
return this.tableData.slice(start, end)
|
|
|
|
|
},
|
|
|
|
|
// 计算总页数
|
|
|
|
|
totalPages() {
|
|
|
|
|
return Math.ceil(this.tableData.length / this.pageSize)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
// 初始化定时器,3 秒切换一次
|
|
|
|
|
this.getChartData()
|
|
|
|
|
// this.startTimer()
|
|
|
|
|
},
|
|
|
|
|
beforeDestroy() {
|
|
|
|
|
// 组件销毁前清除定时器,避免内存泄漏
|
|
|
|
|
this.clearTimer()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
async getChartData() {
|
|
|
|
|
const so = await soCharts()
|
|
|
|
|
// 出入库
|
|
|
|
|
let arr = []
|
|
|
|
|
so.map(item=>{
|
|
|
|
|
arr.push({
|
|
|
|
|
suozaicangku_text:item.suozaicangku_text,
|
|
|
|
|
type:item.jieyongshuliang?'出库':'入库',
|
|
|
|
|
total:item.jieyongshuliang?item.jieyongshuliang:item.rukushuliang,
|
|
|
|
|
fenlei_text:item.fenlei_text,
|
|
|
|
|
riqi:item.riqi?item.riqi:item.created_at.substring(0,10)
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
this.tableData = arr
|
|
|
|
|
if(this.tableData.length>0){
|
|
|
|
|
// this.startTimer()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 切换到下一页
|
|
|
|
|
nextPage() {
|
|
|
|
|
this.currentPage = this.currentPage % this.totalPages + 1
|
|
|
|
|
},
|
|
|
|
|
// 启动定时器
|
|
|
|
|
startTimer() {
|
|
|
|
|
this.timer = setInterval(() => {
|
|
|
|
|
this.nextPage()
|
|
|
|
|
}, 3000)
|
|
|
|
|
},
|
|
|
|
|
// 清除定时器
|
|
|
|
|
clearTimer() {
|
|
|
|
|
if (this.timer) {
|
|
|
|
|
clearInterval(this.timer)
|
|
|
|
|
this.timer = null
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 根据行数据返回对应的类名
|
|
|
|
|
getRowClass({
|
|
|
|
|
row
|
|
|
|
|
}) {
|
|
|
|
|
if (row.type === '出库') {
|
|
|
|
|
return 'outbound-row';
|
|
|
|
|
} else if (row.type === '入库') {
|
|
|
|
|
return 'inbound-row';
|
|
|
|
|
}
|
|
|
|
|
return '';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
|
.warehouse-table {
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
|
|
position: relative;
|
|
|
|
|
/* 可根据实际调整宽度 */
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
border: 1px solid #6dcde6;
|
|
|
|
|
box-shadow: inset 0 0 10px 2px #6dcde6;
|
|
|
|
|
padding: 20px;
|
|
|
|
|
margin-bottom:20px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 四角三角形基础样式 */
|
|
|
|
|
.corner {
|
|
|
|
|
position: absolute;
|
|
|
|
|
width: 0;
|
|
|
|
|
height: 0;
|
|
|
|
|
border-style: solid;
|
|
|
|
|
z-index: 10;
|
|
|
|
|
/* 确保显示在表格内容上方 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 左上角 */
|
|
|
|
|
.top-left {
|
|
|
|
|
top: 3px;
|
|
|
|
|
left: 3px;
|
|
|
|
|
border-width: 10px 10px 0 0;
|
|
|
|
|
border-color: #6dcde6 transparent transparent transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 右上角 */
|
|
|
|
|
.top-right {
|
|
|
|
|
top: 3px;
|
|
|
|
|
right: 3px;
|
|
|
|
|
border-width: 0 10px 10px 0;
|
|
|
|
|
border-color: transparent #6dcde6 transparent transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 左下角 */
|
|
|
|
|
.bottom-left {
|
|
|
|
|
bottom: 3px;
|
|
|
|
|
left: 3px;
|
|
|
|
|
border-width: 10px 0 0 10px;
|
|
|
|
|
border-color: transparent transparent transparent #6dcde6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 右下角 */
|
|
|
|
|
.bottom-right {
|
|
|
|
|
bottom: 3px;
|
|
|
|
|
right: 3px;
|
|
|
|
|
border-width: 0 0 10px 10px;
|
|
|
|
|
border-color: transparent transparent #6dcde6 transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::v-deep .el-table{
|
|
|
|
|
background: transparent !important;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-table tr {
|
|
|
|
|
background: transparent !important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
::v-deep .headerRow {
|
|
|
|
|
background: transparent !important;
|
|
|
|
|
color: #fff;
|
|
|
|
|
border: none!important;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 出库行样式 */
|
|
|
|
|
::v-deep .el-table .outbound-row {
|
|
|
|
|
background-color: #084d82 !important;
|
|
|
|
|
/* 浅红色背景 */
|
|
|
|
|
color: #2fb9d6 !important;
|
|
|
|
|
/* 红色文字 */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 入库行样式 */
|
|
|
|
|
::v-deep .el-table .inbound-row {
|
|
|
|
|
background-color: #37548c !important;
|
|
|
|
|
/* 浅绿色背景 */
|
|
|
|
|
color: #ef830f !important;
|
|
|
|
|
/* 绿色文字 */
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-table .el-table__cell{
|
|
|
|
|
padding:10px 0;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-table__body {
|
|
|
|
|
border-collapse: separate !important;
|
|
|
|
|
border-spacing: 0 5px !important;
|
|
|
|
|
table-layout: auto !important;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-table,.el-table__expanded-cell {
|
|
|
|
|
background-color: transparent !important;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-table--enable-row-transition .el-table__body td,.el-table .cell {
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
/* 移除表格边框 */
|
|
|
|
|
// ::v-deep .el-table, .el-table__header-wrapper, .el-table__body-wrapper {
|
|
|
|
|
// border: none !important;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// ::v-deep .el-table__header th {
|
|
|
|
|
// border-bottom: none !important;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// ::v-deep .el-table__body td {
|
|
|
|
|
// border-bottom: none !important;
|
|
|
|
|
// }
|
|
|
|
|
</style>
|