import{d as Ne,o as ze,v as Ve,c as m,a as i,t as _,e as l,w as t,F as P,r as ie,K as R,L as $,u as De,g as c,h as p,i as v,k as r,m as se,x as N,b as j,q as U,B as Fe,E as k,_ as Ue}from"./index-BNH_lgW0.js";import{a as J}from"./index-DZ_Kha3d.js";import{a as ne}from"./index-Bn7NwETH.js";import{C as Ie}from"./CloudBadge-C3y2XK42.js";const Ee={class:"user-layout"},Re={class:"user-header"},$e={class:"user-title"},Le={class:"header-right"},Te={class:"user-account"},Be={class:"user-body"},Oe={class:"user-sidebar"},qe=["onClick"],Ae={class:"user-content"},He={style:{"margin-bottom":"12px"}},Me={key:0},Pe={key:1,style:{color:"#909399","font-size":"12px"}},je={key:0},Je={key:1,style:{color:"#909399","font-size":"12px"}},Ke={key:0},We={key:1,style:{color:"#909399"}},Ge={style:{"line-height":"1.6"}},Qe={class:"cookie-tips-header"},Xe={class:"cookie-tips-title"},Ye=["innerHTML"],Ze=Ne({__name:"UserDashboard",setup(eo){const L=De(),T=c(""),K=c("CloudSearch"),W=c({}),G=U(()=>{try{const a=W.value.cleanup_whitelist_dirs||"[]",e=JSON.parse(a);return Array.isArray(e)&&e.length>0?e:[]}catch{return[]}});async function re(){try{const{data:a}=await J.get("/api/system-configs"),e={};for(const n of a)e[n.key]=n.value;W.value=e}catch(a){console.error("加载系统配置失败",a)}}function f(){const a=localStorage.getItem("user_token");return J.create({baseURL:"/api/user",headers:{Authorization:`Bearer ${a}`}})}ze(async()=>{if(!localStorage.getItem("user_token")){L.push("/user/login");return}try{const{data:e}=await f().get("/profile");T.value=e.account}catch{localStorage.removeItem("user_token"),localStorage.removeItem("user_account"),L.push("/user/login");return}try{const{data:e}=await J.get("/api/site-config");e.site_name&&(K.value=e.site_name)}catch{}re()});function de(){localStorage.removeItem("user_token"),localStorage.removeItem("user_account"),L.push("/user/login")}const w=c("records"),ce=[{key:"records",icon:"📋",label:"转存日志"},{key:"drives",icon:"💾",label:"网盘管理"},{key:"notify",icon:"🔔",label:"消息推送"}],Q=c([]),B=c(0),O=c(1),X=c(20);async function Y(){try{const{data:a}=await f().get("/save-records",{params:{page:O.value,pageSize:X.value}});Q.value=a.records,B.value=a.total}catch{}}const Z=c([]),C=c(!1),y=c(null),x=c(!1),ee=c(),q=c([]),oe=()=>({cloud_type:"",cookie:""}),s=Fe(oe()),ue=U(()=>({cloud_type:[{required:!0,message:"请选择网盘类型",trigger:"change"}]})),pe=U(()=>{if(!s.cloud_type)return"请先选择网盘类型";const a=s.cloud_type;return a==="quark"||a==="baidu"?`请输入 ${ne[a]||a} 的完整 Cookie`:y.value?"留空则保持原有":"输入完整 Cookie"}),ve=U(()=>ne[s.cloud_type]||s.cloud_type||""),_e=U(()=>{const a=s.cloud_type;return a?{quark:`
  • 在电脑上打开 pan.quark.cn 并登录你的夸克账号
  • F12 打开开发者工具 → 切换到 网络 (Network) 选项卡
  • 刷新页面,在请求列表中点击任意一个请求(如 account/info
  • 在右侧 请求头 (Request Headers) 中找到 Cookie 字段
  • 复制整个 Cookie 值(从开头到结束的完整内容),粘贴到上方输入框
  • 点击「保存」按钮提交配置
  • `,baidu:`
  • 在电脑上打开 pan.baidu.com 并登录你的百度账号
  • F12 打开开发者工具 → 切换到 网络 (Network) 选项卡
  • 刷新页面,在请求列表中点击任意一个请求
  • 在右侧 请求头 (Request Headers) 中找到 Cookie 字段
  • 复制整个 Cookie 值,粘贴到上方输入框
  • 点击「保存」按钮提交配置
  • `,aliyun:`
  • 在电脑上打开 aliyundrive.com 并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,找到任意请求 → 复制 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `,115:`
  • 在电脑上打开 115.com 并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,找到任意请求 → 复制 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `,tianyi:`
  • 在电脑上打开 cloud.189.cn 并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,找到任意请求 → 复制 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `,"123pan":`
  • 在电脑上打开 123pan.com 并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,找到任意请求 → 复制 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `,uc:`
  • 在电脑上打开 drive.uc.cn 并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,找到任意请求 → 复制 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `,xunlei:`
  • 在电脑上打开 pan.xunlei.com 并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,找到任意请求 → 复制 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `,pikpak:`
  • 在电脑上打开 mypikpak.com 并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,找到任意请求 → 复制 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `}[a]||`
  • 在电脑上打开该网盘网站并登录
  • F12 打开开发者工具 → 网络 (Network)
  • 刷新页面,复制任意请求的 Cookie
  • 粘贴到上方输入框,点击「保存」提交
  • `:""});async function fe(){try{const{data:a}=await f().get("/enabled-cloud-types");q.value=a}catch{q.value=[]}}async function A(){try{const{data:a}=await f().get("/cloud-configs");Z.value=a}catch{}}function me(){y.value=null,Object.assign(s,oe()),C.value=!0}function ke(a){y.value=a,s.cloud_type=a.cloud_type,s.cookie="",C.value=!0}function ye(){}async function ge(){var e,n,d,g,V;if(await((e=ee.value)==null?void 0:e.validate().catch(()=>!1))){x.value=!0;try{let b="",h="",D="";if(s.cookie)try{const S=f(),{data:u}=await S.post(`/cloud-configs/${s.cloud_type}/test`,{cookie:s.cookie});if(!u.success){k.error(`Cookie验证失败:${u.message}`),x.value=!1;return}u.nickname&&(b=u.nickname),u.storage_used&&(h=u.storage_used),u.storage_total&&(D=u.storage_total)}catch(S){k.error(`Cookie验证失败:${((d=(n=S.response)==null?void 0:n.data)==null?void 0:d.error)||"网络错误"}`),x.value=!1;return}const F=T.value;if(y.value)await f().put(`/cloud-configs/${y.value.id}`,{cloud_type:s.cloud_type,nickname:b||void 0,promotion_account:F,cookie:s.cookie||void 0,storage_used:h||void 0,storage_total:D||void 0}),k.success("更新成功");else{if(!s.cookie){k.warning("请填写Cookie"),x.value=!1;return}await f().post("/cloud-configs",{cloud_type:s.cloud_type,cookie:s.cookie,nickname:b||void 0,promotion_account:F,storage_used:h||void 0,storage_total:D||void 0}),k.success("添加成功")}C.value=!1,y.value=null,A()}catch(b){k.error(((V=(g=b.response)==null?void 0:g.data)==null?void 0:V.error)||"保存失败")}finally{x.value=!1}}}async function be(a){var e,n;try{await f().delete(`/cloud-configs/${a}`),k.success("已删除"),A()}catch(d){k.error(((n=(e=d.response)==null?void 0:e.data)==null?void 0:n.error)||"删除失败")}}const z=c(""),I=c(""),E=c([]),H=c(!1);async function he(){try{const{data:a}=await f().get("/notify-config"),e=JSON.parse(a.notifyConfig||"{}");e.webhook&&(z.value="feishu",I.value=e.webhook,E.value=e.events||[])}catch{}}async function we(){var a,e;H.value=!0;try{const n=z.value==="feishu"?JSON.stringify({webhook:I.value,events:E.value}):"{}";await f().put("/notify-config",{notifyConfig:n}),k.success("推送配置已保存")}catch(n){k.error(((e=(a=n.response)==null?void 0:a.data)==null?void 0:e.error)||"保存失败")}finally{H.value=!1}}return Ve(w,a=>{a==="records"?Y():a==="drives"?(fe(),A()):a==="notify"&&he()},{immediate:!0}),(a,e)=>{const n=p("el-button"),d=p("el-table-column"),g=p("el-tag"),V=p("el-table"),b=p("el-pagination"),h=p("el-card"),D=p("el-popconfirm"),F=p("el-option"),S=p("el-select"),u=p("el-form-item"),te=p("el-input"),M=p("el-checkbox"),Ce=p("el-checkbox-group"),le=p("el-form"),xe=p("el-alert"),Se=p("el-dialog");return v(),m("div",Ee,[i("div",Re,[i("span",$e,_(K.value)+" 用户中心",1),i("div",Le,[i("span",Te,_(T.value),1),l(n,{size:"small",onClick:de},{default:t(()=>[...e[8]||(e[8]=[r("退出登录",-1)])]),_:1})])]),i("div",Be,[i("div",Oe,[(v(),m(P,null,ie(ce,o=>i("div",{key:o.key,class:se(["sidebar-item",{active:w.value===o.key}]),onClick:ae=>w.value=o.key},[i("span",null,_(o.icon)+" "+_(o.label),1)],10,qe)),64))]),i("div",Ae,[R(i("div",null,[l(h,{shadow:"never"},{header:t(()=>[...e[9]||(e[9]=[i("span",null,"📋 转存日志",-1)])]),default:t(()=>[l(V,{data:Q.value,stripe:"","empty-text":"暂无转存记录",size:"small"},{default:t(()=>[l(d,{prop:"source_title",label:"资源名称","min-width":"200","show-overflow-tooltip":""}),l(d,{prop:"source_type",label:"来源",width:"80"}),l(d,{label:"状态",width:"80"},{default:t(({row:o})=>[l(g,{type:o.status==="success"?"success":"danger",size:"small"},{default:t(()=>[r(_(o.status==="success"?"成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),l(d,{prop:"file_size",label:"大小",width:"90"}),l(d,{label:"耗时",width:"90"},{default:t(({row:o})=>[r(_(o.duration_ms?(o.duration_ms/1e3).toFixed(1)+"s":"-"),1)]),_:1}),l(d,{label:"时间",width:"170"},{default:t(({row:o})=>[r(_(o.created_at),1)]),_:1})]),_:1},8,["data"]),B.value>0?(v(),N(b,{key:0,"current-page":O.value,"onUpdate:currentPage":e[0]||(e[0]=o=>O.value=o),"page-size":X.value,total:B.value,layout:"prev, pager, next",small:"",style:{"margin-top":"16px","justify-content":"center"},onCurrentChange:Y},null,8,["current-page","page-size","total"])):j("",!0)]),_:1})],512),[[$,w.value==="records"]]),R(i("div",null,[l(h,{shadow:"never"},{header:t(()=>[...e[10]||(e[10]=[i("span",null,"💾 我的网盘",-1)])]),default:t(()=>[i("div",He,[l(n,{type:"primary",size:"small",onClick:me},{default:t(()=>[...e[11]||(e[11]=[r("新增配置",-1)])]),_:1})]),l(V,{data:Z.value,stripe:"","empty-text":"暂无网盘配置",size:"small"},{default:t(()=>[l(d,{label:"网盘类型",width:"110"},{default:t(({row:o})=>[l(Ie,{cloud_type:o.cloud_type},null,8,["cloud_type"])]),_:1}),l(d,{prop:"nickname",label:"昵称",width:"140"},{default:t(({row:o})=>[o.nickname?(v(),m("span",Me,_(o.nickname),1)):(v(),m("span",Pe,"未设置"))]),_:1}),l(d,{prop:"promotion_account",label:"推广账号",width:"160"},{default:t(({row:o})=>[o.promotion_account?(v(),m("span",je,_(o.promotion_account),1)):(v(),m("span",Je,"-"))]),_:1}),l(d,{label:"验证",width:"80",align:"center"},{default:t(({row:o})=>[o.verification_status==="valid"?(v(),N(g,{key:0,type:"success",size:"small"},{default:t(()=>[...e[12]||(e[12]=[r("有效",-1)])]),_:1})):o.verification_status==="invalid"?(v(),N(g,{key:1,type:"danger",size:"small"},{default:t(()=>[...e[13]||(e[13]=[r("无效",-1)])]),_:1})):(v(),N(g,{key:2,type:"info",size:"small"},{default:t(()=>[...e[14]||(e[14]=[r("未验证",-1)])]),_:1}))]),_:1}),l(d,{label:"空间",width:"200"},{default:t(({row:o})=>[o.storage_total&&o.storage_total!=="-"?(v(),m("div",Ke,_(o.storage_used||"计算中...")+" / "+_(o.storage_total),1)):(v(),m("span",We,"—"))]),_:1}),l(d,{label:"转存数",width:"80",align:"center"},{default:t(({row:o})=>[r(_(o.total_saves>0?o.total_saves+"次":"-"),1)]),_:1}),l(d,{label:"操作",width:"160",align:"center"},{default:t(({row:o})=>[l(n,{size:"small",text:"",type:"primary",onClick:ae=>ke(o)},{default:t(()=>[...e[15]||(e[15]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(D,{title:"确定删除该配置?",onConfirm:ae=>be(o.id)},{reference:t(()=>[l(n,{size:"small",text:"",type:"danger"},{default:t(()=>[...e[16]||(e[16]=[r("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:1})]),_:1},8,["data"])]),_:1})],512),[[$,w.value==="drives"]]),R(i("div",null,[l(h,{shadow:"never"},{header:t(()=>[...e[17]||(e[17]=[i("span",null,"🔔 消息推送配置",-1)])]),default:t(()=>[l(le,{"label-width":"120px",size:"small"},{default:t(()=>[l(u,{label:"推送通道"},{default:t(()=>[l(S,{modelValue:z.value,"onUpdate:modelValue":e[1]||(e[1]=o=>z.value=o),style:{width:"200px"},placeholder:"选择推送通道"},{default:t(()=>[l(F,{label:"Feishu Bot",value:"feishu"})]),_:1},8,["modelValue"])]),_:1}),z.value==="feishu"?(v(),m(P,{key:0},[l(u,{label:"Webhook 地址"},{default:t(()=>[l(te,{modelValue:I.value,"onUpdate:modelValue":e[2]||(e[2]=o=>I.value=o),placeholder:"https://open.feishu.cn/open-apis/bot/v2/hook/xxx",style:{width:"420px"}},null,8,["modelValue"])]),_:1}),l(u,{label:"推送事件"},{default:t(()=>[l(Ce,{modelValue:E.value,"onUpdate:modelValue":e[3]||(e[3]=o=>E.value=o)},{default:t(()=>[l(M,{label:"on_save_success"},{default:t(()=>[...e[18]||(e[18]=[r("转存成功",-1)])]),_:1}),l(M,{label:"on_save_fail"},{default:t(()=>[...e[19]||(e[19]=[r("转存失败",-1)])]),_:1}),l(M,{label:"on_cookie_expire"},{default:t(()=>[...e[20]||(e[20]=[r("Cookie过期",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})],64)):j("",!0),l(u,null,{default:t(()=>[l(n,{type:"primary",loading:H.value,onClick:we},{default:t(()=>[...e[21]||(e[21]=[r("保存推送配置",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})],512),[[$,w.value==="notify"]])])]),l(Se,{modelValue:C.value,"onUpdate:modelValue":e[7]||(e[7]=o=>C.value=o),title:y.value?"编辑网盘配置":"新增网盘配置",width:"560px"},{footer:t(()=>[l(n,{onClick:e[6]||(e[6]=o=>{C.value=!1,y.value=null})},{default:t(()=>[...e[25]||(e[25]=[r("取消",-1)])]),_:1}),l(n,{type:"primary",loading:x.value,onClick:ge},{default:t(()=>[...e[26]||(e[26]=[r("保存",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(le,{ref_key:"driveFormRef",ref:ee,model:s,rules:ue.value,"label-width":"120px"},{default:t(()=>[R(l(xe,{type:"warning","show-icon":"",closable:!1,style:{"margin-bottom":"18px"}},{title:t(()=>[i("div",Ge,[i("div",null,[e[22]||(e[22]=r("🧹 请在网盘主目录内创建:",-1)),i("b",null,_(G.value.join("、")),1),e[23]||(e[23]=r(" 目录",-1))]),e[24]||(e[24]=i("div",null,[r("并将你的重要文件移至该目录,"),i("b",null,"只有这个目录不会被自动清理")],-1))])]),_:1},512),[[$,G.value.length>0]]),l(u,{label:"网盘类型",prop:"cloud_type"},{default:t(()=>[l(S,{modelValue:s.cloud_type,"onUpdate:modelValue":e[4]||(e[4]=o=>s.cloud_type=o),style:{width:"100%"},disabled:!!y.value,onChange:ye},{default:t(()=>[(v(!0),m(P,null,ie(q.value,o=>(v(),N(F,{key:o.type,label:o.label,value:o.type},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1}),l(u,{label:"Cookie",prop:"cookie"},{default:t(()=>[l(te,{modelValue:s.cookie,"onUpdate:modelValue":e[5]||(e[5]=o=>s.cookie=o),type:"textarea",autosize:{minRows:2,maxRows:4},placeholder:pe.value,"input-style":"font-family: monospace; font-size: 12px;"},null,8,["modelValue","placeholder"])]),_:1}),s.cloud_type&&s.cloud_type!==""?(v(),N(u,{key:0,label:" ",class:"cookie-tips-item"},{default:t(()=>[i("div",{class:se(["cookie-tips",`cookie-tips-${s.cloud_type}`])},[i("div",Qe,[i("span",Xe,"📖 "+_(ve.value)+" Cookie 获取教程",1)]),i("ol",{class:"cookie-tips-steps",innerHTML:_e.value},null,8,Ye)],2)]),_:1})):j("",!0)]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),io=Ue(Ze,[["__scopeId","data-v-c6012e1c"]]);export{io as default};