src/app/admin/attributes/page.tsx:414| ⚠️ 行号漂移:改动插入多行致原长行移位,非真实修复 |
| 5 | Medium | Complexity | src/app/admin/attributes/page.tsx:662 圈复杂度过高 | ⚠️ 行号漂移:AttrValuesDrawer(见下方新增 #7~#10)同函数,改动前已存在 |
| 6 | Medium | Complexity | src/app/admin/attributes/page.tsx:662 嵌套深度过高 | ⚠️ 行号漂移(同上) |
| 7 | Medium | Complexity | src/app/admin/attributes/page.tsx:662 函数过长 | ⚠️ 行号漂移(同上) |
| 8 | Low | Complexity | src/app/admin/attributes/page.tsx:662 参数过多 | ⚠️ 行号漂移(同上) |
setTimeoutModal.confirm把回调抽成具名 handleMenuClick(item),降低嵌套、便于单测 |
| 4 | Medium | Complexity | src/app/admin/attributes/page.tsx:698 圈复杂度过高(count=60) | ⚠️ 行号漂移:=AttrValuesDrawer(base:662 同函数) | 独立议题:该函数确实过长,建议后续拆分 |
| 5 | Medium | Complexity | src/app/admin/attributes/page.tsx:698 嵌套深度过高 | ⚠️ 行号漂移(同上) | 同上 |
| 6 | Medium | Complexity | src/app/admin/attributes/page.tsx:698 函数过长(326 行) | ⚠️ 行号漂移(同上) | 同上 |
| 7 | Low | Complexity | src/app/admin/attributes/page.tsx:698 参数过多(9 个) | ⚠️ 行号漂移(同上) | 同上 |
| 8 | Low | Maintainability | src/app/admin/attributes/page.tsx:482 行过长(>120 字符) | ⚠️ 疑行号漂移:paginations={{...}} 一行,属未改动的历史长行 | 拆行即可,非阻塞 |
| 9 | Low | Maintainability | e2e/specs/45-article-draft-delete-ui.spec.ts:73 重复代码块(4 行 ×2) | ✅ 真新增:新测试里重复的 row.locator('button[aria-label="更多操作"]') 定位 | 用已新增的 openMoreMenu() 助手复用 |
| 10 | Low | Maintainability | e2e/specs/53-unpublished-workbench.spec.ts:106 重复代码块(4 行 ×2) | ✅ 真新增:新增「更多下拉」用例与既有用例重复 goto + waitQaTabLoaded + 首行判空 | 抽 gotoQaTabAndFirstRow() |
| 11 | Low | Maintainability | e2e/specs/53-unpublished-workbench.spec.ts:111 重复代码块(4 行 ×2) | ✅ 真新增:同上 | 同上 |
{items.length > 0 && <RowMore .../>}articlesrolestagsadmins<RowMore items={[...]} />ads/*api-keyscollectors/[id]metric-dataspot-pricesMetricEntryGridRowMoreif (!items.length) return nulllength > 0 &&双重确认防护:articles(发布/删除,handler 内已有 Modal.confirm)、articles/new、
commodities(删除走 delete-check 预检弹窗)等未下传 confirm,符合约定,无双重弹窗。
反之 ads/*、api-keys、collectors、industries、tags、futures/[commodityId] 等由 Popconfirm 迁移的,
均正确下传了 confirm。
受限项表现:tags(预置不可删)、collectors(启用中/有绑定不可删)、futures/[commodityId](当日主力不可删)
在菜单里保持 disabled,并把原因以内联灰字写进 label(因菜单项不支持 Tooltip),与原行为等价。
RowMore 时序细节setTimeout(..., 0) 后再弹 Modal.confirm,用于规避下拉收起动画叠加;理论上组件卸载时仍会弹窗(挂载在 body,影响可忽略) |
| 非阻塞,知悉即可 |