@jecloud/func
Version:
JECloud 功能库
1 lines • 3.02 kB
JavaScript
import{QueryTypeEnum as e,QueryConnectorEnum as t,QueryOrderEnum as r}from"../enum";import{isArray as u,forEach as o,isString as i,isNotEmpty as n,isPlainObject as s,split as c,encode as a,pick as l,toQuerysTemplate as p}from"@jecloud/utils";var y=function(){function y(t){var r=t.querys,u=void 0===r?[]:r,o=t.orders,i=void 0===o?[]:o,n=t.$func;this.basicQuerys=[],this.basicOrders=[],this.parent=[],this.group=[],this.tree=[],this.column=[],this.keyword=[],this.strategy=[],this.mark=[],this.custom=[],this.order=[],this.$func=n,this.setQuerys({querys:u,type:e.BASIC_QUERYS}),this.setQuerys({querys:i,type:e.BASIC_ORDERS})}return y.prototype.setQuerys=function(r){var i=this,n=void 0===r?{}:r,s=n.querys,c=void 0===s?[]:s,a=n.type,l=n.cn,p=void 0===l?t.AND:l;Object.values(e).includes(a)&&(u(c)?(this[a]=[],o(c,(function(e){i[a].push(i.createQueryItem(e,p))}))):this[a]=c)},y.prototype.getQuerys=function(){var r,u,o,s=this,c=Object.values(e).filter((function(t){return![e.BASIC_ORDERS,e.ORDER,e.STRATEGY_ID].includes(t)})),a={custom:[],order:[],_types:[]};if(c.forEach((function(r){var u,o=s[r];if(n(o))if([e.MARK,e.FORM_DATA].includes(r))a[r]=o;else if(e.STRATEGY===r&&i(o))a[e.STRATEGY_ID]=o;else{var c=s._cleanData(o);(u=a.custom).push.apply(u,c.firsts),n(c.custom)&&a.custom.push(s.createQueryItem({type:t.AND,value:c.custom})),a._types.push(r)}})),a.order=n(this[e.ORDER])?this[e.ORDER]:this[e.BASIC_ORDERS],this.$func){var l=null!==(r=this.$func.store.activeBean)&&void 0!==r?r:{},y=null!==(o=null===(u=this.$func.store.parentStore)||void 0===u?void 0:u.activeBean)&&void 0!==o?o:{};p({querys:a.custom,model:l,parentModel:y})}return a},y.prototype.toJQuery=function(){return{j_query:a(this.getQuerys())}},y.prototype.createQueryItem=function(e,o){var n,a,p,y,f=this;void 0===o&&(o=t.AND);var d=e.type,v=e.value;return[t.IN,t.NOT_IN,t.BETWEEN].includes(d)&&i(v)?v=c(v,","):[t.AND,t.OR].includes(d)&&u(v)?v=v.map((function(e){return f.createQueryItem(e)})):t.IN_SELECT===d&&s(v)&&(v.conditions=null!==(p=null===(a=null===(n=v.conditions)||void 0===n?void 0:n.map)||void 0===a?void 0:a.call(n,(function(e){return f.createQueryItem(e)})))&&void 0!==p?p:[]),e.value=v,e.cn=null!==(y=e.cn)&&void 0!==y?y:o,Object.values(r).includes(null==d?void 0:d.toLocaleLowerCase())?l(e,["code","type"]):e},y.prototype._cleanData=function(e){var r=this,o=["ZHID","SY_ZHID","ROLERANK","SY_JESYS","EXECUTION_ID_"],i=[],s=[];return e.filter((function(e){return n(e,!0)})).forEach((function(e){if(o.includes(e.code))i.push(e);else{if(u(e.value)){var c=r._cleanData(e.value);e.value=c.custom,i.push.apply(i,c.firsts)}[t.AND,t.OR].includes(e.type)&&!n(e.value)||s.push(e)}})),{custom:s,firsts:i}},Object.defineProperty(y.prototype,"queryType",{get:function(){return e},enumerable:!1,configurable:!0}),Object.defineProperty(y.prototype,"connectorType",{get:function(){return t},enumerable:!1,configurable:!0}),Object.defineProperty(y.prototype,"orderType",{get:function(){return r},enumerable:!1,configurable:!0}),y}();export default y;