@jecloud/func
Version:
JECloud 功能库
1 lines • 2.34 kB
JavaScript
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},e.apply(this,arguments)};import{defineStore as t}from"pinia";import{isNotEmpty as n,uniqueId as a,toDefaultValue as i,cloneDeep as r,isPlainObject as o,isArray as s,encode as u}from"@jecloud/utils";import{getFuncCache as c}from"../../func-util";export function useFuncStore(l){var f=l.funcCode,v=l.isFuncForm,d=l.readOnly,h=void 0!==d&&d,p=l.beanId,y=l.bean,B=l.querys,g=l.orders,w=t({id:a(f),state:function(){return{funcCode:f,isFuncForm:v,hidden:!1,readOnly:h,initBeanId:p,initBean:y,initQuerys:B,initOrders:g,rawBean:{},activeBean:{},activeBeanEmitter:0,activeRow:null,activeWorkflow:null,parentStore:null,childStores:new Map}},getters:{},actions:{getBeanId:function(){var e=c(this.funcCode).info.pkCode;return this.activeBean[e]},addChildStore:function(e){e.parentStore=this,this.childStores.set(e.funcCode,e)},getDefaults:function(){var t=c(this.funcCode),n={};Object.assign(n,t.defaults.values),Object.keys(n).forEach((function(e){n[e]=i(n[e])}));var a=this.getParentInfo();return{values:e(e({},n),a.values),querys:a.querys}},getParentInfo:function(e){var t,a=this,i={values:{},querys:[],config:[]};if(a.parentStore){var r=null!=e?e:a.parentStore.activeBean;if(r){var o=c(a.parentStore.funcCode).basic.children.get(a.funcCode);null==o||o.associations.forEach((function(e){var t,a=r[e.parentCode];e.enableValue&&n(a,!0)&&(i.values[e.code]=a),e.enableQuery&&("idit"===e.queryType?(t=i.querys).push.apply(t,e.customQuerys):i.querys.push({code:e.code,type:e.queryType,value:a}))})),i.config=null!==(t=null==o?void 0:o.associations)&&void 0!==t?t:[]}else i.querys=[{code:1,type:"!=",value:1}]}return i},setActiveRow:function(e){this.activeRow=e},setActiveBean:function(e){this.rawBean=r(e),this.activeBean=e},commitActiveBean:function(e){Object.assign(this.rawBean,e),Object.assign(this.activeBean,e)},resetActiveBean:function(){this.activeBean={},this.rawBean={}},getBeanChanges:function(){var e=this,t={};return Object.keys(this.activeBean).forEach((function(n){var a=e.activeBean[n],i=e.rawBean[n];(a=s(a)||o(a)?u(a):a)!==(i=s(i)||o(i)?u(i):i)&&(t[n]={field:n,oldValue:e.rawBean[n],newValue:e.activeBean[n]})})),t}}});return w()}