Files
aurora-admin/site/examples/expandabletable.json

41 lines
9.5 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"slug": "expandabletable",
"mode": "single",
"examples": [
{
"id": "expandabletable-ex-1",
"title": "基础用法",
"titleSrc": "",
"desc": "",
"html": "<div class=\"kole-page\">\n <h2 class=\"kole-h2\">ExpandableTable 可展开表格</h2>\n <p class=\"kole-desc\">行首展开图标可展开详情(子表格 / 描述),支持同时展开多行或仅一行。</p>\n <div class=\"kole-demo\">\n <div class=\"kole-demo__title\">订单明细(点击箭头展开)</div>\n <table class=\"kole-exptable\" id=\"exptable\">\n <thead>\n <tr>\n <th style=\"width:40px\"></th>\n <th>订单号</th>\n <th>客户</th>\n <th>金额</th>\n <th>状态</th>\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n</div>",
"preview": {
"show": [
[
0
]
],
"hide": [],
"mode": "single"
},
"previewSafe": true,
"previewUnsafeReasons": [],
"source": "curated",
"code": {
"html": "<h2>ExpandableTable 可展开表格</h2>\n<p>行首展开图标可展开详情(子表格 / 描述),支持同时展开多行或仅一行。</p>\n<div>订单明细(点击箭头展开)</div>\n<table class=\"kole-exptable\" id=\"exptable\">\n <thead>\n <tr>\n <th style=\"width:40px\"></th>\n <th>订单号</th>\n <th>客户</th>\n <th>金额</th>\n <th>状态</th>\n </tr>\n </thead>\n <tbody></tbody>\n</table>",
"jsx": "import { KoleExpandableTable } from 'kole-ui/react';\n\nconst columns = [\n { key: 'id', title: '订单号' },\n { key: 'cust', title: '客户' },\n { key: 'amount', title: '金额' },\n { key: 'status', title: '状态' },\n];\n\nconst data = [\n { id: 'NO20240801', cust: '北京科技有限公司', amount: 1280, status: '已付款', detail: { items: ['企业版授权 ×1', '实施服务 ×1'], note: '对公转账,预计 3 个工作日内开通。' } },\n { id: 'NO20240802', cust: '上海贸易行', amount: 560, status: '待发货', detail: { items: ['标准版授权 ×2'], note: '已开票,等待仓库出库。' } },\n { id: 'NO20240803', cust: '广州信息公司', amount: 3200, status: '已完成', detail: { items: ['旗舰版授权 ×1', '培训服务 ×3', '运维包 ×1'], note: '项目已验收,进入维保期。' } },\n];\n\n// 行首箭头展开 detail(备注 + 子项),可同时展开多行\n<KoleExpandableTable data={data} columns={columns} idKey=\"id\" />",
"vue3": "<script setup>\nimport { KoleExpandableTable } from 'kole-ui/vue3';\n\nconst columns = [\n { key: 'id', title: '订单号' },\n { key: 'cust', title: '客户' },\n { key: 'amount', title: '金额' },\n { key: 'status', title: '状态' },\n];\n\nconst data = [\n { id: 'NO20240801', cust: '北京科技有限公司', amount: 1280, status: '已付款', detail: { items: ['企业版授权 ×1', '实施服务 ×1'], note: '对公转账,预计 3 个工作日内开通。' } },\n { id: 'NO20240802', cust: '上海贸易行', amount: 560, status: '待发货', detail: { items: ['标准版授权 ×2'], note: '已开票,等待仓库出库。' } },\n { id: 'NO20240803', cust: '广州信息公司', amount: 3200, status: '已完成', detail: { items: ['旗舰版授权 ×1', '培训服务 ×3', '运维包 ×1'], note: '项目已验收,进入维保期。' } },\n];\n</script>\n\n<template>\n <!-- 行首箭头展开 detail(备注 + 子项);id-key 指定行唯一键 -->\n <KoleExpandableTable :data=\"data\" :columns=\"columns\" id-key=\"id\" />\n</template>",
"vue2": "<template>\n <KoleExpandableTable :data=\"data\" :columns=\"columns\" id-key=\"id\" />\n</template>\n\n<script>\nimport { KoleExpandableTable } from 'kole-ui/vue2';\n\nconst columns = [\n { key: 'id', title: '订单号' },\n { key: 'cust', title: '客户' },\n { key: 'amount', title: '金额' },\n { key: 'status', title: '状态' },\n];\n\nconst data = [\n { id: 'NO20240801', cust: '北京科技有限公司', amount: 1280, status: '已付款', detail: { items: ['企业版授权 ×1', '实施服务 ×1'], note: '对公转账,预计 3 个工作日内开通。' } },\n { id: 'NO20240802', cust: '上海贸易行', amount: 560, status: '待发货', detail: { items: ['标准版授权 ×2'], note: '已开票,等待仓库出库。' } },\n { id: 'NO20240803', cust: '广州信息公司', amount: 3200, status: '已完成', detail: { items: ['旗舰版授权 ×1', '培训服务 ×3', '运维包 ×1'], note: '项目已验收,进入维保期。' } },\n];\n\nexport default {\n name: 'ExpandableTableDemo',\n components: { KoleExpandableTable },\n data() { return { columns, data }; },\n};\n</script>",
"tsx": "import { KoleExpandableTable } from 'kole-ui/react';\n\ninterface ExpandableColumn {\n key: string;\n title: string;\n}\n\ninterface OrderDetail {\n items: ReadonlyArray<string>;\n note: string;\n}\n\ninterface OrderRow {\n id: string;\n cust: string;\n amount: number;\n status: string;\n detail: OrderDetail;\n}\n\nconst columns: ReadonlyArray<ExpandableColumn> = [\n { key: 'id', title: '订单号' },\n { key: 'cust', title: '客户' },\n { key: 'amount', title: '金额' },\n { key: 'status', title: '状态' },\n];\n\nconst data: ReadonlyArray<OrderRow> = [\n { id: 'NO20240801', cust: '北京科技有限公司', amount: 1280, status: '已付款', detail: { items: ['企业版授权 ×1', '实施服务 ×1'], note: '对公转账,预计 3 个工作日内开通。' } },\n { id: 'NO20240802', cust: '上海贸易行', amount: 560, status: '待发货', detail: { items: ['标准版授权 ×2'], note: '已开票,等待仓库出库。' } },\n { id: 'NO20240803', cust: '广州信息公司', amount: 3200, status: '已完成', detail: { items: ['旗舰版授权 ×1', '培训服务 ×3', '运维包 ×1'], note: '项目已验收,进入维保期。' } },\n];\n\n// 行首箭头展开 detail(备注 + 子项),可同时展开多行\n<KoleExpandableTable data={data} columns={columns} idKey=\"id\" />",
"vue3ts": "<template>\n <!-- 行首箭头展开 detail(备注 + 子项);id-key 指定行唯一键 -->\n <KoleExpandableTable :data=\"data\" :columns=\"columns\" id-key=\"id\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleExpandableTable } from 'kole-ui/vue3';\n\ninterface ExpandableColumn {\n key: string;\n title: string;\n}\n\ninterface OrderDetail {\n items: ReadonlyArray<string>;\n note: string;\n}\n\ninterface OrderRow {\n id: string;\n cust: string;\n amount: number;\n status: string;\n detail: OrderDetail;\n}\n\nconst columns: ReadonlyArray<ExpandableColumn> = [\n { key: 'id', title: '订单号' },\n { key: 'cust', title: '客户' },\n { key: 'amount', title: '金额' },\n { key: 'status', title: '状态' },\n];\n\nconst data: ReadonlyArray<OrderRow> = [\n { id: 'NO20240801', cust: '北京科技有限公司', amount: 1280, status: '已付款', detail: { items: ['企业版授权 ×1', '实施服务 ×1'], note: '对公转账,预计 3 个工作日内开通。' } },\n { id: 'NO20240802', cust: '上海贸易行', amount: 560, status: '待发货', detail: { items: ['标准版授权 ×2'], note: '已开票,等待仓库出库。' } },\n { id: 'NO20240803', cust: '广州信息公司', amount: 3200, status: '已完成', detail: { items: ['旗舰版授权 ×1', '培训服务 ×3', '运维包 ×1'], note: '项目已验收,进入维保期。' } },\n];\n</script>",
"vue2ts": "<template>\n <div>\n <KoleExpandableTable :data=\"data\" :columns=\"columns\" id-key=\"id\" />\n </div>\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleExpandableTable } from 'kole-ui/vue2';\n\ninterface ExpandableColumn {\n key: string;\n title: string;\n}\n\ninterface OrderDetail {\n items: ReadonlyArray<string>;\n note: string;\n}\n\ninterface OrderRow {\n id: string;\n cust: string;\n amount: number;\n status: string;\n detail: OrderDetail;\n}\n\nconst columns: ReadonlyArray<ExpandableColumn> = [\n { key: 'id', title: '订单号' },\n { key: 'cust', title: '客户' },\n { key: 'amount', title: '金额' },\n { key: 'status', title: '状态' },\n];\n\nconst data: ReadonlyArray<OrderRow> = [\n { id: 'NO20240801', cust: '北京科技有限公司', amount: 1280, status: '已付款', detail: { items: ['企业版授权 ×1', '实施服务 ×1'], note: '对公转账,预计 3 个工作日内开通。' } },\n { id: 'NO20240802', cust: '上海贸易行', amount: 560, status: '待发货', detail: { items: ['标准版授权 ×2'], note: '已开票,等待仓库出库。' } },\n { id: 'NO20240803', cust: '广州信息公司', amount: 3200, status: '已完成', detail: { items: ['旗舰版授权 ×1', '培训服务 ×3', '运维包 ×1'], note: '项目已验收,进入维保期。' } },\n];\n\nexport default Vue.extend({\n name: 'ExpandableTableDemo',\n components: { KoleExpandableTable },\n data(): { columns: ReadonlyArray<ExpandableColumn>; data: ReadonlyArray<OrderRow> } {\n return { columns, data };\n },\n});\n</script>"
},
"notes": [
"依据 frameworks/ExpandableTable.html:25-33 的 data(NO20240801/02/03 与 detail.items/detail.note)与表头「订单号/客户/金额/状态」",
"data / columns / idKey 形参见 ExpandableTable.jsx 与 ExpandableTable.vue3.vue defineProps;展开行由 kole-exp-toggle 点击切换",
"TS 形态依据 TS-VARIANTS.md:tsx 用 interface OrderRow / OrderDetail(detail 嵌套)+ ReadonlyArray(idKey 见 ExpandableTable.jsx 形参);vue3ts/vue2ts 用 <script lang=\"ts\"> + ReadonlyArray<OrderRow>;不引入 kole-ui 的类型(本仓库不随包发布 .d.ts)"
]
}
],
"curated": true
}