✨(table): 新增 childrenColumnName 属性
This commit is contained in:
parent
810b52d2ac
commit
922dc2cc92
@ -5,7 +5,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { computed } from "vue";
|
||||
import { computed, StyleValue } from "vue";
|
||||
import "./index.less";
|
||||
|
||||
export interface LayBadgeProps {
|
||||
@ -29,7 +29,7 @@ const classes = computed(() => {
|
||||
];
|
||||
});
|
||||
|
||||
const styles = computed(() => {
|
||||
const styles = computed<StyleValue>(() => {
|
||||
props.color ? `background-color: ${props.color}` : "";
|
||||
});
|
||||
</script>
|
||||
|
@ -14,6 +14,7 @@ export interface LayTableRowProps {
|
||||
expandSpace: boolean;
|
||||
selectedKeys: Recordable[];
|
||||
tableColumnKeys: Recordable[];
|
||||
childrenColumnName: string;
|
||||
columns: Recordable[];
|
||||
checkbox?: boolean;
|
||||
id: string;
|
||||
@ -30,6 +31,7 @@ const emit = defineEmits([
|
||||
|
||||
const props = withDefaults(defineProps<LayTableRowProps>(), {
|
||||
checkbox: false,
|
||||
childrenColumnName: 'children'
|
||||
});
|
||||
|
||||
const tableSelectedKeys: WritableComputedRef<Recordable[]> = computed({
|
||||
@ -113,13 +115,13 @@ const childrenIndentSize = props.currentIndentSize + props.indentSize;
|
||||
|
||||
<span
|
||||
v-if="
|
||||
expandSpace && !data.children && !slot.expand && index === 0
|
||||
expandSpace && !data[childrenColumnName] && !slot.expand && index === 0
|
||||
"
|
||||
class="layui-table-cell-expand-icon-spaced"
|
||||
></span>
|
||||
|
||||
<lay-icon
|
||||
v-if="(slot.expand || data.children) && index === 0"
|
||||
v-if="(slot.expand || data[childrenColumnName]) && index === 0"
|
||||
class="layui-table-cell-expand-icon"
|
||||
:type="expandIconType"
|
||||
@click="handleExpand"
|
||||
@ -156,13 +158,13 @@ const childrenIndentSize = props.currentIndentSize + props.indentSize;
|
||||
|
||||
<span
|
||||
v-if="
|
||||
expandSpace && !data.children && !slot.expand && index === 0
|
||||
expandSpace && !data[childrenColumnName] && !slot.expand && index === 0
|
||||
"
|
||||
class="layui-table-cell-expand-icon-spaced"
|
||||
></span>
|
||||
|
||||
<lay-icon
|
||||
v-if="(slot.expand || data.children) && index === 0"
|
||||
v-if="(slot.expand || data[childrenColumnName]) && index === 0"
|
||||
class="layui-table-cell-expand-icon"
|
||||
:type="expandIconType"
|
||||
@click="handleExpand"
|
||||
@ -189,8 +191,8 @@ const childrenIndentSize = props.currentIndentSize + props.indentSize;
|
||||
</tr>
|
||||
|
||||
<!-- 树形结构 -->
|
||||
<template v-if="data.children && isExpand">
|
||||
<template v-for="(children, index) in data.children" :key="index">
|
||||
<template v-if="data[childrenColumnName] && isExpand">
|
||||
<template v-for="(children, index) in data[childrenColumnName]" :key="index">
|
||||
<table-row
|
||||
:id="id"
|
||||
:data="children"
|
||||
|
@ -27,12 +27,14 @@ export interface LayTableProps {
|
||||
defaultToolbar?: boolean;
|
||||
selectedKeys?: Recordable[];
|
||||
indentSize?: number;
|
||||
childrenColumnName: string;
|
||||
}
|
||||
|
||||
const props = withDefaults(defineProps<LayTableProps>(), {
|
||||
id: "id",
|
||||
size: "md",
|
||||
indentSize: 30,
|
||||
childrenColumnName: "children",
|
||||
dataSource: () => [],
|
||||
selectedKeys: () => [],
|
||||
});
|
||||
@ -214,7 +216,7 @@ const childrenExpandSpace = ref(false);
|
||||
const currentIndentSize = ref(0);
|
||||
|
||||
props.dataSource.map((value: any) => {
|
||||
if (value.children) {
|
||||
if (value[props.childrenColumnName]) {
|
||||
childrenExpandSpace.value = true;
|
||||
}
|
||||
});
|
||||
|
@ -16,8 +16,10 @@
|
||||
<li>
|
||||
<h3>1.1.4 <span class="layui-badge-rim">2022-05-29</span></h3>
|
||||
<ul>
|
||||
<li>[新增] table 组件 childrenColumnName 属性, 配置 children 子节点为其他字段</li>
|
||||
<li>[新增] table 组件 indent-size 属性, 用于 tree-table 模式控制每一层的缩进宽度</li>
|
||||
<li>[新增] table 组件 children 字段解析, 当字段中存在 children 时会自动转化为树表</li>
|
||||
<li>[新增] table 组件 expand 插槽, 内容较多不能一次性完全展示时使用, 参数 data 为当前行数据</li>
|
||||
<li>[新增] table 组件 children 字段解析, 当字段中存在 children 时会自动转化为树表, 通过设置 indentSize 以控制每一层的缩进宽度</li>
|
||||
<li>[新增] tree 组件 title 插槽, 参数 data 为当前行数据, 用于自定义节点标题</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
Loading…
x
Reference in New Issue
Block a user