37 lines
6.9 KiB
JSON
37 lines
6.9 KiB
JSON
{
|
||
"slug": "mergedcelltable",
|
||
"mode": "single",
|
||
"examples": [
|
||
{
|
||
"id": "mergedcelltable-ex-1",
|
||
"title": "基础用法",
|
||
"titleSrc": "",
|
||
"desc": "",
|
||
"html": "<div class=\"kole-page\">\n <h2 class=\"kole-h2\">MergedCellTable 合并单元格表格</h2>\n <p class=\"kole-desc\">按字段纵向合并相同内容单元格,合并后垂直居中,适用于报表 / 统计表。</p>\n <div class=\"kole-demo\">\n <div class=\"kole-demo__title\">部门销售额报表(部门列合并)</div>\n <table class=\"kole-mergetable\" id=\"mergetable\">\n <thead>\n <tr>\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>MergedCellTable 合并单元格表格</h2>\n<p>按字段纵向合并相同内容单元格,合并后垂直居中,适用于报表 / 统计表。</p>\n<div>部门销售额报表(部门列合并)</div>\n<table class=\"kole-mergetable\" id=\"mergetable\">\n <thead>\n <tr>\n <th>部门</th>\n <th>季度</th>\n <th>销售额(万)</th>\n <th>负责人</th>\n </tr>\n </thead>\n <tbody></tbody>\n</table>",
|
||
"jsx": "import { KoleMergedCellTable } from 'kole-ui/react';\n\nconst DATA = [\n { dept: '华东大区', q: 'Q1', sale: 120, owner: '王伟' },\n { dept: '华东大区', q: 'Q2', sale: 135, owner: '王伟' },\n { dept: '华东大区', q: 'Q3', sale: 150, owner: '王伟' },\n { dept: '华南大区', q: 'Q1', sale: 90, owner: '李娜' },\n { dept: '华南大区', q: 'Q2', sale: 110, owner: '李娜' },\n { dept: '华北大区', q: 'Q1', sale: 80, owner: '张强' }\n];\n\nconst COLUMNS = [\n { key: 'dept', title: '部门', merge: true },\n { key: 'q', title: '季度' },\n { key: 'sale', title: '销售额(万)' },\n { key: 'owner', title: '负责人' }\n];\n\nexport default function DeptReport() {\n return <KoleMergedCellTable data={DATA} columns={COLUMNS} />;\n}",
|
||
"vue3": "<template>\n <KoleMergedCellTable :data=\"DATA\" :columns=\"COLUMNS\" />\n</template>\n\n<script setup>\nimport { KoleMergedCellTable } from 'kole-ui/vue3';\n\nconst DATA = [\n { dept: '华东大区', q: 'Q1', sale: 120, owner: '王伟' },\n { dept: '华东大区', q: 'Q2', sale: 135, owner: '王伟' },\n { dept: '华东大区', q: 'Q3', sale: 150, owner: '王伟' },\n { dept: '华南大区', q: 'Q1', sale: 90, owner: '李娜' },\n { dept: '华南大区', q: 'Q2', sale: 110, owner: '李娜' },\n { dept: '华北大区', q: 'Q1', sale: 80, owner: '张强' }\n];\n\nconst COLUMNS = [\n { key: 'dept', title: '部门', merge: true },\n { key: 'q', title: '季度' },\n { key: 'sale', title: '销售额(万)' },\n { key: 'owner', title: '负责人' }\n];\n</script>",
|
||
"vue2": "<template>\n <KoleMergedCellTable :data=\"DATA\" :columns=\"COLUMNS\" />\n</template>\n\n<script>\nimport { KoleMergedCellTable } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleMergedCellTable },\n data() {\n return {\n DATA: [\n { dept: '华东大区', q: 'Q1', sale: 120, owner: '王伟' },\n { dept: '华东大区', q: 'Q2', sale: 135, owner: '王伟' },\n { dept: '华东大区', q: 'Q3', sale: 150, owner: '王伟' },\n { dept: '华南大区', q: 'Q1', sale: 90, owner: '李娜' },\n { dept: '华南大区', q: 'Q2', sale: 110, owner: '李娜' },\n { dept: '华北大区', q: 'Q1', sale: 80, owner: '张强' }\n ],\n COLUMNS: [\n { key: 'dept', title: '部门', merge: true },\n { key: 'q', title: '季度' },\n { key: 'sale', title: '销售额(万)' },\n { key: 'owner', title: '负责人' }\n ]\n };\n }\n};\n</script>",
|
||
"tsx": "import { KoleMergedCellTable } from 'kole-ui/react';\n\nconst DATA = [\n { dept: '华东大区', q: 'Q1', sale: 120, owner: '王伟' },\n { dept: '华东大区', q: 'Q2', sale: 135, owner: '王伟' },\n { dept: '华东大区', q: 'Q3', sale: 150, owner: '王伟' },\n { dept: '华南大区', q: 'Q1', sale: 90, owner: '李娜' },\n { dept: '华南大区', q: 'Q2', sale: 110, owner: '李娜' },\n { dept: '华北大区', q: 'Q1', sale: 80, owner: '张强' }\n];\n\nconst COLUMNS = [\n { key: 'dept', title: '部门', merge: true },\n { key: 'q', title: '季度' },\n { key: 'sale', title: '销售额(万)' },\n { key: 'owner', title: '负责人' }\n];\n\nexport default function DeptReport(): JSX.Element {\n return <KoleMergedCellTable data={DATA} columns={COLUMNS} />;\n}",
|
||
"vue3ts": "<template>\n\n <KoleMergedCellTable :data=\"DATA\" :columns=\"COLUMNS\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleMergedCellTable } from 'kole-ui/vue3';\n\nconst demoTitle = ref<string>('基础用法');\nconst DATA = [\n { dept: '华东大区', q: 'Q1', sale: 120, owner: '王伟' },\n { dept: '华东大区', q: 'Q2', sale: 135, owner: '王伟' },\n { dept: '华东大区', q: 'Q3', sale: 150, owner: '王伟' },\n { dept: '华南大区', q: 'Q1', sale: 90, owner: '李娜' },\n { dept: '华南大区', q: 'Q2', sale: 110, owner: '李娜' },\n { dept: '华北大区', q: 'Q1', sale: 80, owner: '张强' }\n];\n\nconst COLUMNS = [\n { key: 'dept', title: '部门', merge: true },\n { key: 'q', title: '季度' },\n { key: 'sale', title: '销售额(万)' },\n { key: 'owner', title: '负责人' }\n];\n</script>",
|
||
"vue2ts": "<template>\n\n <KoleMergedCellTable :data=\"DATA\" :columns=\"COLUMNS\" />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleMergedCellTable } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleMergedCellTable },\n data(): Record<string, unknown> {\n return {\n DATA: [\n { dept: '华东大区', q: 'Q1', sale: 120, owner: '王伟' },\n { dept: '华东大区', q: 'Q2', sale: 135, owner: '王伟' },\n { dept: '华东大区', q: 'Q3', sale: 150, owner: '王伟' },\n { dept: '华南大区', q: 'Q1', sale: 90, owner: '李娜' },\n { dept: '华南大区', q: 'Q2', sale: 110, owner: '李娜' },\n { dept: '华北大区', q: 'Q1', sale: 80, owner: '张强' }\n ],\n COLUMNS: [\n { key: 'dept', title: '部门', merge: true },\n { key: 'q', title: '季度' },\n { key: 'sale', title: '销售额(万)' },\n { key: 'owner', title: '负责人' }\n ]\n };\n }\n};\n</script>"
|
||
},
|
||
"notes": "依据 frameworks/MergedCellTable.html L25-32 的六行 data(dept/q/sale/owner)、L18 表头「部门/季度/销售额(万)/负责人」与 L36-43 连续相同 dept 算 rowspan;列定义取 MergedCellTable.jsx L24-27 的 {key,title} 与 L6 columns.filter(c => c.merge) 的合并开关、L37 rowSpan。"
|
||
}
|
||
],
|
||
"curated": true
|
||
}
|