|  | 
| 2 | 2 | 
 | 
| 3 | 3 | 展示行列数据。 | 
| 4 | 4 | 
 | 
| 5 |  | -### 何时使用 | 
|  | 5 | +#### 何时使用 | 
| 6 | 6 | 
 | 
| 7 | 7 | 1. 当有大量结构化的数据需要展现时; | 
| 8 | 8 | 2. 当需要对数据进行排序、过滤、自定义操作等复杂行为时。 | 
| 9 | 9 | 
 | 
| 10 | 10 | ### 基本用法 | 
| 11 | 11 | 
 | 
| 12 |  | -:::demo 简单表格,`d-table`组件上的`data`属性传入要展示的数据,`d-table-column`组件上通过`field`传入对应列内容的字段名,`header`传入对应列的标题。 | 
|  | 12 | +:::demo 简单表格,`d-table`组件上的`data`属性传入要展示的数据,`d-column`组件上通过`field`传入对应列内容的字段名,`header`传入对应列的标题。 | 
| 13 | 13 | 
 | 
| 14 | 14 | ```vue | 
| 15 | 15 | <template> | 
| 16 | 16 |  <d-table :data="baseTableData"> | 
| 17 |  | - <d-column type="index"></d-column> | 
| 18 | 17 |  <d-column field="firstName" header="First Name"></d-column> | 
| 19 | 18 |  <d-column field="lastName" header="Last Name"></d-column> | 
| 20 | 19 |  <d-column field="gender" header="Gender"></d-column> | 
| 21 | 20 |  <d-column field="date" header="Date of birth"></d-column> | 
| 22 |  | - <d-column header="Operation"> | 
| 23 |  | - <template #default="scope"> | 
| 24 |  | - <d-button @click="handleClick(scope)">编辑</d-button> | 
| 25 |  | - </template> | 
| 26 |  | - </d-column> | 
| 27 | 21 |  </d-table> | 
| 28 | 22 | </template> | 
| 29 | 23 | 
 | 
| @@ -58,11 +52,8 @@ export default defineComponent({ | 
| 58 | 52 |  date: '1990/01/14', | 
| 59 | 53 |  }, | 
| 60 | 54 |  ]); | 
| 61 |  | - const handleClick = (scope) => { | 
| 62 |  | - console.log(scope); | 
| 63 |  | - }; | 
| 64 | 55 | 
 | 
| 65 |  | - return { baseTableData, handleClick }; | 
|  | 56 | + return { baseTableData }; | 
| 66 | 57 |  }, | 
| 67 | 58 | }); | 
| 68 | 59 | </script> | 
| @@ -278,6 +269,195 @@ export default defineComponent({ | 
| 278 | 269 | 
 | 
| 279 | 270 | ::: | 
| 280 | 271 | 
 | 
|  | 272 | +### 索引列 | 
|  | 273 | + | 
|  | 274 | +:::demo 通过添加一个`d-column`并且设置`type`参数为`index`即可给表格添加索引。索引列的表头默认展示`#`,可通过`header`参数传入指定内容。 | 
|  | 275 | + | 
|  | 276 | +```vue | 
|  | 277 | +<template> | 
|  | 278 | + <div> | 
|  | 279 | + <d-table :data="data"> | 
|  | 280 | + <d-column type="index"></d-column> | 
|  | 281 | + <d-column field="firstName" header="First Name"></d-column> | 
|  | 282 | + <d-column field="lastName" header="Last Name"></d-column> | 
|  | 283 | + <d-column field="gender" header="Gender"></d-column> | 
|  | 284 | + <d-column field="date" header="Date of birth"></d-column> | 
|  | 285 | + </d-table> | 
|  | 286 | + </div> | 
|  | 287 | +</template> | 
|  | 288 | +
 | 
|  | 289 | +<script> | 
|  | 290 | +import { defineComponent, ref } from 'vue'; | 
|  | 291 | +
 | 
|  | 292 | +export default defineComponent({ | 
|  | 293 | + setup() { | 
|  | 294 | + const data = ref([ | 
|  | 295 | + { | 
|  | 296 | + firstName: 'po', | 
|  | 297 | + lastName: 'Lang', | 
|  | 298 | + gender: 'Male', | 
|  | 299 | + date: '1990/01/15', | 
|  | 300 | + }, | 
|  | 301 | + { | 
|  | 302 | + firstName: 'john', | 
|  | 303 | + lastName: 'Li', | 
|  | 304 | + gender: 'Female', | 
|  | 305 | + date: '1990/01/16', | 
|  | 306 | + }, | 
|  | 307 | + { | 
|  | 308 | + firstName: 'peng', | 
|  | 309 | + lastName: 'Li', | 
|  | 310 | + gender: 'Male', | 
|  | 311 | + date: '1990/01/17', | 
|  | 312 | + }, | 
|  | 313 | + { | 
|  | 314 | + firstName: 'Dale', | 
|  | 315 | + lastName: 'Yu', | 
|  | 316 | + gender: 'Female', | 
|  | 317 | + date: '1990/01/18', | 
|  | 318 | + }, | 
|  | 319 | + ]); | 
|  | 320 | +
 | 
|  | 321 | + return { data }; | 
|  | 322 | + }, | 
|  | 323 | +}); | 
|  | 324 | +</script> | 
|  | 325 | +``` | 
|  | 326 | + | 
|  | 327 | +::: | 
|  | 328 | + | 
|  | 329 | +### 自定义列 | 
|  | 330 | + | 
|  | 331 | +:::demo 通过`d-column`子组件提供的`default`插槽可以实现自定义列,插槽提供`row`和`rowIndex`两个参数,分别代表行数据和行索引值。 | 
|  | 332 | + | 
|  | 333 | +```vue | 
|  | 334 | +<template> | 
|  | 335 | + <d-table :data="dataSource"> | 
|  | 336 | + <d-column type="index"> | 
|  | 337 | + <template #default="scope"> | 
|  | 338 | + {{ `No.${scope.rowIndex + 1}` }} | 
|  | 339 | + </template> | 
|  | 340 | + </d-column> | 
|  | 341 | + <d-column field="firstName" header="First Name"></d-column> | 
|  | 342 | + <d-column field="lastName" header="Last Name"></d-column> | 
|  | 343 | + <d-column field="gender" header="Gender"></d-column> | 
|  | 344 | + <d-column field="date" header="Date of birth"></d-column> | 
|  | 345 | + <d-column header="Operation"> | 
|  | 346 | + <template #default="scope"> | 
|  | 347 | + <d-button @click="handleClick(scope.row)">编辑</d-button> | 
|  | 348 | + </template> | 
|  | 349 | + </d-column> | 
|  | 350 | + </d-table> | 
|  | 351 | +</template> | 
|  | 352 | +
 | 
|  | 353 | +<script> | 
|  | 354 | +import { defineComponent, ref } from 'vue'; | 
|  | 355 | +
 | 
|  | 356 | +export default defineComponent({ | 
|  | 357 | + setup() { | 
|  | 358 | + const dataSource = ref([ | 
|  | 359 | + { | 
|  | 360 | + firstName: 'Mark', | 
|  | 361 | + lastName: 'Otto', | 
|  | 362 | + date: '1990/01/11', | 
|  | 363 | + gender: 'Male', | 
|  | 364 | + }, | 
|  | 365 | + { | 
|  | 366 | + firstName: 'Jacob', | 
|  | 367 | + lastName: 'Thornton', | 
|  | 368 | + gender: 'Female', | 
|  | 369 | + date: '1990/01/12', | 
|  | 370 | + }, | 
|  | 371 | + { | 
|  | 372 | + firstName: 'Danni', | 
|  | 373 | + lastName: 'Chen', | 
|  | 374 | + gender: 'Male', | 
|  | 375 | + date: '1990/01/13', | 
|  | 376 | + }, | 
|  | 377 | + { | 
|  | 378 | + firstName: 'green', | 
|  | 379 | + lastName: 'gerong', | 
|  | 380 | + gender: 'Male', | 
|  | 381 | + date: '1990/01/14', | 
|  | 382 | + }, | 
|  | 383 | + ]); | 
|  | 384 | + const handleClick = (row) => { | 
|  | 385 | + console.log(row); | 
|  | 386 | + }; | 
|  | 387 | +
 | 
|  | 388 | + return { dataSource, handleClick }; | 
|  | 389 | + }, | 
|  | 390 | +}); | 
|  | 391 | +</script> | 
|  | 392 | +``` | 
|  | 393 | + | 
|  | 394 | +::: | 
|  | 395 | + | 
|  | 396 | +### 自定义表头 | 
|  | 397 | + | 
|  | 398 | +:::demo 通过`d-column`子组件提供的`header`插槽可以实现自定义表头。 | 
|  | 399 | + | 
|  | 400 | +```vue | 
|  | 401 | +<template> | 
|  | 402 | + <d-table :data="dataSource"> | 
|  | 403 | + <d-column field="firstName"> | 
|  | 404 | + <template #header> | 
|  | 405 | + <div> | 
|  | 406 | + <span style="margin-right:4px;">First Name</span> | 
|  | 407 | + <d-popover content="some tips text" trigger="hover" :position="['top']"> | 
|  | 408 | + <template #reference> | 
|  | 409 | + <d-icon name="info-o"></d-icon> | 
|  | 410 | + </template> | 
|  | 411 | + </d-popover> | 
|  | 412 | + </div> | 
|  | 413 | + </template> | 
|  | 414 | + </d-column> | 
|  | 415 | + <d-column field="lastName" header="Last Name"></d-column> | 
|  | 416 | + <d-column field="gender" header="Gender"></d-column> | 
|  | 417 | + <d-column field="date" header="Date of birth"></d-column> | 
|  | 418 | + </d-table> | 
|  | 419 | +</template> | 
|  | 420 | +
 | 
|  | 421 | +<script> | 
|  | 422 | +import { defineComponent, ref } from 'vue'; | 
|  | 423 | +
 | 
|  | 424 | +export default defineComponent({ | 
|  | 425 | + setup() { | 
|  | 426 | + const dataSource = ref([ | 
|  | 427 | + { | 
|  | 428 | + firstName: 'Mark', | 
|  | 429 | + lastName: 'Otto', | 
|  | 430 | + date: '1990/01/11', | 
|  | 431 | + gender: 'Male', | 
|  | 432 | + }, | 
|  | 433 | + { | 
|  | 434 | + firstName: 'Jacob', | 
|  | 435 | + lastName: 'Thornton', | 
|  | 436 | + gender: 'Female', | 
|  | 437 | + date: '1990/01/12', | 
|  | 438 | + }, | 
|  | 439 | + { | 
|  | 440 | + firstName: 'Danni', | 
|  | 441 | + lastName: 'Chen', | 
|  | 442 | + gender: 'Male', | 
|  | 443 | + date: '1990/01/13', | 
|  | 444 | + }, | 
|  | 445 | + { | 
|  | 446 | + firstName: 'green', | 
|  | 447 | + lastName: 'gerong', | 
|  | 448 | + gender: 'Male', | 
|  | 449 | + date: '1990/01/14', | 
|  | 450 | + }, | 
|  | 451 | + ]); | 
|  | 452 | +
 | 
|  | 453 | + return { dataSource }; | 
|  | 454 | + }, | 
|  | 455 | +}); | 
|  | 456 | +</script> | 
|  | 457 | +``` | 
|  | 458 | + | 
|  | 459 | +::: | 
|  | 460 | + | 
| 281 | 461 | ### 空数据模板 | 
| 282 | 462 | 
 | 
| 283 | 463 | :::demo 当传入的数据为空时,默认展示空数据模板。 | 
| @@ -586,9 +766,10 @@ export default defineComponent({ | 
| 586 | 766 | 
 | 
| 587 | 767 | ### d-column 插槽 | 
| 588 | 768 | 
 | 
| 589 |  | -| 插槽名 | 说明 | | 
| 590 |  | -| :------ | :--------------------- | | 
| 591 |  | -| default | 默认插槽,自定义列内容 | | 
|  | 769 | +| 插槽名 | 说明 | | 
|  | 770 | +| :------ | :----------------------- | | 
|  | 771 | +| default | 默认插槽,自定义列内容 | | 
|  | 772 | +| header | 表头插槽,自定义表头内容 | | 
| 592 | 773 | 
 | 
| 593 | 774 | ### 类型定义 | 
| 594 | 775 | 
 | 
|  | 
0 commit comments