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

+22
View File
@@ -1,4 +1,7 @@
<script>
/**
* 代金券:领券中心与我的券分别分页、缓存加载状态及错误;当前时间用于有效期展示,领取后刷新两侧列表,最终订单可用性由后端确认。
*/
import "~/assets/styles/vouchers.5FV4ozrh.css";
import { toDisplayString } from "vue";
import { renderList } from "vue";
@@ -147,6 +150,7 @@ var he = {
K = computed(() => (x.value === `mine` ? N.value : D.value)),
ze = computed(() => (x.value === `mine` ? A.value : w.value)),
Be = computed(() => (x.value === `mine` ? j.value : T.value));
// 加载领券中心当前页,用已领取 ID 集合补齐界面标记;旧响应或离页结果不写回。
async function q() {
let e = ++B;
((E.value = !0), (D.value = ``));
@@ -174,6 +178,7 @@ var he = {
!H && e === B && (E.value = !1);
}
}
// 我的代金券使用独立请求序号,不能被领券中心响应覆盖。
async function J() {
let e = ++V;
((M.value = !0), (N.value = ``));
@@ -194,24 +199,30 @@ var he = {
!H && e === V && (M.value = !1);
}
}
// 归一化布尔/数字/字符串的开关标记。
function Y(e) {
return e === !0 || e === 1 || e === `1`;
}
// 领取状态同时参考服务端标记与本页成功领取记录,避免刷新间隙允许重复领取。
function X(e) {
return Y(e.is_get) || R.value.includes(e.id);
}
// 显式 expired 状态或已到结束时间都视为过期。
function Z(e) {
return (
e.status === `expired` ||
(Number(e.end_time) > 0 && Number(e.end_time) <= z.value)
);
}
// 判断是否尚未到使用开始时间,不与领取资格混为一谈。
function Ve(e) {
return Number(e.start_time) > z.value;
}
// 领取入口只排除已领取和过期;是否满足额外业务资格仍由服务端决定。
function Q(e) {
return !X(e) && !Z(e);
}
// 展示状态区分领券中心与我的券,已使用/过期/未开始各有独立文案。
function $(e) {
return x.value === `available`
? X(e)
@@ -253,9 +264,11 @@ var he = {
severity: `secondary`,
};
}
// 本页只在 normal 状态且处于有效期内展示可使用入口,订单仍需重新校验券资格。
function He(e) {
return e.status === `normal` && !Z(e) && !Ve(e);
}
// 金额只有在非空、有限且非负时才格式化,无效值显示占位而不是零元。
function Ue(e) {
let t = Number(e);
return e != null &&
@@ -267,6 +280,7 @@ var he = {
})
: `—`;
}
// 缺失使用门槛时明确以订单为准,不把未知条件显示成无门槛。
function We(e) {
let t = Number(e.min_price);
return !Number.isFinite(t) ||
@@ -278,6 +292,7 @@ var he = {
? `满 ¥${Ue(t)} 可用`
: `无金额门槛`;
}
// 根据存在的起止时间组成有效期文字,零值表示没有该边界。
function Ge(e) {
let t = Number(e.start_time) > 0 ? dict_r(e.start_time) : ``,
n = Number(e.end_time) > 0 ? dict_r(e.end_time) : ``;
@@ -289,6 +304,7 @@ var he = {
? `${t} 起,长期有效`
: `长期有效`;
}
// 能解析产品名称时逐一显示,否则只展示限制数量,不把内部商品 ID 当商品名。
function Ke(e) {
if (!e.product?.length) return `全场产品通用`;
let t = e.product.flatMap((e) =>
@@ -302,6 +318,7 @@ var he = {
? t.join(`、`)
: `限指定 ${e.product.length} 款产品,以付款时可用代金券为准`;
}
// 列出新购、续费和升降级的允许标记,保留既有新购缺省允许契约。
function qe(e) {
return [
{
@@ -318,6 +335,7 @@ var he = {
},
];
}
// 领取成功先记录本地防重标记,再从第一页刷新我的券与领券中心;不在本页自动抵扣订单。
async function Je(e) {
if (!(H || F.value || !Q(e))) {
((F.value = e.id), (I.value = ``), (L.value = ``));
@@ -351,6 +369,7 @@ var he = {
}
}
}
// 切换标签刷新当前时间,尚未加载过的列表才惰性加载,保留各自分页。
function Ye(e) {
((x.value = e === `available` ? `available` : `mine`),
(z.value = Math.floor(Date.now() / 1e3)),
@@ -358,12 +377,14 @@ var he = {
? !P.value && !M.value && J()
: !O.value && !E.value && q());
}
// 手动刷新当前标签列表前同步时间,避免沿用旧的有效期展示。
function Xe() {
return (
(z.value = Math.floor(Date.now() / 1e3)),
x.value === `mine` ? J() : q()
);
}
// 分页事件只更新当前标签对应的页码和每页条数。
function Ze(e) {
x.value === `mine`
? ((A.value = e.page + 1), (j.value = e.rows), J())
@@ -379,6 +400,7 @@ var he = {
onBeforeUnmount(() => {
((H = !0), (B += 1), (V += 1), U && clearInterval(U));
}),
// 根据当前标签选择列表、分页与错误,状态文案区分未开始/过期/已用,实际抵扣留待订单支付校验。
(n, i) => {
let o = button,
l = message,