import{aA as Re,r as f,l as x,m as $e,al as y,z as P,A as S,B as s,R as t,J as a,u as p,aD as Fe,D as ue,Q as Be,a4 as Ie,M as z,O as C,P as k,K as U,aj as ce,ag as G,I as Ae}from"./vue-vendor-164775a6.js";import{_ as Le}from"./welcome-6f9b345d.js";import{E as b,g as Me,u as D,s as qe,d as pe,b as Ee,e as Oe,l as me,H as Ne}from"./element-plus-4a19e5e8.js";import{a as H,e as ve,_ as je}from"./index-2fb4354b.js";import{c as ze,g as Ge}from"./members-fa2c2290.js";import"./utils-edfcd65b.js";const J={getCleanupStats(){return H({url:"/api/cleanup/cleanup-stats",method:"GET"})},performFullCleanup(){return H({url:"/api/cleanup/full-cleanup",method:"POST"})},cleanupUserTasks(d){return H({url:`/api/cleanup/user-tasks/${d}`,method:"POST"})},async getCleanupStatsRaw(){try{const d=await fetch(`${ve()}/cleanup/cleanup-stats`);if(d.ok)return await d.json();throw new Error("获取统计信息失败")}catch(d){throw console.error("获取统计信息失败:",d),d}},async performFullCleanupRaw(){try{const d=await fetch(`${ve()}/cleanup/full-cleanup`,{method:"POST",headers:{"Content-Type":"application/json"}});if(d.ok)return await d.json();throw new Error("执行完整清理失败")}catch(d){throw console.error("执行完整清理失败:",d),d}},async cleanupUserTasksRaw(d){try{const g=await fetch(`/api/cleanup/user-tasks/${d}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(g.ok)return await g.json();throw new Error("清理用户任务失败")}catch(g){throw console.error("清理用户任务失败:",g),g}}};const He={class:"system-settings"},Je={class:"sidebar"},Ke={class:"nav-menu"},Qe={class:"nav-item active"},We={class:"main-content"},Xe={class:"top-header"},Ye={class:"search-bar"},Ze={class:"header-actions"},es={class:"notification-icon-wrapper"},ss={class:"user-avatar"},ts={class:"settings-tabs"},as={class:"tab-nav"},ls={key:0,class:"tab-content"},os={class:"membership-cards"},ns={class:"card-header"},is={class:"card-body"},rs={class:"price"},ds={class:"description"},us={class:"card-footer"},cs={key:1,class:"tab-content"},ps={class:"cleanup-stats"},ms={class:"card-header"},vs={key:0,class:"stats-content"},fs={class:"stats-grid"},gs={class:"stat-item"},_s={class:"stat-value"},ys={class:"stat-item"},bs={class:"stat-value"},ws={class:"stat-item"},Cs={class:"stat-value"},ks={class:"stat-item"},hs={class:"stat-value"},Ps={class:"stat-item"},Vs={class:"stat-value"},Ts={class:"stat-item"},xs={class:"stat-value"},Ss={class:"cleanup-actions"},Us={class:"actions-content"},Ds={class:"action-buttons"},Rs={class:"cleanup-config"},$s={class:"config-content"},Fs={class:"modal-content"},Bs={class:"form-group"},Is={class:"form-group"},As={class:"price-input"},Ls={class:"form-group"},Ms={class:"form-group"},qs={class:"radio-group"},Es={class:"radio-option"},Os={class:"radio-option"},Ns={class:"radio-option"},js={class:"user-cleanup-content"},zs={class:"dialog-footer"},Gs={__name:"SystemSettings",setup(d){const g=Re(),h=f("membership"),w=f([]),K=f(!1),V=f(!1),R=f(null),o=x({id:null,level:"",price:"",resourcePoints:0,validityPeriod:"quarterly"}),fe=x({level:[{required:!0,message:"请选择会员等级",trigger:"change"}],price:[{required:!0,message:"请输入价格",trigger:"blur"},{pattern:/^\d+(\.\d+)?$/,message:"请输入有效的数字",trigger:"blur"}],resourcePoints:[{required:!0,message:"请输入资源点数量",trigger:"blur"}],validityPeriod:[{required:!0,message:"请选择有效期",trigger:"change"}]}),_=f(null),A=f(!1),L=f(!1),M=f(!1),q=f(!1),$=f(!1),F=f(null),B=x({username:""}),ge=x({username:[{required:!0,message:"请输入用户名",trigger:"blur"},{min:2,max:50,message:"用户名长度在2到50个字符",trigger:"blur"}]}),T=x({retentionDays:30,archiveRetentionDays:365}),_e=()=>{g.push("/home")},ye=()=>{g.push("/member-management")},be=()=>{g.push("/orders")},we=()=>{g.push("/api-management")},Ce=()=>{g.push("/generate-task-record")},ke=n=>{o.id=n.id,o.level=n.name||n.displayName,o.price=n.price?String(n.price):"0",o.resourcePoints=n.pointsBonus||n.resourcePoints||0,o.validityPeriod="monthly",V.value=!0},E=()=>{V.value=!1,R.value&&R.value.resetFields()},he=n=>{o.price=n.replace(/[^\d.]/g,"")},Pe=async()=>{var e,r;if(await R.value.validate())try{const u={price:parseFloat(o.price),resourcePoints:parseInt(o.resourcePoints),pointsBonus:parseInt(o.resourcePoints),description:`包含${o.resourcePoints}资源点/月`};await ze(o.id,u);const m=w.value.findIndex(i=>i.id===o.id);m!==-1&&(w.value[m].price=parseFloat(o.price),w.value[m].pointsBonus=parseInt(o.resourcePoints),w.value[m].resourcePoints=parseInt(o.resourcePoints),w.value[m].description=`包含${o.resourcePoints}资源点/月`),b.success("会员等级更新成功"),V.value=!1,await Q()}catch(u){console.error("更新会员等级失败:",u),b.error("更新会员等级失败: "+(((r=(e=u.response)==null?void 0:e.data)==null?void 0:r.message)||u.message))}},Q=async()=>{var n,e,r,u,m;K.value=!0;try{const i=await Ge();console.log("会员等级配置响应:",i);let c=[];i.data&&(i.data.success&&i.data.data?c=i.data.data:Array.isArray(i.data)?c=i.data:i.data.data&&Array.isArray(i.data.data)&&(c=i.data.data)),console.log("解析后的会员等级数据:",c),c.length>0?(w.value=c.map(v=>({id:v.id,name:v.displayName||v.name,price:v.price||0,resourcePoints:v.pointsBonus||0,pointsBonus:v.pointsBonus||0,description:v.description||`包含${v.pointsBonus||0}资源点/月`})),console.log("会员等级配置加载成功:",w.value)):(console.warn("数据库中没有会员等级数据,使用默认值"),w.value=[{id:1,name:"免费版会员",price:0,resourcePoints:200,description:"包含200资源点/月"},{id:2,name:"标准版会员",price:59,resourcePoints:500,description:"包含500资源点/月"},{id:3,name:"专业版会员",price:250,resourcePoints:2e3,description:"包含2000资源点/月"}])}catch(i){console.error("加载会员等级配置失败:",i),console.error("错误详情:",((n=i.response)==null?void 0:n.data)||i.message);const c=((r=(e=i.response)==null?void 0:e.data)==null?void 0:r.message)||((m=(u=i.response)==null?void 0:u.data)==null?void 0:m.error)||i.message||"未知错误";b.warning(`加载会员等级配置失败: ${c},使用默认配置`),w.value=[{id:1,name:"免费版会员",price:0,resourcePoints:200,description:"包含200资源点/月"},{id:2,name:"标准版会员",price:59,resourcePoints:500,description:"包含500资源点/月"},{id:3,name:"专业版会员",price:250,resourcePoints:2e3,description:"包含2000资源点/月"}]}finally{K.value=!1}},I=async()=>{A.value=!0;try{const n=await J.getCleanupStats();_.value=n.data,b.success("统计信息刷新成功")}catch(n){console.error("获取统计信息失败:",n),b.error("获取统计信息失败")}finally{A.value=!1}},Ve=async()=>{L.value=!0;try{const n=await J.performFullCleanup();b.success("完整清理执行成功"),console.log("清理结果:",n.data),await I()}catch(n){console.error("执行完整清理失败:",n),b.error("执行完整清理失败")}finally{L.value=!1}},O=()=>{$.value=!1,F.value&&F.value.resetFields()},Te=async()=>{if(await F.value.validate()){M.value=!0;try{const e=await J.cleanupUserTasks(B.username);b.success("用户任务清理成功"),console.log("清理结果:",e.data),await I(),O()}catch(e){console.error("清理用户任务失败:",e),b.error("清理用户任务失败")}finally{M.value=!1}}},xe=async()=>{q.value=!0;try{await new Promise(n=>setTimeout(n,1e3)),b.success("清理配置保存成功")}catch(n){console.error("保存清理配置失败:",n),b.error("保存清理配置失败")}finally{q.value=!1}};return $e(()=>{I(),Q()}),(n,e)=>{const r=y("el-icon"),u=y("el-button"),m=y("el-card"),i=y("el-input-number"),c=y("el-form-item"),v=y("el-form"),N=y("el-option"),Se=y("el-select"),W=y("el-dialog"),Ue=y("el-input"),De=y("el-alert");return P(),S("div",He,[s("aside",Je,[e[20]||(e[20]=s("div",{class:"logo"},[s("div",{class:"logo-icon"}),s("span",null,"LOGO")],-1)),s("nav",Ke,[s("div",{class:"nav-item",onClick:_e},[t(r,null,{default:a(()=>[t(p(Me))]),_:1}),e[14]||(e[14]=s("span",null,"数据仪表台",-1))]),s("div",{class:"nav-item",onClick:ye},[t(r,null,{default:a(()=>[t(p(D))]),_:1}),e[15]||(e[15]=s("span",null,"会员管理",-1))]),s("div",{class:"nav-item",onClick:be},[t(r,null,{default:a(()=>[t(p(qe))]),_:1}),e[16]||(e[16]=s("span",null,"订单管理",-1))]),s("div",{class:"nav-item",onClick:we},[t(r,null,{default:a(()=>[t(p(pe))]),_:1}),e[17]||(e[17]=s("span",null,"API管理",-1))]),s("div",{class:"nav-item",onClick:Ce},[t(r,null,{default:a(()=>[t(p(pe))]),_:1}),e[18]||(e[18]=s("span",null,"生成任务记录",-1))]),s("div",Qe,[t(r,null,{default:a(()=>[t(p(Ee))]),_:1}),e[19]||(e[19]=s("span",null,"系统设置",-1))])]),e[21]||(e[21]=Fe('
',1))]),s("main",We,[s("header",Xe,[s("div",Ye,[t(r,{class:"search-icon"},{default:a(()=>[t(p(D))]),_:1}),e[22]||(e[22]=s("input",{type:"text",placeholder:"搜索你想要的内容",class:"search-input"},null,-1))]),s("div",Ze,[s("div",es,[t(r,{class:"notification-icon"},{default:a(()=>[t(p(Oe))]),_:1}),e[23]||(e[23]=s("span",{class:"notification-badge"},null,-1))]),s("div",ss,[e[24]||(e[24]=s("img",{src:Le,alt:"用户头像"},null,-1)),t(r,{class:"arrow-down"},{default:a(()=>[t(p(D))]),_:1})])])]),s("div",ts,[s("div",as,[s("div",{class:ue(["tab-item",{active:h.value==="membership"}]),onClick:e[0]||(e[0]=l=>h.value="membership")},[t(r,null,{default:a(()=>[t(p(D))]),_:1}),e[25]||(e[25]=s("span",null,"会员收费标准",-1))],2),s("div",{class:ue(["tab-item",{active:h.value==="cleanup"}]),onClick:e[1]||(e[1]=l=>h.value="cleanup")},[t(r,null,{default:a(()=>[t(p(me))]),_:1}),e[26]||(e[26]=s("span",null,"任务清理管理",-1))],2)]),h.value==="membership"?(P(),S("div",ls,[e[28]||(e[28]=s("h2",{class:"page-title"},"会员收费标准",-1)),s("div",os,[(P(!0),S(Be,null,Ie(w.value,l=>(P(),Ae(m,{key:l.id,class:"membership-card"},{default:a(()=>[s("div",ns,[s("h3",null,k(l.name),1)]),s("div",is,[s("p",rs,"$"+k(l.price||0)+"/月",1),s("p",ds,k(l.description||`包含${l.resourcePoints||0}资源点/月`),1)]),s("div",us,[t(u,{type:"primary",onClick:j=>ke(l)},{default:a(()=>[...e[27]||(e[27]=[C("编辑",-1)])]),_:1},8,["onClick"])])]),_:2},1024))),128))])])):z("",!0),h.value==="cleanup"?(P(),S("div",cs,[e[45]||(e[45]=s("h2",{class:"page-title"},"任务清理管理",-1)),s("div",ps,[t(m,{class:"stats-card"},{header:a(()=>[s("div",ms,[e[30]||(e[30]=s("h3",null,"清理统计信息",-1)),t(u,{type:"primary",onClick:I,loading:A.value},{default:a(()=>[t(r,null,{default:a(()=>[t(p(Ne))]),_:1}),e[29]||(e[29]=C(" 刷新 ",-1))]),_:1},8,["loading"])])]),default:a(()=>{var l,j,X,Y,Z,ee,se,te,ae,le,oe,ne,ie,re,de;return[_.value?(P(),S("div",vs,[s("div",fs,[s("div",gs,[e[31]||(e[31]=s("div",{class:"stat-label"},"当前任务总数",-1)),s("div",_s,k(((j=(l=_.value.currentTasks)==null?void 0:l.textToVideo)==null?void 0:j.total)+((Y=(X=_.value.currentTasks)==null?void 0:X.imageToVideo)==null?void 0:Y.total)||0),1)]),s("div",ys,[e[32]||(e[32]=s("div",{class:"stat-label"},"已完成任务",-1)),s("div",bs,k(((ee=(Z=_.value.currentTasks)==null?void 0:Z.textToVideo)==null?void 0:ee.completed)+((te=(se=_.value.currentTasks)==null?void 0:se.imageToVideo)==null?void 0:te.completed)||0),1)]),s("div",ws,[e[33]||(e[33]=s("div",{class:"stat-label"},"失败任务",-1)),s("div",Cs,k(((le=(ae=_.value.currentTasks)==null?void 0:ae.textToVideo)==null?void 0:le.failed)+((ne=(oe=_.value.currentTasks)==null?void 0:oe.imageToVideo)==null?void 0:ne.failed)||0),1)]),s("div",ks,[e[34]||(e[34]=s("div",{class:"stat-label"},"已归档任务",-1)),s("div",hs,k(((ie=_.value.archives)==null?void 0:ie.completedTasks)||0),1)]),s("div",Ps,[e[35]||(e[35]=s("div",{class:"stat-label"},"清理日志数",-1)),s("div",Vs,k(((re=_.value.archives)==null?void 0:re.cleanupLogs)||0),1)]),s("div",Ts,[e[36]||(e[36]=s("div",{class:"stat-label"},"保留天数",-1)),s("div",xs,k(((de=_.value.config)==null?void 0:de.retentionDays)||30)+"天",1)])])])):z("",!0)]}),_:1})]),s("div",Ss,[t(m,{class:"actions-card"},{header:a(()=>[...e[37]||(e[37]=[s("div",{class:"card-header"},[s("h3",null,"清理操作")],-1)])]),default:a(()=>[s("div",Us,[s("div",Ds,[t(u,{type:"primary",onClick:Ve,loading:L.value,class:"action-btn"},{default:a(()=>[t(r,null,{default:a(()=>[t(p(me))]),_:1}),e[38]||(e[38]=C(" 执行完整清理 ",-1))]),_:1},8,["loading"]),t(u,{type:"warning",onClick:e[2]||(e[2]=l=>$.value=!0),class:"action-btn"},{default:a(()=>[t(r,null,{default:a(()=>[t(p(D))]),_:1}),e[39]||(e[39]=C(" 清理指定用户任务 ",-1))]),_:1})]),e[40]||(e[40]=s("div",{class:"action-description"},[s("p",null,[s("strong",null,"完整清理:"),C("将成功任务导出到归档表,删除失败任务")]),s("p",null,[s("strong",null,"用户清理:"),C("清理指定用户的所有任务")])],-1))])]),_:1})]),s("div",Rs,[t(m,{class:"config-card"},{header:a(()=>[...e[41]||(e[41]=[s("div",{class:"card-header"},[s("h3",null,"清理配置")],-1)])]),default:a(()=>[s("div",$s,[t(v,{model:T,"label-width":"120px"},{default:a(()=>[t(c,{label:"任务保留天数"},{default:a(()=>[t(i,{modelValue:T.retentionDays,"onUpdate:modelValue":e[3]||(e[3]=l=>T.retentionDays=l),min:1,max:365,"controls-position":"right"},null,8,["modelValue"]),e[42]||(e[42]=s("span",{class:"config-tip"},"任务完成后保留的天数",-1))]),_:1}),t(c,{label:"归档保留天数"},{default:a(()=>[t(i,{modelValue:T.archiveRetentionDays,"onUpdate:modelValue":e[4]||(e[4]=l=>T.archiveRetentionDays=l),min:30,max:3650,"controls-position":"right"},null,8,["modelValue"]),e[43]||(e[43]=s("span",{class:"config-tip"},"归档数据保留的天数",-1))]),_:1}),t(c,null,{default:a(()=>[t(u,{type:"primary",onClick:xe,loading:q.value},{default:a(()=>[...e[44]||(e[44]=[C(" 保存配置 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])])]),_:1})])])):z("",!0)])]),t(W,{modelValue:V.value,"onUpdate:modelValue":e[11]||(e[11]=l=>V.value=l),width:"480px","before-close":E,class:"membership-modal","show-close":!1},{header:a(()=>[s("div",{class:"modal-header"},[e[46]||(e[46]=s("h2",{class:"modal-title"},"会员收费标准",-1)),s("button",{class:"close-btn",onClick:E},"×")])]),footer:a(()=>[s("div",{class:"modal-footer"},[s("button",{class:"btn btn-cancel",onClick:E},"取消"),s("button",{class:"btn btn-save",onClick:Pe},"保存")])]),default:a(()=>[s("div",Fs,[t(v,{model:o,rules:fe,ref_key:"editFormRef",ref:R},{default:a(()=>[s("div",Bs,[e[47]||(e[47]=s("label",{class:"form-label"},"会员等级",-1)),t(Se,{modelValue:o.level,"onUpdate:modelValue":e[5]||(e[5]=l=>o.level=l),placeholder:"请选择会员等级",style:{width:"100%"}},{default:a(()=>[t(N,{label:"免费版会员",value:"free"}),t(N,{label:"标准版会员",value:"standard"}),t(N,{label:"专业版会员",value:"professional"})]),_:1},8,["modelValue"])]),s("div",Is,[e[49]||(e[49]=s("label",{class:"form-label"},"会员价格",-1)),s("div",As,[e[48]||(e[48]=s("span",{class:"price-prefix"},"$",-1)),U(s("input",{type:"text","onUpdate:modelValue":e[6]||(e[6]=l=>o.price=l),placeholder:"0.00",class:"form-control",onInput:he},null,544),[[ce,o.price]])])]),s("div",Ls,[e[50]||(e[50]=s("label",{class:"form-label"},"资源点数量",-1)),U(s("input",{type:"number","onUpdate:modelValue":e[7]||(e[7]=l=>o.resourcePoints=l),placeholder:"0",min:"0",class:"form-control"},null,512),[[ce,o.resourcePoints]])]),s("div",Ms,[e[54]||(e[54]=s("label",{class:"form-label"},"会员有效期",-1)),s("div",qs,[s("div",Es,[U(s("input",{type:"radio",id:"monthly","onUpdate:modelValue":e[8]||(e[8]=l=>o.validityPeriod=l),value:"monthly",class:"radio-input"},null,512),[[G,o.validityPeriod]]),e[51]||(e[51]=s("label",{for:"monthly",class:"radio-label"},"月付",-1))]),s("div",Os,[U(s("input",{type:"radio",id:"quarterly","onUpdate:modelValue":e[9]||(e[9]=l=>o.validityPeriod=l),value:"quarterly",class:"radio-input"},null,512),[[G,o.validityPeriod]]),e[52]||(e[52]=s("label",{for:"quarterly",class:"radio-label"},"季付",-1))]),s("div",Ns,[U(s("input",{type:"radio",id:"yearly","onUpdate:modelValue":e[10]||(e[10]=l=>o.validityPeriod=l),value:"yearly",class:"radio-input"},null,512),[[G,o.validityPeriod]]),e[53]||(e[53]=s("label",{for:"yearly",class:"radio-label"},"年付",-1))])])])]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"]),t(W,{modelValue:$.value,"onUpdate:modelValue":e[13]||(e[13]=l=>$.value=l),title:"清理指定用户任务",width:"480px","before-close":O},{footer:a(()=>[s("div",zs,[t(u,{onClick:O},{default:a(()=>[...e[56]||(e[56]=[C("取消",-1)])]),_:1}),t(u,{type:"danger",onClick:Te,loading:M.value},{default:a(()=>[...e[57]||(e[57]=[C(" 确认清理 ",-1)])]),_:1},8,["loading"])])]),default:a(()=>[s("div",js,[t(v,{model:B,rules:ge,ref_key:"userCleanupFormRef",ref:F},{default:a(()=>[t(c,{label:"用户名",prop:"username"},{default:a(()=>[t(Ue,{modelValue:B.username,"onUpdate:modelValue":e[12]||(e[12]=l=>B.username=l),placeholder:"请输入要清理的用户名",clearable:""},null,8,["modelValue"])]),_:1}),t(c,null,{default:a(()=>[t(De,{title:"警告",type:"warning",closable:!1,"show-icon":""},{default:a(()=>[...e[55]||(e[55]=[s("p",null,"此操作将清理该用户的所有任务,包括:",-1),s("ul",null,[s("li",null,"成功任务将导出到归档表"),s("li",null,"失败任务将记录到清理日志"),s("li",null,"原始任务记录将被删除")],-1),s("p",null,[s("strong",null,"此操作不可撤销,请谨慎操作!")],-1)])]),_:1})]),_:1})]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"])])}}},Ys=je(Gs,[["__scopeId","data-v-b0c2ad8a"]]);export{Ys as default};