@jecloud/ui
Version:
JECloud UI库,基于ant-design-vue封装
1 lines • 1.71 kB
JavaScript
import{createVNode as e}from"vue";import{cascadeTree as o,pinyin as l,isFunction as i}from"@jecloud/utils";import{Search as t}from"../../../search";export function useSearch(r){var d,n,a=r.props,c=r.context,s=c.slots,u=c.emit,v=function(e,o){var l=r.getRowById(o.id);r.setTreeExpand4Path({row:l,path:o.nodePath,async:o.async,expand:!0}).then((function(){r.setSelectRow(l),r.scrollToRow(l),u("search-select",{$tree:r,row:l,option:o})}))},h=null!==(n=null===(d=a.search)||void 0===d?void 0:d.filter)&&void 0!==n?n:function(e,o){var i,t,r,d,n=null!==(t=null===(i=e.code)||void 0===i?void 0:i.toString().toLocaleLowerCase())&&void 0!==t?t:"",a=null!==(d=null===(r=e.text)||void 0===r?void 0:r.toString().toLocaleLowerCase())&&void 0!==d?d:"",c=l(a,"pinyin");return!!(n.includes(o)||a.includes(o)||c.includes(o))},p=function(e,l){var t,r,d,n,c,s;if(i(a.search)||i(null===(t=a.search)||void 0===t?void 0:t.search)){(null!==(d=null===(r=a.search)||void 0===r?void 0:r.search)&&void 0!==d?d:a.search)(e,l)}else{var u=[];e=e.toLocaleLowerCase(),o(null!==(s=null!==(n=a.data)&&void 0!==n?n:null===(c=a.store)||void 0===c?void 0:c.data)&&void 0!==s?s:[],(function(o){h(o,e)&&u.push({id:o.id,text:o.text,code:o.code,value:o.text,item:o})})),l(u)}};return{searchSlot:function(){var o,l,i,r,d,n;return[null===(o=s.tbar)||void 0===o?void 0:o.call(s),a.search?e("div",{class:"je-tree-search-wrapper",style:null===(l=a.search)||void 0===l?void 0:l.style},[e(t,{labelField:"text",valueField:"code",onSearch:p,onSelect:v,subLabelField:null!==(r=null===(i=a.search)||void 0===i?void 0:i.subLabelField)&&void 0!==r?r:"code",placeholder:null!==(n=null===(d=a.search)||void 0===d?void 0:d.placeholder)&&void 0!==n?n:""},null)]):null]}}}