@vue-start/pro 0.4.11 → 0.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),t=require("lodash"),M=require("rxjs"),k=require("@vue-start/hooks"),w=require("@vue-start/request"),se=require("vue-router");function Le(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!n.isVNode(e)}const Oe=()=>({row:{type:Object,default:void 0},col:{type:Object},items:{type:Array}}),Me=(e,a)=>n.defineComponent({props:{...Oe()},setup:c=>()=>{let r;return n.createVNode(e,c.row,Le(r=t.map(c.items,u=>n.createVNode(a,n.mergeProps({key:u.rowKey},c.col,u.col),{default:()=>[u.vNode]})))?r:{default:()=>[r]})}}),pe=e=>(a,c)=>{const{requestSubject$:r}=w.useRequestProvide(),u=new Set(t.map(a,o=>t.isString(o)?o:o.name));k.useEffect(()=>{const o=r.pipe(M.filter(e),M.tap(f=>{u.has(f.name)&&c(f)})).subscribe();return()=>{o.unsubscribe()}},[])},Fe=pe(w.isDoneRequestActor),Re=pe(w.isFailedRequestActor),ye=(e,a,c)=>{const{requestSubject$:r,dispatchRequest:u}=w.useRequestProvide(),o=new Set(t.map(e,y=>t.isString(y)?y:y.name)),f={};k.useEffect(()=>{const y=M.merge(r.pipe(M.filter(w.isDoneRequestActor),M.tap(g=>{var E,s;o.has(g.name)&&((E=a.onSuccess)==null||E.call(a,g),(s=a.onFinish)==null||s.call(a,g),f[g.name]=void 0)})),r.pipe(M.filter(w.isFailedRequestActor),M.tap(g=>{var E,s;o.has(g.name)&&((E=a.onFailed)==null||E.call(a,g),(s=a.onFinish)==null||s.call(a,g),f[g.name]=void 0)}))).subscribe();return()=>{y.unsubscribe(),c&&t.forEach(f,g=>{g&&u({...g,stage:"CANCEL"})})}},[])},ee=e=>e.formValueType||e.valueType||"text",x=e=>{var a;return((a=e.formItemProps)==null?void 0:a.name)||e.dataIndex},_=(e,a,c=!0)=>{var y;const r=ee(a),u=t.get(e,r);if(!u)return null;const o=x(a),f=c?a.formItemProps:t.omit(a.formItemProps,"rules");return n.h(u,{key:o,name:o,label:a.title,...f,fieldProps:t.omit(a.formFieldProps,"slots"),showProps:a.showProps},(y=a.formFieldProps)==null?void 0:y.slots)},te=(e,a,c)=>{var o;const r=a.valueType||"text",u=t.get(e,r);return u?n.h(u,{...t.omit(a.formFieldProps,"slots"),showProps:a.showProps,value:c},(o=a.formFieldProps)==null?void 0:o.slots):null},H=(e,a)=>t.map(a,c=>K(e,c)),ge=(e,a)=>{var u;const c=a.elementProps,r={...a.elementProps};return t.forEach((u=a.highConfig$)==null?void 0:u.registerPropsTrans,o=>{const f=t.get(c,o.name);if(!(!f||n.isVNode(f))){if(t.isArray(f)){if(t.some(f,y=>n.isVNode(y)))return;t.set(r,o.name,H(e,f));return}!f.elementType||(o.isFun?t.set(r,o.name,(...y)=>{const g=o.needParams?{...f.elementProps,params$:y}:f.elementProps;return K(e,{...f,elementProps:g})}):t.set(r,o.name,K(e,f)))}}),r},Ee=(e,a)=>{const c=t.size(a.children)>0?H(e,a.children):void 0,r=a.childrenSlotName||"default",u=t.omit(a.slots,c?r:"");return t.forEach(t.keys(u),o=>{const f=u[o];f&&!t.isFunction(f)&&f.elementType&&(u[o]=(...y)=>{const g=f.needParams?{...f.elementProps,params$:y}:f.elementProps;return K(e,{...f,elementProps:g})})}),{[r]:c?()=>c:void 0,...u}},K=(e,a)=>{const c=t.get(e,a.elementType)||a.elementType;if(a.highConfig$)return n.h(he,{key:a.elementId,elementMap:e,elementConfig:a});const r=Ee(e,a),u=ge(e,a);return n.h(c,{key:a.elementId,...u},r)},Se=e=>t.isArray(e)?t.head(e):t.isString(e)&&e.indexOf(".")>0?e.substring(0,e.indexOf(".")):e,he=n.defineComponent({props:{elementMap:{type:Object},elementConfig:{type:Object}},setup:e=>{const{state:a,sendEvent:c}=$(),{elementMap:r,elementConfig:u}=e,o=u.highConfig$,f=ge(r,u),y=t.reduce(o.registerEventList,(d,i)=>({...d,[i.name]:(...m)=>{c({type:i.sendEventName||u.elementId,payload:m})}}),{}),g=n.computed(()=>{if(!o.registerStateList||t.size(o.registerStateList)<=0)return;const d={...f},i=t.map(o.registerStateList,m=>{const l=m.mapName||m.name,p=t.get(a,m.name);return t.set(d,l,p),Se(l)});return t.pick(d,i)}),E=t.get(r,u.elementType)||u.elementType,s=Ee(r,u);return()=>t.get(g.value,"show$")===!1?null:n.h(E,{key:u.elementId,...f,...t.omit(g.value,"show$"),...y},s)}}),Pe=Symbol("pro-module"),$=()=>n.inject(Pe),ve=e=>{n.provide(Pe,e)},U={Success:"request-success$",Fail:"request-fail$"},je=()=>({state:{type:Object},elementMap:{type:Object},elementConfigs:{type:Array},requests:{type:Array}}),W=n.defineComponent({props:{...je()},setup:(e,{slots:a,expose:c})=>{const r=i=>t.isArray(i)?H(e.elementMap,i):K(e.elementMap,i),u=new M.Subject,o=i=>{u.next(i)},f=e.state||n.reactive({}),y=i=>{const m=f[i.type],l=t.isFunction(i.payload)?i.payload(m):i.payload;if(t.isObject(m)){k.setReactiveValue(f[i.type],l);return}f[i.type]=l},{dispatchRequest:g}=w.useRequestProvide(),E=t.reduce(e.requests,(i,m)=>{var l;return{...i,[(l=m.actor)==null?void 0:l.name]:m}},{}),s=t.reduce(e.requests,(i,m)=>({...i,[m.action]:m}),{}),d=(i,...m)=>{const l=t.get(E,i)||t.get(s,i);if(!l)return;let p;l.convertParams?p=l.convertParams(...m):p=t.get(m,0),l.loadingName&&y({type:l.loadingName,payload:!0}),g(l.actor,p)};return ye(t.keys(E),{onSuccess:i=>{var l,p;const m=t.get(E,i.name);if(m!=null&&m.stateName){const S=m.convertData?m.convertData(i):(l=i.res)==null?void 0:l.data;y({type:m.stateName,payload:S})}o({type:U.Success,payload:{actor:i,requestOpts:m}}),(p=m.onSuccess)==null||p.call(m,i)},onFailed:i=>{var l;const m=t.get(E,i.name);o({type:U.Fail,payload:{actor:i,requestOpts:m}}),(l=m.onFailed)==null||l.call(m,i)},onFinish:i=>{const m=t.get(E,[i.name,"loadingName"]);m&&y({type:m,payload:!1})}},!0),ve({elementMap:e.elementMap,subject$:u,sendEvent:o,state:f,dispatch:y,requests:e.requests,sendRequest:d}),c({sendEvent:o,sendRequest:d}),()=>{var i;return n.createVNode(n.Fragment,null,[t.size(e.elementConfigs)>0&&r(e.elementConfigs),(i=a.default)==null?void 0:i.call(a)])}}}),J=e=>{const{subject$:a}=$();k.useEffect(()=>{const c=a.subscribe({next:r=>{e(r)}});return()=>c.unsubscribe()},[])},be=Symbol("pro-curd"),z=()=>n.inject(be),Ce=e=>n.provide(be,e);var b=(e=>(e.LIST="LIST",e.DETAIL="DETAIL",e.ADD="ADD",e.EDIT="EDIT",e.DELETE="DELETE",e))(b||{}),T=(e=>(e.EMIT="EMIT",e.EXECUTE="EXECUTE",e.PAGE="PAGE",e.SUCCESS="SUCCESS",e.FAIL="FAIL",e))(T||{}),L=(e=>(e.ADD="ADD",e.EDIT="EDIT",e.DETAIL="DETAIL",e))(L||{}),B=(e=>(e.NORMAL="NORMAL",e.CONTINUE="CONTINUE",e))(B||{});const Te=(e,a,c)=>{if(a){const r=t.filter(t.keys(a),u=>!a[u]);return t.omit(e,r)}if(c){const r=t.filter(t.keys(c),u=>!c[u](e));return t.omit(e,r)}return e},re=e=>{if(!!e)return t.isArray(e)?e:e&&t.isString(e)&&e.indexOf(".")>0?t.split(e,"."):[e]},Q=(e,a,c)=>!a||!c?e:t.map(e,r=>{const u=t.isFunction(c)?c(r):c,o=t.get(a,u);return!o||t.isEmpty(o)||t.isFunction(o)||!t.isObject(o)?r:t.mergeWith(r,o,(f,y)=>{if(t.isArray(f)||t.isArray(y))return y})}),V=(e,a)=>t.reduce(e,(c,r)=>({...c,[r]:(...u)=>{var o,f;return(f=(o=a.value)==null?void 0:o[r])==null?void 0:f.call(o,...u)}}),{}),De={page:1,pageSize:10},we=()=>({columns:{type:Array},columnState:{type:Object},formElementMap:{type:Object},rowKey:{type:String,default:"id"},operates:{type:Array},listProps:{type:Object},formProps:{type:Object},descProps:{type:Object},modalProps:{type:Object}}),ne=["sendCurdEvent","refreshList","sendEvent","sendRequest"],de=n.defineComponent({props:{...we()},setup:(e,{slots:a,expose:c})=>{const{elementMap:r,state:u,sendEvent:o,sendRequest:f}=$(),y=n.computed(()=>Q(e.columns,e.columnState,C=>x(C))),g=(C,N=!0)=>_(e.formElementMap,C,N),E=(C,N)=>te(r,C,N),s=(C,N)=>{const q=t.filter(y.value,A=>{const I=t.get(A,["extra",C])||t.get(A,C);return N?I!==!1:I});return t.sortBy(q,A=>t.get(A,["extra",`${C}Sort`])||t.get(A,`${C}Sort`))},d=n.computed(()=>s("form",!0)),i=n.computed(()=>s("detail",!0)),m=n.computed(()=>s("table",!0)),l=n.computed(()=>s("search"));let p;const S=C=>{f(b.LIST,{...p,...C})},h=C=>{o({type:C.action,payload:t.omit(C,"action","source"),source:C.source})};J(({type:C,payload:N,source:q})=>{if(q)return;let A=C,I=N==null?void 0:N.type;A===U.Success&&(A=t.get(N,["requestOpts","action"]),I=T.SUCCESS);const{values:j,record:X}=N;switch(A){case b.LIST:I===T.EMIT&&(p=j,S());return;case b.ADD:I===T.EXECUTE&&f(b.ADD,j,u.detailData);return;case b.EDIT:I===T.EXECUTE&&f(b.EDIT,j,u.detailData);return;case b.DELETE:I===T.EMIT?f(b.DELETE,X,e.rowKey):I===T.SUCCESS&&S();return}A&&C===T.EXECUTE&&f(A,j)});const P=t.reduce(e.operates,(C,N)=>({...C,[N.action]:N}),{}),v=C=>t.get(P,C),D=n.computed(()=>e.listProps),O=n.computed(()=>e.formProps),F=n.computed(()=>e.descProps),R=n.computed(()=>e.modalProps);return Ce({columns:y,getSignColumns:s,getFormItemVNode:g,getItemVNode:E,elementMap:r,formElementMap:e.formElementMap,rowKey:e.rowKey,curdState:u,formColumns:d,descColumns:i,tableColumns:m,searchColumns:l,sendCurdEvent:h,operates:e.operates,getOperate:v,refreshList:S,listProps:D,formProps:O,descProps:F,modalProps:R}),c({sendCurdEvent:h,refreshList:S}),()=>{var C;return(C=a.default)==null?void 0:C.call(a)}}}),G=n.defineComponent({props:{...t.omit(W.props,"state","requests"),...de.props,curdState:{type:Object}},setup:(e,{slots:a,expose:c})=>{const r=n.ref(),u=n.ref(),o=e.curdState||n.reactive({detailData:{}}),f={[b.LIST]:{convertParams:s=>s,convertData:s=>{var d;return(d=s.res)==null?void 0:d.data},loadingName:"listLoading",stateName:"listData"},[b.DETAIL]:{convertParams:(s,d)=>t.pick(s,d),convertData:s=>{var d;return(d=s.res)==null?void 0:d.data},loadingName:"detailLoading",stateName:"detailData",label:"\u8BE6\u60C5"},[b.ADD]:{convertParams:(s,d)=>({body:{...d,...s}}),loadingName:"operateLoading",label:"\u6DFB\u52A0"},[b.EDIT]:{convertParams:(s,d)=>({body:{...d,...s}}),loadingName:"operateLoading",label:"\u7F16\u8F91"},[b.DELETE]:{convertParams:(s,d)=>t.pick(s,d),label:"\u5220\u9664"}},y=t.map(e.operates,s=>({...t.get(f,s.action),...s})),g=t.filter(y,s=>s.actor),E=t.keys(t.omit(W.props,"state","requests"));return c({sendCurdEvent:s=>{var d;(d=u.value)==null||d.sendCurdEvent(s)},refreshList:s=>{var d;(d=u.value)==null||d.refreshList(s)},sendEvent:s=>{var d;(d=r.value)==null||d.sendEvent(s)},sendRequest:(s,...d)=>{var i;(i=r.value)==null||i.sendRequest(s,...d)}}),()=>n.createVNode(W,n.mergeProps({ref:r},t.pick(e,E),{state:o,requests:g}),{default:()=>[n.createVNode(de,n.mergeProps({ref:u},t.omit(e,...E,"curdState","operates"),{operates:y}),a)]})}}),ke=()=>({defaultAddRecord:{type:Object}}),Y=n.defineComponent({props:{...ke()},setup:e=>{var m;const{dispatch:a,sendRequest:c}=$(),{rowKey:r,curdState:u,listProps:o,getOperate:f,refreshList:y}=z(),g=(m=o==null?void 0:o.value)==null?void 0:m.pageState,E=l=>{const p=f(b.DETAIL);p!=null&&p.actor?c(b.DETAIL,l,r):a({type:"detailData",payload:t.cloneDeep(l)})},s=(l,{record:p})=>{l===T.EMIT&&(a({type:"mode",payload:L.DETAIL}),E(p))},d=l=>{l===T.EMIT?(a({type:"mode",payload:L.ADD}),a({type:"detailData",payload:e.defaultAddRecord||{}})):l===T.SUCCESS&&(g&&(g.page=1),y(),u.addAction===B.CONTINUE?a({type:"detailData",payload:e.defaultAddRecord||{}}):a({type:"mode",payload:void 0}))},i=(l,{record:p})=>{l===T.EMIT?(a({type:"mode",payload:L.EDIT}),E(p)):l===T.SUCCESS&&(a({type:"mode",payload:void 0}),y())};return J(({type:l,payload:p,source:S})=>{if(S)return;let h=l,P=p==null?void 0:p.type;const v=p==null?void 0:p.record;switch(h===U.Success&&(h=t.get(p,["requestOpts","action"]),P=T.SUCCESS),h){case b.DETAIL:s(P,{record:v});break;case b.ADD:d(P);break;case b.EDIT:i(P,{record:v});break}}),()=>null}}),Ve=n.defineComponent({props:{...G.props,...Y.props},setup:(e,{slots:a,expose:c})=>{const r=n.ref();c(V(ne,r));const u=t.keys(Y.props);return()=>n.createVNode(G,n.mergeProps({ref:r},t.omit(e,u)),{default:()=>{var o;return[n.createVNode(Y,t.pick(e,u),null),(o=a.default)==null?void 0:o.call(a)]}})}}),qe=()=>({defaultAddRecord:{type:Object},routeBack:{type:Function}}),Z=n.defineComponent({props:{...qe()},setup:e=>{const a=se.useRouter(),c=se.useRoute(),{dispatch:r,sendRequest:u}=$(),{rowKey:o,curdState:f}=z(),y=d=>{d===T.PAGE&&(r({type:"mode",payload:void 0}),r({type:"detailData",payload:{}}),r({type:"detailLoading",payload:!1}),r({type:"addAction",payload:void 0}))},g=(d,{record:i})=>{d===T.EMIT?a.push({path:`${c.path}/detail`,query:t.pick(i,o)}):d===T.PAGE&&(r({type:"mode",payload:L.DETAIL}),u(b.DETAIL,c.query,o))},E=d=>{d===T.EMIT?a.push({path:`${c.path}/add`}):d===T.PAGE?(r({type:"mode",payload:L.ADD}),r({type:"detailData",payload:e.defaultAddRecord||{}})):d===T.SUCCESS&&(f.addAction===B.CONTINUE?r({type:"detailData",payload:e.defaultAddRecord||{}}):e.routeBack?e.routeBack(b.ADD):a.go(-1))},s=(d,{record:i})=>{d===T.EMIT?a.push({path:`${c.path}/edit`,query:t.pick(i,o)}):d===T.PAGE?(r({type:"mode",payload:L.EDIT}),u(b.DETAIL,c.query,o)):d===T.SUCCESS&&(e.routeBack?e.routeBack(b.EDIT):a.go(-1))};return J(({type:d,payload:i,source:m})=>{if(m)return;let l=d,p=i==null?void 0:i.type;const S=i==null?void 0:i.record;switch(l===U.Success&&(l=t.get(i,["requestOpts","action"]),p=T.SUCCESS),l){case b.LIST:y(p);break;case b.DETAIL:g(p,{record:S});break;case b.ADD:E(p);break;case b.EDIT:s(p,{record:S});break}}),()=>null}}),xe=n.defineComponent({props:{...G.props,...Z.props},setup:(e,{slots:a,expose:c})=>{const r=n.ref();c(V(ne,r));const u=t.keys(Z.props);return()=>n.createVNode(G,n.mergeProps({ref:r},t.omit(e,u)),{default:()=>{var o;return[n.createVNode(Z,t.pick(e,u),null),(o=a.default)==null?void 0:o.call(a)]}})}});function Ke(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!n.isVNode(e)}const Ue=(e,a)=>n.defineComponent({props:{...e.props,renderItem:{type:Function},signName:{type:String}},setup:(c,{slots:r})=>{const{getItemVNode:u,curdState:o,descColumns:f,getSignColumns:y}=z(),g=n.computed(()=>{const E=c.signName?y(c.signName):f.value;return t.map(E,s=>{var l;let d;const i=(l=c.renderItem)==null?void 0:l.call(c,s);if(i)return i;const m=t.get(o.detailData,s.dataIndex);return n.createVNode(a,n.mergeProps({key:s.dataIndex,label:s.title},t.get(s.extra,"desc")),Ke(d=u(s,m))?d:{default:()=>[d]})})});return()=>n.createVNode(e,c,{default:()=>{var E,s;return[(E=r.start)==null?void 0:E.call(r),g.value,(s=r.default)==null?void 0:s.call(r)]},...t.omit(r,"default","start")})}}),Be=()=>({signName:{type:String},modelName:{type:String,default:"detailData"},operateBar:{type:Boolean,default:!0},showContinueAdd:{type:Boolean,default:!1},okText:{type:String,default:"\u786E\u5B9A"},okButtonProps:{type:Object},continueText:{type:String,default:"\u786E\u5B9A\u5E76\u7EE7\u7EED"},continueButtonProps:{type:Object}}),$e=(e,a,c,r)=>n.defineComponent({inheritAttrs:!1,props:{...e.props,...Be()},setup:(u,{slots:o,attrs:f,expose:y})=>{const{elementMap:g,formElementMap:E,curdState:s,formColumns:d,getSignColumns:i,sendCurdEvent:m}=z(),l=n.ref(),p=n.computed(()=>u.signName?i(u.signName):d.value),S=(v,D)=>{if(f.onFinish){f.onFinish(v,D);return}s.mode===L.EDIT?m({action:b.EDIT,type:T.EXECUTE,values:v}):m({action:b.ADD,type:T.EXECUTE,values:v})},h=()=>{var v;s.addAction=B.NORMAL,(v=l.value)==null||v.submit()},P=()=>{var v;s.addAction=B.CONTINUE,(v=l.value)==null||v.submit()};return y(V(r,l)),()=>n.createVNode(e,n.mergeProps({ref:l},t.omit(f,"onFinish"),u,{elementMap:u.elementMap||g,formElementMap:u.formElementMap||E,columns:u.columns||p.value,model:u.model||s[u.modelName],readonly:s.mode===L.DETAIL,onFinish:S},c==null?void 0:c(s)),{default:()=>{var v,D,O,F,R;return[(v=o.divide)==null?void 0:v.call(o),u.operateBar&&n.createVNode("div",{class:"pro-curd-form-operate"},[(D=o.operateStart)==null?void 0:D.call(o),s.mode!==L.DETAIL&&n.createVNode(a,n.mergeProps({onClick:h},u.okButtonProps,{loading:s.operateLoading}),{default:()=>[u.okText]}),(O=o.operateCenter)==null?void 0:O.call(o),u.showContinueAdd&&s.mode===L.ADD&&n.createVNode(a,n.mergeProps({onClick:P},u.continueButtonProps,{loading:s.operateLoading}),{default:()=>[u.continueText]}),(F=o.operateEnd)==null?void 0:F.call(o)]),(R=o.default)==null?void 0:R.call(o)]},...t.omit(o,"default","divide","operateStart","operateCenter","operateEnd")})}}),ze=()=>({extraInSearch:{type:Boolean,default:void 0},searchProps:{type:Object},tableProps:{type:Object},paginationProps:{type:Object},showPagination:{type:Boolean,default:!0},pageState:{type:Object}}),Ge=(e,a)=>n.defineComponent({props:{...ze()},setup:(c,{slots:r})=>{const{elementMap:u,formElementMap:o,curdState:f,searchColumns:y,tableColumns:g,sendCurdEvent:E,operates:s}=z(),d=c.pageState||n.reactive({...De});let i;const m=()=>{E({action:b.LIST,type:T.EMIT,values:{...i,...d}})},l=h=>{i=h,d.page=1,m()},p=t.map(t.filter(s,h=>{const P=h.action;return P===b.DETAIL||P===b.EDIT||P===b.DELETE||h.tableOperate}),h=>{const P={...t.pick(h,"label","element","disabled","sort","onClick"),show:t.isUndefined(h==null?void 0:h.show)?!1:h==null?void 0:h.show,value:h.action};return P.onClick||(P.onClick=v=>{E({action:h.action,type:T.EMIT,record:v})}),P}),S=h=>t.map(h,P=>P.onClick?P:{...P,onClick:v=>{E({action:"operate",type:P.value,record:v})}});return()=>{var D,O,F,R,C,N,q,A,I,j;const h=c.tableProps,P={elementMap:u,columns:g.value,...t.omit(h,"slots","operate"),operate:t.mergeWith({items:p},h==null?void 0:h.operate,(X,ue)=>{if(t.isArray(X)&&t.isArray(ue))return t.concat(X,S(ue))}),paginationState:{page:d.page,pageSize:d.pageSize},loading:f.listLoading,dataSource:(D=f.listData)==null?void 0:D.dataSource},v=r.extra?n.createVNode("div",{class:"pro-curd-list-extra"},[r.extra()]):null;return n.createVNode(n.Fragment,null,[(O=r.start)==null?void 0:O.call(r),r.search?r.search({executeSearchWithResetPage:l}):n.createVNode(e,n.mergeProps({formElementMap:o,columns:y.value},t.omit(c.searchProps,"slots"),{onFinish:l}),{default:()=>[c.extraInSearch&&v],...(F=c.searchProps)==null?void 0:F.slots}),(R=r.divide)==null?void 0:R.call(r),!c.extraInSearch&&v,r.table?r.table(P):n.createVNode(a,P,h==null?void 0:h.slots),(C=r.divide2)==null?void 0:C.call(r),c.showPagination&&n.createVNode("div",{class:"pro-curd-list-footer"},[(N=r.footerStart)==null?void 0:N.call(r),(A=r.pagination)==null?void 0:A.call(r,d,(q=f.listData)==null?void 0:q.total,m),(I=r.footerEnd)==null?void 0:I.call(r)]),(j=r.end)==null?void 0:j.call(r)])}}}),Ne=Symbol("pro-form-list"),ae=()=>n.inject(Ne),oe=e=>{n.provide(Ne,e)},Xe=n.defineComponent({props:{pathList:{type:Array}},setup:(e,{slots:a})=>(oe({pathList:e.pathList}),()=>{var c;return(c=a.default)==null?void 0:c.call(a)})}),We=e=>n.defineComponent({props:{...e.props,rowKey:{type:String,default:"id"}},setup:(a,{slots:c})=>{const{formState:r,readonly:u}=ce(),o=ae(),f=re(a.name),y=o!=null&&o.pathList?[...o.pathList,...f]:f,g=()=>{let s=t.get(r,y);t.isArray(s)||(s=[]),s.push({[a.rowKey]:new Date().valueOf()}),t.set(r,y,s)},E=s=>{const d=t.get(r,y);t.size(d)<=0||d.splice(s,1)};return()=>n.createVNode(e,t.omit(a,"rowKey"),{default:()=>{var s;return[t.map(t.get(r,y),(d,i)=>n.createVNode(Xe,{key:d[a.rowKey]||i,pathList:[...y,i]},{default:()=>{var m,l,p;return[n.createVNode("div",{class:"pro-form-list-item"},[(m=c.default)==null?void 0:m.call(c),!u.value&&n.createVNode(n.Fragment,null,[n.createVNode("div",{class:"pro-form-list-item-add",onClick:g},[(l=c.itemAdd)==null?void 0:l.call(c)]),n.createVNode("div",{class:"pro-form-list-item-minus",onClick:()=>E(i)},[(p=c.itemMinus)==null?void 0:p.call(c)])])])]}})),!u.value&&n.createVNode("div",{class:"pro-form-list-add",onClick:g},[(s=c.add)==null?void 0:s.call(c)])]}})}}),Ae=Symbol("pro-form"),ce=()=>n.inject(Ae),_e=e=>{n.provide(Ae,e)},ie=()=>({model:{type:Object},readonly:{type:Boolean,default:void 0},showState:{type:Object},showStateRules:{type:Object},readonlyState:{type:Object},readonlyStateRules:{type:Object},disableState:{type:Object},disableStateRules:{type:Object},columns:{type:Array},columnState:{type:Object},elementMap:{type:Object},formElementMap:{type:Object},needRules:{type:Boolean,default:!0},provideExtra:{type:Object}}),He=(e,a,c)=>n.defineComponent({inheritAttrs:!1,props:{...e.props,...ie(),...t.omit(a.props,"items")},setup:(r,{slots:u,emit:o,expose:f,attrs:y})=>{const g=r.model||n.reactive({}),E=r.showState||n.reactive({}),s=r.readonlyState||n.reactive({}),d=r.disableState||n.reactive({});k.useEffect(()=>{r.showStateRules&&t.forEach(r.showStateRules,(P,v)=>{E[v]=P(g)}),r.readonlyStateRules&&t.forEach(r.readonlyStateRules,(P,v)=>{s[v]=P(g)}),r.disableStateRules&&t.forEach(r.disableStateRules,(P,v)=>{d[v]=P(g)})},g);const i=n.computed(()=>r.readonly),m=n.computed(()=>Q(r.columns,r.columnState,P=>x(P))),l=P=>{const v=Te(P,E,r.showStateRules);o("finish",v,P)},p=n.ref();f(V(c,p)),_e({formState:g,showState:E,readonlyState:s,disableState:d,elementMap:r.elementMap,formElementMap:r.formElementMap,readonly:i,columns:m,formRef:p,...r.provideExtra}),oe({});const S=t.keys(ie()),h=t.keys(t.omit(a.props,"items"));return()=>n.createVNode(e,n.mergeProps({ref:p},t.omit(y,"onFinish"),t.omit(r,...S,...h,"onFinish"),{model:g,onFinish:l}),{default:()=>{var P,v;return[(P=u.start)==null?void 0:P.call(u),r.formElementMap&&t.size(m.value)>0&&n.createVNode(n.Fragment,null,[r.row?n.createVNode(a,{row:r.row,col:r.col,items:t.map(m.value,D=>({rowKey:x(D),vNode:_(r.formElementMap,D,r.needRules),col:t.get(D,["extra","col"])}))},null):t.map(m.value,D=>_(r.formElementMap,D,r.needRules))]),(v=u.default)==null?void 0:v.call(u)]},...t.omit(u,"default")})}});exports.SearchMode=void 0;(function(e){e.AUTO="AUTO",e.MANUAL="MANUAL"})(exports.SearchMode||(exports.SearchMode={}));const le=()=>({model:{type:Object},initEmit:{type:Boolean,default:!0},searchMode:{type:String,default:exports.SearchMode.AUTO},columns:{type:Array},debounceKeys:{type:Array},debounceTypes:{type:Array,default:["text"]},debounceTime:{type:Number,default:800}}),Je=(e,a,c)=>n.defineComponent({props:{...e.props,...a,...le()},setup:(r,{slots:u,expose:o})=>{const f=r.model||n.reactive({}),y=new Set(r.debounceTypes),g=t.map(t.filter(r.columns,l=>{const p=ee(l);return y.has(p)}),l=>x(l)),E=n.ref();o(V(c,E));const s=()=>{var l;(l=E.value)==null||l.submit()},d=t.debounce(()=>{s()},r.debounceTime);k.useEffect(()=>{r.initEmit&&s()},[]);const i=(l,p,S)=>t.some(S,h=>t.get(l,h)!==t.get(p,h));k.useWatch((l,p)=>{if(r.searchMode!==exports.SearchMode.AUTO)return;const S=t.size(r.debounceKeys)>0?r.debounceKeys:g;if(t.size(S)>0&&i(l,p,S)){d();return}s()},()=>t.clone(f));const m=t.keys(t.omit(le(),"columns"));return()=>n.createVNode(e,n.mergeProps({ref:E},t.omit(r,m),{model:f}),u)}}),me=()=>({readonly:{type:Boolean,default:void 0},fieldProps:{type:Object},showProps:{type:Object},slots:{type:Object}}),Qe=(e,a)=>({InputComp:c,valueType:r,name:u})=>n.defineComponent({name:u,props:{...e.props,...me()},setup:(o,{slots:f})=>{const{formState:y,showState:g,readonlyState:E,disableState:s,readonly:d,elementMap:i}=ce(),m=ae(),l=n.computed(()=>t.isBoolean(o.readonly)?o.readonly:t.isBoolean(E[o.name])?E[o.name]:d.value),p=re(o.name),S=m!=null&&m.pathList?[...m.pathList,...p]:p,h=v=>{t.set(y,S,v)},P=t.keys(me());return()=>{const v=t.get(g,S);if(t.isBoolean(v)&&!v)return null;const D=t.get(y,S),O=t.get(i,r);return n.createVNode(e,n.mergeProps(t.omit(o,...P,"name","slots"),{name:S}),{default:()=>[l.value?n.createVNode(n.Fragment,null,[O?n.createVNode(O,n.mergeProps({value:D},o.fieldProps,{showProps:o.showProps}),f):n.createVNode("span",null,[D])]):n.createVNode(c,n.mergeProps(a(D,h,t.get(s,S)),o.fieldProps),f)],...o.slots})}}}),Ie=Symbol("pro-table"),Ye=()=>n.inject(Ie),Ze=e=>{n.provide(Ie,e)},fe=()=>({operate:{type:Object},columnEmptyText:{type:String},column:{type:Object},columns:{type:Array},columnState:{type:Object},elementMap:{type:Object},serialNumber:{type:Boolean},paginationState:{type:Object},provideExtra:{type:Object}}),et=(e,a,c)=>n.defineComponent({props:{...e.props,...a,...fe()},setup:(r,{slots:u,expose:o})=>{const f=()=>({title:"\u5E8F\u53F7",dataIndex:"serialNumber",width:80,...r.column,customRender:({index:d})=>{var i,m;return((i=r.paginationState)==null?void 0:i.page)&&((m=r.paginationState)==null?void 0:m.pageSize)?r.paginationState.pageSize*(r.paginationState.page-1)+d+1:d+1}}),y=()=>{const d=r.operate,i=t.map(d.items,l=>({...l,...t.get(d.itemState,l.value)})),m=t.sortBy(i,l=>l.sort);return{...r.column,title:"\u64CD\u4F5C",dataIndex:"operate",fixed:"right",...d.column,customRender:({record:l})=>{const p=t.filter(m,S=>S.show&&t.isFunction(S.show)?S.show(l):S.show!==!1);return n.createVNode("div",{class:"pro-table-operate"},[t.map(p,S=>t.isFunction(S.element)?S.element(l,S):n.createVNode("div",{class:"pro-table-operate-item",key:S.value,onClick:()=>{var h;(h=S.onClick)==null||h.call(S,l)}},[S.label]))])}}},g=n.computed(()=>{const d=Q(r.columns,r.columnState,m=>m.dataIndex),i=t.map(d,m=>{const l={...r.column,...m};return m.customRender||(l.customRender=({text:p})=>te(r.elementMap,{...m,showProps:{...m.showProps,content:r.columnEmptyText}},p)||p||r.columnEmptyText),l});return r.serialNumber&&i.unshift(f()),r.operate&&r.operate.items&&t.some(r.operate.items,m=>m.show)&&i.push(y()),i}),E=n.ref();Ze({columns:g,tableRef:E,...r.provideExtra}),o(V(c||[],E));const s=t.keys(fe());return()=>n.createVNode(e,n.mergeProps({ref:E},t.omit(r,s),{columns:g.value}),u)}});exports.CurdAction=b;exports.CurdAddAction=B;exports.CurdCurrentMode=L;exports.CurdMethods=ne;exports.CurdSubAction=T;exports.ProCurd=G;exports.ProModalCurd=Ve;exports.ProModule=W;exports.ProPageCurd=xe;exports.RequestAction=U;exports.Wrapper=he;exports.convertPathToList=re;exports.createCurdDesc=Ue;exports.createCurdForm=$e;exports.createCurdList=Ge;exports.createExpose=V;exports.createForm=He;exports.createFormItemCompFn=Qe;exports.createFormList=We;exports.createGrid=Me;exports.createSearchForm=Je;exports.createTable=et;exports.defaultPage=De;exports.getColumnFormItemName=x;exports.getColumnValueType=ee;exports.getFirstPropName=Se;exports.getFormItemEl=_;exports.getItemEl=te;exports.getValidValues=Te;exports.mergeStateToList=Q;exports.provideProCurd=Ce;exports.provideProFormList=oe;exports.provideProModule=ve;exports.renderElement=K;exports.renderElements=H;exports.useComposeRequestActor=ye;exports.useDoneRequestActor=Fe;exports.useFailedRequestActor=Re;exports.useModuleEvent=J;exports.useProCurd=z;exports.useProForm=ce;exports.useProFormList=ae;exports.useProModule=$;exports.useProTable=Ye;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),t=require("lodash"),R=require("rxjs"),k=require("@vue-start/hooks"),w=require("@vue-start/request"),le=require("vue-router");function Fe(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!o.isVNode(e)}const Re=()=>({row:{type:Object,default:void 0},col:{type:Object},items:{type:Array}}),je=(e,n)=>o.defineComponent({props:{...Re()},setup:s=>()=>{let r;return o.createVNode(e,s.row,Fe(r=t.map(s.items,i=>o.createVNode(n,o.mergeProps({key:i.rowKey},s.col,i.col),{default:()=>[i.vNode]})))?r:{default:()=>[r]})}}),Ee=e=>(n,s)=>{const{requestSubject$:r}=w.useRequestProvide(),i=new Set(t.map(n,a=>t.isString(a)?a:a.name));k.useEffect(()=>{const a=r.pipe(R.filter(e),R.tap(d=>{i.has(d.name)&&s(d)})).subscribe();return()=>{a.unsubscribe()}},[])},we=Ee(w.isDoneRequestActor),ke=Ee(w.isFailedRequestActor),Pe=(e,n,s)=>{const{requestSubject$:r,dispatchRequest:i}=w.useRequestProvide(),a=new Set(t.map(e,p=>t.isString(p)?p:p.name)),d={};k.useEffect(()=>{const p=R.merge(r.pipe(R.filter(w.isDoneRequestActor),R.tap(E=>{var P,f;a.has(E.name)&&((P=n.onSuccess)==null||P.call(n,E),(f=n.onFinish)==null||f.call(n,E),d[E.name]=void 0)})),r.pipe(R.filter(w.isFailedRequestActor),R.tap(E=>{var P,f;a.has(E.name)&&((P=n.onFailed)==null||P.call(n,E),(f=n.onFinish)==null||f.call(n,E),d[E.name]=void 0)}))).subscribe();return()=>{p.unsubscribe(),s&&t.forEach(d,E=>{E&&i({...E,stage:"CANCEL"})})}},[])},re=e=>e.formValueType||e.valueType||"text",x=e=>{var n;return((n=e.formItemProps)==null?void 0:n.name)||e.dataIndex},_=(e,n,s=!0)=>{var p;const r=re(n),i=t.get(e,r);if(!i)return null;const a=x(n),d=s?n.formItemProps:t.omit(n.formItemProps,"rules");return o.h(i,{key:a,name:a,label:n.title,...d,fieldProps:t.omit(n.formFieldProps,"slots"),showProps:n.showProps},(p=n.formFieldProps)==null?void 0:p.slots)},ne=(e,n,s)=>{var a;const r=n.valueType||"text",i=t.get(e,r);return i?o.h(i,{...t.omit(n.formFieldProps,"slots"),showProps:n.showProps,value:s},(a=n.formFieldProps)==null?void 0:a.slots):null},H=(e,n)=>t.map(n,s=>K(e,s)),Se=(e,n)=>{var i;const s=n.elementProps,r={...n.elementProps};return t.forEach((i=n.highConfig$)==null?void 0:i.registerPropsTrans,a=>{const d=t.get(s,a.name);if(!(!d||o.isVNode(d))){if(t.isArray(d)){if(t.some(d,p=>o.isVNode(p)))return;t.set(r,a.name,H(e,d));return}!d.elementType||(a.isFun?t.set(r,a.name,(...p)=>{const E=a.needParams?{...d.elementProps,params$:p}:d.elementProps;return K(e,{...d,elementProps:E})}):t.set(r,a.name,K(e,d)))}}),r},he=(e,n)=>{const s=t.size(n.children)>0?H(e,n.children):void 0,r=n.childrenSlotName||"default",i=t.omit(n.slots,s?r:"");return t.forEach(t.keys(i),a=>{const d=i[a];d&&!t.isFunction(d)&&d.elementType&&(i[a]=(...p)=>{const E=d.needParams?{...d.elementProps,params$:p}:d.elementProps;return K(e,{...d,elementProps:E})})}),{[r]:s?()=>s:void 0,...i}},K=(e,n)=>{const s=t.get(e,n.elementType)||n.elementType;if(n.highConfig$)return o.h(be,{key:n.elementId,elementMap:e,elementConfig:n});const r=he(e,n),i=Se(e,n);return o.h(s,{key:n.elementId,...i},r)},ve=e=>t.isArray(e)?t.head(e):t.isString(e)&&e.indexOf(".")>0?e.substring(0,e.indexOf(".")):e,be=o.defineComponent({props:{elementMap:{type:Object},elementConfig:{type:Object}},setup:e=>{const{state:n,sendEvent:s}=$(),{elementMap:r,elementConfig:i}=e,a=i.highConfig$,d=Se(r,i),p=t.reduce(a.registerEventList,(y,c)=>({...y,[c.name]:(...u)=>{s({type:c.sendEventName||i.elementId,payload:u})}}),{}),E=o.computed(()=>{if(!a.registerStateList||t.size(a.registerStateList)<=0)return;const y={...d},c=t.map(a.registerStateList,u=>{const l=u.mapName||u.name,m=t.get(n,u.name);return t.set(y,l,m),ve(l)});return t.pick(y,c)}),P=t.get(r,i.elementType)||i.elementType,f=he(r,i);return()=>t.get(E.value,"show$")===!1?null:o.h(P,{key:i.elementId,...d,...t.omit(E.value,"show$"),...p},f)}}),Ce=Symbol("pro-module"),$=()=>o.inject(Ce),Te=e=>{o.provide(Ce,e)},U={Success:"request-success$",Fail:"request-fail$"},Ve=()=>({state:{type:Object},elementMap:{type:Object},elementConfigs:{type:Array},requests:{type:Array}}),W=o.defineComponent({props:{...Ve()},setup:(e,{slots:n,expose:s})=>{const r=c=>t.isArray(c)?H(e.elementMap,c):K(e.elementMap,c),i=new R.Subject,a=c=>{i.next(c)},d=e.state||o.reactive({}),p=c=>{const u=d[c.type],l=t.isFunction(c.payload)?c.payload(u):c.payload;if(t.isObject(u)){k.setReactiveValue(d[c.type],l);return}d[c.type]=l},{dispatchRequest:E}=w.useRequestProvide(),P=t.reduce(e.requests,(c,u)=>{var l;return{...c,[(l=u.actor)==null?void 0:l.name]:u}},{}),f=t.reduce(e.requests,(c,u)=>({...c,[u.action]:u}),{}),y=(c,...u)=>{const l=t.get(P,c)||t.get(f,c);if(!l)return;let m;l.convertParams?m=l.convertParams(...u):m=t.get(u,0),l.loadingName&&p({type:l.loadingName,payload:!0}),E(l.actor,m)};return Pe(t.keys(P),{onSuccess:c=>{var l,m;const u=t.get(P,c.name);if(u!=null&&u.stateName){const h=u.convertData?u.convertData(c):(l=c.res)==null?void 0:l.data;p({type:u.stateName,payload:h})}a({type:U.Success,payload:{actor:c,requestOpts:u}}),(m=u.onSuccess)==null||m.call(u,c)},onFailed:c=>{var l;const u=t.get(P,c.name);a({type:U.Fail,payload:{actor:c,requestOpts:u}}),(l=u.onFailed)==null||l.call(u,c)},onFinish:c=>{const u=t.get(P,[c.name,"loadingName"]);u&&p({type:u,payload:!1})}},!0),Te({elementMap:e.elementMap,subject$:i,sendEvent:a,state:d,dispatch:p,requests:e.requests,sendRequest:y}),s({sendEvent:a,sendRequest:y}),()=>{var c;return o.createVNode(o.Fragment,null,[t.size(e.elementConfigs)>0&&r(e.elementConfigs),(c=n.default)==null?void 0:c.call(n)])}}}),J=e=>{const{subject$:n}=$();k.useEffect(()=>{const s=n.subscribe({next:r=>{e(r)}});return()=>s.unsubscribe()},[])},qe=()=>({elementMap:{type:Object},formElementMap:{type:Object},columns:{type:Array},columnState:{type:Object}}),Q=qe(),xe=()=>({config:{type:Object,default:{}}}),oe=Symbol("pro-config"),Y=()=>o.inject(oe)||{},Ke=o.defineComponent({props:{...xe()},setup:(e,{slots:n})=>(o.provide(oe,e.config),()=>{var s;return(s=n.default)==null?void 0:s.call(n)})}),Ue=(e={})=>n=>{n.provide(oe,e)},De=Symbol("pro-curd"),z=()=>o.inject(De),Ne=e=>o.provide(De,e);var C=(e=>(e.LIST="LIST",e.DETAIL="DETAIL",e.ADD="ADD",e.EDIT="EDIT",e.DELETE="DELETE",e))(C||{}),T=(e=>(e.EMIT="EMIT",e.EXECUTE="EXECUTE",e.PAGE="PAGE",e.SUCCESS="SUCCESS",e.FAIL="FAIL",e))(T||{}),F=(e=>(e.ADD="ADD",e.EDIT="EDIT",e.DETAIL="DETAIL",e))(F||{}),B=(e=>(e.NORMAL="NORMAL",e.CONTINUE="CONTINUE",e))(B||{});const Ae=(e,n,s)=>{if(n){const r=t.filter(t.keys(n),i=>!n[i]);return t.omit(e,r)}if(s){const r=t.filter(t.keys(s),i=>!s[i](e));return t.omit(e,r)}return e},ae=e=>{if(!!e)return t.isArray(e)?e:e&&t.isString(e)&&e.indexOf(".")>0?t.split(e,"."):[e]},Z=(e,n,s)=>!n||!s?e:t.map(e,r=>{const i=t.isFunction(s)?s(r):s,a=t.get(n,i);return!a||t.isEmpty(a)||t.isFunction(a)||!t.isObject(a)?r:t.mergeWith(r,a,(d,p)=>{if(t.isArray(d)||t.isArray(p))return p})}),V=(e,n)=>{const s=t.reduce(e,(r,i)=>({...r,[i]:(...a)=>{var d,p;return(p=(d=n.value)==null?void 0:d[i])==null?void 0:p.call(d,...a)}}),{});return s.originRef=n,s},Be=(e,n,s)=>{const r={originRef:e,...s};return n&&t.size(n)>0&&t.forEach(n,i=>{r[i]=(...a)=>{var d,p;return(p=(d=e.value)==null?void 0:d[i])==null?void 0:p.call(d,...a)}}),r},Ie={page:1,pageSize:10},$e=()=>({rowKey:{type:String,default:"id"},operates:{type:Array},listProps:{type:Object},formProps:{type:Object},descProps:{type:Object},modalProps:{type:Object}}),ce=["sendCurdEvent","refreshList","sendEvent","sendRequest"],me=o.defineComponent({props:{...Q,...$e()},setup:(e,{slots:n,expose:s})=>{const{elementMap:r,state:i,sendEvent:a,sendRequest:d}=$(),p=o.computed(()=>Z(e.columns,e.columnState,b=>x(b))),E=(b,A=!0)=>_(e.formElementMap,b,A),P=(b,A)=>ne(r,b,A),f=(b,A)=>{const q=t.filter(p.value,L=>{const O=t.get(L,["extra",b])||t.get(L,b);return A?O!==!1:O});return t.sortBy(q,L=>t.get(L,["extra",`${b}Sort`])||t.get(L,`${b}Sort`))},y=o.computed(()=>f("form",!0)),c=o.computed(()=>f("detail",!0)),u=o.computed(()=>f("table",!0)),l=o.computed(()=>f("search"));let m;const h=b=>{d(C.LIST,{...m,...b})},g=b=>{a({type:b.action,payload:t.omit(b,"action","source"),source:b.source})};J(({type:b,payload:A,source:q})=>{if(q)return;let L=b,O=A==null?void 0:A.type;L===U.Success&&(L=t.get(A,["requestOpts","action"]),O=T.SUCCESS);const{values:j,record:X}=A;switch(L){case C.LIST:O===T.EMIT&&(m=j,h());return;case C.ADD:O===T.EXECUTE&&d(C.ADD,j,i.detailData);return;case C.EDIT:O===T.EXECUTE&&d(C.EDIT,j,i.detailData);return;case C.DELETE:O===T.EMIT?d(C.DELETE,X,e.rowKey):O===T.SUCCESS&&h();return}L&&b===T.EXECUTE&&d(L,j)});const S=t.reduce(e.operates,(b,A)=>({...b,[A.action]:A}),{}),v=b=>t.get(S,b),I=o.computed(()=>e.listProps),M=o.computed(()=>e.formProps),D=o.computed(()=>e.descProps),N=o.computed(()=>e.modalProps);return Ne({columns:p,getSignColumns:f,getFormItemVNode:E,getItemVNode:P,elementMap:r,formElementMap:e.formElementMap,rowKey:e.rowKey,curdState:i,formColumns:y,descColumns:c,tableColumns:u,searchColumns:l,sendCurdEvent:g,operates:e.operates,getOperate:v,refreshList:h,listProps:I,formProps:M,descProps:D,modalProps:N}),s({sendCurdEvent:g,refreshList:h}),()=>{var b;return(b=n.default)==null?void 0:b.call(n)}}}),G=o.defineComponent({props:{...t.omit(W.props,"state","requests"),...me.props,curdState:{type:Object}},setup:(e,{slots:n,expose:s})=>{const{elementMap:r,formElementMap:i}=Y(),a=o.ref(),d=o.ref(),p=e.curdState||o.reactive({detailData:{}}),E={[C.LIST]:{convertParams:c=>c,convertData:c=>{var u;return(u=c.res)==null?void 0:u.data},loadingName:"listLoading",stateName:"listData"},[C.DETAIL]:{convertParams:(c,u)=>t.pick(c,u),convertData:c=>{var u;return(u=c.res)==null?void 0:u.data},loadingName:"detailLoading",stateName:"detailData",label:"\u8BE6\u60C5"},[C.ADD]:{convertParams:(c,u)=>({body:{...u,...c}}),loadingName:"operateLoading",label:"\u6DFB\u52A0"},[C.EDIT]:{convertParams:(c,u)=>({body:{...u,...c}}),loadingName:"operateLoading",label:"\u7F16\u8F91"},[C.DELETE]:{convertParams:(c,u)=>t.pick(c,u),label:"\u5220\u9664"}},P=t.map(e.operates,c=>({...t.get(E,c.action),...c})),f=t.filter(P,c=>c.actor),y=t.keys(t.omit(W.props,"state","requests"));return s({sendCurdEvent:c=>{var u;(u=d.value)==null||u.sendCurdEvent(c)},refreshList:c=>{var u;(u=d.value)==null||u.refreshList(c)},sendEvent:c=>{var u;(u=a.value)==null||u.sendEvent(c)},sendRequest:(c,...u)=>{var l;(l=a.value)==null||l.sendRequest(c,...u)}}),()=>o.createVNode(W,o.mergeProps({ref:a},t.pick(e,y),{elementMap:e.elementMap||r,state:p,requests:f}),{default:()=>[o.createVNode(me,o.mergeProps({ref:d},t.omit(e,...y,"curdState","operates"),{formElementMap:e.formElementMap||i,operates:P}),n)]})}}),ze=()=>({defaultAddRecord:{type:Object}}),ee=o.defineComponent({props:{...ze()},setup:e=>{var u;const{dispatch:n,sendRequest:s}=$(),{rowKey:r,curdState:i,listProps:a,getOperate:d,refreshList:p}=z(),E=(u=a==null?void 0:a.value)==null?void 0:u.pageState,P=l=>{const m=d(C.DETAIL);m!=null&&m.actor?s(C.DETAIL,l,r):n({type:"detailData",payload:t.cloneDeep(l)})},f=(l,{record:m})=>{l===T.EMIT&&(n({type:"mode",payload:F.DETAIL}),P(m))},y=l=>{l===T.EMIT?(n({type:"mode",payload:F.ADD}),n({type:"detailData",payload:e.defaultAddRecord||{}})):l===T.SUCCESS&&(E&&(E.page=1),p(),i.addAction===B.CONTINUE?n({type:"detailData",payload:e.defaultAddRecord||{}}):n({type:"mode",payload:void 0}))},c=(l,{record:m})=>{l===T.EMIT?(n({type:"mode",payload:F.EDIT}),P(m)):l===T.SUCCESS&&(n({type:"mode",payload:void 0}),p())};return J(({type:l,payload:m,source:h})=>{if(h)return;let g=l,S=m==null?void 0:m.type;const v=m==null?void 0:m.record;switch(g===U.Success&&(g=t.get(m,["requestOpts","action"]),S=T.SUCCESS),g){case C.DETAIL:f(S,{record:v});break;case C.ADD:y(S);break;case C.EDIT:c(S,{record:v});break}}),()=>null}}),Ge=o.defineComponent({props:{...G.props,...ee.props},setup:(e,{slots:n,expose:s})=>{const r=o.ref();s(V(ce,r));const i=t.keys(ee.props);return()=>o.createVNode(G,o.mergeProps({ref:r},t.omit(e,i)),{default:()=>{var a;return[o.createVNode(ee,t.pick(e,i),null),(a=n.default)==null?void 0:a.call(n)]}})}}),Xe=()=>({defaultAddRecord:{type:Object},routeBack:{type:Function}}),te=o.defineComponent({props:{...Xe()},setup:e=>{const n=le.useRouter(),s=le.useRoute(),{dispatch:r,sendRequest:i}=$(),{rowKey:a,curdState:d}=z(),p=y=>{y===T.PAGE&&(r({type:"mode",payload:void 0}),r({type:"detailData",payload:{}}),r({type:"detailLoading",payload:!1}),r({type:"addAction",payload:void 0}))},E=(y,{record:c})=>{y===T.EMIT?n.push({path:`${s.path}/detail`,query:t.pick(c,a)}):y===T.PAGE&&(r({type:"mode",payload:F.DETAIL}),i(C.DETAIL,s.query,a))},P=y=>{y===T.EMIT?n.push({path:`${s.path}/add`}):y===T.PAGE?(r({type:"mode",payload:F.ADD}),r({type:"detailData",payload:e.defaultAddRecord||{}})):y===T.SUCCESS&&(d.addAction===B.CONTINUE?r({type:"detailData",payload:e.defaultAddRecord||{}}):e.routeBack?e.routeBack(C.ADD):n.go(-1))},f=(y,{record:c})=>{y===T.EMIT?n.push({path:`${s.path}/edit`,query:t.pick(c,a)}):y===T.PAGE?(r({type:"mode",payload:F.EDIT}),i(C.DETAIL,s.query,a)):y===T.SUCCESS&&(e.routeBack?e.routeBack(C.EDIT):n.go(-1))};return J(({type:y,payload:c,source:u})=>{if(u)return;let l=y,m=c==null?void 0:c.type;const h=c==null?void 0:c.record;switch(l===U.Success&&(l=t.get(c,["requestOpts","action"]),m=T.SUCCESS),l){case C.LIST:p(m);break;case C.DETAIL:E(m,{record:h});break;case C.ADD:P(m);break;case C.EDIT:f(m,{record:h});break}}),()=>null}}),We=o.defineComponent({props:{...G.props,...te.props},setup:(e,{slots:n,expose:s})=>{const r=o.ref();s(V(ce,r));const i=t.keys(te.props);return()=>o.createVNode(G,o.mergeProps({ref:r},t.omit(e,i)),{default:()=>{var a;return[o.createVNode(te,t.pick(e,i),null),(a=n.default)==null?void 0:a.call(n)]}})}});function _e(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!o.isVNode(e)}const He=(e,n)=>o.defineComponent({props:{...e.props,renderItem:{type:Function},signName:{type:String}},setup:(s,{slots:r})=>{const{getItemVNode:i,curdState:a,descColumns:d,getSignColumns:p}=z(),E=o.computed(()=>{const P=s.signName?p(s.signName):d.value;return t.map(P,f=>{var l;let y;const c=(l=s.renderItem)==null?void 0:l.call(s,f);if(c)return c;const u=t.get(a.detailData,f.dataIndex);return o.createVNode(n,o.mergeProps({key:f.dataIndex,label:f.title},t.get(f.extra,"desc")),_e(y=i(f,u))?y:{default:()=>[y]})})});return()=>o.createVNode(e,s,{default:()=>{var P,f;return[(P=r.start)==null?void 0:P.call(r),E.value,(f=r.default)==null?void 0:f.call(r)]},...t.omit(r,"default","start")})}}),Je=()=>({signName:{type:String},modelName:{type:String,default:"detailData"},operateBar:{type:Boolean,default:!0},showContinueAdd:{type:Boolean,default:!1},okText:{type:String,default:"\u786E\u5B9A"},okButtonProps:{type:Object},continueText:{type:String,default:"\u786E\u5B9A\u5E76\u7EE7\u7EED"},continueButtonProps:{type:Object}}),Qe=(e,n,s,r)=>o.defineComponent({inheritAttrs:!1,props:{...e.props,...Je()},setup:(i,{slots:a,attrs:d,expose:p})=>{const{elementMap:E,formElementMap:P,curdState:f,formColumns:y,getSignColumns:c,sendCurdEvent:u}=z(),l=o.ref(),m=o.computed(()=>i.signName?c(i.signName):y.value),h=(v,I)=>{if(d.onFinish){d.onFinish(v,I);return}f.mode===F.EDIT?u({action:C.EDIT,type:T.EXECUTE,values:v}):u({action:C.ADD,type:T.EXECUTE,values:v})},g=()=>{var v;f.addAction=B.NORMAL,(v=l.value)==null||v.submit()},S=()=>{var v;f.addAction=B.CONTINUE,(v=l.value)==null||v.submit()};return p(V(r,l)),()=>o.createVNode(e,o.mergeProps({ref:l},t.omit(d,"onFinish"),i,{elementMap:i.elementMap||E,formElementMap:i.formElementMap||P,columns:i.columns||m.value,model:i.model||f[i.modelName],readonly:f.mode===F.DETAIL,onFinish:h},s==null?void 0:s(f)),{default:()=>{var v,I,M,D,N;return[(v=a.divide)==null?void 0:v.call(a),i.operateBar&&o.createVNode("div",{class:"pro-curd-form-operate"},[(I=a.operateStart)==null?void 0:I.call(a),f.mode!==F.DETAIL&&o.createVNode(n,o.mergeProps({onClick:g},i.okButtonProps,{loading:f.operateLoading}),{default:()=>[i.okText]}),(M=a.operateCenter)==null?void 0:M.call(a),i.showContinueAdd&&f.mode===F.ADD&&o.createVNode(n,o.mergeProps({onClick:S},i.continueButtonProps,{loading:f.operateLoading}),{default:()=>[i.continueText]}),(D=a.operateEnd)==null?void 0:D.call(a)]),(N=a.default)==null?void 0:N.call(a)]},...t.omit(a,"default","divide","operateStart","operateCenter","operateEnd")})}}),Ye=()=>({extraInSearch:{type:Boolean,default:void 0},searchProps:{type:Object},tableProps:{type:Object},paginationProps:{type:Object},showPagination:{type:Boolean,default:!0},pageState:{type:Object}}),Ze=(e,n)=>o.defineComponent({props:{...Ye()},setup:(s,{slots:r})=>{const{elementMap:i,formElementMap:a,curdState:d,searchColumns:p,tableColumns:E,sendCurdEvent:P,operates:f}=z(),y=s.pageState||o.reactive({...Ie});let c;const u=()=>{P({action:C.LIST,type:T.EMIT,values:{...c,...y}})},l=g=>{c=g,y.page=1,u()},m=t.map(t.filter(f,g=>{const S=g.action;return S===C.DETAIL||S===C.EDIT||S===C.DELETE||g.tableOperate}),g=>{const S={...t.pick(g,"label","element","disabled","sort","onClick"),show:t.isUndefined(g==null?void 0:g.show)?!1:g==null?void 0:g.show,value:g.action};return S.onClick||(S.onClick=v=>{P({action:g.action,type:T.EMIT,record:v})}),S}),h=g=>t.map(g,S=>S.onClick?S:{...S,onClick:v=>{P({action:"operate",type:S.value,record:v})}});return()=>{var I,M,D,N,b,A,q,L,O,j;const g=s.tableProps,S={elementMap:i,columns:E.value,...t.omit(g,"slots","operate"),operate:t.mergeWith({items:m},g==null?void 0:g.operate,(X,de)=>{if(t.isArray(X)&&t.isArray(de))return t.concat(X,h(de))}),paginationState:{page:y.page,pageSize:y.pageSize},loading:d.listLoading,dataSource:(I=d.listData)==null?void 0:I.dataSource},v=r.extra?o.createVNode("div",{class:"pro-curd-list-extra"},[r.extra()]):null;return o.createVNode(o.Fragment,null,[(M=r.start)==null?void 0:M.call(r),r.search?r.search({executeSearchWithResetPage:l}):o.createVNode(e,o.mergeProps({formElementMap:a,columns:p.value},t.omit(s.searchProps,"slots"),{onFinish:l}),{default:()=>[s.extraInSearch&&v],...(D=s.searchProps)==null?void 0:D.slots}),(N=r.divide)==null?void 0:N.call(r),!s.extraInSearch&&v,r.table?r.table(S):o.createVNode(n,S,g==null?void 0:g.slots),(b=r.divide2)==null?void 0:b.call(r),s.showPagination&&o.createVNode("div",{class:"pro-curd-list-footer"},[(A=r.footerStart)==null?void 0:A.call(r),(L=r.pagination)==null?void 0:L.call(r,y,(q=d.listData)==null?void 0:q.total,u),(O=r.footerEnd)==null?void 0:O.call(r)]),(j=r.end)==null?void 0:j.call(r)])}}}),Le=Symbol("pro-form-list"),se=()=>o.inject(Le),ue=e=>{o.provide(Le,e)},et=o.defineComponent({props:{pathList:{type:Array}},setup:(e,{slots:n})=>(ue({pathList:e.pathList}),()=>{var s;return(s=n.default)==null?void 0:s.call(n)})}),tt=e=>o.defineComponent({props:{...e.props,rowKey:{type:String,default:"id"}},setup:(n,{slots:s})=>{const{formState:r,readonly:i}=ie(),a=se(),d=ae(n.name),p=a!=null&&a.pathList?[...a.pathList,...d]:d,E=()=>{let f=t.get(r,p);t.isArray(f)||(f=[]),f.push({[n.rowKey]:new Date().valueOf()}),t.set(r,p,f)},P=f=>{const y=t.get(r,p);t.size(y)<=0||y.splice(f,1)};return()=>o.createVNode(e,t.omit(n,"rowKey"),{default:()=>{var f;return[t.map(t.get(r,p),(y,c)=>o.createVNode(et,{key:y[n.rowKey]||c,pathList:[...p,c]},{default:()=>{var u,l,m;return[o.createVNode("div",{class:"pro-form-list-item"},[(u=s.default)==null?void 0:u.call(s),!i.value&&o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"pro-form-list-item-add",onClick:E},[(l=s.itemAdd)==null?void 0:l.call(s)]),o.createVNode("div",{class:"pro-form-list-item-minus",onClick:()=>P(c)},[(m=s.itemMinus)==null?void 0:m.call(s)])])])]}})),!i.value&&o.createVNode("div",{class:"pro-form-list-add",onClick:E},[(f=s.add)==null?void 0:f.call(s)])]}})}}),Me=Symbol("pro-form"),ie=()=>o.inject(Me),rt=e=>{o.provide(Me,e)},fe=()=>({model:{type:Object},readonly:{type:Boolean,default:void 0},showState:{type:Object},showStateRules:{type:Object},readonlyState:{type:Object},readonlyStateRules:{type:Object},disableState:{type:Object},disableStateRules:{type:Object},needRules:{type:Boolean,default:!0},provideExtra:{type:Object}}),nt=(e,n,s)=>o.defineComponent({inheritAttrs:!1,props:{...e.props,...Q,...fe(),...t.omit(n.props,"items")},setup:(r,{slots:i,emit:a,expose:d,attrs:p})=>{const{elementMap:E,formElementMap:P}=Y(),f=r.elementMap||E,y=r.formElementMap||P,c=r.model||o.reactive({}),u=r.showState||o.reactive({}),l=r.readonlyState||o.reactive({}),m=r.disableState||o.reactive({});k.useEffect(()=>{r.showStateRules&&t.forEach(r.showStateRules,(D,N)=>{u[N]=D(c)}),r.readonlyStateRules&&t.forEach(r.readonlyStateRules,(D,N)=>{l[N]=D(c)}),r.disableStateRules&&t.forEach(r.disableStateRules,(D,N)=>{m[N]=D(c)})},c);const h=o.computed(()=>r.readonly),g=o.computed(()=>Z(r.columns,r.columnState,D=>x(D))),S=D=>{const N=Ae(D,u,r.showStateRules);a("finish",N,D)},v=o.ref();d(V(s,v)),rt({formState:c,showState:u,readonlyState:l,disableState:m,elementMap:f,formElementMap:y,readonly:h,columns:g,formRef:v,...r.provideExtra}),ue({});const I=t.keys(fe()),M=t.keys(t.omit(n.props,"items"));return()=>o.createVNode(e,o.mergeProps({ref:v},t.omit(p,"onFinish"),t.omit(r,...I,...M,"onFinish"),{model:c,onFinish:S}),{default:()=>{var D,N;return[(D=i.start)==null?void 0:D.call(i),y&&t.size(g.value)>0&&o.createVNode(o.Fragment,null,[r.row?o.createVNode(n,{row:r.row,col:r.col,items:t.map(g.value,b=>({rowKey:x(b),vNode:_(y,b,r.needRules),col:t.get(b,["extra","col"])}))},null):t.map(g.value,b=>_(y,b,r.needRules))]),(N=i.default)==null?void 0:N.call(i)]},...t.omit(i,"default")})}});exports.SearchMode=void 0;(function(e){e.AUTO="AUTO",e.MANUAL="MANUAL"})(exports.SearchMode||(exports.SearchMode={}));const pe=()=>({initEmit:{type:Boolean,default:!0},searchMode:{type:String,default:exports.SearchMode.AUTO},debounceKeys:{type:Array},debounceTypes:{type:Array,default:["text"]},debounceTime:{type:Number,default:800}}),ot=(e,n,s)=>o.defineComponent({props:{...e.props,...n,...pe()},setup:(r,{slots:i,expose:a})=>{const d=r.model||o.reactive({}),p=new Set(r.debounceTypes),E=t.map(t.filter(r.columns,l=>{const m=re(l);return p.has(m)}),l=>x(l)),P=o.ref();a(V(s,P));const f=()=>{var l;(l=P.value)==null||l.submit()},y=t.debounce(()=>{f()},r.debounceTime);k.useEffect(()=>{r.initEmit&&f()},[]);const c=(l,m,h)=>t.some(h,g=>t.get(l,g)!==t.get(m,g));k.useWatch((l,m)=>{if(r.searchMode!==exports.SearchMode.AUTO)return;const h=t.size(r.debounceKeys)>0?r.debounceKeys:E;if(t.size(h)>0&&c(l,m,h)){y();return}f()},()=>t.clone(d));const u=t.keys(t.omit(pe(),"columns"));return()=>o.createVNode(e,o.mergeProps({ref:P},t.omit(r,u),{model:d}),i)}}),ye=()=>({readonly:{type:Boolean,default:void 0},fieldProps:{type:Object},showProps:{type:Object},slots:{type:Object}}),at=(e,n)=>({InputComp:s,valueType:r,name:i})=>o.defineComponent({name:i,props:{...e.props,...ye()},setup:(a,{slots:d})=>{const{formState:p,showState:E,readonlyState:P,disableState:f,readonly:y,elementMap:c}=ie(),u=se(),l=o.computed(()=>t.isBoolean(a.readonly)?a.readonly:t.isBoolean(P[a.name])?P[a.name]:y.value),m=ae(a.name),h=u!=null&&u.pathList?[...u.pathList,...m]:m,g=v=>{t.set(p,h,v)},S=t.keys(ye());return()=>{const v=t.get(E,h);if(t.isBoolean(v)&&!v)return null;const I=t.get(p,h),M=t.get(c,r);return o.createVNode(e,o.mergeProps(t.omit(a,...S,"name","slots"),{name:h}),{default:()=>[l.value?o.createVNode(o.Fragment,null,[M?o.createVNode(M,o.mergeProps({value:I},a.fieldProps,{showProps:a.showProps}),d):o.createVNode("span",null,[I])]):o.createVNode(s,o.mergeProps(n(I,g,t.get(f,h)),a.fieldProps),d)],...a.slots})}}}),Oe=Symbol("pro-table"),ct=()=>o.inject(Oe),st=e=>{o.provide(Oe,e)},ge=()=>({operate:{type:Object},columnEmptyText:{type:String},column:{type:Object},serialNumber:{type:Boolean},paginationState:{type:Object},provideExtra:{type:Object}}),ut=(e,n,s)=>o.defineComponent({props:{...e.props,...Q,...n,...ge()},setup:(r,{slots:i,expose:a})=>{const{elementMap:d}=Y(),p=r.elementMap||d,E=()=>({title:"\u5E8F\u53F7",dataIndex:"serialNumber",width:80,...r.column,customRender:({index:u})=>{var l,m;return((l=r.paginationState)==null?void 0:l.page)&&((m=r.paginationState)==null?void 0:m.pageSize)?r.paginationState.pageSize*(r.paginationState.page-1)+u+1:u+1}}),P=()=>{const u=r.operate,l=t.map(u.items,h=>({...h,...t.get(u.itemState,h.value)})),m=t.sortBy(l,h=>h.sort);return{...r.column,title:"\u64CD\u4F5C",dataIndex:"operate",fixed:"right",...u.column,customRender:({record:h})=>{const g=t.filter(m,S=>S.show&&t.isFunction(S.show)?S.show(h):S.show!==!1);return o.createVNode("div",{class:"pro-table-operate"},[t.map(g,S=>t.isFunction(S.element)?S.element(h,S):o.createVNode("div",{class:"pro-table-operate-item",key:S.value,onClick:()=>{var v;(v=S.onClick)==null||v.call(S,h)}},[S.label]))])}}},f=o.computed(()=>{const u=Z(r.columns,r.columnState,m=>m.dataIndex),l=t.map(u,m=>{const h={...r.column,...m};return m.customRender||(h.customRender=({text:g})=>ne(p,{...m,showProps:{...m.showProps,content:r.columnEmptyText}},g)||g||r.columnEmptyText),h});return r.serialNumber&&l.unshift(E()),r.operate&&r.operate.items&&t.some(r.operate.items,m=>m.show)&&l.push(P()),l}),y=o.ref();st({columns:f,tableRef:y,...r.provideExtra}),a(V(s||[],y));const c=t.keys(ge());return()=>o.createVNode(e,o.mergeProps({ref:y},t.omit(r,c),{columns:f.value}),i)}});exports.CurdAction=C;exports.CurdAddAction=B;exports.CurdCurrentMode=F;exports.CurdMethods=ce;exports.CurdSubAction=T;exports.ProConfig=Ke;exports.ProCurd=G;exports.ProModalCurd=Ge;exports.ProModule=W;exports.ProPageCurd=We;exports.RequestAction=U;exports.Wrapper=be;exports.convertPathToList=ae;exports.createCurdDesc=He;exports.createCurdForm=Qe;exports.createCurdList=Ze;exports.createExpose=V;exports.createExposeObj=Be;exports.createForm=nt;exports.createFormItemCompFn=at;exports.createFormList=tt;exports.createGrid=je;exports.createProConfig=Ue;exports.createSearchForm=ot;exports.createTable=ut;exports.defaultPage=Ie;exports.getColumnFormItemName=x;exports.getColumnValueType=re;exports.getFirstPropName=ve;exports.getFormItemEl=_;exports.getItemEl=ne;exports.getValidValues=Ae;exports.mergeStateToList=Z;exports.proBaseProps=Q;exports.provideProCurd=Ne;exports.provideProFormList=ue;exports.provideProModule=Te;exports.renderElement=K;exports.renderElements=H;exports.useComposeRequestActor=Pe;exports.useDoneRequestActor=we;exports.useFailedRequestActor=ke;exports.useModuleEvent=J;exports.useProConfig=Y;exports.useProCurd=z;exports.useProForm=ie;exports.useProFormList=se;exports.useProModule=$;exports.useProTable=ct;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue-start/pro",
3
- "version": "0.4.11",
3
+ "version": "0.4.13",
4
4
  "description": "> TODO: description",
5
5
  "author": "zx <zxpstudy@163.com>",
6
6
  "homepage": "https://github.com/zxeryu/vue-start#readme",
@@ -32,5 +32,5 @@
32
32
  "vue": ">=3.x",
33
33
  "vue-router": ">=4.x"
34
34
  },
35
- "gitHead": "6465abb35b28314baee3568c66de70151617058e"
35
+ "gitHead": "faf55181de8a0f0e9f0b55d720fcf1c00fe497ea"
36
36
  }