先提交,回去研究一个牛逼的模式

This commit is contained in:
aixianling
2024-06-28 18:14:48 +08:00
parent 8e48237542
commit 28aff3f594

116
src/views/AppKeyGoods.vue Normal file
View File

@@ -0,0 +1,116 @@
<script>
const tableColumn = {
props: {
column: {default: () => ({})}
},
render(h) {
const config = this.$props.column
return h('el-table-column', {props: config},
config.children?.map(col => h(tableColumn, {props: {column: col}})) || h('template', {
slotScope: {
default: ({row}) => {
config.custom ? h('div', {style: {color: row.preSaleNum > row.stockNum ? 'red' : '#fff'}}, '周边库存情况') :
h('span', row[config.prop] || '')
}
}
}))
},
}
export default {
name: "AppKeyGoods",
label: "市场看板-重点单品",
components: {tableColumn},
data() {
return {
tableData: [],
columns:[
{label: "重点单品", prop: "name"},
{label: "销售额", prop: "targetNum", width: "70px"},
{label: "库存数量", prop: "saleNum", width: "70px"},
{label: "销售目标", prop: "stockNum", width: "70px"},
{label: "销售达成", prop: "preSaleNum"},
]
}
},
methods:{
}
}
</script>
<template>
<section class="AppKeyGoods">
<div class="subTitle" v-text="'表格标题'"/>
<el-table :data="tableData" size="mini" header-cell-class-name="tableHeader" cell-class-name="tableCell" max-height="440px" show-summary stripe>
<table-column v-for="(column,i) in columns" :key="i" :column="column"/>
</el-table>
</section>
</template>
<style>
.AppKeyGoods {
color: #fff;
box-sizing: border-box;
}
.AppKeyGoods .tableHeader {
background: rgba(13, 48, 99, 0.6) !important;
color: #fff;
border-color: transparent !important;
}
.AppKeyGoods .el-table tr {
background-color: transparent !important;
}
.AppKeyGoods .el-table {
background: transparent;
border-color: transparent;
}
.AppKeyGoods .el-table .el-table__footer-wrapper tr {
background: linear-gradient(90deg, rgba(1, 196, 236, 0.5) 0%, rgba(1, 196, 236, 0.01) 100%);
}
.AppKeyGoods .el-table .el-table__footer-wrapper .is-leaf {
color: #66FFFF;
background: transparent;
border-color: transparent;
}
.AppKeyGoods .el-table:before {
background: transparent;
}
.AppKeyGoods .tableCell {
color: #fff;
border-color: transparent !important;
}
.AppKeyGoods .el-table tr.el-table__row--striped {
--odd-bg: #09265B;
background-color: #081F48;
background-image: linear-gradient(
-45deg, var(--odd-bg) 0, var(--odd-bg) 10%, transparent 10%, transparent 50%,
var(--odd-bg) 50%, var(--odd-bg) 60%, transparent 60%, transparent);
background-size: 10px 10px;
}
.AppKeyGoods .el-table tr.el-table__row--striped .tableCell {
background-color: transparent !important;
}
.AppKeyGoods .el-table tr:hover > .tableCell {
background-color: rgba(255, 255, 255, .1) !important;
}
.AppKeyGoods .subTitle {
line-height: 20px;
width: fit-content;
margin: 24px auto 12px;
background-image: url("http://10.0.97.209/img/kengee/kengee5.png");
background-repeat: no-repeat;
background-size: 100% 2px;
background-position: center bottom;
}
</style>