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