- 修复BCryptPasswordEncoder密码验证问题 - 实现密码设置提示弹窗功能(仅对无密码用户显示一次) - 优化修改密码逻辑和验证流程 - 更新Welcome页面背景样式 - 清理临时SQL文件和测试代码 - 移动数据库备份文件到database/backups目录 - 删除不必要的MD文档和临时文件
2 lines
25 KiB
JavaScript
2 lines
25 KiB
JavaScript
import{aA as ds,r as I,h as rs,U as bs,al as Y,z as E,I as us,J as g,B as s,D as H,R as i,u as m,P as o,A as V,Q as X,a4 as ps,W as ns,m as ks,c as ls,ar as $s,O as Q,K as Ps,M as ts}from"./vue-vendor-164775a6.js";import{_ as ms,e as Cs,f as ws,u as Is,a as Ss,L as qs}from"./index-020bfa5d.js";import{_ as cs}from"./avatar-default-20a1956c.js";import Ts from"./MyWorks-0ec244a3.js";import{c as Ds,E as r,u as Es,o as Ls,f as Us,v as Vs,q as As,r as Ms,t as as,d as N}from"./element-plus-83a396df.js";import{a as gs,b as vs,t as Ns,d as zs,e as Rs}from"./payments-bf84b0ba.js";import{g as Fs}from"./members-af09c0bb.js";import"./utils-edfcd65b.js";import"./userWorks-f3d1396f.js";const Hs={class:"payment-content"},Os={class:"payment-methods"},Bs={class:"method-icon alipay-icon"},Gs={class:"amount-section"},Ws={class:"amount-value"},Js={class:"qr-section"},Ks={class:"qr-code"},Qs={ref:"qrPlaceholder",class:"qr-placeholder"},Ys={class:"qr-grid"},js={class:"action-section"},Xs={class:"test-payment-section",style:{"margin-top":"16px","text-align":"center"}},Zs=["disabled"],xs={class:"footer-link"},se={__name:"PaymentModal",props:{modelValue:{type:Boolean,default:!1},title:{type:String,default:"标准版会员"},amount:{type:[String,Number],default:"32.00"},orderId:{type:String,default:""}},emits:["update:modelValue","pay-success","pay-error"],setup(O,{emit:n}){const P=O,d=n,S=ds(),y=I(!1),W=I("alipay"),z=I(!1),R=I(null);let k=null;rs(()=>P.modelValue,u=>{y.value=u,u&&Z()}),rs(y,u=>{d("update:modelValue",u),u||L()});const j=u=>{W.value=u},Z=async()=>{var u,a,C,$,b,A;try{z.value=!0,r.info("正在创建支付订单...");const v={orderId:P.orderId,amount:P.amount.toString(),method:"ALIPAY",description:`${P.title} - 支付宝支付`};console.log("=== 开始支付流程 ==="),console.log("支付数据:",v),console.log("1. 创建支付订单...");const U=await gs(v);if(console.log("创建支付订单响应:",U),U.data&&U.data.success){const G=U.data.data.id;R.value=G,console.log("2. 支付订单创建成功,ID:",G),r.info("正在生成支付宝二维码..."),console.log("3. 创建支付宝支付...");const q=await vs({paymentId:G});if(console.log("支付宝支付响应:",q),console.log("支付宝支付响应数据:",q.data),console.log("支付宝支付响应数据详情:",JSON.stringify(q.data,null,2)),q.data&&q.data.success){const J=q.data.data.qrCode;console.log("4. 支付宝二维码:",J);try{console.log("开始生成二维码,内容:",J);const M=`https://quickchart.io/qr?text=${encodeURIComponent(J)}&size=200&margin=0&dark=ffffff&light=1a1a1a`;console.log("5. 二维码图片URL已生成");const F=document.querySelector("#qr-code-img");F&&(F.src=M,F.style.display="block",console.log("6. 二维码图片已设置"));const K=document.querySelector(".qr-placeholder");K&&(K.style.display="none",console.log("7. 模拟二维码已隐藏")),r.success("二维码已生成,请使用支付宝扫码支付"),console.log("=== 支付流程完成,开始轮询支付状态 ==="),x(G)}catch(M){console.error("生成二维码失败:",M),r.error("生成二维码失败,请重试")}}else console.error("支付宝响应失败:",q),r.error(((u=q.data)==null?void 0:u.message)||"生成二维码失败"),d("pay-error",new Error(((a=q.data)==null?void 0:a.message)||"生成二维码失败"))}else console.error("创建支付订单失败:",U),r.error(((C=U.data)==null?void 0:C.message)||"创建支付订单失败"),d("pay-error",new Error((($=U.data)==null?void 0:$.message)||"创建支付订单失败"))}catch(v){console.error("=== 支付流程出错 ==="),console.error("错误详情:",v),console.error("错误响应:",v.response),console.error("错误状态:",(b=v.response)==null?void 0:b.status),console.error("错误数据:",(A=v.response)==null?void 0:A.data),r.error(`支付失败:${v.message||"请重试"}`),d("pay-error",v)}finally{z.value=!1}},x=u=>{L();let a=0;const C=60,$=async()=>{if(a>=C){console.log("轮询达到最大次数,停止轮询"),L();return}try{console.log(`轮询支付状态 (${a+1}/${C}),支付ID:`,u);const b=await zs(u);if(b.data&&b.data.success){const A=b.data.data,v=A.status;if(console.log("支付状态:",v,"状态说明:",es(v)),v==="SUCCESS"||v==="COMPLETED"){console.log("✅ 支付成功!支付数据:",A),L(),r.success("支付成功!"),d("pay-success",A),setTimeout(()=>{y.value=!1},2e3);return}else if(v==="FAILED"||v==="CANCELLED"){console.log("支付失败或取消"),L(),r.warning("支付已取消或失败"),d("pay-error",new Error("支付已取消或失败"));return}else v==="PROCESSING"?(console.log("支付处理中..."),a%6===0&&r.info("支付处理中,请稍候...")):v==="PENDING"&&(console.log("支付待处理中(等待支付宝回调)..."),a%6===0&&r.info("等待支付确认,请确保已完成支付..."))}a++,k=setTimeout($,1e4)}catch(b){console.error("轮询支付状态失败:",b),a++,a<C&&(k=setTimeout($,1e4))}};setTimeout(()=>{$()},5e3)},L=()=>{k&&(clearTimeout(k),k=null,console.log("已停止轮询支付状态"))},ss=()=>{L(),y.value=!1};bs(()=>{L()});const es=u=>({PENDING:"待支付 - 等待用户扫码支付",PROCESSING:"处理中 - 支付宝正在处理支付",SUCCESS:"支付成功",COMPLETED:"支付完成",FAILED:"支付失败",CANCELLED:"已取消",REFUNDED:"已退款"})[u]||"未知状态",os=async()=>{var u;if(!R.value){r.warning("支付订单尚未创建,请稍候...");return}try{z.value=!0,r.info("正在模拟支付完成..."),console.log("模拟支付完成,支付ID:",R.value);const a=await Ns(R.value);console.log("✅ 模拟支付完成响应:",a),console.log("✅ 响应数据:",a.data),a.data&&a.data.success?(console.log("✅ 模拟支付完成成功,支付数据:",a.data.data),r.success("支付完成!"),L(),d("pay-success",a.data.data),setTimeout(()=>{y.value=!1},2e3)):(console.error("❌ 模拟支付完成失败,响应:",a),r.error(((u=a.data)==null?void 0:u.message)||"模拟支付完成失败"))}catch(a){console.error("模拟支付完成失败:",a),r.error(`模拟支付完成失败:${a.message||"请重试"}`)}finally{z.value=!1}},B=()=>{S.push("/terms-of-service")};return(u,a)=>{const C=Y("el-icon"),$=Y("el-dialog");return E(),us($,{modelValue:y.value,"onUpdate:modelValue":a[1]||(a[1]=b=>y.value=b),title:O.title,width:"500px",class:"payment-modal",modal:!0,"close-on-click-modal":!1,"close-on-press-escape":!0,onClose:ss,"show-close":!0,"custom-class":"payment-modal-dialog","modal-class":"payment-modal-overlay"},{default:g(()=>[s("div",Hs,[s("div",Os,[s("div",{class:H(["payment-method",{active:W.value==="alipay"}]),onClick:a[0]||(a[0]=b=>j("alipay"))},[s("div",Bs,[i(C,null,{default:g(()=>[i(m(Ds))]),_:1})]),a[2]||(a[2]=s("span",null,"Alipay扫码支付",-1))],2)]),s("div",Gs,[a[3]||(a[3]=s("div",{class:"amount-label"},"金额",-1)),s("div",Ws,"$"+o(O.amount),1)]),s("div",Js,[s("div",Ks,[a[4]||(a[4]=s("img",{id:"qr-code-img",style:{display:"none",width:"200px",height:"200px",margin:"0",padding:"0",border:"none","object-fit":"contain",background:"#1a1a1a"},alt:"支付二维码"},null,-1)),s("div",Qs,[s("div",Ys,[(E(),V(X,null,ps(64,b=>s("div",{class:"qr-dot",key:b})),64))])],512)]),a[5]||(a[5]=s("div",{class:"qr-tip"},"支付前请阅读《Vionow支付服务条款》",-1))]),s("div",js,[a[6]||(a[6]=s("div",{class:"pay-tip"},[s("p",null,"请使用支付宝扫描上方二维码完成支付"),s("p",{class:"tip-small"},"支付完成后页面将自动更新")],-1)),s("div",Xs,[s("button",{class:"test-payment-btn",onClick:os,disabled:!R.value||z.value,style:{padding:"8px 16px",background:"#ff9800",color:"white",border:"none","border-radius":"4px",cursor:"pointer","font-size":"12px",opacity:"0.8"}}," 🧪 模拟支付完成(测试用) ",8,Zs)])]),s("div",xs,[s("a",{href:"#",onClick:ns(B,["prevent"])},"《Vionow支付服务条款》")])])]),_:1},8,["modelValue","title"])}}},ee=ms(se,[["__scopeId","data-v-4ecef45d"]]),oe=(O={})=>Cs.get("/points/history",{params:O});const te={class:"subscription-page"},ae={class:"sidebar"},ne={class:"nav-menu"},ie={class:"divider"},re={class:"tools-menu"},le={class:"main-content"},ce={class:"top-header"},de={class:"header-right"},ue={class:"points-display"},pe={class:"points-icon"},me={class:"points-number"},ge={class:"user-avatar"},ve=["alt"],fe={class:"top-merged-card"},_e={class:"row-top"},he={class:"user-left"},ye={class:"avatar-wrap"},be=["alt"],ke={class:"user-meta"},$e={class:"username"},Pe={class:"user-id"},Ce={class:"user-right"},we={class:"points-pill"},Ie={class:"star-icon"},Se={class:"row-bottom"},qe={class:"summary-item"},Te={class:"summary-label"},De={class:"summary-value"},Ee={class:"summary-item"},Le={class:"summary-label"},Ue={class:"summary-value"},Ve={class:"summary-item"},Ae={class:"summary-label"},Me={class:"summary-value highlight"},Ne={class:"star-icon"},ze={class:"points-number"},Re={class:"subscription-packages"},Fe={class:"section-title"},He={class:"packages-grid"},Oe={class:"package-header"},Be={class:"package-title"},Ge={class:"package-price"},We={class:"package-button current"},Je={class:"package-features"},Ke={class:"feature-item"},Qe={class:"package-header"},Ye={class:"package-title"},je={class:"discount-tag"},Xe={class:"package-price"},Ze={class:"points-box"},xe={class:"package-features"},so={class:"feature-item"},eo={class:"feature-item"},oo={class:"feature-item"},to={class:"package-header"},ao={class:"package-title"},no={class:"value-tag"},io={class:"package-price"},ro={class:"points-box"},lo={class:"package-features"},co={class:"feature-item"},uo={class:"feature-item"},po={class:"feature-item"},mo={class:"feature-item"},go={class:"points-history-content"},vo={class:"points-summary"},fo={class:"summary-stats"},_o={class:"stat-item"},ho={class:"stat-label"},yo={class:"stat-value positive"},bo={class:"stat-item"},ko={class:"stat-label"},$o={class:"stat-value negative"},Po={class:"stat-item"},Co={class:"stat-label"},wo={class:"stat-value current"},Io={class:"points-history-list"},So={key:0,class:"empty-history"},qo={class:"history-header"},To={class:"history-details"},Do={class:"history-info"},Eo={key:0},Lo={key:1},Uo={__name:"Subscription",setup(O){const{t:n}=ws(),P=ds(),d=Is(),S=I({username:"",userId:null,points:0,frozenPoints:0,email:"",nickname:""}),y=I({currentPlan:n("subscription.free"),expiryTime:n("subscription.permanent"),paidAt:null}),W=e=>{if(!e)return n("subscription.free");const t=e.replace(/会员|套餐|版本/g,"").toLowerCase();return t.includes("专业")||t.includes("premium")||t.includes("professional")?n("subscription.professional"):t.includes("标准")||t.includes("standard")?n("subscription.standard"):t.includes("免费")||t.includes("free")?n("subscription.free"):e},z=e=>e&&(e==="充值"||e.toLowerCase()==="recharge"?n("subscription.recharge"):e==="消耗"||e.toLowerCase()==="consume"||e.toLowerCase()==="consumption"?n("subscription.consume"):e),R=e=>e==="充值"||e.toLowerCase()==="recharge",k=I({free:0,standard:59,premium:259}),j=async()=>{var e,t,p,w,_,T,c,D;try{if(d.initialized||await d.init(),!d.isAuthenticated){console.warn("用户未认证,跳转到登录页"),r.warning(n("subscription.pleaseLogin")),P.push("/login");return}const f=d.token||sessionStorage.getItem("token");if(!f||f==="null"||f.trim()===""){console.warn("未找到有效的token,跳转到登录页"),r.warning(n("subscription.pleaseLogin")),P.push("/login");return}console.log("开始加载用户订阅信息...");const h=await Rs();if(console.log("用户订阅信息响应完整对象:",h),console.log("响应状态码:",h.status),console.log("响应数据:",h.data),console.log("响应数据类型:",typeof h.data),typeof h.data=="string"&&h.data.includes("<!DOCTYPE html>")){console.error("收到HTML响应,可能是认证失败导致重定向到登录页");return}if(h.data)if(h.data.success===!0&&h.data.data){const l=h.data.data;S.value={username:l.username||"",userId:l.userId||null,points:l.points||0,frozenPoints:l.frozenPoints||0,email:l.email||"",nickname:l.nickname||""},y.value={currentPlan:W(l.currentPlan),expiryTime:l.expiryTime||n("subscription.permanent"),paidAt:l.paidAt||null},console.log("用户信息加载成功:",S.value),console.log("订阅信息加载成功:",y.value),console.log("后端返回的 currentPlan:",l.currentPlan),console.log("设置后的 subscriptionInfo.currentPlan:",y.value.currentPlan)}else{console.warn("响应格式不符合预期,尝试直接使用response.data");const l=h.data.data||h.data;l&&typeof l=="object"&&(l.username||l.userId)?(S.value={username:l.username||"",userId:l.userId||null,points:l.points||0,frozenPoints:l.frozenPoints||0,email:l.email||"",nickname:l.nickname||""},y.value={currentPlan:W(l.currentPlan),expiryTime:l.expiryTime||n("subscription.permanent"),paidAt:l.paidAt||null},console.log("用户信息加载成功(备用路径):",S.value),console.log("后端返回的 currentPlan(备用路径):",l.currentPlan),console.log("设置后的 subscriptionInfo.currentPlan(备用路径):",y.value.currentPlan)):(console.error("获取用户订阅信息失败: 响应数据为空或格式不正确"),console.error("完整响应:",JSON.stringify(h.data,null,2)),r.warning(n("subscription.loadUserInfoFailed")))}else console.error("获取用户订阅信息失败: response.data为空"),console.error("完整响应对象:",h),r.warning(n("subscription.loadUserInfoFailed"))}catch(f){if(console.error("加载用户订阅信息失败:",f),console.error("错误详情:",((e=f.response)==null?void 0:e.data)||f.message),((t=f.response)==null?void 0:t.status)===401||((p=f.response)==null?void 0:p.status)===403||((w=f.response)==null?void 0:w.status)===302||(_=f.message)!=null&&_.includes("认证失败")||(T=f.message)!=null&&T.includes("redirect")){console.warn("认证失败,响应拦截器已处理跳转");return}r.error(n("subscription.loadUserInfoError",{message:((D=(c=f.response)==null?void 0:c.data)==null?void 0:D.message)||f.message||n("subscription.refreshPage")}))}},Z=async()=>{var e;try{const t=await Fs();(((e=t.data)==null?void 0:e.data)||t.data||[]).forEach(w=>{const _=(w.name||w.displayName||"").toLowerCase();_.includes("免费")||_.includes("free")?k.value.free=w.price||0:_.includes("标准")||_.includes("standard")?k.value.standard=w.price||59:(_.includes("专业")||_.includes("premium")||_.includes("professional"))&&(k.value.premium=w.price||259)}),console.log("会员等级价格配置加载成功:",k.value)}catch(t){console.error("加载会员等级价格配置失败:",t),k.value={free:0,standard:59,premium:259}}};ks(async()=>{await Z(),d.initialized||await d.init(),d.isAuthenticated?(d.user&&(S.value={username:d.user.username||"",userId:d.user.id||null,points:d.user.points||0,frozenPoints:d.user.frozenPoints||0,email:d.user.email||"",nickname:d.user.nickname||""}),await j()):console.warn("用户未登录,路由守卫应该已处理跳转")});const x=()=>{P.push("/profile")},L=()=>{P.push("/works")},ss=()=>{P.push("/text-to-video/create")},es=()=>{P.push("/image-to-video/create")},os=()=>{P.push("/storyboard-video/create")},B=I(!1),u=I(!1),a=I([]),C=I(!1),$=I({}),b=ls(()=>a.value.filter(e=>e.type==="充值").reduce((e,t)=>e+(t.points||0),0)),A=ls(()=>Math.abs(a.value.filter(e=>e.type==="消耗").reduce((e,t)=>e+(t.points||0),0))),v=async()=>{B.value=!0,await U()},U=async()=>{u.value=!0;try{const e=await oe({page:0,size:100});e.data.success?a.value=e.data.data||[]:(console.error("获取积分使用历史失败:",e.data.message),r.error(n("subscription.loadPointsHistoryFailed")))}catch(e){console.error("加载积分使用历史失败:",e),r.error(n("subscription.loadPointsHistoryFailed"))}finally{u.value=!1}},G=()=>{B.value=!1},q=e=>e?new Date(e).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"",J=()=>{P.push("/works")},M=I("free"),F=e=>{M.value=e},K=async e=>{console.log("handleSubscribe 被调用,planType:",e);try{console.log("开始处理订阅...");const t=_s(e);console.log("获取到的套餐信息:",t),$.value={title:`${t.name}会员`,amount:t.price,orderId:`SUB_${e}_${Date.now()}`,planType:e,planInfo:t},console.log("支付数据设置完成:",$.value),C.value=!0,console.log("支付模态框应该已显示"),r.info(n("subscription.generatingQRCode")),await fs(e,t)}catch(t){console.error("订阅处理失败:",t),r.error(n("subscription.subscriptionFailed"))}},fs=async(e,t)=>{var p,w;try{console.log("=== 开始生成二维码 ===");const _={orderId:`SUB_${e}_${Date.now()}`,amount:t.price.toString(),method:"ALIPAY",description:`${t.name}会员 - 支付宝支付`};console.log("1. 创建支付订单,数据:",_);const T=await gs(_);if(console.log("创建支付订单响应:",T),T.data&&T.data.success){const c=T.data.data.id;console.log("2. 支付订单创建成功,ID:",c),console.log("3. 创建支付宝支付...");const D=await vs({paymentId:c});if(console.log("支付宝支付响应:",D),D.data&&D.data.success){const f=D.data.data.qrCode;if(console.log("4. 支付宝二维码:",f),f)try{console.log("开始生成二维码,内容:",f);const h=`https://quickchart.io/qr?text=${encodeURIComponent(f)}&size=200&margin=0&dark=ffffff&light=1a1a1a`;console.log("5. 二维码图片URL已生成");const l=document.querySelector("#qr-code-img");l&&(l.src=h,l.style.display="block",console.log("6. 二维码图片已设置"));const is=document.querySelector(".qr-placeholder");is&&(is.style.display="none",console.log("7. 模拟二维码已隐藏")),r.success(n("subscription.qrCodeGenerated")),console.log("=== 二维码生成完成 ===")}catch(h){console.error("生成二维码失败:",h),r.error(n("subscription.qrCodeGenerationFailed"))}else r.error(n("subscription.qrCodeEmpty"))}else console.error("支付宝响应失败:",D),r.error(((p=D.data)==null?void 0:p.message)||n("subscription.qrCodeGenerationFailed"))}else console.error("创建支付订单失败:",T),r.error(((w=T.data)==null?void 0:w.message)||n("subscription.createPaymentFailed"))}catch(_){console.error("=== 二维码生成出错 ==="),console.error("错误详情:",_),r.error(n("subscription.qrCodeGenerationError",{message:_.message||n("subscription.pleaseTryAgain")}))}},_s=e=>({standard:{name:n("subscription.standard"),price:59,points:200,description:n("subscription.standardDescription")},premium:{name:n("subscription.professional"),price:259,points:1e3,description:n("subscription.premiumDescription")}})[e],hs=async e=>{try{console.log("✅ 收到支付成功事件,支付数据:",e),r.success(n("subscription.paymentSuccess")),C.value=!1,await j(),r.success(n("subscription.infoUpdated"))}catch(t){console.error("❌ 支付成功处理失败:",t),r.error(n("subscription.paymentProcessingFailed"))}},ys=e=>{console.error("支付失败:",e),r.error(n("subscription.paymentFailed"))};return(e,t)=>{const p=Y("el-icon"),w=Y("el-tag"),_=Y("el-dialog"),T=$s("loading");return E(),V(X,null,[s("div",te,[s("aside",ae,[t[9]||(t[9]=s("div",{class:"logo"},[s("img",{src:Ss,alt:"Logo"})],-1)),s("nav",ne,[s("div",{class:"nav-item",onClick:x},[i(p,null,{default:g(()=>[i(m(Es))]),_:1}),s("span",null,o(e.$t("common.profile")),1)]),s("div",{class:H(["nav-item",{active:e.currentSection==="subscription"}]),onClick:t[0]||(t[0]=c=>e.setSection("subscription"))},[i(p,null,{default:g(()=>[i(m(Ls))]),_:1}),s("span",null,o(e.$t("subscription.title")),1)],2),s("div",{class:"nav-item",onClick:L},[i(p,null,{default:g(()=>[i(m(Us))]),_:1}),s("span",null,o(e.$t("profile.myWorks")),1)])]),s("div",ie,[s("span",null,o(e.$t("profile.tools")),1)]),s("nav",re,[s("div",{class:"nav-item",onClick:ss},[i(p,null,{default:g(()=>[i(m(Vs))]),_:1}),s("span",null,o(e.$t("home.textToVideo")),1)]),s("div",{class:"nav-item",onClick:es},[i(p,null,{default:g(()=>[i(m(As))]),_:1}),s("span",null,o(e.$t("home.imageToVideo")),1)]),s("div",{class:"nav-item storyboard-item",onClick:os},[i(p,null,{default:g(()=>[i(m(Ms))]),_:1}),s("span",null,o(e.$t("home.storyboardVideo")),1),i(w,{size:"small",type:"primary",class:"sora-tag"},{default:g(()=>[...t[8]||(t[8]=[Q("Sora2.0",-1)])]),_:1})])])]),s("main",le,[s("header",ce,[s("div",de,[s("div",ue,[s("div",pe,[i(p,null,{default:g(()=>[i(m(as))]),_:1})]),s("span",me,o(m(d).availablePoints),1)]),i(qs),s("div",ge,[s("img",{src:cs,alt:e.$t("subscription.userAvatar")},null,8,ve)])])]),e.currentSection==="works"?(E(),us(Ts,{key:0})):(E(),V(X,{key:1},[s("section",fe,[s("div",_e,[s("div",he,[s("div",ye,[s("img",{src:cs,alt:e.$t("subscription.userAvatar"),class:"avatar-image"},null,8,be)]),s("div",ke,[s("div",$e,o(S.value.username||m(n)("subscription.loading")),1),s("div",Pe,o(e.$t("profile.userId"))+" "+o(S.value.userId||"..."),1)])]),s("div",Ce,[s("div",we,[s("div",Ie,[i(p,null,{default:g(()=>[i(m(as))]),_:1})]),s("span",null,o(m(d).availablePoints),1)]),s("button",{class:"mini-btn",onClick:v},o(e.$t("subscription.pointsDetails")),1),s("button",{class:"mini-btn",onClick:J},o(e.$t("subscription.myOrders")),1)])]),s("div",Se,[s("div",qe,[s("div",Te,o(e.$t("subscription.currentActivePlan")),1),s("div",De,o(y.value.currentPlan||m(n)("subscription.free")),1)]),t[10]||(t[10]=s("div",{class:"divider-v"},null,-1)),s("div",Ee,[s("div",Le,o(e.$t("subscription.expiryTime")),1),s("div",Ue,o(y.value.expiryTime||m(n)("subscription.permanent")),1)]),t[11]||(t[11]=s("div",{class:"divider-v"},null,-1)),s("div",Ve,[s("div",Ae,o(e.$t("subscription.remainingPoints")),1),s("div",Me,[s("div",Ne,[i(p,null,{default:g(()=>[i(m(as))]),_:1})]),s("span",ze,o(m(d).availablePoints),1)])])])]),s("section",Re,[s("h3",Fe,o(e.$t("subscription.plans")),1),s("div",He,[s("div",{class:H(["package-card free-card",{selected:M.value==="free"}]),onClick:t[1]||(t[1]=c=>F("free"))},[s("div",Oe,[s("h4",Be,o(e.$t("subscription.free")),1)]),s("div",Ge,"$"+o(k.value.free)+o(e.$t("subscription.perMonth")),1),t[12]||(t[12]=s("div",{class:"points-box points-box-placeholder"}," ",-1)),s("button",We,o(e.$t("subscription.currentPackage")),1),s("div",Je,[s("div",Ke,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.freeNewUserBonus")),1)])])],2),s("div",{class:H(["package-card standard-card",{selected:M.value==="standard"}]),onClick:t[3]||(t[3]=c=>F("standard"))},[s("div",Qe,[s("h4",Ye,o(e.$t("subscription.standard")),1),s("div",je,o(e.$t("subscription.firstPurchaseDiscount")),1)]),s("div",Xe,"$"+o(k.value.standard)+o(e.$t("subscription.perMonth")),1),s("div",Ze,o(e.$t("subscription.standardPoints")),1),s("button",{class:"package-button subscribe",onClick:t[2]||(t[2]=ns(c=>K("standard"),["stop"]))},o(e.$t("subscription.subscribe")),1),s("div",xe,[s("div",so,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.fastGeneration")),1)]),s("div",eo,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.commercialUse")),1)]),s("div",oo,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.noWatermark")),1)])])],2),s("div",{class:H(["package-card premium-card",{selected:M.value==="premium"}]),onClick:t[5]||(t[5]=c=>F("premium"))},[s("div",to,[s("h4",ao,o(e.$t("subscription.professional")),1),s("div",no,o(e.$t("subscription.bestValue")),1)]),s("div",io,"$"+o(k.value.premium)+o(e.$t("subscription.perMonth")),1),s("div",ro,o(e.$t("subscription.premiumPoints")),1),s("button",{class:"package-button premium",onClick:t[4]||(t[4]=ns(c=>K("premium"),["stop"]))},o(e.$t("subscription.subscribe")),1),s("div",lo,[s("div",co,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.superFastGeneration")),1)]),s("div",uo,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.commercialUse")),1)]),s("div",po,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.noWatermark")),1)]),s("div",mo,[i(p,{class:"check-icon"},{default:g(()=>[i(m(N))]),_:1}),s("span",null,o(e.$t("subscription.earlyAccess")),1)])])],2)])])],64))])]),i(_,{modelValue:B.value,"onUpdate:modelValue":t[6]||(t[6]=c=>B.value=c),title:e.$t("subscription.pointsUsageHistory"),width:"80%",class:"points-history-dialog",modal:!0,"close-on-click-modal":!0,"close-on-press-escape":!0,onClose:G},{default:g(()=>[s("div",go,[s("div",vo,[s("h3",null,o(e.$t("subscription.pointsUsageOverview")),1),s("div",fo,[s("div",_o,[s("span",ho,o(e.$t("subscription.totalRecharge"))+":",1),s("span",yo,"+"+o(b.value||0),1)]),s("div",bo,[s("span",ko,o(e.$t("subscription.totalConsumption"))+":",1),s("span",$o,o(A.value||0),1)]),s("div",Po,[s("span",Co,o(e.$t("subscription.currentPoints"))+":",1),s("span",wo,o((S.value.points||0)-(S.value.frozenPoints||0)),1)])])]),Ps((E(),V("div",Io,[a.value.length===0&&!u.value?(E(),V("div",So,[s("p",null,o(e.$t("subscription.noPointsHistory")),1)])):ts("",!0),(E(!0),V(X,null,ps(a.value,(c,D)=>(E(),V("div",{class:"history-item",key:D},[s("div",qo,[s("span",{class:H(["history-type",R(c.type)?"recharge":"consume"])},o(z(c.type)),3),s("span",{class:H(["history-points",c.points>0?"positive":"negative"])},o(c.points>0?"+":"")+o(c.points),3)]),s("div",To,[s("div",Do,[s("p",null,[s("strong",null,o(e.$t("subscription.description"))+":",1),Q(o(c.description),1)]),s("p",null,[s("strong",null,o(e.$t("subscription.time"))+":",1),Q(o(q(c.time)),1)]),c.orderNumber?(E(),V("p",Eo,[s("strong",null,o(e.$t("subscription.orderNumber"))+":",1),Q(o(c.orderNumber),1)])):ts("",!0),c.taskId?(E(),V("p",Lo,[s("strong",null,o(e.$t("subscription.taskId"))+":",1),Q(o(c.taskId),1)])):ts("",!0)])])]))),128))])),[[T,u.value]])])]),_:1},8,["modelValue","title"]),i(ee,{modelValue:C.value,"onUpdate:modelValue":t[7]||(t[7]=c=>C.value=c),title:$.value.title,amount:$.value.amount,"order-id":$.value.orderId,onPaySuccess:hs,onPayError:ys},null,8,["modelValue","title","amount","order-id"])],64)}}},Bo=ms(Uo,[["__scopeId","data-v-3dbc3136"]]);export{Bo as default};
|