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

+21
View File
@@ -1,4 +1,7 @@
<script>
/**
* 订单/账单详情与旧支付路由共用页:展示订单、流水、转账凭证和支付入口;取消前重读订单,支付完成后从服务端刷新状态。
*/
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
import "~/assets/styles/_id_.gjoJy9S8.css";
import { toDisplayString } from "vue";
@@ -38,6 +41,7 @@ import PaymentDialog from "~/components/PaymentDialog.vue";
import tag from "primevue/tag";
import skeleton from "primevue/skeleton";
import { t as bandwidth_display_t } from "~/lib/bandwidth-display.js";
// 仅从符合续费周期格式的描述中提取商品名,避免把日期区间重复显示成产品标题。
function D(e) {
let t = e.description?.trim() || ``,
n = e.product_name?.trim() || ``,
@@ -192,6 +196,7 @@ var ue = {
credit: `余额支付`,
credit_limit: `信用额支付`,
};
// 在实际支付渠道列表中按标识查找显示名称。
function L(e) {
let t = e?.trim().toLowerCase();
return (
@@ -202,6 +207,7 @@ var ue = {
``
);
}
// 渠道名称先使用服务端配置,再回落到已知余额/信用额类型或原始名称。
function Ze(e) {
let t = e?.trim() || ``;
return L(t) || Xe[t.toLowerCase()] || t || `—`;
@@ -211,6 +217,7 @@ var ue = {
t = j.value?.gateway?.trim() || ``;
return L(e) || L(t) || Ze(t || e);
});
// 支付渠道元信息单独加载,失败不阻止订单详情展示。
async function $e() {
try {
let e = await O.get(`/gateway`);
@@ -220,15 +227,18 @@ var ue = {
onMounted($e);
let R = ref(!1),
z = ref(!0);
// 轻量刷新当前订单,用于支付、凭证或取消后的状态同步。
async function B() {
try {
let e = await O.get(`/order/${k}`);
e.order && (j.value = e.order);
} catch {}
}
// 只接收与当前 ID 匹配的订单更新,避免支付组件更新其他订单。
function et(e) {
String(e.id) === k && (j.value = e);
}
// 交易流水有独立错误与加载状态;失败不把未加载的金额显示成已支付零元。
async function V() {
((P.value = !0), (F.value = !1), (I.value = ``));
try {
@@ -240,6 +250,7 @@ var ue = {
P.value = !1;
}
}
// 旧 pay 路由支付完成进入 paid 路由;普通详情则刷新订单及流水。
function tt() {
if (((R.value = !1), A.value)) {
qe.push(`/orders/order/paid?id=${k}`);
@@ -262,6 +273,7 @@ var ue = {
}
});
let nt = computed(() => j.value?.items?.some((e) => !!D(e)) ?? !1);
// 订单项标题优先使用已清理的产品名,缺失时回落到描述。
function rt(e) {
return (
product_name_n(D(e) || e.product_name) ||
@@ -285,6 +297,7 @@ var ue = {
ot = computed(() =>
(j.value?.items ?? []).map((e) => e.product_name),
);
// 订单项说明统一通过产品与带宽展示工具整理,保留真实配置含义。
function st(e) {
return bandwidth_display_t(product_name_r(e.description, ot.value));
}
@@ -316,6 +329,7 @@ var ue = {
!q.value &&
!J.value,
);
// 上传凭证后仅保存服务端 save_name 标识;附件上传期间阻止重复选择处理。
async function dt(e) {
let t = e.target,
n = Array.from(t.files ?? []);
@@ -334,9 +348,11 @@ var ue = {
}
}
}
// 尚未提交审核时允许移除本地待提交附件,不代表删除服务端历史凭证。
function ft(e) {
J.value || (K.value = K.value.filter((t, n) => n !== e));
}
// 只有允许上传凭证的订单且附件已就绪才提交;提交后进入 WaitReview 并再次读取订单。
async function pt() {
if (j.value && Q.value && !J.value) {
((J.value = !0), (Y.value = ``));
@@ -358,6 +374,7 @@ var ue = {
}
}
}
// 从人工转账凭证流程切换到其他支付方式,实际可用渠道由重新加载的订单决定。
async function mt() {
if (j.value && !X.value && ut.value) {
((X.value = !0), (Y.value = ``));
@@ -381,9 +398,11 @@ var ue = {
j.value.status,
),
);
// 仅对可取消状态打开确认框,按需订单不走此取消入口。
function ht() {
$.value && !U.value && ((W.value = ``), (H.value = !0));
}
// 确认取消时再次读取订单并重新检查状态,再执行删除,减少使用过期详情误操作。
async function gt() {
if (H.value && $.value && !U.value && j.value) {
((U.value = !0), (W.value = ``));
@@ -407,9 +426,11 @@ var ue = {
}
}
}
// 调用浏览器打印当前订单视图,不另行生成服务端发票。
function _t() {
window.print();
}
// 订单项、交易流水、凭证审核与支付分开显示;取消确认读取最新状态,打印仅针对当前详情视图。
return (n, a) => {
let l = skeleton,
g = message,
+14
View File
@@ -1,4 +1,7 @@
<script>
/**
* 订单列表:支持账单嵌入/路由模式、筛选、取消、导出与按需订单合并;选择集在筛选或账户变化时同步清空。
*/
import "~/assets/styles/orders.BflDlvVz.css";
import { toDisplayString } from "vue";
import { normalizeClass } from "vue";
@@ -51,9 +54,11 @@ var x = new Set([
`WaitReview`,
`ReviewFail`,
]);
// 状态筛选只接受已知枚举;all 显式转换为空筛选值。
function S(e, t = ``) {
return e === `all` ? `` : typeof e == `string` && x.has(e) ? e : t;
}
// 订单/账单地址只使用正的安全整数 ID,不把任意服务端字符串拼入路由。
function C(e, t = !1) {
if (typeof e != `string` && typeof e != `number`) return null;
let n = String(e);
@@ -208,6 +213,7 @@ var Se = {
t !== O.value && ((O.value = t), J());
},
);
// 根据当前账单模式生成详情链接,无效 ID 使用安全回落地址。
function Y(e) {
return C(e, w.value) || `/bills`;
}
@@ -258,12 +264,14 @@ var Se = {
flush: `sync`,
},
));
// 合并前冻结当前选中的按需订单 ID,等待确认时不再依赖可变选择数组。
function Re() {
Ie.value &&
((B.value = [...new Set(N.value.map((e) => Number(e.id)))]),
(z.value = ``),
(L.value = !0));
}
// 逐单核实仍是未付款按需订单,且账户未切换才合并;返回结果不完整时提示刷新核实,避免重复合并。
async function ze() {
if (R.value || !L.value || B.value.length < 2 || V) return;
let e = E.token,
@@ -304,9 +312,11 @@ var Se = {
R.value = !1;
}
}
// 判断普通未付款状态;具体批量取消集合还会排除按需订单。
function Be(e) {
return String(e.status) === `Unpaid`;
}
// 只允许对已选可取消订单打开确认,无法取消的选择项单独计数提示。
function Ve() {
if (((I.value = ``), !X.value.length)) {
I.value = Z.value
@@ -316,6 +326,7 @@ var Se = {
}
P.value = !0;
}
// 批量取消仅发送允许取消的 ID,成功后清空选择并刷新列表。
async function He() {
if (!F.value && X.value.length) {
((F.value = !0), (I.value = ``));
@@ -335,6 +346,7 @@ var Se = {
}
let Ue = ref(!1),
$ = ref(``);
// 按当前类型、状态和关键词导出服务端表格,下载超时与错误由公共 API 层处理。
async function We() {
((Ue.value = !0), ($.value = ``));
try {
@@ -353,6 +365,7 @@ var Se = {
Ue.value = !1;
}
}
// 恢复默认筛选、排序及 URL 状态值,同时清除选择后刷新。
function Ge() {
((D.value = ``),
(O.value = ``),
@@ -376,6 +389,7 @@ var Se = {
J());
}
let Ke = computed(() => !!D.value || !!O.value || !!A.value);
// 合并仅适用于已选未付按需订单,批量取消使用另一允许集合;导出参数与当前已应用筛选一致。
return (n, r) => {
let a = button,
c = ListSegments,
+4
View File
@@ -1,4 +1,7 @@
<script>
/**
* 旧订单详情路由适配层:复用 /orders/[id] 的详情实现,并以完整地址为组件键以响应查询 ID 变化。
*/
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
import "~/assets/styles/_id_.gjoJy9S8.css";
definePageMeta({
@@ -16,6 +19,7 @@ var a = defineComponent({
composables_t({
key: (e) => e.fullPath,
}),
// 兼容路径直接挂载订单详情,不复制详情请求。
(t, r) => (openBlock(), createBlock(_id_))
);
},
+4
View File
@@ -1,4 +1,7 @@
<script>
/**
* 旧支付结果路由适配层:复用订单详情及服务端订单查询,不能仅凭跳入此路径认定付款成功。
*/
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
import "~/assets/styles/_id_.gjoJy9S8.css";
definePageMeta({
@@ -16,6 +19,7 @@ var a = defineComponent({
composables_t({
key: (e) => e.fullPath,
}),
// 此路径展示订单查询结果,不把 paid 路由名称当作服务端付款凭据。
(t, r) => (openBlock(), createBlock(_id_))
);
},
+4
View File
@@ -1,4 +1,7 @@
<script>
/**
* 旧订单支付路由适配层:复用订单详情,详情页根据 /pay 后缀展示支付流程;本文件不自行确认支付结果。
*/
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
import "~/assets/styles/_id_.gjoJy9S8.css";
definePageMeta({
@@ -16,6 +19,7 @@ var a = defineComponent({
composables_t({
key: (e) => e.fullPath,
}),
// 此路径只复用详情的支付模式,不自行产生支付成功状态。
(t, r) => (openBlock(), createBlock(_id_))
);
},