From 1e07c62fc81dc101f494e4c3e7506cfce7bbf155 Mon Sep 17 00:00:00 2001 From: yeuimu <2197651308@qq.com> Date: Fri, 28 Aug 2026 20:00:56 +0800 Subject: [PATCH] feat(admin): country drag-sort + always-available member detail sync MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Country 加 sort_order(默认 0 保持 id 序);PATCH /countries/sort 批量保存 顺序(对齐 /tags/sort 模式);findAll 与公开 /public/countries 均按 sortOrder 排序 - CountriesView 表格改为可拖拽行列表:拖动松开即全量保存新顺序,失败回滚 - 商品编辑弹窗成员展开面板:同步详情按钮常驻(已同步显示 重新同步详情), 不再只在未同步态出现 - goods.service.spec 的 FamilyRecomputeService mock 补齐 syncFamilyTags 等 方法(全量并行时其他套件的扫名归族会把本套件夹具收进族,create/update 会调用到,mock 缺方法导致偶发 TypeError) - api 164/164、admin typecheck+22/22+构建全绿 --- apps/admin/src/api/countries.ts | 5 + .../src/views/countries/CountriesView.vue | 198 +++++++++++++----- .../goods/components/GoodsEditDialog.vue | 20 +- .../migration.sql | 2 + apps/api/prisma/schema.prisma | 1 + .../api/src/countries/countries.controller.ts | 8 + .../src/countries/countries.service.spec.ts | 26 +++ apps/api/src/countries/countries.service.ts | 18 +- .../countries/dto/reorder-countries.dto.ts | 30 +++ apps/api/src/goods/goods.service.spec.ts | 10 +- apps/api/src/public/public.service.ts | 2 +- docs/references/structs.md | 1 + 12 files changed, 261 insertions(+), 60 deletions(-) create mode 100644 apps/api/prisma/migrations/20260828194000_country_sort_order/migration.sql create mode 100644 apps/api/src/countries/dto/reorder-countries.dto.ts diff --git a/apps/admin/src/api/countries.ts b/apps/admin/src/api/countries.ts index a4cb463..48fa4b0 100644 --- a/apps/admin/src/api/countries.ts +++ b/apps/admin/src/api/countries.ts @@ -32,4 +32,9 @@ export const countriesApi = { deleteCountry: (id: string) => { return request.delete(`/countries/${id}`) }, + + // Batch save drag-reorder (items = full list in the new order) + sortCountries: (items: Array<{ id: string; sortOrder: number }>) => { + return request.patch('/countries/sort', { items }) + }, } \ No newline at end of file diff --git a/apps/admin/src/views/countries/CountriesView.vue b/apps/admin/src/views/countries/CountriesView.vue index 3f7ff90..c34511d 100644 --- a/apps/admin/src/views/countries/CountriesView.vue +++ b/apps/admin/src/views/countries/CountriesView.vue @@ -1,7 +1,7 @@