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