@@ -63,7 +63,7 @@ export default defineComponent({
6363
6464### 表格样式  
6565
66- ::: demo 
66+ :::demo  ` table-layout ` 参数设置表格的布局方式,目前支持 ` fixed ` 和 ` auto ` 两种类型; ` striped ` 参数设置是否显示斑马纹; ` header-bg ` 参数设置是否显示表头背景色; ` size ` 参数设置表格大小; ` border-type ` 设置表格边框样式。 
6767
6868``` vue 
6969<template> 
@@ -466,7 +466,7 @@ export default defineComponent({
466466<template> 
467467 <div> 
468468 <d-button @click="handleClick">更新数据</d-button> 
469-  <d-table :data="emptyData"> 
469+  <d-table :data="emptyData" :show-loading="showLoading" > 
470470 <d-column field="firstName" header="First Name"></d-column> 
471471 <d-column field="lastName" header="Last Name"></d-column> 
472472 <d-column field="gender" header="Gender"></d-column> 
@@ -481,36 +481,119 @@ import { defineComponent, ref } from 'vue';
481481export default defineComponent({ 
482482 setup() { 
483483 const emptyData = ref([]); 
484+  const showLoading = ref(false); 
484485 const handleClick = () => { 
485-  emptyData.value = [ 
486-  { 
487-  firstName: 'po', 
488-  lastName: 'Lang', 
489-  gender: 'Male', 
490-  date: '1990/01/15', 
491-  }, 
492-  { 
493-  firstName: 'john', 
494-  lastName: 'Li', 
495-  gender: 'Female', 
496-  date: '1990/01/16', 
497-  }, 
498-  { 
499-  firstName: 'peng', 
500-  lastName: 'Li', 
501-  gender: 'Male', 
502-  date: '1990/01/17', 
503-  }, 
504-  { 
505-  firstName: 'Dale', 
506-  lastName: 'Yu', 
507-  gender: 'Female', 
508-  date: '1990/01/18', 
509-  }, 
510-  ]; 
486+  showLoading.value = true; 
487+  setTimeout(() => { 
488+  showLoading.value = false; 
489+  emptyData.value = [ 
490+  { 
491+  firstName: 'po', 
492+  lastName: 'Lang', 
493+  gender: 'Male', 
494+  date: '1990/01/15', 
495+  }, 
496+  { 
497+  firstName: 'john', 
498+  lastName: 'Li', 
499+  gender: 'Female', 
500+  date: '1990/01/16', 
501+  }, 
502+  { 
503+  firstName: 'peng', 
504+  lastName: 'Li', 
505+  gender: 'Male', 
506+  date: '1990/01/17', 
507+  }, 
508+  { 
509+  firstName: 'Dale', 
510+  lastName: 'Yu', 
511+  gender: 'Female', 
512+  date: '1990/01/18', 
513+  }, 
514+  ]; 
515+  }, 1000); 
511516 }; 
512517
513-  return { emptyData, handleClick }; 
518+  return { emptyData, showLoading, handleClick }; 
519+  }, 
520+ }); 
521+ </script> 
522+ ``` 
523+ 
524+ :::
525+ 
526+ ### 固定表头  
527+ 
528+ :::demo ` fix-header ` 参数可以设置是否固定表头,使之不随内容滚动。
529+ 
530+ ``` vue 
531+ <template> 
532+  <d-table :data="dataSource" table-height="200px" fix-header> 
533+  <d-column field="firstName" header="First Name"></d-column> 
534+  <d-column field="lastName" header="Last Name"></d-column> 
535+  <d-column field="gender" header="Gender"></d-column> 
536+  <d-column field="date" header="Date of birth"></d-column> 
537+  </d-table> 
538+ </template> 
539+ 
540+ <script> 
541+ import { defineComponent, ref } from 'vue'; 
542+ 
543+ export default defineComponent({ 
544+  setup() { 
545+  const dataSource = ref([ 
546+  { 
547+  firstName: 'Mark', 
548+  lastName: 'Otto', 
549+  date: '1990/01/11', 
550+  gender: 'Male', 
551+  }, 
552+  { 
553+  firstName: 'Jacob', 
554+  lastName: 'Thornton', 
555+  gender: 'Female', 
556+  date: '1990/01/12', 
557+  }, 
558+  { 
559+  firstName: 'Danni', 
560+  lastName: 'Chen', 
561+  gender: 'Male', 
562+  date: '1990/01/13', 
563+  }, 
564+  { 
565+  firstName: 'green', 
566+  lastName: 'gerong', 
567+  gender: 'Male', 
568+  date: '1990/01/14', 
569+  }, 
570+  { 
571+  firstName: 'po', 
572+  lastName: 'lang', 
573+  gender: 'Male', 
574+  date: '1990/01/14', 
575+  }, 
576+  { 
577+  firstName: 'john', 
578+  lastName: 'li', 
579+  gender: 'Male', 
580+  date: '1990/01/14', 
581+  }, 
582+  { 
583+  firstName: 'peng', 
584+  lastName: 'li', 
585+  gender: 'Female', 
586+  date: '1990/01/14', 
587+  }, 
588+  { 
589+  firstName: 'Danni', 
590+  lastName: 'Yu', 
591+  gender: 'Female', 
592+  date: '1990/01/14', 
593+  }, 
594+  ]); 
595+ 
596+  return { dataSource }; 
514597 }, 
515598}); 
516599</script> 
@@ -520,23 +603,23 @@ export default defineComponent({
520603
521604### 固定列  
522605
523- ::: demo 
606+ :::demo 当表格列过多时,固定列有利于用户在左右滑动时,能够便捷的进行数据定位与对比,通过 ` fixed-left ` 和 ` fixed-right ` 来配置。 
524607
525608``` vue 
526609<template> 
527610 <div> 
528611 <d-button @click="handleClick">更新数据</d-button> 
529-  <d-table :data="emptyData" :scrollable="true "> 
530-  <d-column field="firstName " header="First Name" :order="2" :minWidth="100 "></d-column> 
531-  <d-column field="lastName " header="Last  Name" :order="3 "></d-column> 
532-  <d-column field="gender " header="Gender" :order="5 "></d-column> 
533-  <d-column field="date " header="Date of birth" :order="4 "></d-column> 
534-  <d-column field="address " header="Address" :order="6 "></d-column> 
535-  <d-column field="occupation " header="Occupation" :order="7 "></d-column> 
536-  <d-column field="occupation" header="Occupation" :order="7" ></d-column> 
537-  <d-column field="occupation" header="Occupation" :order="7" ></d-column> 
538-  <d-column field="occupation" header="Occupation" :order="7" fixedRight="0px" ></d-column> 
539-  <d-column field="idNo " header="ID Card Number" :order="1 "></d-column> 
612+  <d-table :data="emptyData" table-layout="auto "> 
613+  <d-column field="idNo " header="ID Card Number" fixed-left="0px "></d-column> 
614+  <d-column field="firstName " header="First  Name"></d-column> 
615+  <d-column field="lastName " header="Last Name "></d-column> 
616+  <d-column field="gender " header="Gender "></d-column> 
617+  <d-column field="date " header="Date of birth "></d-column> 
618+  <d-column field="address " header="Address "></d-column> 
619+  <d-column field="occupation" header="Occupation"></d-column> 
620+  <d-column field="occupation" header="Occupation"></d-column> 
621+  <d-column field="occupation" header="Occupation"></d-column> 
622+  <d-column field="occupation " header="Occupation" fixed-right="0px "></d-column> 
540623 </d-table> 
541624 </div> 
542625</template> 
@@ -609,7 +692,7 @@ export default defineComponent({
609692
610693``` vue 
611694<template> 
612-  <d-table :data="baseTableData " :span-method="spanMethod" border-type="bordered"> 
695+  <d-table :data="dataSource " :span-method="spanMethod" border-type="bordered"> 
613696 <d-column field="firstName" header="First Name"></d-column> 
614697 <d-column field="lastName" header="Last Name"></d-column> 
615698 <d-column field="gender" header="Gender"></d-column> 
@@ -622,7 +705,7 @@ import { defineComponent, ref } from 'vue';
622705
623706export default defineComponent({ 
624707 setup() { 
625-  const baseTableData  = ref([ 
708+  const dataSource  = ref([ 
626709 { 
627710 firstName: 'Mark', 
628711 lastName: 'Otto', 
@@ -660,7 +743,7 @@ export default defineComponent({
660743 } 
661744 }; 
662745
663-  return { baseTableData , spanMethod }; 
746+  return { dataSource , spanMethod }; 
664747 }, 
665748}); 
666749</script> 
@@ -670,11 +753,11 @@ export default defineComponent({
670753
671754### 表头分组  
672755
673- ::: demo 
756+ :::demo  ` d-column ` 嵌套 ` d-column ` 即可实现表头分组。 
674757
675758``` vue 
676759<template> 
677-  <d-table :data="baseTableData " border-type="bordered"> 
760+  <d-table :data="dataSource " border-type="bordered" header-bg > 
678761 <d-column field="name" header="Name"> 
679762 <d-column field="firstName" header="First Name"></d-column> 
680763 <d-column field="lastName" header="Last Name"></d-column> 
@@ -689,7 +772,7 @@ import { defineComponent, ref } from 'vue';
689772
690773export default defineComponent({ 
691774 setup() { 
692-  const baseTableData  = ref([ 
775+  const dataSource  = ref([ 
693776 { 
694777 firstName: 'Mark', 
695778 lastName: 'Otto', 
@@ -716,7 +799,7 @@ export default defineComponent({
716799 }, 
717800 ]); 
718801
719-  return { baseTableData  }; 
802+  return { dataSource  }; 
720803 }, 
721804}); 
722805</script> 
@@ -736,8 +819,8 @@ export default defineComponent({
736819|  table-width |  ` string `  |  -- |  可选,表格宽度 | 
737820|  table-height |  ` string `  |  -- |  可选,表格高度 | 
738821|  row-hovered-highlight |  ` boolean `  |  true |  可选,鼠标在该行上时,高亮该行 |  [ 表格样式] ( #表格样式 )  | 
739- |  fix-header |  ` boolean `  |  false |  可选,固定头部 | 
740- |  show-loading |  ` boolean `  |  false |  可选,显示加载动画 | 
822+ |  fix-header |  ` boolean `  |  false |  可选,固定头部 |   [ 固定表头 ] ( #固定表头 )   | 
823+ |  show-loading |  ` boolean `  |  false |  可选,显示加载动画 |   [ 空数据模板 ] ( #空数据模板 )   | 
741824|  header-bg |  ` boolean `  |  false |  可选,头部背景 |  [ 表格样式] ( #表格样式 )  | 
742825|  table-layout |  ` 'fixed' \| 'auto' `  |  'fixed' |  可选,表格布局,可选值为'auto' |  [ 表格样式] ( #表格样式 )  | 
743826|  span-method |  ` SpanMethod `  |  -- |  可选,合并单元格的计算方法 |  [ 合并单元格] ( #合并单元格 )  | 
@@ -751,18 +834,18 @@ export default defineComponent({
751834
752835### d-column 参数  
753836
754- |  参数名 |  类型   |  默认值 |  说明 |  跳转 Demo | 
755- |  :--------- |  :---------------------------------------  |  :----------------------------------- |  :------------------------------------------ |  :-------------------- | 
756- |  header |  ` string `    |  -- |  对应列的标题   |  [ 基本用法] ( #基本用法 )  | 
757- |  field |  ` string `    |  -- |  对应列内容的字段名   |  [ 基本用法] ( #基本用法 )  | 
758- |  type |  ` ColumnType `    |  '' |  可选,列的类型,设置` checkable ` 会显示多选框 |  [ 表格多选] ( #表格多选 )  | 
759- |  width |  ` string \| number `    |  -- |  可选,对应列的宽度,单位` px `  | 
760- |  min-width |  ` string \| number `    |  -- |  可选,对应列的最小宽度,单位` px `  | 
761- |  sortable |  ` boolean `    |  false |  可选,对行数据按照该列的顺序进行排序 | 
762- |  fixedLeft |  ` string `    |  -- |  可选,该列固定到左侧的距离,如:'100px' |  [ 固定列] ( #固定列 )  | 
763- |  fixedRight |  ` string `    |  -- |  可选,该列固定到右侧的距离,如:'100px' |  [ 固定列] ( #固定列 )  | 
764- |  formatter |  ` Function `     |  --       |  可选,对应列的所有单元格的格式  | 
765- |  compareFn |  ` (field: string, a: T, b: T) => boolean `  |  (field, a, b) => a[ field]  > b[ field]  |  可选,用于排序的比较函数 | 
837+ |  参数名 |  类型 |  默认值 |  说明 |  跳转 Demo | 
838+ |  :--------- |  :----------------- |  :----------------------------------- |  :------------------------------------------ |  :-------------------- | 
839+ |  header |  ` string `  |  -- |  可选, 对应列的标题 |  [ 基本用法] ( #基本用法 )  | 
840+ |  field |  ` string `  |  -- |  可选, 对应列内容的字段名 |  [ 基本用法] ( #基本用法 )  | 
841+ |  type |  ` ColumnType `  |  '' |  可选,列的类型,设置` checkable ` 会显示多选框 |  [ 表格多选] ( #表格多选 )  | 
842+ |  width |  ` string \| number `  |  -- |  可选,对应列的宽度,单位` px `  | 
843+ |  min-width |  ` string \| number `  |  -- |  可选,对应列的最小宽度,单位` px `  | 
844+ |  sortable |  ` boolean `  |  false |  可选,对行数据按照该列的顺序进行排序 | 
845+ |  fixedLeft |  ` string `  |  -- |  可选,该列固定到左侧的距离,如:'100px' |  [ 固定列] ( #固定列 )  | 
846+ |  fixedRight |  ` string `  |  -- |  可选,该列固定到右侧的距离,如:'100px' |  [ 固定列] ( #固定列 )  | 
847+ |  formatter |  ` Formatter `  |  --     |  可选,格式化列内容  | 
848+ |  compareFn |  ` CompareFn `    |  (field, a, b) => a[ field]  > b[ field]  |  可选,用于排序的比较函数 | 
766849
767850### d-column 插槽  
768851
@@ -801,3 +884,15 @@ type BorderType = '' | 'bordered' | 'borderless';
801884``` ts 
802885type  ColumnType  =  ' checkable' |  ' ' 
803886``` 
887+ 
888+ #### Formatter  
889+ 
890+ ``` ts 
891+ type  Formatter  =  (row :  any , column :  any , cellValue :  any , rowIndex :  number ) =>  VNode ;
892+ ``` 
893+ 
894+ #### CompareFn  
895+ 
896+ ``` ts 
897+ type  CompareFn <T  =  any > =  (field :  string , a :  T , b :  T ) =>  boolean ;
898+ ``` 
0 commit comments