mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2026-01-05 20:48:11 +00:00
2 lines
4.7 KiB
JavaScript
2 lines
4.7 KiB
JavaScript
import{E as V,a as L,s as B}from"./index-757074f4.js";import{_ as p}from"./index-e63aa950.js";import{u as F,_ as H}from"./base-0e92f4db.js";import{p as E}from"./index-fd563016.js";import{Y as j,c as y,A as M,d as S,K as R,w,R as U,D as q,r as P,M as g,o as z,P as N}from"./runtime-core.esm-bundler-67034826.js";import{U as O}from"./event-a537c4cb.js";import{i as D}from"./isEqual-97c7f2d5.js";const Y=(e,{attrs:c},{tree:i,key:d})=>{const r=F("tree-select"),s={...E(j(e),Object.keys(V.props)),...c,valueKey:d,popperClass:y(()=>{const a=[r.e("popper")];return e.popperClass&&a.push(e.popperClass),a.join(" ")}),filterMethod:(a="")=>{e.filterMethod&&e.filterMethod(a),M(()=>{var f;(f=i.value)==null||f.filter(a)})},onVisibleChange:a=>{var f;(f=c.onVisibleChange)==null||f.call(c,a),e.filterable&&a&&s.filterMethod()}};return s},$=S({extends:L,setup(e,c){const i=L.setup(e,c);delete i.selectOptionClick;const d=R().proxy;return M(()=>{i.select.cachedOptions.get(d.value)||i.select.onOptionCreate(d)}),i},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function A(e){return e||e===0}function T(e){return Array.isArray(e)&&e.length}function x(e){return Array.isArray(e)?e:A(e)?[e]:[]}function K(e,c,i,d,r){for(let s=0;s<e.length;s++){const a=e[s];if(c(a,s,e,r))return d?d(a,s,e,r):a;{const f=i(a);if(T(f)){const n=K(f,c,i,d,a);if(n)return n}}}}function I(e,c,i,d){for(let r=0;r<e.length;r++){const s=e[r];c(s,r,e,d);const a=i(s);T(a)&&I(a,c,i,s)}}const G=(e,{attrs:c,slots:i,emit:d},{select:r,tree:s,key:a})=>{w(()=>e.modelValue,()=>{e.showCheckbox&&M(()=>{const t=s.value;t&&!D(t.getCheckedKeys(),x(e.modelValue))&&t.setCheckedKeys(x(e.modelValue))})},{immediate:!0,deep:!0});const f=y(()=>({value:a.value,label:"label",children:"children",disabled:"disabled",isLeaf:"isLeaf",...e.props})),n=(t,l)=>{var o;const u=f.value[t];return U(u)?u(l,(o=s.value)==null?void 0:o.getNode(n("value",l))):l[u]},C=x(e.modelValue).map(t=>K(e.data||[],l=>n("value",l)===t,l=>n("children",l),(l,o,u,h)=>h&&n("value",h))).filter(t=>A(t)),k=y(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];const t=[];return I(e.data.concat(e.cacheData),l=>{const o=n("value",l);t.push({value:o,currentLabel:n("label",l),isDisabled:n("disabled",l)})},l=>n("children",l)),t});return{...E(j(e),Object.keys(p.props)),...c,nodeKey:a,expandOnClickNode:y(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:y(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(C):C),renderContent:(t,{node:l,data:o,store:u})=>t($,{value:n("value",o),label:n("label",o),disabled:n("disabled",o)},e.renderContent?()=>e.renderContent(t,{node:l,data:o,store:u}):i.default?()=>i.default({node:l,data:o,store:u}):void 0),filterNodeMethod:(t,l,o)=>{var u;return e.filterNodeMethod?e.filterNodeMethod(t,l,o):t?(u=n("label",l))==null?void 0:u.includes(t):!0},onNodeClick:(t,l,o)=>{var u,h,m;if((u=c.onNodeClick)==null||u.call(c,t,l,o),!(e.showCheckbox&&e.checkOnClickNode))if(!e.showCheckbox&&(e.checkStrictly||l.isLeaf)){if(!n("disabled",t)){const _=(h=r.value)==null?void 0:h.options.get(n("value",t));(m=r.value)==null||m.handleOptionSelect(_,!0)}}else e.expandOnClickNode&&o.proxy.handleExpandIconClick()},onCheck:(t,l)=>{var o;(o=c.onCheck)==null||o.call(c,t,l);const u=n("value",t);if(e.checkStrictly)d(O,e.multiple?l.checkedKeys:l.checkedKeys.includes(u)?u:void 0);else if(e.multiple)d(O,s.value.getCheckedKeys(!0));else{const h=K([t],v=>!T(n("children",v))&&!n("disabled",v),v=>n("children",v)),m=h?n("value",h):void 0,_=A(e.modelValue)&&!!K([t],v=>n("value",v)===e.modelValue,v=>n("children",v));d(O,m===e.modelValue||_?void 0:m)}},cacheOptions:k}};var J=S({props:{data:{type:Array,default:()=>[]}},setup(e){const c=q(B);return w(()=>e.data,()=>{e.data.forEach(i=>{c.cachedOptions.has(i.value)||c.cachedOptions.set(i.value,i)}),c.setSelected()},{immediate:!0,deep:!0}),()=>{}}});const Q=S({name:"ElTreeSelect",inheritAttrs:!1,props:{...V.props,...p.props,cacheData:{type:Array,default:()=>[]}},setup(e,c){const{slots:i,expose:d}=c,r=P(),s=P(),a=y(()=>e.nodeKey||e.valueKey||"value"),f=Y(e,c,{select:r,tree:s,key:a}),{cacheOptions:n,...C}=G(e,c,{select:r,tree:s,key:a}),k=g({});return d(k),z(()=>{Object.assign(k,{...E(s.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...E(r.value,["focus","blur"])})}),()=>N(V,g({...f,ref:t=>r.value=t}),{...i,default:()=>[N(J,{data:n.value}),N(p,g({...C,ref:t=>s.value=t}))]})}});var b=H(Q,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tree-select/src/tree-select.vue"]]);b.install=e=>{e.component(b.name,b)};const W=b,ae=W;export{ae as E};
|