Files
aurora-admin/site/end-content/idcardinput.react.json

68 lines
3.6 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"slug": "idcardinput",
"end": "react",
"curated": true,
"summary": "身份证输入:modelValue 受控 18 位号码,组件做加权校验并展示出生日期与性别。",
"usage": [
"React 端号码用 modelValue 传入、onChange 上抛大写去非法字符后的值(IDCardInput.jsx:15,29-33)。",
"校验是国标加权算法:前 17 位按权重求和、用 CHECK 表取模比对第 18 位(IDCardInput.jsx:4-11)。",
"解析结果用 useMemo 缓存,合法时返回 birth 与 gender 两项(IDCardInput.jsx:12,17)。",
"提示文案按输入长度分三档:未输入、未满 18 位(带已输入位数)、校验通过或失败(IDCardInput.jsx:21-27)。",
"输入处理走 onInput:清洗为 0-9 与 X、转大写、截断 18 位后写回 DOM(IDCardInput.jsx:30-31)。"
],
"bestPractices": [
"校验通过后才会渲染出生日期与性别信息块,父组件无需再解析一遍(IDCardInput.jsx:50-55)。",
"onChange 的是原始号码而不是解析结果,需要出生/性别请在父级复用同样规则或从组件回调之外获取。",
"invalid 判定要求长度恰为 18 才成立,中途输入不会被标红,体验上避免了误报(IDCardInput.jsx:19)。"
],
"apiCarrier": {
"kind": "props",
"note": "React 端的 API 载体是 props 与回调:属性驱动外观(type/size/disabled 等布尔与枚举),交互经 onXxx 回传(如 onChange/onClick/onSelectionChange);没有 v-model,受控组件固定写成 value + onChange,非受控则用 defaultValue。",
"table": [
{
"name": "modelValue",
"type": "string",
"desc": "受控身份证号"
},
{
"name": "placeholder",
"type": "string",
"desc": "输入框占位文案"
},
{
"name": "onChange",
"type": "(value) => void",
"desc": "值变化回调,参数为大写、去非法字符后的号码"
}
]
},
"a11y": [
"输入框无 label/aria-label,个人信息录入场景必须由外层补可读标签(IDCardInput.jsx:40-48)。",
"校验提示与户籍信息都是普通 div,未使用 aria-live,校验失败不会主动播报。",
"示例值写在提示文案里(「示例:11010119900307657X」),对读屏是可读的辅助信息,但不应包含真实个人信息。"
],
"resources": [
{
"file": "frameworks/IDCardInput.jsx",
"kind": "React(React)",
"desc": "React 端组件实现源码,props 与回调的唯一定义处"
},
{
"file": "frameworks/IDCardInput.css",
"kind": "样式",
"desc": "该 React 实现依赖的样式文件"
}
],
"exampleIds": [
"idcardinput-ex-1"
],
"notes": [
"frameworks/IDCardInput.jsx:15 中可指到 modelValue(string)——受控身份证号",
"frameworks/IDCardInput.jsx:15 中可指到 placeholder(string)——输入框占位文案",
"frameworks/IDCardInput.jsx:15 中可指到 onChange((value) => void)——值变化回调,参数为大写、去非法字符后的号码",
"props 解构清单见 frameworks/IDCardInput.jsx:15-15;本文件 table 只列该端真正消费的属性与回调。",
"过滤口径:事实包 consumedApi 里还包含绑在组件内部节点上的同名处理器(如 onClick/onChange 绑在内部 button、input、checkbox 上,见 frameworks/IDCardInput.jsx 全文),它们不是对外 props,因此未进 table。",
"table 构成核验:3 行中 3 行是 frameworks/IDCardInput.jsx 解构出的顶层 props(解构块 frameworks/IDCardInput.jsx:15-15);本组件 table 全部为顶层 props。"
]
}