@jecloud/func
Version:
JECloud 功能库
1 lines • 2.93 kB
JavaScript
import{createTextVNode as e,createVNode as t,isVNode as u}from"vue";import{Panel as r,Button as o,Form as n,Row as l,Col as a}from"@jecloud/ui";import{debounce as i,isEmpty as c}from"@jecloud/utils";import{useInjectFunc as f}from"../../../../func/src/context";import s from"../../../../form/src/form-query-item";import{reactive as d,watch as y,ref as p}from"vue";import{QueryTypeEnum as m}from"../../../../func-util";function g(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!u(e)}export function useGroupQuery(e){var u=e.$grid,o=f(),n=o.getFuncData(),l=n.info,a=n.groupQuerys,i=l.disableQuerys.includes("group")||c(a),s=v({$func:o,$grid:u}).groupQuerySlot;return{groupButtonSlot:function(){return null},groupSlot:function(){var e;return i?null:t(r.Item,{autoSize:!0,region:"top",collapsible:!0},g(e=s())?e:{default:function(){return[e]}})}}}function v(u){var r=u.$func,i=u.$grid,c=r.getFuncData(),f=c.info,m=c.groupQuerys,g=f.groupQueryOptions,v=g.layout,Q=g.cols,S=(g.strategy,g.changeQuery),h=g.enableQuery,j=g.labelWidth,q=p(!1),O=d({}),w=b({$grid:i,model:O,resting:q}),R=w.doQuery,$=w.doReset,V=(w.doSaveQuerys,w.doSort);m.forEach((function(e){O[e.name]={sort:"",value:"",betweenValue:"",type:e.queryType,defaultType:e.queryType},S&&y((function(){return[O[e.name].type,O[e.name].value,O[e.name].betweenValue]}),(function(){!q.value&&R()}))}));var x="gridLayout"===v,C=function(){return h?t(a,{span:x?24:void 0,class:"query-buttons"},{default:function(){return[t(o,{type:"primary",onClick:function(){return R()}},{default:function(){return[e("搜索")]}}),t(o,{onClick:$,class:"bgcolor-grey"},{default:function(){return[e("清空")]}})]}}):null},E=function(e){return e.isBr?t(a,{span:24},null):t(a,{class:"query-col-item",span:x?e.colSpan*(24/Q):void 0,style:{width:x?void 0:e.width+"px"}},{default:function(){return[t(s,{labelCol:{style:"width:"+((x?j:e.labelWidth)||80)+"px"},label:e.label,field:e,value:O[e.name],"onUpdate:value":function(t){return O[e.name]=t},onSortClick:function(e){return V(e)}},null)]}})};return{groupQuerySlot:function(){return t(n,{model:O,class:{"je-func-group-query":!0,"grid-layout":x}},{default:function(){return[t(l,null,{default:function(){return[m.map((function(e){return E(e)})),C()]}})]}})}}}function b(e){var t=e.$grid,u=e.model,r=e.resting,o=i((function(e){e&&t.value.setQuerys({type:m.ORDER,load:!1}),t.value.setQuerys({type:m.GROUP,querys:e?void 0:u})}),100),n=i((function(e){Object.keys(u).forEach((function(t){t!==e.code&&(u[t].sort="")})),t.value.sort({field:e.code,order:e.type?e.type.toLocaleLowerCase():null}),t.value.setQuerys({type:m.ORDER,querys:e})}),100);return{doReset:function(){r.value=!0,t.value.clearSort(),Object.values(u).forEach((function(e){Object.assign(e,{sort:"",value:"",betweenValue:"",type:e.defaultType})})),r.value=!1,o(!0)},doQuery:o,doSaveQuerys:function(){var e=t.value.store.queryParser.group;console.log(e)},doSort:n}}