color-star-custom-components 0.0.11 → 0.0.13

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.
@@ -0,0 +1,415 @@
1
+ import { useAttrs as ie, ref as L, computed as S, watch as O, nextTick as B, onMounted as de, createBlock as K, openBlock as x, unref as f, withCtx as N, createElementVNode as D, normalizeStyle as ce, createElementBlock as T, createCommentVNode as ue, createVNode as g, normalizeClass as he, mergeProps as fe, renderSlot as R, toDisplayString as H, withModifiers as pe, h as Q } from "vue";
2
+ import { ElAutoResizer as me, ElInput as ye, ElIcon as U, ElTreeV2 as ve } from "element-plus";
3
+ import { IconSearch as ge, IconDelete as ke, IconRighttop as Se } from "color-message-lingyun-vue";
4
+ import { IconEmpty as Ne } from "../IconEmpty.mjs";
5
+ import { _ as be } from "./_plugin-vue_export-helper.CHgC5LLL.js";
6
+ import '../assets/layout2.css';function Ce(s) {
7
+ return {
8
+ name: "element-tree-line",
9
+ props: {
10
+ node: {
11
+ type: Object,
12
+ required: !0
13
+ },
14
+ data: {
15
+ type: Object
16
+ },
17
+ treeData: {
18
+ type: Array
19
+ },
20
+ indent: {
21
+ type: Number,
22
+ default() {
23
+ return 16;
24
+ }
25
+ },
26
+ showLabelLine: {
27
+ type: Boolean,
28
+ default: !0
29
+ }
30
+ },
31
+ render(d) {
32
+ const c = s || d, a = this.getScopedSlot("default"), t = this.getScopedSlot("node-label"), u = this.getScopedSlot("after-node-label"), p = a ? this.getScopedSlotValue(a, {
33
+ node: this.node,
34
+ data: this.data
35
+ }) : [
36
+ t ? this.getScopedSlotValue(t, {
37
+ node: this.node,
38
+ data: this.data
39
+ }) : c(
40
+ "span",
41
+ { class: "element-tree-node-label" },
42
+ this.node.label
43
+ ),
44
+ this.showLabelLine ? c("span", {
45
+ class: "element-tree-node-label-line"
46
+ }) : null,
47
+ this.getScopedSlotValue(u, {
48
+ node: this.node,
49
+ data: this.data
50
+ })
51
+ ], y = [];
52
+ let h = this.node;
53
+ for (; h; ) {
54
+ let n = h.parent;
55
+ if (h.level === 1 && !h.parent) {
56
+ if (!this.treeData || !Array.isArray(this.treeData))
57
+ throw Error(
58
+ "if you using el-tree-v2 (Virtualized Tree) of element-plus,element-tree-line required data."
59
+ );
60
+ n = {
61
+ children: Array.isArray(this.treeData) ? this.treeData.map((m) => ({ ...m, key: m.id })) : [],
62
+ level: 0,
63
+ key: "node-0",
64
+ parent: null
65
+ };
66
+ }
67
+ if (n) {
68
+ const m = (n.children || n.childNodes).findIndex(
69
+ (b) => (b.key || b.id) === (h.key || h.id)
70
+ );
71
+ y.unshift(
72
+ m === (n.children || n.childNodes).length - 1
73
+ );
74
+ }
75
+ h = n;
76
+ }
77
+ const V = [];
78
+ for (let n = 0; n < this.node.level; n++)
79
+ y[n] && this.node.level - 1 !== n || V.push(
80
+ c("span", {
81
+ class: {
82
+ "element-tree-node-line-ver": !0,
83
+ "last-node-isLeaf-line": y[n] && this.node.level - 1 === n
84
+ },
85
+ style: { left: this.indent * n + "px" }
86
+ })
87
+ );
88
+ return c(
89
+ "span",
90
+ {
91
+ class: "element-tree-node-label-wrapper"
92
+ },
93
+ [p].concat(V).concat([
94
+ c("span", {
95
+ class: "element-tree-node-line-hor",
96
+ style: {
97
+ width: (this.node.isLeaf ? 24 : 8) + "px",
98
+ left: (this.node.level - 1) * this.indent + "px"
99
+ }
100
+ })
101
+ ])
102
+ );
103
+ },
104
+ methods: {
105
+ getScopedSlot(d) {
106
+ if (!d)
107
+ return null;
108
+ const c = d.split("||");
109
+ let a = null;
110
+ for (let t = 0; t < c.length; t++) {
111
+ const u = c[t], p = (this.$slots || {})[u];
112
+ if (p) {
113
+ a = p;
114
+ break;
115
+ }
116
+ if (a = (this.$scopedSlots || {})[u], a)
117
+ break;
118
+ }
119
+ return a;
120
+ },
121
+ getScopedSlotValue(d, c, a = null) {
122
+ return typeof d == "function" ? d(c) || a : d || a;
123
+ }
124
+ }
125
+ };
126
+ }
127
+ function G(s) {
128
+ const d = Ce(s);
129
+ return s && (d.methods.getScopedSlot = function(a) {
130
+ if (!a)
131
+ return null;
132
+ const t = a.split("||");
133
+ let u = null;
134
+ for (let p = 0; p < t.length; p++) {
135
+ const y = t[p], h = (this.$slots || {})[y];
136
+ if (h) {
137
+ u = h;
138
+ break;
139
+ }
140
+ }
141
+ return u;
142
+ }), d;
143
+ }
144
+ G();
145
+ const Le = {
146
+ key: 0,
147
+ class: "mg-b-16"
148
+ }, xe = {
149
+ key: 0,
150
+ class: "list-item flex justify-between pd-l-6 pd-r-6 radius-8 items-center w-full"
151
+ }, Ve = ["onClick"], Me = { key: 1 }, De = /* @__PURE__ */ Object.assign({
152
+ name: "TreeSelect"
153
+ }, {
154
+ __name: "layout",
155
+ props: {
156
+ // 初始值
157
+ modelValue: {
158
+ type: Object,
159
+ default: () => []
160
+ },
161
+ // 树形节点对象结构
162
+ treeProps: {
163
+ type: Object,
164
+ default: () => ({
165
+ value: "id",
166
+ label: "label",
167
+ children: "children"
168
+ })
169
+ },
170
+ // 接口配置
171
+ apiConfig: {
172
+ type: Function
173
+ },
174
+ // 请求参数
175
+ reqParams: {
176
+ type: Object,
177
+ default: () => ({})
178
+ },
179
+ // 是否在组件挂载时自动加载数据
180
+ autoLoad: {
181
+ type: Boolean,
182
+ default: !0
183
+ },
184
+ // 是否多选
185
+ isMultiple: {
186
+ type: Boolean,
187
+ default: !0
188
+ },
189
+ // 是否有过滤
190
+ hasFilter: {
191
+ type: Boolean,
192
+ default: !1
193
+ },
194
+ // 是否是列表模式
195
+ isListMode: {
196
+ type: Boolean,
197
+ default: !1
198
+ },
199
+ treeList: {
200
+ type: Array,
201
+ default: () => []
202
+ },
203
+ // 是否有线条样式
204
+ hasTreeLine: {
205
+ type: Boolean,
206
+ default: !0
207
+ },
208
+ // 选中的节点是否包含父节点
209
+ includeParentSelected: {
210
+ type: Boolean,
211
+ default: !1
212
+ }
213
+ },
214
+ emits: ["handleCheck", "handleDeleteNode", "initFinish"],
215
+ setup(s, { expose: d, emit: c }) {
216
+ const a = G(Q), t = s, u = c, p = ie(), y = () => Q(Se, {
217
+ style: { color: "var(--text-color-2)", fontSize: "16px" }
218
+ }), h = t.isMultiple ? 20 : 10, V = t.isMultiple ? 15 : 11, n = L([]), m = L(null), b = L(null), P = S(() => t.treeProps.value), w = S(() => t.treeProps.label), v = S(() => t.treeProps.children), z = L(!1), J = S(() => !t.isMultiple && z.value), W = S(() => typeof t.apiConfig == "function"), F = (e) => String(e).includes("%") ? e : e + "px", X = () => {
219
+ let e = m.value?.getCheckedNodes(), l = e.map((i) => i[P.value]), r = [];
220
+ return e.length && !t.includeParentSelected && (e = e.filter((i) => !i[v.value]), l = e.map((i) => i[P.value])), t.includeParentSelected && (r = Y(n.value, l)), {
221
+ selectedNodeValues: l,
222
+ // 选中节点的值的集合
223
+ selectedNodes: e,
224
+ // 选中节点的集合
225
+ selectedParentNodes: r
226
+ // 选中节点的所有父节点
227
+ };
228
+ };
229
+ function Y(e, l) {
230
+ const r = /* @__PURE__ */ new Map();
231
+ function i(o, k = []) {
232
+ for (const C of o) {
233
+ const re = [...k, C];
234
+ C.children && C.children.length > 0 ? i(C.children, re) : l.includes(C.id) && k.forEach((A) => {
235
+ r.has(A.id) || r.set(A.id, { ...A });
236
+ });
237
+ }
238
+ }
239
+ return i(e), Array.from(r.values());
240
+ }
241
+ const Z = (e) => {
242
+ !t.isMultiple || t.isListMode || E();
243
+ }, ee = (e, l) => {
244
+ t.isMultiple || t.isListMode || (z.value = !0, b.value = l.key, u("handleCheck", {
245
+ selectedValue: [b.value],
246
+ // 选中节点的值
247
+ selectedNode: [l.data]
248
+ // // 选中节点
249
+ }));
250
+ }, j = L(""), te = (e) => {
251
+ m.value.filter(e);
252
+ }, le = (e, l) => l[w.value].includes(e), ne = (e) => {
253
+ let l = 0;
254
+ function r(i) {
255
+ for (const o of i) {
256
+ const k = o[v.value] && o[v.value].length > 0;
257
+ t.includeParentSelected ? l++ : k || l++, k && r(o[v.value]);
258
+ }
259
+ }
260
+ return r(e), l;
261
+ }, oe = S(() => ne(n.value));
262
+ function E() {
263
+ const { selectedNodeValues: e, selectedNodes: l, selectedParentNodes: r } = X();
264
+ u("handleCheck", {
265
+ selectedValue: e,
266
+ // 选中节点的值的集合
267
+ selectedNode: l,
268
+ // 选中节点的集合
269
+ selectedParentNodes: r
270
+ });
271
+ }
272
+ const se = (e, l) => {
273
+ m.value?.setChecked(e, l), E();
274
+ }, _ = () => {
275
+ p["default-checked-keys"] && B(() => {
276
+ E();
277
+ });
278
+ }, ae = (e) => {
279
+ u("handleDeleteNode", e);
280
+ }, M = (e) => e?.map((l) => ({
281
+ ...l,
282
+ [v.value]: l[v.value]?.length ? M(l[v.value]) : void 0
283
+ })), $ = async () => {
284
+ W.value ? t.apiConfig(t.reqParams)?.then((e) => {
285
+ n.value = M(e?.data || []), _(), I(t.modelValue), u("initFinish", n.value);
286
+ }) : q();
287
+ }, q = () => {
288
+ t.isListMode ? n.value = M(t.treeList || []) : (n.value = M(t.treeList || []), n.value.length && (_(), I(t.modelValue)));
289
+ }, I = (e) => {
290
+ const l = e && e.length && e.map((r) => r[t.treeProps.value]);
291
+ B(() => {
292
+ m.value?.setCheckedKeys(l);
293
+ });
294
+ };
295
+ return O(
296
+ () => t.treeList,
297
+ () => {
298
+ q();
299
+ },
300
+ { deep: !0 }
301
+ ), O(
302
+ () => t.modelValue,
303
+ (e) => {
304
+ B(() => {
305
+ I(e);
306
+ });
307
+ },
308
+ { deep: !0 }
309
+ ), de(() => {
310
+ $();
311
+ }), d({
312
+ allNodeNumbers: oe,
313
+ loadData: $,
314
+ setNodeCheckStatus: se
315
+ }), (e, l) => (x(), K(f(me), null, {
316
+ default: N(({ width: r, height: i }) => [
317
+ D("div", {
318
+ style: ce({
319
+ width: F(r),
320
+ height: F(i)
321
+ })
322
+ }, [
323
+ s.hasFilter ? (x(), T("div", Le, [
324
+ g(f(ye), {
325
+ modelValue: j.value,
326
+ "onUpdate:modelValue": l[0] || (l[0] = (o) => j.value = o),
327
+ placeholder: "请输入",
328
+ onInput: te
329
+ }, {
330
+ prefix: N(() => [
331
+ g(f(U), {
332
+ size: 16,
333
+ color: "var(--neutral-color-12)",
334
+ class: "mg-r-4"
335
+ }, {
336
+ default: N(() => [
337
+ g(f(ge))
338
+ ]),
339
+ _: 1
340
+ })
341
+ ]),
342
+ _: 1
343
+ }, 8, ["modelValue"])
344
+ ])) : ue("", !0),
345
+ D("div", {
346
+ class: he(s.hasFilter ? "pd-l-8 pd-r-8" : "")
347
+ }, [
348
+ g(f(ve), fe({
349
+ ref_key: "treeRef",
350
+ ref: m,
351
+ height: s.hasFilter ? i - 48 : i,
352
+ data: n.value,
353
+ props: s.treeProps,
354
+ "node-key": P.value,
355
+ "show-checkbox": s.isMultiple && !s.isListMode,
356
+ "item-size": 34,
357
+ indent: f(h),
358
+ "highlight-current": J.value,
359
+ icon: s.isListMode ? "" : y,
360
+ "filter-method": le
361
+ }, f(p), {
362
+ onNodeClick: ee,
363
+ onCheck: Z
364
+ }), {
365
+ default: N(({ node: o }) => [
366
+ s.isListMode ? (x(), T("div", xe, [
367
+ R(e.$slots, "node", {
368
+ node: o,
369
+ data: o.data
370
+ }, () => [
371
+ D("span", null, H(o.data[w.value]), 1)
372
+ ], !0),
373
+ D("div", {
374
+ class: "flex items-center",
375
+ onClick: pe((k) => ae(o.data), ["stop"])
376
+ }, [
377
+ g(f(U), {
378
+ size: 14,
379
+ color: "var(--neutral-color-5)"
380
+ }, {
381
+ default: N(() => [
382
+ g(f(ke))
383
+ ]),
384
+ _: 1
385
+ })
386
+ ], 8, Ve)
387
+ ])) : R(e.$slots, "node", {
388
+ key: 1,
389
+ node: o,
390
+ data: o.data
391
+ }, () => [
392
+ s.hasTreeLine ? (x(), K(f(a), {
393
+ key: 0,
394
+ node: o,
395
+ treeData: n.value,
396
+ showLabelLine: !1,
397
+ indent: f(V)
398
+ }, null, 8, ["node", "treeData", "indent"])) : (x(), T("span", Me, H(o.data[w.value]), 1))
399
+ ], !0)
400
+ ]),
401
+ empty: N(() => [
402
+ g(f(Ne))
403
+ ]),
404
+ _: 3
405
+ }, 16, ["height", "data", "props", "node-key", "show-checkbox", "indent", "highlight-current", "icon"])
406
+ ], 2)
407
+ ], 4)
408
+ ]),
409
+ _: 3
410
+ }));
411
+ }
412
+ }), Be = /* @__PURE__ */ be(De, [["__scopeId", "data-v-1d5f5af4"]]);
413
+ export {
414
+ Be as T
415
+ };
package/lib/IconSelect.js CHANGED
@@ -1 +1 @@
1
- "use strict";require('./assets/IconSelect.css');var _=Object.create;var b=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var j=(o,a,l,m)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of V(a))!N.call(o,r)&&r!==l&&b(o,r,{get:()=>a[r],enumerable:!(m=S(a,r))||m.enumerable});return o};var z=(o,a,l)=>(l=o!=null?_(E(o)):{},j(a||!o||!o.__esModule?b(l,"default",{value:o,enumerable:!0}):l,o));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const L=require("./chunks/index.CkihWzK6.js"),e=require("vue"),s=require("element-plus"),A=require("./chunks/layout.ikdn8BHo.js"),y=require("./chunks/config.-Zz1ib9f.js"),M=require("./chunks/_plugin-vue_export-helper.BHFhmbuH.js"),O={class:"icon-select-content flex flex-col overflow-hidden"},q={key:0,class:"no-data flex items-center justify-center w-full"},D={key:1,class:"icon-select-grid overflow-y-auto display-grid"},P={key:0,class:"loading-text flex items-center justify-center w-full"},F=["title","onClick"],R=Object.assign({name:"IconSelect"},{__name:"layout",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"请选择图标"},width:{type:Number,default:520},iconSize:{type:Number,default:62},library:{type:String,default:y.iconLibraryMap.lingyun,validator:o=>Object.values(y.iconLibraryMap).includes(o)},iconSearch:{type:Object,default:null},iconAdd:{type:Object,default:null},iconEmpty:{type:Object,default:null}},emits:["update:modelValue"],setup(o,{emit:a}){const l=o,m=a,r=e.ref(!1),f=e.ref(""),i=e.ref(l.modelValue),u=e.ref(null),p=e.ref([]),k=e.ref(!1),d=e.shallowRef({IconSearch:null,IconAdd:null}),h=async t=>{const n=t==="search"?l.iconSearch:l.iconAdd;if(n)return n;try{return(await import("color-message-lingyun-vue"))[t==="search"?"IconSearch":"IconAdd"]}catch{return console.warn(`color-message-lingyun-vue not found, ${t} icon will not be displayed`),null}},g=async()=>{const[t,n]=await Promise.all([h("search"),h("add")]);return{IconSearch:t,IconAdd:n}},w=async()=>{k.value=!0;try{const t=await y.getIconLibrary(l.library);p.value=Object.entries(t).filter(([n])=>n.toLowerCase()&&!["default","icons"].includes(n)).map(([n,c])=>({name:n,component:e.markRaw(c)}))}catch(t){console.error("Failed to load icons:",t),p.value=[]}finally{k.value=!1}},I=e.computed(()=>f.value?p.value.filter(t=>t.name.toLowerCase().includes(f.value.toLowerCase())):p.value),v=async()=>{if(!i.value){u.value=null;return}const t=await y.getIconComponent(l.library,i.value);u.value=t?e.markRaw(t):null},x=t=>{i.value=t.name,m("update:modelValue",t.name),r.value=!1};return e.watch(()=>l.modelValue,t=>{i.value=t,v()}),e.watch(()=>l.library,()=>{w(),v()}),e.watch(()=>i.value,()=>{v()}),e.onMounted(async()=>{d.value=await g(),w(),v()}),(t,n)=>(e.openBlock(),e.createBlock(e.unref(s.ElPopover),{visible:r.value,"onUpdate:visible":n[1]||(n[1]=c=>r.value=c),placement:"bottom-start",width:o.width,trigger:"click"},{reference:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center pointer radius-16 justify-center w-icon-item",{"select-icon-box bg-fcfdff text-202434 fz-14 flex-col":!u.value,"icon-item":i.value}])},[u.value?(e.openBlock(),e.createBlock(e.unref(s.ElIcon),{key:0,size:o.iconSize},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.value)))]),_:1},8,["size"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[d.value.IconAdd?(e.openBlock(),e.createBlock(e.unref(s.ElIcon),{key:0,size:16},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value.IconAdd)))]),_:1})):e.createCommentVNode("",!0),n[2]||(n[2]=e.createTextVNode(" 上传 ",-1))],64))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",O,[e.createVNode(e.unref(s.ElInput),{class:"mg-b-12",modelValue:f.value,"onUpdate:modelValue":n[0]||(n[0]=c=>f.value=c),placeholder:"搜索图标",clearable:""},e.createSlots({_:2},[d.value.IconSearch?{name:"prefix",fn:e.withCtx(()=>[e.createVNode(e.unref(s.ElIcon),{size:16},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value.IconSearch)))]),_:1})]),key:"0"}:void 0]),1032,["modelValue"]),I.value.length===0?(e.openBlock(),e.createElementBlock("div",q,[e.createVNode(A._sfc_main,{icon:o.iconEmpty,text:"未找到相关图标"},null,8,["icon"])])):(e.openBlock(),e.createElementBlock("div",D,[k.value?(e.openBlock(),e.createElementBlock("div",P," 加载中... ")):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(I.value,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:e.normalizeClass(["icon-item radius-8 justify-center items-center pointer flex w-icon-item",{active:i.value===c.name}]),title:c.name,onClick:C=>x(c)},[e.createVNode(e.unref(s.ElIcon),{size:50},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.component)))]),_:2},1024)],10,F))),128))]))])]),_:1},8,["visible","width"]))}}),T=M._export_sfc(R,[["__scopeId","data-v-4cc24f78"]]),B=L.withInstall(T);exports.IconSelect=B;exports.default=B;
1
+ "use strict";require('./assets/IconSelect.css');var S=Object.create;var b=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var j=(o,a,l,m)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of V(a))!N.call(o,r)&&r!==l&&b(o,r,{get:()=>a[r],enumerable:!(m=_(a,r))||m.enumerable});return o};var z=(o,a,l)=>(l=o!=null?S(E(o)):{},j(a||!o||!o.__esModule?b(l,"default",{value:o,enumerable:!0}):l,o));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const L=require("./chunks/index.CkihWzK6.js"),e=require("vue"),s=require("element-plus"),A=require("./chunks/layout.ikdn8BHo.js"),y=require("./chunks/config.-Zz1ib9f.js"),M=require("./chunks/_plugin-vue_export-helper.BHFhmbuH.js"),O={class:"icon-select-content flex flex-col overflow-hidden"},q={key:0,class:"no-data flex items-center justify-center w-full"},D={key:1,class:"icon-select-grid overflow-y-auto display-grid"},P={key:0,class:"loading-text flex items-center justify-center w-full"},F=["title","onClick"],R=Object.assign({name:"IconSelect"},{__name:"layout",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"请选择图标"},width:{type:Number,default:520},iconSize:{type:Number,default:62},library:{type:String,default:y.iconLibraryMap.lingyun,validator:o=>Object.values(y.iconLibraryMap).includes(o)},iconSearch:{type:Object,default:null},iconAdd:{type:Object,default:null},iconEmpty:{type:Object,default:null},iconColor:{type:String,default:""}},emits:["update:modelValue"],setup(o,{emit:a}){e.useCssVars(t=>({v051e54a2:o.iconColor}));const l=o,m=a,r=e.ref(!1),f=e.ref(""),i=e.ref(l.modelValue),u=e.ref(null),p=e.ref([]),k=e.ref(!1),d=e.shallowRef({IconSearch:null,IconAdd:null}),h=async t=>{const n=t==="search"?l.iconSearch:l.iconAdd;if(n)return n;try{return(await import("color-message-lingyun-vue"))[t==="search"?"IconSearch":"IconAdd"]}catch{return console.warn(`color-message-lingyun-vue not found, ${t} icon will not be displayed`),null}},B=async()=>{const[t,n]=await Promise.all([h("search"),h("add")]);return{IconSearch:t,IconAdd:n}},w=async()=>{k.value=!0;try{const t=await y.getIconLibrary(l.library);p.value=Object.entries(t).filter(([n])=>n.toLowerCase()&&!["default","icons"].includes(n)).map(([n,c])=>({name:n,component:e.markRaw(c)}))}catch(t){console.error("Failed to load icons:",t),p.value=[]}finally{k.value=!1}},I=e.computed(()=>f.value?p.value.filter(t=>t.name.toLowerCase().includes(f.value.toLowerCase())):p.value),v=async()=>{if(!i.value){u.value=null;return}const t=await y.getIconComponent(l.library,i.value);u.value=t?e.markRaw(t):null},C=t=>{i.value=t.name,m("update:modelValue",t.name),r.value=!1};return e.watch(()=>l.modelValue,t=>{i.value=t,v()}),e.watch(()=>l.library,()=>{w(),v()}),e.watch(()=>i.value,()=>{v()}),e.onMounted(async()=>{d.value=await B(),w(),v()}),(t,n)=>(e.openBlock(),e.createBlock(e.unref(s.ElPopover),{visible:r.value,"onUpdate:visible":n[1]||(n[1]=c=>r.value=c),placement:"bottom-start",width:o.width,trigger:"click"},{reference:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center pointer radius-16 justify-center w-icon-item",{"select-icon-box bg-fcfdff text-202434 fz-14 flex-col":!u.value,"icon-item":i.value}])},[u.value?(e.openBlock(),e.createBlock(e.unref(s.ElIcon),{key:0,size:o.iconSize},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.value)))]),_:1},8,["size"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[d.value.IconAdd?(e.openBlock(),e.createBlock(e.unref(s.ElIcon),{key:0,size:16},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value.IconAdd)))]),_:1})):e.createCommentVNode("",!0),n[2]||(n[2]=e.createTextVNode(" 上传 ",-1))],64))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",O,[e.createVNode(e.unref(s.ElInput),{class:"mg-b-12",modelValue:f.value,"onUpdate:modelValue":n[0]||(n[0]=c=>f.value=c),placeholder:"搜索图标",clearable:""},e.createSlots({_:2},[d.value.IconSearch?{name:"prefix",fn:e.withCtx(()=>[e.createVNode(e.unref(s.ElIcon),{size:16},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value.IconSearch)))]),_:1})]),key:"0"}:void 0]),1032,["modelValue"]),I.value.length===0?(e.openBlock(),e.createElementBlock("div",q,[e.createVNode(A._sfc_main,{icon:o.iconEmpty,text:"未找到相关图标"},null,8,["icon"])])):(e.openBlock(),e.createElementBlock("div",D,[k.value?(e.openBlock(),e.createElementBlock("div",P," 加载中... ")):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(I.value,c=>(e.openBlock(),e.createElementBlock("div",{key:c.name,class:e.normalizeClass(["icon-item radius-8 justify-center items-center pointer flex w-icon-item",{active:i.value===c.name}]),title:c.name,onClick:x=>C(c)},[e.createVNode(e.unref(s.ElIcon),{size:50},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.component)))]),_:2},1024)],10,F))),128))]))])]),_:1},8,["visible","width"]))}}),T=M._export_sfc(R,[["__scopeId","data-v-4106dcd4"]]),g=L.withInstall(T);exports.IconSelect=g;exports.default=g;
package/lib/TreeSelect.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./chunks/index.CkihWzK6.js"),l=require("./chunks/layout.BhOA_UzD.js"),e=t.withInstall(l.TreeSelect);exports.TreeSelect=e;exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./chunks/index.CkihWzK6.js"),l=require("./chunks/layout.00bu3jNF.js"),e=t.withInstall(l.TreeSelect);exports.TreeSelect=e;exports.default=e;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./assets/TreeShowSelect.css');const V=require("./chunks/index.CkihWzK6.js"),e=require("vue"),S=require("element-plus"),u=require("./chunks/layout.BhOA_UzD.js"),b=require("./chunks/_plugin-vue_export-helper.BHFhmbuH.js"),g={class:"left-box w-50-percent flex flex-col overflow-hidden"},w={class:"head-box fz-14 pd-t-8 pd-b-8 pd-l-12 pd-r-12 mg-b-8 text-202434"},y={class:"pd-r-12 pd-l-12 flex-1 overflow-hidden"},P={class:"right-box w-50-percent flex flex-col overflow-hidden"},k={class:"head-box fz-14 pd-t-8 pd-b-8 pd-l-12 pd-r-12 mg-b-8 text-202434"},E={class:"pd-r-12 pd-l-12 flex-1 selected-list overflow-hidden pd-t-8"},T=Object.assign({name:"TreeShowSelect"},{__name:"layout",props:{modelValue:{type:Object,default:()=>[]}},emits:["getCheckedNode"],setup(p,{emit:h}){const f=p,m=h,d=e.useAttrs(),r=e.ref(),v=e.computed(()=>d.treeProps?d.treeProps:{value:"id",label:"label",children:"children"}),c=t=>String(t).includes("%")?t:t+"px",l=e.ref([]),_=t=>{const{selectedNode:o,selectedValue:s,selectedParentNodes:n}=t;l.value=o,m("getCheckedNode",{selectedValue:s,selectedNode:o,selectedParentNodes:n})},x=t=>{r.value?.setNodeCheckStatus(t[v.value.value],!1)},N=t=>{l.value=t||[]};return e.watch(()=>f.modelValue,t=>{N(t)},{immediate:!0,deep:!0}),(t,o)=>(e.openBlock(),e.createBlock(e.unref(S.ElAutoResizer),null,{default:e.withCtx(({width:s,height:n})=>[e.createElementVNode("div",{class:"out-box flex radius-8 text-202434 overflow-hidden",style:e.normalizeStyle({width:c(s),height:c(n)})},[e.createElementVNode("div",g,[e.createElementVNode("div",w,e.toDisplayString(r.value&&r.value.allNodeNumbers||0)+"项 ",1),e.createElementVNode("div",y,[e.createVNode(u.TreeSelect,e.mergeProps({modelValue:l.value,"onUpdate:modelValue":o[0]||(o[0]=a=>l.value=a),ref_key:"treeRef",ref:r},e.unref(d),{onHandleCheck:_}),null,16,["modelValue"])])]),e.createElementVNode("div",P,[e.createElementVNode("div",k,e.toDisplayString(l.value.length)+"项 ",1),e.createElementVNode("div",E,[e.createVNode(u.TreeSelect,{modelValue:l.value,"onUpdate:modelValue":o[1]||(o[1]=a=>l.value=a),class:"tree-select-list",treeProps:e.unref(d).treeProps,treeList:l.value,isListMode:!0,onHandleDeleteNode:x},null,8,["modelValue","treeProps","treeList"])])])],4)]),_:1}))}}),C=b._export_sfc(T,[["__scopeId","data-v-95352dab"]]),i=V.withInstall(C);exports.TreeShowSelect=i;exports.default=i;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./assets/TreeShowSelect.css');const V=require("./chunks/index.CkihWzK6.js"),e=require("vue"),b=require("element-plus"),h=require("./chunks/layout.00bu3jNF.js"),w=require("./chunks/_plugin-vue_export-helper.BHFhmbuH.js"),y={class:"left-box w-50-percent flex flex-col overflow-hidden"},T={class:"head-box fz-14 pd-t-8 pd-b-8 pd-l-12 pd-r-12 mg-b-8 text-202434"},k={class:"pd-r-12 pd-l-12 flex-1 overflow-hidden"},P={class:"right-box w-50-percent flex flex-col overflow-hidden"},C={class:"head-box fz-14 pd-t-8 pd-b-8 pd-l-12 pd-r-12 mg-b-8 text-202434"},E={class:"pd-r-12 pd-l-12 flex-1 selected-list overflow-hidden pd-t-8"},D=Object.assign({name:"TreeShowSelect"},{__name:"layout",props:{modelValue:{type:Object,default:()=>[]},rightTreeList:{type:Array,default:()=>[]}},emits:["getCheckedNode"],setup(m,{emit:v}){const r=m,_=v,s=e.useAttrs(),n=e.ref(),N=e.computed(()=>s.treeProps?s.treeProps:{value:"id",label:"label",children:"children"}),p=t=>String(t).includes("%")?t:t+"px",l=e.ref([]),a=e.computed(()=>r.rightTreeList&&r.rightTreeList.length>0?r.rightTreeList:l.value),g=t=>{const{selectedNode:o,selectedValue:c,selectedParentNodes:i}=t;l.value=o,_("getCheckedNode",{selectedValue:c,selectedNode:o,selectedParentNodes:i})},x=t=>{n.value?.setNodeCheckStatus(t[N.value.value],!1)},S=t=>{l.value=t||[]};return e.watch(()=>r.modelValue,t=>{S(t)},{immediate:!0,deep:!0}),(t,o)=>(e.openBlock(),e.createBlock(e.unref(b.ElAutoResizer),null,{default:e.withCtx(({width:c,height:i})=>[e.createElementVNode("div",{class:"out-box flex radius-8 text-202434 overflow-hidden",style:e.normalizeStyle({width:p(c),height:p(i)})},[e.createElementVNode("div",y,[e.createElementVNode("div",T,e.toDisplayString(n.value&&n.value.allNodeNumbers||0)+"项 ",1),e.createElementVNode("div",k,[e.createVNode(h.TreeSelect,e.mergeProps({modelValue:l.value,"onUpdate:modelValue":o[0]||(o[0]=d=>l.value=d),ref_key:"treeRef",ref:n},e.unref(s),{onHandleCheck:g}),{node:e.withCtx(({node:d,data:u})=>[e.renderSlot(t.$slots,"node",{node:d,data:u,checkedNodes:l.value},void 0,!0)]),_:3},16,["modelValue"])])]),e.createElementVNode("div",P,[e.createElementVNode("div",C,e.toDisplayString(a.value.length)+"项 ",1),e.createElementVNode("div",E,[e.createVNode(h.TreeSelect,{modelValue:l.value,"onUpdate:modelValue":o[1]||(o[1]=d=>l.value=d),class:"tree-select-list",treeProps:e.unref(s).treeProps,treeList:a.value,isListMode:!0,isMultiple:!1,onHandleDeleteNode:x},{node:e.withCtx(({node:d,data:u})=>[e.renderSlot(t.$slots,"node",{node:d,data:u,checkedNodes:a.value},void 0,!0)]),_:3},8,["modelValue","treeProps","treeList"])])])],4)]),_:3}))}}),L=w._export_sfc(D,[["__scopeId","data-v-729a868d"]]),f=V.withInstall(L);exports.TreeShowSelect=f;exports.default=f;
@@ -1 +1 @@
1
- .icon-select-content[data-v-4cc24f78]{max-height:290px}.icon-select-grid[data-v-4cc24f78]{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:12px}.w-icon-item[data-v-4cc24f78]{width:70px;height:70px}.icon-item[data-v-4cc24f78]{background:#e6e9f2}.icon-item.active[data-v-4cc24f78]{background:#dbdee9}.select-icon-box[data-v-4cc24f78]{border:1px dashed var(--border-color)}.bg-fcfdff[data-v-4cc24f78]{background:#fcfdff}
1
+ .icon-select-content[data-v-4106dcd4]{max-height:290px}.icon-select-grid[data-v-4106dcd4]{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:12px}.w-icon-item[data-v-4106dcd4]{width:70px;height:70px}.icon-item[data-v-4106dcd4]{background:#e6e9f2}.icon-item.active[data-v-4106dcd4]{background:#dbdee9}.select-icon-box[data-v-4106dcd4]{border:1px dashed var(--border-color)}.bg-fcfdff[data-v-4106dcd4]{background:#fcfdff}svg[data-v-4106dcd4]{fill:var(--v051e54a2)}
@@ -1 +1 @@
1
- .w-50-percent[data-v-95352dab]{width:50%}.out-box[data-v-95352dab]{border:1px solid var(--parting-line)}.out-box .head-box[data-v-95352dab]{border-bottom:1px solid var(--parting-line)}.out-box .left-box[data-v-95352dab]{border-right:1px solid var(--parting-line)}.out-box .selected-list .selected-item[data-v-95352dab]{height:32px}.out-box .selected-list .selected-item[data-v-95352dab]:hover{background:var(--primary-color-5)}.out-box .selected-list .virtual-scroller[data-v-95352dab]{height:100%}.tree-select-list[data-v-95352dab] .el-tree-node__content{margin-bottom:8px;padding:4px 0;height:32px;border-radius:8px}
1
+ .w-50-percent[data-v-729a868d]{width:50%}.out-box[data-v-729a868d]{border:1px solid var(--parting-line)}.out-box .head-box[data-v-729a868d]{border-bottom:1px solid var(--parting-line)}.out-box .left-box[data-v-729a868d]{border-right:1px solid var(--parting-line)}.out-box .selected-list .selected-item[data-v-729a868d]{height:32px}.out-box .selected-list .selected-item[data-v-729a868d]:hover{background:var(--primary-color-5)}.out-box .selected-list .virtual-scroller[data-v-729a868d]{height:100%}.tree-select-list[data-v-729a868d] .el-tree-node__content{margin-bottom:8px;padding:4px 0;height:32px;border-radius:8px}
@@ -1 +1 @@
1
- .el-tree .el-tree-node__content{position:relative}.element-tree-node-label-wrapper{flex:1;display:flex;align-items:center}.element-tree-node-label{font-size:12px}.element-tree-node-line-ver{display:block;position:absolute;top:0;left:0;height:100%;border-left:1px dashed #dcdfe6}.element-tree-node-line-ver.last-node-isLeaf-line{height:50%}.element-tree-node-line-hor{display:block;position:absolute;top:50%;left:0;height:0;border-bottom:1px dashed #dcdfe6}.element-tree-node-label-line{flex:1;border-top:1px dashed #dcdfe6;align-self:center;margin:0 10px}[data-v-b82736b8] .el-tree-node__label{line-height:22px}[data-v-b82736b8] .el-tree-node:focus>.el-tree-node__content{background-color:transparent}[data-v-b82736b8] .el-tree-node__content{border-radius:8px}[data-v-b82736b8] .el-tree-node__content:hover{background-color:var(--primary-color-5)}[data-v-b82736b8] .element-tree-node-label{font-size:14px}.list-item[data-v-b82736b8]{height:32px}.list-item[data-v-b82736b8]:hover{background:var(--primary-color-5)}[data-v-b82736b8] .element-tree-node-line-ver,[data-v-b82736b8] .element-tree-node-line-hor{border-color:var(--neutral-color-19)}
1
+ .el-tree .el-tree-node__content{position:relative}.element-tree-node-label-wrapper{flex:1;display:flex;align-items:center}.element-tree-node-label{font-size:12px}.element-tree-node-line-ver{display:block;position:absolute;top:0;left:0;height:100%;border-left:1px dashed #dcdfe6}.element-tree-node-line-ver.last-node-isLeaf-line{height:50%}.element-tree-node-line-hor{display:block;position:absolute;top:50%;left:0;height:0;border-bottom:1px dashed #dcdfe6}.element-tree-node-label-line{flex:1;border-top:1px dashed #dcdfe6;align-self:center;margin:0 10px}[data-v-1466e8fd] .el-tree-node__label{line-height:22px}[data-v-1466e8fd] .el-tree-node:focus>.el-tree-node__content{background-color:transparent}[data-v-1466e8fd] .el-tree-node__content{border-radius:8px}[data-v-1466e8fd] .el-tree-node__content:hover{background-color:var(--primary-color-5)}[data-v-1466e8fd] .element-tree-node-label{font-size:14px}.list-item[data-v-1466e8fd]{height:32px}.list-item[data-v-1466e8fd]:hover{background:var(--primary-color-5)}[data-v-1466e8fd] .element-tree-node-line-ver,[data-v-1466e8fd] .element-tree-node-line-hor{border-color:var(--neutral-color-19)}
@@ -0,0 +1 @@
1
+ "use strict";require('../assets/layout2.css');const e=require("vue"),S=require("element-plus"),M=require("color-message-lingyun-vue"),J=require("../IconEmpty.js"),W=require("./_plugin-vue_export-helper.BHFhmbuH.js");function X(r){return{name:"element-tree-line",props:{node:{type:Object,required:!0},data:{type:Object},treeData:{type:Array},indent:{type:Number,default(){return 16}},showLabelLine:{type:Boolean,default:!0}},render(d){const c=r||d,a=this.getScopedSlot("default"),l=this.getScopedSlot("node-label"),u=this.getScopedSlot("after-node-label"),p=a?this.getScopedSlotValue(a,{node:this.node,data:this.data}):[l?this.getScopedSlotValue(l,{node:this.node,data:this.data}):c("span",{class:"element-tree-node-label"},this.node.label),this.showLabelLine?c("span",{class:"element-tree-node-label-line"}):null,this.getScopedSlotValue(u,{node:this.node,data:this.data})],v=[];let h=this.node;for(;h;){let o=h.parent;if(h.level===1&&!h.parent){if(!this.treeData||!Array.isArray(this.treeData))throw Error("if you using el-tree-v2 (Virtualized Tree) of element-plus,element-tree-line required data.");o={children:Array.isArray(this.treeData)?this.treeData.map(m=>({...m,key:m.id})):[],level:0,key:"node-0",parent:null}}if(o){const m=(o.children||o.childNodes).findIndex(k=>(k.key||k.id)===(h.key||h.id));v.unshift(m===(o.children||o.childNodes).length-1)}h=o}const C=[];for(let o=0;o<this.node.level;o++)v[o]&&this.node.level-1!==o||C.push(c("span",{class:{"element-tree-node-line-ver":!0,"last-node-isLeaf-line":v[o]&&this.node.level-1===o},style:{left:this.indent*o+"px"}}));return c("span",{class:"element-tree-node-label-wrapper"},[p].concat(C).concat([c("span",{class:"element-tree-node-line-hor",style:{width:(this.node.isLeaf?24:8)+"px",left:(this.node.level-1)*this.indent+"px"}})]))},methods:{getScopedSlot(d){if(!d)return null;const c=d.split("||");let a=null;for(let l=0;l<c.length;l++){const u=c[l],p=(this.$slots||{})[u];if(p){a=p;break}if(a=(this.$scopedSlots||{})[u],a)break}return a},getScopedSlotValue(d,c,a=null){return typeof d=="function"?d(c)||a:d||a}}}}function A(r){const d=X(r);return r&&(d.methods.getScopedSlot=function(a){if(!a)return null;const l=a.split("||");let u=null;for(let p=0;p<l.length;p++){const v=l[p],h=(this.$slots||{})[v];if(h){u=h;break}}return u}),d}A();const Y={class:"w-full h-full flex flex-col overflow-hidden"},Z={key:0,class:"mg-b-16"},ee={key:0,class:"list-item flex justify-between pd-l-6 pd-r-6 radius-8 items-center w-full"},te=["onClick"],le={key:1},ne=Object.assign({name:"TreeSelect"},{__name:"layout",props:{modelValue:{type:Object,default:()=>[]},treeProps:{type:Object,default:()=>({value:"id",label:"label",children:"children"})},apiConfig:{type:Function},reqParams:{type:Object,default:()=>({})},autoLoad:{type:Boolean,default:!0},isMultiple:{type:Boolean,default:!0},hasFilter:{type:Boolean,default:!1},isListMode:{type:Boolean,default:!1},treeList:{type:Array,default:()=>[]},hasTreeLine:{type:Boolean,default:!0},includeParentSelected:{type:Boolean,default:!1}},emits:["handleCheck","handleDeleteNode","initFinish"],setup(r,{expose:d,emit:c}){const a=A(e.h),l=r,u=c,p=e.useAttrs(),v=()=>e.h(M.IconRighttop,{style:{color:"var(--text-color-2)",fontSize:"16px"}}),h=l.isMultiple?20:10,C=l.isMultiple?15:11,o=e.ref([]),m=e.ref(null),k=e.ref(null),V=e.computed(()=>l.treeProps.value),x=e.computed(()=>l.treeProps.label),y=e.computed(()=>l.treeProps.children),B=e.ref(!1),_=e.computed(()=>!l.isMultiple&&B.value),q=e.computed(()=>typeof l.apiConfig=="function"),j=()=>{let t=m.value?.getCheckedNodes(),n=t.map(f=>f[V.value]),s=[];return t.length&&!l.includeParentSelected&&(t=t.filter(f=>!f[y.value]),n=t.map(f=>f[V.value])),l.includeParentSelected&&(s=z(o.value,n)),{selectedNodeValues:n,selectedNodes:t,selectedParentNodes:s}};function z(t,n){const s=new Map;function f(i,g=[]){for(const N of i){const G=[...g,N];N.children&&N.children.length>0?f(N.children,G):n.includes(N.id)&&g.forEach(E=>{s.has(E.id)||s.set(E.id,{...E})})}}return f(t),Array.from(s.values())}const F=t=>{!l.isMultiple||l.isListMode||L()},$=(t,n)=>{l.isMultiple||l.isListMode||(B.value=!0,k.value=n.key,u("handleCheck",{selectedValue:[k.value],selectedNode:[n.data]}))},D=e.ref(""),O=t=>{m.value.filter(t)},K=(t,n)=>n[x.value].includes(t),R=t=>{let n=0;function s(f){for(const i of f){const g=i[y.value]&&i[y.value].length>0;l.includeParentSelected?n++:g||n++,g&&s(i[y.value])}}return s(t),n},H=e.computed(()=>R(o.value));function L(){const{selectedNodeValues:t,selectedNodes:n,selectedParentNodes:s}=j();u("handleCheck",{selectedValue:t,selectedNode:n,selectedParentNodes:s})}const Q=(t,n)=>{m.value?.setChecked(t,n),L()},P=()=>{p["default-checked-keys"]&&e.nextTick(()=>{L()})},U=t=>{u("handleDeleteNode",t)},b=t=>t?.map(n=>({...n,[y.value]:n[y.value]?.length?b(n[y.value]):void 0})),I=async()=>{q.value?l.apiConfig(l.reqParams)?.then(t=>{o.value=b(t?.data||[]),P(),w(l.modelValue),u("initFinish",o.value)}):T()},T=()=>{l.isListMode?o.value=b(l.treeList||[]):(o.value=b(l.treeList||[]),o.value.length&&(P(),w(l.modelValue)))},w=t=>{const n=t&&t.length&&t.map(s=>s[l.treeProps.value]);e.nextTick(()=>{m.value?.setCheckedKeys(n)})};return e.watch(()=>l.treeList,()=>{T()},{deep:!0}),e.watch(()=>l.modelValue,t=>{e.nextTick(()=>{w(t)})},{deep:!0}),e.onMounted(()=>{I()}),d({allNodeNumbers:H,loadData:I,setNodeCheckStatus:Q}),(t,n)=>(e.openBlock(),e.createElementBlock("div",Y,[r.hasFilter?(e.openBlock(),e.createElementBlock("div",Z,[e.createVNode(e.unref(S.ElInput),{modelValue:D.value,"onUpdate:modelValue":n[0]||(n[0]=s=>D.value=s),placeholder:"请输入",onInput:O},{prefix:e.withCtx(()=>[e.createVNode(e.unref(S.ElIcon),{size:16,color:"var(--neutral-color-12)",class:"mg-r-4"},{default:e.withCtx(()=>[e.createVNode(e.unref(M.IconSearch))]),_:1})]),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([r.hasFilter?"pd-l-8 pd-r-8":"","flex-1 overflow-hidden"])},[e.createVNode(e.unref(S.ElAutoResizer),null,{default:e.withCtx(({width:s,height:f})=>[e.createVNode(e.unref(S.ElTreeV2),e.mergeProps({ref_key:"treeRef",ref:m,height:f,width:s,data:o.value,props:r.treeProps,"node-key":V.value,"show-checkbox":r.isMultiple&&!r.isListMode,"item-size":34,indent:e.unref(h),"highlight-current":_.value,icon:r.isListMode?"":v,"filter-method":K},e.unref(p),{onNodeClick:$,onCheck:F}),{default:e.withCtx(({node:i})=>[r.isListMode?(e.openBlock(),e.createElementBlock("div",ee,[e.renderSlot(t.$slots,"node",{node:i,data:i.data},()=>[e.createElementVNode("span",null,e.toDisplayString(i.data[x.value]),1)],!0),e.createElementVNode("div",{class:"flex items-center",onClick:e.withModifiers(g=>U(i.data),["stop"])},[e.createVNode(e.unref(S.ElIcon),{size:14,color:"var(--neutral-color-5)"},{default:e.withCtx(()=>[e.createVNode(e.unref(M.IconDelete))]),_:1})],8,te)])):e.renderSlot(t.$slots,"node",{key:1,node:i,data:i.data},()=>[r.hasTreeLine?(e.openBlock(),e.createBlock(e.unref(a),{key:0,node:i,treeData:o.value,showLabelLine:!1,indent:e.unref(C)},null,8,["node","treeData","indent"])):(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(i.data[x.value]),1))],!0)]),empty:e.withCtx(()=>[e.createVNode(e.unref(J.IconEmpty))]),_:3},16,["height","width","data","props","node-key","show-checkbox","indent","highlight-current","icon"])]),_:3})],2)]))}}),oe=W._export_sfc(ne,[["__scopeId","data-v-1466e8fd"]]);exports.TreeSelect=oe;
@@ -0,0 +1 @@
1
+ "use strict";require('../assets/layout2.css');const e=require("vue"),N=require("element-plus"),M=require("color-message-lingyun-vue"),W=require("../IconEmpty.js"),X=require("./_plugin-vue_export-helper.BHFhmbuH.js");function Y(s){return{name:"element-tree-line",props:{node:{type:Object,required:!0},data:{type:Object},treeData:{type:Array},indent:{type:Number,default(){return 16}},showLabelLine:{type:Boolean,default:!0}},render(c){const u=s||c,r=this.getScopedSlot("default"),l=this.getScopedSlot("node-label"),h=this.getScopedSlot("after-node-label"),p=r?this.getScopedSlotValue(r,{node:this.node,data:this.data}):[l?this.getScopedSlotValue(l,{node:this.node,data:this.data}):u("span",{class:"element-tree-node-label"},this.node.label),this.showLabelLine?u("span",{class:"element-tree-node-label-line"}):null,this.getScopedSlotValue(h,{node:this.node,data:this.data})],y=[];let f=this.node;for(;f;){let o=f.parent;if(f.level===1&&!f.parent){if(!this.treeData||!Array.isArray(this.treeData))throw Error("if you using el-tree-v2 (Virtualized Tree) of element-plus,element-tree-line required data.");o={children:Array.isArray(this.treeData)?this.treeData.map(m=>({...m,key:m.id})):[],level:0,key:"node-0",parent:null}}if(o){const m=(o.children||o.childNodes).findIndex(k=>(k.key||k.id)===(f.key||f.id));y.unshift(m===(o.children||o.childNodes).length-1)}f=o}const C=[];for(let o=0;o<this.node.level;o++)y[o]&&this.node.level-1!==o||C.push(u("span",{class:{"element-tree-node-line-ver":!0,"last-node-isLeaf-line":y[o]&&this.node.level-1===o},style:{left:this.indent*o+"px"}}));return u("span",{class:"element-tree-node-label-wrapper"},[p].concat(C).concat([u("span",{class:"element-tree-node-line-hor",style:{width:(this.node.isLeaf?24:8)+"px",left:(this.node.level-1)*this.indent+"px"}})]))},methods:{getScopedSlot(c){if(!c)return null;const u=c.split("||");let r=null;for(let l=0;l<u.length;l++){const h=u[l],p=(this.$slots||{})[h];if(p){r=p;break}if(r=(this.$scopedSlots||{})[h],r)break}return r},getScopedSlotValue(c,u,r=null){return typeof c=="function"?c(u)||r:c||r}}}}function q(s){const c=Y(s);return s&&(c.methods.getScopedSlot=function(r){if(!r)return null;const l=r.split("||");let h=null;for(let p=0;p<l.length;p++){const y=l[p],f=(this.$slots||{})[y];if(f){h=f;break}}return h}),c}q();const Z={key:0,class:"mg-b-16"},ee={key:0,class:"list-item flex justify-between pd-l-6 pd-r-6 radius-8 items-center w-full"},te=["onClick"],le={key:1},ne=Object.assign({name:"TreeSelect"},{__name:"layout",props:{modelValue:{type:Object,default:()=>[]},treeProps:{type:Object,default:()=>({value:"id",label:"label",children:"children"})},apiConfig:{type:Function},reqParams:{type:Object,default:()=>({})},autoLoad:{type:Boolean,default:!0},isMultiple:{type:Boolean,default:!0},hasFilter:{type:Boolean,default:!1},isListMode:{type:Boolean,default:!1},treeList:{type:Array,default:()=>[]},hasTreeLine:{type:Boolean,default:!0},includeParentSelected:{type:Boolean,default:!1}},emits:["handleCheck","handleDeleteNode","initFinish"],setup(s,{expose:c,emit:u}){const r=q(e.h),l=s,h=u,p=e.useAttrs(),y=()=>e.h(M.IconRighttop,{style:{color:"var(--text-color-2)",fontSize:"16px"}}),f=l.isMultiple?20:10,C=l.isMultiple?15:11,o=e.ref([]),m=e.ref(null),k=e.ref(null),V=e.computed(()=>l.treeProps.value),L=e.computed(()=>l.treeProps.label),v=e.computed(()=>l.treeProps.children),B=e.ref(!1),z=e.computed(()=>!l.isMultiple&&B.value),F=e.computed(()=>typeof l.apiConfig=="function"),D=t=>String(t).includes("%")?t:t+"px",_=()=>{let t=m.value?.getCheckedNodes(),n=t.map(d=>d[V.value]),i=[];return t.length&&!l.includeParentSelected&&(t=t.filter(d=>!d[v.value]),n=t.map(d=>d[V.value])),l.includeParentSelected&&(i=j(o.value,n)),{selectedNodeValues:n,selectedNodes:t,selectedParentNodes:i}};function j(t,n){const i=new Map;function d(a,g=[]){for(const S of a){const J=[...g,S];S.children&&S.children.length>0?d(S.children,J):n.includes(S.id)&&g.forEach(E=>{i.has(E.id)||i.set(E.id,{...E})})}}return d(t),Array.from(i.values())}const $=t=>{!l.isMultiple||l.isListMode||x()},O=(t,n)=>{l.isMultiple||l.isListMode||(B.value=!0,k.value=n.key,h("handleCheck",{selectedValue:[k.value],selectedNode:[n.data]}))},P=e.ref(""),K=t=>{m.value.filter(t)},R=(t,n)=>n[L.value].includes(t),H=t=>{let n=0;function i(d){for(const a of d){const g=a[v.value]&&a[v.value].length>0;l.includeParentSelected?n++:g||n++,g&&i(a[v.value])}}return i(t),n},Q=e.computed(()=>H(o.value));function x(){const{selectedNodeValues:t,selectedNodes:n,selectedParentNodes:i}=_();h("handleCheck",{selectedValue:t,selectedNode:n,selectedParentNodes:i})}const U=(t,n)=>{m.value?.setChecked(t,n),x()},I=()=>{p["default-checked-keys"]&&e.nextTick(()=>{x()})},G=t=>{h("handleDeleteNode",t)},b=t=>t?.map(n=>({...n,[v.value]:n[v.value]?.length?b(n[v.value]):void 0})),T=async()=>{F.value?l.apiConfig(l.reqParams)?.then(t=>{o.value=b(t?.data||[]),I(),w(l.modelValue),h("initFinish",o.value)}):A()},A=()=>{l.isListMode?o.value=b(l.treeList||[]):(o.value=b(l.treeList||[]),o.value.length&&(I(),w(l.modelValue)))},w=t=>{const n=t&&t.length&&t.map(i=>i[l.treeProps.value]);e.nextTick(()=>{m.value?.setCheckedKeys(n)})};return e.watch(()=>l.treeList,()=>{A()},{deep:!0}),e.watch(()=>l.modelValue,t=>{e.nextTick(()=>{w(t)})},{deep:!0}),e.onMounted(()=>{T()}),c({allNodeNumbers:Q,loadData:T,setNodeCheckStatus:U}),(t,n)=>(e.openBlock(),e.createBlock(e.unref(N.ElAutoResizer),null,{default:e.withCtx(({width:i,height:d})=>[e.createElementVNode("div",{style:e.normalizeStyle({width:D(i),height:D(d)})},[s.hasFilter?(e.openBlock(),e.createElementBlock("div",Z,[e.createVNode(e.unref(N.ElInput),{modelValue:P.value,"onUpdate:modelValue":n[0]||(n[0]=a=>P.value=a),placeholder:"请输入",onInput:K},{prefix:e.withCtx(()=>[e.createVNode(e.unref(N.ElIcon),{size:16,color:"var(--neutral-color-12)",class:"mg-r-4"},{default:e.withCtx(()=>[e.createVNode(e.unref(M.IconSearch))]),_:1})]),_:1},8,["modelValue"])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(s.hasFilter?"pd-l-8 pd-r-8":"")},[e.createVNode(e.unref(N.ElTreeV2),e.mergeProps({ref_key:"treeRef",ref:m,height:s.hasFilter?d-48:d,data:o.value,props:s.treeProps,"node-key":V.value,"show-checkbox":s.isMultiple&&!s.isListMode,"item-size":34,indent:e.unref(f),"highlight-current":z.value,icon:s.isListMode?"":y,"filter-method":R},e.unref(p),{onNodeClick:O,onCheck:$}),{default:e.withCtx(({node:a})=>[s.isListMode?(e.openBlock(),e.createElementBlock("div",ee,[e.renderSlot(t.$slots,"node",{node:a,data:a.data},()=>[e.createElementVNode("span",null,e.toDisplayString(a.data[L.value]),1)],!0),e.createElementVNode("div",{class:"flex items-center",onClick:e.withModifiers(g=>G(a.data),["stop"])},[e.createVNode(e.unref(N.ElIcon),{size:14,color:"var(--neutral-color-5)"},{default:e.withCtx(()=>[e.createVNode(e.unref(M.IconDelete))]),_:1})],8,te)])):e.renderSlot(t.$slots,"node",{key:1,node:a,data:a.data},()=>[s.hasTreeLine?(e.openBlock(),e.createBlock(e.unref(r),{key:0,node:a,treeData:o.value,showLabelLine:!1,indent:e.unref(C)},null,8,["node","treeData","indent"])):(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(a.data[L.value]),1))],!0)]),empty:e.withCtx(()=>[e.createVNode(e.unref(W.IconEmpty))]),_:3},16,["height","data","props","node-key","show-checkbox","indent","highlight-current","icon"])],2)],4)]),_:3}))}}),oe=X._export_sfc(ne,[["__scopeId","data-v-1d5f5af4"]]);exports.TreeSelect=oe;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "color-star-custom-components",
3
- "version": "0.0.11",
3
+ "version": "0.0.13",
4
4
  "keywords": [
5
5
  "color-star-custom-components",
6
6
  "component library",
@@ -174,10 +174,10 @@
174
174
  "peerDependencies": {
175
175
  "axios": "^1.8.2",
176
176
  "vue": "^3.5.25",
177
- "color-star-atom-style": "0.0.2",
178
- "color-message-lingyun-vue": "0.0.30",
179
177
  "color-message-aibox-vue": "0.0.76",
180
- "color-star-custom-methods": "0.0.14"
178
+ "color-star-atom-style": "0.0.2",
179
+ "color-star-custom-methods": "0.0.15",
180
+ "color-message-lingyun-vue": "0.0.30"
181
181
  },
182
182
  "optionalDependencies": {
183
183
  "@ast-grep/napi-linux-x64-musl": "^0.39.6",