37 lines
5.0 KiB
JSON
37 lines
5.0 KiB
JSON
{
|
|
"curated": true,
|
|
"slug": "phoneinput",
|
|
"mode": "single",
|
|
"examples": [
|
|
{
|
|
"id": "phoneinput-ex-1",
|
|
"title": "基础用法",
|
|
"titleSrc": "",
|
|
"desc": "",
|
|
"html": "<div class=\"kole-page\">\n <h2 class=\"kole-h2\">PhoneInput 手机号输入</h2>\n <p class=\"kole-desc\">国际区号选择 + 自动格式化 + 校验,适用于注册、登录。</p>\n <div class=\"kole-demo\">\n <div class=\"kole-demo__title\">基础用法</div>\n <div class=\"kole-phone\" id=\"phone\">\n <select class=\"kole-phone-code\" id=\"code\">\n <option value=\"+86\">+86</option>\n <option value=\"+852\">+852</option>\n <option value=\"+1\">+1</option>\n <option value=\"+81\">+81</option>\n </select>\n <input class=\"kole-phone-input\" id=\"num\" role=\"group\" inputmode=\"numeric\" placeholder=\"请输入手机号\" />\n </div>\n <div class=\"kole-phone-tip\" id=\"tip\">支持中国大陆、香港、美、日等区号</div>\n </div>\n</div>",
|
|
"preview": {
|
|
"show": [
|
|
[
|
|
0
|
|
]
|
|
],
|
|
"hide": [],
|
|
"mode": "single"
|
|
},
|
|
"previewSafe": true,
|
|
"previewUnsafeReasons": [],
|
|
"source": "curated",
|
|
"code": {
|
|
"html": "<h2>PhoneInput 手机号输入</h2>\n<p>国际区号选择 + 自动格式化 + 校验,适用于注册、登录。</p>\n<div>基础用法</div>\n<div class=\"kole-phone\">\n <select class=\"kole-phone-code\">\n <option value=\"+86\">+86</option>\n <option value=\"+852\">+852</option>\n <option value=\"+1\">+1</option>\n <option value=\"+81\">+81</option>\n </select>\n <input class=\"kole-phone-input\" role=\"group\" inputmode=\"numeric\" placeholder=\"请输入手机号\" />\n</div>\n<div class=\"kole-phone-tip\">支持中国大陆、香港、美、日等区号</div>",
|
|
"jsx": "import { useState } from 'react';\nimport { KolePhoneInput } from 'kole-ui/react';\n\nconst CODES = [\n { value: '+86', label: '中国大陆' },\n { value: '+852', label: '香港' },\n { value: '+1', label: '美国' },\n { value: '+81', label: '日本' }\n];\n\nexport default function Demo() {\n const [phone, setPhone] = useState('');\n\n return (\n <KolePhoneInput\n modelValue={phone}\n placeholder=\"请输入手机号\"\n codes={CODES}\n onChange={setPhone}\n />\n );\n}",
|
|
"vue3": "<template>\n <KolePhoneInput v-model=\"phone\" placeholder=\"请输入手机号\" :codes=\"codes\" />\n</template>\n\n<script setup>\nimport { ref } from 'vue';\nimport { KolePhoneInput } from 'kole-ui/vue3';\n\nconst phone = ref('');\nconst codes = [\n { value: '+86', label: '中国大陆' },\n { value: '+852', label: '香港' },\n { value: '+1', label: '美国' },\n { value: '+81', label: '日本' }\n];\n</script>",
|
|
"vue2": "<template>\n <KolePhoneInput v-model=\"phone\" placeholder=\"请输入手机号\" :codes=\"codes\" />\n</template>\n\n<script>\nimport { KolePhoneInput } from 'kole-ui/vue2';\n\nexport default {\n components: { KolePhoneInput },\n data() {\n return {\n phone: '',\n codes: [\n { value: '+86', label: '中国大陆' },\n { value: '+852', label: '香港' },\n { value: '+1', label: '美国' },\n { value: '+81', label: '日本' }\n ]\n };\n }\n};\n</script>",
|
|
"tsx": "import { useState } from 'react';\nimport { KolePhoneInput } from 'kole-ui/react';\n\nconst CODES = [\n { value: '+86', label: '中国大陆' },\n { value: '+852', label: '香港' },\n { value: '+1', label: '美国' },\n { value: '+81', label: '日本' }\n];\n\nexport default function Demo(): JSX.Element {\n const [phone, setPhone] = useState<string>('');\n\n return (\n <KolePhoneInput\n modelValue={phone}\n placeholder=\"请输入手机号\"\n codes={CODES}\n onChange={setPhone}\n />\n );\n}",
|
|
"vue3ts": "<template>\n\n <KolePhoneInput v-model=\"phone\" placeholder=\"请输入手机号\" :codes=\"codes\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { KolePhoneInput } from 'kole-ui/vue3';\n\nconst phone = ref<string>('');\nconst codes = [\n { value: '+86', label: '中国大陆' },\n { value: '+852', label: '香港' },\n { value: '+1', label: '美国' },\n { value: '+81', label: '日本' }\n];\n</script>",
|
|
"vue2ts": "<template>\n\n <KolePhoneInput v-model=\"phone\" placeholder=\"请输入手机号\" :codes=\"codes\" />\n</template>\n\n<script lang=\"ts\">\nimport Vue from 'vue';\nimport { KolePhoneInput } from 'kole-ui/vue2';\n\nexport default {\n components: { KolePhoneInput },\n data(): Record<string, unknown> {\n return {\n phone: '',\n codes: [\n { value: '+86', label: '中国大陆' },\n { value: '+852', label: '香港' },\n { value: '+1', label: '美国' },\n { value: '+81', label: '日本' }\n ]\n };\n }\n};\n</script>"
|
|
},
|
|
"notes": "依据 frameworks/PhoneInput.html:18-22 的四个 option 区号(+86/+852/+1/+81)、:24 的 placeholder=\"请输入手机号\" 与 :26 的区号提示文案;codes 数组取值对齐 frameworks/PhoneInput.vue3.vue 的 codes 默认值,校验分支取自 :41-47"
|
|
}
|
|
]
|
|
}
|