Files
yuezi-saas/frontend/dist/assets/payments-DAOgHJLR.js
T

1 line
6.6 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-Mgun2LFs.js";import"./request-DG5cMCYw.js";import{o as v}from"./finance-Cw6lAEm1.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:`text-green-600 font-semibold`},T={key:1,class:`text-gray-400 text-sm`},E={class:`px-5 py-3 border-t border-gray-50`},D={__name:`index`,setup(D){let O=u([]),k=u(0),A=u(!1),j=u(!1),M=u(!1),N=f({status:``,date_from:``,date_to:``}),P=f({page:1,per_page:20}),F=u(null),I=f({customer_id:``,customer_name:``,contract_id:``,amount:0,payment_method:``,remark:``}),L={customer_name:[{required:!0,message:`请输入客户姓名`,trigger:`blur`}],amount:[{required:!0,message:`请输入金额`,trigger:`blur`}],payment_method:[{required:!0,message:`请选择付款方式`,trigger:`change`}]},R={pending:`待确认`,confirmed:`已确认`},z={pending:`warning`,confirmed:`success`},B={cash:`现金`,card:`刷卡`,wechat:`微信`,alipay:`支付宝`,transfer:`银行转账`};async function V(){A.value=!0;try{let e=await v.getList({...N,...P});O.value=e.data?.list||e.data?.data||[],k.value=e.data?.total||0}catch{_.error(`获取付款列表失败`)}finally{A.value=!1}}function H(){P.page=1,V()}function U(){Object.assign(N,{status:``,date_from:``,date_to:``}),H()}function W(){Object.assign(I,{customer_id:``,customer_name:``,contract_id:``,amount:0,payment_method:``,remark:``}),j.value=!0}async function G(){F.value&&await F.value.validate(async e=>{if(e){M.value=!0;try{await v.create({...I,type:`payment`}),_.success(`创建成功`),j.value=!1,V()}catch{_.error(`创建失败`)}finally{M.value=!1}}})}async function K(e){await g.confirm(`确认收款「¥${e.amount}」吗?`,`确认收款`,{type:`warning`});try{await v.audit(e.id,{}),_.success(`确认成功`),V()}catch{_.error(`确认失败`)}}function q(e){P.page=e,V()}function J(e){P.per_page=e,P.page=1,V()}return r(()=>V()),(r,u)=>{let f=i(`el-option`),g=i(`el-select`),_=i(`el-date-picker`),v=i(`el-button`),D=i(`el-table-column`),V=i(`el-tag`),Y=i(`el-table`),X=i(`el-pagination`),Z=i(`el-input`),Q=i(`el-form-item`),$=i(`el-input-number`),ee=i(`el-form`),te=i(`el-dialog`),ne=t(`loading`);return n(),d(`div`,y,[p(`div`,b,[m(g,{modelValue:N.status,"onUpdate:modelValue":u[0]||=e=>N.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[(n(),d(l,null,h(R,(e,t)=>m(f,{key:t,label:e,value:t},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),m(_,{modelValue:N.date_from,"onUpdate:modelValue":u[1]||=e=>N.date_from=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`开始日期`,style:{width:`150px`}},null,8,[`modelValue`]),m(_,{modelValue:N.date_to,"onUpdate:modelValue":u[2]||=e=>N.date_to=e,type:`date`,"value-format":`YYYY-MM-DD`,placeholder:`结束日期`,style:{width:`150px`}},null,8,[`modelValue`]),m(v,{type:`primary`,onClick:H},{default:e(()=>[...u[12]||=[o(`查询`,-1)]]),_:1}),m(v,{onClick:U},{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:`w-1 h-5 bg-rose-500 rounded-full inline-block`}),p(`span`,{class:`font-medium text-gray-700`},`付款记录列表`)],-1),m(v,{type:`primary`,onClick:W},{default:e(()=>[...u[14]||=[o(`新建收款记录`,-1)]]),_:1})]),p(`div`,C,[c((n(),s(Y,{data:O.value,style:{width:`100%`},stripe:``},{default:e(()=>[m(D,{prop:`id`,label:`ID`,width:`70`,align:`center`}),m(D,{prop:`customer_name`,label:`客户`,"min-width":`110`}),m(D,{prop:`contract_id`,label:`合同ID`,width:`90`,align:`center`}),m(D,{label:`金额`,width:`120`,align:`right`},{default:e(({row:e})=>[p(`span`,w,`¥`+a(Number(e.amount||0).toFixed(2)),1)]),_:1}),m(D,{label:`付款方式`,width:`110`,align:`center`},{default:e(({row:e})=>[o(a(B[e.payment_method]||e.payment_method||`-`),1)]),_:1}),m(D,{label:`状态`,width:`100`,align:`center`},{default:e(({row:t})=>[m(V,{type:z[t.status],size:`small`},{default:e(()=>[o(a(R[t.status]||t.status),1)]),_:2},1032,[`type`])]),_:1}),m(D,{prop:`remark`,label:`备注`,"min-width":`120`,"show-overflow-tooltip":``}),m(D,{prop:`created_at`,label:`创建时间`,"min-width":`160`}),m(D,{label:`操作`,width:`100`,fixed:`right`,align:`center`},{default:e(({row:t})=>[t.status===`pending`?(n(),s(v,{key:0,size:`small`,type:`success`,text:``,onClick:e=>K(t)},{default:e(()=>[...u[16]||=[o(`确认收款`,-1)]]),_:1},8,[`onClick`])):(n(),d(`span`,T,`-`))]),_:1})]),_:1},8,[`data`])),[[ne,A.value]])]),p(`div`,E,[m(X,{"current-page":P.page,"onUpdate:currentPage":u[3]||=e=>P.page=e,"page-size":P.per_page,"onUpdate:pageSize":u[4]||=e=>P.per_page=e,total:k.value,"page-sizes":[10,20,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:q,onSizeChange:J},null,8,[`current-page`,`page-size`,`total`])])]),m(te,{modelValue:j.value,"onUpdate:modelValue":u[11]||=e=>j.value=e,title:`新建收款记录`,width:`520px`,"destroy-on-close":``},{footer:e(()=>[m(v,{onClick:u[10]||=e=>j.value=!1},{default:e(()=>[...u[17]||=[o(`取消`,-1)]]),_:1}),m(v,{type:`primary`,loading:M.value,onClick:G},{default:e(()=>[...u[18]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[m(ee,{ref_key:`formRef`,ref:F,model:I,rules:L,"label-width":`90px`},{default:e(()=>[m(Q,{label:`客户姓名`,prop:`customer_name`},{default:e(()=>[m(Z,{modelValue:I.customer_name,"onUpdate:modelValue":u[5]||=e=>I.customer_name=e,placeholder:`请输入客户姓名`},null,8,[`modelValue`])]),_:1}),m(Q,{label:`合同ID`},{default:e(()=>[m(Z,{modelValue:I.contract_id,"onUpdate:modelValue":u[6]||=e=>I.contract_id=e,placeholder:`关联合同ID(可选)`},null,8,[`modelValue`])]),_:1}),m(Q,{label:`金额`,prop:`amount`},{default:e(()=>[m($,{modelValue:I.amount,"onUpdate:modelValue":u[7]||=e=>I.amount=e,min:.01,precision:2,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),m(Q,{label:`付款方式`,prop:`payment_method`},{default:e(()=>[m(g,{modelValue:I.payment_method,"onUpdate:modelValue":u[8]||=e=>I.payment_method=e,placeholder:`选择付款方式`,style:{width:`100%`}},{default:e(()=>[(n(),d(l,null,h(B,(e,t)=>m(f,{key:t,label:e,value:t},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1}),m(Q,{label:`备注`},{default:e(()=>[m(Z,{modelValue:I.remark,"onUpdate:modelValue":u[9]||=e=>I.remark=e,type:`textarea`,rows:3},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`])])}}};export{D as default};