gepic
Version:
基于vue3的设计器,可视化开发页面表单
117 lines (116 loc) • 3.58 kB
JavaScript
import { defineComponent as I, ref as p, computed as r, toRaw as M, watch as N, createElementBlock as g, openBlock as i, Fragment as V, createVNode as m, unref as E, withCtx as h, renderList as R, createBlock as $ } from "vue";
import b from "./src/EActionEditorItem.vue.js";
import { pluginManager as C } from "../../../utils/manager/pluginManager.js";
import "@vueuse/core";
import "../../../hooks/store/index.js";
import j from "./src/EActionModal.vue.js";
const G = /* @__PURE__ */ I({
__name: "index",
props: {
eventList: {
type: Array,
default: () => []
},
modelValue: {
type: Object
}
},
emits: ["update:modelValue"],
setup(x, { emit: k }) {
const A = C.getComponent("Collapse"), L = C.getComponent("CollapseItem"), s = p(null);
let f = 0;
const v = x, O = k, n = r({
get() {
return v.modelValue;
},
set(t) {
O("update:modelValue", t);
}
}), u = p([]), c = r(() => v.eventList.filter((t) => t.events.length)), y = r(() => v.eventList.map((t) => t.events).flat()), o = p({});
y.value.forEach((t) => {
o.value[t.type] = r({
get() {
var e;
return ((e = n.value) == null ? void 0 : e[t.type]) ?? [];
},
set(e) {
e && e.length ? n.value[t.type] = e.map((l) => M(l)) : delete n.value[t.type];
}
});
}), N(() => c.value, (t) => {
t.length && (u.value = t.filter((e) => {
for (let l = 0; l < e.events.length; l++) {
const d = e.events[l].type;
if (o.value[d].length)
return !0;
}
return !1;
}).map((e) => e.title));
}, {
// 配置选项
immediate: !0
// 立即执行一次回调函数
});
let a = "";
function _(t) {
var e;
(e = s.value) == null || e.handleOpen(), a = t;
}
function U(t, e, l) {
var d;
(d = s.value) == null || d.handleOpenEdit(l), f = t, a = e;
}
function w(t) {
o.value[a][f] = t, n.value[a] = [...o.value[a] ?? []];
}
function B(t) {
if (!n.value) {
n.value = { [a]: [...o.value[a] ?? [], t] };
return;
}
n.value[a] = [...o.value[a] ?? [], t];
}
return (t, e) => (i(), g(V, null, [
m(E(A), {
modelValue: u.value,
"onUpdate:modelValue": e[1] || (e[1] = (l) => u.value = l),
"active-key": u.value,
"onUpdate:activeKey": e[2] || (e[2] = (l) => u.value = l),
"expanded-names": u.value,
"onUpdate:expandedNames": e[3] || (e[3] = (l) => u.value = l)
}, {
default: h(() => [
(i(!0), g(V, null, R(c.value, (l) => (i(), $(E(L), {
key: l.title,
title: l.title,
header: l.title,
name: l.title
}, {
default: h(() => [
m(b, {
modelValue: n.value,
"onUpdate:modelValue": e[0] || (e[0] = (d) => n.value = d),
"item-events": l.events,
"all-events": y.value,
events: o.value,
onAdd: _,
onEdit: U
}, null, 8, ["modelValue", "item-events", "all-events", "events"])
]),
_: 2
}, 1032, ["title", "header", "name"]))), 128))
]),
_: 1
}, 8, ["modelValue", "active-key", "expanded-names"]),
m(j, {
ref_key: "EActionModalRef",
ref: s,
onAdd: B,
onEdit: w
}, null, 512)
], 64));
}
});
export {
G as default
};