diff --git a/packages/devui-vue/devui/table/src/body/body.tsx b/packages/devui-vue/devui/table/src/body/body.tsx
index 9b02b8679897d1deb3d3347c868d72b6e5ad4934..4937430573e2dea6378c980686adfed9febc4805 100644
--- a/packages/devui-vue/devui/table/src/body/body.tsx
+++ b/packages/devui-vue/devui/table/src/body/body.tsx
@@ -9,14 +9,9 @@ export default defineComponent({
setup(props: TableBodyPropsTypes) {
const { rowColumns } = useTableBody(props);
- return { rowColumns };
- },
- render() {
- const { rowColumns } = this;
-
- return (
-
- {$slots.default()}
-
-
-
- {!!data.length && }
-
- {!data.length &&
No Data
}
+ function getScrollable(scrollable) {
+ if (!scrollable) {
+ return 'overflow: hidden;'
+ }
+ }
+ function getBodyStyle(maxHeight,isHeaderFixed) {
+ let res = '';
+
+ (function getMaxHeight() {
+ if (typeof maxHeight === 'number') {
+ res += `max-height: ${maxHeight}px;`
+ } else {
+ res += `max-height: ${maxHeight};`
+ }
+ })();
+ (function setHeaderFixed(){
+ if (isHeaderFixed) {
+ res += 'overflow-y: scroll;'
+ }
+ })();
+
+ return res
+ }
+
+ return () => {
+ return
+ {slots.default?.()}
+
+
+
+
+ {!!props.data.length && }
+
+ {!props.data.length &&
No Data
}
+
- );
- },
+ }
+ }
});
diff --git a/packages/devui-vue/devui/table/src/table.type.ts b/packages/devui-vue/devui/table/src/table.type.ts
index b9132f45ec9a57251db60d09b475cab66b56bf1c..22561d614f3eeba797530d683364ef32a4c7b105 100644
--- a/packages/devui-vue/devui/table/src/table.type.ts
+++ b/packages/devui-vue/devui/table/src/table.type.ts
@@ -1,4 +1,5 @@
import { PropType, ExtractPropTypes, ComponentInternalInstance } from 'vue';
+export type ModelValue = number | string
export const TableProps = {
data: {
@@ -13,11 +14,27 @@ export const TableProps = {
type: Boolean,
default: false
},
+ borderType:{
+ type: String as PropType<'borderless' | 'bordered'>,
+ default: 'borderless'
+ },
tableLayout:{
type: String as PropType<'fixed' | 'auto'>,
default: 'fixed'
+ },
+ maxHeight: {
+ type: [Number, String] as PropType
,
+ default: 342
+ },
+ scrollable: {
+ type: Boolean,
+ default: true
+ },
+ fixHeader: {
+ type: Boolean,
+ default: false
}
-};
+} as const
export type TablePropsTypes = ExtractPropTypes;
diff --git a/packages/devui-vue/devui/table/src/use-table.ts b/packages/devui-vue/devui/table/src/use-table.ts
index e375cbbb4ca06fb68921d87c421407cb381883f2..2a4358d96ac77c151aca8a6b91cacf02d944cfbd 100644
--- a/packages/devui-vue/devui/table/src/use-table.ts
+++ b/packages/devui-vue/devui/table/src/use-table.ts
@@ -4,9 +4,10 @@ import { TablePropsTypes } from './table.type';
export function useTable(props: TablePropsTypes): any {
const classes = computed(() => ({
'devui-table': true,
- 'devui-table-striped': props.striped,
+ 'devui-table_striped': props.striped,
'header-bg': props.headerBg,
- 'table-layout-auto': props.tableLayout === 'auto'
+ 'devui-table_layout-auto': props.tableLayout === 'auto',
+ 'devui-table_bordered': props.borderType === 'bordered'
}));
return { classes };
diff --git a/packages/devui-vue/docs/components/table/index.md b/packages/devui-vue/docs/components/table/index.md
index fb305b27c2e127afe91f737d63027c7a10b902aa..a1062fe24b4579665ddf1cc9ed40f365beebefcb 100644
--- a/packages/devui-vue/docs/components/table/index.md
+++ b/packages/devui-vue/docs/components/table/index.md
@@ -8,9 +8,9 @@
2. 当需要对数据进行排序、过滤、自定义操作等复杂行为时。
### 基本用法
+简单表格,`d-table`组件上的`data`属性传入要展示的数据,`d-table-column`组件上通过`field`传入对应列内容的字段名,`header`传入对应列的标题。
-:::demo 简单表格,`d-table`组件上的`data`属性传入要展示的数据,`d-table-column`组件上通过`field`传入对应列内容的字段名,`header`传入对应列的标题。
-
+:::demo
```vue
@@ -59,13 +59,11 @@
```
-
:::
### 表格样式
:::demo
-
```vue
@@ -73,6 +71,10 @@
自动表格布局:
+
+ 外边框:
+
+
斑马纹:
@@ -81,8 +83,12 @@
表头背景色:
+
+ 固定表头:
+
+
-