docs: annotate account commerce finance and content pages
This commit is contained in:
1 parent
60827b8bfb
commit
2be21c1c62
24 files changed
+223
No files matched your search
@@ -1,4 +1,7 @@
|
||||
<script>
|
||||
/**
|
||||
* 发票列表与申请入口共用页面:加载可开票订单、抬头、收票地址、项目及税费配置;报价必须匹配当前表单签名后才可提交。
|
||||
*/
|
||||
import "~/assets/styles/PageInfoNotice._16xRFrB.css";
|
||||
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
|
||||
import "~/assets/styles/invoices.t1P1GXOx.css";
|
||||
@@ -397,6 +400,7 @@ var Ce = {
|
||||
tax: V.tax_rate,
|
||||
}),
|
||||
);
|
||||
// 打开申请时重置上次草稿,并完整加载所有分页选项;默认值确定后再请求报价。
|
||||
async function J() {
|
||||
if (!(D.value || E.value)) {
|
||||
((T.value = !0),
|
||||
@@ -521,6 +525,7 @@ var Ce = {
|
||||
: `请选择当前抬头支持的开票项目`
|
||||
: `请选择有效的发票抬头`;
|
||||
});
|
||||
// 报价以排序后的订单 ID 和全部开票选项作为签名;更早响应或表单已变更的结果不得用于提交。
|
||||
async function Q() {
|
||||
let e = ++P.value;
|
||||
if (
|
||||
@@ -578,6 +583,7 @@ var Ce = {
|
||||
.reduce((e, t) => e + Number(t.amount || 0), 0)
|
||||
.toFixed(2);
|
||||
});
|
||||
// 重新校验订单有效性、抬头、收票方式及最新报价后申请;返回费用订单时转入支付,不直接认定发票已开具。
|
||||
async function Et() {
|
||||
if (E.value || D.value || !O.value) return;
|
||||
if (((k.value = ``), Z.value)) {
|
||||
@@ -633,12 +639,14 @@ var Ce = {
|
||||
E.value = !1;
|
||||
}
|
||||
}
|
||||
// 只接受正整数形式的费用订单 ID,防止无效跳转或支付目标。
|
||||
function Dt(e) {
|
||||
return (
|
||||
(typeof e == `string` || typeof e == `number`) &&
|
||||
/^[1-9]\d*$/.test(String(e))
|
||||
);
|
||||
}
|
||||
// 只有具有有效费用订单且处于可继续处理的支付状态,才展示对应入口。
|
||||
function Ot(e) {
|
||||
return (
|
||||
Dt(e.invoice_order_id) &&
|
||||
@@ -647,6 +655,7 @@ var Ce = {
|
||||
)
|
||||
);
|
||||
}
|
||||
// 未付款的发票费用订单打开支付,其余待审核凭证状态交给订单详情处理。
|
||||
function kt(e) {
|
||||
if (Ot(e)) {
|
||||
if (e.order_status !== `Unpaid`) {
|
||||
@@ -656,9 +665,11 @@ var Ce = {
|
||||
((vt.value = e.invoice_order_id), (F.value = !0));
|
||||
}
|
||||
}
|
||||
// 支付结束后退出申请专用路由或刷新列表,开票状态以服务端为准。
|
||||
function At() {
|
||||
((F.value = !1), S.value ? x.push(`/invoices`) : w());
|
||||
}
|
||||
// 申请弹窗关闭且没有有效草稿时,申请专用路由回到发票列表。
|
||||
function jt(e) {
|
||||
!e && S.value && !O.value && x.push(`/invoices`);
|
||||
}
|
||||
@@ -670,9 +681,11 @@ var Ce = {
|
||||
`wait_create`,
|
||||
`create_fail`,
|
||||
]);
|
||||
// 可删除状态集中列举,已开具、已寄出等终态不开放撤回。
|
||||
function Nt(e) {
|
||||
return Mt.has(String(e.status || ``).toLowerCase());
|
||||
}
|
||||
// 撤回需要状态允许且用户确认;删除后重新读取列表。
|
||||
async function Pt(e) {
|
||||
if (
|
||||
Nt(e) &&
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<script>
|
||||
/**
|
||||
* 发票详情:按查询 ID 加载发票,区分历史登记与正式电子文件;下载链接必须通过协议与字符校验。
|
||||
*/
|
||||
import "~/assets/styles/invoice.B6sYFYlb.css";
|
||||
definePageMeta({
|
||||
key: (e) => e.fullPath,
|
||||
@@ -104,6 +107,7 @@ var T = {
|
||||
: W[String(z.value?.status || ``).toLowerCase()] ||
|
||||
String(z.value?.status || `—`),
|
||||
);
|
||||
// 下载地址仅允许 HTTP(S) 或站内绝对路径,拒绝反斜杠、空白控制字符和协议相对地址。
|
||||
function q(e) {
|
||||
return typeof e != `string` || /[\u0000-\u0020\\]/.test(e)
|
||||
? ``
|
||||
@@ -111,6 +115,7 @@ var T = {
|
||||
? e
|
||||
: ``;
|
||||
}
|
||||
// 从详情的候选字段中选择第一个非空值,用于兼容不同发票字段展示。
|
||||
function J(...e) {
|
||||
for (let t of e) {
|
||||
let e = z.value?.[t];
|
||||
@@ -118,6 +123,7 @@ var T = {
|
||||
}
|
||||
return ``;
|
||||
}
|
||||
// 普通发票尚无有效下载地址时单独请求文件地址;历史已开票登记不伪造下载文件。
|
||||
async function Y(e) {
|
||||
if (!(G.value || q(z.value?.invoice_url))) {
|
||||
((H.value = !0), (U.value = ``));
|
||||
@@ -138,6 +144,7 @@ var T = {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 校验查询 ID 并确认响应含发票资料,再按需要获取正式文件地址。
|
||||
async function X() {
|
||||
((B.value = !0), (V.value = ``));
|
||||
try {
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<script>
|
||||
/**
|
||||
* 发票申请路由适配层:复用发票列表页,具体申请专用交互由该页根据当前路由决定。
|
||||
*/
|
||||
import "~/assets/styles/PageInfoNotice._16xRFrB.css";
|
||||
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
|
||||
import "~/assets/styles/invoices.t1P1GXOx.css";
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<script>
|
||||
/**
|
||||
* 发票资料设置:统一维护抬头与收票地址;编辑器复制原数据,提交按新增/修改及电子/纸质地址分别组装字段。
|
||||
*/
|
||||
import "~/assets/styles/settings.zV3AWuRw.css";
|
||||
import { toDisplayString } from "vue";
|
||||
import { onMounted } from "vue";
|
||||
@@ -145,6 +148,7 @@ var ue = {
|
||||
M = ref([]),
|
||||
N = ref(!0),
|
||||
P = ref(``);
|
||||
// 完整读取抬头与地址的所有分页,避免选择器仅显示第一页资料。
|
||||
async function F() {
|
||||
((N.value = !0), (P.value = ``));
|
||||
try {
|
||||
@@ -182,6 +186,7 @@ var ue = {
|
||||
bank: ``,
|
||||
bank_user: ``,
|
||||
});
|
||||
// 重置抬头草稿后回填待编辑记录,避免上次表单字段残留。
|
||||
function V(e) {
|
||||
((L.value = e?.id ?? null),
|
||||
(z.value = ``),
|
||||
@@ -205,6 +210,7 @@ var ue = {
|
||||
}),
|
||||
(I.value = !0));
|
||||
}
|
||||
// 抬头名称必填;新增与修改成功后统一重新加载资料列表。
|
||||
async function We() {
|
||||
if (!R.value) {
|
||||
if (((z.value = ``), !B.title.trim())) {
|
||||
@@ -230,6 +236,7 @@ var ue = {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 删除抬头后重载列表,失败在页面保留错误提示。
|
||||
async function H(e) {
|
||||
try {
|
||||
(await v.del(`/invoice_title/${e.id}`), await F());
|
||||
@@ -249,6 +256,7 @@ var ue = {
|
||||
phone: ``,
|
||||
is_default: !1,
|
||||
});
|
||||
// 电子邮箱和纸质地址共用编辑器;打开时恢复默认字段,再复制现有资料。
|
||||
function J(e) {
|
||||
((W.value = e?.id ?? null),
|
||||
(K.value = ``),
|
||||
@@ -271,6 +279,7 @@ var ue = {
|
||||
}),
|
||||
(U.value = !0));
|
||||
}
|
||||
// 电子地址只提交邮箱,纸质地址提交收件地址与电话,避免把另一种地址的草稿字段发给接口。
|
||||
async function Ge() {
|
||||
if (!G.value) {
|
||||
if (((K.value = ``), q.rec_type === `email` && !q.email.trim())) {
|
||||
@@ -306,6 +315,7 @@ var ue = {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 删除收票地址后重载资料。
|
||||
async function Y(e) {
|
||||
try {
|
||||
(await v.del(`/invoice_address/${e.id}`), await F());
|
||||
@@ -316,6 +326,7 @@ var ue = {
|
||||
let X = ref(!1),
|
||||
Z = ref(!1),
|
||||
Q = ref(null);
|
||||
// 记录待删除抬头,在确认前不发起删除。
|
||||
function Ke(e) {
|
||||
((Q.value = {
|
||||
kind: `title`,
|
||||
@@ -323,6 +334,7 @@ var ue = {
|
||||
}),
|
||||
(X.value = !0));
|
||||
}
|
||||
// 记录待删除地址,复用同一确认弹窗。
|
||||
function qe(e) {
|
||||
((Q.value = {
|
||||
kind: `address`,
|
||||
@@ -330,6 +342,7 @@ var ue = {
|
||||
}),
|
||||
(X.value = !0));
|
||||
}
|
||||
// 确认时按目标类型调用删除函数,用独立忙碌态阻止重复确认。
|
||||
async function Je() {
|
||||
if (Q.value && !Z.value) {
|
||||
Z.value = !0;
|
||||
|
||||
Reference in new issue
Block a user