{ "slug": "table", "mode": "single", "examples": [ { "id": "table-ex-1", "title": "基础用法", "titleSrc": "", "desc": "", "html": "
\n

Kole UI · Table 组件(纯 H5)

\n

对齐 table.json 契约:表头/行高48px、分割线 #E8ECF1、悬停 #F5F7FA、选中 #F0F5FF、单元格左右16px、数字右对齐、操作列右对齐、加载/空态

\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n 客户名称负责人\n 合同金额\n ↕\n 状态操作
\n \n
\n
", "preview": { "show": [ [ 0 ] ], "hide": [], "mode": "single" }, "previewSafe": true, "previewUnsafeReasons": [], "source": "curated", "code": { "html": "

Kole UI · Table 组件(纯 H5)

\n

对齐 table.json 契约:表头/行高48px、分割线 #E8ECF1、悬停 #F5F7FA、选中 #F0F5FF、单元格左右16px、数字右对齐、操作列右对齐、加载/空态

\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n 客户名称负责人\n 合同金额\n ↕\n 状态操作
\n \n
", "jsx": "import { useState } from 'react';\nimport { KoleTable } from 'kole-ui/react';\n\nconst columns = [\n { key: 'name', title: '客户名称', width: 180, fixed: true },\n { key: 'owner', title: '负责人' },\n { key: 'amount', title: '合同金额', align: 'right', sortable: true },\n { key: 'status', title: '状态' },\n { key: 'action', title: '操作', type: 'action' }\n];\n\nconst data = [\n { id: 1, name: '北京云图科技', owner: '张伟', amount: 128000, status: '已签约' },\n { id: 2, name: '上海恒创', owner: '李娜', amount: 86000, status: '跟进中' },\n { id: 3, name: '广州锐捷', owner: '王芳', amount: 254000, status: '已签约' },\n { id: 4, name: '深圳智联', owner: '刘强', amount: 43000, status: '待回款' }\n];\n\nexport default function ContractTable() {\n const [selectedKeys, setSelectedKeys] = useState([1, 3]);\n const onSortChange = ({ key, order }) => console.log(key, order);\n const renderAction = (row) => ;\n return (\n \n );\n}", "vue3": "\n\n", "vue2": "\n\n", "tsx": "import { useState } from 'react';\nimport { KoleTable } from 'kole-ui/react';\n\ntype ColumnAlign = 'left' | 'right';\ninterface TableColumn {\n key: string;\n title: string;\n width?: number;\n fixed?: boolean;\n align?: ColumnAlign;\n sortable?: boolean;\n type?: 'action';\n}\n\ninterface ContractRow {\n id: number;\n name: string;\n owner: string;\n amount: number;\n status: string;\n}\n\ntype SortOrder = 'asc' | 'desc';\ninterface SortChange {\n key: string;\n order: SortOrder;\n}\n\nconst columns: ReadonlyArray = [\n { key: 'name', title: '客户名称', width: 180, fixed: true },\n { key: 'owner', title: '负责人' },\n { key: 'amount', title: '合同金额', align: 'right', sortable: true },\n { key: 'status', title: '状态' },\n { key: 'action', title: '操作', type: 'action' },\n];\n\nconst data: ReadonlyArray = [\n { id: 1, name: '北京云图科技', owner: '张伟', amount: 128000, status: '已签约' },\n { id: 2, name: '上海恒创', owner: '李娜', amount: 86000, status: '跟进中' },\n { id: 3, name: '广州锐捷', owner: '王芳', amount: 254000, status: '已签约' },\n { id: 4, name: '深圳智联', owner: '刘强', amount: 43000, status: '待回款' },\n];\n\nexport default function ContractTable(): JSX.Element {\n const [selectedKeys, setSelectedKeys] = useState>([1, 3]);\n\n function onSortChange({ key, order }: SortChange): void {\n console.log(key, order);\n }\n function renderAction(row: ContractRow): JSX.Element {\n return ;\n }\n\n return (\n \n );\n}", "vue3ts": "\n\n", "vue2ts": "\n\n" }, "notes": "依据 frameworks/Table.html:59-65 表头列定义(客户名称 col-fixed / 合同金额 sortable+align-right / 操作 col-action)、:74-79 四行数据、:111-125 行选择、:131-137 排序" } ], "curated": true }