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