物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
36 KiB

  1. import{c as gn}from"./context-KbjOeZY_.js";import{N as Vn,i as Gn}from"./icon-switch.cssr-BCTOxvoq.js";import{N as Wn}from"./Loading-CByrJVhO.js";import{N as Xn}from"./Icon-Ck7Ij_E6.js";import{d as de,G as g,i as me,s as B,c as _,v as Yn,E as Ce,O as C,t as Fe,P as Qn,Q as Oe}from"./index-bVOhw2NF.js";import{_ as Jn}from"./Checkbox-DAl6jmZx.js";import{r as Xe}from"./render-BxFg9-7m.js";import{i as Zn}from"./is-browser-DqcmxZSF.js";import{u as M}from"./use-memo-BgHp9YyU.js";import{r as et}from"./index-L98eAIry.js";import{h as Be}from"./happens-in-CM8LO42l.js";import{p as vn,g as Ye,d as Ke}from"./index-C-nsH7mf.js";import{N as nt}from"./Button-B7xQqa1N.js";import{c as A,b as Q,d as F,a as be,e as ke,u as tt,f as yn,h as lt}from"./light-Cua7cqmF.js";import{f as rn}from"./fade-in-height-expand.cssr-Bx380MfO.js";import{u as ot}from"./use-rtl-CRyak7TN.js";import{t as it}from"./light-D6zEcTvP.js";import{c as an,b as rt,f as dn,d as sn}from"./Select-BpXzRZdb.js";import{u as Ie}from"./use-merged-state-CzrzZJbg.js";import{a as cn}from"./resolve-slot-Dzko3qih.js";import{V as at}from"./FocusDetector-DcygY9Tk.js";import{X as un}from"./Scrollbar-DVK2lT9w.js";import{c as z}from"./call-f2ri57Kd.js";function bn(e){return typeof e=="string"?`s-${e}`:`n-${e}`}const dt=de({name:"Switcher",render(){return g("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},g("path",{d:"M12 8l10 8l-10 8z"}))}}),kn=gn("n-tree-select"),De=gn("n-tree"),st=de({name:"NTreeSwitcher",props:{clsPrefix:{type:String,required:!0},indent:{type:Number,required:!0},expanded:Boolean,selected:Boolean,hide:Boolean,loading:Boolean,onClick:Function,tmNode:{type:Object,required:!0}},setup(e){const{renderSwitcherIconRef:l}=me(De,null);return()=>{const{clsPrefix:c,expanded:u,hide:s,indent:a,onClick:b}=e;return g("span",{"data-switcher":!0,class:[`${c}-tree-node-switcher`,u&&`${c}-tree-node-switcher--expanded`,s&&`${c}-tree-node-switcher--hide`],style:{width:`${a}px`},onClick:b},g("div",{class:`${c}-tree-node-switcher__icon`},g(Vn,null,{default:()=>{if(e.loading)return g(Wn,{clsPrefix:c,key:"loading",radius:85,strokeWidth:20});const{value:k}=l;return k?k({expanded:e.expanded,selected:e.selected,option:e.tmNode.rawNode}):g(Xn,{clsPrefix:c,key:"switcher"},{default:()=>g(dt,null)})}})))}}}),ct=de({name:"NTreeNodeCheckbox",props:{clsPrefix:{type:String,required:!0},indent:{type:Number,required:!0},right:Boolean,focusable:Boolean,disabled:Boolean,checked:Boolean,indeterminate:Boolean,onCheck:Function},setup(e){const l=me(De);function c(s){const{onCheck:a}=e;a&&a(s)}function u(s){c(s)}return{handleUpdateValue:u,mergedTheme:l.mergedThemeRef}},render(){const{clsPrefix:e,mergedTheme:l,checked:c,indeterminate:u,disabled:s,focusable:a,indent:b,handleUpdateValue:k}=this;return g("span",{class:[`${e}-tree-node-checkbox`,this.right&&`${e}-tree-node-checkbox--right`],style:{width:`${b}px`},"data-checkbox":!0},g(Jn,{focusable:a,disabled:s,theme:l.peers.Checkbox,themeOverrides:l.peerOverrides.Checkbox,checked:c,indeterminate:u,onUpdateChecked:k}))}}),ut=de({name:"TreeNodeContent",props:{clsPrefix:{type:String,required:!0},disabled:Boolean,checked:Boolean,selected:Boolean,onClick:Function,onDragstart:Function,tmNode:{type:Object,required:!0},nodeProps:Object},setup(e){const{renderLabelRef:l,renderPrefixRef:c,renderSuffixRef:u,labelFieldRef:s}=me(De),a=B(null);function b(y){const{onClick:m}=e;m&&m(y)}function k(y){b(y)}return{selfRef:a,renderLabel:l,renderPrefix:c,renderSuffix:u,labelField:s,handleClick:k}},render(){const{clsPrefix:e,labelField:l,nodeProps:c,checked:u=!1,selected:s=!1,renderLabel:a,renderPrefix:b,renderSuffix:k,handleClick:y,onDragstart:m,tmNode:{rawNode:v,rawNode:{prefix:P,suffix:x,[l]:T}}}=this;return g("span",Object.assign({},c,{ref:"selfRef",class:[`${e}-tree-node-content`,c==null?void 0:c.class],onClick:y,draggable:m===void 0?void 0:!0,onDragstart:m}),b||P?g("div",{class:`${e}-tree-node-content__prefix`},b?b({option:v,selected:s,checked:u}):Xe(P)):null,g("div",{class:`${e}-tree-node-content__text`},a?a({option:v,selected:s,checked:u}):Xe(T)),k||x?g("div",{class:`$
  2. font-size: var(--n-font-size);
  3. outline: none;
  4. `,[Q("ul, li",`
  5. margin: 0;
  6. padding: 0;
  7. list-style: none;
  8. `),Q(">",[A("tree-node",[Q("&:first-child","margin-top: 0;")])]),A("tree-motion-wrapper",[F("expand",[rn({duration:"0.2s"})]),F("collapse",[rn({duration:"0.2s",reverse:!0})])]),A("tree-node-wrapper",`
  9. box-sizing: border-box;
  10. padding: var(--n-node-wrapper-padding);
  11. `),A("tree-node",`
  12. transform: translate3d(0,0,0);
  13. position: relative;
  14. display: flex;
  15. border-radius: var(--n-node-border-radius);
  16. transition: background-color .3s var(--n-bezier);
  17. `,[F("highlight",[A("tree-node-content",[be("text","border-bottom-color: var(--n-node-text-color-disabled);")])]),F("disabled",[A("tree-node-content",`
  18. color: var(--n-node-text-color-disabled);
  19. cursor: not-allowed;
  20. `)]),ke("disabled",[F("clickable",[A("tree-node-content",`
  21. cursor: pointer;
  22. `)])])]),F("block-node",[A("tree-node-content",`
  23. flex: 1;
  24. min-width: 0;
  25. `)]),ke("block-line",[A("tree-node",[ke("disabled",[A("tree-node-content",[Q("&:hover","background: var(--n-node-color-hover);")]),F("selectable",[A("tree-node-content",[Q("&:active","background: var(--n-node-color-pressed);")])]),F("pending",[A("tree-node-content",`
  26. background: var(--n-node-color-hover);
  27. `)]),F("selected",[A("tree-node-content","background: var(--n-node-color-active);")])]),F("selected",[A("tree-node-content","background: var(--n-node-color-active);")])])]),F("block-line",[A("tree-node",[ke("disabled",[Q("&:hover","background: var(--n-node-color-hover);"),F("pending",`
  28. background: var(--n-node-color-hover);
  29. `),F("selectable",[ke("selected",[Q("&:active","background: var(--n-node-color-pressed);")])]),F("selected","background: var(--n-node-color-active);")]),F("selected","background: var(--n-node-color-active);"),F("disabled",`
  30. cursor: not-allowed;
  31. `)])]),A("tree-node-indent",`
  32. flex-grow: 0;
  33. flex-shrink: 0;
  34. `,[F("show-line","position: relative",[Q("&::before",`
  35. position: absolute;
  36. left: 50%;
  37. border-left: 1px solid var(--n-line-color);
  38. transition: border-color .3s var(--n-bezier);
  39. transform: translate(-50%);
  40. content: "";
  41. top: var(--n-line-offset-top);
  42. bottom: var(--n-line-offset-bottom);
  43. `),F("last-child",[Q("&::before",`
  44. bottom: 50%;
  45. `)]),F("is-leaf",[Q("&::after",`
  46. position: absolute;
  47. content: "";
  48. left: calc(50% + 0.5px);
  49. right: 0;
  50. bottom: 50%;
  51. transition: border-color .3s var(--n-bezier);
  52. border-bottom: 1px solid var(--n-line-color);
  53. `)])]),ke("show-line","height: 0;")]),A("tree-node-switcher",`
  54. cursor: pointer;
  55. display: inline-flex;
  56. flex-shrink: 0;
  57. height: var(--n-node-content-height);
  58. align-items: center;
  59. justify-content: center;
  60. transition: transform .15s var(--n-bezier);
  61. vertical-align: bottom;
  62. `,[be("icon",`
  63. position: relative;
  64. height: 14px;
  65. width: 14px;
  66. display: flex;
  67. color: var(--n-arrow-color);
  68. transition: color .3s var(--n-bezier);
  69. font-size: 14px;
  70. `,[A("icon",[Qe]),A("base-loading",`
  71. color: var(--n-loading-color);
  72. position: absolute;
  73. left: 0;
  74. top: 0;
  75. right: 0;
  76. bottom: 0;
  77. `,[Qe]),A("base-icon",[Qe])]),F("hide","visibility: hidden;"),F("expanded","transform: rotate(90deg);")]),A("tree-node-checkbox",`
  78. display: inline-flex;
  79. height: var(--n-node-content-height);
  80. vertical-align: bottom;
  81. align-items: center;
  82. justify-content: center;
  83. `),A("tree-node-content",`
  84. user-select: none;
  85. position: relative;
  86. display: inline-flex;
  87. align-items: center;
  88. min-height: var(--n-node-content-height);
  89. box-sizing: border-box;
  90. line-height: var(--n-line-height);
  91. vertical-align: bottom;
  92. padding: 0 6px 0 4px;
  93. cursor: default;
  94. border-radius: var(--n-node-border-radius);
  95. color: var(--n-node-text-color);
  96. transition:
  97. color .3s var(--n-bezier),
  98. background-color .3s var(--n-bezier),
  99. border-color .3s var(--n-bezier);
  100. `,[Q("&:last-child","margin-bottom: 0;"),be("prefix",`
  101. display: inline-flex;
  102. margin-right: 8px;
  103. `),be("text",`
  104. border-bottom: 1px solid #0000;
  105. transition: border-color .3s var(--n-bezier);
  106. flex-grow: 1;
  107. max-width: 100%;
  108. `),be("suffix",`
  109. display: inline-flex;
  110. `)]),be("empty","margin: auto;")]);var mt=function(e,l,c,u){function s(a){return a instanceof c?a:new c(function(b){b(a)})}return new(c||(c=Promise))(function(a,b){function k(v){try{m(u.next(v))}catch(P){b(P)}}function y(v){try{m(u.throw(v))}catch(P){b(P)}}function m(v){v.done?a(v.value):s(v.value).then(k,y)}m((u=u.apply(e,[])).next())})};function hn(e,l,c,u){return{getIsGroup(){return!1},getKey(a){return a[e]},getChildren:u||(a=>a[l]),getDisabled(a){return!!(a[c]||a.checkboxDisabled)}}}const xt={allowCheckingNotLoaded:Boolean,filter:Function,defaultExpandAll:Boolean,expandedKeys:Array,keyField:{type:String,default:"key"},labelField:{type:String,default:"label"},childrenField:{type:String,default:"children"},disabledField:{type:String,default:"disabled"},defaultExpandedKeys:{type:Array,default:()=>[]},indeterminateKeys:Array,renderSwitcherIcon:Function,onUpdateIndeterminateKeys:[Function,Array],"onUpdate:indeterminateKeys":[Function,Array],onUpdateExpandedKeys:[Function,Array],"onUpdate:expandedKeys":[Function,Array],overrideDefaultNodeClickBehavior:Function},wt=Object.assign(Object.assign(Object.assign(Object.assign({},yn.props),{accordion:Boolean,showIrrelevantNodes:{type:Boolean,default:!0},data:{type:Array,default:()=>[]},expandOnDragenter:{type:Boolean,default:!0},expandOnClick:Boolean,checkOnClick:{type:[Boolean,Function],default:!1},cancelable:{type:Boolean,default:!0},checkable:Boolean,draggable:Boolean,blockNode:Boolean,blockLine:Boolean,showLine:Boolean,disabled:Boolean,checkedKeys:Array,defaultCheckedKeys:{type:Array,default:()=>[]},selectedKeys:Array,defaultSelectedKeys:{type:Array,default:()=>[]},multiple:Boolean,pattern:{type:String,default:""},onLoad:Function,cascade:Boolean,selectable:{type:Boolean,default:!0},scrollbarProps:Object,indent:{type:Number,default:24},allowDrop:{type:Function,default:ft},animated:{type:Boolean,default:!0},checkboxPlacement:{type:String,default:"left"},virtualScroll:Boolean,watchProps:Array,renderLabel:Function,renderPrefix:Function,renderSuffix:Function,nodeProps:Function,keyboard:{type:Boolean,default:!0},getChildren:Function,onDragenter:[Function,Array],onDragleave:[Function,Array],onDragend:[Function,Array],onDragstart:[Function,Array],onDragover:[Function,Array],onDrop:[Function,Array],onUpdateCheckedKeys:[Function,Array],"onUpdate:checkedKeys":[Function,Array],onUpdateSelectedKeys:[Function,Array],"onUpdate:selectedKeys":[Function,Array]}),xt),{internalTreeSelect:Boolean,internalScrollable:Boolean,internalScrollablePadding:String,internalRenderEmpty:Function,internalHighlightKeySet:Object,internalUnifySelectCheck:Boolean,internalCheckboxFocusable:{type:Boolean,default:!0},internalFocusable:{type:Boolean,default:!0},checkStrategy:{type:String,default:"all"},leafOnly:Boolean}),qt=de({name:"Tree",props:wt,setup(e){const{mergedClsPrefixRef:l,inlineThemeDisabled:c,mergedRtlRef:u}=tt(e),s=ot("Tree",u,l),a=yn("Tree","-tree",kt,it,e,l),b=B(null),k=B(null),y=B(null);function m(){var n;return(n=y.value)===null||n===void 0?void 0:n.listElRef}function v(){var n;return(n=y.value)===null||n===void 0?void 0:n.itemsElRef}const P=_(()=>{const{filter:n}=e;if(n)return n;const{labelField:t}=e;return(o,r)=>{if(!o.length)return!0;const d=r[t];return typeof d=="string"?d.toLowerCase().includes(o.toLowerCase()):!1}}),x=_(()=>{const{pattern:n}=e;return n?!n.length||!P.value?{filteredTree:e.data,highlightKeySet:null,expandedKeys:void 0}:vt(e.data,P.value,n,e.keyField,e.childrenField):{filteredTree:e.data,highlightKeySet:null,expandedKeys:void 0}}),T=_(()=>an(e.showIrrelevantNodes?e.data:x.value.filteredTree,hn(e.keyField,e.childrenField,e.disabledField,e.getChildren))),N=me(kn,null),w=e.internalTreeSelect?N.dataTreeMate:_(()=>e.showIrrelevantNodes?T.value:an(e.data,hn(e.keyField,e.childrenField,e.disabledField,e.getChildren))),{watchProps:h}=e,f=B([]);h!=null&&h.includes("defaultCheckedKeys")?Ce(()=>{f.value=e.defaultCheckedKeys}):f.value=e.defaultCheckedKeys;const K=C(e,"checkedKeys"),D=Ie(K,f),$=_(()=>w.value.getCheckedKeys(D.value,{cascade:e.cascade,allowNotLoaded:e.allowCheckingNotLoaded})),