@chase-shao/vue-component-lib 1.2.38 → 1.2.39

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.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(x,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("axios"),require("pinia"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","axios","pinia","vue-router"],e):(x=typeof globalThis<"u"?globalThis:x||self,e(x.MyComponentLibrary={},x.Vue,x.axios,x.Pinia,x.VueRouter))})(this,function(x,e,be,Ve,Ce){"use strict";const Ne=Ve.defineStore("main",()=>({token:e.ref(void 0)})),Se=async t=>new Promise(o=>setTimeout(o,t)),Be=async(t,o,c,n=void 0)=>{if(t[o]===void 0)try{t[o]=null,t[o]=await c()||n}catch(a){console.error(a),t[o]=void 0}for(;t[o]===null;)await Se(100);return t[o]};function re(){const t=ne();return{apiBase:t.apiBase||void 0||"",appSecret:t.appSecret||void 0||""}}function se(){const{apiBase:t}=re();return be.create({baseURL:t,timeout:1e4,withCredentials:!0})}const X=async()=>{const{apiBase:t,appSecret:o}=re(),c=se(),n=Ne();return await Be(n,"token",async()=>(await c.get(`${t}/GenerateToken`,{params:{appid:"bpm",appsecret:o}}))?.data?.token)},F=async()=>{const t=await X(),o=se();return o.defaults.headers.common.Authorization=`Bearer ${t}`,o},Q={CurrentUserEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",CurrentUserPositionCode:t=>t.bpmStore()?.positionCode??888,CurrentDatetime:()=>new Date().toISOString(),ApproverEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",ApproverPositionCode:t=>t.bpmStore()?.positionCode??999,RejectReason:()=>"Test Reject Reason"},$=[];for(let t=0;t<256;++t)$.push((t+256).toString(16).slice(1));function Ee(t,o=0){return($[t[o+0]]+$[t[o+1]]+$[t[o+2]]+$[t[o+3]]+"-"+$[t[o+4]]+$[t[o+5]]+"-"+$[t[o+6]]+$[t[o+7]]+"-"+$[t[o+8]]+$[t[o+9]]+"-"+$[t[o+10]]+$[t[o+11]]+$[t[o+12]]+$[t[o+13]]+$[t[o+14]]+$[t[o+15]]).toLowerCase()}let Z;const xe=new Uint8Array(16);function $e(){if(!Z){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Z=crypto.getRandomValues.bind(crypto)}return Z(xe)}const le={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ie(t,o,c){if(le.randomUUID&&!t)return le.randomUUID();t=t||{};const n=t.random??t.rng?.()??$e();if(n.length<16)throw new Error("Random bytes length must be >= 16");return n[6]=n[6]&15|64,n[8]=n[8]&63|128,Ee(n)}var U=(t=>(t[t.Submit=0]="Submit",t[t.Link=1]="Link",t))(U||{}),P=(t=>(t[t.Create=0]="Create",t[t.Update=1]="Update",t[t.Details=2]="Details",t[t.List=3]="List",t))(P||{});function Me(t,o,c){const n={pageType:"",fields:{},globalValidations:[]};return t.__ClassAttributes?.forEach(a=>{if(a.attributeType==="UIPageType")n.pageType=a.Type;else if(a.attributeType==="UIValidationControl")n.globalValidations.push({rule:a.ruleName,errorMessage:a.errorMessage,param:a.ruleParameter,appliesTo:a.propertyNames||["*"]});else if(a.attributeType==="UIControl"){if(a.widget==="Tab"){n.tabs||(n.tabs=[]),n.tabs.unshift({key:Ie(),title:a.title,filters:a.filters?JSON.parse(a.filters):[]});return}n.actions||(n.actions=[]),n.actions.push({isSubmit:a.isSubmit,requestUrl:a.requestUrl,redirectUrl:a.redirectUrl,redirectType:a.redirectType,title:a.title,widget:a.widget==="Link"?U.Link:U.Submit,location:a.location,attributeType:a.attributeType,readonly:a.readonly})}}),Object.entries(t).forEach(([a,p])=>{if(a==="__ClassAttributes"||a==="className"||a==="id"||a==="deleteFlag"||a==="status"||a==="workFlowReason"||o!==3&&a==="workflowId")return;const d={validations:[],triggers:[],isFiltered:!1,dependent:""},{attributes:_,propertyValue:r}=p;switch(r){case null:d.modelValue="";break;case void 0:d.modelValue="";break;default:d.modelValue=r;break}a==="onBehalf"&&o===0&&(d.modelValue=Q.CurrentUserEmail(c)),_?.forEach(s=>{s.order||s.Order?d.order=s.order??s.Order:s.attributeType==="UIControl"?d.widget={...s,column:!0}:s.attributeType==="UIValidationControl"&&o!==3?d.widget?.widget!=="CheckBox"&&d.validations.push(s):s.attributeType==="UIListed"?d.widget={...s,column:!0}:s.attributeType==="UIFiltered"?d.isFiltered=!0:s.dependentType?d.dependent=Q[s.dependentType]?Q[s.dependentType](c):"":s.eventType==="Change"&&d.triggers?.push({event:"change",handlerName:s.eventName})}),n.fields[a]=d}),n}const q=async(t,o,c,n)=>{const p=await(await F()).get(`/General/${o}/${t}/page`,{params:n});return Me(p?.data,t,c)},ie=async(t,o,c)=>(await(await F()).post(`/General/${o}/${t}/button/List`,null,{params:c}))?.data;async function Ue(t,o){const n=await(await F()).post(`/General/${t}/list`,o);return{data:n.data.data,totalCount:n.data.totalCount}}async function Le(t,o,c){const a=await(await F()).post(c,o,{params:{className:t}});return a.data.length>0?a.data[0]:0}function De(t,o){return t.replace(/{workflowId}/g,o)}async function Te(t,o,c,n){const a=await F(),p=De(n,o);return(await a.put(p,c,{params:{className:t}}))?.data}function Ae(t,o){return t.replace(/{WorkflowId}/g,o)}function Re(t,o){return t.replace(/{ApproverEmail}/g,o)}function Fe(t,o){return t.replace(/{WorkFlowReason}/g,o)}function He(t,o){return t.replace(/{Status}/g,o)}function Pe(t,o){return t.replace(/{IfTriggerGlobal_RandP_Approval}/g,o)}function Ke(t,o){return t.replace(/{ClassName}/g,o)}async function je(t,o,c,n,a,p,d,_){const r=await F();let s=Ae(p,o);return s=Re(s,c),s=Fe(s,n),s=He(s,d),s=Pe(s,_),s=Ke(s,t),(await r.put(s,a,{params:{reason:n}}))?.data}async function Oe(t,o){const a=(await(await F()).get(t,{params:{value:o}}))?.data;return Object.entries(a).map(([p,d])=>({value:p,label:d}))}async function ze(t,o){return(await(await F()).get(`/General/${t}/${o}/process`))?.data}const K=(t,o)=>{let c="";return{res:t.every(a=>{const p=We(a,o);return p||(c=a.errorMessage),p}),errorMessages:c}},We=(t,o)=>{const{ruleName:c,ruleParameter:n}=t;return qe[c](n,o)},qe={Regex:(t,o)=>new RegExp(t).test(o),Required:(t,o)=>!!o},ce=e.defineComponent({__name:"InputText",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:o,emit:c}){const n=t,a=c,p=e.useModel(t,"modelValue"),d=s=>K(n.validations,s),_=s=>{a("input",s)},r=s=>{const h=d(s);a("error",h.res?"":h.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(g=>{g.event==="change"&&a(g.event,g.handlerName,s)})};return o({validate(){const s=d(n.modelValue);return a("error",s.res?"":s.errorMessages),s.res}}),(s,h)=>{const g=e.resolveComponent("AInput");return e.openBlock(),e.createBlock(g,{modelValue:p.value,"onUpdate:modelValue":h[0]||(h[0]=y=>p.value=y),"allow-clear":"",disabled:n.readonly||n.config.Readonly,onInput:_,onChange:r},null,8,["modelValue","disabled"])}}}),Ge=e.defineComponent({__name:"InputNumber",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:o,emit:c}){const n=t,a=c,p=e.useModel(t,"modelValue"),d=e.ref(100),_=e.ref(0);e.onMounted(()=>{n.validations&&n.validations.forEach(g=>{g.ruleName==="Max"&&(d.value=g.ruleParameter),g.ruleName==="Min"&&(_.value=g.ruleParameter)})});const r=g=>K(n.validations,g),s=g=>{a("input",g)},h=g=>{const y=r(g);a("error",y.res?"":y.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(k=>{k.event==="change"&&a(k.event,k.handlerName,g)})};return o({validate(){const g=r(n.modelValue);return a("error",g.res?"":g.errorMessages),g.res}}),(g,y)=>{const k=e.resolveComponent("AInputNumber");return e.openBlock(),e.createBlock(k,{modelValue:p.value,"onUpdate:modelValue":y[0]||(y[0]=S=>p.value=S),clearable:"",disabled:n.readonly,min:_.value,max:d.value,onInput:s,onChange:h},null,8,["modelValue","disabled","min","max"])}}}),de=e.defineComponent({__name:"SelectList",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change"],["update:modelValue"]),setup(t,{expose:o,emit:c}){const n=t,a=c,p=e.ref(!1),d=e.ref(n.config.options??[]),_=e.useModel(t,"modelValue"),r=g=>K(n.validations,g);e.computed(()=>{const g={};return n.triggers&&n.triggers.length>0&&n.triggers.forEach(y=>{g[y.event]=k=>{a(y.event,y.handlerName,k);const S=r(k);a("error",S.res?"":S.errorMessages)}}),g});const s=async()=>{n.config.dataSourceProvider&&(d.value=await Oe(n.config.dataSourceProvider))};e.onMounted(s);const h=g=>{a("update:modelValue",g);const y=r(g);a("error",y.res?"":y.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(k=>{k.event==="change"&&a(k.event,k.handlerName,g)})};return o({validate(){const g=r(n.modelValue);return a("error",g.res?"":g.errorMessages),g.res}}),(g,y)=>{const k=e.resolveComponent("AOption"),S=e.resolveComponent("ASelect");return e.openBlock(),e.createBlock(S,{"allow-clear":"",modelValue:_.value,"onUpdate:modelValue":y[0]||(y[0]=C=>_.value=C),loading:p.value,"filter-option":!0,"allow-search":!0,onChange:h},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,C=>(e.openBlock(),e.createBlock(k,{key:C.value,value:C.value,label:C.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","loading"])}}}),Ye=e.defineComponent({__name:"Cascader",props:{modelValue:{},config:{}},emits:["update:modelValue","change"],setup(t,{expose:o,emit:c}){const n=t,a=c,p=e.ref(n.config.options??[]),d=r=>{a("update:modelValue",r),a("change",r)};e.onMounted(async()=>{if(n.config){const r=n.config.dataSourceProvider;if(r){const h=await(await F()).get(r);p.value=h.data}}});const _={value:"key",label:"value"};return o({validate(){return!0}}),(r,s)=>{const h=e.resolveComponent("ACascader"),g=e.resolveComponent("ASpace");return e.openBlock(),e.createBlock(g,{direction:"vertical",size:"large"},{default:e.withCtx(()=>[e.createVNode(h,{"field-names":_,"model-value":r.modelValue,options:p.value,style:{width:"320px"},placeholder:"Please select ...",onChange:d},null,8,["model-value","options"])]),_:1})}}}),Je={style:{"margin-top":"16px"}},Xe=e.defineComponent({__name:"FileUpload",props:{className:{},fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:o,emit:c}){const n=e.ref({});e.onMounted(async()=>{const b=await X();n.value={Authorization:`Bearer ${b}`}});const a=t,p=c,d=b=>K(a.validations,b),r=ne().apiBase,s=e.ref(null),h=e.ref(0);function g(b,i,u){return b.replace(/{WorkflowId}/g,i).replace(/{ClassName}/g,u)}const y=e.computed(()=>{if(a.config.uploadURL){const b=r+a.config.uploadURL;return g(b,"5767",a.className)}return""}),k=b=>{p("change",b),a.triggers&&a.triggers.length>0&&a.triggers.forEach(i=>{i.event==="change"&&p(i.event,i.handlerName,b)})},S=b=>{const{onProgress:i,onError:u,onSuccess:m,fileItem:l,name:w}=b,f=new XMLHttpRequest;f.upload&&(f.upload.onprogress=function(I){let L;I.total>0&&(L=I.loaded/I.total),i(L,I)}),f.onerror=function(L){u(L)},f.onload=function(){if(f.status<200||f.status>=300)return u(f.responseText);m(f.response)};const E=new FormData;return E.append(w||"file",l.file,l.name),f.open("post",y.value,!0),Object.entries(n.value).forEach(([I,L])=>{console.log("🚀 ~ customRequest ~ key, value:",I,L),f.setRequestHeader(I,L)}),f.send(E),{abort(){f.abort()}}},C=e.ref(null);function T(b){const i=b.target;i.files&&i.files.length>0&&(C.value=i.files[0])}async function H(){if(console.log("🚀 ~ handleNativeUpload ~ nativeFile.value:",C.value),!C.value)return;const b=new FormData;b.append(a.fieldKey,C.value,C.value.name);try{const i=await X(),u=new XMLHttpRequest;u.open("POST",y.value,!0),u.setRequestHeader("Authorization",`Bearer ${i}`),u.onload=function(){u.status>=200&&u.status<300&&p("change",u.response)},u.onerror=function(){},u.send(b)}catch{}}function A(){s.value&&s.value.submit()}return o({submit(b){s.value&&(a.config.uploadURL&&(h.value=b),e.nextTick(()=>{s.value.submit()}))},validate(){const b=d(a.modelValue);return p("error",b.res?"":b.errorMessages),b.res}}),(b,i)=>{const u=e.resolveComponent("a-upload"),m=e.resolveComponent("a-button");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(u,{ref_key:"uploadRef",ref:s,action:y.value,limit:a.config.allowedNumber,"custom-request":S,"auto-upload":!1,name:a.fieldKey,onChange:k},{"start-icon":e.withCtx(()=>i[0]||(i[0]=[])),_:1},8,["action","limit","name"]),e.createVNode(m,{onClick:A},{default:e.withCtx(()=>i[1]||(i[1]=[e.createTextVNode("上传",-1)])),_:1,__:[1]}),e.createElementVNode("div",Je,[e.createElementVNode("input",{type:"file",onChange:T},null,32),e.createVNode(m,{onClick:H,disabled:!C.value},{default:e.withCtx(()=>i[2]||(i[2]=[e.createTextVNode("原生上传",-1)])),_:1,__:[2]},8,["disabled"])])],64)}}}),Qe=e.defineComponent({__name:"TextArea",props:{fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:o,emit:c}){const n=t,a=c,p=r=>K(n.validations,r),d=r=>{a("update:modelValue",r),a("input",r)},_=r=>{a("update:modelValue",r);const s=p(r);a("error",s.res?"":s.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(h=>{h.event==="change"&&a(h.event,h.handlerName,r)})};return o({validate(){const r=p(n.modelValue);return a("error",r.res?"":r.errorMessages),r.res}}),(r,s)=>{const h=e.resolveComponent("ATextarea");return e.openBlock(),e.createBlock(h,{"model-value":n.modelValue,placeholder:"Please enter something","allow-clear":"",disabled:n.readonly,onInput:d,onChange:_},null,8,["model-value","disabled"])}}}),Ze=e.defineComponent({__name:"CheckBox",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:o,emit:c}){const n=t,a=c,p=e.useModel(t,"modelValue"),d=r=>K(n.validations,r),_=r=>{const s=d(r);a("error",s.res?"":s.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(h=>{h.event==="change"&&a(h.event,h.handlerName,r)})};return o({validate(){const r=d(n.modelValue);return a("error",r.res?"":r.errorMessages),r.res}}),(r,s)=>{const h=e.resolveComponent("ACheckbox");return e.openBlock(),e.createBlock(h,{modelValue:p.value,"onUpdate:modelValue":s[0]||(s[0]=g=>p.value=g),clearable:"",disabled:n.readonly||n.config.Readonly,onChange:_},{default:e.withCtx(()=>s[1]||(s[1]=[e.createTextVNode("Yes",-1)])),_:1,__:[1]},8,["modelValue","disabled"])}}}),ve={class:"widget-wrapper"},et={class:"title mb-1.5"},tt={key:0,class:"required"},ot={class:"form-widget"},nt={class:"widget"},at={key:0,class:"err-msg"},rt=e.defineComponent({__name:"index",props:e.mergeModels({config:{},className:{},fieldKey:{},modelValue:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error"],["update:modelValue"]),setup(t,{expose:o,emit:c}){const n=t,a=c,p=e.useModel(t,"modelValue"),d=e.useTemplateRef("widgetRef");e.onMounted(()=>{console.log("🍚 ~ props.name:",n)});const _=e.computed(()=>{switch(n.config?.widget?.widget){case"TextBox":return ce;case"Number":return Ge;case"SelectList":return de;case"Cascade":return Ye;case"File":return Xe;case"TextArea":return Qe;case"DropDown":return de;case"CheckBox":return Ze;default:return ce}}),r=e.ref(""),s=y=>{r.value=y},h=(y,k)=>{a("change",y,k)};function g(){return n.config?.widget?.widget==="File"}return o({isFileUpload(){return n.config?.widget?.widget==="File"},submit(y){g()&&d.value.submit(y)},validate(){return d.value?.validate()},getCompName(){return n?.config?.widget?.title}}),(y,k)=>(e.openBlock(),e.createElementBlock("div",ve,[e.createElementVNode("div",et,[e.createTextVNode(e.toDisplayString(n?.config?.widget?.title),1),n.config.validations.length?(e.openBlock(),e.createElementBlock("span",tt,"*")):e.createCommentVNode("",!0)]),e.createElementVNode("div",ot,[e.createElementVNode("div",nt,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(_.value),{ref_key:"widgetRef",ref:d,modelValue:p.value,"onUpdate:modelValue":k[0]||(k[0]=S=>p.value=S),"field-key":n.fieldKey,config:n.config.widget,validations:n.config.validations,triggers:n.config.triggers,"class-name":n.className,onError:s,onChange:h},null,40,["modelValue","field-key","config","validations","triggers","class-name"]))]),r.value.length>0?(e.openBlock(),e.createElementBlock("div",at,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)])]))}}),j=(t,o)=>{const c=t.__vccOpts||t;for(const[n,a]of o)c[n]=a;return c},v=j(rt,[["__scopeId","data-v-5f2bf9d3"]]),st=e.defineComponent({__name:"SubmitButton",props:{url:{},redirectType:{}},emits:["click"],setup(t,{emit:o}){const c=t,n=o;function a(){n("click",c.url,c.redirectType)}return(p,d)=>{const _=e.resolveComponent("AButton");return e.openBlock(),e.createBlock(_,{type:"primary",onClick:a},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3})}}}),lt=e.defineComponent({__name:"DetailLink",props:{url:{},redirectType:{}},emits:["click"],setup(t,{emit:o}){const c=t,n=o;function a(){n("click",c.url,c.redirectType)}return(p,d)=>{const _=e.resolveComponent("ALink");return e.openBlock(),e.createBlock(_,{onClick:a},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3})}}}),O=e.defineComponent({__name:"index",props:{config:{}},emits:["click"],setup(t,{emit:o}){const c=t,n=o;function a(r,s){n("click",c.config.widget,r,s,c.config.title)}const p=e.computed(()=>{switch(c.config.location){case"InOperation":return st;case"InTable":default:return lt}}),d=e.computed(()=>c.config.widget===U.Submit?c.config.requestUrl??"":c.config.widget===U.Link?c.config.redirectUrl??"":""),_=e.computed(()=>c.config.redirectType??"Details");return(r,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{url:d.value,"redirect-type":_.value,onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.config.title),1)]),_:1},8,["url","redirect-type"]))}}),ee=Symbol("library-router");function G(){const t=e.inject(ee,null);return t||Ce.useRouter()}const me=Symbol("library-triggers");function te(){const t=e.inject(me,null);return t||{}}const pe=Symbol("library-pinia"),ue=Symbol("library-bpmStore"),fe=Symbol("library-svrStore");function Y(){return e.inject(ue,null)}function J(){return e.inject(fe,null)}const it={class:"page-container"},ct={class:"page-header"},dt={class:"page-title"},mt={class:"page-subtitle"},pt={class:"page-body"},ut={class:"form-card"},ft={class:"form-fields"},gt={key:0,class:"form-content"},_t={class:"page-footer"},ht={class:"action-container"},wt={class:"action-buttons"},ge=j(e.defineComponent({__name:"CreateView",props:{className:{}},setup(t){const o=Y(),c=J(),n=G(),a=te(),p=e.useTemplateRef("dataWidgets"),d=e.getCurrentInstance(),_=t,r=e.ref(),s=e.ref([]),h=e.ref({});function g(i){return i?Object.entries(i).map(([m,l])=>({fieldKey:m,...l})).filter(m=>m.widget&&m.widget.widget!=="Hidden").filter(m=>!A.value.includes(m.fieldKey)):[]}function y(i){return i?Object.entries(i).filter(([m,l])=>l.dependent).reduce((m,[l,w])=>(m[l]=w.dependent,m),{}):[]}const k=e.computed(()=>r.value?.actions?[...r.value.actions].reverse():[]),S=e.reactive({}),C=e.ref(!1);e.onMounted(async()=>{C.value=!0,r.value=await q(P.Create,_.className,{svrStore:c,bpmStore:o}),s.value=g(r.value.fields),console.log("🚀 ~ _fields.value:",s.value),h.value=y(r.value.fields);for(const i in r.value.fields)S[i]=r.value.fields[i].modelValue;C.value=!1});async function T(i,u,m){switch(i){case U.Submit:let l=!0;if(p.value?.forEach(f=>{f?.validate&&(f.validate()||(l=!1))}),!l){d?.appContext.config.globalProperties.$message.error("表单验证未通过,请检查输入项");return}const w=await Le(_.className,{...S,...h.value},u);p.value?.forEach(f=>{f?.submit&&f.submit(w)}),d?.appContext.config.globalProperties.$notification.success("创建成功!"),n.push({name:"List",params:{className:_.className}});break;case U.Link:m==="List"&&n.push({name:"List",params:{className:_.className}});break;default:console.warn("Unknown action type:",i)}}const H=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","positionId"],A=e.ref(H);function b(i,u){a[i]?.(u,A),r.value&&(s.value=g(r.value.fields))}return(i,u)=>{const m=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",it,[e.createElementVNode("div",ct,[e.renderSlot(i.$slots,"title",{},()=>[e.createElementVNode("h1",dt,"创建 "+e.toDisplayString(i.className),1),e.createElementVNode("p",mt,"请填写以下信息创建新的 "+e.toDisplayString(i.className)+" 记录",1)],!0)]),e.createElementVNode("div",pt,[e.createVNode(m,{loading:C.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",ut,[e.createElementVNode("div",ft,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(l,w)=>(e.openBlock(),e.createElementBlock("div",{key:l.fieldKey,class:"form-field-wrapper"},[e.createVNode(v,{ref_for:!0,ref:"dataWidgets","field-key":l.fieldKey,config:l,"class-name":i.className,modelValue:S[l.fieldKey],"onUpdate:modelValue":f=>S[l.fieldKey]=f,class:"form-field",onChange:b},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"])]))),128))]),i.$slots.content?(e.openBlock(),e.createElementBlock("div",gt,[e.renderSlot(i.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",_t,[e.createElementVNode("div",ht,[e.renderSlot(i.$slots,"action",{},void 0,!0),e.createElementVNode("div",wt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,l=>(e.openBlock(),e.createBlock(O,{key:l.Title,config:l,class:"action-button",onClick:T},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-d8292149"]]),yt={class:"page-container"},kt={class:"page-header"},bt={class:"page-title"},Vt={class:"page-subtitle"},Ct={class:"page-body"},Nt={class:"form-card"},St={class:"form-fields"},Bt={key:0,class:"form-content"},Et={class:"page-footer"},xt={class:"action-container"},$t={class:"action-buttons"},_e=j(e.defineComponent({__name:"UpdateView",props:{className:{},workflowId:{}},setup(t){const o=G(),c=te(),n=J(),a=Y(),p=e.useTemplateRef("dataWidgets"),d=e.getCurrentInstance(),_=t,r=e.ref(),s=e.ref([]),h=e.ref({});function g(u){return u?Object.entries(u).map(([l,w])=>({fieldKey:l,...w})).filter(l=>l.widget&&l.widget.widget!=="Hidden").filter(l=>!b.value.includes(l.fieldKey)):[]}function y(u){return u?Object.entries(u).filter(([l,w])=>w.dependent).reduce((l,[w,f])=>(l[w]=f.dependent,l),{}):[]}const k=e.computed(()=>r.value?.actions?[...r.value.actions].reverse():[]),S=e.reactive({}),C=e.ref(!1);e.onMounted(async()=>{C.value=!0,r.value=await q(P.Update,_.className,{svrStore:n,bpmStore:a},{workflowId:_.workflowId});const u=await ie(P.Update,_.className,{workflowId:_.workflowId,email:T()});r.value.actions=r.value.actions?.filter(m=>{const l=u.find(w=>w.button===m.title);return l?l.isShow:!0}),s.value=g(r.value.fields),h.value=y(r.value.fields);for(const m in r.value.fields)S[m]=r.value.fields[m].modelValue;C.value=!1});function T(){return n()?.userInfo?.email_address??""}async function H(u,m,l){switch(u){case U.Submit:let w=!0;if(p.value?.forEach(E=>{E?.validate&&(E.validate()||(w=!1))}),!w){d?.appContext.config.globalProperties.$message.error("表单验证未通过,请检查输入项");return}const f=await Te(_.className,_.workflowId,{...S,...h.value},m);p.value?.forEach(E=>{E?.submit&&E.submit(f)}),d?.appContext.config.globalProperties.$notification.success("修改成功!"),o.push({name:"List",params:{className:_.className}});break;case U.Link:o.push({name:l,params:{className:_.className}});break;default:console.warn("Unknown action type:",u)}}const A=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","positionId"],b=e.ref(A);function i(u,m){c[u]?.(m,b),r.value&&(s.value=g(r.value.fields))}return(u,m)=>{const l=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",yt,[e.createElementVNode("div",kt,[e.renderSlot(u.$slots,"title",{},()=>[e.createElementVNode("h1",bt,"编辑 "+e.toDisplayString(u.className),1),e.createElementVNode("p",Vt,"修改以下信息来更新 "+e.toDisplayString(u.className)+" 记录 (ID: "+e.toDisplayString(u.workflowId)+")",1)],!0)]),e.createElementVNode("div",Ct,[e.createVNode(l,{loading:C.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",Nt,[e.createElementVNode("div",St,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(w,f)=>(e.openBlock(),e.createElementBlock("div",{key:w.fieldKey,class:"form-field-wrapper"},[e.createVNode(v,{ref_for:!0,ref:"dataWidgets",name:f,config:w,modelValue:S[w.fieldKey],"onUpdate:modelValue":E=>S[w.fieldKey]=E,class:"form-field",onChange:i},null,8,["name","config","modelValue","onUpdate:modelValue"])]))),128))]),u.$slots.content?(e.openBlock(),e.createElementBlock("div",Bt,[e.renderSlot(u.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Et,[e.createElementVNode("div",xt,[e.renderSlot(u.$slots,"action",{},void 0,!0),e.createElementVNode("div",$t,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,w=>(e.openBlock(),e.createBlock(O,{key:w.Title,config:w,class:"action-button",onClick:H},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-ddbaf907"]]),he=Symbol("library-custom-comp");function It(){return e.inject(he,null)}const Mt={class:"page-container"},Ut={class:"page-header"},Lt={class:"page-title"},Dt={class:"page-subtitle"},Tt={class:"page-body"},At={class:"detail-card"},Rt={class:"detail-fields"},Ft={class:"detail-field"},Ht={class:"field-label"},Pt={class:"field-value"},Kt={key:0,class:"detail-content"},jt={class:"page-footer"},Ot={class:"action-container"},zt={class:"action-buttons"},we=j(e.defineComponent({__name:"DetailView",props:{className:{},workflowId:{}},setup(t){const o=J(),c=Y(),n=te(),a=G(),p=It(),d=e.getCurrentInstance(),_=t,r=e.ref(),s=e.ref([]);function h(i){return i?Object.entries(i).map(([m,l])=>(typeof l.modelValue=="boolean"?l.fieldValue=l.modelValue?"Yes":"No":l.fieldValue=l.modelValue,{fieldKey:m,...l})).filter(m=>m.widget&&m.widget.widget!=="Hidden"):[]}const g=e.computed(()=>r.value?.actions?[...r.value.actions].reverse():[]),y=e.ref(!0),k=(i,u="yyyy-MM-dd hh:mm:ss.fff")=>{const m=new Date(i);if(isNaN(m.getTime()))return i;const l={yyyy:m.getFullYear(),yy:m.getFullYear().toString().substring(2),MM:(m.getMonth()+1).toString().padStart(2,"0"),M:m.getMonth()+1,dd:m.getDate().toString().padStart(2,"0"),d:m.getDate(),hh:m.getHours().toString().padStart(2,"0"),h:m.getHours(),mm:m.getMinutes().toString().padStart(2,"0"),m:m.getMinutes(),ss:m.getSeconds().toString().padStart(2,"0"),s:m.getSeconds(),fff:m.getMilliseconds().toString().padStart(3,"0"),f:m.getMilliseconds()};let w=u;for(const f of Object.keys(l))w=w.replace(f,l[f]);return w},S=(i,u)=>{const m=i.findIndex(l=>l.isCurrent);return i.map((l,w)=>{const f={id:l.id,title:"",proxy:"",sub:"",desc:"",status:1,time:""};f.title=l.workflowProcessApprovers[0]?.name;const E=l.workflowProcessApprovers[l.workflowProcessApprovers.length-1],I=l.workflowHistorys[l.workflowHistorys.length-1],L=I?.workflowHistoryApprovers[I?.workflowHistoryApprovers?.length-1];if(E&&L&&E?.email?.toLowerCase()!==L?.approverEmail?.toLowerCase()&&(f.title=`${L.name}`,f.proxy=`代理: ${E.name}`),l.sort>1?f.sub="审批角色:"+l.nodeName.replace("Submit","").replace("Approve",""):f.sub="提交申请",l.isCurrent&&u!==-1)f.desc="审批中",f.status=1;else{const D=l.workflowHistorys[l.workflowHistorys.length-1];if(D&&D.status===100)f.time=k(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),f.status=2,f.desc="已审批";else if(D&&D.status===999)f.time=k(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),f.status=0,f.desc="已跳过";else if(D)if(f.time=k(D.takeActionAt,"yyyy-MM-dd hh:mm:ss"),l.sort===1)f.status=2,f.desc="";else{const V=D.workflowHistoryApprovers[0];f.status=3,f.desc=V?.reason?`拒绝原因:${V.reason}`:"已拒绝"}else w<m||m===-1?(f.status=0,f.desc="已跳过"):(f.status=0,f.desc="待审批");D&&D.status}return f})},C=e.ref([]),T=e.ref(!1);e.onMounted(async()=>{y.value=!0,r.value=await q(P.Details,_.className,{svrStore:o,bpmStore:c},{workflowId:_.workflowId});const i=await ie(P.Details,_.className,{workflowId:_.workflowId,email:A()});r.value.actions=r.value.actions?.filter(m=>{const l=i.find(w=>w.button===m.title);return l?l.isShow:!0}),T.value=i.find(m=>m.button==="IsGlobal")?.isShow??!1,s.value=h(r.value.fields);const u=await ze(_.className,_.workflowId);C.value=S(u,0),y.value=!1});async function H(i,u){return n[i]?.(u)}function A(){return o()?.userInfo?.email_address??""}async function b(i,u,m,l){try{switch(i){case U.Submit:const{reason:w,ifGlobal:f}=await H(l,{isGlobal:T.value}),E=l==="Approve"?"100":"-1";await je(_.className,_.workflowId,A(),w,[_.workflowId],u,E,f);const I=l==="Approve"?"审批已通过!":"审批已拒绝!";d?.appContext.config.globalProperties.$notification.success(I),a.push({name:"List",params:{className:_.className}});break;case U.Link:m==="List"&&a.push({name:"List",params:{className:_.className}});break;default:console.warn("Unknown action type:",i)}}catch{}}return(i,u)=>{const m=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Mt,[e.createElementVNode("div",Ut,[e.renderSlot(i.$slots,"title",{},()=>[e.createElementVNode("h1",Lt,e.toDisplayString(i.className)+" 详情",1),e.createElementVNode("p",Dt,"查看 "+e.toDisplayString(i.className)+" 记录详细信息 (ID: "+e.toDisplayString(i.workflowId)+")",1)],!0)]),e.createElementVNode("div",Tt,[e.createVNode(m,{loading:y.value,class:"detail-container"},{default:e.withCtx(()=>[e.createElementVNode("div",At,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(p).Steps),{steps:C.value},null,8,["steps"])),e.createElementVNode("div",Rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,l=>(e.openBlock(),e.createElementBlock("div",{key:l.fieldKey,class:"detail-field-wrapper"},[e.createElementVNode("div",Ft,[e.createElementVNode("div",Ht,e.toDisplayString(l.widget?.title),1),e.createElementVNode("div",Pt,e.toDisplayString(l.fieldValue),1)])]))),128))]),i.$slots.content?(e.openBlock(),e.createElementBlock("div",Kt,[e.renderSlot(i.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",jt,[e.createElementVNode("div",Ot,[e.renderSlot(i.$slots,"action",{},void 0,!0),e.createElementVNode("div",zt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,l=>(e.openBlock(),e.createBlock(O,{key:l.Title,config:l,class:"action-button",onClick:b},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-278bd966"]]),Wt={class:"list-container"},qt={class:"page-title"},Gt={class:"query-title"},Yt={class:"field-wrapper"},ye=j(e.defineComponent({name:"ListView",__name:"ListView",props:{className:{}},setup(t){const o=J(),c=Y(),n=G(),a=t,p=e.ref(),d=e.reactive({current:1,total:0,pageSize:10,defaultPageSize:10,showTotal:!0,showPageSize:!0,filters:[]});function _(){const V=Object.entries(w.value).filter(([,N])=>N&&N!=="").map(([N,B])=>({key:N,value:B}));return{pageNumber:d.current,pageSize:d.pageSize,filters:[...d.filters,...V],sorts:[{key:"status",type:0}]}}const r=e.computed(()=>({x:g.value.length*150+250})),s=V=>{const N=Object.entries(V).filter(([,B])=>B.widget?.column).map(([B,R],z)=>({title:R.widget.title,dataIndex:B.charAt(0).toLowerCase()+B.slice(1),order:R.order,ellipsis:!0,tooltip:!0,width:150,minWidth:100,resizable:!0})).sort((B,R)=>B.order-R.order);N.push({title:"Actions",slotName:"optional",align:"center",width:250,minWidth:200,fixed:"right",resizable:!1}),g.value=N},h=e.ref([]),g=e.ref([]),y=e.ref(!0),k=e.ref(!0),S=e.ref(),C=async()=>{k.value=!0;const V=await Ue(a.className,_());h.value=V.data,d.total=V.totalCount,k.value=!1},T=e.ref(!1);e.onMounted(async()=>{y.value=!0,p.value=await q(3,a.className,{svrStore:o,bpmStore:c}),s(p.value.fields),E(p.value.fields),l(p.value?.tabs?.[0]?.key||""),S.value=p.value.actions,y.value=!1,T.value=!0}),e.onActivated(()=>{T.value&&C()});const H=V=>{d.current=V,C()},A=V=>{d.pageSize=V,C()};function b(V,N,B,R,z){switch(V){case U.Link:n.push({name:B,params:{workflowId:z}});break;default:console.warn("Unknown action type:",V)}}function i(V,N,B){switch(V){case U.Link:n.push({name:B});break;default:console.warn("Unknown action type:",V)}}function u(){return o()?.userInfo?.email_address??""}function m(V,N){return V.replace(/{currentUserEmail}/g,N)}function l(V){const N=p.value?.tabs?.find(B=>B.key===V)?.filters;d.filters=N?.map(B=>({...B,value:m(B.value,u())}))||[],C()}const w=e.ref({}),f=e.computed(()=>p.value?.fields?Object.entries(p.value.fields).filter(([,V])=>V.isFiltered):[]),E=V=>{const N={};Object.entries(V).forEach(([B,R])=>{N[B]=R.modelValue}),w.value=N},I=()=>{d.current=1,C()},L=()=>{p.value&&E(p.value.fields),I()};function D(V,N){return!(V.location!=="InTable"||V.title==="Update"&&(N.status===100||N.status===-1))}return(V,N)=>{const B=e.resolveComponent("a-col"),R=e.resolveComponent("a-button"),z=e.resolveComponent("a-space"),Xt=e.resolveComponent("a-row"),Qt=e.resolveComponent("a-card"),Zt=e.resolveComponent("a-tab-pane"),vt=e.resolveComponent("a-tabs"),eo=e.resolveComponent("a-table");return e.openBlock(),e.createElementBlock("div",Wt,[e.createElementVNode("div",qt,e.toDisplayString(V.className)+" : List",1),e.createVNode(Qt,null,{default:e.withCtx(()=>[e.createElementVNode("div",Gt,[N[0]||(N[0]=e.createElementVNode("h3",null,"查询条件",-1)),e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,M=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:M.title},[M.location==="InOperation"?(e.openBlock(),e.createBlock(O,{key:0,config:M,onClick:i},null,8,["config"])):e.createCommentVNode("",!0)],64))),128))])]),e.createVNode(Xt,{gutter:[24,20],class:"search-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,([M,W])=>(e.openBlock(),e.createBlock(B,{key:M,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(v,{name:M,config:W,modelValue:w.value[M],"onUpdate:modelValue":ae=>w.value[M]=ae,class:"form-field"},null,8,["name","config","modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),e.createVNode(B,{span:6,class:"search-col"},{default:e.withCtx(()=>[e.createElementVNode("div",Yt,[e.createVNode(z,{size:"medium"},{default:e.withCtx(()=>[e.createVNode(R,{type:"primary",size:"medium",onClick:I},{default:e.withCtx(()=>N[1]||(N[1]=[e.createTextVNode(" 查询 ",-1)])),_:1,__:[1]}),e.createVNode(R,{size:"medium",onClick:L},{default:e.withCtx(()=>N[2]||(N[2]=[e.createTextVNode(" 重置 ",-1)])),_:1,__:[2]})]),_:1})])]),_:1})]),_:1})]),_:1}),e.createVNode(vt,{size:"large",onTabClick:l},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value?.tabs,M=>(e.openBlock(),e.createBlock(Zt,{key:M.key,title:M.title},null,8,["title"]))),128))]),_:1}),e.createVNode(eo,{columns:g.value,data:h.value,stripe:"",border:"",pagination:{current:d.current,total:d.total,pageSize:d.pageSize,showTotal:d.showTotal,showPageSize:d.showPageSize,showJumper:!0,pageSizeOptions:[10,20,50,100]},loading:k.value,size:"medium",scroll:r.value,onPageChange:H,onPageSizeChange:A},{optional:e.withCtx(({record:M})=>[e.createVNode(z,{size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,W=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:W.title},[D(W,M)?(e.openBlock(),e.createBlock(O,{key:0,config:W,size:"small",onClick:(...ae)=>b(...ae,M.workflowId)},null,8,["config","onClick"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1024)]),_:1},8,["columns","data","pagination","loading","scroll"])])}}}),[["__scopeId","data-v-78e2b122"]]);let oe={};function ke(t){oe={...oe,...t}}function ne(){return oe}const Jt={install(t,o={}){o.config&&ke(o.config),o.router&&t.provide(ee,o.router),o.pinia&&t.provide(pe,o.pinia),o.useBpmStore&&t.provide(ue,o.useBpmStore),o.useSvrStore&&t.provide(fe,o.useSvrStore),o.triggers&&t.provide(me,o.triggers),o.customComps&&t.provide(he,o.customComps),t.component("CreateView",ge),t.component("UpdateView",_e),t.component("DetailView",we),t.component("ListView",ye)}};x.CreateView=ge,x.DetailView=we,x.ListView=ye,x.PiniaKey=pe,x.RouterKey=ee,x.UpdateView=_e,x.default=Jt,x.getLibraryConfig=ne,x.setLibraryConfig=ke,Object.defineProperties(x,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(x,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("axios"),require("pinia"),require("vue-router")):typeof define=="function"&&define.amd?define(["exports","vue","axios","pinia","vue-router"],e):(x=typeof globalThis<"u"?globalThis:x||self,e(x.MyComponentLibrary={},x.Vue,x.axios,x.Pinia,x.VueRouter))})(this,function(x,e,be,Ve,Ce){"use strict";const Ne=Ve.defineStore("main",()=>({token:e.ref(void 0)})),Se=async t=>new Promise(n=>setTimeout(n,t)),Be=async(t,n,d,o=void 0)=>{if(t[n]===void 0)try{t[n]=null,t[n]=await d()||o}catch(a){console.error(a),t[n]=void 0}for(;t[n]===null;)await Se(100);return t[n]};function ae(){const t=oe();return{apiBase:t.apiBase||void 0||"",appSecret:t.appSecret||void 0||""}}function re(){const{apiBase:t}=ae();return be.create({baseURL:t,timeout:1e4,withCredentials:!0})}const se=async()=>{const{apiBase:t,appSecret:n}=ae(),d=re(),o=Ne();return await Be(o,"token",async()=>(await d.get(`${t}/GenerateToken`,{params:{appid:"bpm",appsecret:n}}))?.data?.token)},D=async()=>{const t=await se(),n=re();return n.defaults.headers.common.Authorization=`Bearer ${t}`,n},X={CurrentUserEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",CurrentUserPositionCode:t=>t.bpmStore()?.positionCode??888,CurrentDatetime:()=>new Date().toISOString(),ApproverEmail:t=>t.svrStore()?.userInfo?.email_address??"test.email@dataGetter.ts",ApproverPositionCode:t=>t.bpmStore()?.positionCode??999,RejectReason:()=>"Test Reject Reason"},I=[];for(let t=0;t<256;++t)I.push((t+256).toString(16).slice(1));function Ee(t,n=0){return(I[t[n+0]]+I[t[n+1]]+I[t[n+2]]+I[t[n+3]]+"-"+I[t[n+4]]+I[t[n+5]]+"-"+I[t[n+6]]+I[t[n+7]]+"-"+I[t[n+8]]+I[t[n+9]]+"-"+I[t[n+10]]+I[t[n+11]]+I[t[n+12]]+I[t[n+13]]+I[t[n+14]]+I[t[n+15]]).toLowerCase()}let Q;const xe=new Uint8Array(16);function $e(){if(!Q){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Q=crypto.getRandomValues.bind(crypto)}return Q(xe)}const le={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function Ie(t,n,d){if(le.randomUUID&&!t)return le.randomUUID();t=t||{};const o=t.random??t.rng?.()??$e();if(o.length<16)throw new Error("Random bytes length must be >= 16");return o[6]=o[6]&15|64,o[8]=o[8]&63|128,Ee(o)}var L=(t=>(t[t.Submit=0]="Submit",t[t.Link=1]="Link",t))(L||{}),P=(t=>(t[t.Create=0]="Create",t[t.Update=1]="Update",t[t.Details=2]="Details",t[t.List=3]="List",t))(P||{});function Me(t,n,d){const o={pageType:"",fields:{},globalValidations:[]};return t.__ClassAttributes?.forEach(a=>{if(a.attributeType==="UIPageType")o.pageType=a.Type;else if(a.attributeType==="UIValidationControl")o.globalValidations.push({rule:a.ruleName,errorMessage:a.errorMessage,param:a.ruleParameter,appliesTo:a.propertyNames||["*"]});else if(a.attributeType==="UIControl"){if(a.widget==="Tab"){o.tabs||(o.tabs=[]),o.tabs.unshift({key:Ie(),title:a.title,filters:a.filters?JSON.parse(a.filters):[]});return}o.actions||(o.actions=[]),o.actions.push({isSubmit:a.isSubmit,requestUrl:a.requestUrl,redirectUrl:a.redirectUrl,redirectType:a.redirectType,title:a.title,widget:a.widget==="Link"?L.Link:L.Submit,location:a.location,attributeType:a.attributeType,readonly:a.readonly})}}),Object.entries(t).forEach(([a,p])=>{if(a==="__ClassAttributes"||a==="className"||a==="id"||a==="deleteFlag"||a==="status"||a==="workFlowReason"||n!==3&&a==="workflowId")return;const c={validations:[],triggers:[],isFiltered:!1,dependent:""},{attributes:u,propertyValue:s}=p;switch(s){case null:c.modelValue="";break;case void 0:c.modelValue="";break;default:c.modelValue=s;break}a==="onBehalf"&&n===0&&(c.modelValue=X.CurrentUserEmail(d)),u?.forEach(i=>{i.order||i.Order?c.order=i.order??i.Order:i.attributeType==="UIControl"?c.widget={...i,column:!0}:i.attributeType==="UIValidationControl"&&n!==3?c.widget?.widget!=="CheckBox"&&c.validations.push(i):i.attributeType==="UIListed"?c.widget={...i,column:!0}:i.attributeType==="UIFiltered"?c.isFiltered=!0:i.dependentType?c.dependent=X[i.dependentType]?X[i.dependentType](d):"":i.eventType==="Change"&&c.triggers?.push({event:"change",handlerName:i.eventName})}),o.fields[a]=c}),o}const G=async(t,n,d,o)=>{const p=await(await D()).get(`/General/${n}/${t}/page`,{params:o});return Me(p?.data,t,d)},ie=async(t,n,d)=>(await(await D()).post(`/General/${n}/${t}/button/List`,null,{params:d}))?.data;async function Ue(t,n){const o=await(await D()).post(`/General/${t}/list`,n);return{data:o.data.data,totalCount:o.data.totalCount}}async function Le(t,n,d){const a=await(await D()).post(d,n,{params:{className:t}});return a.data.length>0?a.data[0]:0}function De(t,n){return t.replace(/{workflowId}/g,n)}async function Te(t,n,d,o){const a=await D(),p=De(o,n);return(await a.put(p,d,{params:{className:t}}))?.data}function Ae(t,n){return t.replace(/{WorkflowId}/g,n)}function Fe(t,n){return t.replace(/{ApproverEmail}/g,n)}function Re(t,n){return t.replace(/{WorkFlowReason}/g,n)}function He(t,n){return t.replace(/{Status}/g,n)}function Pe(t,n){return t.replace(/{IfTriggerGlobal_RandP_Approval}/g,n)}function je(t,n){return t.replace(/{ClassName}/g,n)}async function Ke(t,n,d,o,a,p,c,u){const s=await D();let i=Ae(p,n);return i=Fe(i,d),i=Re(i,o),i=He(i,c),i=Pe(i,u),i=je(i,t),(await s.put(i,a))?.data}async function Oe(t,n){const a=(await(await D()).get(t,{params:{value:n}}))?.data;return Object.entries(a).map(([p,c])=>({value:p,label:c}))}async function ze(t,n){return(await(await D()).get(`/General/${t}/${n}/process`))?.data}async function We(t,n){return(await(await D()).get(`/General/${t}/${n}/upload/get`))?.data.reduce((p,c)=>{const{category:u}=c;return p[u]||(p[u]=[]),p[u].push(c),p},{})}const j=(t,n)=>{let d="";return{res:t.every(a=>{const p=Ge(a,n);return p||(d=a.errorMessage),p}),errorMessages:d}},Ge=(t,n)=>{const{ruleName:d,ruleParameter:o}=t;return qe[d](o,n)},qe={Regex:(t,n)=>new RegExp(t).test(n),Required:(t,n)=>!!n},ce=e.defineComponent({__name:"InputText",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:n,emit:d}){const o=t,a=d,p=e.useModel(t,"modelValue"),c=i=>j(o.validations,i),u=i=>{a("input",i)},s=i=>{const w=c(i);a("error",w.res?"":w.errorMessages),o.triggers&&o.triggers.length>0&&o.triggers.forEach(f=>{f.event==="change"&&a(f.event,f.handlerName,i)})};return n({validate(){const i=c(o.modelValue);return a("error",i.res?"":i.errorMessages),i.res}}),(i,w)=>{const f=e.resolveComponent("AInput");return e.openBlock(),e.createBlock(f,{modelValue:p.value,"onUpdate:modelValue":w[0]||(w[0]=k=>p.value=k),"allow-clear":"",disabled:o.readonly||o.config.Readonly,onInput:u,onChange:s},null,8,["modelValue","disabled"])}}}),Ye=e.defineComponent({__name:"InputNumber",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:n,emit:d}){const o=t,a=d,p=e.useModel(t,"modelValue"),c=e.ref(100),u=e.ref(0);e.onMounted(()=>{o.validations&&o.validations.forEach(f=>{f.ruleName==="Max"&&(c.value=f.ruleParameter),f.ruleName==="Min"&&(u.value=f.ruleParameter)})});const s=f=>j(o.validations,f),i=f=>{a("input",f)},w=f=>{const k=s(f);a("error",k.res?"":k.errorMessages),o.triggers&&o.triggers.length>0&&o.triggers.forEach(b=>{b.event==="change"&&a(b.event,b.handlerName,f)})};return n({validate(){const f=s(o.modelValue);return a("error",f.res?"":f.errorMessages),f.res}}),(f,k)=>{const b=e.resolveComponent("AInputNumber");return e.openBlock(),e.createBlock(b,{modelValue:p.value,"onUpdate:modelValue":k[0]||(k[0]=V=>p.value=V),clearable:"",disabled:o.readonly,min:u.value,max:c.value,onInput:i,onChange:w},null,8,["modelValue","disabled","min","max"])}}}),de=e.defineComponent({__name:"SelectList",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change"],["update:modelValue"]),setup(t,{expose:n,emit:d}){const o=t,a=d,p=e.ref(!1),c=e.ref(o.config.options??[]),u=e.useModel(t,"modelValue"),s=f=>j(o.validations,f);e.computed(()=>{const f={};return o.triggers&&o.triggers.length>0&&o.triggers.forEach(k=>{f[k.event]=b=>{a(k.event,k.handlerName,b);const V=s(b);a("error",V.res?"":V.errorMessages)}}),f});const i=async()=>{o.config.dataSourceProvider&&(c.value=await Oe(o.config.dataSourceProvider))};e.onMounted(i);const w=f=>{a("update:modelValue",f);const k=s(f);a("error",k.res?"":k.errorMessages),o.triggers&&o.triggers.length>0&&o.triggers.forEach(b=>{b.event==="change"&&a(b.event,b.handlerName,f)})};return n({validate(){const f=s(o.modelValue);return a("error",f.res?"":f.errorMessages),f.res}}),(f,k)=>{const b=e.resolveComponent("AOption"),V=e.resolveComponent("ASelect");return e.openBlock(),e.createBlock(V,{"allow-clear":"",modelValue:u.value,"onUpdate:modelValue":k[0]||(k[0]=N=>u.value=N),loading:p.value,"filter-option":!0,"allow-search":!0,onChange:w},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createBlock(b,{key:N.value,value:N.value,label:N.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","loading"])}}}),Je=e.defineComponent({__name:"Cascader",props:{modelValue:{},config:{}},emits:["update:modelValue","change"],setup(t,{expose:n,emit:d}){const o=t,a=d,p=e.ref(o.config.options??[]),c=s=>{a("update:modelValue",s),a("change",s)};e.onMounted(async()=>{if(o.config){const s=o.config.dataSourceProvider;if(s){const w=await(await D()).get(s);p.value=w.data}}});const u={value:"key",label:"value"};return n({validate(){return!0}}),(s,i)=>{const w=e.resolveComponent("ACascader"),f=e.resolveComponent("ASpace");return e.openBlock(),e.createBlock(f,{direction:"vertical",size:"large"},{default:e.withCtx(()=>[e.createVNode(w,{"field-names":u,"model-value":s.modelValue,options:p.value,style:{width:"320px"},placeholder:"Please select ...",onChange:c},null,8,["model-value","options"])]),_:1})}}}),Xe={style:{"margin-top":"16px"}},Qe=e.defineComponent({__name:"FileUpload",props:{className:{},fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:n,emit:d}){const o=t,a=d,p=e.ref({}),c=e.ref([]),u=e.ref([]);e.watch(u,m=>{c.value=m,console.log("🚀 ~ fileList.value:",c.value)},{immediate:!0}),e.onMounted(async()=>{const m=await se();p.value={Authorization:`Bearer ${m}`},u.value=e.inject(o.fieldKey,e.ref([]))});const s=m=>j(o.validations,m),w=oe().apiBase,f=e.ref(null),k=e.ref(0);function b(m,l,r){return m.replace(/{WorkflowId}/g,l).replace(/{ClassName}/g,r)}const V=e.computed(()=>{if(o.config.uploadURL){const m=w+o.config.uploadURL;console.log("🚀 ~ url, id.value.toString(), props.className:",m,k.value.toString(),o.className);const l=b(m,"5750",o.className);return console.log("🚀 ~ replacedUrl:",l),l}return""}),N=m=>{a("change",m),o.triggers&&o.triggers.length>0&&o.triggers.forEach(l=>{l.event==="change"&&a(l.event,l.handlerName,m)})},T=m=>{const{onProgress:l,onError:r,onSuccess:h,fileItem:_,name:$}=m,E=new XMLHttpRequest;E.upload&&(E.upload.onprogress=function(S){let y;S.total>0&&(y=S.loaded/S.total),l(y,S)}),E.onerror=function(y){r(y)},E.onload=function(){if(E.status<200||E.status>=300)return r(E.responseText);h(E.response)};const H=new FormData;return H.append($||"file",_.file,_.name),E.open("post",V.value,!0),Object.entries(p.value).forEach(([S,y])=>{console.log("🚀 ~ customRequest ~ key, value:",S,y),E.setRequestHeader(S,y)}),E.send(H),{abort(){E.abort()}}},M=e.ref(null);function A(m){const l=m.target;l.files&&l.files.length>0&&(M.value=l.files[0])}async function F(){if(console.log("🚀 ~ handleNativeUpload ~ nativeFile.value:",M.value),!M.value)return;const m=new FormData;m.append(o.fieldKey,M.value,M.value.name),await(await D()).post(V.value,m,{headers:{"Content-Type":"multipart/form-data"}})}function g(){f.value&&f.value.submit()}return n({submit(m){f.value&&(o.config.uploadURL&&(k.value=m),e.nextTick(()=>{f.value.submit()}))},validate(){const m=s(o.modelValue);return a("error",m.res?"":m.errorMessages),m.res}}),(m,l)=>{const r=e.resolveComponent("a-upload"),h=e.resolveComponent("a-button");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(r,{ref_key:"uploadRef",ref:f,"default-file-list":c.value,action:V.value,limit:o.config.allowedNumber,"custom-request":T,"auto-upload":!1,name:o.fieldKey,onChange:N},{"start-icon":e.withCtx(()=>l[0]||(l[0]=[])),_:1},8,["default-file-list","action","limit","name"]),e.createVNode(h,{onClick:g},{default:e.withCtx(()=>l[1]||(l[1]=[e.createTextVNode("上传",-1)])),_:1,__:[1]}),e.createElementVNode("div",Xe,[e.createElementVNode("input",{type:"file",onChange:A},null,32),e.createVNode(h,{onClick:F,disabled:!M.value},{default:e.withCtx(()=>l[2]||(l[2]=[e.createTextVNode("原生上传",-1)])),_:1,__:[2]},8,["disabled"])])],64)}}}),Ze=e.defineComponent({__name:"TextArea",props:{fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:n,emit:d}){const o=t,a=d,p=s=>j(o.validations,s),c=s=>{a("update:modelValue",s),a("input",s)},u=s=>{a("update:modelValue",s);const i=p(s);a("error",i.res?"":i.errorMessages),o.triggers&&o.triggers.length>0&&o.triggers.forEach(w=>{w.event==="change"&&a(w.event,w.handlerName,s)})};return n({validate(){const s=p(o.modelValue);return a("error",s.res?"":s.errorMessages),s.res}}),(s,i)=>{const w=e.resolveComponent("ATextarea");return e.openBlock(),e.createBlock(w,{"model-value":o.modelValue,placeholder:"Please enter something","allow-clear":"",disabled:o.readonly,onInput:c,onChange:u},null,8,["model-value","disabled"])}}}),ve=e.defineComponent({__name:"CheckBox",props:e.mergeModels({fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error","input"],["update:modelValue"]),setup(t,{expose:n,emit:d}){const o=t,a=d,p=e.useModel(t,"modelValue"),c=s=>j(o.validations,s),u=s=>{const i=c(s);a("error",i.res?"":i.errorMessages),o.triggers&&o.triggers.length>0&&o.triggers.forEach(w=>{w.event==="change"&&a(w.event,w.handlerName,s)})};return n({validate(){const s=c(o.modelValue);return a("error",s.res?"":s.errorMessages),s.res}}),(s,i)=>{const w=e.resolveComponent("ACheckbox");return e.openBlock(),e.createBlock(w,{modelValue:p.value,"onUpdate:modelValue":i[0]||(i[0]=f=>p.value=f),clearable:"",disabled:o.readonly||o.config.Readonly,onChange:u},{default:e.withCtx(()=>i[1]||(i[1]=[e.createTextVNode("Yes",-1)])),_:1,__:[1]},8,["modelValue","disabled"])}}}),et={class:"widget-wrapper"},tt={class:"title mb-1.5"},ot={key:0,class:"required"},nt={class:"form-widget"},at={class:"widget"},rt={key:0,class:"err-msg"},st=e.defineComponent({__name:"index",props:e.mergeModels({config:{},className:{},fieldKey:{},modelValue:{},readonly:{type:Boolean},validations:{},triggers:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","change","error"],["update:modelValue"]),setup(t,{expose:n,emit:d}){const o=t,a=d,p=e.useModel(t,"modelValue"),c=e.useTemplateRef("widgetRef"),u=e.computed(()=>{switch(o.config?.widget?.widget){case"TextBox":return ce;case"Number":return Ye;case"SelectList":return de;case"Cascade":return Je;case"File":return Qe;case"TextArea":return Ze;case"DropDown":return de;case"CheckBox":return ve;default:return ce}}),s=e.ref(""),i=k=>{s.value=k},w=(k,b)=>{a("change",k,b)};function f(){return o.config?.widget?.widget==="File"}return n({isFileUpload(){return o.config?.widget?.widget==="File"},submit(k){f()&&c.value.submit(k)},validate(){return c.value?.validate()},getCompName(){return o?.config?.widget?.title}}),(k,b)=>(e.openBlock(),e.createElementBlock("div",et,[e.createElementVNode("div",tt,[e.createTextVNode(e.toDisplayString(o?.config?.widget?.title),1),o.config.validations.length?(e.openBlock(),e.createElementBlock("span",ot,"*")):e.createCommentVNode("",!0)]),e.createElementVNode("div",nt,[e.createElementVNode("div",at,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(u.value),{ref_key:"widgetRef",ref:c,modelValue:p.value,"onUpdate:modelValue":b[0]||(b[0]=V=>p.value=V),"field-key":o.fieldKey,config:o.config.widget,validations:o.config.validations,triggers:o.config.triggers,"class-name":o.className,onError:i,onChange:w},null,40,["modelValue","field-key","config","validations","triggers","class-name"]))]),s.value.length>0?(e.openBlock(),e.createElementBlock("div",rt,e.toDisplayString(s.value),1)):e.createCommentVNode("",!0)])]))}}),K=(t,n)=>{const d=t.__vccOpts||t;for(const[o,a]of n)d[o]=a;return d},Z=K(st,[["__scopeId","data-v-3ad59bc4"]]),lt=e.defineComponent({__name:"SubmitButton",props:{url:{},redirectType:{}},emits:["click"],setup(t,{emit:n}){const d=t,o=n;function a(){o("click",d.url,d.redirectType)}return(p,c)=>{const u=e.resolveComponent("AButton");return e.openBlock(),e.createBlock(u,{type:"primary",onClick:a},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3})}}}),it=e.defineComponent({__name:"DetailLink",props:{url:{},redirectType:{}},emits:["click"],setup(t,{emit:n}){const d=t,o=n;function a(){o("click",d.url,d.redirectType)}return(p,c)=>{const u=e.resolveComponent("ALink");return e.openBlock(),e.createBlock(u,{onClick:a},{default:e.withCtx(()=>[e.renderSlot(p.$slots,"default")]),_:3})}}}),O=e.defineComponent({__name:"index",props:{config:{}},emits:["click"],setup(t,{emit:n}){const d=t,o=n;function a(s,i){o("click",d.config.widget,s,i,d.config.title)}const p=e.computed(()=>{switch(d.config.location){case"InOperation":return lt;case"InTable":default:return it}}),c=e.computed(()=>d.config.widget===L.Submit?d.config.requestUrl??"":d.config.widget===L.Link?d.config.redirectUrl??"":""),u=e.computed(()=>d.config.redirectType??"Details");return(s,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{url:c.value,"redirect-type":u.value,onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.config.title),1)]),_:1},8,["url","redirect-type"]))}}),v=Symbol("library-router");function q(){const t=e.inject(v,null);return t||Ce.useRouter()}const me=Symbol("library-triggers");function ee(){const t=e.inject(me,null);return t||{}}const pe=Symbol("library-pinia"),ue=Symbol("library-bpmStore"),fe=Symbol("library-svrStore");function Y(){return e.inject(ue,null)}function J(){return e.inject(fe,null)}const ct={class:"page-container"},dt={class:"page-header"},mt={class:"page-title"},pt={class:"page-subtitle"},ut={class:"page-body"},ft={class:"form-card"},gt={class:"form-fields"},_t={key:0,class:"form-content"},ht={class:"page-footer"},wt={class:"action-container"},yt={class:"action-buttons"},ge=K(e.defineComponent({__name:"CreateView",props:{className:{}},setup(t){const n=Y(),d=J(),o=q(),a=ee(),p=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),u=t,s=e.ref(),i=e.ref([]),w=e.ref({});function f(g){return g?Object.entries(g).map(([l,r])=>({fieldKey:l,...r})).filter(l=>l.widget&&l.widget.widget!=="Hidden").filter(l=>!A.value.includes(l.fieldKey)):[]}function k(g){return g?Object.entries(g).filter(([l,r])=>r.dependent).reduce((l,[r,h])=>(l[r]=h.dependent,l),{}):[]}const b=e.computed(()=>s.value?.actions?[...s.value.actions].reverse():[]),V=e.reactive({}),N=e.ref(!1);e.onMounted(async()=>{N.value=!0,s.value=await G(P.Create,u.className,{svrStore:d,bpmStore:n}),i.value=f(s.value.fields),console.log("🚀 ~ _fields.value:",i.value),w.value=k(s.value.fields);for(const g in s.value.fields)V[g]=s.value.fields[g].modelValue;N.value=!1});async function T(g,m,l){switch(g){case L.Submit:let r=!0;if(p.value?.forEach(_=>{_?.validate&&(_.validate()||(r=!1))}),!r){c?.appContext.config.globalProperties.$message.error("表单验证未通过,请检查输入项");return}const h=await Le(u.className,{...V,...w.value},m);p.value?.forEach(_=>{_?.submit&&_.submit(h)}),c?.appContext.config.globalProperties.$notification.success("创建成功!"),o.push({name:"List",params:{className:u.className}});break;case L.Link:l==="List"&&o.push({name:"List",params:{className:u.className}});break;default:console.warn("Unknown action type:",g)}}const M=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","positionId"],A=e.ref(M);function F(g,m){a[g]?.(m,A),s.value&&(i.value=f(s.value.fields))}return(g,m)=>{const l=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",ct,[e.createElementVNode("div",dt,[e.renderSlot(g.$slots,"title",{},()=>[e.createElementVNode("h1",mt,"创建 "+e.toDisplayString(g.className),1),e.createElementVNode("p",pt,"请填写以下信息创建新的 "+e.toDisplayString(g.className)+" 记录",1)],!0)]),e.createElementVNode("div",ut,[e.createVNode(l,{loading:N.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",ft,[e.createElementVNode("div",gt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(r,h)=>(e.openBlock(),e.createElementBlock("div",{key:r.fieldKey,class:"form-field-wrapper"},[e.createVNode(Z,{ref_for:!0,ref:"dataWidgets","field-key":r.fieldKey,config:r,"class-name":g.className,modelValue:V[r.fieldKey],"onUpdate:modelValue":_=>V[r.fieldKey]=_,class:"form-field",onChange:F},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"])]))),128))]),g.$slots.content?(e.openBlock(),e.createElementBlock("div",_t,[e.renderSlot(g.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",ht,[e.createElementVNode("div",wt,[e.renderSlot(g.$slots,"action",{},void 0,!0),e.createElementVNode("div",yt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,r=>(e.openBlock(),e.createBlock(O,{key:r.Title,config:r,class:"action-button",onClick:T},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-d8292149"]]),kt={class:"page-container"},bt={class:"page-header"},Vt={class:"page-title"},Ct={class:"page-subtitle"},Nt={class:"page-body"},St={class:"form-card"},Bt={class:"form-fields"},Et={key:0,class:"form-content"},xt={class:"page-footer"},$t={class:"action-container"},It={class:"action-buttons"},_e=K(e.defineComponent({__name:"UpdateView",props:{className:{},workflowId:{}},setup(t){const n=q(),d=ee(),o=J(),a=Y(),p=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),u=t,s=e.ref(),i=e.ref([]),w=e.ref({});function f(m){return m?Object.entries(m).map(([r,h])=>({fieldKey:r,...h})).filter(r=>r.widget&&r.widget.widget!=="Hidden").filter(r=>!F.value.includes(r.fieldKey)):[]}function k(m){return m?Object.entries(m).filter(([r,h])=>h.dependent).reduce((r,[h,_])=>(r[h]=_.dependent,r),{}):[]}const b=e.computed(()=>s.value?.actions?[...s.value.actions].reverse():[]),V=e.reactive({}),N=e.ref(!1);e.onMounted(async()=>{N.value=!0,s.value=await G(P.Update,u.className,{svrStore:o,bpmStore:a},{workflowId:u.workflowId});const m=await ie(P.Update,u.className,{workflowId:u.workflowId,email:T()});s.value.actions=s.value.actions?.filter(r=>{const h=m.find(_=>_.button===r.title);return h?h.isShow:!0}),i.value=f(s.value.fields),w.value=k(s.value.fields);for(const r in s.value.fields)V[r]=s.value.fields[r].modelValue;const l=await We(u.className,u.workflowId);console.log("🚀 ~ files:",l),Object.entries(l).forEach(([r,h])=>{console.log("🚀 ~ key:",r),e.provide(r,h)}),N.value=!1});function T(){return o()?.userInfo?.email_address??""}async function M(m,l,r){switch(m){case L.Submit:let h=!0;if(p.value?.forEach($=>{$?.validate&&($.validate()||(h=!1))}),!h){c?.appContext.config.globalProperties.$message.error("表单验证未通过,请检查输入项");return}const _=await Te(u.className,u.workflowId,{...V,...w.value},l);p.value?.forEach($=>{$?.submit&&$.submit(_)}),c?.appContext.config.globalProperties.$notification.success("修改成功!"),n.push({name:"List",params:{className:u.className}});break;case L.Link:n.push({name:r,params:{className:u.className}});break;default:console.warn("Unknown action type:",m)}}const A=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","positionId"],F=e.ref(A);function g(m,l){d[m]?.(l,F),s.value&&(i.value=f(s.value.fields))}return(m,l)=>{const r=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",kt,[e.createElementVNode("div",bt,[e.renderSlot(m.$slots,"title",{},()=>[e.createElementVNode("h1",Vt,"编辑 "+e.toDisplayString(m.className),1),e.createElementVNode("p",Ct,"修改以下信息来更新 "+e.toDisplayString(m.className)+" 记录 (ID: "+e.toDisplayString(m.workflowId)+")",1)],!0)]),e.createElementVNode("div",Nt,[e.createVNode(r,{loading:N.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",St,[e.createElementVNode("div",Bt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(h,_)=>(e.openBlock(),e.createElementBlock("div",{key:h.fieldKey,class:"form-field-wrapper"},[e.createVNode(Z,{ref_for:!0,ref:"dataWidgets","field-key":h.fieldKey,name:_,config:h,"class-name":m.className,modelValue:V[h.fieldKey],"onUpdate:modelValue":$=>V[h.fieldKey]=$,class:"form-field",onChange:g},null,8,["field-key","name","config","class-name","modelValue","onUpdate:modelValue"])]))),128))]),m.$slots.content?(e.openBlock(),e.createElementBlock("div",Et,[e.renderSlot(m.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",xt,[e.createElementVNode("div",$t,[e.renderSlot(m.$slots,"action",{},void 0,!0),e.createElementVNode("div",It,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,h=>(e.openBlock(),e.createBlock(O,{key:h.Title,config:h,class:"action-button",onClick:M},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-118b8121"]]),he=Symbol("library-custom-comp");function Mt(){return e.inject(he,null)}const Ut={class:"page-container"},Lt={class:"page-header"},Dt={class:"page-title"},Tt={class:"page-subtitle"},At={class:"page-body"},Ft={class:"detail-card"},Rt={class:"detail-fields"},Ht={class:"detail-field"},Pt={class:"field-label"},jt={class:"field-value"},Kt={key:0,class:"detail-content"},Ot={class:"page-footer"},zt={class:"action-container"},Wt={class:"action-buttons"},we=K(e.defineComponent({__name:"DetailView",props:{className:{},workflowId:{}},setup(t){const n=J(),d=Y(),o=ee(),a=q(),p=Mt(),c=e.getCurrentInstance(),u=t,s=e.ref(),i=e.ref([]);function w(g){return g?Object.entries(g).map(([l,r])=>(typeof r.modelValue=="boolean"?r.fieldValue=r.modelValue?"Yes":"No":r.fieldValue=r.modelValue,{fieldKey:l,...r})).filter(l=>l.widget&&l.widget.widget!=="Hidden"):[]}const f=e.computed(()=>s.value?.actions?[...s.value.actions].reverse():[]),k=e.ref(!0),b=(g,m="yyyy-MM-dd hh:mm:ss.fff")=>{const l=new Date(g);if(isNaN(l.getTime()))return g;const r={yyyy:l.getFullYear(),yy:l.getFullYear().toString().substring(2),MM:(l.getMonth()+1).toString().padStart(2,"0"),M:l.getMonth()+1,dd:l.getDate().toString().padStart(2,"0"),d:l.getDate(),hh:l.getHours().toString().padStart(2,"0"),h:l.getHours(),mm:l.getMinutes().toString().padStart(2,"0"),m:l.getMinutes(),ss:l.getSeconds().toString().padStart(2,"0"),s:l.getSeconds(),fff:l.getMilliseconds().toString().padStart(3,"0"),f:l.getMilliseconds()};let h=m;for(const _ of Object.keys(r))h=h.replace(_,r[_]);return h},V=(g,m)=>{const l=g.findIndex(r=>r.isCurrent);return g.map((r,h)=>{const _={id:r.id,title:"",proxy:"",sub:"",desc:"",status:1,time:""};_.title=r.workflowProcessApprovers[0]?.name;const $=r.workflowProcessApprovers[r.workflowProcessApprovers.length-1],E=r.workflowHistorys[r.workflowHistorys.length-1],H=E?.workflowHistoryApprovers[E?.workflowHistoryApprovers?.length-1];if($&&H&&$?.email?.toLowerCase()!==H?.approverEmail?.toLowerCase()&&(_.title=`${H.name}`,_.proxy=`代理: ${$.name}`),r.sort>1?_.sub="审批角色:"+r.nodeName.replace("Submit","").replace("Approve",""):_.sub="提交申请",r.isCurrent&&m!==-1)_.desc="审批中",_.status=1;else{const S=r.workflowHistorys[r.workflowHistorys.length-1];if(S&&S.status===100)_.time=b(S.takeActionAt,"yyyy-MM-dd hh:mm:ss"),_.status=2,_.desc="已审批";else if(S&&S.status===999)_.time=b(S.takeActionAt,"yyyy-MM-dd hh:mm:ss"),_.status=0,_.desc="已跳过";else if(S)if(_.time=b(S.takeActionAt,"yyyy-MM-dd hh:mm:ss"),r.sort===1)_.status=2,_.desc="";else{const y=S.workflowHistoryApprovers[0];_.status=3,_.desc=y?.reason?`拒绝原因:${y.reason}`:"已拒绝"}else h<l||l===-1?(_.status=0,_.desc="已跳过"):(_.status=0,_.desc="待审批");S&&S.status}return _})},N=e.ref([]),T=e.ref(!1);e.onMounted(async()=>{k.value=!0,s.value=await G(P.Details,u.className,{svrStore:n,bpmStore:d},{workflowId:u.workflowId});const g=await ie(P.Details,u.className,{workflowId:u.workflowId,email:A()});s.value.actions=s.value.actions?.filter(l=>{const r=g.find(h=>h.button===l.title);return r?r.isShow:!0}),T.value=g.find(l=>l.button==="IsGlobal")?.isShow??!1,i.value=w(s.value.fields);const m=await ze(u.className,u.workflowId);N.value=V(m,0),k.value=!1});async function M(g,m){return o[g]?.(m)}function A(){return n()?.userInfo?.email_address??""}async function F(g,m,l,r){try{switch(g){case L.Submit:const{reason:h,ifGlobal:_}=await M(r,{isGlobal:T.value}),$=r==="Approve"?"100":"-1";await Ke(u.className,u.workflowId,A(),h,[u.workflowId],m,$,_);const E=r==="Approve"?"审批已通过!":"审批已拒绝!";c?.appContext.config.globalProperties.$notification.success(E),a.push({name:"List",params:{className:u.className}});break;case L.Link:l==="List"&&a.push({name:"List",params:{className:u.className}});break;default:console.warn("Unknown action type:",g)}}catch{}}return(g,m)=>{const l=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Ut,[e.createElementVNode("div",Lt,[e.renderSlot(g.$slots,"title",{},()=>[e.createElementVNode("h1",Dt,e.toDisplayString(g.className)+" 详情",1),e.createElementVNode("p",Tt,"查看 "+e.toDisplayString(g.className)+" 记录详细信息 (ID: "+e.toDisplayString(g.workflowId)+")",1)],!0)]),e.createElementVNode("div",At,[e.createVNode(l,{loading:k.value,class:"detail-container"},{default:e.withCtx(()=>[e.createElementVNode("div",Ft,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(p).Steps),{steps:N.value},null,8,["steps"])),e.createElementVNode("div",Rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,r=>(e.openBlock(),e.createElementBlock("div",{key:r.fieldKey,class:"detail-field-wrapper"},[e.createElementVNode("div",Ht,[e.createElementVNode("div",Pt,e.toDisplayString(r.widget?.title),1),e.createElementVNode("div",jt,e.toDisplayString(r.fieldValue),1)])]))),128))]),g.$slots.content?(e.openBlock(),e.createElementBlock("div",Kt,[e.renderSlot(g.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Ot,[e.createElementVNode("div",zt,[e.renderSlot(g.$slots,"action",{},void 0,!0),e.createElementVNode("div",Wt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,r=>(e.openBlock(),e.createBlock(O,{key:r.Title,config:r,class:"action-button",onClick:F},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-278bd966"]]),Gt={class:"list-container"},qt={class:"page-title"},Yt={class:"query-title"},Jt={class:"field-wrapper"},ye=K(e.defineComponent({name:"ListView",__name:"ListView",props:{className:{}},setup(t){const n=J(),d=Y(),o=q(),a=t,p=e.ref(),c=e.reactive({current:1,total:0,pageSize:10,defaultPageSize:10,showTotal:!0,showPageSize:!0,filters:[]});function u(){const y=Object.entries(h.value).filter(([,C])=>C&&C!=="").map(([C,B])=>({key:C,value:B}));return{pageNumber:c.current,pageSize:c.pageSize,filters:[...c.filters,...y],sorts:[{key:"status",type:0}]}}const s=e.computed(()=>({x:f.value.length*150+250})),i=y=>{const C=Object.entries(y).filter(([,B])=>B.widget?.column).map(([B,R],z)=>({title:R.widget.title,dataIndex:B.charAt(0).toLowerCase()+B.slice(1),order:R.order,ellipsis:!0,tooltip:!0,width:150,minWidth:100,resizable:!0})).sort((B,R)=>B.order-R.order);C.push({title:"Actions",slotName:"optional",align:"center",width:250,minWidth:200,fixed:"right",resizable:!1}),f.value=C},w=e.ref([]),f=e.ref([]),k=e.ref(!0),b=e.ref(!0),V=e.ref(),N=async()=>{b.value=!0;const y=await Ue(a.className,u());w.value=y.data,c.total=y.totalCount,b.value=!1},T=e.ref(!1);e.onMounted(async()=>{k.value=!0,p.value=await G(3,a.className,{svrStore:n,bpmStore:d}),i(p.value.fields),$(p.value.fields),r(p.value?.tabs?.[0]?.key||""),V.value=p.value.actions,k.value=!1,T.value=!0}),e.onActivated(()=>{T.value&&N()});const M=y=>{c.current=y,N()},A=y=>{c.pageSize=y,N()};function F(y,C,B,R,z){switch(y){case L.Link:o.push({name:B,params:{workflowId:z}});break;default:console.warn("Unknown action type:",y)}}function g(y,C,B){switch(y){case L.Link:o.push({name:B});break;default:console.warn("Unknown action type:",y)}}function m(){return n()?.userInfo?.email_address??""}function l(y,C){return y.replace(/{currentUserEmail}/g,C)}function r(y){const C=p.value?.tabs?.find(B=>B.key===y)?.filters;c.filters=C?.map(B=>({...B,value:l(B.value,m())}))||[],N()}const h=e.ref({}),_=e.computed(()=>p.value?.fields?Object.entries(p.value.fields).filter(([,y])=>y.isFiltered):[]),$=y=>{const C={};Object.entries(y).forEach(([B,R])=>{C[B]=R.modelValue}),h.value=C},E=()=>{c.current=1,N()},H=()=>{p.value&&$(p.value.fields),E()};function S(y,C){return!(y.location!=="InTable"||y.title==="Update"&&(C.status===100||C.status===-1))}return(y,C)=>{const B=e.resolveComponent("a-col"),R=e.resolveComponent("a-button"),z=e.resolveComponent("a-space"),Qt=e.resolveComponent("a-row"),Zt=e.resolveComponent("a-card"),vt=e.resolveComponent("a-tab-pane"),eo=e.resolveComponent("a-tabs"),to=e.resolveComponent("a-table");return e.openBlock(),e.createElementBlock("div",Gt,[e.createElementVNode("div",qt,e.toDisplayString(y.className)+" : List",1),e.createVNode(Zt,null,{default:e.withCtx(()=>[e.createElementVNode("div",Yt,[C[0]||(C[0]=e.createElementVNode("h3",null,"查询条件",-1)),e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,U=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:U.title},[U.location==="InOperation"?(e.openBlock(),e.createBlock(O,{key:0,config:U,onClick:g},null,8,["config"])):e.createCommentVNode("",!0)],64))),128))])]),e.createVNode(Qt,{gutter:[24,20],class:"search-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,([U,W])=>(e.openBlock(),e.createBlock(B,{key:U,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(Z,{name:U,config:W,modelValue:h.value[U],"onUpdate:modelValue":ne=>h.value[U]=ne,class:"form-field"},null,8,["name","config","modelValue","onUpdate:modelValue"])]),_:2},1024))),128)),e.createVNode(B,{span:6,class:"search-col"},{default:e.withCtx(()=>[e.createElementVNode("div",Jt,[e.createVNode(z,{size:"medium"},{default:e.withCtx(()=>[e.createVNode(R,{type:"primary",size:"medium",onClick:E},{default:e.withCtx(()=>C[1]||(C[1]=[e.createTextVNode(" 查询 ",-1)])),_:1,__:[1]}),e.createVNode(R,{size:"medium",onClick:H},{default:e.withCtx(()=>C[2]||(C[2]=[e.createTextVNode(" 重置 ",-1)])),_:1,__:[2]})]),_:1})])]),_:1})]),_:1})]),_:1}),e.createVNode(eo,{size:"large",onTabClick:r},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value?.tabs,U=>(e.openBlock(),e.createBlock(vt,{key:U.key,title:U.title},null,8,["title"]))),128))]),_:1}),e.createVNode(to,{columns:f.value,data:w.value,stripe:"",border:"",pagination:{current:c.current,total:c.total,pageSize:c.pageSize,showTotal:c.showTotal,showPageSize:c.showPageSize,showJumper:!0,pageSizeOptions:[10,20,50,100]},loading:b.value,size:"medium",scroll:s.value,onPageChange:M,onPageSizeChange:A},{optional:e.withCtx(({record:U})=>[e.createVNode(z,{size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V.value,W=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:W.title},[S(W,U)?(e.openBlock(),e.createBlock(O,{key:0,config:W,size:"small",onClick:(...ne)=>F(...ne,U.workflowId)},null,8,["config","onClick"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1024)]),_:1},8,["columns","data","pagination","loading","scroll"])])}}}),[["__scopeId","data-v-78e2b122"]]);let te={};function ke(t){te={...te,...t}}function oe(){return te}const Xt={install(t,n={}){n.config&&ke(n.config),n.router&&t.provide(v,n.router),n.pinia&&t.provide(pe,n.pinia),n.useBpmStore&&t.provide(ue,n.useBpmStore),n.useSvrStore&&t.provide(fe,n.useSvrStore),n.triggers&&t.provide(me,n.triggers),n.customComps&&t.provide(he,n.customComps),t.component("CreateView",ge),t.component("UpdateView",_e),t.component("DetailView",we),t.component("ListView",ye)}};x.CreateView=ge,x.DetailView=we,x.ListView=ye,x.PiniaKey=pe,x.RouterKey=v,x.UpdateView=_e,x.default=Xt,x.getLibraryConfig=oe,x.setLibraryConfig=ke,Object.defineProperties(x,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
2
  //# sourceMappingURL=index.umd.js.map