import{D as e,E as t,On as n,_ as r,b as i,ct as a,g as o,gn as s,k as c,mt as l,o as u,qt as d,tr as f,v as p,vn as m,y as h}from"./runtime-core.esm-bundler-DkysjgTd.js";import{n as g}from"./objectWithoutProperties-BjoYlK0I.js";import{t as _}from"./use-access-hQ-ddCzg.js";import{t as v}from"./table-CW2r6lPL.js";import{n as y,t as b}from"./form-BzL91_Kw.js";import{t as x}from"./select-B6mbPqz1.js";import{O as S,T as C,_ as w,g as T,l as E,u as D,w as O}from"./console-P4IB8M9e.js";import{a as k}from"./config-provider-Dz5iOevd.js";import{t as A}from"./popconfirm-BszWx6e3.js";import{t as j}from"./button-BmeX6K_E.js";import{t as M}from"./checkbox-CxirtQf_.js";import{t as N}from"./tag-EV85tNJT.js";import{t as ee}from"./input-number-Of9scmoU.js";import{t as te}from"./modal-DmfLEG-j.js";import{t as P}from"./switch-CszVV22m.js";var F={class:`p-5`},I={class:`font-medium`},L={class:`text-xs text-gray-500`},R={class:`text-xs text-gray-500`},z={class:`text-xs text-gray-500`},B=c({__name:`desktop-accounts`,setup(c){let{hasAccessByCodes:B}=_(),V=o(()=>B([`desktop-account:write`])),H=m(!1),U=m([]),W=m([]),G=m(),K=m(!1),q=s({status:`active`,overrideBackup:!1,backup_enabled:!0,overrideInterval:!1,backup_interval_minutes:60,admin_user_ids:[]});function J(){return Y.apply(this,arguments)}function Y(){return Y=g(function*(){H.value=!0;try{let[e,t]=yield Promise.all([D(),V.value?T():Promise.resolve({users:[]})]);U.value=e.accounts,W.value=t.users.filter(e=>e.active)}finally{H.value=!1}}),Y.apply(this,arguments)}function X(e){return Z.apply(this,arguments)}function Z(){return Z=g(function*(e){var t,n;G.value=e;let r=V.value?yield E(e.id):{admin_user_ids:[]};Object.assign(q,{status:e.status,overrideBackup:e.backup_enabled!==null,backup_enabled:(t=e.backup_enabled)==null||t,overrideInterval:e.backup_interval_minutes!==null,backup_interval_minutes:(n=e.backup_interval_minutes)==null?60:n,admin_user_ids:r.admin_user_ids}),K.value=!0}),Z.apply(this,arguments)}function ne(){return Q.apply(this,arguments)}function Q(){return Q=g(function*(){G.value&&(yield O(G.value.id,{status:q.status,backup_enabled:q.overrideBackup?q.backup_enabled:null,backup_interval_minutes:q.overrideInterval?q.backup_interval_minutes:null}),yield C(G.value.id,q.admin_user_ids),K.value=!1,k.success(`客户端账号策略已更新`),yield J())}),Q.apply(this,arguments)}function re(e){return $.apply(this,arguments)}function $(){return $=g(function*(e){yield w(e.id),k.success(`该账号的桌面设备已全部下线`),yield J()}),$.apply(this,arguments)}let ie=[{title:`ZYT 账号`,key:`account`,width:220},{title:`客户端`,key:`device`,width:200},{title:`数据`,key:`data`,width:160},{title:`最后在线`,dataIndex:`last_online_at`,key:`last_online_at`,width:180},{title:`状态`,dataIndex:`status`,key:`status`,width:100},{title:`操作`,key:`actions`,width:180}];return a(J),(a,o)=>(l(),i(`div`,F,[e(n(S),{title:`客户端账号`},{extra:d(()=>[e(n(j),{onClick:J},{default:d(()=>[...o[7]||(o[7]=[t(`刷新`,-1)])]),_:1})]),default:d(()=>[o[10]||(o[10]=r(`p`,{class:`mb-4 text-xs text-gray-500`},` 状态按客户端最近 20 秒的有效会话判断。同一 ZYT 账号只保留一个有效桌面会话,新设备登录会使旧设备下线。 `,-1)),e(n(v),{columns:ie,"data-source":U.value,loading:H.value,"row-key":`id`,size:`small`},{bodyCell:d(({column:a,record:s})=>[a.key===`account`?(l(),i(u,{key:0},[r(`div`,I,f(s.nickname||s.zyt_sn),1),r(`div`,L,f(s.zyt_sn)+` · `+f(s.mobile_masked||`未绑定手机`),1)],64)):a.key===`device`?(l(),i(u,{key:1},[r(`div`,null,f(s.current_device_name||`暂无设备`),1),r(`div`,R,f(s.app_version||`未知版本`)+` · `+f(s.device_count)+` 台 `,1)],64)):a.key===`data`?(l(),i(u,{key:2},[r(`div`,null,f(s.source_account_count)+` 个企微账号`,1),r(`div`,z,f(s.message_count)+` 条消息`,1)],64)):a.key===`status`?(l(),p(n(N),{key:3,color:s.status===`disabled`?`red`:s.is_online?`green`:`default`},{default:d(()=>[t(f(s.status===`disabled`?`已禁用`:s.is_online?`在线`:`离线`),1)]),_:2},1032,[`color`])):a.key===`actions`?(l(),i(u,{key:4},[e(n(j),{type:`link`,size:`small`,disabled:!V.value,onClick:e=>X(s)},{default:d(()=>[...o[8]||(o[8]=[t(` 策略 `,-1)])]),_:1},8,[`disabled`,`onClick`]),s.status===`active`&&s.is_online?(l(),p(n(A),{key:0,title:`确定让该账号所有桌面设备立即下线?`,onConfirm:e=>re(s)},{default:d(()=>[e(n(j),{type:`link`,danger:``,size:`small`,disabled:!V.value},{default:d(()=>[...o[9]||(o[9]=[t(`强制下线`,-1)])]),_:1},8,[`disabled`])]),_:1},8,[`onConfirm`])):h(``,!0)],64)):h(``,!0)]),_:1},8,[`data-source`,`loading`])]),_:1}),e(n(te),{open:K.value,"onUpdate:open":o[6]||(o[6]=e=>K.value=e),title:`客户端账号策略`,onOk:ne},{default:d(()=>[e(n(b),{model:q,layout:`vertical`,class:`pt-2`},{default:d(()=>[e(n(y),{label:`账号状态`},{default:d(()=>[e(n(x),{value:q.status,"onUpdate:value":o[0]||(o[0]=e=>q.status=e),options:[{label:`正常`,value:`active`},{label:`禁用并下线`,value:`disabled`}]},null,8,[`value`])]),_:1}),e(n(y),null,{default:d(()=>[e(n(M),{checked:q.overrideBackup,"onUpdate:checked":o[1]||(o[1]=e=>q.overrideBackup=e)},{default:d(()=>[...o[11]||(o[11]=[t(`覆盖全局自动备份开关`,-1)])]),_:1},8,[`checked`]),q.overrideBackup?(l(),p(n(P),{key:0,checked:q.backup_enabled,"onUpdate:checked":o[2]||(o[2]=e=>q.backup_enabled=e),class:`ml-3`,"checked-children":`启用`,"un-checked-children":`停用`},null,8,[`checked`])):h(``,!0)]),_:1}),e(n(y),{label:`可查看该账号数据的管理端用户`},{default:d(()=>[e(n(x),{value:q.admin_user_ids,"onUpdate:value":o[3]||(o[3]=e=>q.admin_user_ids=e),mode:`multiple`,options:W.value.map(e=>({label:e.username,value:e.id})),placeholder:`超级管理员无需分配;其他用户按此范围查看`},null,8,[`value`,`options`])]),_:1}),e(n(y),null,{default:d(()=>[e(n(M),{checked:q.overrideInterval,"onUpdate:checked":o[4]||(o[4]=e=>q.overrideInterval=e)},{default:d(()=>[...o[12]||(o[12]=[t(`覆盖全局备份间隔`,-1)])]),_:1},8,[`checked`]),q.overrideInterval?(l(),p(n(ee),{key:0,value:q.backup_interval_minutes,"onUpdate:value":o[5]||(o[5]=e=>q.backup_interval_minutes=e),min:1,max:10080,"addon-after":`分钟`,class:`mt-2 w-full`},null,8,[`value`])):h(``,!0)]),_:1})]),_:1},8,[`model`])]),_:1},8,[`open`])]))}});export{B as default};