2 lines
4.2 KiB
JavaScript
2 lines
4.2 KiB
JavaScript
var v=(w,y,a)=>new Promise((m,h)=>{var c=o=>{try{l(a.next(o))}catch(f){h(f)}},g=o=>{try{l(a.throw(o))}catch(f){h(f)}},l=o=>o.done?m(o.value):Promise.resolve(o.value).then(c,g);l((a=a.apply(w,y)).next())});import{a as F}from"./index-CFun89a0.js";import{g as J,r as q}from"./index-CVM93Ie1.js";import{_ as G}from"./device-select-modal.vue_vue_type_script_setup_true_lang-CGf3GDd7.js";import{_ as H}from"./AreaTree.vue_vue_type_script_setup_true_lang-DkFO7Ekq.js";import K from"./device-card-DUOxPj30.js";import Q from"./device-detail-drawer-kWdfwcbV.js";import{c1 as k,au as b,S as W,ay as N,bE as V,c0 as L,a9 as M,c6 as X,ac as Y}from"./bootstrap-D7yvUSkm.js";import{m as Z,b9 as u,ad as x,b2 as d,j as s,bJ as n,u as t,ae as C,ab as _,ac as R,bp as T,ai as E,I as ee,bb as te}from"../jse/index-index-BAlyf32H.js";import{u as ae}from"./use-modal-CIPEfvn4.js";import{u as se}from"./use-drawer-CWn_8guH.js";import"./vxe-table-B6xkb-Em.js";import"./dict-tag.vue_vue_type_script_setup_true_lang-B4-NPqix.js";import"./data-DwDO8iXi.js";import"./index-DbMv5F6Z.js";import"./use-vxe-grid-DxdOmjKl.js";import"./index-BIjDa1nf.js";import"./index-Bzv5Y3Lm.js";import"./use-echarts-DrKKJR56.js";import"./code-editor.vue_vue_type_script_setup_true_lang-DUlprS9C.js";import"./x-CIB7fInP.js";const ne={class:"area-device-page"},ie={class:"content-header mb-3"},oe={class:"content-header__left"},ce={class:"content-title"},le={key:0,class:"content-subtitle"},re=Z({name:"OpsAreaDevice",__name:"index",setup(w){const y=u(),a=u(null),m=u("");function h(e){var i;e&&e.id!==null&&e.id!==void 0?(a.value=e,m.value=((i=y.value)==null?void 0:i.getAreaPath(e.id))||e.areaName,o(e.id)):(a.value=null,m.value="",c.value=[])}const c=u([]),g=u({}),l=u(!1);function o(e){return v(this,null,function*(){l.value=!0;try{c.value=yield J(e),f()}catch(i){c.value=[]}finally{l.value=!1}})}function f(){return v(this,null,function*(){const e=[...c.value],i=5;for(let r=0;r<e.length;r+=i){const U=e.slice(r,r+i);(yield Promise.allSettled(U.map(p=>v(null,null,function*(){var I;const z=yield F(p.deviceId);g.value[p.deviceId]=(I=z.state)!=null?I:-1})))).forEach(p=>{p.status==="rejected"&&console.error("[fetchDeviceStates] 获取设备状态失败:",p.reason)})}})}function D(){var e;(e=a.value)!=null&&e.id&&o(a.value.id)}const[P,S]=ae({connectedComponent:G});function A(){var e;if(!((e=a.value)!=null&&e.id)){M.warning("请先选择一个区域");return}S.setData({areaId:a.value.id}),S.open()}const[$,B]=se({connectedComponent:Q});function j(e){B.setData(e),B.open()}function O(e){e.id&&X.confirm({title:"确认解除绑定",content:`确定要解除设备「${e.nickname||e.deviceName||""}」的绑定吗?`,okText:"确定",cancelText:"取消",okButtonProps:{danger:!0},onOk(){return v(this,null,function*(){yield q(e.id),M.success("已解除绑定"),D()})}})}return(e,i)=>(d(),x("div",ne,[s(t(L),{gutter:12,class:"layout-row"},{default:n(()=>[s(t(k),{xs:24,sm:24,md:6,lg:5,xl:4,class:"tree-col"},{default:n(()=>[s(t(b),{class:"tree-card",title:"业务区域"},{default:n(()=>[s(H,{ref_key:"areaTreeRef",ref:y,onSelect:h},null,512)]),_:1})]),_:1}),s(t(k),{xs:24,sm:24,md:18,lg:19,xl:20},{default:n(()=>[s(t(W),{spinning:l.value},{default:n(()=>[C("div",ie,[C("div",oe,[C("span",ce,T(m.value||"请选择区域"),1),a.value?(d(),x("span",le," - 区域设备 ("+T(c.value.length)+") ",1)):R("",!0)]),a.value?(d(),_(t(N),{key:0,type:"primary",onClick:A},{default:n(()=>[...i[0]||(i[0]=[E(" + 添加设备 ",-1)])]),_:1})):R("",!0)]),a.value?c.value.length===0&&!l.value?(d(),_(t(b),{key:1,class:"empty-card"},{default:n(()=>[s(t(V),{description:"该区域暂无绑定设备"},{default:n(()=>[s(t(N),{type:"primary",onClick:A},{default:n(()=>[...i[1]||(i[1]=[E(" 添加设备 ",-1)])]),_:1})]),_:1})]),_:1})):(d(),_(t(L),{key:2,gutter:[12,12]},{default:n(()=>[(d(!0),x(ee,null,te(c.value,r=>(d(),_(t(k),{key:r.id,xs:24,sm:12,md:12,lg:8,xl:6},{default:n(()=>[s(K,{relation:r,"device-state":g.value[r.deviceId],onClick:j,onUnbind:O},null,8,["relation","device-state"])]),_:2},1024))),128))]),_:1})):(d(),_(t(b),{key:0,class:"empty-card"},{default:n(()=>[s(t(V),{description:"请在左侧选择一个区域以查看设备"})]),_:1}))]),_:1},8,["spinning"])]),_:1})]),_:1}),s(t(P),{onSuccess:D}),s(t($),{onSuccess:D})]))}}),Le=Y(re,[["__scopeId","data-v-0d7cead9"]]);export{Le as default};
|