@vue-start/pro 0.4.12 → 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"),R=require("rxjs"),k=require("@vue-start/hooks"),j=require("@vue-start/request"),le=require("vue-router");function Fe(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!n.isVNode(e)}const Re=()=>({row:{type:Object,default:void 0},col:{type:Object},items:{type:Array}}),we=(e,o)=>n.defineComponent({props:{...Re()},setup:s=>()=>{let r;return n.createVNode(e,s.row,Fe(r=t.map(s.items,d=>n.createVNode(o,n.mergeProps({key:d.rowKey},s.col,d.col),{default:()=>[d.vNode]})))?r:{default:()=>[r]})}}),Ee=e=>(o,s)=>{const{requestSubject$:r}=j.useRequestProvide(),d=new Set(t.map(o,a=>t.isString(a)?a:a.name));k.useEffect(()=>{const a=r.pipe(R.filter(e),R.tap(l=>{d.has(l.name)&&s(l)})).subscribe();return()=>{a.unsubscribe()}},[])},je=Ee(j.isDoneRequestActor),ke=Ee(j.isFailedRequestActor),Pe=(e,o,s)=>{const{requestSubject$:r,dispatchRequest:d}=j.useRequestProvide(),a=new Set(t.map(e,y=>t.isString(y)?y:y.name)),l={};k.useEffect(()=>{const y=R.merge(r.pipe(R.filter(j.isDoneRequestActor),R.tap(E=>{var P,f;a.has(E.name)&&((P=o.onSuccess)==null||P.call(o,E),(f=o.onFinish)==null||f.call(o,E),l[E.name]=void 0)})),r.pipe(R.filter(j.isFailedRequestActor),R.tap(E=>{var P,f;a.has(E.name)&&((P=o.onFailed)==null||P.call(o,E),(f=o.onFinish)==null||f.call(o,E),l[E.name]=void 0)}))).subscribe();return()=>{y.unsubscribe(),s&&t.forEach(l,E=>{E&&d({...E,stage:"CANCEL"})})}},[])},re=e=>e.formValueType||e.valueType||"text",x=e=>{var o;return((o=e.formItemProps)==null?void 0:o.name)||e.dataIndex},_=(e,o,s=!0)=>{var y;const r=re(o),d=t.get(e,r);if(!d)return null;const a=x(o),l=s?o.formItemProps:t.omit(o.formItemProps,"rules");return n.h(d,{key:a,name:a,label:o.title,...l,fieldProps:t.omit(o.formFieldProps,"slots"),showProps:o.showProps},(y=o.formFieldProps)==null?void 0:y.slots)},ne=(e,o,s)=>{var a;const r=o.valueType||"text",d=t.get(e,r);return d?n.h(d,{...t.omit(o.formFieldProps,"slots"),showProps:o.showProps,value:s},(a=o.formFieldProps)==null?void 0:a.slots):null},H=(e,o)=>t.map(o,s=>K(e,s)),Se=(e,o)=>{var d;const s=o.elementProps,r={...o.elementProps};return t.forEach((d=o.highConfig$)==null?void 0:d.registerPropsTrans,a=>{const l=t.get(s,a.name);if(!(!l||n.isVNode(l))){if(t.isArray(l)){if(t.some(l,y=>n.isVNode(y)))return;t.set(r,a.name,H(e,l));return}!l.elementType||(a.isFun?t.set(r,a.name,(...y)=>{const E=a.needParams?{...l.elementProps,params$:y}:l.elementProps;return K(e,{...l,elementProps:E})}):t.set(r,a.name,K(e,l)))}}),r},he=(e,o)=>{const s=t.size(o.children)>0?H(e,o.children):void 0,r=o.childrenSlotName||"default",d=t.omit(o.slots,s?r:"");return t.forEach(t.keys(d),a=>{const l=d[a];l&&!t.isFunction(l)&&l.elementType&&(d[a]=(...y)=>{const E=l.needParams?{...l.elementProps,params$:y}:l.elementProps;return K(e,{...l,elementProps:E})})}),{[r]:s?()=>s:void 0,...d}},K=(e,o)=>{const s=t.get(e,o.elementType)||o.elementType;if(o.highConfig$)return n.h(be,{key:o.elementId,elementMap:e,elementConfig:o});const r=he(e,o),d=Se(e,o);return n.h(s,{key:o.elementId,...d},r)},ve=e=>t.isArray(e)?t.head(e):t.isString(e)&&e.indexOf(".")>0?e.substring(0,e.indexOf(".")):e,be=n.defineComponent({props:{elementMap:{type:Object},elementConfig:{type:Object}},setup:e=>{const{state:o,sendEvent:s}=$(),{elementMap:r,elementConfig:d}=e,a=d.highConfig$,l=Se(r,d),y=t.reduce(a.registerEventList,(p,c)=>({...p,[c.name]:(...u)=>{s({type:c.sendEventName||d.elementId,payload:u})}}),{}),E=n.computed(()=>{if(!a.registerStateList||t.size(a.registerStateList)<=0)return;const p={...l},c=t.map(a.registerStateList,u=>{const i=u.mapName||u.name,m=t.get(o,u.name);return t.set(p,i,m),ve(i)});return t.pick(p,c)}),P=t.get(r,d.elementType)||d.elementType,f=he(r,d);return()=>t.get(E.value,"show$")===!1?null:n.h(P,{key:d.elementId,...l,...t.omit(E.value,"show$"),...y},f)}}),Ce=Symbol("pro-module"),$=()=>n.inject(Ce),Te=e=>{n.provide(Ce,e)},U={Success:"request-success$",Fail:"request-fail$"},Ve=()=>({state:{type:Object},elementMap:{type:Object},elementConfigs:{type:Array},requests:{type:Array}}),W=n.defineComponent({props:{...Ve()},setup:(e,{slots:o,expose:s})=>{const r=c=>t.isArray(c)?H(e.elementMap,c):K(e.elementMap,c),d=new R.Subject,a=c=>{d.next(c)},l=e.state||n.reactive({}),y=c=>{const u=l[c.type],i=t.isFunction(c.payload)?c.payload(u):c.payload;if(t.isObject(u)){k.setReactiveValue(l[c.type],i);return}l[c.type]=i},{dispatchRequest:E}=j.useRequestProvide(),P=t.reduce(e.requests,(c,u)=>{var i;return{...c,[(i=u.actor)==null?void 0:i.name]:u}},{}),f=t.reduce(e.requests,(c,u)=>({...c,[u.action]:u}),{}),p=(c,...u)=>{const i=t.get(P,c)||t.get(f,c);if(!i)return;let m;i.convertParams?m=i.convertParams(...u):m=t.get(u,0),i.loadingName&&y({type:i.loadingName,payload:!0}),E(i.actor,m)};return Pe(t.keys(P),{onSuccess:c=>{var i,m;const u=t.get(P,c.name);if(u!=null&&u.stateName){const h=u.convertData?u.convertData(c):(i=c.res)==null?void 0:i.data;y({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 i;const u=t.get(P,c.name);a({type:U.Fail,payload:{actor:c,requestOpts:u}}),(i=u.onFailed)==null||i.call(u,c)},onFinish:c=>{const u=t.get(P,[c.name,"loadingName"]);u&&y({type:u,payload:!1})}},!0),Te({elementMap:e.elementMap,subject$:d,sendEvent:a,state:l,dispatch:y,requests:e.requests,sendRequest:p}),s({sendEvent:a,sendRequest:p}),()=>{var c;return n.createVNode(n.Fragment,null,[t.size(e.elementConfigs)>0&&r(e.elementConfigs),(c=o.default)==null?void 0:c.call(o)])}}}),J=e=>{const{subject$:o}=$();k.useEffect(()=>{const s=o.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=()=>n.inject(oe)||{},Ke=n.defineComponent({props:{...xe()},setup:(e,{slots:o})=>(n.provide(oe,e.config),()=>{var s;return(s=o.default)==null?void 0:s.call(o)})}),Ue=(e={})=>o=>{o.provide(oe,e)},De=Symbol("pro-curd"),z=()=>n.inject(De),Ne=e=>n.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,o,s)=>{if(o){const r=t.filter(t.keys(o),d=>!o[d]);return t.omit(e,r)}if(s){const r=t.filter(t.keys(s),d=>!s[d](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,o,s)=>!o||!s?e:t.map(e,r=>{const d=t.isFunction(s)?s(r):s,a=t.get(o,d);return!a||t.isEmpty(a)||t.isFunction(a)||!t.isObject(a)?r:t.mergeWith(r,a,(l,y)=>{if(t.isArray(l)||t.isArray(y))return y})}),V=(e,o)=>t.reduce(e,(s,r)=>({...s,[r]:(...d)=>{var a,l;return(l=(a=o.value)==null?void 0:a[r])==null?void 0:l.call(a,...d)}}),{}),Ie={page:1,pageSize:10},Be=()=>({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=n.defineComponent({props:{...Q,...Be()},setup:(e,{slots:o,expose:s})=>{const{elementMap:r,state:d,sendEvent:a,sendRequest:l}=$(),y=n.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(y.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`))},p=n.computed(()=>f("form",!0)),c=n.computed(()=>f("detail",!0)),u=n.computed(()=>f("table",!0)),i=n.computed(()=>f("search"));let m;const h=b=>{l(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:w,record:X}=A;switch(L){case C.LIST:O===T.EMIT&&(m=w,h());return;case C.ADD:O===T.EXECUTE&&l(C.ADD,w,d.detailData);return;case C.EDIT:O===T.EXECUTE&&l(C.EDIT,w,d.detailData);return;case C.DELETE:O===T.EMIT?l(C.DELETE,X,e.rowKey):O===T.SUCCESS&&h();return}L&&b===T.EXECUTE&&l(L,w)});const S=t.reduce(e.operates,(b,A)=>({...b,[A.action]:A}),{}),v=b=>t.get(S,b),I=n.computed(()=>e.listProps),M=n.computed(()=>e.formProps),D=n.computed(()=>e.descProps),N=n.computed(()=>e.modalProps);return Ne({columns:y,getSignColumns:f,getFormItemVNode:E,getItemVNode:P,elementMap:r,formElementMap:e.formElementMap,rowKey:e.rowKey,curdState:d,formColumns:p,descColumns:c,tableColumns:u,searchColumns:i,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=o.default)==null?void 0:b.call(o)}}}),G=n.defineComponent({props:{...t.omit(W.props,"state","requests"),...me.props,curdState:{type:Object}},setup:(e,{slots:o,expose:s})=>{const{elementMap:r,formElementMap:d}=Y(),a=n.ref(),l=n.ref(),y=e.curdState||n.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),p=t.keys(t.omit(W.props,"state","requests"));return s({sendCurdEvent:c=>{var u;(u=l.value)==null||u.sendCurdEvent(c)},refreshList:c=>{var u;(u=l.value)==null||u.refreshList(c)},sendEvent:c=>{var u;(u=a.value)==null||u.sendEvent(c)},sendRequest:(c,...u)=>{var i;(i=a.value)==null||i.sendRequest(c,...u)}}),()=>n.createVNode(W,n.mergeProps({ref:a},t.pick(e,p),{elementMap:e.elementMap||r,state:y,requests:f}),{default:()=>[n.createVNode(me,n.mergeProps({ref:l},t.omit(e,...p,"curdState","operates"),{formElementMap:e.formElementMap||d,operates:P}),o)]})}}),$e=()=>({defaultAddRecord:{type:Object}}),ee=n.defineComponent({props:{...$e()},setup:e=>{var u;const{dispatch:o,sendRequest:s}=$(),{rowKey:r,curdState:d,listProps:a,getOperate:l,refreshList:y}=z(),E=(u=a==null?void 0:a.value)==null?void 0:u.pageState,P=i=>{const m=l(C.DETAIL);m!=null&&m.actor?s(C.DETAIL,i,r):o({type:"detailData",payload:t.cloneDeep(i)})},f=(i,{record:m})=>{i===T.EMIT&&(o({type:"mode",payload:F.DETAIL}),P(m))},p=i=>{i===T.EMIT?(o({type:"mode",payload:F.ADD}),o({type:"detailData",payload:e.defaultAddRecord||{}})):i===T.SUCCESS&&(E&&(E.page=1),y(),d.addAction===B.CONTINUE?o({type:"detailData",payload:e.defaultAddRecord||{}}):o({type:"mode",payload:void 0}))},c=(i,{record:m})=>{i===T.EMIT?(o({type:"mode",payload:F.EDIT}),P(m)):i===T.SUCCESS&&(o({type:"mode",payload:void 0}),y())};return J(({type:i,payload:m,source:h})=>{if(h)return;let g=i,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:p(S);break;case C.EDIT:c(S,{record:v});break}}),()=>null}}),ze=n.defineComponent({props:{...G.props,...ee.props},setup:(e,{slots:o,expose:s})=>{const r=n.ref();s(V(ce,r));const d=t.keys(ee.props);return()=>n.createVNode(G,n.mergeProps({ref:r},t.omit(e,d)),{default:()=>{var a;return[n.createVNode(ee,t.pick(e,d),null),(a=o.default)==null?void 0:a.call(o)]}})}}),Ge=()=>({defaultAddRecord:{type:Object},routeBack:{type:Function}}),te=n.defineComponent({props:{...Ge()},setup:e=>{const o=le.useRouter(),s=le.useRoute(),{dispatch:r,sendRequest:d}=$(),{rowKey:a,curdState:l}=z(),y=p=>{p===T.PAGE&&(r({type:"mode",payload:void 0}),r({type:"detailData",payload:{}}),r({type:"detailLoading",payload:!1}),r({type:"addAction",payload:void 0}))},E=(p,{record:c})=>{p===T.EMIT?o.push({path:`${s.path}/detail`,query:t.pick(c,a)}):p===T.PAGE&&(r({type:"mode",payload:F.DETAIL}),d(C.DETAIL,s.query,a))},P=p=>{p===T.EMIT?o.push({path:`${s.path}/add`}):p===T.PAGE?(r({type:"mode",payload:F.ADD}),r({type:"detailData",payload:e.defaultAddRecord||{}})):p===T.SUCCESS&&(l.addAction===B.CONTINUE?r({type:"detailData",payload:e.defaultAddRecord||{}}):e.routeBack?e.routeBack(C.ADD):o.go(-1))},f=(p,{record:c})=>{p===T.EMIT?o.push({path:`${s.path}/edit`,query:t.pick(c,a)}):p===T.PAGE?(r({type:"mode",payload:F.EDIT}),d(C.DETAIL,s.query,a)):p===T.SUCCESS&&(e.routeBack?e.routeBack(C.EDIT):o.go(-1))};return J(({type:p,payload:c,source:u})=>{if(u)return;let i=p,m=c==null?void 0:c.type;const h=c==null?void 0:c.record;switch(i===U.Success&&(i=t.get(c,["requestOpts","action"]),m=T.SUCCESS),i){case C.LIST:y(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}}),Xe=n.defineComponent({props:{...G.props,...te.props},setup:(e,{slots:o,expose:s})=>{const r=n.ref();s(V(ce,r));const d=t.keys(te.props);return()=>n.createVNode(G,n.mergeProps({ref:r},t.omit(e,d)),{default:()=>{var a;return[n.createVNode(te,t.pick(e,d),null),(a=o.default)==null?void 0:a.call(o)]}})}});function We(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!n.isVNode(e)}const _e=(e,o)=>n.defineComponent({props:{...e.props,renderItem:{type:Function},signName:{type:String}},setup:(s,{slots:r})=>{const{getItemVNode:d,curdState:a,descColumns:l,getSignColumns:y}=z(),E=n.computed(()=>{const P=s.signName?y(s.signName):l.value;return t.map(P,f=>{var i;let p;const c=(i=s.renderItem)==null?void 0:i.call(s,f);if(c)return c;const u=t.get(a.detailData,f.dataIndex);return n.createVNode(o,n.mergeProps({key:f.dataIndex,label:f.title},t.get(f.extra,"desc")),We(p=d(f,u))?p:{default:()=>[p]})})});return()=>n.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")})}}),He=()=>({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}}),Je=(e,o,s,r)=>n.defineComponent({inheritAttrs:!1,props:{...e.props,...He()},setup:(d,{slots:a,attrs:l,expose:y})=>{const{elementMap:E,formElementMap:P,curdState:f,formColumns:p,getSignColumns:c,sendCurdEvent:u}=z(),i=n.ref(),m=n.computed(()=>d.signName?c(d.signName):p.value),h=(v,I)=>{if(l.onFinish){l.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=i.value)==null||v.submit()},S=()=>{var v;f.addAction=B.CONTINUE,(v=i.value)==null||v.submit()};return y(V(r,i)),()=>n.createVNode(e,n.mergeProps({ref:i},t.omit(l,"onFinish"),d,{elementMap:d.elementMap||E,formElementMap:d.formElementMap||P,columns:d.columns||m.value,model:d.model||f[d.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),d.operateBar&&n.createVNode("div",{class:"pro-curd-form-operate"},[(I=a.operateStart)==null?void 0:I.call(a),f.mode!==F.DETAIL&&n.createVNode(o,n.mergeProps({onClick:g},d.okButtonProps,{loading:f.operateLoading}),{default:()=>[d.okText]}),(M=a.operateCenter)==null?void 0:M.call(a),d.showContinueAdd&&f.mode===F.ADD&&n.createVNode(o,n.mergeProps({onClick:S},d.continueButtonProps,{loading:f.operateLoading}),{default:()=>[d.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")})}}),Qe=()=>({extraInSearch:{type:Boolean,default:void 0},searchProps:{type:Object},tableProps:{type:Object},paginationProps:{type:Object},showPagination:{type:Boolean,default:!0},pageState:{type:Object}}),Ye=(e,o)=>n.defineComponent({props:{...Qe()},setup:(s,{slots:r})=>{const{elementMap:d,formElementMap:a,curdState:l,searchColumns:y,tableColumns:E,sendCurdEvent:P,operates:f}=z(),p=s.pageState||n.reactive({...Ie});let c;const u=()=>{P({action:C.LIST,type:T.EMIT,values:{...c,...p}})},i=g=>{c=g,p.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,w;const g=s.tableProps,S={elementMap:d,columns:E.value,...t.omit(g,"slots","operate"),operate:t.mergeWith({items:m},g==null?void 0:g.operate,(X,ie)=>{if(t.isArray(X)&&t.isArray(ie))return t.concat(X,h(ie))}),paginationState:{page:p.page,pageSize:p.pageSize},loading:l.listLoading,dataSource:(I=l.listData)==null?void 0:I.dataSource},v=r.extra?n.createVNode("div",{class:"pro-curd-list-extra"},[r.extra()]):null;return n.createVNode(n.Fragment,null,[(M=r.start)==null?void 0:M.call(r),r.search?r.search({executeSearchWithResetPage:i}):n.createVNode(e,n.mergeProps({formElementMap:a,columns:y.value},t.omit(s.searchProps,"slots"),{onFinish:i}),{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):n.createVNode(o,S,g==null?void 0:g.slots),(b=r.divide2)==null?void 0:b.call(r),s.showPagination&&n.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,p,(q=l.listData)==null?void 0:q.total,u),(O=r.footerEnd)==null?void 0:O.call(r)]),(w=r.end)==null?void 0:w.call(r)])}}}),Le=Symbol("pro-form-list"),se=()=>n.inject(Le),ue=e=>{n.provide(Le,e)},Ze=n.defineComponent({props:{pathList:{type:Array}},setup:(e,{slots:o})=>(ue({pathList:e.pathList}),()=>{var s;return(s=o.default)==null?void 0:s.call(o)})}),et=e=>n.defineComponent({props:{...e.props,rowKey:{type:String,default:"id"}},setup:(o,{slots:s})=>{const{formState:r,readonly:d}=de(),a=se(),l=ae(o.name),y=a!=null&&a.pathList?[...a.pathList,...l]:l,E=()=>{let f=t.get(r,y);t.isArray(f)||(f=[]),f.push({[o.rowKey]:new Date().valueOf()}),t.set(r,y,f)},P=f=>{const p=t.get(r,y);t.size(p)<=0||p.splice(f,1)};return()=>n.createVNode(e,t.omit(o,"rowKey"),{default:()=>{var f;return[t.map(t.get(r,y),(p,c)=>n.createVNode(Ze,{key:p[o.rowKey]||c,pathList:[...y,c]},{default:()=>{var u,i,m;return[n.createVNode("div",{class:"pro-form-list-item"},[(u=s.default)==null?void 0:u.call(s),!d.value&&n.createVNode(n.Fragment,null,[n.createVNode("div",{class:"pro-form-list-item-add",onClick:E},[(i=s.itemAdd)==null?void 0:i.call(s)]),n.createVNode("div",{class:"pro-form-list-item-minus",onClick:()=>P(c)},[(m=s.itemMinus)==null?void 0:m.call(s)])])])]}})),!d.value&&n.createVNode("div",{class:"pro-form-list-add",onClick:E},[(f=s.add)==null?void 0:f.call(s)])]}})}}),Me=Symbol("pro-form"),de=()=>n.inject(Me),tt=e=>{n.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}}),rt=(e,o,s)=>n.defineComponent({inheritAttrs:!1,props:{...e.props,...Q,...fe(),...t.omit(o.props,"items")},setup:(r,{slots:d,emit:a,expose:l,attrs:y})=>{const{elementMap:E,formElementMap:P}=Y(),f=r.elementMap||E,p=r.formElementMap||P,c=r.model||n.reactive({}),u=r.showState||n.reactive({}),i=r.readonlyState||n.reactive({}),m=r.disableState||n.reactive({});k.useEffect(()=>{r.showStateRules&&t.forEach(r.showStateRules,(D,N)=>{u[N]=D(c)}),r.readonlyStateRules&&t.forEach(r.readonlyStateRules,(D,N)=>{i[N]=D(c)}),r.disableStateRules&&t.forEach(r.disableStateRules,(D,N)=>{m[N]=D(c)})},c);const h=n.computed(()=>r.readonly),g=n.computed(()=>Z(r.columns,r.columnState,D=>x(D))),S=D=>{const N=Ae(D,u,r.showStateRules);a("finish",N,D)},v=n.ref();l(V(s,v)),tt({formState:c,showState:u,readonlyState:i,disableState:m,elementMap:f,formElementMap:p,readonly:h,columns:g,formRef:v,...r.provideExtra}),ue({});const I=t.keys(fe()),M=t.keys(t.omit(o.props,"items"));return()=>n.createVNode(e,n.mergeProps({ref:v},t.omit(y,"onFinish"),t.omit(r,...I,...M,"onFinish"),{model:c,onFinish:S}),{default:()=>{var D,N;return[(D=d.start)==null?void 0:D.call(d),p&&t.size(g.value)>0&&n.createVNode(n.Fragment,null,[r.row?n.createVNode(o,{row:r.row,col:r.col,items:t.map(g.value,b=>({rowKey:x(b),vNode:_(p,b,r.needRules),col:t.get(b,["extra","col"])}))},null):t.map(g.value,b=>_(p,b,r.needRules))]),(N=d.default)==null?void 0:N.call(d)]},...t.omit(d,"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}}),nt=(e,o,s)=>n.defineComponent({props:{...e.props,...o,...pe()},setup:(r,{slots:d,expose:a})=>{const l=r.model||n.reactive({}),y=new Set(r.debounceTypes),E=t.map(t.filter(r.columns,i=>{const m=re(i);return y.has(m)}),i=>x(i)),P=n.ref();a(V(s,P));const f=()=>{var i;(i=P.value)==null||i.submit()},p=t.debounce(()=>{f()},r.debounceTime);k.useEffect(()=>{r.initEmit&&f()},[]);const c=(i,m,h)=>t.some(h,g=>t.get(i,g)!==t.get(m,g));k.useWatch((i,m)=>{if(r.searchMode!==exports.SearchMode.AUTO)return;const h=t.size(r.debounceKeys)>0?r.debounceKeys:E;if(t.size(h)>0&&c(i,m,h)){p();return}f()},()=>t.clone(l));const u=t.keys(t.omit(pe(),"columns"));return()=>n.createVNode(e,n.mergeProps({ref:P},t.omit(r,u),{model:l}),d)}}),ye=()=>({readonly:{type:Boolean,default:void 0},fieldProps:{type:Object},showProps:{type:Object},slots:{type:Object}}),ot=(e,o)=>({InputComp:s,valueType:r,name:d})=>n.defineComponent({name:d,props:{...e.props,...ye()},setup:(a,{slots:l})=>{const{formState:y,showState:E,readonlyState:P,disableState:f,readonly:p,elementMap:c}=de(),u=se(),i=n.computed(()=>t.isBoolean(a.readonly)?a.readonly:t.isBoolean(P[a.name])?P[a.name]:p.value),m=ae(a.name),h=u!=null&&u.pathList?[...u.pathList,...m]:m,g=v=>{t.set(y,h,v)},S=t.keys(ye());return()=>{const v=t.get(E,h);if(t.isBoolean(v)&&!v)return null;const I=t.get(y,h),M=t.get(c,r);return n.createVNode(e,n.mergeProps(t.omit(a,...S,"name","slots"),{name:h}),{default:()=>[i.value?n.createVNode(n.Fragment,null,[M?n.createVNode(M,n.mergeProps({value:I},a.fieldProps,{showProps:a.showProps}),l):n.createVNode("span",null,[I])]):n.createVNode(s,n.mergeProps(o(I,g,t.get(f,h)),a.fieldProps),l)],...a.slots})}}}),Oe=Symbol("pro-table"),at=()=>n.inject(Oe),ct=e=>{n.provide(Oe,e)},ge=()=>({operate:{type:Object},columnEmptyText:{type:String},column:{type:Object},serialNumber:{type:Boolean},paginationState:{type:Object},provideExtra:{type:Object}}),st=(e,o,s)=>n.defineComponent({props:{...e.props,...Q,...o,...ge()},setup:(r,{slots:d,expose:a})=>{const{elementMap:l}=Y(),y=r.elementMap||l,E=()=>({title:"\u5E8F\u53F7",dataIndex:"serialNumber",width:80,...r.column,customRender:({index:u})=>{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)+u+1:u+1}}),P=()=>{const u=r.operate,i=t.map(u.items,h=>({...h,...t.get(u.itemState,h.value)})),m=t.sortBy(i,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 n.createVNode("div",{class:"pro-table-operate"},[t.map(g,S=>t.isFunction(S.element)?S.element(h,S):n.createVNode("div",{class:"pro-table-operate-item",key:S.value,onClick:()=>{var v;(v=S.onClick)==null||v.call(S,h)}},[S.label]))])}}},f=n.computed(()=>{const u=Z(r.columns,r.columnState,m=>m.dataIndex),i=t.map(u,m=>{const h={...r.column,...m};return m.customRender||(h.customRender=({text:g})=>ne(y,{...m,showProps:{...m.showProps,content:r.columnEmptyText}},g)||g||r.columnEmptyText),h});return r.serialNumber&&i.unshift(E()),r.operate&&r.operate.items&&t.some(r.operate.items,m=>m.show)&&i.push(P()),i}),p=n.ref();ct({columns:f,tableRef:p,...r.provideExtra}),a(V(s||[],p));const c=t.keys(ge());return()=>n.createVNode(e,n.mergeProps({ref:p},t.omit(r,c),{columns:f.value}),d)}});exports.CurdAction=C;exports.CurdAddAction=B;exports.CurdCurrentMode=F;exports.CurdMethods=ce;exports.CurdSubAction=T;exports.ProConfig=Ke;exports.ProCurd=G;exports.ProModalCurd=ze;exports.ProModule=W;exports.ProPageCurd=Xe;exports.RequestAction=U;exports.Wrapper=be;exports.convertPathToList=ae;exports.createCurdDesc=_e;exports.createCurdForm=Je;exports.createCurdList=Ye;exports.createExpose=V;exports.createForm=rt;exports.createFormItemCompFn=ot;exports.createFormList=et;exports.createGrid=we;exports.createProConfig=Ue;exports.createSearchForm=nt;exports.createTable=st;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=je;exports.useFailedRequestActor=ke;exports.useModuleEvent=J;exports.useProConfig=Y;exports.useProCurd=z;exports.useProForm=de;exports.useProFormList=se;exports.useProModule=$;exports.useProTable=at;
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.12",
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": "7e2bab0ef47e4e28c49e4534ca8f7e666c53babd"
35
+ "gitHead": "faf55181de8a0f0e9f0b55d720fcf1c00fe497ea"
36
36
  }