refactor(admin): unify webui fetch/copy/format helpers; fix audit tab load and delete-group count

- apiFetch + shared needLogin (any 401 shows the login card) replaces six
  duplicated fetch/401/error-handling blocks in the admin composables
- useCopy composable: clipboard + execCommand fallback with timed reset,
  used by MembersPanel and WebhookPanel
- utils/format.ts (fmtTime/splitList/parseMatch) removes inline duplicates
  across SendLogs, AuditLog, RouteEditor and GroupEditor
- fix: load the audit log when the audit tab becomes active (client-side
  navigation never remounted the page, leaving the list empty on first visit)
- fix: fetch the real route count for a group before confirming deletion
  instead of reusing the currently open group's route list
This commit is contained in:
RhenCloud 2026-08-14 07:18:55 +08:00
parent c438fe96dc
commit e59b10f739
No known key found for this signature in database
GPG key ID: A574A617378C4E0B
16 changed files with 137 additions and 202 deletions

View file

@ -210,15 +210,6 @@ const form = reactive({
filters: [] as FilterForm[],
});
function parseMatch(text: string): string | string[] | null {
const parts = text
.split(",")
.map((s) => s.trim())
.filter(Boolean);
if (!parts.length) return null;
return parts.length === 1 ? parts[0]! : parts;
}
function blankFilter(): FilterForm {
return { type: "event", match: "", exclude: false, matchText: "" };
}