Table v2 表格

表格展示,不支持配置初始化接口初始化数据域,所以需要搭配类似像Service这样的,具有配置接口初始化数据域功能的组件,或者手动进行数据域初始化,然后通过source属性,获取数据链中的数据,完成数据展示。

基本用法

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “title”: “表格标题”, “source”: “$rows”, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Operation”, “key”: “operation”, “type”: “button”, “label”: “删除”, “size”: “sm” } ], “footer”: “表格Footer” } ] }

  1. ## 可选择
  2. 支持单选、多选
  3. ### 多选
  4. ```schema: scope="body"
  5. {
  6. "type": "service",
  7. "api": "/api/sample?perPage=5",
  8. "body": [
  9. {
  10. "type": "table-v2",
  11. "source": "$rows",
  12. "rowSelection": {
  13. "type": "checkbox",
  14. "keyField": "id"
  15. },
  16. "columns": [
  17. {
  18. "title": "Engine",
  19. "key": "engine"
  20. },
  21. {
  22. "title": "Version",
  23. "key": "version"
  24. },
  25. {
  26. "title": "Browser",
  27. "key": "browser"
  28. },
  29. {
  30. "title": "Operation",
  31. "key": "operation",
  32. "type": "button",
  33. "label": "删除",
  34. "size": "sm"
  35. }
  36. ]
  37. }
  38. ]
  39. }

点击整行选择

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “rowSelection”: { “type”: “checkbox”, “keyField”: “id”, “rowClick”: true }, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Operation”, “key”: “operation”, “type”: “button”, “label”: “删除”, “size”: “sm” } ] } ] }

  1. ### 已选择
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=5",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "rowSelection": {
  11. "type": "checkbox",
  12. "keyField": "id",
  13. "selectedRowKeys": [1, 2]
  14. },
  15. "columns": [
  16. {
  17. "title": "ID",
  18. "key": "id"
  19. },
  20. {
  21. "title": "Engine",
  22. "key": "engine"
  23. },
  24. {
  25. "title": "Version",
  26. "key": "version"
  27. },
  28. {
  29. "title": "Browser",
  30. "key": "browser"
  31. },
  32. {
  33. "title": "Operation",
  34. "key": "operation",
  35. "type": "button",
  36. "label": "删除",
  37. "size": "sm"
  38. }
  39. ]
  40. }
  41. ]
  42. }

已选择 - 正则表达式

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “rowSelection”: { “type”: “checkbox”, “keyField”: “id”, “selectedRowKeysExpr”: “data.record.id === 1” }, “columns”: [ { “title”: “ID”, “key”: “id” }, { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Operation”, “key”: “operation”, “type”: “button”, “label”: “删除”, “size”: “sm” } ] } ] }

  1. ### 单选
  2. 可通过`disableOn`来控制哪一行不可选,不可选情况下会有禁用样式,但如果行内如果有除文字外的其他组件,禁用样式需要自行控制
  3. ```schema: scope="body"
  4. {
  5. "type": "service",
  6. "api": "/api/sample?perPage=5",
  7. "body": [
  8. {
  9. "type": "table-v2",
  10. "source": "$rows",
  11. "rowSelection": {
  12. "type": "radio",
  13. "keyField": "id",
  14. "disableOn": "this.record.id === 1"
  15. },
  16. "columns": [
  17. {
  18. "title": "Engine",
  19. "key": "engine"
  20. },
  21. {
  22. "title": "Version",
  23. "key": "version"
  24. },
  25. {
  26. "title": "Browser",
  27. "key": "browser"
  28. }
  29. ]
  30. }
  31. ]
  32. }

自定义选择菜单

内置全选all、反选invert、清空none、选中奇数行odd、选中偶数行even,存在禁止选择的行,不参与计算奇偶数

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “rowSelection”: { “type”: “checkbox”, “keyField”: “id”, “selections”: [ { “key”: “all”, “text”: “全选所有” }, { “key”: “invert”, “text”: “反选当页” }, { “key”: “none”, “text”: “清空所有” }, { “key”: “odd”, “text”: “选择奇数行” }, { “key”: “even”, “text”: “选择偶数行” } ] }, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Operation”, “key”: “operation”, “type”: “button”, “label”: “删除”, “size”: “sm” } ] } ] }

  1. ## 筛选和排序
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=5",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "columns": [
  11. {
  12. "title": "Engine",
  13. "key": "engine",
  14. "sorter": true,
  15. "filterMultiple": true,
  16. "filters": [
  17. {
  18. "text": "Joe",
  19. "value": "Joe"
  20. },
  21. {
  22. "text": "Jim",
  23. "value": "Jim"
  24. }
  25. ]
  26. },
  27. {
  28. "title": "Version",
  29. "key": "version",
  30. "sorter": true,
  31. "width": 100
  32. },
  33. {
  34. "title": "Browser",
  35. "key": "browser",
  36. "filters": [
  37. {
  38. "text": "Joe",
  39. "value": "Joe"
  40. },
  41. {
  42. "text": "Jim",
  43. "value": "Jim"
  44. }
  45. ]
  46. }
  47. ]
  48. }
  49. ]
  50. }

带边框

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “bordered”: true, “title”: “标题”, “footer”: “Footer”, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Operation”, “key”: “operation”, “type”: “button”, “label”: “删除”, “size”: “sm” } ] } ] }

  1. ## 可展开
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=5",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "columns": [
  11. {
  12. "title": "Engine",
  13. "key": "engine"
  14. },
  15. {
  16. "title": "Version",
  17. "key": "version"
  18. },
  19. {
  20. "title": "Browser",
  21. "key": "browser"
  22. },
  23. {
  24. "title": "Operation",
  25. "key": "operation",
  26. "type": "button",
  27. "label": "删除",
  28. "size": "sm"
  29. }
  30. ],
  31. "expandable": {
  32. "expandableOn": "this.record.id === 1 || this.record.id === 3",
  33. "keyField": "id",
  34. "expandedRowClassNameExpr": "<%= data.rowIndex % 2 ? 'bg-success' : '' %>",
  35. "expandedRowKeys": ["3"],
  36. "type": "container",
  37. "body": [
  38. {
  39. "type": "tpl",
  40. "html": "<div class=\"test\">测试测试</div>"
  41. }
  42. ]
  43. }
  44. }
  45. ]
  46. }

已展开 - 正则表达式

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Operation”, “key”: “operation”, “type”: “button”, “label”: “删除”, “size”: “sm” } ], “expandable”: { “expandableOn”: “this.record.id === 1 || this.record.id === 3”, “keyField”: “id”, “expandedRowClassNameExpr”: “<%= data.rowIndex % 2 ? ‘bg-success’ : ‘’ %>”, “expandedRowKeysExpr”: “data.record.id == ‘3’”, “type”: “container”, “body”: [ { “type”: “tpl”, “html”: “

测试测试
“ } ] } } ] }

  1. ## 表格行/列合并
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=10",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "columns": [
  11. {
  12. "title": "Engine",
  13. "key": "engine"
  14. },
  15. {
  16. "title": "Version",
  17. "key": "version",
  18. "rowSpanExpr": "<%= data.rowIndex === 2 ? 2 : 0 %>"
  19. },
  20. {
  21. "title": "Browser",
  22. "key": "browser"
  23. },
  24. {
  25. "title": "Badge",
  26. "key": "badgeText",
  27. "colSpanExpr": "<%= data.rowIndex === 6 ? 3 : 0 %>"
  28. },
  29. {
  30. "title": "Grade",
  31. "key": "grade"
  32. },
  33. {
  34. "title": "Platform",
  35. "key": "platform"
  36. }
  37. ]
  38. }
  39. ]
  40. }

固定表头

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=10”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “scroll”: {“y” : 200}, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Grade”, “key”: “grade” }, { “title”: “Platform”, “key”: “platform” } ] } ] }

  1. ## 固定列
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=6",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "scroll": {"x": 1000},
  11. "columns": [
  12. {
  13. "title": "Engine",
  14. "key": "engine",
  15. "fixed": "left",
  16. "width": 100
  17. },
  18. {
  19. "title": "Version",
  20. "key": "version",
  21. "fixed": "left",
  22. "width": 100
  23. },
  24. {
  25. "title": "Browser",
  26. "key": "browser"
  27. },
  28. {
  29. "title": "Badge",
  30. "key": "badgeText"
  31. },
  32. {
  33. "title": "Grade",
  34. "key": "grade"
  35. },
  36. {
  37. "title": "Platform",
  38. "key": "platform",
  39. "fixed": "right"
  40. }
  41. ]
  42. }
  43. ]
  44. }

固定头和列

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=10”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “scroll”: {“x”: 1000, “y”: 200}, “columns”: [ { “title”: “Engine”, “key”: “engine”, “fixed”: “left”, “width”: 100 }, { “title”: “Version”, “key”: “version”, “fixed”: “left”, “width”: 100 }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Grade”, “key”: “grade” }, { “title”: “Platform”, “key”: “platform”, “fixed”: “right” } ] } ] }

  1. ## 表头分组
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=10",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "scroll": {"y": 200},
  11. "columns": [
  12. {
  13. "title": "Engine",
  14. "key": "engine",
  15. },
  16. {
  17. "title": "Version",
  18. "key": "version"
  19. },
  20. {
  21. "title": "Grade",
  22. "key": "grade"
  23. },
  24. {
  25. "title": "Grade1",
  26. "key": "grade1",
  27. "children": [
  28. {
  29. "title": "Browser",
  30. "key": "browser"
  31. },
  32. {
  33. "title": "Badge",
  34. "key": "badgeText",
  35. "children": [
  36. {
  37. "title": "ID",
  38. "key": "id"
  39. }
  40. ]
  41. }
  42. ]
  43. },
  44. {
  45. "title": "Platform",
  46. "key": "platform"
  47. }
  48. ]
  49. }
  50. ]
  51. }

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=10”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “scroll”: {“y”: 200}, “columns”: [ { “title”: “Engine”, “key”: “engine”, }, { “title”: “Version”, “key”: “version” }, { “title”: “Grade”, “key”: “grade” }, { “title”: “Grade1”, “key”: “grade1”, “children”: [ { “title”: “Browser”, “key”: “browser” } ] }, { “title”: “Platform1”, “key”: “platform1”, “children”: [ { “title”: “Badge1”, “key”: “badgeText1”, “children”: [ { “title”: “ID”, “key”: “id” }, { “title”: “Platform”, “key”: “platform” }, { “title”: “Badge”, “key”: “badgeText” } ] } ] } ] } ] }

  1. ## 拖拽排序
  2. 支持手动拖动排序
  3. ### 默认拖拽排序
  4. ```schema: scope="body"
  5. {
  6. "type": "service",
  7. "api": "/api/sample?perPage=5",
  8. "body": [
  9. {
  10. "type": "table-v2",
  11. "source": "$rows",
  12. "draggable": true,
  13. "keyField": "id",
  14. "columns": [
  15. {
  16. "title": "ID",
  17. "key": "id"
  18. },
  19. {
  20. "title": "Grade",
  21. "key": "grade"
  22. },
  23. {
  24. "title": "Browser",
  25. "key": "browser"
  26. },
  27. {
  28. "title": "Badge",
  29. "key": "badgeText",
  30. "children": [
  31. {
  32. "title": "Engine",
  33. "key": "engine",
  34. }
  35. ]
  36. },
  37. {
  38. "title": "Platform",
  39. "key": "platform"
  40. }
  41. ]
  42. }
  43. ]
  44. }

嵌套拖拽排序

数据源嵌套情况下,仅允许同层级之间排序

```schema: scope=”body” { “type”:”page”, “body”:{ “type”:”service”, “data”:{ “rows”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:1, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:1001, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:10001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:10002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:1002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:2, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:2001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:2002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.5”, “platform”:”Win 95+”, “version”:”5.5”, “grade”:”A”, “id”:3, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:3001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:3002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 6”, “platform”:”Win 98+”, “version”:”6”, “grade”:”A”, “id”:4, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:4001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:4002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 7”, “platform”:”Win XP SP2+”, “version”:”7”, “grade”:”A”, “id”:5, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:5001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:5002 } ] } ] }, “body”:[ { “type”:”table-v2”, “source”:”$rows”, “columns”:[ { “key”:”engine”, “title”:”Engine” }, { “key”:”grade”, “title”:”Grade” }, { “key”:”browser”, “title”:”Browser” }, { “key”:”id”, “title”:”ID” }, { “key”:”platform”, “title”:”Platform” } ], “keyField”:”id”, “draggable”: true } ] } }

  1. ## 总结栏
  2. ### 顶部单行
  3. ```schema: scope="body"
  4. {
  5. "type": "service",
  6. "api": "/api/sample?perPage=10",
  7. "body": [
  8. {
  9. "type": "table-v2",
  10. "source": "$rows",
  11. "scroll": {"y": 200},
  12. "columns": [
  13. {
  14. "title": "Engine",
  15. "key": "engine",
  16. },
  17. {
  18. "title": "Version",
  19. "key": "version"
  20. },
  21. {
  22. "title": "Grade",
  23. "key": "grade"
  24. },
  25. {
  26. "title": "Browser",
  27. "key": "browser"
  28. },
  29. {
  30. "title": "Badge",
  31. "key": "badgeText"
  32. },
  33. {
  34. "title": "Platform",
  35. "key": "platform"
  36. }
  37. ],
  38. "headSummary": [
  39. {
  40. "type": "text",
  41. "text": "总计"
  42. },
  43. {
  44. "type": "tpl",
  45. "tpl": "测试测试",
  46. "colSpan": 5
  47. }
  48. ],
  49. "rowSelection": {
  50. "type": "checkbox",
  51. "keyField": "id"
  52. }
  53. }
  54. ]
  55. }

顶部多行

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=10”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “scroll”: {“y”: 200}, “columns”: [ { “title”: “Engine”, “key”: “engine”, }, { “title”: “Version”, “key”: “version” }, { “title”: “Grade”, “key”: “grade” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ], “headSummary”: [ [ { “type”: “text”, “text”: “总计” }, { “type”: “tpl”, “tpl”: “测试测试”, “colSpan”: 5 } ], [ { “type”: “text”, “text”: “总结”, “colSpan”: 6 } ] ], “rowSelection”: { “type”: “checkbox”, “keyField”: “id” } } ] }

  1. ### 尾部单行
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=10",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "bordered": true,
  11. "scroll": {"y": 200, "x": 1000},
  12. "columns": [
  13. {
  14. "title": "Engine",
  15. "key": "engine",
  16. "fixed": "left"
  17. },
  18. {
  19. "title": "Version",
  20. "key": "version"
  21. },
  22. {
  23. "title": "Grade",
  24. "key": "grade"
  25. },
  26. {
  27. "title": "Browser",
  28. "key": "browser"
  29. },
  30. {
  31. "title": "Badge",
  32. "key": "badgeText"
  33. },
  34. {
  35. "title": "Platform",
  36. "key": "platform"
  37. }
  38. ],
  39. "footSummary": [
  40. {
  41. "type": "text",
  42. "text": "总计",
  43. "fixed": 'left'
  44. },
  45. {
  46. "type": "tpl",
  47. "tpl": "测试测试",
  48. "colSpan": 5
  49. }
  50. ]
  51. }
  52. ]
  53. }

尾部多行

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=10”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “bordered”: true, “scroll”: {“y”: 200, “x”: 1000}, “columns”: [ { “title”: “Engine”, “key”: “engine”, “fixed”: “left” }, { “title”: “Version”, “key”: “version” }, { “title”: “Grade”, “key”: “grade” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ], “footSummary”: [ { “type”: “text”, “text”: “总计”, “colSpan”: 6 }, [ { “type”: “tpl”, “tpl”: “测试测试”, “colSpan”: 5 }, { “type”: “text”, “text”: “总结”, “colSpan”: 1 } ] ] } ] }

  1. ## 调整列宽
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=6",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "scroll": {"x": 1000},
  11. "resizable": true,
  12. "columns": [
  13. {
  14. "title": "Engine",
  15. "key": "engine",
  16. "width": 200,
  17. "align": "center"
  18. },
  19. {
  20. "title": "Version",
  21. "key": "version",
  22. "width": 200,
  23. "align": "right"
  24. },
  25. {
  26. "title": "Grade",
  27. "key": "grade",
  28. "width": 200
  29. },
  30. {
  31. "title": "Browser",
  32. "key": "browser",
  33. "width": 200
  34. },
  35. {
  36. "title": "Badge",
  37. "key": "badgeText"
  38. },
  39. {
  40. "title": "Platform",
  41. "key": "platform"
  42. }
  43. ]
  44. }
  45. ]
  46. }

自定义列

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=6”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columnsTogglable”: true, “title”: “表格的标题”, “columns”: [ { “title”: “Engine”, “key”: “engine”, “width”: 200 }, { “title”: “Version”, “key”: “version”, “width”: 200 }, { “title”: “Browser”, “key”: “browser”, “width”: 200, “children”: [ { “title”: “Grade”, “key”: “grade”, “width”: 200 } ] }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ] } ] }

  1. ## 数据为空
  2. ```schema
  3. {
  4. "type": "table-v2",
  5. "data": {
  6. "items": []
  7. },
  8. "columns": [
  9. {
  10. "title": "Engine",
  11. "key": "engine",
  12. "width": 200
  13. },
  14. {
  15. "title": "Version",
  16. "key": "version",
  17. "width": 200
  18. },
  19. {
  20. "title": "Browser",
  21. "key": "browser",
  22. "width": 200,
  23. "children": [
  24. {
  25. "title": "Grade",
  26. "key": "grade",
  27. "width": 200
  28. }
  29. ]
  30. },
  31. {
  32. "title": "Platform",
  33. "key": "platform",
  34. "children": [
  35. {
  36. "title": "Badge",
  37. "key": "badgeText"
  38. }
  39. ]
  40. }
  41. ],
  42. "placeholder": "暂无数据"
  43. }

数据加载中

  1. {
  2. "type": "table-v2",
  3. "data": {
  4. "items": []
  5. },
  6. "columns": [
  7. {
  8. "title": "Engine",
  9. "key": "engine",
  10. "width": 200
  11. },
  12. {
  13. "title": "Version",
  14. "key": "version",
  15. "width": 200
  16. },
  17. {
  18. "title": "Browser",
  19. "key": "browser",
  20. "width": 200,
  21. "children": [
  22. {
  23. "title": "Grade",
  24. "key": "grade",
  25. "width": 200
  26. },
  27. {
  28. "title": "Badge",
  29. "key": "badgeText",
  30. "children": [
  31. {
  32. "title": "Platform",
  33. "key": "platform"
  34. }
  35. ]
  36. }
  37. ]
  38. }
  39. ],
  40. "loading": true
  41. }

树形结构

当行数据中存在 children 属性时,可以自动嵌套显示下去。也可以通过设置 childrenColumnName 进行配置。

默认嵌套

```schema: scope=”body” { “type”:”page”, “body”:{ “type”:”service”, “data”:{ “rows”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:1, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:1001, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:10001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:10002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:1002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:2, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:2001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:2002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.5”, “platform”:”Win 95+”, “version”:”5.5”, “grade”:”A”, “id”:3, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:3001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:3002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 6”, “platform”:”Win 98+”, “version”:”6”, “grade”:”A”, “id”:4, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:4001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:4002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 7”, “platform”:”Win XP SP2+”, “version”:”7”, “grade”:”A”, “id”:5, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:5001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:5002 } ] } ] }, “body”:[ { “type”:”table-v2”, “source”:”$rows”, “columns”:[ { “key”:”engine”, “title”:”Engine” }, { “key”:”grade”, “title”:”Grade” }, { “key”:”version”, “title”:”Version” }, { “key”:”browser”, “title”:”Browser” }, { “key”:”id”, “title”:”ID” }, { “key”:”platform”, “title”:”Platform” } ], “keyField”:”id” } ] } }

  1. ### 多选嵌套
  2. 表格支持多选的同时支持级联选中
  3. ```schema: scope="body"
  4. {
  5. "type":"page",
  6. "body":{
  7. "type":"service",
  8. "data":{
  9. "rows":[
  10. {
  11. "engine":"Trident",
  12. "browser":"Internet Explorer 4.0",
  13. "platform":"Win 95+",
  14. "version":"4",
  15. "grade":"X",
  16. "id":1,
  17. "children":[
  18. {
  19. "engine":"Trident",
  20. "browser":"Internet Explorer 4.0",
  21. "platform":"Win 95+",
  22. "version":"4",
  23. "grade":"X",
  24. "id":1001,
  25. "children":[
  26. {
  27. "engine":"Trident",
  28. "browser":"Internet Explorer 4.0",
  29. "platform":"Win 95+",
  30. "version":"4",
  31. "grade":"X",
  32. "id":10001
  33. },
  34. {
  35. "engine":"Trident",
  36. "browser":"Internet Explorer 5.0",
  37. "platform":"Win 95+",
  38. "version":"5",
  39. "grade":"C",
  40. "id":10002
  41. }
  42. ]
  43. },
  44. {
  45. "engine":"Trident",
  46. "browser":"Internet Explorer 5.0",
  47. "platform":"Win 95+",
  48. "version":"5",
  49. "grade":"C",
  50. "id":1002
  51. }
  52. ]
  53. },
  54. {
  55. "engine":"Trident",
  56. "browser":"Internet Explorer 5.0",
  57. "platform":"Win 95+",
  58. "version":"5",
  59. "grade":"C",
  60. "id":2,
  61. "children":[
  62. {
  63. "engine":"Trident",
  64. "browser":"Internet Explorer 4.0",
  65. "platform":"Win 95+",
  66. "version":"4",
  67. "grade":"X",
  68. "id":2001
  69. },
  70. {
  71. "engine":"Trident",
  72. "browser":"Internet Explorer 5.0",
  73. "platform":"Win 95+",
  74. "version":"5",
  75. "grade":"C",
  76. "id":2002
  77. }
  78. ]
  79. },
  80. {
  81. "engine":"Trident",
  82. "browser":"Internet Explorer 5.5",
  83. "platform":"Win 95+",
  84. "version":"5.5",
  85. "grade":"A",
  86. "id":3,
  87. "children":[
  88. {
  89. "engine":"Trident",
  90. "browser":"Internet Explorer 4.0",
  91. "platform":"Win 95+",
  92. "version":"4",
  93. "grade":"X",
  94. "id":3001
  95. },
  96. {
  97. "engine":"Trident",
  98. "browser":"Internet Explorer 5.0",
  99. "platform":"Win 95+",
  100. "version":"5",
  101. "grade":"C",
  102. "id":3002
  103. }
  104. ]
  105. },
  106. {
  107. "engine":"Trident",
  108. "browser":"Internet Explorer 6",
  109. "platform":"Win 98+",
  110. "version":"6",
  111. "grade":"A",
  112. "id":4,
  113. "children":[
  114. {
  115. "engine":"Trident",
  116. "browser":"Internet Explorer 4.0",
  117. "platform":"Win 95+",
  118. "version":"4",
  119. "grade":"X",
  120. "id":4001
  121. },
  122. {
  123. "engine":"Trident",
  124. "browser":"Internet Explorer 5.0",
  125. "platform":"Win 95+",
  126. "version":"5",
  127. "grade":"C",
  128. "id":4002
  129. }
  130. ]
  131. },
  132. {
  133. "engine":"Trident",
  134. "browser":"Internet Explorer 7",
  135. "platform":"Win XP SP2+",
  136. "version":"7",
  137. "grade":"A",
  138. "id":5,
  139. "children":[
  140. {
  141. "engine":"Trident",
  142. "browser":"Internet Explorer 4.0",
  143. "platform":"Win 95+",
  144. "version":"4",
  145. "grade":"X",
  146. "id":5001
  147. },
  148. {
  149. "engine":"Trident",
  150. "browser":"Internet Explorer 5.0",
  151. "platform":"Win 95+",
  152. "version":"5",
  153. "grade":"C",
  154. "id":5002
  155. }
  156. ]
  157. }
  158. ]
  159. },
  160. "body":[
  161. {
  162. "type":"table-v2",
  163. "source":"$rows",
  164. "columns":[
  165. {
  166. "key":"engine",
  167. "title":"Engine"
  168. },
  169. {
  170. "key":"grade",
  171. "title":"Grade"
  172. },
  173. {
  174. "key":"version",
  175. "title":"Version"
  176. },
  177. {
  178. "key":"browser",
  179. "title":"Browser"
  180. },
  181. {
  182. "key":"id",
  183. "title":"ID"
  184. },
  185. {
  186. "key":"platform",
  187. "title":"Platform"
  188. }
  189. ],
  190. "keyField":"id",
  191. "rowSelection":{
  192. "type":"checkbox",
  193. "keyField":"id"
  194. }
  195. }
  196. ]
  197. }
  198. }

单选嵌套

单选 不同层级之间都是互斥选择

```schema: scope=”body” { “type”:”page”, “body”:{ “type”:”service”, “data”:{ “rows”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:1, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:1001, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:10001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:10002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:1002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:2, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:2001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:2002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.5”, “platform”:”Win 95+”, “version”:”5.5”, “grade”:”A”, “id”:3, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:3001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:3002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 6”, “platform”:”Win 98+”, “version”:”6”, “grade”:”A”, “id”:4, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:4001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:4002 } ] }, { “engine”:”Trident”, “browser”:”Internet Explorer 7”, “platform”:”Win XP SP2+”, “version”:”7”, “grade”:”A”, “id”:5, “children”:[ { “engine”:”Trident”, “browser”:”Internet Explorer 4.0”, “platform”:”Win 95+”, “version”:”4”, “grade”:”X”, “id”:5001 }, { “engine”:”Trident”, “browser”:”Internet Explorer 5.0”, “platform”:”Win 95+”, “version”:”5”, “grade”:”C”, “id”:5002 } ] } ] }, “body”:[ { “type”:”table-v2”, “source”:”$rows”, “columns”:[ { “key”:”engine”, “title”:”Engine” }, { “key”:”grade”, “title”:”Grade” }, { “key”:”version”, “title”:”Version” }, { “key”:”browser”, “title”:”Browser” }, { “key”:”id”, “title”:”ID” }, { “key”:”platform”, “title”:”Platform” } ], “keyField”:”id”, “rowSelection”:{ “type”:”radio”, “keyField”:”id” } } ] } }

  1. ### 缩进设置
  2. ```schema: scope="body"
  3. {
  4. "type":"page",
  5. "body":{
  6. "type":"service",
  7. "data":{
  8. "rows":[
  9. {
  10. "engine":"Trident",
  11. "browser":"Internet Explorer 4.0",
  12. "platform":"Win 95+",
  13. "version":"4",
  14. "grade":"X",
  15. "id":1,
  16. "children":[
  17. {
  18. "engine":"Trident",
  19. "browser":"Internet Explorer 4.0",
  20. "platform":"Win 95+",
  21. "version":"4",
  22. "grade":"X",
  23. "id":1001,
  24. "children":[
  25. {
  26. "engine":"Trident",
  27. "browser":"Internet Explorer 4.0",
  28. "platform":"Win 95+",
  29. "version":"4",
  30. "grade":"X",
  31. "id":10001
  32. },
  33. {
  34. "engine":"Trident",
  35. "browser":"Internet Explorer 5.0",
  36. "platform":"Win 95+",
  37. "version":"5",
  38. "grade":"C",
  39. "id":10002
  40. }
  41. ]
  42. },
  43. {
  44. "engine":"Trident",
  45. "browser":"Internet Explorer 5.0",
  46. "platform":"Win 95+",
  47. "version":"5",
  48. "grade":"C",
  49. "id":1002
  50. }
  51. ]
  52. },
  53. {
  54. "engine":"Trident",
  55. "browser":"Internet Explorer 5.0",
  56. "platform":"Win 95+",
  57. "version":"5",
  58. "grade":"C",
  59. "id":2,
  60. "children":[
  61. {
  62. "engine":"Trident",
  63. "browser":"Internet Explorer 4.0",
  64. "platform":"Win 95+",
  65. "version":"4",
  66. "grade":"X",
  67. "id":2001
  68. },
  69. {
  70. "engine":"Trident",
  71. "browser":"Internet Explorer 5.0",
  72. "platform":"Win 95+",
  73. "version":"5",
  74. "grade":"C",
  75. "id":2002
  76. }
  77. ]
  78. },
  79. {
  80. "engine":"Trident",
  81. "browser":"Internet Explorer 5.5",
  82. "platform":"Win 95+",
  83. "version":"5.5",
  84. "grade":"A",
  85. "id":3,
  86. "children":[
  87. {
  88. "engine":"Trident",
  89. "browser":"Internet Explorer 4.0",
  90. "platform":"Win 95+",
  91. "version":"4",
  92. "grade":"X",
  93. "id":3001
  94. },
  95. {
  96. "engine":"Trident",
  97. "browser":"Internet Explorer 5.0",
  98. "platform":"Win 95+",
  99. "version":"5",
  100. "grade":"C",
  101. "id":3002
  102. }
  103. ]
  104. },
  105. {
  106. "engine":"Trident",
  107. "browser":"Internet Explorer 6",
  108. "platform":"Win 98+",
  109. "version":"6",
  110. "grade":"A",
  111. "id":4,
  112. "children":[
  113. {
  114. "engine":"Trident",
  115. "browser":"Internet Explorer 4.0",
  116. "platform":"Win 95+",
  117. "version":"4",
  118. "grade":"X",
  119. "id":4001
  120. },
  121. {
  122. "engine":"Trident",
  123. "browser":"Internet Explorer 5.0",
  124. "platform":"Win 95+",
  125. "version":"5",
  126. "grade":"C",
  127. "id":4002
  128. }
  129. ]
  130. },
  131. {
  132. "engine":"Trident",
  133. "browser":"Internet Explorer 7",
  134. "platform":"Win XP SP2+",
  135. "version":"7",
  136. "grade":"A",
  137. "id":5,
  138. "children":[
  139. {
  140. "engine":"Trident",
  141. "browser":"Internet Explorer 4.0",
  142. "platform":"Win 95+",
  143. "version":"4",
  144. "grade":"X",
  145. "id":5001
  146. },
  147. {
  148. "engine":"Trident",
  149. "browser":"Internet Explorer 5.0",
  150. "platform":"Win 95+",
  151. "version":"5",
  152. "grade":"C",
  153. "id":5002
  154. }
  155. ]
  156. }
  157. ]
  158. },
  159. "body":[
  160. {
  161. "type":"table-v2",
  162. "source":"$rows",
  163. "columns":[
  164. {
  165. "key":"engine",
  166. "title":"Engine"
  167. },
  168. {
  169. "key":"grade",
  170. "title":"Grade"
  171. },
  172. {
  173. "key":"version",
  174. "title":"Version"
  175. },
  176. {
  177. "key":"browser",
  178. "title":"Browser"
  179. },
  180. {
  181. "key":"id",
  182. "title":"ID"
  183. },
  184. {
  185. "key":"platform",
  186. "title":"Platform"
  187. }
  188. ],
  189. "keyField":"id",
  190. "rowSelection":{
  191. "type":"checkbox",
  192. "keyField":"id"
  193. },
  194. "indentSize": 20
  195. }
  196. ]
  197. }
  198. }

列搜索

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=6”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columns”: [ { “title”: “Engine”, “key”: “engine”, “width”: 200 }, { “title”: “Version”, “key”: “version”, “width”: 200, “searchable”: true }, { “title”: “Browser”, “key”: “browser”, “width”: 200, “children”: [ { “title”: “Grade”, “key”: “grade”, “width”: 200 } ] }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ] } ] }

  1. ## 粘性头部
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=6",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "title": "表格的标题",
  11. "columns": [
  12. {
  13. "title": "Engine",
  14. "key": "engine",
  15. "width": 200
  16. },
  17. {
  18. "title": "Version",
  19. "key": "version",
  20. "width": 200
  21. },
  22. {
  23. "title": "Browser",
  24. "key": "browser",
  25. "width": 200,
  26. "children": [
  27. {
  28. "title": "Grade",
  29. "key": "grade",
  30. "width": 200
  31. }
  32. ]
  33. },
  34. {
  35. "title": "Badge",
  36. "key": "badgeText"
  37. },
  38. {
  39. "title": "Platform",
  40. "key": "platform"
  41. }
  42. ],
  43. "sticky": true
  44. }
  45. ]
  46. }

表格尺寸

通过设置size属性来控制表格尺寸,支持largedefaultsmalldefault是中等尺寸

最大尺寸

large是最大尺寸

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=6”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “size”: “large”, “rowSelection”: { “type”: “checkbox”, “keyField”: “id” }, “columns”: [ { “title”: “Engine”, “key”: “engine”, “sorter”: true, “tpl”: “${engine|truncate:5}” }, { “title”: “Version”, “key”: “version”, “sorter”: true, “filterMultiple”: true, “filters”: [ { “text”: “Joe”, “value”: “Joe” }, { “text”: “Jim”, “value”: “Jim” } ] }, { “type”: “tpl”, “title”: “Browser”, “key”: “browser”, “tpl”: “${browser|truncate:5}”, “searchable”: true }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ], “footSummary”: [ { “type”: “text”, “text”: “总计”, “fixed”: “left” }, { “type”: “tpl”, “tpl”: “测试测试”, “colSpan”: 5 } ] } ] }

  1. ### 默认尺寸
  2. 默认尺寸是`default`,即中等尺寸
  3. ```schema: scope="body"
  4. {
  5. "type": "service",
  6. "api": "/api/sample?perPage=6",
  7. "body": [
  8. {
  9. "type": "table-v2",
  10. "source": "$rows",
  11. "rowSelection": {
  12. "type": "checkbox",
  13. "keyField": "id"
  14. },
  15. "columns": [
  16. {
  17. "title": "Engine",
  18. "key": "engine",
  19. "sorter": true,
  20. "tpl": "${engine|truncate:5}"
  21. },
  22. {
  23. "title": "Version",
  24. "key": "version",
  25. "sorter": true,
  26. "filterMultiple": true,
  27. "filters": [
  28. {
  29. "text": "Joe",
  30. "value": "Joe"
  31. },
  32. {
  33. "text": "Jim",
  34. "value": "Jim"
  35. }
  36. ]
  37. },
  38. {
  39. "type": "tpl",
  40. "title": "Browser",
  41. "key": "browser",
  42. "tpl": "${engine|truncate:5}",
  43. "searchable": true
  44. },
  45. {
  46. "title": "Badge",
  47. "key": "badgeText"
  48. },
  49. {
  50. "title": "Platform",
  51. "key": "platform"
  52. }
  53. ],
  54. "footSummary": [
  55. {
  56. "type": "text",
  57. "text": "总计",
  58. "fixed": "left"
  59. },
  60. {
  61. "type": "tpl",
  62. "tpl": "测试测试",
  63. "colSpan": 5
  64. }
  65. ]
  66. }
  67. ]
  68. }

小尺寸

最小尺寸

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=6”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “size”: “small”, “rowSelection”: { “type”: “checkbox”, “keyField”: “id” }, “columns”: [ { “title”: “Engine”, “key”: “engine”, “sorter”: true, “tpl”: “${engine|truncate:5}” }, { “title”: “Version”, “key”: “version”, “sorter”: true, “filterMultiple”: true, “filters”: [ { “text”: “Joe”, “value”: “Joe” }, { “text”: “Jim”, “value”: “Jim” } ] }, { “type”: “tpl”, “title”: “Browser”, “key”: “browser”, “tpl”: “${engine|truncate:5}”, “searchable”: true }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ], “footSummary”: [ { “type”: “text”, “text”: “总计”, “fixed”: “left” }, { “type”: “tpl”, “tpl”: “测试测试”, “colSpan”: 5 } ] } ] }

  1. ## 可复制
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=6",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "title": "表格的标题",
  11. "columns": [
  12. {
  13. "title": "Engine",
  14. "key": "engine",
  15. "width": 200
  16. },
  17. {
  18. "title": "Version",
  19. "key": "version",
  20. "copyable": true
  21. },
  22. {
  23. "title": "Browser",
  24. "key": "browser",
  25. "width": 200
  26. },
  27. {
  28. "title": "Badge",
  29. "key": "badgeText"
  30. },
  31. {
  32. "title": "Platform",
  33. "key": "platform"
  34. }
  35. ]
  36. }
  37. ]
  38. }

弹出框

可以给列配置上popOver属性,默认会在该列内容区里渲染一个图标,点击会显示弹出框,用于展示内容

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=6”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser”, “copyable”: true, “popOver”: { “body”: { “type”: “tpl”, “tpl”: “详细信息:${browser}” } } }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ] } ] }

  1. 也可以设置图标不展示,结合truncate实现内容自动省略,其余可点击/悬浮查看更多
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=6",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "columns": [
  11. {
  12. "title": "Engine",
  13. "key": "engine"
  14. },
  15. {
  16. "title": "Version",
  17. "key": "version"
  18. },
  19. {
  20. "type": "tpl",
  21. "title": "Browser",
  22. "key": "browser",
  23. "tpl": "${engine|truncate:5}",
  24. "popOver": {
  25. "trigger": "hover",
  26. "position": "left-top",
  27. "showIcon": false,
  28. "body": {
  29. "type": "tpl",
  30. "tpl": "${browser}"
  31. }
  32. }
  33. },
  34. {
  35. "title": "Badge",
  36. "key": "badgeText"
  37. },
  38. {
  39. "title": "Platform",
  40. "key": "platform"
  41. }
  42. ]
  43. }
  44. ]
  45. }

可以给列配置popOverEnableOn属性,该属性为表达式,来控制当前行是否启动popOver功能

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=6”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columns”: [ { “title”: “ID”, “key”: “id”, “popOver”: { “body”: { “type”: “tpl”, “tpl”: “${id}” } }, “popOverEnableOn”: “this.id == 1” }, { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser”, “popOver”: { “body”: { “type”: “tpl”, “tpl”: “${browser}” } } }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Platform”, “key”: “platform” } ] } ] }

  1. ## 行角标
  2. 通过属性`itemBadge`,可以为表格行配置[角标]($docs-zh-CN-components-badge),可以使用[数据映射](../../../docs/concepts/data-mapping)为每一行添加特定的 Badge 属性。[`visibleOn`](../../../docs/concepts/expression)属性控制显示的条件,表达式中`this`可以取到行所在上下文的数据,比如行数据中有`badgeText`字段才显示角标,可以设置`"visibleOn": "this.badgeText"`
  3. ```schema: scope="body"
  4. {
  5. "type": "service",
  6. "body": {
  7. "type": "table-v2",
  8. "source": "${table}",
  9. "syncLocation": false,
  10. "showBadge": true,
  11. "itemBadge": {
  12. "text": "${badgeText}",
  13. "mode": "ribbon",
  14. "position": "top-left",
  15. "level": "${badgeLevel}",
  16. "visibleOn": "this.badgeText"
  17. },
  18. "columns": [
  19. {
  20. "key": "id",
  21. "title": "ID",
  22. "searchable": {
  23. "type": "input-text",
  24. "name": "id",
  25. "label": "主键",
  26. "placeholder": "输入id",
  27. "size": "sm",
  28. }
  29. },
  30. {
  31. "key": "engine",
  32. "title": "Rendering engine"
  33. },
  34. {
  35. "key": "browser",
  36. "title": "Browser",
  37. "searchable": {
  38. "type": "select",
  39. "name": "browser",
  40. "label": "浏览器",
  41. "placeholder": "选择浏览器",
  42. "size": "sm",
  43. "options": [
  44. {
  45. "label": "Internet Explorer ",
  46. "value": "ie"
  47. },
  48. {
  49. "label": "AOL browser",
  50. "value": "aol"
  51. },
  52. {
  53. "label": "Firefox",
  54. "value": "firefox"
  55. }
  56. ]
  57. }
  58. },
  59. {
  60. "key": "platform",
  61. "title": "Platform(s)"
  62. },
  63. {
  64. "key": "version",
  65. "title": "Engine version",
  66. "searchable": {
  67. "type": "input-number",
  68. "name": "version",
  69. "label": "版本号",
  70. "placeholder": "输入版本号",
  71. "size": "sm",
  72. "mode": "horizontal"
  73. }
  74. },
  75. {
  76. "key": "grade",
  77. "title": "CSS grade"
  78. }
  79. ]
  80. },
  81. data: {
  82. table: [
  83. {
  84. "id": 1,
  85. "engine": "Trident",
  86. "browser": "Internet Explorer 4.0",
  87. "platform": "Win 95+",
  88. "version": "4",
  89. "grade": "X",
  90. "badgeText": "默认",
  91. "badgeLevel": "info"
  92. },
  93. {
  94. "id": 2,
  95. "engine": "Trident",
  96. "browser": "Internet Explorer 5.0",
  97. "platform": "Win 95+",
  98. "version": "5",
  99. "grade": "C",
  100. "badgeText": "危险",
  101. "badgeLevel": "danger"
  102. },
  103. {
  104. "id": 3,
  105. "engine": "Trident",
  106. "browser": "Internet Explorer 5.5",
  107. "platform": "Win 95+",
  108. "version": "5.5",
  109. "grade": "A"
  110. },
  111. {
  112. "id": 4,
  113. "engine": "Trident",
  114. "browser": "Internet Explorer 6",
  115. "platform": "Win 98+",
  116. "version": "6",
  117. "grade": "A"
  118. },
  119. {
  120. "id": 5,
  121. "engine": "Trident",
  122. "browser": "Internet Explorer 7",
  123. "platform": "Win XP SP2+",
  124. "version": "7",
  125. "grade": "A"
  126. }
  127. ]
  128. }
  129. }

表头提示

通过设置列属性remark,可为每一列的表头增加提示信息。

```schema: scope=”body” { “type”: “page”, “body”: { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columns”: [ { “title”: “Engine”, “key”: “engine”, “remark”: “表头提示” }, { “title”: “Version”, “key”: “version” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Badge”, “key”: “badgeText” }, { “title”: “Grade”, “key”: “grade” }, { “title”: “Platform”, “key”: “platform” } ] } ] } }

  1. ## 快速编辑
  2. 可以通过给列配置:`"quickEdit": true`Table配置:`quickSaveApi`,可以实现表格内快速编辑并批量保存的功能。
  3. ```schema: scope="body"
  4. {
  5. "type": "page",
  6. "body": {
  7. "type": "service",
  8. "api": "/api/sample?perPage=5",
  9. "body": [
  10. {
  11. "type": "table-v2",
  12. "source": "$rows",
  13. "quickSaveApi": {
  14. "url": "/api/mock2/sample/bulkUpdate",
  15. "method": "put"
  16. },
  17. "columns": [
  18. {
  19. "title": "Engine",
  20. "key": "engine",
  21. "quickEdit": true
  22. },
  23. {
  24. "title": "Version",
  25. "key": "version"
  26. },
  27. {
  28. "title": "Browser",
  29. "key": "browser"
  30. },
  31. {
  32. "title": "Badge",
  33. "key": "badgeText"
  34. }
  35. ]
  36. }
  37. ]
  38. }
  39. }

指定编辑表单项类型

quickEdit也可以配置对象形式,可以指定编辑表单项的类型,例如"type": "select"

```schema: scope=”body” { “type”: “page”, “body”: { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “quickSaveApi”: { “url”: “/api/mock2/sample/bulkUpdate”, “method”: “put” }, “columns”: [ { “key”: “id”, “title”: “ID” }, { “key”: “grade”, “title”: “CSS grade”, “quickEdit”: { “type”: “select”, “options”: [ “A”, “B”, “C”, “D”, “X” ] } } ] } ] } }

  1. #### 快速编辑多个表单项
  2. ```schema: scope="body"
  3. {
  4. "type": "page",
  5. "body": {
  6. "type": "service",
  7. "api": "/api/sample?perPage=5",
  8. "body": [
  9. {
  10. "type": "table-v2",
  11. "source": "$rows",
  12. "quickSaveApi": {
  13. "url": "/api/mock2/sample/bulkUpdate",
  14. "method": "put"
  15. },
  16. "columns": [
  17. {
  18. "key": "id",
  19. "title": "ID"
  20. },
  21. {
  22. "key": "grade",
  23. "title": "CSS grade",
  24. "quickEdit": {
  25. "body": [
  26. {
  27. "type": "select",
  28. "name": "grade",
  29. "options": [
  30. "A",
  31. "B",
  32. "C",
  33. "D",
  34. "X"
  35. ]
  36. },
  37. {
  38. "label": "id",
  39. "type": "input-text",
  40. "name": "id"
  41. }
  42. ]
  43. }
  44. }
  45. ]
  46. }
  47. ]
  48. }
  49. }

内联模式

配置quickEditmodeinline。可以直接将编辑表单项渲染至表格内,可以直接操作编辑。

```schema: scope=”body” { “type”: “page”, “body”: { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “quickSaveApi”: { “url”: “/api/mock2/sample/bulkUpdate”, “method”: “put” }, “columns”: [ { “key”: “id”, “title”: “ID” }, { “key”: “grade”, “title”: “CSS grade”, “quickEdit”: { “mode”: “inline”, “type”: “select”, “size”: “xs”, “options”: [ “A”, “B”, “C”, “D”, “X” ] } }, { “key”: “switch”, “title”: “switch”, “quickEdit”: { “mode”: “inline”, “type”: “switch”, “onText”: “开启”, “offText”: “关闭” } } ] } ] } }

  1. #### 即时保存
  2. 如果想编辑完表单项之后,不想点击顶部确认按钮来进行保存,而是即时保存当前标记的数据,则需要配置 `quickEdit` 中的 `"saveImmediately": true`,然后配置接口`quickSaveItemApi`,可以直接将编辑表单项渲染至表格内操作。
  3. ```schema: scope="body"
  4. {
  5. "type": "page",
  6. "body": {
  7. "type": "service",
  8. "api": "/api/sample?perPage=5",
  9. "body": [
  10. {
  11. "type": "table-v2",
  12. "source": "$rows",
  13. "quickSaveItemApi": {
  14. "url": "/api/mock2/sample/$id",
  15. "method": "put"
  16. },
  17. "columns": [
  18. {
  19. "key": "id",
  20. "title": "ID"
  21. },
  22. {
  23. "key": "grade",
  24. "title": "CSS grade",
  25. "quickEdit": {
  26. "mode": "inline",
  27. "type": "select",
  28. "size": "xs",
  29. "options": [
  30. "A",
  31. "B",
  32. "C",
  33. "D",
  34. "X"
  35. ],
  36. "saveImmediately": true
  37. }
  38. },
  39. {
  40. "key": "switch",
  41. "title": "switch",
  42. "quickEdit": {
  43. "mode": "inline",
  44. "type": "switch",
  45. "onText": "开启",
  46. "offText": "关闭",
  47. "saveImmediately": true
  48. }
  49. }
  50. ]
  51. }
  52. ]
  53. }
  54. }

你也可以在saveImmediately中配置 api,实现即时保存

```schema: scope=”body” { “type”: “page”, “body”: { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columns”: [ { “key”: “id”, “title”: “ID” }, { “key”: “grade”, “title”: “CSS grade”, “quickEdit”: { “mode”: “inline”, “type”: “select”, “size”: “xs”, “options”: [ “A”, “B”, “C”, “D”, “X” ], “saveImmediately”: { “api”: “/api/mock2/sample/$id” } } }, { “key”: “grade”, “title”: “CSS grade”, “quickEdit”: { “mode”: “inline”, “type”: “switch”, “onText”: “开启”, “offText”: “关闭”, “saveImmediately”: true } } ] } ] } }

  1. ## 列样式
  2. 可以通过设置`columns`中的`className`控制整列样式
  3. ```schema: scope="body"
  4. {
  5. "type": "service",
  6. "api": "/api/sample?perPage=5",
  7. "body": [
  8. {
  9. "type": "table-v2",
  10. "source": "$rows",
  11. "columns": [
  12. {
  13. "title": "Engine",
  14. "key": "engine"
  15. },
  16. {
  17. "title": "Version",
  18. "key": "version",
  19. "className": "text-primary"
  20. },
  21. {
  22. "title": "Browser",
  23. "key": "browser"
  24. },
  25. {
  26. "title": "Operation",
  27. "key": "operation",
  28. "type": "button",
  29. "label": "删除",
  30. "size": "sm"
  31. }
  32. ]
  33. }
  34. ]
  35. }

也可以通过titleClassName单独控制表头对应单元格的样式

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version”, “className”: “text-primary”, “titleClassName”: “font-bold” }, { “title”: “Browser”, “key”: “browser” }, { “title”: “Operation”, “key”: “operation”, “type”: “button”, “label”: “删除”, “size”: “sm” } ] } ] }

  1. ## 单元格样式
  2. 可以通过设置`columns``classNameExpr`,根据数据动态添加单元格CSS类,支持模版语法
  3. ```schema: scope="body"
  4. {
  5. "type": "service",
  6. "api": "/api/sample?perPage=5",
  7. "body": [
  8. {
  9. "type": "table-v2",
  10. "source": "$rows",
  11. "columns": [
  12. {
  13. "title": "Engine",
  14. "key": "engine"
  15. },
  16. {
  17. "title": "Version",
  18. "key": "version",
  19. "classNameExpr": "<%= data.version > 5 ? 'text-danger' : '' %>"
  20. },
  21. {
  22. "title": "Browser",
  23. "key": "browser"
  24. },
  25. {
  26. "title": "Operation",
  27. "key": "operation",
  28. "type": "button",
  29. "label": "删除",
  30. "size": "sm"
  31. }
  32. ]
  33. }
  34. ]
  35. }

行操作按钮

通过设置itemActions可以设置鼠标移动到行上出现操作按钮

```schema: scope=”body” { “type”: “service”, “api”: “/api/sample?perPage=5”, “body”: [ { “type”: “table-v2”, “source”: “$rows”, “itemActions”: [ { “label”: “编辑”, “type”: “button”, “actionType”: “dialog”, “dialog”: { “title”: “编辑”, “body”: “这是个简单的编辑弹框” } }, { “label”: “删除”, “type”: “button”, “actionType”: “ajax”, “confirmText”: “确认要删除?”, “api”: “/api/mock2/form/saveForm” } ], “columns”: [ { “title”: “Engine”, “key”: “engine” }, { “title”: “Version”, “key”: “version” } ] } ] }

  1. 固定表头情况下,展示行操作按钮
  2. ```schema: scope="body"
  3. {
  4. "type": "service",
  5. "api": "/api/sample?perPage=20",
  6. "body": [
  7. {
  8. "type": "table-v2",
  9. "source": "$rows",
  10. "itemActions": [
  11. {
  12. "label": "编辑",
  13. "type": "button",
  14. "actionType": "dialog",
  15. "dialog": {
  16. "title": "编辑",
  17. "body": "这是个简单的编辑弹框"
  18. }
  19. },
  20. {
  21. "label": "删除",
  22. "type": "button",
  23. "actionType": "ajax",
  24. "confirmText": "确认要删除?",
  25. "api": "/api/mock2/form/saveForm"
  26. }
  27. ],
  28. "scroll": {
  29. "y": 100
  30. },
  31. "columns": [
  32. {
  33. "title": "Engine",
  34. "key": "engine"
  35. },
  36. {
  37. "title": "Version",
  38. "key": "version"
  39. }
  40. ]
  41. }
  42. ]
  43. }

属性表

属性名 类型 默认值 说明
type string "type" 指定为 table 渲染器
title string 标题
source string ${items} 数据源, 绑定当前环境变量
sticky boolean false 是否粘性头部
footer string \ Schema 表格尾部
loading boolean 表格是否加载中
columnsTogglable auto 或者 boolean auto 展示列显示开关, 自动即:列数量大于或等于 5 个时自动开启
placeholder string \ Schema 暂无数据 当没数据的时候的文字提示
rowSelection rowSelection 行相关配置
rowClassNameExpr string 行 CSS 类名,支持模版语法
expandable Expandable 展开行配置
lineHeight large \ middle 行高设置
footerClassName string Action.md-table-footer 底部外层 CSS 类名
toolbarClassName string Action.md-table-toolbar 工具栏 CSS 类名
columns Array<Column> 用来设置列信息
combineNum number 自动合并单元格
itemActions Array<Action> 悬浮行操作按钮组
itemCheckableOn 表达式 配置当前行是否可勾选的条件,要用 表达式
itemDraggableOn 表达式 配置当前行是否可拖拽的条件,要用 表达式
checkOnItemClick boolean false 点击数据行是否可以勾选当前行
rowClassName string 给行添加 CSS 类名
rowClassNameExpr 模板 通过模板给行添加 CSS 类名
prefixRow Array 顶部总结行
affixRow Array 底部总结行
itemBadge BadgeSchema 行角标配置
autoFillHeight boolean 内容区域自适应高度

行配置属性表

属性名 类型 默认值 说明
type checkbox \ radio checkbox 指定单选还是多选
fixed boolean 选择列是否固定,只能左侧固定
keyField string key 对应数据源的key值,默认是key,可指定为idshortId
disableOn string 当前行是否可选择条件,要用 表达式
selections selections 自定义筛选菜单,内置all(全选)、invert(反选)、none(取消选择)、odd(选择奇数项)、even(选择偶数项)
selectedRowKeys `Array<string number>` 已选择项
selectedRowKeysExpr string 已选择项正则表达式
columnWidth number 自定义选择列列宽
rowClick boolean 单条任意区域选中

选择菜单配置属性表

属性名 类型 默认值 说明
key all \ invert \ none \ odd \ even all 菜单类型,内置全选、反选、取消选择、选择奇数项、选择偶数项
text string 自定义菜单项文本

展开行配置属性表

属性名 类型 默认值 说明
expandableOn string 指定可展开的行,要用 表达式
keyField string key 对应数据源的key值,默认是key,可指定为idshortId
disableOn string 当前行是否可选择条件,要用 表达式
selections selections 自定义筛选菜单,内置all(全选)、invert(反选)、none(取消选择)、odd(选择奇数项)、even(选择偶数项)
selectedRowKeys `Array<string number>` 已选择项
selectedRowKeysExpr string 已选择项正则表达式
columnWidth number 自定义选择列列宽

列配置属性表

属性名 类型 默认值 说明
label 模板 表头文本内容
name string 通过名称关联数据
fixed left \ right \ none 是否固定当前列
popOver 弹出框
quickEdit 快速编辑
copyable boolean{icon: string, content:string} 是否可复制
sortable boolean false 是否可排序
searchable boolean \ Schema false 是否可快速搜索
width number \ string 列宽
remark 提示信息