Files
yuezi-saas/frontend/dist/assets/rooms-r10LmL0K.js
T

1 line
6.5 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-ZRE77JpD.js";import"./request-C_vMs8Bs.js";import{a as v,i as y}from"./room-DSHyULwI.js";var b={class:`p-6 space-y-4`},x={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},ee={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(!1),j=u([]),M=f({room_type_id:``,floor:``,status:``}),N=f({page:1,per_page:50}),P=u(null),F=f({id:null,room_type_id:``,floor:``,number:``,sort:0}),I=u(!1),L={room_type_id:[{required:!0,message:`请选择房型`,trigger:`change`}],number:[{required:!0,message:`请输入房间号`,trigger:`blur`}]},R={1:`空房`,2:`已预定`,3:`入住`,4:`维修`,5:`清洁`},z={1:`success`,2:`warning`,3:`primary`,4:`danger`,5:`info`};async function B(){O.value=!0;try{let e=await y.getList({...M,...N});E.value=e.data?.list||e.data?.data||[],D.value=e.data?.total||0}finally{O.value=!1}}async function V(){try{let e=await v.getList({per_page:100});j.value=e.data?.list||e.data?.data||[]}catch{}}function H(){N.page=1,B()}function U(){Object.assign(M,{room_type_id:``,floor:``,status:``}),H()}function W(){I.value=!1,Object.assign(F,{id:null,room_type_id:``,floor:``,number:``,sort:0}),k.value=!0}async function G(e){I.value=!0,Object.assign(F,{id:e.id,room_type_id:e.room_type_id,floor:e.floor||``,number:e.number,sort:e.sort}),k.value=!0}async function K(){P.value&&await P.value.validate(async e=>{if(e){A.value=!0;try{I.value?await y.update(F.id,F):await y.create(F),_.success(I.value?`更新成功`:`创建成功`),k.value=!1,B()}finally{A.value=!1}}})}async function q(e){if(e.status===3){_.warning(`入住中的房间无法删除`);return}await g.confirm(`确定删除房间「${e.number}」吗?`,`删除确认`,{type:`warning`}),await y.delete(e.id),_.success(`删除成功`),B()}async function J(e,t){await y.updateStatus(e.id,{status:t}),_.success(`状态更新成功`),B()}function Y(e){N.page=e,B()}function X(e){N.per_page=e,N.page=1,B()}return r(()=>{B(),V()}),(r,u)=>{let f=i(`el-option`),g=i(`el-select`),_=i(`el-input`),v=i(`el-button`),y=i(`el-table-column`),T=i(`el-tag`),B=i(`el-dropdown-item`),V=i(`el-dropdown-menu`),Z=i(`el-dropdown`),Q=i(`el-table`),te=i(`el-pagination`),$=i(`el-form-item`),ne=i(`el-input-number`),re=i(`el-form`),ie=i(`el-dialog`),ae=t(`loading`);return n(),d(`div`,b,[p(`div`,x,[m(g,{modelValue:M.room_type_id,"onUpdate:modelValue":u[0]||=e=>M.room_type_id=e,placeholder:`房型`,clearable:``,style:{width:`160px`}},{default:e(()=>[(n(!0),d(l,null,h(j.value,e=>(n(),s(f,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),m(_,{modelValue:M.floor,"onUpdate:modelValue":u[1]||=e=>M.floor=e,placeholder:`楼层`,style:{width:`100px`},clearable:``},null,8,[`modelValue`]),m(g,{modelValue:M.status,"onUpdate:modelValue":u[2]||=e=>M.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[(n(),d(l,null,h(R,(e,t)=>m(f,{key:t,label:e,value:Number(t)},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),m(v,{type:`primary`,onClick:H},{default:e(()=>[...u[11]||=[o(`查询`,-1)]]),_:1}),m(v,{onClick:U},{default:e(()=>[...u[12]||=[o(`重置`,-1)]]),_:1})]),p(`div`,ee,[p(`div`,S,[u[14]||=p(`div`,{class:`flex items-center gap-3`},[p(`span`,{class:`font-medium text-gray-700`},`房间列表`)],-1),m(v,{type:`primary`,onClick:W},{default:e(()=>[...u[13]||=[o(`新增房间`,-1)]]),_:1})]),p(`div`,C,[c((n(),s(Q,{data:E.value,style:{width:`100%`}},{default:e(()=>[m(y,{prop:`number`,label:`房间号`,width:`100`}),m(y,{label:`房型`,"min-width":`120`},{default:e(({row:e})=>[o(a(e.room_type?.name||`-`),1)]),_:1}),m(y,{prop:`floor`,label:`楼层`,width:`80`,align:`center`}),m(y,{label:`状态`,width:`100`,align:`center`},{default:e(({row:t})=>[m(T,{type:z[t.status],size:`small`},{default:e(()=>[o(a(R[t.status]),1)]),_:2},1032,[`type`])]),_:1}),m(y,{label:`操作`,width:`300`,fixed:`right`,align:`center`},{default:e(({row:t})=>[m(v,{size:`small`,type:`primary`,text:``,onClick:e=>G(t)},{default:e(()=>[...u[15]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),m(Z,{trigger:`click`,onCommand:e=>J(t,e),style:{margin:`0 8px`}},{dropdown:e(()=>[m(V,null,{default:e(()=>[(n(),d(l,null,h(R,(n,r)=>m(B,{key:r,command:Number(r),disabled:t.status===Number(r)},{default:e(()=>[o(a(n),1)]),_:2},1032,[`command`,`disabled`])),64))]),_:2},1024)]),default:e(()=>[m(v,{size:`small`,type:`warning`,text:``},{default:e(()=>[...u[16]||=[o(`切换状态`,-1)]]),_:1})]),_:2},1032,[`onCommand`]),m(v,{size:`small`,type:`danger`,text:``,onClick:e=>q(t)},{default:e(()=>[...u[17]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[ae,O.value]])]),p(`div`,w,[m(te,{"current-page":N.page,"onUpdate:currentPage":u[3]||=e=>N.page=e,"page-size":N.per_page,"onUpdate:pageSize":u[4]||=e=>N.per_page=e,total:D.value,"page-sizes":[20,50,100],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:Y,onSizeChange:X},null,8,[`current-page`,`page-size`,`total`])])]),m(ie,{modelValue:k.value,"onUpdate:modelValue":u[10]||=e=>k.value=e,title:I.value?`编辑房间`:`新增房间`,width:`500px`,"destroy-on-close":``},{footer:e(()=>[m(v,{onClick:u[9]||=e=>k.value=!1},{default:e(()=>[...u[18]||=[o(`取消`,-1)]]),_:1}),m(v,{type:`primary`,loading:A.value,onClick:K},{default:e(()=>[...u[19]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[m(re,{ref_key:`formRef`,ref:P,model:F,rules:L,"label-width":`80px`},{default:e(()=>[m($,{label:`房型`,prop:`room_type_id`},{default:e(()=>[m(g,{modelValue:F.room_type_id,"onUpdate:modelValue":u[5]||=e=>F.room_type_id=e,style:{width:`100%`}},{default:e(()=>[(n(!0),d(l,null,h(j.value,e=>(n(),s(f,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),m($,{label:`房间号`,prop:`number`},{default:e(()=>[m(_,{modelValue:F.number,"onUpdate:modelValue":u[6]||=e=>F.number=e},null,8,[`modelValue`])]),_:1}),m($,{label:`楼层`},{default:e(()=>[m(_,{modelValue:F.floor,"onUpdate:modelValue":u[7]||=e=>F.floor=e},null,8,[`modelValue`])]),_:1}),m($,{label:`排序`},{default:e(()=>[m(ne,{modelValue:F.sort,"onUpdate:modelValue":u[8]||=e=>F.sort=e,min:0},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}};export{T as default};