diff --git a/docs/components/table.md b/docs/components/table.md
index de9476c406..68fca4e2f4 100644
--- a/docs/components/table.md
+++ b/docs/components/table.md
@@ -663,19 +663,21 @@
## Attributes
-| 参数 | 说明 | 类型 | 可选值 | 默认值 |
-| --------------- | ------------------ | ------------------------------------ | ----------------------- | ------ |
-| `data` | 数据列表 | array | —— | —— |
-| `columns` | 标题数据 | array | —— | —— |
-| `align` | 内容对齐方式 | TableAlign | `left` `center` `right` | left |
-| `border` | 是否显示边框 | boolean | —— | false |
-| `num` | 是否显示序号 | boolean | —— | false |
-| `zebra` | 是否显示斑马纹 | boolean | —— | false |
-| `zebra-color` | 自定义斑马纹颜色 | string | —— | —— |
-| `height` | 自定义表格内容高度 | string / number | —— | —— |
-| `bg-color` | 自定义背景颜色 | string | —— | —— |
-| `head-bg-color` | 自定义头部背景颜色 | string | —— | —— |
-| `show-head` | 是否展示头部 | boolean | —— | true |
+| 参数 | 说明 | 类型 | 可选值 | 默认值 |
+| --------------- | -------------------- | -------------------------------------- | ----------------------- | ------ |
+| `data` | 数据列表 | array | —— | —— |
+| `columns` | 标题数据 | array | —— | —— |
+| `align` | 内容对齐方式 | TableAlign | `left` `center` `right` | left |
+| `border` | 是否显示边框 | boolean | —— | false |
+| `num` | 是否显示序号 | boolean | —— | false |
+| `zebra` | 是否显示斑马纹 | boolean | —— | false |
+| `zebra-color` | 自定义斑马纹颜色 | string | —— | —— |
+| `height` | 自定义表格内容高度 | string / number | —— | —— |
+| `bg-color` | 自定义背景颜色 | string | —— | —— |
+| `head-bg-color` | 自定义头部背景颜色 | string | —— | —— |
+| `show-head` | 是否展示头部 | boolean | —— | true |
+| `select` | 是否可多选 | boolean | —— | false |
+| `on-select` | 选中值改变触发的回调 | TableSelect | —— | —— |
## Slots
@@ -696,7 +698,8 @@ import type {
TableAlign,
TableDate,
TableRenderReturn,
- TableColumns
+ TableColumns,
+ TableSelect
} from 'fighting-design'
```
@@ -762,6 +765,12 @@ type TableRenderData = (
) => TableRenderReturn
```
+### TableSelect
+
+```ts
+type TableSelect = (value: TableData) => void
+```
+
## Contributors
diff --git a/packages/fighting-design/table/src/interface.ts b/packages/fighting-design/table/src/interface.ts
index 5983cebca8..6ecf2cd4f8 100644
--- a/packages/fighting-design/table/src/interface.ts
+++ b/packages/fighting-design/table/src/interface.ts
@@ -75,3 +75,10 @@ export interface TableColumns {
width?: number | string | undefined
render?: TableRenderData
}
+
+/**
+ * 选择器改变触发的回调类型
+ *
+ * @param { Array } values 选中的数据集合
+ */
+export type TableSelect = (value: TableData) => void
diff --git a/packages/fighting-design/table/src/props.ts b/packages/fighting-design/table/src/props.ts
index 1cea0411ae..24f50e8302 100644
--- a/packages/fighting-design/table/src/props.ts
+++ b/packages/fighting-design/table/src/props.ts
@@ -2,7 +2,8 @@ import {
setBooleanProp,
setStringProp,
setStringNumberProp,
- setArrayProp
+ setArrayProp,
+ setFunctionProp
} from '../../_utils'
import type { ExtractPropTypes } from 'vue'
import type { TableAlign, TableData, TableColumns } from './interface'
@@ -23,6 +24,8 @@ export const Props = {
}),
/** 是否显示边框 */
border: setBooleanProp(),
+ /** 是否可选择 */
+ select: setBooleanProp(),
/** 是否显示序号 */
num: setBooleanProp(),
/** 是否显示斑马纹 */
@@ -38,7 +41,9 @@ export const Props = {
/** 自定义头部背景颜色 */
headBgColor: setStringProp(),
/** 是否展示头部 */
- showHead: setBooleanProp(true)
+ showHead: setBooleanProp(true),
+ /** 切换选项触发的回调 */
+ onSelect: setFunctionProp()
} as const
/** table 组件 props 类型 */
diff --git a/packages/fighting-design/table/src/table.vue b/packages/fighting-design/table/src/table.vue
index deebbbba40..d14b0f31f9 100644
--- a/packages/fighting-design/table/src/table.vue
+++ b/packages/fighting-design/table/src/table.vue
@@ -1,21 +1,24 @@
@@ -62,7 +118,7 @@
-
+