Files
yuezi-saas/frontend/dist/assets/approvals-CHwBE6jA.js
T

1 line
9.4 KiB
JavaScript

import{$ as e,H as t,L as n,P as ee,V as r,Wt as i,_ as a,d as o,et as te,f as s,i as c,lt as l,p as u,st as d,u as f,v as p,z as m}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{o as h,s as g}from"./index-ZRE77JpD.js";import"./request-C_vMs8Bs.js";import{n as _,r as v}from"./office-DHw6Jomg.js";var y={class:`p-6 space-y-4`},b={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},ne={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},re={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},x={class:`px-2`},S={class:`px-5 py-3 border-t border-gray-50`},C={key:0},w={class:`text-sm space-y-1 py-1 text-gray-500`},ie={class:`text-gray-700`},ae={key:0},T={class:`text-gray-700`},E={key:1,class:`text-xs text-gray-400`},D={__name:`index`,setup(D){let O=l([]),k=l(0),A=l(!1),j=l(!1),M=l(!1),N=l(!1),P=l(!1),F=d({status:``}),I=d({page:1,per_page:20}),L=l(null),R=d({title:``,template_id:``,form_data:``}),z=l([]),B=l(null),V=d({comment:``}),H=l(null),U={0:`待审批`,1:`审批中`,2:`已通过`,3:`已驳回`,4:`已撤回`},W={0:`warning`,1:`primary`,2:`success`,3:`danger`,4:`info`},G={0:`待处理`,1:`已通过`,2:`已驳回`},K={title:[{required:!0,message:`请输入审批标题`,trigger:`blur`}]};async function q(){A.value=!0;try{let e=await _.getList({...F,...I});O.value=e.data?.list||e.data?.data||[],k.value=e.data?.total||0}finally{A.value=!1}}async function J(){try{let e=await v.getList({per_page:100,status:1});z.value=e.data?.list||e.data?.data||[]}catch{}}function Y(){I.page=1,q()}function oe(){Object.assign(F,{status:``}),Y()}function se(){Object.assign(R,{title:``,template_id:``,form_data:``}),j.value=!0}async function ce(){L.value&&await L.value.validate(async e=>{if(e){P.value=!0;try{let e={...R};if(e.form_data)try{e.form_data=JSON.parse(e.form_data)}catch{}e.template_id||delete e.template_id,await _.create(e),g.success(`提交成功,审批节点已自动创建`),j.value=!1,q()}finally{P.value=!1}}})}async function X(e){try{B.value=(await _.getDetail(e.id)).data,M.value=!0}catch{g.error(`加载详情失败`)}}async function le(e){await h.confirm(`确定通过该审批节点吗?`,`审批确认`,{type:`warning`}),await _.approve(e.id,{}),g.success(`审批已通过`),q()}function ue(e){H.value=e,V.comment=``,N.value=!0}async function de(){H.value&&(await _.reject(H.value.id,{comment:V.comment}),g.success(`审批已驳回`),N.value=!1,q())}async function fe(e){await h.confirm(`确定撤回该审批吗?`,`撤回确认`,{type:`warning`}),await _.withdraw(e.id),g.success(`审批已撤回`),q()}function pe(e,t){return e.node_order<t?e.action===2?`error`:`finish`:e.node_order===t?e.action===0?`process`:e.action===1?`finish`:`error`:`wait`}function me(e){return[...e||[]].sort((e,t)=>e.node_order-t.node_order)}function he(e){I.page=e,q()}function ge(e){I.per_page=e,I.page=1,q()}return ee(()=>{q(),J()}),(ee,l)=>{let d=r(`el-option`),h=r(`el-select`),g=r(`el-button`),_=r(`el-table-column`),v=r(`el-tag`),D=r(`el-table`),H=r(`el-pagination`),q=r(`el-input`),J=r(`el-form-item`),Z=r(`el-form`),Q=r(`el-dialog`),$=r(`el-descriptions-item`),_e=r(`el-descriptions`),ve=r(`el-step`),ye=r(`el-steps`),be=r(`el-empty`),xe=t(`loading`);return n(),u(`div`,y,[f(`div`,b,[p(h,{modelValue:F.status,"onUpdate:modelValue":l[0]||=e=>F.status=e,placeholder:`审批状态`,clearable:``,style:{width:`140px`}},{default:e(()=>[(n(),u(c,null,m(U,(e,t)=>p(d,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),p(g,{type:`primary`,onClick:Y},{default:e(()=>[...l[13]||=[a(`查询`,-1)]]),_:1}),p(g,{onClick:oe},{default:e(()=>[...l[14]||=[a(`重置`,-1)]]),_:1})]),f(`div`,ne,[f(`div`,re,[l[16]||=f(`span`,{class:`font-medium text-gray-700`},`审批列表`,-1),p(g,{type:`primary`,onClick:se},{default:e(()=>[...l[15]||=[a(`发起审批`,-1)]]),_:1})]),f(`div`,x,[te((n(),o(D,{data:O.value,style:{width:`100%`}},{default:e(()=>[p(_,{label:`标题`,"min-width":`200`},{default:e(({row:t})=>[p(g,{type:`primary`,link:``,onClick:e=>X(t)},{default:e(()=>[a(i(t.title),1)]),_:2},1032,[`onClick`])]),_:1}),p(_,{label:`申请人`,"min-width":`100`},{default:e(({row:e})=>[a(i(e.applicant?.name||`-`),1)]),_:1}),p(_,{label:`审批模板`,"min-width":`120`},{default:e(({row:e})=>[a(i(e.template?.name||`无模板`),1)]),_:1}),p(_,{label:`当前节点`,width:`90`,align:`center`},{default:e(({row:e})=>[a(`第 `+i(e.current_node||1)+` 级`,1)]),_:1}),p(_,{label:`状态`,width:`100`,align:`center`},{default:e(({row:t})=>[p(v,{type:W[t.status],size:`small`},{default:e(()=>[a(i(U[t.status]),1)]),_:2},1032,[`type`])]),_:1}),p(_,{prop:`created_at`,label:`创建时间`,"min-width":`160`}),p(_,{label:`操作`,width:`230`,fixed:`right`,align:`center`},{default:e(({row:t})=>[p(g,{size:`small`,text:``,onClick:e=>X(t)},{default:e(()=>[...l[17]||=[a(`详情`,-1)]]),_:1},8,[`onClick`]),t.status<=1?(n(),u(c,{key:0},[p(g,{size:`small`,type:`success`,text:``,onClick:e=>le(t)},{default:e(()=>[...l[18]||=[a(`通过`,-1)]]),_:1},8,[`onClick`]),p(g,{size:`small`,type:`danger`,text:``,onClick:e=>ue(t)},{default:e(()=>[...l[19]||=[a(`驳回`,-1)]]),_:1},8,[`onClick`]),p(g,{size:`small`,type:`warning`,text:``,onClick:e=>fe(t)},{default:e(()=>[...l[20]||=[a(`撤回`,-1)]]),_:1},8,[`onClick`])],64)):s(``,!0)]),_:1})]),_:1},8,[`data`])),[[xe,A.value]])]),f(`div`,S,[p(H,{"current-page":I.page,"onUpdate:currentPage":l[1]||=e=>I.page=e,"page-size":I.per_page,"onUpdate:pageSize":l[2]||=e=>I.per_page=e,total:k.value,"page-sizes":[10,20,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:he,onSizeChange:ge},null,8,[`current-page`,`page-size`,`total`])])]),p(Q,{modelValue:j.value,"onUpdate:modelValue":l[7]||=e=>j.value=e,title:`发起审批`,width:`600px`,"destroy-on-close":``},{footer:e(()=>[p(g,{onClick:l[6]||=e=>j.value=!1},{default:e(()=>[...l[21]||=[a(`取消`,-1)]]),_:1}),p(g,{type:`primary`,loading:P.value,onClick:ce},{default:e(()=>[...l[22]||=[a(`提交`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[p(Z,{ref_key:`formRef`,ref:L,model:R,rules:K,"label-width":`100px`},{default:e(()=>[p(J,{label:`审批标题`,prop:`title`},{default:e(()=>[p(q,{modelValue:R.title,"onUpdate:modelValue":l[3]||=e=>R.title=e,placeholder:`请输入审批标题`},null,8,[`modelValue`])]),_:1}),p(J,{label:`审批模板`},{default:e(()=>[p(h,{modelValue:R.template_id,"onUpdate:modelValue":l[4]||=e=>R.template_id=e,placeholder:`请选择审批模板(可选,选择后自动生成多级审批节点)`,clearable:``,style:{width:`100%`}},{default:e(()=>[(n(!0),u(c,null,m(z.value,e=>(n(),o(d,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),p(J,{label:`表单数据`},{default:e(()=>[p(q,{modelValue:R.form_data,"onUpdate:modelValue":l[5]||=e=>R.form_data=e,type:`textarea`,rows:3,placeholder:`JSON格式(可选)`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`]),p(Q,{modelValue:M.value,"onUpdate:modelValue":l[9]||=e=>M.value=e,title:`审批详情`,width:`700px`,"destroy-on-close":``},{footer:e(()=>[p(g,{onClick:l[8]||=e=>M.value=!1},{default:e(()=>[...l[27]||=[a(`关闭`,-1)]]),_:1})]),default:e(()=>[B.value?(n(),u(c,{key:0},[p(_e,{column:2,border:``,class:`mb-5`},{default:e(()=>[p($,{label:`审批标题`,span:2},{default:e(()=>[a(i(B.value.title),1)]),_:1}),p($,{label:`申请人`},{default:e(()=>[a(i(B.value.applicant?.name||`-`),1)]),_:1}),p($,{label:`审批模板`},{default:e(()=>[a(i(B.value.template?.name||`无模板`),1)]),_:1}),p($,{label:`状态`},{default:e(()=>[p(v,{type:W[B.value.status],size:`small`},{default:e(()=>[a(i(U[B.value.status]),1)]),_:1},8,[`type`])]),_:1}),p($,{label:`当前节点`},{default:e(()=>[a(`第 `+i(B.value.current_node||1)+` 级`,1)]),_:1}),p($,{label:`创建时间`,span:2},{default:e(()=>[a(i(B.value.created_at),1)]),_:1})]),_:1}),l[26]||=f(`div`,{class:`font-medium text-gray-700 mb-3`},`审批流程进度`,-1),B.value.nodes&&B.value.nodes.length?(n(),u(`div`,C,[p(ye,{direction:`vertical`,active:B.value.current_node,space:`80px`},{default:e(()=>[(n(!0),u(c,null,m(me(B.value.nodes),t=>(n(),o(ve,{key:t.id,title:t.node_label||`第${t.node_order}级审批`,status:pe(t,B.value.current_node)},{description:e(()=>[f(`div`,w,[f(`div`,null,[l[23]||=a(`审批人:`,-1),f(`span`,ie,i(t.approver?.name||(t.role?`[${t.role}角色]`:`待指定`)),1)]),f(`div`,null,[l[24]||=a(` 状态: `,-1),p(v,{size:`small`,type:t.action===1?`success`:t.action===2?`danger`:`info`},{default:e(()=>[a(i(G[t.action]||`-`),1)]),_:2},1032,[`type`])]),t.comment?(n(),u(`div`,ae,[l[25]||=a(`意见:`,-1),f(`span`,T,i(t.comment),1)])):s(``,!0),t.acted_at?(n(),u(`div`,E,`操作时间:`+i(t.acted_at),1)):s(``,!0)])]),_:2},1032,[`title`,`status`]))),128))]),_:1},8,[`active`])])):(n(),o(be,{key:1,description:`暂无审批节点(提交后自动按模板生成)`,"image-size":60}))],64)):s(``,!0)]),_:1},8,[`modelValue`]),p(Q,{modelValue:N.value,"onUpdate:modelValue":l[12]||=e=>N.value=e,title:`驳回审批`,width:`460px`,"destroy-on-close":``},{footer:e(()=>[p(g,{onClick:l[11]||=e=>N.value=!1},{default:e(()=>[...l[28]||=[a(`取消`,-1)]]),_:1}),p(g,{type:`danger`,onClick:de},{default:e(()=>[...l[29]||=[a(`确认驳回`,-1)]]),_:1})]),default:e(()=>[p(Z,{"label-width":`80px`},{default:e(()=>[p(J,{label:`驳回意见`},{default:e(()=>[p(q,{modelValue:V.comment,"onUpdate:modelValue":l[10]||=e=>V.comment=e,type:`textarea`,rows:3,placeholder:`请输入驳回意见(可选)`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}};export{D as default};