@jecloud/func
Version:
JECloud 功能库
1 lines • 4.69 kB
JavaScript
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var r,t=1,u=arguments.length;t<u;t++)for(var o in r=arguments[t])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},e.apply(this,arguments)};import{QueryConnectorEnum as r,QueryTypeEnum as t,FuncTypeEnum as u}from"../../../data/enum";import{isNotEmpty as o,isArray as n,isEmpty as a,pick as s,split as i}from"@jecloud/utils";import{Modal as d}from"@jecloud/ui";export function useFuncQuery(o){var n=o.$grid,a=n.store,s=n.$func,i=n.props,d=function(r){var u=r.type,o=e({$grid:n},r),s=null;switch(u){case t.KEYWORD:s=l(o);break;case t.GROUP:s=v(o);break;case t.STRATEGY:s=E(o);break;case t.TREE:s=c(o);break;case t.PARENT:s=h(o);break;case t.TREE_FUNC:s=R(o);break;case t.ORDER:s=f(o)}return null==s?void 0:s.then((function(e){var r=(void 0===e?{}:e).load;if(void 0===r||r){var o=[];switch(u){case t.KEYWORD:o.push(d({type:t.GROUP,load:!1})),o.push(d({type:t.STRATEGY,load:!1}));break;case t.GROUP:o.push(d({type:t.KEYWORD,load:!1})),o.push(d({type:t.STRATEGY,load:!1}));break;case t.STRATEGY:o.push(d({type:t.GROUP,load:!1})),o.push(d({type:t.KEYWORD,load:!1}))}return Promise.all(o).then((function(){return a.loadPage(1)}))}}))};return{setQuerys:d,initQuerys:function(){var e=n.getFuncData(),o=e.defaultStrategy,a=e.info,l=[];if(o&&l.push(d({type:t.STRATEGY,querys:o,load:!1})),a.funcType===u.TREE&&l.push(d({type:t.TREE_FUNC,load:!1})),null==s?void 0:s.parentFunc){var c=s.store.getDefaults().querys,y=i.fkCode;y&&c.push({code:y,type:r.EQ,value:s.parentFunc.store.getBeanId()}),l.push(d({type:t.PARENT,querys:c,load:!1}))}return Promise.all(l)}}}function l(e){var r=e.$grid,u=e.querys,n=e.load,s=void 0===n||n,i=u,l=t.KEYWORD,c=r.store,y=r.getFuncData,p=r.type,v=y(),f=r.keywordQuerys?r.keywordQuerys:v.getQuerys(l,p);if(a(f)&&s)return d.notice("未找到可用的查询配置,请检查!","warning"),Promise.resolve({load:!1});var E=c.queryParser,h=[];return o(i)&&f.forEach((function(e){h.push({code:e.field,value:i,type:e.columnQueryType,cn:"or"})})),E.setQuerys({querys:h,type:l}),Promise.resolve({load:s})}function c(e){var r=e.$grid,a=e.querys,s=void 0===a?[]:a,i=e.$tree,d=n(s)?s.filter((function(e){return"ROOT"!==(null==e?void 0:e.nodeType)})):[s],l=t.TREE,c=r.store,v=(0,r.getFuncData)().info.funcType,f=c.queryParser,E=[];return o(d)&&(E=u.TREE===v?p({$grid:r,$tree:i,nodes:d}):y({$grid:r,$tree:i,nodes:d})),f.setQuerys({querys:E,type:l}),Promise.resolve()}function y(e){var u=e.$grid,n=e.$tree,a=e.nodes,s=n.multiple,i=u.store,d=u.getFuncData,l=u.type,c=d(),y=i.treeQuerys?i.treeQuerys:c.getQuerys(t.TREE,l),p=[];return y.forEach((function(e){var t=e.nodeInfo,u=e.config,n=e.queryField||t,i=e.nodeField||"code",d=a.filter((function(e){return e.nodeInfo===t}));if(!s){var l=[];d.forEach((function(e){e.cascade((function(r){r!==e&&l.push(r)}))})),d=d.concat(l)}var c=d.map((function(e){return e[i]}));o(c)&&(u.multiple?c.forEach((function(e){p.push({code:n,value:e,type:r.LIKE,cn:r.OR})})):p.push({code:n,value:c,type:r.IN}))})),p}function p(e){var t=e.$grid,u=e.$tree,o=e.nodes,n=[],a=t.getFuncData,s=u.multiple,i=u.singleMode,d=a().info,l=d.funcTreeConfig,c=d.pkCode;if(i){var y=o[0];n.push({code:c,value:y.id,type:r.EQ})}else if(s)n.push({code:c,value:o.map((function(e){return e.id})),type:r.IN});else{y=o[0];n.push({code:l.nodePath,value:y.nodePath.replace("/ROOT",""),type:r.LIKE})}return n}function v(u){var a=u.$grid,d=u.querys,l=void 0===d?{}:d,c=u.load,y=void 0===c||c,p=a.store.queryParser,v=[];return Object.keys(l).forEach((function(t){var u=l[t];if(o(u.value)){var a=e({code:t,cn:r.AND},s(u,["type","value"]));[r.IN,r.NOT_IN].includes(a.type)?a.value=i(a.value,","):[r.BETWEEN].includes(a.type)?a.value=[a.value,u.betweenValue]:n(a.value)&&(a.value=a.value[0]),v.push(a)}})),p.setQuerys({querys:v,type:t.GROUP}),Promise.resolve({load:y})}function f(e){var r=e.$grid,u=e.querys,o=void 0===u?{}:u,n=e.load,a=void 0===n||n,s=r.store.queryParser,i=[];return o.type&&i.push(o),s.setQuerys({querys:i,type:t.ORDER}),Promise.resolve({load:a})}function E(e){var r=e.$grid,u=e.querys,n=void 0===u?{}:u,a=e.load,s=void 0===a||a,i=r.store.queryParser,d=n.id,l=n.fn;return(o(l)?Promise.resolve(null==l?void 0:l()):Promise.resolve(d)).then((function(e){return i.setQuerys({querys:e,type:t.STRATEGY}),{load:s}}))}function h(e){var r=e.$grid,u=e.querys,o=void 0===u?{}:u,n=e.load,a=void 0===n||n;return r.store.queryParser.setQuerys({querys:o,type:t.PARENT}),Promise.resolve({load:a})}function R(e){var u=e.$grid,o=e.load,n=void 0===o||o,a=u.store.queryParser,s=[{code:"SY_NODETYPE",value:"ROOT",type:r.NE}];return a.setQuerys({querys:s,type:t.TREE_FUNC}),Promise.resolve({load:n})}