| 1 |
- import{A as e,G as t,H as n,K as r,Q as i,T as a,U as o,V as s,X as c,c as l,it as u,k as d,ot as f,q as p,st as m,tt as h,ut as g,w as _}from"./vue-router-DiegbtGD.js";import{t as v}from"./AppLayout-r9BI5ihT.js";var y=p({__name:`ClientAclList`,setup(p){let y=f(!1),b=f([]),x=f(!1),S=f(!1),C=f(null),w=f({clientid:``,username:``,topic:``,action:`pubsub`,permission:`allow`}),T=[{title:`ID`,dataIndex:`id`,key:`id`,width:60},{title:`客户端ID`,dataIndex:`clientid`,key:`clientid`,ellipsis:!0},{title:`用户名`,dataIndex:`username`,key:`username`,ellipsis:!0},{title:`主题`,dataIndex:`topic`,key:`topic`,ellipsis:!0},{title:`操作`,key:`action`,width:120},{title:`权限`,key:`permission`,width:100},{title:`操作`,key:`actions`,width:150}],E=e=>({publish:`发布`,subscribe:`订阅`,pubsub:`订阅和发布`})[e]||`未知`,D=e=>e===`allow`?`green`:`red`,O=async()=>{y.value=!0;try{let e=await l.getClientAcls();e.success&&(b.value=e.data||[])}catch{d.error(`加载授权列表失败`)}finally{y.value=!1}},k=()=>{C.value=null,w.value={clientid:``,username:``,topic:``,action:`pubsub`,permission:`allow`},x.value=!0},A=e=>{C.value=e,w.value={clientid:e.clientid||``,username:e.username||``,topic:e.topic,action:e.action||`pubsub`,permission:e.permission||`allow`},x.value=!0},j=async()=>{if(!w.value.topic){d.warning(`请填写主题模式`);return}S.value=!0;try{C.value?(await l.updateClientAcl(String(C.value.id),w.value),d.success(`授权信息已更新`)):(await l.createClientAcl(w.value),d.success(`授权信息已创建`)),x.value=!1,O()}catch(e){d.error(`保存失败: `+(e.message||`未知错误`))}finally{S.value=!1}},M=async e=>{try{await l.deleteClientAcl(String(e)),d.success(`已删除`),O()}catch{d.error(`删除失败`)}};return c(()=>O()),(c,l)=>{let d=h(`a-button`),f=h(`a-tag`),p=h(`a-popconfirm`),O=h(`a-space`),N=h(`a-table`),P=h(`a-card`),F=h(`a-input`),I=h(`a-form-item`),L=h(`a-select-option`),R=h(`a-select`),z=h(`a-form`),B=h(`a-modal`);return i(),n(v,null,{default:u(()=>[s(`div`,null,[r(P,{title:`客户端授权(ACL)管理`},{extra:u(()=>[r(d,{type:`primary`,onClick:k},{icon:u(()=>[r(m(e))]),default:u(()=>[l[6]||=t(`添加授权 `,-1)]),_:1})]),default:u(()=>[r(N,{dataSource:b.value,columns:T,loading:y.value,"row-key":`id`,size:`small`},{bodyCell:u(({column:e,record:s})=>[e.key===`action`?(i(),n(f,{key:0,color:`blue`},{default:u(()=>[t(g(E(s.action)),1)]),_:2},1024)):o(``,!0),e.key===`permission`?(i(),n(f,{key:1,color:D(s.permission)},{default:u(()=>[t(g(s.permission===`allow`?`允许`:`拒绝`),1)]),_:2},1032,[`color`])):o(``,!0),e.key===`actions`?(i(),n(O,{key:2},{default:u(()=>[r(d,{type:`link`,size:`small`,onClick:e=>A(s)},{default:u(()=>[r(m(_)),l[7]||=t(`编辑`,-1)]),_:1},8,[`onClick`]),r(p,{title:`确定删除?`,onConfirm:e=>M(s.id)},{default:u(()=>[r(d,{type:`link`,size:`small`,danger:``},{default:u(()=>[r(m(a))]),_:1})]),_:1},8,[`onConfirm`])]),_:2},1024)):o(``,!0)]),_:1},8,[`dataSource`,`loading`])]),_:1}),r(B,{open:x.value,"onUpdate:open":l[5]||=e=>x.value=e,title:C.value?`编辑授权`:`添加授权`,onOk:j,"confirm-loading":S.value},{default:u(()=>[r(z,{model:w.value,layout:`vertical`},{default:u(()=>[r(I,{label:`客户端ID`},{default:u(()=>[r(F,{value:w.value.clientid,"onUpdate:value":l[0]||=e=>w.value.clientid=e,disabled:!!C.value},null,8,[`value`,`disabled`])]),_:1}),r(I,{label:`用户名`},{default:u(()=>[r(F,{value:w.value.username,"onUpdate:value":l[1]||=e=>w.value.username=e},null,8,[`value`])]),_:1}),r(I,{label:`主题模式`,required:``},{default:u(()=>[r(F,{value:w.value.topic,"onUpdate:value":l[2]||=e=>w.value.topic=e,placeholder:`例如: device/%u/+/status`},null,8,[`value`])]),_:1}),r(I,{label:`操作类型`,required:``},{default:u(()=>[r(R,{value:w.value.action,"onUpdate:value":l[3]||=e=>w.value.action=e},{default:u(()=>[r(L,{value:`subscribe`},{default:u(()=>[...l[8]||=[t(`订阅`,-1)]]),_:1}),r(L,{value:`publish`},{default:u(()=>[...l[9]||=[t(`发布`,-1)]]),_:1}),r(L,{value:`pubsub`},{default:u(()=>[...l[10]||=[t(`订阅和发布`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1}),r(I,{label:`权限`,required:``},{default:u(()=>[r(R,{value:w.value.permission,"onUpdate:value":l[4]||=e=>w.value.permission=e},{default:u(()=>[r(L,{value:`allow`},{default:u(()=>[...l[11]||=[t(`允许`,-1)]]),_:1}),r(L,{value:`deny`},{default:u(()=>[...l[12]||=[t(`拒绝`,-1)]]),_:1})]),_:1},8,[`value`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`open`,`title`,`confirm-loading`])])]),_:1})}}});export{y as default};
|