From 9a9e30f94eb60bc41c78eff8e0d5f08fed26daf5 Mon Sep 17 00:00:00 2001 From: richjohnrambo Date: Tue, 22 Sep 2026 17:32:08 +0800 Subject: [PATCH] feat: add tenant list id sorting --- server/internal/logic/sys/im_tenant.go | 17 ++++++++++++++--- server/internal/model/input/sysin/im_tenant.go | 1 + web/src/views/imTenant/index.vue | 9 ++++++++- web/src/views/imTenant/model.ts | 2 ++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/server/internal/logic/sys/im_tenant.go b/server/internal/logic/sys/im_tenant.go index 5ab9726..f6613fd 100644 --- a/server/internal/logic/sys/im_tenant.go +++ b/server/internal/logic/sys/im_tenant.go @@ -92,9 +92,20 @@ func (s *sSysImTenant) List(ctx context.Context, in *sysin.ImTenantListInp) (lis mod = mod.WhereBetween(dao.ImTenant.Columns().CreatedAt, in.CreatedAt[0], in.CreatedAt[1]) } - mod = mod.Page(in.Page, in.PerPage). - OrderDesc(dao.ImTenant.Columns().Id). - Hook(hook.MemberSummary) + orderDesc := false + for _, sorter := range in.GetSorters() { + if sorter != nil && sorter.ColumnKey == "id" { + orderDesc = sorter.Order == "descend" + break + } + } + mod = mod.Page(in.Page, in.PerPage) + if orderDesc { + mod = mod.OrderDesc(dao.ImTenant.Columns().Id) + } else { + mod = mod.OrderAsc(dao.ImTenant.Columns().Id) + } + mod = mod.Hook(hook.MemberSummary) if err = mod.ScanAndCount(&list, &totalCount, false); err != nil { err = gerror.Wrap(err, "获取IM租户列表失败,请稍后重试!") diff --git a/server/internal/model/input/sysin/im_tenant.go b/server/internal/model/input/sysin/im_tenant.go index 6d42fd8..ca73301 100644 --- a/server/internal/model/input/sysin/im_tenant.go +++ b/server/internal/model/input/sysin/im_tenant.go @@ -100,6 +100,7 @@ type ImTenantViewModel struct { // ImTenantListInp 获取IM租户列表 type ImTenantListInp struct { form.PageReq + form.Sorters Id int64 `json:"id" dc:"ID"` Code string `json:"code" dc:"租户编码"` Name string `json:"name" dc:"租户名称"` diff --git a/web/src/views/imTenant/index.vue b/web/src/views/imTenant/index.vue index 4de83f5..5751283 100644 --- a/web/src/views/imTenant/index.vue +++ b/web/src/views/imTenant/index.vue @@ -19,6 +19,7 @@ :actionColumn="actionColumn" :scroll-x="scrollX" :resizeHeightOffset="-10000" + @update:sorter="handleUpdateSorter" >