@opengis/admin
Version:
This project Softpro Admin
127 lines (126 loc) • 4.95 kB
JavaScript
import { _ as d, f as m, u as f, s as g } from "./import-file-BgK4s__E.js";
import { resolveComponent as b, createElementBlock as x, openBlock as h, createElementVNode as i, normalizeClass as y, normalizeStyle as p, createBlock as w, createCommentVNode as v } from "vue";
const $ = {
data() {
return {
formValues: {},
scheme: null,
table: "",
token: "",
api: "",
style: null
};
},
mounted() {
this.getFormScheme();
},
computed: {
color() {
return g.value.buttonColor || "blue";
}
},
methods: {
flattenMenu(t) {
const e = [];
return t.forEach((a) => {
a.menu ? e.push(...this.flattenMenu(a.menu)) : e.push(a);
}), e;
},
async getFormScheme() {
var l, o;
const t = this.flattenMenu(f.value);
t != null && t.length || this.$router.replace("/404");
const e = t == null ? void 0 : t.find((s) => {
var r, n;
return (s == null ? void 0 : s.path) == ((n = (r = this.$route) == null ? void 0 : r.query) == null ? void 0 : n.table);
});
e || this.$router.replace("/404");
const a = e == null ? void 0 : e.table;
this.table = a;
try {
const s = await m.get(`/api/table-data/${a}`), { data: r } = await m.get(
`/api/template/form/${(l = s == null ? void 0 : s.data) == null ? void 0 : l.form}`
);
this.scheme = (r == null ? void 0 : r.schema) || r, this.style = (r == null ? void 0 : r.style) || null, this.api = (r == null ? void 0 : r.api) || "", this.token = ((o = s == null ? void 0 : s.data) == null ? void 0 : o.addToken) || "";
} catch {
}
},
getGroupedErrorNotification(t, e) {
if (!t || !e) return "";
const a = {};
return Object.entries(t).forEach(([o, s]) => {
var n;
const r = ((n = e[o]) == null ? void 0 : n.ua) || o;
s.forEach((c) => {
const u = c.message;
a[u] || (a[u] = []), a[u].push(`"${r}"`);
});
}), Object.entries(a).map(([o, s]) => `<b>${o}:</b> ${s.join(", ")}`).join("<br>") || "Сталася помилка валідації";
},
async createObject() {
var e, a, l;
const t = (a = (e = this.$refs.form) == null ? void 0 : e.$refs) == null ? void 0 : a.form;
try {
await t.doValidation(), await m.post(
this.api || `/api/table/${this.token}`,
this.formValues
), await this.$router.back(), await this.$notify({
title: "Успішно!",
message: "Об'єкт успішно створено",
type: "success"
});
} catch (o) {
const s = this.getGroupedErrorNotification(
t == null ? void 0 : t.formErrors,
t == null ? void 0 : t.scheme
);
this.$notify({
title: "Помилка!",
message: ((l = o == null ? void 0 : o.response) == null ? void 0 : l.data) || s,
type: "error"
});
}
}
}
}, k = { class: "bg-gray-100 lg:w-[calc(100vw-260px)] w-[100vw]" }, V = { class: "h-[76px] mt-[15px] flex items-center justify-between mx-[20px] px-[20px] bg-white rounded-xl" }, _ = { class: "flex items-center gap-[6px]" }, j = { class: "bg-white w-full rounded-xl" };
function E(t, e, a, l, o, s) {
var n;
const r = b("VsFormWithNavigation");
return h(), x("div", k, [
i("div", V, [
e[3] || (e[3] = i("h2", { class: "text-xl font-medium" }, "Створити", -1)),
i("div", _, [
i("button", {
onClick: e[0] || (e[0] = (c) => t.$router.back()),
class: "flex items-center px-3 py-2 text-sm font-medium text-gray-800 duration-300 bg-white border border-gray-100 rounded-lg shadow gap-x-2 focus:outline-none hover:bg-gray-50 hover:border-gray-100"
}, " Скасувати "),
i("button", {
onClick: e[1] || (e[1] = (...c) => s.createObject && s.createObject(...c)),
class: y(`inline-flex items-center px-3 py-2 text-sm font-medium text-white duration-300 bg-${s.color}-700 border border-transparent rounded-lg gap-x-2 hover:bg-${s.color}-800 hover:text-white`)
}, " Зберегти ", 2)
])
]),
i("div", {
style: p({
height: ((n = t.$adminSettings) == null ? void 0 : n.header) === !1 ? "calc(100vh - 91px)" : "calc(100vh - 150px)"
}),
class: "bg-gray-100 p-[20px] flex lg:w-[calc(100vw-260px)] w-[100vw] overflow-hidden"
}, [
i("div", j, [
o.scheme ? (h(), w(r, {
key: 0,
ref: "form",
scheme: o.scheme,
style: p(o.style),
modelValue: o.formValues,
"onUpdate:modelValue": e[2] || (e[2] = (c) => o.formValues = c),
class: "h-full p-[20px]"
}, null, 8, ["scheme", "style", "modelValue"])) : v("", !0)
])
], 4)
]);
}
const N = /* @__PURE__ */ d($, [["render", E]]);
export {
N as default
};