docs: annotate remaining routes layouts and view boundaries

This commit is contained in:
cieanyau committed 2026-11-06 00:34:17 +08:00
1 parent 408f8e5c98
commit ab22d406c0
56 files changed
+403

No files matched your search

+15
View File
@@ -1,4 +1,7 @@
<script>
/**
* 工单详情:把首帖与回复按时间组成对话,支持引用、附件上传、回复、催单与关闭;附件使用服务端保存标识提交。
*/
import "~/assets/styles/TicketAttachments.DtbJGLkE.css";
import "~/assets/styles/RichTextEditor.NkmgPT5m.css";
import "~/assets/styles/_id_.C-0--Lx-.css";
@@ -138,6 +141,7 @@ var le = {
q = ref([]),
J = ref(!1),
Y = ref(0);
// 读取工单并确认实际存在;后续回复/催单/关闭完成也复用此入口同步服务端状态。
async function X() {
try {
let e = await z.get(`/ticket/${B}`);
@@ -177,12 +181,14 @@ var le = {
}))
: [];
});
// 按回复发送方显示客服或客户名称,不依赖消息顺序推断身份。
function Q(e) {
return e.type === `Admin`
? e.admin_name || `客服`
: e.client_name || `我`;
}
let $ = computed(() => Z.value.find((e) => e.id === Y.value));
// 关闭工单不允许上传;逐个上传并检查 save_name,成功部分保留在当前附件草稿。
async function xe(e) {
if (J.value || G.value || V.value?.status === `已关闭`) return;
let t = e.target,
@@ -206,12 +212,15 @@ var le = {
}
}
}
// 尚未提交回复时可移除本地附件项,不直接删除历史工单附件。
function Se(e) {
G.value || q.value.splice(e, 1);
}
// 仅允许引用真实回复 ID;首帖 ID 为 0 不设置为引用目标。
function Ce(e) {
e.id > 0 && V.value?.status !== `已关闭` && (Y.value = e.id);
}
// 引用已删除时明确提示;否则优先用服务端引用快照,再从当前对话寻找原文。
function we(e) {
return Number(e.quote_info?.is_deleted) === 1
? `该回复已删除`
@@ -219,6 +228,7 @@ var le = {
Z.value.find((t) => t.id === e.quote_reply_id)?.content ||
`原回复 #${e.quote_reply_id}(内容暂不可用)`;
}
// 引用发送者优先来自引用快照,缺失时回查当前对话。
function Te(e) {
let t = e.quote_info,
n = Z.value.find((t) => t.id === e.quote_reply_id);
@@ -229,6 +239,7 @@ var le = {
(n ? Q(n) : `回复 #${e.quote_reply_id}`)
);
}
// 已删除引用不再显示附件;其他引用统一交给附件解析工具处理链接。
function Ee(e) {
return Number(e.quote_info?.is_deleted) === 1
? []
@@ -238,6 +249,7 @@ var le = {
[],
);
}
// 回复要求内容非空、附件已上传且工单未关闭;成功后清空草稿与引用并重读工单。
async function De() {
if (!(
G.value ||
@@ -263,6 +275,7 @@ var le = {
}
}
}
// 催单后重新读取工单,结果与可继续操作状态以服务端为准。
async function Oe() {
K.value = !0;
try {
@@ -273,6 +286,7 @@ var le = {
K.value = !1;
}
}
// 关闭工单完成后重读详情,由新状态控制回复与上传入口。
async function ke() {
K.value = !0;
try {
@@ -285,6 +299,7 @@ var le = {
}
return (
onMounted(X),
// 对话按时间展示并使用公共 HTML 清理与附件解析;引用删除有独立文案,关闭工单不再开放回复编辑。
(n, a) => {
let c = TicketNotice,
m = NuxtLink,