From 1924e97523c3694e31716ceb1777aeb2dec3e36d Mon Sep 17 00:00:00 2001
From: JunieXD <1240840076@qq.com>
Date: Wed, 28 Oct 2026 16:30:54 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E4=BA=BA=E5=92=8C?=
=?UTF-8?q?=E7=AB=99=E9=95=BF=E5=8F=AF=E4=BB=A5=E6=94=B9=E8=B5=9E=E5=8A=A9?=
=?UTF-8?q?=E7=9A=84=E7=95=99=E8=A8=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
有群友登记时留言没填对,上墙后只能删不能改。改留言仍由收款人和站长来做,这样墙上的留言都经收款人看过(总体设计 §8.21)。
- 后台每条记录上直接改留言,清空保存就是删除,替换原来的"删除留言"按钮
- 接口 PATCH /admin/sponsorships/{id} 的 message 可以写新的留言,操作日志记下改前改后
---
app/routes/admin/sponsor.tsx | 35 +++++++++++++-------------
docs/api.md | 2 +-
docs/design.md | 2 +-
server/modules/sponsors/routes.test.ts | 15 ++++++++++-
server/modules/sponsors/routes.ts | 4 ++-
server/modules/sponsors/service.ts | 16 +++++++-----
6 files changed, 47 insertions(+), 27 deletions(-)
diff --git a/app/routes/admin/sponsor.tsx b/app/routes/admin/sponsor.tsx
index 85b5529..d261fc1 100644
--- a/app/routes/admin/sponsor.tsx
+++ b/app/routes/admin/sponsor.tsx
@@ -7,6 +7,7 @@ import { Button } from "~/components/ui/button";
import { confirmSubmit, promptDialog } from "~/components/ui/dialog";
import { Input } from "~/components/ui/input";
import { Select } from "~/components/ui/select";
+import { Textarea } from "~/components/ui/textarea";
import { UserAvatar } from "~/components/user-avatar";
import { pageTitle } from "~/share-meta";
import { fromWallClock, unixNow, wallClock } from "~/time";
@@ -58,7 +59,7 @@ const DONE: Record = {
confirm: "已确认",
amount: "已修改金额",
reject: "已标为未收到",
- message: "已删除留言",
+ message: "已保存留言",
delete: "已删除",
};
@@ -100,7 +101,7 @@ export async function action({ request, context }: Route.ActionArgs) {
? { amount: fen() }
: intent === "reject"
? { status: "rejected", reason: field("reason") }
- : { message: null },
+ : { message: field("message") },
});
if (res.ok) return { intent, ok: true, message: DONE[intent] ?? "已保存" };
return { intent, ok: false, message: (await res.json()).error.message };
@@ -213,9 +214,21 @@ function Row({ item: r }: { item: Item }) {
>
)}
- {r.message && (
- {r.message}
- )}
+ {/* Saved empty, the message is taken down. */}
+
{r.status === "rejected" && r.reason && (
理由:{r.reason}
)}
@@ -250,18 +263,6 @@ function Row({ item: r }: { item: Item }) {
{confirmed ? "撤销确认" : "未收到"}
)}
- {r.message && (
-
- )}