first commit
This commit is contained in:
commit
db5762abd4
687 files changed
+171307
No files matched your search
@@ -0,0 +1,356 @@
|
||||
<script>
|
||||
import "~/assets/styles/DcimDomains.BT2s5hGW.css";
|
||||
import { toDisplayString } from "vue";
|
||||
import { onMounted } 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 { createElementBlock } 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 { NuxtLink } from "#components";
|
||||
import { sanitizeMessage } from "~/lib/auth.js";
|
||||
import { useApi } from "~/lib/auth.js";
|
||||
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 { r as dict_r } from "~/lib/dict.js";
|
||||
import datatable from "primevue/datatable";
|
||||
import paginator from "primevue/paginator";
|
||||
import column from "primevue/column";
|
||||
import tag from "primevue/tag";
|
||||
var E = {
|
||||
class: `domains`,
|
||||
},
|
||||
D = {
|
||||
class: `toolbar`,
|
||||
},
|
||||
O = {
|
||||
class: `empty`,
|
||||
},
|
||||
k = Object.assign(
|
||||
_plugin_vue_export_helper_t(
|
||||
defineComponent({
|
||||
__name: `DcimDomains`,
|
||||
props: {
|
||||
hostId: {},
|
||||
},
|
||||
setup(f) {
|
||||
let y = f,
|
||||
k = useApi(),
|
||||
A = ref(null),
|
||||
j = ref(``),
|
||||
M = ref(!1),
|
||||
N = ref([]),
|
||||
P = ref(0),
|
||||
F = ref(0),
|
||||
I = 0,
|
||||
L = !1;
|
||||
async function R() {
|
||||
let e = ++I,
|
||||
t = y.hostId;
|
||||
((M.value = !0), (j.value = ``), (N.value = []));
|
||||
try {
|
||||
let n = await k.get(`/domain_whitelist/host`);
|
||||
if (L || e !== I || t !== y.hostId) return;
|
||||
A.value = (n.list || []).some((e) => String(e.id) === t);
|
||||
let r = await k.get(`/domain_whitelist/record`, {
|
||||
host_id: t,
|
||||
page: P.value + 1,
|
||||
limit: 10,
|
||||
});
|
||||
if (L || e !== I || t !== y.hostId) return;
|
||||
((N.value = r.list || []), (F.value = Number(r.count || 0)));
|
||||
} catch (t) {
|
||||
!L &&
|
||||
e === I &&
|
||||
(j.value =
|
||||
t instanceof Error ? t.message : `域名白名单加载失败`);
|
||||
} finally {
|
||||
!L && e === I && (M.value = !1);
|
||||
}
|
||||
}
|
||||
return (
|
||||
watch(
|
||||
() => y.hostId,
|
||||
() => {
|
||||
((A.value = null), (P.value = 0), R());
|
||||
},
|
||||
),
|
||||
onMounted(R),
|
||||
onBeforeUnmount(() => {
|
||||
((L = !0), I++);
|
||||
}),
|
||||
(t, n) => {
|
||||
let r = message,
|
||||
a = NuxtLink,
|
||||
_ = button,
|
||||
y = column,
|
||||
k = tag,
|
||||
I = datatable,
|
||||
L = paginator;
|
||||
return (
|
||||
openBlock(),
|
||||
createElementBlock(`div`, E, [
|
||||
createVNode(
|
||||
r,
|
||||
{
|
||||
severity: `info`,
|
||||
closable: !1,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
...(n[1] ||= [
|
||||
createTextVNode(
|
||||
`域名白名单用于为当前实例提交域名访问申请,审核结果以平台记录为准。`,
|
||||
-1,
|
||||
),
|
||||
]),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
),
|
||||
createElementVNode(`div`, D, [
|
||||
(n[3] ||= createElementVNode(`h3`, null, `域名白名单`, -1)),
|
||||
unref(A)
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
a,
|
||||
{
|
||||
key: 0,
|
||||
class: `p-button p-button-sm`,
|
||||
to: {
|
||||
path: `/security/domain-whitelist`,
|
||||
query: {
|
||||
host_id: f.hostId,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
...(n[2] ||= [
|
||||
createElementVNode(
|
||||
`i`,
|
||||
{
|
||||
class: `pi pi-plus`,
|
||||
"aria-hidden": `true`,
|
||||
},
|
||||
null,
|
||||
-1,
|
||||
),
|
||||
createTextVNode(`管理 / 添加域名`, -1),
|
||||
]),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
[`to`],
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
createVNode(
|
||||
_,
|
||||
{
|
||||
label: `刷新`,
|
||||
icon: `pi pi-refresh`,
|
||||
severity: `secondary`,
|
||||
text: ``,
|
||||
size: `small`,
|
||||
loading: unref(M),
|
||||
onClick: R,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`loading`],
|
||||
),
|
||||
]),
|
||||
unref(j)
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
r,
|
||||
{
|
||||
key: 0,
|
||||
severity: `error`,
|
||||
closable: !1,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
createTextVNode(toDisplayString(unref(j)), 1),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
))
|
||||
: unref(A) === !1
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
r,
|
||||
{
|
||||
key: 1,
|
||||
severity: `info`,
|
||||
closable: !1,
|
||||
},
|
||||
{
|
||||
default: withCtx(() => [
|
||||
...(n[4] ||= [
|
||||
createTextVNode(
|
||||
`此实例尚未配置可用的域名白名单入口,暂不能提交新域名。`,
|
||||
-1,
|
||||
),
|
||||
]),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
createVNode(
|
||||
I,
|
||||
{
|
||||
value: unref(N),
|
||||
loading: unref(M),
|
||||
"data-key": `id`,
|
||||
scrollable: ``,
|
||||
},
|
||||
{
|
||||
empty: withCtx(() => [
|
||||
createElementVNode(
|
||||
`div`,
|
||||
O,
|
||||
toDisplayString(
|
||||
unref(j) ? `记录暂不可用` : `暂无域名记录`,
|
||||
),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
default: withCtx(() => [
|
||||
createVNode(
|
||||
y,
|
||||
{
|
||||
header: `域名`,
|
||||
},
|
||||
{
|
||||
body: withCtx(({ data: t }) => [
|
||||
createTextVNode(
|
||||
toDisplayString(t.domains?.join(`、`) || `—`),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
),
|
||||
createVNode(
|
||||
y,
|
||||
{
|
||||
header: `状态`,
|
||||
},
|
||||
{
|
||||
body: withCtx(({ data: e }) => [
|
||||
createVNode(
|
||||
k,
|
||||
{
|
||||
value:
|
||||
e.status === 1
|
||||
? `已通过`
|
||||
: e.status === -1
|
||||
? `已驳回`
|
||||
: `处理中`,
|
||||
severity:
|
||||
e.status === 1
|
||||
? `success`
|
||||
: e.status === -1
|
||||
? `danger`
|
||||
: `warn`,
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`value`, `severity`],
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
),
|
||||
createVNode(
|
||||
y,
|
||||
{
|
||||
header: `驳回原因`,
|
||||
},
|
||||
{
|
||||
body: withCtx(({ data: t }) => [
|
||||
createTextVNode(
|
||||
toDisplayString(
|
||||
unref(sanitizeMessage)(t.reject_reason) ||
|
||||
`—`,
|
||||
),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
),
|
||||
createVNode(y, {
|
||||
field: `remark`,
|
||||
header: `备注`,
|
||||
}),
|
||||
createVNode(
|
||||
y,
|
||||
{
|
||||
header: `创建时间`,
|
||||
},
|
||||
{
|
||||
body: withCtx(({ data: n }) => [
|
||||
createTextVNode(
|
||||
toDisplayString(
|
||||
(`formatTime` in t
|
||||
? t.formatTime
|
||||
: unref(dict_r))(n.create_time),
|
||||
),
|
||||
1,
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
),
|
||||
]),
|
||||
_: 1,
|
||||
},
|
||||
8,
|
||||
[`value`, `loading`],
|
||||
),
|
||||
unref(F) > 10
|
||||
? (openBlock(),
|
||||
createBlock(
|
||||
L,
|
||||
{
|
||||
key: 2,
|
||||
rows: 10,
|
||||
first: unref(P) * 10,
|
||||
"total-records": unref(F),
|
||||
onPage: (n[0] ||= (e) => {
|
||||
((P.value = e.page), R());
|
||||
}),
|
||||
},
|
||||
null,
|
||||
8,
|
||||
[`first`, `total-records`],
|
||||
))
|
||||
: createCommentVNode(``, !0),
|
||||
])
|
||||
);
|
||||
}
|
||||
);
|
||||
},
|
||||
}),
|
||||
[[`__scopeId`, `data-v-6c2c5ee1`]],
|
||||
),
|
||||
{
|
||||
__name: `DcimDomains`,
|
||||
},
|
||||
);
|
||||
export {};
|
||||
export default k;
|
||||
</script>
|
||||
Reference in new issue
Block a user