@chase-shao/vue-component-lib 1.2.40 → 1.2.41

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(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"},$=[];for(let t=0;t<256;++t)$.push((t+256).toString(16).slice(1));function Ee(t,n=0){return($[t[n+0]]+$[t[n+1]]+$[t[n+2]]+$[t[n+3]]+"-"+$[t[n+4]]+$[t[n+5]]+"-"+$[t[n+6]]+$[t[n+7]]+"-"+$[t[n+8]]+$[t[n+9]]+"-"+$[t[n+10]]+$[t[n+11]]+$[t[n+12]]+$[t[n+13]]+$[t[n+14]]+$[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 Ue(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 Ue(p?.data,t,d)},ie=async(t,n,d)=>(await(await D()).post(`/General/${n}/${t}/button/List`,null,{params:d}))?.data;async function Me(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,encodeURIComponent(n))}function Re(t,n){return t.replace(/{WorkFlowReason}/g,encodeURIComponent(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,encodeURIComponent(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:I}=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("files",_.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()}}},U=e.ref(null);function A(m){const l=m.target;l.files&&l.files.length>0&&(U.value=l.files[0])}async function F(){if(console.log("🚀 ~ handleNativeUpload ~ nativeFile.value:",U.value),!U.value)return;const m=new FormData;m.append("files",U.value,U.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:!U.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 U=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","positionId"],A=e.ref(U);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 U(m,l,r){switch(m){case L.Submit:let h=!0;if(p.value?.forEach(I=>{I?.validate&&(I.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(I=>{I?.submit&&I.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":I=>V[h.fieldKey]=I,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:U},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-118b8121"]]),he=Symbol("library-custom-comp");function Ut(){return e.inject(he,null)}const Mt={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=Ut(),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 I=r.workflowProcessApprovers[r.workflowProcessApprovers.length-1],E=r.workflowHistorys[r.workflowHistorys.length-1],H=E?.workflowHistoryApprovers[E?.workflowHistoryApprovers?.length-1];if(I&&H&&I?.email?.toLowerCase()!==H?.approverEmail?.toLowerCase()&&(_.title=`${H.name}`,_.proxy=`代理: ${I.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 U(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 U(r,{isGlobal:T.value}),I=r==="Approve"?"100":"-1";await Ke(u.className,u.workflowId,A(),h,[Number(u.workflowId)],m,I,_);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",Mt,[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-621cefc1"]]),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 Me(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),I(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 U=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):[]),I=y=>{const C={};Object.entries(y).forEach(([B,R])=>{C[B]=R.modelValue}),h.value=C},E=()=>{c.current=1,N()},H=()=>{p.value&&I(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,M=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:M.title},[M.location==="InOperation"?(e.openBlock(),e.createBlock(O,{key:0,config:M,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,([M,W])=>(e.openBlock(),e.createBlock(B,{key:M,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(Z,{name:M,config:W,modelValue:h.value[M],"onUpdate:modelValue":ne=>h.value[M]=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,M=>(e.openBlock(),e.createBlock(vt,{key:M.key,title:M.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:U,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(V.value,W=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:W.title},[S(W,M)?(e.openBlock(),e.createBlock(O,{key:0,config:W,size:"small",onClick:(...ne)=>F(...ne,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 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"}})});
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,xe,Ee){"use strict";const $e=xe.defineStore("main",()=>({token:e.ref(void 0)})),Ie=async t=>new Promise(o=>setTimeout(o,t)),Te=async(t,o,s,n=void 0)=>{if(t[o]===void 0)try{t[o]=null,t[o]=await s()||n}catch(a){console.error(a),t[o]=void 0}for(;t[o]===null;)await Ie(100);return t[o]};function se(){const t=ae();return{apiBase:t.apiBase||void 0||"",appSecret:t.appSecret||void 0||""}}function le(){const{apiBase:t}=se();return Be.create({baseURL:t,timeout:1e4,withCredentials:!0})}const ie=async()=>{const{apiBase:t,appSecret:o}=se(),s=le(),n=$e();return await Te(n,"token",async()=>(await s.get(`${t}/GenerateToken`,{params:{appid:"bpm",appsecret:o}}))?.data?.token)},M=async()=>{const t=await ie(),o=le();return o.defaults.headers.common.Authorization=`Bearer ${t}`,o},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"},E=[];for(let t=0;t<256;++t)E.push((t+256).toString(16).slice(1));function Le(t,o=0){return(E[t[o+0]]+E[t[o+1]]+E[t[o+2]]+E[t[o+3]]+"-"+E[t[o+4]]+E[t[o+5]]+"-"+E[t[o+6]]+E[t[o+7]]+"-"+E[t[o+8]]+E[t[o+9]]+"-"+E[t[o+10]]+E[t[o+11]]+E[t[o+12]]+E[t[o+13]]+E[t[o+14]]+E[t[o+15]]).toLowerCase()}let Q;const Me=new Uint8Array(16);function Ue(){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(Me)}const ce={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function de(t,o,s){if(ce.randomUUID&&!t)return ce.randomUUID();t=t||{};const n=t.random??t.rng?.()??Ue();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,Le(n)}var T=(t=>(t[t.Submit=0]="Submit",t[t.Link=1]="Link",t))(T||{}),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 Ae(t,o,s){const n={pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}};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:de(),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"?T.Link:T.Submit,location:a.location,attributeType:a.attributeType,readonly:a.readonly})}else a.attributeType==="Banner"&&(n.banner.title=a.title,n.banner.subTitle=o===0?a.subTitle:pe(a.subTitle,t.workflowId.propertyValue))}),Object.entries(t).forEach(([a,d])=>{if(a==="__ClassAttributes"||a==="className"||a==="id"||a==="deleteFlag"||a==="status"||a==="workFlowReason"||o!==3&&a==="workflowId")return;const c={validations:[],triggers:[],isFiltered:!1,dependent:""},{attributes:p,propertyValue:r}=d;switch(r){case null:c.modelValue="";break;case void 0:c.modelValue="";break;default:c.modelValue=r;break}a==="onBehalf"&&o===0&&(c.modelValue=X.CurrentUserEmail(s)),p?.forEach(l=>{l.order||l.Order?c.order=l.order??l.Order:l.attributeType==="UIControl"?c.widget={...l,column:!0}:l.attributeType==="UIValidationControl"&&o!==3?c.widget?.widget!=="CheckBox"&&c.validations.push(l):l.attributeType==="UIListed"?c.widget={...l,column:!0}:l.attributeType==="UIFiltered"?c.isFiltered=!0:l.dependentType?c.dependent=X[l.dependentType]?X[l.dependentType](s):"":l.eventType==="Change"&&c.triggers?.push({event:"change",handlerName:l.eventName})}),n.fields[a]=c}),n}const G=async(t,o,s,n)=>{const d=await(await M()).get(`/General/${o}/${t}/page`,{params:n});return Ae(d?.data,t,s)},me=async(t,o,s)=>(await(await M()).post(`/General/${o}/${t}/button/List`,null,{params:s}))?.data;async function De(t,o){const n=await(await M()).post(`/General/${t}/list`,o);return{data:n.data.data,totalCount:n.data.totalCount}}async function Fe(t,o,s){const a=await(await M()).post(s,o,{params:{className:t}});return a.data.length>0?a.data[0]:0}function Re(t,o){return t.replace(/{workflowId}/g,o)}async function Pe(t,o,s,n){const a=await M(),d=Re(n,o);return(await a.put(d,s,{params:{className:t}}))?.data}function pe(t,o){return t.replace(/{WorkflowId}/g,o)}function He(t,o){return t.replace(/{ApproverEmail}/g,encodeURIComponent(o))}function je(t,o){return t.replace(/{WorkFlowReason}/g,encodeURIComponent(o))}function ze(t,o){return t.replace(/{Status}/g,o)}function Ke(t,o){return t.replace(/{IfTriggerGlobal_RandP_Approval}/g,o)}function Oe(t,o){return t.replace(/{ClassName}/g,encodeURIComponent(o))}async function We(t,o,s,n,a,d,c,p){const r=await M();let l=pe(d,o);return l=He(l,s),l=je(l,n),l=ze(l,c),l=Ke(l,p),l=Oe(l,t),(await r.put(l,a))?.data}async function Ge(t,o){const a=(await(await M()).get(t,{params:{value:o}}))?.data;return Object.entries(a).map(([d,c])=>({value:d,label:c}))}async function qe(t,o){return(await(await M()).get(`/General/${t}/${o}/process`))?.data}function ve(t){return{uid:t.id??de(),name:t.attachmentName??"unknown",url:t.attachmentKey??""}}async function ue(t,o){return(await(await M()).get(`/General/${t}/${o}/upload/get`))?.data.reduce((d,c)=>{const{category:p}=c;return d[p]||(d[p]=[]),d[p].push(ve(c)),d},{})}const H=(t,o)=>{let s="";return{res:t.every(a=>{const d=Ye(a,o);return d||(s=a.errorMessage),d}),errorMessages:s}},Ye=(t,o)=>{const{ruleName:s,ruleParameter:n}=t;return Je[s](n,o)},Je={Regex:(t,o)=>new RegExp(t).test(o),Required:(t,o)=>!!o},fe=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:s}){const n=t,a=s,d=e.useModel(t,"modelValue"),c=l=>H(n.validations,l),p=l=>{a("input",l)},r=l=>{const w=c(l);a("error",w.res?"":w.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(f=>{f.event==="change"&&a(f.event,f.handlerName,l)})};return o({validate(){const l=c(n.modelValue);return a("error",l.res?"":l.errorMessages),l.res}}),(l,w)=>{const f=e.resolveComponent("AInput");return e.openBlock(),e.createBlock(f,{modelValue:d.value,"onUpdate:modelValue":w[0]||(w[0]=y=>d.value=y),"allow-clear":"",disabled:n.readonly||n.config.Readonly,onInput:p,onChange:r},null,8,["modelValue","disabled"])}}}),Xe=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:s}){const n=t,a=s,d=e.useModel(t,"modelValue"),c=e.ref(100),p=e.ref(0);e.onMounted(()=>{n.validations&&n.validations.forEach(f=>{f.ruleName==="Max"&&(c.value=f.ruleParameter),f.ruleName==="Min"&&(p.value=f.ruleParameter)})});const r=f=>H(n.validations,f),l=f=>{a("input",f)},w=f=>{const y=r(f);a("error",y.res?"":y.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(h=>{h.event==="change"&&a(h.event,h.handlerName,f)})};return o({validate(){const f=r(n.modelValue);return a("error",f.res?"":f.errorMessages),f.res}}),(f,y)=>{const h=e.resolveComponent("AInputNumber");return e.openBlock(),e.createBlock(h,{modelValue:d.value,"onUpdate:modelValue":y[0]||(y[0]=k=>d.value=k),clearable:"",disabled:n.readonly,min:p.value,max:c.value,onInput:l,onChange:w},null,8,["modelValue","disabled","min","max"])}}}),ge=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:s}){const n=t,a=s,d=e.ref(!1),c=e.ref(n.config.options??[]),p=e.useModel(t,"modelValue"),r=f=>H(n.validations,f);e.computed(()=>{const f={};return n.triggers&&n.triggers.length>0&&n.triggers.forEach(y=>{f[y.event]=h=>{a(y.event,y.handlerName,h);const k=r(h);a("error",k.res?"":k.errorMessages)}}),f});const l=async()=>{n.config.dataSourceProvider&&(c.value=await Ge(n.config.dataSourceProvider))};e.onMounted(l);const w=f=>{a("update:modelValue",f);const y=r(f);a("error",y.res?"":y.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(h=>{h.event==="change"&&a(h.event,h.handlerName,f)})};return o({validate(){const f=r(n.modelValue);return a("error",f.res?"":f.errorMessages),f.res}}),(f,y)=>{const h=e.resolveComponent("AOption"),k=e.resolveComponent("ASelect");return e.openBlock(),e.createBlock(k,{"allow-clear":"",modelValue:p.value,"onUpdate:modelValue":y[0]||(y[0]=b=>p.value=b),loading:d.value,"filter-option":!0,"allow-search":!0,onChange:w},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,b=>(e.openBlock(),e.createBlock(h,{key:b.value,value:b.value,label:b.label},null,8,["value","label"]))),128))]),_:1},8,["modelValue","loading"])}}}),Qe=e.defineComponent({__name:"Cascader",props:{modelValue:{},config:{}},emits:["update:modelValue","change"],setup(t,{expose:o,emit:s}){const n=t,a=s,d=e.ref(n.config.options??[]),c=r=>{a("update:modelValue",r),a("change",r)};e.onMounted(async()=>{if(n.config){const r=n.config.dataSourceProvider;if(r){const w=await(await M()).get(r);d.value=w.data}}});const p={value:"key",label:"value"};return o({validate(){return!0}}),(r,l)=>{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":p,"model-value":r.modelValue,options:d.value,style:{width:"320px"},placeholder:"Please select ...",onChange:c},null,8,["model-value","options"])]),_:1})}}}),Ze=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:s}){const n=t,a=s,d=e.ref({});e.onMounted(async()=>{const k=await ie();d.value={Authorization:`Bearer ${k}`}});const c=k=>H(n.validations,k),r=ae().apiBase,l=e.ref(null),w=e.ref(0);function f(k,b,$){return k.replace(/{WorkflowId}/g,b).replace(/{ClassName}/g,$)}const y=e.computed(()=>{if(n.config.uploadURL){const k=r+n.config.uploadURL;return f(k,w.value.toString(),n.className)}return""}),h=k=>{k.stopPropagation(),l.value.submit()};return o({submit(k){l.value&&(n.config.uploadURL&&(w.value=k),e.nextTick(()=>{l.value.submit()}))},validate(){const k=c(n.modelValue);return a("error",k.res?"":k.errorMessages),k.res}}),(k,b)=>{const $=e.resolveComponent("a-button"),A=e.resolveComponent("a-upload");return e.openBlock(),e.createBlock(A,{ref_key:"uploadRef",ref:l,"default-file-list":n.config.files,action:y.value,limit:n.config.allowedNumber,"auto-upload":!1,name:"files",headers:d.value},{"start-icon":e.withCtx(()=>b[0]||(b[0]=[])),"upload-button":e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>b[1]||(b[1]=[e.createTextVNode("select file",-1)])),_:1,__:[1]}),e.createVNode($,{type:"primary",onClick:h},{default:e.withCtx(()=>b[2]||(b[2]=[e.createTextVNode(" start upload",-1)])),_:1,__:[2]})]),_:1},8,["default-file-list","action","limit","headers"])}}}),et=e.defineComponent({__name:"TextArea",props:{fieldKey:{},modelValue:{},config:{},readonly:{type:Boolean},validations:{},triggers:{}},emits:["update:modelValue","change","error","input"],setup(t,{expose:o,emit:s}){const n=t,a=s,d=r=>H(n.validations,r),c=r=>{a("update:modelValue",r),a("input",r)},p=r=>{a("update:modelValue",r);const l=d(r);a("error",l.res?"":l.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(w=>{w.event==="change"&&a(w.event,w.handlerName,r)})};return o({validate(){const r=d(n.modelValue);return a("error",r.res?"":r.errorMessages),r.res}}),(r,l)=>{const w=e.resolveComponent("ATextarea");return e.openBlock(),e.createBlock(w,{"model-value":n.modelValue,placeholder:"Please enter something","allow-clear":"",disabled:n.readonly,onInput:c,onChange:p},null,8,["model-value","disabled"])}}}),tt=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:s}){const n=t,a=s,d=e.useModel(t,"modelValue"),c=r=>H(n.validations,r),p=r=>{const l=c(r);a("error",l.res?"":l.errorMessages),n.triggers&&n.triggers.length>0&&n.triggers.forEach(w=>{w.event==="change"&&a(w.event,w.handlerName,r)})};return o({validate(){const r=c(n.modelValue);return a("error",r.res?"":r.errorMessages),r.res}}),(r,l)=>{const w=e.resolveComponent("ACheckbox");return e.openBlock(),e.createBlock(w,{modelValue:d.value,"onUpdate:modelValue":l[0]||(l[0]=f=>d.value=f),clearable:"",disabled:n.readonly||n.config.Readonly,onChange:p},{default:e.withCtx(()=>l[1]||(l[1]=[e.createTextVNode("Yes",-1)])),_:1,__:[1]},8,["modelValue","disabled"])}}}),ot={class:"widget-wrapper"},nt={class:"title mb-1.5"},at={key:0,class:"required"},rt={class:"form-widget"},st={class:"widget"},lt={key:0,class:"err-msg"},it=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:s}){const n=t,a=s,d=e.useModel(t,"modelValue"),c=e.useTemplateRef("widgetRef"),p=e.computed(()=>{switch(n.config?.widget?.widget){case"TextBox":return fe;case"Number":return Xe;case"SelectList":return ge;case"Cascade":return Qe;case"File":return Ze;case"TextArea":return et;case"DropDown":return ge;case"CheckBox":return tt;default:return fe}}),r=e.ref(""),l=y=>{r.value=y},w=(y,h)=>{a("change",y,h)};function f(){return n.config?.widget?.widget==="File"}return o({isFileUpload(){return n.config?.widget?.widget==="File"},submit(y){f()&&c.value.submit(y)},validate(){return c.value?.validate()},getCompName(){return n?.config?.widget?.title}}),(y,h)=>(e.openBlock(),e.createElementBlock("div",ot,[e.createElementVNode("div",nt,[e.createTextVNode(e.toDisplayString(n?.config?.widget?.title),1),n.config.validations.length?(e.openBlock(),e.createElementBlock("span",at,"*")):e.createCommentVNode("",!0)]),e.createElementVNode("div",rt,[e.createElementVNode("div",st,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),{ref_key:"widgetRef",ref:c,modelValue:d.value,"onUpdate:modelValue":h[0]||(h[0]=k=>d.value=k),"field-key":n.fieldKey,config:n.config.widget,validations:n.config.validations,triggers:n.config.triggers,"class-name":n.className,onError:l,onChange:w},null,40,["modelValue","field-key","config","validations","triggers","class-name"]))]),r.value.length>0?(e.openBlock(),e.createElementBlock("div",lt,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)])]))}}),j=(t,o)=>{const s=t.__vccOpts||t;for(const[n,a]of o)s[n]=a;return s},Z=j(it,[["__scopeId","data-v-3ad59bc4"]]),ct=e.defineComponent({__name:"SubmitButton",props:{url:{},redirectType:{}},emits:["click"],setup(t,{emit:o}){const s=t,n=o;function a(){n("click",s.url,s.redirectType)}return(d,c)=>{const p=e.resolveComponent("AButton");return e.openBlock(),e.createBlock(p,{type:"primary",onClick:a},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3})}}}),dt=e.defineComponent({__name:"DetailLink",props:{url:{},redirectType:{}},emits:["click"],setup(t,{emit:o}){const s=t,n=o;function a(){n("click",s.url,s.redirectType)}return(d,c)=>{const p=e.resolveComponent("ALink");return e.openBlock(),e.createBlock(p,{onClick:a},{default:e.withCtx(()=>[e.renderSlot(d.$slots,"default")]),_:3})}}}),z=e.defineComponent({__name:"index",props:{config:{}},emits:["click"],setup(t,{emit:o}){const s=t,n=o;function a(r,l){n("click",s.config.widget,r,l,s.config.title)}const d=e.computed(()=>{switch(s.config.location){case"InOperation":return ct;case"InTable":default:return dt}}),c=e.computed(()=>s.config.widget===T.Submit?s.config.requestUrl??"":s.config.widget===T.Link?s.config.redirectUrl??"":""),p=e.computed(()=>s.config.redirectType??"Details");return(r,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{url:c.value,"redirect-type":p.value,onClick:a},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.config.title),1)]),_:1},8,["url","redirect-type"]))}}),ee=Symbol("library-router");function q(){const t=e.inject(ee,null);return t||Ee.useRouter()}const _e=Symbol("library-triggers");function te(){const t=e.inject(_e,null);return t||{}}const we=Symbol("library-pinia"),ke=Symbol("library-bpmStore"),ye=Symbol("library-svrStore");function v(){return e.inject(ke,null)}function Y(){return e.inject(ye,null)}const mt={class:"top-bar"},pt={class:"banner-info"},ut={class:"page-title"},ft={class:"page-subtitle"},gt={class:"avatar-wrapper"},_t={class:"user-email"},J=j(e.defineComponent({__name:"TopBar",props:{title:{},subTitle:{},email:{}},setup(t){return(o,s)=>{const n=e.resolveComponent("a-avatar"),a=e.resolveComponent("a-popover");return e.openBlock(),e.createElementBlock("div",mt,[e.createElementVNode("div",pt,[e.createElementVNode("div",ut,e.toDisplayString(o.title),1),e.createElementVNode("div",ft,e.toDisplayString(o.subTitle),1)]),e.createElementVNode("div",gt,[e.createVNode(a,{trigger:"click"},{content:e.withCtx(()=>[e.createElementVNode("div",_t,e.toDisplayString(o.email),1)]),default:e.withCtx(()=>[e.createVNode(n,{size:48,autoFixFontSize:"",style:{cursor:"pointer",background:"#165DFF",color:"#fff"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.email.charAt(0).toUpperCase()),1)]),_:1})]),_:1})])])}}}),[["__scopeId","data-v-c0457235"]]),wt={class:"page-container"},kt={class:"page-body"},yt={class:"form-card"},ht={class:"form-fields"},bt={key:0,class:"form-content"},Ct={class:"page-footer"},Vt={class:"action-container"},Nt={class:"action-buttons"},he=j(e.defineComponent({__name:"CreateView",props:{className:{}},setup(t){const o=v(),s=Y(),n=q(),a=te(),d=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),p=t,r=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),l=e.ref([]),w=e.ref({});function f(g){return g?Object.entries(g).map(([i,m])=>({fieldKey:i,...m})).filter(i=>i.widget&&i.widget.widget!=="Hidden").filter(i=>!F.value.includes(i.fieldKey)):[]}function y(g){return g?Object.entries(g).filter(([i,m])=>m.dependent).reduce((i,[m,u])=>(i[m]=u.dependent,i),{}):[]}const h=e.computed(()=>r.value?.actions?[...r.value.actions].reverse():[]),k=e.reactive({}),b=e.ref(!1);e.onMounted(async()=>{b.value=!0,r.value=await G(P.Create,p.className,{svrStore:s,bpmStore:o}),l.value=f(r.value.fields),w.value=y(r.value.fields);for(const g in r.value.fields){if(r.value.fields[g].widget?.widget==="File"){const _=l.value.find(i=>i.fieldKey===g);_&&_.widget&&(_.widget.files=[]);continue}k[g]=r.value.fields[g].modelValue}b.value=!1});function $(){return s()?.userInfo?.email_address??""}async function A(g,_,i){switch(g){case T.Submit:let m=!0;if(d.value?.forEach(V=>{V?.validate&&(V.validate()||(m=!1))}),!m){c?.appContext.config.globalProperties.$message.error("表单验证未通过,请检查输入项");return}const u=await Fe(p.className,{...k,...w.value},_);d.value?.forEach(V=>{V?.submit&&V.submit(u)}),c?.appContext.config.globalProperties.$notification.success("创建成功!"),n.push({name:"List",params:{className:p.className}});break;case T.Link:i==="List"&&n.push({name:"List",params:{className:p.className}});break;default:console.warn("Unknown action type:",g)}}const D=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","positionId"],F=e.ref(D);function S(g,_){a[g]?.(_,F),r.value&&(l.value=f(r.value.fields))}return(g,_)=>{const i=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(J,{title:r.value.banner.title,subTitle:r.value.banner.subTitle,email:$()},null,8,["title","subTitle","email"]),e.createElementVNode("div",kt,[e.createVNode(i,{loading:b.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",yt,[e.createElementVNode("div",ht,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(m,u)=>(e.openBlock(),e.createElementBlock("div",{key:m.fieldKey,class:"form-field-wrapper"},[e.createVNode(Z,{ref_for:!0,ref:"dataWidgets","field-key":m.fieldKey,config:m,"class-name":g.className,modelValue:k[m.fieldKey],"onUpdate:modelValue":V=>k[m.fieldKey]=V,class:"form-field",onChange:S},null,8,["field-key","config","class-name","modelValue","onUpdate:modelValue"])]))),128))]),g.$slots.content?(e.openBlock(),e.createElementBlock("div",bt,[e.renderSlot(g.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Ct,[e.createElementVNode("div",Vt,[e.renderSlot(g.$slots,"action",{},void 0,!0),e.createElementVNode("div",Nt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,m=>(e.openBlock(),e.createBlock(z,{key:m.Title,config:m,class:"action-button",onClick:A},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-1b3d1fb4"]]),St={class:"page-container"},Bt={class:"page-body"},xt={class:"form-card"},Et={class:"form-fields"},$t={key:0,class:"form-content"},It={class:"page-footer"},Tt={class:"action-container"},Lt={class:"action-buttons"},be=j(e.defineComponent({__name:"UpdateView",props:{className:{},workflowId:{}},setup(t){const o=q(),s=te(),n=Y(),a=v(),d=e.useTemplateRef("dataWidgets"),c=e.getCurrentInstance(),p=t,r=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),l=e.ref([]),w=e.ref({});function f(g){return g?Object.entries(g).map(([i,m])=>({fieldKey:i,...m})).filter(i=>i.widget&&i.widget.widget!=="Hidden").filter(i=>!F.value.includes(i.fieldKey)):[]}function y(g){return g?Object.entries(g).filter(([i,m])=>m.dependent).reduce((i,[m,u])=>(i[m]=u.dependent,i),{}):[]}const h=e.computed(()=>r.value?.actions?[...r.value.actions].reverse():[]),k=e.reactive({}),b=e.ref(!1);e.onMounted(async()=>{b.value=!0,r.value=await G(P.Update,p.className,{svrStore:n,bpmStore:a},{workflowId:p.workflowId});const g=await me(P.Update,p.className,{workflowId:p.workflowId,email:$()}),_=await ue(p.className,p.workflowId);r.value.actions=r.value.actions?.filter(i=>{const m=g.find(u=>u.button===i.title);return m?m.isShow:!0}),l.value=f(r.value.fields),w.value=y(r.value.fields);for(const i in r.value.fields){if(r.value.fields[i].widget?.widget==="File"){const m=l.value.find(u=>u.fieldKey===i);m&&m.widget&&(m.widget.files=_[i]??[]);continue}k[i]=r.value.fields[i].modelValue}b.value=!1});function $(){return n()?.userInfo?.email_address??""}async function A(g,_,i){switch(g){case T.Submit:let m=!0;if(d.value?.forEach(V=>{V?.validate&&(V.validate()||(m=!1))}),!m){c?.appContext.config.globalProperties.$message.error("表单验证未通过,请检查输入项");return}const u=await Pe(p.className,p.workflowId,{...k,...w.value},_);d.value?.forEach(V=>{V?.submit&&V.submit(u)}),c?.appContext.config.globalProperties.$notification.success("修改成功!"),o.push({name:"List",params:{className:p.className}});break;case T.Link:o.push({name:i,params:{className:p.className}});break;default:console.warn("Unknown action type:",g)}}const D=["jobScpope","currentWorkdayId","originalGrade","jobTitlePrevious","positionId"],F=e.ref(D);function S(g,_){s[g]?.(_,F),r.value&&(l.value=f(r.value.fields))}return(g,_)=>{const i=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",St,[e.createVNode(J,{title:r.value.banner.title,subTitle:r.value.banner.subTitle,email:$()},null,8,["title","subTitle","email"]),e.createElementVNode("div",Bt,[e.createVNode(i,{loading:b.value,class:"form-container"},{default:e.withCtx(()=>[e.createElementVNode("div",xt,[e.createElementVNode("div",Et,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(m,u)=>(e.openBlock(),e.createElementBlock("div",{key:m.fieldKey,class:"form-field-wrapper"},[e.createVNode(Z,{ref_for:!0,ref:"dataWidgets","field-key":m.fieldKey,name:u,config:m,"class-name":g.className,modelValue:k[m.fieldKey],"onUpdate:modelValue":V=>k[m.fieldKey]=V,class:"form-field",onChange:S},null,8,["field-key","name","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",It,[e.createElementVNode("div",Tt,[e.renderSlot(g.$slots,"action",{},void 0,!0),e.createElementVNode("div",Lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,m=>(e.openBlock(),e.createBlock(z,{key:m.Title,config:m,class:"action-button",onClick:A},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-8cfc2908"]]),Ce=Symbol("library-custom-comp");function Mt(){return e.inject(Ce,null)}const Ut=Symbol("ArcoConfigProvider"),At="arco",Dt="$arco",Ft=t=>{var o,s,n;const a=e.getCurrentInstance(),d=e.inject(Ut,void 0);return`${(n=(s=d?.prefixCls)!=null?s:(o=a?.appContext.config.globalProperties[Dt])==null?void 0:o.classPrefix)!=null?n:At}-${t}`},Rt=Object.prototype.toString;function Pt(t){return Rt.call(t)==="[object Number]"&&t===t}var Ht=(t,o)=>{for(const[s,n]of o)t[s]=n;return t};const jt=e.defineComponent({name:"IconDownload",props:{size:{type:[Number,String]},strokeWidth:{type:Number,default:4},strokeLinecap:{type:String,default:"butt",validator:t=>["butt","round","square"].includes(t)},strokeLinejoin:{type:String,default:"miter",validator:t=>["arcs","bevel","miter","miter-clip","round"].includes(t)},rotate:Number,spin:Boolean},emits:{click:t=>!0},setup(t,{emit:o}){const s=Ft("icon"),n=e.computed(()=>[s,`${s}-download`,{[`${s}-spin`]:t.spin}]),a=e.computed(()=>{const c={};return t.size&&(c.fontSize=Pt(t.size)?`${t.size}px`:t.size),t.rotate&&(c.transform=`rotate(${t.rotate}deg)`),c});return{cls:n,innerStyle:a,onClick:c=>{o("click",c)}}}}),zt=["stroke-width","stroke-linecap","stroke-linejoin"];function Kt(t,o,s,n,a,d){return e.openBlock(),e.createElementBlock("svg",{viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:"currentColor",class:e.normalizeClass(t.cls),style:e.normalizeStyle(t.innerStyle),"stroke-width":t.strokeWidth,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,onClick:o[0]||(o[0]=(...c)=>t.onClick&&t.onClick(...c))},o[1]||(o[1]=[e.createElementVNode("path",{d:"m33.072 22.071-9.07 9.071-9.072-9.07M24 5v26m16 4v6H8v-6"},null,-1)]),14,zt)}var oe=Ht(jt,[["render",Kt]]);const Ot=Object.assign(oe,{install:(t,o)=>{var s;const n=(s=o?.iconPrefix)!=null?s:"";t.component(n+oe.name,oe)}}),Wt={class:"page-container"},Gt={class:"page-body"},qt={class:"detail-card"},vt={class:"detail-fields"},Yt={class:"detail-field"},Jt={class:"field-label"},Xt={key:1,class:"field-value"},Qt={key:0,class:"detail-content"},Zt={class:"page-footer"},eo={class:"action-container"},to={class:"action-buttons"},Ve=j(e.defineComponent({__name:"DetailView",props:{className:{},workflowId:{}},setup(t){const o=Y(),s=v(),n=te(),a=q(),d=Mt(),c=e.getCurrentInstance(),p=t,r=e.ref({pageType:"",fields:{},globalValidations:[],banner:{title:"",subTitle:""}}),l=e.ref([]);function w(S){return S?Object.entries(S).map(([_,i])=>(typeof i.modelValue=="boolean"?i.fieldValue=i.modelValue?"Yes":"No":i.fieldValue=i.modelValue,{fieldKey:_,...i})).filter(_=>_.widget&&_.widget.widget!=="Hidden"):[]}const f=e.computed(()=>r.value?.actions?[...r.value.actions].reverse():[]),y=e.ref(!0),h=(S,g="yyyy-MM-dd hh:mm:ss.fff")=>{const _=new Date(S);if(isNaN(_.getTime()))return S;const i={yyyy:_.getFullYear(),yy:_.getFullYear().toString().substring(2),MM:(_.getMonth()+1).toString().padStart(2,"0"),M:_.getMonth()+1,dd:_.getDate().toString().padStart(2,"0"),d:_.getDate(),hh:_.getHours().toString().padStart(2,"0"),h:_.getHours(),mm:_.getMinutes().toString().padStart(2,"0"),m:_.getMinutes(),ss:_.getSeconds().toString().padStart(2,"0"),s:_.getSeconds(),fff:_.getMilliseconds().toString().padStart(3,"0"),f:_.getMilliseconds()};let m=g;for(const u of Object.keys(i))m=m.replace(u,i[u]);return m},k=(S,g)=>{const _=S.findIndex(i=>i.isCurrent);return S.map((i,m)=>{const u={id:i.id,title:"",proxy:"",sub:"",desc:"",status:1,time:""};u.title=i.workflowProcessApprovers[0]?.name;const V=i.workflowProcessApprovers[i.workflowProcessApprovers.length-1],R=i.workflowHistorys[i.workflowHistorys.length-1],K=R?.workflowHistoryApprovers[R?.workflowHistoryApprovers?.length-1];if(V&&K&&V?.email?.toLowerCase()!==K?.approverEmail?.toLowerCase()&&(u.title=`${K.name}`,u.proxy=`代理: ${V.name}`),i.sort>1?u.sub="审批角色:"+i.nodeName.replace("Submit","").replace("Approve",""):u.sub="提交申请",i.isCurrent&&g!==-1)u.desc="审批中",u.status=1;else{const L=i.workflowHistorys[i.workflowHistorys.length-1];if(L&&L.status===100)u.time=h(L.takeActionAt,"yyyy-MM-dd hh:mm:ss"),u.status=2,u.desc="已审批";else if(L&&L.status===999)u.time=h(L.takeActionAt,"yyyy-MM-dd hh:mm:ss"),u.status=0,u.desc="已跳过";else if(L)if(u.time=h(L.takeActionAt,"yyyy-MM-dd hh:mm:ss"),i.sort===1)u.status=2,u.desc="";else{const C=L.workflowHistoryApprovers[0];u.status=3,u.desc=C?.reason?`拒绝原因:${C.reason}`:"已拒绝"}else m<_||_===-1?(u.status=0,u.desc="已跳过"):(u.status=0,u.desc="待审批");L&&L.status}return u})},b=e.ref([]),$=e.ref(!1);e.onMounted(async()=>{y.value=!0,r.value=await G(P.Details,p.className,{svrStore:o,bpmStore:s},{workflowId:p.workflowId});const S=await me(P.Details,p.className,{workflowId:p.workflowId,email:D()}),g=await ue(p.className,p.workflowId);r.value.actions=r.value.actions?.filter(i=>{const m=S.find(u=>u.button===i.title);return m?m.isShow:!0}),$.value=S.find(i=>i.button==="IsGlobal")?.isShow??!1,l.value=w(r.value.fields);for(const i in r.value.fields)if(r.value.fields[i].widget?.widget==="File"){const m=l.value.find(u=>u.fieldKey===i);m&&m.widget&&(m.widget.files=g[i]??[])}const _=await qe(p.className,p.workflowId);b.value=k(_,0),y.value=!1});async function A(S,g){return n[S]?.(g)}function D(){return o()?.userInfo?.email_address??""}async function F(S,g,_,i){try{switch(S){case T.Submit:const{reason:m,ifGlobal:u}=await A(i,{isGlobal:$.value}),V=i==="Approve"?"100":"-1";await We(p.className,p.workflowId,D(),m,[Number(p.workflowId)],g,V,u);const R=i==="Approve"?"审批已通过!":"审批已拒绝!";c?.appContext.config.globalProperties.$notification.success(R),a.push({name:"List",params:{className:p.className}});break;case T.Link:_==="List"&&a.push({name:"List",params:{className:p.className}});break;default:console.warn("Unknown action type:",S)}}catch{}}return(S,g)=>{const _=e.resolveComponent("a-link"),i=e.resolveComponent("a-space"),m=e.resolveComponent("a-spin");return e.openBlock(),e.createElementBlock("div",Wt,[e.createVNode(J,{title:r.value.banner.title,subTitle:r.value.banner.subTitle,email:D()},null,8,["title","subTitle","email"]),e.createElementVNode("div",Gt,[e.createVNode(m,{loading:y.value,class:"detail-container"},{default:e.withCtx(()=>[e.createElementVNode("div",qt,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d).Steps),{steps:b.value},null,8,["steps"])),e.createElementVNode("div",vt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u.fieldKey,class:"detail-field-wrapper"},[e.createElementVNode("div",Yt,[e.createElementVNode("div",Jt,e.toDisplayString(u.widget?.title),1),u.widget?.widget==="File"?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(u.widget.files,V=>(e.openBlock(),e.createElementBlock("div",{class:"field-value",key:V.id},[e.createVNode(i,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.name),1),e.createVNode(_,{href:V.url,target:"_blank"},{default:e.withCtx(()=>[e.createVNode(e.unref(Ot),{style:{color:"#7A00E6"}})]),_:2},1032,["href"])]),_:2},1024)]))),128)):(e.openBlock(),e.createElementBlock("div",Xt,e.toDisplayString(u.fieldValue),1))])]))),128))]),S.$slots.content?(e.openBlock(),e.createElementBlock("div",Qt,[e.renderSlot(S.$slots,"content",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},8,["loading"])]),e.createElementVNode("div",Zt,[e.createElementVNode("div",eo,[e.renderSlot(S.$slots,"action",{},void 0,!0),e.createElementVNode("div",to,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,u=>(e.openBlock(),e.createBlock(z,{key:u.Title,config:u,class:"action-button",onClick:F},null,8,["config"]))),128))])])])])}}}),[["__scopeId","data-v-7604f8d3"]]),oo={class:"list-container"},no={class:"query-title"},ao={class:"field-wrapper"},Ne=j(e.defineComponent({name:"ListView",__name:"ListView",props:{className:{}},setup(t){const o=Y(),s=v(),n=q(),a=t,d=e.ref(),c=e.reactive({current:1,total:0,pageSize:10,defaultPageSize:10,showTotal:!0,showPageSize:!0,filters:[]});function p(){const C=Object.entries(m.value).filter(([,N])=>N&&N!=="").map(([N,B])=>({key:N,value:B}));return{pageNumber:c.current,pageSize:c.pageSize,filters:[...c.filters,...C],sorts:[{key:"status",type:0}]}}const r=e.computed(()=>({x:f.value.length*150+250})),l=C=>{const N=Object.entries(C).filter(([,B])=>B.widget?.column).map(([B,U],O)=>({title:U.widget.title,dataIndex:B.charAt(0).toLowerCase()+B.slice(1),order:U.order,ellipsis:!0,tooltip:!0,width:150,minWidth:100,resizable:!0})).sort((B,U)=>B.order-U.order);N.push({title:"Actions",slotName:"optional",align:"center",width:250,minWidth:200,fixed:"right",resizable:!1}),f.value=N},w=e.ref([]),f=e.ref([]),y=e.ref(!0),h=e.ref(!0),k=e.ref(),b=async()=>{h.value=!0;const C=await De(a.className,p());w.value=C.data,c.total=C.totalCount,h.value=!1},$=e.ref(!1);e.onMounted(async()=>{y.value=!0,d.value=await G(3,a.className,{svrStore:o,bpmStore:s}),l(d.value.fields),V(d.value.fields),i(d.value?.tabs?.[0]?.key||""),k.value=d.value.actions,y.value=!1,$.value=!0}),e.onActivated(()=>{$.value&&b()});const A=C=>{c.current=C,b()},D=C=>{c.pageSize=C,b()};function F(C,N,B,U,O){switch(C){case T.Link:n.push({name:B,params:{workflowId:O}});break;default:console.warn("Unknown action type:",C)}}function S(C,N,B){switch(C){case T.Link:n.push({name:B});break;default:console.warn("Unknown action type:",C)}}function g(){return o()?.userInfo?.email_address??""}function _(C,N){return C.replace(/{currentUserEmail}/g,N)}function i(C){const N=d.value?.tabs?.find(B=>B.key===C)?.filters;c.filters=N?.map(B=>({...B,value:_(B.value,g())}))||[],b()}const m=e.ref({}),u=e.computed(()=>d.value?.fields?Object.entries(d.value.fields).filter(([,C])=>C.isFiltered):[]),V=C=>{const N={};Object.entries(C).forEach(([B,U])=>{N[B]=U.modelValue}),m.value=N},R=()=>{c.current=1,b()},K=()=>{d.value&&V(d.value.fields),R()};function L(C,N){return!(C.location!=="InTable"||C.title==="Update"&&(N.status===100||N.status===-1))}return(C,N)=>{const B=e.resolveComponent("a-col"),U=e.resolveComponent("a-button"),O=e.resolveComponent("a-space"),so=e.resolveComponent("a-row"),lo=e.resolveComponent("a-card"),io=e.resolveComponent("a-tab-pane"),co=e.resolveComponent("a-tabs"),mo=e.resolveComponent("a-table");return e.openBlock(),e.createElementBlock("div",oo,[e.createVNode(J,{title:d.value?.banner.title??"",subTitle:d.value?.banner.subTitle??"",email:g()},null,8,["title","subTitle","email"]),e.createVNode(lo,null,{default:e.withCtx(()=>[e.createElementVNode("div",no,[N[0]||(N[0]=e.createElementVNode("h3",null,"查询条件",-1)),e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,I=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:I.title},[I.location==="InOperation"?(e.openBlock(),e.createBlock(z,{key:0,config:I,onClick:S},null,8,["config"])):e.createCommentVNode("",!0)],64))),128))])]),e.createVNode(so,{gutter:[24,20],class:"search-row"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,([I,W])=>(e.openBlock(),e.createBlock(B,{key:I,span:6,class:"search-col"},{default:e.withCtx(()=>[e.createVNode(Z,{name:I,config:W,modelValue:m.value[I],"onUpdate:modelValue":re=>m.value[I]=re,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",ao,[e.createVNode(O,{size:"medium"},{default:e.withCtx(()=>[e.createVNode(U,{type:"primary",size:"medium",onClick:R},{default:e.withCtx(()=>N[1]||(N[1]=[e.createTextVNode(" 查询 ",-1)])),_:1,__:[1]}),e.createVNode(U,{size:"medium",onClick:K},{default:e.withCtx(()=>N[2]||(N[2]=[e.createTextVNode(" 重置 ",-1)])),_:1,__:[2]})]),_:1})])]),_:1})]),_:1})]),_:1}),e.createVNode(co,{size:"large",onTabClick:i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value?.tabs,I=>(e.openBlock(),e.createBlock(io,{key:I.key,title:I.title},null,8,["title"]))),128))]),_:1}),e.createVNode(mo,{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:h.value,size:"medium",scroll:r.value,onPageChange:A,onPageSizeChange:D},{optional:e.withCtx(({record:I})=>[e.createVNode(O,{size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,W=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:W.title},[L(W,I)?(e.openBlock(),e.createBlock(z,{key:0,config:W,size:"small",onClick:(...re)=>F(...re,I.workflowId)},null,8,["config","onClick"])):e.createCommentVNode("",!0)],64))),128))]),_:2},1024)]),_:1},8,["columns","data","pagination","loading","scroll"])])}}}),[["__scopeId","data-v-477f539f"]]);let ne={};function Se(t){ne={...ne,...t}}function ae(){return ne}const ro={install(t,o={}){o.config&&Se(o.config),o.router&&t.provide(ee,o.router),o.pinia&&t.provide(we,o.pinia),o.useBpmStore&&t.provide(ke,o.useBpmStore),o.useSvrStore&&t.provide(ye,o.useSvrStore),o.triggers&&t.provide(_e,o.triggers),o.customComps&&t.provide(Ce,o.customComps),t.component("CreateView",he),t.component("UpdateView",be),t.component("DetailView",Ve),t.component("ListView",Ne)}};x.CreateView=he,x.DetailView=Ve,x.ListView=Ne,x.PiniaKey=we,x.RouterKey=ee,x.UpdateView=be,x.default=ro,x.getLibraryConfig=ae,x.setLibraryConfig=Se,Object.defineProperties(x,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
2
2
  //# sourceMappingURL=index.umd.js.map