UNPKG

@jecloud/func

Version:

JECloud 功能库

1 lines 3.54 kB
var t=this&&this.__spreadArrays||function(){for(var t=0,n=0,o=arguments.length;n<o;n++)t+=arguments[n].length;var r=Array(t),e=0;for(n=0;n<o;n++)for(var u=arguments[n],i=0,l=u.length;i<l;i++,e++)r[e]=u[i];return r};import{createTextVNode as n,mergeProps as o,isVNode as r,createVNode as e}from"vue";import{Button as u,Dropdown as i,Menu as l}from"@jecloud/ui";import{split as c,pick as a,isNotEmpty as d}from"@jecloud/utils";import{useInjectFunc as s}from"../../../func/src/context";import{useFuncConfig as f}from"../../../func-config/hooks/use-func-config";import{FuncButtonTypeEnum as p}from"../../../data/enum";function g(t){return"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!r(t)}export function useButtons(r){var m=r.$grid,h=r.type,v=s(),y=v.getFuncData(),B=v.action.eventAction.bindButtonEvents,b=f({parent:v,disabled:"func"!==h}).configMenuSlot,x={barButtons:[],moreButtons:[],multiButtons:[],groupButtons:[]};y.getData("buttons.grid").forEach((function(t){var n,o=c(t.gridBarPosition,",");d(t.children)&&(n=x.groupButtons).push.apply(n,t.children),(o.includes("BAR")||0===o.length)&&x.barButtons.push(t),o.includes("MORE")&&x.moreButtons.push(t),o.includes("MULTI")&&x.multiButtons.push(t)})),x.moreButtons.length&&x.barButtons.push({icon:"fal fa-ellipsis-h-alt",code:"__more__",children:x.moreButtons});var C=t(x.moreButtons,x.groupButtons),_={},k=function(t){var n,o=t.key,r=_[o];if(!r){var e=C.find((function(t){return t.code===o}));r=_[o]=B({type:"grid",button:e})}null===(n=r.onClick)||void 0===n||n.call(r)},S=function(t){return t.filter((function(t){return!t.hidden})).map((function(t){return"__more__"===t.code?e(i,{trigger:["click"]},{default:function(){return[e(u,{icon:t.icon,"data-code":t.code,class:"bgcolor-grey"},null)]},overlay:function(){var n;return e(l,{onClick:k},g(n=t.children.map((function(t){return e(l.Item,{icon:t.icon,key:t.code,style:"padding-right:17px;"},{default:function(){return[t.text]}})})))?n:{default:function(){return[n]}})}}):e(u.Group,null,{default:function(){var n,r;return[e(u,o({type:"primary","data-code":t.code,loading:t.loading,style:(null===(n=t.children)||void 0===n?void 0:n.length)>0?"padding-right:4px;":""},a(t,["icon","iconColor","bgColor","fontColor","borderColor"]),B({type:"grid",button:t})),{default:function(){return[t.text]}}),(null===(r=t.children)||void 0===r?void 0:r.length)>0?e(i,{trigger:["click"]},{default:function(){return[e(u,o({type:"primary",icon:"fal fa-chevron-down",style:"padding-left:4px;padding-right:10px;"},a(t,["iconColor","bgColor","fontColor","borderColor"])),null)]},overlay:function(){var n;return e(l,{onClick:k},g(n=t.children.map((function(t){return e(l.Item,{icon:t.icon,key:t.code,style:"padding-right:17px;"},{default:function(){return[t.text]}})})))?n:{default:function(){return[n]}})}}):null]}})}))},j=function(){m.value.selection=[],m.value.clearSelectedRecords()},I=function(){var t=m.value.selection.length;return[e("div",{class:"multiple-num"},[e("span",{class:"context"},[n("已选择"),e("span",{class:"num"},[t]),n("条")]),e("i",{onClick:j,class:"icon jeicon jeicon-times"},null)])]};return{tbarButtonSlot:function(){return S(x.barButtons)},multiButtonSlot:function(){return I().concat(S(x.multiButtons))},configMenuSlot:b,insertButtonSlot:function(){var t=x.barButtons.find((function(t){return t.code===p.GRID_INSERT_BUTTON}));return t&&!v.store.readOnly?e(u,o({class:"bgcolor-grey",style:"padding:4px 10px;",icon:"fal fa-plus","data-code":t.code},B({type:"grid",button:t})),null):null},tbarBtns:x}}