日期:2026-10-17
状态:2026-10-17 按用户最新反馈进行第三次校准;详情改为独立页面并删除票根/顶部特殊区。此前“详情面板 + 票根”的验证结论已失效,完成证据以本轮更新后的 2026-10-17-mp-pl-plan-cert-delivery.md 为准。
在小程序「运输管理」下新增「危化品证上传」,通过已有 WebView 容器访问独立移动端 H5。迁移 Web 同名功能,唯一明确删除的业务功能是导出;桌面表格、列头筛选及弹窗按移动端交互转换。
docs/sql/,不因前一项客户菜单的授权而自动执行本次 SQL。| 项目 | 依据 |
|---|---|
| 列表、五个 Tab、批量操作、权限、详情入口 | web-admin/src/views/pl/plan-cert/index.vue |
| 全部列头筛选字段 | web-admin/src/views/pl/plan-cert/columnFilterDefs.ts |
| 证书上传及保存载荷 | web-admin/src/components/business/pl-plan-cert-upload-dialog/index.vue |
| 危化属性、证书槽位、齐备确认提示 | web-admin/src/composables/usePlToxicProductCertCheck.ts |
| Tab 参数和状态枚举 | web-admin/src/utils/pl-display.ts |
| 列表、详情、证书 PATCH 接口 | web-admin/src/api/pl/index.ts |
| 移动布局、运输卡片参考 | web-admin/src/views/m/pl/plan/index.vue、web-admin/src/views/m/pl/plan/detail.vue |
| 最近迁移经验、附件引用及上传中检查 | web-admin/src/views/m/crm/customer/ |
| 入口鉴权与 WebView 接入约定 | docs/web-admin-mp-webview-modules.md |
模式选型:工作台 WebView style-align 列表(标准绿顶栏 + 状态 Tab + 三栏筛选 + expense-card)+独立路由 Tab 详情+发票夹附件。详情仅保留普通绿顶栏,不使用票根、Hero 或记录摘要等顶部特殊区。移动视觉以 docs/miniprogram-ui-spec-sanqiang.md §12、OpenSpec「工作台 WebView 业务页」和 bak/mobile-ui/shanxia-mp-crm-pl-cert-style-align-demo.html 为唯一权威,不照搬桌面宽表,也不沿用旧 cert-* 密集工具条。
推荐列表 /m/pl/plan-cert + 独立详情 /m/pl/plan-cert/:id,复用 API、纯业务规则及现有移动基础组件。列表只能通过路由进入详情;详情必须支持直达、刷新、浏览器/小程序返回与路由参数切换。
另两种方案不采用:直接嵌入 Web 页会保留宽表和桌面弹窗;修改共享 Web 页面适配移动会扩大回归范围并违反不修改 Web 的要求。
顶部复用 mp-wv-header:返回工作台、17px 固定标题,以及标题下方的五个胶囊状态 Tab(仍在绿顶栏内);不显示副标题、独立“搜索”按钮或检索框。Tab 顺序:
Tab 不能改成下拉选择。窄屏允许 Tab 区域横滑;绿顶栏内选中态为白底绿字,未选为半透明白边白字;页面整体不能横向溢出。点击后重置页码与选中项,保留无冲突筛选;过期请求不能覆盖新 Tab 的结果。绿顶栏下方为单个胶囊检索框(提交键触发搜索),再紧贴三栏筛选。
查询语义必须与当前 Web 一致:
hasHazardProduct=1。certUploadStatus=incomplete 且 hazardCertReady=0,不是简单地检查是否存在任意附件。planType=inbound/outbound/direct。cancelled,允许用户在筛选中明确选择已取消。列表使用备用金式 expense-card 和可展开段次/产品信息。卡片与左右边界保留约 12px 间距;「共 N 条计划 · 已加载 M 条」汇总放在卡片列表之后。卡片须具备 ec-top、副信息、灰底 KV、时间 meta、虚线操作底栏;勾选框在标题左侧,浅底语义状态标签在右侧,每卡最多一个实心主色按钮(上传证书)。列表展开按段次分区:装货段次(1 段)与送货段次(可多段),各段展示客户、时间、地址、合同与产品摘要;不展示计划附件(附件改在详情查看)。合同可进入移动只读详情。
列表自上而下固定为「绿顶栏(标题 + 状态 Tab)→ 检索框 → 三栏筛选 → 卡片 → 条数汇总」,不得在 Tab 下方堆叠日期 Chip 和“筛选/刷新/重置”工具条。三栏固定为:
“更多”集中承载 Web 列头筛选,并同时提供 Chip、模糊检索、日期/日期时间、日期区间和数值区间;底栏仅“重置/确定”。保留关键词查询、自定义日期、筛选重置和分页加载;刷新通过重新提交搜索或重试错误完成,不保留独立密集工具条:
空结果、加载中、加载失败、无权限状态分别提示;加载更多失败不跳过页码;重复点击操作期间禁止再次提交。
采用独立页面 /m/pl/plan-cert/:id,由页面自己从 route.params.id 读取计划、权限和关联数据。顶部只使用普通 mp-wv-header(返回 + 固定标题“危化品证详情”),不显示票根、Hero、计划号副标题或状态等顶部特殊区;计划号、状态和齐备信息下沉到正文信息卡。顶栏后直接展示“基础信息 / 运输与段次 / 证书与附件”Tab,每个 Tab 下使用字段上标签下值的信息卡。详情范围对齐 Web PlPlanViewDialog,包括完整装送段次、产品/数量、运输、证书、附件、运费、备注及其原有可查看关联信息。
详情必须支持链接直达和刷新;非法或无权 ID 展示独立页面错误态;关联计划跳转更新当前路由参数并重新加载。上传、齐备、取消齐备成功后原位刷新详情,返回列表后列表重新请求,不能依赖列表父组件的 ref 或弹层开关。
复用已有移动展示工具,但不能直接导航到具有新增计划、复制计划、作废、安排运输等额外业务操作的通用运输详情而改变本菜单的操作边界。详情主要操作提供本菜单有权限且当前状态允许的上传、齐备和取消齐备。
进一步核对 PlPlanViewDialog 后确认:Web 本菜单的详情还会根据 usePlPlanArrangeActions 的结果提供「复制给司机」「复制给现场」「复制磅单二维码」及司机/现场链接。这些属于现有详情功能,移动迁移必须保留并沿用相同显示条件,不能误当成导出删除;可放入详情“更多”操作区。列表与详情操作成功后均重新读取服务器状态。
getRequiredCertSlots 规则处理已有数据,不自行覆盖历史属性。AttachmentUploadField 的上传、预览、下载与删除能力,但在本模块内将触发项和文件项覆盖为发票夹式 72×72 宫格:图片缩略填充,非图片显示扩展名与文件名,删除为右上角角标,末位虚线“+”添加;不得保留管理端 140×96 主形态。archiveStatus=archived)或已取消(followStatus=cancelled)不能上传或改齐备。pl:plan-cert:upload、pl:plan-cert:ready 权限,不因有移动入口就赋予写权限。权限加载失败按无权限处理。PATCH /transport/plan/{id}/product-certs、PATCH /transport/plan/{id}/hazard-cert-ready,不增加替代接口或绕过已有租户/数据范围保护。pl-plan-cert-webview。mpWebview 容器,目标 /m/pl/plan-cert;沿用票据换取登录、返回工作台及安全区处理。mini:pl:plan-cert:list;迁移 SQL 通过 Web pl:plan-cert:list 匹配既有角色,补齐移动端根及运输管理父级绑定,不改 Web 菜单、不自动扩大上传或齐备权限。MpWebviewShell、MpBottomSheet 和本模块样式。结构 class 对齐 Demo 的 mp-wv-header、status-tabs/filter-tag、filter-bar/filter-trig、expense-card、detail-tabs、att-grid/att-img 语义;详情禁止 ticket-*。品牌绿 #0a9f6d,不得出现 Fresh Mint #10b981,375/414px 验证,交互触达至少 44px,状态使用浅底语义标签,弹层无背景模糊。用户已明确给出第三次校准要求:独立详情、删除详情顶部特殊区、列表横向无额外间距、统一按钮/字号、Sheet 底栏按钮居中适宽、列表顶部对齐 OpenSpec。当前分支为 V1.5,在现有工作区实施并保留前序任务及用户的未提交改动。数据库写入与发布不属于此次开发默认授权,另行确认。