@opengis/admin 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-page-D6D_vCdT.js → add-page-D8DdFnjh.js} +1 -1
- package/dist/admin-interface-1gKS5Vfr.js +896 -0
- package/dist/{admin-view-Ctnb3YHc.js → admin-view-BKGOESqt.js} +79 -74
- package/dist/admin.js +1 -1
- package/dist/admin.umd.cjs +25 -25
- package/dist/{card-page-CDUWky8v.js → card-page-CrXRWzNJ.js} +23 -23
- package/dist/{card-view-BdtKFM_Q.js → card-view-CWNJ2kcf.js} +1 -1
- package/dist/{edit-page-Bl7TSfk5.js → edit-page-BiFGmlQZ.js} +1 -1
- package/dist/{import-file-bAV0TNST.js → import-file-BOQRtUOt.js} +1700 -1709
- package/dist/style.css +1 -1
- package/package.json +3 -3
- package/server/routes/data/controllers/utils/assignTokens.js +2 -2
- package/dist/admin-interface-BpAoXL6Y.js +0 -790
|
@@ -1,790 +0,0 @@
|
|
|
1
|
-
import { _ as g, a as k } from "./import-file-bAV0TNST.js";
|
|
2
|
-
import { u as I } from "./userMenu-CT1xO2Pt.js";
|
|
3
|
-
import { openBlock as o, createElementBlock as i, createStaticVNode as S, createElementVNode as n, Fragment as x, resolveComponent as c, createVNode as p, withCtx as y, createTextVNode as v, withModifiers as L, renderList as w, toDisplayString as T, withDirectives as E, vModelCheckbox as O, createBlock as F, vModelText as N, resolveDynamicComponent as q, Transition as R, createCommentVNode as G, vShow as J } from "vue";
|
|
4
|
-
const K = {}, Q = {
|
|
5
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
6
|
-
viewBox: "0 0 24 24",
|
|
7
|
-
fill: "none",
|
|
8
|
-
stroke: "currentColor",
|
|
9
|
-
"stroke-width": "2",
|
|
10
|
-
"stroke-linecap": "round",
|
|
11
|
-
"stroke-linejoin": "round",
|
|
12
|
-
class: "icon icon-tabler icons-tabler-outline icon-tabler-adjustments-horizontal"
|
|
13
|
-
};
|
|
14
|
-
function W(t, e, s, a, l, r) {
|
|
15
|
-
return o(), i("svg", Q, e[0] || (e[0] = [
|
|
16
|
-
S('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M14 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M4 6l8 0"></path><path d="M16 6l4 0"></path><path d="M8 12m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M4 12l2 0"></path><path d="M10 12l10 0"></path><path d="M17 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M4 18l11 0"></path><path d="M19 18l1 0"></path>', 10)
|
|
17
|
-
]));
|
|
18
|
-
}
|
|
19
|
-
const X = /* @__PURE__ */ g(K, [["render", W]]), Y = {}, Z = {
|
|
20
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
21
|
-
viewBox: "0 0 24 24",
|
|
22
|
-
fill: "none",
|
|
23
|
-
stroke: "currentColor",
|
|
24
|
-
"stroke-width": "2",
|
|
25
|
-
"stroke-linecap": "round",
|
|
26
|
-
"stroke-linejoin": "round",
|
|
27
|
-
class: "icon icon-tabler icons-tabler-outline icon-tabler-dots-vertical"
|
|
28
|
-
};
|
|
29
|
-
function ee(t, e, s, a, l, r) {
|
|
30
|
-
return o(), i("svg", Z, e[0] || (e[0] = [
|
|
31
|
-
n("path", {
|
|
32
|
-
stroke: "none",
|
|
33
|
-
d: "M0 0h24v24H0z",
|
|
34
|
-
fill: "none"
|
|
35
|
-
}, null, -1),
|
|
36
|
-
n("path", { d: "M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" }, null, -1),
|
|
37
|
-
n("path", { d: "M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" }, null, -1),
|
|
38
|
-
n("path", { d: "M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" }, null, -1)
|
|
39
|
-
]));
|
|
40
|
-
}
|
|
41
|
-
const te = /* @__PURE__ */ g(Y, [["render", ee]]), ne = {}, se = {
|
|
42
|
-
class: "flex-shrink-0 size-3.5",
|
|
43
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
44
|
-
viewBox: "0 0 24 24",
|
|
45
|
-
fill: "none",
|
|
46
|
-
stroke: "currentColor",
|
|
47
|
-
"stroke-width": "2",
|
|
48
|
-
"stroke-linecap": "round",
|
|
49
|
-
"stroke-linejoin": "round"
|
|
50
|
-
};
|
|
51
|
-
function le(t, e, s, a, l, r) {
|
|
52
|
-
return o(), i("svg", se, e[0] || (e[0] = [
|
|
53
|
-
S('<path d="M3 6h18"></path><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"></path><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"></path><line x1="10" x2="10" y1="11" y2="17"></line><line x1="14" x2="14" y1="11" y2="17"></line>', 5)
|
|
54
|
-
]));
|
|
55
|
-
}
|
|
56
|
-
const re = /* @__PURE__ */ g(ne, [["render", le]]), oe = {
|
|
57
|
-
props: {
|
|
58
|
-
height: { type: String, default: "16" },
|
|
59
|
-
width: { type: String, default: "12" },
|
|
60
|
-
color: { type: String, default: "black" }
|
|
61
|
-
}
|
|
62
|
-
}, ae = { style: { display: "none" } }, ie = ["height", "width", "fill"];
|
|
63
|
-
function de(t, e, s, a, l, r) {
|
|
64
|
-
return o(), i(x, null, [
|
|
65
|
-
(o(), i("svg", ae, e[0] || (e[0] = [
|
|
66
|
-
n("symbol", {
|
|
67
|
-
id: "icon-pencil",
|
|
68
|
-
viewBox: "0 0 32 32"
|
|
69
|
-
}, [
|
|
70
|
-
n("path", { d: "M27 0c2.761 0 5 2.239 5 5 0 1.126-0.372 2.164-1 3l-2 2-7-7 2-2c0.836-0.628 1.874-1 3-1zM2 23l-2 9 9-2 18.5-18.5-7-7-18.5 18.5zM22.362 11.362l-14 14-1.724-1.724 14-14 1.724 1.724z" })
|
|
71
|
-
], -1)
|
|
72
|
-
]))),
|
|
73
|
-
(o(), i("svg", {
|
|
74
|
-
height: s.height,
|
|
75
|
-
width: s.width,
|
|
76
|
-
fill: s.color
|
|
77
|
-
}, e[1] || (e[1] = [
|
|
78
|
-
n("use", { "xlink:href": "#icon-pencil" }, null, -1)
|
|
79
|
-
]), 8, ie))
|
|
80
|
-
], 64);
|
|
81
|
-
}
|
|
82
|
-
const ue = /* @__PURE__ */ g(oe, [["render", de]]), ce = {
|
|
83
|
-
components: {
|
|
84
|
-
IconMore: te,
|
|
85
|
-
IconDelete: re,
|
|
86
|
-
IconEdit: ue
|
|
87
|
-
},
|
|
88
|
-
emits: ["updateTable"],
|
|
89
|
-
props: { item: Object, table: String },
|
|
90
|
-
data() {
|
|
91
|
-
return {
|
|
92
|
-
formVisible: !1,
|
|
93
|
-
isDeleteConfirm: !1,
|
|
94
|
-
formValue: {},
|
|
95
|
-
top: 0,
|
|
96
|
-
left: 0
|
|
97
|
-
};
|
|
98
|
-
},
|
|
99
|
-
methods: {
|
|
100
|
-
openConfirm() {
|
|
101
|
-
this.isDeleteConfirm = !0, document.querySelector("body").click();
|
|
102
|
-
},
|
|
103
|
-
async getData() {
|
|
104
|
-
var t;
|
|
105
|
-
try {
|
|
106
|
-
const { data: e } = await k.get(
|
|
107
|
-
`/api/table/${this.table}/${(t = this.item) == null ? void 0 : t.id}`
|
|
108
|
-
);
|
|
109
|
-
this.formValue = e;
|
|
110
|
-
} catch (e) {
|
|
111
|
-
console.error(e);
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
doSomethingOnCancel() {
|
|
115
|
-
this.formVisible = !1;
|
|
116
|
-
},
|
|
117
|
-
async deleteElement() {
|
|
118
|
-
var t;
|
|
119
|
-
try {
|
|
120
|
-
k.delete(`/api/table/${this.table}/${(t = this.item) == null ? void 0 : t.id}`), this.$notify({
|
|
121
|
-
title: "Успішно!",
|
|
122
|
-
message: "Об`єкт успішно видалeно",
|
|
123
|
-
type: "success"
|
|
124
|
-
}), await this.$emit("update-table"), this.isDeleteConfirm = !1;
|
|
125
|
-
} catch {
|
|
126
|
-
this.$notify({
|
|
127
|
-
title: "Помилка!",
|
|
128
|
-
message: "Сталася помилка",
|
|
129
|
-
type: "error"
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}, pe = { class: "hs-dropdown [--placement:bottom-right] inline-flex" }, be = {
|
|
135
|
-
id: "hs-pro-dupc1",
|
|
136
|
-
type: "button",
|
|
137
|
-
class: "gap-x-2 p-2 rounded-lg hover:border-transparent focus:outline-none text-black hover:bg-gray-50"
|
|
138
|
-
}, he = { class: "pt-[7px] pb-[7px] flex flex-col items-start" }, me = { class: "p-4" }, ge = { class: "mt-4 flex justify-end gap-x-3" };
|
|
139
|
-
function fe(t, e, s, a, l, r) {
|
|
140
|
-
const h = c("IconMore"), u = c("IconEdit"), m = c("router-link"), f = c("IconDelete"), $ = c("VsPopover"), A = c("VsDialog");
|
|
141
|
-
return o(), i(x, null, [
|
|
142
|
-
n("div", pe, [
|
|
143
|
-
p($, {
|
|
144
|
-
trigger: "click",
|
|
145
|
-
placement: "left"
|
|
146
|
-
}, {
|
|
147
|
-
reference: y(() => [
|
|
148
|
-
n("button", be, [
|
|
149
|
-
p(h, {
|
|
150
|
-
height: "16",
|
|
151
|
-
width: "16"
|
|
152
|
-
})
|
|
153
|
-
])
|
|
154
|
-
]),
|
|
155
|
-
default: y(() => {
|
|
156
|
-
var _, C, M;
|
|
157
|
-
return [
|
|
158
|
-
n("div", he, [
|
|
159
|
-
p(m, {
|
|
160
|
-
to: `/edit?table=${(C = (_ = t.$route) == null ? void 0 : _.params) == null ? void 0 : C.catchAll}&id=${(M = s.item) == null ? void 0 : M.id}`,
|
|
161
|
-
class: "w-[100px] ml-[2px] flex items-center justify-center gap-x-3 rounded-lg text-[13px] text-gray-800"
|
|
162
|
-
}, {
|
|
163
|
-
default: y(() => [
|
|
164
|
-
p(u, { color: "#000" }),
|
|
165
|
-
e[4] || (e[4] = v(" Редагувати "))
|
|
166
|
-
]),
|
|
167
|
-
_: 1
|
|
168
|
-
}, 8, ["to"]),
|
|
169
|
-
e[6] || (e[6] = n("div", { class: "h-[1px] w-[80%] bg-gray-200 ml-auto mr-auto mt-[10px] mb-[10px]" }, null, -1)),
|
|
170
|
-
n("button", {
|
|
171
|
-
onClick: e[0] || (e[0] = L((...D) => r.openConfirm && r.openConfirm(...D), ["stop"])),
|
|
172
|
-
type: "button",
|
|
173
|
-
class: "w-[100px] flex items-center justify-center gap-x-3 rounded-lg text-[14px] text-red-500"
|
|
174
|
-
}, [
|
|
175
|
-
p(f),
|
|
176
|
-
e[5] || (e[5] = n("span", { class: "text-gray-800" }, "Видалити", -1))
|
|
177
|
-
])
|
|
178
|
-
])
|
|
179
|
-
];
|
|
180
|
-
}),
|
|
181
|
-
_: 1
|
|
182
|
-
})
|
|
183
|
-
]),
|
|
184
|
-
p(A, {
|
|
185
|
-
visible: l.isDeleteConfirm,
|
|
186
|
-
"onUpdate:visible": e[3] || (e[3] = (_) => l.isDeleteConfirm = _),
|
|
187
|
-
title: "Ви впевнені?"
|
|
188
|
-
}, {
|
|
189
|
-
default: y(() => [
|
|
190
|
-
n("div", me, [
|
|
191
|
-
e[7] || (e[7] = n("p", { class: "mt-1 text-gray-500 dark:text-neutral-500" }, " Ви впевнені, що хочете видалити цей об'єкт? ", -1)),
|
|
192
|
-
n("div", ge, [
|
|
193
|
-
n("button", {
|
|
194
|
-
type: "button",
|
|
195
|
-
class: "py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-gray-50 dark:bg-neutral-800 dark:border-neutral-700 dark:text-neutral-300 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",
|
|
196
|
-
onClick: e[1] || (e[1] = (_) => l.isDeleteConfirm = !1)
|
|
197
|
-
}, " Скасувати "),
|
|
198
|
-
n("button", {
|
|
199
|
-
type: "button",
|
|
200
|
-
class: "py-2 px-3 inline-flex items-center gap-x-2 text-sm font-semibold rounded-lg border border-transparent bg-red-500 text-white hover:bg-red-600 disabled:opacity-50 disabled:pointer-events-none",
|
|
201
|
-
onClick: e[2] || (e[2] = (..._) => r.deleteElement && r.deleteElement(..._))
|
|
202
|
-
}, " Так, я впевнена/ий ")
|
|
203
|
-
])
|
|
204
|
-
])
|
|
205
|
-
]),
|
|
206
|
-
_: 1
|
|
207
|
-
}, 8, ["visible"])
|
|
208
|
-
], 64);
|
|
209
|
-
}
|
|
210
|
-
const xe = /* @__PURE__ */ g(ce, [["render", fe]]), ye = {}, _e = {
|
|
211
|
-
class: "flex-shrink-0 mt-0.5 size-3.5",
|
|
212
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
213
|
-
viewBox: "0 0 24 24",
|
|
214
|
-
fill: "none",
|
|
215
|
-
stroke: "currentColor",
|
|
216
|
-
"stroke-width": "2",
|
|
217
|
-
"stroke-linecap": "round",
|
|
218
|
-
"stroke-linejoin": "round"
|
|
219
|
-
};
|
|
220
|
-
function ke(t, e, s, a, l, r) {
|
|
221
|
-
return o(), i("svg", _e, e[0] || (e[0] = [
|
|
222
|
-
n("path", { d: "m3 16 4 4 4-4" }, null, -1),
|
|
223
|
-
n("path", { d: "M7 20V4" }, null, -1),
|
|
224
|
-
n("path", { d: "m21 8-4-4-4 4" }, null, -1),
|
|
225
|
-
n("path", { d: "M17 4v16" }, null, -1)
|
|
226
|
-
]));
|
|
227
|
-
}
|
|
228
|
-
const ve = /* @__PURE__ */ g(ye, [["render", ke]]), we = {
|
|
229
|
-
props: {
|
|
230
|
-
columns: { type: Object, default: () => {
|
|
231
|
-
} },
|
|
232
|
-
table: { type: String, default: () => "" }
|
|
233
|
-
},
|
|
234
|
-
data() {
|
|
235
|
-
return {
|
|
236
|
-
tableFormats: ["json", "csv", "xlsx"],
|
|
237
|
-
format: "",
|
|
238
|
-
cols: []
|
|
239
|
-
};
|
|
240
|
-
},
|
|
241
|
-
methods: {
|
|
242
|
-
async exportTable() {
|
|
243
|
-
try {
|
|
244
|
-
const t = await k.get("/api/export", {
|
|
245
|
-
params: {
|
|
246
|
-
table: this.table,
|
|
247
|
-
format: this.format,
|
|
248
|
-
cols: this.cols.join(",")
|
|
249
|
-
},
|
|
250
|
-
responseType: "blob"
|
|
251
|
-
}), e = new Blob([t.data], {
|
|
252
|
-
type: "application/octet-stream"
|
|
253
|
-
}), s = window.URL.createObjectURL(e), a = document.createElement("a");
|
|
254
|
-
a.href = s, a.setAttribute(
|
|
255
|
-
"download",
|
|
256
|
-
`${this.table.split(".")[0]}.${this.format}`
|
|
257
|
-
), document.body.appendChild(a), a.click(), document.body.removeChild(a), window.URL.revokeObjectURL(s), this.$notify({
|
|
258
|
-
type: "success",
|
|
259
|
-
title: "Експорт",
|
|
260
|
-
message: "Файл успішно експортовано!"
|
|
261
|
-
});
|
|
262
|
-
} catch (t) {
|
|
263
|
-
console.error("Ошибка при экспорте файла:", t), this.$notify({
|
|
264
|
-
type: "error",
|
|
265
|
-
title: "Помилка",
|
|
266
|
-
message: "Не вдалося експортувати файл."
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
},
|
|
270
|
-
selectFormat(t) {
|
|
271
|
-
this.format = t;
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
}, $e = { class: "p-4" }, Ce = { class: "pb-5 mb-5 last:pb-0 last:mb-0 border-b last:border-b-0 border-gray-200 dark:border-neutral-700" }, Me = { class: "mt-2 flex row flex-wrap gap-y-[5px] gap-x-[10px]" }, Te = { class: "pb-5 mb-5 last:pb-0 last:mb-0 border-b last:border-b-0 border-gray-200 dark:border-neutral-700" }, De = { class: "mt-2 space-y-2" }, Ve = ["id", "onChange"], Fe = ["for"], Ae = { class: "pb-5 last:pb-0 last:mb-0 border-b last:border-b-0 border-gray-200 dark:border-neutral-700" }, Ie = { class: "text-center" };
|
|
275
|
-
function Ee(t, e, s, a, l, r) {
|
|
276
|
-
const h = c("VsCheckbox");
|
|
277
|
-
return o(), i(x, null, [
|
|
278
|
-
e[4] || (e[4] = n("div", { class: "dark:border-neutral-700" }, null, -1)),
|
|
279
|
-
n("div", $e, [
|
|
280
|
-
n("div", Ce, [
|
|
281
|
-
e[2] || (e[2] = n("label", { class: "text-sm text-gray-500 dark:text-neutral-500" }, " Виберіть стовпці таблиці для експорту: ", -1)),
|
|
282
|
-
n("div", Me, [
|
|
283
|
-
(o(!0), i(x, null, w(s.columns, (u, m) => (o(), i("div", {
|
|
284
|
-
class: "flex items-center",
|
|
285
|
-
key: m,
|
|
286
|
-
style: { width: "calc((100% - 10px) / 2)" }
|
|
287
|
-
}, [
|
|
288
|
-
p(h, {
|
|
289
|
-
class: "py-0 shrink-0 border-gray-300 rounded text-blue-600 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-500 dark:checked:bg-blue-500 dark:checked:border-blue-500 dark:focus:ring-offset-gray-800",
|
|
290
|
-
modelValue: l.cols,
|
|
291
|
-
"onUpdate:modelValue": e[0] || (e[0] = (f) => l.cols = f),
|
|
292
|
-
value: u == null ? void 0 : u.name,
|
|
293
|
-
label: u == null ? void 0 : u.ua
|
|
294
|
-
}, null, 8, ["modelValue", "value", "label"])
|
|
295
|
-
]))), 128))
|
|
296
|
-
])
|
|
297
|
-
]),
|
|
298
|
-
n("div", Te, [
|
|
299
|
-
e[3] || (e[3] = n("label", { class: "text-sm text-gray-500 dark:text-neutral-500" }, " Виберіть формат таблиці: ", -1)),
|
|
300
|
-
n("div", De, [
|
|
301
|
-
(o(!0), i(x, null, w(l.tableFormats, (u, m) => (o(), i("div", {
|
|
302
|
-
class: "flex items-center",
|
|
303
|
-
key: m
|
|
304
|
-
}, [
|
|
305
|
-
n("input", {
|
|
306
|
-
type: "radio",
|
|
307
|
-
name: "hs-pro-duecmfm",
|
|
308
|
-
class: "shrink-0 border-gray-300 rounded-full text-blue-600 focus:ring-blue-500 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-800 dark:border-neutral-500 dark:checked:bg-blue-500 dark:checked:border-blue-500 dark:focus:ring-offset-gray-800",
|
|
309
|
-
id: u,
|
|
310
|
-
onChange: (f) => r.selectFormat(u)
|
|
311
|
-
}, null, 40, Ve),
|
|
312
|
-
n("label", {
|
|
313
|
-
for: u,
|
|
314
|
-
class: "text-sm text-gray-800 ms-3 dark:text-neutral-400"
|
|
315
|
-
}, " Формат " + T(u), 9, Fe)
|
|
316
|
-
]))), 128))
|
|
317
|
-
])
|
|
318
|
-
]),
|
|
319
|
-
n("div", Ae, [
|
|
320
|
-
n("div", Ie, [
|
|
321
|
-
n("button", {
|
|
322
|
-
type: "button",
|
|
323
|
-
class: "p-2 inline-flex items-center gap-x-2 text-xs font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:ring-2 focus:ring-blue-500",
|
|
324
|
-
onClick: e[1] || (e[1] = (...u) => r.exportTable && r.exportTable(...u))
|
|
325
|
-
}, " Завантажити таблицю ")
|
|
326
|
-
])
|
|
327
|
-
])
|
|
328
|
-
])
|
|
329
|
-
], 64);
|
|
330
|
-
}
|
|
331
|
-
const Se = /* @__PURE__ */ g(we, [["render", Ee]]), ze = {
|
|
332
|
-
components: { IconExport: ve, AdminTableExportForm: Se },
|
|
333
|
-
props: { table: String, columns: Array },
|
|
334
|
-
data() {
|
|
335
|
-
return {
|
|
336
|
-
isOpen: !1
|
|
337
|
-
};
|
|
338
|
-
}
|
|
339
|
-
};
|
|
340
|
-
function je(t, e, s, a, l, r) {
|
|
341
|
-
const h = c("IconExport"), u = c("AdminTableExportForm"), m = c("VsDialog");
|
|
342
|
-
return o(), i(x, null, [
|
|
343
|
-
n("button", {
|
|
344
|
-
onClick: e[0] || (e[0] = (f) => l.isOpen = !0),
|
|
345
|
-
class: "py-2 px-3 relative flex items-center gap-x-2 text-sm border focus:outline-none border-gray-100 font-medium rounded-lg text-gray-800 hover:border-gray-100 focus:border-gray-100 hover:bg-gray-50 shadow-sm duration-300"
|
|
346
|
-
}, [
|
|
347
|
-
p(h, {
|
|
348
|
-
height: "16",
|
|
349
|
-
width: "16"
|
|
350
|
-
}),
|
|
351
|
-
e[2] || (e[2] = v(" Експорт "))
|
|
352
|
-
]),
|
|
353
|
-
p(m, {
|
|
354
|
-
visible: l.isOpen,
|
|
355
|
-
"onUpdate:visible": e[1] || (e[1] = (f) => l.isOpen = f),
|
|
356
|
-
title: "Експорт таблиці"
|
|
357
|
-
}, {
|
|
358
|
-
default: y(() => [
|
|
359
|
-
p(u, {
|
|
360
|
-
table: s.table,
|
|
361
|
-
columns: s.columns
|
|
362
|
-
}, null, 8, ["table", "columns"])
|
|
363
|
-
]),
|
|
364
|
-
_: 1
|
|
365
|
-
}, 8, ["visible"])
|
|
366
|
-
], 64);
|
|
367
|
-
}
|
|
368
|
-
const Pe = /* @__PURE__ */ g(ze, [["render", je]]), Be = {}, Ue = {
|
|
369
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
370
|
-
viewBox: "0 0 24 24",
|
|
371
|
-
fill: "none",
|
|
372
|
-
stroke: "currentColor",
|
|
373
|
-
"stroke-width": "2",
|
|
374
|
-
"stroke-linecap": "round",
|
|
375
|
-
"stroke-linejoin": "round",
|
|
376
|
-
class: "icon icon-tabler icons-tabler-outline icon-tabler-columns"
|
|
377
|
-
};
|
|
378
|
-
function He(t, e, s, a, l, r) {
|
|
379
|
-
return o(), i("svg", Ue, e[0] || (e[0] = [
|
|
380
|
-
S('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M4 6l5.5 0"></path><path d="M4 10l5.5 0"></path><path d="M4 14l5.5 0"></path><path d="M4 18l5.5 0"></path><path d="M14.5 6l5.5 0"></path><path d="M14.5 10l5.5 0"></path><path d="M14.5 14l5.5 0"></path><path d="M14.5 18l5.5 0"></path>', 9)
|
|
381
|
-
]));
|
|
382
|
-
}
|
|
383
|
-
const Le = /* @__PURE__ */ g(Be, [["render", He]]), Oe = {
|
|
384
|
-
props: { column: Object },
|
|
385
|
-
emits: ["update-column"],
|
|
386
|
-
data() {
|
|
387
|
-
return {
|
|
388
|
-
value: !1
|
|
389
|
-
};
|
|
390
|
-
},
|
|
391
|
-
watch: {
|
|
392
|
-
value(t) {
|
|
393
|
-
this.$emit("update-column", { ...this.column, hidden: !t });
|
|
394
|
-
}
|
|
395
|
-
},
|
|
396
|
-
mounted() {
|
|
397
|
-
var t;
|
|
398
|
-
((t = this.column) == null ? void 0 : t.hidden) !== !0 && (this.value = !0);
|
|
399
|
-
}
|
|
400
|
-
}, Ne = { class: "flex w-full gap-[8px] items-centr" };
|
|
401
|
-
function qe(t, e, s, a, l, r) {
|
|
402
|
-
var h, u;
|
|
403
|
-
return o(), i("label", Ne, [
|
|
404
|
-
E(n("input", {
|
|
405
|
-
"onUpdate:modelValue": e[0] || (e[0] = (m) => l.value = m),
|
|
406
|
-
type: "checkbox"
|
|
407
|
-
}, null, 512), [
|
|
408
|
-
[O, l.value]
|
|
409
|
-
]),
|
|
410
|
-
v(" " + T(((h = s.column) == null ? void 0 : h.ua) || ((u = s.column) == null ? void 0 : u.title)), 1)
|
|
411
|
-
]);
|
|
412
|
-
}
|
|
413
|
-
const Re = /* @__PURE__ */ g(Oe, [["render", qe]]), Ge = {
|
|
414
|
-
components: { IconColumns: Le, AdminTableColumnsHiddenItem: Re },
|
|
415
|
-
emits: ["update-columns"],
|
|
416
|
-
props: { columns: Array },
|
|
417
|
-
methods: {
|
|
418
|
-
updateColumn(t) {
|
|
419
|
-
const e = this.columns.findIndex((a) => (a == null ? void 0 : a.name) === (t == null ? void 0 : t.name)), s = this.columns;
|
|
420
|
-
s[e] = t, this.$emit("update-columns", [...s]);
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
}, Je = { class: "py-2 px-3 flex items-center gap-x-2 text-sm border focus:outline-none border-gray-100 font-medium rounded-lg text-gray-800 hover:border-gray-100 focus:border-gray-100 hover:bg-gray-50 shadow-sm duration-300" }, Ke = { class: "flex flex-col gap-[3px] h-[400px] w-[300px] overflow-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500" };
|
|
424
|
-
function Qe(t, e, s, a, l, r) {
|
|
425
|
-
const h = c("IconColumns"), u = c("AdminTableColumnsHiddenItem"), m = c("VsPopover");
|
|
426
|
-
return o(), F(m, {
|
|
427
|
-
trigger: "click",
|
|
428
|
-
placement: "bottom"
|
|
429
|
-
}, {
|
|
430
|
-
reference: y(() => [
|
|
431
|
-
n("button", Je, [
|
|
432
|
-
p(h, {
|
|
433
|
-
height: "20",
|
|
434
|
-
width: "16"
|
|
435
|
-
})
|
|
436
|
-
])
|
|
437
|
-
]),
|
|
438
|
-
default: y(() => [
|
|
439
|
-
n("div", null, [
|
|
440
|
-
e[0] || (e[0] = n("h2", { class: "text-sm mb-[8px]" }, "Оберіть колонки, щоб приховати", -1)),
|
|
441
|
-
n("ul", Ke, [
|
|
442
|
-
(o(!0), i(x, null, w(s.columns, (f, $) => (o(), i("li", { key: $ }, [
|
|
443
|
-
p(u, {
|
|
444
|
-
column: f,
|
|
445
|
-
onUpdateColumn: r.updateColumn
|
|
446
|
-
}, null, 8, ["column", "onUpdateColumn"])
|
|
447
|
-
]))), 128))
|
|
448
|
-
])
|
|
449
|
-
])
|
|
450
|
-
]),
|
|
451
|
-
_: 1
|
|
452
|
-
});
|
|
453
|
-
}
|
|
454
|
-
const We = /* @__PURE__ */ g(Ge, [["render", Qe]]), Xe = {
|
|
455
|
-
props: { table: String },
|
|
456
|
-
components: {
|
|
457
|
-
IconFilter: X,
|
|
458
|
-
AdminTableControl: xe,
|
|
459
|
-
AdminTableExport: Pe,
|
|
460
|
-
AdminTableColumnsHidden: We
|
|
461
|
-
},
|
|
462
|
-
data() {
|
|
463
|
-
return {
|
|
464
|
-
tableData: {},
|
|
465
|
-
isFilters: !1,
|
|
466
|
-
filterScheme: [],
|
|
467
|
-
page: 1,
|
|
468
|
-
searchValue: "",
|
|
469
|
-
limit: 20,
|
|
470
|
-
filters: null
|
|
471
|
-
};
|
|
472
|
-
},
|
|
473
|
-
mounted() {
|
|
474
|
-
var t, e;
|
|
475
|
-
this.page = ((e = (t = this.$route) == null ? void 0 : t.query) == null ? void 0 : e.page) || 1, this.getTableData(), this.getFilters();
|
|
476
|
-
},
|
|
477
|
-
computed: {
|
|
478
|
-
defaultPage() {
|
|
479
|
-
var t, e;
|
|
480
|
-
return ((e = (t = this.$route) == null ? void 0 : t.query) == null ? void 0 : e.page) || 1;
|
|
481
|
-
},
|
|
482
|
-
getFilterScheme() {
|
|
483
|
-
var t;
|
|
484
|
-
return (t = this.tableData) == null ? void 0 : t.filters;
|
|
485
|
-
},
|
|
486
|
-
columns() {
|
|
487
|
-
var t, e;
|
|
488
|
-
return (e = (t = this.tableData) == null ? void 0 : t.columns) == null ? void 0 : e.filter((s) => (s == null ? void 0 : s.hidden) !== !0);
|
|
489
|
-
}
|
|
490
|
-
},
|
|
491
|
-
watch: {
|
|
492
|
-
table() {
|
|
493
|
-
this.getTableData();
|
|
494
|
-
},
|
|
495
|
-
searchValue() {
|
|
496
|
-
this.getTableData();
|
|
497
|
-
},
|
|
498
|
-
$route: {
|
|
499
|
-
handler(t, e) {
|
|
500
|
-
var s, a;
|
|
501
|
-
((s = t == null ? void 0 : t.params) == null ? void 0 : s.catchAll) !== ((a = e == null ? void 0 : e.params) == null ? void 0 : a.catchAll) && (this.filterScheme = null, this.getFilters());
|
|
502
|
-
},
|
|
503
|
-
deep: !0
|
|
504
|
-
}
|
|
505
|
-
},
|
|
506
|
-
methods: {
|
|
507
|
-
async getTableData() {
|
|
508
|
-
try {
|
|
509
|
-
const { data: t } = await k.get(`/api/template/table/${this.table}`), e = await k.get(`/api/table-data/${this.table}`, {
|
|
510
|
-
params: {
|
|
511
|
-
page: this.page,
|
|
512
|
-
search: this.searchValue || null,
|
|
513
|
-
limit: this.limit,
|
|
514
|
-
filter: this.filters || null
|
|
515
|
-
}
|
|
516
|
-
});
|
|
517
|
-
this.tableData = {
|
|
518
|
-
...this.tableData,
|
|
519
|
-
...t,
|
|
520
|
-
...(e == null ? void 0 : e.data) || {}
|
|
521
|
-
};
|
|
522
|
-
} catch {
|
|
523
|
-
}
|
|
524
|
-
},
|
|
525
|
-
async getFilters() {
|
|
526
|
-
var t;
|
|
527
|
-
try {
|
|
528
|
-
const { data: e } = await k.get(`/api/table-filter/${this.table}`);
|
|
529
|
-
this.filterScheme = (t = e == null ? void 0 : e.list) == null ? void 0 : t.map((s) => ({
|
|
530
|
-
...s,
|
|
531
|
-
label: (s == null ? void 0 : s.label) || (s == null ? void 0 : s.ua)
|
|
532
|
-
}));
|
|
533
|
-
} catch {
|
|
534
|
-
}
|
|
535
|
-
},
|
|
536
|
-
async handlePageChange(t) {
|
|
537
|
-
const e = this.$route.query;
|
|
538
|
-
this.page = t, !(!(e != null && e.page) && t === 1 || e.page === t) && (await this.$router.replace({ query: { ...e, page: t } }), await this.getTableData());
|
|
539
|
-
},
|
|
540
|
-
async changeLimit(t) {
|
|
541
|
-
this.limit = await t, this.defaultPage = 1, await this.getTableData();
|
|
542
|
-
},
|
|
543
|
-
closeFilter({ target: t }) {
|
|
544
|
-
this.isFilters && t.classList.contains("filter-container") && (this.isFilters = !1);
|
|
545
|
-
},
|
|
546
|
-
async filterChange({ url: t }) {
|
|
547
|
-
this.filters = t, this.page = 1, await this.getTableData();
|
|
548
|
-
}
|
|
549
|
-
}
|
|
550
|
-
}, Ye = { class: "w-[calc(100vw - 320px)]" }, Ze = { class: "h-[58px] bg-gray-50 flex items-center justify-between px-[30px]" }, et = { class: "text-xl font-medium" }, tt = {
|
|
551
|
-
style: { height: "calc(100vh - 60px)", width: "calc(100vw - 260px)" },
|
|
552
|
-
class: "bg-gray-50 p-[20px] flex"
|
|
553
|
-
}, nt = { class: "bg-white w-full rounded-xl border p-[20px]" }, st = { class: "flex sm:grid sm:grid-cols-2 gap-x-2 sm:gap-x-5 mb-[10px]" }, lt = { class: "flex gap-[6px] ml-auto" }, rt = { class: "space-y-5 flex items-start w-full justify-start" }, ot = {
|
|
554
|
-
style: { height: "calc(100vh - 250px)" },
|
|
555
|
-
class: "overflow-x-auto w-full [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"
|
|
556
|
-
}, at = { class: "inline-block align-middle" }, it = { class: "divide-y divide-gray-200 dark:divide-neutral-700 relative" }, dt = { class: "sticky top-0 bg-white z-[1]" }, ut = { class: "border-t border-stone-200" }, ct = { class: "pe-4 py-3 gap-x-1 text-sm font-medium text-gray-800 dark:text-neutral-200" }, pt = { class: "divide-y divide-gray-200 dark:divide-neutral-700" }, bt = { class: "size-px min-w-[200px] whitespace-nowrap text-start pe-4 py-3 text-sm text-gray-600" }, ht = { class: "text-center sticky right-0 bg-white" }, mt = { class: "p-[20px] flex justify-end w-full" }, gt = { class: "filter-content h-screen bg-white w-[400px] p-[20px] pt-[10px] overflow-x-auto bg-[rgba(0,0,0,0.5)] [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar:horizontal]:h-[8px] [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500" };
|
|
557
|
-
function ft(t, e, s, a, l, r) {
|
|
558
|
-
var C, M, D, z, j, P, B;
|
|
559
|
-
const h = c("router-link"), u = c("AdminTableColumnsHidden"), m = c("AdminTableExport"), f = c("IconFilter"), $ = c("AdminTableControl"), A = c("VsPagination"), _ = c("VsFilter");
|
|
560
|
-
return o(), i(x, null, [
|
|
561
|
-
n("div", Ye, [
|
|
562
|
-
n("div", Ze, [
|
|
563
|
-
n("h2", et, T((C = l.tableData) == null ? void 0 : C.title), 1),
|
|
564
|
-
p(h, {
|
|
565
|
-
to: `/add?table=${(D = (M = t.$route) == null ? void 0 : M.params) == null ? void 0 : D.catchAll}`,
|
|
566
|
-
class: "py-2 px-3 flex items-center gap-x-2 text-sm text-white font-medium rounded-lg bg-blue-500 text-gray-800 shadow-sm hover:bg-blue-700 hover:text-white duration-300"
|
|
567
|
-
}, {
|
|
568
|
-
default: y(() => e[5] || (e[5] = [
|
|
569
|
-
v(" Додати ")
|
|
570
|
-
])),
|
|
571
|
-
_: 1
|
|
572
|
-
}, 8, ["to"])
|
|
573
|
-
]),
|
|
574
|
-
n("div", tt, [
|
|
575
|
-
n("div", nt, [
|
|
576
|
-
n("div", st, [
|
|
577
|
-
E(n("input", {
|
|
578
|
-
"onUpdate:modelValue": e[0] || (e[0] = (d) => l.searchValue = d),
|
|
579
|
-
class: "py-2 pl-[15px] h-[38px] w-[400px] block w-full border rounded-lg text-sm focus:border-blue-600 focus:border-[2px] outline-none",
|
|
580
|
-
placeholder: "Пошук..."
|
|
581
|
-
}, null, 512), [
|
|
582
|
-
[N, l.searchValue]
|
|
583
|
-
]),
|
|
584
|
-
n("div", lt, [
|
|
585
|
-
p(u, {
|
|
586
|
-
columns: (z = l.tableData) == null ? void 0 : z.columns,
|
|
587
|
-
onUpdateColumns: e[1] || (e[1] = (d) => l.tableData.columns = d)
|
|
588
|
-
}, null, 8, ["columns"]),
|
|
589
|
-
p(m, {
|
|
590
|
-
table: s.table,
|
|
591
|
-
columns: (j = l.tableData) == null ? void 0 : j.columns
|
|
592
|
-
}, null, 8, ["table", "columns"]),
|
|
593
|
-
n("button", {
|
|
594
|
-
onClick: e[2] || (e[2] = (d) => l.isFilters = !l.isFilters),
|
|
595
|
-
class: "py-2 px-3 flex items-center gap-x-2 text-sm border focus:outline-none border-gray-100 font-medium rounded-lg text-gray-800 hover:border-gray-100 focus:border-gray-100 hover:bg-gray-50 shadow-sm duration-300"
|
|
596
|
-
}, [
|
|
597
|
-
p(f, {
|
|
598
|
-
height: "16",
|
|
599
|
-
width: "16"
|
|
600
|
-
}),
|
|
601
|
-
e[6] || (e[6] = v(" Фільтри "))
|
|
602
|
-
])
|
|
603
|
-
])
|
|
604
|
-
]),
|
|
605
|
-
n("div", rt, [
|
|
606
|
-
n("div", ot, [
|
|
607
|
-
n("div", at, [
|
|
608
|
-
n("table", it, [
|
|
609
|
-
n("thead", dt, [
|
|
610
|
-
n("tr", ut, [
|
|
611
|
-
(o(!0), i(x, null, w(r.columns, (d) => (o(), i("th", {
|
|
612
|
-
class: "min-w-[200px] text-start",
|
|
613
|
-
key: d.name
|
|
614
|
-
}, [
|
|
615
|
-
n("div", ct, T((d == null ? void 0 : d.ua) || d.name), 1)
|
|
616
|
-
]))), 128)),
|
|
617
|
-
e[7] || (e[7] = n("th", { class: "min-w-[150px] sticky right-0 top-0 bg-white z-[10]" }, null, -1))
|
|
618
|
-
])
|
|
619
|
-
]),
|
|
620
|
-
n("tbody", pt, [
|
|
621
|
-
(o(!0), i(x, null, w((P = l.tableData) == null ? void 0 : P.rows, (d, V) => {
|
|
622
|
-
var U;
|
|
623
|
-
return o(), i("tr", { key: V }, [
|
|
624
|
-
n("td", bt, [
|
|
625
|
-
p(h, {
|
|
626
|
-
to: `/card/${s.table}/${d == null ? void 0 : d.id}`,
|
|
627
|
-
class: "text-sm text-green-600 decoration-2 hover:underline font-medium focus:outline-none focus:underline hover:text-green-600"
|
|
628
|
-
}, {
|
|
629
|
-
default: y(() => {
|
|
630
|
-
var b;
|
|
631
|
-
return [
|
|
632
|
-
v(T(d == null ? void 0 : d[(b = r.columns[0]) == null ? void 0 : b.name]), 1)
|
|
633
|
-
];
|
|
634
|
-
}),
|
|
635
|
-
_: 2
|
|
636
|
-
}, 1032, ["to"])
|
|
637
|
-
]),
|
|
638
|
-
(o(!0), i(x, null, w((U = r.columns) == null ? void 0 : U.filter(
|
|
639
|
-
(b) => (b == null ? void 0 : b.name) !== "name"
|
|
640
|
-
), (b) => {
|
|
641
|
-
var H;
|
|
642
|
-
return o(), i("td", {
|
|
643
|
-
class: "size-px min-w-[200px] whitespace-nowrap text-start pe-4 py-3 text-sm text-gray-600",
|
|
644
|
-
key: b.name
|
|
645
|
-
}, [
|
|
646
|
-
(o(), F(q(
|
|
647
|
-
t.$componentsConfig[`table-format-${((H = b == null ? void 0 : b.format) == null ? void 0 : H.toLowerCase()) || t.text}`]
|
|
648
|
-
), {
|
|
649
|
-
name: b == null ? void 0 : b.name,
|
|
650
|
-
data: d,
|
|
651
|
-
value: d == null ? void 0 : d[b == null ? void 0 : b.name]
|
|
652
|
-
}, null, 8, ["name", "data", "value"]))
|
|
653
|
-
]);
|
|
654
|
-
}), 128)),
|
|
655
|
-
n("td", ht, [
|
|
656
|
-
p($, {
|
|
657
|
-
item: d,
|
|
658
|
-
table: s.table,
|
|
659
|
-
onUpdateTable: r.getTableData
|
|
660
|
-
}, null, 8, ["item", "table", "onUpdateTable"])
|
|
661
|
-
])
|
|
662
|
-
]);
|
|
663
|
-
}), 128))
|
|
664
|
-
])
|
|
665
|
-
])
|
|
666
|
-
])
|
|
667
|
-
])
|
|
668
|
-
]),
|
|
669
|
-
n("div", mt, [
|
|
670
|
-
p(A, {
|
|
671
|
-
goTo: !1,
|
|
672
|
-
class: "justify-end",
|
|
673
|
-
style: { width: "calc(50% + 100px)" },
|
|
674
|
-
"default-page": r.defaultPage,
|
|
675
|
-
total: ((B = l.tableData) == null ? void 0 : B.total) || 0,
|
|
676
|
-
pageSize: l.limit,
|
|
677
|
-
onPageChange: r.handlePageChange,
|
|
678
|
-
pageSizes: [10, 16, 20],
|
|
679
|
-
onPageSizeChange: r.changeLimit
|
|
680
|
-
}, null, 8, ["default-page", "total", "pageSize", "onPageChange", "onPageSizeChange"])
|
|
681
|
-
])
|
|
682
|
-
])
|
|
683
|
-
])
|
|
684
|
-
]),
|
|
685
|
-
p(R, { name: "fade" }, {
|
|
686
|
-
default: y(() => {
|
|
687
|
-
var d;
|
|
688
|
-
return [
|
|
689
|
-
E(n("div", {
|
|
690
|
-
onClick: e[4] || (e[4] = (...V) => r.closeFilter && r.closeFilter(...V)),
|
|
691
|
-
style: { height: "100vh" },
|
|
692
|
-
class: "fixed filter-container top-0 flex justify-end items-center z-[2] right-0 left-0 bottom-0 bg-[rgba(0,0,0,0.5)]"
|
|
693
|
-
}, [
|
|
694
|
-
n("div", gt, [
|
|
695
|
-
(d = l.filterScheme) != null && d.length ? (o(), F(_, {
|
|
696
|
-
key: 0,
|
|
697
|
-
ref: "filter",
|
|
698
|
-
scheme: l.filterScheme,
|
|
699
|
-
layout: "default",
|
|
700
|
-
"apply-vue-router": "",
|
|
701
|
-
history: "",
|
|
702
|
-
name: "filter",
|
|
703
|
-
onFilterChange: r.filterChange,
|
|
704
|
-
closeFilterBtn: !0,
|
|
705
|
-
onFilterClose: e[3] || (e[3] = (V) => l.isFilters = !1)
|
|
706
|
-
}, null, 8, ["scheme", "onFilterChange"])) : G("", !0)
|
|
707
|
-
])
|
|
708
|
-
], 512), [
|
|
709
|
-
[J, l.isFilters]
|
|
710
|
-
])
|
|
711
|
-
];
|
|
712
|
-
}),
|
|
713
|
-
_: 1
|
|
714
|
-
})
|
|
715
|
-
], 64);
|
|
716
|
-
}
|
|
717
|
-
const xt = /* @__PURE__ */ g(Xe, [["render", ft]]), yt = {
|
|
718
|
-
components: { AdminTable: xt },
|
|
719
|
-
data() {
|
|
720
|
-
return {
|
|
721
|
-
table: !1,
|
|
722
|
-
interface: ""
|
|
723
|
-
};
|
|
724
|
-
},
|
|
725
|
-
watch: {
|
|
726
|
-
$route: {
|
|
727
|
-
async handler() {
|
|
728
|
-
var t;
|
|
729
|
-
(t = I) != null && t.value || await this.getMenu(), await this.checkPageType();
|
|
730
|
-
},
|
|
731
|
-
deep: !0
|
|
732
|
-
}
|
|
733
|
-
},
|
|
734
|
-
async mounted() {
|
|
735
|
-
await this.checkPageType();
|
|
736
|
-
},
|
|
737
|
-
methods: {
|
|
738
|
-
flattenMenu(t) {
|
|
739
|
-
const e = [];
|
|
740
|
-
return t.forEach((s) => {
|
|
741
|
-
s.menu ? e.push(...this.flattenMenu(s.menu)) : e.push(s);
|
|
742
|
-
}), e;
|
|
743
|
-
},
|
|
744
|
-
async getMenu() {
|
|
745
|
-
try {
|
|
746
|
-
const { data: t } = await k.get("/api/user-menu");
|
|
747
|
-
I.value = t;
|
|
748
|
-
} catch {
|
|
749
|
-
}
|
|
750
|
-
},
|
|
751
|
-
async checkPageType() {
|
|
752
|
-
const t = this.flattenMenu(I.value);
|
|
753
|
-
t != null && t.length || this.$router.replace("/404");
|
|
754
|
-
const e = t == null ? void 0 : t.find((a) => {
|
|
755
|
-
var l, r;
|
|
756
|
-
return (a == null ? void 0 : a.path) == ((r = (l = this.$route) == null ? void 0 : l.params) == null ? void 0 : r.catchAll);
|
|
757
|
-
});
|
|
758
|
-
e || this.$router.replace("/404");
|
|
759
|
-
const s = e == null ? void 0 : e.table;
|
|
760
|
-
this.table = s || !1, !s && this.getInterface();
|
|
761
|
-
},
|
|
762
|
-
async getInterface() {
|
|
763
|
-
var t, e;
|
|
764
|
-
try {
|
|
765
|
-
const { data: s } = await k.get(
|
|
766
|
-
`/api/template/interface/${((e = (t = this.$route) == null ? void 0 : t.params) == null ? void 0 : e.catchAll) || ""}`
|
|
767
|
-
);
|
|
768
|
-
this.interface = s || "";
|
|
769
|
-
} catch {
|
|
770
|
-
this.interface = "";
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
}
|
|
774
|
-
}, _t = {
|
|
775
|
-
key: 1,
|
|
776
|
-
class: "w-full"
|
|
777
|
-
}, kt = ["innerHTML"];
|
|
778
|
-
function vt(t, e, s, a, l, r) {
|
|
779
|
-
const h = c("AdminTable");
|
|
780
|
-
return l.table ? (o(), F(h, {
|
|
781
|
-
key: 0,
|
|
782
|
-
table: l.table
|
|
783
|
-
}, null, 8, ["table"])) : (o(), i("div", _t, [
|
|
784
|
-
n("div", { innerHTML: l.interface }, null, 8, kt)
|
|
785
|
-
]));
|
|
786
|
-
}
|
|
787
|
-
const Mt = /* @__PURE__ */ g(yt, [["render", vt]]);
|
|
788
|
-
export {
|
|
789
|
-
Mt as default
|
|
790
|
-
};
|