114 lines
11 KiB
JSON
114 lines
11 KiB
JSON
{
|
||
"slug": "cascader",
|
||
"mode": "scenarios",
|
||
"curated": true,
|
||
"examples": [
|
||
{
|
||
"id": "cascader-ex-1",
|
||
"title": "单选 + 搜索",
|
||
"titleSrc": "demo",
|
||
"desc": "",
|
||
"html": "<div class=\"demo-block\">\n <div class=\"kole-cascader\" data-cascader data-multiple=\"false\"></div>\n</div>",
|
||
"preview": {
|
||
"show": [
|
||
[
|
||
0,
|
||
2
|
||
]
|
||
],
|
||
"hide": [
|
||
[
|
||
1
|
||
],
|
||
[
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
1
|
||
],
|
||
[
|
||
0,
|
||
3
|
||
],
|
||
[
|
||
0,
|
||
2,
|
||
0
|
||
]
|
||
],
|
||
"mode": "scenarios"
|
||
},
|
||
"previewSafe": true,
|
||
"previewUnsafeReasons": [],
|
||
"source": "curated",
|
||
"code": {
|
||
"html": "<div class=\"kole-cascader\" data-multiple=\"false\"></div>",
|
||
"jsx": "import { useState } from 'react';\nimport { KoleCascader } from 'kole-ui/react';\n\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n\nexport default function Demo() {\n // 单选:值为路径数组,未选择为 null\n const [value, setValue] = useState(null);\n return <KoleCascader options={options} value={value} onChange={setValue} filterable placeholder=\"请选择\" />;\n}",
|
||
"vue3": "<template>\n <KoleCascader v-model=\"value\" :options=\"options\" filterable placeholder=\"请选择\" />\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { KoleCascader } from 'kole-ui/vue3';\n\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n// 单选:值为路径数组,未选择为 null\nconst value = ref(null);\n</script>",
|
||
"vue2": "<template>\n <KoleCascader v-model=\"value\" :options=\"options\" filterable placeholder=\"请选择\" />\n</template>\n\n<script>\nimport { KoleCascader } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCascader },\n data() {\n return {\n options: [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n ],\n // 单选:值为路径数组,未选择为 null\n value: null\n };\n }\n};\n</script>",
|
||
"tsx": "import { useState } from 'react';\nimport { KoleCascader } from 'kole-ui/react';\n\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n\nexport default function Demo(): JSX.Element {\n // 单选:值为路径数组,未选择为 null\n const [value, setValue] = useState(null);\n return <KoleCascader options={options} value={value} onChange={setValue} filterable placeholder=\"请选择\" />;\n}",
|
||
"vue3ts": "<template>\n\n <KoleCascader v-model=\"value\" :options=\"options\" filterable placeholder=\"请选择\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleCascader } from 'kole-ui/vue3';\n\nconst demoTitle = ref<string>('单选 + 搜索');\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n// 单选:值为路径数组,未选择为 null\nconst value = ref(null);\n</script>",
|
||
"vue2ts": "<template>\n\n <KoleCascader v-model=\"value\" :options=\"options\" filterable placeholder=\"请选择\" />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleCascader } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCascader },\n data(): Record<string, unknown> {\n return {\n options: [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n ],\n // 单选:值为路径数组,未选择为 null\n value: null\n };\n }\n};\n</script>"
|
||
},
|
||
"notes": [
|
||
"依据 frameworks/Cascader.html:34-42 的 OPTIONS 三级树与 :24 data-multiple=\"false\"(单选块,含搜索);prop 名取自 frameworks/Cascader.jsx:16-24(options/value/filterable/placeholder)"
|
||
]
|
||
},
|
||
{
|
||
"id": "cascader-ex-2",
|
||
"title": "多选",
|
||
"titleSrc": "demo",
|
||
"desc": "",
|
||
"html": "<div class=\"demo-block\">\n <div class=\"kole-cascader\" data-cascader data-multiple=\"true\"></div>\n</div>",
|
||
"preview": {
|
||
"show": [
|
||
[
|
||
0,
|
||
3
|
||
]
|
||
],
|
||
"hide": [
|
||
[
|
||
1
|
||
],
|
||
[
|
||
0,
|
||
0
|
||
],
|
||
[
|
||
0,
|
||
1
|
||
],
|
||
[
|
||
0,
|
||
2
|
||
],
|
||
[
|
||
0,
|
||
3,
|
||
0
|
||
]
|
||
],
|
||
"mode": "scenarios"
|
||
},
|
||
"previewSafe": true,
|
||
"previewUnsafeReasons": [],
|
||
"source": "curated",
|
||
"code": {
|
||
"html": "<div class=\"kole-cascader\" data-multiple=\"true\"></div>",
|
||
"jsx": "import { useState } from 'react';\nimport { KoleCascader } from 'kole-ui/react';\n\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n\nexport default function Demo() {\n // 多选:值为路径数组的数组\n const [value, setValue] = useState([]);\n return <KoleCascader options={options} value={value} onChange={setValue} multiple placeholder=\"请选择\" />;\n}",
|
||
"vue3": "<template>\n <KoleCascader v-model=\"value\" :options=\"options\" multiple placeholder=\"请选择\" />\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { KoleCascader } from 'kole-ui/vue3';\n\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n// 多选:值为路径数组的数组\nconst value = ref([]);\n</script>",
|
||
"vue2": "<template>\n <KoleCascader v-model=\"value\" :options=\"options\" multiple placeholder=\"请选择\" />\n</template>\n\n<script>\nimport { KoleCascader } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCascader },\n data() {\n return {\n options: [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n ],\n // 多选:值为路径数组的数组\n value: []\n };\n }\n};\n</script>",
|
||
"tsx": "import { useState } from 'react';\nimport { KoleCascader } from 'kole-ui/react';\n\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n\nexport default function Demo(): JSX.Element {\n // 多选:值为路径数组的数组\n const [value, setValue] = useState<unknown[]>([]);\n return <KoleCascader options={options} value={value} onChange={setValue} multiple placeholder=\"请选择\" />;\n}",
|
||
"vue3ts": "<template>\n\n <KoleCascader v-model=\"value\" :options=\"options\" multiple placeholder=\"请选择\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { KoleCascader } from 'kole-ui/vue3';\n\nconst options = [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n];\n// 多选:值为路径数组的数组\nconst value = ref<unknown[]>([]);\n</script>",
|
||
"vue2ts": "<template>\n\n <KoleCascader v-model=\"value\" :options=\"options\" multiple placeholder=\"请选择\" />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KoleCascader } from 'kole-ui/vue2';\n\nexport default {\n components: { KoleCascader },\n data(): Record<string, unknown> {\n return {\n options: [\n { value: 'zj', label: '浙江', children: [\n { value: 'hz', label: '杭州', children: [{ value: 'xh', label: '西湖区' }, { value: 'bj', label: '滨江区' }] },\n { value: 'wz', label: '温州', children: [{ value: 'lc', label: '鹿城区' }] }\n ] },\n { value: 'js', label: '江苏', children: [\n { value: 'nj', label: '南京', children: [{ value: 'xk', label: '玄武区' }] }\n ] }\n ],\n // 多选:值为路径数组的数组\n value: []\n };\n }\n};\n</script>"
|
||
},
|
||
"notes": [
|
||
"依据 frameworks/Cascader.html:29 data-multiple=\"true\" 多选块(options 同 :34-42);多选态下 trigger 渲染 kole-cascader-tags/kole-cascader-tag(Cascader.html:89-91)"
|
||
]
|
||
}
|
||
]
|
||
}
|