| 1 |
- import{$ as e,A as t,E as n,G as r,H as i,K as a,M as o,Q as s,R as c,T as l,V as u,W as d,X as f,g as p,i as m,it as h,k as g,ot as _,q as v,st as y,tt as b,ut as x,w as S,z as C}from"./vue-router-DiegbtGD.js";import{a as w,n as T,t as E}from"./AppLayout-r9BI5ihT.js";var D={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`more`,theme:`outlined`};function O(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){k(e,t,n[t])})}return e}function k(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var A=function(e,t){return a(o,O({},O({},e,t.attrs),{icon:D}),null)};A.displayName=`MoreOutlined`,A.inheritAttrs=!1;var j=T(v({__name:`Rooms`,setup(o){let v=m(),T=_([]),D=_(!1),O=_(!1),k=_(null),j=_({name:``,floor_id:1,room_number:``,orientation:``,description:``}),M=async()=>{try{let e=await p.getAllRooms();e.success&&(T.value=e.data||[])}catch{g.error(`加载房间列表失败`)}},N=e=>v.push(`/room/${e}`),P=()=>{k.value=null,j.value={name:``,floor_id:1,room_number:``,orientation:``,description:``},D.value=!0},F=e=>{k.value=e,j.value={name:e.name,floor_id:e.floor_id||1,room_number:e.room_number||``,orientation:e.orientation||``,description:e.description||``},D.value=!0},I=async()=>{if(!j.value.name){g.warning(`请输入房间名称`);return}O.value=!0;try{k.value?(await p.updateRoom(String(k.value.id),j.value),g.success(`房间已更新`)):(await p.createRoom(j.value),g.success(`房间已创建`)),D.value=!1,M()}catch(e){g.error(`保存失败: `+(e.message||`未知错误`))}finally{O.value=!1}},L=e=>{n.confirm({title:`确定删除此房间?`,content:`删除后房间内的设备绑定关系也将解除。`,async onOk(){try{await p.deleteRoom(String(e)),g.success(`房间已删除`),M()}catch{g.error(`删除失败`)}}})};return f(()=>M()),(n,o)=>{let f=b(`a-button`),p=b(`a-menu-item`),m=b(`a-menu`),g=b(`a-dropdown`),_=b(`a-tag`),v=b(`a-space`),M=b(`a-card`),R=b(`a-col`),z=b(`a-row`),B=b(`a-input`),V=b(`a-form-item`),H=b(`a-input-number`),U=b(`a-select-option`),W=b(`a-select`),G=b(`a-textarea`),K=b(`a-form`),q=b(`a-modal`);return s(),i(E,null,{default:h(()=>[u(`div`,null,[a(M,{title:`房间管理`},{extra:h(()=>[a(f,{type:`primary`,onClick:P},{icon:h(()=>[a(y(t))]),default:h(()=>[o[7]||=r(`添加房间 `,-1)]),_:1})]),default:h(()=>[a(z,{gutter:[16,16]},{default:h(()=>[(s(!0),d(C,null,e(T.value,e=>(s(),i(R,{key:e.id,xs:24,sm:12,md:8,lg:6},{default:h(()=>[a(M,{hoverable:``,onClick:t=>N(e.id),class:`room-card`},{title:h(()=>[a(y(w)),r(` `+x(e.name),1)]),extra:h(()=>[a(g,null,{overlay:h(()=>[a(m,null,{default:h(()=>[a(p,{onClick:c(t=>F(e),[`stop`])},{default:h(()=>[a(y(S)),o[8]||=r(` 编辑`,-1)]),_:1},8,[`onClick`]),a(p,{danger:``,onClick:c(t=>L(e.id),[`stop`])},{default:h(()=>[a(y(l)),o[9]||=r(` 删除`,-1)]),_:1},8,[`onClick`])]),_:2},1024)]),default:h(()=>[a(f,{type:`text`,size:`small`,onClick:o[0]||=c(()=>{},[`stop`])},{default:h(()=>[a(y(A))]),_:1})]),_:2},1024)]),default:h(()=>[a(v,{direction:`vertical`,style:{width:`100%`}},{default:h(()=>[u(`div`,null,`楼层: `+x(e.floor_id||`-`),1),u(`div`,null,`房间号: `+x(e.room_number||`-`),1),u(`div`,null,`朝向: `+x(e.orientation||`-`),1),u(`div`,null,[a(_,{color:`green`},{default:h(()=>[r(x(e.online_devices||0)+` 在线`,1)]),_:2},1024),a(_,null,{default:h(()=>[r(x(e.total_devices||0)+` 设备`,1)]),_:2},1024)])]),_:2},1024)]),_:2},1032,[`onClick`])]),_:2},1024))),128))]),_:1})]),_:1}),a(q,{open:D.value,"onUpdate:open":o[6]||=e=>D.value=e,title:k.value?`编辑房间`:`添加房间`,onOk:I,"confirm-loading":O.value},{default:h(()=>[a(K,{model:j.value,layout:`vertical`},{default:h(()=>[a(V,{label:`房间名称`,required:``},{default:h(()=>[a(B,{value:j.value.name,"onUpdate:value":o[1]||=e=>j.value.name=e,placeholder:`请输入房间名称`},null,8,[`value`])]),_:1}),a(V,{label:`楼层`},{default:h(()=>[a(H,{value:j.value.floor_id,"onUpdate:value":o[2]||=e=>j.value.floor_id=e,min:1,style:{width:`100%`}},null,8,[`value`])]),_:1}),a(V,{label:`房间号`},{default:h(()=>[a(B,{value:j.value.room_number,"onUpdate:value":o[3]||=e=>j.value.room_number=e},null,8,[`value`])]),_:1}),a(V,{label:`朝向`},{default:h(()=>[a(W,{value:j.value.orientation,"onUpdate:value":o[4]||=e=>j.value.orientation=e,placeholder:`选择朝向`,"allow-clear":``},{default:h(()=>[a(U,{value:`east`},{default:h(()=>[...o[10]||=[r(`东`,-1)]]),_:1}),a(U,{value:`south`},{default:h(()=>[...o[11]||=[r(`南`,-1)]]),_:1}),a(U,{value:`west`},{default:h(()=>[...o[12]||=[r(`西`,-1)]]),_:1}),a(U,{value:`north`},{default:h(()=>[...o[13]||=[r(`北`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1}),a(V,{label:`描述`},{default:h(()=>[a(G,{value:j.value.description,"onUpdate:value":o[5]||=e=>j.value.description=e,rows:3},null,8,[`value`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`open`,`title`,`confirm-loading`])])]),_:1})}}}),[[`__scopeId`,`data-v-0e67cf9c`]]);export{j as default};
|