UNPKG

@jecloud/func

Version:

JECloud 功能库

1 lines 4.3 kB
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var n,t=1,o=arguments.length;t<o;t++)for(var r in n=arguments[t])Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e},e.apply(this,arguments)};import{createVNode as n}from"vue";import{nextTick as t,onMounted as o,reactive as r,ref as i,watch as u}from"vue";import{useGridStore as d}from"../../../data/store/grid";import{getFuncCache as l}from"../../../func-util";import{useInjectFunc as c}from"../../../func/src/context";import{useFuncQuery as a}from"./use-func-query";import{useFuncCommon as s}from"../../../func-manager/hooks/use-func-common";import{Grid as f,Hooks as g}from"@jecloud/ui";import{useColumn as p}from"./use-column";import{FuncChildrenLayoutEnum as m,FuncButtonTypeEnum as h}from"../../../func-util";import{useFuncDataEvents as v}from"../../../func-manager/events/func-data-events";import{QueryTypeEnum as y}from"../../../func-util";import{getDDItemCache as O,isNotEmpty as b}from"@jecloud/utils";export function useGrid(p){var v=p.props,y=p.context,O=v.funcCode,R=v.type,$=y.emit,D=y.expose,j=i(),w=i(),B=c(),E=l(O),_=E.info.gridOptions,k=_.sort||v.enableSort||"hidden"===_.pagePostion,I=d(e({$func:B,funcData:E,pagerHidden:k},v)),S=i(E.getData("buttons.grid")),T=r({}),x=e(e({},s({funcCode:O,props:v,context:y})),{type:R,selection:w,store:I,$func:B,getPlugin:function(){return j.value},reset:function(){G().then((function(){I.load()}))},setReadOnly:function(e){x.getButtons().forEach((function(n){n.code===h.GRID_EDIT_BUTTON||n.noReadOnly||(n.hidden=e)})),t((function(){Object.values(x.getChilds()).forEach((function(n){n.readOnly=e}))})),T.editConfig.enabled=!e,b(T.draggable,!0)&&(T.draggable=!e)},getButtons:function(e){return e?S.value.find((function(n){return n.code===e})):S.value},setChildVisible:function(e,n){var t=x.getChilds(e);t&&(t.hidden=!n)},setChildReadOnly:function(e,n){var t=x.getChilds(e);t&&(t.readOnly=n)},setButtonVisible:function(e,n){var t=x.getButtons(e);t&&(t.hidden=!n)},getChilds:function(e){var n={};return Object.values(B.getFuncChild()).forEach((function(e){[m.GRID_INNER_HORIZONTAL,m.GRID_OUTER_HORIZONTAL].includes(e.layout)&&(n[e.code]=e)})),e?n[e]:n}});Object.assign(x,g.useExtendMethods({plugin:j,keys:f.MethodKeys}));var N=a({$grid:x,$func:B}),A=N.setQuerys,G=N.initQuerys;Object.assign(x,{setQuerys:A}),D(x),u((function(){var e;return null===(e=j.value)||void 0===e?void 0:e.selection}),(function(e){w.value=e}),{deep:!0}),u((function(){return v.readOnly}),(function(){x.setReadOnly(v.readOnly)})),o((function(){t((function(){G().then((function(){v.autoLoad?I.load().then((function(){$("rendered",{$grid:x})})):$("rendered",{$grid:x})})),v.readOnly&&x.setReadOnly(!0)}))}));var P=E.getValidRules({type:"grid",$grid:x,$func:B}),Q=_.helpMessage;return Object.assign(T,e({editRules:P},C({props:v,$func:B,$grid:x}))),{$plugin:j,$func:B,emtpySlot:function(){return Q?n("div",{class:"je-func-help-message"},[n("div",{class:"content"},[Q])]):null},gridAttrs:T,store:I}}function C(e){var n,t,o=e.props,r=e.$func,i=e.$grid,u=r.getFuncData(),d=u.info.gridOptions,l=v({$func:r}).onGridSort,c=d.pagePostion,a=d.hideRightBorder,s=d.hideBottomBorder,f=d.multiple,g=d.sort,m=d.rowEdit,h=d.size,b=d.stripe,C={size:null!==(n=o.size)&&void 0!==n?n:h,stripe:b},R=!0;["left","right"].includes(c)?R={align:c}:"hidden"===c&&(R=!1),C.pagerConfig=R;var $=!0;return s&&a?$="outer":s?$="vertical":a&&($="default"),C.border=$,C.multiple=null!==(t=o.multiple)&&void 0!==t?t:f,C.allowDeselect=!0,C.multiple&&(C.rowConfig={isCurrent:!1},C.highlightCurrentRow=!1),o.editable&&(g||o.enableSort)&&(C.draggable=!0,C.onDrop=l,C.pagerConfig=!1),C.editConfig={enabled:o.editable,trigger:"click",showStatus:!0,mode:m?"row":"cell"},C.columns=p({gridAttrs:C,$grid:i,$func:r}),C.sortConfig={iconAsc:"fas fa-caret-up",iconDesc:"fas fa-caret-down"},C.onSortChange=function(e){var n=e.property,t=e.order;i.setQuerys({type:y.ORDER,querys:{code:n,type:t}})},d.ddTdBackgroundColor&&(C.cellStyle=function(e){var n=e.row,t=e.column,o=n[t.field];if(o){var r=u.basic.columns.get(t.field);if(r&&r.dictionary&&r.ddColor.backgroundColor){var i=o.split(","),d=O(r.dictionary),l=null==d?void 0:d.find((function(e){return i.includes(e.code)}));return{backgroundColor:null==l?void 0:l.backgroundColor}}}}),C}