first commit
This commit is contained in:
commit
db5762abd4
687 files changed
+171307
No files matched your search
@@ -0,0 +1,989 @@
|
||||
<script>
|
||||
import "~/assets/styles/InstanceRenewDialog.BHDAL6d3.css";
|
||||
import "~/assets/styles/GeetestField.DiieTibK.css";
|
||||
import "~/assets/styles/CaptchaField.BSN3ZbsD.css";
|
||||
import "~/assets/styles/SecurityVerificationDialog.skYFo4v7.css";
|
||||
import "~/assets/styles/DcimBilling.QV7PUjnH.css";
|
||||
import { toDisplayString } from "vue";
|
||||
import { onMounted } from "vue";
|
||||
import { useId } from "vue";
|
||||
import { onBeforeUnmount } from "vue";
|
||||
import { watch } from "vue";
|
||||
import { createBlock } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { withCtx } from "vue";
|
||||
import { createCommentVNode } from "vue";
|
||||
import { computed } from "vue";
|
||||
import { isRef } from "vue";
|
||||
import { createElementBlock } from "vue";
|
||||
import { Fragment } from "vue";
|
||||
import { createElementVNode } from "vue";
|
||||
import { createTextVNode } from "vue";
|
||||
import { unref } from "vue";
|
||||
import { defineComponent } from "vue";
|
||||
import { createVNode } from "vue";
|
||||
import { openBlock } from "vue";
|
||||
import { navigateTo } from "#app";
|
||||
import { NuxtLink } from "#components";
|
||||
import { sanitizeMessage } from "~/lib/auth.js";
|
||||
import { useApi } from "~/lib/auth.js";
|
||||
import { assertSecurityComplete } from "~/lib/auth.js";
|
||||
import { securityChallenge } from "~/lib/auth.js";
|
||||
import dialog from "primevue/dialog";
|
||||
import button from "primevue/button";
|
||||
import { t as _plugin_vue_export_helper_t } from "~/lib/_plugin-vue_export-helper.js";
|
||||
import message from "primevue/message";
|
||||
import { c as dict_c } from "~/lib/dict.js";
|
||||
import { l as dict_l } from "~/lib/dict.js";
|
||||
import { r as dict_r } from "~/lib/dict.js";
|
||||
import select from "primevue/select";
|
||||
import OperationNotice from "~/components/OperationNotice.vue";
|
||||
import textarea from "primevue/textarea";
|
||||
import tag from "primevue/tag";
|
||||
import SecurityVerificationDialog from "~/components/SecurityVerificationDialog.vue";
|
||||
import InstanceRenewDialog from "~/components/instance/InstanceRenewDialog.vue";
|
||||
var he = {
|
||||
class: `billing`,
|
||||
},
|
||||
ge = {
|
||||
class: `rows`,
|
||||
},
|
||||
_e = {
|
||||
key: 1,
|
||||
},
|
||||
ve = {
|
||||
key: 0,
|
||||
},
|
||||
ye = {
|
||||
key: 0,
|
||||
},
|
||||
be = {
|
||||
key: 1,
|
||||
},
|
||||
xe = {
|
||||
class: `order-row`,
|
||||
},
|
||||
Se = {
|
||||
key: 1,
|
||||
},
|
||||
Ce = {
|
||||
class: `muted`,
|
||||
},
|
||||
we = {
|
||||
class: `form`,
|
||||
},
|
||||
Te = {
|
||||
key: 1,
|
||||
},
|
||||
Ee = [`id`],
|
||||
De = [`for`],
|
||||
Oe = [`id`],
|
||||
ke = {
|
||||
key: 3,
|
||||
},
|
||||
C = Object.assign(
|
||||
_plugin_vue_export_helper_t(
|
||||
defineComponent({
|
||||
__name: `DcimBilling`,
|
||||
props: {
|
||||
hostId: {},
|
||||
host: {},
|
||||
},
|
||||
emits: [`refresh`],
|
||||
setup(g, { emit: S }) {
|
||||
let C = g,
|
||||
w = S,
|
||||
T = useApi(),
|
||||
E = ref(``),
|
||||
D = useId(),
|
||||
O = ref(!1),
|
||||
k = ref(null),
|
||||
A = ref(``),
|
||||
j = ref(``),
|
||||
M = ref(``),
|
||||
N = ref(``),
|
||||
P = ref(!1),
|
||||
F = ref(!1),
|
||||
I = ref(null),
|
||||
L = ref(`Expire`),
|
||||
R = ref(null),
|
||||
z = ref(``),
|
||||
B = ref(!1),
|
||||
V = ref({}),
|
||||
H = ref(null),
|
||||
U = ref(null),
|
||||
W = ref(null),
|
||||
Ae = {
|
||||
Pending: `待审核`,
|
||||
Suspending: `待停用`,
|
||||
Suspend: `停用中`,
|
||||
Suspended: `已停用`,
|
||||
Refund: `已退款`,
|
||||
Reject: `已驳回`,
|
||||
Cancelled: `已取消`,
|
||||
},
|
||||
je = computed(
|
||||
() =>
|
||||
!C.host.renew_forbidden &&
|
||||
![`Deleted`, `Unpaid`, `Cancelled`, `Failed`].includes(
|
||||
C.host.status,
|
||||
),
|
||||
),
|
||||
G = computed(
|
||||
() =>
|
||||
!F.value &&
|
||||
!j.value &&
|
||||
Number(U.value?.allow_refund) === 1 &&
|
||||
(!W.value || [`Reject`, `Cancelled`].includes(W.value.status)),
|
||||
),
|
||||
K = computed(
|
||||
() =>
|
||||
!F.value &&
|
||||
!j.value &&
|
||||
[`Pending`, `Suspending`, `Suspend`].includes(
|
||||
W.value?.status || ``,
|
||||
),
|
||||
),
|
||||
q = 0,
|
||||
J = 0,
|
||||
Y = !1,
|
||||
X = (e, t) =>
|
||||
!Y && e === C.hostId && String(C.host.id) === e && t === J;
|
||||
async function Z() {
|
||||
let e = ++q,
|
||||
t = C.hostId;
|
||||
((F.value = !0),
|
||||
(k.value = null),
|
||||
(U.value = null),
|
||||
(W.value = null),
|
||||
(A.value = ``),
|
||||
(j.value = ``));
|
||||
let n = await Promise.allSettled([
|
||||
T.get(`/host/${t}/renew/auto`),
|
||||
T.get(`/refund`, {
|
||||
host_id: t,
|
||||
}),
|
||||
T.get(`/refund/host/${t}/refund`),
|
||||
]);
|
||||
if (Y || e !== q || t !== C.hostId) return;
|
||||
let [r, i, a] = n;
|
||||
(r.status === `fulfilled` &&
|
||||
[0, 1].includes(Number(r.value?.status))
|
||||
? (k.value = Number(r.value.status))
|
||||
: (A.value =
|
||||
r.status === `rejected` && r.reason instanceof Error
|
||||
? r.reason.message
|
||||
: `自动续费状态不可用`),
|
||||
i.status === `fulfilled`
|
||||
? (U.value = i.value)
|
||||
: (j.value =
|
||||
i.reason instanceof Error
|
||||
? i.reason.message
|
||||
: `停用信息暂不可用`),
|
||||
a.status === `fulfilled` && a.value && `refund` in a.value
|
||||
? (W.value = a.value.refund)
|
||||
: (j.value =
|
||||
a.status === `rejected` && a.reason instanceof Error
|
||||
? a.reason.message
|
||||
: `停用记录暂不可用`),
|
||||
(F.value = !1));
|
||||
}
|
||||
function Q(e) {
|
||||
P.value ||
|
||||
F.value ||
|
||||
B.value ||
|
||||
String(C.host.id) !== C.hostId ||
|
||||
(e === `auto` && k.value === null) ||
|
||||
(e === `refund` && !G.value) ||
|
||||
(e === `cancel` && !K.value) ||
|
||||
((I.value = e),
|
||||
(M.value = ``),
|
||||
(E.value = ``),
|
||||
(N.value = ``),
|
||||
(L.value = `Expire`),
|
||||
(z.value = ``),
|
||||
(R.value = null),
|
||||
(H.value = null));
|
||||
}
|
||||
function $() {
|
||||
!P.value &&
|
||||
!B.value &&
|
||||
((I.value = null), (M.value = ``), (H.value = null));
|
||||
}
|
||||
async function Me() {
|
||||
if (
|
||||
P.value ||
|
||||
B.value ||
|
||||
!I.value ||
|
||||
Y ||
|
||||
String(C.host.id) !== C.hostId
|
||||
)
|
||||
return;
|
||||
let e = I.value,
|
||||
t = C.hostId,
|
||||
n = J,
|
||||
r = () => X(t, n);
|
||||
if (
|
||||
((M.value = ``),
|
||||
(E.value = ``),
|
||||
(e === `auto` && k.value === null) ||
|
||||
(e === `refund` && !G.value) ||
|
||||
(e === `cancel` && !K.value))
|
||||
)
|
||||
return;
|
||||
if (
|
||||
e === `refund` &&
|
||||
(U.value?.reason_custom ? !z.value.trim() : !R.value)
|
||||
) {
|
||||
M.value = `请填写或选择停用原因`;
|
||||
return;
|
||||
}
|
||||
let i = {
|
||||
host_id: Number(t),
|
||||
type: L.value,
|
||||
suspend_reason: U.value?.reason_custom
|
||||
? z.value.trim()
|
||||
: [R.value],
|
||||
};
|
||||
P.value = !0;
|
||||
try {
|
||||
if (e === `auto`) {
|
||||
let e = k.value === 1 ? 0 : 1;
|
||||
(await T.put(`/host/${t}/renew/auto`, {
|
||||
status: e,
|
||||
}),
|
||||
r() && (k.value = e));
|
||||
} else if (e === `cancel`)
|
||||
await T.put(`/refund/${W.value.id}/cancel`);
|
||||
else {
|
||||
let e = await T.post(`/refund`, i);
|
||||
if (!r()) return;
|
||||
assertSecurityComplete(e);
|
||||
}
|
||||
if (!r()) return;
|
||||
((I.value = null),
|
||||
(N.value =
|
||||
e === `auto`
|
||||
? `自动续费设置已更新`
|
||||
: e === `cancel`
|
||||
? `停用申请已取消`
|
||||
: `停用申请已提交`),
|
||||
e !== `auto` && (await Z()));
|
||||
} catch (t) {
|
||||
if (!r()) return;
|
||||
let n = e === `refund` ? securityChallenge(t) : null;
|
||||
n
|
||||
? ((H.value = i), (V.value = n), (B.value = !0))
|
||||
: (E.value =
|
||||
t instanceof Error ? t.message : `操作失败,请重试`);
|
||||
} finally {
|
||||
r() && (P.value = !1);
|
||||
}
|
||||
}
|
||||
async function Ne(e) {
|
||||
let t = H.value,
|
||||
n = C.hostId,
|
||||
r = J;
|
||||
if (
|
||||
t &&
|
||||
!P.value &&
|
||||
B.value &&
|
||||
Number(n) === t.host_id &&
|
||||
X(n, r)
|
||||
) {
|
||||
((P.value = !0), (E.value = ``));
|
||||
try {
|
||||
let i = await T.post(`/refund`, {
|
||||
...t,
|
||||
...e,
|
||||
});
|
||||
if (!X(n, r)) return;
|
||||
(assertSecurityComplete(i),
|
||||
(H.value = null),
|
||||
(B.value = !1),
|
||||
(I.value = null),
|
||||
(N.value = `停用申请已提交`),
|
||||
await Z(),
|
||||
X(n, r) && w(`refresh`));
|
||||
} catch (e) {
|
||||
if (!X(n, r)) return;
|
||||
let t = securityChallenge(e);
|
||||
t
|
||||
? ((V.value = t), (E.value = `安全验证尚未完成,请重试`))
|
||||
: (E.value =
|
||||
e instanceof Error ? e.message : `操作失败,请重试`);
|
||||
} finally {
|
||||
X(n, r) && (P.value = !1);
|
||||
}
|
||||
}
|
||||
}
|
||||
return (
|
||||
watch(
|
||||
() => C.hostId,
|
||||
() => {
|
||||
(J++,
|
||||
(I.value = null),
|
||||
(P.value = !1),
|
||||
(O.value = !1),
|
||||
(H.value = null),
|
||||
(B.value = !1),
|
||||
(V.value = {}),
|
||||
(E.value = ``),
|
||||
(N.value = ``),
|
||||
Z());
|
||||
},
|
||||
{
|
||||
flush: `sync`,
|
||||
},
|
||||
),
|
||||
onMounted(Z),
|
||||
onBeforeUnmount(() => {
|
||||
((Y = !0), q++, J++, (H.value = null), (B.value = !1));
|
||||
}),
|
||||
(t, n) => {
|
||||
let r = OperationNotice,
|
||||
i = tag,
|
||||
o = button,
|
||||
l = NuxtLink,
|
||||
y = InstanceRenewDialog,
|
||||
b = message,
|
||||
x = select,
|
||||
S = textarea,
|
||||
C = dialog,
|
||||
T = SecurityVerificationDialog;
|
||||
return (
|
||||
openBlock(),
|
||||
createElementBlock(`div`, he, [
|
||||
createVNode(
|
||||
r,
|
||||
{
|
||||
message: unref(E),
|
||||
severity: `error`,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`message`],
|
||||
),
|
||||
createVNode(
|
||||
r,
|
||||
{
|
||||
message: unref(N),
|
||||
severity: `success`,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`message`],
|
||||
),
|
||||
(n[24] ||= createElementVNode(`h3`, null, `计费信息`, -1)),
|
||||
createElementVNode(`dl`, ge, [
|
||||
createElementVNode(`div`, null, [
|
||||
(n[12] ||= createElementVNode(
|
||||
`dt`,
|
||||
null,
|
||||
`计费方式`,
|
||||
-1,
|
||||
)),
|
||||
createElementVNode(
|
||||
`dd`,
|
||||
null,
|
||||
toDisplayString(
|
||||
g.host.billing_cycle_name ||
|
||||
g.host.billing_cycle ||
|
||||
`—`,
|
||||
),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
createElementVNode(`div`, null, [
|
||||
(n[13] ||= createElementVNode(`dt`, null, `状态`, -1)),
|
||||
createElementVNode(`dd`, null, [
|
||||
createVNode(
|
||||
i,
|
||||
{
|
||||
value: (`statusLabel` in t
|
||||
? t.statusLabel
|
||||
: unref(dict_c))(g.host.status),
|
||||
severity: (`statusSeverity` in t
|
||||
? t.statusSeverity
|
||||
: unref(dict_l))(g.host.status),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`value`, `severity`],
|
||||
),
|
||||
]),
|
||||
]),
|
||||
createElementVNode(`div`, null, [
|
||||
(n[14] ||= createElementVNode(
|
||||
`dt`,
|
||||
null,
|
||||
`自动续费`,
|
||||
-1,
|
||||
)),
|
||||
createElementVNode(`dd`, null, [
|
||||
createElementVNode(
|
||||
`span`,
|
||||
null,
|
||||
toDisplayString(
|
||||
unref(F)
|
||||
? `加载中…`
|
||||
: unref(k) === null
|
||||
? `状态不可用`
|
||||
: unref(k)
|
||||
? `已开启`
|
||||
: `已关闭`,
|
||||
),
|
||||
1,
|
||||
),
|
||||
unref(k) === null
|
||||
? createCommentVNode(``, !0)
|
||||
: (openBlock(),
|
||||
createBlock(
|
||||
o,
|
||||
{
|
||||
key: 0,
|
||||
label: unref(k) ? `关闭` : `开启`,
|
||||
text: ``,
|
||||
size: `small`,
|
||||
disabled: unref(P) || unref(F),
|
||||
onClick: (n[0] ||= (e) => Q(`auto`)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`label`, `disabled`],
|
||||
)),
|
||||
unref(A)
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
`small`,
|
||||
_e,
|
||||
toDisplayString(unref(A)),
|
||||
1,
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
]),
|
||||
]),
|
||||
createElementVNode(`div`, null, [
|
||||
(n[15] ||= createElementVNode(
|
||||
`dt`,
|
||||
null,
|
||||
`续费金额`,
|
||||
-1,
|
||||
)),
|
||||
createElementVNode(`dd`, null, [
|
||||
createTextVNode(
|
||||
`¥` + toDisplayString(g.host.renew_amount),
|
||||
1,
|
||||
),
|
||||
createVNode(
|
||||
o,
|
||||
{
|
||||
label: `续费`,
|
||||
size: `small`,
|
||||
text: ``,
|
||||
disabled: !unref(je),
|
||||
onClick: (n[1] ||= (e) => (O.value = !0)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`disabled`],
|
||||
),
|
||||
]),
|
||||
]),
|
||||
createElementVNode(`div`, null, [
|
||||
(n[16] ||= createElementVNode(
|
||||
`dt`,
|
||||
null,
|
||||
`开通时间`,
|
||||
-1,
|
||||
)),
|
||||
createElementVNode(
|
||||
`dd`,
|
||||
null,
|
||||
toDisplayString(
|
||||
(`formatTime` in t ? t.formatTime : unref(dict_r))(
|
||||
g.host.active_time,
|
||||
),
|
||||
),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
createElementVNode(`div`, null, [
|
||||
(n[17] ||= createElementVNode(
|
||||
`dt`,
|
||||
null,
|
||||
`到期时间`,
|
||||
-1,
|
||||
)),
|
||||
createElementVNode(
|
||||
`dd`,
|
||||
null,
|
||||
toDisplayString(
|
||||
(`formatTime` in t ? t.formatTime : unref(dict_r))(
|
||||
g.host.due_time,
|
||||
),
|
||||
),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
createElementVNode(`div`, null, [
|
||||
(n[18] ||= createElementVNode(
|
||||
`dt`,
|
||||
null,
|
||||
`停用 / 退款`,
|
||||
-1,
|
||||
)),
|
||||
createElementVNode(`dd`, null, [
|
||||
unref(F)
|
||||
? (openBlock(),
|
||||
createElementBlock(`span`, ve, `加载中…`))
|
||||
: unref(j)
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
Fragment,
|
||||
{
|
||||
key: 1,
|
||||
},
|
||||
[
|
||||
createElementVNode(
|
||||
`span`,
|
||||
null,
|
||||
toDisplayString(unref(j)),
|
||||
1,
|
||||
),
|
||||
createVNode(o, {
|
||||
label: `重试`,
|
||||
text: ``,
|
||||
size: `small`,
|
||||
onClick: Z,
|
||||
}),
|
||||
],
|
||||
64,
|
||||
))
|
||||
: (openBlock(),
|
||||
createElementBlock(
|
||||
Fragment,
|
||||
{
|
||||
key: 2,
|
||||
},
|
||||
[
|
||||
unref(W)
|
||||
? (openBlock(),
|
||||
createElementBlock(`span`, ye, [
|
||||
createTextVNode(
|
||||
toDisplayString(
|
||||
Ae[unref(W).status] ||
|
||||
unref(W).status,
|
||||
),
|
||||
1,
|
||||
),
|
||||
unref(W).reject_reason
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
Fragment,
|
||||
{
|
||||
key: 0,
|
||||
},
|
||||
[
|
||||
createTextVNode(
|
||||
` · ` +
|
||||
toDisplayString(
|
||||
unref(sanitizeMessage)(
|
||||
unref(W).reject_reason,
|
||||
),
|
||||
),
|
||||
1,
|
||||
),
|
||||
],
|
||||
64,
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
]))
|
||||
: unref(G)
|
||||
? createCommentVNode(``, !0)
|
||||
: (openBlock(),
|
||||
createElementBlock(
|
||||
`span`,
|
||||
be,
|
||||
`当前实例不支持申请停用 / 退款`,
|
||||
)),
|
||||
unref(G)
|
||||
? (openBlock(),
|
||||
createBlock(o, {
|
||||
key: 2,
|
||||
label: `申请停用`,
|
||||
text: ``,
|
||||
severity: `danger`,
|
||||
size: `small`,
|
||||
onClick: (n[2] ||= (e) => Q(`refund`)),
|
||||
}))
|
||||
: createCommentVNode(``, !0),
|
||||
unref(K)
|
||||
? (openBlock(),
|
||||
createBlock(o, {
|
||||
key: 3,
|
||||
label: `取消申请`,
|
||||
text: ``,
|
||||
size: `small`,
|
||||
onClick: (n[3] ||= (e) => Q(`cancel`)),
|
||||
}))
|
||||
: createCommentVNode(``, !0),
|
||||
],
|
||||
64,
|
||||
)),
|
||||
]),
|
||||
]),
|
||||
]),
|
||||
(n[25] ||= createElementVNode(`h3`, null, `关联订单`, -1)),
|
||||
createElementVNode(`div`, xe, [
|
||||
(n[19] ||= createElementVNode(
|
||||
`span`,
|
||||
null,
|
||||
`开通订单`,
|
||||
-1,
|
||||
)),
|
||||
g.host.order_id
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
l,
|
||||
{
|
||||
key: 0,
|
||||
to: `/orders/${g.host.order_id}`,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
createTextVNode(
|
||||
`#` + toDisplayString(g.host.order_id),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
[`to`],
|
||||
))
|
||||
: (openBlock(),
|
||||
createElementBlock(`span`, Se, `暂无关联订单`)),
|
||||
]),
|
||||
createElementVNode(`p`, Ce, [
|
||||
(n[21] ||= createTextVNode(`续费及变更订单可前往`, -1)),
|
||||
createVNode(
|
||||
l,
|
||||
{
|
||||
to: `/orders`,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
...(n[20] ||= [createTextVNode(`订单管理`, -1)]),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
),
|
||||
(n[22] ||= createTextVNode(`查看。`, -1)),
|
||||
]),
|
||||
createVNode(
|
||||
y,
|
||||
{
|
||||
modelValue: unref(O),
|
||||
"onUpdate:modelValue": (n[4] ||= (e) =>
|
||||
isRef(O) ? (O.value = e) : null),
|
||||
"host-id": g.hostId,
|
||||
onPaid: (n[5] ||= (e) => {
|
||||
(w(`refresh`),
|
||||
(`navigateTo` in t
|
||||
? t.navigateTo
|
||||
: unref(navigateTo))(`/orders`));
|
||||
}),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`modelValue`, `host-id`],
|
||||
),
|
||||
createVNode(
|
||||
C,
|
||||
{
|
||||
visible: !!unref(I),
|
||||
header:
|
||||
unref(I) === `auto`
|
||||
? `确认自动续费设置`
|
||||
: unref(I) === `refund`
|
||||
? `确认申请停用`
|
||||
: `确认取消申请`,
|
||||
modal: ``,
|
||||
style: {
|
||||
width: `500px`,
|
||||
},
|
||||
closable: !unref(P) && !unref(B),
|
||||
"close-on-escape": !unref(P) && !unref(B),
|
||||
"onUpdate:visible": (n[9] ||= (e) => {
|
||||
e || $();
|
||||
}),
|
||||
},
|
||||
{
|
||||
footer: withCtx(() => [
|
||||
createVNode(
|
||||
o,
|
||||
{
|
||||
label: `取消`,
|
||||
outlined: ``,
|
||||
severity: `secondary`,
|
||||
disabled: unref(P) || unref(B),
|
||||
onClick: $,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`disabled`],
|
||||
),
|
||||
createVNode(
|
||||
o,
|
||||
{
|
||||
label: `确认`,
|
||||
severity:
|
||||
unref(I) === `refund` ? `danger` : `primary`,
|
||||
loading: unref(P),
|
||||
disabled: unref(P) || unref(B),
|
||||
onClick: Me,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`severity`, `loading`, `disabled`],
|
||||
),
|
||||
]),
|
||||
default: withCtx(() => [
|
||||
createElementVNode(`div`, we, [
|
||||
createElementVNode(
|
||||
`p`,
|
||||
null,
|
||||
`实例「` +
|
||||
toDisplayString(g.host.name) +
|
||||
`」(#` +
|
||||
toDisplayString(g.hostId) +
|
||||
`)`,
|
||||
1,
|
||||
),
|
||||
unref(M)
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
b,
|
||||
{
|
||||
key: 0,
|
||||
severity: `error`,
|
||||
closable: !1,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
createTextVNode(
|
||||
toDisplayString(unref(M)),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
unref(I) === `auto`
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
`p`,
|
||||
Te,
|
||||
`确认` +
|
||||
toDisplayString(unref(k) ? `关闭` : `开启`) +
|
||||
`自动续费?开启后将按平台规则扣取余额续费。`,
|
||||
1,
|
||||
))
|
||||
: unref(I) === `refund`
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
Fragment,
|
||||
{
|
||||
key: 2,
|
||||
},
|
||||
[
|
||||
createVNode(
|
||||
b,
|
||||
{
|
||||
severity: `warn`,
|
||||
closable: !1,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
...(n[23] ||= [
|
||||
createTextVNode(
|
||||
`停用后服务将不可用,请提前备份数据。退款金额以审核结果为准。`,
|
||||
-1,
|
||||
),
|
||||
]),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
),
|
||||
createElementVNode(
|
||||
`span`,
|
||||
{
|
||||
id: `${unref(D)}-type-label`,
|
||||
},
|
||||
`停用时间`,
|
||||
8,
|
||||
Ee,
|
||||
),
|
||||
createVNode(
|
||||
x,
|
||||
{
|
||||
modelValue: unref(L),
|
||||
"onUpdate:modelValue": (n[6] ||= (e) =>
|
||||
isRef(L) ? (L.value = e) : null),
|
||||
"aria-labelledby": `${unref(D)}-type-label`,
|
||||
options: [
|
||||
{
|
||||
label: `到期停用`,
|
||||
value: `Expire`,
|
||||
},
|
||||
{
|
||||
label: `立即停用`,
|
||||
value: `Immediate`,
|
||||
},
|
||||
],
|
||||
"option-label": `label`,
|
||||
"option-value": `value`,
|
||||
disabled: unref(P) || unref(B),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[
|
||||
`modelValue`,
|
||||
`aria-labelledby`,
|
||||
`disabled`,
|
||||
],
|
||||
),
|
||||
unref(U)?.reason_custom
|
||||
? (openBlock(),
|
||||
createElementBlock(
|
||||
Fragment,
|
||||
{
|
||||
key: 0,
|
||||
},
|
||||
[
|
||||
createElementVNode(
|
||||
`label`,
|
||||
{
|
||||
for: `${unref(D)}-reason`,
|
||||
},
|
||||
`停用原因`,
|
||||
8,
|
||||
De,
|
||||
),
|
||||
createVNode(
|
||||
S,
|
||||
{
|
||||
id: `${unref(D)}-reason`,
|
||||
modelValue: unref(z),
|
||||
"onUpdate:modelValue": (n[7] ||=
|
||||
(e) =>
|
||||
isRef(z)
|
||||
? (z.value = e)
|
||||
: null),
|
||||
disabled: unref(P) || unref(B),
|
||||
rows: `3`,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`id`, `modelValue`, `disabled`],
|
||||
),
|
||||
],
|
||||
64,
|
||||
))
|
||||
: (openBlock(),
|
||||
createElementBlock(
|
||||
Fragment,
|
||||
{
|
||||
key: 1,
|
||||
},
|
||||
[
|
||||
createElementVNode(
|
||||
`span`,
|
||||
{
|
||||
id: `${unref(D)}-reason-label`,
|
||||
},
|
||||
`停用原因`,
|
||||
8,
|
||||
Oe,
|
||||
),
|
||||
createVNode(
|
||||
x,
|
||||
{
|
||||
modelValue: unref(R),
|
||||
"onUpdate:modelValue": (n[8] ||=
|
||||
(e) =>
|
||||
isRef(R)
|
||||
? (R.value = e)
|
||||
: null),
|
||||
"aria-labelledby": `${unref(D)}-reason-label`,
|
||||
options:
|
||||
unref(U)?.reasons || [],
|
||||
"option-label": `content`,
|
||||
"option-value": `id`,
|
||||
disabled: unref(P) || unref(B),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[
|
||||
`modelValue`,
|
||||
`aria-labelledby`,
|
||||
`options`,
|
||||
`disabled`,
|
||||
],
|
||||
),
|
||||
],
|
||||
64,
|
||||
)),
|
||||
],
|
||||
64,
|
||||
))
|
||||
: (openBlock(),
|
||||
createElementBlock(
|
||||
`p`,
|
||||
ke,
|
||||
`确认取消尚未处理的停用申请?`,
|
||||
)),
|
||||
]),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
[`visible`, `header`, `closable`, `close-on-escape`],
|
||||
),
|
||||
createVNode(
|
||||
T,
|
||||
{
|
||||
visible: unref(B),
|
||||
"onUpdate:visible": (n[10] ||= (e) =>
|
||||
isRef(B) ? (B.value = e) : null),
|
||||
challenge: unref(V),
|
||||
busy: unref(P),
|
||||
"request-error": unref(E),
|
||||
context: {
|
||||
scene: `account`,
|
||||
action: `host_refund`,
|
||||
},
|
||||
onVerified: Ne,
|
||||
onCancel: (n[11] ||= (e) => (H.value = null)),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`visible`, `challenge`, `busy`, `request-error`],
|
||||
),
|
||||
])
|
||||
);
|
||||
}
|
||||
);
|
||||
},
|
||||
}),
|
||||
[[`__scopeId`, `data-v-9a8e05c2`]],
|
||||
),
|
||||
{
|
||||
__name: `DcimBilling`,
|
||||
},
|
||||
);
|
||||
export {};
|
||||
export default C;
|
||||
</script>
|
||||
Reference in new issue
Block a user