@oxiaom/adoremix 1.0.16 → 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.
- package/package.json +1 -1
- package/webui/high/assets/AdminLayout-BeGqmJmh.js +1 -0
- package/webui/high/assets/AdminLayout-Dg0cblhW.css +1 -0
- package/webui/high/assets/Announce-2364DXIw.css +1 -0
- package/webui/high/assets/Announce-BxOu3PDa.js +1 -0
- package/webui/high/assets/Billing-9pkW40cw.css +1 -0
- package/webui/high/assets/Billing-DkKexnBS.js +1 -0
- package/webui/high/assets/Gallery-BUO8AayT.js +1 -0
- package/webui/high/assets/Gallery-CvDy0BG_.css +1 -0
- package/webui/high/assets/Info-BRpM9vrH.css +1 -0
- package/webui/high/assets/Info-jgxOyI48.js +1 -0
- package/webui/high/assets/LanguageSwitcher-wcRpxcC2.css +1 -0
- package/webui/high/assets/LanguageSwitcher.vue_vue_type_style_index_0_lang-7lwszLYh.js +1 -0
- package/webui/high/assets/MainLayout-Cg9w3D6H.js +1 -0
- package/webui/high/assets/MainLayout-CtxzU51m.css +1 -0
- package/webui/high/assets/Upload-BUllX3F9.css +1 -0
- package/webui/high/assets/Upload-BhZe08V8.js +1 -0
- package/webui/high/assets/Users-BajKphJ2.css +1 -0
- package/webui/high/assets/Users-C-uvafHe.js +1 -0
- package/webui/high/assets/_plugin-vue_export-helper-BCo6x5W8.js +1 -0
- package/webui/high/assets/api-C3Fyph-A.js +1 -0
- package/webui/high/assets/index-6wTg37PL.js +1 -0
- package/webui/high/assets/index-BU_CDG5n.js +1 -0
- package/webui/high/assets/index-B_eXN_Ka.css +1 -0
- package/webui/high/assets/index-BeMdB8li.css +1 -0
- package/webui/high/assets/index-BeyjdvRw.css +1 -0
- package/webui/high/assets/index-Bqlp4X7Z.css +1 -0
- package/webui/high/assets/index-BwGOSVLU.css +1 -0
- package/webui/high/assets/index-C0plBGGv.js +1 -0
- package/webui/high/assets/index-CG0Cxnu7.js +1 -0
- package/webui/high/assets/index-CGTbAKLR.css +1 -0
- package/webui/high/assets/index-CTbFCtHG.js +1 -0
- package/webui/high/assets/index-CTtQ-PJh.css +1 -0
- package/webui/high/assets/index-Ci-5piG7.css +1 -0
- package/webui/high/assets/index-DPlPWsqM.js +1 -0
- package/webui/high/assets/index-DbeENJC3.css +1 -0
- package/webui/high/assets/index-DdwHcYZD.js +1 -0
- package/webui/high/assets/index-KMJ_Zaix.js +1 -0
- package/webui/high/assets/index-LP7k5pkh.js +1 -0
- package/webui/high/assets/index-MthettIa.css +1 -0
- package/webui/high/assets/index-_3H0q9yh.css +1 -0
- package/webui/high/assets/index-npdYRXyk.js +18 -0
- package/webui/high/assets/index-ptOpmqku.js +1 -0
- package/webui/high/assets/index-r_gAV5lM.css +1 -0
- package/webui/high/assets/index-u4IuHZw8.js +1 -0
- package/webui/high/assets/test-BQUWlKVf.css +1 -0
- package/webui/high/assets/test-Bt3E-Okh.js +1 -0
- package/webui/high/assets/useDeviceScan-CM8xsf7h.js +1 -0
- package/webui/high/assets/vue-vendor-BaBirIg_.js +38 -0
- package/webui/high/index.html +23 -0
- package/webui/high/js/lame.min.js +308 -0
- package/webui/high/js/worker-realtime.js +81 -0
- package/webui/low/assets/AdminLayout-Dg0cblhW.css +1 -0
- package/webui/low/assets/AdminLayout-Dio6Q0f_.js +1 -0
- package/webui/low/assets/Announce-2364DXIw.css +1 -0
- package/webui/low/assets/Announce-DiogX_-D.js +1 -0
- package/webui/low/assets/Billing-9pkW40cw.css +1 -0
- package/webui/low/assets/Billing-C42F8wIt.js +1 -0
- package/webui/low/assets/Gallery-CvDy0BG_.css +1 -0
- package/webui/low/assets/Gallery-DGUAhDtI.js +1 -0
- package/webui/low/assets/Info-BRpM9vrH.css +1 -0
- package/webui/low/assets/Info-BolVapGU.js +1 -0
- package/webui/low/assets/LanguageSwitcher-wcRpxcC2.css +1 -0
- package/webui/low/assets/LanguageSwitcher.vue_vue_type_style_index_0_lang-BUO99DZc.js +1 -0
- package/webui/low/assets/MainLayout-BmBcNVVu.js +1 -0
- package/webui/low/assets/MainLayout-CtxzU51m.css +1 -0
- package/webui/low/assets/Upload-BUllX3F9.css +1 -0
- package/webui/low/assets/Upload-B_Cx6QMR.js +1 -0
- package/webui/low/assets/Users-BajKphJ2.css +1 -0
- package/webui/low/assets/Users-an7uFkx4.js +1 -0
- package/webui/low/assets/_plugin-vue_export-helper-BCo6x5W8.js +1 -0
- package/webui/low/assets/api-C3Fyph-A.js +1 -0
- package/webui/low/assets/index-2JKvpOh3.js +1 -0
- package/webui/low/assets/index-B_eXN_Ka.css +1 -0
- package/webui/low/assets/index-BeMdB8li.css +1 -0
- package/webui/low/assets/index-BeyjdvRw.css +1 -0
- package/webui/low/assets/index-BoV0S81L.js +1 -0
- package/webui/low/assets/index-Bqlp4X7Z.css +1 -0
- package/webui/low/assets/index-BuEwLgbU.js +18 -0
- package/webui/low/assets/index-BwGOSVLU.css +1 -0
- package/webui/low/assets/index-CGTbAKLR.css +1 -0
- package/webui/low/assets/index-CSahVaR0.js +1 -0
- package/webui/low/assets/index-CTtQ-PJh.css +1 -0
- package/webui/low/assets/index-CgyUlqk5.js +1 -0
- package/webui/low/assets/index-Ci-5piG7.css +1 -0
- package/webui/low/assets/index-Cjg2XVty.js +1 -0
- package/webui/low/assets/index-D-BJ_vlf.js +1 -0
- package/webui/low/assets/index-D0uan-_I.js +1 -0
- package/webui/low/assets/index-DWP2gbuh.js +1 -0
- package/webui/low/assets/index-DbeENJC3.css +1 -0
- package/webui/low/assets/index-DdPisNCE.js +1 -0
- package/webui/low/assets/index-F-Qi4toA.js +1 -0
- package/webui/low/assets/index-FUUYrqc8.js +1 -0
- package/webui/low/assets/index-MthettIa.css +1 -0
- package/webui/low/assets/index-_3H0q9yh.css +1 -0
- package/webui/low/assets/index-r_gAV5lM.css +1 -0
- package/webui/low/assets/test-BQUWlKVf.css +1 -0
- package/webui/low/assets/test-DI2hJTQF.js +1 -0
- package/webui/low/assets/useDeviceScan-CM8xsf7h.js +1 -0
- package/webui/low/assets/vue-vendor-BaBirIg_.js +38 -0
- package/webui/low/index.html +23 -0
- package/webui/low/js/lame.min.js +308 -0
- package/webui/low/js/worker-realtime.js +81 -0
|
@@ -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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as e,w as l,o as a,n as s,y as i,A as n,u as o,p as c,M as t,E as d,H as r,B as u,C as v,F as m,z as p,N as h,W as g,r as f,c as b,t as y,X as k}from"./vue-vendor-BaBirIg_.js";import{u as x,a as w}from"./index-npdYRXyk.js";import{g as C,b as M,e as I,r as D,d as V,f as A,h as S,i as L,j as P}from"./api-C3Fyph-A.js";import{u as F}from"./useDeviceScan-CM8xsf7h.js";import{_ as U}from"./_plugin-vue_export-helper-BCo6x5W8.js";const B={class:"device-manage"},R={class:"page-header"},$={class:"page-title"},_={class:"header-actions"},O={key:0,class:"view-mode-toggle"},E=["title"],N=["title"],j=["disabled","title"],H=["title"],z=["title"],T={class:"device-search-bar"},q=["placeholder"],G={class:"device-list"},K={key:0,class:"empty-state"},W={key:1,class:"list-view"},J={class:"device-table-grid"},X={class:"device-row device-header-row"},Q={class:"cell cell-select"},Y={class:"cell cell-header"},Z={class:"cell cell-header"},ee={class:"cell cell-header"},le={class:"cell cell-header"},ae={class:"cell cell-header"},se={class:"cell cell-header"},ie={class:"cell cell-header"},ne={class:"cell cell-header"},oe={class:"cell cell-header"},ce={class:"cell cell-header"},te={class:"cell cell-header"},de={class:"cell cell-header"},re=["onClick"],ue={class:"cell cell-select"},ve=["checked","onChange"],me={class:"cell"},pe={class:"field-value"},he={class:"cell"},ge={class:"field-value"},fe={class:"cell"},be={class:"field-value"},ye={class:"cell"},ke={class:"field-value"},xe={class:"cell"},we={class:"field-value"},Ce={key:0,class:"status-badge status-online"},Me={key:1,class:"status-badge status-playing"},Ie={key:2,class:"status-badge status-offline"},De={key:3,class:"status-badge status-never"},Ve={key:4,class:"status-badge status-expired"},Ae={key:5,class:"status-badge status-unknown"},Se={class:"cell"},Le=["onClick","title"],Pe={class:"cell"},Fe={class:"field-value"},Ue={class:"cell"},Be=["onClick","title"],Re={class:"cell"},$e=["onClick","title"],_e={class:"cell"},Oe=["onClick","title"],Ee={class:"cell"},Ne=["onClick","title"],je={class:"cell"},He=["disabled","onClick","title"],ze=["disabled","onClick","title"],Te={key:2,class:"card-view"},qe={class:"card-grid"},Ge=["onClick"],Ke={class:"card-header"},We={class:"card-select"},Je=["checked","onChange"],Xe={class:"card-actions"},Qe=["disabled","onClick","title"],Ye=["disabled","onClick","title"],Ze={class:"card-body"},el={class:"card-info-row"},ll={class:"info-label"},al={class:"info-value"},sl={class:"card-info-row"},il={class:"info-label"},nl={class:"info-value"},ol={class:"card-info-row"},cl={class:"info-label"},tl={class:"card-info-row"},dl={class:"info-label"},rl={class:"info-value"},ul={class:"card-info-row"},vl={class:"info-label"},ml={class:"info-value"},pl={key:0,class:"status-badge status-online"},hl={key:1,class:"status-badge status-playing"},gl={key:2,class:"status-badge status-offline"},fl={key:3,class:"status-badge status-never"},bl={key:4,class:"status-badge status-expired"},yl={key:5,class:"status-badge status-unknown"},kl={class:"card-footer"},xl=["onClick","title"],wl=["onClick","title"],Cl=["onClick","title"],Ml=["onClick","title"],Il=["onClick","title"],Dl={key:3,class:"loading-mask"},Vl={class:"dialog-header"},Al={class:"dialog-body"},Sl={class:"form-group"},Ll=["placeholder"],Pl={key:0,class:"error-text"},Fl={class:"form-group"},Ul=["placeholder"],Bl={key:0,class:"error-text"},Rl={class:"form-group"},$l=["placeholder"],_l={key:0,class:"error-text"},Ol={class:"form-hint"},El={class:"hint-detail"},Nl={class:"dialog-footer"},jl=["disabled"],Hl={class:"dialog-header"},zl={class:"dialog-body"},Tl={class:"form-group"},ql=["placeholder"],Gl={key:0,class:"error-text"},Kl={class:"dialog-footer"},Wl=["disabled"],Jl={class:"dialog-header"},Xl={class:"dialog-body"},Ql={class:"form-group"},Yl=["placeholder"],Zl={class:"form-group"},ea=["placeholder"],la={key:0,class:"error-text"},aa={class:"form-hint"},sa={class:"dialog-footer"},ia=["disabled"],na={class:"dialog-header"},oa={class:"dialog-body"},ca={class:"form-group"},ta=["placeholder"],da={key:0,class:"error-text"},ra={class:"form-group"},ua=["placeholder"],va={key:0,class:"error-text"},ma={class:"form-group"},pa=["placeholder"],ha={key:0,class:"error-text"},ga={class:"form-group"},fa=["placeholder"],ba={class:"dialog-footer"},ya=["disabled"],ka={class:"dialog-header"},xa={class:"dialog-body"},wa={class:"volume-control"},Ca={class:"volume-display"},Ma={class:"volume-value"},Ia={class:"volume-range"},Da={class:"volume-input"},Va={class:"dialog-footer"},Aa=["disabled"],Sa={class:"dialog-header"},La={class:"dialog-body"},Pa={class:"selected-devices-info"},Fa={class:"info-label"},Ua={class:"info-count"},Ba={class:"volume-control"},Ra={class:"volume-display"},$a={class:"volume-value"},_a={class:"volume-range"},Oa={class:"volume-input"},Ea={class:"dialog-footer"},Na=["disabled"],ja={class:"dialog-header"},Ha={class:"dialog-body"},za={class:"scan-top-bar"},Ta={class:"scan-hint"},qa=["disabled"],Ga={key:0,class:"scan-spinner",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},Ka={key:0,class:"scan-error"},Wa={class:"scan-main-layout"},Ja={class:"scan-main-left"},Xa={key:0,class:"scan-results"},Qa={class:"scan-results-header"},Ya={class:"scan-count"},Za={class:"scan-sort-btns"},es={class:"sort-arrow"},ls={class:"sort-arrow"},as={class:"scan-device-table"},ss={class:"scan-table-header"},is={class:"col-media"},ns={class:"col-port"},os={class:"col-flag"},cs={class:"col-flag"},ts={class:"col-dns"},ds={class:"scan-table-body"},rs=["onClick"],us={class:"col-idx"},vs={class:"col-ip"},ms={class:"col-seed mono"},ps={class:"col-media"},hs={class:"col-port"},gs={class:"col-flag"},fs={class:"col-flag"},bs={class:"col-dns"},ys={class:"col-action"},ks=["onClick","title"],xs=["onClick"],ws={key:1,class:"scan-empty"},Cs={class:"scan-console-side"},Ms={class:"console-header"},Is={class:"console-body",ref:"consoleBody"},Ds={key:0,class:"console-empty"},Vs={class:"dialog-header"},As={class:"dialog-body"},Ss={class:"config-seed-display"},Ls={class:"config-seed-label"},Ps={class:"config-seed-value"},Fs={class:"test-comm-section"},Us=["disabled"],Bs={class:"form-group"},Rs={class:"toggle-label"},$s={key:0,class:"config-ip-fields"},_s={class:"form-group"},Os={key:0,class:"field-error"},Es={class:"form-group"},Ns={key:0,class:"field-error"},js={class:"form-group"},Hs={key:0,class:"field-error"},zs={class:"config-row-2col"},Ts={class:"form-group"},qs={key:0,class:"field-error"},Gs={class:"form-group"},Ks={key:0,class:"field-error"},Ws={class:"config-row-2col"},Js={class:"form-group"},Xs=["placeholder"],Qs={key:0,class:"field-error"},Ys={class:"form-group"},Zs={class:"toggle-label"},ei={class:"console-section"},li={class:"console-header"},ai={class:"console-body",ref:"consoleBody"},si={key:0,class:"console-empty"},ii={class:"dialog-footer"},ni={class:"dialog-header"},oi={class:"dialog-body amixer-body"},ci={class:"amixer-toolbar"},ti={class:"amixer-seed-display mono"},di=["disabled"],ri={class:"amixer-groups"},ui={class:"amixer-group"},vi={class:"amixer-group-title"},mi={class:"amixer-controls"},pi={class:"amixer-row slider-row"},hi={class:"amixer-label"},gi={class:"amixer-value"},fi={class:"amixer-row slider-row"},bi={class:"amixer-label"},yi={class:"amixer-value"},ki={class:"amixer-row switch-row"},xi={class:"amixer-label"},wi={value:0},Ci={value:1},Mi={class:"amixer-row switch-row"},Ii={class:"amixer-label"},Di={value:0},Vi={value:1},Ai={class:"amixer-group"},Si={class:"amixer-group-title"},Li={class:"amixer-controls"},Pi={class:"amixer-row slider-row"},Fi={class:"amixer-label"},Ui={class:"amixer-value"},Bi={class:"amixer-row slider-row"},Ri={class:"amixer-label"},$i={class:"amixer-value"},_i={class:"amixer-row slider-row"},Oi={class:"amixer-label"},Ei={class:"amixer-value"},Ni={class:"amixer-row slider-row"},ji={class:"amixer-label"},Hi={class:"amixer-value"},zi={class:"amixer-row slider-row"},Ti={class:"amixer-label"},qi={class:"amixer-value"},Gi={class:"amixer-group"},Ki={class:"amixer-group-title"},Wi={class:"amixer-controls"},Ji={class:"amixer-label"},Xi=["onUpdate:modelValue"],Qi={value:0},Yi={value:1},Zi=["onClick"],en={class:"amixer-group"},ln={class:"amixer-group-title"},an={class:"amixer-controls"},sn={class:"amixer-label"},nn=["onUpdate:modelValue"],on={value:0},cn={value:1},tn=["onClick"],dn={class:"amixer-group"},rn={class:"amixer-group-title"},un={class:"amixer-controls"},vn={class:"amixer-label"},mn=["onUpdate:modelValue"],pn={value:0},hn={value:1},gn=["onClick"],fn={class:"dialog-footer"},bn="device_display_order",yn="device_view_mode",kn=U(e({__name:"index",setup(e){var U,kn;const{t:xn}=x(),wn=w();function Cn(e){var l;const a=`; ${document.cookie}`.split(`; ${e}=`);return 2===a.length&&(null==(l=a.pop())?void 0:l.split(";").shift())||""}function Mn(e,l,a=365){const s=new Date;s.setTime(s.getTime()+24*a*60*60*1e3),document.cookie=`${e}=${l};expires=${s.toUTCString()};path=/`}const In="undefined"!=typeof window&&!!(null==(kn=null==(U=window.Capacitor)?void 0:U.isNativePlatform)?void 0:kn.call(U)),Dn=f(In?"card":"list"),Vn=f("");function An(e){const l=function(){try{const e=Cn(bn);if(e){const l=JSON.parse(e);if(Array.isArray(l))return l}}catch(e){console.error("解析设备排序失败:",e)}return[]}();if(0===l.length)return e;const a=new Map;e.forEach(e=>{e.id&&a.set(e.id,e)});const s=[];return l.forEach(e=>{const l=a.get(e);l&&(s.push(l),a.delete(e))}),a.forEach(e=>{s.push(e)}),s}function Sn(e,l="success"){const a=document.createElement("div");a.className=`custom-message custom-message-${l}`,a.textContent=e,document.body.appendChild(a),setTimeout(()=>{a.classList.add("show")},10),setTimeout(()=>{a.classList.remove("show"),setTimeout(()=>{document.body.removeChild(a)},300)},3e3)}function Ln(e,l=xn("devices.confirmOperation")){return console.log("📋 显示确认对话框:",l,e),new Promise(a=>{const s=document.createElement("div");s.className="confirm-overlay";const i=document.createElement("div");i.className="confirm-dialog",i.innerHTML=`\n <div class="confirm-header">\n <h3>${l}</h3>\n </div>\n <div class="confirm-body">\n <p>${e}</p>\n </div>\n <div class="confirm-footer">\n <button class="confirm-cancel">取消</button>\n <button class="confirm-ok">确定</button>\n </div>\n `,s.appendChild(i),document.body.appendChild(s),console.log("确认对话框已添加到DOM"),console.log("Overlay元素:",s),console.log("Dialog元素:",i);const n=window.getComputedStyle(s),o=window.getComputedStyle(i);console.log("Overlay关键样式:",{display:n.display,position:n.position,zIndex:n.zIndex,opacity:n.opacity,visibility:n.visibility,backgroundColor:n.backgroundColor,top:n.top,left:n.left}),console.log("Dialog关键样式:",{display:o.display,backgroundColor:o.backgroundColor,zIndex:o.zIndex,opacity:o.opacity,visibility:o.visibility,width:o.width,maxWidth:o.maxWidth});const c=i.querySelector(".confirm-cancel"),t=i.querySelector(".confirm-ok"),d=()=>{document.body.removeChild(s)};c.onclick=()=>{d(),a(!1)},t.onclick=()=>{d(),a(!0)},s.onclick=e=>{e.target===s&&(d(),a(!1))}})}l(Dn,e=>{Mn(yn,e),console.log("✓ 视图模式已保存:",e)});const Pn=f([]),Fn=f(!1),Un=b(()=>{const e=Vn.value.trim().toLowerCase();return e?Pn.value.filter(l=>{const a=(l.devname||l.device_name||l.name||"").toLowerCase(),s=(l.device_seed||l.device_code||"").toLowerCase();return a.includes(e)||s.includes(e)}):Pn.value}),Bn=f(!1),Rn=f(!1),$n=f(!1),_n=f(!1),On=f(!1),En=f(!1),Nn=f(!1),jn=f(!1),Hn=f(""),zn=f(!1),{scannedDevices:Tn,isScanning:qn,scanError:Gn,isElectron:Kn,udpLogs:Wn,startScan:Jn,testCommunication:Xn,configureDevice:Qn,sendAmixer:Yn,getAmixerStatus:Zn,clearLogs:eo}=F();l(Wn,()=>{k(()=>{document.querySelectorAll(".console-body").forEach(e=>{e.scrollTop=e.scrollHeight})})});const lo=f(!1),ao=f({seed:"",deviceIP:"",mask:"255.255.255.0",gateway:"",mediaIP:"",mediaPort:12080,autoIP:!0,warmMode:!1,dns:"0.0.0.0"}),so=f("ip"),io=f(!0);function no(e){so.value===e?io.value=!io.value:(so.value=e,io.value=!0)}function oo(e){const l=e.split(".").map(Number);return(l[0]||0)<<24|(l[1]||0)<<16|(l[2]||0)<<8|(l[3]||0)}const co=b(()=>{const e=[...Tn.value],l=io.value?1:-1;return"ip"===so.value?e.sort((e,a)=>(oo(e.ip)-oo(a.ip))*l):e.sort((e,a)=>e.seed.localeCompare(a.seed)*l),e}),to=f([]),ro=f({name:"",serial:"",key:""}),uo=f({id:0,name:"",mac:"",ip:"",port:12080}),vo=f({id:0,name:""}),mo=f({id:0,newsn:""}),po=f(null),ho=f(32),go=f(32),fo=f({}),bo=f({}),yo=f({}),ko=f({}),xo=f(!1);function wo(e,l){const a={};return e.name&&""!==e.name.trim()||(a.name=xn("devices.deviceNameValidationError")),e.serial&&""!==e.serial.trim()||(a.serial=xn("devices.deviceSerialValidationError")),e.key&&""!==e.key.trim()||(a.key=xn("devices.deviceKeyValidationError")),l.value=a,0===Object.keys(a).length}async function Co(){Fn.value=!0,console.log("========================================"),console.log("开始获取设备列表...");try{const e=await C();console.log("设备列表完整响应:",e);let l=[];!0===e.res&&Array.isArray(e.results)?(l=e.results,console.log("✓ 从 results 字段获取到设备:",e.results.length,"个"),Sn(`${xn("devices.successfullyFetched")} ${e.results.length} ${xn("devices.devicesUnit")}`,"success")):!0===e.res&&Array.isArray(e.list)?(l=e.list,console.log("✓ 从 list 字段获取到设备:",e.list.length,"个"),Sn(`${xn("devices.successfullyFetched")} ${e.list.length} ${xn("devices.devicesUnit")}`,"success")):!0===e.res&&Array.isArray(e.filelist)?(l=e.filelist,console.log("✓ 从 filelist 字段获取到设备:",e.filelist.length,"个"),Sn(`${xn("devices.successfullyFetched")} ${e.filelist.length} ${xn("devices.devicesUnit")}`,"success")):Array.isArray(e)?(l=e,console.log("✓ 响应本身是数组,获取到设备:",e.length,"个"),Sn(`${xn("devices.successfullyFetched")} ${e.length} ${xn("devices.devicesUnit")}`,"success")):(Pn.value=[],console.warn("设备列表响应格式异常,无法解析数据"),console.warn("响应的keys:",Object.keys(e)),Sn(xn("devices.deviceListFormatError"),"error")),Pn.value=An(l),console.log("最终设备列表:",Pn.value),console.log("========================================")}catch(e){console.error("获取设备列表失败:",e),Sn(`${xn("devices.fetchDeviceListFailed")}: ${e.message||xn("devices.unknownError")}`,"error")}finally{Fn.value=!1}}async function Mo(){zn.value=!0,await Jn()}async function Io(){const e=ao.value.seed;e&&32===e.length&&/^[0-9a-fA-F]{32}$/.test(e)&&(lo.value=!0,await Xn(e),lo.value=!1)}const Do=f({});function Vo(e){return!!e&&(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(e)&&e.split(".").every(e=>{const l=parseInt(e);return l>=0&&l<=255}))}async function Ao(){if(function(){Do.value={};const e=ao.value;return e.autoIP||(Vo(e.deviceIP)||(Do.value.deviceIP=xn("devices.invalidIP")),Vo(e.mask)||(Do.value.mask=xn("devices.invalidMask")),e.gateway&&!Vo(e.gateway)&&(Do.value.gateway=xn("devices.invalidGateway"))),e.mediaIP&&"0.0.0.0"!==e.mediaIP&&!Vo(e.mediaIP)&&(Do.value.mediaIP=xn("devices.invalidMediaIP")),(!e.mediaPort||e.mediaPort<1||e.mediaPort>65535)&&(Do.value.mediaPort=xn("devices.invalidPort")),e.dns&&"0.0.0.0"!==e.dns&&!Vo(e.dns)&&(Do.value.dns=xn("devices.invalidDNS")),0===Object.keys(Do.value).length}())try{await Qn({...ao.value})?(Sn(xn("devices.deviceConfigured"),"success"),jn.value=!1):Sn(xn("devices.deviceConfigureFailed"),"error")}catch(e){Sn(xn("devices.deviceConfigureFailed")+": "+(e.message||""),"error")}else Sn(Object.values(Do.value).join(";"),"error")}const So=f(!1),Lo=f(""),Po=f(!1),Fo=f({dacVolume:63,hpVolume:63,hpSwitch:1,hpRoute:0,lineInVolume:7,fmInVolume:7,micInVolume:7,micBoost:7,adcCapture:4,adcRightOut:0,adcLeftOut:0,adcLineIn:0,adcRightFM:1,adcLeftFM:1,adcMic:0,leftRightDAC:0,leftLeftDAC:0,leftFM:1,leftLineIn:0,leftMicIn:0,rightLeftDAC:0,rightRightDAC:0,rightFM:1,rightLineIn:0,rightMicIn:0}),Uo=b(()=>[{numid:9,key:"adcRightOut",label:xn("devices.amixerADCRightOut")},{numid:10,key:"adcLeftOut",label:xn("devices.amixerADCLeftOut")},{numid:11,key:"adcLineIn",label:xn("devices.amixerADCLineIn")},{numid:12,key:"adcRightFM",label:xn("devices.amixerADCRightFM")},{numid:13,key:"adcLeftFM",label:xn("devices.amixerADCLeftFM")},{numid:14,key:"adcMic",label:xn("devices.amixerADCMic")}]),Bo=b(()=>[{numid:15,key:"leftRightDAC",label:xn("devices.amixerLeftRightDAC")},{numid:16,key:"leftLeftDAC",label:xn("devices.amixerLeftLeftDAC")},{numid:17,key:"leftFM",label:xn("devices.amixerLeftFM")},{numid:18,key:"leftLineIn",label:xn("devices.amixerLeftLineIn")},{numid:19,key:"leftMicIn",label:xn("devices.amixerLeftMicIn")}]),Ro=b(()=>[{numid:20,key:"rightLeftDAC",label:xn("devices.amixerRightLeftDAC")},{numid:21,key:"rightRightDAC",label:xn("devices.amixerRightRightDAC")},{numid:22,key:"rightFM",label:xn("devices.amixerRightFM")},{numid:23,key:"rightLineIn",label:xn("devices.amixerRightLineIn")},{numid:24,key:"rightMicIn",label:xn("devices.amixerRightMicIn")}]),$o=f(!1);function _o(){Lo.value=ao.value.seed,Po.value=!0,$o.value=!0;const e=window.electronAPI;e&&(No.value=e=>function(e){(function(e){const l=e.split("Simple");for(const a of l)a&&(a.includes("Headphone Source")&&(Fo.value.hpRoute=a.includes("Item0: 'Mixer")?1:0),a.includes("'Headphone',0")&&(Fo.value.hpSwitch=a.includes("[on]")?1:0),a.includes("ADC Mixer Left FM In',0")&&(Fo.value.adcLeftFM=a.includes("[on]")?1:0),a.includes("ADC Mixer Right FM In',0")&&(Fo.value.adcRightFM=a.includes("[on]")?1:0),a.includes("ADC Mixer Right Out',0")&&(Fo.value.adcRightOut=a.includes("[on]")?1:0),a.includes("ADC Mixer Left Out',0")&&(Fo.value.adcLeftOut=a.includes("[on]")?1:0),a.includes("ADC Mixer Mic',0")&&(Fo.value.adcMic=a.includes("[on]")?1:0),a.includes("ADC Mixer Line In',0")&&(Fo.value.adcLineIn=a.includes("[on]")?1:0),a.includes("Left Mixer FM In',0")&&(Fo.value.leftFM=a.includes("[on]")?1:0),a.includes("Left Mixer Left DAC',0")&&(Fo.value.leftLeftDAC=a.includes("[on]")?1:0),a.includes("Left Mixer Line In',0")&&(Fo.value.leftLineIn=a.includes("[on]")?1:0),a.includes("Left Mixer Mic In',0")&&(Fo.value.leftMicIn=a.includes("[on]")?1:0),a.includes("Left Mixer Right DAC',0")&&(Fo.value.leftRightDAC=a.includes("[on]")?1:0),a.includes("Right Mixer FM In',0")&&(Fo.value.rightFM=a.includes("[on]")?1:0),a.includes("Right Mixer Left DAC',0")&&(Fo.value.rightLeftDAC=a.includes("[on]")?1:0),a.includes("Right Mixer Line In',0")&&(Fo.value.rightLineIn=a.includes("[on]")?1:0),a.includes("Right Mixer Mic In',0")&&(Fo.value.rightMicIn=a.includes("[on]")?1:0),a.includes("Right Mixer Right DAC',0")&&(Fo.value.rightRightDAC=a.includes("[on]")?1:0));for(const a of l){if(!a)continue;const e=a.match(/(\d+)\s+\[\d+%/);if(!e)continue;const l=parseInt(e[1]);a.includes("mixer control 'DAC',0")?Fo.value.dacVolume=l:a.includes("mixer control 'ADC',0")?Fo.value.adcCapture=l:a.includes("mixer control 'Mic In',0")?Fo.value.micInVolume=l:a.includes("mixer control 'Mic Boost',0")?Fo.value.micBoost=l:a.includes("mixer control 'Line In',0")?Fo.value.lineInVolume=l:a.includes("mixer control 'FM In',0")?Fo.value.fmInVolume=l:a.includes("mixer control 'Headphone',0")&&(Fo.value.hpVolume=l)}Sn(xn("devices.amixerGetSuccess"),"success")})(e.text),Po.value=!1,$o.value&&($o.value=!1,So.value=!0)}(e),e.onDeviceInfo(No.value)),Oo()}async function Oo(){Po.value=!0;await Zn(Lo.value)||(Sn(xn("devices.amixerGetFailed"),"error"),Po.value=!1,$o.value&&($o.value=!1,So.value=!0))}async function Eo(e,l){await Yn(Lo.value,e,l)?Sn(xn("devices.amixerSetSuccess"),"success"):Sn(xn("devices.amixerSetFailed"),"error")}const No=f(null);async function jo(){if(wo(ro.value,fo)){xo.value=!0;try{const e=`${ro.value.serial.trim()}|${ro.value.key.trim()}`,l=await M({name:ro.value.name.trim(),sn:e});console.log("添加设备响应:",l),console.log("拼接后的SN:",e),l.res?(Sn(xn("devices.addDeviceSuccess"),"success"),Bn.value=!1,ro.value={name:"",serial:"",key:""},fo.value={},await Co()):Sn(l.info||xn("devices.addDeviceFailed"),"error")}catch(e){console.error("添加设备失败:",e),Sn(e.message||xn("devices.addDeviceFailed"),"error")}finally{xo.value=!1}}}l(So,e=>{if(!e&&No.value){const e=window.electronAPI;e&&e.removeDeviceInfoListener(),No.value=null}});const Ho=[3614090360,3905402710,606105819,3250441966,4118548399,1200080426,2821735955,4249261313,1770035416,2336552879,4294925233,2304563134,1804603682,4254626195,2792965006,1236535329,4129170786,3225465664,643717713,3921069994,3593408605,38016083,3634488961,3889429448,568446438,3275163606,4107602567,1163531501,2850285829,4243563512,1735328473,2368359562,4277799234,2272393089,1839030562,4259657740,2763975236,1272893353,4139469664,3200236656,681279174,3936430074,3572445317,76029189,3654602809,3873151461,530742520,3299628645,4096336452,1126891415,2878612391,4237533241,1700485571,2399980690,4293915773,2240044497,1873313359,4264355552,2734768916,1309151649,4149444226,3174756917,718787131,3951481745],zo=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],To=new Uint8Array([33,109,17,22,29,152,127,22,7,112,66,22,99,12,177,22,13,113,43,20,5,9,14,47,115,229,134,210,59,29,134,20,4,101,61,203,171,191,16,23,38,42,16,23,13,121,106,93,59,123,15,21,6,10,53,21,46,109,151,201,96,107,135,231]);function qo(e){return e>>>0}function Go(e,l){return(e<<l|e>>>32-l)>>>0}function Ko(e){const l=e.length;let a=l+1;for(;a%64!=56;)a++;const s=new Uint8Array(a+8);s.set(e),s[l]=128;const i=8*l;s[a]=255&i,s[a+1]=i>>>8&255,s[a+2]=i>>>16&255,s[a+3]=i>>>24&255,s[a+4]=l>>>29&255;let n=1732584193,o=4023233417,c=2562383102,t=271733878;const d=new Uint32Array(16);for(let v=0;v<s.length-7;v+=64){for(let n=0;n<16;n++){const e=v+4*n;d[n]=qo(s[e]|s[e+1]<<8|s[e+2]<<16|s[e+3]<<24)}let e=n,l=o,a=c,i=t;for(let s=0;s<64;s++){let n,o;s<16?(n=qo(l&a|~l&i),o=s):s<32?(n=qo(i&l|~i&a),o=(5*s+1)%16):s<48?(n=qo(l^a^i),o=(3*s+5)%16):(n=qo(a^(l|~i)),o=7*s%16);const c=i;i=a,a=l,l=qo(l+Go(qo(e+n+Ho[s]+d[o]),zo[s])),e=c}n=qo(n+e),o=qo(o+l),c=qo(c+a),t=qo(t+i)}const r=new Uint8Array(16),u=new DataView(r.buffer);return u.setUint32(0,n,!0),u.setUint32(4,o,!0),u.setUint32(8,c,!0),u.setUint32(12,t,!0),r}function Wo(e){const l=function(e){const l=new Uint8Array(e.length/2);for(let a=0;a<e.length;a+=2)l[a/2]=parseInt(e.substring(a,a+2),16);return l}(e),a=new Uint8Array(80);a.set(l,0),a.set(To,16);const s=Ko(a),i=Ko(s),n=Ko(i);return o=n,Array.from(o).map(e=>e.toString(16).padStart(2,"0")).join("");var o}async function Jo(e){mo.value={id:e.id,currentSerial:e.device_seed||e.device_code||"",newsn:""},ko.value={},En.value=!0}async function Xo(){if(mo.value.newsn&&""!==mo.value.newsn.trim())if(32===mo.value.newsn.trim().length){xo.value=!0;try{const e=await I({newsn:mo.value.newsn.trim(),devid:mo.value.id});console.log("========================================"),console.log("改序列号响应:",e),console.log("设备ID:",mo.value.id),console.log("当前序列号:",mo.value.currentSerial),console.log("新序列号:",mo.value.newsn.trim()),console.log("========================================"),e.res?(Sn(xn("devices.deviceSerialEditSuccess"),"success"),En.value=!1,await Co()):Sn(e.info||xn("devices.deviceSerialEditFailed"),"error")}catch(e){console.error("设备序列号修改失败:",e),Sn(e.message||xn("devices.deviceSerialEditFailed"),"error")}finally{xo.value=!1}}else ko.value.newsn=xn("devices.newSerialLengthError");else ko.value.newsn=xn("devices.newSerialLengthError")}function Qo(e){vo.value={id:e.id,name:e.devname||e.device_name||e.name||""},yo.value={},Rn.value=!0}async function Yo(){if(vo.value.name&&""!==vo.value.name.trim()){xo.value=!0;try{const e=await D({newname:vo.value.name.trim(),devid:vo.value.id});console.log("========================================"),console.log("改名响应:",e),console.log("设备ID:",vo.value.id),console.log("新名称:",vo.value.name.trim()),console.log("========================================"),e.res?(Sn(xn("devices.deviceRenameSuccess"),"success"),Rn.value=!1,await Co()):Sn(e.info||xn("devices.deviceRenameFailed"),"error")}catch(e){console.error("设备改名失败:",e),Sn(e.message||xn("devices.deviceRenameFailed"),"error")}finally{xo.value=!1}}else yo.value.name=xn("devices.newDeviceNameValidationError")}async function Zo(e){const l=e.device_seed||e.device_code||"",a=1===e.kind,s=xn(a?"devices.closeDebugSound":"devices.openDebugSound"),i=a?2:1;if(await Ln(`${s}?`,s)){xo.value=!0;try{const e=await L({dsv:i,sn:l});e.res?(Sn(xn("devices.debugSoundSuccess"),"success"),await Co()):Sn(e.info||xn("devices.debugSoundFailed"),"error")}catch(n){Sn(n.message||xn("devices.debugSoundFailed"),"error")}finally{xo.value=!1}}}async function ec(){if(wo(uo.value,bo)){xo.value=!0;try{const e=await V({id:uo.value.id,name:uo.value.name.trim(),mac:uo.value.mac.trim(),ip:uo.value.ip||void 0,port:uo.value.port||void 0});console.log("编辑设备响应:",e),e.res?(Sn(xn("devices.deviceEditSuccess"),"success"),$n.value=!1,await Co()):Sn(e.info||xn("devices.deviceEditFailed"),"error")}catch(e){console.error("编辑设备失败:",e),Sn(e.message||xn("devices.deviceEditFailed"),"error")}finally{xo.value=!1}}}async function lc(e){console.log("🗑️ 点击删除按钮"),console.log("设备信息:",e),console.log("设备ID:",e.id),console.log("设备名称:",e.devname||e.device_name||e.name);try{console.log("准备显示确认对话框...");const l=await Ln(`${xn("devices.confirmDelete")} "${e.devname||e.device_name||e.name||xn("devices.unnamedDevice")}"${xn("devices.deleteCannotUndo")}`,xn("devices.deleteDevice"));if(console.log("用户确认删除:",l),!l)return;const a=await P({snid:e.id});console.log("========================================"),console.log("删除设备响应:",a),console.log("设备ID:",e.id),console.log("设备名称:",e.device_name||e.name),console.log("========================================"),a.res?(Sn(xn("devices.deleteDeviceSuccess"),"success"),await Co()):Sn(a.info||xn("devices.deleteDeviceFailed"),"error")}catch(l){console.error("删除设备失败:",l),Sn(l.message||xn("devices.deleteDeviceFailed"),"error")}}function ac(e){po.value=e,ho.value=void 0!==e.vol&&-1!==e.vol?e.vol:32,_n.value=!0}async function sc(){var e,l;if(po.value)if(ho.value<1||ho.value>63)Sn(xn("devices.volumeValidationError"),"error");else{xo.value=!0;try{const e=po.value.device_seed||po.value.device_code||String(po.value.id),l=await A({vol:ho.value,snlist:e});console.log("========================================"),console.log("调节音量响应:",l),console.log("设备名称:",po.value.devname),console.log("设备编码:",e),console.log("设备序列号:",po.value.device_seed),console.log("设置音量值:",ho.value),console.log("========================================"),l.res?(Sn(`${xn("devices.adjustVolumeSuccess")} ${ho.value}`,"success"),_n.value=!1,await Co()):Sn(l.info||xn("devices.adjustVolumeFailed"),"error")}catch(a){console.error("========================================"),console.error("调节音量失败:",a),console.error("错误详情:",{message:a.message,status:null==(e=a.response)?void 0:e.status,data:null==(l=a.response)?void 0:l.data}),console.error("========================================"),Sn(a.message||xn("devices.adjustVolumeFailed"),"error")}finally{xo.value=!1}}}async function ic(){var e,l;if(0!==to.value.length)if(go.value<1||go.value>63)Sn(xn("devices.volumeValidationError"),"error");else{xo.value=!0;try{const e=Pn.value.filter(e=>to.value.includes(e.id)),l=e.map(e=>e.device_seed||e.device_code||String(e.id)).join("|");console.log("========================================"),console.log("开始批量调节音量"),console.log("选中设备数量:",to.value.length),console.log("设备编码列表:",l),console.log("设置音量值:",go.value),console.log("========================================");const a=await S({vol:go.value,snlist:l});console.log("========================================"),console.log("批量调节响应:",a),console.log("========================================"),a.res?(Sn(`${xn("devices.batchAdjustSuccess")} ${to.value.length} ${xn("devices.devicesUnit")}`,"success"),On.value=!1,to.value=[],await Co()):Sn(a.info||xn("devices.batchAdjustFailed"),"error")}catch(a){console.error("========================================"),console.error("批量调节音量失败:",a),console.error("错误详情:",{message:a.message,status:null==(e=a.response)?void 0:e.status,data:null==(l=a.response)?void 0:l.data}),console.error("========================================"),Sn(a.message||xn("devices.batchAdjustFailed"),"error")}finally{xo.value=!1}}else Sn(xn("devices.selectDevicesFirst"),"error")}function nc(e){return to.value.includes(e)}function oc(e){const l=to.value.indexOf(e);l>-1?to.value.splice(l,1):to.value.push(e)}function cc(){return 0!==Pn.value.length&&to.value.length===Pn.value.length}function tc(){cc()?to.value=[]:to.value=Pn.value.map(e=>e.id)}const dc=f(new Set);function rc(e){return dc.value.has(e.id)}function uc(e){return Pn.value.findIndex(l=>l.id===e.id)<=0}function vc(e){return Pn.value.findIndex(l=>l.id===e.id)>=Pn.value.length-1}async function mc(e,l){const a="list"===Dn.value,s=a?".device-table-grid":".card-grid",i=document.querySelector(s);if(!i)return;const n=a?".device-data-row":".device-card",o=i.querySelectorAll(n),c=o[e],t=o[l];if(!c||!t)return;const d=e=>a?Array.from(e.querySelectorAll(".cell")):[e],r=d(c),u=d(t);if(!r.length||!u.length)return;const v=r[0].getBoundingClientRect(),m=u[0].getBoundingClientRect(),p=v.left,h=v.top,g=m.left,f=m.top,b=Pn.value[e].id,y=Pn.value[l].id;dc.value.add(b),dc.value.add(y);const x=Pn.value[e];Pn.value[e]=Pn.value[l],Pn.value[l]=x,function(e){try{const l=JSON.stringify(e);Mn(bn,l),console.log("✓ 设备排序已保存:",e)}catch(l){console.error("保存设备排序失败:",l)}}(Pn.value.map(e=>e.id)),await k();const w=i.querySelectorAll(n),C=d(w[l]),M=d(w[e]);if(!C.length||!M.length)return;const I=C[0].getBoundingClientRect(),D=M[0].getBoundingClientRect(),V=p-I.left,A=h-I.top,S=g-D.left,L=f-D.top,P=(e,l)=>{e.forEach(e=>{Object.assign(e.style,l)})};P(C,{transform:`translate(${V}px, ${A}px)`,transition:"none"}),P(M,{transform:`translate(${S}px, ${L}px)`,transition:"none"}),i.getBoundingClientRect();const F="transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94)";P(C,{transform:"translate(0, 0)",transition:F}),P(M,{transform:"translate(0, 0)",transition:F}),setTimeout(()=>{P(C,{transform:"",transition:""}),P(M,{transform:"",transition:""}),dc.value.delete(b),dc.value.delete(y)},350)}function pc(e){const l=Pn.value.findIndex(l=>l.id===e.id);l>0&&(mc(l,l-1),console.log(`✓ 设备 "${e.devname||e.device_name}" 上移到位置 ${l-1}`))}function hc(e){const l=Pn.value.findIndex(l=>l.id===e.id);l<Pn.value.length-1&&(mc(l,l+1),console.log(`✓ 设备 "${e.devname||e.device_name}" 下移到位置 ${l+1}`))}return a(()=>{Dn.value=function(){if(window.innerWidth<=768||In)return"card";const e=Cn(yn);return"list"===e||"card"===e?(console.log("✓ 加载保存的视图模式:",e),e):"list"}(),Co()}),(e,l)=>{var a,f;return y(),s("div",B,[i("div",{class:c(["content-area",{"list-layout":"list"===Dn.value}])},[i("div",R,[i("h2",$,n(o(xn)("devices.title")),1),i("div",_,[o(In)?d("",!0):(y(),s("div",O,[i("button",{class:c(["view-mode-btn",{active:"list"===Dn.value}]),onClick:l[0]||(l[0]=e=>Dn.value="list"),title:o(xn)("devices.listView")},[...l[88]||(l[88]=[t('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" data-v-ffaf74a6><line x1="8" y1="6" x2="21" y2="6" data-v-ffaf74a6></line><line x1="8" y1="12" x2="21" y2="12" data-v-ffaf74a6></line><line x1="8" y1="18" x2="21" y2="18" data-v-ffaf74a6></line><line x1="3" y1="6" x2="3.01" y2="6" data-v-ffaf74a6></line><line x1="3" y1="12" x2="3.01" y2="12" data-v-ffaf74a6></line><line x1="3" y1="18" x2="3.01" y2="18" data-v-ffaf74a6></line></svg>',1)])],10,E),i("button",{class:c(["view-mode-btn",{active:"card"===Dn.value}]),onClick:l[1]||(l[1]=e=>Dn.value="card"),title:o(xn)("devices.cardView")},[...l[89]||(l[89]=[t('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" data-v-ffaf74a6><rect x="3" y="3" width="7" height="7" data-v-ffaf74a6></rect><rect x="14" y="3" width="7" height="7" data-v-ffaf74a6></rect><rect x="14" y="14" width="7" height="7" data-v-ffaf74a6></rect><rect x="3" y="14" width="7" height="7" data-v-ffaf74a6></rect></svg>',1)])],10,N)])),i("button",{class:"refresh-btn",onClick:Co,disabled:Fn.value,title:o(xn)("devices.refreshList")},[...l[90]||(l[90]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"18",height:"18"},[i("path",{d:"M23 4v6h-6M1 20v-6h6"}),i("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"})],-1)])],8,j),to.value.length>0?(y(),s("button",{key:1,class:"batch-volume-btn diablo-button",onClick:l[2]||(l[2]=e=>On.value=!0),title:o(xn)("devices.batchVolume")},[l[91]||(l[91]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"})],-1)),r(" "+n(o(xn)("devices.batchVolume"))+" ("+n(to.value.length)+") ",1)],8,H)):d("",!0),o(wn).canManageDevice?(y(),s("button",{key:2,class:"add-btn diablo-button",onClick:l[3]||(l[3]=e=>Bn.value=!0)},[l[92]||(l[92]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[i("path",{d:"M12 5v14M5 12h14"})],-1)),r(" "+n(o(In)?"":o(xn)("devices.addDevice")),1)])):d("",!0),o(Kn)&&o(wn).canManageDevice?(y(),s("button",{key:3,class:"scan-btn diablo-button",onClick:l[4]||(l[4]=e=>Nn.value=!0),title:o(xn)("devices.scanDevices")},[l[93]||(l[93]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("circle",{cx:"12",cy:"12",r:"3"}),i("path",{d:"M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83"})],-1)),r(" "+n(o(xn)("devices.scanDevices")),1)],8,z)):d("",!0)])]),i("div",T,[l[95]||(l[95]=i("svg",{class:"search-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[i("circle",{cx:"11",cy:"11",r:"8"}),i("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)),u(i("input",{"onUpdate:modelValue":l[5]||(l[5]=e=>Vn.value=e),class:"search-input",placeholder:o(xn)("devices.searchPlaceholder")||"搜索设备名称或序列号...",type:"text"},null,8,q),[[v,Vn.value]]),Vn.value?(y(),s("button",{key:0,class:"search-clear",onClick:l[6]||(l[6]=e=>Vn.value="")},[...l[94]||(l[94]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),i("line",{x1:"6",y1:"6",x2:"18",y2:"18"})],-1)])])):d("",!0)]),i("div",G,[0!==Un.value.length||Fn.value?d("",!0):(y(),s("div",K,[l[96]||(l[96]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[i("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2"}),i("path",{d:"M9 9h6M9 13h6M9 17h6"})],-1)),i("p",null,n(o(xn)("devices.noDevices")),1)])),"list"===Dn.value&&Un.value.length>0?(y(),s("div",W,[i("div",J,[i("div",X,[i("div",Q,[i("input",{type:"checkbox",checked:cc,onChange:tc},null,32)]),i("div",Y,n(o(xn)("devices.id")),1),i("div",Z,n(o(xn)("devices.deviceName")),1),i("div",ee,n(o(xn)("devices.serialNumber")),1),i("div",le,n(o(xn)("devices.volume")),1),i("div",ae,n(o(xn)("common.status")),1),i("div",se,n(o(xn)("devices.debugSound")),1),i("div",ie,n(o(xn)("devices.lastUpdate")),1),i("div",ne,n(o(xn)("devices.changeVolume")),1),i("div",oe,n(o(xn)("devices.changeName")),1),i("div",ce,n(o(xn)("devices.changeSerial")),1),i("div",te,n(o(xn)("common.delete")),1),i("div",de,n(o(xn)("common.actions")),1)]),(y(!0),s(m,null,p(Un.value,e=>(y(),s("div",{key:e.id,class:c(["device-row device-data-row",{offline:1!==e.status,playing:1===e.status,selected:nc(e.id),moving:rc(e)}]),onClick:l=>oc(e.id)},[i("div",ue,[i("input",{type:"checkbox",checked:nc(e.id),onChange:l=>oc(e.id),onClick:l[7]||(l[7]=h(()=>{},["stop"]))},null,40,ve)]),i("div",me,[i("span",pe,n(e.id),1)]),i("div",he,[i("span",ge,n(e.devname||e.device_name||e.name||o(xn)("devices.unnamedDevice")),1)]),i("div",fe,[i("span",be,n(e.device_seed||e.device_code||"-"),1)]),i("div",ye,[i("span",ke,n(void 0!==e.vol&&-1!==e.vol?e.vol:void 0!==e.volume?e.volume:o(xn)("devices.volumeNotSet")),1)]),i("div",xe,[i("span",we,[1===e.status?(y(),s("span",Ce,[l[97]||(l[97]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.online")),1)])):2===e.status?(y(),s("span",Me,[l[98]||(l[98]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.playing")),1)])):0===e.status?(y(),s("span",Ie,[l[99]||(l[99]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.offline")),1)])):-1===e.status?(y(),s("span",De,[l[100]||(l[100]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.neverOnline")),1)])):-2===e.status?(y(),s("span",Ve,[l[101]||(l[101]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.expiredDisabled")),1)])):(y(),s("span",Ae,[l[102]||(l[102]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.unknown")),1)]))])]),i("div",Se,[i("button",{class:c(["debug-sound-btn",{open:1===e.kind,close:2===e.kind}]),onClick:h(l=>Zo(e),["stop"]),title:1===e.kind?o(xn)("devices.closeDebugSound"):o(xn)("devices.openDebugSound")},n(1===e.kind?o(xn)("devices.closeDebugSound"):2===e.kind?o(xn)("devices.openDebugSound"):o(xn)("devices.unknownStatus")),11,Le)]),i("div",Pe,[i("span",Fe,n(e.updatetime||"-"),1)]),i("div",Ue,[i("button",{class:"action-btn volume-btn",onClick:h(l=>ac(e),["stop"]),title:o(xn)("devices.adjustVolume")},[...l[103]||(l[103]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"})],-1)])],8,Be)]),i("div",Re,[i("button",{class:"action-btn rename-btn",onClick:h(l=>Qo(e),["stop"]),title:o(xn)("devices.changeName")},[...l[104]||(l[104]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),i("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])],8,$e)]),i("div",_e,[i("button",{class:"action-btn",onClick:h(l=>Jo(e),["stop"]),title:o(xn)("devices.changeSerial")},[...l[105]||(l[105]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),i("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])],8,Oe)]),i("div",Ee,[o(wn).canManageDevice?(y(),s("button",{key:0,class:"action-btn delete-btn",onClick:h(l=>lc(e),["stop"]),title:o(xn)("devices.deleteDevice")},[...l[106]||(l[106]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M3 6h18M19 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,Ne)):d("",!0)]),i("div",je,[i("button",{class:"sort-btn",disabled:uc(e),onClick:h(l=>pc(e),["stop"]),title:o(xn)("common.moveUp")},[...l[107]||(l[107]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M18 15l-6-6-6 6"})],-1)])],8,He),i("button",{class:"sort-btn",disabled:vc(e),onClick:h(l=>hc(e),["stop"]),title:o(xn)("common.moveDown")},[...l[108]||(l[108]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M6 9l6 6 6-6"})],-1)])],8,ze)])],10,re))),128))])])):d("",!0),"card"===Dn.value&&Un.value.length>0?(y(),s("div",Te,[i("div",qe,[(y(!0),s(m,null,p(Un.value,e=>(y(),s("div",{key:e.id,class:c(["device-card",{offline:1!==e.status,playing:1===e.status,selected:nc(e.id),moving:rc(e)}]),onClick:l=>oc(e.id)},[i("div",Ke,[i("div",We,[i("input",{type:"checkbox",checked:nc(e.id),onChange:l=>oc(e.id),onClick:l[8]||(l[8]=h(()=>{},["stop"]))},null,40,Je)]),i("div",Xe,[i("button",{class:"sort-btn",disabled:uc(e),onClick:h(l=>pc(e),["stop"]),title:o(xn)("common.moveUp")},[...l[109]||(l[109]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M18 15l-6-6-6 6"})],-1)])],8,Qe),i("button",{class:"sort-btn",disabled:vc(e),onClick:h(l=>hc(e),["stop"]),title:o(xn)("common.moveDown")},[...l[110]||(l[110]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M6 9l6 6 6-6"})],-1)])],8,Ye)])]),i("div",Ze,[i("div",el,[i("span",ll,n(o(xn)("devices.id"))+":",1),i("span",al,n(e.id),1)]),i("div",sl,[i("span",il,n(o(xn)("devices.deviceName"))+":",1),i("span",nl,n(e.devname||e.device_name||e.name||o(xn)("devices.unnamedDevice")),1)]),i("div",ol,[i("span",cl,n(o(xn)("devices.serialNumber"))+":",1),i("span",{class:c(["info-value serial-text",{"serial-highlight":o(In)}])},n(e.device_seed||e.device_code||"-"),3)]),i("div",tl,[i("span",dl,n(o(xn)("devices.volume"))+":",1),i("span",rl,n(void 0!==e.vol&&-1!==e.vol?e.vol:void 0!==e.volume?e.volume:o(xn)("devices.volumeNotSet")),1)]),i("div",ul,[i("span",vl,n(o(xn)("common.status"))+":",1),i("span",ml,[1===e.status?(y(),s("span",pl,[l[111]||(l[111]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.online")),1)])):2===e.status?(y(),s("span",hl,[l[112]||(l[112]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.playing")),1)])):0===e.status?(y(),s("span",gl,[l[113]||(l[113]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.offline")),1)])):-1===e.status?(y(),s("span",fl,[l[114]||(l[114]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.neverOnline")),1)])):-2===e.status?(y(),s("span",bl,[l[115]||(l[115]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.expiredDisabled")),1)])):(y(),s("span",yl,[l[116]||(l[116]=i("span",{class:"status-indicator"},null,-1)),r(" "+n(o(xn)("devices.unknown")),1)]))])])]),i("div",kl,[i("button",{class:"card-action-btn",onClick:h(l=>Zo(e),["stop"]),title:1===e.kind?o(xn)("devices.closeDebugSound"):o(xn)("devices.openDebugSound")},[...l[117]||(l[117]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])],8,xl),i("button",{class:"card-action-btn",onClick:h(l=>ac(e),["stop"]),title:o(xn)("devices.adjustVolume")},[...l[118]||(l[118]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"})],-1)])],8,wl),i("button",{class:"card-action-btn",onClick:h(l=>Qo(e),["stop"]),title:o(xn)("devices.changeName")},[...l[119]||(l[119]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),i("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])],8,Cl),i("button",{class:"card-action-btn",onClick:h(l=>Jo(e),["stop"]),title:o(xn)("devices.changeSerial")},[...l[120]||(l[120]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),i("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})],-1)])],8,Ml),o(wn).canManageDevice?(y(),s("button",{key:0,class:"card-action-btn delete-btn",onClick:h(l=>lc(e),["stop"]),title:o(xn)("devices.deleteDevice")},[...l[121]||(l[121]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[i("path",{d:"M3 6h18M19 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,Il)):d("",!0)])],10,Ge))),128))])])):d("",!0),Fn.value?(y(),s("div",Dl,[...l[122]||(l[122]=[i("div",{class:"loading-spinner"},null,-1)])])):d("",!0)])],2),Bn.value?(y(),s("div",{key:0,class:"dialog-overlay",onClick:l[15]||(l[15]=e=>Bn.value=!1)},[i("div",{class:"dialog",onClick:l[14]||(l[14]=h(()=>{},["stop"]))},[i("div",Vl,[i("h3",null,n(o(xn)("devices.addDeviceTitle")),1),i("button",{class:"close-btn",onClick:l[9]||(l[9]=e=>Bn.value=!1)},[...l[123]||(l[123]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),i("div",Al,[i("div",Sl,[i("label",null,n(o(xn)("devices.deviceName"))+" *",1),u(i("input",{"onUpdate:modelValue":l[10]||(l[10]=e=>ro.value.name=e),type:"text",placeholder:o(xn)("devices.deviceNamePlaceholder"),class:c({error:fo.value.name})},null,10,Ll),[[v,ro.value.name]]),fo.value.name?(y(),s("span",Pl,n(fo.value.name),1)):d("",!0)]),i("div",Fl,[i("label",null,n(o(xn)("devices.deviceSerialRequired"))+" *",1),u(i("input",{"onUpdate:modelValue":l[11]||(l[11]=e=>ro.value.serial=e),type:"text",placeholder:o(xn)("devices.deviceSerialPlaceholder"),class:c({error:fo.value.serial})},null,10,Ul),[[v,ro.value.serial]]),fo.value.serial?(y(),s("span",Bl,n(fo.value.serial),1)):d("",!0)]),i("div",Rl,[i("label",null,n(o(xn)("devices.deviceKeyRequired"))+" *",1),u(i("input",{"onUpdate:modelValue":l[12]||(l[12]=e=>ro.value.key=e),type:"text",placeholder:o(xn)("devices.deviceKeyPlaceholder"),class:c({error:fo.value.key})},null,10,$l),[[v,ro.value.key]]),fo.value.key?(y(),s("span",_l,n(fo.value.key),1)):d("",!0),i("p",Ol,[i("span",El,n(o(xn)("devices.deviceKeyHint")),1)])])]),i("div",Nl,[i("button",{class:"cancel-btn diablo-button-secondary",onClick:l[13]||(l[13]=e=>Bn.value=!1)},n(o(xn)("common.cancel")),1),i("button",{class:"confirm-btn diablo-button",onClick:jo,disabled:xo.value},n(xo.value?o(xn)("devices.adding"):o(xn)("common.add")),9,jl)])])])):d("",!0),Rn.value?(y(),s("div",{key:1,class:"dialog-overlay",onClick:l[20]||(l[20]=e=>Rn.value=!1)},[i("div",{class:"dialog",onClick:l[19]||(l[19]=h(()=>{},["stop"]))},[i("div",Hl,[i("h3",null,n(o(xn)("devices.renameTitle")),1),i("button",{class:"close-btn",onClick:l[16]||(l[16]=e=>Rn.value=!1)},[...l[124]||(l[124]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),i("div",zl,[i("div",Tl,[i("label",null,n(o(xn)("devices.deviceName"))+" *",1),u(i("input",{"onUpdate:modelValue":l[17]||(l[17]=e=>vo.value.name=e),type:"text",placeholder:o(xn)("devices.newDeviceNamePlaceholder"),class:c({error:yo.value.name})},null,10,ql),[[v,vo.value.name]]),yo.value.name?(y(),s("span",Gl,n(yo.value.name),1)):d("",!0)])]),i("div",Kl,[i("button",{class:"cancel-btn diablo-button-secondary",onClick:l[18]||(l[18]=e=>Rn.value=!1)},n(o(xn)("common.cancel")),1),i("button",{class:"confirm-btn diablo-button",onClick:Yo,disabled:xo.value},n(xo.value?o(xn)("devices.saving"):o(xn)("common.save")),9,Wl)])])])):d("",!0),En.value?(y(),s("div",{key:2,class:"dialog-overlay",onClick:l[26]||(l[26]=e=>En.value=!1)},[i("div",{class:"dialog",onClick:l[25]||(l[25]=h(()=>{},["stop"]))},[i("div",Jl,[i("h3",null,n(o(xn)("devices.editSerialTitle")),1),i("button",{class:"close-btn",onClick:l[21]||(l[21]=e=>En.value=!1)},[...l[125]||(l[125]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),i("div",Xl,[i("div",Ql,[i("label",null,n(o(xn)("devices.currentSerial")),1),u(i("input",{"onUpdate:modelValue":l[22]||(l[22]=e=>mo.value.currentSerial=e),type:"text",placeholder:o(xn)("devices.currentSerialPlaceholder"),disabled:""},null,8,Yl),[[v,mo.value.currentSerial]])]),i("div",Zl,[i("label",null,n(o(xn)("devices.newSerial"))+" *",1),u(i("input",{"onUpdate:modelValue":l[23]||(l[23]=e=>mo.value.newsn=e),type:"text",placeholder:o(xn)("devices.newSerialPlaceholder"),class:c({error:ko.value.newsn})},null,10,ea),[[v,mo.value.newsn]]),ko.value.newsn?(y(),s("span",la,n(ko.value.newsn),1)):d("",!0),i("p",aa,n(o(xn)("devices.serialLengthHint")),1)])]),i("div",sa,[i("button",{class:"cancel-btn diablo-button-secondary",onClick:l[24]||(l[24]=e=>En.value=!1)},n(o(xn)("common.cancel")),1),i("button",{class:"confirm-btn diablo-button",onClick:Xo,disabled:xo.value},n(xo.value?o(xn)("devices.adjusting"):o(xn)("common.save")),9,ia)])])])):d("",!0),$n.value?(y(),s("div",{key:3,class:"dialog-overlay",onClick:l[34]||(l[34]=e=>$n.value=!1)},[i("div",{class:"dialog",onClick:l[33]||(l[33]=h(()=>{},["stop"]))},[i("div",na,[i("h3",null,n(o(xn)("devices.editDeviceTitle")),1),i("button",{class:"close-btn",onClick:l[27]||(l[27]=e=>$n.value=!1)},[...l[126]||(l[126]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),i("div",oa,[i("div",ca,[i("label",null,n(o(xn)("devices.deviceName"))+" *",1),u(i("input",{"onUpdate:modelValue":l[28]||(l[28]=e=>uo.value.name=e),type:"text",placeholder:o(xn)("devices.deviceNamePlaceholder"),class:c({error:bo.value.name})},null,10,ta),[[v,uo.value.name]]),bo.value.name?(y(),s("span",da,n(bo.value.name),1)):d("",!0)]),i("div",ra,[i("label",null,n(o(xn)("devices.macAddress"))+" *",1),u(i("input",{"onUpdate:modelValue":l[29]||(l[29]=e=>uo.value.mac=e),type:"text",placeholder:o(xn)("devices.macAddressPlaceholder"),class:c({error:bo.value.mac})},null,10,ua),[[v,uo.value.mac]]),bo.value.mac?(y(),s("span",va,n(bo.value.mac),1)):d("",!0)]),i("div",ma,[i("label",null,n(o(xn)("devices.ipAddress")),1),u(i("input",{"onUpdate:modelValue":l[30]||(l[30]=e=>uo.value.ip=e),type:"text",placeholder:o(xn)("devices.ipAddressPlaceholder"),class:c({error:bo.value.ip})},null,10,pa),[[v,uo.value.ip]]),bo.value.ip?(y(),s("span",ha,n(bo.value.ip),1)):d("",!0)]),i("div",ga,[i("label",null,n(o(xn)("devices.port")),1),u(i("input",{"onUpdate:modelValue":l[31]||(l[31]=e=>uo.value.port=e),type:"number",placeholder:o(xn)("devices.portPlaceholder"),min:"1",max:"65535"},null,8,fa),[[v,uo.value.port,void 0,{number:!0}]])])]),i("div",ba,[i("button",{class:"cancel-btn diablo-button-secondary",onClick:l[32]||(l[32]=e=>$n.value=!1)},n(o(xn)("common.cancel")),1),i("button",{class:"confirm-btn diablo-button",onClick:ec,disabled:xo.value},n(xo.value?o(xn)("devices.saving"):o(xn)("common.save")),9,ya)])])])):d("",!0),_n.value?(y(),s("div",{key:4,class:"dialog-overlay",onClick:l[40]||(l[40]=e=>_n.value=!1)},[i("div",{class:"dialog volume-dialog",onClick:l[39]||(l[39]=h(()=>{},["stop"]))},[i("div",ka,[i("h3",null,n(o(xn)("devices.adjustVolumeTitle"))+" - "+n((null==(a=po.value)?void 0:a.devname)||(null==(f=po.value)?void 0:f.device_name)),1),i("button",{class:"close-btn",onClick:l[35]||(l[35]=e=>_n.value=!1)},[...l[127]||(l[127]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),i("div",xa,[i("div",wa,[i("div",Ca,[i("span",Ma,n(ho.value),1),i("span",Ia,n(o(xn)("devices.volumeRange")),1)]),u(i("input",{"onUpdate:modelValue":l[36]||(l[36]=e=>ho.value=e),type:"range",min:"1",max:"63",step:"1",class:"volume-slider"},null,512),[[v,ho.value,void 0,{number:!0}]]),l[128]||(l[128]=i("div",{class:"volume-labels"},[i("span",null,"1"),i("span",null,"32"),i("span",null,"63")],-1)),i("div",Da,[i("label",null,n(o(xn)("devices.preciseSetting")),1),u(i("input",{"onUpdate:modelValue":l[37]||(l[37]=e=>ho.value=e),type:"number",min:"1",max:"63",class:"volume-number-input"},null,512),[[v,ho.value,void 0,{number:!0}]])])])]),i("div",Va,[i("button",{class:"cancel-btn diablo-button-secondary",onClick:l[38]||(l[38]=e=>_n.value=!1)},n(o(xn)("common.cancel")),1),i("button",{class:"confirm-btn diablo-button",onClick:sc,disabled:xo.value},n(xo.value?o(xn)("devices.adjusting"):o(xn)("devices.confirmButton")),9,Aa)])])])):d("",!0),On.value?(y(),s("div",{key:5,class:"dialog-overlay",onClick:l[46]||(l[46]=e=>On.value=!1)},[i("div",{class:"dialog batch-volume-dialog",onClick:l[45]||(l[45]=h(()=>{},["stop"]))},[i("div",Sa,[i("h3",null,n(o(xn)("devices.batchAdjustVolumeTitle")),1),i("button",{class:"close-btn",onClick:l[41]||(l[41]=e=>On.value=!1)},[...l[129]||(l[129]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),i("div",La,[i("div",Pa,[i("span",Fa,n(o(xn)("devices.selectedDevices")),1),i("span",Ua,n(to.value.length)+" "+n(o(xn)("devices.devicesCount")),1)]),i("div",Ba,[i("div",Ra,[i("span",$a,n(go.value),1),i("span",_a,n(o(xn)("devices.volumeRange")),1)]),u(i("input",{"onUpdate:modelValue":l[42]||(l[42]=e=>go.value=e),type:"range",min:"1",max:"63",step:"1",class:"volume-slider"},null,512),[[v,go.value,void 0,{number:!0}]]),l[130]||(l[130]=i("div",{class:"volume-labels"},[i("span",null,"1"),i("span",null,"32"),i("span",null,"63")],-1)),i("div",Oa,[i("label",null,n(o(xn)("devices.preciseSetting")),1),u(i("input",{"onUpdate:modelValue":l[43]||(l[43]=e=>go.value=e),type:"number",min:"1",max:"63",class:"volume-number-input"},null,512),[[v,go.value,void 0,{number:!0}]])])])]),i("div",Ea,[i("button",{class:"cancel-btn diablo-button-secondary",onClick:l[44]||(l[44]=e=>On.value=!1)},n(o(xn)("common.cancel")),1),i("button",{class:"confirm-btn diablo-button",onClick:ic,disabled:xo.value},n(xo.value?o(xn)("devices.adjusting"):`${o(xn)("devices.confirmAdjust")} ${to.value.length} ${o(xn)("devices.devicesCount")}`),9,Na)])])])):d("",!0),Nn.value?(y(),s("div",{key:6,class:"dialog-overlay",onClick:l[52]||(l[52]=e=>Nn.value=!1)},[i("div",{class:"dialog scan-dialog",onClick:l[51]||(l[51]=h(()=>{},["stop"]))},[i("div",ja,[l[131]||(l[131]=i("div",{class:"scan-header-icon"},[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("circle",{cx:"12",cy:"12",r:"3"}),i("path",{d:"M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83"})])],-1)),i("h3",null,n(o(xn)("devices.deviceScan")),1),i("button",{class:"close-btn",onClick:l[47]||(l[47]=e=>Nn.value=!1)},"×")]),i("div",Ha,[i("div",za,[i("p",Ta,n(o(xn)("devices.scanHint")),1),i("button",{class:"diablo-button scan-action-btn",onClick:Mo,disabled:o(qn)},[o(qn)?(y(),s("svg",Ga,[...l[132]||(l[132]=[i("path",{d:"M23 4v6h-6M1 20v-6h6"},null,-1),i("path",{d:"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"},null,-1)])])):d("",!0),r(" "+n(o(qn)?o(xn)("devices.scanning"):o(xn)("devices.scanButton")),1)],8,qa)]),o(Gn)?(y(),s("div",Ka,[l[133]||(l[133]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[i("circle",{cx:"12",cy:"12",r:"10"}),i("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),i("line",{x1:"9",y1:"9",x2:"15",y2:"15"})],-1)),r(" "+n(o(Gn)),1)])):d("",!0),i("div",Wa,[i("div",Ja,[o(Tn).length>0?(y(),s("div",Xa,[i("div",Qa,[i("h4",null,[r(n(o(xn)("devices.scannedDevices"))+" ",1),i("span",Ya,n(o(Tn).length),1)]),i("div",Za,[i("button",{class:c(["scan-sort-btn",{active:"ip"===so.value}]),onClick:l[48]||(l[48]=e=>no("ip"))},[l[134]||(l[134]=r(" IP ",-1)),i("span",es,n("ip"===so.value?io.value?"↑":"↓":""),1)],2),i("button",{class:c(["scan-sort-btn",{active:"seed"===so.value}]),onClick:l[49]||(l[49]=e=>no("seed"))},[l[135]||(l[135]=r(" SEED ",-1)),i("span",ls,n("seed"===so.value?io.value?"↑":"↓":""),1)],2)])]),i("div",as,[i("div",ss,[l[136]||(l[136]=i("span",{class:"col-idx"},"#",-1)),l[137]||(l[137]=i("span",{class:"col-ip"},"IP",-1)),l[138]||(l[138]=i("span",{class:"col-seed"},"SEED",-1)),i("span",is,n(o(xn)("devices.mediaServer")),1),i("span",ns,n(o(xn)("devices.mediaPort")),1),i("span",os,n(o(xn)("devices.autoIP")),1),i("span",cs,n(o(xn)("devices.warmMode")),1),i("span",ts,n(o(xn)("devices.dns")),1),l[139]||(l[139]=i("span",{class:"col-action"},null,-1))]),i("div",ds,[(y(!0),s(m,null,p(co.value,(e,a)=>{return y(),s("div",{key:e.seed,class:c(["scan-table-row",{selected:Hn.value===e.seed}]),onClick:l=>function(e){Hn.value=e.seed}(e)},[i("span",us,n(a+1),1),i("span",vs,n(e.ip),1),i("span",ms,n(e.seed),1),i("span",ps,n(e.mediaIP),1),i("span",hs,n(e.mediaPort),1),i("span",gs,[i("span",{class:c(["tag",e.autoIP?"tag-on":"tag-off"])},n(e.autoIP?"ON":"OFF"),3)]),i("span",fs,[i("span",{class:c(["tag",e.warmMode?"tag-on":"tag-off"])},n(e.warmMode?"ON":"OFF"),3)]),i("span",bs,n(e.dns),1),i("span",ys,[(t=e.seed,Pn.value.some(e=>e.device_seed===t)?d("",!0):(y(),s("button",{key:0,class:"scan-add-btn",onClick:h(l=>async function(e){try{const l=e.seed,a=`${l}|${Wo(l)}`,s=await M({name:e.ip||l.substring(0,8),sn:a});s.res?(Sn(xn("devices.addDeviceSuccess"),"success"),await Co()):Sn(s.info||xn("devices.addDeviceFailed"),"error")}catch(l){Sn(l.message||xn("devices.addDeviceFailed"),"error")}}(e),["stop"]),title:o(xn)("devices.addDevice")},[...l[140]||(l[140]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"12",height:"12"},[i("path",{d:"M12 5v14M5 12h14"})],-1)])],8,ks))),i("button",{class:"config-btn",onClick:h(l=>function(e){ao.value={seed:e.seed,deviceIP:e.ip,mask:e.mask||"255.255.255.0",gateway:e.gateway||"",mediaIP:e.mediaIP||"",mediaPort:e.mediaPort||12080,autoIP:e.autoIP,warmMode:e.warmMode,dns:e.dns||"8.8.8.8"},jn.value=!0}(e),["stop"])},[...l[141]||(l[141]=[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"12",height:"12"},[i("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),i("circle",{cx:"12",cy:"12",r:"3"})],-1)])],8,xs)])],10,rs);var t}),128))])])])):!o(qn)&&zn.value?(y(),s("div",ws,[l[142]||(l[142]=i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",width:"32",height:"32"},[i("circle",{cx:"11",cy:"11",r:"8"}),i("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)),i("p",null,n(o(xn)("devices.noDeviceFound")),1)])):d("",!0)]),i("div",Cs,[i("div",Ms,[i("h4",null,n(o(xn)("devices.console")),1),i("button",{class:"console-clear-btn",onClick:l[50]||(l[50]=(...e)=>o(eo)&&o(eo)(...e))},n(o(xn)("devices.clearConsole")),1)]),i("div",Is,[0===o(Wn).length?(y(),s("div",Ds,n(o(xn)("devices.consoleEmpty")),1)):d("",!0),(y(!0),s(m,null,p(o(Wn),(e,l)=>(y(),s("div",{key:l,class:c(["console-line","log-"+e.type])},n(e.msg),3))),128))],512)])])])])])):d("",!0),jn.value?(y(),s("div",{key:7,class:"dialog-overlay",onClick:l[65]||(l[65]=e=>jn.value=!1)},[i("div",{class:"dialog scan-config-dialog",onClick:l[64]||(l[64]=h(()=>{},["stop"]))},[i("div",Vs,[l[143]||(l[143]=i("div",{class:"scan-header-icon config-icon"},[i("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[i("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),i("circle",{cx:"12",cy:"12",r:"3"})])],-1)),i("h3",null,n(o(xn)("devices.scanConfigTitle")),1),i("button",{class:"close-btn",onClick:l[53]||(l[53]=e=>jn.value=!1)},"×")]),i("div",As,[i("div",Ss,[i("span",Ls,n(o(xn)("devices.seed")),1),i("span",Ps,n(ao.value.seed),1)]),i("div",Fs,[i("button",{class:"diablo-button test-comm-btn",onClick:Io,disabled:lo.value},n(lo.value?o(xn)("devices.scanning"):o(xn)("devices.testCommBtn")),9,Us)]),i("div",Bs,[i("label",Rs,[i("span",null,n(o(xn)("devices.autoIP")),1),i("span",{class:c(["toggle-switch",{on:ao.value.autoIP}]),onClick:l[54]||(l[54]=e=>ao.value.autoIP=!ao.value.autoIP)},[...l[144]||(l[144]=[i("span",{class:"toggle-knob"},null,-1)])],2)])]),ao.value.autoIP?d("",!0):(y(),s("div",$s,[i("div",_s,[i("label",null,n(o(xn)("devices.deviceIP")),1),u(i("input",{class:c(["form-input",{"input-error":Do.value.deviceIP}]),"onUpdate:modelValue":l[55]||(l[55]=e=>ao.value.deviceIP=e),placeholder:"192.168.1.100"},null,2),[[v,ao.value.deviceIP]]),Do.value.deviceIP?(y(),s("span",Os,n(Do.value.deviceIP),1)):d("",!0)]),i("div",Es,[i("label",null,n(o(xn)("devices.subnetMask")),1),u(i("input",{class:c(["form-input",{"input-error":Do.value.mask}]),"onUpdate:modelValue":l[56]||(l[56]=e=>ao.value.mask=e),placeholder:"255.255.255.0"},null,2),[[v,ao.value.mask]]),Do.value.mask?(y(),s("span",Ns,n(Do.value.mask),1)):d("",!0)]),i("div",js,[i("label",null,n(o(xn)("devices.gateway")),1),u(i("input",{class:c(["form-input",{"input-error":Do.value.gateway}]),"onUpdate:modelValue":l[57]||(l[57]=e=>ao.value.gateway=e),placeholder:"192.168.1.1"},null,2),[[v,ao.value.gateway]]),Do.value.gateway?(y(),s("span",Hs,n(Do.value.gateway),1)):d("",!0)])])),i("div",zs,[i("div",Ts,[i("label",null,n(o(xn)("devices.mediaServer")),1),u(i("input",{class:c(["form-input",{"input-error":Do.value.mediaIP}]),"onUpdate:modelValue":l[58]||(l[58]=e=>ao.value.mediaIP=e),placeholder:"192.168.1.100"},null,2),[[v,ao.value.mediaIP]]),Do.value.mediaIP?(y(),s("span",qs,n(Do.value.mediaIP),1)):d("",!0)]),i("div",Gs,[i("label",null,n(o(xn)("devices.mediaPort")),1),u(i("input",{class:c(["form-input",{"input-error":Do.value.mediaPort}]),"onUpdate:modelValue":l[59]||(l[59]=e=>ao.value.mediaPort=e),type:"number",min:"1",max:"65535"},null,2),[[v,ao.value.mediaPort,void 0,{number:!0}]]),Do.value.mediaPort?(y(),s("span",Ks,n(Do.value.mediaPort),1)):d("",!0)])]),i("div",Ws,[i("div",Js,[i("label",null,n(o(xn)("devices.dns")),1),u(i("input",{class:c(["form-input",{"input-error":Do.value.dns}]),"onUpdate:modelValue":l[60]||(l[60]=e=>ao.value.dns=e),placeholder:o(xn)("devices.dnsPlaceholder")},null,10,Xs),[[v,ao.value.dns]]),Do.value.dns?(y(),s("span",Qs,n(Do.value.dns),1)):d("",!0)]),i("div",Ys,[i("label",Zs,[i("span",null,n(o(xn)("devices.warmMode")),1),i("span",{class:c(["toggle-switch",{on:ao.value.warmMode}]),onClick:l[61]||(l[61]=e=>ao.value.warmMode=!ao.value.warmMode)},[...l[145]||(l[145]=[i("span",{class:"toggle-knob"},null,-1)])],2)])])]),i("div",ei,[i("div",li,[i("h4",null,n(o(xn)("devices.console")),1),i("button",{class:"console-clear-btn",onClick:l[62]||(l[62]=(...e)=>o(eo)&&o(eo)(...e))},n(o(xn)("devices.clearConsole")),1)]),i("div",ai,[0===o(Wn).length?(y(),s("div",si,n(o(xn)("devices.consoleEmpty")),1)):d("",!0),(y(!0),s(m,null,p(o(Wn),(e,l)=>(y(),s("div",{key:l,class:c(["console-line","log-"+e.type])},n(e.msg),3))),128))],512)])]),i("div",ii,[i("button",{class:"cancel-btn diablo-button-secondary",onClick:l[63]||(l[63]=e=>jn.value=!1)},n(o(xn)("common.cancel")),1),i("button",{class:"advanced-btn diablo-button-secondary",onClick:_o},n(o(xn)("devices.advanced")),1),i("button",{class:"confirm-btn diablo-button",onClick:Ao},n(o(xn)("devices.applyConfig")),1)])])])):d("",!0),So.value?(y(),s("div",{key:8,class:"dialog-overlay",onClick:l[87]||(l[87]=e=>So.value=!1)},[i("div",{class:"dialog amixer-dialog",onClick:l[86]||(l[86]=h(()=>{},["stop"]))},[i("div",ni,[i("h3",null,n(o(xn)("devices.soundCard")),1),i("button",{class:"close-btn",onClick:l[66]||(l[66]=e=>So.value=!1)},"×")]),i("div",oi,[i("div",ci,[i("span",ti,n(Lo.value),1),i("button",{class:"diablo-button amixer-get-btn",onClick:Oo,disabled:Po.value},n(Po.value?o(xn)("devices.amixerGetting"):o(xn)("devices.getAmixerStatus")),9,di)]),i("div",ri,[i("div",ui,[i("h4",vi,n(o(xn)("devices.amixerGroupDecode")),1),i("div",mi,[i("div",pi,[i("span",hi,n(o(xn)("devices.amixerDAC")),1),u(i("input",{type:"range",class:"amixer-slider","onUpdate:modelValue":l[67]||(l[67]=e=>Fo.value.dacVolume=e),min:"0",max:"63"},null,512),[[v,Fo.value.dacVolume,void 0,{number:!0}]]),i("span",gi,n(Fo.value.dacVolume),1),i("button",{class:"amixer-apply-btn",onClick:l[68]||(l[68]=e=>Eo(1,Fo.value.dacVolume))},n(o(xn)("devices.amixerApply")),1)]),i("div",fi,[i("span",bi,n(o(xn)("devices.amixerHeadphoneVol")),1),u(i("input",{type:"range",class:"amixer-slider","onUpdate:modelValue":l[69]||(l[69]=e=>Fo.value.hpVolume=e),min:"0",max:"63"},null,512),[[v,Fo.value.hpVolume,void 0,{number:!0}]]),i("span",yi,n(Fo.value.hpVolume),1),i("button",{class:"amixer-apply-btn",onClick:l[70]||(l[70]=e=>Eo(2,Fo.value.hpVolume))},n(o(xn)("devices.amixerApply")),1)]),i("div",ki,[i("span",xi,n(o(xn)("devices.amixerHeadphoneSwitch")),1),u(i("select",{class:"amixer-select","onUpdate:modelValue":l[71]||(l[71]=e=>Fo.value.hpSwitch=e)},[i("option",wi,n(o(xn)("devices.amixerOff")),1),i("option",Ci,n(o(xn)("devices.amixerOn")),1)],512),[[g,Fo.value.hpSwitch,void 0,{number:!0}]]),i("button",{class:"amixer-apply-btn",onClick:l[72]||(l[72]=e=>Eo(3,Fo.value.hpSwitch))},n(o(xn)("devices.amixerApply")),1)]),i("div",Mi,[i("span",Ii,n(o(xn)("devices.amixerHeadphoneRoute")),1),u(i("select",{class:"amixer-select","onUpdate:modelValue":l[73]||(l[73]=e=>Fo.value.hpRoute=e)},[i("option",Di,n(o(xn)("devices.amixerRouteDAC")),1),i("option",Vi,n(o(xn)("devices.amixerRouteMixer")),1)],512),[[g,Fo.value.hpRoute,void 0,{number:!0}]]),i("button",{class:"amixer-apply-btn",onClick:l[74]||(l[74]=e=>Eo(25,Fo.value.hpRoute))},n(o(xn)("devices.amixerApply")),1)])])]),i("div",Ai,[i("h4",Si,n(o(xn)("devices.amixerGroupGain")),1),i("div",Li,[i("div",Pi,[i("span",Fi,n(o(xn)("devices.amixerLineIn")),1),u(i("input",{type:"range",class:"amixer-slider","onUpdate:modelValue":l[75]||(l[75]=e=>Fo.value.lineInVolume=e),min:"0",max:"7"},null,512),[[v,Fo.value.lineInVolume,void 0,{number:!0}]]),i("span",Ui,n(Fo.value.lineInVolume),1),i("button",{class:"amixer-apply-btn",onClick:l[76]||(l[76]=e=>Eo(4,Fo.value.lineInVolume))},n(o(xn)("devices.amixerApply")),1)]),i("div",Bi,[i("span",Ri,n(o(xn)("devices.amixerFMIn")),1),u(i("input",{type:"range",class:"amixer-slider","onUpdate:modelValue":l[77]||(l[77]=e=>Fo.value.fmInVolume=e),min:"0",max:"7"},null,512),[[v,Fo.value.fmInVolume,void 0,{number:!0}]]),i("span",$i,n(Fo.value.fmInVolume),1),i("button",{class:"amixer-apply-btn",onClick:l[78]||(l[78]=e=>Eo(5,Fo.value.fmInVolume))},n(o(xn)("devices.amixerApply")),1)]),i("div",_i,[i("span",Oi,n(o(xn)("devices.amixerMicIn")),1),u(i("input",{type:"range",class:"amixer-slider","onUpdate:modelValue":l[79]||(l[79]=e=>Fo.value.micInVolume=e),min:"0",max:"7"},null,512),[[v,Fo.value.micInVolume,void 0,{number:!0}]]),i("span",Ei,n(Fo.value.micInVolume),1),i("button",{class:"amixer-apply-btn",onClick:l[80]||(l[80]=e=>Eo(6,Fo.value.micInVolume))},n(o(xn)("devices.amixerApply")),1)]),i("div",Ni,[i("span",ji,n(o(xn)("devices.amixerMicBoost")),1),u(i("input",{type:"range",class:"amixer-slider","onUpdate:modelValue":l[81]||(l[81]=e=>Fo.value.micBoost=e),min:"0",max:"7"},null,512),[[v,Fo.value.micBoost,void 0,{number:!0}]]),i("span",Hi,n(Fo.value.micBoost),1),i("button",{class:"amixer-apply-btn",onClick:l[82]||(l[82]=e=>Eo(7,Fo.value.micBoost))},n(o(xn)("devices.amixerApply")),1)]),i("div",zi,[i("span",Ti,n(o(xn)("devices.amixerADCCapture")),1),u(i("input",{type:"range",class:"amixer-slider","onUpdate:modelValue":l[83]||(l[83]=e=>Fo.value.adcCapture=e),min:"0",max:"7"},null,512),[[v,Fo.value.adcCapture,void 0,{number:!0}]]),i("span",qi,n(Fo.value.adcCapture),1),i("button",{class:"amixer-apply-btn",onClick:l[84]||(l[84]=e=>Eo(8,Fo.value.adcCapture))},n(o(xn)("devices.amixerApply")),1)])])]),i("div",Gi,[i("h4",Ki,n(o(xn)("devices.amixerGroupCapture")),1),i("div",Wi,[(y(!0),s(m,null,p(Uo.value,e=>(y(),s("div",{class:"amixer-row switch-row",key:e.numid},[i("span",Ji,n(e.label),1),u(i("select",{class:"amixer-select","onUpdate:modelValue":l=>Fo.value[e.key]=l},[i("option",Qi,n(o(xn)("devices.amixerOff")),1),i("option",Yi,n(o(xn)("devices.amixerOn")),1)],8,Xi),[[g,Fo.value[e.key],void 0,{number:!0}]]),i("button",{class:"amixer-apply-btn",onClick:l=>Eo(e.numid,Fo.value[e.key])},n(o(xn)("devices.amixerApply")),9,Zi)]))),128))])]),i("div",en,[i("h4",ln,n(o(xn)("devices.amixerGroupLeft")),1),i("div",an,[(y(!0),s(m,null,p(Bo.value,e=>(y(),s("div",{class:"amixer-row switch-row",key:e.numid},[i("span",sn,n(e.label),1),u(i("select",{class:"amixer-select","onUpdate:modelValue":l=>Fo.value[e.key]=l},[i("option",on,n(o(xn)("devices.amixerOff")),1),i("option",cn,n(o(xn)("devices.amixerOn")),1)],8,nn),[[g,Fo.value[e.key],void 0,{number:!0}]]),i("button",{class:"amixer-apply-btn",onClick:l=>Eo(e.numid,Fo.value[e.key])},n(o(xn)("devices.amixerApply")),9,tn)]))),128))])]),i("div",dn,[i("h4",rn,n(o(xn)("devices.amixerGroupRight")),1),i("div",un,[(y(!0),s(m,null,p(Ro.value,e=>(y(),s("div",{class:"amixer-row switch-row",key:e.numid},[i("span",vn,n(e.label),1),u(i("select",{class:"amixer-select","onUpdate:modelValue":l=>Fo.value[e.key]=l},[i("option",pn,n(o(xn)("devices.amixerOff")),1),i("option",hn,n(o(xn)("devices.amixerOn")),1)],8,mn),[[g,Fo.value[e.key],void 0,{number:!0}]]),i("button",{class:"amixer-apply-btn",onClick:l=>Eo(e.numid,Fo.value[e.key])},n(o(xn)("devices.amixerApply")),9,gn)]))),128))])])])]),i("div",fn,[i("button",{class:"confirm-btn diablo-button",onClick:l[85]||(l[85]=e=>So.value=!1)},n(o(xn)("common.close")),1)])])])):d("",!0)])}}}),[["__scopeId","data-v-ffaf74a6"]]);export{kn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as e,o as l,n as a,y as s,F as o,z as i,A as r,u as n,m as t,B as d,C as c,D as u,E as p,G as m,H as v,I as g,r as b,J as h,K as f,t as y,L as w}from"./vue-vendor-BaBirIg_.js";import{u as x,a as k}from"./index-npdYRXyk.js";import"./api-C3Fyph-A.js";import{_}from"./LanguageSwitcher.vue_vue_type_style_index_0_lang-7lwszLYh.js";import{_ as I}from"./_plugin-vue_export-helper-BCo6x5W8.js";const S={class:"login-container"},U={class:"particles"},C={class:"login-card diablo-card diablo-corner"},j={class:"login-header"},B={class:"logo-container"},M={class:"diablo-logo"},P={class:"logo-particles"},V={class:"login-title diablo-title"},q={class:"subtitle"},D={class:"language-selector"},K={class:"login-form"},z={class:"form-group"},A={class:"diablo-input-wrapper"},F=["placeholder"],H={class:"form-group"},L={class:"diablo-input-wrapper"},R=["placeholder"],E={key:0,class:"diablo-error"},G={class:"form-footer"},J={class:"remember-me"},N=["disabled"],O={key:0},Q={key:1,class:"loading-text"},T={class:"login-footer"},W={class:"footer-text"},X={class:"footer-version"},Y={class:"fire-effect"},Z=I(e({__name:"index",setup(e){const{t:I}=x(),Z=h(),$=f(),ee=k(),le=g({username:"",passwd:""}),ae=b(!1),se=b(""),oe=b(!1);async function ie(){if(se.value="",le.username)if(le.passwd){ae.value=!0;try{if(await ee.loginUser({username:le.username,passwd:le.passwd})){oe.value?(localStorage.setItem("rememberedUsername",le.username),localStorage.setItem("rememberedPassword",le.passwd)):(localStorage.removeItem("rememberedUsername"),localStorage.removeItem("rememberedPassword"));const e=$.query.redirect||(ee.isAdmin?"/admin":"/");Z.push(e)}else se.value=I("login.invalidCredentials")}catch(e){console.error("登录失败:",e),se.value=I("login.loginFailed")}finally{ae.value=!1}}else se.value=I("login.passwordRequired");else se.value=I("login.usernameRequired")}return l(()=>{const e=localStorage.getItem("rememberedUsername"),l=localStorage.getItem("rememberedPassword");e&&(le.username=e,oe.value=!0),l&&(le.passwd=l)}),(e,l)=>(y(),a("div",S,[l[10]||(l[10]=s("div",{class:"diablo-bg"},null,-1)),s("div",U,[(y(),a(o,null,i(20,e=>s("div",{key:e,class:"particle",style:w({animationDelay:.2*e+"s"})},null,4)),64))]),s("div",C,[s("div",j,[s("div",B,[s("div",M,[l[3]||(l[3]=s("div",{class:"logo-core"},null,-1)),l[4]||(l[4]=s("div",{class:"logo-ring"},null,-1)),s("div",P,[(y(),a(o,null,i(12,e=>s("div",{key:e,class:"logo-particle",style:w({"--delay":.2*e+"s","--angle":30*e+"deg"})},null,4)),64))])])]),s("h1",V,r(n(I)("login.title")),1),s("div",q,r(n(I)("login.subtitle")),1)]),l[9]||(l[9]=s("div",{class:"diablo-gold-line"},null,-1)),s("div",D,[t(_)]),s("div",K,[s("div",z,[s("div",A,[l[5]||(l[5]=s("div",{class:"diablo-input-icon"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("circle",{cx:"12",cy:"8",r:"4"}),s("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"})])],-1)),d(s("input",{"onUpdate:modelValue":l[0]||(l[0]=e=>le.username=e),type:"text",class:"diablo-input",placeholder:n(I)("login.usernamePlaceholder"),autocomplete:"username",onKeyup:u(ie,["enter"])},null,40,F),[[c,le.username]])])]),s("div",H,[s("div",L,[l[6]||(l[6]=s("div",{class:"diablo-input-icon"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),s("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})])],-1)),d(s("input",{"onUpdate:modelValue":l[1]||(l[1]=e=>le.passwd=e),type:"password",class:"diablo-input",placeholder:n(I)("login.passwordPlaceholder"),autocomplete:"current-password",onKeyup:u(ie,["enter"])},null,40,R),[[c,le.passwd]])])]),se.value?(y(),a("div",E,r(se.value),1)):p("",!0),s("div",G,[s("label",J,[d(s("input",{"onUpdate:modelValue":l[2]||(l[2]=e=>oe.value=e),type:"checkbox"},null,512),[[m,oe.value]]),s("span",null,r(n(I)("login.rememberMe")),1)])]),s("button",{class:"diablo-btn login-btn",disabled:ae.value,onClick:ie},[ae.value?(y(),a("span",Q,[l[7]||(l[7]=s("span",{class:"diablo-loading"},null,-1)),v(" "+r(n(I)("login.logging")),1)])):(y(),a("span",O,r(n(I)("login.loginButton")),1))],8,N)]),s("div",T,[s("div",W," © 2024 "+r(n(I)("common.appName")),1),l[8]||(l[8]=s("div",{class:"footer-divider"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("path",{d:"M6 2l-4 4h4l-4 4h4l-4 4h4l-4 4h4l-4 4"}),s("path",{d:"M18 22l4-4h-4l4-4h-4l4-4h-4l4-4h-4l4-4h-4z"})])],-1)),s("div",X,r(n(I)("settings.version"))+" "+r(n("2.0.40")),1)])]),s("div",Y,[(y(),a(o,null,i(10,e=>s("div",{key:e,class:"flame",style:w({animationDelay:.3*e+"s"})},null,4)),64))])]))}}),[["__scopeId","data-v-3b7ca9c3"]]);export{Z as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.media-manage[data-v-ff8fe5a0]{padding:20px 20px 80px;min-height:100vh}.page-header[data-v-ff8fe5a0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-title[data-v-ff8fe5a0]{font-size:20px;font-weight:600;color:var(--diablo-text);margin:0;letter-spacing:-.3px}.header-actions[data-v-ff8fe5a0]{display:flex;gap:8px;align-items:center}.view-mode-toggle[data-v-ff8fe5a0]{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-ff8fe5a0]{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-ff8fe5a0]{background:var(--glass-bg-hover);color:var(--diablo-primary)}.view-mode-btn[data-v-ff8fe5a0]:hover:not(.active){color:var(--diablo-text);background:var(--glass-bg)}.tts-btn[data-v-ff8fe5a0]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);color:var(--diablo-primary);border:1px solid var(--glass-border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.tts-btn[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover);border-color:var(--diablo-primary);box-shadow:0 0 16px #0a84ff33;transform:translateY(-1px)}.tts-btn svg[data-v-ff8fe5a0]{width:16px;height:16px}.radio-btn[data-v-ff8fe5a0]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);color:#ff6b35;border:1px solid var(--glass-border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.radio-btn[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover);border-color:#ff6b35;box-shadow:0 0 16px #ff6b3533;transform:translateY(-1px)}.radio-btn svg[data-v-ff8fe5a0]{width:16px;height:16px}.tts-modal[data-v-ff8fe5a0]{max-width:560px}.tts-body[data-v-ff8fe5a0]{padding:20px;display:flex;flex-direction:column;gap:16px}.tts-field[data-v-ff8fe5a0]{display:flex;flex-direction:column;gap:6px}.tts-label[data-v-ff8fe5a0]{font-size:12px;font-weight:600;color:var(--diablo-text-muted);text-transform:uppercase;letter-spacing:.5px}.tts-input[data-v-ff8fe5a0],.tts-select[data-v-ff8fe5a0],.tts-textarea[data-v-ff8fe5a0]{width:100%;box-sizing:border-box}.tts-select[data-v-ff8fe5a0]{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.tts-textarea[data-v-ff8fe5a0]{resize:vertical;min-height:120px;line-height:1.6;font-family:inherit}.tts-char-count[data-v-ff8fe5a0]{font-size:11px;color:var(--diablo-text-muted);text-align:right}.tts-row[data-v-ff8fe5a0]{display:flex;gap:12px}.tts-field-half[data-v-ff8fe5a0]{flex:1}.radio-modal[data-v-ff8fe5a0]{max-width:480px}.radio-body[data-v-ff8fe5a0]{padding:20px;display:flex;flex-direction:column;gap:16px}.radio-field[data-v-ff8fe5a0]{display:flex;flex-direction:column;gap:6px}.radio-label[data-v-ff8fe5a0]{font-size:12px;font-weight:600;color:var(--diablo-text-muted);text-transform:uppercase;letter-spacing:.5px}.radio-input[data-v-ff8fe5a0]{width:100%;box-sizing:border-box}.radio-presets[data-v-ff8fe5a0]{display:flex;gap:8px;margin-bottom:8px}.preset-btn[data-v-ff8fe5a0]{flex:1;padding:8px 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}.preset-btn[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover);border-color:#ff6b35;color:#ff6b35}.btn-primary[data-v-ff8fe5a0]{background:var(--diablo-primary);color:#fff;border-color:var(--diablo-primary)}.btn-primary[data-v-ff8fe5a0]:hover{opacity:.9;background:var(--diablo-primary);color:#fff}.btn-primary[data-v-ff8fe5a0]:disabled{opacity:.5;cursor:not-allowed}.refresh-btn[data-v-ff8fe5a0]{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-ff8fe5a0]:hover:not(:disabled){background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border)}.refresh-btn[data-v-ff8fe5a0]:disabled{opacity:.5;cursor:not-allowed}.add-btn[data-v-ff8fe5a0]{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-ff8fe5a0]: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-ff8fe5a0]{width:16px;height:16px}.upload-drop-zone[data-v-ff8fe5a0]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;margin-bottom:20px;border:2px dashed var(--glass-border);border-radius:14px;background:var(--glass-bg);color:var(--diablo-text-muted);font-size:14px;transition:all .3s ease;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow);cursor:pointer}.upload-drop-zone[data-v-ff8fe5a0]:hover,.upload-drop-zone.drop-active[data-v-ff8fe5a0]{border-color:var(--diablo-primary);background:#0a84ff0a;color:var(--diablo-primary);box-shadow:0 0 20px #0a84ff1a,var(--glass-inner-glow)}.upload-drop-zone .drop-zone-sub[data-v-ff8fe5a0]{font-size:12px;opacity:.6}.upload-drop-zone .drop-zone-actions[data-v-ff8fe5a0]{display:flex;gap:10px;margin-top:4px}.upload-drop-zone .drop-zone-btn[data-v-ff8fe5a0]{padding:6px 16px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:13px;cursor:pointer;transition:all .2s ease}.upload-drop-zone .drop-zone-btn[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translateY(-1px)}.upload-drop-zone .upload-inline-progress[data-v-ff8fe5a0]{display:flex;align-items:center;gap:12px;width:100%;max-width:500px}.upload-drop-zone .upload-inline-progress span[data-v-ff8fe5a0]{font-size:13px;color:var(--diablo-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-drop-zone .upload-inline-progress .upload-progress-track[data-v-ff8fe5a0]{flex:1;height:8px;background:var(--glass-border);border-radius:4px;overflow:hidden;min-width:100px}.upload-drop-zone .upload-inline-progress .upload-progress-track .upload-progress-fill[data-v-ff8fe5a0]{height:100%;background:var(--diablo-primary);border-radius:4px;transition:width .3s ease}.filter-section[data-v-ff8fe5a0]{margin-bottom:20px}.search-bar[data-v-ff8fe5a0]{display:flex;align-items:center;gap:10px;padding:10px 16px;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)}.search-bar svg[data-v-ff8fe5a0]{color:var(--diablo-text-muted);flex-shrink:0}.search-bar .search-input[data-v-ff8fe5a0]{flex:1;border:none;background:transparent;padding:0;box-shadow:none}.search-bar .search-input[data-v-ff8fe5a0]:focus{outline:none;box-shadow:none;border:none}.search-bar .search-stats[data-v-ff8fe5a0]{font-size:12px;color:var(--diablo-text-muted);white-space:nowrap}.batch-toolbar[data-v-ff8fe5a0]{display:flex;gap:12px;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);align-items:center}.batch-toolbar-label[data-v-ff8fe5a0]{color:var(--diablo-text-muted);font-size:13px;font-weight:500}.batch-actions[data-v-ff8fe5a0]{display:flex;gap:8px;align-items:center}.action-btn[data-v-ff8fe5a0]{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 .2s ease;white-space:nowrap}.action-btn[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);transform:translateY(-1px)}.action-btn svg[data-v-ff8fe5a0]{width:16px;height:16px}.action-btn.action-btn-danger[data-v-ff8fe5a0]{color:#e74c3c}.action-btn.action-btn-danger[data-v-ff8fe5a0]:hover{background:#e74c3c26;border-color:#e74c3c;box-shadow:0 0 12px #e74c3c4d}.file-list-container[data-v-ff8fe5a0]{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)}.file-table-scroll[data-v-ff8fe5a0]{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 420px)}.file-table[data-v-ff8fe5a0]{width:100%;border-collapse:collapse;table-layout:fixed}.file-table th[data-v-ff8fe5a0],.file-table td[data-v-ff8fe5a0]{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)}.file-table th[data-v-ff8fe5a0]{background:var(--diablo-bg-dark);color:var(--diablo-text-muted);font-weight:600;font-size:12px;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4)}.file-table tbody tr[data-v-ff8fe5a0]{transition:background .15s ease}.file-table tbody tr[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover)}.row-selected td[data-v-ff8fe5a0]{background:var(--glass-bg-active)!important}.row-playing td[data-v-ff8fe5a0]{background:#3498db0d}.col-checkbox[data-v-ff8fe5a0]{width:40px;text-align:center}.col-index[data-v-ff8fe5a0]{width:50px;text-align:center}.col-name[data-v-ff8fe5a0]{min-width:200px}.col-duration[data-v-ff8fe5a0]{width:80px}.col-size[data-v-ff8fe5a0]{width:90px}.col-actions[data-v-ff8fe5a0]{width:120px}.file-name-cell[data-v-ff8fe5a0]{display:flex;align-items:center;gap:8px}.file-name-cell .file-icon[data-v-ff8fe5a0]{color:var(--diablo-primary);flex-shrink:0}.file-name-cell .file-name-text[data-v-ff8fe5a0]{font-weight:500;color:var(--diablo-text)}.action-btn-group[data-v-ff8fe5a0]{display:flex;gap:4px;align-items:center}.row-action-btn[data-v-ff8fe5a0]{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 .2s ease;text-decoration:none}.row-action-btn[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);transform:translateY(-1px)}.row-action-btn.btn-danger[data-v-ff8fe5a0]{color:#e74c3c}.row-action-btn.btn-danger[data-v-ff8fe5a0]:hover{background:#e74c3c26;border-color:#e74c3c}.card-scroll[data-v-ff8fe5a0]{padding:16px;max-height:calc(100vh - 420px);overflow-y:auto}.file-card-grid[data-v-ff8fe5a0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.file-card[data-v-ff8fe5a0]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:16px;cursor:pointer;transition:all .3s ease;-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}.file-card[data-v-ff8fe5a0]: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)}.file-card.card-selected[data-v-ff8fe5a0]{border-color:var(--diablo-primary);background:#0a84ff0f}.file-card.card-playing[data-v-ff8fe5a0]{border-color:#3498db66;box-shadow:0 0 16px #3498db26,var(--glass-inner-glow)}.file-card-header[data-v-ff8fe5a0]{display:flex;align-items:center;justify-content:space-between}.file-card-header .file-icon-large[data-v-ff8fe5a0]{color:var(--diablo-primary)}.file-card-header .file-card-actions[data-v-ff8fe5a0]{display:flex;gap:4px}.file-card-name[data-v-ff8fe5a0]{font-size:14px;font-weight:500;color:var(--diablo-text);word-break:break-all;line-height:1.4}.file-card-meta[data-v-ff8fe5a0]{display:flex;gap:12px;font-size:12px;color:var(--diablo-text-muted)}.file-card-meta .meta-duration[data-v-ff8fe5a0]{font-weight:500}.playing-badge[data-v-ff8fe5a0]{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)}.playing-dot[data-v-ff8fe5a0]{width:6px;height:6px;border-radius:50%;background:#3498db;box-shadow:0 0 8px #3498dbcc;animation:playingPulse-ff8fe5a0 1.2s ease-in-out infinite}@keyframes playingPulse-ff8fe5a0{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.audio-player[data-v-ff8fe5a0]{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);backdrop-filter:blur(var(--glass-blur)) saturate(1.4);box-shadow:0 8px 32px #0000004d,var(--glass-inner-glow);z-index:1000;min-width:400px;max-width:600px}.audio-player .player-info[data-v-ff8fe5a0]{display:flex;align-items:center;gap:8px;min-width:0;flex-shrink:1}.audio-player .player-info .player-name[data-v-ff8fe5a0]{font-size:13px;font-weight:500;color:var(--diablo-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.audio-player .player-controls[data-v-ff8fe5a0]{height:32px;flex-shrink:0;border-radius:8px}.audio-player .player-close[data-v-ff8fe5a0]{display:flex;align-items:center;justify-content:center;padding:4px;background:transparent;border:none;color:var(--diablo-text-muted);cursor:pointer;border-radius:6px;transition:all .2s ease;flex-shrink:0}.audio-player .player-close[data-v-ff8fe5a0]:hover{color:var(--diablo-text);background:var(--glass-bg-hover)}.spin-icon[data-v-ff8fe5a0]{animation:spin-ff8fe5a0 1s linear infinite;color:var(--diablo-primary)}@keyframes spin-ff8fe5a0{to{transform:rotate(360deg)}}.modal-overlay[data-v-ff8fe5a0]{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-ff8fe5a0]{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)}.dialog-header[data-v-ff8fe5a0]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--glass-border)}.dialog-header h3[data-v-ff8fe5a0]{margin:0;font-size:16px;color:var(--diablo-text);font-weight:600}.close-btn[data-v-ff8fe5a0]{background:transparent;border:none;color:var(--diablo-text-muted);cursor:pointer;padding:4px;transition:all .3s ease}.close-btn[data-v-ff8fe5a0]:hover{color:var(--diablo-text);background:var(--glass-bg-hover);border-radius:8px}.modal-body[data-v-ff8fe5a0]{padding:20px;color:var(--diablo-text);font-size:14px}.modal-footer[data-v-ff8fe5a0]{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid var(--glass-border)}.btn[data-v-ff8fe5a0]{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 .2s ease;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-ff8fe5a0]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);transform:translateY(-1px)}.btn-danger[data-v-ff8fe5a0]{color:#e74c3c}.btn-danger[data-v-ff8fe5a0]:hover{background:#e74c3c26;border-color:#e74c3c;color:#e74c3c}.btn-cancel[data-v-ff8fe5a0]:hover{background:var(--glass-bg-hover)}.form-input[data-v-ff8fe5a0]{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-input[data-v-ff8fe5a0]:hover{border-color:var(--glass-border-hover)}.form-input[data-v-ff8fe5a0]:focus{outline:none;border-color:var(--glass-border-glow);box-shadow:0 0 8px var(--glass-border-glow)}.empty-cell[data-v-ff8fe5a0]{padding:0}.empty-state[data-v-ff8fe5a0]{padding:60px 40px;color:var(--diablo-text-muted);text-align:center;font-size:14px}.message-toast[data-v-ff8fe5a0]{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-ff8fe5a0]{background:#27ae60e6}.message-toast.error[data-v-ff8fe5a0]{background:#e74c3ce6}.hidden-input[data-v-ff8fe5a0]{position:absolute;width:0;height:0;opacity:0;pointer-events:none}@media (max-width: 768px){.media-manage[data-v-ff8fe5a0]{padding:12px 12px 120px}.page-header[data-v-ff8fe5a0]{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.header-actions[data-v-ff8fe5a0]{flex-wrap:wrap;width:100%;gap:6px}.file-table-scroll[data-v-ff8fe5a0]{display:none}.card-scroll[data-v-ff8fe5a0]{display:block;max-height:calc(100vh - 380px)}.view-mode-toggle[data-v-ff8fe5a0]{display:none}.file-card-grid[data-v-ff8fe5a0]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.upload-drop-zone[data-v-ff8fe5a0]{padding:16px}.upload-drop-zone .upload-inline-progress[data-v-ff8fe5a0]{flex-wrap:wrap;gap:8px}.upload-drop-zone .upload-inline-progress span[data-v-ff8fe5a0]{font-size:12px}.batch-toolbar[data-v-ff8fe5a0]{flex-direction:column;gap:8px;align-items:flex-start}.batch-actions[data-v-ff8fe5a0]{width:100%}.batch-actions .action-btn[data-v-ff8fe5a0]{flex:1;justify-content:center}.audio-player[data-v-ff8fe5a0]{min-width:unset;max-width:95vw;width:calc(100% - 24px);left:12px;transform:none;padding:10px 14px;gap:8px}.player-controls[data-v-ff8fe5a0]{height:28px;max-width:140px}.player-info .player-name[data-v-ff8fe5a0]{font-size:12px;max-width:100px}.modal-content[data-v-ff8fe5a0]{max-width:95vw;max-height:90vh}.dialog-header h3[data-v-ff8fe5a0]{font-size:15px}.modal-body[data-v-ff8fe5a0]{padding:16px}.modal-footer[data-v-ff8fe5a0]{padding:14px 16px}}@media (max-width: 480px){.media-manage[data-v-ff8fe5a0]{padding:8px}.page-title[data-v-ff8fe5a0]{font-size:17px}.upload-drop-zone[data-v-ff8fe5a0]{padding:12px;font-size:13px}.upload-drop-zone svg[data-v-ff8fe5a0]{width:24px;height:24px}.search-bar[data-v-ff8fe5a0]{padding:8px 12px}.file-card-grid[data-v-ff8fe5a0]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.file-card[data-v-ff8fe5a0]{padding:12px;gap:8px}.file-card-name[data-v-ff8fe5a0]{font-size:13px}.file-card-header .file-icon-large[data-v-ff8fe5a0]{width:20px;height:20px}}
|