sci-pro
Version:
58 lines (57 loc) • 1.85 kB
JavaScript
import { defineComponent as _, ref as y, resolveComponent as f, openBlock as r, createElementBlock as s, Fragment as k, renderList as h, createElementVNode as c, createCommentVNode as a, toDisplayString as C, createVNode as v } from "vue";
import "./style/index.css";
const L = { class: "sci-tree" }, g = { class: "sci-tree_title" }, N = {
key: 0,
class: "item-title_icon"
}, S = ["onClick"], V = {
key: 0,
class: "sci-tree-children",
style: { display: "none" }
}, q = _({ name: "sci-tree" }), T = /* @__PURE__ */ _({
...q,
props: {
treeList: {}
},
emits: ["treeClick"],
setup(B, { emit: m }) {
const l = m, o = y([]), p = (t, d) => {
if (t.children) {
let i = o.value[d], e = i.querySelector(".sci-tree-children"), n = i.querySelector(".item-title_icon");
e.style.display === "none" ? (e.style.display = "block", n.style.transform = "rotate(135deg)") : (e.style.display = "none", n.style.transform = "rotate(45deg)");
}
l("treeClick", t);
}, u = (t) => {
l("treeClick", t);
};
return (t, d) => {
const i = f("sci-tree");
return r(), s("div", L, [
(r(!0), s(k, null, h(t.treeList, (e, n) => (r(), s("div", {
class: "sci-tree-item",
key: e.title,
ref_for: !0,
ref_key: "itemRefs",
ref: o
}, [
c("div", g, [
c("div", null, [
e.children ? (r(), s("span", N)) : a("", !0)
]),
c("span", {
onClick: (D) => p(e, n)
}, C(e.title), 9, S)
]),
e.children ? (r(), s("div", V, [
v(i, {
treeList: e.children,
onTreeClick: u
}, null, 8, ["treeList"])
])) : a("", !0)
]))), 128))
]);
};
}
});
export {
T as default
};