From 01ffaf96a371fedf217db94e3f70f4af835d0958 Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Sat, 27 Dec 2025 20:15:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20CPU=E6=98=BE=E7=A4=BA=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=20+=20=E6=8A=A5=E8=A1=A8=E9=9D=A2=E6=9D=BF=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E6=B1=A0=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. CPU 显示修复: - routes/admin_api/core.py: 新增 _get_server_cpu_percent() - 首次调用使用 interval=0.1 避免返回 0.0 - 后续调用使用缓存,TTL 1秒 2. 报表面板浏览器池状态: - admin-frontend/src/api/browser_pool.js: 新增 API 调用 - ReportPage.vue: 添加浏览器池状态卡片 - 显示总/活跃/空闲 Worker 数和队列等待数 - Worker 表格带状态颜色标签(活跃/空闲/异常) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- admin-frontend/src/api/browser_pool.js | 7 ++ admin-frontend/src/pages/ReportPage.vue | 108 ++++++++++++++++++ routes/admin_api/core.py | 32 +++++- static/admin/.vite/manifest.json | 54 ++++----- ...v4_4f.js => AnnouncementsPage-C3uZDqOR.js} | 2 +- ...Page-4etTfx9H.js => EmailPage-DmFgLrFm.js} | 2 +- ...-BlN6FFbD.js => FeedbacksPage-BEa--2pl.js} | 2 +- static/admin/assets/LogsPage-CQsGwFRH.js | 1 + static/admin/assets/LogsPage-adLViVmd.js | 1 - static/admin/assets/ReportPage-CW7RwLmI.css | 1 - static/admin/assets/ReportPage-D7trjjOv.css | 1 + static/admin/assets/ReportPage-DxDL6AXa.js | 1 - static/admin/assets/ReportPage-nXQwTJlk.js | 1 + ...e-BkxWxQhW.js => SecurityPage-Czxm2GJx.js} | 4 +- ...e-D_cVneyv.js => SettingsPage-IGV4in6c.js} | 2 +- ...age-Cph4odbt.js => SystemPage-BPHukDdR.js} | 6 +- static/admin/assets/UsersPage-19tzoQBx.js | 1 - static/admin/assets/UsersPage-DLsmihq2.js | 1 + .../{email-DSz2K4-y.js => email-JmyL2jV4.js} | 2 +- .../{index-Dx-1XhY8.js => index-B9zsNTKQ.js} | 4 +- static/admin/assets/system-C_4M4EtK.js | 1 - static/admin/assets/system-DIc9L1cQ.js | 1 + static/admin/assets/tasks-DILta43B.js | 1 + static/admin/assets/tasks-yIlAy2Ne.js | 1 - .../{users-BNPg4OEj.js => users-BxS2U-Si.js} | 2 +- static/admin/index.html | 2 +- 26 files changed, 193 insertions(+), 48 deletions(-) create mode 100644 admin-frontend/src/api/browser_pool.js rename static/admin/assets/{AnnouncementsPage-DP-v4_4f.js => AnnouncementsPage-C3uZDqOR.js} (69%) rename static/admin/assets/{EmailPage-4etTfx9H.js => EmailPage-DmFgLrFm.js} (94%) rename static/admin/assets/{FeedbacksPage-BlN6FFbD.js => FeedbacksPage-BEa--2pl.js} (80%) create mode 100644 static/admin/assets/LogsPage-CQsGwFRH.js delete mode 100644 static/admin/assets/LogsPage-adLViVmd.js delete mode 100644 static/admin/assets/ReportPage-CW7RwLmI.css create mode 100644 static/admin/assets/ReportPage-D7trjjOv.css delete mode 100644 static/admin/assets/ReportPage-DxDL6AXa.js create mode 100644 static/admin/assets/ReportPage-nXQwTJlk.js rename static/admin/assets/{SecurityPage-BkxWxQhW.js => SecurityPage-Czxm2GJx.js} (88%) rename static/admin/assets/{SettingsPage-D_cVneyv.js => SettingsPage-IGV4in6c.js} (96%) rename static/admin/assets/{SystemPage-Cph4odbt.js => SystemPage-BPHukDdR.js} (89%) delete mode 100644 static/admin/assets/UsersPage-19tzoQBx.js create mode 100644 static/admin/assets/UsersPage-DLsmihq2.js rename static/admin/assets/{email-DSz2K4-y.js => email-JmyL2jV4.js} (86%) rename static/admin/assets/{index-Dx-1XhY8.js => index-B9zsNTKQ.js} (99%) delete mode 100644 static/admin/assets/system-C_4M4EtK.js create mode 100644 static/admin/assets/system-DIc9L1cQ.js create mode 100644 static/admin/assets/tasks-DILta43B.js delete mode 100644 static/admin/assets/tasks-yIlAy2Ne.js rename static/admin/assets/{users-BNPg4OEj.js => users-BxS2U-Si.js} (90%) diff --git a/admin-frontend/src/api/browser_pool.js b/admin-frontend/src/api/browser_pool.js new file mode 100644 index 0000000..6c42ed7 --- /dev/null +++ b/admin-frontend/src/api/browser_pool.js @@ -0,0 +1,7 @@ +import { api } from './client' + +export async function fetchBrowserPoolStats() { + const { data } = await api.get('/browser_pool/stats') + return data +} + diff --git a/admin-frontend/src/pages/ReportPage.vue b/admin-frontend/src/pages/ReportPage.vue index 5ce3943..9090f37 100644 --- a/admin-frontend/src/pages/ReportPage.vue +++ b/admin-frontend/src/pages/ReportPage.vue @@ -18,6 +18,7 @@ import { import { fetchFeedbackStats } from '../api/feedbacks' import { fetchEmailStats } from '../api/email' import { fetchDockerStats, fetchRunningTasks, fetchServerInfo, fetchTaskStats } from '../api/tasks' +import { fetchBrowserPoolStats } from '../api/browser_pool' import { fetchSystemConfig } from '../api/system' const refreshStats = inject('refreshStats', null) @@ -32,6 +33,7 @@ const emailStats = ref(null) const feedbackStats = ref(null) const serverInfo = ref(null) const dockerStats = ref(null) +const browserPoolStats = ref(null) const systemConfig = ref(null) const queueTab = ref('running') @@ -97,6 +99,40 @@ const queuingTaskList = computed(() => runningTasks.value?.queuing || []) const runningCount = computed(() => normalizeCount(runningTasks.value?.running_count)) const queuingCount = computed(() => normalizeCount(runningTasks.value?.queuing_count)) +const browserPoolWorkers = computed(() => { + const workers = browserPoolStats.value?.workers + if (!Array.isArray(workers)) return [] + return [...workers].sort((a, b) => normalizeCount(a?.worker_id) - normalizeCount(b?.worker_id)) +}) + +const browserPoolTotalWorkers = computed(() => normalizeCount(browserPoolStats.value?.total_workers)) +const browserPoolActiveWorkers = computed(() => browserPoolWorkers.value.filter((w) => Boolean(w?.has_browser)).length) +const browserPoolIdleWorkers = computed(() => normalizeCount(browserPoolStats.value?.idle_workers)) +const browserPoolQueueSize = computed(() => normalizeCount(browserPoolStats.value?.queue_size)) +const browserPoolBusyWorkers = computed(() => normalizeCount(browserPoolStats.value?.active_workers)) + +function workerPoolStatusType(worker) { + if (!worker?.thread_alive) return 'danger' + if (worker?.has_browser) return 'success' + return 'info' +} + +function workerPoolStatusLabel(worker) { + if (!worker?.thread_alive) return '异常' + if (worker?.has_browser) return '活跃' + return '空闲' +} + +function workerRunTagType(worker) { + if (!worker?.thread_alive) return 'danger' + return worker?.idle ? 'info' : 'warning' +} + +function workerRunLabel(worker) { + if (!worker?.thread_alive) return '停止' + return worker?.idle ? '空闲' : '忙碌' +} + const taskTodaySuccessRate = computed(() => { const success = normalizeCount(taskToday.value.success_tasks) const failed = normalizeCount(taskToday.value.failed_tasks) @@ -156,6 +192,7 @@ async function refreshAll() { feedbackResult, serverResult, dockerResult, + browserPoolResult, configResult, ] = await Promise.allSettled([ fetchTaskStats(), @@ -164,6 +201,7 @@ async function refreshAll() { fetchFeedbackStats(), fetchServerInfo(), fetchDockerStats(), + fetchBrowserPoolStats(), fetchSystemConfig(), ]) @@ -173,6 +211,7 @@ async function refreshAll() { feedbackStats.value = feedbackResult.status === 'fulfilled' ? feedbackResult.value : null serverInfo.value = serverResult.status === 'fulfilled' ? serverResult.value : null dockerStats.value = dockerResult.status === 'fulfilled' ? dockerResult.value : null + browserPoolStats.value = browserPoolResult.status === 'fulfilled' ? browserPoolResult.value : null systemConfig.value = configResult.status === 'fulfilled' ? configResult.value : null await refreshStats?.() @@ -548,6 +587,67 @@ onUnmounted(() => { {{ dockerStats?.memory_usage || '-' }} {{ dockerStats?.memory_percent || '-' }} + +
+ +
+
+
+
浏览器池
+
+ 活跃(有浏览器){{ browserPoolActiveWorkers }} · 忙碌 {{ browserPoolBusyWorkers }} · 队列 {{ browserPoolQueueSize }} +
+
+
+ {{ browserPoolStats.server_time_cst }} +
+ +
+
+
{{ browserPoolTotalWorkers }}
+
总 Worker
+
+
+
{{ browserPoolActiveWorkers }}
+
活跃(有浏览器)
+
+
+
{{ browserPoolIdleWorkers }}
+
空闲(无任务)
+
+
+
{{ browserPoolQueueSize }}
+
队列等待
+
+
+ +
+ +
+ + + + + + + + + + + + + + + +
@@ -901,6 +1001,10 @@ onUnmounted(() => { grid-template-columns: repeat(3, minmax(0, 1fr)); } +.tile-grid--4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + .tile { border: 1px solid rgba(17, 24, 39, 0.08); border-radius: 16px; @@ -1072,6 +1176,10 @@ onUnmounted(() => { grid-template-columns: repeat(2, minmax(0, 1fr)); } + .tile-grid--4 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .resource-grid { grid-template-columns: 1fr; } diff --git a/routes/admin_api/core.py b/routes/admin_api/core.py index f29aa7d..ea5dbe9 100644 --- a/routes/admin_api/core.py +++ b/routes/admin_api/core.py @@ -48,6 +48,36 @@ from services.time_utils import BEIJING_TZ, get_beijing_now logger = get_logger("app") config = get_config() +_server_cpu_percent_lock = threading.Lock() +_server_cpu_percent_last: float | None = None +_server_cpu_percent_last_ts = 0.0 + + +def _get_server_cpu_percent() -> float: + import psutil + + global _server_cpu_percent_last, _server_cpu_percent_last_ts + + now = time.time() + with _server_cpu_percent_lock: + if _server_cpu_percent_last is not None and (now - _server_cpu_percent_last_ts) < 0.5: + return _server_cpu_percent_last + + try: + if _server_cpu_percent_last is None: + cpu_percent = float(psutil.cpu_percent(interval=0.1)) + else: + cpu_percent = float(psutil.cpu_percent(interval=None)) + except Exception: + cpu_percent = float(_server_cpu_percent_last or 0.0) + + if cpu_percent < 0: + cpu_percent = 0.0 + + _server_cpu_percent_last = cpu_percent + _server_cpu_percent_last_ts = now + return cpu_percent + def _admin_reauth_required() -> bool: try: @@ -738,7 +768,7 @@ def get_server_info_api(): """获取服务器信息""" import psutil - cpu_percent = psutil.cpu_percent(interval=1) + cpu_percent = _get_server_cpu_percent() memory = psutil.virtual_memory() memory_total = f"{memory.total / (1024**3):.1f}GB" diff --git a/static/admin/.vite/manifest.json b/static/admin/.vite/manifest.json index e4d3aa3..46ae9a9 100644 --- a/static/admin/.vite/manifest.json +++ b/static/admin/.vite/manifest.json @@ -1,34 +1,34 @@ { - "_email-DSz2K4-y.js": { - "file": "assets/email-DSz2K4-y.js", + "_email-JmyL2jV4.js": { + "file": "assets/email-JmyL2jV4.js", "name": "email", "imports": [ "index.html" ] }, - "_system-C_4M4EtK.js": { - "file": "assets/system-C_4M4EtK.js", + "_system-DIc9L1cQ.js": { + "file": "assets/system-DIc9L1cQ.js", "name": "system", "imports": [ "index.html" ] }, - "_tasks-yIlAy2Ne.js": { - "file": "assets/tasks-yIlAy2Ne.js", + "_tasks-DILta43B.js": { + "file": "assets/tasks-DILta43B.js", "name": "tasks", "imports": [ "index.html" ] }, - "_users-BNPg4OEj.js": { - "file": "assets/users-BNPg4OEj.js", + "_users-BxS2U-Si.js": { + "file": "assets/users-BxS2U-Si.js", "name": "users", "imports": [ "index.html" ] }, "index.html": { - "file": "assets/index-Dx-1XhY8.js", + "file": "assets/index-B9zsNTKQ.js", "name": "index", "src": "index.html", "isEntry": true, @@ -48,7 +48,7 @@ ] }, "src/pages/AnnouncementsPage.vue": { - "file": "assets/AnnouncementsPage-DP-v4_4f.js", + "file": "assets/AnnouncementsPage-C3uZDqOR.js", "name": "AnnouncementsPage", "src": "src/pages/AnnouncementsPage.vue", "isDynamicEntry": true, @@ -60,12 +60,12 @@ ] }, "src/pages/EmailPage.vue": { - "file": "assets/EmailPage-4etTfx9H.js", + "file": "assets/EmailPage-DmFgLrFm.js", "name": "EmailPage", "src": "src/pages/EmailPage.vue", "isDynamicEntry": true, "imports": [ - "_email-DSz2K4-y.js", + "_email-JmyL2jV4.js", "index.html" ], "css": [ @@ -73,7 +73,7 @@ ] }, "src/pages/FeedbacksPage.vue": { - "file": "assets/FeedbacksPage-BlN6FFbD.js", + "file": "assets/FeedbacksPage-BEa--2pl.js", "name": "FeedbacksPage", "src": "src/pages/FeedbacksPage.vue", "isDynamicEntry": true, @@ -85,13 +85,13 @@ ] }, "src/pages/LogsPage.vue": { - "file": "assets/LogsPage-adLViVmd.js", + "file": "assets/LogsPage-CQsGwFRH.js", "name": "LogsPage", "src": "src/pages/LogsPage.vue", "isDynamicEntry": true, "imports": [ - "_users-BNPg4OEj.js", - "_tasks-yIlAy2Ne.js", + "_users-BxS2U-Si.js", + "_tasks-DILta43B.js", "index.html" ], "css": [ @@ -99,22 +99,22 @@ ] }, "src/pages/ReportPage.vue": { - "file": "assets/ReportPage-DxDL6AXa.js", + "file": "assets/ReportPage-nXQwTJlk.js", "name": "ReportPage", "src": "src/pages/ReportPage.vue", "isDynamicEntry": true, "imports": [ "index.html", - "_email-DSz2K4-y.js", - "_tasks-yIlAy2Ne.js", - "_system-C_4M4EtK.js" + "_email-JmyL2jV4.js", + "_tasks-DILta43B.js", + "_system-DIc9L1cQ.js" ], "css": [ - "assets/ReportPage-CW7RwLmI.css" + "assets/ReportPage-D7trjjOv.css" ] }, "src/pages/SecurityPage.vue": { - "file": "assets/SecurityPage-BkxWxQhW.js", + "file": "assets/SecurityPage-Czxm2GJx.js", "name": "SecurityPage", "src": "src/pages/SecurityPage.vue", "isDynamicEntry": true, @@ -126,7 +126,7 @@ ] }, "src/pages/SettingsPage.vue": { - "file": "assets/SettingsPage-D_cVneyv.js", + "file": "assets/SettingsPage-IGV4in6c.js", "name": "SettingsPage", "src": "src/pages/SettingsPage.vue", "isDynamicEntry": true, @@ -138,12 +138,12 @@ ] }, "src/pages/SystemPage.vue": { - "file": "assets/SystemPage-Cph4odbt.js", + "file": "assets/SystemPage-BPHukDdR.js", "name": "SystemPage", "src": "src/pages/SystemPage.vue", "isDynamicEntry": true, "imports": [ - "_system-C_4M4EtK.js", + "_system-DIc9L1cQ.js", "index.html" ], "css": [ @@ -151,12 +151,12 @@ ] }, "src/pages/UsersPage.vue": { - "file": "assets/UsersPage-19tzoQBx.js", + "file": "assets/UsersPage-DLsmihq2.js", "name": "UsersPage", "src": "src/pages/UsersPage.vue", "isDynamicEntry": true, "imports": [ - "_users-BNPg4OEj.js", + "_users-BxS2U-Si.js", "index.html" ], "css": [ diff --git a/static/admin/assets/AnnouncementsPage-DP-v4_4f.js b/static/admin/assets/AnnouncementsPage-C3uZDqOR.js similarity index 69% rename from static/admin/assets/AnnouncementsPage-DP-v4_4f.js rename to static/admin/assets/AnnouncementsPage-C3uZDqOR.js index 7b66393..609c18a 100644 --- a/static/admin/assets/AnnouncementsPage-DP-v4_4f.js +++ b/static/admin/assets/AnnouncementsPage-C3uZDqOR.js @@ -1 +1 @@ -import{P as v,_ as U,r as y,o as H,e as d,H as S,f as j,g as w,h as c,j as e,w as n,p as r,I as F,A as C,n as $,K as u,J as g}from"./index-Dx-1XhY8.js";async function J(){const{data:i}=await v.get("/announcements");return i}async function K(i){const{data:s}=await v.post("/announcements",i);return s}async function L(i){const{data:s}=await v.post(`/announcements/${i}/activate`);return s}async function q(i){const{data:s}=await v.post(`/announcements/${i}/deactivate`);return s}async function G(i){const{data:s}=await v.delete(`/announcements/${i}`);return s}const O={class:"page-stack"},Q={class:"app-page-title"},R={class:"actions"},W={class:"table-wrap"},X=["title"],Y={class:"actions"},Z={__name:"AnnouncementsPage",setup(i){const s=y(""),_=y(""),x=y(!1),b=y([]);async function f(){x.value=!0;try{b.value=await J()}catch{b.value=[]}finally{x.value=!1}}function B(){s.value="",_.value=""}async function T(o){const t=s.value.trim(),l=_.value.trim();if(!t||!l){u.error("标题和内容不能为空");return}try{const m=await K({title:t,content:l,is_active:!!o});if(!m?.success){u.error(m?.error||"保存失败");return}u.success("保存成功"),B(),await f()}catch{}}async function h(o){await g.alert(o.content||"",o.title||"公告",{confirmButtonText:"关闭",dangerouslyUseHTMLString:!1})}async function D(o){try{await g.confirm("确定启用该公告吗?启用后将自动停用其他公告。","启用公告",{confirmButtonText:"启用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await L(o.id);if(!t?.success){u.error(t?.error||"启用失败");return}u.success("已启用"),await f()}catch{}}async function z(o){try{await g.confirm("确定停用该公告吗?","停用公告",{confirmButtonText:"停用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await q(o.id);if(!t?.success){u.error(t?.error||"停用失败");return}u.success("已停用"),await f()}catch{}}async function M(o){try{await g.confirm("确定删除该公告吗?删除后无法恢复。","删除公告",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await G(o.id);if(!t?.success){u.error(t?.error||"删除失败");return}u.success("已删除"),await f()}catch{}}return H(f),(o,t)=>{const l=d("el-button"),m=d("el-input"),A=d("el-form-item"),E=d("el-form"),V=d("el-card"),p=d("el-table-column"),I=d("el-tag"),N=d("el-table"),P=S("loading");return w(),j("div",O,[c("div",Q,[t[5]||(t[5]=c("h2",null,"公告管理",-1)),c("div",null,[e(l,{onClick:f},{default:n(()=>[...t[4]||(t[4]=[r("刷新",-1)])]),_:1})])]),e(V,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[9]||(t[9]=c("h3",{class:"section-title"},"创建公告",-1)),e(E,{"label-width":"90px"},{default:n(()=>[e(A,{label:"公告标题"},{default:n(()=>[e(m,{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=a=>s.value=a),placeholder:"请输入公告标题",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(A,{label:"公告内容"},{default:n(()=>[e(m,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=a=>_.value=a),type:"textarea",rows:5,placeholder:"请输入公告内容(将以弹窗形式展示)",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),c("div",R,[e(l,{type:"primary",onClick:t[2]||(t[2]=a=>T(!0))},{default:n(()=>[...t[6]||(t[6]=[r("发布并启用",-1)])]),_:1}),e(l,{onClick:t[3]||(t[3]=a=>T(!1))},{default:n(()=>[...t[7]||(t[7]=[r("保存但不启用",-1)])]),_:1}),e(l,{onClick:B},{default:n(()=>[...t[8]||(t[8]=[r("清空",-1)])]),_:1})]),t[10]||(t[10]=c("div",{class:"help"}," 说明:启用公告后,用户登录进入系统将弹窗提示;用户可选择“当次关闭”或“永久关闭本次公告”。 ",-1))]),_:1}),e(V,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[15]||(t[15]=c("h3",{class:"section-title"},"公告列表",-1)),c("div",W,[F((w(),C(N,{data:b.value,style:{width:"100%"}},{default:n(()=>[e(p,{prop:"id",label:"ID",width:"80"}),e(p,{label:"标题","min-width":"240"},{default:n(({row:a})=>[c("span",{class:"ellipsis",title:a.title},$(a.title),9,X)]),_:1}),e(p,{label:"状态",width:"120"},{default:n(({row:a})=>[e(I,{type:a.is_active?"success":"info",effect:"light"},{default:n(()=>[r($(a.is_active?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),e(p,{prop:"created_at",label:"创建时间",width:"180"}),e(p,{label:"操作",width:"260",fixed:"right"},{default:n(({row:a})=>[c("div",Y,[e(l,{size:"small",onClick:k=>h(a)},{default:n(()=>[...t[11]||(t[11]=[r("查看",-1)])]),_:1},8,["onClick"]),a.is_active?(w(),C(l,{key:0,size:"small",onClick:k=>z(a)},{default:n(()=>[...t[12]||(t[12]=[r("停用",-1)])]),_:1},8,["onClick"])):(w(),C(l,{key:1,type:"success",size:"small",onClick:k=>D(a)},{default:n(()=>[...t[13]||(t[13]=[r("启用",-1)])]),_:1},8,["onClick"])),e(l,{type:"danger",size:"small",onClick:k=>M(a)},{default:n(()=>[...t[14]||(t[14]=[r("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[P,x.value]])])]),_:1})])}}},et=U(Z,[["__scopeId","data-v-a7b3418e"]]);export{et as default}; +import{a as v,_ as L,r as y,o as P,f as d,I as S,g as j,h as w,j as c,m as e,w as n,q as r,J as q,B as C,p as h,L as u,K as g}from"./index-B9zsNTKQ.js";async function F(){const{data:i}=await v.get("/announcements");return i}async function H(i){const{data:s}=await v.post("/announcements",i);return s}async function J(i){const{data:s}=await v.post(`/announcements/${i}/activate`);return s}async function K(i){const{data:s}=await v.post(`/announcements/${i}/deactivate`);return s}async function G(i){const{data:s}=await v.delete(`/announcements/${i}`);return s}const O={class:"page-stack"},Q={class:"app-page-title"},R={class:"actions"},W={class:"table-wrap"},X=["title"],Y={class:"actions"},Z={__name:"AnnouncementsPage",setup(i){const s=y(""),_=y(""),x=y(!1),b=y([]);async function f(){x.value=!0;try{b.value=await F()}catch{b.value=[]}finally{x.value=!1}}function B(){s.value="",_.value=""}async function T(o){const t=s.value.trim(),l=_.value.trim();if(!t||!l){u.error("标题和内容不能为空");return}try{const m=await H({title:t,content:l,is_active:!!o});if(!m?.success){u.error(m?.error||"保存失败");return}u.success("保存成功"),B(),await f()}catch{}}async function A(o){await g.alert(o.content||"",o.title||"公告",{confirmButtonText:"关闭",dangerouslyUseHTMLString:!1})}async function D(o){try{await g.confirm("确定启用该公告吗?启用后将自动停用其他公告。","启用公告",{confirmButtonText:"启用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await J(o.id);if(!t?.success){u.error(t?.error||"启用失败");return}u.success("已启用"),await f()}catch{}}async function z(o){try{await g.confirm("确定停用该公告吗?","停用公告",{confirmButtonText:"停用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await K(o.id);if(!t?.success){u.error(t?.error||"停用失败");return}u.success("已停用"),await f()}catch{}}async function M(o){try{await g.confirm("确定删除该公告吗?删除后无法恢复。","删除公告",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await G(o.id);if(!t?.success){u.error(t?.error||"删除失败");return}u.success("已删除"),await f()}catch{}}return P(f),(o,t)=>{const l=d("el-button"),m=d("el-input"),V=d("el-form-item"),E=d("el-form"),$=d("el-card"),p=d("el-table-column"),I=d("el-tag"),N=d("el-table"),U=S("loading");return w(),j("div",O,[c("div",Q,[t[5]||(t[5]=c("h2",null,"公告管理",-1)),c("div",null,[e(l,{onClick:f},{default:n(()=>[...t[4]||(t[4]=[r("刷新",-1)])]),_:1})])]),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[9]||(t[9]=c("h3",{class:"section-title"},"创建公告",-1)),e(E,{"label-width":"90px"},{default:n(()=>[e(V,{label:"公告标题"},{default:n(()=>[e(m,{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=a=>s.value=a),placeholder:"请输入公告标题",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(V,{label:"公告内容"},{default:n(()=>[e(m,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=a=>_.value=a),type:"textarea",rows:5,placeholder:"请输入公告内容(将以弹窗形式展示)",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),c("div",R,[e(l,{type:"primary",onClick:t[2]||(t[2]=a=>T(!0))},{default:n(()=>[...t[6]||(t[6]=[r("发布并启用",-1)])]),_:1}),e(l,{onClick:t[3]||(t[3]=a=>T(!1))},{default:n(()=>[...t[7]||(t[7]=[r("保存但不启用",-1)])]),_:1}),e(l,{onClick:B},{default:n(()=>[...t[8]||(t[8]=[r("清空",-1)])]),_:1})]),t[10]||(t[10]=c("div",{class:"help"}," 说明:启用公告后,用户登录进入系统将弹窗提示;用户可选择“当次关闭”或“永久关闭本次公告”。 ",-1))]),_:1}),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[15]||(t[15]=c("h3",{class:"section-title"},"公告列表",-1)),c("div",W,[q((w(),C(N,{data:b.value,style:{width:"100%"}},{default:n(()=>[e(p,{prop:"id",label:"ID",width:"80"}),e(p,{label:"标题","min-width":"240"},{default:n(({row:a})=>[c("span",{class:"ellipsis",title:a.title},h(a.title),9,X)]),_:1}),e(p,{label:"状态",width:"120"},{default:n(({row:a})=>[e(I,{type:a.is_active?"success":"info",effect:"light"},{default:n(()=>[r(h(a.is_active?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),e(p,{prop:"created_at",label:"创建时间",width:"180"}),e(p,{label:"操作",width:"260",fixed:"right"},{default:n(({row:a})=>[c("div",Y,[e(l,{size:"small",onClick:k=>A(a)},{default:n(()=>[...t[11]||(t[11]=[r("查看",-1)])]),_:1},8,["onClick"]),a.is_active?(w(),C(l,{key:0,size:"small",onClick:k=>z(a)},{default:n(()=>[...t[12]||(t[12]=[r("停用",-1)])]),_:1},8,["onClick"])):(w(),C(l,{key:1,type:"success",size:"small",onClick:k=>D(a)},{default:n(()=>[...t[13]||(t[13]=[r("启用",-1)])]),_:1},8,["onClick"])),e(l,{type:"danger",size:"small",onClick:k=>M(a)},{default:n(()=>[...t[14]||(t[14]=[r("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[U,x.value]])])]),_:1})])}}},et=L(Z,[["__scopeId","data-v-a7b3418e"]]);export{et as default}; diff --git a/static/admin/assets/EmailPage-4etTfx9H.js b/static/admin/assets/EmailPage-DmFgLrFm.js similarity index 94% rename from static/admin/assets/EmailPage-4etTfx9H.js rename to static/admin/assets/EmailPage-DmFgLrFm.js index 0b7f455..03554cf 100644 --- a/static/admin/assets/EmailPage-4etTfx9H.js +++ b/static/admin/assets/EmailPage-DmFgLrFm.js @@ -1 +1 @@ -import{a as Ae,c as He,b as De,f as Ne,u as Fe}from"./email-DSz2K4-y.js";import{P as L,_ as Ie,r as p,Q as pe,R as Qe,c as ce,o as ze,e as c,H as je,f as T,g as _,h as o,I as O,j as l,w as n,p as r,A as M,n as d,m as C,F as ae,q as fe,J as U,K as f}from"./index-Dx-1XhY8.js";async function Ke(){const{data:v}=await L.get("/smtp/configs");return v}async function Oe(v){const{data:b}=await L.post("/smtp/configs",v);return b}async function Re(v,b){const{data:g}=await L.put(`/smtp/configs/${v}`,b);return g}async function Ge(v){const{data:b}=await L.delete(`/smtp/configs/${v}`);return b}async function Je(v,b){const{data:g}=await L.post(`/smtp/configs/${v}/test`,{email:b});return g}async function We(v){const{data:b}=await L.post(`/smtp/configs/${v}/primary`);return b}async function Xe(){const{data:v}=await L.post("/smtp/configs/primary/clear");return v}const Ye={class:"page-stack"},Ze={class:"app-page-title"},el={class:"toolbar"},ll={class:"help app-muted"},tl={class:"section-head"},al={class:"table-wrap"},sl={class:"stat-value"},nl={class:"stat-value ok"},ol={class:"stat-value err"},il={class:"stat-value"},ul={class:"sub-stats"},dl={class:"help app-muted"},rl={class:"section-head"},ml={class:"toolbar"},pl={class:"table-wrap"},cl=["title"],fl=["title"],_l=["title"],vl={class:"pagination"},bl={class:"page-hint app-muted"},yl={style:{width:"100%"}},gl={key:0,class:"help"},hl={key:0},wl={key:0},kl={key:0},Vl={class:"dialog-actions"},_e=15,Sl={__name:"EmailPage",setup(v){const b=p(!1),g=p(!1),u=pe({enabled:!1,failover_enabled:!0,register_verify_enabled:!1,login_alert_enabled:!0,task_notify_enabled:!1,base_url:"",updated_at:null});let E=null;async function se(){b.value=!0;try{const s=await De();u.enabled=!!s.enabled,u.failover_enabled=!!s.failover_enabled,u.register_verify_enabled=!!s.register_verify_enabled,u.login_alert_enabled=s.login_alert_enabled===void 0?!0:!!s.login_alert_enabled,u.task_notify_enabled=!!s.task_notify_enabled,u.base_url=s.base_url||"",u.updated_at=s.updated_at||null}catch{}finally{b.value=!1}}async function ve(){if(!b.value){g.value=!0;try{const s=await Fe({enabled:u.enabled,failover_enabled:u.failover_enabled,register_verify_enabled:u.register_verify_enabled,login_alert_enabled:u.login_alert_enabled,task_notify_enabled:u.task_notify_enabled,base_url:(u.base_url||"").trim()});if(!s?.success){f.error(s?.error||"更新失败");return}f.success("邮件设置已更新"),await se()}catch{}finally{g.value=!1}}}function q(){E&&window.clearTimeout(E),E=window.setTimeout(ve,300)}Qe(()=>{E&&window.clearTimeout(E),E=null});const R=p(!1),G=p([]),x=p(!1),h=p(!1),J=p(!1),N=p(!1),a=pe({id:null,name:"默认配置",enabled:!0,host:"",port:465,username:"",password:"",use_ssl:!0,use_tls:!1,sender_name:"自动化学习",sender_email:"",daily_limit:0,priority:0}),F=[{key:"custom",label:"自定义(手动填写)",defaults:null,note:"适用于其他邮箱/自建SMTP",links:[]},{key:"gmail",label:"Gmail",defaults:{host:"smtp.gmail.com",port:465,use_ssl:!0,use_tls:!1},note:"通常需要开启两步验证并创建应用专用密码(App Password)",links:[{label:"SMTP 设置说明",url:"https://support.google.com/mail/answer/7126229?hl=zh-Hans"},{label:"App Password",url:"https://myaccount.google.com/apppasswords"}]},{key:"qq",label:"QQ 邮箱",defaults:{host:"smtp.qq.com",port:465,use_ssl:!0,use_tls:!1},note:"需要在邮箱设置中开启 SMTP 并获取授权码(不是QQ登录密码)",links:[{label:"QQ邮箱 SMTP 帮助",url:"https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256"}]},{key:"163",label:"163 邮箱",defaults:{host:"smtp.163.com",port:465,use_ssl:!0,use_tls:!1},note:"需要在邮箱设置中开启 SMTP 并使用授权码/客户端授权密码",links:[{label:"网易邮箱 SMTP 帮助",url:"https://help.mail.163.com/faqDetail.do?code=d7a5dc8471a22b76"}]},{key:"126",label:"126 邮箱",defaults:{host:"smtp.126.com",port:465,use_ssl:!0,use_tls:!1},note:"需要在邮箱设置中开启 SMTP 并使用授权码/客户端授权密码",links:[{label:"网易邮箱帮助",url:"https://help.mail.163.com/"}]},{key:"outlook",label:"Outlook/Hotmail",defaults:{host:"smtp-mail.outlook.com",port:587,use_ssl:!1,use_tls:!0},note:"建议使用 TLS 587(部分账号需开启 SMTP AUTH)",links:[{label:"微软 SMTP 设置",url:"https://support.microsoft.com/office/pop-imap-and-smtp-settings-for-outlook-com-d088b0b7-0d38-4f9a-bc5d-509f9e4c6d3d"}]},{key:"office365",label:"Microsoft 365/Exchange",defaults:{host:"smtp.office365.com",port:587,use_ssl:!1,use_tls:!0},note:"企业邮箱常用配置(需启用 SMTP AUTH)",links:[{label:"微软官方说明",url:"https://learn.microsoft.com/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission"}]},{key:"icloud",label:"iCloud",defaults:{host:"smtp.mail.me.com",port:587,use_ssl:!1,use_tls:!0},note:"需要在 Apple ID 中生成“App 专用密码”",links:[{label:"Apple 邮件服务器设置",url:"https://support.apple.com/zh-cn/HT202304"}]},{key:"tencent_exmail",label:"腾讯企业邮箱",defaults:{host:"smtp.exmail.qq.com",port:465,use_ssl:!0,use_tls:!1},note:"企业邮箱常用配置",links:[{label:"腾讯企业邮箱帮助",url:"https://service.exmail.qq.com/cgi-bin/help?subtype=1&id=23&no=1001068"}]},{key:"aliyun_exmail",label:"阿里企业邮箱",defaults:{host:"smtp.mxhichina.com",port:465,use_ssl:!0,use_tls:!1},note:"企业邮箱常用配置",links:[{label:"阿里云文档",url:"https://help.aliyun.com/document_detail/50652.html"}]}],$=p("custom"),V=ce(()=>F.find(s=>s.key===$.value)||F[0]),be=ce(()=>h.value&&J.value?"留空保持不变":"SMTP密码或授权码");function ye(s){const e=String(s?.host||"").trim().toLowerCase();return e&&{"smtp.gmail.com":"gmail","smtp.qq.com":"qq","smtp.163.com":"163","smtp.126.com":"126","smtp-mail.outlook.com":"outlook","smtp.office365.com":"office365","smtp.mail.me.com":"icloud","smtp.exmail.qq.com":"tencent_exmail","smtp.mxhichina.com":"aliyun_exmail"}[e]||"custom"}function ge(s){const e=F.find(i=>i.key===s);!e||!e.defaults||(a.host=e.defaults.host,a.port=e.defaults.port,a.use_ssl=e.defaults.use_ssl,a.use_tls=e.defaults.use_tls)}function ne(){a.id=null,a.name="默认配置",a.enabled=!0,a.host="",a.port=465,a.username="",a.password="",a.use_ssl=!0,a.use_tls=!1,a.sender_name="自动化学习",a.sender_email="",a.daily_limit=0,a.priority=0,J.value=!1,N.value=!1,$.value="custom"}async function A(){R.value=!0;try{G.value=await Ke()}catch{G.value=[]}finally{R.value=!1}}function he(){h.value=!1,ne(),$.value="custom",x.value=!0}function we(s){h.value=!0,ne(),a.id=s.id,a.name=s.name||"默认配置",a.enabled=!!s.enabled,a.host=s.host||"",a.port=s.port||465,a.username=s.username||"",a.password="",a.use_ssl=!!s.use_ssl,a.use_tls=!!s.use_tls,a.sender_name=s.sender_name||"自动化学习",a.sender_email=s.sender_email||"",a.daily_limit=s.daily_limit??0,a.priority=s.priority??0,J.value=!!s.has_password,N.value=!!s.is_primary,$.value=ye(s),x.value=!0}function oe(s){return s.is_primary?{label:"主",type:"warning"}:s.enabled?{label:"备用",type:"success"}:{label:"禁用",type:"info"}}function ke(s){return s.daily_limit&&s.daily_limit>0?`${s.daily_sent}/${s.daily_limit}`:`${s.daily_sent}/∞`}async function Ve(){if(!a.host.trim()){f.error("SMTP服务器地址不能为空");return}if(!a.username.trim()){f.error("SMTP用户名不能为空");return}const s={name:a.name.trim()||"默认配置",enabled:!!a.enabled,priority:Number(a.priority)||0,host:a.host.trim(),port:Number(a.port)||465,username:a.username.trim(),use_ssl:!!a.use_ssl,use_tls:!!a.use_tls,sender_name:(a.sender_name||"").trim(),sender_email:(a.sender_email||"").trim(),daily_limit:Number(a.daily_limit)||0};try{if(h.value){const e={...s};a.password&&(e.password=a.password);const i=await Re(a.id,e);if(!i?.success){f.error(i?.error||"更新失败");return}f.success("保存成功")}else{const e={...s};a.password&&(e.password=a.password);const i=await Oe(e);if(!i?.success){f.error(i?.error||"创建失败");return}f.success("创建成功")}x.value=!1,await A()}catch{}}async function Se(){if(!h.value||!a.id){f.error("请先保存配置后再测试");return}let s;try{const e=await U.prompt("请输入测试收件邮箱","测试连接",{inputPlaceholder:"name@example.com",confirmButtonText:"发送测试邮件",cancelButtonText:"取消",inputValidator:i=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(i||"").trim()),inputErrorMessage:"邮箱格式不正确"});s=String(e.value||"").trim()}catch{return}try{const e=await Je(a.id,s);e?.success?(f.success("测试成功,邮件已发送"),await A()):await U.alert(e?.error||"测试失败","测试失败",{confirmButtonText:"知道了"})}catch{}}async function xe(){if(!(!h.value||!a.id)){try{await U.confirm("确定将该配置设为主配置吗?","设为主配置",{confirmButtonText:"设为主配置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const s=await We(a.id);if(!s?.success){f.error(s?.error||"设置失败");return}f.success("已设为主配置"),x.value=!1,await A()}catch{}}}async function Te(){if(h.value){try{await U.confirm("确定取消主配置吗?取消后将按优先级选择可用SMTP。","取消主配置",{confirmButtonText:"取消主配置",cancelButtonText:"保留",type:"warning"})}catch{return}try{const s=await Xe();if(!s?.success){f.error(s?.error||"操作失败");return}f.success("已取消主配置"),x.value=!1,await A()}catch{}}}async function Pe(){if(!(!h.value||!a.id)){try{await U.confirm("确定删除该SMTP配置吗?此操作不可恢复。","删除配置",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const s=await Ge(a.id);if(!s?.success){f.error(s?.error||"删除失败");return}f.success("已删除"),x.value=!1,await A()}catch{}}}const W=p(!1),w=p({}),X=p(!1),I=p(""),Q=p(""),z=p(1),Y=p([]),Z=p(0),ee=p(1);function Ce(s){return{register:"注册验证",reset:"密码重置",bind:"邮箱绑定",task_complete:"任务完成",security_alert:"安全告警"}[s]||s}function ie(s){return s?.username&&s?.user_id?`${s.username} (#${s.user_id})`:s?.user_id?`用户#${s.user_id}`:"系统"}async function Be(){W.value=!0;try{w.value=await Ne()}catch{w.value={}}finally{W.value=!1}}async function D(s=1){X.value=!0;try{const e={page:s,page_size:_e};I.value&&(e.type=I.value),Q.value&&(e.status=Q.value);const i=await Ae(e);Y.value=i?.logs||[],Z.value=i?.total||0,z.value=i?.page||s,ee.value=i?.total_pages||1}catch{Y.value=[],Z.value=0,ee.value=1}finally{X.value=!1}}async function Me(){let s;try{const e=await U.prompt("请输入保留天数(将删除该天数之前的日志)","清理日志",{inputValue:"30",confirmButtonText:"清理",cancelButtonText:"取消",inputValidator:i=>{const k=parseInt(String(i),10);return Number.isFinite(k)&&k>=7},inputErrorMessage:"天数必须大于等于7"});s=parseInt(String(e.value),10)}catch{return}try{await U.confirm(`确定删除 ${s} 天之前的邮件日志吗?`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await He(s);if(!e?.success){f.error(e?.error||"清理失败");return}f.success(`已清理 ${e.deleted} 条日志`),await D(1)}catch{}}async function ue(){await Promise.all([se(),A(),Be(),D(1)])}return ze(ue),(s,e)=>{const i=c("el-button"),k=c("el-switch"),m=c("el-form-item"),Ue=c("el-divider"),B=c("el-input"),de=c("el-form"),P=c("el-card"),H=c("el-tag"),y=c("el-table-column"),re=c("el-table"),j=c("el-col"),Le=c("el-row"),S=c("el-option"),le=c("el-select"),Ee=c("el-pagination"),qe=c("el-link"),te=c("el-input-number"),$e=c("el-dialog"),K=je("loading");return _(),T("div",Ye,[o("div",Ze,[e[27]||(e[27]=o("h2",null,"邮件配置",-1)),o("div",el,[l(i,{onClick:ue},{default:n(()=>[...e[26]||(e[26]=[r("刷新",-1)])]),_:1})])]),O((_(),M(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[e[31]||(e[31]=o("h3",{class:"section-title"},"全局设置",-1)),l(de,{"label-width":"140px"},{default:n(()=>[l(m,{label:"启用邮件功能"},{default:n(()=>[l(k,{modelValue:u.enabled,"onUpdate:modelValue":e[0]||(e[0]=t=>u.enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(m,{label:"启用故障转移"},{default:n(()=>[l(k,{modelValue:u.failover_enabled,"onUpdate:modelValue":e[1]||(e[1]=t=>u.failover_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(m,{label:"启用注册邮箱验证"},{default:n(()=>[l(k,{modelValue:u.register_verify_enabled,"onUpdate:modelValue":e[2]||(e[2]=t=>u.register_verify_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(Ue,{"content-position":"left"},{default:n(()=>[...e[28]||(e[28]=[r("通知设置",-1)])]),_:1}),l(m,{label:"启用任务完成通知"},{default:n(()=>[l(k,{modelValue:u.task_notify_enabled,"onUpdate:modelValue":e[3]||(e[3]=t=>u.task_notify_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(m,{label:"新设备登录提醒"},{default:n(()=>[l(k,{modelValue:u.login_alert_enabled,"onUpdate:modelValue":e[4]||(e[4]=t=>u.login_alert_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"]),e[29]||(e[29]=o("div",{class:"help"},"当检测到新设备或新IP登录时,发送邮件提醒用户",-1))]),_:1}),l(m,{label:"网站基础URL"},{default:n(()=>[l(B,{modelValue:u.base_url,"onUpdate:modelValue":e[5]||(e[5]=t=>u.base_url=t),placeholder:"例如: https://example.com",disabled:g.value,onBlur:q},null,8,["modelValue","disabled"]),e[30]||(e[30]=o("div",{class:"help"},"用于生成邮件中的验证链接,留空则使用默认配置。",-1))]),_:1})]),_:1}),o("div",ll,"最近更新时间:"+d(u.updated_at||"-"),1)]),_:1})),[[K,b.value]]),l(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[o("div",tl,[e[33]||(e[33]=o("h3",{class:"section-title"},"SMTP配置列表",-1)),l(i,{type:"primary",onClick:he},{default:n(()=>[...e[32]||(e[32]=[r("+ 添加配置",-1)])]),_:1})]),o("div",al,[O((_(),M(re,{data:G.value,style:{width:"100%"}},{default:n(()=>[l(y,{label:"状态",width:"90"},{default:n(({row:t})=>[l(H,{type:oe(t).type,effect:"light"},{default:n(()=>[r(d(oe(t).label),1)]),_:2},1032,["type"])]),_:1}),l(y,{prop:"name",label:"名称","min-width":"160"}),l(y,{label:"服务器","min-width":"200"},{default:n(({row:t})=>[r(d(t.host)+":"+d(t.port),1)]),_:1}),l(y,{label:"今日/限额",width:"110"},{default:n(({row:t})=>[r(d(ke(t)),1)]),_:1}),l(y,{label:"成功率",width:"100"},{default:n(({row:t})=>[r(d(t.success_rate)+"%",1)]),_:1}),l(y,{label:"操作",width:"120",fixed:"right"},{default:n(({row:t})=>[l(i,{size:"small",onClick:me=>we(t)},{default:n(()=>[...e[34]||(e[34]=[r("编辑",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[K,R.value]])])]),_:1}),O((_(),M(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[e[39]||(e[39]=o("h3",{class:"section-title"},"邮件发送统计",-1)),l(Le,{gutter:12},{default:n(()=>[l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",sl,d(w.value.total_sent||0),1),e[35]||(e[35]=o("div",{class:"stat-label"},"总发送",-1))]),_:1})]),_:1}),l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",nl,d(w.value.total_success||0),1),e[36]||(e[36]=o("div",{class:"stat-label"},"成功",-1))]),_:1})]),_:1}),l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",ol,d(w.value.total_failed||0),1),e[37]||(e[37]=o("div",{class:"stat-label"},"失败",-1))]),_:1})]),_:1}),l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",il,d(w.value.success_rate||0)+"%",1),e[38]||(e[38]=o("div",{class:"stat-label"},"成功率",-1))]),_:1})]),_:1})]),_:1}),o("div",ul,[l(H,{effect:"light"},{default:n(()=>[r("注册验证 "+d(w.value.register_sent||0),1)]),_:1}),l(H,{effect:"light"},{default:n(()=>[r("密码重置 "+d(w.value.reset_sent||0),1)]),_:1}),l(H,{effect:"light"},{default:n(()=>[r("邮箱绑定 "+d(w.value.bind_sent||0),1)]),_:1}),l(H,{effect:"light"},{default:n(()=>[r("任务完成 "+d(w.value.task_complete_sent||0),1)]),_:1})]),o("div",dl,"最后更新:"+d(w.value.last_updated||"-"),1)]),_:1})),[[K,W.value]]),l(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[o("div",rl,[e[41]||(e[41]=o("h3",{class:"section-title"},"邮件发送日志",-1)),o("div",ml,[l(le,{modelValue:I.value,"onUpdate:modelValue":e[6]||(e[6]=t=>I.value=t),style:{width:"140px"},onChange:e[7]||(e[7]=t=>D(1))},{default:n(()=>[l(S,{label:"全部类型",value:""}),l(S,{label:"注册验证",value:"register"}),l(S,{label:"密码重置",value:"reset"}),l(S,{label:"邮箱绑定",value:"bind"}),l(S,{label:"任务完成",value:"task_complete"}),l(S,{label:"安全告警",value:"security_alert"})]),_:1},8,["modelValue"]),l(le,{modelValue:Q.value,"onUpdate:modelValue":e[8]||(e[8]=t=>Q.value=t),style:{width:"120px"},onChange:e[9]||(e[9]=t=>D(1))},{default:n(()=>[l(S,{label:"全部状态",value:""}),l(S,{label:"成功",value:"success"}),l(S,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),l(i,{type:"danger",plain:"",onClick:Me},{default:n(()=>[...e[40]||(e[40]=[r("清理日志",-1)])]),_:1})])]),o("div",pl,[O((_(),M(re,{data:Y.value,style:{width:"100%"}},{default:n(()=>[l(y,{prop:"created_at",label:"时间",width:"180"}),l(y,{prop:"email_to",label:"收件人","min-width":"180"}),l(y,{label:"来源用户","min-width":"160"},{default:n(({row:t})=>[o("span",{class:"ellipsis",title:ie(t)},d(ie(t)),9,cl)]),_:1}),l(y,{label:"类型",width:"120"},{default:n(({row:t})=>[r(d(Ce(t.email_type)),1)]),_:1}),l(y,{label:"主题","min-width":"220"},{default:n(({row:t})=>[o("span",{class:"ellipsis",title:t.subject},d(t.subject),9,fl)]),_:1}),l(y,{label:"状态",width:"90"},{default:n(({row:t})=>[l(H,{type:t.status==="success"?"success":"danger",effect:"light"},{default:n(()=>[r(d(t.status==="success"?"成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),l(y,{label:"错误","min-width":"200"},{default:n(({row:t})=>[o("span",{class:"ellipsis",title:t.error_message||""},d(t.error_message||"-"),9,_l)]),_:1})]),_:1},8,["data"])),[[K,X.value]])]),o("div",vl,[l(Ee,{"current-page":z.value,"onUpdate:currentPage":e[10]||(e[10]=t=>z.value=t),"page-size":_e,total:Z.value,layout:"prev, pager, next, ->, total",onCurrentChange:D},null,8,["current-page","total"]),o("div",bl,"第 "+d(z.value)+" / "+d(ee.value)+" 页",1)])]),_:1}),l($e,{modelValue:x.value,"onUpdate:modelValue":e[25]||(e[25]=t=>x.value=t),title:h.value?"编辑SMTP配置":"添加SMTP配置",width:"min(560px, 92vw)"},{footer:n(()=>[o("div",Vl,[l(i,{onClick:Se},{default:n(()=>[...e[42]||(e[42]=[r("测试连接",-1)])]),_:1}),h.value&&N.value?(_(),M(i,{key:0,type:"warning",plain:"",onClick:Te},{default:n(()=>[...e[43]||(e[43]=[r("取消主配置",-1)])]),_:1})):C("",!0),h.value&&!N.value?(_(),M(i,{key:1,onClick:xe},{default:n(()=>[...e[44]||(e[44]=[r("设为主配置",-1)])]),_:1})):C("",!0),h.value?(_(),M(i,{key:2,type:"danger",plain:"",onClick:Pe},{default:n(()=>[...e[45]||(e[45]=[r("删除配置",-1)])]),_:1})):C("",!0),e[48]||(e[48]=o("div",{class:"spacer"},null,-1)),l(i,{onClick:e[24]||(e[24]=t=>x.value=!1)},{default:n(()=>[...e[46]||(e[46]=[r("取消",-1)])]),_:1}),l(i,{type:"primary",onClick:Ve},{default:n(()=>[...e[47]||(e[47]=[r("保存",-1)])]),_:1})])]),default:n(()=>[l(de,{"label-width":"120px"},{default:n(()=>[l(m,{label:"名称"},{default:n(()=>[l(B,{modelValue:a.name,"onUpdate:modelValue":e[11]||(e[11]=t=>a.name=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"启用"},{default:n(()=>[l(k,{modelValue:a.enabled,"onUpdate:modelValue":e[12]||(e[12]=t=>a.enabled=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"邮箱模板"},{default:n(()=>[o("div",yl,[l(le,{modelValue:$.value,"onUpdate:modelValue":e[13]||(e[13]=t=>$.value=t),placeholder:"选择常用邮箱模板",style:{width:"100%"},onChange:ge},{default:n(()=>[(_(),T(ae,null,fe(F,t=>l(S,{key:t.key,label:t.label,value:t.key},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),V.value.note||V.value.links&&V.value.links.length?(_(),T("div",gl,[V.value.note?(_(),T("span",hl,d(V.value.note),1)):C("",!0),V.value.links&&V.value.links.length?(_(),T(ae,{key:1},[V.value.note?(_(),T("span",wl," · ")):C("",!0),(_(!0),T(ae,null,fe(V.value.links,(t,me)=>(_(),T("span",{key:t.url},[l(qe,{href:t.url,target:"_blank",type:"primary",underline:!1},{default:n(()=>[r(d(t.label),1)]),_:2},1032,["href"]),me[l(B,{modelValue:a.host,"onUpdate:modelValue":e[14]||(e[14]=t=>a.host=t),placeholder:"smtp.example.com"},null,8,["modelValue"])]),_:1}),l(m,{label:"端口"},{default:n(()=>[l(te,{modelValue:a.port,"onUpdate:modelValue":e[15]||(e[15]=t=>a.port=t),min:1,max:65535},null,8,["modelValue"])]),_:1}),l(m,{label:"用户名"},{default:n(()=>[l(B,{modelValue:a.username,"onUpdate:modelValue":e[16]||(e[16]=t=>a.username=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"密码"},{default:n(()=>[l(B,{modelValue:a.password,"onUpdate:modelValue":e[17]||(e[17]=t=>a.password=t),type:"password","show-password":"",placeholder:be.value},null,8,["modelValue","placeholder"])]),_:1}),l(m,{label:"SSL"},{default:n(()=>[l(k,{modelValue:a.use_ssl,"onUpdate:modelValue":e[18]||(e[18]=t=>a.use_ssl=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"TLS"},{default:n(()=>[l(k,{modelValue:a.use_tls,"onUpdate:modelValue":e[19]||(e[19]=t=>a.use_tls=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"发件人名称"},{default:n(()=>[l(B,{modelValue:a.sender_name,"onUpdate:modelValue":e[20]||(e[20]=t=>a.sender_name=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"发件人邮箱"},{default:n(()=>[l(B,{modelValue:a.sender_email,"onUpdate:modelValue":e[21]||(e[21]=t=>a.sender_email=t),placeholder:"可选"},null,8,["modelValue"])]),_:1}),l(m,{label:"每日限额"},{default:n(()=>[l(te,{modelValue:a.daily_limit,"onUpdate:modelValue":e[22]||(e[22]=t=>a.daily_limit=t),min:0,max:1e6},null,8,["modelValue"])]),_:1}),l(m,{label:"优先级"},{default:n(()=>[l(te,{modelValue:a.priority,"onUpdate:modelValue":e[23]||(e[23]=t=>a.priority=t),min:0,max:1e3},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])])}}},Pl=Ie(Sl,[["__scopeId","data-v-7a7e1e9d"]]);export{Pl as default}; +import{a as Ae,c as De,b as He,f as Ne,u as Fe}from"./email-JmyL2jV4.js";import{a as L,_ as Ie,r as p,Q as pe,R as Qe,c as ce,o as ze,f as c,I as je,g as T,h as _,j as o,J as O,m as l,w as n,q as r,B as M,p as d,n as C,F as ae,v as fe,K as U,L as f}from"./index-B9zsNTKQ.js";async function Ke(){const{data:v}=await L.get("/smtp/configs");return v}async function Oe(v){const{data:b}=await L.post("/smtp/configs",v);return b}async function Re(v,b){const{data:g}=await L.put(`/smtp/configs/${v}`,b);return g}async function Ge(v){const{data:b}=await L.delete(`/smtp/configs/${v}`);return b}async function Je(v,b){const{data:g}=await L.post(`/smtp/configs/${v}/test`,{email:b});return g}async function We(v){const{data:b}=await L.post(`/smtp/configs/${v}/primary`);return b}async function Xe(){const{data:v}=await L.post("/smtp/configs/primary/clear");return v}const Ye={class:"page-stack"},Ze={class:"app-page-title"},el={class:"toolbar"},ll={class:"help app-muted"},tl={class:"section-head"},al={class:"table-wrap"},sl={class:"stat-value"},nl={class:"stat-value ok"},ol={class:"stat-value err"},il={class:"stat-value"},ul={class:"sub-stats"},dl={class:"help app-muted"},rl={class:"section-head"},ml={class:"toolbar"},pl={class:"table-wrap"},cl=["title"],fl=["title"],_l=["title"],vl={class:"pagination"},bl={class:"page-hint app-muted"},yl={style:{width:"100%"}},gl={key:0,class:"help"},hl={key:0},wl={key:0},kl={key:0},Vl={class:"dialog-actions"},_e=15,Sl={__name:"EmailPage",setup(v){const b=p(!1),g=p(!1),u=pe({enabled:!1,failover_enabled:!0,register_verify_enabled:!1,login_alert_enabled:!0,task_notify_enabled:!1,base_url:"",updated_at:null});let E=null;async function se(){b.value=!0;try{const s=await He();u.enabled=!!s.enabled,u.failover_enabled=!!s.failover_enabled,u.register_verify_enabled=!!s.register_verify_enabled,u.login_alert_enabled=s.login_alert_enabled===void 0?!0:!!s.login_alert_enabled,u.task_notify_enabled=!!s.task_notify_enabled,u.base_url=s.base_url||"",u.updated_at=s.updated_at||null}catch{}finally{b.value=!1}}async function ve(){if(!b.value){g.value=!0;try{const s=await Fe({enabled:u.enabled,failover_enabled:u.failover_enabled,register_verify_enabled:u.register_verify_enabled,login_alert_enabled:u.login_alert_enabled,task_notify_enabled:u.task_notify_enabled,base_url:(u.base_url||"").trim()});if(!s?.success){f.error(s?.error||"更新失败");return}f.success("邮件设置已更新"),await se()}catch{}finally{g.value=!1}}}function q(){E&&window.clearTimeout(E),E=window.setTimeout(ve,300)}Qe(()=>{E&&window.clearTimeout(E),E=null});const R=p(!1),G=p([]),x=p(!1),h=p(!1),J=p(!1),N=p(!1),a=pe({id:null,name:"默认配置",enabled:!0,host:"",port:465,username:"",password:"",use_ssl:!0,use_tls:!1,sender_name:"自动化学习",sender_email:"",daily_limit:0,priority:0}),F=[{key:"custom",label:"自定义(手动填写)",defaults:null,note:"适用于其他邮箱/自建SMTP",links:[]},{key:"gmail",label:"Gmail",defaults:{host:"smtp.gmail.com",port:465,use_ssl:!0,use_tls:!1},note:"通常需要开启两步验证并创建应用专用密码(App Password)",links:[{label:"SMTP 设置说明",url:"https://support.google.com/mail/answer/7126229?hl=zh-Hans"},{label:"App Password",url:"https://myaccount.google.com/apppasswords"}]},{key:"qq",label:"QQ 邮箱",defaults:{host:"smtp.qq.com",port:465,use_ssl:!0,use_tls:!1},note:"需要在邮箱设置中开启 SMTP 并获取授权码(不是QQ登录密码)",links:[{label:"QQ邮箱 SMTP 帮助",url:"https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256"}]},{key:"163",label:"163 邮箱",defaults:{host:"smtp.163.com",port:465,use_ssl:!0,use_tls:!1},note:"需要在邮箱设置中开启 SMTP 并使用授权码/客户端授权密码",links:[{label:"网易邮箱 SMTP 帮助",url:"https://help.mail.163.com/faqDetail.do?code=d7a5dc8471a22b76"}]},{key:"126",label:"126 邮箱",defaults:{host:"smtp.126.com",port:465,use_ssl:!0,use_tls:!1},note:"需要在邮箱设置中开启 SMTP 并使用授权码/客户端授权密码",links:[{label:"网易邮箱帮助",url:"https://help.mail.163.com/"}]},{key:"outlook",label:"Outlook/Hotmail",defaults:{host:"smtp-mail.outlook.com",port:587,use_ssl:!1,use_tls:!0},note:"建议使用 TLS 587(部分账号需开启 SMTP AUTH)",links:[{label:"微软 SMTP 设置",url:"https://support.microsoft.com/office/pop-imap-and-smtp-settings-for-outlook-com-d088b0b7-0d38-4f9a-bc5d-509f9e4c6d3d"}]},{key:"office365",label:"Microsoft 365/Exchange",defaults:{host:"smtp.office365.com",port:587,use_ssl:!1,use_tls:!0},note:"企业邮箱常用配置(需启用 SMTP AUTH)",links:[{label:"微软官方说明",url:"https://learn.microsoft.com/exchange/clients-and-mobile-in-exchange-online/authenticated-client-smtp-submission"}]},{key:"icloud",label:"iCloud",defaults:{host:"smtp.mail.me.com",port:587,use_ssl:!1,use_tls:!0},note:"需要在 Apple ID 中生成“App 专用密码”",links:[{label:"Apple 邮件服务器设置",url:"https://support.apple.com/zh-cn/HT202304"}]},{key:"tencent_exmail",label:"腾讯企业邮箱",defaults:{host:"smtp.exmail.qq.com",port:465,use_ssl:!0,use_tls:!1},note:"企业邮箱常用配置",links:[{label:"腾讯企业邮箱帮助",url:"https://service.exmail.qq.com/cgi-bin/help?subtype=1&id=23&no=1001068"}]},{key:"aliyun_exmail",label:"阿里企业邮箱",defaults:{host:"smtp.mxhichina.com",port:465,use_ssl:!0,use_tls:!1},note:"企业邮箱常用配置",links:[{label:"阿里云文档",url:"https://help.aliyun.com/document_detail/50652.html"}]}],$=p("custom"),V=ce(()=>F.find(s=>s.key===$.value)||F[0]),be=ce(()=>h.value&&J.value?"留空保持不变":"SMTP密码或授权码");function ye(s){const e=String(s?.host||"").trim().toLowerCase();return e&&{"smtp.gmail.com":"gmail","smtp.qq.com":"qq","smtp.163.com":"163","smtp.126.com":"126","smtp-mail.outlook.com":"outlook","smtp.office365.com":"office365","smtp.mail.me.com":"icloud","smtp.exmail.qq.com":"tencent_exmail","smtp.mxhichina.com":"aliyun_exmail"}[e]||"custom"}function ge(s){const e=F.find(i=>i.key===s);!e||!e.defaults||(a.host=e.defaults.host,a.port=e.defaults.port,a.use_ssl=e.defaults.use_ssl,a.use_tls=e.defaults.use_tls)}function ne(){a.id=null,a.name="默认配置",a.enabled=!0,a.host="",a.port=465,a.username="",a.password="",a.use_ssl=!0,a.use_tls=!1,a.sender_name="自动化学习",a.sender_email="",a.daily_limit=0,a.priority=0,J.value=!1,N.value=!1,$.value="custom"}async function A(){R.value=!0;try{G.value=await Ke()}catch{G.value=[]}finally{R.value=!1}}function he(){h.value=!1,ne(),$.value="custom",x.value=!0}function we(s){h.value=!0,ne(),a.id=s.id,a.name=s.name||"默认配置",a.enabled=!!s.enabled,a.host=s.host||"",a.port=s.port||465,a.username=s.username||"",a.password="",a.use_ssl=!!s.use_ssl,a.use_tls=!!s.use_tls,a.sender_name=s.sender_name||"自动化学习",a.sender_email=s.sender_email||"",a.daily_limit=s.daily_limit??0,a.priority=s.priority??0,J.value=!!s.has_password,N.value=!!s.is_primary,$.value=ye(s),x.value=!0}function oe(s){return s.is_primary?{label:"主",type:"warning"}:s.enabled?{label:"备用",type:"success"}:{label:"禁用",type:"info"}}function ke(s){return s.daily_limit&&s.daily_limit>0?`${s.daily_sent}/${s.daily_limit}`:`${s.daily_sent}/∞`}async function Ve(){if(!a.host.trim()){f.error("SMTP服务器地址不能为空");return}if(!a.username.trim()){f.error("SMTP用户名不能为空");return}const s={name:a.name.trim()||"默认配置",enabled:!!a.enabled,priority:Number(a.priority)||0,host:a.host.trim(),port:Number(a.port)||465,username:a.username.trim(),use_ssl:!!a.use_ssl,use_tls:!!a.use_tls,sender_name:(a.sender_name||"").trim(),sender_email:(a.sender_email||"").trim(),daily_limit:Number(a.daily_limit)||0};try{if(h.value){const e={...s};a.password&&(e.password=a.password);const i=await Re(a.id,e);if(!i?.success){f.error(i?.error||"更新失败");return}f.success("保存成功")}else{const e={...s};a.password&&(e.password=a.password);const i=await Oe(e);if(!i?.success){f.error(i?.error||"创建失败");return}f.success("创建成功")}x.value=!1,await A()}catch{}}async function Se(){if(!h.value||!a.id){f.error("请先保存配置后再测试");return}let s;try{const e=await U.prompt("请输入测试收件邮箱","测试连接",{inputPlaceholder:"name@example.com",confirmButtonText:"发送测试邮件",cancelButtonText:"取消",inputValidator:i=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(i||"").trim()),inputErrorMessage:"邮箱格式不正确"});s=String(e.value||"").trim()}catch{return}try{const e=await Je(a.id,s);e?.success?(f.success("测试成功,邮件已发送"),await A()):await U.alert(e?.error||"测试失败","测试失败",{confirmButtonText:"知道了"})}catch{}}async function xe(){if(!(!h.value||!a.id)){try{await U.confirm("确定将该配置设为主配置吗?","设为主配置",{confirmButtonText:"设为主配置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const s=await We(a.id);if(!s?.success){f.error(s?.error||"设置失败");return}f.success("已设为主配置"),x.value=!1,await A()}catch{}}}async function Te(){if(h.value){try{await U.confirm("确定取消主配置吗?取消后将按优先级选择可用SMTP。","取消主配置",{confirmButtonText:"取消主配置",cancelButtonText:"保留",type:"warning"})}catch{return}try{const s=await Xe();if(!s?.success){f.error(s?.error||"操作失败");return}f.success("已取消主配置"),x.value=!1,await A()}catch{}}}async function Pe(){if(!(!h.value||!a.id)){try{await U.confirm("确定删除该SMTP配置吗?此操作不可恢复。","删除配置",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const s=await Ge(a.id);if(!s?.success){f.error(s?.error||"删除失败");return}f.success("已删除"),x.value=!1,await A()}catch{}}}const W=p(!1),w=p({}),X=p(!1),I=p(""),Q=p(""),z=p(1),Y=p([]),Z=p(0),ee=p(1);function Ce(s){return{register:"注册验证",reset:"密码重置",bind:"邮箱绑定",task_complete:"任务完成",security_alert:"安全告警"}[s]||s}function ie(s){return s?.username&&s?.user_id?`${s.username} (#${s.user_id})`:s?.user_id?`用户#${s.user_id}`:"系统"}async function Be(){W.value=!0;try{w.value=await Ne()}catch{w.value={}}finally{W.value=!1}}async function H(s=1){X.value=!0;try{const e={page:s,page_size:_e};I.value&&(e.type=I.value),Q.value&&(e.status=Q.value);const i=await Ae(e);Y.value=i?.logs||[],Z.value=i?.total||0,z.value=i?.page||s,ee.value=i?.total_pages||1}catch{Y.value=[],Z.value=0,ee.value=1}finally{X.value=!1}}async function Me(){let s;try{const e=await U.prompt("请输入保留天数(将删除该天数之前的日志)","清理日志",{inputValue:"30",confirmButtonText:"清理",cancelButtonText:"取消",inputValidator:i=>{const k=parseInt(String(i),10);return Number.isFinite(k)&&k>=7},inputErrorMessage:"天数必须大于等于7"});s=parseInt(String(e.value),10)}catch{return}try{await U.confirm(`确定删除 ${s} 天之前的邮件日志吗?`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await De(s);if(!e?.success){f.error(e?.error||"清理失败");return}f.success(`已清理 ${e.deleted} 条日志`),await H(1)}catch{}}async function ue(){await Promise.all([se(),A(),Be(),H(1)])}return ze(ue),(s,e)=>{const i=c("el-button"),k=c("el-switch"),m=c("el-form-item"),Ue=c("el-divider"),B=c("el-input"),de=c("el-form"),P=c("el-card"),D=c("el-tag"),y=c("el-table-column"),re=c("el-table"),j=c("el-col"),Le=c("el-row"),S=c("el-option"),le=c("el-select"),Ee=c("el-pagination"),qe=c("el-link"),te=c("el-input-number"),$e=c("el-dialog"),K=je("loading");return _(),T("div",Ye,[o("div",Ze,[e[27]||(e[27]=o("h2",null,"邮件配置",-1)),o("div",el,[l(i,{onClick:ue},{default:n(()=>[...e[26]||(e[26]=[r("刷新",-1)])]),_:1})])]),O((_(),M(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[e[31]||(e[31]=o("h3",{class:"section-title"},"全局设置",-1)),l(de,{"label-width":"140px"},{default:n(()=>[l(m,{label:"启用邮件功能"},{default:n(()=>[l(k,{modelValue:u.enabled,"onUpdate:modelValue":e[0]||(e[0]=t=>u.enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(m,{label:"启用故障转移"},{default:n(()=>[l(k,{modelValue:u.failover_enabled,"onUpdate:modelValue":e[1]||(e[1]=t=>u.failover_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(m,{label:"启用注册邮箱验证"},{default:n(()=>[l(k,{modelValue:u.register_verify_enabled,"onUpdate:modelValue":e[2]||(e[2]=t=>u.register_verify_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(Ue,{"content-position":"left"},{default:n(()=>[...e[28]||(e[28]=[r("通知设置",-1)])]),_:1}),l(m,{label:"启用任务完成通知"},{default:n(()=>[l(k,{modelValue:u.task_notify_enabled,"onUpdate:modelValue":e[3]||(e[3]=t=>u.task_notify_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"])]),_:1}),l(m,{label:"新设备登录提醒"},{default:n(()=>[l(k,{modelValue:u.login_alert_enabled,"onUpdate:modelValue":e[4]||(e[4]=t=>u.login_alert_enabled=t),disabled:g.value,onChange:q},null,8,["modelValue","disabled"]),e[29]||(e[29]=o("div",{class:"help"},"当检测到新设备或新IP登录时,发送邮件提醒用户",-1))]),_:1}),l(m,{label:"网站基础URL"},{default:n(()=>[l(B,{modelValue:u.base_url,"onUpdate:modelValue":e[5]||(e[5]=t=>u.base_url=t),placeholder:"例如: https://example.com",disabled:g.value,onBlur:q},null,8,["modelValue","disabled"]),e[30]||(e[30]=o("div",{class:"help"},"用于生成邮件中的验证链接,留空则使用默认配置。",-1))]),_:1})]),_:1}),o("div",ll,"最近更新时间:"+d(u.updated_at||"-"),1)]),_:1})),[[K,b.value]]),l(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[o("div",tl,[e[33]||(e[33]=o("h3",{class:"section-title"},"SMTP配置列表",-1)),l(i,{type:"primary",onClick:he},{default:n(()=>[...e[32]||(e[32]=[r("+ 添加配置",-1)])]),_:1})]),o("div",al,[O((_(),M(re,{data:G.value,style:{width:"100%"}},{default:n(()=>[l(y,{label:"状态",width:"90"},{default:n(({row:t})=>[l(D,{type:oe(t).type,effect:"light"},{default:n(()=>[r(d(oe(t).label),1)]),_:2},1032,["type"])]),_:1}),l(y,{prop:"name",label:"名称","min-width":"160"}),l(y,{label:"服务器","min-width":"200"},{default:n(({row:t})=>[r(d(t.host)+":"+d(t.port),1)]),_:1}),l(y,{label:"今日/限额",width:"110"},{default:n(({row:t})=>[r(d(ke(t)),1)]),_:1}),l(y,{label:"成功率",width:"100"},{default:n(({row:t})=>[r(d(t.success_rate)+"%",1)]),_:1}),l(y,{label:"操作",width:"120",fixed:"right"},{default:n(({row:t})=>[l(i,{size:"small",onClick:me=>we(t)},{default:n(()=>[...e[34]||(e[34]=[r("编辑",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[K,R.value]])])]),_:1}),O((_(),M(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[e[39]||(e[39]=o("h3",{class:"section-title"},"邮件发送统计",-1)),l(Le,{gutter:12},{default:n(()=>[l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",sl,d(w.value.total_sent||0),1),e[35]||(e[35]=o("div",{class:"stat-label"},"总发送",-1))]),_:1})]),_:1}),l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",nl,d(w.value.total_success||0),1),e[36]||(e[36]=o("div",{class:"stat-label"},"成功",-1))]),_:1})]),_:1}),l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",ol,d(w.value.total_failed||0),1),e[37]||(e[37]=o("div",{class:"stat-label"},"失败",-1))]),_:1})]),_:1}),l(j,{xs:12,sm:6},{default:n(()=>[l(P,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:n(()=>[o("div",il,d(w.value.success_rate||0)+"%",1),e[38]||(e[38]=o("div",{class:"stat-label"},"成功率",-1))]),_:1})]),_:1})]),_:1}),o("div",ul,[l(D,{effect:"light"},{default:n(()=>[r("注册验证 "+d(w.value.register_sent||0),1)]),_:1}),l(D,{effect:"light"},{default:n(()=>[r("密码重置 "+d(w.value.reset_sent||0),1)]),_:1}),l(D,{effect:"light"},{default:n(()=>[r("邮箱绑定 "+d(w.value.bind_sent||0),1)]),_:1}),l(D,{effect:"light"},{default:n(()=>[r("任务完成 "+d(w.value.task_complete_sent||0),1)]),_:1})]),o("div",dl,"最后更新:"+d(w.value.last_updated||"-"),1)]),_:1})),[[K,W.value]]),l(P,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[o("div",rl,[e[41]||(e[41]=o("h3",{class:"section-title"},"邮件发送日志",-1)),o("div",ml,[l(le,{modelValue:I.value,"onUpdate:modelValue":e[6]||(e[6]=t=>I.value=t),style:{width:"140px"},onChange:e[7]||(e[7]=t=>H(1))},{default:n(()=>[l(S,{label:"全部类型",value:""}),l(S,{label:"注册验证",value:"register"}),l(S,{label:"密码重置",value:"reset"}),l(S,{label:"邮箱绑定",value:"bind"}),l(S,{label:"任务完成",value:"task_complete"}),l(S,{label:"安全告警",value:"security_alert"})]),_:1},8,["modelValue"]),l(le,{modelValue:Q.value,"onUpdate:modelValue":e[8]||(e[8]=t=>Q.value=t),style:{width:"120px"},onChange:e[9]||(e[9]=t=>H(1))},{default:n(()=>[l(S,{label:"全部状态",value:""}),l(S,{label:"成功",value:"success"}),l(S,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),l(i,{type:"danger",plain:"",onClick:Me},{default:n(()=>[...e[40]||(e[40]=[r("清理日志",-1)])]),_:1})])]),o("div",pl,[O((_(),M(re,{data:Y.value,style:{width:"100%"}},{default:n(()=>[l(y,{prop:"created_at",label:"时间",width:"180"}),l(y,{prop:"email_to",label:"收件人","min-width":"180"}),l(y,{label:"来源用户","min-width":"160"},{default:n(({row:t})=>[o("span",{class:"ellipsis",title:ie(t)},d(ie(t)),9,cl)]),_:1}),l(y,{label:"类型",width:"120"},{default:n(({row:t})=>[r(d(Ce(t.email_type)),1)]),_:1}),l(y,{label:"主题","min-width":"220"},{default:n(({row:t})=>[o("span",{class:"ellipsis",title:t.subject},d(t.subject),9,fl)]),_:1}),l(y,{label:"状态",width:"90"},{default:n(({row:t})=>[l(D,{type:t.status==="success"?"success":"danger",effect:"light"},{default:n(()=>[r(d(t.status==="success"?"成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),l(y,{label:"错误","min-width":"200"},{default:n(({row:t})=>[o("span",{class:"ellipsis",title:t.error_message||""},d(t.error_message||"-"),9,_l)]),_:1})]),_:1},8,["data"])),[[K,X.value]])]),o("div",vl,[l(Ee,{"current-page":z.value,"onUpdate:currentPage":e[10]||(e[10]=t=>z.value=t),"page-size":_e,total:Z.value,layout:"prev, pager, next, ->, total",onCurrentChange:H},null,8,["current-page","total"]),o("div",bl,"第 "+d(z.value)+" / "+d(ee.value)+" 页",1)])]),_:1}),l($e,{modelValue:x.value,"onUpdate:modelValue":e[25]||(e[25]=t=>x.value=t),title:h.value?"编辑SMTP配置":"添加SMTP配置",width:"min(560px, 92vw)"},{footer:n(()=>[o("div",Vl,[l(i,{onClick:Se},{default:n(()=>[...e[42]||(e[42]=[r("测试连接",-1)])]),_:1}),h.value&&N.value?(_(),M(i,{key:0,type:"warning",plain:"",onClick:Te},{default:n(()=>[...e[43]||(e[43]=[r("取消主配置",-1)])]),_:1})):C("",!0),h.value&&!N.value?(_(),M(i,{key:1,onClick:xe},{default:n(()=>[...e[44]||(e[44]=[r("设为主配置",-1)])]),_:1})):C("",!0),h.value?(_(),M(i,{key:2,type:"danger",plain:"",onClick:Pe},{default:n(()=>[...e[45]||(e[45]=[r("删除配置",-1)])]),_:1})):C("",!0),e[48]||(e[48]=o("div",{class:"spacer"},null,-1)),l(i,{onClick:e[24]||(e[24]=t=>x.value=!1)},{default:n(()=>[...e[46]||(e[46]=[r("取消",-1)])]),_:1}),l(i,{type:"primary",onClick:Ve},{default:n(()=>[...e[47]||(e[47]=[r("保存",-1)])]),_:1})])]),default:n(()=>[l(de,{"label-width":"120px"},{default:n(()=>[l(m,{label:"名称"},{default:n(()=>[l(B,{modelValue:a.name,"onUpdate:modelValue":e[11]||(e[11]=t=>a.name=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"启用"},{default:n(()=>[l(k,{modelValue:a.enabled,"onUpdate:modelValue":e[12]||(e[12]=t=>a.enabled=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"邮箱模板"},{default:n(()=>[o("div",yl,[l(le,{modelValue:$.value,"onUpdate:modelValue":e[13]||(e[13]=t=>$.value=t),placeholder:"选择常用邮箱模板",style:{width:"100%"},onChange:ge},{default:n(()=>[(_(),T(ae,null,fe(F,t=>l(S,{key:t.key,label:t.label,value:t.key},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),V.value.note||V.value.links&&V.value.links.length?(_(),T("div",gl,[V.value.note?(_(),T("span",hl,d(V.value.note),1)):C("",!0),V.value.links&&V.value.links.length?(_(),T(ae,{key:1},[V.value.note?(_(),T("span",wl," · ")):C("",!0),(_(!0),T(ae,null,fe(V.value.links,(t,me)=>(_(),T("span",{key:t.url},[l(qe,{href:t.url,target:"_blank",type:"primary",underline:!1},{default:n(()=>[r(d(t.label),1)]),_:2},1032,["href"]),me[l(B,{modelValue:a.host,"onUpdate:modelValue":e[14]||(e[14]=t=>a.host=t),placeholder:"smtp.example.com"},null,8,["modelValue"])]),_:1}),l(m,{label:"端口"},{default:n(()=>[l(te,{modelValue:a.port,"onUpdate:modelValue":e[15]||(e[15]=t=>a.port=t),min:1,max:65535},null,8,["modelValue"])]),_:1}),l(m,{label:"用户名"},{default:n(()=>[l(B,{modelValue:a.username,"onUpdate:modelValue":e[16]||(e[16]=t=>a.username=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"密码"},{default:n(()=>[l(B,{modelValue:a.password,"onUpdate:modelValue":e[17]||(e[17]=t=>a.password=t),type:"password","show-password":"",placeholder:be.value},null,8,["modelValue","placeholder"])]),_:1}),l(m,{label:"SSL"},{default:n(()=>[l(k,{modelValue:a.use_ssl,"onUpdate:modelValue":e[18]||(e[18]=t=>a.use_ssl=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"TLS"},{default:n(()=>[l(k,{modelValue:a.use_tls,"onUpdate:modelValue":e[19]||(e[19]=t=>a.use_tls=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"发件人名称"},{default:n(()=>[l(B,{modelValue:a.sender_name,"onUpdate:modelValue":e[20]||(e[20]=t=>a.sender_name=t)},null,8,["modelValue"])]),_:1}),l(m,{label:"发件人邮箱"},{default:n(()=>[l(B,{modelValue:a.sender_email,"onUpdate:modelValue":e[21]||(e[21]=t=>a.sender_email=t),placeholder:"可选"},null,8,["modelValue"])]),_:1}),l(m,{label:"每日限额"},{default:n(()=>[l(te,{modelValue:a.daily_limit,"onUpdate:modelValue":e[22]||(e[22]=t=>a.daily_limit=t),min:0,max:1e6},null,8,["modelValue"])]),_:1}),l(m,{label:"优先级"},{default:n(()=>[l(te,{modelValue:a.priority,"onUpdate:modelValue":e[23]||(e[23]=t=>a.priority=t),min:0,max:1e3},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])])}}},Pl=Ie(Sl,[["__scopeId","data-v-7a7e1e9d"]]);export{Pl as default}; diff --git a/static/admin/assets/FeedbacksPage-BlN6FFbD.js b/static/admin/assets/FeedbacksPage-BEa--2pl.js similarity index 80% rename from static/admin/assets/FeedbacksPage-BlN6FFbD.js rename to static/admin/assets/FeedbacksPage-BEa--2pl.js index 2939fea..3452f05 100644 --- a/static/admin/assets/FeedbacksPage-BlN6FFbD.js +++ b/static/admin/assets/FeedbacksPage-BEa--2pl.js @@ -1 +1 @@ -import{_ as j,i as L,r as m,o as O,e as o,H as q,f as k,g as b,h as s,j as e,w as a,F as V,q as A,p as u,n as d,I as H,A as J,m as K,L as R,J as B,M as U,K as C,N as G,O as Q}from"./index-Dx-1XhY8.js";const W={class:"page-stack"},X={class:"app-page-title"},Y={class:"toolbar"},Z={class:"stat-value"},ee={class:"stat-value warn"},te={class:"stat-value ok"},ae={class:"stat-value"},le={class:"table-wrap"},se={class:"ellipsis"},ne={class:"ellipsis"},oe={class:"ellipsis"},ie={class:"actions"},de={__name:"FeedbacksPage",setup(ce){const N=L("refreshNavBadges",null),y=m(!1),g=m(""),c=m({total:0,pending:0,replied:0,closed:0}),w=m([]),M=[{label:"全部状态",value:""},{label:"待处理",value:"pending"},{label:"已回复",value:"replied"},{label:"已关闭",value:"closed"}];function F(n){return n==="pending"?{label:"待处理",type:"warning"}:n==="replied"?{label:"已回复",type:"success"}:n==="closed"?{label:"已关闭",type:"info"}:{label:n||"-",type:"info"}}async function r(){y.value=!0;try{const n=await R(g.value);w.value=n?.feedbacks||[],c.value=n?.stats||{total:0,pending:0,replied:0,closed:0}}catch{w.value=[],c.value={total:0,pending:0,replied:0,closed:0}}finally{y.value=!1}await N?.({pendingFeedbacks:c.value.pending||0})}async function D(n){let t;try{t=(await B.prompt("请输入回复内容","回复反馈",{inputType:"textarea",inputPlaceholder:"回复内容",confirmButtonText:"提交",cancelButtonText:"取消",inputValidator:h=>!!String(h||"").trim(),inputErrorMessage:"回复内容不能为空"})).value}catch{return}try{const _=await U(n.id,String(t||"").trim());C.success(_?.message||"回复成功"),await r()}catch{}}async function E(n){try{await B.confirm("确定要关闭这个反馈吗?","关闭反馈",{confirmButtonText:"关闭",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await G(n.id);C.success(t?.message||"反馈已关闭"),await r()}catch{}}async function z(n){try{await B.confirm("确定要删除这个反馈吗?此操作不可恢复!","删除反馈",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await Q(n.id);C.success(t?.message||"反馈已删除"),await r()}catch{}}return O(r),(n,t)=>{const _=o("el-option"),h=o("el-select"),f=o("el-button"),p=o("el-card"),v=o("el-col"),I=o("el-row"),i=o("el-table-column"),x=o("el-tooltip"),P=o("el-tag"),S=o("el-table"),$=q("loading");return b(),k("div",W,[s("div",X,[t[2]||(t[2]=s("h2",null,"反馈管理",-1)),s("div",Y,[e(h,{modelValue:g.value,"onUpdate:modelValue":t[0]||(t[0]=l=>g.value=l),style:{width:"160px"},onChange:r},{default:a(()=>[(b(),k(V,null,A(M,l=>e(_,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),e(f,{onClick:r},{default:a(()=>[...t[1]||(t[1]=[u("刷新",-1)])]),_:1})])]),e(I,{gutter:12},{default:a(()=>[e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",Z,d(c.value.total||0),1),t[3]||(t[3]=s("div",{class:"stat-label"},"总计",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ee,d(c.value.pending||0),1),t[4]||(t[4]=s("div",{class:"stat-label"},"待处理",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",te,d(c.value.replied||0),1),t[5]||(t[5]=s("div",{class:"stat-label"},"已回复",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ae,d(c.value.closed||0),1),t[6]||(t[6]=s("div",{class:"stat-label"},"已关闭",-1))]),_:1})]),_:1})]),_:1}),e(p,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[s("div",le,[H((b(),J(S,{data:w.value,style:{width:"100%"}},{default:a(()=>[e(i,{prop:"id",label:"ID",width:"80"}),e(i,{prop:"username",label:"用户",width:"140"}),e(i,{label:"标题","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.title,placement:"top","show-after":300},{default:a(()=>[s("span",se,d(l.title),1)]),_:2},1032,["content"])]),_:1}),e(i,{label:"描述","min-width":"220"},{default:a(({row:l})=>[e(x,{content:l.description,placement:"top","show-after":300},{default:a(()=>[s("span",ne,d(l.description),1)]),_:2},1032,["content"])]),_:1}),e(i,{prop:"contact",label:"联系方式","min-width":"160"},{default:a(({row:l})=>[u(d(l.contact||"-"),1)]),_:1}),e(i,{label:"状态",width:"110"},{default:a(({row:l})=>[e(P,{type:F(l.status).type,effect:"light"},{default:a(()=>[u(d(F(l.status).label),1)]),_:2},1032,["type"])]),_:1}),e(i,{prop:"created_at",label:"提交时间",width:"180"}),e(i,{label:"回复","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.admin_reply||"",placement:"top","show-after":300},{default:a(()=>[s("span",oe,d(l.admin_reply||"-"),1)]),_:2},1032,["content"])]),_:1}),e(i,{label:"操作",width:"220",fixed:"right"},{default:a(({row:l})=>[s("div",ie,[l.status!=="closed"?(b(),k(V,{key:0},[e(f,{type:"primary",size:"small",onClick:T=>D(l)},{default:a(()=>[...t[7]||(t[7]=[u("回复",-1)])]),_:1},8,["onClick"]),e(f,{size:"small",onClick:T=>E(l)},{default:a(()=>[...t[8]||(t[8]=[u("关闭",-1)])]),_:1},8,["onClick"])],64)):K("",!0),e(f,{type:"danger",size:"small",onClick:T=>z(l)},{default:a(()=>[...t[9]||(t[9]=[u("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[$,y.value]])])]),_:1})])}}},ue=j(de,[["__scopeId","data-v-97c1e509"]]);export{ue as default}; +import{_ as j,i as L,r as m,o as O,f as o,I as q,g as k,h as b,j as s,m as e,w as a,F as V,v as J,q as u,p as d,J as K,B as R,n as U,M as A,K as B,N as G,L as C,O as H,P as Q}from"./index-B9zsNTKQ.js";const W={class:"page-stack"},X={class:"app-page-title"},Y={class:"toolbar"},Z={class:"stat-value"},ee={class:"stat-value warn"},te={class:"stat-value ok"},ae={class:"stat-value"},le={class:"table-wrap"},se={class:"ellipsis"},ne={class:"ellipsis"},oe={class:"ellipsis"},ie={class:"actions"},de={__name:"FeedbacksPage",setup(ce){const N=L("refreshNavBadges",null),y=m(!1),g=m(""),c=m({total:0,pending:0,replied:0,closed:0}),w=m([]),M=[{label:"全部状态",value:""},{label:"待处理",value:"pending"},{label:"已回复",value:"replied"},{label:"已关闭",value:"closed"}];function F(n){return n==="pending"?{label:"待处理",type:"warning"}:n==="replied"?{label:"已回复",type:"success"}:n==="closed"?{label:"已关闭",type:"info"}:{label:n||"-",type:"info"}}async function r(){y.value=!0;try{const n=await A(g.value);w.value=n?.feedbacks||[],c.value=n?.stats||{total:0,pending:0,replied:0,closed:0}}catch{w.value=[],c.value={total:0,pending:0,replied:0,closed:0}}finally{y.value=!1}await N?.({pendingFeedbacks:c.value.pending||0})}async function D(n){let t;try{t=(await B.prompt("请输入回复内容","回复反馈",{inputType:"textarea",inputPlaceholder:"回复内容",confirmButtonText:"提交",cancelButtonText:"取消",inputValidator:h=>!!String(h||"").trim(),inputErrorMessage:"回复内容不能为空"})).value}catch{return}try{const _=await G(n.id,String(t||"").trim());C.success(_?.message||"回复成功"),await r()}catch{}}async function E(n){try{await B.confirm("确定要关闭这个反馈吗?","关闭反馈",{confirmButtonText:"关闭",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await H(n.id);C.success(t?.message||"反馈已关闭"),await r()}catch{}}async function P(n){try{await B.confirm("确定要删除这个反馈吗?此操作不可恢复!","删除反馈",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await Q(n.id);C.success(t?.message||"反馈已删除"),await r()}catch{}}return O(r),(n,t)=>{const _=o("el-option"),h=o("el-select"),f=o("el-button"),p=o("el-card"),v=o("el-col"),z=o("el-row"),i=o("el-table-column"),x=o("el-tooltip"),I=o("el-tag"),S=o("el-table"),$=q("loading");return b(),k("div",W,[s("div",X,[t[2]||(t[2]=s("h2",null,"反馈管理",-1)),s("div",Y,[e(h,{modelValue:g.value,"onUpdate:modelValue":t[0]||(t[0]=l=>g.value=l),style:{width:"160px"},onChange:r},{default:a(()=>[(b(),k(V,null,J(M,l=>e(_,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),e(f,{onClick:r},{default:a(()=>[...t[1]||(t[1]=[u("刷新",-1)])]),_:1})])]),e(z,{gutter:12},{default:a(()=>[e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",Z,d(c.value.total||0),1),t[3]||(t[3]=s("div",{class:"stat-label"},"总计",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ee,d(c.value.pending||0),1),t[4]||(t[4]=s("div",{class:"stat-label"},"待处理",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",te,d(c.value.replied||0),1),t[5]||(t[5]=s("div",{class:"stat-label"},"已回复",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ae,d(c.value.closed||0),1),t[6]||(t[6]=s("div",{class:"stat-label"},"已关闭",-1))]),_:1})]),_:1})]),_:1}),e(p,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[s("div",le,[K((b(),R(S,{data:w.value,style:{width:"100%"}},{default:a(()=>[e(i,{prop:"id",label:"ID",width:"80"}),e(i,{prop:"username",label:"用户",width:"140"}),e(i,{label:"标题","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.title,placement:"top","show-after":300},{default:a(()=>[s("span",se,d(l.title),1)]),_:2},1032,["content"])]),_:1}),e(i,{label:"描述","min-width":"220"},{default:a(({row:l})=>[e(x,{content:l.description,placement:"top","show-after":300},{default:a(()=>[s("span",ne,d(l.description),1)]),_:2},1032,["content"])]),_:1}),e(i,{prop:"contact",label:"联系方式","min-width":"160"},{default:a(({row:l})=>[u(d(l.contact||"-"),1)]),_:1}),e(i,{label:"状态",width:"110"},{default:a(({row:l})=>[e(I,{type:F(l.status).type,effect:"light"},{default:a(()=>[u(d(F(l.status).label),1)]),_:2},1032,["type"])]),_:1}),e(i,{prop:"created_at",label:"提交时间",width:"180"}),e(i,{label:"回复","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.admin_reply||"",placement:"top","show-after":300},{default:a(()=>[s("span",oe,d(l.admin_reply||"-"),1)]),_:2},1032,["content"])]),_:1}),e(i,{label:"操作",width:"220",fixed:"right"},{default:a(({row:l})=>[s("div",ie,[l.status!=="closed"?(b(),k(V,{key:0},[e(f,{type:"primary",size:"small",onClick:T=>D(l)},{default:a(()=>[...t[7]||(t[7]=[u("回复",-1)])]),_:1},8,["onClick"]),e(f,{size:"small",onClick:T=>E(l)},{default:a(()=>[...t[8]||(t[8]=[u("关闭",-1)])]),_:1},8,["onClick"])],64)):U("",!0),e(f,{type:"danger",size:"small",onClick:T=>P(l)},{default:a(()=>[...t[9]||(t[9]=[u("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[$,y.value]])])]),_:1})])}}},ue=j(de,[["__scopeId","data-v-97c1e509"]]);export{ue as default}; diff --git a/static/admin/assets/LogsPage-CQsGwFRH.js b/static/admin/assets/LogsPage-CQsGwFRH.js new file mode 100644 index 0000000..ed51cd2 --- /dev/null +++ b/static/admin/assets/LogsPage-CQsGwFRH.js @@ -0,0 +1 @@ +import{f as K}from"./users-BxS2U-Si.js";import{d as G,e as H}from"./tasks-DILta43B.js";import{_ as Q,r as u,c as X,o as Z,f as r,I as ee,g as P,h as y,j as v,m as t,w as a,q as p,F as te,v as le,B as F,J as ae,p as m,K as $,L as oe}from"./index-B9zsNTKQ.js";function ne(f){return String(f||"").trim()}function se(f){return!f.startsWith("user_scheduled")||!f.includes(":")?"":f.split(":",2)[1]||""}function ue(f){const s=ne(f);if(!s||s==="manual")return{group:"manual",label:"手动",type:"success",tooltip:""};if(s==="scheduled")return{group:"scheduled",label:"定时任务",type:"primary",tooltip:"系统定时"};if(s.startsWith("user_scheduled")){const i=se(s),_=String(i||"").replace(/^batch_/,"");return{group:"scheduled",label:"定时任务",type:"primary",tooltip:_?`用户定时批次:${_}`:"用户定时"}}return{group:"manual",label:"手动",type:"success",tooltip:{batch:"手动批量",manual_screenshot:"手动截图",immediate:"立即执行",resumed:"断点恢复"}[s]||s}}const re={class:"page-stack"},ie={class:"app-page-title"},ce={class:"toolbar"},de={class:"filters"},pe={class:"table-wrap"},me={class:"ellipsis"},fe={class:"pagination"},ve={class:"page-hint app-muted"},T=20,_e={__name:"LogsPage",setup(f){const s=u(!1),S=u([]),h=u(0),i=u(1),_=u(!1),C=u([]),w=u(""),V=u(""),x=u(""),k=u(""),M=u(""),E=X(()=>Math.max(1,Math.ceil((h.value||0)/T)));function Y(o){if(o==null)return"-";const e=Number(o);return Number.isFinite(e)?e<60?`${e}秒`:`${Math.floor(e/60)}分${e%60}秒`:"-"}function g(o){const e=ue(o);return{key:e.group,label:e.label,type:e.type,tooltip:e.tooltip}}function L(o){return o==="success"?{label:"成功",type:"success"}:o==="failed"?{label:"失败",type:"danger"}:{label:o||"-",type:"info"}}async function z(){_.value=!0;try{const o=await K();C.value=(o||[]).map(e=>({id:e.id,username:e.username}))}catch{C.value=[]}finally{_.value=!1}}async function b(){s.value=!0;try{const o=(i.value-1)*T,e={limit:T,offset:o};w.value&&(e.date=w.value),V.value&&(e.status=V.value),x.value&&(e.source=x.value),k.value&&(e.user_id=k.value),M.value&&(e.account=M.value);const c=await G(e);S.value=c?.logs||[],h.value=c?.total||0}catch{S.value=[],h.value=0}finally{s.value=!1}}function O(){i.value=1,b()}function j(){w.value="",V.value="",x.value="",k.value="",M.value="",i.value=1,b()}async function R(){let o;try{const e=await $.prompt("请输入要清理多少天前的日志(默认30天)","清理旧日志",{inputValue:"30",confirmButtonText:"下一步",cancelButtonText:"取消",inputValidator:c=>{const B=parseInt(String(c),10);return Number.isFinite(B)&&B>=1},inputErrorMessage:"请输入有效的天数(大于0的整数)"});o=parseInt(String(e.value),10)}catch{return}try{await $.confirm(`确定要删除 ${o} 天前的所有日志吗?此操作不可恢复!`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await H(o);oe.success(e?.message||"清理成功"),i.value=1,await b()}catch{}}return Z(async()=>{await z(),await b()}),(o,e)=>{const c=r("el-button"),B=r("el-date-picker"),n=r("el-option"),U=r("el-select"),W=r("el-input"),D=r("el-card"),d=r("el-table-column"),I=r("el-tag"),N=r("el-tooltip"),q=r("el-table"),A=r("el-pagination"),J=ee("loading");return y(),P("div",re,[v("div",ie,[e[7]||(e[7]=v("h2",null,"任务日志",-1)),v("div",ce,[t(c,{onClick:b},{default:a(()=>[...e[6]||(e[6]=[p("刷新",-1)])]),_:1})])]),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[v("div",de,[t(B,{modelValue:w.value,"onUpdate:modelValue":e[0]||(e[0]=l=>w.value=l),type:"date","value-format":"YYYY-MM-DD",placeholder:"日期",style:{width:"150px"}},null,8,["modelValue"]),t(U,{modelValue:V.value,"onUpdate:modelValue":e[1]||(e[1]=l=>V.value=l),placeholder:"状态",style:{width:"120px"}},{default:a(()=>[t(n,{label:"全部",value:""}),t(n,{label:"成功",value:"success"}),t(n,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),t(U,{modelValue:x.value,"onUpdate:modelValue":e[2]||(e[2]=l=>x.value=l),placeholder:"来源",style:{width:"120px"}},{default:a(()=>[t(n,{label:"全部",value:""}),t(n,{label:"手动",value:"manual"}),t(n,{label:"定时任务(系统)",value:"scheduled"}),t(n,{label:"定时任务(用户)",value:"user_scheduled"}),t(n,{label:"手动(批量)",value:"batch"}),t(n,{label:"手动(截图)",value:"manual_screenshot"}),t(n,{label:"手动(立即)",value:"immediate"}),t(n,{label:"手动(恢复)",value:"resumed"})]),_:1},8,["modelValue"]),t(U,{modelValue:k.value,"onUpdate:modelValue":e[3]||(e[3]=l=>k.value=l),placeholder:"用户",style:{width:"140px"},loading:_.value,filterable:"",clearable:""},{default:a(()=>[t(n,{label:"全部",value:""}),(y(!0),P(te,null,le(C.value,l=>(y(),F(n,{key:l.id,label:l.username,value:String(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),t(W,{modelValue:M.value,"onUpdate:modelValue":e[4]||(e[4]=l=>M.value=l),placeholder:"账号关键字",style:{width:"170px"},clearable:""},null,8,["modelValue"]),t(c,{type:"primary",onClick:O},{default:a(()=>[...e[8]||(e[8]=[p("筛选",-1)])]),_:1}),t(c,{onClick:j},{default:a(()=>[...e[9]||(e[9]=[p("重置",-1)])]),_:1}),t(c,{type:"danger",plain:"",onClick:R},{default:a(()=>[...e[10]||(e[10]=[p("清理旧日志",-1)])]),_:1})])]),_:1}),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[v("div",pe,[ae((y(),F(q,{data:S.value,style:{width:"100%"}},{default:a(()=>[t(d,{prop:"created_at",label:"时间",width:"180"}),t(d,{label:"来源",width:"110"},{default:a(({row:l})=>[g(l.source).tooltip?(y(),F(N,{key:0,content:g(l.source).tooltip,placement:"top","show-after":300},{default:a(()=>[t(I,{type:g(l.source).type,effect:"light"},{default:a(()=>[p(m(g(l.source).label),1)]),_:2},1032,["type"])]),_:2},1032,["content"])):(y(),F(I,{key:1,type:g(l.source).type,effect:"light"},{default:a(()=>[p(m(g(l.source).label),1)]),_:2},1032,["type"]))]),_:1}),t(d,{prop:"user_username",label:"用户",width:"140"}),t(d,{prop:"username",label:"账号",width:"160"}),t(d,{prop:"browse_type",label:"浏览类型",width:"120"}),t(d,{label:"状态",width:"90"},{default:a(({row:l})=>[t(I,{type:L(l.status).type,effect:"light"},{default:a(()=>[p(m(L(l.status).label),1)]),_:2},1032,["type"])]),_:1}),t(d,{label:"内容/附件",width:"110"},{default:a(({row:l})=>[p(m(l.total_items)+" / "+m(l.total_attachments),1)]),_:1}),t(d,{label:"用时",width:"90"},{default:a(({row:l})=>[p(m(Y(l.duration)),1)]),_:1}),t(d,{label:"失败原因","min-width":"220"},{default:a(({row:l})=>[t(N,{content:l.error_message||"",placement:"top","show-after":300},{default:a(()=>[v("span",me,m(l.error_message||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[J,s.value]])]),v("div",fe,[t(A,{"current-page":i.value,"onUpdate:currentPage":e[5]||(e[5]=l=>i.value=l),"page-size":T,total:h.value,layout:"prev, pager, next, jumper, ->, total",onCurrentChange:b},null,8,["current-page","total"]),v("div",ve,"第 "+m(i.value)+" / "+m(E.value)+" 页",1)])]),_:1})])}}},he=Q(_e,[["__scopeId","data-v-080a6c1f"]]);export{he as default}; diff --git a/static/admin/assets/LogsPage-adLViVmd.js b/static/admin/assets/LogsPage-adLViVmd.js deleted file mode 100644 index 78b0cf5..0000000 --- a/static/admin/assets/LogsPage-adLViVmd.js +++ /dev/null @@ -1 +0,0 @@ -import{f as J}from"./users-BNPg4OEj.js";import{d as K,e as G}from"./tasks-yIlAy2Ne.js";import{_ as Q,r as u,c as X,o as Z,e as r,H as ee,f as P,g as y,h as v,j as t,w as a,p,F as te,q as le,A as B,I as ae,n as m,J as $,K as oe}from"./index-Dx-1XhY8.js";function ne(f){return String(f||"").trim()}function se(f){return!f.startsWith("user_scheduled")||!f.includes(":")?"":f.split(":",2)[1]||""}function ue(f){const s=ne(f);if(!s||s==="manual")return{group:"manual",label:"手动",type:"success",tooltip:""};if(s==="scheduled")return{group:"scheduled",label:"定时任务",type:"primary",tooltip:"系统定时"};if(s.startsWith("user_scheduled")){const i=se(s),_=String(i||"").replace(/^batch_/,"");return{group:"scheduled",label:"定时任务",type:"primary",tooltip:_?`用户定时批次:${_}`:"用户定时"}}return{group:"manual",label:"手动",type:"success",tooltip:{batch:"手动批量",manual_screenshot:"手动截图",immediate:"立即执行",resumed:"断点恢复"}[s]||s}}const re={class:"page-stack"},ie={class:"app-page-title"},ce={class:"toolbar"},de={class:"filters"},pe={class:"table-wrap"},me={class:"ellipsis"},fe={class:"pagination"},ve={class:"page-hint app-muted"},T=20,_e={__name:"LogsPage",setup(f){const s=u(!1),S=u([]),h=u(0),i=u(1),_=u(!1),C=u([]),w=u(""),V=u(""),x=u(""),k=u(""),M=u(""),E=X(()=>Math.max(1,Math.ceil((h.value||0)/T)));function Y(o){if(o==null)return"-";const e=Number(o);return Number.isFinite(e)?e<60?`${e}秒`:`${Math.floor(e/60)}分${e%60}秒`:"-"}function g(o){const e=ue(o);return{key:e.group,label:e.label,type:e.type,tooltip:e.tooltip}}function D(o){return o==="success"?{label:"成功",type:"success"}:o==="failed"?{label:"失败",type:"danger"}:{label:o||"-",type:"info"}}async function z(){_.value=!0;try{const o=await J();C.value=(o||[]).map(e=>({id:e.id,username:e.username}))}catch{C.value=[]}finally{_.value=!1}}async function b(){s.value=!0;try{const o=(i.value-1)*T,e={limit:T,offset:o};w.value&&(e.date=w.value),V.value&&(e.status=V.value),x.value&&(e.source=x.value),k.value&&(e.user_id=k.value),M.value&&(e.account=M.value);const c=await K(e);S.value=c?.logs||[],h.value=c?.total||0}catch{S.value=[],h.value=0}finally{s.value=!1}}function O(){i.value=1,b()}function j(){w.value="",V.value="",x.value="",k.value="",M.value="",i.value=1,b()}async function A(){let o;try{const e=await $.prompt("请输入要清理多少天前的日志(默认30天)","清理旧日志",{inputValue:"30",confirmButtonText:"下一步",cancelButtonText:"取消",inputValidator:c=>{const F=parseInt(String(c),10);return Number.isFinite(F)&&F>=1},inputErrorMessage:"请输入有效的天数(大于0的整数)"});o=parseInt(String(e.value),10)}catch{return}try{await $.confirm(`确定要删除 ${o} 天前的所有日志吗?此操作不可恢复!`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await G(o);oe.success(e?.message||"清理成功"),i.value=1,await b()}catch{}}return Z(async()=>{await z(),await b()}),(o,e)=>{const c=r("el-button"),F=r("el-date-picker"),n=r("el-option"),U=r("el-select"),R=r("el-input"),L=r("el-card"),d=r("el-table-column"),I=r("el-tag"),N=r("el-tooltip"),W=r("el-table"),q=r("el-pagination"),H=ee("loading");return y(),P("div",re,[v("div",ie,[e[7]||(e[7]=v("h2",null,"任务日志",-1)),v("div",ce,[t(c,{onClick:b},{default:a(()=>[...e[6]||(e[6]=[p("刷新",-1)])]),_:1})])]),t(L,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[v("div",de,[t(F,{modelValue:w.value,"onUpdate:modelValue":e[0]||(e[0]=l=>w.value=l),type:"date","value-format":"YYYY-MM-DD",placeholder:"日期",style:{width:"150px"}},null,8,["modelValue"]),t(U,{modelValue:V.value,"onUpdate:modelValue":e[1]||(e[1]=l=>V.value=l),placeholder:"状态",style:{width:"120px"}},{default:a(()=>[t(n,{label:"全部",value:""}),t(n,{label:"成功",value:"success"}),t(n,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),t(U,{modelValue:x.value,"onUpdate:modelValue":e[2]||(e[2]=l=>x.value=l),placeholder:"来源",style:{width:"120px"}},{default:a(()=>[t(n,{label:"全部",value:""}),t(n,{label:"手动",value:"manual"}),t(n,{label:"定时任务(系统)",value:"scheduled"}),t(n,{label:"定时任务(用户)",value:"user_scheduled"}),t(n,{label:"手动(批量)",value:"batch"}),t(n,{label:"手动(截图)",value:"manual_screenshot"}),t(n,{label:"手动(立即)",value:"immediate"}),t(n,{label:"手动(恢复)",value:"resumed"})]),_:1},8,["modelValue"]),t(U,{modelValue:k.value,"onUpdate:modelValue":e[3]||(e[3]=l=>k.value=l),placeholder:"用户",style:{width:"140px"},loading:_.value,filterable:"",clearable:""},{default:a(()=>[t(n,{label:"全部",value:""}),(y(!0),P(te,null,le(C.value,l=>(y(),B(n,{key:l.id,label:l.username,value:String(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),t(R,{modelValue:M.value,"onUpdate:modelValue":e[4]||(e[4]=l=>M.value=l),placeholder:"账号关键字",style:{width:"170px"},clearable:""},null,8,["modelValue"]),t(c,{type:"primary",onClick:O},{default:a(()=>[...e[8]||(e[8]=[p("筛选",-1)])]),_:1}),t(c,{onClick:j},{default:a(()=>[...e[9]||(e[9]=[p("重置",-1)])]),_:1}),t(c,{type:"danger",plain:"",onClick:A},{default:a(()=>[...e[10]||(e[10]=[p("清理旧日志",-1)])]),_:1})])]),_:1}),t(L,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[v("div",pe,[ae((y(),B(W,{data:S.value,style:{width:"100%"}},{default:a(()=>[t(d,{prop:"created_at",label:"时间",width:"180"}),t(d,{label:"来源",width:"110"},{default:a(({row:l})=>[g(l.source).tooltip?(y(),B(N,{key:0,content:g(l.source).tooltip,placement:"top","show-after":300},{default:a(()=>[t(I,{type:g(l.source).type,effect:"light"},{default:a(()=>[p(m(g(l.source).label),1)]),_:2},1032,["type"])]),_:2},1032,["content"])):(y(),B(I,{key:1,type:g(l.source).type,effect:"light"},{default:a(()=>[p(m(g(l.source).label),1)]),_:2},1032,["type"]))]),_:1}),t(d,{prop:"user_username",label:"用户",width:"140"}),t(d,{prop:"username",label:"账号",width:"160"}),t(d,{prop:"browse_type",label:"浏览类型",width:"120"}),t(d,{label:"状态",width:"90"},{default:a(({row:l})=>[t(I,{type:D(l.status).type,effect:"light"},{default:a(()=>[p(m(D(l.status).label),1)]),_:2},1032,["type"])]),_:1}),t(d,{label:"内容/附件",width:"110"},{default:a(({row:l})=>[p(m(l.total_items)+" / "+m(l.total_attachments),1)]),_:1}),t(d,{label:"用时",width:"90"},{default:a(({row:l})=>[p(m(Y(l.duration)),1)]),_:1}),t(d,{label:"失败原因","min-width":"220"},{default:a(({row:l})=>[t(N,{content:l.error_message||"",placement:"top","show-after":300},{default:a(()=>[v("span",me,m(l.error_message||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[H,s.value]])]),v("div",fe,[t(q,{"current-page":i.value,"onUpdate:currentPage":e[5]||(e[5]=l=>i.value=l),"page-size":T,total:h.value,layout:"prev, pager, next, jumper, ->, total",onCurrentChange:b},null,8,["current-page","total"]),v("div",ve,"第 "+m(i.value)+" / "+m(E.value)+" 页",1)])]),_:1})])}}},he=Q(_e,[["__scopeId","data-v-080a6c1f"]]);export{he as default}; diff --git a/static/admin/assets/ReportPage-CW7RwLmI.css b/static/admin/assets/ReportPage-CW7RwLmI.css deleted file mode 100644 index 2a6dbe3..0000000 --- a/static/admin/assets/ReportPage-CW7RwLmI.css +++ /dev/null @@ -1 +0,0 @@ -.page-stack[data-v-d73bbf7a]{display:flex;flex-direction:column;gap:14px}.hero[data-v-d73bbf7a]{position:relative;overflow:hidden;border-radius:18px;border:1px solid rgba(17,24,39,.1);background:radial-gradient(circle at 10% 10%,rgba(59,130,246,.18),transparent 48%),radial-gradient(circle at 80% 0%,rgba(236,72,153,.16),transparent 45%),radial-gradient(circle at 90% 90%,rgba(16,185,129,.14),transparent 42%),#ffffffa6;box-shadow:0 14px 40px #0f172a14;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);padding:16px}.hero-top[data-v-d73bbf7a]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.hero-title-row[data-v-d73bbf7a]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hero-title h2[data-v-d73bbf7a]{margin:0;font-size:18px;font-weight:900;letter-spacing:.2px}.hero-meta[data-v-d73bbf7a]{margin-top:6px;font-size:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hero-dot[data-v-d73bbf7a]{opacity:.65}.hero-actions[data-v-d73bbf7a]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.kpi-grid[data-v-d73bbf7a]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi-card[data-v-d73bbf7a]{position:relative;overflow:hidden;border-radius:16px;border:1px solid rgba(17,24,39,.1);background:#ffffffb3;box-shadow:0 12px 32px #0f172a14;padding:14px;display:flex;gap:12px;align-items:flex-start;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.kpi-card[data-v-d73bbf7a]:before{content:"";position:absolute;inset:0;background:var(--kpi-grad, transparent);opacity:.9;pointer-events:none}.kpi-card[data-v-d73bbf7a]:after{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--kpi-top, transparent);opacity:.9;pointer-events:none}.kpi-card[data-v-d73bbf7a]:hover{transform:translateY(-2px);box-shadow:0 18px 40px #0f172a1f;border-color:#11182724}.kpi-icon[data-v-d73bbf7a]{position:relative;z-index:1;width:38px;height:38px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--kpi-icon-bg, rgba(59, 130, 246, .14));color:var(--kpi-icon-color, #1d4ed8);border:1px solid rgba(17,24,39,.08);flex:0 0 auto}.kpi-body[data-v-d73bbf7a]{position:relative;z-index:1;min-width:0}.kpi-value[data-v-d73bbf7a]{font-size:22px;font-weight:900;line-height:1.1}.kpi-label[data-v-d73bbf7a]{margin-top:6px;font-size:12px;color:#111827b3}.kpi-sub[data-v-d73bbf7a]{margin-top:6px;font-size:12px}.kpi-tone--blue[data-v-d73bbf7a]{--kpi-grad: linear-gradient(135deg, rgba(59, 130, 246, .14), rgba(6, 182, 212, .1));--kpi-top: linear-gradient(90deg, #3b82f6, #06b6d4);--kpi-icon-bg: rgba(59, 130, 246, .14);--kpi-icon-color: #1d4ed8}.kpi-tone--green[data-v-d73bbf7a]{--kpi-grad: linear-gradient(135deg, rgba(16, 185, 129, .14), rgba(34, 197, 94, .1));--kpi-top: linear-gradient(90deg, #10b981, #22c55e);--kpi-icon-bg: rgba(16, 185, 129, .14);--kpi-icon-color: #047857}.kpi-tone--purple[data-v-d73bbf7a]{--kpi-grad: linear-gradient(135deg, rgba(139, 92, 246, .14), rgba(236, 72, 153, .1));--kpi-top: linear-gradient(90deg, #8b5cf6, #ec4899);--kpi-icon-bg: rgba(139, 92, 246, .14);--kpi-icon-color: #6d28d9}.kpi-tone--orange[data-v-d73bbf7a]{--kpi-grad: linear-gradient(135deg, rgba(245, 158, 11, .14), rgba(249, 115, 22, .1));--kpi-top: linear-gradient(90deg, #f59e0b, #f97316);--kpi-icon-bg: rgba(245, 158, 11, .14);--kpi-icon-color: #b45309}.kpi-tone--red[data-v-d73bbf7a]{--kpi-grad: linear-gradient(135deg, rgba(239, 68, 68, .14), rgba(244, 63, 94, .1));--kpi-top: linear-gradient(90deg, #ef4444, #f43f5e);--kpi-icon-bg: rgba(239, 68, 68, .14);--kpi-icon-color: #b91c1c}.kpi-tone--cyan[data-v-d73bbf7a]{--kpi-grad: linear-gradient(135deg, rgba(34, 211, 238, .14), rgba(59, 130, 246, .1));--kpi-top: linear-gradient(90deg, #22d3ee, #3b82f6);--kpi-icon-bg: rgba(34, 211, 238, .14);--kpi-icon-color: #0369a1}.panel[data-v-d73bbf7a]{border-radius:18px;border:1px solid rgba(17,24,39,.1);background:#ffffffb3;box-shadow:var(--app-shadow);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px)}.panel-head[data-v-d73bbf7a]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.head-left[data-v-d73bbf7a]{display:flex;align-items:center;gap:12px;min-width:0}.head-text[data-v-d73bbf7a]{min-width:0}.head-icon[data-v-d73bbf7a]{width:40px;height:40px;border-radius:16px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(17,24,39,.08);flex:0 0 auto}.tone-blue[data-v-d73bbf7a]{background:#3b82f61f;color:#1d4ed8}.tone-cyan[data-v-d73bbf7a]{background:#22d3ee1f;color:#0369a1}.tone-purple[data-v-d73bbf7a]{background:#8b5cf61f;color:#6d28d9}.tone-orange[data-v-d73bbf7a]{background:#f59e0b1f;color:#b45309}.tone-green[data-v-d73bbf7a]{background:#10b9811f;color:#047857}.tone-red[data-v-d73bbf7a]{background:#ef44441f;color:#b91c1c}.panel-title[data-v-d73bbf7a]{font-size:14px;font-weight:900}.panel-sub[data-v-d73bbf7a]{margin-top:4px;font-size:12px;color:var(--app-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-section[data-v-d73bbf7a]{display:flex;flex-direction:column;gap:10px}.tile-title[data-v-d73bbf7a]{font-size:12px;font-weight:800;letter-spacing:.2px}.tile-grid[data-v-d73bbf7a]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.tile-grid--3[data-v-d73bbf7a]{grid-template-columns:repeat(3,minmax(0,1fr))}.tile[data-v-d73bbf7a]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.tile-v[data-v-d73bbf7a]{font-size:18px;font-weight:900;line-height:1.1}.tile-k[data-v-d73bbf7a]{margin-top:6px;font-size:12px}.ok[data-v-d73bbf7a]{color:#047857}.warn[data-v-d73bbf7a]{color:#b45309}.err[data-v-d73bbf7a]{color:#b91c1c}.divider[data-v-d73bbf7a]{height:1px;background:linear-gradient(90deg,transparent,rgba(17,24,39,.12),transparent);margin:14px 0}.queue-tabs[data-v-d73bbf7a] .el-tabs__header{margin:0 0 10px}.tab-label[data-v-d73bbf7a]{display:inline-flex;align-items:center;gap:6px}.sub-title[data-v-d73bbf7a]{font-size:13px;font-weight:900;margin-bottom:10px;letter-spacing:.2px}.type-grid[data-v-d73bbf7a]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.type-item[data-v-d73bbf7a]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.type-v[data-v-d73bbf7a]{font-size:16px;font-weight:900}.type-k[data-v-d73bbf7a]{margin-top:6px;font-size:12px}.table-wrap[data-v-d73bbf7a]{overflow-x:auto}.help[data-v-d73bbf7a]{margin-top:10px;font-size:12px}.resource-grid[data-v-d73bbf7a]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.resource-item[data-v-d73bbf7a]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.resource-k[data-v-d73bbf7a]{font-size:12px;margin-bottom:8px}.resource-sub[data-v-d73bbf7a]{margin-top:8px;font-size:12px}.config-grid[data-v-d73bbf7a]{display:grid;grid-template-columns:1fr;gap:10px}.config-item[data-v-d73bbf7a]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.config-k[data-v-d73bbf7a]{font-size:12px}.config-v[data-v-d73bbf7a]{margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.config-inline[data-v-d73bbf7a]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-split[data-v-d73bbf7a]{opacity:.65}.config-sub[data-v-d73bbf7a]{margin-top:8px;font-size:12px}[data-v-d73bbf7a] .el-table{--el-table-border-color: rgba(17, 24, 39, .08);--el-table-header-bg-color: rgba(246, 247, 251, .8)}[data-v-d73bbf7a] .el-table th.el-table__cell{background:#f6f7fbcc}@media(max-width:768px){.kpi-grid[data-v-d73bbf7a],.tile-grid[data-v-d73bbf7a],.tile-grid--3[data-v-d73bbf7a]{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-grid[data-v-d73bbf7a]{grid-template-columns:1fr}}@media(max-width:520px){.kpi-grid[data-v-d73bbf7a]{grid-template-columns:1fr}} diff --git a/static/admin/assets/ReportPage-D7trjjOv.css b/static/admin/assets/ReportPage-D7trjjOv.css new file mode 100644 index 0000000..c5160b8 --- /dev/null +++ b/static/admin/assets/ReportPage-D7trjjOv.css @@ -0,0 +1 @@ +.page-stack[data-v-a37ef846]{display:flex;flex-direction:column;gap:14px}.hero[data-v-a37ef846]{position:relative;overflow:hidden;border-radius:18px;border:1px solid rgba(17,24,39,.1);background:radial-gradient(circle at 10% 10%,rgba(59,130,246,.18),transparent 48%),radial-gradient(circle at 80% 0%,rgba(236,72,153,.16),transparent 45%),radial-gradient(circle at 90% 90%,rgba(16,185,129,.14),transparent 42%),#ffffffa6;box-shadow:0 14px 40px #0f172a14;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);padding:16px}.hero-top[data-v-a37ef846]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.hero-title-row[data-v-a37ef846]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hero-title h2[data-v-a37ef846]{margin:0;font-size:18px;font-weight:900;letter-spacing:.2px}.hero-meta[data-v-a37ef846]{margin-top:6px;font-size:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hero-dot[data-v-a37ef846]{opacity:.65}.hero-actions[data-v-a37ef846]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.kpi-grid[data-v-a37ef846]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi-card[data-v-a37ef846]{position:relative;overflow:hidden;border-radius:16px;border:1px solid rgba(17,24,39,.1);background:#ffffffb3;box-shadow:0 12px 32px #0f172a14;padding:14px;display:flex;gap:12px;align-items:flex-start;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.kpi-card[data-v-a37ef846]:before{content:"";position:absolute;inset:0;background:var(--kpi-grad, transparent);opacity:.9;pointer-events:none}.kpi-card[data-v-a37ef846]:after{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:var(--kpi-top, transparent);opacity:.9;pointer-events:none}.kpi-card[data-v-a37ef846]:hover{transform:translateY(-2px);box-shadow:0 18px 40px #0f172a1f;border-color:#11182724}.kpi-icon[data-v-a37ef846]{position:relative;z-index:1;width:38px;height:38px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--kpi-icon-bg, rgba(59, 130, 246, .14));color:var(--kpi-icon-color, #1d4ed8);border:1px solid rgba(17,24,39,.08);flex:0 0 auto}.kpi-body[data-v-a37ef846]{position:relative;z-index:1;min-width:0}.kpi-value[data-v-a37ef846]{font-size:22px;font-weight:900;line-height:1.1}.kpi-label[data-v-a37ef846]{margin-top:6px;font-size:12px;color:#111827b3}.kpi-sub[data-v-a37ef846]{margin-top:6px;font-size:12px}.kpi-tone--blue[data-v-a37ef846]{--kpi-grad: linear-gradient(135deg, rgba(59, 130, 246, .14), rgba(6, 182, 212, .1));--kpi-top: linear-gradient(90deg, #3b82f6, #06b6d4);--kpi-icon-bg: rgba(59, 130, 246, .14);--kpi-icon-color: #1d4ed8}.kpi-tone--green[data-v-a37ef846]{--kpi-grad: linear-gradient(135deg, rgba(16, 185, 129, .14), rgba(34, 197, 94, .1));--kpi-top: linear-gradient(90deg, #10b981, #22c55e);--kpi-icon-bg: rgba(16, 185, 129, .14);--kpi-icon-color: #047857}.kpi-tone--purple[data-v-a37ef846]{--kpi-grad: linear-gradient(135deg, rgba(139, 92, 246, .14), rgba(236, 72, 153, .1));--kpi-top: linear-gradient(90deg, #8b5cf6, #ec4899);--kpi-icon-bg: rgba(139, 92, 246, .14);--kpi-icon-color: #6d28d9}.kpi-tone--orange[data-v-a37ef846]{--kpi-grad: linear-gradient(135deg, rgba(245, 158, 11, .14), rgba(249, 115, 22, .1));--kpi-top: linear-gradient(90deg, #f59e0b, #f97316);--kpi-icon-bg: rgba(245, 158, 11, .14);--kpi-icon-color: #b45309}.kpi-tone--red[data-v-a37ef846]{--kpi-grad: linear-gradient(135deg, rgba(239, 68, 68, .14), rgba(244, 63, 94, .1));--kpi-top: linear-gradient(90deg, #ef4444, #f43f5e);--kpi-icon-bg: rgba(239, 68, 68, .14);--kpi-icon-color: #b91c1c}.kpi-tone--cyan[data-v-a37ef846]{--kpi-grad: linear-gradient(135deg, rgba(34, 211, 238, .14), rgba(59, 130, 246, .1));--kpi-top: linear-gradient(90deg, #22d3ee, #3b82f6);--kpi-icon-bg: rgba(34, 211, 238, .14);--kpi-icon-color: #0369a1}.panel[data-v-a37ef846]{border-radius:18px;border:1px solid rgba(17,24,39,.1);background:#ffffffb3;box-shadow:var(--app-shadow);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px)}.panel-head[data-v-a37ef846]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.head-left[data-v-a37ef846]{display:flex;align-items:center;gap:12px;min-width:0}.head-text[data-v-a37ef846]{min-width:0}.head-icon[data-v-a37ef846]{width:40px;height:40px;border-radius:16px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(17,24,39,.08);flex:0 0 auto}.tone-blue[data-v-a37ef846]{background:#3b82f61f;color:#1d4ed8}.tone-cyan[data-v-a37ef846]{background:#22d3ee1f;color:#0369a1}.tone-purple[data-v-a37ef846]{background:#8b5cf61f;color:#6d28d9}.tone-orange[data-v-a37ef846]{background:#f59e0b1f;color:#b45309}.tone-green[data-v-a37ef846]{background:#10b9811f;color:#047857}.tone-red[data-v-a37ef846]{background:#ef44441f;color:#b91c1c}.panel-title[data-v-a37ef846]{font-size:14px;font-weight:900}.panel-sub[data-v-a37ef846]{margin-top:4px;font-size:12px;color:var(--app-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-section[data-v-a37ef846]{display:flex;flex-direction:column;gap:10px}.tile-title[data-v-a37ef846]{font-size:12px;font-weight:800;letter-spacing:.2px}.tile-grid[data-v-a37ef846]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.tile-grid--3[data-v-a37ef846]{grid-template-columns:repeat(3,minmax(0,1fr))}.tile-grid--4[data-v-a37ef846]{grid-template-columns:repeat(4,minmax(0,1fr))}.tile[data-v-a37ef846]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.tile-v[data-v-a37ef846]{font-size:18px;font-weight:900;line-height:1.1}.tile-k[data-v-a37ef846]{margin-top:6px;font-size:12px}.ok[data-v-a37ef846]{color:#047857}.warn[data-v-a37ef846]{color:#b45309}.err[data-v-a37ef846]{color:#b91c1c}.divider[data-v-a37ef846]{height:1px;background:linear-gradient(90deg,transparent,rgba(17,24,39,.12),transparent);margin:14px 0}.queue-tabs[data-v-a37ef846] .el-tabs__header{margin:0 0 10px}.tab-label[data-v-a37ef846]{display:inline-flex;align-items:center;gap:6px}.sub-title[data-v-a37ef846]{font-size:13px;font-weight:900;margin-bottom:10px;letter-spacing:.2px}.type-grid[data-v-a37ef846]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.type-item[data-v-a37ef846]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.type-v[data-v-a37ef846]{font-size:16px;font-weight:900}.type-k[data-v-a37ef846]{margin-top:6px;font-size:12px}.table-wrap[data-v-a37ef846]{overflow-x:auto}.help[data-v-a37ef846]{margin-top:10px;font-size:12px}.resource-grid[data-v-a37ef846]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.resource-item[data-v-a37ef846]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.resource-k[data-v-a37ef846]{font-size:12px;margin-bottom:8px}.resource-sub[data-v-a37ef846]{margin-top:8px;font-size:12px}.config-grid[data-v-a37ef846]{display:grid;grid-template-columns:1fr;gap:10px}.config-item[data-v-a37ef846]{border:1px solid rgba(17,24,39,.08);border-radius:16px;padding:12px;background:#ffffffa6}.config-k[data-v-a37ef846]{font-size:12px}.config-v[data-v-a37ef846]{margin-top:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.config-inline[data-v-a37ef846]{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-split[data-v-a37ef846]{opacity:.65}.config-sub[data-v-a37ef846]{margin-top:8px;font-size:12px}[data-v-a37ef846] .el-table{--el-table-border-color: rgba(17, 24, 39, .08);--el-table-header-bg-color: rgba(246, 247, 251, .8)}[data-v-a37ef846] .el-table th.el-table__cell{background:#f6f7fbcc}@media(max-width:768px){.kpi-grid[data-v-a37ef846],.tile-grid[data-v-a37ef846],.tile-grid--3[data-v-a37ef846],.tile-grid--4[data-v-a37ef846]{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-grid[data-v-a37ef846]{grid-template-columns:1fr}}@media(max-width:520px){.kpi-grid[data-v-a37ef846]{grid-template-columns:1fr}} diff --git a/static/admin/assets/ReportPage-DxDL6AXa.js b/static/admin/assets/ReportPage-DxDL6AXa.js deleted file mode 100644 index 21eb96d..0000000 --- a/static/admin/assets/ReportPage-DxDL6AXa.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as he,i as Y,r as y,c,u as ge,a as be,t as ee,k as ke,s as ye,l as xe,b as we,o as Se,d as Ce,e as m,f as h,g as v,h as e,j as l,m as C,n as t,w as a,p as o,F as $,q as Te,v as N,x as qe,y as Re,z as Me,A as z,B as Ne,C as ze,D as Pe,E as Ve,G as Ae}from"./index-Dx-1XhY8.js";import{f as Be}from"./email-DSz2K4-y.js";import{f as Ue,a as De,b as Ee,c as Ie}from"./tasks-yIlAy2Ne.js";import{f as Le}from"./system-C_4M4EtK.js";const Fe={class:"page-stack"},$e={class:"hero"},We={class:"hero-top"},je={class:"hero-title"},Ge={class:"hero-meta app-muted"},Ze={key:0},He={key:1,class:"hero-dot"},Je={key:2},Ke={class:"hero-actions"},Oe={class:"kpi-grid"},Qe={class:"kpi-icon"},Xe={class:"kpi-body"},Ye={class:"kpi-value"},es={class:"kpi-label"},ss={key:0,class:"kpi-sub app-muted"},ts={class:"panel-head"},ls={class:"head-left"},as={class:"head-icon tone-purple"},is={class:"head-text"},ns={class:"panel-sub app-muted"},os={class:"tile-section"},ds={class:"tile-grid"},us={class:"tile"},cs={class:"tile-v"},rs={class:"tile"},vs={class:"tile-v ok"},_s={class:"tile"},ps={class:"tile-v err"},ms={class:"tile"},fs={class:"tile-v"},hs={class:"tile"},gs={class:"tile-v"},bs={class:"tile-section"},ks={class:"tile-grid"},ys={class:"tile"},xs={class:"tile-v"},ws={class:"tile"},Ss={class:"tile-v ok"},Cs={class:"tile"},Ts={class:"tile-v err"},qs={class:"tile"},Rs={class:"tile-v"},Ms={class:"tile"},Ns={class:"tile-v"},zs={class:"panel-head"},Ps={class:"head-left"},Vs={class:"head-icon tone-blue"},As={class:"head-text"},Bs={class:"panel-sub app-muted"},Us={class:"tab-label"},Ds={class:"table-wrap"},Es={key:0,class:"help app-muted"},Is={class:"tab-label"},Ls={class:"table-wrap"},Fs={key:0,class:"help app-muted"},$s={class:"panel-head"},Ws={class:"head-left"},js={class:"head-icon tone-cyan"},Gs={class:"head-text"},Zs={class:"panel-sub app-muted"},Hs={class:"tile-grid tile-grid--3"},Js={class:"tile"},Ks={class:"tile-v"},Os={class:"tile"},Qs={class:"tile-v ok"},Xs={class:"tile"},Ys={class:"tile-v err"},et={class:"type-grid"},st={class:"type-item"},tt={class:"type-v"},lt={class:"type-item"},at={class:"type-v"},it={class:"type-item"},nt={class:"type-v"},ot={class:"type-item"},dt={class:"type-v"},ut={class:"panel-head"},ct={class:"head-left"},rt={class:"head-icon tone-orange"},vt={class:"head-text"},_t={class:"panel-sub app-muted"},pt={class:"tile-grid tile-grid--3"},mt={class:"tile"},ft={class:"tile-v"},ht={class:"tile"},gt={class:"tile-v warn"},bt={class:"tile"},kt={class:"tile-v ok"},yt={class:"panel-head"},xt={class:"head-left"},wt={class:"head-icon tone-green"},St={class:"resource-grid"},Ct={class:"resource-item"},Tt={class:"resource-sub app-muted"},qt={class:"resource-item"},Rt={class:"resource-sub app-muted"},Mt={class:"resource-item"},Nt={class:"resource-sub app-muted"},zt={class:"panel-head"},Pt={class:"head-left"},Vt={class:"head-icon tone-red"},At={class:"config-grid"},Bt={class:"config-item"},Ut={class:"config-v"},Dt={class:"config-inline app-muted"},Et={class:"config-sub app-muted"},It={class:"config-item"},Lt={class:"config-v"},Ft={key:2,class:"config-inline app-muted"},$t={class:"config-sub app-muted"},Wt={class:"config-item"},jt={class:"config-v"},Gt={__name:"ReportPage",setup(Zt){const se=Y("refreshStats",null),te=Y("adminStats",null),A=y(!1),B=y(""),E=y(null),g=y(null),x=y(null),P=y(null),u=y(null),T=y(null),b=y(null),W=y("running");function le(){try{B.value=new Date().toLocaleString("zh-CN",{hour12:!1,timeZone:"Asia/Shanghai"})}catch{B.value=""}}function i(d){const s=Number(d);return Number.isFinite(s)?s:0}function f(d){const s=String(d??"").trim();if(!s)return 0;const _=s.endsWith("%")?s.slice(0,-1):s,r=Number(_);return!Number.isFinite(r)||r<0?0:r>1e3?1e3:r}function j(d){const s=String(d??"").trim();return!s||s==="manual"?"手动":s==="scheduled"?"系统定时":s==="batch"?"批量执行":s==="resumed"?"断点续跑":s.startsWith("user_scheduled:")?"用户定时":s}const ae=c(()=>{const d=te?.value||{},s=i(g.value?.max_concurrent);return[{label:"总用户数",value:i(d.total_users),icon:ge,tone:"blue"},{label:"今日注册",value:i(d.new_users_today),icon:be,tone:"green"},{label:"近7天注册",value:i(d.new_users_7d),icon:ee,tone:"purple"},{label:"总账号数",value:i(d.total_accounts),icon:ke,tone:"cyan"},{label:"VIP用户",value:i(d.vip_users),icon:ye,tone:"orange"},{label:"运行中任务",value:i(g.value?.running_count),icon:xe,tone:"green",sub:s?`并发上限 ${s}`:""},{label:"排队任务",value:i(g.value?.queuing_count),icon:we,tone:"purple"}]}),k=c(()=>E.value?.today||{}),V=c(()=>E.value?.total||{}),ie=c(()=>g.value?.running||[]),ne=c(()=>g.value?.queuing||[]),G=c(()=>i(g.value?.running_count)),Z=c(()=>i(g.value?.queuing_count)),U=c(()=>{const d=i(k.value.success_tasks),s=i(k.value.failed_tasks),_=d+s;return _>0?Math.round(d/_*1e3)/10:0}),oe=c(()=>i(x.value?.success_rate)),de=c(()=>(b.value?.schedule_enabled??0)===1),ue=c(()=>b.value?.schedule_time||"-"),ce=c(()=>b.value?.schedule_browse_type||"-"),H=c(()=>String(b.value?.schedule_weekdays||"").trim()),re=c(()=>{const d=H.value;if(!d)return"";const s={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},_=d.split(",").map(r=>r.trim()).filter(Boolean);return _.length?_.map(r=>s[Number(r)]||r).join("、"):d}),J=c(()=>(b.value?.proxy_enabled??0)===1),K=c(()=>b.value?.proxy_api_url||""),ve=c(()=>i(b.value?.proxy_expire_minutes)),O=c(()=>i(b.value?.max_concurrent_global)),_e=c(()=>i(b.value?.max_concurrent_per_account)),pe=c(()=>i(b.value?.max_screenshot_concurrent)),I=c(()=>{const d=i(g.value?.running_count),s=i(g.value?.queuing_count),_=i(g.value?.max_concurrent);return`运行中 ${d} / 排队 ${s} / 并发上限 ${_||O.value||"-"}`});async function L(){if(!A.value){A.value=!0;try{const[d,s,_,r,q,w,S]=await Promise.allSettled([Ue(),De(),Be(),Pe(),Ee(),Ie(),Le()]);E.value=d.status==="fulfilled"?d.value:null,g.value=s.status==="fulfilled"?s.value:null,x.value=_.status==="fulfilled"?_.value:null,P.value=r.status==="fulfilled"?r.value:null,u.value=q.status==="fulfilled"?q.value:null,T.value=w.status==="fulfilled"?w.value:null,b.value=S.status==="fulfilled"?S.value:null,await se?.(),le()}finally{A.value=!1}}}let D=null;return Se(()=>{L(),D=setInterval(L,1e3)}),Ce(()=>{D&&(clearInterval(D),D=null)}),(d,s)=>{const _=m("el-button"),r=m("el-icon"),q=m("el-progress"),w=m("el-card"),S=m("el-col"),R=m("el-tag"),p=m("el-table-column"),Q=m("el-table"),X=m("el-tab-pane"),me=m("el-tabs"),F=m("el-row"),M=m("el-descriptions-item"),fe=m("el-descriptions");return v(),h("div",Fe,[e("div",$e,[e("div",We,[e("div",je,[s[1]||(s[1]=e("div",{class:"hero-title-row"},[e("h2",null,"报表中心")],-1)),e("div",Ge,[B.value?(v(),h("span",Ze,"更新时间:"+t(B.value),1)):C("",!0),u.value?.uptime?(v(),h("span",He,"·")):C("",!0),u.value?.uptime?(v(),h("span",Je,"运行 "+t(u.value.uptime),1)):C("",!0)])]),e("div",Ke,[l(_,{type:"primary",plain:"",loading:A.value,onClick:L},{default:a(()=>[...s[2]||(s[2]=[o("刷新",-1)])]),_:1},8,["loading"])])]),e("div",Oe,[(v(!0),h($,null,Te(ae.value,n=>(v(),h("div",{key:n.label,class:Ve(["kpi-card",`kpi-tone--${n.tone}`])},[e("div",Qe,[l(r,null,{default:a(()=>[(v(),z(Ae(n.icon)))]),_:2},1024)]),e("div",Xe,[e("div",Ye,t(n.value),1),e("div",es,t(n.label),1),n.sub?(v(),h("div",ss,t(n.sub),1)):C("",!0)])],2))),128))])]),l(F,{gutter:12},{default:a(()=>[l(S,{xs:24,lg:12},{default:a(()=>[l(w,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",ts,[e("div",ls,[e("div",as,[l(r,null,{default:a(()=>[l(N(ee))]),_:1})]),e("div",is,[s[3]||(s[3]=e("div",{class:"panel-title"},"任务概览",-1)),e("div",ns,[i(k.value.total_tasks)>0?(v(),h($,{key:0},[o(" 今日成功率 "+t(U.value)+"% · "+t(I.value),1)],64)):(v(),h($,{key:1},[o("今日无任务 · "+t(I.value),1)],64))])])]),l(q,{type:"circle",percentage:i(k.value.total_tasks)>0?Math.round(U.value):0,width:74,"stroke-width":10,status:i(k.value.total_tasks)===0||U.value>=90?"success":U.value>=60?"warning":"exception"},null,8,["percentage","status"])]),e("div",os,[s[9]||(s[9]=e("div",{class:"tile-title app-muted"},"今日",-1)),e("div",ds,[e("div",us,[e("div",cs,t(i(k.value.total_tasks)),1),s[4]||(s[4]=e("div",{class:"tile-k app-muted"},"总任务",-1))]),e("div",rs,[e("div",vs,t(i(k.value.success_tasks)),1),s[5]||(s[5]=e("div",{class:"tile-k app-muted"},"成功",-1))]),e("div",_s,[e("div",ps,t(i(k.value.failed_tasks)),1),s[6]||(s[6]=e("div",{class:"tile-k app-muted"},"失败",-1))]),e("div",ms,[e("div",fs,t(i(k.value.total_items)),1),s[7]||(s[7]=e("div",{class:"tile-k app-muted"},"浏览内容",-1))]),e("div",hs,[e("div",gs,t(i(k.value.total_attachments)),1),s[8]||(s[8]=e("div",{class:"tile-k app-muted"},"查看附件",-1))])])]),s[16]||(s[16]=e("div",{class:"divider"},null,-1)),e("div",bs,[s[15]||(s[15]=e("div",{class:"tile-title app-muted"},"累计",-1)),e("div",ks,[e("div",ys,[e("div",xs,t(i(V.value.total_tasks)),1),s[10]||(s[10]=e("div",{class:"tile-k app-muted"},"总任务",-1))]),e("div",ws,[e("div",Ss,t(i(V.value.success_tasks)),1),s[11]||(s[11]=e("div",{class:"tile-k app-muted"},"成功",-1))]),e("div",Cs,[e("div",Ts,t(i(V.value.failed_tasks)),1),s[12]||(s[12]=e("div",{class:"tile-k app-muted"},"失败",-1))]),e("div",qs,[e("div",Rs,t(i(V.value.total_items)),1),s[13]||(s[13]=e("div",{class:"tile-k app-muted"},"浏览内容",-1))]),e("div",Ms,[e("div",Ns,t(i(V.value.total_attachments)),1),s[14]||(s[14]=e("div",{class:"tile-k app-muted"},"查看附件",-1))])])])]),_:1})]),_:1}),l(S,{xs:24,lg:12},{default:a(()=>[l(w,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",zs,[e("div",Ps,[e("div",Vs,[l(r,null,{default:a(()=>[l(N(qe))]),_:1})]),e("div",As,[s[17]||(s[17]=e("div",{class:"panel-title"},"队列监控",-1)),e("div",Bs,t(I.value),1)])])]),l(me,{modelValue:W.value,"onUpdate:modelValue":s[0]||(s[0]=n=>W.value=n),class:"queue-tabs",stretch:""},{default:a(()=>[l(X,{name:"running"},{label:a(()=>[e("span",Us,[s[18]||(s[18]=o(" 运行中 ",-1)),l(R,{size:"small",effect:"light",type:"success"},{default:a(()=>[o(t(G.value),1)]),_:1})])]),default:a(()=>[e("div",Ds,[l(Q,{data:ie.value.slice(0,10),size:"small",style:{width:"100%"}},{default:a(()=>[l(p,{label:"用户","min-width":"120"},{default:a(({row:n})=>[o(t(n.user_username||"-"),1)]),_:1}),l(p,{label:"账号","min-width":"150"},{default:a(({row:n})=>[o(t(n.username||"-"),1)]),_:1}),l(p,{label:"来源",width:"100"},{default:a(({row:n})=>[o(t(j(n.source)),1)]),_:1}),l(p,{label:"类型",width:"90"},{default:a(({row:n})=>[o(t(n.browse_type||"-"),1)]),_:1}),l(p,{label:"进度",width:"100"},{default:a(({row:n})=>[o(t(n.progress_items)+"/"+t(n.progress_attachments),1)]),_:1}),l(p,{label:"耗时",width:"100"},{default:a(({row:n})=>[o(t(n.elapsed_display||"-"),1)]),_:1}),l(p,{label:"状态","min-width":"140"},{default:a(({row:n})=>[o(t(n.detail_status||n.status||"-"),1)]),_:1})]),_:1},8,["data"])]),G.value===0?(v(),h("div",Es,"当前无运行任务")):C("",!0)]),_:1}),l(X,{name:"queuing"},{label:a(()=>[e("span",Is,[s[19]||(s[19]=o(" 排队中 ",-1)),l(R,{size:"small",effect:"light",type:"warning"},{default:a(()=>[o(t(Z.value),1)]),_:1})])]),default:a(()=>[e("div",Ls,[l(Q,{data:ne.value.slice(0,10),size:"small",style:{width:"100%"}},{default:a(()=>[l(p,{label:"用户","min-width":"120"},{default:a(({row:n})=>[o(t(n.user_username||"-"),1)]),_:1}),l(p,{label:"账号","min-width":"150"},{default:a(({row:n})=>[o(t(n.username||"-"),1)]),_:1}),l(p,{label:"来源",width:"100"},{default:a(({row:n})=>[o(t(j(n.source)),1)]),_:1}),l(p,{label:"类型",width:"90"},{default:a(({row:n})=>[o(t(n.browse_type||"-"),1)]),_:1}),l(p,{label:"等待",width:"100"},{default:a(({row:n})=>[o(t(n.elapsed_display||"-"),1)]),_:1}),l(p,{label:"状态","min-width":"160"},{default:a(({row:n})=>[o(t(n.detail_status||n.status||"-"),1)]),_:1})]),_:1},8,["data"])]),Z.value===0?(v(),h("div",Fs,"当前无排队任务")):C("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),l(F,{gutter:12},{default:a(()=>[l(S,{xs:24,lg:12},{default:a(()=>[l(w,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",$s,[e("div",Ws,[e("div",js,[l(r,null,{default:a(()=>[l(N(Re))]),_:1})]),e("div",Gs,[s[20]||(s[20]=e("div",{class:"panel-title"},"邮件报表",-1)),e("div",Zs,"成功率 "+t(oe.value)+"%",1)])])]),e("div",Hs,[e("div",Js,[e("div",Ks,t(i(x.value?.total_sent)),1),s[21]||(s[21]=e("div",{class:"tile-k app-muted"},"总发送",-1))]),e("div",Os,[e("div",Qs,t(i(x.value?.total_success)),1),s[22]||(s[22]=e("div",{class:"tile-k app-muted"},"成功",-1))]),e("div",Xs,[e("div",Ys,t(i(x.value?.total_failed)),1),s[23]||(s[23]=e("div",{class:"tile-k app-muted"},"失败",-1))])]),s[28]||(s[28]=e("div",{class:"divider"},null,-1)),s[29]||(s[29]=e("div",{class:"sub-title"},"类型统计",-1)),e("div",et,[e("div",st,[e("div",tt,t(i(x.value?.register_sent)),1),s[24]||(s[24]=e("div",{class:"type-k app-muted"},"注册验证",-1))]),e("div",lt,[e("div",at,t(i(x.value?.reset_sent)),1),s[25]||(s[25]=e("div",{class:"type-k app-muted"},"密码重置",-1))]),e("div",it,[e("div",nt,t(i(x.value?.bind_sent)),1),s[26]||(s[26]=e("div",{class:"type-k app-muted"},"邮箱绑定",-1))]),e("div",ot,[e("div",dt,t(i(x.value?.task_complete_sent)),1),s[27]||(s[27]=e("div",{class:"type-k app-muted"},"任务完成",-1))])])]),_:1})]),_:1}),l(S,{xs:24,lg:12},{default:a(()=>[l(w,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",ut,[e("div",ct,[e("div",rt,[l(r,null,{default:a(()=>[l(N(Me))]),_:1})]),e("div",vt,[s[30]||(s[30]=e("div",{class:"panel-title"},"反馈概览",-1)),e("div",_t,"待处理 "+t(i(P.value?.pending))+" 条",1)])])]),e("div",pt,[e("div",mt,[e("div",ft,t(i(P.value?.total)),1),s[31]||(s[31]=e("div",{class:"tile-k app-muted"},"总反馈",-1))]),e("div",ht,[e("div",gt,t(i(P.value?.pending)),1),s[32]||(s[32]=e("div",{class:"tile-k app-muted"},"待处理",-1))]),e("div",bt,[e("div",kt,t(i(P.value?.replied)),1),s[33]||(s[33]=e("div",{class:"tile-k app-muted"},"已回复",-1))])]),s[34]||(s[34]=e("div",{class:"divider"},null,-1)),s[35]||(s[35]=e("div",{class:"help app-muted"},"提示:用户的反馈需要及时处理,避免影响活跃度与留存。",-1))]),_:1})]),_:1})]),_:1}),l(F,{gutter:12},{default:a(()=>[l(S,{xs:24,lg:12},{default:a(()=>[l(w,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",yt,[e("div",xt,[e("div",wt,[l(r,null,{default:a(()=>[l(N(Ne))]),_:1})]),s[36]||(s[36]=e("div",{class:"head-text"},[e("div",{class:"panel-title"},"系统资源"),e("div",{class:"panel-sub app-muted"},"服务器与容器运行状态")],-1))]),u.value?.uptime?(v(),z(R,{key:0,effect:"light",type:"info"},{default:a(()=>[o("运行 "+t(u.value.uptime),1)]),_:1})):C("",!0)]),e("div",St,[e("div",Ct,[s[37]||(s[37]=e("div",{class:"resource-k app-muted"},"CPU",-1)),l(q,{percentage:Math.round(f(u.value?.cpu_percent)),status:f(u.value?.cpu_percent)>=90?"exception":f(u.value?.cpu_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",Tt,t(Math.round(f(u.value?.cpu_percent)))+"%",1)]),e("div",qt,[s[38]||(s[38]=e("div",{class:"resource-k app-muted"},"内存",-1)),l(q,{percentage:Math.round(f(u.value?.memory_percent)),status:f(u.value?.memory_percent)>=90?"exception":f(u.value?.memory_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",Rt,t(u.value?.memory_used||"-")+" / "+t(u.value?.memory_total||"-")+"("+t(Math.round(f(u.value?.memory_percent)))+"%) ",1)]),e("div",Mt,[s[39]||(s[39]=e("div",{class:"resource-k app-muted"},"磁盘",-1)),l(q,{percentage:Math.round(f(u.value?.disk_percent)),status:f(u.value?.disk_percent)>=90?"exception":f(u.value?.disk_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",Nt,t(u.value?.disk_used||"-")+" / "+t(u.value?.disk_total||"-")+"("+t(Math.round(f(u.value?.disk_percent)))+"%) ",1)])]),s[40]||(s[40]=e("div",{class:"divider"},null,-1)),s[41]||(s[41]=e("div",{class:"sub-title"},"容器",-1)),l(fe,{border:"",column:2,size:"small"},{default:a(()=>[l(M,{label:"状态"},{default:a(()=>[o(t(T.value?.status||"-"),1)]),_:1}),l(M,{label:"容器名"},{default:a(()=>[o(t(T.value?.container_name||"-"),1)]),_:1}),l(M,{label:"运行时长"},{default:a(()=>[o(t(T.value?.uptime||"-"),1)]),_:1}),l(M,{label:"CPU"},{default:a(()=>[o(t(T.value?.cpu_percent||"-"),1)]),_:1}),l(M,{label:"内存"},{default:a(()=>[o(t(T.value?.memory_usage||"-"),1)]),_:1}),l(M,{label:"内存占比"},{default:a(()=>[o(t(T.value?.memory_percent||"-"),1)]),_:1})]),_:1})]),_:1})]),_:1}),l(S,{xs:24,lg:12},{default:a(()=>[l(w,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",zt,[e("div",Pt,[e("div",Vt,[l(r,null,{default:a(()=>[l(N(ze))]),_:1})]),s[42]||(s[42]=e("div",{class:"head-text"},[e("div",{class:"panel-title"},"配置概览"),e("div",{class:"panel-sub app-muted"},"定时 / 代理 / 并发")],-1))])]),e("div",At,[e("div",Bt,[s[45]||(s[45]=e("div",{class:"config-k app-muted"},"定时任务",-1)),e("div",Ut,[de.value?(v(),z(R,{key:0,type:"success",effect:"light"},{default:a(()=>[...s[43]||(s[43]=[o("启用",-1)])]),_:1})):(v(),z(R,{key:1,type:"info",effect:"light"},{default:a(()=>[...s[44]||(s[44]=[o("关闭",-1)])]),_:1})),e("span",Dt,t(ue.value)+" / "+t(ce.value),1)]),e("div",Et,"日期:"+t(re.value||H.value||"-"),1)]),e("div",It,[s[48]||(s[48]=e("div",{class:"config-k app-muted"},"代理",-1)),e("div",Lt,[J.value?(v(),z(R,{key:0,type:"success",effect:"light"},{default:a(()=>[...s[46]||(s[46]=[o("启用",-1)])]),_:1})):(v(),z(R,{key:1,type:"info",effect:"light"},{default:a(()=>[...s[47]||(s[47]=[o("关闭",-1)])]),_:1})),J.value&&K.value?(v(),h("span",Ft,t(K.value),1)):C("",!0)]),e("div",$t,"有效期:"+t(ve.value||"-")+" 分钟",1)]),e("div",Wt,[s[51]||(s[51]=e("div",{class:"config-k app-muted"},"并发",-1)),e("div",jt,[e("span",null,"全局 "+t(O.value||"-"),1),s[49]||(s[49]=e("span",{class:"config-split app-muted"},"/",-1)),e("span",null,"单账号 "+t(_e.value||"-"),1),s[50]||(s[50]=e("span",{class:"config-split app-muted"},"/",-1)),e("span",null,"截图 "+t(pe.value||"-"),1)])])])]),_:1})]),_:1})]),_:1})])}}},Qt=he(Gt,[["__scopeId","data-v-d73bbf7a"]]);export{Qt as default}; diff --git a/static/admin/assets/ReportPage-nXQwTJlk.js b/static/admin/assets/ReportPage-nXQwTJlk.js new file mode 100644 index 0000000..6a99c4c --- /dev/null +++ b/static/admin/assets/ReportPage-nXQwTJlk.js @@ -0,0 +1 @@ +import{a as ze,_ as Me,i as ae,r as y,c as u,u as We,b as Ae,t as ie,k as Be,s as Ne,l as Le,d as Ve,o as Ie,e as Ue,f as m,g,h as _,j as e,m as l,n as P,p as t,w as a,q as d,F as j,v as De,x as W,y as Ee,z as Fe,A as $e,B as z,C as je,D as ne,E as Ge,G as He,H as Qe}from"./index-B9zsNTKQ.js";import{f as Ze}from"./email-JmyL2jV4.js";import{f as Je,a as Ke,b as Oe,c as Xe}from"./tasks-DILta43B.js";import{f as Ye}from"./system-DIc9L1cQ.js";async function es(){const{data:G}=await ze.get("/browser_pool/stats");return G}const ss={class:"page-stack"},ts={class:"hero"},ls={class:"hero-top"},as={class:"hero-title"},is={class:"hero-meta app-muted"},ns={key:0},os={key:1,class:"hero-dot"},ds={key:2},us={class:"hero-actions"},rs={class:"kpi-grid"},cs={class:"kpi-icon"},vs={class:"kpi-body"},_s={class:"kpi-value"},ps={class:"kpi-label"},fs={key:0,class:"kpi-sub app-muted"},ms={class:"panel-head"},hs={class:"head-left"},gs={class:"head-icon tone-purple"},bs={class:"head-text"},ks={class:"panel-sub app-muted"},ys={class:"tile-section"},ws={class:"tile-grid"},xs={class:"tile"},Ss={class:"tile-v"},Cs={class:"tile"},Ps={class:"tile-v ok"},Ts={class:"tile"},Rs={class:"tile-v err"},qs={class:"tile"},zs={class:"tile-v"},Ms={class:"tile"},Ws={class:"tile-v"},As={class:"tile-section"},Bs={class:"tile-grid"},Ns={class:"tile"},Ls={class:"tile-v"},Vs={class:"tile"},Is={class:"tile-v ok"},Us={class:"tile"},Ds={class:"tile-v err"},Es={class:"tile"},Fs={class:"tile-v"},$s={class:"tile"},js={class:"tile-v"},Gs={class:"panel-head"},Hs={class:"head-left"},Qs={class:"head-icon tone-blue"},Zs={class:"head-text"},Js={class:"panel-sub app-muted"},Ks={class:"tab-label"},Os={class:"table-wrap"},Xs={key:0,class:"help app-muted"},Ys={class:"tab-label"},et={class:"table-wrap"},st={key:0,class:"help app-muted"},tt={class:"panel-head"},lt={class:"head-left"},at={class:"head-icon tone-cyan"},it={class:"head-text"},nt={class:"panel-sub app-muted"},ot={class:"tile-grid tile-grid--3"},dt={class:"tile"},ut={class:"tile-v"},rt={class:"tile"},ct={class:"tile-v ok"},vt={class:"tile"},_t={class:"tile-v err"},pt={class:"type-grid"},ft={class:"type-item"},mt={class:"type-v"},ht={class:"type-item"},gt={class:"type-v"},bt={class:"type-item"},kt={class:"type-v"},yt={class:"type-item"},wt={class:"type-v"},xt={class:"panel-head"},St={class:"head-left"},Ct={class:"head-icon tone-orange"},Pt={class:"head-text"},Tt={class:"panel-sub app-muted"},Rt={class:"tile-grid tile-grid--3"},qt={class:"tile"},zt={class:"tile-v"},Mt={class:"tile"},Wt={class:"tile-v warn"},At={class:"tile"},Bt={class:"tile-v ok"},Nt={class:"panel-head"},Lt={class:"head-left"},Vt={class:"head-icon tone-green"},It={class:"resource-grid"},Ut={class:"resource-item"},Dt={class:"resource-sub app-muted"},Et={class:"resource-item"},Ft={class:"resource-sub app-muted"},$t={class:"resource-item"},jt={class:"resource-sub app-muted"},Gt={class:"panel-head"},Ht={class:"head-left"},Qt={class:"head-text"},Zt={class:"panel-sub app-muted"},Jt={class:"tile-grid tile-grid--4"},Kt={class:"tile"},Ot={class:"tile-v"},Xt={class:"tile"},Yt={class:"tile-v ok"},el={class:"tile"},sl={class:"tile-v"},tl={class:"tile"},ll={class:"tile-v warn"},al={class:"table-wrap"},il={class:"panel-head"},nl={class:"head-left"},ol={class:"head-icon tone-red"},dl={class:"config-grid"},ul={class:"config-item"},rl={class:"config-v"},cl={class:"config-inline app-muted"},vl={class:"config-sub app-muted"},_l={class:"config-item"},pl={class:"config-v"},fl={key:2,class:"config-inline app-muted"},ml={class:"config-sub app-muted"},hl={class:"config-item"},gl={class:"config-v"},bl={__name:"ReportPage",setup(G){const oe=ae("refreshStats",null),de=ae("adminStats",null),N=y(!1),L=y(""),U=y(null),b=y(null),x=y(null),A=y(null),r=y(null),R=y(null),T=y(null),k=y(null),H=y("running");function ue(){try{L.value=new Date().toLocaleString("zh-CN",{hour12:!1,timeZone:"Asia/Shanghai"})}catch{L.value=""}}function i(o){const s=Number(o);return Number.isFinite(s)?s:0}function h(o){const s=String(o??"").trim();if(!s)return 0;const p=s.endsWith("%")?s.slice(0,-1):s,c=Number(p);return!Number.isFinite(c)||c<0?0:c>1e3?1e3:c}function Q(o){const s=String(o??"").trim();return!s||s==="manual"?"手动":s==="scheduled"?"系统定时":s==="batch"?"批量执行":s==="resumed"?"断点续跑":s.startsWith("user_scheduled:")?"用户定时":s}const re=u(()=>{const o=de?.value||{},s=i(b.value?.max_concurrent);return[{label:"总用户数",value:i(o.total_users),icon:We,tone:"blue"},{label:"今日注册",value:i(o.new_users_today),icon:Ae,tone:"green"},{label:"近7天注册",value:i(o.new_users_7d),icon:ie,tone:"purple"},{label:"总账号数",value:i(o.total_accounts),icon:Be,tone:"cyan"},{label:"VIP用户",value:i(o.vip_users),icon:Ne,tone:"orange"},{label:"运行中任务",value:i(b.value?.running_count),icon:Le,tone:"green",sub:s?`并发上限 ${s}`:""},{label:"排队任务",value:i(b.value?.queuing_count),icon:Ve,tone:"purple"}]}),w=u(()=>U.value?.today||{}),B=u(()=>U.value?.total||{}),ce=u(()=>b.value?.running||[]),ve=u(()=>b.value?.queuing||[]),Z=u(()=>i(b.value?.running_count)),J=u(()=>i(b.value?.queuing_count)),K=u(()=>{const o=T.value?.workers;return Array.isArray(o)?[...o].sort((s,p)=>i(s?.worker_id)-i(p?.worker_id)):[]}),_e=u(()=>i(T.value?.total_workers)),O=u(()=>K.value.filter(o=>!!o?.has_browser).length),pe=u(()=>i(T.value?.idle_workers)),X=u(()=>i(T.value?.queue_size)),fe=u(()=>i(T.value?.active_workers));function me(o){return o?.thread_alive?o?.has_browser?"success":"info":"danger"}function he(o){return o?.thread_alive?o?.has_browser?"活跃":"空闲":"异常"}function ge(o){return o?.thread_alive?o?.idle?"info":"warning":"danger"}function be(o){return o?.thread_alive?o?.idle?"空闲":"忙碌":"停止"}const V=u(()=>{const o=i(w.value.success_tasks),s=i(w.value.failed_tasks),p=o+s;return p>0?Math.round(o/p*1e3)/10:0}),ke=u(()=>i(x.value?.success_rate)),ye=u(()=>(k.value?.schedule_enabled??0)===1),we=u(()=>k.value?.schedule_time||"-"),xe=u(()=>k.value?.schedule_browse_type||"-"),Y=u(()=>String(k.value?.schedule_weekdays||"").trim()),Se=u(()=>{const o=Y.value;if(!o)return"";const s={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},p=o.split(",").map(c=>c.trim()).filter(Boolean);return p.length?p.map(c=>s[Number(c)]||c).join("、"):o}),ee=u(()=>(k.value?.proxy_enabled??0)===1),se=u(()=>k.value?.proxy_api_url||""),Ce=u(()=>i(k.value?.proxy_expire_minutes)),te=u(()=>i(k.value?.max_concurrent_global)),Pe=u(()=>i(k.value?.max_concurrent_per_account)),Te=u(()=>i(k.value?.max_screenshot_concurrent)),D=u(()=>{const o=i(b.value?.running_count),s=i(b.value?.queuing_count),p=i(b.value?.max_concurrent);return`运行中 ${o} / 排队 ${s} / 并发上限 ${p||te.value||"-"}`});async function E(){if(!N.value){N.value=!0;try{const[o,s,p,c,q,S,C,f]=await Promise.allSettled([Je(),Ke(),Ze(),He(),Oe(),Xe(),es(),Ye()]);U.value=o.status==="fulfilled"?o.value:null,b.value=s.status==="fulfilled"?s.value:null,x.value=p.status==="fulfilled"?p.value:null,A.value=c.status==="fulfilled"?c.value:null,r.value=q.status==="fulfilled"?q.value:null,R.value=S.status==="fulfilled"?S.value:null,T.value=C.status==="fulfilled"?C.value:null,k.value=f.status==="fulfilled"?f.value:null,await oe?.(),ue()}finally{N.value=!1}}}let I=null;return Ie(()=>{E(),I=setInterval(E,1e3)}),Ue(()=>{I&&(clearInterval(I),I=null)}),(o,s)=>{const p=m("el-button"),c=m("el-icon"),q=m("el-progress"),S=m("el-card"),C=m("el-col"),f=m("el-tag"),v=m("el-table-column"),F=m("el-table"),le=m("el-tab-pane"),Re=m("el-tabs"),$=m("el-row"),M=m("el-descriptions-item"),qe=m("el-descriptions");return _(),g("div",ss,[e("div",ts,[e("div",ls,[e("div",as,[s[1]||(s[1]=e("div",{class:"hero-title-row"},[e("h2",null,"报表中心")],-1)),e("div",is,[L.value?(_(),g("span",ns,"更新时间:"+t(L.value),1)):P("",!0),r.value?.uptime?(_(),g("span",os,"·")):P("",!0),r.value?.uptime?(_(),g("span",ds,"运行 "+t(r.value.uptime),1)):P("",!0)])]),e("div",us,[l(p,{type:"primary",plain:"",loading:N.value,onClick:E},{default:a(()=>[...s[2]||(s[2]=[d("刷新",-1)])]),_:1},8,["loading"])])]),e("div",rs,[(_(!0),g(j,null,De(re.value,n=>(_(),g("div",{key:n.label,class:ne(["kpi-card",`kpi-tone--${n.tone}`])},[e("div",cs,[l(c,null,{default:a(()=>[(_(),z(Qe(n.icon)))]),_:2},1024)]),e("div",vs,[e("div",_s,t(n.value),1),e("div",ps,t(n.label),1),n.sub?(_(),g("div",fs,t(n.sub),1)):P("",!0)])],2))),128))])]),l($,{gutter:12},{default:a(()=>[l(C,{xs:24,lg:12},{default:a(()=>[l(S,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",ms,[e("div",hs,[e("div",gs,[l(c,null,{default:a(()=>[l(W(ie))]),_:1})]),e("div",bs,[s[3]||(s[3]=e("div",{class:"panel-title"},"任务概览",-1)),e("div",ks,[i(w.value.total_tasks)>0?(_(),g(j,{key:0},[d(" 今日成功率 "+t(V.value)+"% · "+t(D.value),1)],64)):(_(),g(j,{key:1},[d("今日无任务 · "+t(D.value),1)],64))])])]),l(q,{type:"circle",percentage:i(w.value.total_tasks)>0?Math.round(V.value):0,width:74,"stroke-width":10,status:i(w.value.total_tasks)===0||V.value>=90?"success":V.value>=60?"warning":"exception"},null,8,["percentage","status"])]),e("div",ys,[s[9]||(s[9]=e("div",{class:"tile-title app-muted"},"今日",-1)),e("div",ws,[e("div",xs,[e("div",Ss,t(i(w.value.total_tasks)),1),s[4]||(s[4]=e("div",{class:"tile-k app-muted"},"总任务",-1))]),e("div",Cs,[e("div",Ps,t(i(w.value.success_tasks)),1),s[5]||(s[5]=e("div",{class:"tile-k app-muted"},"成功",-1))]),e("div",Ts,[e("div",Rs,t(i(w.value.failed_tasks)),1),s[6]||(s[6]=e("div",{class:"tile-k app-muted"},"失败",-1))]),e("div",qs,[e("div",zs,t(i(w.value.total_items)),1),s[7]||(s[7]=e("div",{class:"tile-k app-muted"},"浏览内容",-1))]),e("div",Ms,[e("div",Ws,t(i(w.value.total_attachments)),1),s[8]||(s[8]=e("div",{class:"tile-k app-muted"},"查看附件",-1))])])]),s[16]||(s[16]=e("div",{class:"divider"},null,-1)),e("div",As,[s[15]||(s[15]=e("div",{class:"tile-title app-muted"},"累计",-1)),e("div",Bs,[e("div",Ns,[e("div",Ls,t(i(B.value.total_tasks)),1),s[10]||(s[10]=e("div",{class:"tile-k app-muted"},"总任务",-1))]),e("div",Vs,[e("div",Is,t(i(B.value.success_tasks)),1),s[11]||(s[11]=e("div",{class:"tile-k app-muted"},"成功",-1))]),e("div",Us,[e("div",Ds,t(i(B.value.failed_tasks)),1),s[12]||(s[12]=e("div",{class:"tile-k app-muted"},"失败",-1))]),e("div",Es,[e("div",Fs,t(i(B.value.total_items)),1),s[13]||(s[13]=e("div",{class:"tile-k app-muted"},"浏览内容",-1))]),e("div",$s,[e("div",js,t(i(B.value.total_attachments)),1),s[14]||(s[14]=e("div",{class:"tile-k app-muted"},"查看附件",-1))])])])]),_:1})]),_:1}),l(C,{xs:24,lg:12},{default:a(()=>[l(S,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",Gs,[e("div",Hs,[e("div",Qs,[l(c,null,{default:a(()=>[l(W(Ee))]),_:1})]),e("div",Zs,[s[17]||(s[17]=e("div",{class:"panel-title"},"队列监控",-1)),e("div",Js,t(D.value),1)])])]),l(Re,{modelValue:H.value,"onUpdate:modelValue":s[0]||(s[0]=n=>H.value=n),class:"queue-tabs",stretch:""},{default:a(()=>[l(le,{name:"running"},{label:a(()=>[e("span",Ks,[s[18]||(s[18]=d(" 运行中 ",-1)),l(f,{size:"small",effect:"light",type:"success"},{default:a(()=>[d(t(Z.value),1)]),_:1})])]),default:a(()=>[e("div",Os,[l(F,{data:ce.value.slice(0,10),size:"small",style:{width:"100%"}},{default:a(()=>[l(v,{label:"用户","min-width":"120"},{default:a(({row:n})=>[d(t(n.user_username||"-"),1)]),_:1}),l(v,{label:"账号","min-width":"150"},{default:a(({row:n})=>[d(t(n.username||"-"),1)]),_:1}),l(v,{label:"来源",width:"100"},{default:a(({row:n})=>[d(t(Q(n.source)),1)]),_:1}),l(v,{label:"类型",width:"90"},{default:a(({row:n})=>[d(t(n.browse_type||"-"),1)]),_:1}),l(v,{label:"进度",width:"100"},{default:a(({row:n})=>[d(t(n.progress_items)+"/"+t(n.progress_attachments),1)]),_:1}),l(v,{label:"耗时",width:"100"},{default:a(({row:n})=>[d(t(n.elapsed_display||"-"),1)]),_:1}),l(v,{label:"状态","min-width":"140"},{default:a(({row:n})=>[d(t(n.detail_status||n.status||"-"),1)]),_:1})]),_:1},8,["data"])]),Z.value===0?(_(),g("div",Xs,"当前无运行任务")):P("",!0)]),_:1}),l(le,{name:"queuing"},{label:a(()=>[e("span",Ys,[s[19]||(s[19]=d(" 排队中 ",-1)),l(f,{size:"small",effect:"light",type:"warning"},{default:a(()=>[d(t(J.value),1)]),_:1})])]),default:a(()=>[e("div",et,[l(F,{data:ve.value.slice(0,10),size:"small",style:{width:"100%"}},{default:a(()=>[l(v,{label:"用户","min-width":"120"},{default:a(({row:n})=>[d(t(n.user_username||"-"),1)]),_:1}),l(v,{label:"账号","min-width":"150"},{default:a(({row:n})=>[d(t(n.username||"-"),1)]),_:1}),l(v,{label:"来源",width:"100"},{default:a(({row:n})=>[d(t(Q(n.source)),1)]),_:1}),l(v,{label:"类型",width:"90"},{default:a(({row:n})=>[d(t(n.browse_type||"-"),1)]),_:1}),l(v,{label:"等待",width:"100"},{default:a(({row:n})=>[d(t(n.elapsed_display||"-"),1)]),_:1}),l(v,{label:"状态","min-width":"160"},{default:a(({row:n})=>[d(t(n.detail_status||n.status||"-"),1)]),_:1})]),_:1},8,["data"])]),J.value===0?(_(),g("div",st,"当前无排队任务")):P("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),l($,{gutter:12},{default:a(()=>[l(C,{xs:24,lg:12},{default:a(()=>[l(S,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",tt,[e("div",lt,[e("div",at,[l(c,null,{default:a(()=>[l(W(Fe))]),_:1})]),e("div",it,[s[20]||(s[20]=e("div",{class:"panel-title"},"邮件报表",-1)),e("div",nt,"成功率 "+t(ke.value)+"%",1)])])]),e("div",ot,[e("div",dt,[e("div",ut,t(i(x.value?.total_sent)),1),s[21]||(s[21]=e("div",{class:"tile-k app-muted"},"总发送",-1))]),e("div",rt,[e("div",ct,t(i(x.value?.total_success)),1),s[22]||(s[22]=e("div",{class:"tile-k app-muted"},"成功",-1))]),e("div",vt,[e("div",_t,t(i(x.value?.total_failed)),1),s[23]||(s[23]=e("div",{class:"tile-k app-muted"},"失败",-1))])]),s[28]||(s[28]=e("div",{class:"divider"},null,-1)),s[29]||(s[29]=e("div",{class:"sub-title"},"类型统计",-1)),e("div",pt,[e("div",ft,[e("div",mt,t(i(x.value?.register_sent)),1),s[24]||(s[24]=e("div",{class:"type-k app-muted"},"注册验证",-1))]),e("div",ht,[e("div",gt,t(i(x.value?.reset_sent)),1),s[25]||(s[25]=e("div",{class:"type-k app-muted"},"密码重置",-1))]),e("div",bt,[e("div",kt,t(i(x.value?.bind_sent)),1),s[26]||(s[26]=e("div",{class:"type-k app-muted"},"邮箱绑定",-1))]),e("div",yt,[e("div",wt,t(i(x.value?.task_complete_sent)),1),s[27]||(s[27]=e("div",{class:"type-k app-muted"},"任务完成",-1))])])]),_:1})]),_:1}),l(C,{xs:24,lg:12},{default:a(()=>[l(S,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",xt,[e("div",St,[e("div",Ct,[l(c,null,{default:a(()=>[l(W($e))]),_:1})]),e("div",Pt,[s[30]||(s[30]=e("div",{class:"panel-title"},"反馈概览",-1)),e("div",Tt,"待处理 "+t(i(A.value?.pending))+" 条",1)])])]),e("div",Rt,[e("div",qt,[e("div",zt,t(i(A.value?.total)),1),s[31]||(s[31]=e("div",{class:"tile-k app-muted"},"总反馈",-1))]),e("div",Mt,[e("div",Wt,t(i(A.value?.pending)),1),s[32]||(s[32]=e("div",{class:"tile-k app-muted"},"待处理",-1))]),e("div",At,[e("div",Bt,t(i(A.value?.replied)),1),s[33]||(s[33]=e("div",{class:"tile-k app-muted"},"已回复",-1))])]),s[34]||(s[34]=e("div",{class:"divider"},null,-1)),s[35]||(s[35]=e("div",{class:"help app-muted"},"提示:用户的反馈需要及时处理,避免影响活跃度与留存。",-1))]),_:1})]),_:1})]),_:1}),l($,{gutter:12},{default:a(()=>[l(C,{xs:24,lg:12},{default:a(()=>[l(S,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",Nt,[e("div",Lt,[e("div",Vt,[l(c,null,{default:a(()=>[l(W(je))]),_:1})]),s[36]||(s[36]=e("div",{class:"head-text"},[e("div",{class:"panel-title"},"系统资源"),e("div",{class:"panel-sub app-muted"},"服务器与容器运行状态")],-1))]),r.value?.uptime?(_(),z(f,{key:0,effect:"light",type:"info"},{default:a(()=>[d("运行 "+t(r.value.uptime),1)]),_:1})):P("",!0)]),e("div",It,[e("div",Ut,[s[37]||(s[37]=e("div",{class:"resource-k app-muted"},"CPU",-1)),l(q,{percentage:Math.round(h(r.value?.cpu_percent)),status:h(r.value?.cpu_percent)>=90?"exception":h(r.value?.cpu_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",Dt,t(Math.round(h(r.value?.cpu_percent)))+"%",1)]),e("div",Et,[s[38]||(s[38]=e("div",{class:"resource-k app-muted"},"内存",-1)),l(q,{percentage:Math.round(h(r.value?.memory_percent)),status:h(r.value?.memory_percent)>=90?"exception":h(r.value?.memory_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",Ft,t(r.value?.memory_used||"-")+" / "+t(r.value?.memory_total||"-")+"("+t(Math.round(h(r.value?.memory_percent)))+"%) ",1)]),e("div",$t,[s[39]||(s[39]=e("div",{class:"resource-k app-muted"},"磁盘",-1)),l(q,{percentage:Math.round(h(r.value?.disk_percent)),status:h(r.value?.disk_percent)>=90?"exception":h(r.value?.disk_percent)>=75?"warning":"success"},null,8,["percentage","status"]),e("div",jt,t(r.value?.disk_used||"-")+" / "+t(r.value?.disk_total||"-")+"("+t(Math.round(h(r.value?.disk_percent)))+"%) ",1)])]),s[46]||(s[46]=e("div",{class:"divider"},null,-1)),s[47]||(s[47]=e("div",{class:"sub-title"},"容器",-1)),l(qe,{border:"",column:2,size:"small"},{default:a(()=>[l(M,{label:"状态"},{default:a(()=>[d(t(R.value?.status||"-"),1)]),_:1}),l(M,{label:"容器名"},{default:a(()=>[d(t(R.value?.container_name||"-"),1)]),_:1}),l(M,{label:"运行时长"},{default:a(()=>[d(t(R.value?.uptime||"-"),1)]),_:1}),l(M,{label:"CPU"},{default:a(()=>[d(t(R.value?.cpu_percent||"-"),1)]),_:1}),l(M,{label:"内存"},{default:a(()=>[d(t(R.value?.memory_usage||"-"),1)]),_:1}),l(M,{label:"内存占比"},{default:a(()=>[d(t(R.value?.memory_percent||"-"),1)]),_:1})]),_:1}),s[48]||(s[48]=e("div",{class:"divider"},null,-1)),e("div",Gt,[e("div",Ht,[e("div",Qt,[s[40]||(s[40]=e("div",{class:"panel-title"},"浏览器池",-1)),e("div",Zt," 活跃(有浏览器)"+t(O.value)+" · 忙碌 "+t(fe.value)+" · 队列 "+t(X.value),1)])]),T.value?.server_time_cst?(_(),z(f,{key:0,effect:"light",type:"info"},{default:a(()=>[d(t(T.value.server_time_cst),1)]),_:1})):P("",!0)]),e("div",Jt,[e("div",Kt,[e("div",Ot,t(_e.value),1),s[41]||(s[41]=e("div",{class:"tile-k app-muted"},"总 Worker",-1))]),e("div",Xt,[e("div",Yt,t(O.value),1),s[42]||(s[42]=e("div",{class:"tile-k app-muted"},"活跃(有浏览器)",-1))]),e("div",el,[e("div",sl,t(pe.value),1),s[43]||(s[43]=e("div",{class:"tile-k app-muted"},"空闲(无任务)",-1))]),e("div",tl,[e("div",ll,t(X.value),1),s[44]||(s[44]=e("div",{class:"tile-k app-muted"},"队列等待",-1))])]),s[49]||(s[49]=e("div",{class:"divider"},null,-1)),e("div",al,[l(F,{data:K.value,size:"small",border:""},{default:a(()=>[l(v,{prop:"worker_id",label:"Worker",width:"90"}),l(v,{label:"状态",width:"90"},{default:a(({row:n})=>[l(f,{type:me(n),effect:"light"},{default:a(()=>[d(t(he(n)),1)]),_:2},1032,["type"])]),_:1}),l(v,{label:"执行",width:"90"},{default:a(({row:n})=>[l(f,{type:ge(n),effect:"light"},{default:a(()=>[d(t(be(n)),1)]),_:2},1032,["type"])]),_:1}),l(v,{label:"任务",width:"120"},{default:a(({row:n})=>[e("span",null,t(i(n?.total_tasks)),1),s[45]||(s[45]=e("span",{class:"app-muted"}," / ",-1)),e("span",{class:ne(i(n?.failed_tasks)?"err":"app-muted")},t(i(n?.failed_tasks)),3)]),_:1}),l(v,{prop:"browser_use_count",label:"复用",width:"90"}),l(v,{prop:"last_active_at",label:"最近活跃","min-width":"160"}),l(v,{prop:"browser_created_at",label:"浏览器创建","min-width":"160"})]),_:1},8,["data"])])]),_:1})]),_:1}),l(C,{xs:24,lg:12},{default:a(()=>[l(S,{shadow:"never",class:"panel","body-style":{padding:"16px"}},{default:a(()=>[e("div",il,[e("div",nl,[e("div",ol,[l(c,null,{default:a(()=>[l(W(Ge))]),_:1})]),s[50]||(s[50]=e("div",{class:"head-text"},[e("div",{class:"panel-title"},"配置概览"),e("div",{class:"panel-sub app-muted"},"定时 / 代理 / 并发")],-1))])]),e("div",dl,[e("div",ul,[s[53]||(s[53]=e("div",{class:"config-k app-muted"},"定时任务",-1)),e("div",rl,[ye.value?(_(),z(f,{key:0,type:"success",effect:"light"},{default:a(()=>[...s[51]||(s[51]=[d("启用",-1)])]),_:1})):(_(),z(f,{key:1,type:"info",effect:"light"},{default:a(()=>[...s[52]||(s[52]=[d("关闭",-1)])]),_:1})),e("span",cl,t(we.value)+" / "+t(xe.value),1)]),e("div",vl,"日期:"+t(Se.value||Y.value||"-"),1)]),e("div",_l,[s[56]||(s[56]=e("div",{class:"config-k app-muted"},"代理",-1)),e("div",pl,[ee.value?(_(),z(f,{key:0,type:"success",effect:"light"},{default:a(()=>[...s[54]||(s[54]=[d("启用",-1)])]),_:1})):(_(),z(f,{key:1,type:"info",effect:"light"},{default:a(()=>[...s[55]||(s[55]=[d("关闭",-1)])]),_:1})),ee.value&&se.value?(_(),g("span",fl,t(se.value),1)):P("",!0)]),e("div",ml,"有效期:"+t(Ce.value||"-")+" 分钟",1)]),e("div",hl,[s[59]||(s[59]=e("div",{class:"config-k app-muted"},"并发",-1)),e("div",gl,[e("span",null,"全局 "+t(te.value||"-"),1),s[57]||(s[57]=e("span",{class:"config-split app-muted"},"/",-1)),e("span",null,"单账号 "+t(Pe.value||"-"),1),s[58]||(s[58]=e("span",{class:"config-split app-muted"},"/",-1)),e("span",null,"截图 "+t(Te.value||"-"),1)])])])]),_:1})]),_:1})]),_:1})])}}},Sl=Me(bl,[["__scopeId","data-v-a37ef846"]]);export{Sl as default}; diff --git a/static/admin/assets/SecurityPage-BkxWxQhW.js b/static/admin/assets/SecurityPage-Czxm2GJx.js similarity index 88% rename from static/admin/assets/SecurityPage-BkxWxQhW.js rename to static/admin/assets/SecurityPage-Czxm2GJx.js index 5dc12fd..54734a4 100644 --- a/static/admin/assets/SecurityPage-BkxWxQhW.js +++ b/static/admin/assets/SecurityPage-Czxm2GJx.js @@ -1,3 +1,3 @@ -import{P as g,_ as He,r as d,c as de,o as Ke,e as p,H as Oe,f as w,g as u,h as r,j as a,w as l,p as s,F as pe,q as Ce,A as y,n as c,I as ae,m as Se,J as ce,K as k}from"./index-Dx-1XhY8.js";async function Je(){const{data:f}=await g.get("/admin/security/dashboard");return f}async function Ge(f){const{data:v}=await g.get("/admin/security/threats",{params:f});return v}async function Qe(){const{data:f}=await g.get("/admin/security/banned-ips");return f}async function We(){const{data:f}=await g.get("/admin/security/banned-users");return f}async function Xe(f){const{data:v}=await g.post("/admin/security/ban-ip",f);return v}async function Ye(f){const{data:v}=await g.post("/admin/security/unban-ip",{ip:f});return v}async function Ze(f){const{data:v}=await g.post("/admin/security/ban-user",f);return v}async function et(f){const{data:v}=await g.post("/admin/security/unban-user",{user_id:f});return v}async function tt(f){const v=encodeURIComponent(String(f||"").trim()),{data:I}=await g.get(`/admin/security/ip-risk/${v}`);return I}async function at(f){const v=encodeURIComponent(String(f||"").trim()),{data:I}=await g.get(`/admin/security/user-risk/${v}`);return I}async function lt(){const{data:f}=await g.post("/admin/security/cleanup",{});return f}const nt={class:"page-stack"},st={class:"app-page-title"},it={class:"toolbar"},ot={class:"stat-value"},ut={class:"stat-label"},rt={class:"filters"},dt={class:"table-wrap"},pt={key:1},ct={key:1},ft={class:"mono ellipsis"},mt={class:"ellipsis"},vt={class:"pagination"},_t={class:"page-hint app-muted"},yt={class:"toolbar"},bt={class:"table-wrap"},gt={class:"table-wrap"},kt={class:"filters"},ht={class:"filters"},wt={class:"risk-head"},It={class:"risk-title"},Vt={key:0},xt={key:1},Ct={class:"toolbar"},St={class:"table-wrap"},Ut={class:"mono ellipsis"},Pt={class:"ellipsis"},Tt={class:"dialog-actions"},fe=20,Bt={__name:"SecurityPage",setup(f){const v=d("threats"),I=d(!1),z=d(null),le=d(!1),E=d([]),A=d(0),S=d(1),$=d(""),R=d(""),D=d(!1),me=d([]),ve=d([]),_e=d("ips"),U=d(!1),N=d(!1),o=d({kind:"ip",ip:"",user_id:"",reason:"",duration_hours:24,permanent:!1}),H=d("ip"),V=d(!1),K=d(""),O=d(""),_=d(null),h=d(""),Ue=["sql_injection","xss","path_traversal","command_injection","ssrf","scanner","bruteforce","csrf","xxe","file_upload"];function ne(n){const e=Number(n);return Number.isFinite(e)?e:0}function F(n){const e=Number(n||0);return e>=80?{label:"高",type:"danger"}:e>=50?{label:"中",type:"warning"}:{label:"低",type:"success"}}function ye(n){const e=String(n||"").trim();return e||"永久"}function be(n){const e=[];return n?.field_name&&e.push(`字段: ${n.field_name}`),n?.rule&&e.push(`规则: ${n.rule}`),n?.matched&&e.push(`匹配: ${n.matched}`),n?.value_preview&&e.push(`值: ${n.value_preview}`),e.length?e.join(" · "):"-"}function J(n){const e=String(n?.request_method||"").trim(),i=String(n?.request_path||"").trim();return`${e} ${i}`.trim()||"-"}const Pe=de(()=>{const n=new Set(Ue),e=z.value?.recent_threat_events||[];for(const i of e){const b=String(i?.threat_type||"").trim();b&&n.add(b)}for(const i of E.value||[]){const b=String(i?.threat_type||"").trim();b&&n.add(b)}return Array.from(n).sort((i,b)=>i.localeCompare(b)).map(i=>({label:i,value:i}))}),Te=de(()=>{const n=z.value||{};return[{key:"threat_events_24h",label:"最近24小时威胁事件",value:ne(n.threat_events_24h)},{key:"banned_ip_count",label:"当前封禁IP数",value:ne(n.banned_ip_count)},{key:"banned_user_count",label:"当前封禁用户数",value:ne(n.banned_user_count)}]}),Be=de(()=>Math.max(1,Math.ceil((A.value||0)/fe)));async function j(){I.value=!0;try{z.value=await Je()}catch{z.value=null}finally{I.value=!1}}async function G(){le.value=!0;try{const n={page:S.value,per_page:fe};$.value&&(n.event_type=$.value),R.value&&(n.severity=R.value);const e=await Ge(n);E.value=e?.items||[],A.value=e?.total||0}catch{E.value=[],A.value=0}finally{le.value=!1}}async function P(){if(!D.value){D.value=!0;try{const[n,e]=await Promise.allSettled([Qe(),We()]);me.value=n.status==="fulfilled"?n.value?.items||[]:[],ve.value=e.status==="fulfilled"?e.value?.items||[]:[]}finally{D.value=!1}}}async function se(){await Promise.allSettled([j(),G(),P()])}function $e(){S.value=1,G()}function Re(){$.value="",R.value="",S.value=1,G()}function ge(){o.value={kind:"ip",ip:"",user_id:"",reason:"",duration_hours:24,permanent:!1}}function Q(n="ip",e={}){ge(),o.value.kind=n==="user"?"user":"ip",o.value.kind==="ip"?o.value.ip=String(e.ip||"").trim():o.value.user_id=String(e.user_id||"").trim(),e.reason&&(o.value.reason=String(e.reason||"").trim()),U.value=!0}async function De(){const n=o.value.kind,e=String(o.value.reason||"").trim(),i=!!o.value.permanent,b=Number(o.value.duration_hours||24);if(!e){k.error("原因不能为空");return}if(n==="ip"){const X=String(o.value.ip||"").trim();if(!X){k.error("IP不能为空");return}N.value=!0;try{await Xe({ip:X,reason:e,duration_hours:b,permanent:i}),k.success("IP已封禁"),U.value=!1,await Promise.allSettled([j(),P()])}catch{}finally{N.value=!1}return}const q=String(o.value.user_id||"").trim(),W=Number.parseInt(q,10);if(!Number.isFinite(W)){k.error("用户ID无效");return}N.value=!0;try{await Ze({user_id:W,reason:e,duration_hours:b,permanent:i}),k.success("用户已封禁"),U.value=!1,await Promise.allSettled([j(),P()])}catch{}finally{N.value=!1}}async function ke(n){const e=String(n||"").trim();if(e){try{await ce.confirm(`确定解除对 IP ${e} 的封禁吗?`,"解除封禁",{confirmButtonText:"解除",cancelButtonText:"取消",type:"warning"})}catch{return}try{await Ye(e),k.success("已解除IP封禁"),await Promise.allSettled([j(),P()])}catch{}}}async function he(n){const e=Number.parseInt(String(n||"").trim(),10);if(Number.isFinite(e)){try{await ce.confirm(`确定解除对 用户ID ${e} 的封禁吗?`,"解除封禁",{confirmButtonText:"解除",cancelButtonText:"取消",type:"warning"})}catch{return}try{await et(e),k.success("已解除用户封禁"),await Promise.allSettled([j(),P()])}catch{}}}function we(n){const e=String(n||"").trim();e&&(v.value="risk",H.value="ip",K.value=e,ie())}function Ie(n){const e=String(n||"").trim();e&&(v.value="risk",H.value="user",O.value=e,oe())}async function ie(){const n=String(K.value||"").trim();if(!n){k.error("请输入IP");return}V.value=!0;try{_.value=await tt(n),h.value="ip"}catch{_.value=null,h.value=""}finally{V.value=!1}}async function oe(){const n=String(O.value||"").trim(),e=Number.parseInt(n,10);if(!Number.isFinite(e)){k.error("请输入有效的用户ID");return}V.value=!0;try{_.value=await at(e),h.value="user"}catch{_.value=null,h.value=""}finally{V.value=!1}}function Ne(){!_.value||!h.value||(h.value==="ip"?Q("ip",{ip:_.value?.ip,reason:"风险查询手动封禁"}):Q("user",{user_id:_.value?.user_id,reason:"风险查询手动封禁"}))}async function Fe(){!_.value||!h.value||(h.value==="ip"?(await ke(_.value?.ip),await ie()):(await he(_.value?.user_id),await oe()))}const ue=d(!1);async function je(){try{await ce.confirm(`确定清理过期封禁记录,并衰减风险分吗? +import{a as g,_ as Ke,r as d,c as de,o as Oe,f as p,I as He,g as w,h as u,j as r,m as a,w as l,q as s,F as pe,v as Ce,B as y,p as c,J as ae,n as Se,K as ce,L as k}from"./index-B9zsNTKQ.js";async function Je(){const{data:f}=await g.get("/admin/security/dashboard");return f}async function Ge(f){const{data:v}=await g.get("/admin/security/threats",{params:f});return v}async function Qe(){const{data:f}=await g.get("/admin/security/banned-ips");return f}async function We(){const{data:f}=await g.get("/admin/security/banned-users");return f}async function Xe(f){const{data:v}=await g.post("/admin/security/ban-ip",f);return v}async function Ye(f){const{data:v}=await g.post("/admin/security/unban-ip",{ip:f});return v}async function Ze(f){const{data:v}=await g.post("/admin/security/ban-user",f);return v}async function et(f){const{data:v}=await g.post("/admin/security/unban-user",{user_id:f});return v}async function tt(f){const v=encodeURIComponent(String(f||"").trim()),{data:I}=await g.get(`/admin/security/ip-risk/${v}`);return I}async function at(f){const v=encodeURIComponent(String(f||"").trim()),{data:I}=await g.get(`/admin/security/user-risk/${v}`);return I}async function lt(){const{data:f}=await g.post("/admin/security/cleanup",{});return f}const nt={class:"page-stack"},st={class:"app-page-title"},it={class:"toolbar"},ot={class:"stat-value"},ut={class:"stat-label"},rt={class:"filters"},dt={class:"table-wrap"},pt={key:1},ct={key:1},ft={class:"mono ellipsis"},mt={class:"ellipsis"},vt={class:"pagination"},_t={class:"page-hint app-muted"},yt={class:"toolbar"},bt={class:"table-wrap"},gt={class:"table-wrap"},kt={class:"filters"},ht={class:"filters"},wt={class:"risk-head"},It={class:"risk-title"},Vt={key:0},xt={key:1},Ct={class:"toolbar"},St={class:"table-wrap"},Ut={class:"mono ellipsis"},Pt={class:"ellipsis"},Tt={class:"dialog-actions"},fe=20,Bt={__name:"SecurityPage",setup(f){const v=d("threats"),I=d(!1),z=d(null),le=d(!1),E=d([]),A=d(0),S=d(1),$=d(""),R=d(""),D=d(!1),me=d([]),ve=d([]),_e=d("ips"),U=d(!1),N=d(!1),o=d({kind:"ip",ip:"",user_id:"",reason:"",duration_hours:24,permanent:!1}),K=d("ip"),V=d(!1),O=d(""),H=d(""),_=d(null),h=d(""),Ue=["sql_injection","xss","path_traversal","command_injection","ssrf","scanner","bruteforce","csrf","xxe","file_upload"];function ne(n){const e=Number(n);return Number.isFinite(e)?e:0}function F(n){const e=Number(n||0);return e>=80?{label:"高",type:"danger"}:e>=50?{label:"中",type:"warning"}:{label:"低",type:"success"}}function ye(n){const e=String(n||"").trim();return e||"永久"}function be(n){const e=[];return n?.field_name&&e.push(`字段: ${n.field_name}`),n?.rule&&e.push(`规则: ${n.rule}`),n?.matched&&e.push(`匹配: ${n.matched}`),n?.value_preview&&e.push(`值: ${n.value_preview}`),e.length?e.join(" · "):"-"}function J(n){const e=String(n?.request_method||"").trim(),i=String(n?.request_path||"").trim();return`${e} ${i}`.trim()||"-"}const Pe=de(()=>{const n=new Set(Ue),e=z.value?.recent_threat_events||[];for(const i of e){const b=String(i?.threat_type||"").trim();b&&n.add(b)}for(const i of E.value||[]){const b=String(i?.threat_type||"").trim();b&&n.add(b)}return Array.from(n).sort((i,b)=>i.localeCompare(b)).map(i=>({label:i,value:i}))}),Te=de(()=>{const n=z.value||{};return[{key:"threat_events_24h",label:"最近24小时威胁事件",value:ne(n.threat_events_24h)},{key:"banned_ip_count",label:"当前封禁IP数",value:ne(n.banned_ip_count)},{key:"banned_user_count",label:"当前封禁用户数",value:ne(n.banned_user_count)}]}),Be=de(()=>Math.max(1,Math.ceil((A.value||0)/fe)));async function j(){I.value=!0;try{z.value=await Je()}catch{z.value=null}finally{I.value=!1}}async function G(){le.value=!0;try{const n={page:S.value,per_page:fe};$.value&&(n.event_type=$.value),R.value&&(n.severity=R.value);const e=await Ge(n);E.value=e?.items||[],A.value=e?.total||0}catch{E.value=[],A.value=0}finally{le.value=!1}}async function P(){if(!D.value){D.value=!0;try{const[n,e]=await Promise.allSettled([Qe(),We()]);me.value=n.status==="fulfilled"?n.value?.items||[]:[],ve.value=e.status==="fulfilled"?e.value?.items||[]:[]}finally{D.value=!1}}}async function se(){await Promise.allSettled([j(),G(),P()])}function $e(){S.value=1,G()}function Re(){$.value="",R.value="",S.value=1,G()}function ge(){o.value={kind:"ip",ip:"",user_id:"",reason:"",duration_hours:24,permanent:!1}}function Q(n="ip",e={}){ge(),o.value.kind=n==="user"?"user":"ip",o.value.kind==="ip"?o.value.ip=String(e.ip||"").trim():o.value.user_id=String(e.user_id||"").trim(),e.reason&&(o.value.reason=String(e.reason||"").trim()),U.value=!0}async function De(){const n=o.value.kind,e=String(o.value.reason||"").trim(),i=!!o.value.permanent,b=Number(o.value.duration_hours||24);if(!e){k.error("原因不能为空");return}if(n==="ip"){const X=String(o.value.ip||"").trim();if(!X){k.error("IP不能为空");return}N.value=!0;try{await Xe({ip:X,reason:e,duration_hours:b,permanent:i}),k.success("IP已封禁"),U.value=!1,await Promise.allSettled([j(),P()])}catch{}finally{N.value=!1}return}const L=String(o.value.user_id||"").trim(),W=Number.parseInt(L,10);if(!Number.isFinite(W)){k.error("用户ID无效");return}N.value=!0;try{await Ze({user_id:W,reason:e,duration_hours:b,permanent:i}),k.success("用户已封禁"),U.value=!1,await Promise.allSettled([j(),P()])}catch{}finally{N.value=!1}}async function ke(n){const e=String(n||"").trim();if(e){try{await ce.confirm(`确定解除对 IP ${e} 的封禁吗?`,"解除封禁",{confirmButtonText:"解除",cancelButtonText:"取消",type:"warning"})}catch{return}try{await Ye(e),k.success("已解除IP封禁"),await Promise.allSettled([j(),P()])}catch{}}}async function he(n){const e=Number.parseInt(String(n||"").trim(),10);if(Number.isFinite(e)){try{await ce.confirm(`确定解除对 用户ID ${e} 的封禁吗?`,"解除封禁",{confirmButtonText:"解除",cancelButtonText:"取消",type:"warning"})}catch{return}try{await et(e),k.success("已解除用户封禁"),await Promise.allSettled([j(),P()])}catch{}}}function we(n){const e=String(n||"").trim();e&&(v.value="risk",K.value="ip",O.value=e,ie())}function Ie(n){const e=String(n||"").trim();e&&(v.value="risk",K.value="user",H.value=e,oe())}async function ie(){const n=String(O.value||"").trim();if(!n){k.error("请输入IP");return}V.value=!0;try{_.value=await tt(n),h.value="ip"}catch{_.value=null,h.value=""}finally{V.value=!1}}async function oe(){const n=String(H.value||"").trim(),e=Number.parseInt(n,10);if(!Number.isFinite(e)){k.error("请输入有效的用户ID");return}V.value=!0;try{_.value=await at(e),h.value="user"}catch{_.value=null,h.value=""}finally{V.value=!1}}function Ne(){!_.value||!h.value||(h.value==="ip"?Q("ip",{ip:_.value?.ip,reason:"风险查询手动封禁"}):Q("user",{user_id:_.value?.user_id,reason:"风险查询手动封禁"}))}async function Fe(){!_.value||!h.value||(h.value==="ip"?(await ke(_.value?.ip),await ie()):(await he(_.value?.user_id),await oe()))}const ue=d(!1);async function je(){try{await ce.confirm(`确定清理过期封禁记录,并衰减风险分吗? -该操作不会影响仍在有效期内的封禁。`,"清理过期记录",{confirmButtonText:"清理",cancelButtonText:"取消",type:"warning"})}catch{return}ue.value=!0;try{await lt(),k.success("清理完成"),await se()}catch{}finally{ue.value=!1}}return Ke(async()=>{await se()}),(n,e)=>{const i=p("el-button"),b=p("el-skeleton"),q=p("el-card"),W=p("el-col"),X=p("el-row"),T=p("el-option"),Ve=p("el-select"),m=p("el-table-column"),x=p("el-tag"),Y=p("el-link"),Z=p("el-tooltip"),ee=p("el-table"),qe=p("el-pagination"),C=p("el-tab-pane"),re=p("el-tabs"),L=p("el-input"),xe=p("el-radio-button"),Le=p("el-radio-group"),B=p("el-form-item"),Me=p("el-switch"),ze=p("el-input-number"),Ee=p("el-form"),Ae=p("el-dialog"),te=Oe("loading");return u(),w("div",nt,[r("div",st,[e[21]||(e[21]=r("h2",null,"安全防护",-1)),r("div",it,[a(i,{onClick:se},{default:l(()=>[...e[18]||(e[18]=[s("刷新",-1)])]),_:1}),a(i,{type:"warning",plain:"",loading:ue.value,onClick:je},{default:l(()=>[...e[19]||(e[19]=[s("清理过期记录",-1)])]),_:1},8,["loading"]),a(i,{type:"primary",onClick:e[0]||(e[0]=t=>Q())},{default:l(()=>[...e[20]||(e[20]=[s("手动封禁",-1)])]),_:1})])]),a(X,{gutter:12,class:"stats-row"},{default:l(()=>[(u(!0),w(pe,null,Ce(Te.value,t=>(u(),y(W,{key:t.key,xs:24,sm:8,md:8,lg:8,xl:8},{default:l(()=>[a(q,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:l(()=>[r("div",ot,[I.value?(u(),y(b,{key:0,rows:1,animated:""})):(u(),w(pe,{key:1},[s(c(t.value),1)],64))]),r("div",ut,c(t.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),a(q,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[a(re,{modelValue:v.value,"onUpdate:modelValue":e[9]||(e[9]=t=>v.value=t)},{default:l(()=>[a(C,{label:"威胁事件",name:"threats"},{default:l(()=>[r("div",rt,[a(Ve,{modelValue:$.value,"onUpdate:modelValue":e[1]||(e[1]=t=>$.value=t),placeholder:"类型",style:{width:"220px"},filterable:"",clearable:"","allow-create":"","default-first-option":""},{default:l(()=>[a(T,{label:"全部",value:""}),(u(!0),w(pe,null,Ce(Pe.value,t=>(u(),y(T,{key:t.value,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),a(Ve,{modelValue:R.value,"onUpdate:modelValue":e[2]||(e[2]=t=>R.value=t),placeholder:"严重程度",style:{width:"200px"},clearable:""},{default:l(()=>[a(T,{label:"全部",value:""}),a(T,{label:"高风险(>=80)",value:"high"}),a(T,{label:"中风险(50-79)",value:"medium"}),a(T,{label:"低风险(<50)",value:"low"})]),_:1},8,["modelValue"]),a(i,{type:"primary",onClick:$e},{default:l(()=>[...e[22]||(e[22]=[s("筛选",-1)])]),_:1}),a(i,{onClick:Re},{default:l(()=>[...e[23]||(e[23]=[s("重置",-1)])]),_:1})]),r("div",dt,[ae((u(),y(ee,{data:E.value,style:{width:"100%"}},{default:l(()=>[a(m,{prop:"created_at",label:"时间",width:"180"}),a(m,{label:"类型",width:"170"},{default:l(({row:t})=>[a(x,{effect:"light",type:"info"},{default:l(()=>[s(c(t.threat_type||"unknown"),1)]),_:2},1024)]),_:1}),a(m,{label:"严重程度",width:"120"},{default:l(({row:t})=>[a(x,{type:F(t.score).type,effect:"light"},{default:l(()=>[s(c(F(t.score).label)+" ("+c(t.score??0)+") ",1)]),_:2},1032,["type"])]),_:1}),a(m,{label:"IP",width:"150"},{default:l(({row:t})=>[t.ip?(u(),y(Y,{key:0,type:"primary",underline:!1,onClick:M=>we(t.ip)},{default:l(()=>[s(c(t.ip),1)]),_:2},1032,["onClick"])):(u(),w("span",pt,"-"))]),_:1}),a(m,{label:"用户",width:"120"},{default:l(({row:t})=>[t.user_id!==null&&t.user_id!==void 0?(u(),y(Y,{key:0,type:"primary",underline:!1,onClick:M=>Ie(t.user_id)},{default:l(()=>[s(c(t.user_id),1)]),_:2},1032,["onClick"])):(u(),w("span",ct,"-"))]),_:1}),a(m,{label:"操作路径","min-width":"220"},{default:l(({row:t})=>[a(Z,{content:J(t),placement:"top","show-after":300},{default:l(()=>[r("span",ft,c(J(t)),1)]),_:2},1032,["content"])]),_:1}),a(m,{label:"Payload预览","min-width":"240"},{default:l(({row:t})=>[a(Z,{content:be(t),placement:"top","show-after":300},{default:l(()=>[r("span",mt,c(t.value_preview||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[te,le.value]])]),r("div",vt,[a(qe,{"current-page":S.value,"onUpdate:currentPage":e[3]||(e[3]=t=>S.value=t),"page-size":fe,total:A.value,layout:"prev, pager, next, jumper, ->, total",onCurrentChange:G},null,8,["current-page","total"]),r("div",_t,"第 "+c(S.value)+" / "+c(Be.value)+" 页",1)])]),_:1}),a(C,{label:"封禁管理",name:"bans"},{default:l(()=>[r("div",yt,[a(i,{onClick:P},{default:l(()=>[...e[24]||(e[24]=[s("刷新封禁列表",-1)])]),_:1}),a(i,{type:"primary",onClick:e[4]||(e[4]=t=>Q())},{default:l(()=>[...e[25]||(e[25]=[s("手动封禁",-1)])]),_:1})]),a(re,{modelValue:_e.value,"onUpdate:modelValue":e[5]||(e[5]=t=>_e.value=t),class:"inner-tabs"},{default:l(()=>[a(C,{label:"IP黑名单",name:"ips"},{default:l(()=>[r("div",bt,[ae((u(),y(ee,{data:me.value,style:{width:"100%"}},{default:l(()=>[a(m,{label:"IP",width:"180"},{default:l(({row:t})=>[a(Y,{type:"primary",underline:!1,onClick:M=>we(t.ip)},{default:l(()=>[s(c(t.ip||"-"),1)]),_:2},1032,["onClick"])]),_:1}),a(m,{prop:"reason",label:"原因","min-width":"260"}),a(m,{label:"过期时间",width:"190"},{default:l(({row:t})=>[s(c(ye(t.expires_at)),1)]),_:1}),a(m,{label:"操作",width:"120",fixed:"right"},{default:l(({row:t})=>[a(i,{size:"small",type:"danger",plain:"",onClick:M=>ke(t.ip)},{default:l(()=>[...e[26]||(e[26]=[s("解除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[te,D.value]])])]),_:1}),a(C,{label:"用户黑名单",name:"users"},{default:l(()=>[r("div",gt,[ae((u(),y(ee,{data:ve.value,style:{width:"100%"}},{default:l(()=>[a(m,{label:"用户ID",width:"180"},{default:l(({row:t})=>[a(Y,{type:"primary",underline:!1,onClick:M=>Ie(t.user_id)},{default:l(()=>[s(c(t.user_id??"-"),1)]),_:2},1032,["onClick"])]),_:1}),a(m,{prop:"reason",label:"原因","min-width":"260"}),a(m,{label:"过期时间",width:"190"},{default:l(({row:t})=>[s(c(ye(t.expires_at)),1)]),_:1}),a(m,{label:"操作",width:"120",fixed:"right"},{default:l(({row:t})=>[a(i,{size:"small",type:"danger",plain:"",onClick:M=>he(t.user_id)},{default:l(()=>[...e[27]||(e[27]=[s("解除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[te,D.value]])])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(C,{label:"风险查询",name:"risk"},{default:l(()=>[a(re,{modelValue:H.value,"onUpdate:modelValue":e[8]||(e[8]=t=>H.value=t),class:"inner-tabs"},{default:l(()=>[a(C,{label:"IP查询",name:"ip"},{default:l(()=>[r("div",kt,[a(L,{modelValue:K.value,"onUpdate:modelValue":e[6]||(e[6]=t=>K.value=t),placeholder:"输入IP,如 1.2.3.4",style:{width:"260px"},clearable:""},null,8,["modelValue"]),a(i,{type:"primary",loading:V.value,onClick:ie},{default:l(()=>[...e[28]||(e[28]=[s("查询",-1)])]),_:1},8,["loading"])])]),_:1}),a(C,{label:"用户查询",name:"user"},{default:l(()=>[r("div",ht,[a(L,{modelValue:O.value,"onUpdate:modelValue":e[7]||(e[7]=t=>O.value=t),placeholder:"输入用户ID,如 123",style:{width:"260px"},clearable:""},null,8,["modelValue"]),a(i,{type:"primary",loading:V.value,onClick:oe},{default:l(()=>[...e[29]||(e[29]=[s("查询",-1)])]),_:1},8,["loading"])])]),_:1})]),_:1},8,["modelValue"]),_.value?(u(),y(q,{key:0,shadow:"never","body-style":{padding:"16px"},class:"sub-card"},{default:l(()=>[r("div",wt,[r("div",It,[h.value==="ip"?(u(),w("strong",Vt,"IP: "+c(_.value.ip),1)):(u(),w("strong",xt,"用户ID: "+c(_.value.user_id),1)),e[32]||(e[32]=r("span",{class:"app-muted"},"风险分",-1)),a(x,{type:F(_.value.risk_score).type,effect:"light"},{default:l(()=>[s(c(_.value.risk_score??0),1)]),_:1},8,["type"]),_.value.is_banned?(u(),y(x,{key:2,type:"danger",effect:"light"},{default:l(()=>[...e[30]||(e[30]=[s("已封禁",-1)])]),_:1})):(u(),y(x,{key:3,type:"success",effect:"light"},{default:l(()=>[...e[31]||(e[31]=[s("未封禁",-1)])]),_:1}))]),r("div",Ct,[_.value.is_banned?(u(),y(i,{key:1,type:"danger",plain:"",onClick:Fe},{default:l(()=>[...e[34]||(e[34]=[s("解除封禁",-1)])]),_:1})):(u(),y(i,{key:0,type:"primary",plain:"",onClick:Ne},{default:l(()=>[...e[33]||(e[33]=[s("封禁",-1)])]),_:1}))])]),r("div",St,[ae((u(),y(ee,{data:_.value.threat_history||[],style:{width:"100%"}},{default:l(()=>[a(m,{prop:"created_at",label:"时间",width:"180"}),a(m,{label:"类型",width:"170"},{default:l(({row:t})=>[a(x,{effect:"light",type:"info"},{default:l(()=>[s(c(t.threat_type||"unknown"),1)]),_:2},1024)]),_:1}),a(m,{label:"严重程度",width:"120"},{default:l(({row:t})=>[a(x,{type:F(t.score).type,effect:"light"},{default:l(()=>[s(c(F(t.score).label)+" ("+c(t.score??0)+") ",1)]),_:2},1032,["type"])]),_:1}),a(m,{label:"操作路径","min-width":"220"},{default:l(({row:t})=>[a(Z,{content:J(t),placement:"top","show-after":300},{default:l(()=>[r("span",Ut,c(J(t)),1)]),_:2},1032,["content"])]),_:1}),a(m,{label:"Payload预览","min-width":"240"},{default:l(({row:t})=>[a(Z,{content:be(t),placement:"top","show-after":300},{default:l(()=>[r("span",Pt,c(t.value_preview||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[te,V.value]])])]),_:1})):Se("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(Ae,{modelValue:U.value,"onUpdate:modelValue":e[17]||(e[17]=t=>U.value=t),title:"手动封禁",width:"min(520px, 92vw)",onClosed:ge},{footer:l(()=>[r("div",Tt,[e[39]||(e[39]=r("div",{class:"spacer"},null,-1)),a(i,{onClick:e[16]||(e[16]=t=>U.value=!1)},{default:l(()=>[...e[37]||(e[37]=[s("取消",-1)])]),_:1}),a(i,{type:"primary",loading:N.value,onClick:De},{default:l(()=>[...e[38]||(e[38]=[s("确认封禁",-1)])]),_:1},8,["loading"])])]),default:l(()=>[a(Ee,{"label-width":"120px"},{default:l(()=>[a(B,{label:"类型"},{default:l(()=>[a(Le,{modelValue:o.value.kind,"onUpdate:modelValue":e[10]||(e[10]=t=>o.value.kind=t)},{default:l(()=>[a(xe,{label:"ip"},{default:l(()=>[...e[35]||(e[35]=[s("IP",-1)])]),_:1}),a(xe,{label:"user"},{default:l(()=>[...e[36]||(e[36]=[s("用户",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.value.kind==="ip"?(u(),y(B,{key:0,label:"IP"},{default:l(()=>[a(L,{modelValue:o.value.ip,"onUpdate:modelValue":e[11]||(e[11]=t=>o.value.ip=t),placeholder:"例如 1.2.3.4"},null,8,["modelValue"])]),_:1})):(u(),y(B,{key:1,label:"用户ID"},{default:l(()=>[a(L,{modelValue:o.value.user_id,"onUpdate:modelValue":e[12]||(e[12]=t=>o.value.user_id=t),placeholder:"例如 123"},null,8,["modelValue"])]),_:1})),a(B,{label:"原因"},{default:l(()=>[a(L,{modelValue:o.value.reason,"onUpdate:modelValue":e[13]||(e[13]=t=>o.value.reason=t),type:"textarea",rows:3,placeholder:"请输入封禁原因"},null,8,["modelValue"])]),_:1}),a(B,{label:"永久封禁"},{default:l(()=>[a(Me,{modelValue:o.value.permanent,"onUpdate:modelValue":e[14]||(e[14]=t=>o.value.permanent=t)},null,8,["modelValue"])]),_:1}),o.value.permanent?Se("",!0):(u(),y(B,{key:2,label:"持续(小时)"},{default:l(()=>[a(ze,{modelValue:o.value.duration_hours,"onUpdate:modelValue":e[15]||(e[15]=t=>o.value.duration_hours=t),min:1,max:8760},null,8,["modelValue"])]),_:1}))]),_:1})]),_:1},8,["modelValue"])])}}},Rt=He(Bt,[["__scopeId","data-v-ea9240bd"]]);export{Rt as default}; +该操作不会影响仍在有效期内的封禁。`,"清理过期记录",{confirmButtonText:"清理",cancelButtonText:"取消",type:"warning"})}catch{return}ue.value=!0;try{await lt(),k.success("清理完成"),await se()}catch{}finally{ue.value=!1}}return Oe(async()=>{await se()}),(n,e)=>{const i=p("el-button"),b=p("el-skeleton"),L=p("el-card"),W=p("el-col"),X=p("el-row"),T=p("el-option"),Ve=p("el-select"),m=p("el-table-column"),x=p("el-tag"),Y=p("el-link"),Z=p("el-tooltip"),ee=p("el-table"),Le=p("el-pagination"),C=p("el-tab-pane"),re=p("el-tabs"),q=p("el-input"),xe=p("el-radio-button"),qe=p("el-radio-group"),B=p("el-form-item"),Me=p("el-switch"),ze=p("el-input-number"),Ee=p("el-form"),Ae=p("el-dialog"),te=He("loading");return u(),w("div",nt,[r("div",st,[e[21]||(e[21]=r("h2",null,"安全防护",-1)),r("div",it,[a(i,{onClick:se},{default:l(()=>[...e[18]||(e[18]=[s("刷新",-1)])]),_:1}),a(i,{type:"warning",plain:"",loading:ue.value,onClick:je},{default:l(()=>[...e[19]||(e[19]=[s("清理过期记录",-1)])]),_:1},8,["loading"]),a(i,{type:"primary",onClick:e[0]||(e[0]=t=>Q())},{default:l(()=>[...e[20]||(e[20]=[s("手动封禁",-1)])]),_:1})])]),a(X,{gutter:12,class:"stats-row"},{default:l(()=>[(u(!0),w(pe,null,Ce(Te.value,t=>(u(),y(W,{key:t.key,xs:24,sm:8,md:8,lg:8,xl:8},{default:l(()=>[a(L,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:l(()=>[r("div",ot,[I.value?(u(),y(b,{key:0,rows:1,animated:""})):(u(),w(pe,{key:1},[s(c(t.value),1)],64))]),r("div",ut,c(t.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),a(L,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[a(re,{modelValue:v.value,"onUpdate:modelValue":e[9]||(e[9]=t=>v.value=t)},{default:l(()=>[a(C,{label:"威胁事件",name:"threats"},{default:l(()=>[r("div",rt,[a(Ve,{modelValue:$.value,"onUpdate:modelValue":e[1]||(e[1]=t=>$.value=t),placeholder:"类型",style:{width:"220px"},filterable:"",clearable:"","allow-create":"","default-first-option":""},{default:l(()=>[a(T,{label:"全部",value:""}),(u(!0),w(pe,null,Ce(Pe.value,t=>(u(),y(T,{key:t.value,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),a(Ve,{modelValue:R.value,"onUpdate:modelValue":e[2]||(e[2]=t=>R.value=t),placeholder:"严重程度",style:{width:"200px"},clearable:""},{default:l(()=>[a(T,{label:"全部",value:""}),a(T,{label:"高风险(>=80)",value:"high"}),a(T,{label:"中风险(50-79)",value:"medium"}),a(T,{label:"低风险(<50)",value:"low"})]),_:1},8,["modelValue"]),a(i,{type:"primary",onClick:$e},{default:l(()=>[...e[22]||(e[22]=[s("筛选",-1)])]),_:1}),a(i,{onClick:Re},{default:l(()=>[...e[23]||(e[23]=[s("重置",-1)])]),_:1})]),r("div",dt,[ae((u(),y(ee,{data:E.value,style:{width:"100%"}},{default:l(()=>[a(m,{prop:"created_at",label:"时间",width:"180"}),a(m,{label:"类型",width:"170"},{default:l(({row:t})=>[a(x,{effect:"light",type:"info"},{default:l(()=>[s(c(t.threat_type||"unknown"),1)]),_:2},1024)]),_:1}),a(m,{label:"严重程度",width:"120"},{default:l(({row:t})=>[a(x,{type:F(t.score).type,effect:"light"},{default:l(()=>[s(c(F(t.score).label)+" ("+c(t.score??0)+") ",1)]),_:2},1032,["type"])]),_:1}),a(m,{label:"IP",width:"150"},{default:l(({row:t})=>[t.ip?(u(),y(Y,{key:0,type:"primary",underline:!1,onClick:M=>we(t.ip)},{default:l(()=>[s(c(t.ip),1)]),_:2},1032,["onClick"])):(u(),w("span",pt,"-"))]),_:1}),a(m,{label:"用户",width:"120"},{default:l(({row:t})=>[t.user_id!==null&&t.user_id!==void 0?(u(),y(Y,{key:0,type:"primary",underline:!1,onClick:M=>Ie(t.user_id)},{default:l(()=>[s(c(t.user_id),1)]),_:2},1032,["onClick"])):(u(),w("span",ct,"-"))]),_:1}),a(m,{label:"操作路径","min-width":"220"},{default:l(({row:t})=>[a(Z,{content:J(t),placement:"top","show-after":300},{default:l(()=>[r("span",ft,c(J(t)),1)]),_:2},1032,["content"])]),_:1}),a(m,{label:"Payload预览","min-width":"240"},{default:l(({row:t})=>[a(Z,{content:be(t),placement:"top","show-after":300},{default:l(()=>[r("span",mt,c(t.value_preview||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[te,le.value]])]),r("div",vt,[a(Le,{"current-page":S.value,"onUpdate:currentPage":e[3]||(e[3]=t=>S.value=t),"page-size":fe,total:A.value,layout:"prev, pager, next, jumper, ->, total",onCurrentChange:G},null,8,["current-page","total"]),r("div",_t,"第 "+c(S.value)+" / "+c(Be.value)+" 页",1)])]),_:1}),a(C,{label:"封禁管理",name:"bans"},{default:l(()=>[r("div",yt,[a(i,{onClick:P},{default:l(()=>[...e[24]||(e[24]=[s("刷新封禁列表",-1)])]),_:1}),a(i,{type:"primary",onClick:e[4]||(e[4]=t=>Q())},{default:l(()=>[...e[25]||(e[25]=[s("手动封禁",-1)])]),_:1})]),a(re,{modelValue:_e.value,"onUpdate:modelValue":e[5]||(e[5]=t=>_e.value=t),class:"inner-tabs"},{default:l(()=>[a(C,{label:"IP黑名单",name:"ips"},{default:l(()=>[r("div",bt,[ae((u(),y(ee,{data:me.value,style:{width:"100%"}},{default:l(()=>[a(m,{label:"IP",width:"180"},{default:l(({row:t})=>[a(Y,{type:"primary",underline:!1,onClick:M=>we(t.ip)},{default:l(()=>[s(c(t.ip||"-"),1)]),_:2},1032,["onClick"])]),_:1}),a(m,{prop:"reason",label:"原因","min-width":"260"}),a(m,{label:"过期时间",width:"190"},{default:l(({row:t})=>[s(c(ye(t.expires_at)),1)]),_:1}),a(m,{label:"操作",width:"120",fixed:"right"},{default:l(({row:t})=>[a(i,{size:"small",type:"danger",plain:"",onClick:M=>ke(t.ip)},{default:l(()=>[...e[26]||(e[26]=[s("解除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[te,D.value]])])]),_:1}),a(C,{label:"用户黑名单",name:"users"},{default:l(()=>[r("div",gt,[ae((u(),y(ee,{data:ve.value,style:{width:"100%"}},{default:l(()=>[a(m,{label:"用户ID",width:"180"},{default:l(({row:t})=>[a(Y,{type:"primary",underline:!1,onClick:M=>Ie(t.user_id)},{default:l(()=>[s(c(t.user_id??"-"),1)]),_:2},1032,["onClick"])]),_:1}),a(m,{prop:"reason",label:"原因","min-width":"260"}),a(m,{label:"过期时间",width:"190"},{default:l(({row:t})=>[s(c(ye(t.expires_at)),1)]),_:1}),a(m,{label:"操作",width:"120",fixed:"right"},{default:l(({row:t})=>[a(i,{size:"small",type:"danger",plain:"",onClick:M=>he(t.user_id)},{default:l(()=>[...e[27]||(e[27]=[s("解除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[te,D.value]])])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(C,{label:"风险查询",name:"risk"},{default:l(()=>[a(re,{modelValue:K.value,"onUpdate:modelValue":e[8]||(e[8]=t=>K.value=t),class:"inner-tabs"},{default:l(()=>[a(C,{label:"IP查询",name:"ip"},{default:l(()=>[r("div",kt,[a(q,{modelValue:O.value,"onUpdate:modelValue":e[6]||(e[6]=t=>O.value=t),placeholder:"输入IP,如 1.2.3.4",style:{width:"260px"},clearable:""},null,8,["modelValue"]),a(i,{type:"primary",loading:V.value,onClick:ie},{default:l(()=>[...e[28]||(e[28]=[s("查询",-1)])]),_:1},8,["loading"])])]),_:1}),a(C,{label:"用户查询",name:"user"},{default:l(()=>[r("div",ht,[a(q,{modelValue:H.value,"onUpdate:modelValue":e[7]||(e[7]=t=>H.value=t),placeholder:"输入用户ID,如 123",style:{width:"260px"},clearable:""},null,8,["modelValue"]),a(i,{type:"primary",loading:V.value,onClick:oe},{default:l(()=>[...e[29]||(e[29]=[s("查询",-1)])]),_:1},8,["loading"])])]),_:1})]),_:1},8,["modelValue"]),_.value?(u(),y(L,{key:0,shadow:"never","body-style":{padding:"16px"},class:"sub-card"},{default:l(()=>[r("div",wt,[r("div",It,[h.value==="ip"?(u(),w("strong",Vt,"IP: "+c(_.value.ip),1)):(u(),w("strong",xt,"用户ID: "+c(_.value.user_id),1)),e[32]||(e[32]=r("span",{class:"app-muted"},"风险分",-1)),a(x,{type:F(_.value.risk_score).type,effect:"light"},{default:l(()=>[s(c(_.value.risk_score??0),1)]),_:1},8,["type"]),_.value.is_banned?(u(),y(x,{key:2,type:"danger",effect:"light"},{default:l(()=>[...e[30]||(e[30]=[s("已封禁",-1)])]),_:1})):(u(),y(x,{key:3,type:"success",effect:"light"},{default:l(()=>[...e[31]||(e[31]=[s("未封禁",-1)])]),_:1}))]),r("div",Ct,[_.value.is_banned?(u(),y(i,{key:1,type:"danger",plain:"",onClick:Fe},{default:l(()=>[...e[34]||(e[34]=[s("解除封禁",-1)])]),_:1})):(u(),y(i,{key:0,type:"primary",plain:"",onClick:Ne},{default:l(()=>[...e[33]||(e[33]=[s("封禁",-1)])]),_:1}))])]),r("div",St,[ae((u(),y(ee,{data:_.value.threat_history||[],style:{width:"100%"}},{default:l(()=>[a(m,{prop:"created_at",label:"时间",width:"180"}),a(m,{label:"类型",width:"170"},{default:l(({row:t})=>[a(x,{effect:"light",type:"info"},{default:l(()=>[s(c(t.threat_type||"unknown"),1)]),_:2},1024)]),_:1}),a(m,{label:"严重程度",width:"120"},{default:l(({row:t})=>[a(x,{type:F(t.score).type,effect:"light"},{default:l(()=>[s(c(F(t.score).label)+" ("+c(t.score??0)+") ",1)]),_:2},1032,["type"])]),_:1}),a(m,{label:"操作路径","min-width":"220"},{default:l(({row:t})=>[a(Z,{content:J(t),placement:"top","show-after":300},{default:l(()=>[r("span",Ut,c(J(t)),1)]),_:2},1032,["content"])]),_:1}),a(m,{label:"Payload预览","min-width":"240"},{default:l(({row:t})=>[a(Z,{content:be(t),placement:"top","show-after":300},{default:l(()=>[r("span",Pt,c(t.value_preview||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[te,V.value]])])]),_:1})):Se("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(Ae,{modelValue:U.value,"onUpdate:modelValue":e[17]||(e[17]=t=>U.value=t),title:"手动封禁",width:"min(520px, 92vw)",onClosed:ge},{footer:l(()=>[r("div",Tt,[e[39]||(e[39]=r("div",{class:"spacer"},null,-1)),a(i,{onClick:e[16]||(e[16]=t=>U.value=!1)},{default:l(()=>[...e[37]||(e[37]=[s("取消",-1)])]),_:1}),a(i,{type:"primary",loading:N.value,onClick:De},{default:l(()=>[...e[38]||(e[38]=[s("确认封禁",-1)])]),_:1},8,["loading"])])]),default:l(()=>[a(Ee,{"label-width":"120px"},{default:l(()=>[a(B,{label:"类型"},{default:l(()=>[a(qe,{modelValue:o.value.kind,"onUpdate:modelValue":e[10]||(e[10]=t=>o.value.kind=t)},{default:l(()=>[a(xe,{label:"ip"},{default:l(()=>[...e[35]||(e[35]=[s("IP",-1)])]),_:1}),a(xe,{label:"user"},{default:l(()=>[...e[36]||(e[36]=[s("用户",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.value.kind==="ip"?(u(),y(B,{key:0,label:"IP"},{default:l(()=>[a(q,{modelValue:o.value.ip,"onUpdate:modelValue":e[11]||(e[11]=t=>o.value.ip=t),placeholder:"例如 1.2.3.4"},null,8,["modelValue"])]),_:1})):(u(),y(B,{key:1,label:"用户ID"},{default:l(()=>[a(q,{modelValue:o.value.user_id,"onUpdate:modelValue":e[12]||(e[12]=t=>o.value.user_id=t),placeholder:"例如 123"},null,8,["modelValue"])]),_:1})),a(B,{label:"原因"},{default:l(()=>[a(q,{modelValue:o.value.reason,"onUpdate:modelValue":e[13]||(e[13]=t=>o.value.reason=t),type:"textarea",rows:3,placeholder:"请输入封禁原因"},null,8,["modelValue"])]),_:1}),a(B,{label:"永久封禁"},{default:l(()=>[a(Me,{modelValue:o.value.permanent,"onUpdate:modelValue":e[14]||(e[14]=t=>o.value.permanent=t)},null,8,["modelValue"])]),_:1}),o.value.permanent?Se("",!0):(u(),y(B,{key:2,label:"持续(小时)"},{default:l(()=>[a(ze,{modelValue:o.value.duration_hours,"onUpdate:modelValue":e[15]||(e[15]=t=>o.value.duration_hours=t),min:1,max:8760},null,8,["modelValue"])]),_:1}))]),_:1})]),_:1},8,["modelValue"])])}}},Rt=Ke(Bt,[["__scopeId","data-v-ea9240bd"]]);export{Rt as default}; diff --git a/static/admin/assets/SettingsPage-D_cVneyv.js b/static/admin/assets/SettingsPage-IGV4in6c.js similarity index 96% rename from static/admin/assets/SettingsPage-D_cVneyv.js rename to static/admin/assets/SettingsPage-IGV4in6c.js index 24d6118..db33675 100644 --- a/static/admin/assets/SettingsPage-D_cVneyv.js +++ b/static/admin/assets/SettingsPage-IGV4in6c.js @@ -1 +1 @@ -import{P as m,_ as B,r as p,e as u,f as T,g as P,h as r,j as a,w as l,p as x,K as i,J as b}from"./index-Dx-1XhY8.js";async function C(o){const{data:s}=await m.put("/admin/username",{new_username:o});return s}async function S(o){const{data:s}=await m.put("/admin/password",{new_password:o});return s}async function U(){const{data:o}=await m.post("/logout");return o}const A={class:"page-stack"},E={__name:"SettingsPage",setup(o){const s=p(""),d=p(""),n=p(!1);function k(t){const e=String(t||"");return e.length<8?{ok:!1,message:"密码长度至少8位"}:e.length>128?{ok:!1,message:"密码长度不能超过128个字符"}:!/[a-zA-Z]/.test(e)||!/\d/.test(e)?{ok:!1,message:"密码必须包含字母和数字"}:{ok:!0,message:""}}async function f(){try{await U()}catch{}finally{window.location.href="/yuyx"}}async function V(){const t=s.value.trim();if(!t){i.error("请输入新用户名");return}try{await b.confirm(`确定将管理员用户名修改为「${t}」吗?修改后需要重新登录。`,"修改用户名",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await C(t),i.success("用户名修改成功,请重新登录"),s.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}async function h(){const t=d.value;if(!t){i.error("请输入新密码");return}const e=k(t);if(!e.ok){i.error(e.message);return}try{await b.confirm("确定修改管理员密码吗?修改后需要重新登录。","修改密码",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await S(t),i.success("密码修改成功,请重新登录"),d.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}return(t,e)=>{const g=u("el-input"),w=u("el-form-item"),v=u("el-form"),y=u("el-button"),_=u("el-card");return P(),T("div",A,[e[7]||(e[7]=r("div",{class:"app-page-title"},[r("h2",null,"设置"),r("span",{class:"app-muted"},"管理员账号设置")],-1)),a(_,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[3]||(e[3]=r("h3",{class:"section-title"},"修改管理员用户名",-1)),a(v,{"label-width":"120px"},{default:l(()=>[a(w,{label:"新用户名"},{default:l(()=>[a(g,{modelValue:s.value,"onUpdate:modelValue":e[0]||(e[0]=c=>s.value=c),placeholder:"输入新用户名",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(y,{type:"primary",loading:n.value,onClick:V},{default:l(()=>[...e[2]||(e[2]=[x("保存用户名",-1)])]),_:1},8,["loading"])]),_:1}),a(_,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[5]||(e[5]=r("h3",{class:"section-title"},"修改管理员密码",-1)),a(v,{"label-width":"120px"},{default:l(()=>[a(w,{label:"新密码"},{default:l(()=>[a(g,{modelValue:d.value,"onUpdate:modelValue":e[1]||(e[1]=c=>d.value=c),type:"password","show-password":"",placeholder:"输入新密码",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(y,{type:"primary",loading:n.value,onClick:h},{default:l(()=>[...e[4]||(e[4]=[x("保存密码",-1)])]),_:1},8,["loading"]),e[6]||(e[6]=r("div",{class:"help"},"建议使用更强密码(至少8位且包含字母与数字)。",-1))]),_:1})])}}},M=B(E,[["__scopeId","data-v-12a26d11"]]);export{M as default}; +import{a as m,_ as B,r as p,f as u,g as T,h as P,j as r,m as a,w as l,q as x,L as i,K as b}from"./index-B9zsNTKQ.js";async function C(o){const{data:s}=await m.put("/admin/username",{new_username:o});return s}async function S(o){const{data:s}=await m.put("/admin/password",{new_password:o});return s}async function U(){const{data:o}=await m.post("/logout");return o}const A={class:"page-stack"},E={__name:"SettingsPage",setup(o){const s=p(""),d=p(""),n=p(!1);function k(t){const e=String(t||"");return e.length<8?{ok:!1,message:"密码长度至少8位"}:e.length>128?{ok:!1,message:"密码长度不能超过128个字符"}:!/[a-zA-Z]/.test(e)||!/\d/.test(e)?{ok:!1,message:"密码必须包含字母和数字"}:{ok:!0,message:""}}async function f(){try{await U()}catch{}finally{window.location.href="/yuyx"}}async function V(){const t=s.value.trim();if(!t){i.error("请输入新用户名");return}try{await b.confirm(`确定将管理员用户名修改为「${t}」吗?修改后需要重新登录。`,"修改用户名",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await C(t),i.success("用户名修改成功,请重新登录"),s.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}async function h(){const t=d.value;if(!t){i.error("请输入新密码");return}const e=k(t);if(!e.ok){i.error(e.message);return}try{await b.confirm("确定修改管理员密码吗?修改后需要重新登录。","修改密码",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await S(t),i.success("密码修改成功,请重新登录"),d.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}return(t,e)=>{const g=u("el-input"),w=u("el-form-item"),v=u("el-form"),y=u("el-button"),_=u("el-card");return P(),T("div",A,[e[7]||(e[7]=r("div",{class:"app-page-title"},[r("h2",null,"设置"),r("span",{class:"app-muted"},"管理员账号设置")],-1)),a(_,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[3]||(e[3]=r("h3",{class:"section-title"},"修改管理员用户名",-1)),a(v,{"label-width":"120px"},{default:l(()=>[a(w,{label:"新用户名"},{default:l(()=>[a(g,{modelValue:s.value,"onUpdate:modelValue":e[0]||(e[0]=c=>s.value=c),placeholder:"输入新用户名",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(y,{type:"primary",loading:n.value,onClick:V},{default:l(()=>[...e[2]||(e[2]=[x("保存用户名",-1)])]),_:1},8,["loading"])]),_:1}),a(_,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[5]||(e[5]=r("h3",{class:"section-title"},"修改管理员密码",-1)),a(v,{"label-width":"120px"},{default:l(()=>[a(w,{label:"新密码"},{default:l(()=>[a(g,{modelValue:d.value,"onUpdate:modelValue":e[1]||(e[1]=c=>d.value=c),type:"password","show-password":"",placeholder:"输入新密码",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(y,{type:"primary",loading:n.value,onClick:h},{default:l(()=>[...e[4]||(e[4]=[x("保存密码",-1)])]),_:1},8,["loading"]),e[6]||(e[6]=r("div",{class:"help"},"建议使用更强密码(至少8位且包含字母与数字)。",-1))]),_:1})])}}},M=B(E,[["__scopeId","data-v-12a26d11"]]);export{M as default}; diff --git a/static/admin/assets/SystemPage-Cph4odbt.js b/static/admin/assets/SystemPage-BPHukDdR.js similarity index 89% rename from static/admin/assets/SystemPage-Cph4odbt.js rename to static/admin/assets/SystemPage-BPHukDdR.js index a9d5aaf..fe16ff0 100644 --- a/static/admin/assets/SystemPage-Cph4odbt.js +++ b/static/admin/assets/SystemPage-BPHukDdR.js @@ -1,4 +1,4 @@ -import{f as ae,u as S,e as te}from"./system-C_4M4EtK.js";import{P as D,_ as oe,r as s,c as ne,o as ue,e as d,H as se,I as re,g as V,f as F,h as n,j as l,w as t,p as c,A as E,m as $,F as de,q as ie,n as me,J as T,K as p}from"./index-Dx-1XhY8.js";async function pe(){const{data:f}=await D.get("/proxy/config");return f}async function ce(f){const{data:v}=await D.post("/proxy/config",f);return v}async function ve(f){const{data:v}=await D.post("/proxy/test",f);return v}const ye={class:"page-stack"},_e={class:"app-page-title"},fe={class:"row-actions"},xe={class:"row-actions"},be={__name:"SystemPage",setup(f){const v=s(!1),g=s(2),w=s(1),k=s(3),i=s(!1),P=s("02:00"),x=s("应读"),y=s(["1","2","3","4","5","6","7"]),b=s(!1),_=s(""),C=s(3),B=s(!1),N=s(10),I=s(7),j=[{label:"周一",value:"1"},{label:"周二",value:"2"},{label:"周三",value:"3"},{label:"周四",value:"4"},{label:"周五",value:"5"},{label:"周六",value:"6"},{label:"周日",value:"7"}],L={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},O=ne(()=>(y.value||[]).map(a=>L[Number(a)]||a).join("、"));function W(a){return String(a)==="注册前未读"?"注册前未读":"应读"}async function H(){v.value=!0;try{const[a,e]=await Promise.all([ae(),pe()]);g.value=a.max_concurrent_global??2,w.value=a.max_concurrent_per_account??1,k.value=a.max_screenshot_concurrent??3,i.value=(a.schedule_enabled??0)===1,P.value=a.schedule_time||"02:00",x.value=W(a.schedule_browse_type);const u=String(a.schedule_weekdays||"1,2,3,4,5,6,7").split(",").map(m=>m.trim()).filter(Boolean);y.value=u.length?u:["1","2","3","4","5","6","7"],B.value=(a.auto_approve_enabled??0)===1,N.value=a.auto_approve_hourly_limit??10,I.value=a.auto_approve_vip_days??7,b.value=(e.proxy_enabled??0)===1,_.value=e.proxy_api_url||"",C.value=e.proxy_expire_minutes??3}catch{}finally{v.value=!1}}async function q(){const a={max_concurrent_global:Number(g.value),max_concurrent_per_account:Number(w.value),max_screenshot_concurrent:Number(k.value)};try{await T.confirm(`确定更新并发配置吗? +import{f as ae,u as S,e as te}from"./system-DIc9L1cQ.js";import{a as D,_ as oe,r as s,c as ne,o as ue,f as d,I as se,J as re,h as V,g as F,j as n,m as l,w as t,q as c,B as E,n as $,F as de,v as ie,p as me,K as U,L as p}from"./index-B9zsNTKQ.js";async function pe(){const{data:f}=await D.get("/proxy/config");return f}async function ce(f){const{data:v}=await D.post("/proxy/config",f);return v}async function ve(f){const{data:v}=await D.post("/proxy/test",f);return v}const ye={class:"page-stack"},_e={class:"app-page-title"},fe={class:"row-actions"},xe={class:"row-actions"},be={__name:"SystemPage",setup(f){const v=s(!1),g=s(2),w=s(1),k=s(3),i=s(!1),P=s("02:00"),x=s("应读"),y=s(["1","2","3","4","5","6","7"]),b=s(!1),_=s(""),C=s(3),B=s(!1),N=s(10),I=s(7),j=[{label:"周一",value:"1"},{label:"周二",value:"2"},{label:"周三",value:"3"},{label:"周四",value:"4"},{label:"周五",value:"5"},{label:"周六",value:"6"},{label:"周日",value:"7"}],L={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},O=ne(()=>(y.value||[]).map(a=>L[Number(a)]||a).join("、"));function W(a){return String(a)==="注册前未读"?"注册前未读":"应读"}async function H(){v.value=!0;try{const[a,e]=await Promise.all([ae(),pe()]);g.value=a.max_concurrent_global??2,w.value=a.max_concurrent_per_account??1,k.value=a.max_screenshot_concurrent??3,i.value=(a.schedule_enabled??0)===1,P.value=a.schedule_time||"02:00",x.value=W(a.schedule_browse_type);const u=String(a.schedule_weekdays||"1,2,3,4,5,6,7").split(",").map(m=>m.trim()).filter(Boolean);y.value=u.length?u:["1","2","3","4","5","6","7"],B.value=(a.auto_approve_enabled??0)===1,N.value=a.auto_approve_hourly_limit??10,I.value=a.auto_approve_vip_days??7,b.value=(e.proxy_enabled??0)===1,_.value=e.proxy_api_url||"",C.value=e.proxy_expire_minutes??3}catch{}finally{v.value=!1}}async function q(){const a={max_concurrent_global:Number(g.value),max_concurrent_per_account:Number(w.value),max_screenshot_concurrent:Number(k.value)};try{await U.confirm(`确定更新并发配置吗? 全局并发数: ${a.max_concurrent_global} 单账号并发数: ${a.max_concurrent_per_account} @@ -8,9 +8,9 @@ import{f as ae,u as S,e as te}from"./system-C_4M4EtK.js";import{P as D,_ as oe,r 执行日期: ${O.value} 浏览类型: ${a.schedule_browse_type} -系统将自动执行所有账号的浏览任务(不包含截图)`:"确定关闭定时任务吗?";try{await T.confirm(e,"保存定时任务",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const u=await S(a);p.success(u?.message||(i.value?"定时任务已启用":"定时任务已关闭"))}catch{}}async function G(){const a=`确定要立即执行定时任务吗? +系统将自动执行所有账号的浏览任务(不包含截图)`:"确定关闭定时任务吗?";try{await U.confirm(e,"保存定时任务",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const u=await S(a);p.success(u?.message||(i.value?"定时任务已启用":"定时任务已关闭"))}catch{}}async function G(){const a=`确定要立即执行定时任务吗? 这将执行所有账号的浏览任务 浏览类型: ${x.value} -注意:无视定时时间和执行日期配置,立即开始执行!`;try{await T.confirm(a,"立即执行",{confirmButtonText:"立即执行",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await te();p.success(e?.message||"定时任务已开始执行")}catch{}}async function J(){if(b.value&&!_.value.trim()){p.error("启用代理时,API地址不能为空");return}const a={proxy_enabled:b.value?1:0,proxy_api_url:_.value.trim(),proxy_expire_minutes:Number(C.value)||3};try{const e=await ce(a);p.success(e?.message||"代理配置已更新")}catch{}}async function K(){if(!_.value.trim()){p.error("请先输入代理API地址");return}try{const a=await ve({api_url:_.value.trim()});await T.alert(a?.message||"测试完成","代理测试",{confirmButtonText:"知道了"})}catch{}}async function R(){const a=Number(N.value),e=Number(I.value);if(!Number.isFinite(a)||a<1){p.error("每小时注册限制必须大于0");return}if(!Number.isFinite(e)||e<0){p.error("VIP天数不能为负数");return}const u={auto_approve_enabled:B.value?1:0,auto_approve_hourly_limit:a,auto_approve_vip_days:e};try{const m=await S(u);p.success(m?.message||"注册设置已保存")}catch{}}return ue(H),(a,e)=>{const u=d("el-button"),m=d("el-input-number"),r=d("el-form-item"),h=d("el-form"),A=d("el-card"),U=d("el-switch"),Q=d("el-time-picker"),M=d("el-option"),X=d("el-select"),Y=d("el-checkbox"),Z=d("el-checkbox-group"),ee=d("el-input"),le=se("loading");return re((V(),F("div",ye,[n("div",_e,[e[14]||(e[14]=n("h2",null,"系统配置",-1)),n("div",null,[l(u,{onClick:H},{default:t(()=>[...e[13]||(e[13]=[c("刷新",-1)])]),_:1})])]),l(A,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[19]||(e[19]=n("h3",{class:"section-title"},"系统并发配置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"全局最大并发数"},{default:t(()=>[l(m,{modelValue:g.value,"onUpdate:modelValue":e[0]||(e[0]=o=>g.value=o),min:1,max:200},null,8,["modelValue"]),e[15]||(e[15]=n("div",{class:"help"},"同时最多运行的账号数量(浏览任务使用 API 方式,资源占用较低)。",-1))]),_:1}),l(r,{label:"单账号最大并发数"},{default:t(()=>[l(m,{modelValue:w.value,"onUpdate:modelValue":e[1]||(e[1]=o=>w.value=o),min:1,max:50},null,8,["modelValue"]),e[16]||(e[16]=n("div",{class:"help"},"单个账号同时最多运行的任务数量(建议设为 1)。",-1))]),_:1}),l(r,{label:"截图最大并发数"},{default:t(()=>[l(m,{modelValue:k.value,"onUpdate:modelValue":e[2]||(e[2]=o=>k.value=o),min:1,max:50},null,8,["modelValue"]),e[17]||(e[17]=n("div",{class:"help"},"同时进行截图的最大数量(每个浏览器约占用 200MB 内存)。",-1))]),_:1})]),_:1}),l(u,{type:"primary",onClick:q},{default:t(()=>[...e[18]||(e[18]=[c("保存并发配置",-1)])]),_:1})]),_:1}),l(A,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[22]||(e[22]=n("h3",{class:"section-title"},"定时任务配置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"启用定时任务"},{default:t(()=>[l(U,{modelValue:i.value,"onUpdate:modelValue":e[3]||(e[3]=o=>i.value=o)},null,8,["modelValue"])]),_:1}),i.value?(V(),E(r,{key:0,label:"执行时间"},{default:t(()=>[l(Q,{modelValue:P.value,"onUpdate:modelValue":e[4]||(e[4]=o=>P.value=o),"value-format":"HH:mm",format:"HH:mm"},null,8,["modelValue"])]),_:1})):$("",!0),i.value?(V(),E(r,{key:1,label:"浏览类型"},{default:t(()=>[l(X,{modelValue:x.value,"onUpdate:modelValue":e[5]||(e[5]=o=>x.value=o),style:{width:"220px"}},{default:t(()=>[l(M,{label:"注册前未读",value:"注册前未读"}),l(M,{label:"应读",value:"应读"})]),_:1},8,["modelValue"])]),_:1})):$("",!0),i.value?(V(),E(r,{key:2,label:"执行日期"},{default:t(()=>[l(Z,{modelValue:y.value,"onUpdate:modelValue":e[6]||(e[6]=o=>y.value=o)},{default:t(()=>[(V(),F(de,null,ie(j,o=>l(Y,{key:o.value,label:o.value},{default:t(()=>[c(me(o.label),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])]),_:1})):$("",!0)]),_:1}),n("div",fe,[l(u,{type:"primary",onClick:z},{default:t(()=>[...e[20]||(e[20]=[c("保存定时任务配置",-1)])]),_:1}),l(u,{type:"success",plain:"",onClick:G},{default:t(()=>[...e[21]||(e[21]=[c("立即执行",-1)])]),_:1})])]),_:1}),l(A,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[27]||(e[27]=n("h3",{class:"section-title"},"代理设置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"启用IP代理"},{default:t(()=>[l(U,{modelValue:b.value,"onUpdate:modelValue":e[7]||(e[7]=o=>b.value=o)},null,8,["modelValue"]),e[23]||(e[23]=n("div",{class:"help"},"开启后,所有浏览任务将通过代理IP访问(失败自动重试3次)。",-1))]),_:1}),l(r,{label:"代理API地址"},{default:t(()=>[l(ee,{modelValue:_.value,"onUpdate:modelValue":e[8]||(e[8]=o=>_.value=o),placeholder:"http://api.xxx/Tools/IP.ashx?..."},null,8,["modelValue"]),e[24]||(e[24]=n("div",{class:"help"},"API 应返回:IP:PORT(例如 123.45.67.89:8888)。",-1))]),_:1}),l(r,{label:"代理有效期(分钟)"},{default:t(()=>[l(m,{modelValue:C.value,"onUpdate:modelValue":e[9]||(e[9]=o=>C.value=o),min:1,max:60},null,8,["modelValue"])]),_:1})]),_:1}),n("div",xe,[l(u,{type:"primary",onClick:J},{default:t(()=>[...e[25]||(e[25]=[c("保存代理配置",-1)])]),_:1}),l(u,{onClick:K},{default:t(()=>[...e[26]||(e[26]=[c("测试代理",-1)])]),_:1})])]),_:1}),l(A,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[30]||(e[30]=n("h3",{class:"section-title"},"注册设置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"注册赠送VIP"},{default:t(()=>[l(U,{modelValue:B.value,"onUpdate:modelValue":e[10]||(e[10]=o=>B.value=o)},null,8,["modelValue"]),e[28]||(e[28]=n("div",{class:"help"},"开启后,新用户注册成功后将赠送下方设置的VIP天数(注册已默认无需审核)。",-1))]),_:1}),l(r,{label:"每小时注册限制"},{default:t(()=>[l(m,{modelValue:N.value,"onUpdate:modelValue":e[11]||(e[11]=o=>N.value=o),min:1,max:1e4},null,8,["modelValue"])]),_:1}),l(r,{label:"注册赠送VIP天数"},{default:t(()=>[l(m,{modelValue:I.value,"onUpdate:modelValue":e[12]||(e[12]=o=>I.value=o),min:0,max:999999},null,8,["modelValue"])]),_:1})]),_:1}),l(u,{type:"primary",onClick:R},{default:t(()=>[...e[29]||(e[29]=[c("保存注册设置",-1)])]),_:1})]),_:1})])),[[le,v.value]])}}},we=oe(be,[["__scopeId","data-v-bb187149"]]);export{we as default}; +注意:无视定时时间和执行日期配置,立即开始执行!`;try{await U.confirm(a,"立即执行",{confirmButtonText:"立即执行",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await te();p.success(e?.message||"定时任务已开始执行")}catch{}}async function J(){if(b.value&&!_.value.trim()){p.error("启用代理时,API地址不能为空");return}const a={proxy_enabled:b.value?1:0,proxy_api_url:_.value.trim(),proxy_expire_minutes:Number(C.value)||3};try{const e=await ce(a);p.success(e?.message||"代理配置已更新")}catch{}}async function K(){if(!_.value.trim()){p.error("请先输入代理API地址");return}try{const a=await ve({api_url:_.value.trim()});await U.alert(a?.message||"测试完成","代理测试",{confirmButtonText:"知道了"})}catch{}}async function R(){const a=Number(N.value),e=Number(I.value);if(!Number.isFinite(a)||a<1){p.error("每小时注册限制必须大于0");return}if(!Number.isFinite(e)||e<0){p.error("VIP天数不能为负数");return}const u={auto_approve_enabled:B.value?1:0,auto_approve_hourly_limit:a,auto_approve_vip_days:e};try{const m=await S(u);p.success(m?.message||"注册设置已保存")}catch{}}return ue(H),(a,e)=>{const u=d("el-button"),m=d("el-input-number"),r=d("el-form-item"),h=d("el-form"),T=d("el-card"),A=d("el-switch"),Q=d("el-time-picker"),M=d("el-option"),X=d("el-select"),Y=d("el-checkbox"),Z=d("el-checkbox-group"),ee=d("el-input"),le=se("loading");return re((V(),F("div",ye,[n("div",_e,[e[14]||(e[14]=n("h2",null,"系统配置",-1)),n("div",null,[l(u,{onClick:H},{default:t(()=>[...e[13]||(e[13]=[c("刷新",-1)])]),_:1})])]),l(T,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[19]||(e[19]=n("h3",{class:"section-title"},"系统并发配置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"全局最大并发数"},{default:t(()=>[l(m,{modelValue:g.value,"onUpdate:modelValue":e[0]||(e[0]=o=>g.value=o),min:1,max:200},null,8,["modelValue"]),e[15]||(e[15]=n("div",{class:"help"},"同时最多运行的账号数量(浏览任务使用 API 方式,资源占用较低)。",-1))]),_:1}),l(r,{label:"单账号最大并发数"},{default:t(()=>[l(m,{modelValue:w.value,"onUpdate:modelValue":e[1]||(e[1]=o=>w.value=o),min:1,max:50},null,8,["modelValue"]),e[16]||(e[16]=n("div",{class:"help"},"单个账号同时最多运行的任务数量(建议设为 1)。",-1))]),_:1}),l(r,{label:"截图最大并发数"},{default:t(()=>[l(m,{modelValue:k.value,"onUpdate:modelValue":e[2]||(e[2]=o=>k.value=o),min:1,max:50},null,8,["modelValue"]),e[17]||(e[17]=n("div",{class:"help"},"同时进行截图的最大数量(每个浏览器约占用 200MB 内存)。",-1))]),_:1})]),_:1}),l(u,{type:"primary",onClick:q},{default:t(()=>[...e[18]||(e[18]=[c("保存并发配置",-1)])]),_:1})]),_:1}),l(T,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[22]||(e[22]=n("h3",{class:"section-title"},"定时任务配置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"启用定时任务"},{default:t(()=>[l(A,{modelValue:i.value,"onUpdate:modelValue":e[3]||(e[3]=o=>i.value=o)},null,8,["modelValue"])]),_:1}),i.value?(V(),E(r,{key:0,label:"执行时间"},{default:t(()=>[l(Q,{modelValue:P.value,"onUpdate:modelValue":e[4]||(e[4]=o=>P.value=o),"value-format":"HH:mm",format:"HH:mm"},null,8,["modelValue"])]),_:1})):$("",!0),i.value?(V(),E(r,{key:1,label:"浏览类型"},{default:t(()=>[l(X,{modelValue:x.value,"onUpdate:modelValue":e[5]||(e[5]=o=>x.value=o),style:{width:"220px"}},{default:t(()=>[l(M,{label:"注册前未读",value:"注册前未读"}),l(M,{label:"应读",value:"应读"})]),_:1},8,["modelValue"])]),_:1})):$("",!0),i.value?(V(),E(r,{key:2,label:"执行日期"},{default:t(()=>[l(Z,{modelValue:y.value,"onUpdate:modelValue":e[6]||(e[6]=o=>y.value=o)},{default:t(()=>[(V(),F(de,null,ie(j,o=>l(Y,{key:o.value,label:o.value},{default:t(()=>[c(me(o.label),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])]),_:1})):$("",!0)]),_:1}),n("div",fe,[l(u,{type:"primary",onClick:z},{default:t(()=>[...e[20]||(e[20]=[c("保存定时任务配置",-1)])]),_:1}),l(u,{type:"success",plain:"",onClick:G},{default:t(()=>[...e[21]||(e[21]=[c("立即执行",-1)])]),_:1})])]),_:1}),l(T,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[27]||(e[27]=n("h3",{class:"section-title"},"代理设置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"启用IP代理"},{default:t(()=>[l(A,{modelValue:b.value,"onUpdate:modelValue":e[7]||(e[7]=o=>b.value=o)},null,8,["modelValue"]),e[23]||(e[23]=n("div",{class:"help"},"开启后,所有浏览任务将通过代理IP访问(失败自动重试3次)。",-1))]),_:1}),l(r,{label:"代理API地址"},{default:t(()=>[l(ee,{modelValue:_.value,"onUpdate:modelValue":e[8]||(e[8]=o=>_.value=o),placeholder:"http://api.xxx/Tools/IP.ashx?..."},null,8,["modelValue"]),e[24]||(e[24]=n("div",{class:"help"},"API 应返回:IP:PORT(例如 123.45.67.89:8888)。",-1))]),_:1}),l(r,{label:"代理有效期(分钟)"},{default:t(()=>[l(m,{modelValue:C.value,"onUpdate:modelValue":e[9]||(e[9]=o=>C.value=o),min:1,max:60},null,8,["modelValue"])]),_:1})]),_:1}),n("div",xe,[l(u,{type:"primary",onClick:J},{default:t(()=>[...e[25]||(e[25]=[c("保存代理配置",-1)])]),_:1}),l(u,{onClick:K},{default:t(()=>[...e[26]||(e[26]=[c("测试代理",-1)])]),_:1})])]),_:1}),l(T,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[30]||(e[30]=n("h3",{class:"section-title"},"注册设置",-1)),l(h,{"label-width":"130px"},{default:t(()=>[l(r,{label:"注册赠送VIP"},{default:t(()=>[l(A,{modelValue:B.value,"onUpdate:modelValue":e[10]||(e[10]=o=>B.value=o)},null,8,["modelValue"]),e[28]||(e[28]=n("div",{class:"help"},"开启后,新用户注册成功后将赠送下方设置的VIP天数(注册已默认无需审核)。",-1))]),_:1}),l(r,{label:"每小时注册限制"},{default:t(()=>[l(m,{modelValue:N.value,"onUpdate:modelValue":e[11]||(e[11]=o=>N.value=o),min:1,max:1e4},null,8,["modelValue"])]),_:1}),l(r,{label:"注册赠送VIP天数"},{default:t(()=>[l(m,{modelValue:I.value,"onUpdate:modelValue":e[12]||(e[12]=o=>I.value=o),min:0,max:999999},null,8,["modelValue"])]),_:1})]),_:1}),l(u,{type:"primary",onClick:R},{default:t(()=>[...e[29]||(e[29]=[c("保存注册设置",-1)])]),_:1})]),_:1})])),[[le,v.value]])}}},we=oe(be,[["__scopeId","data-v-bb187149"]]);export{we as default}; diff --git a/static/admin/assets/UsersPage-19tzoQBx.js b/static/admin/assets/UsersPage-19tzoQBx.js deleted file mode 100644 index 05e2389..0000000 --- a/static/admin/assets/UsersPage-19tzoQBx.js +++ /dev/null @@ -1 +0,0 @@ -import{a as Z,r as q,s as H,b as J,c as K,d as F,f as G}from"./users-BNPg4OEj.js";import{_ as O,i as Q,r as I,o as X,e as y,H as Y,f as C,g as l,h as f,j as r,w as s,p as o,I as ee,A as p,m,n as x,J as k,K as v}from"./index-Dx-1XhY8.js";function D(g){if(!g)return null;if(g instanceof Date)return g;let a=String(g).trim();if(!a)return null;/^\d{4}-\d{2}-\d{2}$/.test(a)&&(a=`${a}T00:00:00`);let c=a.includes("T")?a:a.replace(" ","T");c=c.replace(/\.(\d{3})\d+/,".$1"),/([zZ]|[+-]\d{2}:\d{2})$/.test(c)||(c=`${c}+08:00`);const d=new Date(c);return Number.isNaN(d.getTime())?null:d}function U(g){const a=String(g||"");if(!a)return{ok:!1,message:"密码不能为空"};if(a.length<8)return{ok:!1,message:"密码长度不能少于8个字符"};if(a.length>128)return{ok:!1,message:"密码长度不能超过128个字符"};const c=/[a-zA-Z]/.test(a),h=/\d/.test(a);return!c||!h?{ok:!1,message:"密码必须包含字母和数字"}:{ok:!0,message:""}}const te={class:"page-stack"},ne={class:"app-page-title"},se={class:"table-wrap"},ae={class:"user-block"},ie={class:"user-main"},le={key:0,class:"app-muted user-sub"},re={key:1,class:"vip-sub"},oe={key:0,class:"app-muted"},ce={class:"actions"},ue={__name:"UsersPage",setup(g){const a=Q("refreshStats",null),c=I(!1),h=I([]);function d(n){const e=n?.vip_expire_time;if(!e)return!1;if(String(e).startsWith("2099-12-31"))return!0;const i=D(e);return i?i.getTime()>Date.now():!1}function V(n){const e=n?.vip_expire_time;if(!e||!d(n))return"";if(String(e).startsWith("2099-12-31"))return"永久VIP";const i=D(e);if(!i)return`到期: ${e}`;const u=Math.ceil((i.getTime()-Date.now())/(1e3*60*60*24));return`到期: ${e}(剩${u}天)`}function B(n){return n==="rejected"?{label:"禁用",type:"danger"}:{label:"正常",type:"success"}}async function w(){c.value=!0;try{h.value=await G()}catch{h.value=[]}finally{c.value=!1}}async function P(){await w()}async function z(n){try{await k.confirm(`确定启用用户「${n.username}」吗?启用后用户可正常登录。`,"启用用户",{confirmButtonText:"启用",cancelButtonText:"取消",type:"success"})}catch{return}try{await Z(n.id),v.success("用户已启用"),await w(),await a?.()}catch{}}async function S(n){try{await k.confirm(`确定禁用用户「${n.username}」吗?禁用后用户将无法登录。`,"禁用用户",{confirmButtonText:"禁用",cancelButtonText:"取消",type:"warning"})}catch{return}try{await q(n.id),v.success("用户已禁用"),await w(),await a?.()}catch{}}async function N(n){try{await k.confirm(`确定删除用户「${n.username}」吗?此操作将删除该用户的所有数据,不可恢复!`,"删除用户",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{await F(n.id),v.success("用户已删除"),await w(),await a?.()}catch{}}async function T(n,e){const i={7:"一周",30:"一个月",365:"一年",999999:"永久"}[e]||`${e}天`;try{await k.confirm(`确定为用户「${n.username}」开通 ${i} VIP 吗?`,"设置VIP",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const u=await H(n.id,e);v.success(u?.message||"VIP设置成功"),await w(),await a?.()}catch{}}async function M(n){try{await k.confirm(`确定移除用户「${n.username}」的 VIP 吗?`,"移除VIP",{confirmButtonText:"移除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await J(n.id);v.success(e?.message||"VIP已移除"),await w(),await a?.()}catch{}}async function j(n){let e;try{e=(await k.prompt("请输入新密码(至少8位且包含字母和数字)","重置密码",{confirmButtonText:"提交",cancelButtonText:"取消",inputType:"password",inputPlaceholder:"新密码",inputValidator:$=>U($).ok,inputErrorMessage:"密码至少8位且包含字母和数字"})).value}catch{return}const i=U(e);if(!i.ok){v.error(i.message);return}try{await k.confirm(`确定将用户「${n.username}」的密码重置为该新密码吗?`,"二次确认",{confirmButtonText:"确认重置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const u=await K(n.id,e);v.success(u?.message||"密码重置成功")}catch{}}return X(P),(n,e)=>{const i=y("el-button"),u=y("el-table-column"),$=y("el-tag"),b=y("el-dropdown-item"),E=y("el-dropdown-menu"),A=y("el-dropdown"),L=y("el-table"),R=y("el-card"),W=Y("loading");return l(),C("div",te,[f("div",ne,[e[1]||(e[1]=f("h2",null,"用户",-1)),f("div",null,[r(i,{onClick:P},{default:s(()=>[...e[0]||(e[0]=[o("刷新",-1)])]),_:1})])]),r(R,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[f("div",se,[ee((l(),p(L,{data:h.value,style:{width:"100%"}},{default:s(()=>[r(u,{prop:"id",label:"ID",width:"80"}),r(u,{label:"用户","min-width":"240"},{default:s(({row:t})=>[f("div",ae,[f("div",ie,[f("strong",null,x(t.username),1),d(t)?(l(),p($,{key:0,type:"warning",effect:"light",size:"small"},{default:s(()=>[...e[2]||(e[2]=[o("VIP",-1)])]),_:1})):m("",!0)]),t.email?(l(),C("div",le,x(t.email),1)):m("",!0),V(t)?(l(),C("div",re,x(V(t)),1)):m("",!0)])]),_:1}),r(u,{label:"状态",width:"120"},{default:s(({row:t})=>[r($,{type:B(t.status).type,effect:"light"},{default:s(()=>[o(x(B(t.status).label),1)]),_:2},1032,["type"])]),_:1}),r(u,{label:"时间","min-width":"220"},{default:s(({row:t})=>[f("div",null,x(t.created_at),1),t.vip_expire_time?(l(),C("div",oe,"VIP到期: "+x(t.vip_expire_time),1)):m("",!0)]),_:1}),r(u,{label:"操作",width:"280",fixed:"right"},{default:s(({row:t})=>[f("div",ce,[t.status==="rejected"?(l(),p(i,{key:0,type:"success",size:"small",onClick:_=>z(t)},{default:s(()=>[...e[3]||(e[3]=[o("启用",-1)])]),_:1},8,["onClick"])):(l(),p(i,{key:1,type:"warning",size:"small",onClick:_=>S(t)},{default:s(()=>[...e[4]||(e[4]=[o("禁用",-1)])]),_:1},8,["onClick"])),r(A,{trigger:"click"},{dropdown:s(()=>[r(E,null,{default:s(()=>[d(t)?m("",!0):(l(),p(b,{key:0,onClick:_=>T(t,7)},{default:s(()=>[...e[6]||(e[6]=[o("开通一周",-1)])]),_:1},8,["onClick"])),d(t)?m("",!0):(l(),p(b,{key:1,onClick:_=>T(t,30)},{default:s(()=>[...e[7]||(e[7]=[o("开通一月",-1)])]),_:1},8,["onClick"])),d(t)?m("",!0):(l(),p(b,{key:2,onClick:_=>T(t,365)},{default:s(()=>[...e[8]||(e[8]=[o("开通一年",-1)])]),_:1},8,["onClick"])),d(t)?m("",!0):(l(),p(b,{key:3,onClick:_=>T(t,999999)},{default:s(()=>[...e[9]||(e[9]=[o("永久VIP",-1)])]),_:1},8,["onClick"])),d(t)?(l(),p(b,{key:4,onClick:_=>M(t)},{default:s(()=>[...e[10]||(e[10]=[o("移除VIP",-1)])]),_:1},8,["onClick"])):m("",!0)]),_:2},1024)]),default:s(()=>[r(i,{size:"small"},{default:s(()=>[...e[5]||(e[5]=[o("VIP",-1)])]),_:1})]),_:2},1024),r(i,{size:"small",onClick:_=>j(t)},{default:s(()=>[...e[11]||(e[11]=[o("重置密码",-1)])]),_:1},8,["onClick"]),r(i,{type:"danger",size:"small",onClick:_=>N(t)},{default:s(()=>[...e[12]||(e[12]=[o("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[W,c.value]])])]),_:1})])}}},pe=O(ue,[["__scopeId","data-v-d73d2b82"]]);export{pe as default}; diff --git a/static/admin/assets/UsersPage-DLsmihq2.js b/static/admin/assets/UsersPage-DLsmihq2.js new file mode 100644 index 0000000..2389e2b --- /dev/null +++ b/static/admin/assets/UsersPage-DLsmihq2.js @@ -0,0 +1 @@ +import{a as W,r as Z,s as J,b as K,c as F,d as G,f as H}from"./users-BxS2U-Si.js";import{_ as O,i as Q,r as I,o as X,f as y,I as Y,g as C,h as l,j as f,m as r,w as s,q as o,J as ee,B as p,n as m,p as x,K as k,L as v}from"./index-B9zsNTKQ.js";function D(g){if(!g)return null;if(g instanceof Date)return g;let a=String(g).trim();if(!a)return null;/^\d{4}-\d{2}-\d{2}$/.test(a)&&(a=`${a}T00:00:00`);let c=a.includes("T")?a:a.replace(" ","T");c=c.replace(/\.(\d{3})\d+/,".$1"),/([zZ]|[+-]\d{2}:\d{2})$/.test(c)||(c=`${c}+08:00`);const d=new Date(c);return Number.isNaN(d.getTime())?null:d}function U(g){const a=String(g||"");if(!a)return{ok:!1,message:"密码不能为空"};if(a.length<8)return{ok:!1,message:"密码长度不能少于8个字符"};if(a.length>128)return{ok:!1,message:"密码长度不能超过128个字符"};const c=/[a-zA-Z]/.test(a),h=/\d/.test(a);return!c||!h?{ok:!1,message:"密码必须包含字母和数字"}:{ok:!0,message:""}}const te={class:"page-stack"},ne={class:"app-page-title"},se={class:"table-wrap"},ae={class:"user-block"},ie={class:"user-main"},le={key:0,class:"app-muted user-sub"},re={key:1,class:"vip-sub"},oe={key:0,class:"app-muted"},ce={class:"actions"},ue={__name:"UsersPage",setup(g){const a=Q("refreshStats",null),c=I(!1),h=I([]);function d(n){const e=n?.vip_expire_time;if(!e)return!1;if(String(e).startsWith("2099-12-31"))return!0;const i=D(e);return i?i.getTime()>Date.now():!1}function V(n){const e=n?.vip_expire_time;if(!e||!d(n))return"";if(String(e).startsWith("2099-12-31"))return"永久VIP";const i=D(e);if(!i)return`到期: ${e}`;const u=Math.ceil((i.getTime()-Date.now())/(1e3*60*60*24));return`到期: ${e}(剩${u}天)`}function B(n){return n==="rejected"?{label:"禁用",type:"danger"}:{label:"正常",type:"success"}}async function w(){c.value=!0;try{h.value=await H()}catch{h.value=[]}finally{c.value=!1}}async function P(){await w()}async function z(n){try{await k.confirm(`确定启用用户「${n.username}」吗?启用后用户可正常登录。`,"启用用户",{confirmButtonText:"启用",cancelButtonText:"取消",type:"success"})}catch{return}try{await W(n.id),v.success("用户已启用"),await w(),await a?.()}catch{}}async function S(n){try{await k.confirm(`确定禁用用户「${n.username}」吗?禁用后用户将无法登录。`,"禁用用户",{confirmButtonText:"禁用",cancelButtonText:"取消",type:"warning"})}catch{return}try{await Z(n.id),v.success("用户已禁用"),await w(),await a?.()}catch{}}async function N(n){try{await k.confirm(`确定删除用户「${n.username}」吗?此操作将删除该用户的所有数据,不可恢复!`,"删除用户",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{await G(n.id),v.success("用户已删除"),await w(),await a?.()}catch{}}async function T(n,e){const i={7:"一周",30:"一个月",365:"一年",999999:"永久"}[e]||`${e}天`;try{await k.confirm(`确定为用户「${n.username}」开通 ${i} VIP 吗?`,"设置VIP",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const u=await J(n.id,e);v.success(u?.message||"VIP设置成功"),await w(),await a?.()}catch{}}async function M(n){try{await k.confirm(`确定移除用户「${n.username}」的 VIP 吗?`,"移除VIP",{confirmButtonText:"移除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await K(n.id);v.success(e?.message||"VIP已移除"),await w(),await a?.()}catch{}}async function j(n){let e;try{e=(await k.prompt("请输入新密码(至少8位且包含字母和数字)","重置密码",{confirmButtonText:"提交",cancelButtonText:"取消",inputType:"password",inputPlaceholder:"新密码",inputValidator:$=>U($).ok,inputErrorMessage:"密码至少8位且包含字母和数字"})).value}catch{return}const i=U(e);if(!i.ok){v.error(i.message);return}try{await k.confirm(`确定将用户「${n.username}」的密码重置为该新密码吗?`,"二次确认",{confirmButtonText:"确认重置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const u=await F(n.id,e);v.success(u?.message||"密码重置成功")}catch{}}return X(P),(n,e)=>{const i=y("el-button"),u=y("el-table-column"),$=y("el-tag"),b=y("el-dropdown-item"),E=y("el-dropdown-menu"),L=y("el-dropdown"),A=y("el-table"),R=y("el-card"),q=Y("loading");return l(),C("div",te,[f("div",ne,[e[1]||(e[1]=f("h2",null,"用户",-1)),f("div",null,[r(i,{onClick:P},{default:s(()=>[...e[0]||(e[0]=[o("刷新",-1)])]),_:1})])]),r(R,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[f("div",se,[ee((l(),p(A,{data:h.value,style:{width:"100%"}},{default:s(()=>[r(u,{prop:"id",label:"ID",width:"80"}),r(u,{label:"用户","min-width":"240"},{default:s(({row:t})=>[f("div",ae,[f("div",ie,[f("strong",null,x(t.username),1),d(t)?(l(),p($,{key:0,type:"warning",effect:"light",size:"small"},{default:s(()=>[...e[2]||(e[2]=[o("VIP",-1)])]),_:1})):m("",!0)]),t.email?(l(),C("div",le,x(t.email),1)):m("",!0),V(t)?(l(),C("div",re,x(V(t)),1)):m("",!0)])]),_:1}),r(u,{label:"状态",width:"120"},{default:s(({row:t})=>[r($,{type:B(t.status).type,effect:"light"},{default:s(()=>[o(x(B(t.status).label),1)]),_:2},1032,["type"])]),_:1}),r(u,{label:"时间","min-width":"220"},{default:s(({row:t})=>[f("div",null,x(t.created_at),1),t.vip_expire_time?(l(),C("div",oe,"VIP到期: "+x(t.vip_expire_time),1)):m("",!0)]),_:1}),r(u,{label:"操作",width:"280",fixed:"right"},{default:s(({row:t})=>[f("div",ce,[t.status==="rejected"?(l(),p(i,{key:0,type:"success",size:"small",onClick:_=>z(t)},{default:s(()=>[...e[3]||(e[3]=[o("启用",-1)])]),_:1},8,["onClick"])):(l(),p(i,{key:1,type:"warning",size:"small",onClick:_=>S(t)},{default:s(()=>[...e[4]||(e[4]=[o("禁用",-1)])]),_:1},8,["onClick"])),r(L,{trigger:"click"},{dropdown:s(()=>[r(E,null,{default:s(()=>[d(t)?m("",!0):(l(),p(b,{key:0,onClick:_=>T(t,7)},{default:s(()=>[...e[6]||(e[6]=[o("开通一周",-1)])]),_:1},8,["onClick"])),d(t)?m("",!0):(l(),p(b,{key:1,onClick:_=>T(t,30)},{default:s(()=>[...e[7]||(e[7]=[o("开通一月",-1)])]),_:1},8,["onClick"])),d(t)?m("",!0):(l(),p(b,{key:2,onClick:_=>T(t,365)},{default:s(()=>[...e[8]||(e[8]=[o("开通一年",-1)])]),_:1},8,["onClick"])),d(t)?m("",!0):(l(),p(b,{key:3,onClick:_=>T(t,999999)},{default:s(()=>[...e[9]||(e[9]=[o("永久VIP",-1)])]),_:1},8,["onClick"])),d(t)?(l(),p(b,{key:4,onClick:_=>M(t)},{default:s(()=>[...e[10]||(e[10]=[o("移除VIP",-1)])]),_:1},8,["onClick"])):m("",!0)]),_:2},1024)]),default:s(()=>[r(i,{size:"small"},{default:s(()=>[...e[5]||(e[5]=[o("VIP",-1)])]),_:1})]),_:2},1024),r(i,{size:"small",onClick:_=>j(t)},{default:s(()=>[...e[11]||(e[11]=[o("重置密码",-1)])]),_:1},8,["onClick"]),r(i,{type:"danger",size:"small",onClick:_=>N(t)},{default:s(()=>[...e[12]||(e[12]=[o("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[q,c.value]])])]),_:1})])}}},pe=O(ue,[["__scopeId","data-v-d73d2b82"]]);export{pe as default}; diff --git a/static/admin/assets/email-DSz2K4-y.js b/static/admin/assets/email-JmyL2jV4.js similarity index 86% rename from static/admin/assets/email-DSz2K4-y.js rename to static/admin/assets/email-JmyL2jV4.js index 60e7749..5911348 100644 --- a/static/admin/assets/email-DSz2K4-y.js +++ b/static/admin/assets/email-JmyL2jV4.js @@ -1 +1 @@ -import{P as n}from"./index-Dx-1XhY8.js";async function i(){const{data:a}=await n.get("/email/settings");return a}async function e(a){const{data:t}=await n.post("/email/settings",a);return t}async function c(){const{data:a}=await n.get("/email/stats");return a}async function o(a){const{data:t}=await n.get("/email/logs",{params:a});return t}async function l(a){const{data:t}=await n.post("/email/logs/cleanup",{days:a});return t}export{o as a,i as b,l as c,c as f,e as u}; +import{a as n}from"./index-B9zsNTKQ.js";async function i(){const{data:a}=await n.get("/email/settings");return a}async function e(a){const{data:t}=await n.post("/email/settings",a);return t}async function c(){const{data:a}=await n.get("/email/stats");return a}async function o(a){const{data:t}=await n.get("/email/logs",{params:a});return t}async function l(a){const{data:t}=await n.post("/email/logs/cleanup",{days:a});return t}export{o as a,i as b,l as c,c as f,e as u}; diff --git a/static/admin/assets/index-Dx-1XhY8.js b/static/admin/assets/index-B9zsNTKQ.js similarity index 99% rename from static/admin/assets/index-Dx-1XhY8.js rename to static/admin/assets/index-B9zsNTKQ.js index 74db6e5..970c634 100644 --- a/static/admin/assets/index-Dx-1XhY8.js +++ b/static/admin/assets/index-B9zsNTKQ.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ReportPage-DxDL6AXa.js","./email-DSz2K4-y.js","./tasks-yIlAy2Ne.js","./system-C_4M4EtK.js","./ReportPage-CW7RwLmI.css","./UsersPage-19tzoQBx.js","./users-BNPg4OEj.js","./UsersPage-CC4Unpwt.css","./FeedbacksPage-BlN6FFbD.js","./FeedbacksPage-BKNQYWPz.css","./LogsPage-adLViVmd.js","./LogsPage-Cmm-qHAH.css","./AnnouncementsPage-DP-v4_4f.js","./AnnouncementsPage-CjcC-aWD.css","./EmailPage-4etTfx9H.js","./EmailPage-BH6ksrcc.css","./SecurityPage-BkxWxQhW.js","./SecurityPage-CH3QeiaV.css","./SystemPage-Cph4odbt.js","./SystemPage-DhVR0HeO.css","./SettingsPage-D_cVneyv.js","./SettingsPage-DKTq8S2K.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ReportPage-nXQwTJlk.js","./email-JmyL2jV4.js","./tasks-DILta43B.js","./system-DIc9L1cQ.js","./ReportPage-D7trjjOv.css","./UsersPage-DLsmihq2.js","./users-BxS2U-Si.js","./UsersPage-CC4Unpwt.css","./FeedbacksPage-BEa--2pl.js","./FeedbacksPage-BKNQYWPz.css","./LogsPage-CQsGwFRH.js","./LogsPage-Cmm-qHAH.css","./AnnouncementsPage-C3uZDqOR.js","./AnnouncementsPage-CjcC-aWD.css","./EmailPage-DmFgLrFm.js","./EmailPage-BH6ksrcc.css","./SecurityPage-Czxm2GJx.js","./SecurityPage-CH3QeiaV.css","./SystemPage-BPHukDdR.js","./SystemPage-DhVR0HeO.css","./SettingsPage-IGV4in6c.js","./SettingsPage-DKTq8S2K.css"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))o(l);new MutationObserver(l=>{for(const a of l)if(a.type==="childList")for(const r of a.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&o(r)}).observe(document,{childList:!0,subtree:!0});function n(l){const a={};return l.integrity&&(a.integrity=l.integrity),l.referrerPolicy&&(a.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?a.credentials="include":l.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(l){if(l.ep)return;l.ep=!0;const a=n(l);fetch(l.href,a)}})();function Uv(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const Jt={},Kr=[],Nt=()=>{},Lw=()=>!1,Sd=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),qv=e=>e.startsWith("onUpdate:"),En=Object.assign,Yv=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},CT=Object.prototype.hasOwnProperty,Ot=(e,t)=>CT.call(e,t),ye=Array.isArray,Wr=e=>nu(e)==="[object Map]",Ed=e=>nu(e)==="[object Set]",Ta=e=>nu(e)==="[object Date]",ze=e=>typeof e=="function",Fe=e=>typeof e=="string",jo=e=>typeof e=="symbol",et=e=>e!==null&&typeof e=="object",ar=e=>(et(e)||ze(e))&&ze(e.then)&&ze(e.catch),Dw=Object.prototype.toString,nu=e=>Dw.call(e),ST=e=>nu(e).slice(8,-1),Ei=e=>nu(e)==="[object Object]",kd=e=>Fe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ri=Uv(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_d=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ET=/-\w/g,Zn=_d(e=>e.replace(ET,t=>t.slice(1).toUpperCase())),kT=/\B([A-Z])/g,Gl=_d(e=>e.replace(kT,"-$1").toLowerCase()),ou=_d(e=>e.charAt(0).toUpperCase()+e.slice(1)),si=_d(e=>e?`on${ou(e)}`:""),Sa=(e,t)=>!Object.is(e,t),rc=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},Gv=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Fw=e=>{const t=Fe(e)?Number(e):NaN;return isNaN(t)?e:t};let gg;const Td=()=>gg||(gg=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function We(e){if(ye(e)){const t={};for(let n=0;n{if(n){const o=n.split(TT);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function R(e){let t="";if(Fe(e))t=e;else if(ye(e))for(let n=0;nns(n,t))}const zw=e=>!!(e&&e.__v_isRef===!0),ke=e=>Fe(e)?e:e==null?"":ye(e)||et(e)&&(e.toString===Dw||!ze(e.toString))?zw(e)?ke(e.value):JSON.stringify(e,Kw,2):String(e),Kw=(e,t)=>zw(t)?Kw(e,t.value):Wr(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l],a)=>(n[_f(o,a)+" =>"]=l,n),{})}:Ed(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>_f(n))}:jo(t)?_f(t):et(t)&&!ye(t)&&!Ei(t)?String(t):t,_f=(e,t="")=>{var n;return jo(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ln;class Ww{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ln,!t&&Ln&&(this.index=(Ln.scopes||(Ln.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(Ln=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(ui){let t=ui;for(ui=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;ii;){let t=ii;for(ii=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function Xw(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Jw(e){let t,n=e.depsTail,o=n;for(;o;){const l=o.prevDep;o.version===-1?(o===n&&(n=l),Zv(o),xT(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=n}function gp(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Zw(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Zw(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ki)||(e.globalVersion=ki,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!gp(e))))return;e.flags|=2;const t=e.dep,n=tn,o=Ho;tn=e,Ho=!0;try{Xw(e);const l=e.fn(e._value);(t.version===0||Sa(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{tn=n,Ho=o,Jw(e),e.flags&=-3}}function Zv(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)Zv(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function xT(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Ho=!0;const Qw=[];function Hl(){Qw.push(Ho),Ho=!1}function zl(){const e=Qw.pop();Ho=e===void 0?!0:e}function bg(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=tn;tn=void 0;try{t()}finally{tn=n}}}let ki=0,MT=class{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}};class Od{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!tn||!Ho||tn===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==tn)n=this.activeLink=new MT(tn,this),tn.deps?(n.prevDep=tn.depsTail,tn.depsTail.nextDep=n,tn.depsTail=n):tn.deps=tn.depsTail=n,e1(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=tn.depsTail,n.nextDep=void 0,tn.depsTail.nextDep=n,tn.depsTail=n,tn.deps===n&&(tn.deps=o)}return n}trigger(t){this.version++,ki++,this.notify(t)}notify(t){Xv();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Jv()}}}function e1(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)e1(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Bc=new WeakMap,Za=Symbol(""),bp=Symbol(""),_i=Symbol("");function Bn(e,t,n){if(Ho&&tn){let o=Bc.get(e);o||Bc.set(e,o=new Map);let l=o.get(n);l||(o.set(n,l=new Od),l.map=o,l.key=n),l.track()}}function xl(e,t,n,o,l,a){const r=Bc.get(e);if(!r){ki++;return}const i=u=>{u&&u.trigger()};if(Xv(),t==="clear")r.forEach(i);else{const u=ye(e),c=u&&kd(n);if(u&&n==="length"){const d=Number(o);r.forEach((f,v)=>{(v==="length"||v===_i||!jo(v)&&v>=d)&&i(f)})}else switch((n!==void 0||r.has(void 0))&&i(r.get(n)),c&&i(r.get(_i)),t){case"add":u?c&&i(r.get("length")):(i(r.get(Za)),Wr(e)&&i(r.get(bp)));break;case"delete":u||(i(r.get(Za)),Wr(e)&&i(r.get(bp)));break;case"set":Wr(e)&&i(r.get(Za));break}}Jv()}function AT(e,t){const n=Bc.get(e);return n&&n.get(t)}function Or(e){const t=Ft(e);return t===e?t:(Bn(t,"iterate",_i),bo(e)?t:t.map(Uo))}function $d(e){return Bn(e=Ft(e),"iterate",_i),e}function fa(e,t){return Kl(e)?Qa(e)?os(Uo(t)):os(t):Uo(t)}const LT={__proto__:null,[Symbol.iterator](){return Of(this,Symbol.iterator,e=>fa(this,e))},concat(...e){return Or(this).concat(...e.map(t=>ye(t)?Or(t):t))},entries(){return Of(this,"entries",e=>(e[1]=fa(this,e[1]),e))},every(e,t){return Ol(this,"every",e,t,void 0,arguments)},filter(e,t){return Ol(this,"filter",e,t,n=>n.map(o=>fa(this,o)),arguments)},find(e,t){return Ol(this,"find",e,t,n=>fa(this,n),arguments)},findIndex(e,t){return Ol(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ol(this,"findLast",e,t,n=>fa(this,n),arguments)},findLastIndex(e,t){return Ol(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ol(this,"forEach",e,t,void 0,arguments)},includes(...e){return $f(this,"includes",e)},indexOf(...e){return $f(this,"indexOf",e)},join(e){return Or(this).join(e)},lastIndexOf(...e){return $f(this,"lastIndexOf",e)},map(e,t){return Ol(this,"map",e,t,void 0,arguments)},pop(){return zs(this,"pop")},push(...e){return zs(this,"push",e)},reduce(e,...t){return yg(this,"reduce",e,t)},reduceRight(e,...t){return yg(this,"reduceRight",e,t)},shift(){return zs(this,"shift")},some(e,t){return Ol(this,"some",e,t,void 0,arguments)},splice(...e){return zs(this,"splice",e)},toReversed(){return Or(this).toReversed()},toSorted(e){return Or(this).toSorted(e)},toSpliced(...e){return Or(this).toSpliced(...e)},unshift(...e){return zs(this,"unshift",e)},values(){return Of(this,"values",e=>fa(this,e))}};function Of(e,t,n){const o=$d(e),l=o[t]();return o!==e&&!bo(e)&&(l._next=l.next,l.next=()=>{const a=l._next();return a.done||(a.value=n(a.value)),a}),l}const DT=Array.prototype;function Ol(e,t,n,o,l,a){const r=$d(e),i=r!==e&&!bo(e),u=r[t];if(u!==DT[t]){const f=u.apply(e,a);return i?Uo(f):f}let c=n;r!==e&&(i?c=function(f,v){return n.call(this,fa(e,f),v,e)}:n.length>2&&(c=function(f,v){return n.call(this,f,v,e)}));const d=u.call(r,c,o);return i&&l?l(d):d}function yg(e,t,n,o){const l=$d(e);let a=n;return l!==e&&(bo(e)?n.length>3&&(a=function(r,i,u){return n.call(this,r,i,u,e)}):a=function(r,i,u){return n.call(this,r,fa(e,i),u,e)}),l[t](a,...o)}function $f(e,t,n){const o=Ft(e);Bn(o,"iterate",_i);const l=o[t](...n);return(l===-1||l===!1)&&Nd(n[0])?(n[0]=Ft(n[0]),o[t](...n)):l}function zs(e,t,n=[]){Hl(),Xv();const o=Ft(e)[t].apply(e,n);return Jv(),zl(),o}const BT=Uv("__proto__,__v_isRef,__isVue"),t1=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(jo));function FT(e){jo(e)||(e=String(e));const t=Ft(this);return Bn(t,"has",e),t.hasOwnProperty(e)}class n1{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return a;if(n==="__v_raw")return o===(l?a?GT:r1:a?a1:l1).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const r=ye(t);if(!l){let u;if(r&&(u=LT[n]))return u;if(n==="hasOwnProperty")return FT}const i=Reflect.get(t,n,Kt(t)?t:o);if((jo(n)?t1.has(n):BT(n))||(l||Bn(t,"get",n),a))return i;if(Kt(i)){const u=r&&kd(n)?i:i.value;return l&&et(u)?rr(u):u}return et(i)?l?rr(i):_t(i):i}}class o1 extends n1{constructor(t=!1){super(!1,t)}set(t,n,o,l){let a=t[n];const r=ye(t)&&kd(n);if(!this._isShallow){const c=Kl(a);if(!bo(o)&&!Kl(o)&&(a=Ft(a),o=Ft(o)),!r&&Kt(a)&&!Kt(o))return c||(a.value=o),!0}const i=r?Number(n)e,Du=e=>Reflect.getPrototypeOf(e);function WT(e,t,n){return function(...o){const l=this.__v_raw,a=Ft(l),r=Wr(a),i=e==="entries"||e===Symbol.iterator&&r,u=e==="keys"&&r,c=l[e](...o),d=n?yp:t?os:Uo;return!t&&Bn(a,"iterate",u?bp:Za),{next(){const{value:f,done:v}=c.next();return v?{value:f,done:v}:{value:i?[d(f[0]),d(f[1])]:d(f),done:v}},[Symbol.iterator](){return this}}}}function Bu(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function jT(e,t){const n={get(l){const a=this.__v_raw,r=Ft(a),i=Ft(l);e||(Sa(l,i)&&Bn(r,"get",l),Bn(r,"get",i));const{has:u}=Du(r),c=t?yp:e?os:Uo;if(u.call(r,l))return c(a.get(l));if(u.call(r,i))return c(a.get(i));a!==r&&a.get(l)},get size(){const l=this.__v_raw;return!e&&Bn(Ft(l),"iterate",Za),l.size},has(l){const a=this.__v_raw,r=Ft(a),i=Ft(l);return e||(Sa(l,i)&&Bn(r,"has",l),Bn(r,"has",i)),l===i?a.has(l):a.has(l)||a.has(i)},forEach(l,a){const r=this,i=r.__v_raw,u=Ft(i),c=t?yp:e?os:Uo;return!e&&Bn(u,"iterate",Za),i.forEach((d,f)=>l.call(a,c(d),c(f),r))}};return En(n,e?{add:Bu("add"),set:Bu("set"),delete:Bu("delete"),clear:Bu("clear")}:{add(l){!t&&!bo(l)&&!Kl(l)&&(l=Ft(l));const a=Ft(this);return Du(a).has.call(a,l)||(a.add(l),xl(a,"add",l,l)),this},set(l,a){!t&&!bo(a)&&!Kl(a)&&(a=Ft(a));const r=Ft(this),{has:i,get:u}=Du(r);let c=i.call(r,l);c||(l=Ft(l),c=i.call(r,l));const d=u.call(r,l);return r.set(l,a),c?Sa(a,d)&&xl(r,"set",l,a):xl(r,"add",l,a),this},delete(l){const a=Ft(this),{has:r,get:i}=Du(a);let u=r.call(a,l);u||(l=Ft(l),u=r.call(a,l)),i&&i.call(a,l);const c=a.delete(l);return u&&xl(a,"delete",l,void 0),c},clear(){const l=Ft(this),a=l.size!==0,r=l.clear();return a&&xl(l,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=WT(l,e,t)}),n}function Qv(e,t){const n=jT(e,t);return(o,l,a)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(Ot(n,l)&&l in o?n:o,l,a)}const UT={get:Qv(!1,!1)},qT={get:Qv(!1,!0)},YT={get:Qv(!0,!1)};const l1=new WeakMap,a1=new WeakMap,r1=new WeakMap,GT=new WeakMap;function XT(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function JT(e){return e.__v_skip||!Object.isExtensible(e)?0:XT(ST(e))}function _t(e){return Kl(e)?e:eh(e,!1,HT,UT,l1)}function Rd(e){return eh(e,!1,KT,qT,a1)}function rr(e){return eh(e,!0,zT,YT,r1)}function eh(e,t,n,o,l){if(!et(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=JT(e);if(a===0)return e;const r=l.get(e);if(r)return r;const i=new Proxy(e,a===2?o:n);return l.set(e,i),i}function Qa(e){return Kl(e)?Qa(e.__v_raw):!!(e&&e.__v_isReactive)}function Kl(e){return!!(e&&e.__v_isReadonly)}function bo(e){return!!(e&&e.__v_isShallow)}function Nd(e){return e?!!e.__v_raw:!1}function Ft(e){const t=e&&e.__v_raw;return t?Ft(t):e}function Dl(e){return!Ot(e,"__v_skip")&&Object.isExtensible(e)&&Bw(e,"__v_skip",!0),e}const Uo=e=>et(e)?_t(e):e,os=e=>et(e)?rr(e):e;function Kt(e){return e?e.__v_isRef===!0:!1}function L(e){return s1(e,!1)}function Wt(e){return s1(e,!0)}function s1(e,t){return Kt(e)?e:new ZT(e,t)}class ZT{constructor(t,n){this.dep=new Od,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Ft(t),this._value=n?t:Uo(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||bo(t)||Kl(t);t=o?t:Ft(t),Sa(t,n)&&(this._rawValue=t,this._value=o?t:Uo(t),this.dep.trigger())}}function sc(e){e.dep&&e.dep.trigger()}function s(e){return Kt(e)?e.value:e}const QT={get:(e,t,n)=>t==="__v_raw"?e:s(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return Kt(l)&&!Kt(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function i1(e){return Qa(e)?e:new Proxy(e,QT)}class eO{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Od,{get:o,set:l}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function tO(e){return new eO(e)}function mn(e){const t=ye(e)?new Array(e.length):{};for(const n in e)t[n]=u1(e,n);return t}class nO{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._raw=Ft(t);let l=!0,a=t;if(!ye(t)||!kd(String(n)))do l=!Nd(a)||bo(a);while(l&&(a=a.__v_raw));this._shallow=l}get value(){let t=this._object[this._key];return this._shallow&&(t=s(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Kt(this._raw[this._key])){const n=this._object[this._key];if(Kt(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return AT(this._raw,this._key)}}class oO{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function $t(e,t,n){return Kt(e)?e:ze(e)?new oO(e):et(e)&&arguments.length>1?u1(e,t,n):L(e)}function u1(e,t,n){return new nO(e,t,n)}class lO{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Od(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ki-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&tn!==this)return Gw(this,!0),!0}get value(){const t=this.dep.track();return Zw(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function aO(e,t,n=!1){let o,l;return ze(e)?o=e:(o=e.get,l=e.set),new lO(o,l,n)}const Fu={},Fc=new WeakMap;let Va;function rO(e,t=!1,n=Va){if(n){let o=Fc.get(n);o||Fc.set(n,o=[]),o.push(e)}}function sO(e,t,n=Jt){const{immediate:o,deep:l,once:a,scheduler:r,augmentJob:i,call:u}=n,c=w=>l?w:bo(w)||l===!1||l===0?Ml(w,1):Ml(w);let d,f,v,p,m=!1,h=!1;if(Kt(e)?(f=()=>e.value,m=bo(e)):Qa(e)?(f=()=>c(e),m=!0):ye(e)?(h=!0,m=e.some(w=>Qa(w)||bo(w)),f=()=>e.map(w=>{if(Kt(w))return w.value;if(Qa(w))return c(w);if(ze(w))return u?u(w,2):w()})):ze(e)?t?f=u?()=>u(e,2):e:f=()=>{if(v){Hl();try{v()}finally{zl()}}const w=Va;Va=d;try{return u?u(e,3,[p]):e(p)}finally{Va=w}}:f=Nt,t&&l){const w=f,E=l===!0?1/0:l;f=()=>Ml(w(),E)}const g=jw(),b=()=>{d.stop(),g&&g.active&&Yv(g.effects,d)};if(a&&t){const w=t;t=(...E)=>{w(...E),b()}}let C=h?new Array(e.length).fill(Fu):Fu;const y=w=>{if(!(!(d.flags&1)||!d.dirty&&!w))if(t){const E=d.run();if(l||m||(h?E.some((k,T)=>Sa(k,C[T])):Sa(E,C))){v&&v();const k=Va;Va=d;try{const T=[E,C===Fu?void 0:h&&C[0]===Fu?[]:C,p];C=E,u?u(t,3,T):t(...T)}finally{Va=k}}}else d.run()};return i&&i(y),d=new qw(f),d.scheduler=r?()=>r(y,!1):y,p=w=>rO(w,!1,d),v=d.onStop=()=>{const w=Fc.get(d);if(w){if(u)u(w,4);else for(const E of w)E();Fc.delete(d)}},t?o?y(!0):C=d.run():r?r(y.bind(null,!0),!0):d.run(),b.pause=d.pause.bind(d),b.resume=d.resume.bind(d),b.stop=b,b}function Ml(e,t=1/0,n){if(t<=0||!et(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Kt(e))Ml(e.value,t,n);else if(ye(e))for(let o=0;o{Ml(o,t,n)});else if(Ei(e)){for(const o in e)Ml(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Ml(e[o],t,n)}return e}function lu(e,t,n,o){try{return o?e(...o):e()}catch(l){au(l,t,n)}}function qo(e,t,n,o){if(ze(e)){const l=lu(e,t,n,o);return l&&ar(l)&&l.catch(a=>{au(a,t,n)}),l}if(ye(e)){const l=[];for(let a=0;a>>1,l=Xn[o],a=Ti(l);a=Ti(n)?Xn.push(e):Xn.splice(uO(t),0,e),e.flags|=1,d1()}}function d1(){Vc||(Vc=c1.then(p1))}function wp(e){ye(e)?jr.push(...e):pa&&e.id===-1?pa.splice(Ar+1,0,e):e.flags&1||(jr.push(e),e.flags|=1),d1()}function wg(e,t,n=dl+1){for(;nTi(n)-Ti(o));if(jr.length=0,pa){pa.push(...t);return}for(pa=t,Ar=0;Are.id==null?e.flags&2?-1:1/0:e.id;function p1(e){try{for(dl=0;dl{o._d&&Wc(-1);const a=Hc(t);let r;try{r=e(...l)}finally{Hc(a),o._d&&Wc(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function nt(e,t){if(Nn===null)return e;const n=Dd(Nn),o=e.dirs||(e.dirs=[]);for(let l=0;le.__isTeleport,ci=e=>e&&(e.disabled||e.disabled===""),Cg=e=>e&&(e.defer||e.defer===""),Sg=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Eg=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Cp=(e,t)=>{const n=e&&e.to;return Fe(n)?t?t(n):null:n},g1={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,a,r,i,u,c){const{mc:d,pc:f,pbc:v,o:{insert:p,querySelector:m,createText:h,createComment:g}}=c,b=ci(t.props);let{shapeFlag:C,children:y,dynamicChildren:w}=t;if(e==null){const E=t.el=h(""),k=t.anchor=h("");p(E,n,o),p(k,n,o);const T=(N,O)=>{C&16&&d(y,N,O,l,a,r,i,u)},x=()=>{const N=t.target=Cp(t.props,m),O=b1(N,t,h,p);N&&(r!=="svg"&&Sg(N)?r="svg":r!=="mathml"&&Eg(N)&&(r="mathml"),l&&l.isCE&&(l.ce._teleportTargets||(l.ce._teleportTargets=new Set)).add(N),b||(T(N,O),ic(t,!1)))};b&&(T(n,k),ic(t,!0)),Cg(t.props)?(t.el.__isMounted=!1,Mn(()=>{x(),delete t.el.__isMounted},a)):x()}else{if(Cg(t.props)&&e.el.__isMounted===!1){Mn(()=>{g1.process(e,t,n,o,l,a,r,i,u,c)},a);return}t.el=e.el,t.targetStart=e.targetStart;const E=t.anchor=e.anchor,k=t.target=e.target,T=t.targetAnchor=e.targetAnchor,x=ci(e.props),N=x?n:k,O=x?E:T;if(r==="svg"||Sg(k)?r="svg":(r==="mathml"||Eg(k))&&(r="mathml"),w?(v(e.dynamicChildren,w,N,l,a,r,i),ch(e,t,!0)):u||f(e,t,N,O,l,a,r,i,!1),b)x?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Vu(t,n,E,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const I=t.target=Cp(t.props,m);I&&Vu(t,I,null,c,0)}else x&&Vu(t,k,T,c,1);ic(t,b)}},remove(e,t,n,{um:o,o:{remove:l}},a){const{shapeFlag:r,children:i,anchor:u,targetStart:c,targetAnchor:d,target:f,props:v}=e;if(f&&(l(c),l(d)),a&&l(u),r&16){const p=a||!ci(v);for(let m=0;m{e.isMounted=!0}),Rt(()=>{e.isUnmounting=!0}),e}const Eo=[Function,Array],w1={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Eo,onEnter:Eo,onAfterEnter:Eo,onEnterCancelled:Eo,onBeforeLeave:Eo,onLeave:Eo,onAfterLeave:Eo,onLeaveCancelled:Eo,onBeforeAppear:Eo,onAppear:Eo,onAfterAppear:Eo,onAppearCancelled:Eo},C1=e=>{const t=e.subTree;return t.component?C1(t.component):t},fO={name:"BaseTransition",props:w1,setup(e,{slots:t}){const n=it(),o=y1();return()=>{const l=t.default&&nh(t.default(),!0);if(!l||!l.length)return;const a=S1(l),r=Ft(e),{mode:i}=r;if(o.isLeaving)return Rf(a);const u=kg(a);if(!u)return Rf(a);let c=Oi(u,r,o,n,f=>c=f);u.type!==on&&sr(u,c);let d=n.subTree&&kg(n.subTree);if(d&&d.type!==on&&!fl(d,u)&&C1(n).type!==on){let f=Oi(d,r,o,n);if(sr(d,f),i==="out-in"&&u.type!==on)return o.isLeaving=!0,f.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,d=void 0},Rf(a);i==="in-out"&&u.type!==on?f.delayLeave=(v,p,m)=>{const h=E1(o,d);h[String(d.key)]=d,v[Il]=()=>{p(),v[Il]=void 0,delete c.delayedLeave,d=void 0},c.delayedLeave=()=>{m(),delete c.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return a}}};function S1(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==on){t=n;break}}return t}const pO=fO;function E1(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function Oi(e,t,n,o,l){const{appear:a,mode:r,persisted:i=!1,onBeforeEnter:u,onEnter:c,onAfterEnter:d,onEnterCancelled:f,onBeforeLeave:v,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:b,onAfterAppear:C,onAppearCancelled:y}=t,w=String(e.key),E=E1(n,e),k=(N,O)=>{N&&qo(N,o,9,O)},T=(N,O)=>{const I=O[1];k(N,O),ye(N)?N.every(P=>P.length<=1)&&I():N.length<=1&&I()},x={mode:r,persisted:i,beforeEnter(N){let O=u;if(!n.isMounted)if(a)O=g||u;else return;N[Il]&&N[Il](!0);const I=E[w];I&&fl(e,I)&&I.el[Il]&&I.el[Il](),k(O,[N])},enter(N){let O=c,I=d,P=f;if(!n.isMounted)if(a)O=b||c,I=C||d,P=y||f;else return;let K=!1;const B=N[Hu]=Y=>{K||(K=!0,Y?k(P,[N]):k(I,[N]),x.delayedLeave&&x.delayedLeave(),N[Hu]=void 0)};O?T(O,[N,B]):B()},leave(N,O){const I=String(e.key);if(N[Hu]&&N[Hu](!0),n.isUnmounting)return O();k(v,[N]);let P=!1;const K=N[Il]=B=>{P||(P=!0,O(),B?k(h,[N]):k(m,[N]),N[Il]=void 0,E[I]===e&&delete E[I])};E[I]=e,p?T(p,[N,K]):K()},clone(N){const O=Oi(N,t,n,o,l);return l&&l(O),O}};return x}function Rf(e){if(Id(e))return e=Wl(e),e.children=null,e}function kg(e){if(!Id(e))return m1(e.type)&&e.children?S1(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ze(n.default))return n.default()}}function sr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,sr(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nh(e,t=!1,n){let o=[],l=0;for(let a=0;a1)for(let a=0;adi(m,t&&(ye(t)?t[h]:t),n,o,l));return}if(Ur(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&di(e,t,n,o.component.subTree);return}const a=o.shapeFlag&4?Dd(o.component):o.el,r=l?null:a,{i,r:u}=e,c=t&&t.r,d=i.refs===Jt?i.refs={}:i.refs,f=i.setupState,v=Ft(f),p=f===Jt?Lw:m=>Ot(v,m);if(c!=null&&c!==u){if(_g(t),Fe(c))d[c]=null,p(c)&&(f[c]=null);else if(Kt(c)){c.value=null;const m=t;m.k&&(d[m.k]=null)}}if(ze(u))lu(u,i,12,[r,d]);else{const m=Fe(u),h=Kt(u);if(m||h){const g=()=>{if(e.f){const b=m?p(u)?f[u]:d[u]:u.value;if(l)ye(b)&&Yv(b,a);else if(ye(b))b.includes(a)||b.push(a);else if(m)d[u]=[a],p(u)&&(f[u]=d[u]);else{const C=[a];u.value=C,e.k&&(d[e.k]=C)}}else m?(d[u]=r,p(u)&&(f[u]=r)):h&&(u.value=r,e.k&&(d[e.k]=r))};if(r){const b=()=>{g(),zc.delete(e)};b.id=-1,zc.set(e,b),Mn(b,n)}else _g(e),g()}}}function _g(e){const t=zc.get(e);t&&(t.flags|=8,zc.delete(e))}Td().requestIdleCallback;Td().cancelIdleCallback;const Ur=e=>!!e.type.__asyncLoader,Id=e=>e.type.__isKeepAlive;function Pd(e,t){T1(e,"a",t)}function _1(e,t){T1(e,"da",t)}function T1(e,t,n=Fn){const o=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(xd(t,o,n),n){let l=n.parent;for(;l&&l.parent;)Id(l.parent.vnode)&&vO(o,t,n,l),l=l.parent}}function vO(e,t,n,o){const l=xd(t,e,o,!0);_s(()=>{Yv(o[t],l)},n)}function xd(e,t,n=Fn,o=!1){if(n){const l=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...r)=>{Hl();const i=ru(n),u=qo(t,n,e,r);return i(),zl(),u});return o?l.unshift(a):l.push(a),a}}const Xl=e=>(t,n=Fn)=>{(!Ri||e==="sp")&&xd(e,(...o)=>t(...o),n)},Md=Xl("bm"),rt=Xl("m"),oh=Xl("bu"),el=Xl("u"),Rt=Xl("bum"),_s=Xl("um"),hO=Xl("sp"),mO=Xl("rtg"),gO=Xl("rtc");function bO(e,t=Fn){xd("ec",e,t)}const lh="components",yO="directives";function ft(e,t){return ah(lh,e,!0,t)||e}const O1=Symbol.for("v-ndc");function at(e){return Fe(e)?ah(lh,e,!1)||e:e||O1}function Ad(e){return ah(yO,e)}function ah(e,t,n=!0,o=!1){const l=Nn||Fn;if(l){const a=l.type;if(e===lh){const i=c$(a,!1);if(i&&(i===t||i===Zn(t)||i===ou(Zn(t))))return a}const r=Tg(l[e]||a[e],t)||Tg(l.appContext[e],t);return!r&&o?a:r}}function Tg(e,t){return e&&(e[t]||e[Zn(t)]||e[ou(Zn(t))])}function mt(e,t,n,o){let l;const a=n,r=ye(e);if(r||Fe(e)){const i=r&&Qa(e);let u=!1,c=!1;i&&(u=!bo(e),c=Kl(e),e=$d(e)),l=new Array(e.length);for(let d=0,f=e.length;dt(i,u,void 0,a));else{const i=Object.keys(e);l=new Array(i.length);for(let u=0,c=i.length;u{const a=o.fn(...l);return a&&(a.key=o.key),a}:o.fn)}return e}function oe(e,t,n={},o,l){if(Nn.ce||Nn.parent&&Ur(Nn.parent)&&Nn.parent.ce){const c=Object.keys(n).length>0;return t!=="default"&&(n.name=t),_(),ie(He,null,[J("slot",n,o&&o())],c?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),_();const r=a&&$1(a(n)),i=n.key||r&&r.key,u=ie(He,{key:(i&&!jo(i)?i:`_${t}`)+(!r&&o?"_fb":"")},r||(o?o():[]),r&&e._===1?64:-2);return u.scopeId&&(u.slotScopeIds=[u.scopeId+"-s"]),a&&a._c&&(a._d=!0),u}function $1(e){return e.some(t=>Vt(t)?!(t.type===on||t.type===He&&!$1(t.children)):!0)?e:null}function wO(e,t){const n={};for(const o in e)n[si(o)]=e[o];return n}const Sp=e=>e?G1(e)?Dd(e):Sp(e.parent):null,fi=En(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Sp(e.parent),$root:e=>Sp(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>I1(e),$forceUpdate:e=>e.f||(e.f=()=>{th(e.update)}),$nextTick:e=>e.n||(e.n=Le.bind(e.proxy)),$watch:e=>IO.bind(e)}),Nf=(e,t)=>e!==Jt&&!e.__isScriptSetup&&Ot(e,t),CO={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:l,props:a,accessCache:r,type:i,appContext:u}=e;if(t[0]!=="$"){const v=r[t];if(v!==void 0)switch(v){case 1:return o[t];case 2:return l[t];case 4:return n[t];case 3:return a[t]}else{if(Nf(o,t))return r[t]=1,o[t];if(l!==Jt&&Ot(l,t))return r[t]=2,l[t];if(Ot(a,t))return r[t]=3,a[t];if(n!==Jt&&Ot(n,t))return r[t]=4,n[t];Ep&&(r[t]=0)}}const c=fi[t];let d,f;if(c)return t==="$attrs"&&Bn(e.attrs,"get",""),c(e);if((d=i.__cssModules)&&(d=d[t]))return d;if(n!==Jt&&Ot(n,t))return r[t]=4,n[t];if(f=u.config.globalProperties,Ot(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:l,ctx:a}=e;return Nf(l,t)?(l[t]=n,!0):o!==Jt&&Ot(o,t)?(o[t]=n,!0):Ot(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:l,props:a,type:r}},i){let u;return!!(n[i]||e!==Jt&&i[0]!=="$"&&Ot(e,i)||Nf(t,i)||Ot(a,i)||Ot(o,i)||Ot(fi,i)||Ot(l.config.globalProperties,i)||(u=r.__cssModules)&&u[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ot(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function cn(){return R1().slots}function Jl(){return R1().attrs}function R1(e){const t=it();return t.setupContext||(t.setupContext=J1(t))}function Og(e){return ye(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ep=!0;function SO(e){const t=I1(e),n=e.proxy,o=e.ctx;Ep=!1,t.beforeCreate&&$g(t.beforeCreate,e,"bc");const{data:l,computed:a,methods:r,watch:i,provide:u,inject:c,created:d,beforeMount:f,mounted:v,beforeUpdate:p,updated:m,activated:h,deactivated:g,beforeDestroy:b,beforeUnmount:C,destroyed:y,unmounted:w,render:E,renderTracked:k,renderTriggered:T,errorCaptured:x,serverPrefetch:N,expose:O,inheritAttrs:I,components:P,directives:K,filters:B}=t;if(c&&EO(c,o,null),r)for(const A in r){const $=r[A];ze($)&&(o[A]=$.bind(n))}if(l){const A=l.call(n,n);et(A)&&(e.data=_t(A))}if(Ep=!0,a)for(const A in a){const $=a[A],D=ze($)?$.bind(n,n):ze($.get)?$.get.bind(n,n):Nt,V=!ze($)&&ze($.set)?$.set.bind(n):Nt,H=S({get:D,set:V});Object.defineProperty(o,A,{enumerable:!0,configurable:!0,get:()=>H.value,set:W=>H.value=W})}if(i)for(const A in i)N1(i[A],o,n,A);if(u){const A=ze(u)?u.call(n):u;Reflect.ownKeys(A).forEach($=>{ut($,A[$])})}d&&$g(d,e,"c");function M(A,$){ye($)?$.forEach(D=>A(D.bind(n))):$&&A($.bind(n))}if(M(Md,f),M(rt,v),M(oh,p),M(el,m),M(Pd,h),M(_1,g),M(bO,x),M(gO,k),M(mO,T),M(Rt,C),M(_s,w),M(hO,N),ye(O))if(O.length){const A=e.exposed||(e.exposed={});O.forEach($=>{Object.defineProperty(A,$,{get:()=>n[$],set:D=>n[$]=D,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===Nt&&(e.render=E),I!=null&&(e.inheritAttrs=I),P&&(e.components=P),K&&(e.directives=K),N&&k1(e)}function EO(e,t,n=Nt){ye(e)&&(e=kp(e));for(const o in e){const l=e[o];let a;et(l)?"default"in l?a=Pe(l.from||o,l.default,!0):a=Pe(l.from||o):a=Pe(l),Kt(a)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>a.value,set:r=>a.value=r}):t[o]=a}}function $g(e,t,n){qo(ye(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function N1(e,t,n,o){let l=o.includes(".")?x1(n,o):()=>n[o];if(Fe(e)){const a=t[e];ze(a)&&pe(l,a)}else if(ze(e))pe(l,e.bind(n));else if(et(e))if(ye(e))e.forEach(a=>N1(a,t,n,o));else{const a=ze(e.handler)?e.handler.bind(n):t[e.handler];ze(a)&&pe(l,a,e)}}function I1(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:l,optionsCache:a,config:{optionMergeStrategies:r}}=e.appContext,i=a.get(t);let u;return i?u=i:!l.length&&!n&&!o?u=t:(u={},l.length&&l.forEach(c=>Kc(u,c,r,!0)),Kc(u,t,r)),et(t)&&a.set(t,u),u}function Kc(e,t,n,o=!1){const{mixins:l,extends:a}=t;a&&Kc(e,a,n,!0),l&&l.forEach(r=>Kc(e,r,n,!0));for(const r in t)if(!(o&&r==="expose")){const i=kO[r]||n&&n[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const kO={data:Rg,props:Ng,emits:Ng,methods:ti,computed:ti,beforeCreate:Yn,created:Yn,beforeMount:Yn,mounted:Yn,beforeUpdate:Yn,updated:Yn,beforeDestroy:Yn,beforeUnmount:Yn,destroyed:Yn,unmounted:Yn,activated:Yn,deactivated:Yn,errorCaptured:Yn,serverPrefetch:Yn,components:ti,directives:ti,watch:TO,provide:Rg,inject:_O};function Rg(e,t){return t?e?function(){return En(ze(e)?e.call(this,this):e,ze(t)?t.call(this,this):t)}:t:e}function _O(e,t){return ti(kp(e),kp(t))}function kp(e){if(ye(e)){const t={};for(let n=0;n1)return n&&ze(t)?t.call(o&&o.proxy):t}}const RO=Symbol.for("v-scx"),NO=()=>Pe(RO);function Kn(e,t){return rh(e,null,t)}function pe(e,t,n){return rh(e,t,n)}function rh(e,t,n=Jt){const{immediate:o,deep:l,flush:a,once:r}=n,i=En({},n),u=t&&o||!t&&a!=="post";let c;if(Ri){if(a==="sync"){const p=NO();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!u){const p=()=>{};return p.stop=Nt,p.resume=Nt,p.pause=Nt,p}}const d=Fn;i.call=(p,m,h)=>qo(p,d,m,h);let f=!1;a==="post"?i.scheduler=p=>{Mn(p,d&&d.suspense)}:a!=="sync"&&(f=!0,i.scheduler=(p,m)=>{m?p():th(p)}),i.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,d&&(p.id=d.uid,p.i=d))};const v=sO(e,t,i);return Ri&&(c?c.push(v):u&&v()),v}function IO(e,t,n){const o=this.proxy,l=Fe(e)?e.includes(".")?x1(o,e):()=>o[e]:e.bind(o,o);let a;ze(t)?a=t:(a=t.handler,n=t);const r=ru(this),i=rh(l,a.bind(o),n);return r(),i}function x1(e,t){const n=t.split(".");return()=>{let o=e;for(let l=0;lt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Zn(t)}Modifiers`]||e[`${Gl(t)}Modifiers`];function xO(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||Jt;let l=n;const a=t.startsWith("update:"),r=a&&PO(o,t.slice(7));r&&(r.trim&&(l=n.map(d=>Fe(d)?d.trim():d)),r.number&&(l=n.map(Gv)));let i,u=o[i=si(t)]||o[i=si(Zn(t))];!u&&a&&(u=o[i=si(Gl(t))]),u&&qo(u,e,6,l);const c=o[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,qo(c,e,6,l)}}const MO=new WeakMap;function M1(e,t,n=!1){const o=n?MO:t.emitsCache,l=o.get(e);if(l!==void 0)return l;const a=e.emits;let r={},i=!1;if(!ze(e)){const u=c=>{const d=M1(c,t,!0);d&&(i=!0,En(r,d))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!a&&!i?(et(e)&&o.set(e,null),null):(ye(a)?a.forEach(u=>r[u]=null):En(r,a),et(e)&&o.set(e,r),r)}function Ld(e,t){return!e||!Sd(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ot(e,t[0].toLowerCase()+t.slice(1))||Ot(e,Gl(t))||Ot(e,t))}function Ig(e){const{type:t,vnode:n,proxy:o,withProxy:l,propsOptions:[a],slots:r,attrs:i,emit:u,render:c,renderCache:d,props:f,data:v,setupState:p,ctx:m,inheritAttrs:h}=e,g=Hc(e);let b,C;try{if(n.shapeFlag&4){const w=l||o,E=w;b=Fo(c.call(E,w,d,f,p,v,m)),C=i}else{const w=t;b=Fo(w.length>1?w(f,{attrs:i,slots:r,emit:u}):w(f,null)),C=t.props?i:LO(i)}}catch(w){pi.length=0,au(w,e,1),b=J(on)}let y=b;if(C&&h!==!1){const w=Object.keys(C),{shapeFlag:E}=y;w.length&&E&7&&(a&&w.some(qv)&&(C=DO(C,a)),y=Wl(y,C,!1,!0))}return n.dirs&&(y=Wl(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&sr(y,n.transition),b=y,Hc(g),b}function AO(e,t=!0){let n;for(let o=0;o{let t;for(const n in e)(n==="class"||n==="style"||Sd(n))&&((t||(t={}))[n]=e[n]);return t},DO=(e,t)=>{const n={};for(const o in e)(!qv(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function BO(e,t,n){const{props:o,children:l,component:a}=e,{props:r,children:i,patchFlag:u}=t,c=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return o?Pg(o,r,c):!!r;if(u&8){const d=t.dynamicProps;for(let f=0;fObject.create(A1),D1=e=>Object.getPrototypeOf(e)===A1;function FO(e,t,n,o=!1){const l={},a=L1();e.propsDefaults=Object.create(null),B1(e,t,l,a);for(const r in e.propsOptions[0])r in l||(l[r]=void 0);n?e.props=o?l:Rd(l):e.type.props?e.props=l:e.props=a,e.attrs=a}function VO(e,t,n,o){const{props:l,attrs:a,vnode:{patchFlag:r}}=e,i=Ft(l),[u]=e.propsOptions;let c=!1;if((o||r>0)&&!(r&16)){if(r&8){const d=e.vnode.dynamicProps;for(let f=0;f{u=!0;const[v,p]=F1(f,t,!0);En(r,v),p&&i.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!a&&!u)return et(e)&&o.set(e,Kr),Kr;if(ye(a))for(let d=0;de==="_"||e==="_ctx"||e==="$stable",uh=e=>ye(e)?e.map(Fo):[Fo(e)],zO=(e,t,n)=>{if(t._n)return t;const o=ee((...l)=>uh(t(...l)),n);return o._c=!1,o},V1=(e,t,n)=>{const o=e._ctx;for(const l in e){if(ih(l))continue;const a=e[l];if(ze(a))t[l]=zO(l,a,o);else if(a!=null){const r=uh(a);t[l]=()=>r}}},H1=(e,t)=>{const n=uh(t);e.slots.default=()=>n},z1=(e,t,n)=>{for(const o in t)(n||!ih(o))&&(e[o]=t[o])},KO=(e,t,n)=>{const o=e.slots=L1();if(e.vnode.shapeFlag&32){const l=t._;l?(z1(o,t,n),n&&Bw(o,"_",l,!0)):V1(t,o)}else t&&H1(e,t)},WO=(e,t,n)=>{const{vnode:o,slots:l}=e;let a=!0,r=Jt;if(o.shapeFlag&32){const i=t._;i?n&&i===1?a=!1:z1(l,t,n):(a=!t.$stable,V1(t,l)),r=t}else t&&(H1(e,t),r={default:1});if(a)for(const i in l)!ih(i)&&r[i]==null&&delete l[i]},Mn=t$;function jO(e){return UO(e)}function UO(e,t){const n=Td();n.__VUE__=!0;const{insert:o,remove:l,patchProp:a,createElement:r,createText:i,createComment:u,setText:c,setElementText:d,parentNode:f,nextSibling:v,setScopeId:p=Nt,insertStaticContent:m}=e,h=(j,ne,ue,de=null,Ce=null,fe=null,he=void 0,Ee=null,Oe=!!ne.dynamicChildren)=>{if(j===ne)return;j&&!fl(j,ne)&&(de=U(j),W(j,Ce,fe,!0),j=null),ne.patchFlag===-2&&(Oe=!1,ne.dynamicChildren=null);const{type:_e,ref:Ve,shapeFlag:Me}=ne;switch(_e){case Ts:g(j,ne,ue,de);break;case on:b(j,ne,ue,de);break;case Pf:j==null&&C(ne,ue,de,he);break;case He:P(j,ne,ue,de,Ce,fe,he,Ee,Oe);break;default:Me&1?E(j,ne,ue,de,Ce,fe,he,Ee,Oe):Me&6?K(j,ne,ue,de,Ce,fe,he,Ee,Oe):(Me&64||Me&128)&&_e.process(j,ne,ue,de,Ce,fe,he,Ee,Oe,ve)}Ve!=null&&Ce?di(Ve,j&&j.ref,fe,ne||j,!ne):Ve==null&&j&&j.ref!=null&&di(j.ref,null,fe,j,!0)},g=(j,ne,ue,de)=>{if(j==null)o(ne.el=i(ne.children),ue,de);else{const Ce=ne.el=j.el;ne.children!==j.children&&c(Ce,ne.children)}},b=(j,ne,ue,de)=>{j==null?o(ne.el=u(ne.children||""),ue,de):ne.el=j.el},C=(j,ne,ue,de)=>{[j.el,j.anchor]=m(j.children,ne,ue,de,j.el,j.anchor)},y=({el:j,anchor:ne},ue,de)=>{let Ce;for(;j&&j!==ne;)Ce=v(j),o(j,ue,de),j=Ce;o(ne,ue,de)},w=({el:j,anchor:ne})=>{let ue;for(;j&&j!==ne;)ue=v(j),l(j),j=ue;l(ne)},E=(j,ne,ue,de,Ce,fe,he,Ee,Oe)=>{if(ne.type==="svg"?he="svg":ne.type==="math"&&(he="mathml"),j==null)k(ne,ue,de,Ce,fe,he,Ee,Oe);else{const _e=j.el&&j.el._isVueCE?j.el:null;try{_e&&_e._beginPatch(),N(j,ne,Ce,fe,he,Ee,Oe)}finally{_e&&_e._endPatch()}}},k=(j,ne,ue,de,Ce,fe,he,Ee)=>{let Oe,_e;const{props:Ve,shapeFlag:Me,transition:me,dirs:Ae}=j;if(Oe=j.el=r(j.type,fe,Ve&&Ve.is,Ve),Me&8?d(Oe,j.children):Me&16&&x(j.children,Oe,null,de,Ce,If(j,fe),he,Ee),Ae&&La(j,null,de,"created"),T(Oe,j,j.scopeId,he,de),Ve){for(const dt in Ve)dt!=="value"&&!ri(dt)&&a(Oe,dt,null,Ve[dt],fe,de);"value"in Ve&&a(Oe,"value",null,Ve.value,fe),(_e=Ve.onVnodeBeforeMount)&&il(_e,de,j)}Ae&&La(j,null,de,"beforeMount");const tt=qO(Ce,me);tt&&me.beforeEnter(Oe),o(Oe,ne,ue),((_e=Ve&&Ve.onVnodeMounted)||tt||Ae)&&Mn(()=>{_e&&il(_e,de,j),tt&&me.enter(Oe),Ae&&La(j,null,de,"mounted")},Ce)},T=(j,ne,ue,de,Ce)=>{if(ue&&p(j,ue),de)for(let fe=0;fe{for(let _e=Oe;_e{const Ee=ne.el=j.el;let{patchFlag:Oe,dynamicChildren:_e,dirs:Ve}=ne;Oe|=j.patchFlag&16;const Me=j.props||Jt,me=ne.props||Jt;let Ae;if(ue&&Da(ue,!1),(Ae=me.onVnodeBeforeUpdate)&&il(Ae,ue,ne,j),Ve&&La(ne,j,ue,"beforeUpdate"),ue&&Da(ue,!0),(Me.innerHTML&&me.innerHTML==null||Me.textContent&&me.textContent==null)&&d(Ee,""),_e?O(j.dynamicChildren,_e,Ee,ue,de,If(ne,Ce),fe):he||$(j,ne,Ee,null,ue,de,If(ne,Ce),fe,!1),Oe>0){if(Oe&16)I(Ee,Me,me,ue,Ce);else if(Oe&2&&Me.class!==me.class&&a(Ee,"class",null,me.class,Ce),Oe&4&&a(Ee,"style",Me.style,me.style,Ce),Oe&8){const tt=ne.dynamicProps;for(let dt=0;dt{Ae&&il(Ae,ue,ne,j),Ve&&La(ne,j,ue,"updated")},de)},O=(j,ne,ue,de,Ce,fe,he)=>{for(let Ee=0;Ee{if(ne!==ue){if(ne!==Jt)for(const fe in ne)!ri(fe)&&!(fe in ue)&&a(j,fe,ne[fe],null,Ce,de);for(const fe in ue){if(ri(fe))continue;const he=ue[fe],Ee=ne[fe];he!==Ee&&fe!=="value"&&a(j,fe,Ee,he,Ce,de)}"value"in ue&&a(j,"value",ne.value,ue.value,Ce)}},P=(j,ne,ue,de,Ce,fe,he,Ee,Oe)=>{const _e=ne.el=j?j.el:i(""),Ve=ne.anchor=j?j.anchor:i("");let{patchFlag:Me,dynamicChildren:me,slotScopeIds:Ae}=ne;Ae&&(Ee=Ee?Ee.concat(Ae):Ae),j==null?(o(_e,ue,de),o(Ve,ue,de),x(ne.children||[],ue,Ve,Ce,fe,he,Ee,Oe)):Me>0&&Me&64&&me&&j.dynamicChildren?(O(j.dynamicChildren,me,ue,Ce,fe,he,Ee),(ne.key!=null||Ce&&ne===Ce.subTree)&&ch(j,ne,!0)):$(j,ne,ue,Ve,Ce,fe,he,Ee,Oe)},K=(j,ne,ue,de,Ce,fe,he,Ee,Oe)=>{ne.slotScopeIds=Ee,j==null?ne.shapeFlag&512?Ce.ctx.activate(ne,ue,de,he,Oe):B(ne,ue,de,Ce,fe,he,Oe):Y(j,ne,Oe)},B=(j,ne,ue,de,Ce,fe,he)=>{const Ee=j.component=r$(j,de,Ce);if(Id(j)&&(Ee.ctx.renderer=ve),s$(Ee,!1,he),Ee.asyncDep){if(Ce&&Ce.registerDep(Ee,M,he),!j.el){const Oe=Ee.subTree=J(on);b(null,Oe,ne,ue),j.placeholder=Oe.el}}else M(Ee,j,ne,ue,Ce,fe,he)},Y=(j,ne,ue)=>{const de=ne.component=j.component;if(BO(j,ne,ue))if(de.asyncDep&&!de.asyncResolved){A(de,ne,ue);return}else de.next=ne,de.update();else ne.el=j.el,de.vnode=ne},M=(j,ne,ue,de,Ce,fe,he)=>{const Ee=()=>{if(j.isMounted){let{next:Me,bu:me,u:Ae,parent:tt,vnode:dt}=j;{const st=K1(j);if(st){Me&&(Me.el=dt.el,A(j,Me,he)),st.asyncDep.then(()=>{j.isUnmounted||Ee()});return}}let ct=Me,Tt;Da(j,!1),Me?(Me.el=dt.el,A(j,Me,he)):Me=dt,me&&rc(me),(Tt=Me.props&&Me.props.onVnodeBeforeUpdate)&&il(Tt,tt,Me,dt),Da(j,!0);const Lt=Ig(j),Ye=j.subTree;j.subTree=Lt,h(Ye,Lt,f(Ye.el),U(Ye),j,Ce,fe),Me.el=Lt.el,ct===null&&sh(j,Lt.el),Ae&&Mn(Ae,Ce),(Tt=Me.props&&Me.props.onVnodeUpdated)&&Mn(()=>il(Tt,tt,Me,dt),Ce)}else{let Me;const{el:me,props:Ae}=ne,{bm:tt,m:dt,parent:ct,root:Tt,type:Lt}=j,Ye=Ur(ne);Da(j,!1),tt&&rc(tt),!Ye&&(Me=Ae&&Ae.onVnodeBeforeMount)&&il(Me,ct,ne),Da(j,!0);{Tt.ce&&Tt.ce._def.shadowRoot!==!1&&Tt.ce._injectChildStyle(Lt);const st=j.subTree=Ig(j);h(null,st,ue,de,j,Ce,fe),ne.el=st.el}if(dt&&Mn(dt,Ce),!Ye&&(Me=Ae&&Ae.onVnodeMounted)){const st=ne;Mn(()=>il(Me,ct,st),Ce)}(ne.shapeFlag&256||ct&&Ur(ct.vnode)&&ct.vnode.shapeFlag&256)&&j.a&&Mn(j.a,Ce),j.isMounted=!0,ne=ue=de=null}};j.scope.on();const Oe=j.effect=new qw(Ee);j.scope.off();const _e=j.update=Oe.run.bind(Oe),Ve=j.job=Oe.runIfDirty.bind(Oe);Ve.i=j,Ve.id=j.uid,Oe.scheduler=()=>th(Ve),Da(j,!0),_e()},A=(j,ne,ue)=>{ne.component=j;const de=j.vnode.props;j.vnode=ne,j.next=null,VO(j,ne.props,de,ue),WO(j,ne.children,ue),Hl(),wg(j),zl()},$=(j,ne,ue,de,Ce,fe,he,Ee,Oe=!1)=>{const _e=j&&j.children,Ve=j?j.shapeFlag:0,Me=ne.children,{patchFlag:me,shapeFlag:Ae}=ne;if(me>0){if(me&128){V(_e,Me,ue,de,Ce,fe,he,Ee,Oe);return}else if(me&256){D(_e,Me,ue,de,Ce,fe,he,Ee,Oe);return}}Ae&8?(Ve&16&&ce(_e,Ce,fe),Me!==_e&&d(ue,Me)):Ve&16?Ae&16?V(_e,Me,ue,de,Ce,fe,he,Ee,Oe):ce(_e,Ce,fe,!0):(Ve&8&&d(ue,""),Ae&16&&x(Me,ue,de,Ce,fe,he,Ee,Oe))},D=(j,ne,ue,de,Ce,fe,he,Ee,Oe)=>{j=j||Kr,ne=ne||Kr;const _e=j.length,Ve=ne.length,Me=Math.min(_e,Ve);let me;for(me=0;meVe?ce(j,Ce,fe,!0,!1,Me):x(ne,ue,de,Ce,fe,he,Ee,Oe,Me)},V=(j,ne,ue,de,Ce,fe,he,Ee,Oe)=>{let _e=0;const Ve=ne.length;let Me=j.length-1,me=Ve-1;for(;_e<=Me&&_e<=me;){const Ae=j[_e],tt=ne[_e]=Oe?va(ne[_e]):Fo(ne[_e]);if(fl(Ae,tt))h(Ae,tt,ue,null,Ce,fe,he,Ee,Oe);else break;_e++}for(;_e<=Me&&_e<=me;){const Ae=j[Me],tt=ne[me]=Oe?va(ne[me]):Fo(ne[me]);if(fl(Ae,tt))h(Ae,tt,ue,null,Ce,fe,he,Ee,Oe);else break;Me--,me--}if(_e>Me){if(_e<=me){const Ae=me+1,tt=Aeme)for(;_e<=Me;)W(j[_e],Ce,fe,!0),_e++;else{const Ae=_e,tt=_e,dt=new Map;for(_e=tt;_e<=me;_e++){const Ke=ne[_e]=Oe?va(ne[_e]):Fo(ne[_e]);Ke.key!=null&&dt.set(Ke.key,_e)}let ct,Tt=0;const Lt=me-tt+1;let Ye=!1,st=0;const bt=new Array(Lt);for(_e=0;_e=Lt){W(Ke,Ce,fe,!0);continue}let Z;if(Ke.key!=null)Z=dt.get(Ke.key);else for(ct=tt;ct<=me;ct++)if(bt[ct-tt]===0&&fl(Ke,ne[ct])){Z=ct;break}Z===void 0?W(Ke,Ce,fe,!0):(bt[Z-tt]=_e+1,Z>=st?st=Z:Ye=!0,h(Ke,ne[Z],ue,null,Ce,fe,he,Ee,Oe),Tt++)}const ge=Ye?YO(bt):Kr;for(ct=ge.length-1,_e=Lt-1;_e>=0;_e--){const Ke=tt+_e,Z=ne[Ke],we=ne[Ke+1],De=Ke+1{const{el:fe,type:he,transition:Ee,children:Oe,shapeFlag:_e}=j;if(_e&6){H(j.component.subTree,ne,ue,de);return}if(_e&128){j.suspense.move(ne,ue,de);return}if(_e&64){he.move(j,ne,ue,ve);return}if(he===He){o(fe,ne,ue);for(let Me=0;MeEe.enter(fe),Ce);else{const{leave:Me,delayLeave:me,afterLeave:Ae}=Ee,tt=()=>{j.ctx.isUnmounted?l(fe):o(fe,ne,ue)},dt=()=>{fe._isLeaving&&fe[Il](!0),Me(fe,()=>{tt(),Ae&&Ae()})};me?me(fe,tt,dt):dt()}else o(fe,ne,ue)},W=(j,ne,ue,de=!1,Ce=!1)=>{const{type:fe,props:he,ref:Ee,children:Oe,dynamicChildren:_e,shapeFlag:Ve,patchFlag:Me,dirs:me,cacheIndex:Ae}=j;if(Me===-2&&(Ce=!1),Ee!=null&&(Hl(),di(Ee,null,ue,j,!0),zl()),Ae!=null&&(ne.renderCache[Ae]=void 0),Ve&256){ne.ctx.deactivate(j);return}const tt=Ve&1&&me,dt=!Ur(j);let ct;if(dt&&(ct=he&&he.onVnodeBeforeUnmount)&&il(ct,ne,j),Ve&6)le(j.component,ue,de);else{if(Ve&128){j.suspense.unmount(ue,de);return}tt&&La(j,null,ne,"beforeUnmount"),Ve&64?j.type.remove(j,ne,ue,ve,de):_e&&!_e.hasOnce&&(fe!==He||Me>0&&Me&64)?ce(_e,ne,ue,!1,!0):(fe===He&&Me&384||!Ce&&Ve&16)&&ce(Oe,ne,ue),de&&X(j)}(dt&&(ct=he&&he.onVnodeUnmounted)||tt)&&Mn(()=>{ct&&il(ct,ne,j),tt&&La(j,null,ne,"unmounted")},ue)},X=j=>{const{type:ne,el:ue,anchor:de,transition:Ce}=j;if(ne===He){te(ue,de);return}if(ne===Pf){w(j);return}const fe=()=>{l(ue),Ce&&!Ce.persisted&&Ce.afterLeave&&Ce.afterLeave()};if(j.shapeFlag&1&&Ce&&!Ce.persisted){const{leave:he,delayLeave:Ee}=Ce,Oe=()=>he(ue,fe);Ee?Ee(j.el,fe,Oe):Oe()}else fe()},te=(j,ne)=>{let ue;for(;j!==ne;)ue=v(j),l(j),j=ue;l(ne)},le=(j,ne,ue)=>{const{bum:de,scope:Ce,job:fe,subTree:he,um:Ee,m:Oe,a:_e}=j;Mg(Oe),Mg(_e),de&&rc(de),Ce.stop(),fe&&(fe.flags|=8,W(he,j,ne,ue)),Ee&&Mn(Ee,ne),Mn(()=>{j.isUnmounted=!0},ne)},ce=(j,ne,ue,de=!1,Ce=!1,fe=0)=>{for(let he=fe;he{if(j.shapeFlag&6)return U(j.component.subTree);if(j.shapeFlag&128)return j.suspense.next();const ne=v(j.anchor||j.el),ue=ne&&ne[h1];return ue?v(ue):ne};let G=!1;const se=(j,ne,ue)=>{j==null?ne._vnode&&W(ne._vnode,null,null,!0):h(ne._vnode||null,j,ne,null,null,null,ue),ne._vnode=j,G||(G=!0,wg(),f1(),G=!1)},ve={p:h,um:W,m:H,r:X,mt:B,mc:x,pc:$,pbc:O,n:U,o:e};return{render:se,hydrate:void 0,createApp:$O(se)}}function If({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Da({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function qO(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ch(e,t,n=!1){const o=e.children,l=t.children;if(ye(o)&&ye(l))for(let a=0;a>1,e[n[i]]0&&(t[o]=n[a-1]),n[a]=o)}}for(a=n.length,r=n[a-1];a-- >0;)n[a]=r,r=t[r];return n}function K1(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:K1(t)}function Mg(e){if(e)for(let t=0;te.__isSuspense;let Tp=0;const GO={name:"Suspense",__isSuspense:!0,process(e,t,n,o,l,a,r,i,u,c){if(e==null)JO(t,n,o,l,a,r,i,u,c);else{if(a&&a.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}ZO(e,t,n,o,l,r,i,u,c)}},hydrate:QO,normalize:e$},XO=GO;function $i(e,t){const n=e.props&&e.props[t];ze(n)&&n()}function JO(e,t,n,o,l,a,r,i,u){const{p:c,o:{createElement:d}}=u,f=d("div"),v=e.suspense=j1(e,l,o,t,f,n,a,r,i,u);c(null,v.pendingBranch=e.ssContent,f,null,o,v,a,r),v.deps>0?($i(e,"onPending"),$i(e,"onFallback"),c(null,e.ssFallback,t,n,o,null,a,r),Yr(v,e.ssFallback)):v.resolve(!1,!0)}function ZO(e,t,n,o,l,a,r,i,{p:u,um:c,o:{createElement:d}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const v=t.ssContent,p=t.ssFallback,{activeBranch:m,pendingBranch:h,isInFallback:g,isHydrating:b}=f;if(h)f.pendingBranch=v,fl(h,v)?(u(h,v,f.hiddenContainer,null,l,f,a,r,i),f.deps<=0?f.resolve():g&&(b||(u(m,p,n,o,l,null,a,r,i),Yr(f,p)))):(f.pendingId=Tp++,b?(f.isHydrating=!1,f.activeBranch=h):c(h,l,f),f.deps=0,f.effects.length=0,f.hiddenContainer=d("div"),g?(u(null,v,f.hiddenContainer,null,l,f,a,r,i),f.deps<=0?f.resolve():(u(m,p,n,o,l,null,a,r,i),Yr(f,p))):m&&fl(m,v)?(u(m,v,n,o,l,f,a,r,i),f.resolve(!0)):(u(null,v,f.hiddenContainer,null,l,f,a,r,i),f.deps<=0&&f.resolve()));else if(m&&fl(m,v))u(m,v,n,o,l,f,a,r,i),Yr(f,v);else if($i(t,"onPending"),f.pendingBranch=v,v.shapeFlag&512?f.pendingId=v.component.suspenseId:f.pendingId=Tp++,u(null,v,f.hiddenContainer,null,l,f,a,r,i),f.deps<=0)f.resolve();else{const{timeout:C,pendingId:y}=f;C>0?setTimeout(()=>{f.pendingId===y&&f.fallback(p)},C):C===0&&f.fallback(p)}}function j1(e,t,n,o,l,a,r,i,u,c,d=!1){const{p:f,m:v,um:p,n:m,o:{parentNode:h,remove:g}}=c;let b;const C=n$(e);C&&t&&t.pendingBranch&&(b=t.pendingId,t.deps++);const y=e.props?Fw(e.props.timeout):void 0,w=a,E={vnode:e,parent:t,parentComponent:n,namespace:r,container:o,hiddenContainer:l,deps:0,pendingId:Tp++,timeout:typeof y=="number"?y:-1,activeBranch:null,pendingBranch:null,isInFallback:!d,isHydrating:d,isUnmounted:!1,effects:[],resolve(k=!1,T=!1){const{vnode:x,activeBranch:N,pendingBranch:O,pendingId:I,effects:P,parentComponent:K,container:B,isInFallback:Y}=E;let M=!1;E.isHydrating?E.isHydrating=!1:k||(M=N&&O.transition&&O.transition.mode==="out-in",M&&(N.transition.afterLeave=()=>{I===E.pendingId&&(v(O,B,a===w?m(N):a,0),wp(P),Y&&x.ssFallback&&(x.ssFallback.el=null))}),N&&(h(N.el)===B&&(a=m(N)),p(N,K,E,!0),!M&&Y&&x.ssFallback&&Mn(()=>x.ssFallback.el=null,E)),M||v(O,B,a,0)),Yr(E,O),E.pendingBranch=null,E.isInFallback=!1;let A=E.parent,$=!1;for(;A;){if(A.pendingBranch){A.effects.push(...P),$=!0;break}A=A.parent}!$&&!M&&wp(P),E.effects=[],C&&t&&t.pendingBranch&&b===t.pendingId&&(t.deps--,t.deps===0&&!T&&t.resolve()),$i(x,"onResolve")},fallback(k){if(!E.pendingBranch)return;const{vnode:T,activeBranch:x,parentComponent:N,container:O,namespace:I}=E;$i(T,"onFallback");const P=m(x),K=()=>{E.isInFallback&&(f(null,k,O,P,N,null,I,i,u),Yr(E,k))},B=k.transition&&k.transition.mode==="out-in";B&&(x.transition.afterLeave=K),E.isInFallback=!0,p(x,N,null,!0),B||K()},move(k,T,x){E.activeBranch&&v(E.activeBranch,k,T,x),E.container=k},next(){return E.activeBranch&&m(E.activeBranch)},registerDep(k,T,x){const N=!!E.pendingBranch;N&&E.deps++;const O=k.vnode.el;k.asyncDep.catch(I=>{au(I,k,0)}).then(I=>{if(k.isUnmounted||E.isUnmounted||E.pendingId!==k.suspenseId)return;k.asyncResolved=!0;const{vnode:P}=k;$p(k,I),O&&(P.el=O);const K=!O&&k.subTree.el;T(k,P,h(O||k.subTree.el),O?null:m(k.subTree),E,r,x),K&&(P.placeholder=null,g(K)),sh(k,P.el),N&&--E.deps===0&&E.resolve()})},unmount(k,T){E.isUnmounted=!0,E.activeBranch&&p(E.activeBranch,n,k,T),E.pendingBranch&&p(E.pendingBranch,n,k,T)}};return E}function QO(e,t,n,o,l,a,r,i,u){const c=t.suspense=j1(t,o,n,e.parentNode,document.createElement("div"),null,l,a,r,i,!0),d=u(e,c.pendingBranch=t.ssContent,n,c,a,r);return c.deps===0&&c.resolve(!1,!0),d}function e$(e){const{shapeFlag:t,children:n}=e,o=t&32;e.ssContent=Ag(o?n.default:n),e.ssFallback=o?Ag(n.fallback):J(on)}function Ag(e){let t;if(ze(e)){const n=ls&&e._c;n&&(e._d=!1,_()),e=e(),n&&(e._d=!0,t=ao,U1())}return ye(e)&&(e=AO(e)),e=Fo(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function t$(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):wp(e)}function Yr(e,t){e.activeBranch=t;const{vnode:n,parentComponent:o}=e;let l=t.el;for(;!l&&t.component;)t=t.component.subTree,l=t.el;n.el=l,o&&o.subTree===n&&(o.vnode.el=l,sh(o,l))}function n$(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const He=Symbol.for("v-fgt"),Ts=Symbol.for("v-txt"),on=Symbol.for("v-cmt"),Pf=Symbol.for("v-stc"),pi=[];let ao=null;function _(e=!1){pi.push(ao=e?null:[])}function U1(){pi.pop(),ao=pi[pi.length-1]||null}let ls=1;function Wc(e,t=!1){ls+=e,e<0&&ao&&t&&(ao.hasOnce=!0)}function q1(e){return e.dynamicChildren=ls>0?ao||Kr:null,U1(),ls>0&&ao&&ao.push(e),e}function F(e,t,n,o,l,a){return q1(z(e,t,n,o,l,a,!0))}function ie(e,t,n,o,l){return q1(J(e,t,n,o,l,!0))}function Vt(e){return e?e.__v_isVNode===!0:!1}function fl(e,t){return e.type===t.type&&e.key===t.key}const Y1=({key:e})=>e??null,uc=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Fe(e)||Kt(e)||ze(e)?{i:Nn,r:e,k:t,f:!!n}:e:null);function z(e,t=null,n=null,o=0,l=null,a=e===He?0:1,r=!1,i=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Y1(t),ref:t&&uc(t),scopeId:v1,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:o,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:Nn};return i?(dh(u,n),a&128&&e.normalize(u)):n&&(u.shapeFlag|=Fe(n)?8:16),ls>0&&!r&&ao&&(u.patchFlag>0||a&6)&&u.patchFlag!==32&&ao.push(u),u}const J=o$;function o$(e,t=null,n=null,o=0,l=null,a=!1){if((!e||e===O1)&&(e=on),Vt(e)){const i=Wl(e,t,!0);return n&&dh(i,n),ls>0&&!a&&ao&&(i.shapeFlag&6?ao[ao.indexOf(e)]=i:ao.push(i)),i.patchFlag=-2,i}if(d$(e)&&(e=e.__vccOpts),t){t=zo(t);let{class:i,style:u}=t;i&&!Fe(i)&&(t.class=R(i)),et(u)&&(Nd(u)&&!ye(u)&&(u=En({},u)),t.style=We(u))}const r=Fe(e)?1:W1(e)?128:m1(e)?64:et(e)?4:ze(e)?2:0;return z(e,t,n,o,l,r,a,!0)}function zo(e){return e?Nd(e)||D1(e)?En({},e):e:null}function Wl(e,t,n=!1,o=!1){const{props:l,ref:a,patchFlag:r,children:i,transition:u}=e,c=t?ot(l||{},t):l,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Y1(c),ref:t&&t.ref?n&&a?ye(a)?a.concat(uc(t)):[a,uc(t)]:uc(t):a,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==He?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wl(e.ssContent),ssFallback:e.ssFallback&&Wl(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&o&&sr(d,u.clone(d)),d}function gt(e=" ",t=0){return J(Ts,null,e,t)}function re(e="",t=!1){return t?(_(),ie(on,null,e)):J(on,null,e)}function Fo(e){return e==null||typeof e=="boolean"?J(on):ye(e)?J(He,null,e.slice()):Vt(e)?va(e):J(Ts,null,String(e))}function va(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wl(e)}function dh(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(ye(t))n=16;else if(typeof t=="object")if(o&65){const l=t.default;l&&(l._c&&(l._d=!1),dh(e,l()),l._c&&(l._d=!0));return}else{n=32;const l=t._;!l&&!D1(t)?t._ctx=Nn:l===3&&Nn&&(Nn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ze(t)?(t={default:t,_ctx:Nn},n=32):(t=String(t),o&64?(n=16,t=[gt(t)]):n=8);e.children=t,e.shapeFlag|=n}function ot(...e){const t={};for(let n=0;nFn||Nn;let jc,Op;{const e=Td(),t=(n,o)=>{let l;return(l=e[n])||(l=e[n]=[]),l.push(o),a=>{l.length>1?l.forEach(r=>r(a)):l[0](a)}};jc=t("__VUE_INSTANCE_SETTERS__",n=>Fn=n),Op=t("__VUE_SSR_SETTERS__",n=>Ri=n)}const ru=e=>{const t=Fn;return jc(e),e.scope.on(),()=>{e.scope.off(),jc(t)}},Lg=()=>{Fn&&Fn.scope.off(),jc(null)};function G1(e){return e.vnode.shapeFlag&4}let Ri=!1;function s$(e,t=!1,n=!1){t&&Op(t);const{props:o,children:l}=e.vnode,a=G1(e);FO(e,o,a,t),KO(e,l,n||t);const r=a?i$(e,t):void 0;return t&&Op(!1),r}function i$(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,CO);const{setup:o}=n;if(o){Hl();const l=e.setupContext=o.length>1?J1(e):null,a=ru(e),r=lu(o,e,0,[e.props,l]),i=ar(r);if(zl(),a(),(i||e.sp)&&!Ur(e)&&k1(e),i){if(r.then(Lg,Lg),t)return r.then(u=>{$p(e,u)}).catch(u=>{au(u,e,0)});e.asyncDep=r}else $p(e,r)}else X1(e)}function $p(e,t,n){ze(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:et(t)&&(e.setupState=i1(t)),X1(e)}function X1(e,t,n){const o=e.type;e.render||(e.render=o.render||Nt);{const l=ru(e);Hl();try{SO(e)}finally{zl(),l()}}}const u$={get(e,t){return Bn(e,"get",""),e[t]}};function J1(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,u$),slots:e.slots,emit:e.emit,expose:t}}function Dd(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(i1(Dl(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in fi)return fi[n](e)},has(t,n){return n in t||n in fi}})):e.proxy}function c$(e,t=!0){return ze(e)?e.displayName||e.name:e.name||t&&e.__name}function d$(e){return ze(e)&&"__vccOpts"in e}const S=(e,t)=>aO(e,t,Ri);function Ue(e,t,n){try{Wc(-1);const o=arguments.length;return o===2?et(t)&&!ye(t)?Vt(t)?J(e,null,[t]):J(e,t):J(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Vt(n)&&(n=[n]),J(e,t,n))}finally{Wc(1)}}const f$="3.5.25",p$=Nt;let Rp;const Dg=typeof window<"u"&&window.trustedTypes;if(Dg)try{Rp=Dg.createPolicy("vue",{createHTML:e=>e})}catch{}const Z1=Rp?e=>Rp.createHTML(e):e=>e,v$="http://www.w3.org/2000/svg",h$="http://www.w3.org/1998/Math/MathML",Nl=typeof document<"u"?document:null,Bg=Nl&&Nl.createElement("template"),m$={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const l=t==="svg"?Nl.createElementNS(v$,e):t==="mathml"?Nl.createElementNS(h$,e):n?Nl.createElement(e,{is:n}):Nl.createElement(e);return e==="select"&&o&&o.multiple!=null&&l.setAttribute("multiple",o.multiple),l},createText:e=>Nl.createTextNode(e),createComment:e=>Nl.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Nl.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,l,a){const r=n?n.previousSibling:t.lastChild;if(l&&(l===a||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),!(l===a||!(l=l.nextSibling)););else{Bg.innerHTML=Z1(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const i=Bg.content;if(o==="svg"||o==="mathml"){const u=i.firstChild;for(;u.firstChild;)i.appendChild(u.firstChild);i.removeChild(u)}t.insertBefore(i,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},aa="transition",Ks="animation",as=Symbol("_vtc"),Q1={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},eC=En({},w1,Q1),g$=e=>(e.displayName="Transition",e.props=eC,e),kn=g$((e,{slots:t})=>Ue(pO,tC(e),t)),Ba=(e,t=[])=>{ye(e)?e.forEach(n=>n(...t)):e&&e(...t)},Fg=e=>e?ye(e)?e.some(t=>t.length>1):e.length>1:!1;function tC(e){const t={};for(const P in e)P in Q1||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:o,duration:l,enterFromClass:a=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:u=a,appearActiveClass:c=r,appearToClass:d=i,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=b$(l),h=m&&m[0],g=m&&m[1],{onBeforeEnter:b,onEnter:C,onEnterCancelled:y,onLeave:w,onLeaveCancelled:E,onBeforeAppear:k=b,onAppear:T=C,onAppearCancelled:x=y}=t,N=(P,K,B,Y)=>{P._enterCancelled=Y,ia(P,K?d:i),ia(P,K?c:r),B&&B()},O=(P,K)=>{P._isLeaving=!1,ia(P,f),ia(P,p),ia(P,v),K&&K()},I=P=>(K,B)=>{const Y=P?T:C,M=()=>N(K,P,B);Ba(Y,[K,M]),Vg(()=>{ia(K,P?u:a),cl(K,P?d:i),Fg(Y)||Hg(K,o,h,M)})};return En(t,{onBeforeEnter(P){Ba(b,[P]),cl(P,a),cl(P,r)},onBeforeAppear(P){Ba(k,[P]),cl(P,u),cl(P,c)},onEnter:I(!1),onAppear:I(!0),onLeave(P,K){P._isLeaving=!0;const B=()=>O(P,K);cl(P,f),P._enterCancelled?(cl(P,v),Np(P)):(Np(P),cl(P,v)),Vg(()=>{P._isLeaving&&(ia(P,f),cl(P,p),Fg(w)||Hg(P,o,g,B))}),Ba(w,[P,B])},onEnterCancelled(P){N(P,!1,void 0,!0),Ba(y,[P])},onAppearCancelled(P){N(P,!0,void 0,!0),Ba(x,[P])},onLeaveCancelled(P){O(P),Ba(E,[P])}})}function b$(e){if(e==null)return null;if(et(e))return[xf(e.enter),xf(e.leave)];{const t=xf(e);return[t,t]}}function xf(e){return Fw(e)}function cl(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[as]||(e[as]=new Set)).add(t)}function ia(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[as];n&&(n.delete(t),n.size||(e[as]=void 0))}function Vg(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let y$=0;function Hg(e,t,n,o){const l=e._endId=++y$,a=()=>{l===e._endId&&o()};if(n!=null)return setTimeout(a,n);const{type:r,timeout:i,propCount:u}=nC(e,t);if(!r)return o();const c=r+"end";let d=0;const f=()=>{e.removeEventListener(c,v),a()},v=p=>{p.target===e&&++d>=u&&f()};setTimeout(()=>{d(n[m]||"").split(", "),l=o(`${aa}Delay`),a=o(`${aa}Duration`),r=zg(l,a),i=o(`${Ks}Delay`),u=o(`${Ks}Duration`),c=zg(i,u);let d=null,f=0,v=0;t===aa?r>0&&(d=aa,f=r,v=a.length):t===Ks?c>0&&(d=Ks,f=c,v=u.length):(f=Math.max(r,c),d=f>0?r>c?aa:Ks:null,v=d?d===aa?a.length:u.length:0);const p=d===aa&&/\b(?:transform|all)(?:,|$)/.test(o(`${aa}Property`).toString());return{type:d,timeout:f,propCount:v,hasTransform:p}}function zg(e,t){for(;e.lengthKg(n)+Kg(e[o])))}function Kg(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Np(e){return(e?e.ownerDocument:document).body.offsetHeight}function w$(e,t,n){const o=e[as];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Uc=Symbol("_vod"),oC=Symbol("_vsh"),kt={name:"show",beforeMount(e,{value:t},{transition:n}){e[Uc]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Ws(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Ws(e,!0),o.enter(e)):o.leave(e,()=>{Ws(e,!1)}):Ws(e,t))},beforeUnmount(e,{value:t}){Ws(e,t)}};function Ws(e,t){e.style.display=t?e[Uc]:"none",e[oC]=!t}const C$=Symbol(""),S$=/(?:^|;)\s*display\s*:/;function E$(e,t,n){const o=e.style,l=Fe(n);let a=!1;if(n&&!l){if(t)if(Fe(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();n[i]==null&&cc(o,i,"")}else for(const r in t)n[r]==null&&cc(o,r,"");for(const r in n)r==="display"&&(a=!0),cc(o,r,n[r])}else if(l){if(t!==n){const r=o[C$];r&&(n+=";"+r),o.cssText=n,a=S$.test(n)}}else t&&e.removeAttribute("style");Uc in e&&(e[Uc]=a?o.display:"",e[oC]&&(o.display="none"))}const Wg=/\s*!important$/;function cc(e,t,n){if(ye(n))n.forEach(o=>cc(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=k$(e,t);Wg.test(n)?e.setProperty(Gl(o),n.replace(Wg,""),"important"):e[o]=n}}const jg=["Webkit","Moz","ms"],Mf={};function k$(e,t){const n=Mf[t];if(n)return n;let o=Zn(t);if(o!=="filter"&&o in e)return Mf[t]=o;o=ou(o);for(let l=0;lAf||($$.then(()=>Af=0),Af=Date.now());function N$(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;qo(I$(o,n.value),t,5,[o])};return n.value=e,n.attached=R$(),n}function I$(e,t){if(ye(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>l=>!l._stopped&&o&&o(l))}else return t}const Jg=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,P$=(e,t,n,o,l,a)=>{const r=l==="svg";t==="class"?w$(e,o,r):t==="style"?E$(e,n,o):Sd(t)?qv(t)||T$(e,t,n,o,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):x$(e,t,o,r))?(Yg(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&qg(e,t,o,r,a,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Fe(o))?Yg(e,Zn(t),o,a,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),qg(e,t,o,r))};function x$(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&Jg(t)&&ze(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const l=e.tagName;if(l==="IMG"||l==="VIDEO"||l==="CANVAS"||l==="SOURCE")return!1}return Jg(t)&&Fe(n)?!1:t in e}const lC=new WeakMap,aC=new WeakMap,qc=Symbol("_moveCb"),Zg=Symbol("_enterCb"),M$=e=>(delete e.props.mode,e),A$=M$({name:"TransitionGroup",props:En({},eC,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=it(),o=y1();let l,a;return el(()=>{if(!l.length)return;const r=e.moveClass||`${e.name||"v"}-move`;if(!F$(l[0].el,n.vnode.el,r)){l=[];return}l.forEach(L$),l.forEach(D$);const i=l.filter(B$);Np(n.vnode.el),i.forEach(u=>{const c=u.el,d=c.style;cl(c,r),d.transform=d.webkitTransform=d.transitionDuration="";const f=c[qc]=v=>{v&&v.target!==c||(!v||v.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[qc]=null,ia(c,r))};c.addEventListener("transitionend",f)}),l=[]}),()=>{const r=Ft(e),i=tC(r);let u=r.tag||He;if(l=[],a)for(let c=0;c{i.split(/\s+/).forEach(u=>u&&o.classList.remove(u))}),n.split(/\s+/).forEach(i=>i&&o.classList.add(i)),o.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(o);const{hasTransform:r}=nC(o);return a.removeChild(o),r}const rs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return ye(t)?n=>rc(t,n):t};function V$(e){e.target.composing=!0}function Qg(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Bl=Symbol("_assign");function e0(e,t,n){return t&&(e=e.trim()),n&&(e=Gv(e)),e}const Bd={created(e,{modifiers:{lazy:t,trim:n,number:o}},l){e[Bl]=rs(l);const a=o||l.props&&l.props.type==="number";ma(e,t?"change":"input",r=>{r.target.composing||e[Bl](e0(e.value,n,a))}),(n||a)&&ma(e,"change",()=>{e.value=e0(e.value,n,a)}),t||(ma(e,"compositionstart",V$),ma(e,"compositionend",Qg),ma(e,"change",Qg))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:l,number:a}},r){if(e[Bl]=rs(r),e.composing)return;const i=(a||e.type==="number")&&!/^0\d/.test(e.value)?Gv(e.value):e.value,u=t??"";i!==u&&(document.activeElement===e&&e.type!=="range"&&(o&&t===n||l&&e.value.trim()===u)||(e.value=u))}},sC={deep:!0,created(e,t,n){e[Bl]=rs(n),ma(e,"change",()=>{const o=e._modelValue,l=uC(e),a=e.checked,r=e[Bl];if(ye(o)){const i=Hw(o,l),u=i!==-1;if(a&&!u)r(o.concat(l));else if(!a&&u){const c=[...o];c.splice(i,1),r(c)}}else if(Ed(o)){const i=new Set(o);a?i.add(l):i.delete(l),r(i)}else r(cC(e,a))})},mounted:t0,beforeUpdate(e,t,n){e[Bl]=rs(n),t0(e,t,n)}};function t0(e,{value:t,oldValue:n},o){e._modelValue=t;let l;if(ye(t))l=Hw(t,o.props.value)>-1;else if(Ed(t))l=t.has(o.props.value);else{if(t===n)return;l=ns(t,cC(e,!0))}e.checked!==l&&(e.checked=l)}const iC={created(e,{value:t},n){e.checked=ns(t,n.props.value),e[Bl]=rs(n),ma(e,"change",()=>{e[Bl](uC(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[Bl]=rs(o),t!==n&&(e.checked=ns(t,o.props.value))}};function uC(e){return"_value"in e?e._value:e.value}function cC(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const H$=["ctrl","shift","alt","meta"],z$={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>H$.some(n=>e[`${n}Key`]&&!t.includes(n))},qe=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=((l,...a)=>{for(let r=0;r{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=(l=>{if(!("key"in l))return;const a=Gl(l.key);if(t.some(r=>r===a||K$[r]===a))return e(l)}))},W$=En({patchProp:P$},m$);let n0;function dC(){return n0||(n0=jO(W$))}const Oa=((...e)=>{dC().render(...e)}),fC=((...e)=>{const t=dC().createApp(...e),{mount:n}=t;return t.mount=o=>{const l=U$(o);if(!l)return;const a=t._component;!ze(a)&&!a.render&&!a.template&&(a.template=l.innerHTML),l.nodeType===1&&(l.textContent="");const r=n(l,!1,j$(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),r},t});function j$(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function U$(e){return Fe(e)?document.querySelector(e):e}const pC=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n},q$={};function Y$(e,t){const n=ft("RouterView");return _(),ie(n)}const G$=pC(q$,[["render",Y$]]),X$="modulepreload",J$=function(e,t){return new URL(e,t).href},o0={},Zl=function(t,n,o){let l=Promise.resolve();if(n&&n.length>0){let c=function(d){return Promise.all(d.map(f=>Promise.resolve(f).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};const r=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),u=i?.nonce||i?.getAttribute("nonce");l=c(n.map(d=>{if(d=J$(d,o),d in o0)return;o0[d]=!0;const f=d.endsWith(".css"),v=f?'[rel="stylesheet"]':"";if(o)for(let m=r.length-1;m>=0;m--){const h=r[m];if(h.href===d&&(!f||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${d}"]${v}`))return;const p=document.createElement("link");if(p.rel=f?"stylesheet":X$,f||(p.as="script"),p.crossOrigin="",p.href=d,u&&p.setAttribute("nonce",u),document.head.appendChild(p),f)return new Promise((m,h)=>{p.addEventListener("load",m),p.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${d}`)))})}))}function a(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return l.then(r=>{for(const i of r||[])i.status==="rejected"&&a(i.reason);return t().catch(a)})};const Lr=typeof document<"u";function vC(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Z$(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&vC(e.default)}const Ut=Object.assign;function Lf(e,t){const n={};for(const o in t){const l=t[o];n[o]=Yo(l)?l.map(e):e(l)}return n}const vi=()=>{},Yo=Array.isArray;function l0(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const hC=/#/g,Q$=/&/g,eR=/\//g,tR=/=/g,nR=/\?/g,mC=/\+/g,oR=/%5B/g,lR=/%5D/g,gC=/%5E/g,aR=/%60/g,bC=/%7B/g,rR=/%7C/g,yC=/%7D/g,sR=/%20/g;function fh(e){return e==null?"":encodeURI(""+e).replace(rR,"|").replace(oR,"[").replace(lR,"]")}function iR(e){return fh(e).replace(bC,"{").replace(yC,"}").replace(gC,"^")}function Ip(e){return fh(e).replace(mC,"%2B").replace(sR,"+").replace(hC,"%23").replace(Q$,"%26").replace(aR,"`").replace(bC,"{").replace(yC,"}").replace(gC,"^")}function uR(e){return Ip(e).replace(tR,"%3D")}function cR(e){return fh(e).replace(hC,"%23").replace(nR,"%3F")}function dR(e){return cR(e).replace(eR,"%2F")}function Ni(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const fR=/\/$/,pR=e=>e.replace(fR,"");function Df(e,t,n="/"){let o,l={},a="",r="";const i=t.indexOf("#");let u=t.indexOf("?");return u=i>=0&&u>i?-1:u,u>=0&&(o=t.slice(0,u),a=t.slice(u,i>0?i:t.length),l=e(a.slice(1))),i>=0&&(o=o||t.slice(0,i),r=t.slice(i,t.length)),o=gR(o??t,n),{fullPath:o+a+r,path:o,query:l,hash:Ni(r)}}function vR(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function a0(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function hR(e,t,n){const o=t.matched.length-1,l=n.matched.length-1;return o>-1&&o===l&&ss(t.matched[o],n.matched[l])&&wC(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function ss(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function wC(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!mR(e[n],t[n]))return!1;return!0}function mR(e,t){return Yo(e)?r0(e,t):Yo(t)?r0(t,e):e?.valueOf()===t?.valueOf()}function r0(e,t){return Yo(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function gR(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),l=o[o.length-1];(l===".."||l===".")&&o.push("");let a=n.length-1,r,i;for(r=0;r1&&a--;else break;return n.slice(0,a).join("/")+"/"+o.slice(r).join("/")}const ra={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Pp=(function(e){return e.pop="pop",e.push="push",e})({}),Bf=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function bR(e){if(!e)if(Lr){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),pR(e)}const yR=/^[^#]+#/;function wR(e,t){return e.replace(yR,"#")+t}function CR(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const Fd=()=>({left:window.scrollX,top:window.scrollY});function SR(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),l=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!l)return;t=CR(l,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function s0(e,t){return(history.state?history.state.position-t:-1)+e}const xp=new Map;function ER(e,t){xp.set(e,t)}function kR(e){const t=xp.get(e);return xp.delete(e),t}function _R(e){return typeof e=="string"||e&&typeof e=="object"}function CC(e){return typeof e=="string"||typeof e=="symbol"}let dn=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const SC=Symbol("");dn.MATCHER_NOT_FOUND+"",dn.NAVIGATION_GUARD_REDIRECT+"",dn.NAVIGATION_ABORTED+"",dn.NAVIGATION_CANCELLED+"",dn.NAVIGATION_DUPLICATED+"";function is(e,t){return Ut(new Error,{type:e,[SC]:!0},t)}function $l(e,t){return e instanceof Error&&SC in e&&(t==null||!!(e.type&t))}const TR=["params","query","hash"];function OR(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of TR)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function $R(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;ol&&Ip(l)):[o&&Ip(o)]).forEach(l=>{l!==void 0&&(t+=(t.length?"&":"")+n,l!=null&&(t+="="+l))})}return t}function RR(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=Yo(o)?o.map(l=>l==null?null:""+l):o==null?o:""+o)}return t}const NR=Symbol(""),u0=Symbol(""),Vd=Symbol(""),ph=Symbol(""),Mp=Symbol("");function js(){let e=[];function t(o){return e.push(o),()=>{const l=e.indexOf(o);l>-1&&e.splice(l,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function ha(e,t,n,o,l,a=r=>r()){const r=o&&(o.enterCallbacks[l]=o.enterCallbacks[l]||[]);return()=>new Promise((i,u)=>{const c=v=>{v===!1?u(is(dn.NAVIGATION_ABORTED,{from:n,to:t})):v instanceof Error?u(v):_R(v)?u(is(dn.NAVIGATION_GUARD_REDIRECT,{from:t,to:v})):(r&&o.enterCallbacks[l]===r&&typeof v=="function"&&r.push(v),i())},d=a(()=>e.call(o&&o.instances[l],t,n,c));let f=Promise.resolve(d);e.length<3&&(f=f.then(c)),f.catch(v=>u(v))})}function Ff(e,t,n,o,l=a=>a()){const a=[];for(const r of e)for(const i in r.components){let u=r.components[i];if(!(t!=="beforeRouteEnter"&&!r.instances[i]))if(vC(u)){const c=(u.__vccOpts||u)[t];c&&a.push(ha(c,n,o,r,i,l))}else{let c=u();a.push(()=>c.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${i}" at "${r.path}"`);const f=Z$(d)?d.default:d;r.mods[i]=d,r.components[i]=f;const v=(f.__vccOpts||f)[t];return v&&ha(v,n,o,r,i,l)()}))}}return a}function IR(e,t){const n=[],o=[],l=[],a=Math.max(t.matched.length,e.matched.length);for(let r=0;rss(c,i))?o.push(i):n.push(i));const u=e.matched[r];u&&(t.matched.find(c=>ss(c,u))||l.push(u))}return[n,o,l]}let PR=()=>location.protocol+"//"+location.host;function EC(e,t){const{pathname:n,search:o,hash:l}=t,a=e.indexOf("#");if(a>-1){let r=l.includes(e.slice(a))?e.slice(a).length:1,i=l.slice(r);return i[0]!=="/"&&(i="/"+i),a0(i,"")}return a0(n,e)+o+l}function xR(e,t,n,o){let l=[],a=[],r=null;const i=({state:v})=>{const p=EC(e,location),m=n.value,h=t.value;let g=0;if(v){if(n.value=p,t.value=v,r&&r===m){r=null;return}g=h?v.position-h.position:0}else o(p);l.forEach(b=>{b(n.value,m,{delta:g,type:Pp.pop,direction:g?g>0?Bf.forward:Bf.back:Bf.unknown})})};function u(){r=n.value}function c(v){l.push(v);const p=()=>{const m=l.indexOf(v);m>-1&&l.splice(m,1)};return a.push(p),p}function d(){if(document.visibilityState==="hidden"){const{history:v}=window;if(!v.state)return;v.replaceState(Ut({},v.state,{scroll:Fd()}),"")}}function f(){for(const v of a)v();a=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",d),document.removeEventListener("visibilitychange",d)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",d),document.addEventListener("visibilitychange",d),{pauseListeners:u,listen:c,destroy:f}}function c0(e,t,n,o=!1,l=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:l?Fd():null}}function MR(e){const{history:t,location:n}=window,o={value:EC(e,n)},l={value:t.state};l.value||a(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(u,c,d){const f=e.indexOf("#"),v=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+u:PR()+e+u;try{t[d?"replaceState":"pushState"](c,"",v),l.value=c}catch(p){console.error(p),n[d?"replace":"assign"](v)}}function r(u,c){a(u,Ut({},t.state,c0(l.value.back,u,l.value.forward,!0),c,{position:l.value.position}),!0),o.value=u}function i(u,c){const d=Ut({},l.value,t.state,{forward:u,scroll:Fd()});a(d.current,d,!0),a(u,Ut({},c0(o.value,u,null),{position:d.position+1},c),!1),o.value=u}return{location:o,state:l,push:i,replace:r}}function AR(e){e=bR(e);const t=MR(e),n=xR(e,t.state,t.location,t.replace);function o(a,r=!0){r||n.pauseListeners(),history.go(a)}const l=Ut({location:"",base:e,go:o,createHref:wR.bind(null,e)},t,n);return Object.defineProperty(l,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(l,"state",{enumerable:!0,get:()=>t.state.value}),l}function LR(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),AR(e)}let ja=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var wn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(wn||{});const DR={type:ja.Static,value:""},BR=/[a-zA-Z0-9_]/;function FR(e){if(!e)return[[]];if(e==="/")return[[DR]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${c}": ${p}`)}let n=wn.Static,o=n;const l=[];let a;function r(){a&&l.push(a),a=[]}let i=0,u,c="",d="";function f(){c&&(n===wn.Static?a.push({type:ja.Static,value:c}):n===wn.Param||n===wn.ParamRegExp||n===wn.ParamRegExpEnd?(a.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),a.push({type:ja.Param,value:c,regexp:d,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),c="")}function v(){c+=u}for(;it.length?t.length===1&&t[0]===Gn.Static+Gn.Segment?1:-1:0}function kC(e,t){let n=0;const o=e.score,l=t.score;for(;n0&&t[t.length-1]<0}const WR={strict:!1,end:!0,sensitive:!1};function jR(e,t,n){const o=zR(FR(e.path),n),l=Ut(o,{record:e,parent:t,children:[],alias:[]});return t&&!l.record.aliasOf==!t.record.aliasOf&&t.children.push(l),l}function UR(e,t){const n=[],o=new Map;t=l0(WR,t);function l(f){return o.get(f)}function a(f,v,p){const m=!p,h=v0(f);h.aliasOf=p&&p.record;const g=l0(t,f),b=[h];if("alias"in f){const w=typeof f.alias=="string"?[f.alias]:f.alias;for(const E of w)b.push(v0(Ut({},h,{components:p?p.record.components:h.components,path:E,aliasOf:p?p.record:h})))}let C,y;for(const w of b){const{path:E}=w;if(v&&E[0]!=="/"){const k=v.record.path,T=k[k.length-1]==="/"?"":"/";w.path=v.record.path+(E&&T+E)}if(C=jR(w,v,g),p?p.alias.push(C):(y=y||C,y!==C&&y.alias.push(C),m&&f.name&&!h0(C)&&r(f.name)),_C(C)&&u(C),h.children){const k=h.children;for(let T=0;T{r(y)}:vi}function r(f){if(CC(f)){const v=o.get(f);v&&(o.delete(f),n.splice(n.indexOf(v),1),v.children.forEach(r),v.alias.forEach(r))}else{const v=n.indexOf(f);v>-1&&(n.splice(v,1),f.record.name&&o.delete(f.record.name),f.children.forEach(r),f.alias.forEach(r))}}function i(){return n}function u(f){const v=GR(f,n);n.splice(v,0,f),f.record.name&&!h0(f)&&o.set(f.record.name,f)}function c(f,v){let p,m={},h,g;if("name"in f&&f.name){if(p=o.get(f.name),!p)throw is(dn.MATCHER_NOT_FOUND,{location:f});g=p.record.name,m=Ut(p0(v.params,p.keys.filter(y=>!y.optional).concat(p.parent?p.parent.keys.filter(y=>y.optional):[]).map(y=>y.name)),f.params&&p0(f.params,p.keys.map(y=>y.name))),h=p.stringify(m)}else if(f.path!=null)h=f.path,p=n.find(y=>y.re.test(h)),p&&(m=p.parse(h),g=p.record.name);else{if(p=v.name?o.get(v.name):n.find(y=>y.re.test(v.path)),!p)throw is(dn.MATCHER_NOT_FOUND,{location:f,currentLocation:v});g=p.record.name,m=Ut({},v.params,f.params),h=p.stringify(m)}const b=[];let C=p;for(;C;)b.unshift(C.record),C=C.parent;return{name:g,path:h,params:m,matched:b,meta:YR(b)}}e.forEach(f=>a(f));function d(){n.length=0,o.clear()}return{addRoute:a,resolve:c,removeRoute:r,clearRoutes:d,getRoutes:i,getRecordMatcher:l}}function p0(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function v0(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:qR(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function qR(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function h0(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function YR(e){return e.reduce((t,n)=>Ut(t,n.meta),{})}function GR(e,t){let n=0,o=t.length;for(;n!==o;){const a=n+o>>1;kC(e,t[a])<0?o=a:n=a+1}const l=XR(e);return l&&(o=t.lastIndexOf(l,o-1)),o}function XR(e){let t=e;for(;t=t.parent;)if(_C(t)&&kC(e,t)===0)return t}function _C({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function m0(e){const t=Pe(Vd),n=Pe(ph),o=S(()=>{const u=s(e.to);return t.resolve(u)}),l=S(()=>{const{matched:u}=o.value,{length:c}=u,d=u[c-1],f=n.matched;if(!d||!f.length)return-1;const v=f.findIndex(ss.bind(null,d));if(v>-1)return v;const p=g0(u[c-2]);return c>1&&g0(d)===p&&f[f.length-1].path!==p?f.findIndex(ss.bind(null,u[c-2])):v}),a=S(()=>l.value>-1&&tN(n.params,o.value.params)),r=S(()=>l.value>-1&&l.value===n.matched.length-1&&wC(n.params,o.value.params));function i(u={}){if(eN(u)){const c=t[s(e.replace)?"replace":"push"](s(e.to)).catch(vi);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:o,href:S(()=>o.value.href),isActive:a,isExactActive:r,navigate:i}}function JR(e){return e.length===1?e[0]:e}const ZR=q({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:m0,setup(e,{slots:t}){const n=_t(m0(e)),{options:o}=Pe(Vd),l=S(()=>({[b0(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[b0(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const a=t.default&&JR(t.default(n));return e.custom?a:Ue("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:l.value},a)}}}),QR=ZR;function eN(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function tN(e,t){for(const n in t){const o=t[n],l=e[n];if(typeof o=="string"){if(o!==l)return!1}else if(!Yo(l)||l.length!==o.length||o.some((a,r)=>a.valueOf()!==l[r].valueOf()))return!1}return!0}function g0(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const b0=(e,t,n)=>e??t??n,nN=q({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=Pe(Mp),l=S(()=>e.route||o.value),a=Pe(u0,0),r=S(()=>{let c=s(a);const{matched:d}=l.value;let f;for(;(f=d[c])&&!f.components;)c++;return c}),i=S(()=>l.value.matched[r.value]);ut(u0,S(()=>r.value+1)),ut(NR,i),ut(Mp,l);const u=L();return pe(()=>[u.value,i.value,e.name],([c,d,f],[v,p,m])=>{d&&(d.instances[f]=c,p&&p!==d&&c&&c===v&&(d.leaveGuards.size||(d.leaveGuards=p.leaveGuards),d.updateGuards.size||(d.updateGuards=p.updateGuards))),c&&d&&(!p||!ss(d,p)||!v)&&(d.enterCallbacks[f]||[]).forEach(h=>h(c))},{flush:"post"}),()=>{const c=l.value,d=e.name,f=i.value,v=f&&f.components[d];if(!v)return y0(n.default,{Component:v,route:c});const p=f.props[d],m=p?p===!0?c.params:typeof p=="function"?p(c):p:null,g=Ue(v,Ut({},m,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(f.instances[d]=null)},ref:u}));return y0(n.default,{Component:g,route:c})||g}}});function y0(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const oN=nN;function lN(e){const t=UR(e.routes,e),n=e.parseQuery||$R,o=e.stringifyQuery||i0,l=e.history,a=js(),r=js(),i=js(),u=Wt(ra);let c=ra;Lr&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=Lf.bind(null,U=>""+U),f=Lf.bind(null,dR),v=Lf.bind(null,Ni);function p(U,G){let se,ve;return CC(U)?(se=t.getRecordMatcher(U),ve=G):ve=U,t.addRoute(ve,se)}function m(U){const G=t.getRecordMatcher(U);G&&t.removeRoute(G)}function h(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function b(U,G){if(G=Ut({},G||u.value),typeof U=="string"){const ue=Df(n,U,G.path),de=t.resolve({path:ue.path},G),Ce=l.createHref(ue.fullPath);return Ut(ue,de,{params:v(de.params),hash:Ni(ue.hash),redirectedFrom:void 0,href:Ce})}let se;if(U.path!=null)se=Ut({},U,{path:Df(n,U.path,G.path).path});else{const ue=Ut({},U.params);for(const de in ue)ue[de]==null&&delete ue[de];se=Ut({},U,{params:f(ue)}),G.params=f(G.params)}const ve=t.resolve(se,G),ae=U.hash||"";ve.params=d(v(ve.params));const j=vR(o,Ut({},U,{hash:iR(ae),path:ve.path})),ne=l.createHref(j);return Ut({fullPath:j,hash:ae,query:o===i0?RR(U.query):U.query||{}},ve,{redirectedFrom:void 0,href:ne})}function C(U){return typeof U=="string"?Df(n,U,u.value.path):Ut({},U)}function y(U,G){if(c!==U)return is(dn.NAVIGATION_CANCELLED,{from:G,to:U})}function w(U){return T(U)}function E(U){return w(Ut(C(U),{replace:!0}))}function k(U,G){const se=U.matched[U.matched.length-1];if(se&&se.redirect){const{redirect:ve}=se;let ae=typeof ve=="function"?ve(U,G):ve;return typeof ae=="string"&&(ae=ae.includes("?")||ae.includes("#")?ae=C(ae):{path:ae},ae.params={}),Ut({query:U.query,hash:U.hash,params:ae.path!=null?{}:U.params},ae)}}function T(U,G){const se=c=b(U),ve=u.value,ae=U.state,j=U.force,ne=U.replace===!0,ue=k(se,ve);if(ue)return T(Ut(C(ue),{state:typeof ue=="object"?Ut({},ae,ue.state):ae,force:j,replace:ne}),G||se);const de=se;de.redirectedFrom=G;let Ce;return!j&&hR(o,ve,se)&&(Ce=is(dn.NAVIGATION_DUPLICATED,{to:de,from:ve}),H(ve,ve,!0,!1)),(Ce?Promise.resolve(Ce):O(de,ve)).catch(fe=>$l(fe)?$l(fe,dn.NAVIGATION_GUARD_REDIRECT)?fe:V(fe):$(fe,de,ve)).then(fe=>{if(fe){if($l(fe,dn.NAVIGATION_GUARD_REDIRECT))return T(Ut({replace:ne},C(fe.to),{state:typeof fe.to=="object"?Ut({},ae,fe.to.state):ae,force:j}),G||de)}else fe=P(de,ve,!0,ne,ae);return I(de,ve,fe),fe})}function x(U,G){const se=y(U,G);return se?Promise.reject(se):Promise.resolve()}function N(U){const G=te.values().next().value;return G&&typeof G.runWithContext=="function"?G.runWithContext(U):U()}function O(U,G){let se;const[ve,ae,j]=IR(U,G);se=Ff(ve.reverse(),"beforeRouteLeave",U,G);for(const ue of ve)ue.leaveGuards.forEach(de=>{se.push(ha(de,U,G))});const ne=x.bind(null,U,G);return se.push(ne),ce(se).then(()=>{se=[];for(const ue of a.list())se.push(ha(ue,U,G));return se.push(ne),ce(se)}).then(()=>{se=Ff(ae,"beforeRouteUpdate",U,G);for(const ue of ae)ue.updateGuards.forEach(de=>{se.push(ha(de,U,G))});return se.push(ne),ce(se)}).then(()=>{se=[];for(const ue of j)if(ue.beforeEnter)if(Yo(ue.beforeEnter))for(const de of ue.beforeEnter)se.push(ha(de,U,G));else se.push(ha(ue.beforeEnter,U,G));return se.push(ne),ce(se)}).then(()=>(U.matched.forEach(ue=>ue.enterCallbacks={}),se=Ff(j,"beforeRouteEnter",U,G,N),se.push(ne),ce(se))).then(()=>{se=[];for(const ue of r.list())se.push(ha(ue,U,G));return se.push(ne),ce(se)}).catch(ue=>$l(ue,dn.NAVIGATION_CANCELLED)?ue:Promise.reject(ue))}function I(U,G,se){i.list().forEach(ve=>N(()=>ve(U,G,se)))}function P(U,G,se,ve,ae){const j=y(U,G);if(j)return j;const ne=G===ra,ue=Lr?history.state:{};se&&(ve||ne?l.replace(U.fullPath,Ut({scroll:ne&&ue&&ue.scroll},ae)):l.push(U.fullPath,ae)),u.value=U,H(U,G,se,ne),V()}let K;function B(){K||(K=l.listen((U,G,se)=>{if(!le.listening)return;const ve=b(U),ae=k(ve,le.currentRoute.value);if(ae){T(Ut(ae,{replace:!0,force:!0}),ve).catch(vi);return}c=ve;const j=u.value;Lr&&ER(s0(j.fullPath,se.delta),Fd()),O(ve,j).catch(ne=>$l(ne,dn.NAVIGATION_ABORTED|dn.NAVIGATION_CANCELLED)?ne:$l(ne,dn.NAVIGATION_GUARD_REDIRECT)?(T(Ut(C(ne.to),{force:!0}),ve).then(ue=>{$l(ue,dn.NAVIGATION_ABORTED|dn.NAVIGATION_DUPLICATED)&&!se.delta&&se.type===Pp.pop&&l.go(-1,!1)}).catch(vi),Promise.reject()):(se.delta&&l.go(-se.delta,!1),$(ne,ve,j))).then(ne=>{ne=ne||P(ve,j,!1),ne&&(se.delta&&!$l(ne,dn.NAVIGATION_CANCELLED)?l.go(-se.delta,!1):se.type===Pp.pop&&$l(ne,dn.NAVIGATION_ABORTED|dn.NAVIGATION_DUPLICATED)&&l.go(-1,!1)),I(ve,j,ne)}).catch(vi)}))}let Y=js(),M=js(),A;function $(U,G,se){V(U);const ve=M.list();return ve.length?ve.forEach(ae=>ae(U,G,se)):console.error(U),Promise.reject(U)}function D(){return A&&u.value!==ra?Promise.resolve():new Promise((U,G)=>{Y.add([U,G])})}function V(U){return A||(A=!U,B(),Y.list().forEach(([G,se])=>U?se(U):G()),Y.reset()),U}function H(U,G,se,ve){const{scrollBehavior:ae}=e;if(!Lr||!ae)return Promise.resolve();const j=!se&&kR(s0(U.fullPath,0))||(ve||!se)&&history.state&&history.state.scroll||null;return Le().then(()=>ae(U,G,j)).then(ne=>ne&&SR(ne)).catch(ne=>$(ne,U,G))}const W=U=>l.go(U);let X;const te=new Set,le={currentRoute:u,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:b,options:e,push:w,replace:E,go:W,back:()=>W(-1),forward:()=>W(1),beforeEach:a.add,beforeResolve:r.add,afterEach:i.add,onError:M.add,isReady:D,install(U){U.component("RouterLink",QR),U.component("RouterView",oN),U.config.globalProperties.$router=le,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>s(u)}),Lr&&!X&&u.value===ra&&(X=!0,w(l.location).catch(ve=>{}));const G={};for(const ve in ra)Object.defineProperty(G,ve,{get:()=>u.value[ve],enumerable:!0});U.provide(Vd,le),U.provide(ph,Rd(G)),U.provide(Mp,u);const se=U.unmount;te.add(U),U.unmount=function(){te.delete(U),te.size<1&&(c=ra,K&&K(),K=null,u.value=ra,X=!1,A=!1),se()}}};function ce(U){return U.reduce((G,se)=>G.then(()=>N(se)),Promise.resolve())}return le}function aN(){return Pe(Vd)}function rN(e){return Pe(ph)}const sN="2.11.3",w0=Symbol("INSTALLED_KEY"),TC=Symbol(),hi="el",iN="is-",Fa=(e,t,n,o,l)=>{let a=`${e}-${t}`;return n&&(a+=`-${n}`),o&&(a+=`__${o}`),l&&(a+=`--${l}`),a},OC=Symbol("namespaceContextKey"),vh=e=>{const t=e||(it()?Pe(OC,L(hi)):L(hi));return S(()=>s(t)||hi)},be=(e,t)=>{const n=vh(t);return{namespace:n,b:(h="")=>Fa(n.value,e,h,"",""),e:h=>h?Fa(n.value,e,"",h,""):"",m:h=>h?Fa(n.value,e,"","",h):"",be:(h,g)=>h&&g?Fa(n.value,e,h,g,""):"",em:(h,g)=>h&&g?Fa(n.value,e,"",h,g):"",bm:(h,g)=>h&&g?Fa(n.value,e,h,"",g):"",bem:(h,g,b)=>h&&g&&b?Fa(n.value,e,h,g,b):"",is:(h,...g)=>{const b=g.length>=1?g[0]:!0;return h&&b?`${iN}${h}`:""},cssVar:h=>{const g={};for(const b in h)h[b]&&(g[`--${n.value}-${b}`]=h[b]);return g},cssVarName:h=>`--${n.value}-${h}`,cssVarBlock:h=>{const g={};for(const b in h)h[b]&&(g[`--${n.value}-${e}-${b}`]=h[b]);return g},cssVarBlockName:h=>`--${n.value}-${e}-${h}`}};var $C=typeof global=="object"&&global&&global.Object===Object&&global,uN=typeof self=="object"&&self&&self.Object===Object&&self,tl=$C||uN||Function("return this")(),No=tl.Symbol,RC=Object.prototype,cN=RC.hasOwnProperty,dN=RC.toString,Us=No?No.toStringTag:void 0;function fN(e){var t=cN.call(e,Us),n=e[Us];try{e[Us]=void 0;var o=!0}catch{}var l=dN.call(e);return o&&(t?e[Us]=n:delete e[Us]),l}var pN=Object.prototype,vN=pN.toString;function hN(e){return vN.call(e)}var mN="[object Null]",gN="[object Undefined]",C0=No?No.toStringTag:void 0;function br(e){return e==null?e===void 0?gN:mN:C0&&C0 in Object(e)?fN(e):hN(e)}function gl(e){return e!=null&&typeof e=="object"}var bN="[object Symbol]";function Hd(e){return typeof e=="symbol"||gl(e)&&br(e)==bN}function hh(e,t){for(var n=-1,o=e==null?0:e.length,l=Array(o);++n0){if(++t>=UN)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function XN(e){return function(){return e}}var Yc=(function(){try{var e=wr(Object,"defineProperty");return e({},"",{}),e}catch{}})(),JN=Yc?function(e,t){return Yc(e,"toString",{configurable:!0,enumerable:!1,value:XN(t),writable:!0})}:mh,PC=GN(JN);function ZN(e,t){for(var n=-1,o=e==null?0:e.length;++n-1}var o4=9007199254740991,l4=/^(?:0|[1-9]\d*)$/;function zd(e,t){var n=typeof e;return t=t??o4,!!t&&(n=="number"||n!="symbol"&&l4.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=s4}function $s(e){return e!=null&&wh(e.length)&&!gh(e)}function i4(e,t,n){if(!eo(n))return!1;var o=typeof t;return(o=="number"?$s(n)&&zd(t,n.length):o=="string"&&t in n)?su(n[t],e):!1}function u4(e){return AC(function(t,n){var o=-1,l=n.length,a=l>1?n[l-1]:void 0,r=l>2?n[2]:void 0;for(a=e.length>3&&typeof a=="function"?(l--,a):void 0,r&&i4(n[0],n[1],r)&&(a=l<3?void 0:a,l=1),t=Object(t);++o-1}function yI(e,t){var n=this.__data__,o=Kd(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function Ql(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(i)?t>1?cu(i,t-1,n,o,l):_h(l,i):o||(l[l.length]=i)}return l}function HC(e){var t=e==null?0:e.length;return t?cu(e,1):[]}function zC(e){return PC(MC(e,void 0,HC),e+"")}var Th=VC(Object.getPrototypeOf,Object),MI="[object Object]",AI=Function.prototype,LI=Object.prototype,KC=AI.toString,DI=LI.hasOwnProperty,BI=KC.call(Object);function WC(e){if(!gl(e)||br(e)!=MI)return!1;var t=Th(e);if(t===null)return!0;var n=DI.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&KC.call(n)==BI}function FI(e,t,n){var o=-1,l=e.length;t<0&&(t=-t>l?0:l+t),n=n>l?l:n,n<0&&(n+=l),l=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(l);++o=t?e:t)),e}function jC(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=mi(n),n=n===n?n:0),t!==void 0&&(t=mi(t),t=t===t?t:0),VI(mi(e),t,n)}function HI(){this.__data__=new Ql,this.size=0}function zI(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function KI(e){return this.__data__.get(e)}function WI(e){return this.__data__.has(e)}var jI=200;function UI(e,t){var n=this.__data__;if(n instanceof Ql){var o=n.__data__;if(!Mi||o.lengthi))return!1;var c=a.get(e),d=a.get(t);if(c&&d)return c==t&&d==e;var f=-1,v=!0,p=n&CP?new Ai:void 0;for(a.set(e,t),a.set(t,e);++f=t||T<0||f&&x>=a}function b(){var k=Kf();if(g(k))return C(k);i=setTimeout(b,h(k))}function C(k){return i=void 0,v&&o?p(k):(o=l=void 0,r)}function y(){i!==void 0&&clearTimeout(i),c=0,o=u=l=i=void 0}function w(){return i===void 0?r:C(Kf())}function E(){var k=Kf(),T=g(k);if(o=arguments,l=this,u=k,T){if(i===void 0)return m(u);if(f)return clearTimeout(i),i=setTimeout(b,t),p(u)}return i===void 0&&(i=setTimeout(b,t)),r}return E.cancel=y,E.flush=w,E}function Fp(e,t,n){(n!==void 0&&!su(e[t],n)||n===void 0&&!(t in e))&&bh(e,t,n)}function cS(e){return gl(e)&&$s(e)}function Vp(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function cx(e){return Os(e,uu(e))}function dx(e,t,n,o,l,a,r){var i=Vp(e,n),u=Vp(t,n),c=r.get(u);if(c){Fp(e,n,c);return}var d=a?a(i,u,n+"",e,t,r):void 0,f=d===void 0;if(f){var v=Qn(u),p=!v&&Pi(u),m=!v&&!p&&Eh(u);d=u,v||p||m?Qn(i)?d=i:cS(i)?d=IC(i):p?(f=!1,d=qC(u,!0)):m?(f=!1,d=ZC(u,!0)):d=[]:WC(u)||Ii(u)?(d=i,Ii(i)?d=cx(i):(!eo(i)||gh(i))&&(d=QC(u))):f=!1}f&&(r.set(u,d),l(d,u,o,a,r),r.delete(u)),Fp(e,n,d)}function dS(e,t,n,o,l){e!==t&&uS(t,function(a,r){if(l||(l=new Ko),eo(a))dx(e,t,r,n,dS,o,l);else{var i=o?o(Vp(e,r),a,r+"",e,t,l):void 0;i===void 0&&(i=a),Fp(e,r,i)}},uu)}function fx(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function fS(e,t,n){var o=e==null?0:e.length;if(!o)return-1;var l=o-1;return xC(e,iS(t),l,!0)}function px(e,t){var n=-1,o=$s(e)?Array(e.length):[];return rx(e,function(l,a,r){o[++n]=t(l,a,r)}),o}function vx(e,t){var n=Qn(e)?hh:px;return n(e,iS(t))}function pS(e,t){return cu(vx(e,t),1)}var hx=1/0;function mx(e){var t=e==null?0:e.length;return t?cu(e,hx):[]}function Li(e){for(var t=-1,n=e==null?0:e.length,o={};++t1),a}),Os(e,JC(e),n),o&&(n=Xr(n,Cx|Sx|Ex,wx));for(var l=t.length;l--;)yx(n,t[l]);return n});function mS(e,t,n,o){if(!eo(e))return e;t=Rs(t,e);for(var l=-1,a=t.length,r=a-1,i=e;i!=null&&++l=Nx){var c=Rx(e);if(c)return Rh(c);r=!1,l=oS,u=new Ai}else u=i;e:for(;++oe===void 0,Mt=e=>typeof e=="boolean",je=e=>typeof e=="number",ho=e=>!e&&e!==0||ye(e)&&e.length===0||et(e)&&!Object.keys(e).length,yo=e=>typeof Element>"u"?!1:e instanceof Element,ro=e=>rn(e),Px=e=>Fe(e)?!Number.isNaN(Number(e)):!1,fu=e=>e===window;var xx=Object.defineProperty,Mx=Object.defineProperties,Ax=Object.getOwnPropertyDescriptors,J0=Object.getOwnPropertySymbols,Lx=Object.prototype.hasOwnProperty,Dx=Object.prototype.propertyIsEnumerable,Z0=(e,t,n)=>t in e?xx(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bx=(e,t)=>{for(var n in t||(t={}))Lx.call(t,n)&&Z0(e,n,t[n]);if(J0)for(var n of J0(t))Dx.call(t,n)&&Z0(e,n,t[n]);return e},Fx=(e,t)=>Mx(e,Ax(t));function Jc(e,t){var n;const o=Wt();return Kn(()=>{o.value=e()},Fx(Bx({},t),{flush:(n=void 0)!=null?n:"sync"})),rr(o)}var Q0;const Et=typeof window<"u",Vx=e=>typeof e<"u",Hp=e=>typeof e=="function",Hx=e=>typeof e=="string",gS=(e,t,n)=>Math.min(n,Math.max(t,e)),Fl=()=>{},Zc=Et&&((Q0=window?.navigator)==null?void 0:Q0.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function $a(e){return typeof e=="function"?e():s(e)}function bS(e,t){function n(...o){return new Promise((l,a)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(l).catch(a)})}return n}function zx(e,t={}){let n,o,l=Fl;const a=i=>{clearTimeout(i),l(),l=Fl};return i=>{const u=$a(e),c=$a(t.maxWait);return n&&a(n),u<=0||c!==void 0&&c<=0?(o&&(a(o),o=null),Promise.resolve(i())):new Promise((d,f)=>{l=t.rejectOnCancel?f:d,c&&!o&&(o=setTimeout(()=>{n&&a(n),o=null,d(i())},c)),n=setTimeout(()=>{o&&a(o),o=null,d(i())},u)})}}function Kx(e,t=!0,n=!0,o=!1){let l=0,a,r=!0,i=Fl,u;const c=()=>{a&&(clearTimeout(a),a=void 0,i(),i=Fl)};return f=>{const v=$a(e),p=Date.now()-l,m=()=>u=f();return c(),v<=0?(l=Date.now(),m()):(p>v&&(n||!r)?(l=Date.now(),m()):t&&(u=new Promise((h,g)=>{i=o?g:h,a=setTimeout(()=>{l=Date.now(),r=!0,h(m()),c()},Math.max(0,v-p))})),!n&&!a&&(a=setTimeout(()=>r=!0,v)),r=!1,u)}}function Wx(e){return e}function jx(e,t){let n,o,l;const a=L(!0),r=()=>{a.value=!0,l()};pe(e,r,{flush:"sync"});const i=Hp(t)?t:t.get,u=Hp(t)?void 0:t.set,c=tO((d,f)=>(o=d,l=f,{get(){return a.value&&(n=i(),a.value=!1),o(),n},set(v){u?.(v)}}));return Object.isExtensible(c)&&(c.trigger=r),c}function Is(e){return jw()?(Uw(e),!0):!1}function Ux(e){if(!Kt(e))return _t(e);const t=new Proxy({},{get(n,o,l){return s(Reflect.get(e.value,o,l))},set(n,o,l){return Kt(e.value[o])&&!Kt(l)?e.value[o].value=l:e.value[o]=l,!0},deleteProperty(n,o){return Reflect.deleteProperty(e.value,o)},has(n,o){return Reflect.has(e.value,o)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return _t(t)}function qx(e){return Ux(S(e))}function Yx(e,t=200,n={}){return bS(zx(t,n),e)}function Gx(e,t=200,n={}){const o=L(e.value),l=Yx(()=>{o.value=e.value},t,n);return pe(e,()=>l()),o}function yS(e,t=200,n=!1,o=!0,l=!1){return bS(Kx(t,n,o,l),e)}function Nh(e,t=!0){it()?rt(e):t?e():Le(e)}function ur(e,t,n={}){const{immediate:o=!0}=n,l=L(!1);let a=null;function r(){a&&(clearTimeout(a),a=null)}function i(){l.value=!1,r()}function u(...c){r(),l.value=!0,a=setTimeout(()=>{l.value=!1,a=null,e(...c)},$a(t))}return o&&(l.value=!0,Et&&u()),Is(i),{isPending:rr(l),start:u,stop:i}}function hn(e){var t;const n=$a(e);return(t=n?.$el)!=null?t:n}const Sl=Et?window:void 0,Xx=Et?window.document:void 0;function At(...e){let t,n,o,l;if(Hx(e[0])||Array.isArray(e[0])?([n,o,l]=e,t=Sl):[t,n,o,l]=e,!t)return Fl;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const a=[],r=()=>{a.forEach(d=>d()),a.length=0},i=(d,f,v,p)=>(d.addEventListener(f,v,p),()=>d.removeEventListener(f,v,p)),u=pe(()=>[hn(t),$a(l)],([d,f])=>{r(),d&&a.push(...n.flatMap(v=>o.map(p=>i(d,v,p,f))))},{immediate:!0,flush:"post"}),c=()=>{u(),r()};return Is(c),c}let eb=!1;function Ih(e,t,n={}){const{window:o=Sl,ignore:l=[],capture:a=!0,detectIframe:r=!1}=n;if(!o)return;Zc&&!eb&&(eb=!0,Array.from(o.document.body.children).forEach(v=>v.addEventListener("click",Fl)));let i=!0;const u=v=>l.some(p=>{if(typeof p=="string")return Array.from(o.document.querySelectorAll(p)).some(m=>m===v.target||v.composedPath().includes(m));{const m=hn(p);return m&&(v.target===m||v.composedPath().includes(m))}}),d=[At(o,"click",v=>{const p=hn(e);if(!(!p||p===v.target||v.composedPath().includes(p))){if(v.detail===0&&(i=!u(v)),!i){i=!0;return}t(v)}},{passive:!0,capture:a}),At(o,"pointerdown",v=>{const p=hn(e);p&&(i=!v.composedPath().includes(p)&&!u(v))},{passive:!0}),r&&At(o,"blur",v=>{var p;const m=hn(e);((p=o.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!m?.contains(o.document.activeElement)&&t(v)})].filter(Boolean);return()=>d.forEach(v=>v())}function Jx(e={}){var t;const{window:n=Sl}=e,o=(t=e.document)!=null?t:n?.document,l=jx(()=>null,()=>o?.activeElement);return n&&(At(n,"blur",a=>{a.relatedTarget===null&&l.trigger()},!0),At(n,"focus",l.trigger,!0)),l}function Ph(e,t=!1){const n=L(),o=()=>n.value=!!e();return o(),Nh(o,t),n}function Zx(e){return JSON.parse(JSON.stringify(e))}const tb=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},nb="__vueuse_ssr_handlers__";tb[nb]=tb[nb]||{};function Qx(e,t,{window:n=Sl,initialValue:o=""}={}){const l=L(o),a=S(()=>{var r;return hn(t)||((r=n?.document)==null?void 0:r.documentElement)});return pe([a,()=>$a(e)],([r,i])=>{var u;if(r&&n){const c=(u=n.getComputedStyle(r).getPropertyValue(i))==null?void 0:u.trim();l.value=c||o}},{immediate:!0}),pe(l,r=>{var i;(i=a.value)!=null&&i.style&&a.value.style.setProperty($a(e),r)}),l}function eM({document:e=Xx}={}){if(!e)return L("visible");const t=L(e.visibilityState);return At(e,"visibilitychange",()=>{t.value=e.visibilityState}),t}var ob=Object.getOwnPropertySymbols,tM=Object.prototype.hasOwnProperty,nM=Object.prototype.propertyIsEnumerable,oM=(e,t)=>{var n={};for(var o in e)tM.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&ob)for(var o of ob(e))t.indexOf(o)<0&&nM.call(e,o)&&(n[o]=e[o]);return n};function qt(e,t,n={}){const o=n,{window:l=Sl}=o,a=oM(o,["window"]);let r;const i=Ph(()=>l&&"ResizeObserver"in l),u=()=>{r&&(r.disconnect(),r=void 0)},c=pe(()=>hn(e),f=>{u(),i.value&&l&&f&&(r=new ResizeObserver(t),r.observe(f,a))},{immediate:!0,flush:"post"}),d=()=>{u(),c()};return Is(d),{isSupported:i,stop:d}}function lb(e,t={}){const{reset:n=!0,windowResize:o=!0,windowScroll:l=!0,immediate:a=!0}=t,r=L(0),i=L(0),u=L(0),c=L(0),d=L(0),f=L(0),v=L(0),p=L(0);function m(){const h=hn(e);if(!h){n&&(r.value=0,i.value=0,u.value=0,c.value=0,d.value=0,f.value=0,v.value=0,p.value=0);return}const g=h.getBoundingClientRect();r.value=g.height,i.value=g.bottom,u.value=g.left,c.value=g.right,d.value=g.top,f.value=g.width,v.value=g.x,p.value=g.y}return qt(e,m),pe(()=>hn(e),h=>!h&&m()),l&&At("scroll",m,{capture:!0,passive:!0}),o&&At("resize",m,{passive:!0}),Nh(()=>{a&&m()}),{height:r,bottom:i,left:u,right:c,top:d,width:f,x:v,y:p,update:m}}function zp(e,t={width:0,height:0},n={}){const{window:o=Sl,box:l="content-box"}=n,a=S(()=>{var u,c;return(c=(u=hn(e))==null?void 0:u.namespaceURI)==null?void 0:c.includes("svg")}),r=L(t.width),i=L(t.height);return qt(e,([u])=>{const c=l==="border-box"?u.borderBoxSize:l==="content-box"?u.contentBoxSize:u.devicePixelContentBoxSize;if(o&&a.value){const d=hn(e);if(d){const f=o.getComputedStyle(d);r.value=parseFloat(f.width),i.value=parseFloat(f.height)}}else if(c){const d=Array.isArray(c)?c:[c];r.value=d.reduce((f,{inlineSize:v})=>f+v,0),i.value=d.reduce((f,{blockSize:v})=>f+v,0)}else r.value=u.contentRect.width,i.value=u.contentRect.height},n),pe(()=>hn(e),u=>{r.value=u?t.width:0,i.value=u?t.height:0}),{width:r,height:i}}function lM(e,t,n={}){const{root:o,rootMargin:l="0px",threshold:a=.1,window:r=Sl}=n,i=Ph(()=>r&&"IntersectionObserver"in r);let u=Fl;const c=i.value?pe(()=>({el:hn(e),root:hn(o)}),({el:f,root:v})=>{if(u(),!f)return;const p=new IntersectionObserver(t,{root:v,rootMargin:l,threshold:a});p.observe(f),u=()=>{p.disconnect(),u=Fl}},{immediate:!0,flush:"post"}):Fl,d=()=>{u(),c()};return Is(d),{isSupported:i,stop:d}}var ab=Object.getOwnPropertySymbols,aM=Object.prototype.hasOwnProperty,rM=Object.prototype.propertyIsEnumerable,sM=(e,t)=>{var n={};for(var o in e)aM.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&ab)for(var o of ab(e))t.indexOf(o)<0&&rM.call(e,o)&&(n[o]=e[o]);return n};function wS(e,t,n={}){const o=n,{window:l=Sl}=o,a=sM(o,["window"]);let r;const i=Ph(()=>l&&"MutationObserver"in l),u=()=>{r&&(r.disconnect(),r=void 0)},c=pe(()=>hn(e),f=>{u(),i.value&&l&&f&&(r=new MutationObserver(t),r.observe(f,a))},{immediate:!0}),d=()=>{u(),c()};return Is(d),{isSupported:i,stop:d}}var rb;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(rb||(rb={}));var iM=Object.defineProperty,sb=Object.getOwnPropertySymbols,uM=Object.prototype.hasOwnProperty,cM=Object.prototype.propertyIsEnumerable,ib=(e,t,n)=>t in e?iM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dM=(e,t)=>{for(var n in t||(t={}))uM.call(t,n)&&ib(e,n,t[n]);if(sb)for(var n of sb(t))cM.call(t,n)&&ib(e,n,t[n]);return e};const fM={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};dM({linear:Wx},fM);function CS(e,t,n,o={}){var l,a,r;const{clone:i=!1,passive:u=!1,eventName:c,deep:d=!1,defaultValue:f}=o,v=it(),p=n||v?.emit||((l=v?.$emit)==null?void 0:l.bind(v))||((r=(a=v?.proxy)==null?void 0:a.$emit)==null?void 0:r.bind(v?.proxy));let m=c;t||(t="modelValue"),m=c||m||`update:${t.toString()}`;const h=b=>i?Hp(i)?i(b):Zx(b):b,g=()=>Vx(e[t])?h(e[t]):f;if(u){const b=g(),C=L(b);return pe(()=>e[t],y=>C.value=h(y)),pe(C,y=>{(y!==e[t]||d)&&p(m,y)},{deep:d}),C}else return S({get(){return g()},set(b){p(m,b)}})}function pM({window:e=Sl}={}){if(!e)return L(!1);const t=L(e.document.hasFocus());return At(e,"blur",()=>{t.value=!1}),At(e,"focus",()=>{t.value=!0}),t}function xh(e={}){const{window:t=Sl,initialWidth:n=1/0,initialHeight:o=1/0,listenOrientation:l=!0,includeScrollbar:a=!0}=e,r=L(n),i=L(o),u=()=>{t&&(a?(r.value=t.innerWidth,i.value=t.innerHeight):(r.value=t.document.documentElement.clientWidth,i.value=t.document.documentElement.clientHeight))};return u(),Nh(u),At("resize",u,{passive:!0}),l&&At("orientationchange",u,{passive:!0}),{width:r,height:i}}const ub={current:0},cb=L(0),SS=2e3,db=Symbol("elZIndexContextKey"),ES=Symbol("zIndexContextKey"),Ps=e=>{const t=it()?Pe(db,ub):ub,n=e||(it()?Pe(ES,void 0):void 0),o=S(()=>{const r=s(n);return je(r)?r:SS}),l=S(()=>o.value+cb.value),a=()=>(t.current++,cb.value=t.current,l.value);return!Et&&Pe(db),{initialZIndex:o,currentZIndex:l,nextZIndex:a}};var vM={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish",close:"Close this dialog"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const hM=e=>(t,n)=>mM(t,n,s(e)),mM=(e,t,n)=>an(n,e,e).replace(/\{(\w+)\}/g,(o,l)=>{var a;return`${(a=t?.[l])!=null?a:`{${l}}`}`}),gM=e=>{const t=S(()=>s(e).name),n=Kt(e)?e:L(e);return{lang:t,locale:n,t:hM(e)}},kS=Symbol("localeContextKey"),Ct=e=>{const t=e||Pe(kS,L());return gM(S(()=>t.value||vM))},_S="__epPropKey",Q=e=>e,bM=e=>et(e)&&!!e[_S],nl=(e,t)=>{if(!et(e)||bM(e))return e;const{values:n,required:o,default:l,type:a,validator:r}=e,u={type:a,required:!!o,validator:n||r?c=>{let d=!1,f=[];if(n&&(f=Array.from(n),Ot(e,"default")&&f.push(l),d||(d=f.includes(c))),r&&(d||(d=r(c))),!d&&f.length>0){const v=[...new Set(f)].map(p=>JSON.stringify(p)).join(", ");p$(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${v}], got value ${JSON.stringify(c)}.`)}return d}:void 0,[_S]:!0};return Ot(e,"default")&&(u.default=l),u},Se=e=>Li(Object.entries(e).map(([t,n])=>[t,nl(n,t)])),El=["","default","small","large"],pn=nl({type:String,values:El,required:!1}),TS=Symbol("size"),OS=()=>{const e=Pe(TS,{});return S(()=>s(e.size)||"")},$S=Symbol("emptyValuesContextKey"),yM=["",void 0,null],wM=void 0,Cr=Se({emptyValues:Array,valueOnClear:{type:Q([String,Number,Boolean,Function]),default:void 0,validator:e=>(e=ze(e)?e():e,ye(e)?e.every(t=>!t):!e)}}),pu=(e,t)=>{const n=it()?Pe($S,L({})):L({}),o=S(()=>e.emptyValues||n.value.emptyValues||yM),l=S(()=>ze(e.valueOnClear)?e.valueOnClear():e.valueOnClear!==void 0?e.valueOnClear:ze(n.value.valueOnClear)?n.value.valueOnClear():n.value.valueOnClear!==void 0?n.value.valueOnClear:t!==void 0?t:wM),a=r=>{let i=!0;return ye(r)?i=o.value.some(u=>Zt(r,u)):i=o.value.includes(r),i};return a(l.value),{emptyValues:o,valueOnClear:l,isEmptyValue:a}},cs=e=>Object.keys(e),RS=e=>Object.entries(e),bi=(e,t,n)=>({get value(){return an(e,t,n)},set value(o){Tx(e,t,o)}}),Qc=L();function xs(e,t=void 0){const n=it()?Pe(TC,Qc):Qc;return e?S(()=>{var o,l;return(l=(o=n.value)==null?void 0:o[e])!=null?l:t}):n}function Yd(e,t){const n=xs(),o=be(e,S(()=>{var i;return((i=n.value)==null?void 0:i.namespace)||hi})),l=Ct(S(()=>{var i;return(i=n.value)==null?void 0:i.locale})),a=Ps(S(()=>{var i;return((i=n.value)==null?void 0:i.zIndex)||SS})),r=S(()=>{var i;return s(t)||((i=n.value)==null?void 0:i.size)||""});return Mh(S(()=>s(n)||{})),{ns:o,locale:l,zIndex:a,size:r}}const Mh=(e,t,n=!1)=>{var o;const l=!!it(),a=l?xs():void 0,r=(o=t?.provide)!=null?o:l?ut:void 0;if(!r)return;const i=S(()=>{const u=s(e);return a?.value?CM(a.value,u):u});return r(TC,i),r(kS,S(()=>i.value.locale)),r(OC,S(()=>i.value.namespace)),r(ES,S(()=>i.value.zIndex)),r(TS,{size:S(()=>i.value.size||"")}),r($S,S(()=>({emptyValues:i.value.emptyValues,valueOnClear:i.value.valueOnClear}))),(n||!Qc.value)&&(Qc.value=i.value),i},CM=(e,t)=>{const n=[...new Set([...cs(e),...cs(t)])],o={};for(const l of n)o[l]=t[l]!==void 0?t[l]:e[l];return o},SM=(e=[])=>({version:sN,install:(n,o)=>{n[w0]||(n[w0]=!0,e.forEach(l=>n.use(l)),o&&Mh(o,n,!0))}}),Ge="update:modelValue",ht="change",fn="input",EM=Se({zIndex:{type:Q([Number,String]),default:100},target:{type:String,default:""},offset:{type:Number,default:0},position:{type:String,values:["top","bottom"],default:"top"}}),kM={scroll:({scrollTop:e,fixed:t})=>je(e)&&Mt(t),[ht]:e=>Mt(e)};var Te=(e,t)=>{const n=e.__vccOpts||e;for(const[o,l]of t)n[o]=l;return n};function _M(e,t,n,o){const l=n-t;return e/=o/2,e<1?l/2*e*e*e+t:l/2*((e-=2)*e*e+2)+t}const Ra=e=>Et?window.requestAnimationFrame(e):setTimeout(e,16),cr=e=>Et?window.cancelAnimationFrame(e):clearTimeout(e),NS=(e="")=>e.split(" ").filter(t=>!!t.trim()),To=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Oo=(e,t)=>{!e||!t.trim()||e.classList.add(...NS(t))},Wn=(e,t)=>{!e||!t.trim()||e.classList.remove(...NS(t))},Al=(e,t)=>{var n;if(!Et||!e||!t)return"";let o=Zn(t);o==="float"&&(o="cssFloat");try{const l=e.style[o];if(l)return l;const a=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return a?a[o]:""}catch{return e.style[o]}},IS=(e,t,n)=>{if(!(!e||!t))if(et(t))RS(t).forEach(([o,l])=>IS(e,o,l));else{const o=Zn(t);e.style[o]=n}};function Qt(e,t="px"){if(!e)return"";if(je(e)||Px(e))return`${e}${t}`;if(Fe(e))return e}const TM=(e,t)=>{if(!Et)return!1;const n={undefined:"overflow",true:"overflow-y",false:"overflow-x"}[String(t)],o=Al(e,n);return["scroll","auto","overlay"].some(l=>o.includes(l))},Ah=(e,t)=>{if(!Et)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(TM(n,t))return n;n=n.parentNode}return n};let Ku;const PS=e=>{var t;if(!Et)return 0;if(Ku!==void 0)return Ku;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const l=document.createElement("div");l.style.width="100%",n.appendChild(l);const a=l.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),Ku=o-a,Ku};function Lh(e,t){if(!Et)return;if(!t){e.scrollTop=0;return}const n=[];let o=t.offsetParent;for(;o!==null&&e!==o&&e.contains(o);)n.push(o),o=o.offsetParent;const l=t.offsetTop+n.reduce((u,c)=>u+c.offsetTop,0),a=l+t.offsetHeight,r=e.scrollTop,i=r+e.clientHeight;li&&(e.scrollTop=a-e.clientHeight)}function OM(e,t,n,o,l){const a=Date.now();let r;const i=()=>{const c=Date.now()-a,d=_M(c>o?o:c,t,n,o);fu(e)?e.scrollTo(window.pageXOffset,d):e.scrollTop=d,c{r&&cr(r)}}const fb=(e,t)=>fu(t)?e.ownerDocument.documentElement:t,pb=e=>fu(e)?window.scrollY:e.scrollTop;class $M extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function sn(e,t){throw new $M(`[${e}] ${t}`)}const xS="ElAffix",RM=q({name:xS}),NM=q({...RM,props:EM,emits:kM,setup(e,{expose:t,emit:n}){const o=e,l=be("affix"),a=Wt(),r=Wt(),i=Wt(),{height:u}=xh(),{height:c,width:d,top:f,bottom:v,update:p}=lb(r,{windowScroll:!1}),m=lb(a),h=L(!1),g=L(0),b=L(0),C=S(()=>({height:h.value?`${c.value}px`:"",width:h.value?`${d.value}px`:""})),y=S(()=>{if(!h.value)return{};const T=o.offset?Qt(o.offset):0;return{height:`${c.value}px`,width:`${d.value}px`,top:o.position==="top"?T:"",bottom:o.position==="bottom"?T:"",transform:b.value?`translateY(${b.value}px)`:"",zIndex:o.zIndex}}),w=()=>{if(!i.value)return;g.value=i.value instanceof Window?document.documentElement.scrollTop:i.value.scrollTop||0;const{position:T,target:x,offset:N}=o,O=N+c.value;if(T==="top")if(x){const I=m.bottom.value-O;h.value=N>f.value&&m.bottom.value>0,b.value=I<0?I:0}else h.value=N>f.value;else if(x){const I=u.value-m.top.value-O;h.value=u.value-Nm.top.value,b.value=I<0?-I:0}else h.value=u.value-N{if(!h.value){p();return}h.value=!1,await Le(),p(),h.value=!0},k=async()=>{p(),await Le(),n("scroll",{scrollTop:g.value,fixed:h.value})};return pe(h,T=>n(ht,T)),rt(()=>{var T;o.target?(a.value=(T=document.querySelector(o.target))!=null?T:void 0,a.value||sn(xS,`Target does not exist: ${o.target}`)):a.value=document.documentElement,i.value=Ah(r.value,!0),p()}),At(i,"scroll",k),Kn(w),t({update:w,updateRoot:E}),(T,x)=>(_(),F("div",{ref_key:"root",ref:r,class:R(s(l).b()),style:We(s(C))},[z("div",{class:R({[s(l).m("fixed")]:h.value}),style:We(s(y))},[oe(T.$slots,"default")],6)],6))}});var IM=Te(NM,[["__file","affix.vue"]]);const Ze=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(t??{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},MS=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),PM=(e,t)=>(e.install=n=>{n.directive(t,e)},e),Xt=e=>(e.install=Nt,e),xM=Ze(IM),MM=Se({size:{type:Q([Number,String])},color:{type:String}}),AM=q({name:"ElIcon",inheritAttrs:!1}),LM=q({...AM,props:MM,setup(e){const t=e,n=be("icon"),o=S(()=>{const{size:l,color:a}=t;return!l&&!a?{}:{fontSize:yt(l)?void 0:Qt(l),"--color":a}});return(l,a)=>(_(),F("i",ot({class:s(n).b(),style:s(o)},l.$attrs),[oe(l.$slots,"default")],16))}});var DM=Te(LM,[["__file","icon.vue"]]);const Be=Ze(DM);function vb(){let e;const t=(o,l)=>{n(),e=window.setTimeout(o,l)},n=()=>window.clearTimeout(e);return Is(()=>n()),{registerTimeout:t,cancelTimeout:n}}const AS=Se({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),LS=({showAfter:e,hideAfter:t,autoClose:n,open:o,close:l})=>{const{registerTimeout:a}=vb(),{registerTimeout:r,cancelTimeout:i}=vb();return{onOpen:(d,f=s(e))=>{a(()=>{o(d);const v=s(n);je(v)&&v>0&&r(()=>{l(d)},v)},f)},onClose:(d,f=s(t))=>{i(),a(()=>{l(d)},f)}}};var BM=q({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),kl=BM,FM=q({name:"ArrowLeft",__name:"arrow-left",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0"})]))}}),jl=FM,VM=q({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),jn=VM,HM=q({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),Gd=HM,zM=q({name:"Back",__name:"back",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),z("path",{fill:"currentColor",d:"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z"})]))}}),KM=zM,WM=q({name:"Bell",__name:"bell",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64"}),z("path",{fill:"currentColor",d:"M256 768h512V448a256 256 0 1 0-512 0zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320"}),z("path",{fill:"currentColor",d:"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32m352 128h128a64 64 0 0 1-128 0"})]))}}),jM=WM,UM=q({name:"Calendar",__name:"calendar",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64"})]))}}),qM=UM,YM=q({name:"CaretRight",__name:"caret-right",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M384 192v640l384-320.064z"})]))}}),DS=YM,GM=q({name:"CaretTop",__name:"caret-top",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 320 192 704h639.936z"})]))}}),XM=GM,JM=q({name:"ChatLineSquare",__name:"chat-line-square",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M160 826.88 273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128z"}),z("path",{fill:"currentColor",d:"M352 512h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32m0-192h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32"})]))}}),ZM=JM,QM=q({name:"Check",__name:"check",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"})]))}}),vu=QM,eA=q({name:"CircleCheckFilled",__name:"circle-check-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),tA=eA,nA=q({name:"CircleCheck",__name:"circle-check",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),z("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}}),Dh=nA,oA=q({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),Bh=oA,lA=q({name:"CircleClose",__name:"circle-close",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),z("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),ta=lA,aA=q({name:"Clock",__name:"clock",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),z("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),z("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),BS=aA,rA=q({name:"Close",__name:"close",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),Io=rA,sA=q({name:"Cpu",__name:"cpu",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M320 256a64 64 0 0 0-64 64v384a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V320a64 64 0 0 0-64-64zm0-64h384a128 128 0 0 1 128 128v384a128 128 0 0 1-128 128H320a128 128 0 0 1-128-128V320a128 128 0 0 1 128-128"}),z("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32m160 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32m-320 0a32 32 0 0 1 32 32v128h-64V96a32 32 0 0 1 32-32m160 896a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32m160 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32m-320 0a32 32 0 0 1-32-32V800h64v128a32 32 0 0 1-32 32M64 512a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32m0-160a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32m0 320a32 32 0 0 1 32-32h128v64H96a32 32 0 0 1-32-32m896-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32m0-160a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32m0 320a32 32 0 0 1-32 32H800v-64h128a32 32 0 0 1 32 32"})]))}}),Qne=sA,iA=q({name:"DArrowLeft",__name:"d-arrow-left",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672zm256 0a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672z"})]))}}),Na=iA,uA=q({name:"DArrowRight",__name:"d-arrow-right",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L764.736 512 452.864 192a30.59 30.59 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L508.736 512 196.864 192a30.59 30.59 0 0 1 0-42.688"})]))}}),Ia=uA,cA=q({name:"Delete",__name:"delete",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}}),dA=cA,fA=q({name:"Document",__name:"document",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"})]))}}),FS=fA,pA=q({name:"FullScreen",__name:"full-screen",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z"})]))}}),vA=pA,hA=q({name:"Hide",__name:"hide",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),z("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}}),mA=hA,gA=q({name:"InfoFilled",__name:"info-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),Di=gA,bA=q({name:"Key",__name:"key",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M448 456.064V96a32 32 0 0 1 32-32.064L672 64a32 32 0 0 1 0 64H512v128h160a32 32 0 0 1 0 64H512v128a256 256 0 1 1-64 8.064M512 896a192 192 0 1 0 0-384 192 192 0 0 0 0 384"})]))}}),eoe=bA,yA=q({name:"List",__name:"list",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M704 192h160v736H160V192h160v64h384zM288 512h448v-64H288zm0 256h448v-64H288zm96-576V96h256v96z"})]))}}),wA=yA,CA=q({name:"Loading",__name:"loading",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}}),bl=CA,SA=q({name:"Lock",__name:"lock",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M224 448a32 32 0 0 0-32 32v384a32 32 0 0 0 32 32h576a32 32 0 0 0 32-32V480a32 32 0 0 0-32-32zm0-64h576a96 96 0 0 1 96 96v384a96 96 0 0 1-96 96H224a96 96 0 0 1-96-96V480a96 96 0 0 1 96-96"}),z("path",{fill:"currentColor",d:"M512 544a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V576a32 32 0 0 1 32-32m192-160v-64a192 192 0 1 0-384 0v64zM512 64a256 256 0 0 1 256 256v128H256V320A256 256 0 0 1 512 64"})]))}}),EA=SA,kA=q({name:"Message",__name:"message",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64"}),z("path",{fill:"currentColor",d:"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224z"})]))}}),_A=kA,TA=q({name:"Minus",__name:"minus",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64"})]))}}),OA=TA,$A=q({name:"MoreFilled",__name:"more-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224"})]))}}),hb=$A,RA=q({name:"More",__name:"more",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}}),NA=RA,IA=q({name:"PictureFilled",__name:"picture-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112M256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384"})]))}}),PA=IA,xA=q({name:"Plus",__name:"plus",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),VS=xA,MA=q({name:"QuestionFilled",__name:"question-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"})]))}}),AA=MA,LA=q({name:"RefreshLeft",__name:"refresh-left",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z"})]))}}),DA=LA,BA=q({name:"RefreshRight",__name:"refresh-right",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88"})]))}}),FA=BA,VA=q({name:"ScaleToOriginal",__name:"scale-to-original",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118m-361.412 0a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118M512 361.412a30.12 30.12 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.12 30.12 0 0 0 512 361.412M512 512a30.12 30.12 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.12 30.12 0 0 0 512 512"})]))}}),HA=VA,zA=q({name:"Search",__name:"search",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}}),KA=zA,WA=q({name:"Setting",__name:"setting",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357 357 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a352 352 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357 357 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294 294 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293 293 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294 294 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288 288 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293 293 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a288 288 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384m0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256"})]))}}),jA=WA,UA=q({name:"SortDown",__name:"sort-down",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M576 96v709.568L333.312 562.816A32 32 0 1 0 288 608l297.408 297.344A32 32 0 0 0 640 882.688V96a32 32 0 0 0-64 0"})]))}}),qA=UA,YA=q({name:"SortUp",__name:"sort-up",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M384 141.248V928a32 32 0 1 0 64 0V218.56l242.688 242.688A32 32 0 1 0 736 416L438.592 118.656A32 32 0 0 0 384 141.248"})]))}}),GA=YA,XA=q({name:"StarFilled",__name:"star-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M313.6 924.48a70.4 70.4 0 0 1-74.152-5.365 70.4 70.4 0 0 1-27.992-68.875l37.888-220.928L88.96 472.96a70.4 70.4 0 0 1 3.788-104.225A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 100.246-28.595 70.4 70.4 0 0 1 25.962 28.595l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"})]))}}),Wu=XA,JA=q({name:"Star",__name:"star",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"m512 747.84 228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"})]))}}),ZA=JA,QA=q({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),HS=QA,e6=q({name:"Tickets",__name:"tickets",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M192 128v768h640V128zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h192v64H320zm0 384h384v64H320z"})]))}}),toe=e6,t6=q({name:"Tools",__name:"tools",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M764.416 254.72a351.7 351.7 0 0 1 86.336 149.184H960v192.064H850.752a351.7 351.7 0 0 1-86.336 149.312l54.72 94.72-166.272 96-54.592-94.72a352.64 352.64 0 0 1-172.48 0L371.136 936l-166.272-96 54.72-94.72a351.7 351.7 0 0 1-86.336-149.312H64v-192h109.248a351.7 351.7 0 0 1 86.336-149.312L204.8 160l166.208-96h.192l54.656 94.592a352.64 352.64 0 0 1 172.48 0L652.8 64h.128L819.2 160l-54.72 94.72zM704 499.968a192 192 0 1 0-384 0 192 192 0 0 0 384 0"})]))}}),n6=t6,o6=q({name:"TrendCharts",__name:"trend-charts",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M128 896V128h768v768zm291.712-327.296 128 102.4 180.16-201.792-47.744-42.624-139.84 156.608-128-102.4-180.16 201.792 47.744 42.624zM816 352a48 48 0 1 0-96 0 48 48 0 0 0 96 0"})]))}}),noe=o6,l6=q({name:"UserFilled",__name:"user-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M288 320a224 224 0 1 0 448 0 224 224 0 1 0-448 0m544 608H160a32 32 0 0 1-32-32v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 0 1-32 32z"})]))}}),ooe=l6,a6=q({name:"User",__name:"user",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0"})]))}}),r6=a6,s6=q({name:"View",__name:"view",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),i6=s6,u6=q({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),Xd=u6,c6=q({name:"ZoomIn",__name:"zoom-in",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z"})]))}}),zS=c6,d6=q({name:"ZoomOut",__name:"zoom-out",setup(e){return(t,n)=>(_(),F("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[z("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64"})]))}}),f6=d6;const It=Q([String,Object,Function]),KS={Close:Io},Fh={Close:Io,SuccessFilled:HS,InfoFilled:Di,WarningFilled:Xd,CircleCloseFilled:Bh},Pa={primary:Di,success:HS,warning:Xd,error:Bh,info:Di},Jd={validating:bl,success:Dh,error:ta},p6=["light","dark"],v6=Se({title:{type:String,default:""},description:{type:String,default:""},type:{type:String,values:cs(Pa),default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,values:p6,default:"light"},...AS,showAfter:Number}),h6={open:()=>!0,close:e=>yt(e)||e instanceof Event},m6=q({name:"ElAlert"}),g6=q({...m6,props:v6,emits:h6,setup(e,{emit:t}){const n=e,{Close:o}=Fh,l=cn(),a=be("alert"),r=L(yt(n.showAfter)),i=S(()=>Pa[n.type]),u=S(()=>!!(n.description||l.default)),c=()=>{r.value=!0,t("open")},d=p=>{r.value=!1,t("close",p)},{onOpen:f,onClose:v}=LS({showAfter:$t(n,"showAfter",0),hideAfter:$t(n,"hideAfter"),autoClose:$t(n,"autoClose"),open:c,close:d});return Et&&f(),(p,m)=>(_(),ie(kn,{name:s(a).b("fade"),persisted:""},{default:ee(()=>[nt(z("div",{class:R([s(a).b(),s(a).m(p.type),s(a).is("center",p.center),s(a).is(p.effect)]),role:"alert"},[p.showIcon&&(p.$slots.icon||s(i))?(_(),ie(s(Be),{key:0,class:R([s(a).e("icon"),{[s(a).is("big")]:s(u)}])},{default:ee(()=>[oe(p.$slots,"icon",{},()=>[(_(),ie(at(s(i))))])]),_:3},8,["class"])):re("v-if",!0),z("div",{class:R(s(a).e("content"))},[p.title||p.$slots.title?(_(),F("span",{key:0,class:R([s(a).e("title"),{"with-description":s(u)}])},[oe(p.$slots,"title",{},()=>[gt(ke(p.title),1)])],2)):re("v-if",!0),s(u)?(_(),F("p",{key:1,class:R(s(a).e("description"))},[oe(p.$slots,"default",{},()=>[gt(ke(p.description),1)])],2)):re("v-if",!0),p.closable?(_(),F(He,{key:2},[p.closeText?(_(),F("div",{key:0,class:R([s(a).e("close-btn"),s(a).is("customed")]),onClick:d},ke(p.closeText),3)):(_(),ie(s(Be),{key:1,class:R(s(a).e("close-btn")),onClick:s(v)},{default:ee(()=>[J(s(o))]),_:1},8,["class","onClick"]))],64)):re("v-if",!0)],2)],2),[[kt,r.value]])]),_:3},8,["name"]))}});var b6=Te(g6,[["__file","alert.vue"]]);const y6=Ze(b6),Vh=()=>Et&&/firefox/i.test(window.navigator.userAgent);let oo;const w6={height:"0",visibility:"hidden",overflow:Vh()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},C6=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"];function S6(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),l=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:C6.map(r=>[r,t.getPropertyValue(r)]),paddingSize:o,borderSize:l,boxSizing:n}}function mb(e,t=1,n){var o,l;oo||(oo=document.createElement("textarea"),((o=e.parentNode)!=null?o:document.body).appendChild(oo));const{paddingSize:a,borderSize:r,boxSizing:i,contextStyle:u}=S6(e);u.forEach(([v,p])=>oo?.style.setProperty(v,p)),Object.entries(w6).forEach(([v,p])=>oo?.style.setProperty(v,p,"important")),oo.value=e.value||e.placeholder||"";let c=oo.scrollHeight;const d={};i==="border-box"?c=c+r:i==="content-box"&&(c=c-a),oo.value="";const f=oo.scrollHeight-a;if(je(t)){let v=f*t;i==="border-box"&&(v=v+a+r),c=Math.max(v,c),d.minHeight=`${v}px`}if(je(n)){let v=f*n;i==="border-box"&&(v=v+a+r),c=Math.min(v,c)}return d.height=`${c}px`,(l=oo.parentNode)==null||l.removeChild(oo),oo=void 0,d}const Gt=e=>e,E6=Se({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Pn=e=>mo(E6,e),hu=Se({id:{type:String,default:void 0},size:pn,disabled:Boolean,modelValue:{type:Q([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:Q([Boolean,Object]),default:!1},autocomplete:{type:Q(String),default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:It,default:ta},showPassword:Boolean,showWordLimit:Boolean,suffixIcon:{type:It},prefixIcon:{type:It},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Q([Object,Array,String]),default:()=>Gt({})},autofocus:Boolean,rows:{type:Number,default:2},...Pn(["ariaLabel"]),inputmode:{type:Q(String),default:void 0},name:String}),k6={[Ge]:e=>Fe(e),input:e=>Fe(e),change:e=>Fe(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},_6=["class","style"],T6=/^on[A-Z]/,Zd=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=S(()=>(n?.value||[]).concat(_6)),l=it();return S(l?()=>{var a;return Li(Object.entries((a=l.proxy)==null?void 0:a.$attrs).filter(([r])=>!o.value.includes(r)&&!(t&&T6.test(r))))}:()=>({}))},gb={prefix:Math.floor(Math.random()*1e4),current:0},O6=Symbol("elIdInjection"),Hh=()=>it()?Pe(O6,gb):gb,Tn=e=>{const t=Hh(),n=vh();return Jc(()=>s(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},Sr=Symbol("formContextKey"),yl=Symbol("formItemContextKey"),$n=()=>{const e=Pe(Sr,void 0),t=Pe(yl,void 0);return{form:e,formItem:t}},Co=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=L(!1)),o||(o=L(!1));const l=it(),a=()=>{let c=l?.parent;for(;c;){if(c.type.name==="ElFormItem")return!1;if(c.type.name==="ElLabelWrap")return!0;c=c.parent}return!1},r=L();let i;const u=S(()=>{var c;return!!(!(e.label||e.ariaLabel)&&t&&t.inputIds&&((c=t.inputIds)==null?void 0:c.length)<=1)});return rt(()=>{i=pe([$t(e,"id"),n],([c,d])=>{const f=c??(d?void 0:Tn().value);f!==r.value&&(t?.removeInputId&&!a()&&(r.value&&t.removeInputId(r.value),!o?.value&&!d&&f&&t.addInputId(f)),r.value=f)},{immediate:!0})}),_s(()=>{i&&i(),t?.removeInputId&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:u,inputId:r}},WS=e=>{const t=it();return S(()=>{var n,o;return(o=(n=t?.proxy)==null?void 0:n.$props)==null?void 0:o[e]})},un=(e,t={})=>{const n=L(void 0),o=t.prop?n:WS("size"),l=t.global?n:OS(),a=t.form?{size:void 0}:Pe(Sr,void 0),r=t.formItem?{size:void 0}:Pe(yl,void 0);return S(()=>o.value||s(e)||r?.size||a?.size||l.value||"")},bn=e=>{const t=WS("disabled"),n=Pe(Sr,void 0);return S(()=>t.value||s(e)||n?.disabled||!1)},$6='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',bb=e=>typeof Element>"u"?!1:e instanceof Element,R6=e=>getComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,yb=e=>Array.from(e.querySelectorAll($6)).filter(t=>Bi(t)&&R6(t)),Bi=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||e.getAttribute("aria-disabled")==="true")return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},dc=function(e,t,...n){let o;t.includes("mouse")||t.includes("click")?o="MouseEvents":t.includes("key")?o="KeyboardEvent":o="HTMLEvents";const l=document.createEvent(o);return l.initEvent(t,...n),e.dispatchEvent(l),e},jS=e=>!e.getAttribute("aria-owns"),US=(e,t,n)=>{const{parentNode:o}=e;if(!o)return null;const l=o.querySelectorAll(n),a=Array.prototype.indexOf.call(l,e);return l[a+t]||null},mu=(e,t)=>{if(!e||!e.focus)return;let n=!1;bb(e)&&!Bi(e)&&!e.getAttribute("tabindex")&&(e.setAttribute("tabindex","-1"),n=!0),e.focus(t),bb(e)&&n&&e.removeAttribute("tabindex")},fc=e=>{e&&(mu(e),!jS(e)&&e.click())};function na(e,{disabled:t,beforeFocus:n,afterFocus:o,beforeBlur:l,afterBlur:a}={}){const r=it(),{emit:i}=r,u=Wt(),c=L(!1),d=p=>{const m=ze(n)?n(p):!1;s(t)||c.value||m||(c.value=!0,i("focus",p),o?.())},f=p=>{var m;const h=ze(l)?l(p):!1;s(t)||p.relatedTarget&&((m=u.value)!=null&&m.contains(p.relatedTarget))||h||(c.value=!1,i("blur",p),a?.())},v=p=>{var m,h;s(t)||Bi(p.target)||(m=u.value)!=null&&m.contains(document.activeElement)&&u.value!==document.activeElement||(h=e.value)==null||h.focus()};return pe([u,()=>s(t)],([p,m])=>{p&&(m?p.removeAttribute("tabindex"):p.setAttribute("tabindex","-1"))}),At(u,"focus",d,!0),At(u,"blur",f,!0),At(u,"click",v,!0),{isFocused:c,wrapperRef:u,handleFocus:d,handleBlur:f}}const N6=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e);function gu({afterComposition:e,emit:t}){const n=L(!1),o=i=>{t?.("compositionstart",i),n.value=!0},l=i=>{var u;t?.("compositionupdate",i);const c=(u=i.target)==null?void 0:u.value,d=c[c.length-1]||"";n.value=!N6(d)},a=i=>{t?.("compositionend",i),n.value&&(n.value=!1,Le(()=>e(i)))};return{isComposing:n,handleComposition:i=>{i.type==="compositionend"?a(i):l(i)},handleCompositionStart:o,handleCompositionUpdate:l,handleCompositionEnd:a}}function I6(e){let t;function n(){if(e.value==null)return;const{selectionStart:l,selectionEnd:a,value:r}=e.value;if(l==null||a==null)return;const i=r.slice(0,Math.max(0,l)),u=r.slice(Math.max(0,a));t={selectionStart:l,selectionEnd:a,value:r,beforeTxt:i,afterTxt:u}}function o(){if(e.value==null||t==null)return;const{value:l}=e.value,{beforeTxt:a,afterTxt:r,selectionStart:i}=t;if(a==null||r==null||i==null)return;let u=l.length;if(l.endsWith(r))u=l.length-r.length;else if(l.startsWith(a))u=a.length;else{const c=a[i-1],d=l.indexOf(c,i-1);d!==-1&&(u=d+1)}e.value.setSelectionRange(u,u)}return[n,o]}const P6="ElInput",x6=q({name:P6,inheritAttrs:!1}),M6=q({...x6,props:hu,emits:k6,setup(e,{expose:t,emit:n}){const o=e,l=Jl(),a=Zd(),r=cn(),i=S(()=>[o.type==="textarea"?h.b():m.b(),m.m(v.value),m.is("disabled",p.value),m.is("exceed",W.value),{[m.b("group")]:r.prepend||r.append,[m.m("prefix")]:r.prefix||o.prefixIcon,[m.m("suffix")]:r.suffix||o.suffixIcon||o.clearable||o.showPassword,[m.bm("suffix","password-clear")]:$.value&&D.value,[m.b("hidden")]:o.type==="hidden"},l.class]),u=S(()=>[m.e("wrapper"),m.is("focus",x.value)]),{form:c,formItem:d}=$n(),{inputId:f}=Co(o,{formItemContext:d}),v=un(),p=bn(),m=be("input"),h=be("textarea"),g=Wt(),b=Wt(),C=L(!1),y=L(!1),w=L(),E=Wt(o.inputStyle),k=S(()=>g.value||b.value),{wrapperRef:T,isFocused:x,handleFocus:N,handleBlur:O}=na(k,{disabled:p,afterBlur(){var me;o.validateEvent&&((me=d?.validate)==null||me.call(d,"blur").catch(Ae=>void 0))}}),I=S(()=>{var me;return(me=c?.statusIcon)!=null?me:!1}),P=S(()=>d?.validateState||""),K=S(()=>P.value&&Jd[P.value]),B=S(()=>y.value?i6:mA),Y=S(()=>[l.style]),M=S(()=>[o.inputStyle,E.value,{resize:o.resize}]),A=S(()=>rn(o.modelValue)?"":String(o.modelValue)),$=S(()=>o.clearable&&!p.value&&!o.readonly&&!!A.value&&(x.value||C.value)),D=S(()=>o.showPassword&&!p.value&&!!A.value),V=S(()=>o.showWordLimit&&!!o.maxlength&&(o.type==="text"||o.type==="textarea")&&!p.value&&!o.readonly&&!o.showPassword),H=S(()=>A.value.length),W=S(()=>!!V.value&&H.value>Number(o.maxlength)),X=S(()=>!!r.suffix||!!o.suffixIcon||$.value||o.showPassword||V.value||!!P.value&&I.value),[te,le]=I6(g);qt(b,me=>{if(G(),!V.value||o.resize!=="both")return;const Ae=me[0],{width:tt}=Ae.contentRect;w.value={right:`calc(100% - ${tt+15+6}px)`}});const ce=()=>{const{type:me,autosize:Ae}=o;if(!(!Et||me!=="textarea"||!b.value))if(Ae){const tt=et(Ae)?Ae.minRows:void 0,dt=et(Ae)?Ae.maxRows:void 0,ct=mb(b.value,tt,dt);E.value={overflowY:"hidden",...ct},Le(()=>{b.value.offsetHeight,E.value=ct})}else E.value={minHeight:mb(b.value).minHeight}},G=(me=>{let Ae=!1;return()=>{var tt;if(Ae||!o.autosize)return;((tt=b.value)==null?void 0:tt.offsetParent)===null||(setTimeout(me),Ae=!0)}})(ce),se=()=>{const me=k.value,Ae=o.formatter?o.formatter(A.value):A.value;!me||me.value===Ae||(me.value=Ae)},ve=async me=>{te();let{value:Ae}=me.target;if(o.formatter&&o.parser&&(Ae=o.parser(Ae)),!j.value){if(Ae===A.value){se();return}n(Ge,Ae),n(fn,Ae),await Le(),se(),le()}},ae=me=>{let{value:Ae}=me.target;o.formatter&&o.parser&&(Ae=o.parser(Ae)),n(ht,Ae)},{isComposing:j,handleCompositionStart:ne,handleCompositionUpdate:ue,handleCompositionEnd:de}=gu({emit:n,afterComposition:ve}),Ce=()=>{te(),y.value=!y.value,setTimeout(le)},fe=()=>{var me;return(me=k.value)==null?void 0:me.focus()},he=()=>{var me;return(me=k.value)==null?void 0:me.blur()},Ee=me=>{C.value=!1,n("mouseleave",me)},Oe=me=>{C.value=!0,n("mouseenter",me)},_e=me=>{n("keydown",me)},Ve=()=>{var me;(me=k.value)==null||me.select()},Me=()=>{n(Ge,""),n(ht,""),n("clear"),n(fn,"")};return pe(()=>o.modelValue,()=>{var me;Le(()=>ce()),o.validateEvent&&((me=d?.validate)==null||me.call(d,"change").catch(Ae=>void 0))}),pe(A,()=>se()),pe(()=>o.type,async()=>{await Le(),se(),ce()}),rt(()=>{!o.formatter&&o.parser,se(),Le(ce)}),t({input:g,textarea:b,ref:k,textareaStyle:M,autosize:$t(o,"autosize"),isComposing:j,focus:fe,blur:he,select:Ve,clear:Me,resizeTextarea:ce}),(me,Ae)=>(_(),F("div",{class:R([s(i),{[s(m).bm("group","append")]:me.$slots.append,[s(m).bm("group","prepend")]:me.$slots.prepend}]),style:We(s(Y)),onMouseenter:Oe,onMouseleave:Ee},[re(" input "),me.type!=="textarea"?(_(),F(He,{key:0},[re(" prepend slot "),me.$slots.prepend?(_(),F("div",{key:0,class:R(s(m).be("group","prepend"))},[oe(me.$slots,"prepend")],2)):re("v-if",!0),z("div",{ref_key:"wrapperRef",ref:T,class:R(s(u))},[re(" prefix slot "),me.$slots.prefix||me.prefixIcon?(_(),F("span",{key:0,class:R(s(m).e("prefix"))},[z("span",{class:R(s(m).e("prefix-inner"))},[oe(me.$slots,"prefix"),me.prefixIcon?(_(),ie(s(Be),{key:0,class:R(s(m).e("icon"))},{default:ee(()=>[(_(),ie(at(me.prefixIcon)))]),_:1},8,["class"])):re("v-if",!0)],2)],2)):re("v-if",!0),z("input",ot({id:s(f),ref_key:"input",ref:g,class:s(m).e("inner")},s(a),{name:me.name,minlength:me.minlength,maxlength:me.maxlength,type:me.showPassword?y.value?"text":"password":me.type,disabled:s(p),readonly:me.readonly,autocomplete:me.autocomplete,tabindex:me.tabindex,"aria-label":me.ariaLabel,placeholder:me.placeholder,style:me.inputStyle,form:me.form,autofocus:me.autofocus,role:me.containerRole,inputmode:me.inputmode,onCompositionstart:s(ne),onCompositionupdate:s(ue),onCompositionend:s(de),onInput:ve,onChange:ae,onKeydown:_e}),null,16,["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode","onCompositionstart","onCompositionupdate","onCompositionend"]),re(" suffix slot "),s(X)?(_(),F("span",{key:1,class:R(s(m).e("suffix"))},[z("span",{class:R(s(m).e("suffix-inner"))},[!s($)||!s(D)||!s(V)?(_(),F(He,{key:0},[oe(me.$slots,"suffix"),me.suffixIcon?(_(),ie(s(Be),{key:0,class:R(s(m).e("icon"))},{default:ee(()=>[(_(),ie(at(me.suffixIcon)))]),_:1},8,["class"])):re("v-if",!0)],64)):re("v-if",!0),s($)?(_(),ie(s(Be),{key:1,class:R([s(m).e("icon"),s(m).e("clear")]),onMousedown:qe(s(Nt),["prevent"]),onClick:Me},{default:ee(()=>[(_(),ie(at(me.clearIcon)))]),_:1},8,["class","onMousedown"])):re("v-if",!0),s(D)?(_(),ie(s(Be),{key:2,class:R([s(m).e("icon"),s(m).e("password")]),onClick:Ce},{default:ee(()=>[(_(),ie(at(s(B))))]),_:1},8,["class"])):re("v-if",!0),s(V)?(_(),F("span",{key:3,class:R(s(m).e("count"))},[z("span",{class:R(s(m).e("count-inner"))},ke(s(H))+" / "+ke(me.maxlength),3)],2)):re("v-if",!0),s(P)&&s(K)&&s(I)?(_(),ie(s(Be),{key:4,class:R([s(m).e("icon"),s(m).e("validateIcon"),s(m).is("loading",s(P)==="validating")])},{default:ee(()=>[(_(),ie(at(s(K))))]),_:1},8,["class"])):re("v-if",!0)],2)],2)):re("v-if",!0)],2),re(" append slot "),me.$slots.append?(_(),F("div",{key:1,class:R(s(m).be("group","append"))},[oe(me.$slots,"append")],2)):re("v-if",!0)],64)):(_(),F(He,{key:1},[re(" textarea "),z("textarea",ot({id:s(f),ref_key:"textarea",ref:b,class:[s(h).e("inner"),s(m).is("focus",s(x))]},s(a),{minlength:me.minlength,maxlength:me.maxlength,tabindex:me.tabindex,disabled:s(p),readonly:me.readonly,autocomplete:me.autocomplete,style:s(M),"aria-label":me.ariaLabel,placeholder:me.placeholder,form:me.form,autofocus:me.autofocus,rows:me.rows,role:me.containerRole,onCompositionstart:s(ne),onCompositionupdate:s(ue),onCompositionend:s(de),onInput:ve,onFocus:s(N),onBlur:s(O),onChange:ae,onKeydown:_e}),null,16,["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role","onCompositionstart","onCompositionupdate","onCompositionend","onFocus","onBlur"]),s(V)?(_(),F("span",{key:0,style:We(w.value),class:R(s(m).e("count"))},ke(s(H))+" / "+ke(me.maxlength),7)):re("v-if",!0)],64))],38))}});var A6=Te(M6,[["__file","input.vue"]]);const zn=Ze(A6),$r=4,qS={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},L6=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),zh=Symbol("scrollbarContextKey"),D6=Se({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),B6="Thumb",F6=q({__name:"thumb",props:D6,setup(e){const t=e,n=Pe(zh),o=be("scrollbar");n||sn(B6,"can not inject scrollbar context");const l=L(),a=L(),r=L({}),i=L(!1);let u=!1,c=!1,d=0,f=0,v=Et?document.onselectstart:null;const p=S(()=>qS[t.vertical?"vertical":"horizontal"]),m=S(()=>L6({size:t.size,move:t.move,bar:p.value})),h=S(()=>l.value[p.value.offset]**2/n.wrapElement[p.value.scrollSize]/t.ratio/a.value[p.value.offset]),g=x=>{var N;if(x.stopPropagation(),x.ctrlKey||[1,2].includes(x.button))return;(N=window.getSelection())==null||N.removeAllRanges(),C(x);const O=x.currentTarget;O&&(r.value[p.value.axis]=O[p.value.offset]-(x[p.value.client]-O.getBoundingClientRect()[p.value.direction]))},b=x=>{if(!a.value||!l.value||!n.wrapElement)return;const N=Math.abs(x.target.getBoundingClientRect()[p.value.direction]-x[p.value.client]),O=a.value[p.value.offset]/2,I=(N-O)*100*h.value/l.value[p.value.offset];n.wrapElement[p.value.scroll]=I*n.wrapElement[p.value.scrollSize]/100},C=x=>{x.stopImmediatePropagation(),u=!0,d=n.wrapElement.scrollHeight,f=n.wrapElement.scrollWidth,document.addEventListener("mousemove",y),document.addEventListener("mouseup",w),v=document.onselectstart,document.onselectstart=()=>!1},y=x=>{if(!l.value||!a.value||u===!1)return;const N=r.value[p.value.axis];if(!N)return;const O=(l.value.getBoundingClientRect()[p.value.direction]-x[p.value.client])*-1,I=a.value[p.value.offset]-N,P=(O-I)*100*h.value/l.value[p.value.offset];p.value.scroll==="scrollLeft"?n.wrapElement[p.value.scroll]=P*f/100:n.wrapElement[p.value.scroll]=P*d/100},w=()=>{u=!1,r.value[p.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",w),T(),c&&(i.value=!1)},E=()=>{c=!1,i.value=!!t.size},k=()=>{c=!0,i.value=u};Rt(()=>{T(),document.removeEventListener("mouseup",w)});const T=()=>{document.onselectstart!==v&&(document.onselectstart=v)};return At($t(n,"scrollbarElement"),"mousemove",E),At($t(n,"scrollbarElement"),"mouseleave",k),(x,N)=>(_(),ie(kn,{name:s(o).b("fade"),persisted:""},{default:ee(()=>[nt(z("div",{ref_key:"instance",ref:l,class:R([s(o).e("bar"),s(o).is(s(p).key)]),onMousedown:b,onClick:qe(()=>{},["stop"])},[z("div",{ref_key:"thumb",ref:a,class:R(s(o).e("thumb")),style:We(s(m)),onMousedown:g},null,38)],42,["onClick"]),[[kt,x.always||i.value]])]),_:1},8,["name"]))}});var wb=Te(F6,[["__file","thumb.vue"]]);const V6=Se({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),H6=q({__name:"bar",props:V6,setup(e,{expose:t}){const n=e,o=Pe(zh),l=L(0),a=L(0),r=L(""),i=L(""),u=L(1),c=L(1);return t({handleScroll:v=>{if(v){const p=v.offsetHeight-$r,m=v.offsetWidth-$r;a.value=v.scrollTop*100/p*u.value,l.value=v.scrollLeft*100/m*c.value}},update:()=>{const v=o?.wrapElement;if(!v)return;const p=v.offsetHeight-$r,m=v.offsetWidth-$r,h=p**2/v.scrollHeight,g=m**2/v.scrollWidth,b=Math.max(h,n.minSize),C=Math.max(g,n.minSize);u.value=h/(p-h)/(b/(p-b)),c.value=g/(m-g)/(C/(m-C)),i.value=b+$r(_(),F(He,null,[J(wb,{move:l.value,ratio:c.value,size:r.value,always:v.always},null,8,["move","ratio","size","always"]),J(wb,{move:a.value,ratio:u.value,size:i.value,vertical:"",always:v.always},null,8,["move","ratio","size","always"])],64))}});var z6=Te(H6,[["__file","bar.vue"]]);const K6=Se({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:Q([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Pn(["ariaLabel","ariaOrientation"])}),YS={"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(je)},W6="ElScrollbar",j6=q({name:W6}),U6=q({...j6,props:K6,emits:YS,setup(e,{expose:t,emit:n}){const o=e,l=be("scrollbar");let a,r,i,u=0,c=0,d="";const f={bottom:!1,top:!1,right:!1,left:!1},v=L(),p=L(),m=L(),h=L(),g=S(()=>{const I={};return o.height&&(I.height=Qt(o.height)),o.maxHeight&&(I.maxHeight=Qt(o.maxHeight)),[o.wrapStyle,I]}),b=S(()=>[o.wrapClass,l.e("wrap"),{[l.em("wrap","hidden-default")]:!o.native}]),C=S(()=>[l.e("view"),o.viewClass]),y=I=>{var P;return(P=f[I])!=null?P:!1},w={top:"bottom",bottom:"top",left:"right",right:"left"},E=I=>{const P=w[d];if(!P)return;const K=I[d],B=I[P];K&&!f[d]&&(f[d]=!0),!B&&f[P]&&(f[P]=!1)},k=()=>{var I;if(p.value){(I=h.value)==null||I.handleScroll(p.value);const P=u,K=c;u=p.value.scrollTop,c=p.value.scrollLeft;const B={bottom:u+p.value.clientHeight>=p.value.scrollHeight-o.distance,top:u<=o.distance&&P!==0,right:c+p.value.clientWidth>=p.value.scrollWidth-o.distance&&K!==c,left:c<=o.distance&&K!==0};if(n("scroll",{scrollTop:u,scrollLeft:c}),P!==u&&(d=u>P?"bottom":"top"),K!==c&&(d=c>K?"right":"left"),o.distance>0){if(y(d))return;E(B)}B[d]&&n("end-reached",d)}};function T(I,P){et(I)?p.value.scrollTo(I):je(I)&&je(P)&&p.value.scrollTo(I,P)}const x=I=>{je(I)&&(p.value.scrollTop=I)},N=I=>{je(I)&&(p.value.scrollLeft=I)},O=()=>{var I;(I=h.value)==null||I.update(),f[d]=!1};return pe(()=>o.noresize,I=>{I?(a?.(),r?.(),i?.()):({stop:a}=qt(m,O),{stop:r}=qt(p,O),i=At("resize",O))},{immediate:!0}),pe(()=>[o.maxHeight,o.height],()=>{o.native||Le(()=>{var I;O(),p.value&&((I=h.value)==null||I.handleScroll(p.value))})}),ut(zh,_t({scrollbarElement:v,wrapElement:p})),Pd(()=>{p.value&&(p.value.scrollTop=u,p.value.scrollLeft=c)}),rt(()=>{o.native||Le(()=>{O()})}),el(()=>O()),t({wrapRef:p,update:O,scrollTo:T,setScrollTop:x,setScrollLeft:N,handleScroll:k}),(I,P)=>(_(),F("div",{ref_key:"scrollbarRef",ref:v,class:R(s(l).b())},[z("div",{ref_key:"wrapRef",ref:p,class:R(s(b)),style:We(s(g)),tabindex:I.tabindex,onScroll:k},[(_(),ie(at(I.tag),{id:I.id,ref_key:"resizeRef",ref:m,class:R(s(C)),style:We(I.viewStyle),role:I.role,"aria-label":I.ariaLabel,"aria-orientation":I.ariaOrientation},{default:ee(()=>[oe(I.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,["tabindex"]),I.native?re("v-if",!0):(_(),ie(z6,{key:0,ref_key:"barRef",ref:h,always:I.always,"min-size":I.minSize},null,8,["always","min-size"]))],2))}});var q6=Te(U6,[["__file","scrollbar.vue"]]);const Go=Ze(q6),Kh=Symbol("popper"),GS=Symbol("popperContent"),XS=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],JS=Se({role:{type:String,values:XS,default:"tooltip"}}),Y6=q({name:"ElPopper",inheritAttrs:!1}),G6=q({...Y6,props:JS,setup(e,{expose:t}){const n=e,o=L(),l=L(),a=L(),r=L(),i=S(()=>n.role),u={triggerRef:o,popperInstanceRef:l,contentRef:a,referenceRef:r,role:i};return t(u),ut(Kh,u),(c,d)=>oe(c.$slots,"default")}});var X6=Te(G6,[["__file","popper.vue"]]);const J6=q({name:"ElPopperArrow",inheritAttrs:!1}),Z6=q({...J6,setup(e,{expose:t}){const n=be("popper"),{arrowRef:o,arrowStyle:l}=Pe(GS,void 0);return Rt(()=>{o.value=void 0}),t({arrowRef:o}),(a,r)=>(_(),F("span",{ref_key:"arrowRef",ref:o,class:R(s(n).e("arrow")),style:We(s(l)),"data-popper-arrow":""},null,6))}});var Q6=Te(Z6,[["__file","arrow.vue"]]);const ZS=Se({virtualRef:{type:Q(Object)},virtualTriggering:Boolean,onMouseenter:{type:Q(Function)},onMouseleave:{type:Q(Function)},onClick:{type:Q(Function)},onKeydown:{type:Q(Function)},onFocus:{type:Q(Function)},onBlur:{type:Q(Function)},onContextmenu:{type:Q(Function)},id:String,open:Boolean}),QS=Symbol("elForwardRef"),e8=e=>{ut(QS,{setForwardRef:n=>{e.value=n}})},t8=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),n8="ElOnlyChild",e2=q({name:n8,setup(e,{slots:t,attrs:n}){var o;const l=Pe(QS),a=t8((o=l?.setForwardRef)!=null?o:Nt);return()=>{var r;const i=(r=t.default)==null?void 0:r.call(t,n);if(!i)return null;const[u,c]=t2(i);return u?nt(Wl(u,n),[[a]]):null}}});function t2(e){if(!e)return[null,0];const t=e,n=t.filter(o=>o.type!==on).length;for(const o of t){if(et(o))switch(o.type){case on:continue;case Ts:case"svg":return[Cb(o),n];case He:return t2(o.children);default:return[o,n]}return[Cb(o),n]}return[null,0]}function Cb(e){const t=be("only-child");return J("span",{class:t.e("content")},[e])}const o8=q({name:"ElPopperTrigger",inheritAttrs:!1}),l8=q({...o8,props:ZS,setup(e,{expose:t}){const n=e,{role:o,triggerRef:l}=Pe(Kh,void 0);e8(l);const a=S(()=>i.value?n.id:void 0),r=S(()=>{if(o&&o.value==="tooltip")return n.open&&n.id?n.id:void 0}),i=S(()=>{if(o&&o.value!=="tooltip")return o.value}),u=S(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return rt(()=>{pe(()=>n.virtualRef,f=>{f&&(l.value=hn(f))},{immediate:!0}),pe(l,(f,v)=>{c?.(),c=void 0,yo(f)&&(d.forEach(p=>{var m;const h=n[p];h&&(f.addEventListener(p.slice(2).toLowerCase(),h,["onFocus","onBlur"].includes(p)),(m=v?.removeEventListener)==null||m.call(v,p.slice(2).toLowerCase(),h,["onFocus","onBlur"].includes(p)))}),Bi(f)&&(c=pe([a,r,i,u],p=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((m,h)=>{rn(p[h])?f.removeAttribute(m):f.setAttribute(m,p[h])})},{immediate:!0}))),yo(v)&&Bi(v)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(p=>v.removeAttribute(p))},{immediate:!0})}),Rt(()=>{if(c?.(),c=void 0,l.value&&yo(l.value)){const f=l.value;d.forEach(v=>{const p=n[v];p&&f.removeEventListener(v.slice(2).toLowerCase(),p,["onFocus","onBlur"].includes(v))}),l.value=void 0}}),t({triggerRef:l}),(f,v)=>f.virtualTriggering?re("v-if",!0):(_(),ie(s(e2),ot({key:0},f.$attrs,{"aria-controls":s(a),"aria-describedby":s(r),"aria-expanded":s(u),"aria-haspopup":s(i)}),{default:ee(()=>[oe(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var a8=Te(l8,[["__file","trigger.vue"]]);const jf="focus-trap.focus-after-trapped",Uf="focus-trap.focus-after-released",r8="focus-trap.focusout-prevented",Sb={cancelable:!0,bubbles:!1},s8={cancelable:!0,bubbles:!1},Eb="focusAfterTrapped",kb="focusAfterReleased",Wh=Symbol("elFocusTrap"),jh=L(),Qd=L(0),Uh=L(0);let ju=0;const n2=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const l=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||l?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},_b=(e,t)=>{for(const n of e)if(!i8(n,t))return n},i8=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},u8=e=>{const t=n2(e),n=_b(t,e),o=_b(t.reverse(),e);return[n,o]},c8=e=>e instanceof HTMLInputElement&&"select"in e,ua=(e,t)=>{if(e){const n=document.activeElement;mu(e,{preventScroll:!0}),Uh.value=window.performance.now(),e!==n&&c8(e)&&t&&e.select()}};function Tb(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const d8=()=>{let e=[];return{push:o=>{const l=e[0];l&&o!==l&&l.pause(),e=Tb(e,o),e.unshift(o)},remove:o=>{var l,a;e=Tb(e,o),(a=(l=e[0])==null?void 0:l.resume)==null||a.call(l)}}},f8=(e,t=!1)=>{const n=document.activeElement;for(const o of e)if(ua(o,t),document.activeElement!==n)return},Ob=d8(),p8=()=>Qd.value>Uh.value,Uu=()=>{jh.value="pointer",Qd.value=window.performance.now()},$b=()=>{jh.value="keyboard",Qd.value=window.performance.now()},v8=()=>(rt(()=>{ju===0&&(document.addEventListener("mousedown",Uu),document.addEventListener("touchstart",Uu),document.addEventListener("keydown",$b)),ju++}),Rt(()=>{ju--,ju<=0&&(document.removeEventListener("mousedown",Uu),document.removeEventListener("touchstart",Uu),document.removeEventListener("keydown",$b))}),{focusReason:jh,lastUserFocusTimestamp:Qd,lastAutomatedFocusTimestamp:Uh}),qu=e=>new CustomEvent(r8,{...s8,detail:e}),xe={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"};let Dr=[];const Rb=e=>{e.code===xe.esc&&Dr.forEach(t=>t(e))},h8=e=>{rt(()=>{Dr.length===0&&document.addEventListener("keydown",Rb),Et&&Dr.push(e)}),Rt(()=>{Dr=Dr.filter(t=>t!==e),Dr.length===0&&Et&&document.removeEventListener("keydown",Rb)})},m8=q({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Eb,kb,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=L();let o,l;const{focusReason:a}=v8();h8(m=>{e.trapped&&!r.paused&&t("release-requested",m)});const r={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=m=>{if(!e.loop&&!e.trapped||r.paused)return;const{code:h,altKey:g,ctrlKey:b,metaKey:C,currentTarget:y,shiftKey:w}=m,{loop:E}=e,k=h===xe.tab&&!g&&!b&&!C,T=document.activeElement;if(k&&T){const x=y,[N,O]=u8(x);if(N&&O){if(!w&&T===O){const P=qu({focusReason:a.value});t("focusout-prevented",P),P.defaultPrevented||(m.preventDefault(),E&&ua(N,!0))}else if(w&&[N,x].includes(T)){const P=qu({focusReason:a.value});t("focusout-prevented",P),P.defaultPrevented||(m.preventDefault(),E&&ua(O,!0))}}else if(T===x){const P=qu({focusReason:a.value});t("focusout-prevented",P),P.defaultPrevented||m.preventDefault()}}};ut(Wh,{focusTrapRef:n,onKeydown:i}),pe(()=>e.focusTrapEl,m=>{m&&(n.value=m)},{immediate:!0}),pe([n],([m],[h])=>{m&&(m.addEventListener("keydown",i),m.addEventListener("focusin",d),m.addEventListener("focusout",f)),h&&(h.removeEventListener("keydown",i),h.removeEventListener("focusin",d),h.removeEventListener("focusout",f))});const u=m=>{t(Eb,m)},c=m=>t(kb,m),d=m=>{const h=s(n);if(!h)return;const g=m.target,b=m.relatedTarget,C=g&&h.contains(g);e.trapped||b&&h.contains(b)||(o=b),C&&t("focusin",m),!r.paused&&e.trapped&&(C?l=g:ua(l,!0))},f=m=>{const h=s(n);if(!(r.paused||!h))if(e.trapped){const g=m.relatedTarget;!rn(g)&&!h.contains(g)&&setTimeout(()=>{if(!r.paused&&e.trapped){const b=qu({focusReason:a.value});t("focusout-prevented",b),b.defaultPrevented||ua(l,!0)}},0)}else{const g=m.target;g&&h.contains(g)||t("focusout",m)}};async function v(){await Le();const m=s(n);if(m){Ob.push(r);const h=m.contains(document.activeElement)?o:document.activeElement;if(o=h,!m.contains(h)){const b=new Event(jf,Sb);m.addEventListener(jf,u),m.dispatchEvent(b),b.defaultPrevented||Le(()=>{let C=e.focusStartEl;Fe(C)||(ua(C),document.activeElement!==C&&(C="first")),C==="first"&&f8(n2(m),!0),(document.activeElement===h||C==="container")&&ua(m)})}}}function p(){const m=s(n);if(m){m.removeEventListener(jf,u);const h=new CustomEvent(Uf,{...Sb,detail:{focusReason:a.value}});m.addEventListener(Uf,c),m.dispatchEvent(h),!h.defaultPrevented&&(a.value=="keyboard"||!p8()||m.contains(document.activeElement))&&ua(o??document.body),m.removeEventListener(Uf,c),Ob.remove(r),o=null,l=null}}return rt(()=>{e.trapped&&v(),pe(()=>e.trapped,m=>{m?v():p()})}),Rt(()=>{e.trapped&&p(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",f),n.value=void 0)}),{onKeydown:i}}});function g8(e,t,n,o,l,a){return oe(e.$slots,"default",{handleKeydown:e.onKeydown})}var Er=Te(m8,[["render",g8],["__file","focus-trap.vue"]]),so="top",Po="bottom",xo="right",io="left",qh="auto",bu=[so,Po,xo,io],ds="start",Fi="end",b8="clippingParents",o2="viewport",qs="popper",y8="reference",Nb=bu.reduce(function(e,t){return e.concat([t+"-"+ds,t+"-"+Fi])},[]),oa=[].concat(bu,[qh]).reduce(function(e,t){return e.concat([t,t+"-"+ds,t+"-"+Fi])},[]),w8="beforeRead",C8="read",S8="afterRead",E8="beforeMain",k8="main",_8="afterMain",T8="beforeWrite",O8="write",$8="afterWrite",R8=[w8,C8,S8,E8,k8,_8,T8,O8,$8];function wl(e){return e?(e.nodeName||"").toLowerCase():null}function ol(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function fs(e){var t=ol(e).Element;return e instanceof t||e instanceof Element}function Ro(e){var t=ol(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Yh(e){if(typeof ShadowRoot>"u")return!1;var t=ol(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function N8(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},l=t.attributes[n]||{},a=t.elements[n];!Ro(a)||!wl(a)||(Object.assign(a.style,o),Object.keys(l).forEach(function(r){var i=l[r];i===!1?a.removeAttribute(r):a.setAttribute(r,i===!0?"":i)}))})}function I8(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var l=t.elements[o],a=t.attributes[o]||{},r=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),i=r.reduce(function(u,c){return u[c]="",u},{});!Ro(l)||!wl(l)||(Object.assign(l.style,i),Object.keys(a).forEach(function(u){l.removeAttribute(u)}))})}}var l2={name:"applyStyles",enabled:!0,phase:"write",fn:N8,effect:I8,requires:["computeStyles"]};function hl(e){return e.split("-")[0]}var tr=Math.max,ed=Math.min,ps=Math.round;function vs(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),o=1,l=1;if(Ro(e)&&t){var a=e.offsetHeight,r=e.offsetWidth;r>0&&(o=ps(n.width)/r||1),a>0&&(l=ps(n.height)/a||1)}return{width:n.width/o,height:n.height/l,top:n.top/l,right:n.right/o,bottom:n.bottom/l,left:n.left/o,x:n.left/o,y:n.top/l}}function Gh(e){var t=vs(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function a2(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Yh(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function Ul(e){return ol(e).getComputedStyle(e)}function P8(e){return["table","td","th"].indexOf(wl(e))>=0}function Ma(e){return((fs(e)?e.ownerDocument:e.document)||window.document).documentElement}function ef(e){return wl(e)==="html"?e:e.assignedSlot||e.parentNode||(Yh(e)?e.host:null)||Ma(e)}function Ib(e){return!Ro(e)||Ul(e).position==="fixed"?null:e.offsetParent}function x8(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&Ro(e)){var o=Ul(e);if(o.position==="fixed")return null}var l=ef(e);for(Yh(l)&&(l=l.host);Ro(l)&&["html","body"].indexOf(wl(l))<0;){var a=Ul(l);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return l;l=l.parentNode}return null}function yu(e){for(var t=ol(e),n=Ib(e);n&&P8(n)&&Ul(n).position==="static";)n=Ib(n);return n&&(wl(n)==="html"||wl(n)==="body"&&Ul(n).position==="static")?t:n||x8(e)||t}function Xh(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function yi(e,t,n){return tr(e,ed(t,n))}function M8(e,t,n){var o=yi(e,t,n);return o>n?n:o}function r2(){return{top:0,right:0,bottom:0,left:0}}function s2(e){return Object.assign({},r2(),e)}function i2(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var A8=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,s2(typeof e!="number"?e:i2(e,bu))};function L8(e){var t,n=e.state,o=e.name,l=e.options,a=n.elements.arrow,r=n.modifiersData.popperOffsets,i=hl(n.placement),u=Xh(i),c=[io,xo].indexOf(i)>=0,d=c?"height":"width";if(!(!a||!r)){var f=A8(l.padding,n),v=Gh(a),p=u==="y"?so:io,m=u==="y"?Po:xo,h=n.rects.reference[d]+n.rects.reference[u]-r[u]-n.rects.popper[d],g=r[u]-n.rects.reference[u],b=yu(a),C=b?u==="y"?b.clientHeight||0:b.clientWidth||0:0,y=h/2-g/2,w=f[p],E=C-v[d]-f[m],k=C/2-v[d]/2+y,T=yi(w,k,E),x=u;n.modifiersData[o]=(t={},t[x]=T,t.centerOffset=T-k,t)}}function D8(e){var t=e.state,n=e.options,o=n.element,l=o===void 0?"[data-popper-arrow]":o;l!=null&&(typeof l=="string"&&(l=t.elements.popper.querySelector(l),!l)||!a2(t.elements.popper,l)||(t.elements.arrow=l))}var B8={name:"arrow",enabled:!0,phase:"main",fn:L8,effect:D8,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function hs(e){return e.split("-")[1]}var F8={top:"auto",right:"auto",bottom:"auto",left:"auto"};function V8(e){var t=e.x,n=e.y,o=window,l=o.devicePixelRatio||1;return{x:ps(t*l)/l||0,y:ps(n*l)/l||0}}function Pb(e){var t,n=e.popper,o=e.popperRect,l=e.placement,a=e.variation,r=e.offsets,i=e.position,u=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,f=e.isFixed,v=r.x,p=v===void 0?0:v,m=r.y,h=m===void 0?0:m,g=typeof d=="function"?d({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var b=r.hasOwnProperty("x"),C=r.hasOwnProperty("y"),y=io,w=so,E=window;if(c){var k=yu(n),T="clientHeight",x="clientWidth";if(k===ol(n)&&(k=Ma(n),Ul(k).position!=="static"&&i==="absolute"&&(T="scrollHeight",x="scrollWidth")),k=k,l===so||(l===io||l===xo)&&a===Fi){w=Po;var N=f&&k===E&&E.visualViewport?E.visualViewport.height:k[T];h-=N-o.height,h*=u?1:-1}if(l===io||(l===so||l===Po)&&a===Fi){y=xo;var O=f&&k===E&&E.visualViewport?E.visualViewport.width:k[x];p-=O-o.width,p*=u?1:-1}}var I=Object.assign({position:i},c&&F8),P=d===!0?V8({x:p,y:h}):{x:p,y:h};if(p=P.x,h=P.y,u){var K;return Object.assign({},I,(K={},K[w]=C?"0":"",K[y]=b?"0":"",K.transform=(E.devicePixelRatio||1)<=1?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",K))}return Object.assign({},I,(t={},t[w]=C?h+"px":"",t[y]=b?p+"px":"",t.transform="",t))}function H8(e){var t=e.state,n=e.options,o=n.gpuAcceleration,l=o===void 0?!0:o,a=n.adaptive,r=a===void 0?!0:a,i=n.roundOffsets,u=i===void 0?!0:i,c={placement:hl(t.placement),variation:hs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:l,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Pb(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Pb(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var u2={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:H8,data:{}},Yu={passive:!0};function z8(e){var t=e.state,n=e.instance,o=e.options,l=o.scroll,a=l===void 0?!0:l,r=o.resize,i=r===void 0?!0:r,u=ol(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&c.forEach(function(d){d.addEventListener("scroll",n.update,Yu)}),i&&u.addEventListener("resize",n.update,Yu),function(){a&&c.forEach(function(d){d.removeEventListener("scroll",n.update,Yu)}),i&&u.removeEventListener("resize",n.update,Yu)}}var c2={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:z8,data:{}},K8={left:"right",right:"left",bottom:"top",top:"bottom"};function pc(e){return e.replace(/left|right|bottom|top/g,function(t){return K8[t]})}var W8={start:"end",end:"start"};function xb(e){return e.replace(/start|end/g,function(t){return W8[t]})}function Jh(e){var t=ol(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function Zh(e){return vs(Ma(e)).left+Jh(e).scrollLeft}function j8(e){var t=ol(e),n=Ma(e),o=t.visualViewport,l=n.clientWidth,a=n.clientHeight,r=0,i=0;return o&&(l=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=o.offsetLeft,i=o.offsetTop)),{width:l,height:a,x:r+Zh(e),y:i}}function U8(e){var t,n=Ma(e),o=Jh(e),l=(t=e.ownerDocument)==null?void 0:t.body,a=tr(n.scrollWidth,n.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),r=tr(n.scrollHeight,n.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),i=-o.scrollLeft+Zh(e),u=-o.scrollTop;return Ul(l||n).direction==="rtl"&&(i+=tr(n.clientWidth,l?l.clientWidth:0)-a),{width:a,height:r,x:i,y:u}}function Qh(e){var t=Ul(e),n=t.overflow,o=t.overflowX,l=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+l+o)}function d2(e){return["html","body","#document"].indexOf(wl(e))>=0?e.ownerDocument.body:Ro(e)&&Qh(e)?e:d2(ef(e))}function wi(e,t){var n;t===void 0&&(t=[]);var o=d2(e),l=o===((n=e.ownerDocument)==null?void 0:n.body),a=ol(o),r=l?[a].concat(a.visualViewport||[],Qh(o)?o:[]):o,i=t.concat(r);return l?i:i.concat(wi(ef(r)))}function Kp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function q8(e){var t=vs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function Mb(e,t){return t===o2?Kp(j8(e)):fs(t)?q8(t):Kp(U8(Ma(e)))}function Y8(e){var t=wi(ef(e)),n=["absolute","fixed"].indexOf(Ul(e).position)>=0,o=n&&Ro(e)?yu(e):e;return fs(o)?t.filter(function(l){return fs(l)&&a2(l,o)&&wl(l)!=="body"}):[]}function G8(e,t,n){var o=t==="clippingParents"?Y8(e):[].concat(t),l=[].concat(o,[n]),a=l[0],r=l.reduce(function(i,u){var c=Mb(e,u);return i.top=tr(c.top,i.top),i.right=ed(c.right,i.right),i.bottom=ed(c.bottom,i.bottom),i.left=tr(c.left,i.left),i},Mb(e,a));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function f2(e){var t=e.reference,n=e.element,o=e.placement,l=o?hl(o):null,a=o?hs(o):null,r=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2,u;switch(l){case so:u={x:r,y:t.y-n.height};break;case Po:u={x:r,y:t.y+t.height};break;case xo:u={x:t.x+t.width,y:i};break;case io:u={x:t.x-n.width,y:i};break;default:u={x:t.x,y:t.y}}var c=l?Xh(l):null;if(c!=null){var d=c==="y"?"height":"width";switch(a){case ds:u[c]=u[c]-(t[d]/2-n[d]/2);break;case Fi:u[c]=u[c]+(t[d]/2-n[d]/2);break}}return u}function Vi(e,t){t===void 0&&(t={});var n=t,o=n.placement,l=o===void 0?e.placement:o,a=n.boundary,r=a===void 0?b8:a,i=n.rootBoundary,u=i===void 0?o2:i,c=n.elementContext,d=c===void 0?qs:c,f=n.altBoundary,v=f===void 0?!1:f,p=n.padding,m=p===void 0?0:p,h=s2(typeof m!="number"?m:i2(m,bu)),g=d===qs?y8:qs,b=e.rects.popper,C=e.elements[v?g:d],y=G8(fs(C)?C:C.contextElement||Ma(e.elements.popper),r,u),w=vs(e.elements.reference),E=f2({reference:w,element:b,placement:l}),k=Kp(Object.assign({},b,E)),T=d===qs?k:w,x={top:y.top-T.top+h.top,bottom:T.bottom-y.bottom+h.bottom,left:y.left-T.left+h.left,right:T.right-y.right+h.right},N=e.modifiersData.offset;if(d===qs&&N){var O=N[l];Object.keys(x).forEach(function(I){var P=[xo,Po].indexOf(I)>=0?1:-1,K=[so,Po].indexOf(I)>=0?"y":"x";x[I]+=O[K]*P})}return x}function X8(e,t){t===void 0&&(t={});var n=t,o=n.placement,l=n.boundary,a=n.rootBoundary,r=n.padding,i=n.flipVariations,u=n.allowedAutoPlacements,c=u===void 0?oa:u,d=hs(o),f=d?i?Nb:Nb.filter(function(m){return hs(m)===d}):bu,v=f.filter(function(m){return c.indexOf(m)>=0});v.length===0&&(v=f);var p=v.reduce(function(m,h){return m[h]=Vi(e,{placement:h,boundary:l,rootBoundary:a,padding:r})[hl(h)],m},{});return Object.keys(p).sort(function(m,h){return p[m]-p[h]})}function J8(e){if(hl(e)===qh)return[];var t=pc(e);return[xb(e),t,xb(t)]}function Z8(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var l=n.mainAxis,a=l===void 0?!0:l,r=n.altAxis,i=r===void 0?!0:r,u=n.fallbackPlacements,c=n.padding,d=n.boundary,f=n.rootBoundary,v=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,b=hl(g),C=b===g,y=u||(C||!m?[pc(g)]:J8(g)),w=[g].concat(y).reduce(function(te,le){return te.concat(hl(le)===qh?X8(t,{placement:le,boundary:d,rootBoundary:f,padding:c,flipVariations:m,allowedAutoPlacements:h}):le)},[]),E=t.rects.reference,k=t.rects.popper,T=new Map,x=!0,N=w[0],O=0;O=0,Y=B?"width":"height",M=Vi(t,{placement:I,boundary:d,rootBoundary:f,altBoundary:v,padding:c}),A=B?K?xo:io:K?Po:so;E[Y]>k[Y]&&(A=pc(A));var $=pc(A),D=[];if(a&&D.push(M[P]<=0),i&&D.push(M[A]<=0,M[$]<=0),D.every(function(te){return te})){N=I,x=!1;break}T.set(I,D)}if(x)for(var V=m?3:1,H=function(te){var le=w.find(function(ce){var U=T.get(ce);if(U)return U.slice(0,te).every(function(G){return G})});if(le)return N=le,"break"},W=V;W>0;W--){var X=H(W);if(X==="break")break}t.placement!==N&&(t.modifiersData[o]._skip=!0,t.placement=N,t.reset=!0)}}var Q8={name:"flip",enabled:!0,phase:"main",fn:Z8,requiresIfExists:["offset"],data:{_skip:!1}};function Ab(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Lb(e){return[so,xo,Po,io].some(function(t){return e[t]>=0})}function eL(e){var t=e.state,n=e.name,o=t.rects.reference,l=t.rects.popper,a=t.modifiersData.preventOverflow,r=Vi(t,{elementContext:"reference"}),i=Vi(t,{altBoundary:!0}),u=Ab(r,o),c=Ab(i,l,a),d=Lb(u),f=Lb(c);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":f})}var tL={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:eL};function nL(e,t,n){var o=hl(e),l=[io,so].indexOf(o)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,r=a[0],i=a[1];return r=r||0,i=(i||0)*l,[io,xo].indexOf(o)>=0?{x:i,y:r}:{x:r,y:i}}function oL(e){var t=e.state,n=e.options,o=e.name,l=n.offset,a=l===void 0?[0,0]:l,r=oa.reduce(function(d,f){return d[f]=nL(f,t.rects,a),d},{}),i=r[t.placement],u=i.x,c=i.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[o]=r}var lL={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:oL};function aL(e){var t=e.state,n=e.name;t.modifiersData[n]=f2({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}var p2={name:"popperOffsets",enabled:!0,phase:"read",fn:aL,data:{}};function rL(e){return e==="x"?"y":"x"}function sL(e){var t=e.state,n=e.options,o=e.name,l=n.mainAxis,a=l===void 0?!0:l,r=n.altAxis,i=r===void 0?!1:r,u=n.boundary,c=n.rootBoundary,d=n.altBoundary,f=n.padding,v=n.tether,p=v===void 0?!0:v,m=n.tetherOffset,h=m===void 0?0:m,g=Vi(t,{boundary:u,rootBoundary:c,padding:f,altBoundary:d}),b=hl(t.placement),C=hs(t.placement),y=!C,w=Xh(b),E=rL(w),k=t.modifiersData.popperOffsets,T=t.rects.reference,x=t.rects.popper,N=typeof h=="function"?h(Object.assign({},t.rects,{placement:t.placement})):h,O=typeof N=="number"?{mainAxis:N,altAxis:N}:Object.assign({mainAxis:0,altAxis:0},N),I=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,P={x:0,y:0};if(k){if(a){var K,B=w==="y"?so:io,Y=w==="y"?Po:xo,M=w==="y"?"height":"width",A=k[w],$=A+g[B],D=A-g[Y],V=p?-x[M]/2:0,H=C===ds?T[M]:x[M],W=C===ds?-x[M]:-T[M],X=t.elements.arrow,te=p&&X?Gh(X):{width:0,height:0},le=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:r2(),ce=le[B],U=le[Y],G=yi(0,T[M],te[M]),se=y?T[M]/2-V-G-ce-O.mainAxis:H-G-ce-O.mainAxis,ve=y?-T[M]/2+V+G+U+O.mainAxis:W+G+U+O.mainAxis,ae=t.elements.arrow&&yu(t.elements.arrow),j=ae?w==="y"?ae.clientTop||0:ae.clientLeft||0:0,ne=(K=I?.[w])!=null?K:0,ue=A+se-ne-j,de=A+ve-ne,Ce=yi(p?ed($,ue):$,A,p?tr(D,de):D);k[w]=Ce,P[w]=Ce-A}if(i){var fe,he=w==="x"?so:io,Ee=w==="x"?Po:xo,Oe=k[E],_e=E==="y"?"height":"width",Ve=Oe+g[he],Me=Oe-g[Ee],me=[so,io].indexOf(b)!==-1,Ae=(fe=I?.[E])!=null?fe:0,tt=me?Ve:Oe-T[_e]-x[_e]-Ae+O.altAxis,dt=me?Oe+T[_e]+x[_e]-Ae-O.altAxis:Me,ct=p&&me?M8(tt,Oe,dt):yi(p?tt:Ve,Oe,p?dt:Me);k[E]=ct,P[E]=ct-Oe}t.modifiersData[o]=P}}var iL={name:"preventOverflow",enabled:!0,phase:"main",fn:sL,requiresIfExists:["offset"]};function uL(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function cL(e){return e===ol(e)||!Ro(e)?Jh(e):uL(e)}function dL(e){var t=e.getBoundingClientRect(),n=ps(t.width)/e.offsetWidth||1,o=ps(t.height)/e.offsetHeight||1;return n!==1||o!==1}function fL(e,t,n){n===void 0&&(n=!1);var o=Ro(t),l=Ro(t)&&dL(t),a=Ma(t),r=vs(e,l),i={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(o||!o&&!n)&&((wl(t)!=="body"||Qh(a))&&(i=cL(t)),Ro(t)?(u=vs(t,!0),u.x+=t.clientLeft,u.y+=t.clientTop):a&&(u.x=Zh(a))),{x:r.left+i.scrollLeft-u.x,y:r.top+i.scrollTop-u.y,width:r.width,height:r.height}}function pL(e){var t=new Map,n=new Set,o=[];e.forEach(function(a){t.set(a.name,a)});function l(a){n.add(a.name);var r=[].concat(a.requires||[],a.requiresIfExists||[]);r.forEach(function(i){if(!n.has(i)){var u=t.get(i);u&&l(u)}}),o.push(a)}return e.forEach(function(a){n.has(a.name)||l(a)}),o}function vL(e){var t=pL(e);return R8.reduce(function(n,o){return n.concat(t.filter(function(l){return l.phase===o}))},[])}function hL(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function mL(e){var t=e.reduce(function(n,o){var l=n[o.name];return n[o.name]=l?Object.assign({},l,o,{options:Object.assign({},l.options,o.options),data:Object.assign({},l.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var Db={placement:"bottom",modifiers:[],strategy:"absolute"};function Bb(){for(var e=arguments.length,t=new Array(e),n=0;n({})},strategy:{type:String,values:wL,default:"absolute"}}),h2=Se({...CL,...v2,id:String,style:{type:Q([String,Array,Object])},className:{type:Q([String,Array,Object])},effect:{type:Q(String),default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:Q([String,Array,Object])},popperStyle:{type:Q([String,Array,Object])},referenceEl:{type:Q(Object)},triggerTargetEl:{type:Q(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Pn(["ariaLabel"])}),SL={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},EL=(e,t)=>{const n=L(!1),o=L();return{focusStartRef:o,trapped:n,onFocusAfterReleased:c=>{var d;((d=c.detail)==null?void 0:d.focusReason)!=="pointer"&&(o.value="first",t("blur"))},onFocusAfterTrapped:()=>{t("focus")},onFocusInTrap:c=>{e.visible&&!n.value&&(c.target&&(o.value=c.target),n.value=!0)},onFocusoutPrevented:c=>{e.trapping||(c.detail.focusReason==="pointer"&&c.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t("close")}}},kL=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:l}=e,a={placement:n,strategy:o,...l,modifiers:[...TL(e),...t]};return OL(a,l?.modifiers),a},_L=e=>{if(Et)return hn(e)};function TL(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function OL(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const $L=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:u})=>{const c=RL(u);Object.assign(r.value,c)},requires:["computeStyles"]},l=S(()=>{const{onFirstUpdate:u,placement:c,strategy:d,modifiers:f}=s(n);return{onFirstUpdate:u,placement:c||"bottom",strategy:d||"absolute",modifiers:[...f||[],o,{name:"applyStyles",enabled:!1}]}}),a=Wt(),r=L({styles:{popper:{position:s(l).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),i=()=>{a.value&&(a.value.destroy(),a.value=void 0)};return pe(l,u=>{const c=s(a);c&&c.setOptions(u)},{deep:!0}),pe([e,t],([u,c])=>{i(),!(!u||!c)&&(a.value=yL(u,c,s(l)))}),Rt(()=>{i()}),{state:S(()=>{var u;return{...((u=s(a))==null?void 0:u.state)||{}}}),styles:S(()=>s(r).styles),attributes:S(()=>s(r).attributes),update:()=>{var u;return(u=s(a))==null?void 0:u.update()},forceUpdate:()=>{var u;return(u=s(a))==null?void 0:u.forceUpdate()},instanceRef:S(()=>s(a))}};function RL(e){const t=Object.keys(e.elements),n=Li(t.map(l=>[l,e.styles[l]||{}])),o=Li(t.map(l=>[l,e.attributes[l]]));return{styles:n,attributes:o}}const NL=0,IL=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:l}=Pe(Kh,void 0),a=L(),r=S(()=>e.arrowOffset),i=S(()=>({name:"eventListeners",enabled:!!e.visible})),u=S(()=>{var b;const C=s(a),y=(b=s(r))!=null?b:NL;return{name:"arrow",enabled:!bx(C),options:{element:C,padding:y}}}),c=S(()=>({onFirstUpdate:()=>{m()},...kL(e,[s(u),s(i)])})),d=S(()=>_L(e.referenceEl)||s(o)),{attributes:f,state:v,styles:p,update:m,forceUpdate:h,instanceRef:g}=$L(d,n,c);return pe(g,b=>t.value=b,{flush:"sync"}),rt(()=>{pe(()=>{var b,C;return(C=(b=s(d))==null?void 0:b.getBoundingClientRect)==null?void 0:C.call(b)},()=>{m()})}),{attributes:f,arrowRef:a,contentRef:n,instanceRef:g,state:v,styles:p,role:l,forceUpdate:h,update:m}},PL=(e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:l}=Ps(),a=be("popper"),r=S(()=>s(t).popper),i=L(je(e.zIndex)?e.zIndex:l()),u=S(()=>[a.b(),a.is("pure",e.pure),a.is(e.effect),e.popperClass]),c=S(()=>[{zIndex:s(i)},s(n).popper,e.popperStyle||{}]),d=S(()=>o.value==="dialog"?"false":void 0),f=S(()=>s(n).arrow||{});return{ariaModal:d,arrowStyle:f,contentAttrs:r,contentClass:u,contentStyle:c,contentZIndex:i,updateZIndex:()=>{i.value=je(e.zIndex)?e.zIndex:l()}}},xL=q({name:"ElPopperContent"}),ML=q({...xL,props:h2,emits:SL,setup(e,{expose:t,emit:n}){const o=e,{focusStartRef:l,trapped:a,onFocusAfterReleased:r,onFocusAfterTrapped:i,onFocusInTrap:u,onFocusoutPrevented:c,onReleaseRequested:d}=EL(o,n),{attributes:f,arrowRef:v,contentRef:p,styles:m,instanceRef:h,role:g,update:b}=IL(o),{ariaModal:C,arrowStyle:y,contentAttrs:w,contentClass:E,contentStyle:k,updateZIndex:T}=PL(o,{styles:m,attributes:f,role:g}),x=Pe(yl,void 0);ut(GS,{arrowStyle:y,arrowRef:v}),x&&ut(yl,{...x,addInputId:Nt,removeInputId:Nt});let N;const O=(P=!0)=>{b(),P&&T()},I=()=>{O(!1),o.visible&&o.focusOnShow?a.value=!0:o.visible===!1&&(a.value=!1)};return rt(()=>{pe(()=>o.triggerTargetEl,(P,K)=>{N?.(),N=void 0;const B=s(P||p.value),Y=s(K||p.value);yo(B)&&(N=pe([g,()=>o.ariaLabel,C,()=>o.id],M=>{["role","aria-label","aria-modal","id"].forEach((A,$)=>{rn(M[$])?B.removeAttribute(A):B.setAttribute(A,M[$])})},{immediate:!0})),Y!==B&&yo(Y)&&["role","aria-label","aria-modal","id"].forEach(M=>{Y.removeAttribute(M)})},{immediate:!0}),pe(()=>o.visible,I,{immediate:!0})}),Rt(()=>{N?.(),N=void 0}),t({popperContentRef:p,popperInstanceRef:h,updatePopper:O,contentStyle:k}),(P,K)=>(_(),F("div",ot({ref_key:"contentRef",ref:p},s(w),{style:s(k),class:s(E),tabindex:"-1",onMouseenter:B=>P.$emit("mouseenter",B),onMouseleave:B=>P.$emit("mouseleave",B)}),[J(s(Er),{trapped:s(a),"trap-on-focus-in":!0,"focus-trap-el":s(p),"focus-start-el":s(l),onFocusAfterTrapped:s(i),onFocusAfterReleased:s(r),onFocusin:s(u),onFocusoutPrevented:s(c),onReleaseRequested:s(d)},{default:ee(()=>[oe(P.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16,["onMouseenter","onMouseleave"]))}});var AL=Te(ML,[["__file","content.vue"]]);const m2=Ze(X6),tm=Symbol("elTooltip"),tf=Se({to:{type:Q([String,Object]),required:!0},disabled:Boolean}),jt=Se({...AS,...h2,appendTo:{type:tf.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:Q(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Pn(["ariaLabel"])}),Ea=Se({...ZS,disabled:Boolean,trigger:{type:Q([String,Array]),default:"hover"},triggerKeys:{type:Q(Array),default:()=>[xe.enter,xe.numpadEnter,xe.space]},focusOnTarget:Boolean}),LL=nl({type:Q(Boolean),default:null}),DL=nl({type:Q(Function)}),BL=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t],l={[e]:LL,[n]:DL};return{useModelToggle:({indicator:r,toggleReason:i,shouldHideWhenRouteChanges:u,shouldProceed:c,onShow:d,onHide:f})=>{const v=it(),{emit:p}=v,m=v.props,h=S(()=>ze(m[n])),g=S(()=>m[e]===null),b=T=>{r.value!==!0&&(r.value=!0,i&&(i.value=T),ze(d)&&d(T))},C=T=>{r.value!==!1&&(r.value=!1,i&&(i.value=T),ze(f)&&f(T))},y=T=>{if(m.disabled===!0||ze(c)&&!c())return;const x=h.value&&Et;x&&p(t,!0),(g.value||!x)&&b(T)},w=T=>{if(m.disabled===!0||!Et)return;const x=h.value&&Et;x&&p(t,!1),(g.value||!x)&&C(T)},E=T=>{Mt(T)&&(m.disabled&&T?h.value&&p(t,!1):r.value!==T&&(T?b():C()))},k=()=>{r.value?w():y()};return pe(()=>m[e],E),u&&v.appContext.config.globalProperties.$route!==void 0&&pe(()=>({...v.proxy.$route}),()=>{u.value&&r.value&&w()}),rt(()=>{E(m[e])}),{hide:w,show:y,toggle:k,hasUpdateHandler:h}},useModelToggleProps:l,useModelToggleEmits:o}},{useModelToggleProps:FL,useModelToggleEmits:VL,useModelToggle:HL}=BL("visible"),zL=Se({...JS,...FL,...jt,...Ea,...v2,showArrow:{type:Boolean,default:!0}}),KL=[...VL,"before-show","before-hide","show","hide","open","close"],WL=(e,t)=>ye(e)?e.includes(t):e===t,Rr=(e,t,n)=>o=>{WL(s(e),t)&&n(o)},nn=(e,t,{checkForDefaultPrevented:n=!0}={})=>l=>{const a=e?.(l);if(n===!1||!a)return t?.(l)},Fb=e=>t=>t.pointerType==="mouse"?e(t):void 0,jL=q({name:"ElTooltipTrigger"}),UL=q({...jL,props:Ea,setup(e,{expose:t}){const n=e,o=be("tooltip"),{controlled:l,id:a,open:r,onOpen:i,onClose:u,onToggle:c}=Pe(tm,void 0),d=L(null),f=()=>{if(s(l)||n.disabled)return!0},v=$t(n,"trigger"),p=nn(f,Rr(v,"hover",w=>{i(w),n.focusOnTarget&&w.target&&Le(()=>{mu(w.target,{preventScroll:!0})})})),m=nn(f,Rr(v,"hover",u)),h=nn(f,Rr(v,"click",w=>{w.button===0&&c(w)})),g=nn(f,Rr(v,"focus",i)),b=nn(f,Rr(v,"focus",u)),C=nn(f,Rr(v,"contextmenu",w=>{w.preventDefault(),c(w)})),y=nn(f,w=>{const{code:E}=w;n.triggerKeys.includes(E)&&(w.preventDefault(),c(w))});return t({triggerRef:d}),(w,E)=>(_(),ie(s(a8),{id:s(a),"virtual-ref":w.virtualRef,open:s(r),"virtual-triggering":w.virtualTriggering,class:R(s(o).e("trigger")),onBlur:s(b),onClick:s(h),onContextmenu:s(C),onFocus:s(g),onMouseenter:s(p),onMouseleave:s(m),onKeydown:s(y)},{default:ee(()=>[oe(w.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var qL=Te(UL,[["__file","trigger.vue"]]);const YL=q({__name:"teleport",props:tf,setup(e){return(t,n)=>t.disabled?oe(t.$slots,"default",{key:0}):(_(),ie(dO,{key:1,to:t.to},[oe(t.$slots,"default")],8,["to"]))}});var GL=Te(YL,[["__file","teleport.vue"]]);const Ms=Ze(GL),g2=()=>{const e=vh(),t=Hh(),n=S(()=>`${e.value}-popper-container-${t.prefix}`),o=S(()=>`#${n.value}`);return{id:n,selector:o}},XL=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},JL=()=>{const{id:e,selector:t}=g2();return Md(()=>{Et&&(document.body.querySelector(t.value)||XL(e.value))}),{id:e,selector:t}},Vb=e=>[...new Set(e)],Ys=e=>ye(e)?e[0]:e,Vn=e=>!e&&e!==0?[]:ye(e)?e:[e],ZL=q({name:"ElTooltipContent",inheritAttrs:!1}),QL=q({...ZL,props:jt,setup(e,{expose:t}){const n=e,{selector:o}=g2(),l=be("tooltip"),a=L(),r=Jc(()=>{var $;return($=a.value)==null?void 0:$.popperContentRef});let i;const{controlled:u,id:c,open:d,trigger:f,onClose:v,onOpen:p,onShow:m,onHide:h,onBeforeShow:g,onBeforeHide:b}=Pe(tm,void 0),C=S(()=>n.transition||`${l.namespace.value}-fade-in-linear`),y=S(()=>n.persistent);Rt(()=>{i?.()});const w=S(()=>s(y)?!0:s(d)),E=S(()=>n.disabled?!1:s(d)),k=S(()=>n.appendTo||o.value),T=S(()=>{var $;return($=n.style)!=null?$:{}}),x=L(!0),N=()=>{h(),A()&&mu(document.body,{preventScroll:!0}),x.value=!0},O=()=>{if(s(u))return!0},I=nn(O,()=>{n.enterable&&s(f)==="hover"&&p()}),P=nn(O,()=>{s(f)==="hover"&&v()}),K=()=>{var $,D;(D=($=a.value)==null?void 0:$.updatePopper)==null||D.call($),g?.()},B=()=>{b?.()},Y=()=>{m()},M=()=>{n.virtualTriggering||v()},A=$=>{var D;const V=(D=a.value)==null?void 0:D.popperContentRef,H=$?.relatedTarget||document.activeElement;return V?.contains(H)};return pe(()=>s(d),$=>{$?(x.value=!1,i=Ih(r,()=>{if(s(u))return;Vn(s(f)).every(V=>V!=="hover"&&V!=="focus")&&v()})):i?.()},{flush:"post"}),pe(()=>n.content,()=>{var $,D;(D=($=a.value)==null?void 0:$.updatePopper)==null||D.call($)}),t({contentRef:a,isFocusInsideContent:A}),($,D)=>(_(),ie(s(Ms),{disabled:!$.teleported,to:s(k)},{default:ee(()=>[s(w)||!x.value?(_(),ie(kn,{key:0,name:s(C),appear:!s(y),onAfterLeave:N,onBeforeEnter:K,onAfterEnter:Y,onBeforeLeave:B,persisted:""},{default:ee(()=>[nt(J(s(AL),ot({id:s(c),ref_key:"contentRef",ref:a},$.$attrs,{"aria-label":$.ariaLabel,"aria-hidden":x.value,"boundaries-padding":$.boundariesPadding,"fallback-placements":$.fallbackPlacements,"gpu-acceleration":$.gpuAcceleration,offset:$.offset,placement:$.placement,"popper-options":$.popperOptions,"arrow-offset":$.arrowOffset,strategy:$.strategy,effect:$.effect,enterable:$.enterable,pure:$.pure,"popper-class":$.popperClass,"popper-style":[$.popperStyle,s(T)],"reference-el":$.referenceEl,"trigger-target-el":$.triggerTargetEl,visible:s(E),"z-index":$.zIndex,onMouseenter:s(I),onMouseleave:s(P),onBlur:M,onClose:s(v)}),{default:ee(()=>[oe($.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"]),[[kt,s(E)]])]),_:3},8,["name","appear"])):re("v-if",!0)]),_:3},8,["disabled","to"]))}});var eD=Te(QL,[["__file","content.vue"]]);const tD=q({name:"ElTooltip"}),nD=q({...tD,props:zL,emits:KL,setup(e,{expose:t,emit:n}){const o=e;JL();const l=be("tooltip"),a=Tn(),r=L(),i=L(),u=()=>{var y;const w=s(r);w&&((y=w.popperInstanceRef)==null||y.update())},c=L(!1),d=L(),{show:f,hide:v,hasUpdateHandler:p}=HL({indicator:c,toggleReason:d}),{onOpen:m,onClose:h}=LS({showAfter:$t(o,"showAfter"),hideAfter:$t(o,"hideAfter"),autoClose:$t(o,"autoClose"),open:f,close:v}),g=S(()=>Mt(o.visible)&&!p.value),b=S(()=>[l.b(),o.popperClass]);ut(tm,{controlled:g,id:a,open:rr(c),trigger:$t(o,"trigger"),onOpen:m,onClose:h,onToggle:y=>{s(c)?h(y):m(y)},onShow:()=>{n("show",d.value)},onHide:()=>{n("hide",d.value)},onBeforeShow:()=>{n("before-show",d.value)},onBeforeHide:()=>{n("before-hide",d.value)},updatePopper:u}),pe(()=>o.disabled,y=>{y&&c.value&&(c.value=!1)});const C=y=>{var w;return(w=i.value)==null?void 0:w.isFocusInsideContent(y)};return _1(()=>c.value&&v()),t({popperRef:r,contentRef:i,isFocusInsideContent:C,updatePopper:u,onOpen:m,onClose:h,hide:v}),(y,w)=>(_(),ie(s(m2),{ref_key:"popperRef",ref:r,role:y.role},{default:ee(()=>[J(qL,{disabled:y.disabled,trigger:y.trigger,"trigger-keys":y.triggerKeys,"virtual-ref":y.virtualRef,"virtual-triggering":y.virtualTriggering,"focus-on-target":y.focusOnTarget},{default:ee(()=>[y.$slots.default?oe(y.$slots,"default",{key:0}):re("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering","focus-on-target"]),J(eD,{ref_key:"contentRef",ref:i,"aria-label":y.ariaLabel,"boundaries-padding":y.boundariesPadding,content:y.content,disabled:y.disabled,effect:y.effect,enterable:y.enterable,"fallback-placements":y.fallbackPlacements,"hide-after":y.hideAfter,"gpu-acceleration":y.gpuAcceleration,offset:y.offset,persistent:y.persistent,"popper-class":s(b),"popper-style":y.popperStyle,placement:y.placement,"popper-options":y.popperOptions,"arrow-offset":y.arrowOffset,pure:y.pure,"raw-content":y.rawContent,"reference-el":y.referenceEl,"trigger-target-el":y.triggerTargetEl,"show-after":y.showAfter,strategy:y.strategy,teleported:y.teleported,transition:y.transition,"virtual-triggering":y.virtualTriggering,"z-index":y.zIndex,"append-to":y.appendTo},{default:ee(()=>[oe(y.$slots,"content",{},()=>[y.rawContent?(_(),F("span",{key:0,innerHTML:y.content},null,8,["innerHTML"])):(_(),F("span",{key:1},ke(y.content),1))]),y.showArrow?(_(),ie(s(Q6),{key:0})):re("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var oD=Te(nD,[["__file","tooltip.vue"]]);const On=Ze(oD),lD=Se({...hu,valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:Q(String),values:["top","top-start","top-end","bottom","bottom-start","bottom-end"],default:"bottom-start"},fetchSuggestions:{type:Q([Function,Array]),default:Nt},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:Boolean,hideLoading:Boolean,teleported:jt.teleported,appendTo:jt.appendTo,highlightFirstItem:Boolean,fitInputWidth:Boolean}),aD={[Ge]:e=>Fe(e)||je(e),[fn]:e=>Fe(e)||je(e),[ht]:e=>Fe(e)||je(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,select:e=>et(e)},b2="ElAutocomplete",rD=q({name:b2,inheritAttrs:!1}),sD=q({...rD,props:lD,emits:aD,setup(e,{expose:t,emit:n}){const o=e,l=S(()=>mo(o,Object.keys(hu))),a=Jl(),r=bn(),i=be("autocomplete"),u=L(),c=L(),d=L(),f=L();let v=!1,p=!1;const m=L([]),h=L(-1),g=L(""),b=L(!1),C=L(!1),y=L(!1),w=Tn(),E=S(()=>a.style),k=S(()=>(m.value.length>0||y.value)&&b.value),T=S(()=>!o.hideLoading&&y.value),x=S(()=>u.value?Array.from(u.value.$el.querySelectorAll("input")):[]),N=()=>{k.value&&(g.value=`${u.value.$el.offsetWidth}px`)},O=()=>{h.value=-1},I=async U=>{if(C.value)return;const G=se=>{y.value=!1,!C.value&&(ye(se)?(m.value=se,h.value=o.highlightFirstItem?0:-1):sn(b2,"autocomplete suggestions must be an array"))};if(y.value=!0,ye(o.fetchSuggestions))G(o.fetchSuggestions);else{const se=await o.fetchSuggestions(U,G);ye(se)&&G(se)}},P=po(I,o.debounce),K=U=>{const G=!!U;if(n(fn,U),n(Ge,U),C.value=!1,b.value||(b.value=G),!o.triggerOnFocus&&!U){C.value=!0,m.value=[];return}P(U)},B=U=>{var G;r.value||(((G=U.target)==null?void 0:G.tagName)!=="INPUT"||x.value.includes(document.activeElement))&&(b.value=!0)},Y=U=>{n(ht,U)},M=U=>{var G;if(p)p=!1;else{b.value=!0,n("focus",U);const se=(G=o.modelValue)!=null?G:"";o.triggerOnFocus&&!v&&P(String(se))}},A=U=>{setTimeout(()=>{var G;if((G=d.value)!=null&&G.isFocusInsideContent()){p=!0;return}b.value&&H(),n("blur",U)})},$=()=>{b.value=!1,n(Ge,""),n("clear")},D=async()=>{var U;(U=u.value)!=null&&U.isComposing||(k.value&&h.value>=0&&h.value{k.value&&(U.preventDefault(),U.stopPropagation(),H())},H=()=>{b.value=!1},W=()=>{var U;(U=u.value)==null||U.focus()},X=()=>{var U;(U=u.value)==null||U.blur()},te=async U=>{n(fn,U[o.valueKey]),n(Ge,U[o.valueKey]),n("select",U),m.value=[],h.value=-1},le=U=>{var G,se;if(!k.value||y.value)return;if(U<0){h.value=-1;return}U>=m.value.length&&(U=m.value.length-1);const ve=c.value.querySelector(`.${i.be("suggestion","wrap")}`),j=ve.querySelectorAll(`.${i.be("suggestion","list")} li`)[U],ne=ve.scrollTop,{offsetTop:ue,scrollHeight:de}=j;ue+de>ne+ve.clientHeight&&(ve.scrollTop+=de),ue{var U;(U=d.value)!=null&&U.isFocusInsideContent()||k.value&&H()});return Rt(()=>{ce?.()}),rt(()=>{var U;const G=(U=u.value)==null?void 0:U.ref;G&&([{key:"role",value:"textbox"},{key:"aria-autocomplete",value:"list"},{key:"aria-controls",value:"id"},{key:"aria-activedescendant",value:`${w.value}-item-${h.value}`}].forEach(({key:se,value:ve})=>G.setAttribute(se,ve)),v=G.hasAttribute("readonly"))}),t({highlightedIndex:h,activated:b,loading:y,inputRef:u,popperRef:d,suggestions:m,handleSelect:te,handleKeyEnter:D,focus:W,blur:X,close:H,highlight:le,getData:I}),(U,G)=>(_(),ie(s(On),{ref_key:"popperRef",ref:d,visible:s(k),placement:U.placement,"fallback-placements":["bottom-start","top-start"],"popper-class":[s(i).e("popper"),U.popperClass],teleported:U.teleported,"append-to":U.appendTo,"gpu-acceleration":!1,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:`${s(i).namespace.value}-zoom-in-top`,persistent:"",role:"listbox",onBeforeShow:N,onHide:O},{content:ee(()=>[z("div",{ref_key:"regionRef",ref:c,class:R([s(i).b("suggestion"),s(i).is("loading",s(T))]),style:We({[U.fitInputWidth?"width":"minWidth"]:g.value,outline:"none"}),role:"region"},[U.$slots.header?(_(),F("div",{key:0,class:R(s(i).be("suggestion","header")),onClick:qe(()=>{},["stop"])},[oe(U.$slots,"header")],10,["onClick"])):re("v-if",!0),J(s(Go),{id:s(w),tag:"ul","wrap-class":s(i).be("suggestion","wrap"),"view-class":s(i).be("suggestion","list"),role:"listbox"},{default:ee(()=>[s(T)?(_(),F("li",{key:0},[oe(U.$slots,"loading",{},()=>[J(s(Be),{class:R(s(i).is("loading"))},{default:ee(()=>[J(s(bl))]),_:1},8,["class"])])])):(_(!0),F(He,{key:1},mt(m.value,(se,ve)=>(_(),F("li",{id:`${s(w)}-item-${ve}`,key:ve,class:R({highlighted:h.value===ve}),role:"option","aria-selected":h.value===ve,onClick:ae=>te(se)},[oe(U.$slots,"default",{item:se},()=>[gt(ke(se[U.valueKey]),1)])],10,["id","aria-selected","onClick"]))),128))]),_:3},8,["id","wrap-class","view-class"]),U.$slots.footer?(_(),F("div",{key:1,class:R(s(i).be("suggestion","footer")),onClick:qe(()=>{},["stop"])},[oe(U.$slots,"footer")],10,["onClick"])):re("v-if",!0)],6)]),default:ee(()=>[z("div",{ref_key:"listboxRef",ref:f,class:R([s(i).b(),U.$attrs.class]),style:We(s(E)),role:"combobox","aria-haspopup":"listbox","aria-expanded":s(k),"aria-owns":s(w)},[J(s(zn),ot({ref_key:"inputRef",ref:u},ot(s(l),U.$attrs),{"model-value":U.modelValue,disabled:s(r),onInput:K,onChange:Y,onFocus:M,onBlur:A,onClear:$,onKeydown:[Bt(qe(se=>le(h.value-1),["prevent"]),["up"]),Bt(qe(se=>le(h.value+1),["prevent"]),["down"]),Bt(D,["enter"]),Bt(H,["tab"]),Bt(V,["esc"])],onMousedown:B}),fo({_:2},[U.$slots.prepend?{name:"prepend",fn:ee(()=>[oe(U.$slots,"prepend")])}:void 0,U.$slots.append?{name:"append",fn:ee(()=>[oe(U.$slots,"append")])}:void 0,U.$slots.prefix?{name:"prefix",fn:ee(()=>[oe(U.$slots,"prefix")])}:void 0,U.$slots.suffix?{name:"suffix",fn:ee(()=>[oe(U.$slots,"suffix")])}:void 0]),1040,["model-value","disabled","onKeydown"])],14,["aria-expanded","aria-owns"])]),_:3},8,["visible","placement","popper-class","teleported","append-to","transition"]))}});var iD=Te(sD,[["__file","autocomplete.vue"]]);const uD=Ze(iD),cD=Se({size:{type:[Number,String],values:El,default:"",validator:e=>je(e)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:It},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:Q(String),default:"cover"}}),dD={error:e=>e instanceof Event},fD=q({name:"ElAvatar"}),pD=q({...fD,props:cD,emits:dD,setup(e,{emit:t}){const n=e,o=be("avatar"),l=L(!1),a=S(()=>{const{size:c,icon:d,shape:f}=n,v=[o.b()];return Fe(c)&&v.push(o.m(c)),d&&v.push(o.m("icon")),f&&v.push(o.m(f)),v}),r=S(()=>{const{size:c}=n;return je(c)?o.cssVarBlock({size:Qt(c)||""}):void 0}),i=S(()=>({objectFit:n.fit}));pe(()=>n.src,()=>l.value=!1);function u(c){l.value=!0,t("error",c)}return(c,d)=>(_(),F("span",{class:R(s(a)),style:We(s(r))},[(c.src||c.srcSet)&&!l.value?(_(),F("img",{key:0,src:c.src,alt:c.alt,srcset:c.srcSet,style:We(s(i)),onError:u},null,44,["src","alt","srcset"])):c.icon?(_(),ie(s(Be),{key:1},{default:ee(()=>[(_(),ie(at(c.icon)))]),_:1})):oe(c.$slots,"default",{key:2})],6))}});var vD=Te(pD,[["__file","avatar.vue"]]);const hD=Ze(vD),mD={visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},gD={click:e=>e instanceof MouseEvent},bD=(e,t,n)=>{const o=Wt(),l=Wt(),a=L(!1),r=()=>{o.value&&(a.value=o.value.scrollTop>=e.visibilityHeight)},i=c=>{var d;(d=o.value)==null||d.scrollTo({top:0,behavior:"smooth"}),t("click",c)},u=yS(r,300,!0);return At(l,"scroll",u),rt(()=>{var c;l.value=document,o.value=document.documentElement,e.target&&(o.value=(c=document.querySelector(e.target))!=null?c:void 0,o.value||sn(n,`target does not exist: ${e.target}`),l.value=o.value),r()}),{visible:a,handleClick:i}},y2="ElBacktop",yD=q({name:y2}),wD=q({...yD,props:mD,emits:gD,setup(e,{emit:t}){const n=e,o=be("backtop"),{handleClick:l,visible:a}=bD(n,t,y2),r=S(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`}));return(i,u)=>(_(),ie(kn,{name:`${s(o).namespace.value}-fade-in`},{default:ee(()=>[s(a)?(_(),F("div",{key:0,style:We(s(r)),class:R(s(o).b()),onClick:qe(s(l),["stop"])},[oe(i.$slots,"default",{},()=>[J(s(Be),{class:R(s(o).e("icon"))},{default:ee(()=>[J(s(XM))]),_:1},8,["class"])])],14,["onClick"])):re("v-if",!0)]),_:3},8,["name"]))}});var CD=Te(wD,[["__file","backtop.vue"]]);const SD=Ze(CD),ED=Se({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:Q([String,Object,Array])},offset:{type:Q(Array),default:[0,0]},badgeClass:{type:String}}),kD=q({name:"ElBadge"}),_D=q({...kD,props:ED,setup(e,{expose:t}){const n=e,o=be("badge"),l=S(()=>n.isDot?"":je(n.value)&&je(n.max)?n.max{var r,i,u,c,d;return[{backgroundColor:n.color,marginRight:Qt(-((i=(r=n.offset)==null?void 0:r[0])!=null?i:0)),marginTop:Qt((c=(u=n.offset)==null?void 0:u[1])!=null?c:0)},(d=n.badgeStyle)!=null?d:{}]});return t({content:l}),(r,i)=>(_(),F("div",{class:R(s(o).b())},[oe(r.$slots,"default"),J(kn,{name:`${s(o).namespace.value}-zoom-in-center`,persisted:""},{default:ee(()=>[nt(z("sup",{class:R([s(o).e("content"),s(o).em("content",r.type),s(o).is("fixed",!!r.$slots.default),s(o).is("dot",r.isDot),s(o).is("hide-zero",!r.showZero&&n.value===0),r.badgeClass]),style:We(s(a))},[oe(r.$slots,"content",{value:s(l)},()=>[gt(ke(s(l)),1)])],6),[[kt,!r.hidden&&(s(l)||r.isDot||r.$slots.content)]])]),_:3},8,["name"])],2))}});var TD=Te(_D,[["__file","badge.vue"]]);const w2=Ze(TD),C2=Symbol("breadcrumbKey"),OD=Se({separator:{type:String,default:"/"},separatorIcon:{type:It}}),$D=q({name:"ElBreadcrumb"}),RD=q({...$D,props:OD,setup(e){const t=e,{t:n}=Ct(),o=be("breadcrumb"),l=L();return ut(C2,t),rt(()=>{const a=l.value.querySelectorAll(`.${o.e("item")}`);a.length&&a[a.length-1].setAttribute("aria-current","page")}),(a,r)=>(_(),F("div",{ref_key:"breadcrumb",ref:l,class:R(s(o).b()),"aria-label":s(n)("el.breadcrumb.label"),role:"navigation"},[oe(a.$slots,"default")],10,["aria-label"]))}});var ND=Te(RD,[["__file","breadcrumb.vue"]]);const ID=Se({to:{type:Q([String,Object]),default:""},replace:Boolean}),PD=q({name:"ElBreadcrumbItem"}),xD=q({...PD,props:ID,setup(e){const t=e,n=it(),o=Pe(C2,void 0),l=be("breadcrumb"),a=n.appContext.config.globalProperties.$router,r=L(),i=()=>{!t.to||!a||(t.replace?a.replace(t.to):a.push(t.to))};return(u,c)=>{var d,f;return _(),F("span",{class:R(s(l).e("item"))},[z("span",{ref_key:"link",ref:r,class:R([s(l).e("inner"),s(l).is("link",!!u.to)]),role:"link",onClick:i},[oe(u.$slots,"default")],2),(d=s(o))!=null&&d.separatorIcon?(_(),ie(s(Be),{key:0,class:R(s(l).e("separator"))},{default:ee(()=>[(_(),ie(at(s(o).separatorIcon)))]),_:1},8,["class"])):(_(),F("span",{key:1,class:R(s(l).e("separator")),role:"presentation"},ke((f=s(o))==null?void 0:f.separator),3))],2)}}});var S2=Te(xD,[["__file","breadcrumb-item.vue"]]);const MD=Ze(ND,{BreadcrumbItem:S2}),AD=Xt(S2),E2=Symbol("buttonGroupContextKey"),Vl=({from:e,replacement:t,scope:n,version:o,ref:l,type:a="API"},r)=>{pe(()=>s(r),i=>{},{immediate:!0})},LD=(e,t)=>{Vl({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},S(()=>e.type==="text"));const n=Pe(E2,void 0),o=xs("button"),{form:l}=$n(),a=un(S(()=>n?.size)),r=bn(),i=L(),u=cn(),c=S(()=>{var b;return e.type||n?.type||((b=o.value)==null?void 0:b.type)||""}),d=S(()=>{var b,C,y;return(y=(C=e.autoInsertSpace)!=null?C:(b=o.value)==null?void 0:b.autoInsertSpace)!=null?y:!1}),f=S(()=>{var b,C,y;return(y=(C=e.plain)!=null?C:(b=o.value)==null?void 0:b.plain)!=null?y:!1}),v=S(()=>{var b,C,y;return(y=(C=e.round)!=null?C:(b=o.value)==null?void 0:b.round)!=null?y:!1}),p=S(()=>{var b,C,y;return(y=(C=e.text)!=null?C:(b=o.value)==null?void 0:b.text)!=null?y:!1}),m=S(()=>e.tag==="button"?{ariaDisabled:r.value||e.loading,disabled:r.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=S(()=>{var b;const C=(b=u.default)==null?void 0:b.call(u);if(d.value&&C?.length===1){const y=C[0];if(y?.type===Ts){const w=y.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(w.trim())}}return!1});return{_disabled:r,_size:a,_type:c,_ref:i,_props:m,_plain:f,_round:v,_text:p,shouldAddSpace:h,handleClick:b=>{if(r.value||e.loading){b.stopPropagation();return}e.nativeType==="reset"&&l?.resetFields(),t("click",b)}}},Wp=["default","primary","success","warning","info","danger","text",""],DD=["button","submit","reset"],jp=Se({size:pn,disabled:Boolean,type:{type:String,values:Wp,default:""},icon:{type:It},nativeType:{type:String,values:DD,default:"button"},loading:Boolean,loadingIcon:{type:It,default:()=>bl},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:Q([String,Object]),default:"button"}}),BD={click:e=>e instanceof MouseEvent};function In(e,t){FD(e)&&(e="100%");var n=VD(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Gu(e){return Math.min(1,Math.max(0,e))}function FD(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function VD(e){return typeof e=="string"&&e.indexOf("%")!==-1}function k2(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Xu(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ua(e){return e.length===1?"0"+e:String(e)}function HD(e,t,n){return{r:In(e,255)*255,g:In(t,255)*255,b:In(n,255)*255}}function Hb(e,t,n){e=In(e,255),t=In(t,255),n=In(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),a=0,r=0,i=(o+l)/2;if(o===l)r=0,a=0;else{var u=o-l;switch(r=i>.5?u/(2-o-l):u/(o+l),o){case e:a=(t-n)/u+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function zD(e,t,n){var o,l,a;if(e=In(e,360),t=In(t,100),n=In(n,100),t===0)l=n,a=n,o=n;else{var r=n<.5?n*(1+t):n+t-n*t,i=2*n-r;o=qf(i,r,e+1/3),l=qf(i,r,e),a=qf(i,r,e-1/3)}return{r:o*255,g:l*255,b:a*255}}function zb(e,t,n){e=In(e,255),t=In(t,255),n=In(n,255);var o=Math.max(e,t,n),l=Math.min(e,t,n),a=0,r=o,i=o-l,u=o===0?0:i/o;if(o===l)a=0;else{switch(o){case e:a=(t-n)/i+(t>16,g:(e&65280)>>8,b:e&255}}var Up={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function qD(e){var t={r:0,g:0,b:0},n=1,o=null,l=null,a=null,r=!1,i=!1;return typeof e=="string"&&(e=XD(e)),typeof e=="object"&&(Rl(e.r)&&Rl(e.g)&&Rl(e.b)?(t=HD(e.r,e.g,e.b),r=!0,i=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Rl(e.h)&&Rl(e.s)&&Rl(e.v)?(o=Xu(e.s),l=Xu(e.v),t=KD(e.h,o,l),r=!0,i="hsv"):Rl(e.h)&&Rl(e.s)&&Rl(e.l)&&(o=Xu(e.s),a=Xu(e.l),t=zD(e.h,o,a),r=!0,i="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=k2(n),{ok:r,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var YD="[-\\+]?\\d+%?",GD="[-\\+]?\\d*\\.\\d+%?",ya="(?:".concat(GD,")|(?:").concat(YD,")"),Yf="[\\s|\\(]+(".concat(ya,")[,|\\s]+(").concat(ya,")[,|\\s]+(").concat(ya,")\\s*\\)?"),Gf="[\\s|\\(]+(".concat(ya,")[,|\\s]+(").concat(ya,")[,|\\s]+(").concat(ya,")[,|\\s]+(").concat(ya,")\\s*\\)?"),Bo={CSS_UNIT:new RegExp(ya),rgb:new RegExp("rgb"+Yf),rgba:new RegExp("rgba"+Gf),hsl:new RegExp("hsl"+Yf),hsla:new RegExp("hsla"+Gf),hsv:new RegExp("hsv"+Yf),hsva:new RegExp("hsva"+Gf),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function XD(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(Up[e])e=Up[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=Bo.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=Bo.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Bo.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=Bo.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Bo.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=Bo.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Bo.hex8.exec(e),n?{r:vo(n[1]),g:vo(n[2]),b:vo(n[3]),a:Wb(n[4]),format:t?"name":"hex8"}:(n=Bo.hex6.exec(e),n?{r:vo(n[1]),g:vo(n[2]),b:vo(n[3]),format:t?"name":"hex"}:(n=Bo.hex4.exec(e),n?{r:vo(n[1]+n[1]),g:vo(n[2]+n[2]),b:vo(n[3]+n[3]),a:Wb(n[4]+n[4]),format:t?"name":"hex8"}:(n=Bo.hex3.exec(e),n?{r:vo(n[1]+n[1]),g:vo(n[2]+n[2]),b:vo(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function Rl(e){return!!Bo.CSS_UNIT.exec(String(e))}var Vr=(function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t=="number"&&(t=UD(t)),this.originalInput=t;var l=qD(t);this.originalInput=t,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:l.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=l.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,l,a=t.r/255,r=t.g/255,i=t.b/255;return a<=.03928?n=a/12.92:n=Math.pow((a+.055)/1.055,2.4),r<=.03928?o=r/12.92:o=Math.pow((r+.055)/1.055,2.4),i<=.03928?l=i/12.92:l=Math.pow((i+.055)/1.055,2.4),.2126*n+.7152*o+.0722*l},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=k2(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=zb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=zb(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),l=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(o,"%, ").concat(l,"%)"):"hsva(".concat(n,", ").concat(o,"%, ").concat(l,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Hb(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Hb(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),l=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(o,"%, ").concat(l,"%)"):"hsla(".concat(n,", ").concat(o,"%, ").concat(l,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),Kb(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),WD(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(o,")"):"rgba(".concat(t,", ").concat(n,", ").concat(o,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(In(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(In(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+Kb(this.r,this.g,this.b,!1),n=0,o=Object.entries(Up);n=0,a=!n&&l&&(t.startsWith("hex")||t==="name");return a?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(!0)),t==="hex4"&&(o=this.toHex8String(!0)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Gu(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Gu(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Gu(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Gu(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),l=new e(t).toRgb(),a=n/100,r={r:(l.r-o.r)*a+o.r,g:(l.g-o.g)*a+o.g,b:(l.b-o.b)*a+o.b,a:(l.a-o.a)*a+o.a};return new e(r)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),l=360/n,a=[this];for(o.h=(o.h-(l*t>>1)+720)%360;--t;)o.h=(o.h+l)%360,a.push(new e(o));return a},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,l=n.s,a=n.v,r=[],i=1/t;t--;)r.push(new e({h:o,s:l,v:a})),a=(a+i)%1;return r},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),l=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/l,g:(n.g*n.a+o.g*o.a*(1-n.a))/l,b:(n.b*n.a+o.b*o.a*(1-n.a))/l,a:l})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,l=[this],a=360/t,r=1;r{let o={},l=e.color;if(l){const a=l.match(/var\((.*?)\)/);a&&(l=window.getComputedStyle(window.document.documentElement).getPropertyValue(a[1]));const r=new Vr(l),i=e.dark?r.tint(20).toString():sa(r,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?sa(r,90):r.tint(90).toString(),"text-color":l,"border-color":e.dark?sa(r,50):r.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":l,"hover-border-color":l,"active-bg-color":i,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":i}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?sa(r,90):r.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?sa(r,50):r.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?sa(r,80):r.tint(80).toString());else{const u=e.dark?sa(r,30):r.tint(30).toString(),c=r.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":l,"text-color":c,"border-color":l,"hover-bg-color":u,"hover-text-color":c,"hover-border-color":u,"active-bg-color":i,"active-border-color":i}),t.value){const d=e.dark?sa(r,50):r.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=d,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=d}}}return o})}const ZD=q({name:"ElButton"}),QD=q({...ZD,props:jp,emits:BD,setup(e,{expose:t,emit:n}){const o=e,l=JD(o),a=be("button"),{_ref:r,_size:i,_type:u,_disabled:c,_props:d,_plain:f,_round:v,_text:p,shouldAddSpace:m,handleClick:h}=LD(o,n),g=S(()=>[a.b(),a.m(u.value),a.m(i.value),a.is("disabled",c.value),a.is("loading",o.loading),a.is("plain",f.value),a.is("round",v.value),a.is("circle",o.circle),a.is("text",p.value),a.is("link",o.link),a.is("has-bg",o.bg)]);return t({ref:r,size:i,type:u,disabled:c,shouldAddSpace:m}),(b,C)=>(_(),ie(at(b.tag),ot({ref_key:"_ref",ref:r},s(d),{class:s(g),style:s(l),onClick:s(h)}),{default:ee(()=>[b.loading?(_(),F(He,{key:0},[b.$slots.loading?oe(b.$slots,"loading",{key:0}):(_(),ie(s(Be),{key:1,class:R(s(a).is("loading"))},{default:ee(()=>[(_(),ie(at(b.loadingIcon)))]),_:1},8,["class"]))],64)):b.icon||b.$slots.icon?(_(),ie(s(Be),{key:1},{default:ee(()=>[b.icon?(_(),ie(at(b.icon),{key:0})):oe(b.$slots,"icon",{key:1})]),_:3})):re("v-if",!0),b.$slots.default?(_(),F("span",{key:2,class:R({[s(a).em("text","expand")]:s(m)})},[oe(b.$slots,"default")],2)):re("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var eB=Te(QD,[["__file","button.vue"]]);const tB={size:jp.size,type:jp.type},nB=q({name:"ElButtonGroup"}),oB=q({...nB,props:tB,setup(e){const t=e;ut(E2,_t({size:$t(t,"size"),type:$t(t,"type")}));const n=be("button");return(o,l)=>(_(),F("div",{class:R(s(n).b("group"))},[oe(o.$slots,"default")],2))}});var _2=Te(oB,[["__file","button-group.vue"]]);const Sn=Ze(eB,{ButtonGroup:_2}),T2=Xt(_2);function la(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vc={exports:{}},lB=vc.exports,jb;function aB(){return jb||(jb=1,(function(e,t){(function(n,o){e.exports=o()})(lB,(function(){var n=1e3,o=6e4,l=36e5,a="millisecond",r="second",i="minute",u="hour",c="day",d="week",f="month",v="quarter",p="year",m="date",h="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,C={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(B){var Y=["th","st","nd","rd"],M=B%100;return"["+B+(Y[(M-20)%10]||Y[M]||Y[0])+"]"}},y=function(B,Y,M){var A=String(B);return!A||A.length>=Y?B:""+Array(Y+1-A.length).join(M)+B},w={s:y,z:function(B){var Y=-B.utcOffset(),M=Math.abs(Y),A=Math.floor(M/60),$=M%60;return(Y<=0?"+":"-")+y(A,2,"0")+":"+y($,2,"0")},m:function B(Y,M){if(Y.date()1)return B(V[0])}else{var H=Y.name;k[H]=Y,$=H}return!A&&$&&(E=$),$||!A&&E},O=function(B,Y){if(x(B))return B.clone();var M=typeof Y=="object"?Y:{};return M.date=B,M.args=arguments,new P(M)},I=w;I.l=N,I.i=x,I.w=function(B,Y){return O(B,{locale:Y.$L,utc:Y.$u,x:Y.$x,$offset:Y.$offset})};var P=(function(){function B(M){this.$L=N(M.locale,null,!0),this.parse(M),this.$x=this.$x||M.x||{},this[T]=!0}var Y=B.prototype;return Y.parse=function(M){this.$d=(function(A){var $=A.date,D=A.utc;if($===null)return new Date(NaN);if(I.u($))return new Date;if($ instanceof Date)return new Date($);if(typeof $=="string"&&!/Z$/i.test($)){var V=$.match(g);if(V){var H=V[2]-1||0,W=(V[7]||"0").substring(0,3);return D?new Date(Date.UTC(V[1],H,V[3]||1,V[4]||0,V[5]||0,V[6]||0,W)):new Date(V[1],H,V[3]||1,V[4]||0,V[5]||0,V[6]||0,W)}}return new Date($)})(M),this.init()},Y.init=function(){var M=this.$d;this.$y=M.getFullYear(),this.$M=M.getMonth(),this.$D=M.getDate(),this.$W=M.getDay(),this.$H=M.getHours(),this.$m=M.getMinutes(),this.$s=M.getSeconds(),this.$ms=M.getMilliseconds()},Y.$utils=function(){return I},Y.isValid=function(){return this.$d.toString()!==h},Y.isSame=function(M,A){var $=O(M);return this.startOf(A)<=$&&$<=this.endOf(A)},Y.isAfter=function(M,A){return O(M)[e>0?e-1:void 0,e,eArray.from(Array.from({length:e}).keys()),O2=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),$2=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),Ub=function(e,t){const n=Ta(e),o=Ta(t);return n&&o?e.getTime()===t.getTime():!n&&!o?e===t:!1},R2=function(e,t){const n=ye(e),o=ye(t);return n&&o?e.length!==t.length?!1:e.every((l,a)=>Ub(l,t[a])):!n&&!o?Ub(e,t):!1},qb=function(e,t,n){const o=ho(t)||t==="x"?Qe(e).locale(n):Qe(e,t).locale(n);return o.isValid()?o:void 0},Yb=function(e,t,n){return ho(t)?e:t==="x"?+e:Qe(e).locale(n).format(t)},Jf=(e,t)=>{var n;const o=[],l=t?.();for(let a=0;aye(e)?e.map(t=>t.toDate()):e.toDate(),sB=(e,t)=>{const n=e.subtract(1,"month").endOf("month").date();return ka(t).map((o,l)=>n-(t-l-1))},iB=e=>{const t=e.daysInMonth();return ka(t).map((n,o)=>o+1)},uB=e=>ka(e.length/7).map(t=>{const n=t*7;return e.slice(n,n+7)}),cB=Se({selectedDay:{type:Q(Object)},range:{type:Q(Array)},date:{type:Q(Object),required:!0},hideHeader:{type:Boolean}}),dB={pick:e=>et(e)};var mc={exports:{}},fB=mc.exports,Gb;function pB(){return Gb||(Gb=1,(function(e,t){(function(n,o){e.exports=o()})(fB,(function(){return function(n,o,l){var a=o.prototype,r=function(f){return f&&(f.indexOf?f:f.s)},i=function(f,v,p,m,h){var g=f.name?f:f.$locale(),b=r(g[v]),C=r(g[p]),y=b||C.map((function(E){return E.slice(0,m)}));if(!h)return y;var w=g.weekStart;return y.map((function(E,k){return y[(k+(w||0))%7]}))},u=function(){return l.Ls[l.locale()]},c=function(f,v){return f.formats[v]||(function(p){return p.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,h,g){return h||g.slice(1)}))})(f.formats[v.toUpperCase()])},d=function(){var f=this;return{months:function(v){return v?v.format("MMMM"):i(f,"months")},monthsShort:function(v){return v?v.format("MMM"):i(f,"monthsShort","months",3)},firstDayOfWeek:function(){return f.$locale().weekStart||0},weekdays:function(v){return v?v.format("dddd"):i(f,"weekdays")},weekdaysMin:function(v){return v?v.format("dd"):i(f,"weekdaysMin","weekdays",2)},weekdaysShort:function(v){return v?v.format("ddd"):i(f,"weekdaysShort","weekdays",3)},longDateFormat:function(v){return c(f.$locale(),v)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};a.localeData=function(){return d.bind(this)()},l.localeData=function(){var f=u();return{firstDayOfWeek:function(){return f.weekStart||0},weekdays:function(){return l.weekdays()},weekdaysShort:function(){return l.weekdaysShort()},weekdaysMin:function(){return l.weekdaysMin()},months:function(){return l.months()},monthsShort:function(){return l.monthsShort()},longDateFormat:function(v){return c(f,v)},meridiem:f.meridiem,ordinal:f.ordinal}},l.months=function(){return i(u(),"months")},l.monthsShort=function(){return i(u(),"monthsShort","months",3)},l.weekdays=function(f){return i(u(),"weekdays",null,null,f)},l.weekdaysShort=function(f){return i(u(),"weekdaysShort","weekdays",3,f)},l.weekdaysMin=function(f){return i(u(),"weekdaysMin","weekdays",2,f)}}}))})(mc)),mc.exports}var vB=pB();const N2=la(vB),hB=["year","years","month","months","date","dates","week","datetime","datetimerange","daterange","monthrange","yearrange"],Zf=["sun","mon","tue","wed","thu","fri","sat"],mB=(e,t)=>{Qe.extend(N2);const n=Qe.localeData().firstDayOfWeek(),{t:o,lang:l}=Ct(),a=Qe().locale(l.value),r=S(()=>!!e.range&&!!e.range.length),i=S(()=>{let v=[];if(r.value){const[p,m]=e.range,h=ka(m.date()-p.date()+1).map(C=>({text:p.date()+C,type:"current"}));let g=h.length%7;g=g===0?0:7-g;const b=ka(g).map((C,y)=>({text:y+1,type:"next"}));v=h.concat(b)}else{const p=e.date.startOf("month").day(),m=sB(e.date,(p-n+7)%7).map(C=>({text:C,type:"prev"})),h=iB(e.date).map(C=>({text:C,type:"current"}));v=[...m,...h];const g=7-(v.length%7||7),b=ka(g).map((C,y)=>({text:y+1,type:"next"}));v=v.concat(b)}return uB(v)}),u=S(()=>{const v=n;return v===0?Zf.map(p=>o(`el.datepicker.weeks.${p}`)):Zf.slice(v).concat(Zf.slice(0,v)).map(p=>o(`el.datepicker.weeks.${p}`))}),c=(v,p)=>{switch(p){case"prev":return e.date.startOf("month").subtract(1,"month").date(v);case"next":return e.date.startOf("month").add(1,"month").date(v);case"current":return e.date.date(v)}};return{now:a,isInRange:r,rows:i,weekDays:u,getFormattedDate:c,handlePickDay:({text:v,type:p})=>{const m=c(v,p);t("pick",m)},getSlotData:({text:v,type:p})=>{const m=c(v,p);return{isSelected:m.isSame(e.selectedDay),type:`${p}-month`,day:m.format("YYYY-MM-DD"),date:m.toDate()}}}},gB=q({name:"DateTable"}),bB=q({...gB,props:cB,emits:dB,setup(e,{expose:t,emit:n}){const o=e,{isInRange:l,now:a,rows:r,weekDays:i,getFormattedDate:u,handlePickDay:c,getSlotData:d}=mB(o,n),f=be("calendar-table"),v=be("calendar-day"),p=({text:m,type:h})=>{const g=[h];if(h==="current"){const b=u(m,h);b.isSame(o.selectedDay,"day")&&g.push(v.is("selected")),b.isSame(a,"day")&&g.push(v.is("today"))}return g};return t({getFormattedDate:u}),(m,h)=>(_(),F("table",{class:R([s(f).b(),s(f).is("range",s(l))]),cellspacing:"0",cellpadding:"0"},[m.hideHeader?re("v-if",!0):(_(),F("thead",{key:0},[z("tr",null,[(_(!0),F(He,null,mt(s(i),g=>(_(),F("th",{key:g,scope:"col"},ke(g),1))),128))])])),z("tbody",null,[(_(!0),F(He,null,mt(s(r),(g,b)=>(_(),F("tr",{key:b,class:R({[s(f).e("row")]:!0,[s(f).em("row","hide-border")]:b===0&&m.hideHeader})},[(_(!0),F(He,null,mt(g,(C,y)=>(_(),F("td",{key:y,class:R(p(C)),onClick:w=>s(c)(C)},[z("div",{class:R(s(v).b())},[oe(m.$slots,"date-cell",{data:s(d)(C)},()=>[z("span",null,ke(C.text),1)])],2)],10,["onClick"]))),128))],2))),128))])],2))}});var Xb=Te(bB,[["__file","date-table.vue"]]);const yB=(e,t)=>{const n=e.endOf("month"),o=t.startOf("month"),a=n.isSame(o,"week")?o.add(1,"week"):o;return[[e,n],[a.startOf("week"),t]]},wB=(e,t)=>{const n=e.endOf("month"),o=e.add(1,"month").startOf("month"),l=n.isSame(o,"week")?o.add(1,"week"):o,a=l.endOf("month"),r=t.startOf("month"),i=a.isSame(r,"week")?r.add(1,"week"):r;return[[e,n],[l.startOf("week"),a],[i.startOf("week"),t]]},CB=(e,t,n)=>{const{lang:o}=Ct(),l=L(),a=Qe().locale(o.value),r=S({get(){return e.modelValue?u.value:l.value},set(g){if(!g)return;l.value=g;const b=g.toDate();t(fn,b),t(Ge,b)}}),i=S(()=>{if(!e.range||!ye(e.range)||e.range.length!==2||e.range.some(y=>!Ta(y)))return[];const g=e.range.map(y=>Qe(y).locale(o.value)),[b,C]=g;return b.isAfter(C)?[]:b.isSame(C,"month")?p(b,C):b.add(1,"month").month()!==C.month()?[]:p(b,C)}),u=S(()=>e.modelValue?Qe(e.modelValue).locale(o.value):r.value||(i.value.length?i.value[0][0]:a)),c=S(()=>u.value.subtract(1,"month").date(1)),d=S(()=>u.value.add(1,"month").date(1)),f=S(()=>u.value.subtract(1,"year").date(1)),v=S(()=>u.value.add(1,"year").date(1)),p=(g,b)=>{const C=g.startOf("week"),y=b.endOf("week"),w=C.get("month"),E=y.get("month");return w===E?[[C,y]]:(w+1)%12===E?yB(C,y):w+2===E||(w+1)%11===E?wB(C,y):[]},m=g=>{r.value=g};return{calculateValidatedDateRange:p,date:u,realSelectedDay:r,pickDay:m,selectDate:g=>{const C={"prev-month":c.value,"next-month":d.value,"prev-year":f.value,"next-year":v.value,today:a}[g];C.isSame(u.value,"day")||m(C)},validatedRange:i}},SB=e=>ye(e)&&e.length===2&&e.every(t=>Ta(t)),EB=Se({modelValue:{type:Date},range:{type:Q(Array),validator:SB}}),kB={[Ge]:e=>Ta(e),[fn]:e=>Ta(e)},_B="ElCalendar",TB=q({name:_B}),OB=q({...TB,props:EB,emits:kB,setup(e,{expose:t,emit:n}){const o=e,l=be("calendar"),{calculateValidatedDateRange:a,date:r,pickDay:i,realSelectedDay:u,selectDate:c,validatedRange:d}=CB(o,n),{t:f}=Ct(),v=S(()=>{const p=`el.datepicker.month${r.value.format("M")}`;return`${r.value.year()} ${f("el.datepicker.year")} ${f(p)}`});return t({selectedDay:u,pickDay:i,selectDate:c,calculateValidatedDateRange:a}),(p,m)=>(_(),F("div",{class:R(s(l).b())},[z("div",{class:R(s(l).e("header"))},[oe(p.$slots,"header",{date:s(v)},()=>[z("div",{class:R(s(l).e("title"))},ke(s(v)),3),s(d).length===0?(_(),F("div",{key:0,class:R(s(l).e("button-group"))},[J(s(T2),null,{default:ee(()=>[J(s(Sn),{size:"small",onClick:h=>s(c)("prev-month")},{default:ee(()=>[gt(ke(s(f)("el.datepicker.prevMonth")),1)]),_:1},8,["onClick"]),J(s(Sn),{size:"small",onClick:h=>s(c)("today")},{default:ee(()=>[gt(ke(s(f)("el.datepicker.today")),1)]),_:1},8,["onClick"]),J(s(Sn),{size:"small",onClick:h=>s(c)("next-month")},{default:ee(()=>[gt(ke(s(f)("el.datepicker.nextMonth")),1)]),_:1},8,["onClick"])]),_:1})],2)):re("v-if",!0)])],2),s(d).length===0?(_(),F("div",{key:0,class:R(s(l).e("body"))},[J(Xb,{date:s(r),"selected-day":s(u),onPick:s(i)},fo({_:2},[p.$slots["date-cell"]?{name:"date-cell",fn:ee(h=>[oe(p.$slots,"date-cell",Jn(zo(h)))])}:void 0]),1032,["date","selected-day","onPick"])],2)):(_(),F("div",{key:1,class:R(s(l).e("body"))},[(_(!0),F(He,null,mt(s(d),(h,g)=>(_(),ie(Xb,{key:g,date:h[0],"selected-day":s(u),range:h,"hide-header":g!==0,onPick:s(i)},fo({_:2},[p.$slots["date-cell"]?{name:"date-cell",fn:ee(b=>[oe(p.$slots,"date-cell",Jn(zo(b)))])}:void 0]),1032,["date","selected-day","range","hide-header","onPick"]))),128))],2))],2))}});var $B=Te(OB,[["__file","calendar.vue"]]);const RB=Ze($B),NB=Se({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:Q([String,Object,Array]),default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),IB=q({name:"ElCard"}),PB=q({...IB,props:NB,setup(e){const t=xs("card"),n=be("card");return(o,l)=>{var a;return _(),F("div",{class:R([s(n).b(),s(n).is(`${o.shadow||((a=s(t))==null?void 0:a.shadow)||"always"}-shadow`)])},[o.$slots.header||o.header?(_(),F("div",{key:0,class:R([s(n).e("header"),o.headerClass])},[oe(o.$slots,"header",{},()=>[gt(ke(o.header),1)])],2)):re("v-if",!0),z("div",{class:R([s(n).e("body"),o.bodyClass]),style:We(o.bodyStyle)},[oe(o.$slots,"default")],6),o.$slots.footer||o.footer?(_(),F("div",{key:1,class:R([s(n).e("footer"),o.footerClass])},[oe(o.$slots,"footer",{},()=>[gt(ke(o.footer),1)])],2)):re("v-if",!0)],2)}}});var xB=Te(PB,[["__file","card.vue"]]);const MB=Ze(xB),AB=Se({initialIndex:{type:Number,default:0},height:{type:String,default:""},trigger:{type:String,values:["hover","click"],default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:{type:String,values:["","none","outside"],default:""},arrow:{type:String,values:["always","hover","never"],default:"hover"},type:{type:String,values:["","card"],default:""},cardScale:{type:Number,default:.83},loop:{type:Boolean,default:!0},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},pauseOnHover:{type:Boolean,default:!0},motionBlur:Boolean}),LB={change:(e,t)=>[e,t].every(je)},I2=Symbol("carouselContextKey"),qp="ElCarouselItem";var ko=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(ko||{});function Yp(e){return Vt(e)&&e.type===He}function DB(e){return Vt(e)&&e.type===on}function BB(e){return Vt(e)&&!Yp(e)&&!DB(e)}const FB=e=>{if(!Vt(e))return{};const t=e.props||{},n=(Vt(e.type)?e.type.props:void 0)||{},o={};return Object.keys(n).forEach(l=>{Ot(n[l],"default")&&(o[l]=n[l].default)}),Object.keys(t).forEach(l=>{o[Zn(l)]=t[l]}),o},VB=e=>{if(!ye(e)||e.length>1)throw new Error("expect to receive a single Vue element child");return e[0]},pl=e=>{const t=ye(e)?e:[e],n=[];return t.forEach(o=>{var l;ye(o)?n.push(...pl(o)):Vt(o)&&((l=o.component)!=null&&l.subTree)?n.push(o,...pl(o.component.subTree)):Vt(o)&&ye(o.children)?n.push(...pl(o.children)):Vt(o)&&o.shapeFlag===2?n.push(...pl(o.type())):n.push(o)}),n},HB=(e,t,n)=>pl(e.subTree).filter(a=>{var r;return Vt(a)&&((r=a.type)==null?void 0:r.name)===t&&!!a.component}).map(a=>a.component.uid).map(a=>n[a]).filter(a=>!!a),nf=(e,t)=>{const n=Wt({}),o=Wt([]),l=new WeakMap,a=d=>{n.value[d.uid]=d,sc(n),rt(()=>{const f=d.getVnode().el,v=f.parentNode;if(!l.has(v)){l.set(v,[]);const p=v.insertBefore.bind(v);v.insertBefore=(m,h)=>(l.get(v).some(b=>m===b||h===b)&&sc(n),p(m,h))}l.get(v).push(f)})},r=d=>{delete n.value[d.uid],sc(n);const f=d.getVnode().el,v=f.parentNode,p=l.get(v),m=p.indexOf(f);p.splice(m,1)},i=()=>{o.value=HB(e,t,n.value)},u=d=>d.render();return{children:o,addChild:a,removeChild:r,ChildrenSorter:q({setup(d,{slots:f}){return()=>(i(),f.default?Ue(u,{render:f.default}):null)}})}},Jb=300,zB=(e,t,n)=>{const{children:o,addChild:l,removeChild:a,ChildrenSorter:r}=nf(it(),qp),i=cn(),u=L(-1),c=L(null),d=L(!1),f=L(),v=L(0),p=L(!0),m=S(()=>e.arrow!=="never"&&!s(b)),h=S(()=>o.value.some(le=>le.props.label.toString().length>0)),g=S(()=>e.type==="card"),b=S(()=>e.direction==="vertical"),C=S(()=>e.height!=="auto"?{height:e.height}:{height:`${v.value}px`,overflow:"hidden"}),y=er(le=>{N(le)},Jb,{trailing:!0}),w=er(le=>{A(le)},Jb),E=le=>p.value?u.value<=1?le<=1:le>1:!0;function k(){c.value&&(clearInterval(c.value),c.value=null)}function T(){e.interval<=0||!e.autoplay||c.value||(c.value=setInterval(()=>x(),e.interval))}const x=()=>{u.valuese.props.name===le);G.length>0&&(le=o.value.indexOf(G[0]))}if(le=Number(le),Number.isNaN(le)||le!==Math.floor(le))return;const ce=o.value.length,U=u.value;le<0?u.value=e.loop?ce-1:0:le>=ce?u.value=e.loop?0:ce-1:u.value=le,U===u.value&&O(U),V()}function O(le){o.value.forEach((ce,U)=>{ce.translateItem(U,u.value,le)})}function I(le,ce){var U,G,se,ve;const ae=s(o),j=ae.length;if(j===0||!le.states.inStage)return!1;const ne=ce+1,ue=ce-1,de=j-1,Ce=ae[de].states.active,fe=ae[0].states.active,he=(G=(U=ae[ne])==null?void 0:U.states)==null?void 0:G.active,Ee=(ve=(se=ae[ue])==null?void 0:se.states)==null?void 0:ve.active;return ce===de&&fe||he?"left":ce===0&&Ce||Ee?"right":!1}function P(){d.value=!0,e.pauseOnHover&&k()}function K(){d.value=!1,T()}function B(le){s(b)||o.value.forEach((ce,U)=>{le===I(ce,U)&&(ce.states.hover=!0)})}function Y(){s(b)||o.value.forEach(le=>{le.states.hover=!1})}function M(le){u.value=le}function A(le){e.trigger==="hover"&&le!==u.value&&(u.value=le)}function $(){N(u.value-1)}function D(){N(u.value+1)}function V(){k(),e.pauseOnHover||T()}function H(le){e.height==="auto"&&(v.value=le)}function W(){var le;const ce=(le=i.default)==null?void 0:le.call(i);if(!ce)return null;const G=pl(ce).filter(se=>Vt(se)&&se.type.name===qp);return G?.length===2&&e.loop&&!g.value?(p.value=!0,G):(p.value=!1,null)}pe(()=>u.value,(le,ce)=>{O(ce),p.value&&(le=le%2,ce=ce%2),ce>-1&&t(ht,le,ce)});const X=S({get:()=>p.value?u.value%2:u.value,set:le=>u.value=le});pe(()=>e.autoplay,le=>{le?T():k()}),pe(()=>e.loop,()=>{N(u.value)}),pe(()=>e.interval,()=>{V()});const te=Wt();return rt(()=>{pe(()=>o.value,()=>{o.value.length>0&&N(e.initialIndex)},{immediate:!0}),te.value=qt(f.value,()=>{O()}),T()}),Rt(()=>{k(),f.value&&te.value&&te.value.stop()}),ut(I2,{root:f,isCardType:g,isVertical:b,items:o,loop:e.loop,cardScale:e.cardScale,addItem:l,removeItem:a,setActiveItem:N,setContainerHeight:H}),{root:f,activeIndex:u,exposeActiveIndex:X,arrowDisplay:m,hasLabel:h,hover:d,isCardType:g,items:o,isVertical:b,containerStyle:C,isItemsTwoLength:p,handleButtonEnter:B,handleButtonLeave:Y,handleIndicatorClick:M,handleMouseEnter:P,handleMouseLeave:K,setActiveItem:N,prev:$,next:D,PlaceholderItem:W,isTwoLengthShow:E,ItemsSorter:r,throttledArrowClick:y,throttledIndicatorHover:w}},KB="ElCarousel",WB=q({name:KB}),jB=q({...WB,props:AB,emits:LB,setup(e,{expose:t,emit:n}){const o=e,{root:l,activeIndex:a,exposeActiveIndex:r,arrowDisplay:i,hasLabel:u,hover:c,isCardType:d,items:f,isVertical:v,containerStyle:p,handleButtonEnter:m,handleButtonLeave:h,handleIndicatorClick:g,handleMouseEnter:b,handleMouseLeave:C,setActiveItem:y,prev:w,next:E,PlaceholderItem:k,isTwoLengthShow:T,ItemsSorter:x,throttledArrowClick:N,throttledIndicatorHover:O}=zB(o,n),I=be("carousel"),{t:P}=Ct(),K=S(()=>{const A=[I.b(),I.m(o.direction)];return s(d)&&A.push(I.m("card")),A}),B=S(()=>{const A=[I.e("indicators"),I.em("indicators",o.direction)];return s(u)&&A.push(I.em("indicators","labels")),o.indicatorPosition==="outside"&&A.push(I.em("indicators","outside")),s(v)&&A.push(I.em("indicators","right")),A});function Y(A){if(!o.motionBlur)return;const $=s(v)?`${I.namespace.value}-transitioning-vertical`:`${I.namespace.value}-transitioning`;A.currentTarget.classList.add($)}function M(A){if(!o.motionBlur)return;const $=s(v)?`${I.namespace.value}-transitioning-vertical`:`${I.namespace.value}-transitioning`;A.currentTarget.classList.remove($)}return t({activeIndex:r,setActiveItem:y,prev:w,next:E}),(A,$)=>(_(),F("div",{ref_key:"root",ref:l,class:R(s(K)),onMouseenter:qe(s(b),["stop"]),onMouseleave:qe(s(C),["stop"])},[s(i)?(_(),ie(kn,{key:0,name:"carousel-arrow-left",persisted:""},{default:ee(()=>[nt(z("button",{type:"button",class:R([s(I).e("arrow"),s(I).em("arrow","left")]),"aria-label":s(P)("el.carousel.leftArrow"),onMouseenter:D=>s(m)("left"),onMouseleave:s(h),onClick:qe(D=>s(N)(s(a)-1),["stop"])},[J(s(Be),null,{default:ee(()=>[J(s(jl))]),_:1})],42,["aria-label","onMouseenter","onMouseleave","onClick"]),[[kt,(A.arrow==="always"||s(c))&&(o.loop||s(a)>0)]])]),_:1})):re("v-if",!0),s(i)?(_(),ie(kn,{key:1,name:"carousel-arrow-right",persisted:""},{default:ee(()=>[nt(z("button",{type:"button",class:R([s(I).e("arrow"),s(I).em("arrow","right")]),"aria-label":s(P)("el.carousel.rightArrow"),onMouseenter:D=>s(m)("right"),onMouseleave:s(h),onClick:qe(D=>s(N)(s(a)+1),["stop"])},[J(s(Be),null,{default:ee(()=>[J(s(jn))]),_:1})],42,["aria-label","onMouseenter","onMouseleave","onClick"]),[[kt,(A.arrow==="always"||s(c))&&(o.loop||s(a)[A.indicatorPosition!=="none"?(_(),F("ul",{key:0,class:R(s(B))},[(_(!0),F(He,null,mt(s(f),(D,V)=>nt((_(),F("li",{key:V,class:R([s(I).e("indicator"),s(I).em("indicator",A.direction),s(I).is("active",V===s(a))]),onMouseenter:H=>s(O)(V),onClick:qe(H=>s(g)(V),["stop"])},[z("button",{class:R(s(I).e("button")),"aria-label":s(P)("el.carousel.indicator",{index:V+1})},[s(u)?(_(),F("span",{key:0},ke(D.props.label),1)):re("v-if",!0)],10,["aria-label"])],42,["onMouseenter","onClick"])),[[kt,s(T)(V)]])),128))],2)):re("v-if",!0)]),_:1}),o.motionBlur?(_(),F("svg",{key:2,xmlns:"http://www.w3.org/2000/svg",version:"1.1",style:{display:"none"}},[z("defs",null,[z("filter",{id:"elCarouselHorizontal"},[z("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"12,0"})]),z("filter",{id:"elCarouselVertical"},[z("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"0,10"})])])])):re("v-if",!0)],42,["onMouseenter","onMouseleave"]))}});var UB=Te(jB,[["__file","carousel.vue"]]);const qB=Se({name:{type:String,default:""},label:{type:[String,Number],default:""}}),YB=e=>{const t=Pe(I2),n=it(),o=L(),l=L(!1),a=L(0),r=L(1),i=L(!1),u=L(!1),c=L(!1),d=L(!1),{isCardType:f,isVertical:v,cardScale:p}=t;function m(w,E,k){const T=k-1,x=E-1,N=E+1,O=k/2;return E===0&&w===T?-1:E===T&&w===0?k:w=O?k+1:w>N&&w-E>=O?-2:w}function h(w,E){var k,T;const x=s(v)?((k=t.root.value)==null?void 0:k.offsetHeight)||0:((T=t.root.value)==null?void 0:T.offsetWidth)||0;return c.value?x*((2-p)*(w-E)+1)/4:w{var T;const x=s(f),N=(T=t.items.value.length)!=null?T:Number.NaN,O=w===E;!x&&!yt(k)&&(d.value=O||w===k),!O&&N>2&&t.loop&&(w=m(w,E,N));const I=s(v);i.value=O,x?(c.value=Math.round(Math.abs(w-E))<=1,a.value=h(w,E),r.value=s(i)?1:p):a.value=g(w,E,I),u.value=!0,O&&o.value&&t.setContainerHeight(o.value.offsetHeight)};function C(){if(t&&s(f)){const w=t.items.value.findIndex(({uid:E})=>E===n.uid);t.setActiveItem(w)}}const y={props:e,states:_t({hover:l,translate:a,scale:r,active:i,ready:u,inStage:c,animating:d}),uid:n.uid,getVnode:()=>n.vnode,translateItem:b};return t.addItem(y),Rt(()=>{t.removeItem(y)}),{carouselItemRef:o,active:i,animating:d,hover:l,inStage:c,isVertical:v,translate:a,isCardType:f,scale:r,ready:u,handleItemClick:C}},GB=q({name:qp}),XB=q({...GB,props:qB,setup(e){const t=e,n=be("carousel"),{carouselItemRef:o,active:l,animating:a,hover:r,inStage:i,isVertical:u,translate:c,isCardType:d,scale:f,ready:v,handleItemClick:p}=YB(t),m=S(()=>[n.e("item"),n.is("active",l.value),n.is("in-stage",i.value),n.is("hover",r.value),n.is("animating",a.value),{[n.em("item","card")]:d.value,[n.em("item","card-vertical")]:d.value&&u.value}]),h=S(()=>{const b=`${`translate${s(u)?"Y":"X"}`}(${s(c)}px)`,C=`scale(${s(f)})`;return{transform:[b,C].join(" ")}});return(g,b)=>nt((_(),F("div",{ref_key:"carouselItemRef",ref:o,class:R(s(m)),style:We(s(h)),onClick:s(p)},[s(d)?nt((_(),F("div",{key:0,class:R(s(n).e("mask"))},null,2)),[[kt,!s(l)]]):re("v-if",!0),oe(g.$slots,"default")],14,["onClick"])),[[kt,s(v)]])}});var P2=Te(XB,[["__file","carousel-item.vue"]]);const JB=Ze(UB,{CarouselItem:P2}),ZB=Xt(P2),x2={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:pn,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},...Pn(["ariaControls"])},M2={[Ge]:e=>Fe(e)||je(e)||Mt(e),change:e=>Fe(e)||je(e)||Mt(e)},As=Symbol("checkboxGroupContextKey"),QB=({model:e,isChecked:t})=>{const n=Pe(As,void 0),o=S(()=>{var a,r;const i=(a=n?.max)==null?void 0:a.value,u=(r=n?.min)==null?void 0:r.value;return!yt(i)&&e.value.length>=i&&!t.value||!yt(u)&&e.value.length<=u&&t.value});return{isDisabled:bn(S(()=>n?.disabled.value||o.value)),isLimitDisabled:o}},eF=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:l,isLabeledByFormItem:a})=>{const r=Pe(As,void 0),{formItem:i}=$n(),{emit:u}=it();function c(m){var h,g,b,C;return[!0,e.trueValue,e.trueLabel].includes(m)?(g=(h=e.trueValue)!=null?h:e.trueLabel)!=null?g:!0:(C=(b=e.falseValue)!=null?b:e.falseLabel)!=null?C:!1}function d(m,h){u(ht,c(m),h)}function f(m){if(n.value)return;const h=m.target;u(ht,c(h.checked),m)}async function v(m){n.value||!o.value&&!l.value&&a.value&&(m.composedPath().some(b=>b.tagName==="LABEL")||(t.value=c([!1,e.falseValue,e.falseLabel].includes(t.value)),await Le(),d(t.value,m)))}const p=S(()=>r?.validateEvent||e.validateEvent);return pe(()=>e.modelValue,()=>{p.value&&i?.validate("change").catch(m=>void 0)}),{handleChange:f,onClickRoot:v}},tF=e=>{const t=L(!1),{emit:n}=it(),o=Pe(As,void 0),l=S(()=>yt(o)===!1),a=L(!1),r=S({get(){var i,u;return l.value?(i=o?.modelValue)==null?void 0:i.value:(u=e.modelValue)!=null?u:t.value},set(i){var u,c;l.value&&ye(i)?(a.value=((u=o?.max)==null?void 0:u.value)!==void 0&&i.length>o?.max.value&&i.length>r.value.length,a.value===!1&&((c=o?.changeEvent)==null||c.call(o,i))):(n(Ge,i),t.value=i)}});return{model:r,isGroup:l,isLimitExceeded:a}},nF=(e,t,{model:n})=>{const o=Pe(As,void 0),l=L(!1),a=S(()=>ro(e.value)?e.label:e.value),r=S(()=>{const d=n.value;return Mt(d)?d:ye(d)?et(a.value)?d.map(Ft).some(f=>Zt(f,a.value)):d.map(Ft).includes(a.value):d!=null?d===e.trueValue||d===e.trueLabel:!!d}),i=un(S(()=>{var d;return(d=o?.size)==null?void 0:d.value}),{prop:!0}),u=un(S(()=>{var d;return(d=o?.size)==null?void 0:d.value})),c=S(()=>!!t.default||!ro(a.value));return{checkboxButtonSize:i,isChecked:r,isFocused:l,checkboxSize:u,hasOwnLabel:c,actualValue:a}},A2=(e,t)=>{const{formItem:n}=$n(),{model:o,isGroup:l,isLimitExceeded:a}=tF(e),{isFocused:r,isChecked:i,checkboxButtonSize:u,checkboxSize:c,hasOwnLabel:d,actualValue:f}=nF(e,t,{model:o}),{isDisabled:v}=QB({model:o,isChecked:i}),{inputId:p,isLabeledByFormItem:m}=Co(e,{formItemContext:n,disableIdGeneration:d,disableIdManagement:l}),{handleChange:h,onClickRoot:g}=eF(e,{model:o,isLimitExceeded:a,hasOwnLabel:d,isDisabled:v,isLabeledByFormItem:m});return(()=>{function C(){var y,w;ye(o.value)&&!o.value.includes(f.value)?o.value.push(f.value):o.value=(w=(y=e.trueValue)!=null?y:e.trueLabel)!=null?w:!0}e.checked&&C()})(),Vl({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},S(()=>l.value&&ro(e.value))),Vl({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},S(()=>!!e.trueLabel)),Vl({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},S(()=>!!e.falseLabel)),{inputId:p,isLabeledByFormItem:m,isChecked:i,isDisabled:v,isFocused:r,checkboxButtonSize:u,checkboxSize:c,hasOwnLabel:d,model:o,actualValue:f,handleChange:h,onClickRoot:g}},oF=q({name:"ElCheckbox"}),lF=q({...oF,props:x2,emits:M2,setup(e){const t=e,n=cn(),{inputId:o,isLabeledByFormItem:l,isChecked:a,isDisabled:r,isFocused:i,checkboxSize:u,hasOwnLabel:c,model:d,actualValue:f,handleChange:v,onClickRoot:p}=A2(t,n),m=S(()=>{var C,y,w,E;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":(y=(C=t.trueValue)!=null?C:t.trueLabel)!=null?y:!0,"false-value":(E=(w=t.falseValue)!=null?w:t.falseLabel)!=null?E:!1}:{value:f.value}}),h=be("checkbox"),g=S(()=>[h.b(),h.m(u.value),h.is("disabled",r.value),h.is("bordered",t.border),h.is("checked",a.value)]),b=S(()=>[h.e("input"),h.is("disabled",r.value),h.is("checked",a.value),h.is("indeterminate",t.indeterminate),h.is("focus",i.value)]);return(C,y)=>(_(),ie(at(!s(c)&&s(l)?"span":"label"),{class:R(s(g)),"aria-controls":C.indeterminate?C.ariaControls:null,onClick:s(p)},{default:ee(()=>[z("span",{class:R(s(b))},[nt(z("input",ot({id:s(o),"onUpdate:modelValue":w=>Kt(d)?d.value=w:null,class:s(h).e("original"),type:"checkbox",indeterminate:C.indeterminate,name:C.name,tabindex:C.tabindex,disabled:s(r)},s(m),{onChange:s(v),onFocus:w=>i.value=!0,onBlur:w=>i.value=!1,onClick:qe(()=>{},["stop"])}),null,16,["id","onUpdate:modelValue","indeterminate","name","tabindex","disabled","onChange","onFocus","onBlur","onClick"]),[[sC,s(d)]]),z("span",{class:R(s(h).e("inner"))},null,2)],2),s(c)?(_(),F("span",{key:0,class:R(s(h).e("label"))},[oe(C.$slots,"default"),C.$slots.default?re("v-if",!0):(_(),F(He,{key:0},[gt(ke(C.label),1)],64))],2)):re("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var L2=Te(lF,[["__file","checkbox.vue"]]);const aF=q({name:"ElCheckboxButton"}),rF=q({...aF,props:x2,emits:M2,setup(e){const t=e,n=cn(),{isFocused:o,isChecked:l,isDisabled:a,checkboxButtonSize:r,model:i,actualValue:u,handleChange:c}=A2(t,n),d=S(()=>{var h,g,b,C;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":(g=(h=t.trueValue)!=null?h:t.trueLabel)!=null?g:!0,"false-value":(C=(b=t.falseValue)!=null?b:t.falseLabel)!=null?C:!1}:{value:u.value}}),f=Pe(As,void 0),v=be("checkbox"),p=S(()=>{var h,g,b,C;const y=(g=(h=f?.fill)==null?void 0:h.value)!=null?g:"";return{backgroundColor:y,borderColor:y,color:(C=(b=f?.textColor)==null?void 0:b.value)!=null?C:"",boxShadow:y?`-1px 0 0 0 ${y}`:void 0}}),m=S(()=>[v.b("button"),v.bm("button",r.value),v.is("disabled",a.value),v.is("checked",l.value),v.is("focus",o.value)]);return(h,g)=>(_(),F("label",{class:R(s(m))},[nt(z("input",ot({"onUpdate:modelValue":b=>Kt(i)?i.value=b:null,class:s(v).be("button","original"),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:s(a)},s(d),{onChange:s(c),onFocus:b=>o.value=!0,onBlur:b=>o.value=!1,onClick:qe(()=>{},["stop"])}),null,16,["onUpdate:modelValue","name","tabindex","disabled","onChange","onFocus","onBlur","onClick"]),[[sC,s(i)]]),h.$slots.default||h.label?(_(),F("span",{key:0,class:R(s(v).be("button","inner")),style:We(s(l)?s(p):void 0)},[oe(h.$slots,"default",{},()=>[gt(ke(h.label),1)])],6)):re("v-if",!0)],2))}});var D2=Te(rF,[["__file","checkbox-button.vue"]]);const sF=Se({modelValue:{type:Q(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:pn,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:Q(Array)},props:{type:Q(Object),default:()=>B2},...Pn(["ariaLabel"])}),iF={[Ge]:e=>ye(e),change:e=>ye(e)},B2={label:"label",value:"value",disabled:"disabled"},uF=q({name:"ElCheckboxGroup"}),cF=q({...uF,props:sF,emits:iF,setup(e,{emit:t}){const n=e,o=be("checkbox"),{formItem:l}=$n(),{inputId:a,isLabeledByFormItem:r}=Co(n,{formItemContext:l}),i=async f=>{t(Ge,f),await Le(),t(ht,f)},u=S({get(){return n.modelValue},set(f){i(f)}}),c=S(()=>({...B2,...n.props})),d=f=>{const v={label:f[c.value.label],value:f[c.value.value],disabled:f[c.value.disabled]};return{...f,...v}};return ut(As,{...mo(mn(n),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:u,changeEvent:i}),pe(()=>n.modelValue,(f,v)=>{n.validateEvent&&!Zt(f,v)&&l?.validate("change").catch(p=>void 0)}),(f,v)=>{var p;return _(),ie(at(f.tag),{id:s(a),class:R(s(o).b("group")),role:"group","aria-label":s(r)?void 0:f.ariaLabel||"checkbox-group","aria-labelledby":s(r)?(p=s(l))==null?void 0:p.labelId:void 0},{default:ee(()=>[oe(f.$slots,"default",{},()=>[(_(!0),F(He,null,mt(n.options,(m,h)=>(_(),ie(L2,ot({key:h},d(m)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var F2=Te(cF,[["__file","checkbox-group.vue"]]);const Mo=Ze(L2,{CheckboxButton:D2,CheckboxGroup:F2}),dF=Xt(D2),V2=Xt(F2),H2=Se({modelValue:{type:[String,Number,Boolean],default:void 0},size:pn,disabled:Boolean,label:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],default:void 0},name:{type:String,default:void 0}}),fF=Se({...H2,border:Boolean}),z2={[Ge]:e=>Fe(e)||je(e)||Mt(e),[ht]:e=>Fe(e)||je(e)||Mt(e)},K2=Symbol("radioGroupKey"),W2=(e,t)=>{const n=L(),o=Pe(K2,void 0),l=S(()=>!!o),a=S(()=>ro(e.value)?e.label:e.value),r=S({get(){return l.value?o.modelValue:e.modelValue},set(f){l.value?o.changeEvent(f):t&&t(Ge,f),n.value.checked=e.modelValue===a.value}}),i=un(S(()=>o?.size)),u=bn(S(()=>o?.disabled)),c=L(!1),d=S(()=>u.value||l.value&&r.value!==a.value?-1:0);return Vl({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-radio",ref:"https://element-plus.org/en-US/component/radio.html"},S(()=>l.value&&ro(e.value))),{radioRef:n,isGroup:l,radioGroup:o,focus:c,size:i,disabled:u,tabIndex:d,modelValue:r,actualValue:a}},pF=q({name:"ElRadio"}),vF=q({...pF,props:fF,emits:z2,setup(e,{emit:t}){const n=e,o=be("radio"),{radioRef:l,radioGroup:a,focus:r,size:i,disabled:u,modelValue:c,actualValue:d}=W2(n,t);function f(){Le(()=>t(ht,c.value))}return(v,p)=>{var m;return _(),F("label",{class:R([s(o).b(),s(o).is("disabled",s(u)),s(o).is("focus",s(r)),s(o).is("bordered",v.border),s(o).is("checked",s(c)===s(d)),s(o).m(s(i))])},[z("span",{class:R([s(o).e("input"),s(o).is("disabled",s(u)),s(o).is("checked",s(c)===s(d))])},[nt(z("input",{ref_key:"radioRef",ref:l,"onUpdate:modelValue":h=>Kt(c)?c.value=h:null,class:R(s(o).e("original")),value:s(d),name:v.name||((m=s(a))==null?void 0:m.name),disabled:s(u),checked:s(c)===s(d),type:"radio",onFocus:h=>r.value=!0,onBlur:h=>r.value=!1,onChange:f,onClick:qe(()=>{},["stop"])},null,42,["onUpdate:modelValue","value","name","disabled","checked","onFocus","onBlur","onClick"]),[[iC,s(c)]]),z("span",{class:R(s(o).e("inner"))},null,2)],2),z("span",{class:R(s(o).e("label")),onKeydown:qe(()=>{},["stop"])},[oe(v.$slots,"default",{},()=>[gt(ke(v.label),1)])],42,["onKeydown"])],2)}}});var j2=Te(vF,[["__file","radio.vue"]]);const hF=Se({...H2}),mF=q({name:"ElRadioButton"}),gF=q({...mF,props:hF,setup(e){const t=e,n=be("radio"),{radioRef:o,focus:l,size:a,disabled:r,modelValue:i,radioGroup:u,actualValue:c}=W2(t),d=S(()=>({backgroundColor:u?.fill||"",borderColor:u?.fill||"",boxShadow:u?.fill?`-1px 0 0 0 ${u.fill}`:"",color:u?.textColor||""}));return(f,v)=>{var p;return _(),F("label",{class:R([s(n).b("button"),s(n).is("active",s(i)===s(c)),s(n).is("disabled",s(r)),s(n).is("focus",s(l)),s(n).bm("button",s(a))])},[nt(z("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":m=>Kt(i)?i.value=m:null,class:R(s(n).be("button","original-radio")),value:s(c),type:"radio",name:f.name||((p=s(u))==null?void 0:p.name),disabled:s(r),onFocus:m=>l.value=!0,onBlur:m=>l.value=!1,onClick:qe(()=>{},["stop"])},null,42,["onUpdate:modelValue","value","name","disabled","onFocus","onBlur","onClick"]),[[iC,s(i)]]),z("span",{class:R(s(n).be("button","inner")),style:We(s(i)===s(c)?s(d):{}),onKeydown:qe(()=>{},["stop"])},[oe(f.$slots,"default",{},()=>[gt(ke(f.label),1)])],46,["onKeydown"])],2)}}});var U2=Te(gF,[["__file","radio-button.vue"]]);const bF=Se({id:{type:String,default:void 0},size:pn,disabled:Boolean,modelValue:{type:[String,Number,Boolean],default:void 0},fill:{type:String,default:""},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0},options:{type:Q(Array)},props:{type:Q(Object),default:()=>q2},...Pn(["ariaLabel"])}),yF=z2,q2={label:"label",value:"value",disabled:"disabled"},wF=q({name:"ElRadioGroup"}),CF=q({...wF,props:bF,emits:yF,setup(e,{emit:t}){const n=e,o=be("radio"),l=Tn(),a=L(),{formItem:r}=$n(),{inputId:i,isLabeledByFormItem:u}=Co(n,{formItemContext:r}),c=p=>{t(Ge,p),Le(()=>t(ht,p))};rt(()=>{const p=a.value.querySelectorAll("[type=radio]"),m=p[0];!Array.from(p).some(h=>h.checked)&&m&&(m.tabIndex=0)});const d=S(()=>n.name||l.value),f=S(()=>({...q2,...n.props})),v=p=>{const m={label:p[f.value.label],value:p[f.value.value],disabled:p[f.value.disabled]};return{...p,...m}};return ut(K2,_t({...mn(n),changeEvent:c,name:d})),pe(()=>n.modelValue,(p,m)=>{n.validateEvent&&!Zt(p,m)&&r?.validate("change").catch(h=>void 0)}),(p,m)=>(_(),F("div",{id:s(i),ref_key:"radioGroupRef",ref:a,class:R(s(o).b("group")),role:"radiogroup","aria-label":s(u)?void 0:p.ariaLabel||"radio-group","aria-labelledby":s(u)?s(r).labelId:void 0},[oe(p.$slots,"default",{},()=>[(_(!0),F(He,null,mt(n.options,(h,g)=>(_(),ie(j2,ot({key:g},v(h)),null,16))),128))])],10,["id","aria-label","aria-labelledby"]))}});var Y2=Te(CF,[["__file","radio-group.vue"]]);const G2=Ze(j2,{RadioButton:U2,RadioGroup:Y2}),SF=Xt(Y2),EF=Xt(U2),of=Symbol();function kF(e){return!!(ye(e)?e.every(({type:t})=>t===on):e?.type===on)}var _F=q({name:"NodeContent",props:{node:{type:Object,required:!0}},setup(e){const t=be("cascader-node"),{renderLabelFn:n}=Pe(of),{node:o}=e,{data:l,label:a}=o,r=()=>{const i=n?.({node:o,data:l});return kF(i)?a:i??a};return()=>J("span",{class:t.e("label")},[r()])}});const TF=q({name:"ElCascaderNode"}),OF=q({...TF,props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(e,{emit:t}){const n=e,o=Pe(of),l=be("cascader-node"),a=S(()=>o.isHoverMenu),r=S(()=>o.config.multiple),i=S(()=>o.config.checkStrictly),u=S(()=>o.config.showPrefix),c=S(()=>{var x;return(x=o.checkedNodes[0])==null?void 0:x.uid}),d=S(()=>n.node.isDisabled),f=S(()=>n.node.isLeaf),v=S(()=>i.value&&!f.value||!d.value),p=S(()=>h(o.expandingNode)),m=S(()=>i.value&&o.checkedNodes.some(h)),h=x=>{var N;const{level:O,uid:I}=n.node;return((N=x?.pathNodes[O-1])==null?void 0:N.uid)===I},g=()=>{p.value||o.expandNode(n.node)},b=x=>{const{node:N}=n;x!==N.checked&&o.handleCheckChange(N,x)},C=()=>{o.lazyLoad(n.node,()=>{f.value||g()})},y=x=>{a.value&&(w(),!f.value&&t("expand",x))},w=()=>{const{node:x}=n;!v.value||x.loading||(x.loaded?g():C())},E=()=>{f.value&&!d.value&&!i.value&&!r.value?T(!0):(o.config.checkOnClickNode&&(r.value||i.value)||f.value&&o.config.checkOnClickLeaf)&&!d.value?k(!n.node.checked):a.value||w()},k=x=>{i.value?(b(x),n.node.loaded&&g()):T(x)},T=x=>{n.node.loaded?(b(x),!i.value&&g()):C()};return(x,N)=>(_(),F("li",{id:`${e.menuId}-${e.node.uid}`,role:"menuitem","aria-haspopup":!s(f),"aria-owns":s(f)?void 0:e.menuId,"aria-expanded":s(p),tabindex:s(v)?-1:void 0,class:R([s(l).b(),s(l).is("selectable",s(i)),s(l).is("active",e.node.checked),s(l).is("disabled",!s(v)),s(p)&&"in-active-path",s(m)&&"in-checked-path"]),onMouseenter:y,onFocus:y,onClick:E},[re(" prefix "),s(r)&&s(u)?(_(),ie(s(Mo),{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:s(d),onClick:qe(()=>{},["stop"]),"onUpdate:modelValue":k},null,8,["model-value","indeterminate","disabled","onClick"])):s(i)&&s(u)?(_(),ie(s(G2),{key:1,"model-value":s(c),label:e.node.uid,disabled:s(d),"onUpdate:modelValue":k,onClick:qe(()=>{},["stop"])},{default:ee(()=>[re(` Add an empty element to avoid render label, do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485 @@ -27,4 +27,4 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ReportPage-DxDL6AXa. `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const o=new this(t);return n.forEach(l=>o.set(l)),o}static accessor(t){const o=(this[Sw]=this[Sw]={accessors:{}}).accessors,l=this.prototype;function a(r){const i=Zs(r);o[i]||(one(l,r),o[i]=!0)}return Ie.isArray(t)?t.forEach(a):a(t),this}};co.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Ie.reduceDescriptors(co.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(o){this[n]=o}}});Ie.freezeMethods(co);function hp(e,t){const n=this||Iu,o=t||n,l=co.from(o.headers);let a=o.data;return Ie.forEach(e,function(i){a=i.call(n,a,l.normalize(),t?t.status:void 0)}),l.normalize(),a}function sT(e){return!!(e&&e.__CANCEL__)}function Vs(e,t,n){xt.call(this,e??"canceled",xt.ERR_CANCELED,t,n),this.name="CanceledError"}Ie.inherits(Vs,xt,{__CANCEL__:!0});function iT(e,t,n){const o=n.config.validateStatus;!n.status||!o||o(n.status)?e(n):t(new xt("Request failed with status code "+n.status,[xt.ERR_BAD_REQUEST,xt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function lne(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function ane(e,t){e=e||10;const n=new Array(e),o=new Array(e);let l=0,a=0,r;return t=t!==void 0?t:1e3,function(u){const c=Date.now(),d=o[a];r||(r=c),n[l]=u,o[l]=c;let f=a,v=0;for(;f!==l;)v+=n[f++],f=f%e;if(l=(l+1)%e,l===a&&(a=(a+1)%e),c-r{n=d,l=null,a&&(clearTimeout(a),a=null),e(...c)};return[(...c)=>{const d=Date.now(),f=d-n;f>=o?r(c,d):(l=c,a||(a=setTimeout(()=>{a=null,r(l)},o-f)))},()=>l&&r(l)]}const Cd=(e,t,n=3)=>{let o=0;const l=ane(50,250);return rne(a=>{const r=a.loaded,i=a.lengthComputable?a.total:void 0,u=r-o,c=l(u),d=r<=i;o=r;const f={loaded:r,total:i,progress:i?r/i:void 0,bytes:u,rate:c||void 0,estimated:c&&i&&d?(i-r)/c:void 0,event:a,lengthComputable:i!=null,[t?"download":"upload"]:!0};e(f)},n)},Ew=(e,t)=>{const n=e!=null;return[o=>t[0]({lengthComputable:n,total:e,loaded:o}),t[1]]},kw=e=>(...t)=>Ie.asap(()=>e(...t)),sne=Hn.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Hn.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Hn.origin),Hn.navigator&&/(msie|trident)/i.test(Hn.navigator.userAgent)):()=>!0,ine=Hn.hasStandardBrowserEnv?{write(e,t,n,o,l,a,r){if(typeof document>"u")return;const i=[`${e}=${encodeURIComponent(t)}`];Ie.isNumber(n)&&i.push(`expires=${new Date(n).toUTCString()}`),Ie.isString(o)&&i.push(`path=${o}`),Ie.isString(l)&&i.push(`domain=${l}`),a===!0&&i.push("secure"),Ie.isString(r)&&i.push(`SameSite=${r}`),document.cookie=i.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function une(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function cne(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function uT(e,t,n){let o=!une(t);return e&&(o||n==!1)?cne(e,t):t}const _w=e=>e instanceof co?{...e}:e;function gr(e,t){t=t||{};const n={};function o(c,d,f,v){return Ie.isPlainObject(c)&&Ie.isPlainObject(d)?Ie.merge.call({caseless:v},c,d):Ie.isPlainObject(d)?Ie.merge({},d):Ie.isArray(d)?d.slice():d}function l(c,d,f,v){if(Ie.isUndefined(d)){if(!Ie.isUndefined(c))return o(void 0,c,f,v)}else return o(c,d,f,v)}function a(c,d){if(!Ie.isUndefined(d))return o(void 0,d)}function r(c,d){if(Ie.isUndefined(d)){if(!Ie.isUndefined(c))return o(void 0,c)}else return o(void 0,d)}function i(c,d,f){if(f in t)return o(c,d);if(f in e)return o(void 0,c)}const u={url:a,method:a,data:a,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:i,headers:(c,d,f)=>l(_w(c),_w(d),f,!0)};return Ie.forEach(Object.keys({...e,...t}),function(d){const f=u[d]||l,v=f(e[d],t[d],d);Ie.isUndefined(v)&&f!==i||(n[d]=v)}),n}const cT=e=>{const t=gr({},e);let{data:n,withXSRFToken:o,xsrfHeaderName:l,xsrfCookieName:a,headers:r,auth:i}=t;if(t.headers=r=co.from(r),t.url=lT(uT(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),i&&r.set("Authorization","Basic "+btoa((i.username||"")+":"+(i.password?unescape(encodeURIComponent(i.password)):""))),Ie.isFormData(n)){if(Hn.hasStandardBrowserEnv||Hn.hasStandardBrowserWebWorkerEnv)r.setContentType(void 0);else if(Ie.isFunction(n.getHeaders)){const u=n.getHeaders(),c=["content-type","content-length"];Object.entries(u).forEach(([d,f])=>{c.includes(d.toLowerCase())&&r.set(d,f)})}}if(Hn.hasStandardBrowserEnv&&(o&&Ie.isFunction(o)&&(o=o(t)),o||o!==!1&&sne(t.url))){const u=l&&a&&ine.read(a);u&&r.set(l,u)}return t},dne=typeof XMLHttpRequest<"u",fne=dne&&function(e){return new Promise(function(n,o){const l=cT(e);let a=l.data;const r=co.from(l.headers).normalize();let{responseType:i,onUploadProgress:u,onDownloadProgress:c}=l,d,f,v,p,m;function h(){p&&p(),m&&m(),l.cancelToken&&l.cancelToken.unsubscribe(d),l.signal&&l.signal.removeEventListener("abort",d)}let g=new XMLHttpRequest;g.open(l.method.toUpperCase(),l.url,!0),g.timeout=l.timeout;function b(){if(!g)return;const y=co.from("getAllResponseHeaders"in g&&g.getAllResponseHeaders()),E={data:!i||i==="text"||i==="json"?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:y,config:e,request:g};iT(function(T){n(T),h()},function(T){o(T),h()},E),g=null}"onloadend"in g?g.onloadend=b:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.indexOf("file:")===0)||setTimeout(b)},g.onabort=function(){g&&(o(new xt("Request aborted",xt.ECONNABORTED,e,g)),g=null)},g.onerror=function(w){const E=w&&w.message?w.message:"Network Error",k=new xt(E,xt.ERR_NETWORK,e,g);k.event=w||null,o(k),g=null},g.ontimeout=function(){let w=l.timeout?"timeout of "+l.timeout+"ms exceeded":"timeout exceeded";const E=l.transitional||aT;l.timeoutErrorMessage&&(w=l.timeoutErrorMessage),o(new xt(w,E.clarifyTimeoutError?xt.ETIMEDOUT:xt.ECONNABORTED,e,g)),g=null},a===void 0&&r.setContentType(null),"setRequestHeader"in g&&Ie.forEach(r.toJSON(),function(w,E){g.setRequestHeader(E,w)}),Ie.isUndefined(l.withCredentials)||(g.withCredentials=!!l.withCredentials),i&&i!=="json"&&(g.responseType=l.responseType),c&&([v,m]=Cd(c,!0),g.addEventListener("progress",v)),u&&g.upload&&([f,p]=Cd(u),g.upload.addEventListener("progress",f),g.upload.addEventListener("loadend",p)),(l.cancelToken||l.signal)&&(d=y=>{g&&(o(!y||y.type?new Vs(null,e,g):y),g.abort(),g=null)},l.cancelToken&&l.cancelToken.subscribe(d),l.signal&&(l.signal.aborted?d():l.signal.addEventListener("abort",d)));const C=lne(l.url);if(C&&Hn.protocols.indexOf(C)===-1){o(new xt("Unsupported protocol "+C+":",xt.ERR_BAD_REQUEST,e));return}g.send(a||null)})},pne=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let o=new AbortController,l;const a=function(c){if(!l){l=!0,i();const d=c instanceof Error?c:this.reason;o.abort(d instanceof xt?d:new Vs(d instanceof Error?d.message:d))}};let r=t&&setTimeout(()=>{r=null,a(new xt(`timeout ${t} of ms exceeded`,xt.ETIMEDOUT))},t);const i=()=>{e&&(r&&clearTimeout(r),r=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(a):c.removeEventListener("abort",a)}),e=null)};e.forEach(c=>c.addEventListener("abort",a));const{signal:u}=o;return u.unsubscribe=()=>Ie.asap(i),u}},vne=function*(e,t){let n=e.byteLength;if(n{const l=hne(e,t);let a=0,r,i=u=>{r||(r=!0,o&&o(u))};return new ReadableStream({async pull(u){try{const{done:c,value:d}=await l.next();if(c){i(),u.close();return}let f=d.byteLength;if(n){let v=a+=f;n(v)}u.enqueue(new Uint8Array(d))}catch(c){throw i(c),c}},cancel(u){return i(u),l.return()}},{highWaterMark:2})},Ow=64*1024,{isFunction:ac}=Ie,gne=(({Request:e,Response:t})=>({Request:e,Response:t}))(Ie.global),{ReadableStream:$w,TextEncoder:Rw}=Ie.global,Nw=(e,...t)=>{try{return!!e(...t)}catch{return!1}},bne=e=>{e=Ie.merge.call({skipUndefined:!0},gne,e);const{fetch:t,Request:n,Response:o}=e,l=t?ac(t):typeof fetch=="function",a=ac(n),r=ac(o);if(!l)return!1;const i=l&&ac($w),u=l&&(typeof Rw=="function"?(m=>h=>m.encode(h))(new Rw):async m=>new Uint8Array(await new n(m).arrayBuffer())),c=a&&i&&Nw(()=>{let m=!1;const h=new n(Hn.origin,{body:new $w,method:"POST",get duplex(){return m=!0,"half"}}).headers.has("Content-Type");return m&&!h}),d=r&&i&&Nw(()=>Ie.isReadableStream(new o("").body)),f={stream:d&&(m=>m.body)};l&&["text","arrayBuffer","blob","formData","stream"].forEach(m=>{!f[m]&&(f[m]=(h,g)=>{let b=h&&h[m];if(b)return b.call(h);throw new xt(`Response type '${m}' is not supported`,xt.ERR_NOT_SUPPORT,g)})});const v=async m=>{if(m==null)return 0;if(Ie.isBlob(m))return m.size;if(Ie.isSpecCompliantForm(m))return(await new n(Hn.origin,{method:"POST",body:m}).arrayBuffer()).byteLength;if(Ie.isArrayBufferView(m)||Ie.isArrayBuffer(m))return m.byteLength;if(Ie.isURLSearchParams(m)&&(m=m+""),Ie.isString(m))return(await u(m)).byteLength},p=async(m,h)=>{const g=Ie.toFiniteNumber(m.getContentLength());return g??v(h)};return async m=>{let{url:h,method:g,data:b,signal:C,cancelToken:y,timeout:w,onDownloadProgress:E,onUploadProgress:k,responseType:T,headers:x,withCredentials:N="same-origin",fetchOptions:O}=cT(m),I=t||fetch;T=T?(T+"").toLowerCase():"text";let P=pne([C,y&&y.toAbortSignal()],w),K=null;const B=P&&P.unsubscribe&&(()=>{P.unsubscribe()});let Y;try{if(k&&c&&g!=="get"&&g!=="head"&&(Y=await p(x,b))!==0){let H=new n(h,{method:"POST",body:b,duplex:"half"}),W;if(Ie.isFormData(b)&&(W=H.headers.get("content-type"))&&x.setContentType(W),H.body){const[X,te]=Ew(Y,Cd(kw(k)));b=Tw(H.body,Ow,X,te)}}Ie.isString(N)||(N=N?"include":"omit");const M=a&&"credentials"in n.prototype,A={...O,signal:P,method:g.toUpperCase(),headers:x.normalize().toJSON(),body:b,duplex:"half",credentials:M?N:void 0};K=a&&new n(h,A);let $=await(a?I(K,O):I(h,A));const D=d&&(T==="stream"||T==="response");if(d&&(E||D&&B)){const H={};["status","statusText","headers"].forEach(le=>{H[le]=$[le]});const W=Ie.toFiniteNumber($.headers.get("content-length")),[X,te]=E&&Ew(W,Cd(kw(E),!0))||[];$=new o(Tw($.body,Ow,X,()=>{te&&te(),B&&B()}),H)}T=T||"text";let V=await f[Ie.findKey(f,T)||"text"]($,m);return!D&&B&&B(),await new Promise((H,W)=>{iT(H,W,{data:V,headers:co.from($.headers),status:$.status,statusText:$.statusText,config:m,request:K})})}catch(M){throw B&&B(),M&&M.name==="TypeError"&&/Load failed|fetch/i.test(M.message)?Object.assign(new xt("Network Error",xt.ERR_NETWORK,m,K),{cause:M.cause||M}):xt.from(M,M&&M.code,m,K)}}},yne=new Map,dT=e=>{let t=e&&e.env||{};const{fetch:n,Request:o,Response:l}=t,a=[o,l,n];let r=a.length,i=r,u,c,d=yne;for(;i--;)u=a[i],c=d.get(u),c===void 0&&d.set(u,c=i?new Map:bne(t)),d=c;return c};dT();const mg={http:Lte,xhr:fne,fetch:{get:dT}};Ie.forEach(mg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Iw=e=>`- ${e}`,wne=e=>Ie.isFunction(e)||e===null||e===!1;function Cne(e,t){e=Ie.isArray(e)?e:[e];const{length:n}=e;let o,l;const a={};for(let r=0;r`adapter ${u} `+(c===!1?"is not supported by the environment":"is not available in the build"));let i=n?r.length>1?`since : `+r.map(Iw).join(` `):" "+Iw(r[0]):"as no adapter specified";throw new xt("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return l}const fT={getAdapter:Cne,adapters:mg};function mp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Vs(null,e)}function Pw(e){return mp(e),e.headers=co.from(e.headers),e.data=hp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),fT.getAdapter(e.adapter||Iu.adapter,e)(e).then(function(o){return mp(e),o.data=hp.call(e,e.transformResponse,o),o.headers=co.from(o.headers),o},function(o){return sT(o)||(mp(e),o&&o.response&&(o.response.data=hp.call(e,e.transformResponse,o.response),o.response.headers=co.from(o.response.headers))),Promise.reject(o)})}const pT="1.13.2",Cf={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Cf[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}});const xw={};Cf.transitional=function(t,n,o){function l(a,r){return"[Axios v"+pT+"] Transitional option '"+a+"'"+r+(o?". "+o:"")}return(a,r,i)=>{if(t===!1)throw new xt(l(r," has been removed"+(n?" in "+n:"")),xt.ERR_DEPRECATED);return n&&!xw[r]&&(xw[r]=!0,console.warn(l(r," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(a,r,i):!0}};Cf.spelling=function(t){return(n,o)=>(console.warn(`${o} is likely a misspelling of ${t}`),!0)};function Sne(e,t,n){if(typeof e!="object")throw new xt("options must be an object",xt.ERR_BAD_OPTION_VALUE);const o=Object.keys(e);let l=o.length;for(;l-- >0;){const a=o[l],r=t[a];if(r){const i=e[a],u=i===void 0||r(i,a,e);if(u!==!0)throw new xt("option "+a+" must be "+u,xt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new xt("Unknown option "+a,xt.ERR_BAD_OPTION)}}const Dc={assertOptions:Sne,validators:Cf},ul=Dc.validators;let lr=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Cw,response:new Cw}}async request(t,n){try{return await this._request(t,n)}catch(o){if(o instanceof Error){let l={};Error.captureStackTrace?Error.captureStackTrace(l):l=new Error;const a=l.stack?l.stack.replace(/^.+\n/,""):"";try{o.stack?a&&!String(o.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(o.stack+=` -`+a):o.stack=a}catch{}}throw o}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=gr(this.defaults,n);const{transitional:o,paramsSerializer:l,headers:a}=n;o!==void 0&&Dc.assertOptions(o,{silentJSONParsing:ul.transitional(ul.boolean),forcedJSONParsing:ul.transitional(ul.boolean),clarifyTimeoutError:ul.transitional(ul.boolean)},!1),l!=null&&(Ie.isFunction(l)?n.paramsSerializer={serialize:l}:Dc.assertOptions(l,{encode:ul.function,serialize:ul.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Dc.assertOptions(n,{baseUrl:ul.spelling("baseURL"),withXsrfToken:ul.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let r=a&&Ie.merge(a.common,a[n.method]);a&&Ie.forEach(["delete","get","head","post","put","patch","common"],m=>{delete a[m]}),n.headers=co.concat(r,a);const i=[];let u=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(u=u&&h.synchronous,i.unshift(h.fulfilled,h.rejected))});const c=[];this.interceptors.response.forEach(function(h){c.push(h.fulfilled,h.rejected)});let d,f=0,v;if(!u){const m=[Pw.bind(this),void 0];for(m.unshift(...i),m.push(...c),v=m.length,d=Promise.resolve(n);f{if(!o._listeners)return;let a=o._listeners.length;for(;a-- >0;)o._listeners[a](l);o._listeners=null}),this.promise.then=l=>{let a;const r=new Promise(i=>{o.subscribe(i),a=i}).then(l);return r.cancel=function(){o.unsubscribe(a)},r},t(function(a,r,i){o.reason||(o.reason=new Vs(a,r,i),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=o=>{t.abort(o)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new vT(function(l){t=l}),cancel:t}}};function kne(e){return function(n){return e.apply(null,n)}}function _ne(e){return Ie.isObject(e)&&e.isAxiosError===!0}const jv={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(jv).forEach(([e,t])=>{jv[t]=e});function hT(e){const t=new lr(e),n=U_(lr.prototype.request,t);return Ie.extend(n,lr.prototype,t,{allOwnKeys:!0}),Ie.extend(n,t,null,{allOwnKeys:!0}),n.create=function(l){return hT(gr(e,l))},n}const gn=hT(Iu);gn.Axios=lr;gn.CanceledError=Vs;gn.CancelToken=Ene;gn.isCancel=sT;gn.VERSION=pT;gn.toFormData=wf;gn.AxiosError=xt;gn.Cancel=gn.CanceledError;gn.all=function(t){return Promise.all(t)};gn.spread=kne;gn.isAxiosError=_ne;gn.mergeConfig=gr;gn.AxiosHeaders=co;gn.formToJSON=e=>rT(Ie.isHTMLForm(e)?new FormData(e):e);gn.getAdapter=fT.getAdapter;gn.HttpStatusCode=jv;gn.default=gn;const{Axios:uoe,AxiosError:coe,CanceledError:doe,isCancel:foe,CancelToken:poe,VERSION:voe,all:hoe,Cancel:moe,isAxiosError:goe,spread:boe,toFormData:yoe,AxiosHeaders:woe,HttpStatusCode:Coe,formToJSON:Soe,getAdapter:Eoe,mergeConfig:koe}=gn;let Mw="",Aw=0;function Qs(e,t,n=1500){const o=Date.now();e===Mw&&o-Aw!!String(e||"").trim(),inputErrorMessage:"密码不能为空"}).then(async e=>{const t=String(e.value||"").trim();await Qo.post("/admin/reauth",{password:t}),dg.success("已通过安全确认")}).finally(()=>{ei=null}),ei)}Qo.interceptors.request.use(e=>{const t=String(e?.method||"GET").toUpperCase();if(!["GET","HEAD","OPTIONS"].includes(t)){const n=Tne("csrf_token");n&&(e.headers=e.headers||{},e.headers["X-CSRF-Token"]=n)}return e});Qo.interceptors.response.use(e=>e,async e=>{const t=e?.response?.status,n=e?.response?.data,o=n?.error||n?.message||e?.message||"请求失败";if(n?.code==="reauth_required"&&e?.config&&!e.config.__reauth_retry)try{return e.config.__reauth_retry=!0,await One(),Qo.request(e.config)}catch{return Promise.reject(e)}return t===401?(Qs("401",o,3e3),(window.location?.pathname||"").startsWith("/yuyx")||(window.location.href="/yuyx")):t===403?Qs("403",o,5e3):t?Qs(`http:${t}:${o}`,o):e?.code==="ECONNABORTED"?Qs("timeout","请求超时",3e3):Qs(`net:${o}`,o,3e3),Promise.reject(e)});async function _oe(e=""){const{data:t}=await Qo.get("/feedbacks",{params:e?{status:e}:{}});return t}async function $ne(){const{data:e}=await Qo.get("/feedbacks",{params:{limit:1,offset:0}});return e?.stats}async function Toe(e,t){const{data:n}=await Qo.post(`/feedbacks/${e}/reply`,{reply:t});return n}async function Ooe(e){const{data:t}=await Qo.post(`/feedbacks/${e}/close`);return t}async function $oe(e){const{data:t}=await Qo.delete(`/feedbacks/${e}`);return t}async function Rne(){const{data:e}=await Qo.get("/stats");return e}const Nne={class:"menu-label"},Ine={key:1,class:"menu-label"},Pne={class:"header-left"},xne={class:"header-right"},Mne={class:"admin-name"},Ane={class:"menu-label"},Lne={key:1,class:"menu-label"},Dne={__name:"AdminLayout",setup(e){const t=rN(),n=aN(),o=L({}),l=S(()=>o.value?.admin_username||"");async function a(){try{o.value=await Rne()}finally{}}const r=L(!1),i=L(0);let u;async function c(y=null){if(y&&typeof y=="object"){Object.prototype.hasOwnProperty.call(y,"pendingFeedbacks")&&(i.value=Number(y.pendingFeedbacks||0));return}if(!r.value){r.value=!0;try{const w=await $ne();i.value=Number(w?.pending||0)}finally{r.value=!1}}}ut("refreshStats",a),ut("adminStats",o),ut("refreshNavBadges",c);const d=L(!1),f=L(!1);let v;function p(){d.value=!!v?.matches,d.value||(f.value=!1)}rt(async()=>{v=window.matchMedia("(max-width: 768px)"),v.addEventListener?.("change",p),p(),await a(),await c(),u=window.setInterval(c,6e4)}),Rt(()=>{v?.removeEventListener?.("change",p),window.clearInterval(u)});const m=[{path:"/reports",label:"报表",icon:FS},{path:"/users",label:"用户",icon:r6},{path:"/feedbacks",label:"反馈",icon:ZM,badgeKey:"feedbacks"},{path:"/logs",label:"任务日志",icon:wA},{path:"/announcements",label:"公告",icon:jM},{path:"/email",label:"邮件",icon:_A},{path:"/security",label:"安全防护",icon:EA},{path:"/system",label:"系统配置",icon:n6},{path:"/settings",label:"设置",icon:jA}],h=S(()=>t.path);function g(y){return y?.badgeKey&&y.badgeKey==="feedbacks"?Number(i.value||0):0}async function b(){try{await fg.confirm("确定退出管理员登录吗?","退出登录",{confirmButtonText:"退出",cancelButtonText:"取消",type:"warning"})}catch{return}try{await Qo.post("/logout")}finally{window.location.href="/yuyx"}}async function C(y){await n.push(y),f.value=!1}return(y,w)=>{const E=ft("el-icon"),k=ft("el-badge"),T=ft("el-menu-item"),x=ft("el-menu"),N=ft("el-aside"),O=ft("el-button"),I=ft("el-header"),P=ft("RouterView"),K=ft("el-skeleton"),B=ft("el-card"),Y=ft("el-main"),M=ft("el-container"),A=ft("el-drawer");return _(),ie(M,{class:"layout-root"},{default:ee(()=>[d.value?re("",!0):(_(),ie(N,{key:0,width:"220px",class:"layout-aside"},{default:ee(()=>[w[2]||(w[2]=z("div",{class:"brand"},[z("div",{class:"brand-title"},"后台管理"),z("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),J(x,{"default-active":h.value,class:"aside-menu",router:"",onSelect:C},{default:ee(()=>[(_(),F(He,null,mt(m,$=>J(T,{key:$.path,index:$.path},{default:ee(()=>[J(E,null,{default:ee(()=>[(_(),ie(at($.icon)))]),_:2},1024),g($)>0?(_(),ie(k,{key:0,value:g($),max:99,class:"menu-badge"},{default:ee(()=>[z("span",Nne,ke($.label),1)]),_:2},1032,["value"])):(_(),F("span",Ine,ke($.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1})),J(M,null,{default:ee(()=>[J(I,{class:"layout-header"},{default:ee(()=>[z("div",Pne,[d.value?(_(),ie(O,{key:0,text:"",class:"header-menu-btn",onClick:w[0]||(w[0]=$=>f.value=!0)},{default:ee(()=>[...w[3]||(w[3]=[gt(" 菜单 ",-1)])]),_:1})):re("",!0),w[4]||(w[4]=z("div",{class:"header-title"},"后台管理系统",-1))]),z("div",xne,[z("div",Mne,[w[5]||(w[5]=z("span",{class:"app-muted"},"管理员",-1)),z("strong",null,ke(l.value||"-"),1)]),J(O,{type:"primary",plain:"",onClick:b},{default:ee(()=>[...w[6]||(w[6]=[gt("退出",-1)])]),_:1})])]),_:1}),J(Y,{class:"layout-main"},{default:ee(()=>[(_(),ie(XO,null,{default:ee(()=>[J(P)]),fallback:ee(()=>[J(B,{shadow:"never","body-style":{padding:"16px"},class:"fallback-card"},{default:ee(()=>[J(K,{rows:5,animated:""})]),_:1})]),_:1}))]),_:1})]),_:1}),J(A,{modelValue:f.value,"onUpdate:modelValue":w[1]||(w[1]=$=>f.value=$),size:"240px","with-header":!1},{default:ee(()=>[w[7]||(w[7]=z("div",{class:"drawer-brand"},[z("div",{class:"brand-title"},"后台管理"),z("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),J(x,{"default-active":h.value,class:"aside-menu",router:"",onSelect:C},{default:ee(()=>[(_(),F(He,null,mt(m,$=>J(T,{key:$.path,index:$.path},{default:ee(()=>[J(E,null,{default:ee(()=>[(_(),ie(at($.icon)))]),_:2},1024),g($)>0?(_(),ie(k,{key:0,value:g($),max:99,class:"menu-badge"},{default:ee(()=>[z("span",Ane,ke($.label),1)]),_:2},1032,["value"])):(_(),F("span",Lne,ke($.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1},8,["modelValue"])]),_:1})}}},Bne=pC(Dne,[["__scopeId","data-v-529c4583"]]),Fne=()=>Zl(()=>import("./ReportPage-DxDL6AXa.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),Vne=()=>Zl(()=>import("./UsersPage-19tzoQBx.js"),__vite__mapDeps([5,6,7]),import.meta.url),Hne=()=>Zl(()=>import("./FeedbacksPage-BlN6FFbD.js"),__vite__mapDeps([8,9]),import.meta.url),zne=()=>Zl(()=>import("./LogsPage-adLViVmd.js"),__vite__mapDeps([10,6,2,11]),import.meta.url),Kne=()=>Zl(()=>import("./AnnouncementsPage-DP-v4_4f.js"),__vite__mapDeps([12,13]),import.meta.url),Wne=()=>Zl(()=>import("./EmailPage-4etTfx9H.js"),__vite__mapDeps([14,1,15]),import.meta.url),jne=()=>Zl(()=>import("./SecurityPage-BkxWxQhW.js"),__vite__mapDeps([16,17]),import.meta.url),Une=()=>Zl(()=>import("./SystemPage-Cph4odbt.js"),__vite__mapDeps([18,3,19]),import.meta.url),qne=()=>Zl(()=>import("./SettingsPage-D_cVneyv.js"),__vite__mapDeps([20,21]),import.meta.url),Yne=[{path:"/",component:Bne,children:[{path:"",redirect:"/reports"},{path:"/pending",redirect:"/reports"},{path:"/stats",redirect:"/reports"},{path:"/reports",name:"reports",component:Fne},{path:"/users",name:"users",component:Vne},{path:"/feedbacks",name:"feedbacks",component:Hne},{path:"/logs",name:"logs",component:zne},{path:"/announcements",name:"announcements",component:Kne},{path:"/email",name:"email",component:Wne},{path:"/security",name:"security",component:jne},{path:"/system",name:"system",component:Une},{path:"/settings",name:"settings",component:qne}]}],Gne=lN({history:LR(),routes:Yne});var Xne={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},dropdown:{toggleDropdown:"切换下拉选项"},mention:{loading:"加载中"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 Delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tour:{next:"下一步",previous:"上一步",finish:"结束导览",close:"关闭此对话框"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};fC(G$).use(Gne).use(Xee,{locale:Xne}).mount("#app");export{ie as A,Qne as B,n6 as C,$ne as D,R as E,He as F,at as G,Ad as H,nt as I,fg as J,dg as K,_oe as L,Toe as M,Ooe as N,$oe as O,Qo as P,_t as Q,Rt as R,pC as _,qM as a,BS as b,S as c,_s as d,ft as e,F as f,_ as g,z as h,Pe as i,J as j,eoe as k,bl as l,re as m,ke as n,rt as o,gt as p,mt as q,L as r,ZA as s,noe as t,ooe as u,s as v,ee as w,toe as x,_A as y,ZM as z}; +`+a):o.stack=a}catch{}}throw o}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=gr(this.defaults,n);const{transitional:o,paramsSerializer:l,headers:a}=n;o!==void 0&&Dc.assertOptions(o,{silentJSONParsing:ul.transitional(ul.boolean),forcedJSONParsing:ul.transitional(ul.boolean),clarifyTimeoutError:ul.transitional(ul.boolean)},!1),l!=null&&(Ie.isFunction(l)?n.paramsSerializer={serialize:l}:Dc.assertOptions(l,{encode:ul.function,serialize:ul.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Dc.assertOptions(n,{baseUrl:ul.spelling("baseURL"),withXsrfToken:ul.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let r=a&&Ie.merge(a.common,a[n.method]);a&&Ie.forEach(["delete","get","head","post","put","patch","common"],m=>{delete a[m]}),n.headers=co.concat(r,a);const i=[];let u=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(u=u&&h.synchronous,i.unshift(h.fulfilled,h.rejected))});const c=[];this.interceptors.response.forEach(function(h){c.push(h.fulfilled,h.rejected)});let d,f=0,v;if(!u){const m=[Pw.bind(this),void 0];for(m.unshift(...i),m.push(...c),v=m.length,d=Promise.resolve(n);f{if(!o._listeners)return;let a=o._listeners.length;for(;a-- >0;)o._listeners[a](l);o._listeners=null}),this.promise.then=l=>{let a;const r=new Promise(i=>{o.subscribe(i),a=i}).then(l);return r.cancel=function(){o.unsubscribe(a)},r},t(function(a,r,i){o.reason||(o.reason=new Vs(a,r,i),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=o=>{t.abort(o)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new vT(function(l){t=l}),cancel:t}}};function kne(e){return function(n){return e.apply(null,n)}}function _ne(e){return Ie.isObject(e)&&e.isAxiosError===!0}const jv={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(jv).forEach(([e,t])=>{jv[t]=e});function hT(e){const t=new lr(e),n=U_(lr.prototype.request,t);return Ie.extend(n,lr.prototype,t,{allOwnKeys:!0}),Ie.extend(n,t,null,{allOwnKeys:!0}),n.create=function(l){return hT(gr(e,l))},n}const gn=hT(Iu);gn.Axios=lr;gn.CanceledError=Vs;gn.CancelToken=Ene;gn.isCancel=sT;gn.VERSION=pT;gn.toFormData=wf;gn.AxiosError=xt;gn.Cancel=gn.CanceledError;gn.all=function(t){return Promise.all(t)};gn.spread=kne;gn.isAxiosError=_ne;gn.mergeConfig=gr;gn.AxiosHeaders=co;gn.formToJSON=e=>rT(Ie.isHTMLForm(e)?new FormData(e):e);gn.getAdapter=fT.getAdapter;gn.HttpStatusCode=jv;gn.default=gn;const{Axios:uoe,AxiosError:coe,CanceledError:doe,isCancel:foe,CancelToken:poe,VERSION:voe,all:hoe,Cancel:moe,isAxiosError:goe,spread:boe,toFormData:yoe,AxiosHeaders:woe,HttpStatusCode:Coe,formToJSON:Soe,getAdapter:Eoe,mergeConfig:koe}=gn;let Mw="",Aw=0;function Qs(e,t,n=1500){const o=Date.now();e===Mw&&o-Aw!!String(e||"").trim(),inputErrorMessage:"密码不能为空"}).then(async e=>{const t=String(e.value||"").trim();await Qo.post("/admin/reauth",{password:t}),dg.success("已通过安全确认")}).finally(()=>{ei=null}),ei)}Qo.interceptors.request.use(e=>{const t=String(e?.method||"GET").toUpperCase();if(!["GET","HEAD","OPTIONS"].includes(t)){const n=Tne("csrf_token");n&&(e.headers=e.headers||{},e.headers["X-CSRF-Token"]=n)}return e});Qo.interceptors.response.use(e=>e,async e=>{const t=e?.response?.status,n=e?.response?.data,o=n?.error||n?.message||e?.message||"请求失败";if(n?.code==="reauth_required"&&e?.config&&!e.config.__reauth_retry)try{return e.config.__reauth_retry=!0,await One(),Qo.request(e.config)}catch{return Promise.reject(e)}return t===401?(Qs("401",o,3e3),(window.location?.pathname||"").startsWith("/yuyx")||(window.location.href="/yuyx")):t===403?Qs("403",o,5e3):t?Qs(`http:${t}:${o}`,o):e?.code==="ECONNABORTED"?Qs("timeout","请求超时",3e3):Qs(`net:${o}`,o,3e3),Promise.reject(e)});async function _oe(e=""){const{data:t}=await Qo.get("/feedbacks",{params:e?{status:e}:{}});return t}async function $ne(){const{data:e}=await Qo.get("/feedbacks",{params:{limit:1,offset:0}});return e?.stats}async function Toe(e,t){const{data:n}=await Qo.post(`/feedbacks/${e}/reply`,{reply:t});return n}async function Ooe(e){const{data:t}=await Qo.post(`/feedbacks/${e}/close`);return t}async function $oe(e){const{data:t}=await Qo.delete(`/feedbacks/${e}`);return t}async function Rne(){const{data:e}=await Qo.get("/stats");return e}const Nne={class:"menu-label"},Ine={key:1,class:"menu-label"},Pne={class:"header-left"},xne={class:"header-right"},Mne={class:"admin-name"},Ane={class:"menu-label"},Lne={key:1,class:"menu-label"},Dne={__name:"AdminLayout",setup(e){const t=rN(),n=aN(),o=L({}),l=S(()=>o.value?.admin_username||"");async function a(){try{o.value=await Rne()}finally{}}const r=L(!1),i=L(0);let u;async function c(y=null){if(y&&typeof y=="object"){Object.prototype.hasOwnProperty.call(y,"pendingFeedbacks")&&(i.value=Number(y.pendingFeedbacks||0));return}if(!r.value){r.value=!0;try{const w=await $ne();i.value=Number(w?.pending||0)}finally{r.value=!1}}}ut("refreshStats",a),ut("adminStats",o),ut("refreshNavBadges",c);const d=L(!1),f=L(!1);let v;function p(){d.value=!!v?.matches,d.value||(f.value=!1)}rt(async()=>{v=window.matchMedia("(max-width: 768px)"),v.addEventListener?.("change",p),p(),await a(),await c(),u=window.setInterval(c,6e4)}),Rt(()=>{v?.removeEventListener?.("change",p),window.clearInterval(u)});const m=[{path:"/reports",label:"报表",icon:FS},{path:"/users",label:"用户",icon:r6},{path:"/feedbacks",label:"反馈",icon:ZM,badgeKey:"feedbacks"},{path:"/logs",label:"任务日志",icon:wA},{path:"/announcements",label:"公告",icon:jM},{path:"/email",label:"邮件",icon:_A},{path:"/security",label:"安全防护",icon:EA},{path:"/system",label:"系统配置",icon:n6},{path:"/settings",label:"设置",icon:jA}],h=S(()=>t.path);function g(y){return y?.badgeKey&&y.badgeKey==="feedbacks"?Number(i.value||0):0}async function b(){try{await fg.confirm("确定退出管理员登录吗?","退出登录",{confirmButtonText:"退出",cancelButtonText:"取消",type:"warning"})}catch{return}try{await Qo.post("/logout")}finally{window.location.href="/yuyx"}}async function C(y){await n.push(y),f.value=!1}return(y,w)=>{const E=ft("el-icon"),k=ft("el-badge"),T=ft("el-menu-item"),x=ft("el-menu"),N=ft("el-aside"),O=ft("el-button"),I=ft("el-header"),P=ft("RouterView"),K=ft("el-skeleton"),B=ft("el-card"),Y=ft("el-main"),M=ft("el-container"),A=ft("el-drawer");return _(),ie(M,{class:"layout-root"},{default:ee(()=>[d.value?re("",!0):(_(),ie(N,{key:0,width:"220px",class:"layout-aside"},{default:ee(()=>[w[2]||(w[2]=z("div",{class:"brand"},[z("div",{class:"brand-title"},"后台管理"),z("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),J(x,{"default-active":h.value,class:"aside-menu",router:"",onSelect:C},{default:ee(()=>[(_(),F(He,null,mt(m,$=>J(T,{key:$.path,index:$.path},{default:ee(()=>[J(E,null,{default:ee(()=>[(_(),ie(at($.icon)))]),_:2},1024),g($)>0?(_(),ie(k,{key:0,value:g($),max:99,class:"menu-badge"},{default:ee(()=>[z("span",Nne,ke($.label),1)]),_:2},1032,["value"])):(_(),F("span",Ine,ke($.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1})),J(M,null,{default:ee(()=>[J(I,{class:"layout-header"},{default:ee(()=>[z("div",Pne,[d.value?(_(),ie(O,{key:0,text:"",class:"header-menu-btn",onClick:w[0]||(w[0]=$=>f.value=!0)},{default:ee(()=>[...w[3]||(w[3]=[gt(" 菜单 ",-1)])]),_:1})):re("",!0),w[4]||(w[4]=z("div",{class:"header-title"},"后台管理系统",-1))]),z("div",xne,[z("div",Mne,[w[5]||(w[5]=z("span",{class:"app-muted"},"管理员",-1)),z("strong",null,ke(l.value||"-"),1)]),J(O,{type:"primary",plain:"",onClick:b},{default:ee(()=>[...w[6]||(w[6]=[gt("退出",-1)])]),_:1})])]),_:1}),J(Y,{class:"layout-main"},{default:ee(()=>[(_(),ie(XO,null,{default:ee(()=>[J(P)]),fallback:ee(()=>[J(B,{shadow:"never","body-style":{padding:"16px"},class:"fallback-card"},{default:ee(()=>[J(K,{rows:5,animated:""})]),_:1})]),_:1}))]),_:1})]),_:1}),J(A,{modelValue:f.value,"onUpdate:modelValue":w[1]||(w[1]=$=>f.value=$),size:"240px","with-header":!1},{default:ee(()=>[w[7]||(w[7]=z("div",{class:"drawer-brand"},[z("div",{class:"brand-title"},"后台管理"),z("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),J(x,{"default-active":h.value,class:"aside-menu",router:"",onSelect:C},{default:ee(()=>[(_(),F(He,null,mt(m,$=>J(T,{key:$.path,index:$.path},{default:ee(()=>[J(E,null,{default:ee(()=>[(_(),ie(at($.icon)))]),_:2},1024),g($)>0?(_(),ie(k,{key:0,value:g($),max:99,class:"menu-badge"},{default:ee(()=>[z("span",Ane,ke($.label),1)]),_:2},1032,["value"])):(_(),F("span",Lne,ke($.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1},8,["modelValue"])]),_:1})}}},Bne=pC(Dne,[["__scopeId","data-v-529c4583"]]),Fne=()=>Zl(()=>import("./ReportPage-nXQwTJlk.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),Vne=()=>Zl(()=>import("./UsersPage-DLsmihq2.js"),__vite__mapDeps([5,6,7]),import.meta.url),Hne=()=>Zl(()=>import("./FeedbacksPage-BEa--2pl.js"),__vite__mapDeps([8,9]),import.meta.url),zne=()=>Zl(()=>import("./LogsPage-CQsGwFRH.js"),__vite__mapDeps([10,6,2,11]),import.meta.url),Kne=()=>Zl(()=>import("./AnnouncementsPage-C3uZDqOR.js"),__vite__mapDeps([12,13]),import.meta.url),Wne=()=>Zl(()=>import("./EmailPage-DmFgLrFm.js"),__vite__mapDeps([14,1,15]),import.meta.url),jne=()=>Zl(()=>import("./SecurityPage-Czxm2GJx.js"),__vite__mapDeps([16,17]),import.meta.url),Une=()=>Zl(()=>import("./SystemPage-BPHukDdR.js"),__vite__mapDeps([18,3,19]),import.meta.url),qne=()=>Zl(()=>import("./SettingsPage-IGV4in6c.js"),__vite__mapDeps([20,21]),import.meta.url),Yne=[{path:"/",component:Bne,children:[{path:"",redirect:"/reports"},{path:"/pending",redirect:"/reports"},{path:"/stats",redirect:"/reports"},{path:"/reports",name:"reports",component:Fne},{path:"/users",name:"users",component:Vne},{path:"/feedbacks",name:"feedbacks",component:Hne},{path:"/logs",name:"logs",component:zne},{path:"/announcements",name:"announcements",component:Kne},{path:"/email",name:"email",component:Wne},{path:"/security",name:"security",component:jne},{path:"/system",name:"system",component:Une},{path:"/settings",name:"settings",component:qne}]}],Gne=lN({history:LR(),routes:Yne});var Xne={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},dropdown:{toggleDropdown:"切换下拉选项"},mention:{loading:"加载中"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 Delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计"},tour:{next:"下一步",previous:"上一步",finish:"结束导览",close:"关闭此对话框"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};fC(G$).use(Gne).use(Xee,{locale:Xne}).mount("#app");export{ZM as A,ie as B,Qne as C,R as D,n6 as E,He as F,$ne as G,at as H,Ad as I,nt as J,fg as K,dg as L,_oe as M,Toe as N,Ooe as O,$oe as P,_t as Q,Rt as R,pC as _,Qo as a,qM as b,S as c,BS as d,_s as e,ft as f,F as g,_ as h,Pe as i,z as j,eoe as k,bl as l,J as m,re as n,rt as o,ke as p,gt as q,L as r,ZA as s,noe as t,ooe as u,mt as v,ee as w,s as x,toe as y,_A as z}; diff --git a/static/admin/assets/system-C_4M4EtK.js b/static/admin/assets/system-C_4M4EtK.js deleted file mode 100644 index af31a96..0000000 --- a/static/admin/assets/system-C_4M4EtK.js +++ /dev/null @@ -1 +0,0 @@ -import{P as e}from"./index-Dx-1XhY8.js";async function s(){const{data:t}=await e.get("/system/config");return t}async function c(t){const{data:a}=await e.post("/system/config",t);return a}async function o(){const{data:t}=await e.post("/schedule/execute",{});return t}export{o as e,s as f,c as u}; diff --git a/static/admin/assets/system-DIc9L1cQ.js b/static/admin/assets/system-DIc9L1cQ.js new file mode 100644 index 0000000..2eb4f46 --- /dev/null +++ b/static/admin/assets/system-DIc9L1cQ.js @@ -0,0 +1 @@ +import{a}from"./index-B9zsNTKQ.js";async function s(){const{data:t}=await a.get("/system/config");return t}async function c(t){const{data:e}=await a.post("/system/config",t);return e}async function o(){const{data:t}=await a.post("/schedule/execute",{});return t}export{o as e,s as f,c as u}; diff --git a/static/admin/assets/tasks-DILta43B.js b/static/admin/assets/tasks-DILta43B.js new file mode 100644 index 0000000..51a6573 --- /dev/null +++ b/static/admin/assets/tasks-DILta43B.js @@ -0,0 +1 @@ +import{a}from"./index-B9zsNTKQ.js";async function c(){const{data:t}=await a.get("/server/info");return t}async function e(){const{data:t}=await a.get("/docker_stats");return t}async function o(){const{data:t}=await a.get("/task/stats");return t}async function r(){const{data:t}=await a.get("/task/running");return t}async function i(t){const{data:s}=await a.get("/task/logs",{params:t});return s}async function f(t){const{data:s}=await a.post("/task/logs/clear",{days:t});return s}export{r as a,c as b,e as c,i as d,f as e,o as f}; diff --git a/static/admin/assets/tasks-yIlAy2Ne.js b/static/admin/assets/tasks-yIlAy2Ne.js deleted file mode 100644 index 5e9bab3..0000000 --- a/static/admin/assets/tasks-yIlAy2Ne.js +++ /dev/null @@ -1 +0,0 @@ -import{P as a}from"./index-Dx-1XhY8.js";async function c(){const{data:t}=await a.get("/server/info");return t}async function e(){const{data:t}=await a.get("/docker_stats");return t}async function o(){const{data:t}=await a.get("/task/stats");return t}async function r(){const{data:t}=await a.get("/task/running");return t}async function i(t){const{data:s}=await a.get("/task/logs",{params:t});return s}async function f(t){const{data:s}=await a.post("/task/logs/clear",{days:t});return s}export{r as a,c as b,e as c,i as d,f as e,o as f}; diff --git a/static/admin/assets/users-BNPg4OEj.js b/static/admin/assets/users-BxS2U-Si.js similarity index 90% rename from static/admin/assets/users-BNPg4OEj.js rename to static/admin/assets/users-BxS2U-Si.js index 82b1240..432516c 100644 --- a/static/admin/assets/users-BNPg4OEj.js +++ b/static/admin/assets/users-BxS2U-Si.js @@ -1 +1 @@ -import{P as t}from"./index-Dx-1XhY8.js";async function n(){const{data:s}=await t.get("/users");return s}async function o(s){const{data:a}=await t.post(`/users/${s}/approve`);return a}async function c(s){const{data:a}=await t.post(`/users/${s}/reject`);return a}async function i(s){const{data:a}=await t.delete(`/users/${s}`);return a}async function u(s,a){const{data:e}=await t.post(`/users/${s}/vip`,{days:a});return e}async function p(s){const{data:a}=await t.delete(`/users/${s}/vip`);return a}async function d(s,a){const{data:e}=await t.post(`/users/${s}/reset_password`,{new_password:a});return e}export{o as a,p as b,d as c,i as d,n as f,c as r,u as s}; +import{a as t}from"./index-B9zsNTKQ.js";async function n(){const{data:s}=await t.get("/users");return s}async function o(s){const{data:a}=await t.post(`/users/${s}/approve`);return a}async function c(s){const{data:a}=await t.post(`/users/${s}/reject`);return a}async function i(s){const{data:a}=await t.delete(`/users/${s}`);return a}async function u(s,a){const{data:e}=await t.post(`/users/${s}/vip`,{days:a});return e}async function p(s){const{data:a}=await t.delete(`/users/${s}/vip`);return a}async function d(s,a){const{data:e}=await t.post(`/users/${s}/reset_password`,{new_password:a});return e}export{o as a,p as b,d as c,i as d,n as f,c as r,u as s}; diff --git a/static/admin/index.html b/static/admin/index.html index 0d9cc42..d491019 100644 --- a/static/admin/index.html +++ b/static/admin/index.html @@ -5,7 +5,7 @@ 后台管理 - 知识管理平台 - +