iter(g33): 新增 upload 文件选择组件
This commit is contained in:
@@ -55,7 +55,8 @@
|
||||
"statistic(props):统计数值,标题 + 大号数字 + 前后缀 + 环比趋势,value 变化时 rAF 滚动过渡(400ms easeOutCubic),减弱动效偏好下直落终值",
|
||||
"list(props):列表,header/footer 外壳 + 条目 avatar/title/description/extra,onItemClick 让条目可点击,items 为空回落空状态",
|
||||
"carousel(props):轮播,items 横排位移,指示点/箭头/←→ 键切换,autoplay 毫秒自动前进且悬停暂停,index 信号可外部受控",
|
||||
"tree(props):树形,递归节点 + 箭头展开/收起 + 点选节点,键盘 Enter 选中、→ 展开、← 收起,禁用节点不响应"
|
||||
"tree(props):树形,递归节点 + 箭头展开/收起 + 点选节点,键盘 Enter 选中、→ 展开、← 收起,禁用节点不响应",
|
||||
"upload(props):文件选择,点击或拖拽入列,清单可逐个移除,onChange 回传文件数组(不内置上传请求)"
|
||||
],
|
||||
"keyTypes": [
|
||||
"ButtonProps",
|
||||
@@ -1775,6 +1776,47 @@
|
||||
"键盘:↑↓ 在可见节点间移动、Home/End 到首末行(只移动焦点),Enter/空格 选中、→ 展开、← 收起;disabled 节点点击与键盘都不响应",
|
||||
"defaultExpandAll 首屏展开全部分支(外部已给 expanded 初值时以外部为准)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "upload",
|
||||
"title": "文件选择 Upload",
|
||||
"demo": "sec-upload",
|
||||
"props": [
|
||||
{
|
||||
"n": "accept",
|
||||
"t": "string",
|
||||
"d": "接受的类型(同原生 accept),如 'image/*,.pdf'"
|
||||
},
|
||||
{
|
||||
"n": "multiple",
|
||||
"t": "boolean",
|
||||
"d": "允许多选;缺省 false(单选时新选择覆盖旧的)"
|
||||
},
|
||||
{
|
||||
"n": "hint",
|
||||
"t": "string",
|
||||
"d": "提示文案;缺省「点击或拖拽文件到此处」"
|
||||
},
|
||||
{
|
||||
"n": "disabled",
|
||||
"t": "boolean",
|
||||
"d": "禁用:不可点选、不接受拖拽"
|
||||
},
|
||||
{
|
||||
"n": "onChange",
|
||||
"t": "(files: File[]) => void",
|
||||
"k": 1,
|
||||
"d": "文件变化回调:选择/拖拽/移除后都触发,回传副本"
|
||||
}
|
||||
],
|
||||
"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 回传剩余文件"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user