1 line
6.7 KiB
JavaScript
1 line
6.7 KiB
JavaScript
import{$ as e,H as t,L as n,P as r,V as i,Wt as a,_ as o,d as s,et as c,i as l,lt as u,p as d,st as f,u as p,v as m,z as h}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{o as g,s as _}from"./index-3YculFMX.js";import"./request-DD5g7hLU.js";import{r as v}from"./office-CIThbrL3.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`},x={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},S={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},C={class:`px-2`},w={class:`px-5 py-3 border-t border-gray-50`},T={__name:`index`,setup(T){let E=u([]),D=u(0),O=u(!1),k=u(!1),A=u(`新增审批模板`),j=u(!1),M=u(!1),N=f({type:``,status:``}),P=f({page:1,per_page:20}),F=u(null),I=f({id:null,name:``,type:``,form_fields:``,flow_nodes:``,status:1,sort:0}),L={1:`请假`,2:`采购`,3:`合同`,4:`退款`,5:`换房`},R={name:[{required:!0,message:`请输入模板名称`,trigger:`blur`}],type:[{required:!0,message:`请选择模板类型`,trigger:`change`}]};async function z(){O.value=!0;try{let e=await v.getList({...N,...P});E.value=e.data?.list||e.data?.data||[],D.value=e.data?.total||0}finally{O.value=!1}}function B(){P.page=1,z()}function V(){Object.assign(N,{type:``,status:``}),B()}function H(){M.value=!1,A.value=`新增审批模板`,Object.assign(I,{id:null,name:``,type:``,form_fields:``,flow_nodes:``,status:1,sort:0}),k.value=!0}async function U(e){M.value=!0,A.value=`编辑审批模板`;let t=(await v.getDetail(e.id)).data;Object.assign(I,{id:t.id,name:t.name,type:t.type,form_fields:t.form_fields?typeof t.form_fields==`string`?t.form_fields:JSON.stringify(t.form_fields,null,2):``,flow_nodes:t.flow_nodes?typeof t.flow_nodes==`string`?t.flow_nodes:JSON.stringify(t.flow_nodes,null,2):``,status:t.status,sort:t.sort||0}),k.value=!0}async function W(){F.value&&await F.value.validate(async e=>{if(e){j.value=!0;try{let e={...I};if(e.form_fields)try{e.form_fields=JSON.parse(e.form_fields)}catch{}if(e.flow_nodes)try{e.flow_nodes=JSON.parse(e.flow_nodes)}catch{}M.value?(await v.update(I.id,e),_.success(`更新成功`)):(await v.create(e),_.success(`创建成功`)),k.value=!1,z()}finally{j.value=!1}}})}async function G(e){await g.confirm(`确定删除审批模板「${e.name}」吗?`,`删除确认`,{type:`warning`}),await v.delete(e.id),_.success(`删除成功`),z()}function K(e){P.page=e,z()}function q(e){P.per_page=e,P.page=1,z()}return r(()=>{z()}),(r,u)=>{let f=i(`el-option`),g=i(`el-select`),_=i(`el-button`),v=i(`el-table-column`),T=i(`el-tag`),M=i(`el-table`),z=i(`el-pagination`),J=i(`el-input`),Y=i(`el-form-item`),X=i(`el-switch`),Z=i(`el-input-number`),Q=i(`el-form`),$=i(`el-dialog`),ee=t(`loading`);return n(),d(`div`,y,[p(`div`,b,[m(g,{modelValue:N.type,"onUpdate:modelValue":u[0]||=e=>N.type=e,placeholder:`模板类型`,clearable:``,style:{width:`140px`}},{default:e(()=>[(n(),d(l,null,h(L,(e,t)=>m(f,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),m(g,{modelValue:N.status,"onUpdate:modelValue":u[1]||=e=>N.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[m(f,{label:`启用`,value:1}),m(f,{label:`停用`,value:0})]),_:1},8,[`modelValue`]),m(_,{type:`primary`,onClick:B},{default:e(()=>[...u[12]||=[o(`查询`,-1)]]),_:1}),m(_,{onClick:V},{default:e(()=>[...u[13]||=[o(`重置`,-1)]]),_:1})]),p(`div`,x,[p(`div`,S,[u[15]||=p(`div`,{class:`flex items-center gap-3`},[p(`span`,{class:`font-medium text-gray-700`},`审批模板列表`)],-1),m(_,{type:`primary`,onClick:H},{default:e(()=>[...u[14]||=[o(`新增模板`,-1)]]),_:1})]),p(`div`,C,[c((n(),s(M,{data:E.value,style:{width:`100%`}},{default:e(()=>[m(v,{prop:`name`,label:`模板名称`,"min-width":`160`}),m(v,{label:`类型`,width:`100`,align:`center`},{default:e(({row:t})=>[m(T,{size:`small`},{default:e(()=>[o(a(L[t.type]||`-`),1)]),_:2},1024)]),_:1}),m(v,{label:`状态`,width:`90`,align:`center`},{default:e(({row:t})=>[m(T,{type:t.status===1?`success`:`info`,size:`small`},{default:e(()=>[o(a(t.status===1?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),m(v,{prop:`sort`,label:`排序`,width:`80`,align:`center`}),m(v,{label:`操作`,width:`160`,fixed:`right`,align:`center`},{default:e(({row:t})=>[m(_,{size:`small`,type:`primary`,text:``,onClick:e=>U(t)},{default:e(()=>[...u[16]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),m(_,{size:`small`,type:`danger`,text:``,onClick:e=>G(t)},{default:e(()=>[...u[17]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[ee,O.value]])]),p(`div`,w,[m(z,{"current-page":P.page,"onUpdate:currentPage":u[2]||=e=>P.page=e,"page-size":P.per_page,"onUpdate:pageSize":u[3]||=e=>P.per_page=e,total:D.value,"page-sizes":[10,20,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:K,onSizeChange:q},null,8,[`current-page`,`page-size`,`total`])])]),m($,{modelValue:k.value,"onUpdate:modelValue":u[11]||=e=>k.value=e,title:A.value,width:`600px`,"destroy-on-close":``},{footer:e(()=>[m(_,{onClick:u[10]||=e=>k.value=!1},{default:e(()=>[...u[18]||=[o(`取消`,-1)]]),_:1}),m(_,{type:`primary`,loading:j.value,onClick:W},{default:e(()=>[...u[19]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[m(Q,{ref_key:`formRef`,ref:F,model:I,rules:R,"label-width":`100px`},{default:e(()=>[m(Y,{label:`模板名称`,prop:`name`},{default:e(()=>[m(J,{modelValue:I.name,"onUpdate:modelValue":u[4]||=e=>I.name=e,placeholder:`请输入模板名称`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`模板类型`,prop:`type`},{default:e(()=>[m(g,{modelValue:I.type,"onUpdate:modelValue":u[5]||=e=>I.type=e,placeholder:`请选择类型`,style:{width:`100%`}},{default:e(()=>[(n(),d(l,null,h(L,(e,t)=>m(f,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1}),m(Y,{label:`表单字段`},{default:e(()=>[m(J,{modelValue:I.form_fields,"onUpdate:modelValue":u[6]||=e=>I.form_fields=e,type:`textarea`,rows:4,placeholder:`JSON格式,如:[{"label":"天数","type":"number"}]`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`审批节点`},{default:e(()=>[m(J,{modelValue:I.flow_nodes,"onUpdate:modelValue":u[7]||=e=>I.flow_nodes=e,type:`textarea`,rows:4,placeholder:`JSON格式,如:[{"name":"主管审批","role":"manager"}]`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`状态`},{default:e(()=>[m(X,{modelValue:I.status,"onUpdate:modelValue":u[8]||=e=>I.status=e,"active-value":1,"inactive-value":0,"active-text":`启用`,"inactive-text":`停用`},null,8,[`modelValue`])]),_:1}),m(Y,{label:`排序`},{default:e(()=>[m(Z,{modelValue:I.sort,"onUpdate:modelValue":u[9]||=e=>I.sort=e,min:0,max:9999,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}};export{T as default}; |