From b141098b7196075a0b60370f80e6af74c48f4653 Mon Sep 17 00:00:00 2001 From: aixianling Date: Thu, 27 Jun 2024 13:51:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AppKgTable.vue | 77 +++++++++++++++++++++++++++++++++------- 1 file changed, 64 insertions(+), 13 deletions(-) diff --git a/src/views/AppKgTable.vue b/src/views/AppKgTable.vue index 5c94d8f..be2b324 100644 --- a/src/views/AppKgTable.vue +++ b/src/views/AppKgTable.vue @@ -2,15 +2,44 @@ export default { name: "AppKgTable", label: "表格", - data(){ - return{ - tableData:[], - columns:[ + components: { + tableColumn: { + functional: true, + props: { + column: {default: () => ({})} + }, + render(h, vm) { + const config = vm.props.column + return h('el-table-column', {props: config}, h('template', { + slotScope: { + default: ({row}) => { + config.custom ? h('div', {style: {color: row.preSaleNum > row.stockNum ? 'red' : '#fff'}}, '周边库存情况') : + config.children?.map(col => h('table-column', {props: {column: col}})) || h('span', row[config.prop] || '') + } + } + })) + }, + } + }, + data() { + return { + tableData: [ + {name: "商品1", targetNum: 100, saleNum: 50, stockNum: 20, preSaleNum: 30, remind: 1}, + {name: "商品2", targetNum: 100, saleNum: 50, stockNum: 20, preSaleNum: 30, remind: 0}, + {name: "商品3", targetNum: 100, saleNum: 50, stockNum: 20, preSaleNum: 30, remind: 1}, + ], + columns: [ {label: "重点单品", prop: "name"}, {label: "当日目标", prop: "targetNum", width: "70px"}, {label: "销售数量", prop: "saleNum", width: "70px"}, {label: "库存数量", prop: "stockNum", width: "70px"}, {label: "预计销售数量", prop: "preSaleNum"}, + { + label: "合并表头示例", children: [ + {"label": "当日目标", "prop": "targetNum", "width": "70px"}, + {"label": "销售数量", "prop": "saleNum", "width": "70px"}, + ] + }, {label: "提醒", custom: 1, width: 70, align: 'center', prop: "remind"}, ] } @@ -21,18 +50,13 @@ export default { -