{ "slug": "collapse", "mode": "scenarios", "curated": true, "examples": [ { "id": "collapse-ex-1", "title": "手风琴模式(同时仅展开一个)", "titleSrc": "demo", "desc": "", "html": "
\n
\n
\n
\n ▶\n 基本设置\n
\n
系统名称、主题色、默认语言等基础配置。
\n
\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, 2 ] ], "hide": [ [ 1 ], [ 0, 0 ], [ 0, 1 ], [ 0, 3 ], [ 0, 2, 0 ] ], "mode": "scenarios" }, "previewSafe": true, "previewUnsafeReasons": [], "source": "curated", "code": { "html": "
\n
\n
\n ▶\n 基本设置\n
\n
系统名称、主题色、默认语言等基础配置。
\n
\n
\n
\n ▶\n 通知设置\n
\n \n
\n
\n
\n ▶\n 安全设置\n
\n \n
\n
\n
\n ▶\n 高级(无权限)\n
\n \n
\n
", "jsx": "import { KoleCollapse } from 'kole-ui/react';\n\nconst items = [\n { key: 'basic', title: '基本设置' },\n { key: 'notify', title: '通知设置' },\n { key: 'security', title: '安全设置' },\n { key: 'advanced', title: '高级(无权限)', disabled: true }\n];\n\nconst panels = {\n basic: '系统名称、主题色、默认语言等基础配置。',\n notify: '邮件、短信、站内信通知开关。',\n security: '登录保护、密码策略、IP 白名单。'\n};\n\nfunction renderPanel(key) {\n return panels[key];\n}\n\n", "vue3": "\n\n", "vue2": "\n\n", "tsx": "import { KoleCollapse } from 'kole-ui/react';\n\ninterface CollapseItem {\n key: string;\n title: string;\n disabled?: boolean;\n}\n\nconst items: ReadonlyArray = [\n { key: 'basic', title: '基本设置' },\n { key: 'notify', title: '通知设置' },\n { key: 'security', title: '安全设置' },\n { key: 'advanced', title: '高级(无权限)', disabled: true },\n];\n\ntype PanelKey = 'basic' | 'notify' | 'security';\nconst panels: Record = {\n basic: '系统名称、主题色、默认语言等基础配置。',\n notify: '邮件、短信、站内信通知开关。',\n security: '登录保护、密码策略、IP 白名单。',\n};\n\nfunction renderPanel(key: string): string | undefined {\n return key in panels ? panels[key as PanelKey] : undefined;\n}\n\n", "vue3ts": "\n\n", "vue2ts": "\n\n" }, "notes": [ "依据 frameworks/Collapse.html:24-41 的 data-accordion 块四项(基本设置 is-open / 通知设置 / 安全设置 / 高级(无权限)is-disabled);prop 名取自 frameworks/Collapse.jsx:15-22(items/accordion/defaultValue/renderPanel)", "TS 形态依据 TS-VARIANTS.md:tsx 用 interface CollapseItem + Record 收口 renderPanel 的取值域;vue3ts/vue2ts 用 ", "vue2": "\n\n", "tsx": "import { KoleCollapse } from 'kole-ui/react';\n\ninterface CollapseItem {\n key: string;\n title: string;\n}\n\nconst items: ReadonlyArray = [\n { key: 'orders', title: '订单管理' },\n { key: 'refunds', title: '退款管理' },\n];\n\ntype PanelKey = 'orders' | 'refunds';\nconst panels: Record = {\n orders: '查看与处理所有订单。',\n refunds: '退款审核与到账记录。',\n};\n\nfunction renderPanel(key: string): string | undefined {\n return key in panels ? panels[key as PanelKey] : undefined;\n}\n\nconst openKeys: ReadonlyArray = ['orders', 'refunds'];\n\n", "vue3ts": "\n\n", "vue2ts": "\n\n" }, "notes": [ "依据 frameworks/Collapse.html:46-55 非手风琴块两项(订单管理、退款管理均 is-open),无 data-accordion 即可同时展开;value 为展开 key 数组(Collapse.jsx:19)" ] } ] }