排序规则说明
一、首页楼层
- 我要卖气楼层:同企业同分类的拆单先合并为一张卡 → 组内已截止的需求整组不进楼层 → 其余按组代表创建时间倒序取前 8 条。
- 我要买气楼层:已失效的挂单不进楼层 → 其余按创建时间倒序取前 8 条。
- 楼层与列表页共用同一排序引擎(lib/sort-engine.ts),同一条目在两处的相对位次一致。
二、列表页排序
| 排序项 | 适用 | 请求参数 | 规则 |
|---|---|---|---|
| 默认(默认) | 卖气、买气 | descs=[CREATE_TIME] | 默认排序:创建时间倒序(与线上一致),唯一增强是「已截止/已失效沉底」——截止的单子不再占据前排。二级排序:创建时间倒序。 |
| 最新发布 | 卖气、买气 | descs=[CREATE_TIME] | 创建时间倒序(最新在前)。修复线上 P0 缺陷:现状 ascs 与 descs 同填 CREATE_TIME 导致实际正序,最旧条目排最前。 |
| 截止最近 | 卖气、买气 | ascs=[DEADLINE,CREATE_TIME] | 报价截止时间(DEMAND)/ 挂牌截止时间(SUPPLY)升序,最快截止在前;已截止沉底。二级排序:创建时间倒序。解决比选单决策窗口短、只能按时间翻页找单的问题。 |
| 数量最多 | 卖气、买气 | descs=[QUANTITY,CREATE_TIME] | 需求量/挂牌量降序。二级排序:创建时间倒序。 |
| 价格低→高 | 买气 | ascs=[PRICE,CREATE_TIME] | 挂牌价升序(仅供给侧)。未登录时价格脱敏(¥****.**)但排序仍生效(后端排序、前端脱敏)。二级排序:创建时间倒序。 |
| 价格高→低 | 买气 | descs=[PRICE,CREATE_TIME] | 挂牌价降序(仅供给侧)。二级排序:创建时间倒序。 |
- 二级排序统一为创建时间倒序。
- 沉底:已截止的需求、已失效的挂单一律排到列表末尾,卡片置灰显示「已截止 / 已失效」。
- 登录态不改变排序,仅解锁挂牌价与脱敏企业名(后端排序、前端脱敏)。
- 价格维度仅「我要买气」有;「我要卖气」为采购需求,线上本无价格字段。
- 顶部「开发说明」开关可在排序条右侧切换到线上现状对照:现状·默认(倒序不沉底)、现状·最新发布(正序 bug),用于直观验证修复效果。
三、企业名片与访问状态
线上缺陷:首页点企业名会冒泡跳进商品详情页;列表页点企业名提示「请登录」后仍跳详情;已登录但未认证的用户点企业名, 名片弹窗空白并提示「获取企业信息异常」。根因是只定义了「认证通过」这一态,未登录与未认证两态无规则, 且权限被拒被前端当成服务异常处理。以下矩阵即为补齐后的定义,原型可在右上角「当前身份」直接切换验证。
名片字段与可见性
- 公开字段(任何状态都渲染,保证弹窗永不空白):企业名称、企业认证状态、会员等级(青铜/白银/黄金/铂金)、 所在地区、统一社会信用代码(未认证时脱敏为 91**********XX)。
- 受限字段(仅认证通过可见):平台信用分、履约次数、违约次数、营业执照 / 燃气经营许可证 / 危险化学品经营许可证 缩略图与编号有效期。
- 建议前置:把「已认证 / 未认证」徽标直接露在卡片上,买方不必点进名片即可判断供应商可信度。
状态 × 入口 行为矩阵
| 当前用户身份 | 点卡片主体 → 商品详情 | 点企业名称 → 企业名片 |
|---|---|---|
| 未登录 | 正常进入,价格与联系方式脱敏 | 不跳转、不报错:打开名片并显示公开字段 + 登录引导;登录后回到原位置自动展开受限区(意图保持) |
| 已登录·未认证 | 正常进入 | 打开名片为受限态:公开字段照常,受限区替换为认证引导卡;不请求受限接口 |
| 认证审核中 | 正常进入 | 同上,文案为审核进度与预计时长,不引导重复提交 |
| 认证已驳回 | 正常进入 | 同上,展示驳回原因 + 重新提交入口 |
| 认证通过 | 正常进入 | 名片全量展示(信用、履约/违约、三证缩略图,点击查看大图 + 水印) |
交互与接口约定
- 企业名为独立可点元素并阻断事件冒泡,与卡片跳转解耦;首页与列表页复用同一组件,行为必须一致。
- 权限在打开弹窗前用本地身份判定,不采用「先请求、报错后再兜底」,避免空白闪烁。
- 名片接口按字段分级:公开接口任意状态可取,受限接口未登录返回 401、未认证返回 403 且带 NEED_ENTERPRISE_VERIFICATION / UNDER_REVIEW 码,不得返回 5xx。
- 弹窗三态必备:加载骨架、受限引导、错误重试(错误态含重试与 traceId),任何情况下不出现空白弹窗。
- 名片头部有两个易混主体,必须同时展示且分开命名:「该企业已认证 / 未认证」是被查看方的资质状态(不随我的身份变化),「我的身份:未登录 / 未认证 / 审核中 / 驳回 / 认证通过」是当前登录者状态(决定受限区可见性与信用代码是否脱敏)。
- 布局:信用与履约、资质证照两个模块上下排列,各占整行——认证通过的完整名片可一屏读完,不出现半高留白。
- 边界:对方企业注销/冻结显示状态徽标而非报错;查看自己企业名不受限;分享链接直达名片同样走本矩阵。