iter(g82): 文件选择补类型体积数量校验
This commit is contained in:
@@ -1012,6 +1012,14 @@
|
||||
"acceptance": "只有当前行 tabindex=0 其余 -1;焦点落到哪行停点就跟到哪行(focusin 同步),下次 Tab 直接回到该行;↑↓/Home/End 移动后停点随焦点迁移;初始停点为首个未禁用根节点;tree ≤ 200 行;npm run check 全绿",
|
||||
"notes": "自补:无障碍;keyOf 抽出复用,去掉 keydown 里的内联查找",
|
||||
"status": "done"
|
||||
},
|
||||
{
|
||||
"id": "g82",
|
||||
"title": "文件选择补类型/体积/数量校验与拒收提示",
|
||||
"motivation": "accept 只设到原生 input 上,拖拽进来的文件完全绕过校验;也没有体积与数量上限,超限只能靠调用方在 onChange 里事后过滤,用户看不到为什么文件没进清单(静默丢弃)",
|
||||
"acceptance": "新增 maxSize(字节)/ maxCount(多选上限)两个可选参数;accept 支持 .ext / type/subtype / type/* 且对拖拽同样生效;被拒文件不进清单并在 role=status 提示行写明原因(类型不符 / 超上限 / 数量已满);不改onChange 语义;文档与演示同步;npm run check 全绿",
|
||||
"notes": "自补:可用性;校验入口收敛到 add(),点选与拖拽共用同一条路径",
|
||||
"status": "open"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
+15
-6
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"$schema": "ui-arch-registry-index/0.1",
|
||||
"generatedAt": "2026-10-26T04:57:50.936Z",
|
||||
"generatedAt": "2026-10-26T05:00:02.358Z",
|
||||
"repoRoot": ".",
|
||||
"packages": [
|
||||
{
|
||||
@@ -2118,6 +2118,16 @@
|
||||
"t": "string",
|
||||
"d": "提示文案;缺省「点击或拖拽文件到此处」"
|
||||
},
|
||||
{
|
||||
"n": "maxSize",
|
||||
"t": "number",
|
||||
"d": "单文件体积上限(字节);超限丢弃并在提示行说明,缺省不限"
|
||||
},
|
||||
{
|
||||
"n": "maxCount",
|
||||
"t": "number",
|
||||
"d": "multiple 时的文件数上限;超出部分丢弃并提示,缺省不限"
|
||||
},
|
||||
{
|
||||
"n": "disabled",
|
||||
"t": "boolean",
|
||||
@@ -2132,11 +2142,10 @@
|
||||
],
|
||||
"example": "upload({ multiple: true, accept: 'image/*', hint: '拖拽图片到此处', onChange: (files) => console.log(files.map((f) => f.name)) })",
|
||||
"steps": [
|
||||
"组件只做「选文件 + 回传」,onChange 里拿 File[] 自行决定上传接口(fetch/FormData 都行)",
|
||||
"multiple: true 允许多选,重复的文件(同名同大小)自动跳过;单选模式下新选择覆盖旧文件",
|
||||
"accept 透传原生 accept 限制可选类型,但仍需在 onChange 里二次校验扩展名",
|
||||
"键盘:区域可 Tab 聚焦,Enter/空格 打开选择器;拖拽时区域高亮,拖出恢复",
|
||||
"disabled 时不可点选、不接受拖拽;已选清单的 × 会触发 onChange 回传剩余文件"
|
||||
"把 upload 放进表单,accept 限定类型、multiple 允许多选",
|
||||
"需要拦体积就给 maxSize(字节),限制数量给 maxCount",
|
||||
"被拒的文件不会进清单,原因显示在下方提示行(拖拽与点选走同一套校验)",
|
||||
"onChange 拿到的 File[] 是副本,自行发请求上传(组件不内置网络层)"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user