@oxiaom/adoremix 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/package.json +3 -2
  2. package/src/cli.js +15 -0
  3. package/src/config/defaults.js +2 -1
  4. package/src/config/webui.js +118 -0
  5. package/src/install.js +17 -0
  6. package/webui/high/assets/AdminLayout-BeGqmJmh.js +1 -0
  7. package/webui/high/assets/AdminLayout-Dg0cblhW.css +1 -0
  8. package/webui/high/assets/Announce-2364DXIw.css +1 -0
  9. package/webui/high/assets/Announce-BxOu3PDa.js +1 -0
  10. package/webui/high/assets/Billing-9pkW40cw.css +1 -0
  11. package/webui/high/assets/Billing-DkKexnBS.js +1 -0
  12. package/webui/high/assets/Gallery-BUO8AayT.js +1 -0
  13. package/webui/high/assets/Gallery-CvDy0BG_.css +1 -0
  14. package/webui/high/assets/Info-BRpM9vrH.css +1 -0
  15. package/webui/high/assets/Info-jgxOyI48.js +1 -0
  16. package/webui/high/assets/LanguageSwitcher-wcRpxcC2.css +1 -0
  17. package/webui/high/assets/LanguageSwitcher.vue_vue_type_style_index_0_lang-7lwszLYh.js +1 -0
  18. package/webui/high/assets/MainLayout-Cg9w3D6H.js +1 -0
  19. package/webui/high/assets/MainLayout-CtxzU51m.css +1 -0
  20. package/webui/high/assets/Upload-BUllX3F9.css +1 -0
  21. package/webui/high/assets/Upload-BhZe08V8.js +1 -0
  22. package/webui/high/assets/Users-BajKphJ2.css +1 -0
  23. package/webui/high/assets/Users-C-uvafHe.js +1 -0
  24. package/webui/high/assets/_plugin-vue_export-helper-BCo6x5W8.js +1 -0
  25. package/webui/high/assets/api-C3Fyph-A.js +1 -0
  26. package/webui/high/assets/index-6wTg37PL.js +1 -0
  27. package/webui/high/assets/index-BU_CDG5n.js +1 -0
  28. package/webui/high/assets/index-B_eXN_Ka.css +1 -0
  29. package/webui/high/assets/index-BeMdB8li.css +1 -0
  30. package/webui/high/assets/index-BeyjdvRw.css +1 -0
  31. package/webui/high/assets/index-Bqlp4X7Z.css +1 -0
  32. package/webui/high/assets/index-BwGOSVLU.css +1 -0
  33. package/webui/high/assets/index-C0plBGGv.js +1 -0
  34. package/webui/high/assets/index-CG0Cxnu7.js +1 -0
  35. package/webui/high/assets/index-CGTbAKLR.css +1 -0
  36. package/webui/high/assets/index-CTbFCtHG.js +1 -0
  37. package/webui/high/assets/index-CTtQ-PJh.css +1 -0
  38. package/webui/high/assets/index-Ci-5piG7.css +1 -0
  39. package/webui/high/assets/index-DPlPWsqM.js +1 -0
  40. package/webui/high/assets/index-DbeENJC3.css +1 -0
  41. package/webui/high/assets/index-DdwHcYZD.js +1 -0
  42. package/webui/high/assets/index-KMJ_Zaix.js +1 -0
  43. package/webui/high/assets/index-LP7k5pkh.js +1 -0
  44. package/webui/high/assets/index-MthettIa.css +1 -0
  45. package/webui/high/assets/index-_3H0q9yh.css +1 -0
  46. package/webui/high/assets/index-npdYRXyk.js +18 -0
  47. package/webui/high/assets/index-ptOpmqku.js +1 -0
  48. package/webui/high/assets/index-r_gAV5lM.css +1 -0
  49. package/webui/high/assets/index-u4IuHZw8.js +1 -0
  50. package/webui/high/assets/test-BQUWlKVf.css +1 -0
  51. package/webui/high/assets/test-Bt3E-Okh.js +1 -0
  52. package/webui/high/assets/useDeviceScan-CM8xsf7h.js +1 -0
  53. package/webui/high/assets/vue-vendor-BaBirIg_.js +38 -0
  54. package/webui/high/index.html +23 -0
  55. package/webui/high/js/lame.min.js +308 -0
  56. package/webui/high/js/worker-realtime.js +81 -0
  57. package/webui/low/assets/AdminLayout-Dg0cblhW.css +1 -0
  58. package/webui/low/assets/AdminLayout-Dio6Q0f_.js +1 -0
  59. package/webui/low/assets/Announce-2364DXIw.css +1 -0
  60. package/webui/low/assets/Announce-DiogX_-D.js +1 -0
  61. package/webui/low/assets/Billing-9pkW40cw.css +1 -0
  62. package/webui/low/assets/Billing-C42F8wIt.js +1 -0
  63. package/webui/low/assets/Gallery-CvDy0BG_.css +1 -0
  64. package/webui/low/assets/Gallery-DGUAhDtI.js +1 -0
  65. package/webui/low/assets/Info-BRpM9vrH.css +1 -0
  66. package/webui/low/assets/Info-BolVapGU.js +1 -0
  67. package/webui/low/assets/LanguageSwitcher-wcRpxcC2.css +1 -0
  68. package/webui/low/assets/LanguageSwitcher.vue_vue_type_style_index_0_lang-BUO99DZc.js +1 -0
  69. package/webui/low/assets/MainLayout-BmBcNVVu.js +1 -0
  70. package/webui/low/assets/MainLayout-CtxzU51m.css +1 -0
  71. package/webui/low/assets/Upload-BUllX3F9.css +1 -0
  72. package/webui/low/assets/Upload-B_Cx6QMR.js +1 -0
  73. package/webui/low/assets/Users-BajKphJ2.css +1 -0
  74. package/webui/low/assets/Users-an7uFkx4.js +1 -0
  75. package/webui/low/assets/_plugin-vue_export-helper-BCo6x5W8.js +1 -0
  76. package/webui/low/assets/api-C3Fyph-A.js +1 -0
  77. package/webui/low/assets/index-2JKvpOh3.js +1 -0
  78. package/webui/low/assets/index-B_eXN_Ka.css +1 -0
  79. package/webui/low/assets/index-BeMdB8li.css +1 -0
  80. package/webui/low/assets/index-BeyjdvRw.css +1 -0
  81. package/webui/low/assets/index-BoV0S81L.js +1 -0
  82. package/webui/low/assets/index-Bqlp4X7Z.css +1 -0
  83. package/webui/low/assets/index-BuEwLgbU.js +18 -0
  84. package/webui/low/assets/index-BwGOSVLU.css +1 -0
  85. package/webui/low/assets/index-CGTbAKLR.css +1 -0
  86. package/webui/low/assets/index-CSahVaR0.js +1 -0
  87. package/webui/low/assets/index-CTtQ-PJh.css +1 -0
  88. package/webui/low/assets/index-CgyUlqk5.js +1 -0
  89. package/webui/low/assets/index-Ci-5piG7.css +1 -0
  90. package/webui/low/assets/index-Cjg2XVty.js +1 -0
  91. package/webui/low/assets/index-D-BJ_vlf.js +1 -0
  92. package/webui/low/assets/index-D0uan-_I.js +1 -0
  93. package/webui/low/assets/index-DWP2gbuh.js +1 -0
  94. package/webui/low/assets/index-DbeENJC3.css +1 -0
  95. package/webui/low/assets/index-DdPisNCE.js +1 -0
  96. package/webui/low/assets/index-F-Qi4toA.js +1 -0
  97. package/webui/low/assets/index-FUUYrqc8.js +1 -0
  98. package/webui/low/assets/index-MthettIa.css +1 -0
  99. package/webui/low/assets/index-_3H0q9yh.css +1 -0
  100. package/webui/low/assets/index-r_gAV5lM.css +1 -0
  101. package/webui/low/assets/test-BQUWlKVf.css +1 -0
  102. package/webui/low/assets/test-DI2hJTQF.js +1 -0
  103. package/webui/low/assets/useDeviceScan-CM8xsf7h.js +1 -0
  104. package/webui/low/assets/vue-vendor-BaBirIg_.js +38 -0
  105. package/webui/low/index.html +23 -0
  106. package/webui/low/js/lame.min.js +308 -0
  107. package/webui/low/js/worker-realtime.js +81 -0
@@ -0,0 +1 @@
1
+ import{f as a,o as s,n as t,u as i,F as l,y as e,A as c,M as n,J as o,c as d,I as r,t as v}from"./vue-vendor-BaBirIg_.js";import{u,d as h,a as b}from"./index-npdYRXyk.js";import{x as p,y as g}from"./api-C3Fyph-A.js";import{_ as k}from"./_plugin-vue_export-helper-BCo6x5W8.js";const m={class:"dashboard"},y={class:"page-title diablo-title"},x={class:"stats-grid"},w=["innerHTML"],M={class:"stat-content"},f={class:"stat-label"},C={class:"stat-value"},T=["innerHTML"],H={class:"stat-content"},L={class:"stat-label"},B={class:"stat-value online"},A={class:"stat-card diablo-card"},_=["innerHTML"],D={class:"stat-content"},G={class:"stat-label"},j={class:"stat-value"},z={class:"stat-card diablo-card"},V=["innerHTML"],q={class:"stat-content"},N={class:"stat-label"},I={class:"stat-value"},S={class:"quick-actions"},F={class:"section-title"},J={class:"actions-grid"},P=["innerHTML"],U=["innerHTML"],E=["innerHTML"],K=["innerHTML"],O=["innerHTML"],Q=["innerHTML"],R={class:"mobile-header"},W={class:"mobile-greeting"},X={class:"mobile-subtitle"},Y={class:"mobile-stats-scroll"},Z={class:"mobile-stat-num"},$={class:"mobile-stat-label"},aa={class:"mobile-stat-num"},sa={class:"mobile-stat-label"},ta={class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #5856d6, #3634a3)"}},ia={class:"mobile-stat-num"},la={class:"mobile-stat-label"},ea={class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #ff9500, #cc7700)"}},ca={class:"mobile-stat-num"},na={class:"mobile-stat-label"},oa={class:"mobile-actions"},da={class:"mobile-section-title"},ra={class:"mobile-actions-grid"},va=k(a({__name:"index",setup(a){var k,va;const{t:ua}=u(),ha=o(),ba=h(),pa=b(),ga="undefined"!=typeof window&&!!(null==(va=null==(k=window.Capacitor)?void 0:k.isNativePlatform)?void 0:va.call(k)),ka=d(()=>pa.username||"User"),ma=d(()=>ba.getStats()),ya=r({totalGroups:0,totalTasks:0});function xa(a){return{devices:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>',online:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/></svg>',groups:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>',tasks:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/><path d="M8 14l2 2 4-4"/></svg>',add:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>',broadcast:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/><line x1="8" y1="23" x2="16" y2="23"/></svg>',alarm:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>',account:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>'}[a]||""}return s(async()=>{await ba.fetchDeviceList();try{const a=await p();a.res&&Array.isArray(a.list)&&(ya.totalGroups=a.list.length)}catch{}try{const a=await g();a.res&&Array.isArray(a.taskary)&&(ya.totalTasks=a.taskary.length)}catch{}}),(a,s)=>(v(),t("div",m,[i(ga)?(v(),t(l,{key:1},[e("div",R,[e("div",W,c(i(ua)("dashboard.welcome")||"你好")+","+c(ka.value),1),e("div",X,"ST"+c(i(ua)("common.appName")||"广播系统"),1)]),e("div",Y,[e("div",{class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #0a84ff, #0066cc)"},onClick:s[8]||(s[8]=a=>i(ha).push("/devices"))},[e("div",Z,c(ma.value.totalDevices),1),e("div",$,c(i(ua)("devices.list")),1)]),e("div",{class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #34c759, #248a3d)"},onClick:s[9]||(s[9]=a=>i(ha).push("/devices"))},[e("div",aa,c(ma.value.onlineDevices),1),e("div",sa,c(i(ua)("devices.online")),1)]),e("div",ta,[e("div",ia,c(ya.totalGroups),1),e("div",la,c(i(ua)("groups.list")),1)]),e("div",ea,[e("div",ca,c(ya.totalTasks),1),e("div",na,c(i(ua)("tasks.list")),1)])]),e("div",oa,[e("div",da,c(i(ua)("dashboard.quickActions")),1),e("div",ra,[e("button",{class:"mobile-action-item",onClick:s[10]||(s[10]=a=>i(ha).push("/devices"))},[s[17]||(s[17]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #0a84ff, #0066cc);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><rect x="2" y="3" width="20" height="14" rx="2" data-v-6d90ca45></rect><line x1="8" y1="21" x2="16" y2="21" data-v-6d90ca45></line><line x1="12" y1="17" x2="12" y2="21" data-v-6d90ca45></line></svg></div>',1)),e("span",null,c(i(ua)("menu.devices")),1)]),e("button",{class:"mobile-action-item",onClick:s[11]||(s[11]=a=>i(ha).push("/groups"))},[s[18]||(s[18]=e("div",{class:"mobile-action-icon",style:{background:"linear-gradient(135deg, #5856d6, #3634a3)"}},[e("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"white","stroke-width":"2"},[e("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])],-1)),e("span",null,c(i(ua)("menu.groups")),1)]),e("button",{class:"mobile-action-item",onClick:s[12]||(s[12]=a=>i(ha).push("/tasks"))},[s[19]||(s[19]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #ff9500, #cc7700);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><rect x="3" y="4" width="18" height="18" rx="2" data-v-6d90ca45></rect><line x1="16" y1="2" x2="16" y2="6" data-v-6d90ca45></line><line x1="8" y1="2" x2="8" y2="6" data-v-6d90ca45></line><line x1="3" y1="10" x2="21" y2="10" data-v-6d90ca45></line></svg></div>',1)),e("span",null,c(i(ua)("menu.tasks")),1)]),e("button",{class:"mobile-action-item",onClick:s[13]||(s[13]=a=>i(ha).push("/broadcast"))},[s[20]||(s[20]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #ff2d55, #cc0033);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" data-v-6d90ca45></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" data-v-6d90ca45></path><line x1="12" y1="19" x2="12" y2="23" data-v-6d90ca45></line><line x1="8" y1="23" x2="16" y2="23" data-v-6d90ca45></line></svg></div>',1)),e("span",null,c(i(ua)("menu.broadcast")),1)]),e("button",{class:"mobile-action-item",onClick:s[14]||(s[14]=a=>i(ha).push("/media"))},[s[21]||(s[21]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #34c759, #248a3d);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><path d="M9 18V5l12-2v13" data-v-6d90ca45></path><circle cx="6" cy="18" r="3" data-v-6d90ca45></circle><circle cx="18" cy="16" r="3" data-v-6d90ca45></circle></svg></div>',1)),e("span",null,c(i(ua)("menu.media")),1)]),e("button",{class:"mobile-action-item",onClick:s[15]||(s[15]=a=>i(ha).push("/alarm"))},[s[22]||(s[22]=e("div",{class:"mobile-action-icon",style:{background:"linear-gradient(135deg, #ff3b30, #cc2b22)"}},[e("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"white","stroke-width":"2"},[e("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),e("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})])],-1)),e("span",null,c(i(ua)("menu.alarm")),1)]),e("button",{class:"mobile-action-item",onClick:s[16]||(s[16]=a=>i(ha).push("/account"))},[s[23]||(s[23]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #8e8e93, #636366);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" data-v-6d90ca45></path><circle cx="9" cy="7" r="4" data-v-6d90ca45></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87" data-v-6d90ca45></path><path d="M16 3.13a4 4 0 0 1 0 7.75" data-v-6d90ca45></path></svg></div>',1)),e("span",null,c(i(ua)("menu.account")),1)])])])],64)):(v(),t(l,{key:0},[e("h2",y,c(i(ua)("dashboard.title")),1),e("div",x,[e("div",{class:"stat-card diablo-card clickable",onClick:s[0]||(s[0]=a=>i(ha).push("/devices"))},[e("div",{class:"stat-icon",innerHTML:xa("devices")},null,8,w),e("div",M,[e("div",f,c(i(ua)("devices.list")),1),e("div",C,c(ma.value.totalDevices),1)])]),e("div",{class:"stat-card diablo-card clickable",onClick:s[1]||(s[1]=a=>i(ha).push("/devices"))},[e("div",{class:"stat-icon online",innerHTML:xa("online")},null,8,T),e("div",H,[e("div",L,c(i(ua)("devices.online")),1),e("div",B,c(ma.value.onlineDevices),1)])]),e("div",A,[e("div",{class:"stat-icon",innerHTML:xa("groups")},null,8,_),e("div",D,[e("div",G,c(i(ua)("groups.list")),1),e("div",j,c(ya.totalGroups),1)])]),e("div",z,[e("div",{class:"stat-icon",innerHTML:xa("tasks")},null,8,V),e("div",q,[e("div",N,c(i(ua)("tasks.list")),1),e("div",I,c(ya.totalTasks),1)])])]),e("div",S,[e("h3",F,c(i(ua)("dashboard.quickActions")),1),e("div",J,[e("button",{class:"action-card diablo-card",onClick:s[2]||(s[2]=a=>i(ha).push("/devices"))},[e("span",{class:"action-icon",innerHTML:xa("add")},null,8,P),e("span",null,c(i(ua)("dashboard.addDevice")),1)]),e("button",{class:"action-card diablo-card",onClick:s[3]||(s[3]=a=>i(ha).push("/groups"))},[e("span",{class:"action-icon",innerHTML:xa("groups")},null,8,U),e("span",null,c(i(ua)("dashboard.createGroup")),1)]),e("button",{class:"action-card diablo-card",onClick:s[4]||(s[4]=a=>i(ha).push("/tasks"))},[e("span",{class:"action-icon",innerHTML:xa("tasks")},null,8,E),e("span",null,c(i(ua)("dashboard.scheduleTask")),1)]),e("button",{class:"action-card diablo-card",onClick:s[5]||(s[5]=a=>i(ha).push("/broadcast"))},[e("span",{class:"action-icon",innerHTML:xa("broadcast")},null,8,K),e("span",null,c(i(ua)("dashboard.broadcastNow")),1)]),e("button",{class:"action-card diablo-card",onClick:s[6]||(s[6]=a=>i(ha).push("/alarm"))},[e("span",{class:"action-icon",innerHTML:xa("alarm")},null,8,O),e("span",null,c(i(ua)("menu.alarm")),1)]),e("button",{class:"action-card diablo-card",onClick:s[7]||(s[7]=a=>i(ha).push("/account"))},[e("span",{class:"action-icon",innerHTML:xa("account")},null,8,Q),e("span",null,c(i(ua)("menu.account")),1)])])])],64))]))}}),[["__scopeId","data-v-6d90ca45"]]);export{va as default};
@@ -0,0 +1 @@
1
+ import{f as e,w as l,o as a,n as o,y as s,A as n,u as t,B as i,C as c,H as u,p as r,M as d,F as v,z as p,E as g,N as m,c as b,r as h,X as y,t as f,G as k}from"./vue-vendor-BaBirIg_.js";import{u as C,a as w}from"./index-npdYRXyk.js";import{k as x,g as M,m as S,n as $,s as D,o as F,p as j,q as P,t as V,v as I,w as _}from"./api-C3Fyph-A.js";import{_ as B}from"./_plugin-vue_export-helper-BCo6x5W8.js";const A={class:"group-manage"},L={class:"page-header"},U={class:"page-title"},G={class:"header-actions"},H=["placeholder"],N=["disabled"],T=["disabled"],q=["disabled"],z={key:0,class:"loading-container"},O={key:1,class:"empty-state"},E={key:2,class:"group-list-container"},R={class:"view-mode-bar"},J={class:"view-mode-toggle"},X=["title"],K=["title"],Q={class:"list-header"},W={class:"header-cell cell-id"},Y={class:"header-cell cell-name"},Z={class:"header-cell cell-device-count"},ee={class:"header-cell cell-actions"},le={class:"cell cell-id"},ae={class:"cell cell-name"},oe={class:"cell cell-device-count"},se={class:"cell cell-actions"},ne=["onClick","disabled"],te=["onClick","disabled"],ie=["onClick","disabled"],ce=["onClick","disabled"],ue=["onClick","disabled"],re={key:1,class:"group-card-grid"},de={class:"group-card-header"},ve={class:"group-card-index"},pe={class:"group-card-count"},ge={class:"group-card-name"},me={class:"group-card-actions"},be=["onClick","disabled","title"],he=["onClick","disabled","title"],ye=["onClick","disabled","title"],fe=["onClick","disabled","title"],ke=["onClick","disabled","title"],Ce={class:"dialog-header"},we={class:"modal-body"},xe={class:"form-group"},Me=["placeholder"],Se={class:"search-stats"},$e={key:0},De={key:1},Fe={key:0,class:"loading-container"},je={key:1,class:"device-selector"},Pe={class:"device-list"},Ve={class:"device-list-content"},Ie=["value"],_e={key:0,class:"no-search-result"},Be={class:"selected-devices"},Ae={class:"selected-devices-content"},Le=["onClick"],Ue={key:0,class:"empty-selected"},Ge={class:"modal-footer"},He=["disabled"],Ne={class:"dialog-header"},Te={class:"modal-body"},qe={class:"form-group"},ze={class:"form-group form-group-inline"},Oe=["placeholder"],Ee={class:"modal-footer"},Re=["disabled"],Je={class:"dialog-header"},Xe={class:"modal-body modal-body-large"},Ke={key:0,class:"video-container"},Qe=["src"],We={key:1,class:"no-video"},Ye={class:"modal-footer"},Ze={class:"drawer-title"},el={class:"drawer-body"},ll={key:0,class:"empty-state"},al={key:1,class:"play-items"},ol=["onClick"],sl={class:"drawer-footer"},nl={class:"dialog-header"},tl={class:"modal-body"},il={key:0,class:"empty-state"},cl={key:1,class:"group-select-list"},ul=["onClick"],rl={class:"group-select-info"},dl={class:"group-select-name"},vl={class:"group-select-count"},pl={class:"modal-footer"},gl={class:"dialog-header"},ml={class:"modal-body"},bl={class:"file-search-container"},hl=["placeholder"],yl={key:0,class:"loading-container"},fl={key:1,class:"modal-play-content"},kl={class:"file-selector"},Cl={class:"file-list-content"},wl=["onClick","onDblclick"],xl={class:"file-info"},Ml={class:"file-name"},Sl={class:"file-meta"},$l={key:0},Dl={key:1},Fl={class:"selected-files-panel"},jl={class:"selected-files-content"},Pl=["onDragstart","onDrop"],Vl={class:"selected-file-info"},Il={class:"file-number"},_l={class:"file-name"},Bl={class:"file-actions"},Al=["onClick","disabled","title"],Ll=["onClick","disabled","title"],Ul=["onClick","title"],Gl={key:0,class:"empty-selected-files"},Hl={class:"hint"},Nl={class:"play-settings"},Tl={class:"setting-item"},ql={class:"number-input-group"},zl=["disabled"],Ol=["disabled"],El={class:"setting-hint"},Rl={class:"setting-item"},Jl={class:"interval-input-group"},Xl={class:"number-input-group"},Kl=["disabled"],Ql=["disabled"],Wl={key:0,class:"interval-presets"},Yl=["onClick"],Zl={class:"setting-hint"},ea={class:"setting-item"},la={class:"duration-display"},aa={class:"duration-value"},oa={class:"duration-unit"},sa={class:"duration-bracket"},na={class:"setting-item"},ta={class:"number-input-group"},ia=["disabled"],ca=["max"],ua=["disabled"],ra=["disabled"],da={key:0,class:"interval-presets"},va=["onClick"],pa={class:"setting-hint"},ga={class:"modal-footer"},ma=["disabled"],ba={class:"confirm-dialog-title"},ha={class:"confirm-dialog-body"},ya={class:"confirm-dialog-footer"},fa={key:11,class:"stop-play-loading-overlay"},ka={class:"stop-play-loading-content"},Ca={class:"loading-text"},wa=B(e({__name:"index",setup(e){const{t:B}=C(),wa=w(),xa=b(()=>{if(!Va.value.trim())return Sa.value;const e=Va.value.toLowerCase().trim();return Sa.value.filter(l=>l.label.toLowerCase().includes(e)||String(l.id).includes(e))}),Ma=h([]),Sa=h([]),$a=h([]),Da=h([]),Fa=h(!1),ja=h("card"),Pa=h(!1),Va=h(""),Ia=h(!1),_a=h([]),Ba=h([]),Aa=h(""),La=h(-1),Ua=h(!1),Ga=h({playmode:1,jiange:1}),Ha=[1,5,10,30,60,120,300,600,1800,3600,7200],Na=h(0),Ta=h(!1),qa=h(!1),za=b(()=>{if(!Aa.value.trim())return _a.value;const e=Aa.value.toLowerCase().trim();return _a.value.filter(l=>{var a;return(null==(a=l.filename)?void 0:a.toLowerCase().includes(e))||String(l.id).includes(e)})}),Oa=b(()=>{if(0===Ba.value.length)return 0;let e=0,l=!1;for(const a of Ba.value){const o=_a.value.find(e=>e.id===a);o&&o.len&&(e+=o.len,l=!0)}if(!l)return 0;return(e+Ba.value.length*Ga.value.jiange)*Ga.value.playmode}),Ea=b(()=>{const e=Oa.value;if(e<=0)return[];return[60,120,300,600,1200,1800,2400,3e3,3600,7200,10800,14400,18e3].filter(l=>l<=e)}),Ra=h(""),Ja=h(""),Xa=h(null),Ka=h(!1),Qa=h(!1),Wa=h(!1),Ya=h(!1),Za=h(!1),eo=h(!1),lo=h(!1),ao=h(""),oo=h(""),so=h(null),no=h({show:!1,text:"",type:"success"});function to(e,l="success",a=3e3){no.value={show:!0,text:e,type:l},setTimeout(()=>{no.value.show=!1},a)}function io(){so.value&&so.value(),lo.value=!1}function co(){lo.value=!1}async function uo(){Fa.value=!0;try{const e=await x();console.log("分组详情响应:",e),e.res&&Array.isArray(e.list)?(Ma.value=e.list,console.log(`成功获取 ${e.list.length} 个分组`),e.list.forEach((e,l)=>{var a;console.log(`分组 ${l+1}:`,{gid:e.gid,name:e.name,deviceCount:(null==(a=e.dlist)?void 0:a.length)||0})}),to(B("groups.loadSuccess",{count:e.list.length}),"success")):(Ma.value=[],to(B("groups.loadFailed"),"error"))}catch(e){console.error("获取分组列表失败:",e),to(B("groups.loadFailed"),"error")}finally{Fa.value=!1}}async function ro(){try{const e=await M();console.log("设备列表响应:",e),e.res&&Array.isArray(e.results)&&(Sa.value=e.results.map(e=>{const l=e.id||0;return{id:l,key:String(l),label:e.devname||e.name||B("groups.untitled"),seed:e.device_seed||""}}),console.log("可用设备列表:",Sa.value))}catch(e){console.error("获取设备列表失败:",e)}}async function vo(){const e=Ra.value.trim();if(e){Fa.value=!0;try{const l=await S({gname:e});console.log("添加分组响应:",l),l.res?(to(B("groups.addSuccess"),"success"),Ra.value="",await uo()):to(B("groups.addFailed"),"error")}catch(l){console.error("添加分组失败:",l),to(B("groups.addFailed"),"error")}finally{Fa.value=!1}}else to(B("groups.nameRequired"),"error")}async function po(e){Xa.value=e,$a.value=[],Va.value="",Pa.value=!0,Ka.value=!0;try{const l=e.gid||e.pid;if(!l)return void to(B("groups.invalidGroupId"),"error");const a=await F({gid:l});console.log("分组设备响应:",a),a.res&&($a.value=a.dev_info_S.map(e=>{const l=a.dev_info.find(l=>l.key===e);return(null==l?void 0:l.id)||parseInt(e)||0}).filter(e=>e>0),console.log("已选中的设备ID:",$a.value))}catch(l){console.error("获取分组设备失败:",l),to(B("groups.loadDevicesFailed"),"error")}finally{Pa.value=!1}}async function go(){if(!Xa.value)return;if(0===$a.value.length)return void to(B("groups.selectAtLeastOneDevice"),"error");const e=Xa.value.gid||Xa.value.pid;if(e){Fa.value=!0;try{const l=$a.value.map(e=>String(e)).join("|");console.log("保存分组设备参数:",{gid:e,devids:l});const a=await $({gid:e,devids:l});console.log("编辑分组设备响应:",a),a.res?(to(B("groups.saveSuccess"),"success"),Ka.value=!1,await uo()):to(B("groups.saveFailed"),"error")}catch(l){console.error("编辑分组设备失败:",l),to(B("groups.saveFailed"),"error")}finally{Fa.value=!1}}else to(B("groups.invalidGroupId"),"error")}function mo(e){Xa.value=e,Ja.value="none"!==e.msurl&&e.msurl?e.msurl:B("groups.noVideoUrlSet"),Qa.value=!0}async function bo(){if(!Xa.value)return;const e=Xa.value.gid||Xa.value.pid;if(e){Fa.value=!0;try{const l=await D({gid:e,msurl:Ja.value});console.log("保存视频响应:",l),l.res?(to(B("groups.saveSuccess"),"success"),Qa.value=!1,await uo()):to(B("groups.saveFailed"),"error")}catch(l){console.error("保存视频失败:",l),to(B("groups.saveFailed"),"error")}finally{Fa.value=!1}}else to(B("groups.invalidGroupId"),"error")}function ho(e){Xa.value=e,Ja.value="none"!==e.msurl&&e.msurl?e.msurl:"",Wa.value=!0}function yo(){0!==Ma.value.length?Za.value=!0:to(B("groups.noGroups"),"error")}function fo(){Za.value=!1}async function ko(e){Xa.value=e,Ba.value=[],Aa.value="",Ga.value={playmode:1,jiange:1},Na.value=0,Ta.value=!0,Za.value=!1,Ia.value=!0,Ua.value=!1,qa.value=!1;try{const e=await V();e.res&&Array.isArray(e.filelist)?_a.value=e.filelist:(_a.value=[],to(B("groups.loadFilesFailed"),"error"))}catch(l){console.error("获取文件列表失败:",l),to(B("groups.loadFilesFailed"),"error")}finally{Ta.value=!1}}async function Co(e){await ko(e)}async function wo(e){const l=e.gid||e.pid;if(!l)return void to(B("groups.invalidGroupId"),"error");if(confirm(B("groups.deleteConfirm"))){Fa.value=!0;try{const e=await I({gid:l});console.log("删除分组响应:",e),e.res?(to(B("groups.deleteSuccess"),"success"),await uo()):to(B("groups.deleteFailed"),"error")}catch(a){console.error("删除分组失败:",a),to(B("groups.deleteFailed"),"error")}finally{Fa.value=!1}}}function xo(e){const l=_a.value.find(l=>l.id===e);return(null==l?void 0:l.filename)||B("groups.unknownFile")}function Mo(e){const{t:l}=C(),a=Math.floor(e/3600),o=Math.floor(e%3600/60),s=e%60;return a>0?`${a}:${String(o).padStart(2,"0")}:${String(s).padStart(2,"0")}`:o>0?`${o}:${String(s).padStart(2,"0")}`:`${s}${l("common.seconds")}`}function So(e){const l=Ga.value.playmode+e;l>=1&&l<=99&&(Ga.value.playmode=l)}function $o(e){const l=Ga.value.jiange+e;l>=0&&l<=10800&&(Ga.value.jiange=l)}function Do(e){const l=Na.value+e,a=Oa.value;(a>0&&l>=1&&l<=a||0===a&&l>=1)&&(Na.value=l)}function Fo(e){const{t:l}=C();if(0===e)return`0${l("common.seconds")}`;const a=Math.floor(e/3600),o=Math.floor(e%3600/60),s=e%60,n=[];return a>0&&n.push(`${a}${l("common.hours")}`),o>0&&n.push(`${o}${l("common.minutes")}`),(s>0||0===n.length)&&n.push(`${s}${l("common.seconds")}`),n.join("")}async function jo(){if(!Xa.value||0===Ba.value.length)return void to(B("groups.selectAtLeastOneFile"),"error");const e=Xa.value.gid||Xa.value.pid;if(!e)return void to(B("groups.invalidGroupId"),"error");const l=await F({gid:e});if(!l.res||!l.dev_info_S||0===l.dev_info_S.length)return void to(B("groups.groupHasNoDevices"),"error");const a=l.dev_info_S.map(e=>{const a=l.dev_info.find(l=>l.key===e);return(null==a?void 0:a.id)||parseInt(e)}).filter(e=>e&&!isNaN(e)).join("|"),o=Ba.value.map(e=>String(e)).join("|");Fa.value=!0;try{const e=Na.value>0?Na.value:Oa.value;(await j({playmode:Ga.value.playmode,len:e,jiange:Ga.value.jiange,fileids:o,snids:a})).res?(to(B("groups.playStarted"),"success"),Ia.value=!1,await Po()):to(B("groups.playFailed"),"error")}catch(s){console.error("启动播放失败:",s),to(B("groups.playFailed"),"error")}finally{Fa.value=!1}}async function Po(){try{const e=await P();console.log("📋 播放列表响应:",e),console.log("播放列表数据:",e.tps),console.log("res.res:",e.res),console.log("Array.isArray(res.tps):",Array.isArray(e.tps)),e.res&&Array.isArray(e.tps)?(Da.value=[],await y(),Da.value=[...e.tps],console.log("✅ 播放列表已更新,数量:",Da.value.length),console.log("📋 新播放列表内容:",JSON.stringify(Da.value))):(Da.value=[],console.log("❌ 播放列表为空或格式错误"),console.log("❌ playList.value 已设置为空数组"))}catch(e){console.error("获取播放列表失败:",e),Da.value=[]}}async function Vo(){await Po(),Ya.value=!0}async function Io(e){var l;const a=e.tpid||e.tmpid||e.id;var o,s,n;(console.log("🎵 停止播放调试信息:"),console.log("播放项完整数据:",e),console.log("使用的播放ID(tpid):",a),console.log("使用的用户ID:",null==(l=wa.userInfo)?void 0:l.id),a)?(o=B("common.confirm"),s=B("groups.stopPlayConfirm"),n=async()=>{await async function(e){var l;try{const a=wa.token||"",o=null==(l=wa.userInfo)?void 0:l.id;eo.value=!0;const s=Math.floor(6*Math.random())+5;console.log(`🕐 停止播放模拟延迟: ${s}秒`),await new Promise(e=>setTimeout(e,1e3*s));const n=await _({id:o,token:a,tpid:e});console.log("🎵 停止播放响应:",n),console.log("🎵 响应结果res.res:",n.res),console.log("⏳ 等待服务器处理停止操作..."),await new Promise(e=>setTimeout(e,3e3)),console.log("🔄 开始获取播放列表..."),await Po(),console.log("📊 刷新后播放列表长度:",Da.value.length),eo.value=!1,n.res?0===Da.value.length?(console.log("🎯 播放列表为空,抽屉保持打开"),to(B("groups.stopPlaySuccess"),"success")):(console.log("📋 播放列表还有",Da.value.length,"个播放项"),to(B("groups.stopPlaySuccess"),"success")):to(B("groups.stopPlayFailed"),"error")}catch(a){console.error("停止播放失败:",a),eo.value=!1,to(B("groups.stopPlayFailed"),"error")}}(a)},ao.value=o,oo.value=s,so.value=n,lo.value=!0):to(B("groups.invalidPlayId"),"error")}function _o(e){const l=Sa.value.find(l=>l.id===e);return(null==l?void 0:l.label)||B("groups.unknownDevice")}function Bo(){Ka.value=!1,Qa.value=!1,Wa.value=!1,Ia.value=!1,Za.value=!1,Xa.value=null,$a.value=[],Ja.value="",Va.value="",Ba.value=[],Aa.value="",La.value=-1,Na.value=0,Ua.value=!1,qa.value=!1}function Ao(){Ya.value=!1}return l(Oa,e=>{e>0&&Na.value>e&&(Na.value=e)}),a(async()=>{await Promise.all([uo(),ro(),Po()])}),(e,l)=>{var a,b,h,y,w,x;return f(),o("div",A,[s("div",L,[s("h2",U,n(t(B)("groups.manage")),1),s("div",G,[i(s("input",{"onUpdate:modelValue":l[0]||(l[0]=e=>Ra.value=e),placeholder:t(B)("groups.inputName"),class:"input-name form-input"},null,8,H),[[c,Ra.value]]),s("button",{onClick:vo,class:"add-btn diablo-button",disabled:Fa.value},[l[26]||(l[26]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("path",{d:"M12 5v14M5 12h14"})],-1)),u(" "+n(t(B)("groups.add")),1)],8,N),s("button",{onClick:yo,class:"group-play-btn diablo-button",disabled:Fa.value},[l[27]||(l[27]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[s("path",{d:"M8 5v14l11-7z"})],-1)),u(" "+n(t(B)("groups.groupPlay")),1)],8,T),s("button",{onClick:Vo,class:"play-list-btn diablo-button",disabled:Fa.value},[l[28]||(l[28]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[s("path",{d:"M4 6h16M4 12h16M4 18h16"})],-1)),u(" "+n(t(B)("groups.playList")),1)],8,q)])]),Fa.value?(f(),o("div",z,[l[29]||(l[29]=s("div",{class:"loading-spinner"},null,-1)),s("p",null,n(t(B)("common.loading")),1)])):0===Ma.value.length?(f(),o("div",O,[s("p",null,n(t(B)("groups.noGroups")),1)])):(f(),o("div",E,[s("div",R,[s("div",J,[s("button",{class:r(["view-mode-btn",{active:"list"===ja.value}]),onClick:l[1]||(l[1]=e=>ja.value="list"),title:t(B)("devices.listView")},[...l[30]||(l[30]=[d('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" data-v-ca949926><line x1="8" y1="6" x2="21" y2="6" data-v-ca949926></line><line x1="8" y1="12" x2="21" y2="12" data-v-ca949926></line><line x1="8" y1="18" x2="21" y2="18" data-v-ca949926></line><line x1="3" y1="6" x2="3.01" y2="6" data-v-ca949926></line><line x1="3" y1="12" x2="3.01" y2="12" data-v-ca949926></line><line x1="3" y1="18" x2="3.01" y2="18" data-v-ca949926></line></svg>',1)])],10,X),s("button",{class:r(["view-mode-btn",{active:"card"===ja.value}]),onClick:l[2]||(l[2]=e=>ja.value="card"),title:t(B)("devices.cardView")},[...l[31]||(l[31]=[d('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" data-v-ca949926><rect x="3" y="3" width="7" height="7" data-v-ca949926></rect><rect x="14" y="3" width="7" height="7" data-v-ca949926></rect><rect x="3" y="14" width="7" height="7" data-v-ca949926></rect><rect x="14" y="14" width="7" height="7" data-v-ca949926></rect></svg>',1)])],10,K)])]),"list"===ja.value?(f(),o(v,{key:0},[s("div",Q,[s("div",W,n(t(B)("groups.id")),1),s("div",Y,n(t(B)("groups.name")),1),s("div",Z,n(t(B)("groups.deviceCount")),1),s("div",ee,n(t(B)("common.actions")),1)]),(f(!0),o(v,null,p(Ma.value,(e,l)=>{var a,i;return f(),o("div",{key:e.gid||e.pid,class:"group-item"},[s("div",le,n(l+1),1),s("div",ae,n(e.name||e.pname||t(B)("groups.untitled")),1),s("div",oe,n((null==(a=e.dlist)?void 0:a.length)||(null==(i=e.idlist)?void 0:i.length)||0),1),s("div",se,[s("button",{onClick:l=>po(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.editDevices")),9,ne),s("button",{onClick:l=>mo(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.editVideo")),9,te),s("button",{onClick:l=>ho(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.previewVideo")),9,ie),s("button",{onClick:l=>Co(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.groupPlay")),9,ce),s("button",{onClick:l=>wo(e),class:"action-btn btn-delete",disabled:Fa.value},n(t(B)("common.delete")),9,ue)])])}),128))],64)):(f(),o("div",re,[(f(!0),o(v,null,p(Ma.value,(e,a)=>{var i,c;return f(),o("div",{key:e.gid||e.pid,class:"group-card"},[s("div",de,[s("span",ve,"#"+n(a+1),1),s("span",pe,[l[32]||(l[32]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),s("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),s("line",{x1:"12",y1:"17",x2:"12",y2:"21"})],-1)),u(" "+n((null==(i=e.dlist)?void 0:i.length)||(null==(c=e.idlist)?void 0:c.length)||0),1)])]),s("div",ge,n(e.name||e.pname||t(B)("groups.untitled")),1),s("div",me,[s("button",{onClick:l=>po(e),class:"card-action-btn",disabled:Fa.value,title:t(B)("groups.editDevices")},[...l[33]||(l[33]=[d('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14" data-v-ca949926><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" data-v-ca949926></path><circle cx="9" cy="7" r="4" data-v-ca949926></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87" data-v-ca949926></path><path d="M16 3.13a4 4 0 0 1 0 7.75" data-v-ca949926></path></svg>',1)])],8,be),s("button",{onClick:l=>mo(e),class:"card-action-btn",disabled:Fa.value,title:t(B)("groups.editVideo")},[...l[34]||(l[34]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("polygon",{points:"23 7 16 12 23 17 23 7"}),s("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})],-1)])],8,he),s("button",{onClick:l=>ho(e),class:"card-action-btn",disabled:Fa.value,title:t(B)("groups.previewVideo")},[...l[35]||(l[35]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),s("circle",{cx:"12",cy:"12",r:"3"})],-1)])],8,ye),s("button",{onClick:l=>Co(e),class:"card-action-btn card-action-play",disabled:Fa.value,title:t(B)("groups.groupPlay")},[...l[36]||(l[36]=[s("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"14",height:"14"},[s("polygon",{points:"5 3 19 12 5 21 5 3"})],-1)])],8,fe),s("button",{onClick:l=>wo(e),class:"card-action-btn card-action-delete",disabled:Fa.value,title:t(B)("common.delete")},[...l[37]||(l[37]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("polyline",{points:"3 6 5 6 21 6"}),s("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])],8,ke)])])}),128))]))])),Ka.value?(f(),o("div",{key:3,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content",onClick:l[5]||(l[5]=m(()=>{},["stop"]))},[s("div",Ce,[s("h3",null,n(t(B)("groups.editDevices")),1),s("button",{class:"close-btn",onClick:Bo},[...l[38]||(l[38]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",we,[s("div",xe,[s("label",null,n(t(B)("groups.searchDevicePlaceholder")),1),i(s("input",{"onUpdate:modelValue":l[3]||(l[3]=e=>Va.value=e),placeholder:t(B)("groups.searchDevicePlaceholder"),class:"form-input"},null,8,Me),[[c,Va.value]]),s("div",Se,[Va.value?(f(),o("span",$e,n(t(B)("groups.searchResult",{filtered:xa.value.length,total:Sa.value.length})),1)):(f(),o("span",De,n(t(B)("groups.totalDevices",{count:Sa.value.length})),1))])]),Pa.value?(f(),o("div",Fe,[l[39]||(l[39]=s("div",{class:"loading-spinner"},null,-1)),s("p",null,n(t(B)("common.loading")),1)])):(f(),o("div",je,[s("div",Pe,[s("h4",null,n(t(B)("groups.allDevices")),1),s("div",Ve,[(f(!0),o(v,null,p(xa.value,e=>(f(),o("div",{key:e.id,class:"device-item"},[s("label",null,[i(s("input",{type:"checkbox",value:e.id,"onUpdate:modelValue":l[4]||(l[4]=e=>$a.value=e)},null,8,Ie),[[k,$a.value]]),u(" "+n(e.label),1)])]))),128)),0===xa.value.length&&Sa.value.length>0?(f(),o("div",_e,[s("p",null,n(t(B)("groups.noSearchResult")),1)])):g("",!0)])]),s("div",Be,[s("h4",null,n(t(B)("groups.selectedDevices"))+" ("+n($a.value.length)+")",1),s("div",Ae,[(f(!0),o(v,null,p($a.value,e=>(f(),o("div",{key:e,class:"device-item selected"},[u(n(_o(e))+" ",1),s("button",{onClick:l=>function(e){const l=$a.value.indexOf(e);l>-1&&$a.value.splice(l,1)}(e),class:"remove-btn"},"×",8,Le)]))),128)),0===$a.value.length?(f(),o("div",Ue,[s("p",null,n(t(B)("groups.noSelectedDevices")),1)])):g("",!0)])])]))]),s("div",Ge,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1),s("button",{onClick:go,class:"btn btn-primary diablo-button",disabled:Fa.value||0===$a.value.length},n(t(B)("common.save")),9,He)])])])):g("",!0),Qa.value?(f(),o("div",{key:4,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content",onClick:l[7]||(l[7]=m(()=>{},["stop"]))},[s("div",Ne,[s("h3",null,n(t(B)("groups.editVideo")),1),s("button",{class:"close-btn",onClick:Bo},[...l[40]||(l[40]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",Te,[s("div",qe,[s("label",null,n(t(B)("groups.groupName"))+": "+n((null==(a=Xa.value)?void 0:a.name)||(null==(b=Xa.value)?void 0:b.pname)),1)]),s("div",ze,[s("label",null,n(t(B)("groups.videoUrl"))+":",1),i(s("input",{"onUpdate:modelValue":l[6]||(l[6]=e=>Ja.value=e),placeholder:t(B)("groups.inputVideoUrl"),class:"form-input video-url-input"},null,8,Oe),[[c,Ja.value]])])]),s("div",Ee,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1),s("button",{onClick:bo,class:"btn btn-primary diablo-button",disabled:Fa.value},n(t(B)("common.save")),9,Re)])])])):g("",!0),Wa.value?(f(),o("div",{key:5,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content modal-large-content",onClick:l[8]||(l[8]=m(()=>{},["stop"]))},[s("div",Je,[s("h3",null,n((null==(h=Xa.value)?void 0:h.name)||(null==(y=Xa.value)?void 0:y.pname)),1),s("button",{class:"close-btn",onClick:Bo},[...l[41]||(l[41]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",Xe,[Ja.value&&"none"!==Ja.value?(f(),o("div",Ke,[s("video",{src:Ja.value,controls:"",width:"760"},null,8,Qe)])):(f(),o("div",We,[s("p",null,n(t(B)("groups.noVideoUrl")),1)]))]),s("div",Ye,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.close")),1)])])])):g("",!0),Ya.value?(f(),o("div",{key:6,class:"drawer-overlay",onClick:Ao},[s("div",{class:"drawer-content",onClick:l[9]||(l[9]=m(()=>{},["stop"]))},[s("h3",Ze,n(t(B)("groups.playList")),1),s("div",el,[0===Da.value.length?(f(),o("div",ll,[s("p",null,n(t(B)("groups.noPlayingItems")),1)])):(f(),o("div",al,[(f(!0),o(v,null,p(Da.value,(e,l)=>(f(),o("div",{key:e.tmpid||e.id||l,class:"play-item"},[s("p",null,n(t(B)("groups.playSequence"))+": "+n(e.Name),1),s("p",null,n(t(B)("groups.fileInterval"))+": "+n(e.jiange),1),s("p",null,n(t(B)("groups.playCount"))+": "+n(e.playmode),1),s("button",{onClick:l=>Io(e),class:"btn-stop"},n(t(B)("common.stop")),9,ol)]))),128))]))]),s("div",sl,[s("button",{onClick:Ao,class:"btn-close"},n(t(B)("common.close")),1)])])])):g("",!0),Za.value?(f(),o("div",{key:7,class:"modal-overlay",onClick:fo},[s("div",{class:"modal-content",onClick:l[10]||(l[10]=m(()=>{},["stop"]))},[s("div",nl,[s("h3",null,n(t(B)("groups.selectGroupForPlay")),1),s("button",{class:"close-btn",onClick:fo},[...l[42]||(l[42]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",tl,[0===Ma.value.length?(f(),o("div",il,[s("p",null,n(t(B)("groups.noGroups")),1)])):(f(),o("div",cl,[(f(!0),o(v,null,p(Ma.value,e=>{var a,i;return f(),o("div",{key:e.gid||e.pid,class:"group-select-item",onClick:l=>ko(e)},[s("div",rl,[s("span",dl,n(e.name||e.pname||t(B)("groups.untitled")),1),s("span",vl,n((null==(a=e.dlist)?void 0:a.length)||(null==(i=e.idlist)?void 0:i.length)||0)+" "+n(t(B)("groups.devicesCount")),1)]),l[43]||(l[43]=s("div",{class:"group-select-arrow"},"→",-1))],8,ul)}),128))]))]),s("div",pl,[s("button",{onClick:fo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1)])])])):g("",!0),Ia.value?(f(),o("div",{key:8,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content modal-large-content",onClick:l[24]||(l[24]=m(()=>{},["stop"]))},[s("div",gl,[s("h3",null,n(t(B)("groups.groupPlay"))+" - "+n((null==(w=Xa.value)?void 0:w.name)||(null==(x=Xa.value)?void 0:x.pname)),1),s("button",{class:"close-btn",onClick:Bo},[...l[44]||(l[44]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",ml,[s("div",bl,[i(s("input",{"onUpdate:modelValue":l[11]||(l[11]=e=>Aa.value=e),placeholder:t(B)("groups.searchFilePlaceholder"),class:"file-search-input form-input",clearable:""},null,8,hl),[[c,Aa.value]])]),Ta.value?(f(),o("div",yl,[l[45]||(l[45]=s("div",{class:"loading-spinner"},null,-1)),s("p",null,n(t(B)("common.loading")),1)])):(f(),o("div",fl,[s("div",kl,[s("h4",null,n(t(B)("groups.availableFiles"))+" ("+n(za.value.length)+")",1),s("div",Cl,[(f(!0),o(v,null,p(za.value,e=>{return f(),o("div",{key:e.id,class:r(["file-item",{selected:(l=e.id,Ba.value.includes(l))}]),onClick:l=>function(e){e.id&&Ba.value.push(e.id)}(e),onDblclick:l=>function(e){e.id&&Ba.value.push(e.id)}(e)},[s("div",xl,[s("div",Ml,n(e.filename),1),s("div",Sl,[e.sizeStr?(f(),o("span",$l,n(e.sizeStr),1)):g("",!0),e.len?(f(),o("span",Dl,n(Mo(e.len)),1)):g("",!0)])])],42,wl);var l}),128))])]),s("div",Fl,[s("h4",null,n(t(B)("groups.selectedFiles"))+" ("+n(Ba.value.length)+")",1),s("div",jl,[(f(!0),o(v,null,p(Ba.value,(e,a)=>(f(),o("div",{key:`${e}-${a}`,class:"selected-file-item",draggable:"true",onDragstart:e=>function(e,l){La.value=e,l.dataTransfer&&(l.dataTransfer.effectAllowed="move",l.dataTransfer.setData("text/plain",String(e)))}(a,e),onDragover:l[12]||(l[12]=e=>{return(l=e).preventDefault(),void(l.dataTransfer&&(l.dataTransfer.dropEffect="move"));var l}),onDrop:e=>function(e,l){if(l.preventDefault(),-1===La.value||La.value===e)return;const a=Ba.value[La.value];Ba.value.splice(La.value,1),Ba.value.splice(e,0,a),La.value=-1}(a,e)},[s("div",Vl,[s("div",Il,n(a+1)+".",1),s("div",_l,n(xo(e)),1)]),s("div",Bl,[s("button",{onClick:e=>function(e){if(e>0){const l=Ba.value[e];Ba.value[e]=Ba.value[e-1],Ba.value[e-1]=l}}(a),class:"file-action-btn",disabled:0===a,title:t(B)("common.moveUp")}," ↑ ",8,Al),s("button",{onClick:e=>function(e){if(e<Ba.value.length-1){const l=Ba.value[e];Ba.value[e]=Ba.value[e+1],Ba.value[e+1]=l}}(a),class:"file-action-btn",disabled:a===Ba.value.length-1,title:t(B)("common.moveDown")}," ↓ ",8,Ll),s("button",{onClick:e=>function(e){Ba.value.splice(e,1)}(a),class:"file-action-btn btn-remove",title:t(B)("common.delete")}," × ",8,Ul)])],40,Pl))),128)),0===Ba.value.length?(f(),o("div",Gl,[s("p",null,n(t(B)("groups.noSelectedFiles")),1),s("p",Hl,n(t(B)("groups.doubleClickHint")),1)])):g("",!0)])])])),s("div",Nl,[s("div",Tl,[s("label",null,n(t(B)("groups.playMode"))+":",1),s("div",ql,[s("button",{onClick:l[13]||(l[13]=e=>So(-1)),class:"number-btn btn-minus",disabled:Ga.value.playmode<=1},"-",8,zl),i(s("input",{"onUpdate:modelValue":l[14]||(l[14]=e=>Ga.value.playmode=e),type:"number",min:"1",max:"99",class:"setting-input setting-number form-input"},null,512),[[c,Ga.value.playmode,void 0,{number:!0}]]),s("button",{onClick:l[15]||(l[15]=e=>So(1)),class:"number-btn btn-plus",disabled:Ga.value.playmode>=99},"+",8,Ol)]),s("div",El,n(t(B)("groups.playModeHint")),1)]),s("div",Rl,[s("label",null,n(t(B)("groups.fileInterval"))+" ("+n(t(B)("common.seconds"))+"):",1),s("div",Jl,[s("div",Xl,[s("button",{onClick:l[16]||(l[16]=e=>$o(-1)),class:"number-btn btn-minus",disabled:Ga.value.jiange<=0},"-",8,Kl),i(s("input",{"onUpdate:modelValue":l[17]||(l[17]=e=>Ga.value.jiange=e),type:"number",min:"0",max:"10800",class:"setting-input setting-number form-input"},null,512),[[c,Ga.value.jiange,void 0,{number:!0}]]),s("button",{onClick:l[18]||(l[18]=e=>$o(1)),class:"number-btn btn-plus",disabled:Ga.value.jiange>=10800},"+",8,Ql),s("button",{onClick:l[19]||(l[19]=e=>Ua.value=!Ua.value),class:"toggle-quick-select-btn"},n(t(B)("common.quick")),1)]),Ua.value?(f(),o("div",Wl,[(f(),o(v,null,p(Ha,e=>s("button",{key:e,onClick:l=>{return a=e,Ga.value.jiange=a,void(Ua.value=!1);var a},class:r(["interval-preset-btn",{active:Ga.value.jiange===e}])},n(function(e){const{t:l}=C();return 0===e?`0${l("common.seconds")}`:e<60?`${e}${l("common.seconds")}`:e<3600?`${Math.floor(e/60)}${l("common.minutes")}`:e<7200?`1${l("common.hours")}`:e<10800?`2${l("common.hours")}`:`3${l("common.hours")}`}(e)),11,Yl)),64))])):g("",!0)]),s("div",Zl,n(t(B)("groups.intervalMaxHint")),1)]),s("div",ea,[s("label",null,n(t(B)("groups.estimatedDuration"))+":",1),s("div",la,[s("span",aa,n(Oa.value),1),s("span",oa,n(t(B)("common.seconds")),1),s("span",sa,"(≈ "+n(Fo(Oa.value))+")",1)])]),s("div",na,[s("label",null,n(t(B)("groups.forceStopDuration"))+":",1),s("div",null,[s("div",ta,[s("button",{onClick:l[20]||(l[20]=e=>Do(-1)),class:"number-btn btn-minus",disabled:Na.value<=1},"-",8,ia),i(s("input",{"onUpdate:modelValue":l[21]||(l[21]=e=>Na.value=e),type:"number",min:"1",max:Oa.value,class:"setting-input setting-number form-input"},null,8,ca),[[c,Na.value,void 0,{number:!0}]]),s("button",{onClick:l[22]||(l[22]=e=>Do(1)),class:"number-btn btn-plus",disabled:Na.value>=Oa.value},"+",8,ua),s("button",{onClick:l[23]||(l[23]=e=>qa.value=!qa.value),class:"toggle-quick-select-btn",disabled:Oa.value<=0},n(t(B)("common.quick")),9,ra)]),qa.value&&Ea.value.length>0?(f(),o("div",da,[(f(!0),o(v,null,p(Ea.value,e=>(f(),o("button",{key:e,onClick:l=>{return a=e,Na.value=a,void(qa.value=!1);var a},class:r(["interval-preset-btn",{active:Na.value===e}])},n(function(e){const{t:l}=C();return e<60?`${e}${l("common.seconds")}`:e<3600?`${Math.floor(e/60)}${l("common.minutes")}`:`${Math.floor(e/3600)}${l("common.hours")}`}(e)),11,va))),128))])):g("",!0),s("div",pa,n(t(B)("groups.forceStopHint")),1)])])])]),s("div",ga,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1),s("button",{onClick:jo,class:"btn btn-primary diablo-button",disabled:Fa.value||0===Ba.value.length},n(t(B)("groups.startPlay")),9,ma)])])])):g("",!0),no.value.show?(f(),o("div",{key:9,class:r(["message-toast",no.value.type])},n(no.value.text),3)):g("",!0),lo.value?(f(),o("div",{key:10,class:"confirm-dialog-overlay",onClick:co},[s("div",{class:"confirm-dialog-content",onClick:l[25]||(l[25]=m(()=>{},["stop"]))},[s("h3",ba,n(ao.value),1),s("div",ha,[s("p",null,n(oo.value),1)]),s("div",ya,[s("button",{onClick:co,class:"btn-cancel"},n(t(B)("common.cancel")),1),s("button",{onClick:io,class:"btn-confirm"},n(t(B)("common.confirm")),1)])])])):g("",!0),eo.value?(f(),o("div",fa,[s("div",ka,[l[46]||(l[46]=s("div",{class:"loading-spinner"},null,-1)),l[47]||(l[47]=s("div",{class:"loading-spinner-delayed"},null,-1)),s("p",Ca,n(t(B)("groups.stopPlayInProgress")),1)])])):g("",!0)])}}}),[["__scopeId","data-v-ca949926"]]);export{wa as default};
@@ -0,0 +1 @@
1
+ .task-manage[data-v-1b5971d9]{padding:20px;background:transparent;min-height:100vh}.page-header[data-v-1b5971d9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.header-actions[data-v-1b5971d9]{display:flex;gap:8px;align-items:center}.refresh-btn[data-v-1b5971d9]{display:flex;align-items:center;justify-content:center;padding:8px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--diablo-text-muted);cursor:pointer;transition:all .2s ease}.refresh-btn[data-v-1b5971d9]:hover:not(:disabled){background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border)}.refresh-btn[data-v-1b5971d9]:disabled{opacity:.5;cursor:not-allowed}.add-btn[data-v-1b5971d9]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow);transform:translateY(-1px)}.add-btn svg[data-v-1b5971d9]{width:16px;height:16px}.filter-section[data-v-1b5971d9]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:14px 20px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.filter-group[data-v-1b5971d9]{display:flex;align-items:center;gap:12px}.filter-group label[data-v-1b5971d9]{color:var(--diablo-text);font-weight:500;font-size:14px}.group-actions[data-v-1b5971d9]{display:flex;gap:12px;align-items:center}.action-btn[data-v-1b5971d9]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;color:var(--diablo-text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);white-space:nowrap;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.action-btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow);transform:translateY(-1px)}.action-btn svg[data-v-1b5971d9]{width:16px;height:16px}.action-btn.action-btn-danger[data-v-1b5971d9]{border-color:var(--glass-border);color:#e74c3c}.action-btn.action-btn-danger[data-v-1b5971d9]:hover{background:#e74c3c26;border-color:#e74c3c;color:#e74c3c;box-shadow:var(--glass-shadow-hover),0 0 12px #e74c3c4d}.action-btn.action-btn-success[data-v-1b5971d9]{border-color:var(--glass-border);color:#27ae60}.action-btn.action-btn-success[data-v-1b5971d9]:hover{background:#27ae6026;border-color:#27ae60;color:#27ae60;box-shadow:var(--glass-shadow-hover),0 0 12px #27ae604d}.action-btn.action-btn-warning[data-v-1b5971d9]{border-color:var(--glass-border);color:#f39c12}.action-btn.action-btn-warning[data-v-1b5971d9]:hover{background:#f39c1226;border-color:#f39c12;color:#f39c12;box-shadow:var(--glass-shadow-hover),0 0 12px #f39c124d}.batch-toolbar[data-v-1b5971d9]{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;padding:14px 20px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow);align-items:center}.batch-toolbar-label[data-v-1b5971d9]{color:var(--diablo-text-muted);font-size:13px;font-weight:500}.batch-actions[data-v-1b5971d9]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.table-action-btn[data-v-1b5971d9]{display:flex;align-items:center;justify-content:center;padding:6px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;color:var(--diablo-text-muted);cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);margin:0 2px}.table-action-btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow);transform:translateY(-1px)}.table-action-btn svg[data-v-1b5971d9]{width:16px;height:16px}.table-action-btn.action-btn-danger[data-v-1b5971d9]{border-color:var(--glass-border);color:#e74c3c}.table-action-btn.action-btn-danger[data-v-1b5971d9]:hover{background:#e74c3c26;border-color:#e74c3c;color:#e74c3c;box-shadow:var(--glass-shadow-hover),0 0 12px #e74c3c4d}.table-action-btn.action-btn-success[data-v-1b5971d9]{border-color:var(--glass-border);color:#27ae60}.table-action-btn.action-btn-success[data-v-1b5971d9]:hover{background:#27ae6026;border-color:#27ae60;color:#27ae60;box-shadow:var(--glass-shadow-hover),0 0 12px #27ae604d}.table-action-btn.action-btn-warning[data-v-1b5971d9]{border-color:var(--glass-border);color:#f39c12}.table-action-btn.action-btn-warning[data-v-1b5971d9]:hover{background:#f39c1226;border-color:#f39c12;color:#f39c12;box-shadow:var(--glass-shadow-hover),0 0 12px #f39c124d}.page-title-wrapper[data-v-1b5971d9]{display:flex;align-items:center;gap:16px}.page-icon[data-v-1b5971d9]{font-size:36px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.page-title[data-v-1b5971d9]{font-size:20px;font-weight:600;color:var(--diablo-text);margin:0;letter-spacing:-.3px}.page-description[data-v-1b5971d9]{color:var(--diablo-text-muted);font-size:14px;font-style:italic}.toolbar[data-v-1b5971d9]{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;padding:16px 20px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.toolbar-left[data-v-1b5971d9]{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.btn[data-v-1b5971d9]{padding:8px 16px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--diablo-text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:inline-flex;align-items:center;gap:6px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow);transform:translateY(-1px)}.btn-primary[data-v-1b5971d9]{background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border)}.btn-primary[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.btn-danger[data-v-1b5971d9]{border-color:var(--glass-border);color:#e74c3c}.btn-danger[data-v-1b5971d9]:hover{background:#e74c3c26;border-color:#e74c3c;color:#e74c3c}.btn-success[data-v-1b5971d9]{border-color:var(--glass-border);color:#27ae60}.btn-success[data-v-1b5971d9]:hover{background:#27ae6026;border-color:#27ae60;color:#27ae60}.btn-cancel[data-v-1b5971d9]:hover{background:var(--glass-bg-hover)}.btn-small[data-v-1b5971d9]{padding:4px 8px;font-size:11px}.form-select[data-v-1b5971d9],.form-input[data-v-1b5971d9]{padding:8px 12px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:13px;transition:all .2s ease;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.form-select[data-v-1b5971d9]:hover,.form-input[data-v-1b5971d9]:hover{border-color:var(--glass-border-hover)}.form-select[data-v-1b5971d9]:focus,.form-input[data-v-1b5971d9]:focus{outline:none;border-color:var(--glass-border-glow);box-shadow:0 0 8px var(--glass-border-glow)}.task-list-container[data-v-1b5971d9]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.task-table-wrapper[data-v-1b5971d9]{overflow-x:auto}.task-table[data-v-1b5971d9]{width:100%;border-collapse:collapse;table-layout:fixed}.task-table th[data-v-1b5971d9],.task-table td[data-v-1b5971d9]{padding:10px 8px;text-align:left;border-bottom:1px solid var(--glass-border);font-size:13px;white-space:nowrap;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;color:var(--diablo-text)}.task-table th[data-v-1b5971d9]{background:var(--diablo-bg-dark);color:var(--diablo-text-muted);font-weight:600;white-space:nowrap;font-size:12px;overflow:visible;position:sticky;top:0;z-index:10;backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4)}.task-table tbody tr[data-v-1b5971d9]{transition:background .15s ease}.task-table tbody tr[data-v-1b5971d9]:hover{background:var(--glass-bg-hover)}.checkbox-column[data-v-1b5971d9]{width:50px;text-align:center}.index-column[data-v-1b5971d9]{width:60px;text-align:center}.actions-column[data-v-1b5971d9]{white-space:nowrap}.btn-text[data-v-1b5971d9]{background:none;border:none;color:var(--diablo-primary);padding:4px 8px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-text[data-v-1b5971d9]:hover{background:#0a84ff1a;color:var(--diablo-primary);text-decoration:underline}.btn-text-danger[data-v-1b5971d9]{color:#e74c3c}.btn-text-danger[data-v-1b5971d9]:hover{background:#e74c3c1a;color:#c0392b;text-decoration:underline}.modal-overlay[data-v-1b5971d9]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--diablo-shadow);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-content[data-v-1b5971d9]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.modal-large-content[data-v-1b5971d9]{max-width:1000px}.modal-body-large[data-v-1b5971d9]{max-height:80vh}.modal-title[data-v-1b5971d9]{margin:0;font-size:18px;color:var(--diablo-text);font-weight:600}.dialog-header[data-v-1b5971d9]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--glass-border)}.close-btn[data-v-1b5971d9]{background:transparent;border:none;color:var(--diablo-text-muted);cursor:pointer;padding:4px;transition:all .3s ease}.close-btn[data-v-1b5971d9]:hover{color:var(--diablo-text);background:var(--glass-bg-hover);border-radius:8px}.modal-body[data-v-1b5971d9]{padding:20px}.modal-body-large[data-v-1b5971d9]{max-height:70vh;overflow-y:auto}.modal-footer[data-v-1b5971d9]{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid var(--glass-border)}.cancel-btn[data-v-1b5971d9],.confirm-btn[data-v-1b5971d9]{padding:12px 24px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.cancel-btn[data-v-1b5971d9]{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text-muted)}.cancel-btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover)}.confirm-btn[data-v-1b5971d9]{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text)}.confirm-btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.confirm-btn[data-v-1b5971d9]:disabled{opacity:.5;cursor:not-allowed}.form-group[data-v-1b5971d9]{margin-bottom:20px}.form-group label[data-v-1b5971d9]{display:block;margin-bottom:8px;font-size:14px;color:var(--diablo-text);font-weight:500}.checkbox-group[data-v-1b5971d9]{display:flex;flex-wrap:wrap;gap:16px}.checkbox-group label[data-v-1b5971d9]{display:flex;align-items:center;gap:4px;font-size:14px;color:var(--diablo-text);font-weight:500}.form-section[data-v-1b5971d9]{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--diablo-border)}.form-row[data-v-1b5971d9]{display:flex;align-items:flex-start;margin-bottom:20px;flex-wrap:wrap}.form-col[data-v-1b5971d9]{padding:4px 8px;min-width:150px}.form-col-label[data-v-1b5971d9]{min-width:200px}.form-col-spacer[data-v-1b5971d9]{min-width:80px;display:flex;align-items:center}.form-col-small[data-v-1b5971d9]{min-width:120px;display:flex;align-items:center}.form-col-edit[data-v-1b5971d9]{min-width:100px;display:flex;align-items:center}.form-col-playmode[data-v-1b5971d9]{min-width:250px}.form-col-playcount[data-v-1b5971d9]{min-width:300px}.date-row[data-v-1b5971d9]{display:flex;gap:16px}.date-col[data-v-1b5971d9]{flex:1;min-width:0}.transfer-row[data-v-1b5971d9],.transfer-row .transfer-section[data-v-1b5971d9]{width:100%}.play-count-row[data-v-1b5971d9]{display:flex;align-items:center;gap:8px}.form-section .form-row .form-col[data-v-1b5971d9]{margin-bottom:0}.form-section .form-row .form-col label[data-v-1b5971d9]{display:block;margin-bottom:8px;font-size:14px;color:var(--diablo-text);font-weight:500}.form-section .form-row .form-col .form-input[data-v-1b5971d9],.form-section .form-row .form-col .form-select[data-v-1b5971d9]{width:100%;min-width:200px}.form-section[data-v-1b5971d9]:last-child{border-bottom:none}.section-title[data-v-1b5971d9]{margin:30px 0 20px;font-size:16px;font-weight:600;color:var(--diablo-text)}.char-count[data-v-1b5971d9]{font-size:12px;color:var(--diablo-text-muted);margin-left:8px}.transfer-section[data-v-1b5971d9]{background:var(--diablo-bg-input);padding:16px;border-radius:4px}.transfer-container[data-v-1b5971d9]{display:flex;gap:20px;margin-bottom:16px}.transfer-panel[data-v-1b5971d9]{flex:1;border:1px solid var(--diablo-border);border-radius:4px;overflow:hidden}.transfer-header[data-v-1b5971d9]{padding:12px;background:var(--diablo-bg-card);border-bottom:1px solid var(--diablo-border);font-weight:600;color:var(--diablo-text)}.transfer-search[data-v-1b5971d9]{padding:8px;border-bottom:1px solid var(--diablo-border)}.transfer-search-input[data-v-1b5971d9]{width:100%;padding:6px 10px;border:1px solid var(--diablo-border);border-radius:4px;background:var(--diablo-bg-input);color:var(--diablo-text);font-size:13px;box-sizing:border-box;outline:none;transition:border-color .2s ease}.transfer-search-input[data-v-1b5971d9]:focus{border-color:var(--diablo-primary)}.transfer-search-input[data-v-1b5971d9]::placeholder{color:var(--diablo-text-muted)}.transfer-empty[data-v-1b5971d9]{padding:16px;text-align:center;color:var(--diablo-text-muted);font-size:13px}.transfer-body[data-v-1b5971d9]{height:260px;overflow-y:auto;padding:8px}.transfer-item[data-v-1b5971d9]{padding:8px;border-bottom:1px solid var(--diablo-border)}.transfer-item-clickable[data-v-1b5971d9]{cursor:pointer;transition:background .15s ease}.transfer-item-clickable[data-v-1b5971d9]{cursor:pointer}.transfer-item-clickable[data-v-1b5971d9]:hover{background:var(--glass-bg-hover)}.file-list-row[data-v-1b5971d9]{display:flex;align-items:center;gap:8px;cursor:pointer}.file-list-name[data-v-1b5971d9]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list-len[data-v-1b5971d9]{font-size:10px;color:var(--diablo-text-muted);flex-shrink:0}.transfer-footer[data-v-1b5971d9]{padding:8px;border-top:1px solid var(--diablo-border);font-size:12px;color:var(--diablo-text-muted);text-align:center}.file-item-info[data-v-1b5971d9]{display:flex;align-items:center;flex:1;min-width:0}.file-item-len[data-v-1b5971d9]{font-size:10px;color:var(--diablo-text-muted);flex-shrink:0}.transfer-item label[data-v-1b5971d9]{display:flex;align-items:center;gap:8px;color:var(--diablo-text);cursor:pointer}.file-item[data-v-1b5971d9]{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background:var(--diablo-bg-card);border-radius:4px;margin-bottom:4px}.file-actions[data-v-1b5971d9]{display:flex;gap:4px}.file-action-btn[data-v-1b5971d9]{padding:2px 6px;border:1px solid var(--diablo-border);border-radius:3px;background:var(--diablo-bg-input);color:var(--diablo-text);font-size:11px;cursor:pointer;transition:all .2s ease}.file-action-btn[data-v-1b5971d9]:hover:not(:disabled){background:var(--diablo-bg-card);color:var(--diablo-primary)}.file-action-btn[data-v-1b5971d9]:disabled{opacity:.3;cursor:not-allowed}.file-action-btn.btn-remove[data-v-1b5971d9]{color:#e74c3c}.time-range[data-v-1b5971d9]{display:flex;align-items:center;gap:8px}.advanced-toggle[data-v-1b5971d9]{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;color:var(--diablo-text-muted);font-size:13px;font-weight:500;border:1px dashed var(--glass-border);border-radius:8px;transition:all .3s ease;-webkit-user-select:none;user-select:none}.advanced-toggle svg[data-v-1b5971d9]{transition:transform .3s ease;flex-shrink:0}.advanced-toggle svg.rotated[data-v-1b5971d9]{transform:rotate(180deg)}.advanced-toggle[data-v-1b5971d9]:hover{color:var(--diablo-primary);border-color:var(--diablo-primary);background:#0a84ff0a}.advanced-content[data-v-1b5971d9]{animation:slideDown-1b5971d9 .2s ease}@keyframes slideDown-1b5971d9{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.play-settings-area[data-v-1b5971d9]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;padding:16px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.play-settings-grid[data-v-1b5971d9]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:16px}.duration-display-row[data-v-1b5971d9]{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:10px;margin-bottom:16px}.duration-label[data-v-1b5971d9]{font-size:13px;font-weight:500;color:var(--diablo-text-muted)}.duration-value[data-v-1b5971d9]{font-size:14px;font-weight:600;color:var(--diablo-primary)}.duration-bracket[data-v-1b5971d9]{font-size:12px;color:var(--diablo-text-muted)}.duration-formula[data-v-1b5971d9]{font-size:11px;color:var(--diablo-text-muted);opacity:.7;margin-left:auto}.file-search-container[data-v-1b5971d9]{margin-bottom:16px}.file-search-input[data-v-1b5971d9]{width:100%}.modal-play-content[data-v-1b5971d9]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;max-height:450px}.file-selector[data-v-1b5971d9],.selected-files-panel[data-v-1b5971d9]{border:1px solid var(--glass-border);border-radius:12px;padding:16px;background:var(--glass-bg);display:flex;flex-direction:column;max-height:450px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.file-selector h4[data-v-1b5971d9],.selected-files-panel h4[data-v-1b5971d9]{margin:0 0 12px;color:var(--diablo-text);font-size:14px;flex-shrink:0}.file-list-content[data-v-1b5971d9],.selected-files-content[data-v-1b5971d9]{flex:1;overflow-y:auto;overflow-x:hidden;padding-right:8px;min-height:100px;max-height:380px}.file-list-content[data-v-1b5971d9]::-webkit-scrollbar,.selected-files-content[data-v-1b5971d9]::-webkit-scrollbar{width:8px}.file-list-content[data-v-1b5971d9]::-webkit-scrollbar-track,.selected-files-content[data-v-1b5971d9]::-webkit-scrollbar-track{background:transparent;border-radius:4px}.file-list-content[data-v-1b5971d9]::-webkit-scrollbar-thumb,.selected-files-content[data-v-1b5971d9]::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:4px}.file-list-content[data-v-1b5971d9]::-webkit-scrollbar-thumb:hover,.selected-files-content[data-v-1b5971d9]::-webkit-scrollbar-thumb:hover{background:var(--glass-border-hover)}.file-selector .file-item[data-v-1b5971d9]{display:block;padding:10px;margin-bottom:8px;border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);border:1px solid var(--glass-border)}.file-selector .file-item[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translate(4px);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow)}.file-selector .file-item.file-selected[data-v-1b5971d9]{border-color:var(--glass-border-hover);background:var(--glass-tint);box-shadow:0 0 12px var(--glass-border-glow),var(--glass-inner-glow)}.file-info[data-v-1b5971d9]{display:flex;flex-direction:column;gap:4px}.file-name[data-v-1b5971d9]{font-size:13px;font-weight:500;word-break:break-all}.file-meta[data-v-1b5971d9]{display:flex;gap:12px;font-size:12px;color:var(--diablo-text-muted)}.selected-file-item[data-v-1b5971d9]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:8px;border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border);cursor:move;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.selected-file-item[data-v-1b5971d9]:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-hover);box-shadow:var(--glass-shadow),0 0 12px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-1px)}.selected-file-info[data-v-1b5971d9]{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.file-number[data-v-1b5971d9]{font-size:12px;font-weight:600;color:var(--diablo-primary);min-width:20px;flex-shrink:0}.selected-file-item .file-name[data-v-1b5971d9]{font-size:13px;word-break:break-all}.play-empty-files[data-v-1b5971d9]{text-align:center;padding:40px 20px;color:var(--diablo-text-muted)}.play-empty-files p[data-v-1b5971d9]{margin:4px 0;font-size:13px}.play-empty-files .hint[data-v-1b5971d9]{font-size:12px;opacity:.7}.selected-tasks-list[data-v-1b5971d9]{max-height:200px;overflow-y:auto;border:1px solid var(--diablo-border);border-radius:4px;padding:12px;background:var(--diablo-bg-input)}.selected-task-item[data-v-1b5971d9]{padding:6px 8px;border-bottom:1px solid var(--diablo-border);color:var(--diablo-text);font-size:13px}.selected-task-item[data-v-1b5971d9]:last-child{border-bottom:none}.form-hint[data-v-1b5971d9]{margin:8px 0 0;font-size:12px;color:var(--diablo-text-muted);line-height:1.5}.hint-detail[data-v-1b5971d9]{color:var(--diablo-text-muted)}.date-hint[data-v-1b5971d9]{margin-top:8px;padding:10px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;font-size:12px;color:var(--diablo-text-muted);line-height:1.6}.task-form-grid[data-v-1b5971d9]{margin-bottom:20px}.task-form-section[data-v-1b5971d9]{display:flex;flex-direction:column;gap:16px}.form-row-2[data-v-1b5971d9]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-4[data-v-1b5971d9]{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px}.form-field[data-v-1b5971d9]{display:flex;flex-direction:column;gap:6px}.form-field label[data-v-1b5971d9]{font-size:12px;font-weight:500;color:var(--diablo-text-muted)}.form-field .form-input[data-v-1b5971d9],.form-field .form-select[data-v-1b5971d9]{width:100%}.device-select-area[data-v-1b5971d9]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;padding:16px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow);margin-bottom:24px}.device-search-bar[data-v-1b5971d9]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.device-search-bar .form-input[data-v-1b5971d9]{flex:1}.search-stats[data-v-1b5971d9]{font-size:12px;color:var(--diablo-text-muted);white-space:nowrap}.device-check-grid[data-v-1b5971d9]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px;max-height:200px;overflow-y:auto;padding-right:8px}.device-check-item[data-v-1b5971d9]{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--glass-border);border-radius:8px;cursor:pointer;transition:all .3s cubic-bezier(.25,.46,.45,.94);background:var(--glass-bg);font-size:13px;color:var(--diablo-text)}.device-check-item input[type=checkbox][data-v-1b5971d9]{accent-color:var(--diablo-primary)}.device-check-item[data-v-1b5971d9]:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-hover);box-shadow:0 0 10px var(--glass-border-glow)}.device-check-item.checked[data-v-1b5971d9]{border-color:var(--diablo-primary);background:#0a84ff14}.weekday-checkboxes[data-v-1b5971d9]{display:flex;flex-wrap:wrap;gap:8px}.weekday-chip[data-v-1b5971d9]{display:flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid var(--glass-border);border-radius:20px;cursor:pointer;font-size:13px;color:var(--diablo-text-muted);transition:all .3s ease;background:var(--glass-bg)}.weekday-chip input[type=checkbox][data-v-1b5971d9]{display:none}.weekday-chip[data-v-1b5971d9]:hover{border-color:var(--glass-border-hover);color:var(--diablo-text)}.weekday-chip.active[data-v-1b5971d9]{border-color:var(--diablo-primary);background:#0a84ff1a;color:var(--diablo-primary);box-shadow:0 0 8px #0a84ff26}.section-title .section-count[data-v-1b5971d9]{font-size:12px;color:var(--diablo-primary);font-weight:500}.duration-input-group[data-v-1b5971d9]{display:flex;gap:8px;align-items:center}.duration-input-group .duration-input[data-v-1b5971d9]{flex:1}.toggle-quick-btn[data-v-1b5971d9]{padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;color:var(--diablo-text-muted);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .2s ease}.toggle-quick-btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);color:var(--diablo-text)}.duration-presets[data-v-1b5971d9]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:8px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px}.duration-preset-btn[data-v-1b5971d9]{padding:4px 10px;background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:6px;color:var(--diablo-text);font-size:12px;cursor:pointer;transition:all .2s ease}.duration-preset-btn[data-v-1b5971d9]:hover{border-color:var(--diablo-primary);color:var(--diablo-primary);background:#0a84ff14}.duration-preset-btn.active[data-v-1b5971d9]{border-color:var(--diablo-primary);background:#0a84ff1f;color:var(--diablo-primary);font-weight:600}.task-table-scroll[data-v-1b5971d9]{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 280px)}.col-checkbox[data-v-1b5971d9]{width:40px;text-align:center}.col-index[data-v-1b5971d9]{width:44px;text-align:center}.col-id[data-v-1b5971d9]{width:50px}.col-name[data-v-1b5971d9]{width:auto;white-space:normal;min-width:120px}.col-time[data-v-1b5971d9]{width:80px}.col-duration[data-v-1b5971d9]{width:100px}.col-endtime[data-v-1b5971d9],.col-loop[data-v-1b5971d9]{width:80px}.col-dates[data-v-1b5971d9]{width:160px}.col-group[data-v-1b5971d9],.col-status[data-v-1b5971d9]{width:90px}.col-actions[data-v-1b5971d9]{width:260px;white-space:nowrap;overflow:visible}.col-actions .toggle-switch[data-v-1b5971d9]{display:inline-flex;align-items:center;gap:4px;margin-right:6px;vertical-align:middle}.col-actions .action-btn-group[data-v-1b5971d9]{display:inline-flex;vertical-align:middle;gap:3px}.date-sep[data-v-1b5971d9]{margin:0 4px;color:var(--diablo-text-muted)}.task-name-text[data-v-1b5971d9]{font-weight:500;color:var(--diablo-text)}.playing-badge[data-v-1b5971d9]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:10px;background:#3498db26;color:#3498db;font-size:11px;font-weight:600;border:1px solid rgba(52,152,219,.3);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.playing-dot[data-v-1b5971d9]{width:6px;height:6px;border-radius:50%;background:#3498db;box-shadow:0 0 8px #3498dbcc;animation:playingPulse-1b5971d9 1.2s ease-in-out infinite}@keyframes playingPulse-1b5971d9{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.disabled-badge[data-v-1b5971d9]{display:inline-flex;margin-left:8px;padding:2px 8px;border-radius:10px;background:#95a5a626;color:#95a5a6;font-size:11px;font-weight:500;border:1px solid rgba(149,165,166,.3)}.row-selected td[data-v-1b5971d9]{background:var(--glass-bg-active)!important}.row-playing td[data-v-1b5971d9]{background:#3498db0d}.row-disabled[data-v-1b5971d9]{opacity:.6}.action-btn-group[data-v-1b5971d9]{display:flex;gap:4px;align-items:center}.row-action-btn[data-v-1b5971d9]{display:flex;align-items:center;justify-content:center;padding:4px 6px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:6px;color:var(--diablo-text-muted);cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.row-action-btn[data-v-1b5971d9]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 8px var(--glass-border-glow);transform:translateY(-1px)}.row-action-btn.btn-danger[data-v-1b5971d9]{color:#e74c3c}.row-action-btn.btn-danger[data-v-1b5971d9]:hover{background:#e74c3c26;border-color:#e74c3c;box-shadow:var(--glass-shadow-hover),0 0 8px #e74c3c4d}.status-btn[data-v-1b5971d9]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:10px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94);position:relative}.status-btn-play[data-v-1b5971d9]{background:#27ae601f;color:#27ae60;border-color:#27ae604d}.status-btn-play[data-v-1b5971d9]:hover{background:#27ae6033;border-color:#27ae60;box-shadow:0 0 12px #27ae604d;transform:translateY(-1px)}.status-btn-stop[data-v-1b5971d9]{background:#3498db1f;color:#3498db;border-color:#3498db4d}.status-btn-stop[data-v-1b5971d9]:hover{background:#3498db33;border-color:#3498db;box-shadow:0 0 12px #3498db4d;transform:translateY(-1px)}.status-pulse-ring[data-v-1b5971d9]{position:absolute;top:50%;left:8px;width:8px;height:8px;border-radius:50%;border:2px solid #3498db;transform:translateY(-50%);animation:statusRing-1b5971d9 1.5s ease-out infinite}@keyframes statusRing-1b5971d9{0%{width:8px;height:8px;opacity:1}to{width:20px;height:20px;opacity:0}}.toggle-switch[data-v-1b5971d9]{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0}.toggle-switch input[type=checkbox][data-v-1b5971d9]{display:none}.toggle-switch input[type=checkbox]:checked~.toggle-track[data-v-1b5971d9]{background:var(--diablo-primary);border-color:var(--diablo-primary)}.toggle-switch input[type=checkbox]:checked~.toggle-track[data-v-1b5971d9]:after{left:18px;background:#fff}.toggle-track[data-v-1b5971d9]{position:relative;width:36px;height:20px;border-radius:10px;background:var(--glass-bg);border:1px solid var(--glass-border);transition:all .3s ease;flex-shrink:0}.toggle-track[data-v-1b5971d9]:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--diablo-text-muted);transition:all .3s ease;box-shadow:var(--glass-shadow)}.toggle-label[data-v-1b5971d9]{font-size:11px;color:var(--diablo-text-muted);white-space:nowrap}.empty-cell[data-v-1b5971d9]{padding:0}.empty-state[data-v-1b5971d9]{padding:60px 40px;color:var(--diablo-text-muted);text-align:center;font-size:14px}.modal-large[data-v-1b5971d9]{padding:10px}.message-toast[data-v-1b5971d9]{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:10px;color:#fff;font-weight:500;z-index:9999;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.message-toast.success[data-v-1b5971d9]{background:#27ae60e6}.message-toast.error[data-v-1b5971d9]{background:#e74c3ce6}.copy-config-grid[data-v-1b5971d9]{display:flex;flex-direction:column;gap:16px}.copy-config-row[data-v-1b5971d9]{display:flex;align-items:center;gap:16px}.copy-config-label[data-v-1b5971d9]{width:140px;flex-shrink:0;font-size:13px;font-weight:500;color:var(--diablo-text)}.copy-config-control[data-v-1b5971d9]{display:flex;align-items:center;gap:6px;flex:1}.copy-step-btn[data-v-1b5971d9]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text-muted);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;flex-shrink:0}.copy-step-btn[data-v-1b5971d9]:hover:not(:disabled){background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover)}.copy-step-btn[data-v-1b5971d9]:disabled{opacity:.3;cursor:not-allowed}.copy-step-btn.copy-step-success[data-v-1b5971d9]{border-color:#27ae6066;color:#27ae60}.copy-step-btn.copy-step-success[data-v-1b5971d9]:hover:not(:disabled){background:#27ae6026;border-color:#27ae60}.copy-step-btn.copy-step-danger[data-v-1b5971d9]{border-color:#e74c3c66;color:#e74c3c}.copy-step-btn.copy-step-danger[data-v-1b5971d9]:hover:not(:disabled){background:#e74c3c26;border-color:#e74c3c}.copy-count-input[data-v-1b5971d9]{width:60px;height:32px;text-align:center;padding:0 4px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:14px;font-weight:600;outline:none;flex-shrink:0;-moz-appearance:textfield}.copy-count-input[data-v-1b5971d9]:focus{border-color:var(--glass-border-glow);box-shadow:0 0 8px var(--glass-border-glow)}.copy-count-input[data-v-1b5971d9]::-webkit-inner-spin-button,.copy-count-input[data-v-1b5971d9]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.copy-name-input[data-v-1b5971d9]{flex:1;max-width:300px}.copy-interval-unit[data-v-1b5971d9]{font-size:12px;color:var(--diablo-text-muted);white-space:nowrap}.copy-preview-section[data-v-1b5971d9]{border-top:1px solid var(--glass-border);padding-top:12px}.copy-preview-table th[data-v-1b5971d9],.copy-preview-table td[data-v-1b5971d9]{padding:8px 10px}.copy-inline-input[data-v-1b5971d9]{padding:4px 8px!important;font-size:13px;height:30px;width:100%}.view-mode-toggle[data-v-1b5971d9]{display:flex;border:1px solid var(--glass-border);border-radius:8px;overflow:hidden;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.view-mode-btn[data-v-1b5971d9]{display:flex;align-items:center;justify-content:center;padding:6px 10px;background:transparent;border:none;color:var(--diablo-text-muted);cursor:pointer;transition:all .2s ease}.view-mode-btn.active[data-v-1b5971d9]{background:var(--glass-bg-hover);color:var(--diablo-primary)}.view-mode-btn[data-v-1b5971d9]:hover:not(.active){color:var(--diablo-text);background:var(--glass-bg)}.card-scroll[data-v-1b5971d9]{padding:16px;max-height:calc(100vh - 280px);overflow-y:auto}.task-card-grid[data-v-1b5971d9]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.task-card[data-v-1b5971d9]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:16px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow);display:flex;flex-direction:column;gap:12px;position:relative}.task-card[data-v-1b5971d9]:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-2px)}.task-card.card-selected[data-v-1b5971d9]{border-color:var(--diablo-primary);background:#0a84ff0f;box-shadow:0 0 12px #0a84ff33,var(--glass-inner-glow)}.task-card.card-disabled[data-v-1b5971d9]{opacity:.55}.task-card.card-playing[data-v-1b5971d9]{border-color:#3498db66;box-shadow:0 0 16px #3498db26,var(--glass-inner-glow)}.task-card.card-conflict[data-v-1b5971d9]{border-left:3px solid #e67e22;background:#e74c3c0f}.task-card-header[data-v-1b5971d9]{display:flex;align-items:center;gap:8px}.task-card-header .task-card-id[data-v-1b5971d9]{font-size:12px;font-weight:600;color:var(--diablo-text-muted);margin-left:auto}.task-card-header .task-card-actions[data-v-1b5971d9]{display:flex;gap:4px;margin-left:auto}.task-card-name[data-v-1b5971d9]{font-size:14px;font-weight:600;color:var(--diablo-text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-card-time-bar[data-v-1b5971d9]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.task-card-time-bar .time-label[data-v-1b5971d9]{font-size:13px;font-weight:500;color:var(--diablo-text)}.task-card-time-bar .time-arrow[data-v-1b5971d9]{color:var(--diablo-text-muted);font-size:12px}.task-card-time-bar .time-duration[data-v-1b5971d9]{margin-left:auto;font-size:12px;color:var(--diablo-primary);font-weight:500}.task-card-info[data-v-1b5971d9]{display:flex;flex-direction:column;gap:6px}.task-card-info-row[data-v-1b5971d9]{display:flex;align-items:center;gap:6px;font-size:13px}.task-card-info-row .info-label[data-v-1b5971d9]{color:var(--diablo-text-muted);min-width:60px;flex-shrink:0}.task-card-info-row .info-value[data-v-1b5971d9]{color:var(--diablo-text)}.task-card-footer[data-v-1b5971d9]{display:flex;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--glass-border)}.conflict-badge[data-v-1b5971d9]{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding:2px 8px;border-radius:10px;background:#e74c3c1f;color:#e67e22;font-size:11px;font-weight:600;border:1px solid rgba(231,76,60,.3)}.row-conflict td[data-v-1b5971d9]{background:#e74c3c0f!important}.row-conflict:hover td[data-v-1b5971d9]{background:#e74c3c1a!important}@media (max-width: 768px){.task-manage[data-v-1b5971d9]{padding:10px}.page-header[data-v-1b5971d9]{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:12px}.page-title[data-v-1b5971d9]{font-size:17px}.header-actions[data-v-1b5971d9]{flex-wrap:wrap;width:100%;gap:6px}.add-btn[data-v-1b5971d9]{flex:1;justify-content:center;min-width:0;font-size:12px;padding:8px 10px}.add-btn svg[data-v-1b5971d9]{width:14px;height:14px}.filter-section[data-v-1b5971d9]{flex-direction:column;gap:10px;padding:12px}.filter-group[data-v-1b5971d9]{width:100%}.filter-section input[data-v-1b5971d9],.filter-section select[data-v-1b5971d9],.form-select[data-v-1b5971d9]{font-size:16px;width:100%}.group-actions[data-v-1b5971d9]{flex-wrap:wrap;width:100%;gap:6px}.group-actions .action-btn[data-v-1b5971d9]{flex:1;min-width:calc(50% - 6px);justify-content:center;font-size:11px;padding:8px 6px;gap:4px}.group-actions .action-btn svg[data-v-1b5971d9]{width:14px;height:14px}.batch-toolbar[data-v-1b5971d9]{flex-direction:column;gap:8px;padding:10px 12px}.batch-toolbar-label[data-v-1b5971d9]{font-size:12px}.batch-actions[data-v-1b5971d9]{flex-wrap:wrap;gap:4px}.batch-actions .action-btn[data-v-1b5971d9]{font-size:10px;padding:6px 8px;gap:3px}.batch-actions .action-btn svg[data-v-1b5971d9]{width:12px;height:12px}.task-table-scroll[data-v-1b5971d9]{overflow-x:auto;-webkit-overflow-scrolling:touch}.task-table[data-v-1b5971d9]{min-width:700px}.task-card-grid[data-v-1b5971d9]{grid-template-columns:1fr;gap:10px}.task-card[data-v-1b5971d9]{padding:12px;border-radius:12px}.task-card-header[data-v-1b5971d9]{gap:6px}.task-card-actions .row-action-btn[data-v-1b5971d9]{width:30px;height:30px;padding:5px}.task-card-name[data-v-1b5971d9]{font-size:14px}.task-card-time-bar[data-v-1b5971d9]{padding:6px 10px;gap:6px;font-size:12px;flex-wrap:wrap}.time-duration[data-v-1b5971d9]{margin-left:auto}.task-card-info-row[data-v-1b5971d9]{font-size:12px}.status-btn[data-v-1b5971d9]{padding:8px 14px;font-size:12px;gap:6px;border-radius:10px}.status-btn svg[data-v-1b5971d9]{width:16px;height:16px}.modal-overlay[data-v-1b5971d9]{align-items:flex-end;padding:0}.modal-content[data-v-1b5971d9]{width:100%;max-width:100%;max-height:92vh;border-radius:16px 16px 0 0}.modal-large-content[data-v-1b5971d9]{max-width:100%;max-height:95vh}.dialog-header[data-v-1b5971d9],.modal-content .dialog-header[data-v-1b5971d9]{padding:14px 16px;border-radius:16px 16px 0 0}.dialog-header h3[data-v-1b5971d9]{font-size:16px}.modal-body[data-v-1b5971d9]{padding:14px 16px}.modal-body-large[data-v-1b5971d9]{max-height:calc(92vh - 130px)}.modal-footer[data-v-1b5971d9]{padding:12px 16px;gap:8px}.modal-footer .btn[data-v-1b5971d9]{flex:1;text-align:center;padding:10px 16px;font-size:14px}.transfer-container[data-v-1b5971d9]{flex-direction:column;gap:12px}.transfer-body[data-v-1b5971d9]{height:160px;max-height:160px}.transfer-item[data-v-1b5971d9]{padding:8px 10px;font-size:14px}.task-form-area[data-v-1b5971d9]{padding:14px}.form-grid[data-v-1b5971d9]{grid-template-columns:1fr}.form-grid input[data-v-1b5971d9],.form-grid select[data-v-1b5971d9],.task-form-area input[data-v-1b5971d9],.task-form-area select[data-v-1b5971d9],.task-form-area .form-input[data-v-1b5971d9]{font-size:16px}.device-grid[data-v-1b5971d9]{grid-template-columns:1fr;max-height:200px}.dialog-overlay[data-v-1b5971d9]{padding:0;align-items:flex-end}.dialog[data-v-1b5971d9]{max-width:100%;width:100%;max-height:92vh;border-radius:16px 16px 0 0}.dialog-body[data-v-1b5971d9]{padding:14px 16px;max-height:calc(92vh - 120px);overflow-y:auto}.dialog-header[data-v-1b5971d9]{padding:14px 16px}.dialog-header h3[data-v-1b5971d9]{font-size:15px}.dialog-footer[data-v-1b5971d9]{padding:12px 16px}.duration-display-row[data-v-1b5971d9]{flex-direction:column;gap:4px}.toggle-switch .toggle-track[data-v-1b5971d9]{width:40px;height:22px}.toggle-switch .toggle-track[data-v-1b5971d9]:after{width:18px;height:18px}.row-action-btn[data-v-1b5971d9]{width:30px;height:30px;padding:5px}.confirm-dialog[data-v-1b5971d9]{min-width:unset;width:90%;max-width:95vw}.task-form-section[data-v-1b5971d9]{gap:12px}.form-row-2[data-v-1b5971d9]{grid-template-columns:1fr;gap:10px}.form-row-4[data-v-1b5971d9]{grid-template-columns:1fr 1fr;gap:10px}.weekday-checkboxes[data-v-1b5971d9]{gap:6px}.weekday-chip[data-v-1b5971d9]{padding:5px 10px;font-size:12px}.device-select-area[data-v-1b5971d9]{padding:12px}.device-search-bar[data-v-1b5971d9]{flex-direction:column;align-items:stretch;gap:6px}.device-check-grid[data-v-1b5971d9]{grid-template-columns:1fr 1fr;gap:6px;max-height:180px}.device-check-item[data-v-1b5971d9]{padding:8px;font-size:12px}.modal-play-content[data-v-1b5971d9]{grid-template-columns:1fr;max-height:none;gap:12px}.file-selector[data-v-1b5971d9],.selected-files-panel[data-v-1b5971d9]{max-height:220px;padding:10px}.file-selector h4[data-v-1b5971d9],.selected-files-panel h4[data-v-1b5971d9]{font-size:13px;margin-bottom:8px}.file-list-content[data-v-1b5971d9],.selected-files-content[data-v-1b5971d9]{max-height:150px;min-height:50px}.file-selector .file-item[data-v-1b5971d9]{padding:8px 10px;margin-bottom:4px}.file-name[data-v-1b5971d9]{font-size:13px}.selected-file-item[data-v-1b5971d9]{padding:6px 8px;margin-bottom:4px}.file-action-btn[data-v-1b5971d9]{width:26px;height:26px;font-size:13px}.play-settings-area[data-v-1b5971d9]{padding:12px}.play-settings-grid[data-v-1b5971d9]{grid-template-columns:1fr;gap:10px}.section-title[data-v-1b5971d9]{margin:16px 0 10px;font-size:14px}.toggle-quick-btn[data-v-1b5971d9]{color:#0a84ff;background:#0a84ff1a;border-color:#0a84ff4d;padding:8px 12px;font-size:13px}.duration-presets[data-v-1b5971d9]{gap:6px;padding:6px}.duration-preset-btn[data-v-1b5971d9]{padding:6px 10px;font-size:12px;color:var(--diablo-text)}.duration-preset-btn.active[data-v-1b5971d9]{color:#fff;background:#0a84ff;border-color:#0a84ff}.copy-config-row[data-v-1b5971d9]{flex-direction:column;align-items:stretch;gap:6px}.copy-config-label[data-v-1b5971d9]{width:auto;font-size:12px}.copy-config-control[data-v-1b5971d9]{flex-wrap:wrap;gap:4px}.copy-step-btn[data-v-1b5971d9]{min-width:32px;height:32px;font-size:13px}.copy-count-input[data-v-1b5971d9]{width:48px;font-size:14px}.copy-inline-input[data-v-1b5971d9]{font-size:14px}.copy-preview-table[data-v-1b5971d9]{min-width:unset;font-size:12px}.copy-interval-unit[data-v-1b5971d9]{font-size:12px}.form-input[data-v-1b5971d9],.form-select[data-v-1b5971d9]{font-size:16px}.form-hint[data-v-1b5971d9]{font-size:11px}.advanced-toggle[data-v-1b5971d9]{padding:8px 0;font-size:13px}.date-hint[data-v-1b5971d9]{font-size:11px}.duration-display-row[data-v-1b5971d9]{font-size:12px;gap:4px;flex-wrap:wrap}.duration-label[data-v-1b5971d9]{font-size:12px}.duration-value[data-v-1b5971d9]{font-size:13px}.duration-bracket[data-v-1b5971d9]{font-size:10px}.duration-formula[data-v-1b5971d9]{font-size:10px;width:100%}}@media (max-width: 480px){.task-manage[data-v-1b5971d9]{padding:6px}.page-title[data-v-1b5971d9]{font-size:16px}.task-form-area[data-v-1b5971d9]{padding:10px}.group-actions .action-btn[data-v-1b5971d9]{min-width:calc(50% - 3px);font-size:10px;padding:6px 4px}.task-card[data-v-1b5971d9]{padding:10px}.task-card-name[data-v-1b5971d9]{font-size:13px}.task-card-time-bar[data-v-1b5971d9]{font-size:11px;padding:5px 8px}.device-check-grid[data-v-1b5971d9]{grid-template-columns:1fr}.file-selector[data-v-1b5971d9],.selected-files-panel[data-v-1b5971d9]{max-height:180px}.file-list-content[data-v-1b5971d9],.selected-files-content[data-v-1b5971d9]{max-height:120px}}
@@ -0,0 +1 @@
1
+ import{f as l,o as a,n as e,y as s,A as t,u as o,B as n,W as i,F as u,z as c,E as r,R as d,N as v,S as p,r as m,t as g,H as b}from"./vue-vendor-BaBirIg_.js";import{u as y}from"./index-npdYRXyk.js";import{ac as f}from"./api-C3Fyph-A.js";import{_ as h}from"./_plugin-vue_export-helper-BCo6x5W8.js";const w={class:"log-page"},k={class:"page-header"},x={class:"page-title"},C={class:"glass-section"},_={class:"toolbar-row"},z={class:"toolbar-left"},A=["value"],S={class:"toolbar-right"},F={key:0,class:"cache-size"},j={class:"glass-section log-table-section"},D={class:"table-scroll-wrap"},J={key:0,class:"data-table"},P={class:"td-time"},B={class:"td-num"},q=["title"],E={class:"td-action"},H=["onClick"],I={key:1,class:"empty-state"},K={key:0,class:"pagination-row"},L=["disabled"],N={class:"page-info"},O=["disabled"],Q={class:"modal-box audio-modal-box"},R={class:"modal-title"},U={class:"audio-player-wrap"},V={controls:"",autoplay:"",class:"audio-player"},W=["src"],G={class:"modal-actions"},M=h(l({__name:"index",setup(l){const{t:h}=y(),M=m([]),T=m(0),X=m([]),Y=m(0),Z=m(0),$=m(!0),ll=m(!0),al=m(0),el=m(0),sl=m(0),tl=m(!1),ol=m(0),nl=m({show:!1,url:"",filename:""});async function il(l){try{const a=new FormData;a.append("index",String(l)),a.append("selectid",String(T.value));const e=await f.post("/user/get_rizbyid.php",a);if(tl.value=!0,e.res&&Array.isArray(e.dataJson)){X.value=e.dataJson.map(l=>({time:l.time||"",infoname:l.infoname||"",len:l.len||"",filename:l.filename||"",url:l.url||void 0}));const a=e.outlableid||{};Y.value=a.index??0,Z.value=a.cou||0,al.value=a.findex??0,el.value=a.bindex??0,sl.value=a.userid||T.value,ol.value=e.nowsize||0,$.value=0===l||void 0===a.findex||a.findex===a.index,ll.value=(a.cou||0)<50}else X.value=[],$.value=!0,ll.value=!0}catch(a){console.error("查询日志失败:",a)}}function ul(){$.value||il(al.value)}function cl(){ll.value||il(el.value)}async function rl(l){try{const a=new FormData;a.append("days",String(l)),a.append("selectid",String(T.value)),await f.post("/user/cleanOldFilestmprtc.php",a),il(0)}catch(a){console.error("清除日志失败:",a)}}return a(()=>{!async function(){try{const l=new FormData,a=await f.post("/user/get_riziselect.php",l);a.res&&Array.isArray(a.dataJson)&&(M.value=a.dataJson.map(l=>({value:l.value,label:l.label})),M.value.length>0&&(T.value=M.value[0].value))}catch(l){console.error("获取用户列表失败:",l)}}()}),(l,a)=>(g(),e("div",w,[s("div",k,[s("h2",x,t(o(h)("menu.logs")),1)]),s("div",C,[s("div",_,[s("div",z,[n(s("select",{"onUpdate:modelValue":a[0]||(a[0]=l=>T.value=l),class:"form-input select-input"},[(g(!0),e(u,null,c(M.value,l=>(g(),e("option",{key:l.value,value:l.value},t(l.label),9,A))),128))],512),[[i,T.value]]),s("button",{class:"diablo-btn primary-btn",onClick:a[1]||(a[1]=l=>il(0))},t(o(h)("common.query")),1)]),s("div",S,[ol.value>0?(g(),e("span",F,t(o(h)("log.cacheSize"))+": "+t(ol.value)+"Kb",1)):r("",!0),s("button",{class:"toolbar-btn danger-btn",onClick:a[2]||(a[2]=l=>rl(30))},t(o(h)("log.clear30Days")),1),s("button",{class:"toolbar-btn danger-btn",onClick:a[3]||(a[3]=l=>rl(0))},t(o(h)("log.clearAll")),1)])])]),s("div",j,[s("div",D,[X.value.length>0?(g(),e("table",J,[s("thead",null,[s("tr",null,[s("th",null,t(o(h)("log.index")),1),s("th",null,t(o(h)("log.time")),1),s("th",null,t(o(h)("log.description")),1),s("th",null,t(o(h)("log.duration")),1),s("th",null,t(o(h)("log.filename")),1),s("th",null,t(o(h)("log.preview")),1)])]),s("tbody",null,[(g(!0),e(u,null,c(X.value,(l,n)=>(g(),e("tr",{key:n+"-"+l.time},[s("td",null,t(n+1),1),s("td",P,t(l.time),1),s("td",null,t(l.infoname),1),s("td",B,t(l.len),1),s("td",{class:"td-filename",title:l.filename},t(l.filename),9,q),s("td",E,[l.url?(g(),e("button",{key:0,class:"act-btn act-btn-play",onClick:a=>function(l){l.url&&(nl.value={show:!0,url:l.url,filename:l.filename})}(l)},[a[6]||(a[6]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("polygon",{points:"5 3 19 12 5 21 5 3"})],-1)),b(" "+t(o(h)("log.play")),1)],8,H)):r("",!0)])]))),128))])])):(g(),e("div",I,t(tl.value?o(h)("log.noLogs"):o(h)("log.clickQuery")),1))]),tl.value?(g(),e("div",K,[s("button",{class:"page-btn",disabled:$.value,onClick:ul}," ← "+t(o(h)("log.prevPage")),9,L),s("span",N,t(o(h)("log.currentPage"))+" "+t(Y.value)+" · "+t(X.value.length)+" "+t(o(h)("log.records")),1),s("button",{class:"page-btn",disabled:ll.value,onClick:cl},t(o(h)("log.nextPage"))+" → ",9,O)])):r("",!0)]),(g(),d(p,{to:"body"},[nl.value.show?(g(),e("div",{key:0,class:"modal-overlay",onClick:a[5]||(a[5]=v(l=>nl.value.show=!1,["self"]))},[s("div",Q,[s("div",R,t(o(h)("log.preview"))+": "+t(nl.value.filename),1),s("div",U,[s("audio",V,[s("source",{src:nl.value.url,type:"audio/mpeg"},null,8,W)])]),s("div",G,[s("button",{class:"modal-btn",onClick:a[4]||(a[4]=l=>nl.value.show=!1)},t(o(h)("common.close")),1)])])])):r("",!0)]))]))}}),[["__scopeId","data-v-4f8703bd"]]);export{M as default};
@@ -0,0 +1 @@
1
+ .account-page[data-v-c678c4d8]{padding:20px;min-height:100vh}.page-header[data-v-c678c4d8]{margin-bottom:24px}.page-title[data-v-c678c4d8]{font-size:20px;font-weight:600;color:var(--diablo-text);margin:0}.glass-section[data-v-c678c4d8]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:20px;margin-bottom:20px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.section-title[data-v-c678c4d8]{font-size:15px;font-weight:600;color:var(--diablo-text);margin:0 0 16px}.section-header[data-v-c678c4d8]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header .section-title[data-v-c678c4d8]{margin:0}.toolbar-btn[data-v-c678c4d8]{padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;transition:all .2s ease}.toolbar-btn[data-v-c678c4d8]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover)}.config-grid[data-v-c678c4d8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:16px}.config-field[data-v-c678c4d8]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.config-field label[data-v-c678c4d8]{font-size:12px;color:var(--diablo-text-muted);font-weight:500}.form-input[data-v-c678c4d8]{padding:8px 12px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:13px;transition:all .2s ease;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.form-input[data-v-c678c4d8]:hover{border-color:var(--glass-border-hover)}.form-input[data-v-c678c4d8]:focus{outline:none;border-color:var(--glass-border-glow);box-shadow:0 0 8px var(--glass-border-glow)}.mask-input[data-v-c678c4d8]{font-family:monospace;letter-spacing:1px}.register-area[data-v-c678c4d8]{display:flex;justify-content:flex-end;margin-top:16px}.register-btn[data-v-c678c4d8]{padding:10px 28px;background:#0a84ff1f;border:1px solid var(--diablo-primary);border-radius:10px;color:var(--diablo-primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.register-btn[data-v-c678c4d8]:hover:not(:disabled){background:#0a84ff33}.register-btn[data-v-c678c4d8]:disabled{opacity:.5;cursor:not-allowed}.table-wrap[data-v-c678c4d8]{overflow:auto;max-height:calc(100vh - 200px)}.data-table[data-v-c678c4d8]{width:100%;border-collapse:collapse;font-size:13px}.data-table th[data-v-c678c4d8]{text-align:left;padding:10px 12px;font-size:12px;font-weight:500;color:var(--diablo-text-muted);border-bottom:1px solid var(--glass-border);white-space:nowrap}.data-table td[data-v-c678c4d8]{padding:10px 12px;color:var(--diablo-text);border-bottom:1px solid var(--glass-border);white-space:nowrap}.data-table tr:last-child td[data-v-c678c4d8]{border-bottom:none}.td-pass[data-v-c678c4d8]{max-width:160px}.pass-cell[data-v-c678c4d8]{display:inline-flex;align-items:center;gap:6px}.pass-text[data-v-c678c4d8]{font-family:monospace;font-size:12px;color:var(--diablo-text-muted);letter-spacing:1px}.eye-btn[data-v-c678c4d8]{background:none;border:none;color:var(--diablo-text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;opacity:.5;transition:opacity .2s}.eye-btn[data-v-c678c4d8]:hover{opacity:1;color:var(--diablo-primary)}.td-time[data-v-c678c4d8]{font-size:11px;color:var(--diablo-text-muted)}.action-btns[data-v-c678c4d8]{display:flex;gap:4px;flex-wrap:nowrap}.act-btn[data-v-c678c4d8]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid transparent;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;background:transparent;opacity:.7}.act-btn[data-v-c678c4d8]:hover{opacity:1}.act-btn svg[data-v-c678c4d8]{flex-shrink:0}.act-btn-blue[data-v-c678c4d8]{color:var(--diablo-primary);border-color:#0a84ff26;background:#0a84ff0f}.act-btn-blue[data-v-c678c4d8]:hover{background:#0a84ff1f;border-color:#0a84ff4d}.act-btn-orange[data-v-c678c4d8]{color:#ff9f0a;border-color:#ff9f0a26;background:#ff9f0a0f}.act-btn-orange[data-v-c678c4d8]:hover{background:#ff9f0a1f;border-color:#ff9f0a4d}.act-btn-red[data-v-c678c4d8]{color:#ff453a;border-color:#ff453a26;background:#ff453a0f}.act-btn-red[data-v-c678c4d8]:hover{background:#ff453a1f;border-color:#ff453a4d}.status-dot[data-v-c678c4d8]{font-size:12px;padding:2px 8px;border-radius:4px}.status-normal[data-v-c678c4d8]{background:#27ae601a;color:#27ae60}.status-disabled[data-v-c678c4d8]{background:#e74c3c1a;color:#e74c3c}.empty-state[data-v-c678c4d8]{padding:30px;text-align:center;color:var(--diablo-text-muted);font-size:14px}.perm-toggle[data-v-c678c4d8]{display:inline-flex;align-items:center;cursor:pointer}.perm-toggle input[type=checkbox][data-v-c678c4d8]{width:36px;height:20px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff14;border:1px solid var(--glass-border);border-radius:10px;position:relative;cursor:pointer;transition:all .3s ease}.perm-toggle input[type=checkbox][data-v-c678c4d8]:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--diablo-text-muted);transition:all .3s ease}.perm-toggle input[type=checkbox]:checked[data-v-c678c4d8]{background:#0a84ff40;border-color:var(--diablo-primary)}.perm-toggle input[type=checkbox]:checked[data-v-c678c4d8]:after{transform:translate(16px);background:var(--diablo-primary)}.perm-grid[data-v-c678c4d8]{display:flex;gap:20px;flex-wrap:wrap}.perm-item[data-v-c678c4d8]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--diablo-text);cursor:pointer}.perm-item input[type=checkbox][data-v-c678c4d8]{accent-color:var(--diablo-primary);width:16px;height:16px}.modal-overlay[data-v-c678c4d8]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-box[data-v-c678c4d8]{background:var(--glass-bg, rgba(20, 20, 35, .95));border:1px solid var(--glass-border, rgba(255, 255, 255, .08));border-radius:16px;padding:24px;min-width:320px;max-width:420px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0006}.modal-body[data-v-c678c4d8]{color:var(--diablo-text, #e0e0e0);font-size:14px;line-height:1.6;margin-bottom:20px}.modal-actions[data-v-c678c4d8]{display:flex;justify-content:flex-end;gap:10px}.modal-btn[data-v-c678c4d8]{padding:8px 20px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-btn-confirm[data-v-c678c4d8]{background:#0a84ff26;border:1px solid var(--diablo-primary, #0a84ff);color:var(--diablo-primary, #0a84ff)}.modal-btn-confirm[data-v-c678c4d8]:hover{background:#0a84ff40}.modal-btn-confirm[data-v-c678c4d8]:disabled{opacity:.5;cursor:not-allowed}.modal-btn[data-v-c678c4d8]{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text-muted)}.device-modal-box[data-v-c678c4d8]{max-width:560px;width:90vw}.modal-title[data-v-c678c4d8]{font-size:15px;font-weight:600;color:var(--diablo-text);margin-bottom:16px}.device-search-row[data-v-c678c4d8]{margin-bottom:12px}.device-search-row .form-input[data-v-c678c4d8]{width:100%;box-sizing:border-box}.device-list-scroll[data-v-c678c4d8]{max-height:360px;overflow-y:auto;border:1px solid var(--glass-border);border-radius:8px;padding:8px}.device-check-item[data-v-c678c4d8]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--diablo-text);transition:background .15s}.device-check-item[data-v-c678c4d8]:hover{background:var(--glass-bg-hover)}.device-check-item input[type=checkbox][data-v-c678c4d8]{accent-color:var(--diablo-primary);width:15px;height:15px}.small[data-v-c678c4d8]{padding:16px;font-size:13px}.mobile-card-list[data-v-c678c4d8]{display:none}@media (max-width: 768px){.account-page[data-v-c678c4d8]{padding:10px;min-height:unset}.page-header[data-v-c678c4d8]{margin-bottom:12px}.page-title[data-v-c678c4d8]{font-size:17px}.glass-section[data-v-c678c4d8]{padding:14px;border-radius:12px;margin-bottom:12px}.section-title[data-v-c678c4d8]{font-size:14px;margin-bottom:12px}.section-header[data-v-c678c4d8]{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.config-grid[data-v-c678c4d8]{grid-template-columns:1fr;gap:12px}.form-input[data-v-c678c4d8]{font-size:16px}.perm-grid[data-v-c678c4d8]{flex-direction:column;gap:12px}.perm-item input[type=checkbox][data-v-c678c4d8]{width:18px;height:18px}.register-area[data-v-c678c4d8]{justify-content:stretch}.register-btn[data-v-c678c4d8]{width:100%;text-align:center;padding:12px;font-size:14px}.desktop-table[data-v-c678c4d8]{display:none!important}.mobile-card-list[data-v-c678c4d8]{display:flex;flex-direction:column;gap:10px}.user-card[data-v-c678c4d8]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;padding:14px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.user-card-header[data-v-c678c4d8]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--glass-border)}.user-card-name[data-v-c678c4d8]{font-size:15px;font-weight:600;color:var(--diablo-text)}.user-card-id[data-v-c678c4d8]{font-size:11px;color:var(--diablo-text-muted);background:var(--glass-bg);padding:2px 8px;border-radius:10px;border:1px solid var(--glass-border)}.user-card-body[data-v-c678c4d8]{margin-bottom:10px}.user-card-row[data-v-c678c4d8]{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px}.user-card-label[data-v-c678c4d8]{color:var(--diablo-text-muted);font-size:12px;flex-shrink:0;margin-right:12px}.user-card-value[data-v-c678c4d8]{color:var(--diablo-text);font-weight:500;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card-time[data-v-c678c4d8]{font-size:11px;color:var(--diablo-text-muted)}.user-card-perms[data-v-c678c4d8]{display:flex;flex-wrap:wrap;gap:10px;padding:8px 0;margin-bottom:8px;border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border)}.user-card-perms .perm-item[data-v-c678c4d8]{font-size:12px}.user-card-perms .perm-item input[type=checkbox][data-v-c678c4d8]{width:16px;height:16px}.user-card-actions[data-v-c678c4d8]{display:flex;gap:6px;flex-wrap:wrap}.user-card-actions .act-btn[data-v-c678c4d8]{flex:1;justify-content:center;min-width:0;font-size:11px;padding:7px 8px}.modal-overlay[data-v-c678c4d8]{align-items:flex-end;padding:0}.modal-box[data-v-c678c4d8]{width:100%;min-width:unset;max-width:unset;max-height:85vh;border-radius:16px 16px 0 0;padding:20px 16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.device-modal-box[data-v-c678c4d8]{width:100%}.modal-title[data-v-c678c4d8]{font-size:14px;margin-bottom:12px}.device-list-scroll[data-v-c678c4d8]{max-height:50vh}.device-search-row .form-input[data-v-c678c4d8]{font-size:16px}.device-check-item[data-v-c678c4d8]{padding:8px 10px}.device-check-item input[type=checkbox][data-v-c678c4d8]{width:18px;height:18px}.modal-actions[data-v-c678c4d8]{flex-direction:column;gap:8px;padding-top:12px}.modal-btn[data-v-c678c4d8]{width:100%;text-align:center;padding:12px;font-size:14px}.empty-state[data-v-c678c4d8]{padding:20px;font-size:13px}.toolbar-btn[data-v-c678c4d8]{padding:7px 12px;font-size:12px}}@media (max-width: 480px){.account-page[data-v-c678c4d8]{padding:6px}.page-title[data-v-c678c4d8]{font-size:16px}.glass-section[data-v-c678c4d8]{padding:10px;border-radius:10px;margin-bottom:10px}.user-card[data-v-c678c4d8]{padding:12px}.user-card-actions[data-v-c678c4d8]{flex-direction:column}.user-card-actions .act-btn[data-v-c678c4d8]{width:100%}}
@@ -0,0 +1 @@
1
+ .alarm-page[data-v-b3fcff72]{padding:20px;min-height:100vh;height:100vh;overflow:auto;box-sizing:border-box}.page-header[data-v-b3fcff72]{margin-bottom:24px}.page-title[data-v-b3fcff72]{font-size:20px;font-weight:600;color:var(--diablo-text);margin:0}.glass-section[data-v-b3fcff72]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:20px;margin-bottom:20px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.section-title[data-v-b3fcff72]{font-size:15px;font-weight:600;color:var(--diablo-text);margin:0 0 16px}.hint-text[data-v-b3fcff72]{font-size:11px;color:var(--diablo-text-muted);margin:0 0 8px;opacity:.7}.device-toolbar[data-v-b3fcff72]{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.toolbar-btn[data-v-b3fcff72]{padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;transition:all .2s ease}.toolbar-btn[data-v-b3fcff72]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover)}.selected-count[data-v-b3fcff72]{font-size:12px;color:var(--diablo-text-muted);margin-left:auto}.device-filter[data-v-b3fcff72]{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px}.device-filter svg[data-v-b3fcff72]{color:var(--diablo-text-muted);flex-shrink:0}.device-filter .filter-input[data-v-b3fcff72]{border:none;background:transparent;padding:2px 0;font-size:12px;color:var(--diablo-text);width:160px}.device-filter .filter-input[data-v-b3fcff72]:focus{outline:none;box-shadow:none}.device-list[data-v-b3fcff72]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;max-height:280px;overflow-y:auto}.device-item[data-v-b3fcff72]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:13px;color:var(--diablo-text)}.device-item[data-v-b3fcff72]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.device-item.device-offline[data-v-b3fcff72]{opacity:.5}.device-item.device-disabled[data-v-b3fcff72]{cursor:not-allowed;pointer-events:none}.device-item.device-disabled input[type=checkbox][data-v-b3fcff72]{pointer-events:auto;cursor:not-allowed}.device-item input[type=checkbox][data-v-b3fcff72]{accent-color:var(--diablo-primary);flex-shrink:0}.device-name[data-v-b3fcff72]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-sn[data-v-b3fcff72]{font-size:11px;color:var(--diablo-text-muted);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-status-dot[data-v-b3fcff72]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.device-status-dot.online[data-v-b3fcff72]{background:#27ae60;box-shadow:0 0 6px #27ae6099}.device-status-dot.offline[data-v-b3fcff72]{background:#95a5a6}.config-grid[data-v-b3fcff72]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:16px}.config-field[data-v-b3fcff72]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.config-field label[data-v-b3fcff72]{font-size:12px;color:var(--diablo-text-muted);font-weight:500}.source-toggle[data-v-b3fcff72]{display:flex;gap:0;border:1px solid var(--glass-border);border-radius:8px;overflow:hidden}.toggle-btn[data-v-b3fcff72]{flex:1;padding:6px 12px;background:var(--glass-bg);border:none;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;transition:all .2s ease}.toggle-btn[data-v-b3fcff72]:not(:last-child){border-right:1px solid var(--glass-border)}.toggle-btn.active[data-v-b3fcff72]{background:#0a84ff1f;color:var(--diablo-primary)}.toggle-btn[data-v-b3fcff72]:hover:not(.active){background:var(--glass-bg-hover)}.form-input[data-v-b3fcff72]{padding:8px 12px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:13px;transition:all .2s ease;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.form-input[data-v-b3fcff72]:hover{border-color:var(--glass-border-hover)}.form-input[data-v-b3fcff72]:focus{outline:none;border-color:var(--glass-border-glow);box-shadow:0 0 8px var(--glass-border-glow)}.register-area[data-v-b3fcff72]{display:flex;justify-content:flex-end;margin-top:16px}.register-btn[data-v-b3fcff72]{padding:10px 28px;background:#0a84ff1f;border:1px solid var(--diablo-primary);border-radius:10px;color:var(--diablo-primary);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.register-btn[data-v-b3fcff72]:hover:not(:disabled){background:#0a84ff33}.register-btn[data-v-b3fcff72]:disabled{opacity:.5;cursor:not-allowed}.force-unreg-btn[data-v-b3fcff72]{padding:10px 28px;background:#ff3b301a;border:1px solid rgba(255,59,48,.4);border-radius:10px;color:#ff3b30;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.force-unreg-btn[data-v-b3fcff72]:hover{background:#ff3b3033;border-color:#ff3b3099}.force-confirm-btn[data-v-b3fcff72]{background:#ff3b301f;border-color:#ff3b3066;color:#ff3b30}.force-confirm-btn[data-v-b3fcff72]:hover:not(:disabled){background:#ff3b3033}.result-list[data-v-b3fcff72]{display:flex;flex-direction:column;gap:8px}.result-item[data-v-b3fcff72]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;font-size:13px}.result-success[data-v-b3fcff72]{background:#27ae6014;border:1px solid rgba(39,174,96,.2);color:#27ae60}.result-fail[data-v-b3fcff72]{background:#e74c3c14;border:1px solid rgba(231,76,60,.2);color:#e74c3c}.result-icon[data-v-b3fcff72]{flex-shrink:0}.result-name[data-v-b3fcff72]{font-weight:500;min-width:80px}.result-sn[data-v-b3fcff72]{color:var(--diablo-text-muted);font-size:11px;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-msg[data-v-b3fcff72]{flex:1;text-align:right}.empty-state[data-v-b3fcff72]{padding:30px;text-align:center;color:var(--diablo-text-muted);font-size:14px}.section-header[data-v-b3fcff72]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header .section-title[data-v-b3fcff72]{margin:0}.alarm-table-wrap[data-v-b3fcff72]{overflow:auto;max-height:calc(100vh - 320px)}.alarm-table[data-v-b3fcff72]{width:100%;border-collapse:collapse;font-size:13px}.alarm-table th[data-v-b3fcff72]{text-align:left;padding:10px 12px;font-size:12px;font-weight:500;color:var(--diablo-text-muted);border-bottom:1px solid var(--glass-border);white-space:nowrap}.alarm-table td[data-v-b3fcff72]{padding:10px 12px;color:var(--diablo-text);border-bottom:1px solid var(--glass-border);white-space:nowrap}.alarm-table tr:last-child td[data-v-b3fcff72]{border-bottom:none}.td-sn[data-v-b3fcff72]{font-size:11px;color:var(--diablo-text-muted);max-width:160px;overflow:hidden;text-overflow:ellipsis}.td-url[data-v-b3fcff72]{max-width:220px;overflow:hidden;text-overflow:ellipsis;color:var(--diablo-text-muted)}.unregister-btn[data-v-b3fcff72]{padding:4px 10px;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:6px;color:#e74c3c;font-size:12px;cursor:pointer;transition:all .2s ease}.unregister-btn[data-v-b3fcff72]:hover{background:#e74c3c33}.td-actions[data-v-b3fcff72]{display:flex;gap:6px;align-items:center}.register-trigger-btn[data-v-b3fcff72]{padding:4px 10px;background:#0a84ff1a;border:1px solid rgba(10,132,255,.3);border-radius:6px;color:var(--diablo-primary);font-size:12px;cursor:pointer;transition:all .2s ease}.register-trigger-btn[data-v-b3fcff72]:hover{background:#0a84ff33}.trigger-modal-box[data-v-b3fcff72]{max-width:480px;min-width:380px}.modal-header[data-v-b3fcff72]{font-size:15px;font-weight:600;color:var(--diablo-text);margin-bottom:12px}.trigger-device-list[data-v-b3fcff72]{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto}.trigger-device-item[data-v-b3fcff72]{cursor:pointer}.trigger-device-item.selected[data-v-b3fcff72]{background:#0a84ff1a;border-color:#0a84ff66}.trigger-device-item.device-offline[data-v-b3fcff72]{opacity:.4;cursor:not-allowed}.trigger-device-item input[type=radio][data-v-b3fcff72]{accent-color:var(--diablo-primary);flex-shrink:0}.modal-overlay[data-v-b3fcff72]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-box[data-v-b3fcff72]{background:var(--glass-bg, rgba(20, 20, 35, .95));border:1px solid var(--glass-border, rgba(255, 255, 255, .08));border-radius:16px;padding:24px;min-width:320px;max-width:420px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0006}.modal-body[data-v-b3fcff72]{color:var(--diablo-text, #e0e0e0);font-size:14px;line-height:1.6;margin-bottom:20px}.modal-actions[data-v-b3fcff72]{display:flex;justify-content:flex-end;gap:10px}.modal-btn[data-v-b3fcff72]{padding:8px 20px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-btn-cancel[data-v-b3fcff72]{background:var(--glass-bg, rgba(255, 255, 255, .05));border:1px solid var(--glass-border, rgba(255, 255, 255, .1));color:var(--diablo-text-muted, #888)}.modal-btn-cancel[data-v-b3fcff72]:hover{background:var(--glass-bg-hover, rgba(255, 255, 255, .08))}.modal-btn-confirm[data-v-b3fcff72]{background:#0a84ff26;border:1px solid var(--diablo-primary, #0a84ff);color:var(--diablo-primary, #0a84ff)}.modal-btn-confirm[data-v-b3fcff72]:hover{background:#0a84ff40}@media (max-width: 768px){.alarm-page[data-v-b3fcff72]{padding:10px;min-height:unset}.page-header[data-v-b3fcff72]{margin-bottom:12px}.page-title[data-v-b3fcff72]{font-size:17px}.glass-section[data-v-b3fcff72]{padding:14px;border-radius:12px;margin-bottom:12px}.section-title[data-v-b3fcff72]{font-size:14px;margin-bottom:12px}.section-header[data-v-b3fcff72]{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.device-toolbar[data-v-b3fcff72]{flex-wrap:wrap;gap:6px}.device-filter[data-v-b3fcff72]{order:-1;width:100%;padding:8px 12px}.device-filter .filter-input[data-v-b3fcff72]{font-size:16px;width:100%}.selected-count[data-v-b3fcff72]{margin-left:0;width:100%;text-align:center;order:-2;padding:6px 12px;font-size:12px}.toolbar-btn[data-v-b3fcff72]{padding:7px 12px;font-size:12px}.device-list[data-v-b3fcff72]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;max-height:240px}.linkage-device-list[data-v-b3fcff72]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));max-height:200px}.device-item[data-v-b3fcff72]{padding:8px 10px;gap:6px;font-size:12px}.device-item input[type=checkbox][data-v-b3fcff72]{width:18px;height:18px}.device-sn[data-v-b3fcff72]{display:none}.config-grid[data-v-b3fcff72]{grid-template-columns:1fr;gap:12px;margin-bottom:12px}.config-field[data-v-b3fcff72]{margin-bottom:10px}.config-field label[data-v-b3fcff72]{font-size:12px}.form-input[data-v-b3fcff72]{font-size:16px}.source-toggle[data-v-b3fcff72]{border-radius:10px}.source-toggle .toggle-btn[data-v-b3fcff72]{padding:8px 14px;font-size:13px}.source-toggle .toggle-btn.active[data-v-b3fcff72]{color:#0a84ff;background:#0a84ff1f}.hint-text[data-v-b3fcff72]{font-size:11px}.register-area[data-v-b3fcff72]{justify-content:stretch}.register-btn[data-v-b3fcff72],.force-unreg-btn[data-v-b3fcff72]{width:100%;text-align:center;padding:12px;font-size:14px}.result-item[data-v-b3fcff72]{flex-wrap:wrap;padding:10px 12px;font-size:12px;gap:6px}.result-name[data-v-b3fcff72]{min-width:unset}.result-sn[data-v-b3fcff72]{max-width:unset;font-size:10px}.result-msg[data-v-b3fcff72]{flex-basis:100%;text-align:left}.alarm-table-wrap[data-v-b3fcff72]{overflow-x:auto;-webkit-overflow-scrolling:touch}.alarm-table[data-v-b3fcff72]{font-size:12px;min-width:500px}.alarm-table th[data-v-b3fcff72],.alarm-table td[data-v-b3fcff72]{padding:8px;font-size:11px}.td-actions[data-v-b3fcff72]{flex-direction:column;gap:4px}.unregister-btn[data-v-b3fcff72],.register-trigger-btn[data-v-b3fcff72]{padding:5px 8px;font-size:11px}.modal-overlay[data-v-b3fcff72]{align-items:flex-end;padding:0}.modal-box[data-v-b3fcff72]{width:100%;min-width:unset;max-width:unset;max-height:85vh;border-radius:16px 16px 0 0;padding:20px 16px;overflow-y:auto;-webkit-overflow-scrolling:touch}.trigger-modal-box[data-v-b3fcff72]{min-width:unset;max-width:unset;width:100%}.trigger-device-list[data-v-b3fcff72]{max-height:280px}.trigger-device-item[data-v-b3fcff72]{padding:10px 12px}.trigger-device-item .device-sn[data-v-b3fcff72]{display:inline;font-size:10px}.trigger-device-item input[type=radio][data-v-b3fcff72]{width:18px;height:18px}.modal-actions[data-v-b3fcff72]{flex-direction:column;gap:8px;padding-top:12px}.modal-btn[data-v-b3fcff72]{width:100%;text-align:center;padding:12px;font-size:14px}.empty-state[data-v-b3fcff72]{padding:20px;font-size:13px}}@media (max-width: 480px){.alarm-page[data-v-b3fcff72]{padding:6px}.page-title[data-v-b3fcff72]{font-size:16px}.glass-section[data-v-b3fcff72]{padding:10px;border-radius:10px;margin-bottom:10px}.device-list[data-v-b3fcff72],.linkage-device-list[data-v-b3fcff72]{grid-template-columns:1fr 1fr}.device-item[data-v-b3fcff72]{padding:7px 8px;font-size:11px}.toolbar-btn[data-v-b3fcff72]{padding:6px 10px;font-size:11px}.register-btn[data-v-b3fcff72],.force-unreg-btn[data-v-b3fcff72]{padding:10px;font-size:13px}}
@@ -0,0 +1 @@
1
+ import{u as e,a,_ as t}from"./index-npdYRXyk.js";import{w as n,r as o,s as l,f as s,o as i,k as r,n as c,y as u,A as d,u as v,B as f,W as g,i as p,F as m,z as h,E as b,M as y,C as w,P as k,p as S,H as C,c as x,t as M,G as A,X as B}from"./vue-vendor-BaBirIg_.js";import{Y as U,g as D,k as I}from"./api-C3Fyph-A.js";import{_ as L}from"./_plugin-vue_export-helper-BCo6x5W8.js";function W(){const e=o(!1),a=o(!1),t=o(!1),s=o(""),i=o(0),r=o(0),c=o([]),u=o(""),d=l(null),v=o(100);let f=null;n(v,e=>{f&&(f.gain.value=e/100)});let g=null,p=null,m=null,h=null,b=null,y=null,w=null,k=null;function S(){!function(){k&&(cancelAnimationFrame(k),k=null);r.value=0}(),h&&(h.disconnect(),h=null),f&&(f.disconnect(),f=null),b&&(b.disconnect(),b=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),p&&(p.close(),p=null),w=null,d.value=null,t.value=!1,r.value=0}function C(){if(a.value=!1,h&&(h.disconnect(),h=null),y&&(y.terminate(),y=null),g){try{g.send("CLOSE")}catch{}g.close(),g=null}e.value=!1,console.log("[广播] 已停止")}return{isConnected:e,isBroadcasting:a,isPreviewing:t,error:s,bytesSent:i,volumeLevel:r,audioDevices:c,selectedDeviceId:u,analyserNode:d,enumerateAudioDevices:async function(){try{(await navigator.mediaDevices.getUserMedia({audio:!0})).getTracks().forEach(e=>e.stop());const e=await navigator.mediaDevices.enumerateDevices();c.value=e.filter(e=>"audioinput"===e.kind),c.value.length>0&&!u.value&&(u.value=c.value[0].deviceId)}catch{s.value="无法获取音频设备列表"}},startPreview:async function(){S();try{const e={audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,...u.value?{deviceId:{exact:u.value}}:{}}};m=await navigator.mediaDevices.getUserMedia(e),p=new AudioContext({sampleRate:44100}),"suspended"===p.state&&await p.resume(),b=p.createMediaStreamSource(m),w=p.createAnalyser(),w.fftSize=256,w.smoothingTimeConstant=.8,f=p.createGain(),f.gain.value=v.value/100,b.connect(f),f.connect(w),d.value=w,t.value=!0,s.value="",function(){const e=new Uint8Array(w.frequencyBinCount),a=()=>{if(!w)return;w.getByteFrequencyData(e);let t=0;for(let a=0;a<e.length;a++)t+=e[a];r.value=Math.round(t/e.length/255*100),k=requestAnimationFrame(a)};a()}()}catch{s.value="无法访问麦克风"}},stopPreview:S,startBroadcast:async function(n){if(!(t.value&&p&&w&&b))return void(s.value="请先选择音源");g&&(g.close(),g=null),console.log("[广播] 尝试连接 WebSocket:",n.serverUrl);try{await new Promise((t,o)=>{g=new WebSocket(n.serverUrl),console.log("[广播] WebSocket 对象已创建, readyState:",g.readyState),g.onopen=()=>{console.log("[广播] WebSocket 已连接"),e.value=!0,s.value="",t()},g.onerror=a=>{console.error("[广播] WebSocket 连接错误:",a,"URL:",n.serverUrl),s.value="WebSocket 连接失败",e.value=!1,o(new Error("connect failed"))},g.onclose=()=>{e.value=!1,a.value=!1}})}catch{return void(s.value="WebSocket 连接失败")}const o={Meport:n.Meport,Umagic:n.Umagic,userid:n.userid,id:n.userid,token:n.token,Umask:n.Umask,plevel:n.plevel,ulevel:n.ulevel,snlist:n.snlist,cmd:"PLAYLIST",Meip:n.Meip},l=JSON.stringify(o);if(g.send(l.length+"\n"+l),console.log("[广播] 握手报文已发送:",l),!(await new Promise(e=>{if(!g)return void e(!1);const a=setTimeout(()=>{console.error("[广播] 握手超时(10秒)"),e(!1)},1e4),t=g;t.onmessage=n=>{const o="string"==typeof n.data?n.data:"";clearTimeout(a),"WELL"===o.trim()?(console.log("[广播] 握手成功,收到 WELL"),t.onmessage=null,e(!0)):(console.error("[广播] 握手失败,服务器返回:",o),t.onmessage=null,e(!1))}})))return g&&(g.close(),g=null),e.value=!1,void(s.value="握手校验失败,服务器未返回 WELL");let r=0,c=!1;const u="file:"===location.protocol?new URL("./js/worker-realtime.js",location.href).href:"/js/worker-realtime.js";y=new Worker(u),y.onmessage=e=>{if("chunk"===e.data.cmd&&e.data.buf&&e.data.buf.length>0){for(const a of e.data.buf)if(a.length>0){const e=P(a);c?(null==g||g.send(e),i.value+=a.length):(r++,null==g||g.send(e),i.value+=a.length,r>=2&&(c=!0,console.log("[广播] 预缓冲 2 包完成,开始实时推流")))}}else"end"===e.data.cmd&&console.log("[广播] Worker 编码结束")},y.postMessage({cmd:"init",config:{inSampleRate:p.sampleRate,bitRate:64}}),h=p.createScriptProcessor(16384,2,2),h.onaudioprocess=e=>{const a=e.inputBuffer.getChannelData(0),t=e.inputBuffer.getChannelData(1);y&&y.postMessage({cmd:"open",left:a,right:t})},f?f.connect(h):b.connect(h),w?h.connect(w):h.connect(p.destination),a.value=!0,i.value=0,console.log("[广播] 开始推流")},stopBroadcast:C,disconnect:function(){a.value&&C(),S()},formatBytes:function(e){return e<1024?e+"B":e<1048576?(e/1024).toFixed(1)+"KB":(e/1024/1024).toFixed(1)+"MB"},inputVolume:v}}const _="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function P(e){const a=Math.ceil(4*e.length/3),t=new Array(a);let n=0,o=0,l=0;return e.forEach(e=>{let a=0;0===n?(a=e>>2,t[o++]=_[l+a],l=(3&e)<<4):1===n?(a=e>>4,t[o++]=_[l+a],l=(15&e)<<2):2===n&&(a=e>>6,t[o++]=_[l+a],t[o++]=_[63&e],l=0),n++,3===n&&(n=0)}),0!==n&&(t[o]=_[l]),t.join("")}const R={class:"broadcast-page"},T={class:"page-header"},E={class:"page-title"},$={class:"top-row"},j={class:"glass-section top-row-left"},F={class:"section-title"},V={class:"source-row"},q=["value"],N={key:0,class:"empty-hint"},O={key:1,class:"connect-mic-area"},G={key:2,class:"volume-row"},z={class:"volume-label"},J={class:"volume-value"},H={class:"waveform-container"},Y={class:"glass-section broadcast-control top-row-right"},K={class:"section-title"},X={class:"broadcast-btn-area"},Q=["disabled"],Z={class:"broadcast-btn-text"},ee={class:"broadcast-btn-text"},ae={class:"status-bar"},te={class:"status-text"},ne={class:"glass-section"},oe={class:"section-title"},le={key:0,class:"group-bar"},se={class:"group-label"},ie=["onClick"],re={class:"device-toolbar"},ce={class:"device-filter"},ue=["placeholder"],de={class:"selected-count"},ve={key:1,class:"device-list"},fe=["value","disabled"],ge={class:"device-name"},pe={key:2,class:"empty-state"},me="broadcast_selected_sn",he=L(s({__name:"index",setup(l){const{t:s}=e(),L=a(),{isConnected:_,isBroadcasting:P,isPreviewing:he,error:be,bytesSent:ye,audioDevices:we,selectedDeviceId:ke,analyserNode:Se,enumerateAudioDevices:Ce,startPreview:xe,startBroadcast:Me,stopBroadcast:Ae,disconnect:Be,formatBytes:Ue,inputVolume:De}=W(),Ie=o(null);let Le=null;const We=o("wss://hwywss.xxx.com/wss23020"),_e=o(6002),Pe=o("127.0.0.1"),Re=o(9),Te=o(600),Ee=o([]),$e=o([]),je=o(""),Fe=o([]),Ve=o(null),qe=x(()=>{if(!je.value.trim())return Ee.value;const e=je.value.trim().toLowerCase();return Ee.value.filter(a=>{const t=Ne(a).toLowerCase(),n=Ge(a).toLowerCase();return t.includes(e)||n.includes(e)})});function Ne(e){return e.devname||e.device_name||e.name||Ge(e)}function Oe(e){return 1===e.status||2===e.status||1===e.online}function Ge(e){return e.device_seed||e.sn||""}function ze(){Ve.value=null,$e.value=Ee.value.filter(e=>Oe(e)).map(Ge)}function Je(){Ve.value=null,$e.value=[]}async function He(){ke.value&&await xe()}async function Ye(){await Ce(),ke.value&&await xe()}async function Ke(){var e;if(0===$e.value.length||!We.value||!he.value)return;const a=L.token||localStorage.getItem("token")||"",t=(null==(e=L.userInfo)?void 0:e.id)||Number(localStorage.getItem("userId"))||0;await Me({serverUrl:We.value,Meport:_e.value,Meip:Pe.value,Umagic:Math.floor(9e4*Math.random())+1e4,userid:t,token:a,Umask:Math.random().toString(36).substring(2,34),plevel:Re.value,ulevel:Te.value,snlist:$e.value})}function Xe(){P.value&&Ae()}function Qe(){Le&&(cancelAnimationFrame(Le),Le=null)}function Ze(){const e=Ie.value,a=Se.value;if(!e||!a)return;const t=e.getContext("2d"),n=window.devicePixelRatio||1,o=e.getBoundingClientRect();e.width=o.width*n,e.height=o.height*n,t.scale(n,n);const l=o.width,s=o.height,i=a.frequencyBinCount,r=new Uint8Array(i);a.getByteFrequencyData(r),t.clearRect(0,0,l,s);const c=Math.max(1,Math.floor(i/48)),u=(l-94)/48,d=Math.min(u/2,4);for(let v=0;v<48;v++){let e=0;for(let t=0;t<c;t++)e+=r[v*c+t]||0;const a=e/c/255,n=v*(u+2),o=s-Math.max(3,a*s*.9),l=.25+.75*a,i=t.createLinearGradient(n,o,n,s);i.addColorStop(0,`rgba(10, 132, 255, ${l})`),i.addColorStop(.5,`rgba(10, 132, 255, ${.7*l})`),i.addColorStop(1,`rgba(10, 132, 255, ${.15*l})`),t.fillStyle=i,t.beginPath(),t.moveTo(n+d,o),t.lineTo(n+u-d,o),t.quadraticCurveTo(n+u,o,n+u,o+d),t.lineTo(n+u,s),t.lineTo(n,s),t.lineTo(n,o+d),t.quadraticCurveTo(n,o,n+d,o),t.closePath(),t.fill(),a>.15&&(t.beginPath(),t.arc(n+u/2,o,u/2+1,0,2*Math.PI),t.fillStyle=`rgba(10, 132, 255, ${.3*a})`,t.fill())}Le=requestAnimationFrame(Ze)}function ea(e,a,t=365){const n=new Date(Date.now()+864e5*t);document.cookie=`${e}=${encodeURIComponent(a)};expires=${n.toUTCString()};path=/`}function aa(){const e=function(e){const a=`; ${document.cookie}`.split(`; ${e}=`);return 2===a.length?decodeURIComponent(a[1].split(";")[0]):null}(me);if(!e)return;const a=new Set(e.split(",").filter(Boolean)),t=new Set(Ee.value.map(Ge));$e.value=[...a].filter(e=>t.has(e))}return n($e,()=>{!function(){const e=$e.value;e.length>0?ea(me,e.join(",")):ea(me,"",-1)}()},{deep:!0}),n(he,e=>{e?B(()=>(Qe(),void Ze())):Qe()}),i(async()=>{!async function(){var e;try{const e=await U();console.log("[广播页] getWbInfo 完整响应:",JSON.stringify(e)),e&&e.wsinfo?(We.value=e.wsinfo,console.log("[广播页] WebSocket URL 设置为:",e.wsinfo)):console.warn("[广播页] getWbInfo 未返回 wsinfo, res:",JSON.stringify(e))}catch(a){console.error("[广播页] getWbInfo 通过拦截器失败,尝试原始请求:",a);try{const a=(await t(async()=>{const{default:e}=await import("./api-C3Fyph-A.js").then(e=>e.ad);return{default:e}},[])).default,n=(null==(e=localStorage.getItem("serverHost"))?void 0:e.replace(/\/+$/,""))||"",o=localStorage.getItem("token")||"",l=localStorage.getItem("userId")||"",s=new FormData;s.append("token",o),s.append("id",l);const i=await a.post(`${n}/user/getwbinfo`,s);console.log("[广播页] getWbInfo 原始响应:",JSON.stringify(i.data));const r=i.data;r&&r.wsinfo?(We.value=r.wsinfo,console.log("[广播页] WebSocket URL 设置为:",r.wsinfo)):r&&!0===r.res&&r.wsinfo&&(We.value=r.wsinfo)}catch(n){console.error("[广播页] 原始请求也失败:",n)}}}(),await async function(){try{const e=await D();!0===e.res&&Array.isArray(e.results)?Ee.value=e.results:!0===e.res&&Array.isArray(e.list)&&(Ee.value=e.list)}catch(e){console.error("获取设备列表失败:",e)}}(),aa(),async function(){try{const e=await I();!0===e.res&&Array.isArray(e.list)?Fe.value=e.list:Array.isArray(e.results)&&(Fe.value=e.results)}catch(e){console.error("获取分组列表失败:",e)}}()}),r(()=>{Qe(),Be()}),(e,a)=>(M(),c("div",R,[u("div",T,[u("h2",E,d(v(s)("broadcast.title")),1)]),u("div",$,[u("div",j,[u("h3",F,d(v(s)("broadcast.audioSource")),1),u("div",V,[f(u("select",{"onUpdate:modelValue":a[0]||(a[0]=e=>p(ke)?ke.value=e:null),onChange:He,class:"form-input source-select"},[(M(!0),c(m,null,h(v(we),(e,a)=>(M(),c("option",{key:e.deviceId,value:e.deviceId},d(e.label||`${v(s)("broadcast.microphone")} ${a+1}`),9,q))),128))],544),[[g,v(ke)]])]),0!==v(we).length||v(he)?b("",!0):(M(),c("div",N,d(v(s)("broadcast.noAudioDevice")),1)),v(he)||v(P)?b("",!0):(M(),c("div",O,[u("button",{class:"connect-mic-btn",onClick:Ye},[a[4]||(a[4]=y('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20" data-v-f653028d><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" data-v-f653028d></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" data-v-f653028d></path><line x1="12" y1="19" x2="12" y2="23" data-v-f653028d></line><line x1="8" y1="23" x2="16" y2="23" data-v-f653028d></line></svg>',1)),u("span",null,d(v(we).length>0?v(s)("broadcast.startPreview"):v(s)("broadcast.enableMicrophone")),1)])])),v(he)?(M(),c("div",G,[u("label",z,d(v(s)("broadcast.inputVolume")),1),f(u("input",{type:"range",min:"0",max:"200","onUpdate:modelValue":a[1]||(a[1]=e=>p(De)?De.value=e:null),class:"volume-slider"},null,512),[[w,v(De),void 0,{number:!0}]]),u("span",J,d(v(De))+"%",1)])):b("",!0),f(u("div",H,[u("canvas",{ref_key:"waveformCanvas",ref:Ie,class:"waveform-canvas"},null,512)],512),[[k,v(he)||v(P)]])]),u("div",Y,[u("h3",K,d(v(s)("broadcast.broadcastControl")),1),u("div",X,[v(P)?(M(),c("button",{key:1,class:"broadcast-btn btn-stop",onClick:Xe},[a[6]||(a[6]=u("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[u("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})],-1)),u("span",ee,d(v(s)("broadcast.stopBroadcast")),1)])):(M(),c("button",{key:0,class:S(["broadcast-btn btn-start",{"is-disabled":0===$e.value.length||!We.value||!v(he)}]),disabled:0===$e.value.length||!We.value||!v(he),onClick:Ke},[a[5]||(a[5]=y('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-f653028d><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" data-v-f653028d></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" data-v-f653028d></path><line x1="12" y1="19" x2="12" y2="23" data-v-f653028d></line><line x1="8" y1="23" x2="16" y2="23" data-v-f653028d></line></svg>',1)),u("span",Z,d(v(s)("broadcast.startBroadcast")),1)],10,Q))]),u("div",ae,[u("span",{class:S(["status-dot",v(P)||v(_)?"online":"offline"])},null,2),u("span",te,[v(be)?(M(),c(m,{key:0},[C(d(v(be)),1)],64)):v(P)?(M(),c(m,{key:1},[C(d(v(s)("broadcast.broadcasting"))+" | "+d(v(Ue)(v(ye))),1)],64)):v(he)?(M(),c(m,{key:2},[C(d(v(s)("broadcast.audioReady")),1)],64)):(M(),c(m,{key:3},[C(d(v(s)("broadcast.notConnected")),1)],64))])])])]),u("div",ne,[u("h3",oe,d(v(s)("broadcast.selectDevices")),1),Fe.value.length>0?(M(),c("div",le,[u("span",se,d(v(s)("broadcast.quickSelectGroup"))+":",1),(M(!0),c(m,null,h(Fe.value,e=>(M(),c("button",{key:e.gid||e.pid,class:S(["group-chip",{"group-active":Ve.value===(e.gid||e.pid)}]),onClick:a=>function(e){const a=e.gid||e.pid;if(Ve.value===a)return Ve.value=null,void Je();Ve.value=a;const t=new Set,n=new Set;e.dlist&&Array.isArray(e.dlist)&&e.dlist.forEach(e=>{const a=e.Dsn||e.device_seed||e.sn||"";a&&t.add(String(a));const o=e.Did||e.id;o&&n.add(String(o))}),e.idlist&&Array.isArray(e.idlist)&&e.idlist.forEach(e=>n.add(String(e))),$e.value=Ee.value.filter(e=>{if(!Oe(e))return!1;const a=Ge(e),o=String(e.id||"");return t.has(a)||n.has(o)}).map(Ge)}(e)},d(e.name||e.pname),11,ie))),128))])):b("",!0),u("div",re,[u("button",{class:"toolbar-btn",onClick:ze},d(v(s)("broadcast.selectAllOnline")),1),u("button",{class:"toolbar-btn",onClick:Je},d(v(s)("broadcast.clearSelection")),1),u("div",ce,[a[7]||(a[7]=u("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[u("circle",{cx:"11",cy:"11",r:"8"}),u("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)),f(u("input",{"onUpdate:modelValue":a[2]||(a[2]=e=>je.value=e),class:"filter-input",placeholder:v(s)("common.search")+"..."},null,8,ue),[[w,je.value]])]),u("span",de,d(v(s)("broadcast.selectedDevices",{count:$e.value.length})),1)]),qe.value.length>0?(M(),c("div",ve,[(M(!0),c(m,null,h(qe.value,e=>(M(),c("label",{key:Ge(e),class:S(["device-item",{"device-offline":!Oe(e),"device-disabled":!Oe(e)}])},[f(u("input",{type:"checkbox",value:Ge(e),"onUpdate:modelValue":a[3]||(a[3]=e=>$e.value=e),disabled:!Oe(e)},null,8,fe),[[A,$e.value]]),u("span",ge,d(Ne(e)),1),u("span",{class:S(["device-status-dot",Oe(e)?"online":"offline"])},null,2)],2))),128))])):(M(),c("div",pe,d(0===Ee.value.length?v(s)("broadcast.noDevices"):v(s)("broadcast.noMatch")),1))])]))}}),[["__scopeId","data-v-f653028d"]]);export{he as default};
@@ -0,0 +1 @@
1
+ .page-title[data-v-6d90ca45]{font-size:28px;margin-bottom:32px}.stats-grid[data-v-6d90ca45]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:32px}.stat-card[data-v-6d90ca45]{display:flex;align-items:center;gap:16px;padding:24px;background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--glass-shadow),var(--glass-inner-glow);transition:all .4s cubic-bezier(.25,.46,.45,.94)}.stat-card[data-v-6d90ca45]:hover{transform:translateY(-4px);background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover)}.stat-card.clickable[data-v-6d90ca45]{cursor:pointer}.stat-card.clickable[data-v-6d90ca45]:hover{border-color:var(--glass-border-glow)}.stat-icon[data-v-6d90ca45]{width:40px;height:40px;color:var(--diablo-text);opacity:.85;display:flex;align-items:center;justify-content:center}.stat-icon svg[data-v-6d90ca45]{width:100%;height:100%;stroke:currentColor}.stat-icon.online[data-v-6d90ca45]{color:#4caf50;opacity:1;filter:drop-shadow(0 0 10px rgba(76,175,80,.5))}.stat-content[data-v-6d90ca45]{flex:1}.stat-label[data-v-6d90ca45]{font-size:14px;color:var(--diablo-text-muted);margin-bottom:8px}.stat-value[data-v-6d90ca45]{font-family:var(--diablo-font-family);font-size:32px;font-weight:700;color:var(--diablo-text)}.stat-value.online[data-v-6d90ca45]{color:#4caf50;text-shadow:0 0 10px rgba(76,175,80,.3)}.quick-actions[data-v-6d90ca45]{margin-bottom:32px}.section-title[data-v-6d90ca45]{font-size:20px;color:var(--diablo-text);margin-bottom:20px}.actions-grid[data-v-6d90ca45]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.action-card[data-v-6d90ca45]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));cursor:pointer;border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--glass-shadow),var(--glass-inner-glow);transition:all .4s cubic-bezier(.25,.46,.45,.94)}.action-card[data-v-6d90ca45]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-glow);transform:translateY(-4px);box-shadow:var(--glass-shadow-hover)}.action-icon[data-v-6d90ca45]{width:32px;height:32px;color:var(--diablo-text);opacity:.85;display:flex;align-items:center;justify-content:center}.action-icon svg[data-v-6d90ca45]{width:100%;height:100%;stroke:currentColor}.action-card span[data-v-6d90ca45]:last-child{font-size:14px;color:var(--diablo-text-muted)}@media (max-width: 768px){.stats-grid[data-v-6d90ca45],.actions-grid[data-v-6d90ca45]{grid-template-columns:1fr}}@media (max-width: 480px){.page-title[data-v-6d90ca45]{font-size:17px}.stats-grid[data-v-6d90ca45]{gap:12px}.stat-card[data-v-6d90ca45]{padding:14px}.stat-value[data-v-6d90ca45]{font-size:24px}.actions-grid[data-v-6d90ca45]{gap:10px}.action-card[data-v-6d90ca45]{padding:14px}}.mobile-header[data-v-6d90ca45]{margin-bottom:24px;padding:8px 0}.mobile-greeting[data-v-6d90ca45]{font-size:26px;font-weight:700;color:var(--diablo-text);letter-spacing:-.5px}.mobile-subtitle[data-v-6d90ca45]{font-size:14px;color:var(--diablo-text-muted);margin-top:4px}.mobile-stats-scroll[data-v-6d90ca45]{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 0 16px;margin-bottom:8px}.mobile-stats-scroll[data-v-6d90ca45]::-webkit-scrollbar{display:none}.mobile-stat-card[data-v-6d90ca45]{flex-shrink:0;width:140px;padding:20px 16px;border-radius:16px;scroll-snap-align:start;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 16px #00000026}.mobile-stat-card[data-v-6d90ca45]:active{transform:scale(.96)}.mobile-stat-num[data-v-6d90ca45]{font-size:28px;font-weight:700;color:#fff;line-height:1.2}.mobile-stat-label[data-v-6d90ca45]{font-size:13px;color:#ffffffbf;margin-top:6px}.mobile-actions[data-v-6d90ca45]{margin-top:8px}.mobile-section-title[data-v-6d90ca45]{font-size:18px;font-weight:600;color:var(--diablo-text);margin-bottom:16px}.mobile-actions-grid[data-v-6d90ca45]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mobile-action-item[data-v-6d90ca45]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;background:none;border:none;cursor:pointer;transition:transform .15s ease}.mobile-action-item[data-v-6d90ca45]:active{transform:scale(.92)}.mobile-action-item span[data-v-6d90ca45]{font-size:12px;color:var(--diablo-text-muted);text-align:center}.mobile-action-icon[data-v-6d90ca45]{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #00000026}.mobile-action-icon svg[data-v-6d90ca45]{width:24px;height:24px}.stat-card,.action-card,.theme-light .stat-card,.theme-light .action-card{background:var(--glass-bg-card)!important;border-color:var(--glass-border)!important;-webkit-backdrop-filter:blur(var(--glass-blur))!important;backdrop-filter:blur(var(--glass-blur))!important}
@@ -0,0 +1 @@
1
+ import{f as e,o as a,n as l,y as s,A as i,u as n,B as t,C as c,F as r,z as o,p as u,W as d,E as v,R as m,N as g,S as f,r as p,c as b,t as h,G as k}from"./vue-vendor-BaBirIg_.js";import{u as y}from"./index-npdYRXyk.js";import{g as w,t as C,Z as S,_ as A,$ as U,a0 as x,a1 as N,a2 as D,a3 as L,a4 as F}from"./api-C3Fyph-A.js";import{_ as P}from"./_plugin-vue_export-helper-BCo6x5W8.js";const T={class:"alarm-page"},_={class:"page-header"},V={class:"page-title"},$={class:"glass-section"},R={class:"section-title"},j={class:"device-toolbar"},I={class:"device-filter"},H=["placeholder"],B={class:"selected-count"},M={key:0,class:"device-list"},O=["value","disabled"],q={class:"device-name"},z={class:"device-sn"},E={key:1,class:"empty-state"},G={class:"glass-section"},W={class:"section-title"},Z={class:"config-grid"},J={class:"config-field"},K=["placeholder"],Q={class:"config-field"},X={class:"source-toggle"},Y={key:0,class:"config-field"},ee={value:""},ae=["value"],le={key:1,class:"config-field"},se=["placeholder"],ie={class:"register-area"},ne=["disabled"],te={class:"glass-section"},ce={class:"section-header"},re={class:"section-title"},oe={key:0,class:"alarm-table-wrap"},ue={class:"alarm-table"},de={class:"td-sn"},ve=["title"],me=["onClick"],ge={key:1,class:"empty-state"},fe={key:0,class:"glass-section"},pe={class:"section-title"},be={class:"result-list"},he={class:"result-icon"},ke={class:"result-name"},ye={class:"result-sn"},we={class:"result-msg"},Ce={class:"glass-section"},Se={class:"section-title"},Ae={class:"linkage-desc"},Ue={class:"config-grid"},xe={class:"config-field"},Ne=["placeholder"],De={class:"config-field"},Le={class:"source-toggle"},Fe={key:0,class:"config-field"},Pe={value:""},Te=["value"],_e={key:1,class:"config-field"},Ve=["placeholder"],$e={class:"config-field"},Re={class:"hint-text"},je={class:"device-toolbar"},Ie={class:"selected-count"},He={key:0,class:"device-list linkage-device-list"},Be=["value"],Me={class:"device-name"},Oe={class:"register-area"},qe=["disabled"],ze={class:"glass-section"},Ee={class:"section-header"},Ge={class:"section-title"},We={key:0,class:"alarm-table-wrap"},Ze={class:"alarm-table"},Je=["title"],Ke={class:"td-actions"},Qe=["onClick"],Xe=["onClick"],Ye={key:1,class:"empty-state"},ea={class:"glass-section"},aa={class:"section-title"},la={class:"hint-text"},sa={class:"register-area"},ia={class:"modal-box trigger-modal-box"},na={class:"modal-header"},ta={class:"modal-body"},ca={class:"hint-text"},ra={key:0,class:"trigger-device-list"},oa=["onClick"],ua=["value","checked","disabled","onChange"],da={class:"device-name"},va={class:"device-sn"},ma={key:1,class:"empty-state"},ga={class:"modal-actions"},fa=["disabled"],pa={class:"modal-box trigger-modal-box"},ba={class:"modal-header"},ha={class:"modal-body"},ka={class:"hint-text"},ya={key:0,class:"trigger-device-list"},wa=["onClick"],Ca=["value","checked","disabled","onChange"],Sa={class:"device-name"},Aa={class:"device-sn"},Ua={key:1,class:"empty-state"},xa={class:"modal-actions"},Na=["disabled"],Da={class:"modal-box"},La={class:"modal-body"},Fa={class:"modal-actions"},Pa=P(e({__name:"index",setup(e){const{t:P}=y(),Pa=p([]),Ta=p([]),_a=p(""),Va=p(""),$a=p("file"),Ra=p(""),ja=p(""),Ia=p(!1),Ha=p([]),Ba=p([]),Ma=p([]),Oa=p(""),qa=p("file"),za=p(""),Ea=p(""),Ga=p([]),Wa=p(!1),Za=p([]),Ja=p({show:!1,pltid:0,planName:"",selectedSn:"",loading:!1}),Ka=p({show:!1,selectedSn:"",loading:!1}),Qa=p({show:!1,type:"alert",message:"",resolve:null});function Xa(e){return new Promise(a=>{Qa.value={show:!0,type:"alert",message:e,resolve:()=>a()}})}function Ya(e){return new Promise(a=>{Qa.value={show:!0,type:"confirm",message:e,resolve:a}})}function el(){Qa.value.show=!1,Qa.value.resolve&&("confirm"===Qa.value.type?Qa.value.resolve(!0):Qa.value.resolve(),Qa.value.resolve=null)}const al=b(()=>{if(!_a.value.trim())return Pa.value;const e=_a.value.trim().toLowerCase();return Pa.value.filter(a=>{const l=ll(a).toLowerCase(),s=sl(a).toLowerCase();return l.includes(e)||s.includes(e)})});function ll(e){return e.devname||e.device_name||e.name||sl(e)}function sl(e){return e.device_seed||e.sn||""}function il(e){return 1===e.status||2===e.status||1===e.online}function nl(){Ta.value=Pa.value.filter(e=>il(e)).map(sl)}function tl(){Ta.value=[]}function cl(){Ga.value=Pa.value.filter(e=>il(e)).map(sl)}function rl(){Ga.value=[]}async function ol(){if(0===Ta.value.length)return void(await Xa(P("alarm.noDevicesSelected")));let e="",a="";if("file"===$a.value){if(!Ra.value)return void(await Xa(P("alarm.noAudioConfigured")));const l=Ha.value.find(e=>e.id===Ra.value);if(l&&(e=l.url||"",a=l.filename||l.name||""),!e)return void(await Xa(P("alarm.noAudioConfigured")))}else{if(!ja.value.trim())return void(await Xa(P("alarm.noAudioConfigured")));e=ja.value.trim(),a=e.split("/").pop()||"audio"}const l=Va.value.trim()||a;Ia.value=!0,Ba.value=[];for(const i of Ta.value){const n=Pa.value.find(e=>sl(e)===i),t=n?ll(n):i;try{const s=await S({url:e,filename:a,sn:i,dname:l,fb:"1"});!0===s.res?Ba.value.push({name:t,sn:i,success:!0}):Ba.value.push({name:t,sn:i,success:!1,msg:s.msg||s.error||""})}catch(s){Ba.value.push({name:t,sn:i,success:!1,msg:s.message||""})}}Ia.value=!1,ul()}async function ul(){try{const e=await A();!0===e.res&&Array.isArray(e.ary)&&(Ma.value=e.ary)}catch(e){console.error("获取报警列表失败:",e)}}async function dl(){try{const e=await U();(!0===e.res&&Array.isArray(e.list)||Array.isArray(e.list))&&(Za.value=e.list)}catch(e){console.error("获取联动方案失败:",e)}}async function vl(){if(!Oa.value.trim())return void(await Xa(P("alarm.linkagePlanNameRequired")));if(0===Ga.value.length)return void(await Xa(P("alarm.linkageNoDevices")));let e="";if("file"===qa.value){if(!za.value)return void(await Xa(P("alarm.linkageNoAudio")));const a=Ha.value.find(e=>e.id===za.value);if(a&&(e=a.url||""),!e)return void(await Xa(P("alarm.linkageNoAudio")))}else{if(!Ea.value.trim())return void(await Xa(P("alarm.linkageNoAudio")));e=Ea.value.trim()}const a=Ga.value.join("|");Wa.value=!0;try{const l=await x({url:e,plantname:Oa.value.trim(),snlist:a});!0===l.res?(await Xa(P("alarm.addLinkageSuccess")),Oa.value="",Ga.value=[],za.value="",Ea.value="",dl()):await Xa(l.info||P("alarm.addLinkageFailed"))}catch{await Xa(P("alarm.addLinkageFailed"))}Wa.value=!1}async function ml(){if(Ja.value.selectedSn){Ja.value.loading=!0;try{const e=await N({pltid:Ja.value.pltid,sn:Ja.value.selectedSn,dname:Ja.value.planName,fb:"1"});!0===e.res?(Ja.value.show=!1,await Xa(P("alarm.registerTriggerSuccess"))):await Xa(e.msg||e.info||P("alarm.registerTriggerFailed"))}catch{await Xa(P("alarm.registerTriggerFailed"))}Ja.value.loading=!1}else await Xa(P("alarm.linkageNoTriggerDevice"))}function gl(){Ka.value={show:!0,selectedSn:"",loading:!1}}async function fl(){if(Ka.value.selectedSn){Ka.value.loading=!0;try{const e=await D({sn:Ka.value.selectedSn,fb:"1"});!0===e.res?(Ka.value.show=!1,await Xa(P("alarm.forceUnregSuccess")),ul()):await Xa(e.msg||e.info||P("alarm.forceUnregFailed"))}catch{await Xa(P("alarm.forceUnregFailed"))}Ka.value.loading=!1}else await Xa(P("alarm.linkageNoTriggerDevice"))}return a(()=>{!async function(){try{const e=await w();!0===e.res&&Array.isArray(e.results)?Pa.value=e.results:!0===e.res&&Array.isArray(e.list)&&(Pa.value=e.list)}catch(e){console.error("获取设备列表失败:",e)}}(),async function(){try{const e=await C();!0===e.res&&Array.isArray(e.filelist)&&(Ha.value=e.filelist)}catch(e){console.error("获取文件列表失败:",e)}}(),ul(),dl()}),(e,a)=>(h(),l("div",T,[s("div",_,[s("h2",V,i(n(P)("alarm.title")),1)]),s("div",$,[s("h3",R,i(n(P)("alarm.selectDevices")),1),s("div",j,[s("div",I,[a[19]||(a[19]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("circle",{cx:"11",cy:"11",r:"8"}),s("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)),t(s("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>_a.value=e),class:"filter-input",placeholder:n(P)("alarm.searchDevice")+"..."},null,8,H),[[c,_a.value]])]),s("button",{class:"toolbar-btn",onClick:nl},i(n(P)("alarm.selectAllOnline")),1),s("button",{class:"toolbar-btn",onClick:tl},i(n(P)("alarm.clearSelection")),1),s("span",B,i(n(P)("alarm.selectedCount",{count:Ta.value.length})),1)]),al.value.length>0?(h(),l("div",M,[(h(!0),l(r,null,o(al.value,e=>(h(),l("label",{key:sl(e),class:u(["device-item",{"device-offline":!il(e),"device-disabled":!il(e)}])},[t(s("input",{type:"checkbox",value:sl(e),"onUpdate:modelValue":a[1]||(a[1]=e=>Ta.value=e),disabled:!il(e)},null,8,O),[[k,Ta.value]]),s("span",q,i(ll(e)),1),s("span",z,i(sl(e)),1),s("span",{class:u(["device-status-dot",il(e)?"online":"offline"])},null,2)],2))),128))])):(h(),l("div",E,i(0===Pa.value.length?n(P)("alarm.noDevices"):n(P)("alarm.noMatch")),1))]),s("div",G,[s("h3",W,i(n(P)("alarm.alarmConfig")),1),s("div",Z,[s("div",J,[s("label",null,i(n(P)("alarm.alarmName")),1),t(s("input",{"onUpdate:modelValue":a[2]||(a[2]=e=>Va.value=e),class:"form-input",placeholder:n(P)("alarm.alarmNamePlaceholder")},null,8,K),[[c,Va.value]])]),s("div",Q,[s("label",null,i(n(P)("alarm.audioSource")),1),s("div",X,[s("button",{class:u(["toggle-btn",{active:"file"===$a.value}]),onClick:a[3]||(a[3]=e=>$a.value="file")},i(n(P)("alarm.selectFile")),3),s("button",{class:u(["toggle-btn",{active:"url"===$a.value}]),onClick:a[4]||(a[4]=e=>$a.value="url")},i(n(P)("alarm.inputUrl")),3)])])]),"file"===$a.value?(h(),l("div",Y,[t(s("select",{"onUpdate:modelValue":a[5]||(a[5]=e=>Ra.value=e),class:"form-input"},[s("option",ee,i(n(P)("alarm.selectFilePlaceholder")),1),(h(!0),l(r,null,o(Ha.value,e=>(h(),l("option",{key:e.id,value:e.id},i(e.filename||e.name||`ID:${e.id}`),9,ae))),128))],512),[[d,Ra.value]])])):(h(),l("div",le,[t(s("input",{"onUpdate:modelValue":a[6]||(a[6]=e=>ja.value=e),class:"form-input",placeholder:n(P)("alarm.urlPlaceholder")},null,8,se),[[c,ja.value]])])),s("div",ie,[s("button",{class:"register-btn",disabled:Ia.value,onClick:ol},i(Ia.value?n(P)("alarm.registering"):n(P)("alarm.registerAlarm")),9,ne)])]),s("div",te,[s("div",ce,[s("h3",re,i(n(P)("alarm.registeredList")),1),s("button",{class:"toolbar-btn",onClick:ul},i(n(P)("alarm.refreshList")),1)]),Ma.value.length>0?(h(),l("div",oe,[s("table",ue,[s("thead",null,[s("tr",null,[a[20]||(a[20]=s("th",null,"ID",-1)),s("th",null,i(n(P)("alarm.deviceName")),1),s("th",null,i(n(P)("alarm.deviceSn")),1),s("th",null,i(n(P)("alarm.fileName")),1),a[21]||(a[21]=s("th",null,"URL",-1)),s("th",null,i(n(P)("common.actions")),1)])]),s("tbody",null,[(h(!0),l(r,null,o(Ma.value,e=>(h(),l("tr",{key:e.id},[s("td",null,i(e.id),1),s("td",null,i(e.devname||"-"),1),s("td",de,i(e.sn),1),s("td",null,i(e.filename||"-"),1),s("td",{class:"td-url",title:e.url},i(e.url||"-"),9,ve),s("td",null,[s("button",{class:"unregister-btn",onClick:a=>async function(e){if(await Ya(`${P("alarm.unregisterConfirm")} ${e.devname||e.sn}?`))try{const a=await L({sn:e.sn,fb:String(e.fb),rgid:e.id});!0===a.res?Ma.value=Ma.value.filter(a=>a.id!==e.id):await Xa(a.msg||P("alarm.unregisterFailed"))}catch{await Xa(P("alarm.unregisterFailed"))}}(e)},i(n(P)("alarm.unregisterAlarm")),9,me)])]))),128))])])])):(h(),l("div",ge,i(n(P)("alarm.noRegistered")),1))]),Ba.value.length>0?(h(),l("div",fe,[s("h3",pe,i(n(P)("alarm.registerResult")),1),s("div",be,[(h(!0),l(r,null,o(Ba.value,(e,a)=>(h(),l("div",{key:a,class:u(["result-item",e.success?"result-success":"result-fail"])},[s("span",he,i(e.success?"✅":"❌"),1),s("span",ke,i(e.name),1),s("span",ye,i(e.sn),1),s("span",we,i(e.success?n(P)("alarm.registerSuccess"):e.msg||n(P)("alarm.registerFailed")),1)],2))),128))])])):v("",!0),s("div",Ce,[s("h3",Se,i(n(P)("alarm.linkageTitle")),1),s("p",Ae,i(n(P)("alarm.linkageDesc")),1),s("div",Ue,[s("div",xe,[s("label",null,i(n(P)("alarm.linkagePlanName")),1),t(s("input",{"onUpdate:modelValue":a[7]||(a[7]=e=>Oa.value=e),class:"form-input",placeholder:n(P)("alarm.linkagePlanNamePlaceholder")},null,8,Ne),[[c,Oa.value]])]),s("div",De,[s("label",null,i(n(P)("alarm.audioSource")),1),s("div",Le,[s("button",{class:u(["toggle-btn",{active:"file"===qa.value}]),onClick:a[8]||(a[8]=e=>qa.value="file")},i(n(P)("alarm.selectFile")),3),s("button",{class:u(["toggle-btn",{active:"url"===qa.value}]),onClick:a[9]||(a[9]=e=>qa.value="url")},i(n(P)("alarm.inputUrl")),3)])])]),"file"===qa.value?(h(),l("div",Fe,[t(s("select",{"onUpdate:modelValue":a[10]||(a[10]=e=>za.value=e),class:"form-input"},[s("option",Pe,i(n(P)("alarm.selectFilePlaceholder")),1),(h(!0),l(r,null,o(Ha.value,e=>(h(),l("option",{key:e.id,value:e.id},i(e.filename||e.name||`ID:${e.id}`),9,Te))),128))],512),[[d,za.value]])])):(h(),l("div",_e,[t(s("input",{"onUpdate:modelValue":a[11]||(a[11]=e=>Ea.value=e),class:"form-input",placeholder:n(P)("alarm.urlPlaceholder")},null,8,Ve),[[c,Ea.value]])])),s("div",$e,[s("label",null,i(n(P)("alarm.linkageDevices")),1),s("p",Re,i(n(P)("alarm.linkageDevicesHint")),1),s("div",je,[s("button",{class:"toolbar-btn",onClick:cl},i(n(P)("alarm.selectAllOnline")),1),s("button",{class:"toolbar-btn",onClick:rl},i(n(P)("alarm.clearSelection")),1),s("span",Ie,i(n(P)("alarm.selectedCount",{count:Ga.value.length})),1)]),Pa.value.length>0?(h(),l("div",He,[(h(!0),l(r,null,o(Pa.value,e=>(h(),l("label",{key:"lg-"+sl(e),class:u(["device-item",{"device-offline":!il(e)}])},[t(s("input",{type:"checkbox",value:sl(e),"onUpdate:modelValue":a[12]||(a[12]=e=>Ga.value=e)},null,8,Be),[[k,Ga.value]]),s("span",Me,i(ll(e)),1),s("span",{class:u(["device-status-dot",il(e)?"online":"offline"])},null,2)],2))),128))])):v("",!0)]),s("div",Oe,[s("button",{class:"register-btn",disabled:Wa.value,onClick:vl},i(Wa.value?n(P)("alarm.adding"):n(P)("alarm.addLinkagePlan")),9,qe)])]),s("div",ze,[s("div",Ee,[s("h3",Ge,i(n(P)("alarm.linkageList")),1),s("button",{class:"toolbar-btn",onClick:dl},i(n(P)("alarm.refreshList")),1)]),Za.value.length>0?(h(),l("div",We,[s("table",Ze,[s("thead",null,[s("tr",null,[a[22]||(a[22]=s("th",null,"ID",-1)),s("th",null,i(n(P)("alarm.linkagePlanName")),1),s("th",null,i(n(P)("alarm.linkageDeviceCount")),1),a[23]||(a[23]=s("th",null,"URL",-1)),s("th",null,i(n(P)("common.actions")),1)])]),s("tbody",null,[(h(!0),l(r,null,o(Za.value,e=>(h(),l("tr",{key:e.id},[s("td",null,i(e.id),1),s("td",null,i(e.name),1),s("td",null,i(e.snids?e.snids.split("|").length:0),1),s("td",{class:"td-url",title:e.url},i(e.url),9,Je),s("td",Ke,[s("button",{class:"register-trigger-btn",onClick:a=>function(e){Ja.value={show:!0,pltid:e.id,planName:e.name,selectedSn:"",loading:!1}}(e)},i(n(P)("alarm.registerTrigger")),9,Qe),s("button",{class:"unregister-btn",onClick:a=>async function(e){if(await Ya(`${P("alarm.deleteLinkageConfirm")} "${e.name}"?`))try{const a=await F(e.id);!0===a.res?Za.value=Za.value.filter(a=>a.id!==e.id):await Xa(a.info||P("alarm.deleteLinkageFailed"))}catch{await Xa(P("alarm.deleteLinkageFailed"))}}(e)},i(n(P)("common.delete")),9,Xe)])]))),128))])])])):(h(),l("div",Ye,i(n(P)("alarm.noLinkagePlans")),1))]),s("div",ea,[s("h3",aa,i(n(P)("alarm.forceUnregTitle")),1),s("p",la,i(n(P)("alarm.forceUnregHint")),1),s("div",sa,[s("button",{class:"force-unreg-btn",onClick:gl},i(n(P)("alarm.forceUnregButton")),1)])]),(h(),m(f,{to:"body"},[Ja.value.show?(h(),l("div",{key:0,class:"modal-overlay",onClick:a[14]||(a[14]=g(e=>Ja.value.show=!1,["self"]))},[s("div",ia,[s("div",na,i(n(P)("alarm.registerTriggerTitle"))+" — "+i(Ja.value.planName),1),s("div",ta,[s("p",ca,i(n(P)("alarm.linkageTriggerDeviceHint")),1),Pa.value.length>0?(h(),l("div",ra,[(h(!0),l(r,null,o(Pa.value,e=>(h(),l("label",{key:"tm-"+sl(e),class:u(["device-item trigger-device-item",{"device-offline":!il(e),selected:Ja.value.selectedSn===sl(e)}]),onClick:g(a=>il(e)&&(Ja.value.selectedSn=sl(e)),["prevent"])},[s("input",{type:"radio",value:sl(e),checked:Ja.value.selectedSn===sl(e),disabled:!il(e),onChange:a=>Ja.value.selectedSn=sl(e)},null,40,ua),s("span",da,i(ll(e)),1),s("span",va,i(sl(e).substring(0,8))+"...",1),s("span",{class:u(["device-status-dot",il(e)?"online":"offline"])},null,2)],10,oa))),128))])):(h(),l("div",ma,i(n(P)("alarm.noDevices")),1))]),s("div",ga,[s("button",{class:"modal-btn modal-btn-cancel",onClick:a[13]||(a[13]=e=>Ja.value.show=!1)},i(n(P)("common.cancel")),1),s("button",{class:"modal-btn modal-btn-confirm",disabled:!Ja.value.selectedSn||Ja.value.loading,onClick:ml},i(Ja.value.loading?n(P)("alarm.registering"):n(P)("alarm.registerTrigger")),9,fa)])])])):v("",!0)])),(h(),m(f,{to:"body"},[Ka.value.show?(h(),l("div",{key:0,class:"modal-overlay",onClick:a[16]||(a[16]=g(e=>Ka.value.show=!1,["self"]))},[s("div",pa,[s("div",ba,i(n(P)("alarm.forceUnregTitle")),1),s("div",ha,[s("p",ka,i(n(P)("alarm.forceUnregModalHint")),1),Pa.value.length>0?(h(),l("div",ya,[(h(!0),l(r,null,o(Pa.value,e=>(h(),l("label",{key:"fu-"+sl(e),class:u(["device-item trigger-device-item",{"device-offline":!il(e),selected:Ka.value.selectedSn===sl(e)}]),onClick:g(a=>il(e)&&(Ka.value.selectedSn=sl(e)),["prevent"])},[s("input",{type:"radio",value:sl(e),checked:Ka.value.selectedSn===sl(e),disabled:!il(e),onChange:a=>Ka.value.selectedSn=sl(e)},null,40,Ca),s("span",Sa,i(ll(e)),1),s("span",Aa,i(sl(e).substring(0,8))+"...",1),s("span",{class:u(["device-status-dot",il(e)?"online":"offline"])},null,2)],10,wa))),128))])):(h(),l("div",Ua,i(n(P)("alarm.noDevices")),1))]),s("div",xa,[s("button",{class:"modal-btn modal-btn-cancel",onClick:a[15]||(a[15]=e=>Ka.value.show=!1)},i(n(P)("common.cancel")),1),s("button",{class:"modal-btn modal-btn-confirm force-confirm-btn",disabled:!Ka.value.selectedSn||Ka.value.loading,onClick:fl},i(Ka.value.loading?n(P)("alarm.registering"):n(P)("alarm.forceUnregConfirm")),9,Na)])])])):v("",!0)])),(h(),m(f,{to:"body"},[Qa.value.show?(h(),l("div",{key:0,class:"modal-overlay",onClick:a[18]||(a[18]=g(e=>Qa.value.show=!1,["self"]))},[s("div",Da,[s("div",La,i(Qa.value.message),1),s("div",Fa,["confirm"===Qa.value.type?(h(),l("button",{key:0,class:"modal-btn modal-btn-cancel",onClick:a[17]||(a[17]=e=>Qa.value.show=!1)},i(n(P)("common.cancel")),1)):v("",!0),s("button",{class:"modal-btn modal-btn-confirm",onClick:el},i(n(P)("common.confirm")),1)])])])):v("",!0)]))]))}}),[["__scopeId","data-v-b3fcff72"]]);export{Pa as default};