1 line
10 KiB
JavaScript
1 line
10 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,f as ee,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{l as g,o as _,s as v}from"./index-DK5nh4op.js";import"./request-BcX6wdRT.js";import{i as y,r as b}from"./crm-D8MwtJCV.js";var x={class:`p-6 space-y-4`},S={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},te={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},ne={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},re={class:`px-2`},C={class:`px-5 py-3 border-t border-gray-50`},w={__name:`index`,setup(w){let T=u([]),E=u(0),D=u(!1),O=u(!1),k=u(`新增合同`),A=u(!1),j=u(!1),M=u(null),N=u([]),P=f({contract_no:``,customer_id:``,status:``}),F=f({page:1,per_page:20}),I=u(null),L=f({id:null,customer_id:``,contract_no:``,package_name:``,total_amount:0,discount_amount:0,actual_amount:0,days:``,check_in_date:``,check_out_date:``,remark:``}),R=u(!1),ie={customer_id:[{required:!0,message:`请选择客户`,trigger:`change`}],contract_no:[{required:!0,message:`请输入合同编号`,trigger:`blur`}],total_amount:[{required:!0,message:`请输入总金额`,trigger:`blur`}],actual_amount:[{required:!0,message:`请输入实付金额`,trigger:`blur`}]},z=f({status:1,audit_remark:``}),B={0:`待审核`,1:`已通过`,2:`无效`,3:`已退`},V={0:`warning`,1:`success`,2:`danger`,3:`info`};async function H(){D.value=!0;try{let e=await b.getList({...P,...F});T.value=e.data?.list||e.data?.data||[],E.value=e.data?.total||0}finally{D.value=!1}}async function U(){try{let e=await y.getList({per_page:500});N.value=e.data?.list||e.data?.data||[]}catch{}}function W(){F.page=1,H()}function G(){Object.assign(P,{contract_no:``,customer_id:``,status:``}),W()}function K(){R.value=!1,k.value=`新增合同`,Object.assign(L,{id:null,customer_id:``,contract_no:``,package_name:``,total_amount:0,discount_amount:0,actual_amount:0,days:``,check_in_date:``,check_out_date:``,remark:``}),O.value=!0}async function q(e){if(e.status!==0){v.warning(`只能编辑待审核合同`);return}R.value=!0,k.value=`编辑合同`;let t=(await b.getDetail(e.id)).data;Object.assign(L,{id:t.id,customer_id:t.customer_id,contract_no:t.contract_no,package_name:t.package_name||``,total_amount:t.total_amount,discount_amount:t.discount_amount,actual_amount:t.actual_amount,days:t.days||``,check_in_date:t.check_in_date||``,check_out_date:t.check_out_date||``,remark:t.remark||``}),O.value=!0}async function J(){I.value&&await I.value.validate(async e=>{if(e){A.value=!0;try{R.value?(await b.update(L.id,L),v.success(`更新成功`)):(await b.create(L),v.success(`创建成功`)),O.value=!1,H()}finally{A.value=!1}}})}async function ae(e){if(e.status!==0){v.warning(`只能删除待审核合同`);return}await _.confirm(`确定删除该合同吗?`,`删除确认`,{type:`warning`}),await b.delete(e.id),v.success(`删除成功`),H()}function oe(e){M.value=e,Object.assign(z,{status:1,audit_remark:``}),j.value=!0}async function se(){await b.audit(M.value.id,z),v.success(`审核完成`),j.value=!1,H()}function ce(e){F.page=e,H()}function le(e){F.per_page=e,F.page=1,H()}return r(()=>{H(),U()}),(r,u)=>{let f=i(`el-input`),_=i(`el-option`),v=i(`el-select`),y=i(`el-button`),b=i(`el-table-column`),w=i(`el-tag`),M=i(`el-table`),R=i(`el-pagination`),H=i(`el-form-item`),U=i(`el-col`),Y=i(`el-input-number`),X=i(`el-date-picker`),ue=i(`el-row`),Z=i(`el-form`),Q=i(`el-dialog`),$=i(`el-radio`),de=i(`el-radio-group`),fe=t(`loading`);return n(),d(`div`,x,[p(`div`,S,[m(f,{modelValue:P.contract_no,"onUpdate:modelValue":u[0]||=e=>P.contract_no=e,placeholder:`合同编号`,style:{width:`180px`},clearable:``,onKeydown:g(W,[`enter`])},null,8,[`modelValue`]),m(v,{modelValue:P.customer_id,"onUpdate:modelValue":u[1]||=e=>P.customer_id=e,placeholder:`选择客户`,clearable:``,filterable:``,style:{width:`180px`}},{default:e(()=>[(n(!0),d(l,null,h(N.value,e=>(n(),s(_,{key:e.id,label:`${e.name} (${e.phone})`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),m(v,{modelValue:P.status,"onUpdate:modelValue":u[2]||=e=>P.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[(n(),d(l,null,h(B,(e,t)=>m(_,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),m(y,{type:`primary`,onClick:W},{default:e(()=>[...u[21]||=[o(`查询`,-1)]]),_:1}),m(y,{onClick:G},{default:e(()=>[...u[22]||=[o(`重置`,-1)]]),_:1})]),p(`div`,te,[p(`div`,ne,[u[24]||=p(`div`,{class:`flex items-center gap-3`},[p(`span`,{class:`font-medium text-gray-700`},`合同列表`)],-1),m(y,{type:`primary`,onClick:K},{default:e(()=>[...u[23]||=[o(`新增合同`,-1)]]),_:1})]),p(`div`,re,[c((n(),s(M,{data:T.value,style:{width:`100%`}},{default:e(()=>[m(b,{prop:`contract_no`,label:`合同编号`,"min-width":`150`}),m(b,{label:`客户`,"min-width":`100`},{default:e(({row:e})=>[o(a(e.customer?.name||`-`),1)]),_:1}),m(b,{prop:`package_name`,label:`套餐`,"min-width":`120`}),m(b,{prop:`actual_amount`,label:`实付金额`,"min-width":`110`,align:`right`}),m(b,{prop:`days`,label:`天数`,width:`70`,align:`center`}),m(b,{prop:`check_in_date`,label:`入住日期`,"min-width":`110`}),m(b,{label:`状态`,width:`100`,align:`center`},{default:e(({row:t})=>[m(w,{type:V[t.status],size:`small`},{default:e(()=>[o(a(B[t.status]),1)]),_:2},1032,[`type`])]),_:1}),m(b,{label:`操作`,width:`200`,fixed:`right`,align:`center`},{default:e(({row:t})=>[t.status===0?(n(),s(y,{key:0,size:`small`,type:`success`,text:``,onClick:e=>oe(t)},{default:e(()=>[...u[25]||=[o(`审核`,-1)]]),_:1},8,[`onClick`])):ee(``,!0),m(y,{size:`small`,type:`primary`,text:``,onClick:e=>q(t)},{default:e(()=>[...u[26]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),m(y,{size:`small`,type:`danger`,text:``,onClick:e=>ae(t)},{default:e(()=>[...u[27]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[fe,D.value]])]),p(`div`,C,[m(R,{"current-page":F.page,"onUpdate:currentPage":u[3]||=e=>F.page=e,"page-size":F.per_page,"onUpdate:pageSize":u[4]||=e=>F.per_page=e,total:E.value,"page-sizes":[10,20,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:ce,onSizeChange:le},null,8,[`current-page`,`page-size`,`total`])])]),m(Q,{modelValue:O.value,"onUpdate:modelValue":u[16]||=e=>O.value=e,title:k.value,width:`700px`,"destroy-on-close":``},{footer:e(()=>[m(y,{onClick:u[15]||=e=>O.value=!1},{default:e(()=>[...u[28]||=[o(`取消`,-1)]]),_:1}),m(y,{type:`primary`,loading:A.value,onClick:J},{default:e(()=>[...u[29]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[m(Z,{ref_key:`formRef`,ref:I,model:L,rules:ie,"label-width":`90px`},{default:e(()=>[m(ue,{gutter:16},{default:e(()=>[m(U,{span:12},{default:e(()=>[m(H,{label:`客户`,prop:`customer_id`},{default:e(()=>[m(v,{modelValue:L.customer_id,"onUpdate:modelValue":u[5]||=e=>L.customer_id=e,placeholder:`选择客户`,filterable:``,style:{width:`100%`}},{default:e(()=>[(n(!0),d(l,null,h(N.value,e=>(n(),s(_,{key:e.id,label:`${e.name} (${e.phone})`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:12},{default:e(()=>[m(H,{label:`合同编号`,prop:`contract_no`},{default:e(()=>[m(f,{modelValue:L.contract_no,"onUpdate:modelValue":u[6]||=e=>L.contract_no=e},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:12},{default:e(()=>[m(H,{label:`套餐名称`},{default:e(()=>[m(f,{modelValue:L.package_name,"onUpdate:modelValue":u[7]||=e=>L.package_name=e},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:12},{default:e(()=>[m(H,{label:`天数`},{default:e(()=>[m(Y,{modelValue:L.days,"onUpdate:modelValue":u[8]||=e=>L.days=e,min:1,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:8},{default:e(()=>[m(H,{label:`总金额`,prop:`total_amount`},{default:e(()=>[m(Y,{modelValue:L.total_amount,"onUpdate:modelValue":u[9]||=e=>L.total_amount=e,min:0,precision:2,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:8},{default:e(()=>[m(H,{label:`优惠金额`},{default:e(()=>[m(Y,{modelValue:L.discount_amount,"onUpdate:modelValue":u[10]||=e=>L.discount_amount=e,min:0,precision:2,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:8},{default:e(()=>[m(H,{label:`实付金额`,prop:`actual_amount`},{default:e(()=>[m(Y,{modelValue:L.actual_amount,"onUpdate:modelValue":u[11]||=e=>L.actual_amount=e,min:0,precision:2,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:12},{default:e(()=>[m(H,{label:`入住日期`},{default:e(()=>[m(X,{modelValue:L.check_in_date,"onUpdate:modelValue":u[12]||=e=>L.check_in_date=e,type:`date`,"value-format":`YYYY-MM-DD`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:12},{default:e(()=>[m(H,{label:`退房日期`},{default:e(()=>[m(X,{modelValue:L.check_out_date,"onUpdate:modelValue":u[13]||=e=>L.check_out_date=e,type:`date`,"value-format":`YYYY-MM-DD`,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),m(U,{span:24},{default:e(()=>[m(H,{label:`备注`},{default:e(()=>[m(f,{modelValue:L.remark,"onUpdate:modelValue":u[14]||=e=>L.remark=e,type:`textarea`,rows:2},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`]),m(Q,{modelValue:j.value,"onUpdate:modelValue":u[20]||=e=>j.value=e,title:`合同审核`,width:`450px`,"destroy-on-close":``},{footer:e(()=>[m(y,{onClick:u[19]||=e=>j.value=!1},{default:e(()=>[...u[32]||=[o(`取消`,-1)]]),_:1}),m(y,{type:`primary`,onClick:se},{default:e(()=>[...u[33]||=[o(`确定`,-1)]]),_:1})]),default:e(()=>[m(Z,{"label-width":`80px`},{default:e(()=>[m(H,{label:`审核结果`},{default:e(()=>[m(de,{modelValue:z.status,"onUpdate:modelValue":u[17]||=e=>z.status=e},{default:e(()=>[m($,{value:1},{default:e(()=>[...u[30]||=[o(`通过`,-1)]]),_:1}),m($,{value:2},{default:e(()=>[...u[31]||=[o(`驳回`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),m(H,{label:`审核备注`},{default:e(()=>[m(f,{modelValue:z.audit_remark,"onUpdate:modelValue":u[18]||=e=>z.audit_remark=e,type:`textarea`,rows:3},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}};export{w as default}; |