docs: annotate product configuration and quote lifecycles

This commit is contained in:
cieanyau committed 2026-11-06 00:29:13 +08:00
1 parent 3a53d2e58f
commit 60827b8bfb
7 files changed
+75

No files matched your search

+10
View File
@@ -1,4 +1,5 @@
<script>
/** 智简云/独立服务器配置页;module 决定接口命名空间,jy_dcim 额外将带宽变体归并为硬件型号。 */
import "~/assets/styles/ConfigResourceOption.Dj4VopnA.css";
import "~/assets/styles/ConfigDiskAdd.C92e9ZuF.css";
import "~/assets/styles/ConfigBandwidth.CWSH1WJZ.css";
@@ -78,6 +79,7 @@ function I(e) {
.trim();
}
function le(e) {
// 同名、同 CPU/内存/磁盘的套餐按带宽排序为同一型号,切换带宽仍需选择真实套餐 ID。
let t = new Map();
for (let n of e) {
let e = I(n.name || ``),
@@ -152,6 +154,7 @@ function R(e, t, n, r) {
return Math.min(a, Math.max(i, i + Math.round((s - i) / o) * o));
}
function z(e, t, n = {}) {
// 配置、优惠码和自定义字段组成报价快照;只有快照与最近报价一致时才允许提交。
let r = useApi(),
a = n.edit,
s = cart_edit_r(r, a),
@@ -212,6 +215,7 @@ function z(e, t, n = {}) {
),
ae = computed(() => (A.value && Number(A.value.data_disk_max) > 0 ? 1 : 0));
function oe(e) {
// 套餐变化同步约束所有附属资源;protect/defense 两字段保留现有后端协议要求。
if (!e) return;
let t = h.value.package_config_id;
((h.value.package_config_id = e.id),
@@ -348,6 +352,7 @@ function z(e, t, n = {}) {
);
}
async function B() {
// 金额只接受有限非负数,响应还必须匹配当前代次与输入快照。
if (
(k(),
C ||
@@ -419,6 +424,7 @@ function z(e, t, n = {}) {
}
}
async function V(e = `simple`) {
// 线路或节点改变会同时失效套餐和镜像;普通资源变化只重取周期及价格。
let t = ++w;
(k(), (S.value = ``));
try {
@@ -442,6 +448,7 @@ function z(e, t, n = {}) {
}
}
async function pe(e) {
// 独立服务器换型号尽量保留当前带宽,否则选该型号默认变体,再重新确认报价。
if (t !== `jy_dcim`) return !1;
let n = j.value.find((t) => t.key === e.key);
if (!n) return !1;
@@ -455,6 +462,7 @@ function z(e, t, n = {}) {
);
}
async function me(e) {
// 独立服务器带宽是套餐变体,不是可任意填写的额外数值。
if (t !== `jy_dcim`) return !1;
let n = j.value
.find((e) => e.variants.some((e) => F(e.id, h.value.package_config_id)))
@@ -501,6 +509,7 @@ function z(e, t, n = {}) {
};
}
async function ye() {
// 自定义字段校验和报价检查先于加购;购物车编辑借助统一保存器防止覆盖已变化的配置。
(_e(), product_fields_i(m.value, p.value));
let e = ve();
if (a) {
@@ -1009,6 +1018,7 @@ var de = {
((M.value.protect = e), (M.value.defense = e), C.calcPrice());
}
async function It(e) {
// 组件只向父级发出结算结果;编辑成功返回购物车,普通加购显示短时确认。
if (at.value) {
((U.value = e), (it.value = ``), (W.value = ``), clearTimeout(G));
try {