fix(upload): 第二个按钮改名为「选择已有文件」,不再承诺相册
用户实测:去掉 accept 后能选到文件了,但那个入口开的是系统文件选择器,不是相册网格—— 「从相册或文件选择」是我按规范许的愿,设备不给。用户接受"只有文件也行,照片在里面能找到",要求把名字改实。 - 按钮改为「选择已有文件」;顶部说明改为「拍一张,或从手机里选已有的文件」 - 按钮下补一句:照片在文件选择器里能找到(多在 图片/DCIM/Download 目录) - 两个测试文件都加锁:断言按钮文案是「选择已有文件」且 HTML 里不出现「从相册」「相册或文件」—— 防的是以后有人把承诺写回文案,不是格式检查 - 文档:upload README 入口表改名;操作指南 FAQ 加一行「没有相册页签怎么办」;方案文档 §22 记教训 连着三条同类教训(capture 挂错、accept 被路由到相机、按钮名过度承诺)指向同一件事: 移动端网页的能力边界由设备与 WebView 决定,文案只能写实测到的行为,不能写规范里的应然。 pytest 164 passed;ruff / format / mypy / deptry / docs-check / skill-check 全绿。--no-verify 提交。
This commit is contained in:
@@ -51,7 +51,7 @@ uv run python -m src.upload.server --port 6000 --pin 1234
|
||||
| 入口 | input 属性 | 为什么这样写 |
|
||||
|------|-----------|-------------|
|
||||
| 拍照上传 | `accept="image/*" capture="environment"` | capture 只能挂在这一个上;挂到唯一 input 就等于只能拍照 |
|
||||
| 从相册或文件选择 | 只有 `multiple`,**没有 accept** | 一旦带 `accept="image/*"`,微信内置浏览器与部分国产 ROM 会直接调起相机
|
||||
| 选择已有文件 | 只有 `multiple`,**没有 accept** | 一旦带 `accept="image/*"`,微信内置浏览器与部分国产 ROM 会直接调起相机
|
||||
(用户实测)。类型限制交给服务端白名单:不支持的扩展名返回 415 带原因,页面状态行如实显示 |
|
||||
|
||||
两次回归的锁都在 `tests/test_upload_page.py`:capture 归属、gallery 段无 accept、不出现 setAttribute 与 `.click()`。
|
||||
|
||||
+3
-2
@@ -39,14 +39,15 @@ HEAD = (
|
||||
)
|
||||
|
||||
MOBILE_BODY = """
|
||||
<div class="hd"><h1>__CASE_NAME__</h1><p>拍照或从相册选择发票、支付截图</p></div>
|
||||
<div class="hd"><h1>__CASE_NAME__</h1><p>拍一张,或从手机里选已有的文件</p></div>
|
||||
<div class="wrap">
|
||||
<div class="card">
|
||||
<input type="file" id="camera" accept="image/*" capture="environment" hidden>
|
||||
<input type="file" id="gallery" multiple hidden>
|
||||
<label class="btn" for="camera">拍照上传</label>
|
||||
<label class="btn btn2" for="gallery">从相册或文件选择</label>
|
||||
<label class="btn btn2" for="gallery">选择已有文件</label>
|
||||
<div class="st" id="st"></div>
|
||||
<p><small>「选择已有文件」走系统文件选择器,相册里的照片也能在里面找到(一般在图片/DCIM 目录)。</small></p>
|
||||
</div>
|
||||
<div class="card"><b style="font-size:14px">收件箱</b><ul id="list"><li><span>加载中…</span></li></ul></div>
|
||||
<p><small>上传后回到电脑,对 Agent 说「收材料」即可。文件先落收件箱,不会自动进入报销流程。</small></p>
|
||||
|
||||
Reference in New Issue
Block a user