Files
AIGC/demo/deploy_baota/frontend/static/index-2fb4354b.js
2025-11-13 17:01:39 +08:00

2 lines
24 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{ax as N,ay as U,az as $,r as I,c as b,aA as W,al as v,z as p,I as f,J as m,B as l,R as g,u as E,M as y,O as k,P as S,A as x,Q as z,aB as j,h as H,D as L,au as G,aC as J}from"./vue-vendor-164775a6.js";import{a as Y}from"./utils-edfcd65b.js";import{E as d,a as K,i as Q}from"./element-plus-4a19e5e8.js";(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const t of o.addedNodes)t.tagName==="LINK"&&t.rel==="modulepreload"&&a(t)}).observe(document,{childList:!0,subtree:!0});function u(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(s){if(s.ep)return;s.ep=!0;const o=u(s);fetch(s.href,o)}})();/*! Element Plus v2.11.4 */var X={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}"}}};const Z="modulepreload",ee=function(e){return"/"+e},V={},n=function(r,u,a){if(!u||u.length===0)return r();const s=document.getElementsByTagName("link");return Promise.all(u.map(o=>{if(o=ee(o),o in V)return;V[o]=!0;const t=o.endsWith(".css"),T=t?'[rel="stylesheet"]':"";if(!!a)for(let F=s.length-1;F>=0;F--){const _=s[F];if(_.href===o&&(!t||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${T}`))return;const h=document.createElement("link");if(h.rel=t?"stylesheet":Z,t||(h.as="script",h.crossOrigin=""),h.href=o,document.head.appendChild(h),t)return new Promise((F,_)=>{h.addEventListener("load",F),h.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${o}`)))})})).then(()=>r()).catch(o=>{const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=o,window.dispatchEvent(t),!t.defaultPrevented)throw o})},te=()=>n(()=>import("./Home-83259a91.js"),["static/Home-83259a91.js","static/welcome-6f9b345d.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/dashboard-93bacc4e.js","static/utils-edfcd65b.js","static/Home-a1e22924.css"]),re=()=>n(()=>import("./Login-7248cf1e.js"),["static/Login-7248cf1e.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/Login-7d3f83d7.css"]),ue=()=>n(()=>import("./Register-ccda3886.js"),["static/Register-ccda3886.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/Register-db11cb6a.css"]),oe=()=>n(()=>import("./Orders-6c9eab9c.js"),["static/Orders-6c9eab9c.js","static/welcome-6f9b345d.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/orders-13d1cb00.js","static/utils-edfcd65b.js","static/Orders-97fa0790.css"]),ne=()=>n(()=>import("./OrderDetail-6fefd15e.js"),["static/OrderDetail-6fefd15e.js","static/vue-vendor-164775a6.js","static/orders-61e4e2f1.js","static/orders-13d1cb00.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/OrderDetail-d72799a7.css"]),se=()=>n(()=>import("./OrderCreate-33839111.js"),["static/OrderCreate-33839111.js","static/vue-vendor-164775a6.js","static/orders-61e4e2f1.js","static/orders-13d1cb00.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/OrderCreate-c5a11b3c.css"]),ae=()=>n(()=>import("./Payments-77a5186c.js"),["static/Payments-77a5186c.js","static/element-plus-4a19e5e8.js","static/vue-vendor-164775a6.js","static/payments-ee5e732b.js","static/utils-edfcd65b.js","static/Payments-f3c3d2e5.css"]),ie=()=>n(()=>import("./PaymentCreate-bff751b0.js"),["static/PaymentCreate-bff751b0.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/PaymentCreate-845e7a7d.css"]),le=()=>n(()=>import("./AdminOrders-5631316a.js"),["static/AdminOrders-5631316a.js","static/vue-vendor-164775a6.js","static/welcome-6f9b345d.js","static/element-plus-4a19e5e8.js","static/orders-13d1cb00.js","static/utils-edfcd65b.js","static/AdminOrders-a81c37a8.css"]),ce=()=>n(()=>import("./AdminDashboard-9d798574.js"),["static/AdminDashboard-9d798574.js","static/welcome-6f9b345d.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/dashboard-93bacc4e.js","static/utils-edfcd65b.js","static/AdminDashboard-06e8e9fe.css"]),me=()=>n(()=>import("./Welcome-f3d9259c.js"),["static/Welcome-f3d9259c.js","static/vue-vendor-164775a6.js","static/utils-edfcd65b.js","static/element-plus-4a19e5e8.js","static/Welcome-02ae9375.css"]),de=()=>n(()=>import("./Profile-7bbbfe27.js"),["static/Profile-7bbbfe27.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/userWorks-78cd305b.js","static/utils-edfcd65b.js","static/Profile-e7a83453.css"]),pe=()=>n(()=>import("./Subscription-466ccfbf.js"),["static/Subscription-466ccfbf.js","static/vue-vendor-164775a6.js","static/MyWorks-729e0951.js","static/element-plus-4a19e5e8.js","static/userWorks-78cd305b.js","static/utils-edfcd65b.js","static/MyWorks-23b2263b.css","static/payments-ee5e732b.js","static/members-fa2c2290.js","static/Subscription-109b4630.css"]),_e=()=>n(()=>import("./MyWorks-729e0951.js"),["static/MyWorks-729e0951.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/userWorks-78cd305b.js","static/utils-edfcd65b.js","static/MyWorks-23b2263b.css"]),Ee=()=>n(()=>import("./VideoDetail-a2b5ee6f.js"),["static/VideoDetail-a2b5ee6f.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/VideoDetail-4e02ea27.css"]),fe=()=>n(()=>import("./TextToVideo-fca7208a.js"),["static/TextToVideo-fca7208a.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/textToVideo-2a4dedda.js","static/utils-edfcd65b.js","static/TextToVideo-af8e3099.css"]),he=()=>n(()=>import("./TextToVideoCreate-2daed708.js"),["static/TextToVideoCreate-2daed708.js","static/vue-vendor-164775a6.js","static/textToVideo-2a4dedda.js","static/element-plus-4a19e5e8.js","static/promptOptimizer-dc3175a2.js","static/utils-edfcd65b.js","static/TextToVideoCreate-dfa9e514.css"]),ge=()=>n(()=>import("./ImageToVideo-75f15638.js"),["static/ImageToVideo-75f15638.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/imageToVideo-6b02abdd.js","static/utils-edfcd65b.js","static/ImageToVideo-5c0d5d27.css"]),ve=()=>n(()=>import("./ImageToVideoCreate-c6d612d8.js"),["static/ImageToVideoCreate-c6d612d8.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/imageToVideo-6b02abdd.js","static/promptOptimizer-dc3175a2.js","static/utils-edfcd65b.js","static/ImageToVideoCreate-9f838581.css"]),Ae=()=>n(()=>import("./ImageToVideoDetail-d95fa7d4.js"),["static/ImageToVideoDetail-d95fa7d4.js","static/vue-vendor-164775a6.js","static/imageToVideo-6b02abdd.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/ImageToVideoDetail-c4dd8d4c.css"]),De=()=>n(()=>import("./StoryboardVideo-cef2b309.js"),["static/StoryboardVideo-cef2b309.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/StoryboardVideo-8f7f2d12.css"]),Fe=()=>n(()=>import("./StoryboardVideoCreate-1810f4ad.js"),["static/StoryboardVideoCreate-1810f4ad.js","static/vue-vendor-164775a6.js","static/imageToVideo-6b02abdd.js","static/promptOptimizer-dc3175a2.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/StoryboardVideoCreate-c9b2f9c1.css"]),ye=()=>n(()=>import("./MemberManagement-2f1d2183.js"),["static/MemberManagement-2f1d2183.js","static/welcome-6f9b345d.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/members-fa2c2290.js","static/utils-edfcd65b.js","static/MemberManagement-0dafc745.css"]),ke=()=>n(()=>import("./SystemSettings-e8892272.js"),["static/SystemSettings-e8892272.js","static/vue-vendor-164775a6.js","static/welcome-6f9b345d.js","static/element-plus-4a19e5e8.js","static/members-fa2c2290.js","static/utils-edfcd65b.js","static/SystemSettings-7b932206.css"]),Be=()=>n(()=>import("./GenerateTaskRecord-92a9d6a2.js"),["static/GenerateTaskRecord-92a9d6a2.js","static/vue-vendor-164775a6.js","static/welcome-6f9b345d.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/GenerateTaskRecord-dae9310e.css"]),Te=()=>n(()=>import("./HelloWorld-9bce383a.js"),["static/HelloWorld-9bce383a.js","static/vue-vendor-164775a6.js"]),be=()=>n(()=>import("./TaskStatusPage-0cb18df2.js"),["static/TaskStatusPage-0cb18df2.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/TaskStatusPage-7db6b691.css"]),Ce=[{path:"/works",name:"MyWorks",component:_e,meta:{title:"我的作品",requiresAuth:!0,keepAlive:!0}},{path:"/task-status",name:"TaskStatus",component:be,meta:{title:"任务状态",requiresAuth:!0}},{path:"/video/:id",name:"VideoDetail",component:Ee,meta:{title:"视频详情",requiresAuth:!0}},{path:"/text-to-video",name:"TextToVideo",component:fe,meta:{title:"文生视频",requiresAuth:!0,keepAlive:!0}},{path:"/text-to-video/create",name:"TextToVideoCreate",component:he,meta:{title:"文生视频创作",requiresAuth:!0}},{path:"/image-to-video",name:"ImageToVideo",component:ge,meta:{title:"图生视频",requiresAuth:!0,keepAlive:!0}},{path:"/image-to-video/create",name:"ImageToVideoCreate",component:ve,meta:{title:"图生视频创作",requiresAuth:!0}},{path:"/image-to-video/detail/:taskId",name:"ImageToVideoDetail",component:Ae,meta:{title:"图生视频详情",requiresAuth:!0}},{path:"/storyboard-video",name:"StoryboardVideo",component:De,meta:{title:"分镜视频",requiresAuth:!0,keepAlive:!0}},{path:"/storyboard-video/create",name:"StoryboardVideoCreate",component:Fe,meta:{title:"分镜视频创作",requiresAuth:!0}},{path:"/",name:"Root",redirect:"/welcome"},{path:"/welcome",name:"Welcome",component:me,meta:{title:"欢迎",guest:!0}},{path:"/home",name:"Home",component:te,meta:{title:"首页",requiresAuth:!0}},{path:"/profile",name:"Profile",component:de,meta:{title:"个人主页",requiresAuth:!0}},{path:"/subscription",name:"Subscription",component:pe,meta:{title:"会员订阅",requiresAuth:!0}},{path:"/login",name:"Login",component:re,meta:{title:"登录",guest:!0}},{path:"/register",name:"Register",component:ue,meta:{title:"注册",guest:!0}},{path:"/orders",name:"Orders",component:oe,meta:{title:"订单管理",requiresAuth:!0}},{path:"/orders/:id",name:"OrderDetail",component:ne,meta:{title:"订单详情",requiresAuth:!0}},{path:"/orders/create",name:"OrderCreate",component:se,meta:{title:"创建订单",requiresAuth:!0}},{path:"/payments",name:"Payments",component:ae,meta:{title:"支付记录",requiresAuth:!0}},{path:"/payments/create",name:"PaymentCreate",component:ie,meta:{title:"创建支付",requiresAuth:!0}},{path:"/admin/orders",name:"AdminOrders",component:le,meta:{title:"订单管理",requiresAuth:!0,requiresAdmin:!0}},{path:"/admin/dashboard",name:"AdminDashboard",component:ce,meta:{title:"后台管理",requiresAuth:!0,requiresAdmin:!0}},{path:"/member-management",name:"MemberManagement",component:ye,meta:{title:"会员管理",requiresAuth:!0,requiresAdmin:!0}},{path:"/system-settings",name:"SystemSettings",component:ke,meta:{title:"系统设置",requiresAuth:!0,requiresAdmin:!0}},{path:"/generate-task-record",name:"GenerateTaskRecord",component:Be,meta:{title:"生成任务记录",requiresAuth:!0,requiresAdmin:!0}},{path:"/api-management",name:"ApiManagement",component:()=>n(()=>import("./ApiManagement-fb89c311.js"),["static/ApiManagement-fb89c311.js","static/welcome-6f9b345d.js","static/vue-vendor-164775a6.js","static/element-plus-4a19e5e8.js","static/utils-edfcd65b.js","static/ApiManagement-3a040480.css"]),meta:{title:"API管理",requiresAuth:!0,requiresAdmin:!0}},{path:"/hello",name:"HelloWorld",component:Te,meta:{title:"Hello World"}}],D=N({history:U(),routes:Ce,scrollBehavior(e,r,u){return u||{top:0}}});D.beforeEach(async(e,r,u)=>{try{const a=q();if(a.initialized||await a.init(),e.path==="/"||e.path==="/welcome"){if(a.isAuthenticated&&e.path==="/"){u("/profile");return}if(!a.isAuthenticated&&e.path==="/welcome"){u();return}}if(e.meta.requiresAuth){if(!a.isAuthenticated){u({path:"/login",query:{redirect:e.fullPath}});return}if(e.meta.requiresAdmin&&!a.isAdmin){d.warning("权限不足,只有管理员才能访问此页面"),u("/profile");return}}if(e.meta.guest&&a.isAuthenticated){u("/profile");return}e.meta.title&&(document.title=`${e.meta.title} - AIGC Demo`),u()}catch(a){console.error("路由守卫错误:",a),u()}});function O(){if(typeof window<"u"){const e=window.location.hostname;if(e.includes("ngrok")||e==="localhost"||e==="127.0.0.1"||e.startsWith("172.22.")||window.location.port==="")return"/api"}return"http://43.156.12.172/:8080/api"}function Ie(e){const r=O(),u=e.startsWith("/")?e:`/${e}`;return`${r}${u}`}const Ge=Object.freeze(Object.defineProperty({__proto__:null,buildApiURL:Ie,getApiBaseURL:O},Symbol.toStringTag,{value:"Module"})),B=Y.create({baseURL:O(),timeout:9e5,withCredentials:!0,maxRedirects:0,headers:{"Content-Type":"application/json"},validateStatus:function(e){return e>=200&&e<600}});B.interceptors.request.use(e=>{const r=sessionStorage.getItem("token");return r&&r!=="null"&&r.trim()!==""?(e.headers.Authorization=`Bearer ${r}`,console.log("请求拦截器添加Authorization头token长度:",r.length)):console.warn("请求拦截器未找到有效的token"),e},e=>(console.error("请求拦截器错误:",e),Promise.reject(e)));B.interceptors.response.use(e=>e.data&&typeof e.data=="string"&&e.data.trim().startsWith("<!DOCTYPE")?(console.error("收到HTML响应可能是认证失败:",e.config.url),sessionStorage.removeItem("token"),sessionStorage.removeItem("user"),D.currentRoute.value.path!=="/login"&&(d.error("认证失败,请重新登录"),D.push("/login")),Promise.reject(new Error("认证失败收到HTML响应"))):e.status===302?(console.error("收到302重定向可能是认证失败:",e.config.url),sessionStorage.removeItem("token"),sessionStorage.removeItem("user"),D.currentRoute.value.path!=="/login"&&(d.error("认证失败,请重新登录"),D.push("/login")),Promise.reject(new Error("认证失败302重定向"))):e,e=>{if(e.response){const{status:r,data:u}=e.response;if(u&&typeof u=="string"&&u.trim().startsWith("<!DOCTYPE"))return console.error("收到HTML响应可能是302重定向:",e.config.url),sessionStorage.removeItem("token"),sessionStorage.removeItem("user"),D.currentRoute.value.path!=="/login"&&(d.error("认证失败,请重新登录"),D.push("/login")),Promise.reject(e);switch(r){case 401:case 302:sessionStorage.removeItem("token"),sessionStorage.removeItem("user"),D.currentRoute.value.path!=="/login"&&(d.error("认证失败,请重新登录"),D.push("/login"));break;case 403:d.error("权限不足");break;case 404:d.error("请求的资源不存在");break;case 500:d.error("服务器内部错误");break;default:d.error((u==null?void 0:u.message)||"请求失败")}}else e.request?d.error("网络错误,请检查网络连接"):d.error("请求配置错误");return Promise.reject(e)});const Pe=e=>B.post("/auth/login",e),we=e=>B.post("/auth/register",e),Oe=()=>B.get("/auth/me"),Je=e=>B.get("/public/users/exists/username",{params:{value:e}}),Ye=e=>B.get("/public/users/exists/email",{params:{value:e}}),q=$("user",()=>{const e=I(null),r=I(null),u=I(!1),a=I(!1);try{const i=sessionStorage.getItem("user"),c=sessionStorage.getItem("token");i&&c&&(e.value=JSON.parse(i),r.value=c)}catch{}const s=b(()=>!!e.value),o=b(()=>{var i;return((i=e.value)==null?void 0:i.role)==="ROLE_ADMIN"}),t=b(()=>{var i;return((i=e.value)==null?void 0:i.username)||""}),T=async i=>{try{u.value=!0;const c=await Pe(i);return c.success?(e.value=c.data.user,r.value=c.data.token,sessionStorage.setItem("token",c.data.token),sessionStorage.setItem("user",JSON.stringify(e.value)),{success:!0}):{success:!1,message:c.message}}catch(c){return console.error("Login error:",c),{success:!1,message:"登录失败,请检查网络连接"}}finally{u.value=!1}},A=async i=>{try{u.value=!0;const c=await we(i);return c.success?{success:!0,message:"注册成功,请登录"}:{success:!1,message:c.message}}catch(c){return console.error("Register error:",c),{success:!1,message:"注册失败,请检查网络连接"}}finally{u.value=!1}},h=async()=>{try{r.value=null,e.value=null,sessionStorage.removeItem("token"),sessionStorage.removeItem("user")}catch(i){console.error("Logout error:",i)}},F=async()=>{try{const i=await Oe();i.success?(e.value=i.data,sessionStorage.setItem("user",JSON.stringify(e.value))):_()}catch(i){console.error("Fetch user error:",i)}},_=()=>{r.value=null,e.value=null,sessionStorage.removeItem("token"),sessionStorage.removeItem("user")};return{user:e,token:r,loading:u,isAuthenticated:s,isAdmin:o,username:t,loginUser:T,registerUser:A,logoutUser:h,fetchCurrentUser:F,clearUserData:_,init:async()=>{if(a.value)return;const i=sessionStorage.getItem("token"),c=sessionStorage.getItem("user");if(i&&c)try{r.value=i,e.value=JSON.parse(c)}catch(w){console.error("Failed to restore user state:",w),_()}a.value=!0},initialized:a}});const M=(e,r)=>{const u=e.__vccOpts||e;for(const[a,s]of r)u[a]=s;return u},Re={class:"navbar-container"},Se={class:"navbar-brand"},Le={class:"navbar-user"},Ve={class:"user-dropdown"},xe={__name:"NavBar",setup(e){const r=q(),u=W(),a=o=>{u.replace(o)},s=async o=>{switch(o){case"profile":d.info("个人资料功能开发中");break;case"admin":r.isAdmin?u.push("/admin/dashboard"):d.warning("权限不足,只有管理员才能访问后台管理");break;case"settings":d.info("设置功能开发中");break;case"logout":try{await K.confirm("确定要退出登录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await r.logoutUser(),d.success("退出登录成功"),u.push("/")}catch{}break}};return(o,t)=>{const T=v("router-link"),A=v("el-menu-item"),h=v("el-menu"),F=v("el-tag"),_=v("el-dropdown-item"),R=v("el-dropdown-menu"),i=v("el-dropdown"),c=v("el-button"),w=v("el-header");return p(),f(w,{class:"navbar"},{default:m(()=>[l("div",Re,[l("div",Se,[g(T,{to:"/",class:"brand-link"},{default:m(()=>[...t[2]||(t[2]=[l("span",{class:"brand-text"},"AIGC Demo",-1)])]),_:1})]),g(h,{mode:"horizontal",class:"navbar-menu","background-color":"#409EFF","text-color":"#fff","active-text-color":"#ffd04b",router:"",onSelect:a},{default:m(()=>[g(A,{index:"/welcome"},{default:m(()=>[...t[3]||(t[3]=[l("span",null,"欢迎页",-1)])]),_:1}),g(A,{index:"/home"},{default:m(()=>[...t[4]||(t[4]=[l("span",null,"首页",-1)])]),_:1}),E(r).isAuthenticated?(p(),f(A,{key:0,index:"/profile"},{default:m(()=>[...t[5]||(t[5]=[l("span",null,"个人主页",-1)])]),_:1})):y("",!0),E(r).isAuthenticated?(p(),f(A,{key:1,index:"/orders"},{default:m(()=>[...t[6]||(t[6]=[l("span",null,"订单管理",-1)])]),_:1})):y("",!0),E(r).isAuthenticated?(p(),f(A,{key:2,index:"/payments"},{default:m(()=>[...t[7]||(t[7]=[l("span",null,"支付记录",-1)])]),_:1})):y("",!0),E(r).isAdmin?(p(),f(A,{key:3,index:"/admin/orders"},{default:m(()=>[...t[8]||(t[8]=[l("span",null,"后台管理",-1)])]),_:1})):y("",!0),E(r).isAdmin?(p(),f(A,{key:4,index:"/admin/dashboard"},{default:m(()=>[...t[9]||(t[9]=[l("span",null,"数据仪表盘",-1)])]),_:1})):y("",!0)]),_:1}),l("div",Le,[E(r).isAuthenticated?(p(),f(i,{key:0,onCommand:s},{dropdown:m(()=>[g(R,null,{default:m(()=>[g(_,{command:"profile"},{default:m(()=>[...t[10]||(t[10]=[k(" 个人资料 ",-1)])]),_:1}),E(r).isAdmin?(p(),f(_,{key:0,command:"admin"},{default:m(()=>[...t[11]||(t[11]=[k(" 后台管理 ",-1)])]),_:1})):y("",!0),g(_,{command:"settings"},{default:m(()=>[...t[12]||(t[12]=[k(" 设置 ",-1)])]),_:1}),g(_,{divided:"",command:"logout"},{default:m(()=>[...t[13]||(t[13]=[k(" 退出登录 ",-1)])]),_:1})]),_:1})]),default:m(()=>{var C;return[l("span",Ve,[l("span",null,S(E(r).username),1),(C=E(r).user)!=null&&C.points?(p(),f(F,{key:0,size:"small",type:"success",class:"points-tag"},{default:m(()=>[k(S(E(r).user.points)+"积分 ",1)]),_:1})):y("",!0)])]}),_:1})):(p(),x(z,{key:1},[g(c,{type:"primary",plain:"",onClick:t[0]||(t[0]=C=>o.$router.push("/login"))},{default:m(()=>[...t[14]||(t[14]=[k(" 登录 ",-1)])]),_:1}),g(c,{type:"success",plain:"",onClick:t[1]||(t[1]=C=>o.$router.push("/register"))},{default:m(()=>[...t[15]||(t[15]=[k(" 注册 ",-1)])]),_:1})],64))])])]),_:1})}}},qe=M(xe,[["__scopeId","data-v-3cf23945"]]);const Me={__name:"Footer",setup(e){return(r,u)=>{const a=v("el-footer");return p(),f(a,{class:"footer"},{default:m(()=>[...u[0]||(u[0]=[l("div",{class:"footer-content"},[l("div",{class:"footer-info"},[l("p",null,"© 2024 AIGC Demo. All rights reserved."),l("p",null,"基于 Vue.js 3 + Element Plus 构建")]),l("div",{class:"footer-links"},[l("a",{href:"#",class:"footer-link"},"关于我们"),l("a",{href:"#",class:"footer-link"},"联系我们"),l("a",{href:"#",class:"footer-link"},"隐私政策"),l("a",{href:"#",class:"footer-link"},"服务条款")])],-1)])]),_:1})}}},Ne=M(Me,[["__scopeId","data-v-884da523"]]);const Ue=["data-route"],$e={__name:"App",setup(e){const r=j(),u=b(()=>!1),a=b(()=>!["login","register"].includes(r.name));return H(r,s=>{console.log("路由变化:",s.name)},{immediate:!0}),console.log("App.vue 加载成功"),(s,o)=>{const t=v("router-view");return p(),x("div",{id:"app","data-route":E(r).name},[l("div",{class:L(["fullscreen-background",E(r).name])},null,2),u.value?(p(),f(qe,{key:0})):y("",!0),l("main",{class:L({"with-navbar":u.value})},[g(t)],2),a.value?(p(),f(Ne,{key:1})):y("",!0)],8,Ue)}}},P=G($e),We=J();P.use(We);P.use(D);P.use(Q,{locale:X});P.mount("#app");export{M as _,B as a,n as b,Je as c,Ye as d,O as e,Ge as f,Oe as g,q as u};