Files
CloudSearch/source_clean/frontend/assets/UserDashboard-CTpZ0zh7.js
admin d7b055f88b v0.5.4: 全面修复 — template literal URL, Cookie验证, 用户默认is_active, 默认账号路由, 空间信息, 密钥清理, promoForm修复
修复:
- quark-share.ts/storage.ts: 9处template literal ${}缺失导致fetch URL写死
- user/routes.ts: testCloudConnectionWithCookie缺await + 按cloudType分发驱动
- credential.service.ts: INSERT缺?参数 (9values/10cols)
- user/routes.ts: 用户新增网盘默认is_active=0
- admin.routes.ts: 新增PUT /admin/cloud-configs/:id/primary路由
- database.ts: is_primary列迁移
- UserDashboard.vue: 保存时传递storage_used/storage_total
- SystemConfig.vue: promoForm const重赋值bug
- config/index.ts: 移除泄露的默认密钥token
2026-05-19 23:09:11 +08:00

2 lines
9.6 KiB
JavaScript

import{d as se,o as ie,v as ue,c as h,a as i,t as p,e as t,w as o,F as K,r as de,K as L,L as q,u as re,g as c,h as r,i as f,k as n,m as ce,x as S,b as G,B as pe,E as v,_ as fe}from"./index-C_73XAbP.js";import{a as ve}from"./index-DZ_Kha3d.js";const me={class:"user-layout"},_e={class:"user-header"},ye={class:"header-right"},ge={class:"user-account"},ke={class:"user-body"},be={class:"user-sidebar"},he=["onClick"],we={class:"user-content"},xe={style:{"margin-bottom":"12px"}},Ce={key:0},Ve={key:1,style:{color:"#909399"}},ze=se({__name:"UserDashboard",setup(Se){const D=re(),A=c("");function m(){const a=localStorage.getItem("user_token");return ve.create({baseURL:"/api/user",headers:{Authorization:`Bearer ${a}`}})}ie(async()=>{if(!localStorage.getItem("user_token")){D.push("/user/login");return}try{const{data:e}=await m().get("/profile");A.value=e.account}catch{localStorage.removeItem("user_token"),localStorage.removeItem("user_account"),D.push("/user/login")}});function H(){localStorage.removeItem("user_token"),localStorage.removeItem("user_account"),D.push("/user/login")}const g=c("records"),Q=[{key:"records",icon:"📋",label:"转存日志"},{key:"drives",icon:"💾",label:"网盘管理"},{key:"notify",icon:"🔔",label:"消息推送"}],M=c([]),U=c(0),I=c(1),P=c(20);async function R(){try{const{data:a}=await m().get("/save-records",{params:{page:I.value,pageSize:P.value}});M.value=a.records,U.value=a.total}catch{}}const J=c([]),k=c(!1),_=c(null),w=c(!1),s=pe({cloud_type:"quark",nickname:"",cookie:""});async function N(){try{const{data:a}=await m().get("/cloud-configs");J.value=a}catch{}}function X(a){_.value=a,s.cloud_type=a.cloud_type,s.nickname=a.nickname||"",s.cookie="",k.value=!0}async function Y(){var a,e;if(!s.cloud_type){v.warning("请选择网盘类型");return}w.value=!0;try{if(_.value)await m().put(`/cloud-configs/${_.value.id}`,{...s,cookie:s.cookie||void 0}),v.success("更新成功");else{if(!s.cookie){v.warning("请填写Cookie"),w.value=!1;return}await m().post("/cloud-configs",{...s}),v.success("添加成功")}k.value=!1,_.value=null,s.cookie="",s.nickname="",N()}catch(u){v.error(((e=(a=u.response)==null?void 0:a.data)==null?void 0:e.error)||"保存失败")}finally{w.value=!1}}async function Z(a){var e,u;try{await m().delete(`/cloud-configs/${a}`),v.success("已删除"),N()}catch(d){v.error(((u=(e=d.response)==null?void 0:e.data)==null?void 0:u.error)||"删除失败")}}const b=c(""),x=c(""),C=c([]),$=c(!1);async function ee(){try{const{data:a}=await m().get("/notify-config"),e=JSON.parse(a.notifyConfig||"{}");e.webhook&&(b.value="feishu",x.value=e.webhook,C.value=e.events||[])}catch{}}async function le(){var a,e;$.value=!0;try{const u=b.value==="feishu"?JSON.stringify({webhook:x.value,events:C.value}):"{}";await m().put("/notify-config",{notifyConfig:u}),v.success("推送配置已保存")}catch(u){v.error(((e=(a=u.response)==null?void 0:a.data)==null?void 0:e.error)||"保存失败")}finally{$.value=!1}}return ue(g,a=>{a==="records"?R():a==="drives"?N():a==="notify"&&ee()},{immediate:!0}),(a,e)=>{const u=r("el-button"),d=r("el-table-column"),V=r("el-tag"),O=r("el-table"),te=r("el-pagination"),B=r("el-card"),oe=r("el-popconfirm"),z=r("el-option"),T=r("el-select"),y=r("el-form-item"),E=r("el-input"),F=r("el-checkbox"),ae=r("el-checkbox-group"),W=r("el-form"),ne=r("el-dialog");return f(),h("div",me,[i("div",_e,[e[11]||(e[11]=i("span",{class:"user-title"},"CloudSearch 用户中心",-1)),i("div",ye,[i("span",ge,p(A.value),1),t(u,{size:"small",onClick:H},{default:o(()=>[...e[10]||(e[10]=[n("退出登录",-1)])]),_:1})])]),i("div",ke,[i("div",be,[(f(),h(K,null,de(Q,l=>i("div",{key:l.key,class:ce(["sidebar-item",{active:g.value===l.key}]),onClick:j=>g.value=l.key},[i("span",null,p(l.icon)+" "+p(l.label),1)],10,he)),64))]),i("div",we,[L(i("div",null,[t(B,{shadow:"never"},{header:o(()=>[...e[12]||(e[12]=[i("span",null,"📋 转存日志",-1)])]),default:o(()=>[t(O,{data:M.value,stripe:"","empty-text":"暂无转存记录",size:"small"},{default:o(()=>[t(d,{prop:"source_title",label:"资源名称","min-width":"200","show-overflow-tooltip":""}),t(d,{prop:"source_type",label:"来源",width:"80"}),t(d,{label:"状态",width:"80"},{default:o(({row:l})=>[t(V,{type:l.status==="success"?"success":"danger",size:"small"},{default:o(()=>[n(p(l.status==="success"?"成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),t(d,{prop:"file_size",label:"大小",width:"90"}),t(d,{label:"耗时",width:"90"},{default:o(({row:l})=>[n(p(l.duration_ms?(l.duration_ms/1e3).toFixed(1)+"s":"-"),1)]),_:1}),t(d,{label:"时间",width:"170"},{default:o(({row:l})=>[n(p(l.created_at),1)]),_:1})]),_:1},8,["data"]),U.value>0?(f(),S(te,{key:0,"current-page":I.value,"onUpdate:currentPage":e[0]||(e[0]=l=>I.value=l),"page-size":P.value,total:U.value,layout:"prev, pager, next",small:"",style:{"margin-top":"16px","justify-content":"center"},onCurrentChange:R},null,8,["current-page","page-size","total"])):G("",!0)]),_:1})],512),[[q,g.value==="records"]]),L(i("div",null,[t(B,{shadow:"never"},{header:o(()=>[...e[13]||(e[13]=[i("span",null,"💾 我的网盘",-1)])]),default:o(()=>[i("div",xe,[t(u,{type:"primary",size:"small",onClick:e[1]||(e[1]=l=>k.value=!0)},{default:o(()=>[...e[14]||(e[14]=[n("新增配置",-1)])]),_:1})]),t(O,{data:J.value,stripe:"","empty-text":"暂无网盘配置",size:"small"},{default:o(()=>[t(d,{label:"网盘类型",width:"110"},{default:o(({row:l})=>[i("span",null,p(l.cloud_type==="quark"?"夸克网盘":l.cloud_type==="baidu"?"百度网盘":l.cloud_type==="aliyun"?"阿里云盘":l.cloud_type),1)]),_:1}),t(d,{prop:"nickname",label:"昵称",width:"140"},{default:o(({row:l})=>[n(p(l.nickname||"未设置"),1)]),_:1}),t(d,{prop:"promotion_account",label:"推广账号",width:"160"},{default:o(({row:l})=>[n(p(l.promotion_account||"-"),1)]),_:1}),t(d,{label:"验证",width:"80",align:"center"},{default:o(({row:l})=>[l.verification_status==="valid"?(f(),S(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[15]||(e[15]=[n("有效",-1)])]),_:1})):l.verification_status==="invalid"?(f(),S(V,{key:1,type:"danger",size:"small"},{default:o(()=>[...e[16]||(e[16]=[n("无效",-1)])]),_:1})):(f(),S(V,{key:2,type:"info",size:"small"},{default:o(()=>[...e[17]||(e[17]=[n("未验证",-1)])]),_:1}))]),_:1}),t(d,{label:"空间",width:"200"},{default:o(({row:l})=>[l.storage_total&&l.storage_total!=="-"?(f(),h("div",Ce,p(l.storage_used||"计算中...")+" / "+p(l.storage_total),1)):(f(),h("span",Ve,"—"))]),_:1}),t(d,{label:"转存数",width:"80",align:"center"},{default:o(({row:l})=>[n(p(l.total_saves>0?l.total_saves+"次":"-"),1)]),_:1}),t(d,{label:"操作",width:"160",align:"center"},{default:o(({row:l})=>[t(u,{size:"small",text:"",type:"primary",onClick:j=>X(l)},{default:o(()=>[...e[18]||(e[18]=[n("编辑",-1)])]),_:1},8,["onClick"]),t(oe,{title:"确定删除该配置?",onConfirm:j=>Z(l.id)},{reference:o(()=>[t(u,{size:"small",text:"",type:"danger"},{default:o(()=>[...e[19]||(e[19]=[n("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:1})]),_:1},8,["data"])]),_:1})],512),[[q,g.value==="drives"]]),L(i("div",null,[t(B,{shadow:"never"},{header:o(()=>[...e[20]||(e[20]=[i("span",null,"🔔 消息推送配置",-1)])]),default:o(()=>[t(W,{"label-width":"120px",size:"small"},{default:o(()=>[t(y,{label:"推送通道"},{default:o(()=>[t(T,{modelValue:b.value,"onUpdate:modelValue":e[2]||(e[2]=l=>b.value=l),style:{width:"200px"},placeholder:"选择推送通道"},{default:o(()=>[t(z,{label:"Feishu Bot",value:"feishu"})]),_:1},8,["modelValue"])]),_:1}),b.value==="feishu"?(f(),h(K,{key:0},[t(y,{label:"Webhook 地址"},{default:o(()=>[t(E,{modelValue:x.value,"onUpdate:modelValue":e[3]||(e[3]=l=>x.value=l),placeholder:"https://open.feishu.cn/open-apis/bot/v2/hook/xxx",style:{width:"420px"}},null,8,["modelValue"])]),_:1}),t(y,{label:"推送事件"},{default:o(()=>[t(ae,{modelValue:C.value,"onUpdate:modelValue":e[4]||(e[4]=l=>C.value=l)},{default:o(()=>[t(F,{label:"on_save_success"},{default:o(()=>[...e[21]||(e[21]=[n("转存成功",-1)])]),_:1}),t(F,{label:"on_save_fail"},{default:o(()=>[...e[22]||(e[22]=[n("转存失败",-1)])]),_:1}),t(F,{label:"on_cookie_expire"},{default:o(()=>[...e[23]||(e[23]=[n("Cookie过期",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})],64)):G("",!0),t(y,null,{default:o(()=>[t(u,{type:"primary",loading:$.value,onClick:le},{default:o(()=>[...e[24]||(e[24]=[n("保存推送配置",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})],512),[[q,g.value==="notify"]])])]),t(ne,{modelValue:k.value,"onUpdate:modelValue":e[9]||(e[9]=l=>k.value=l),title:_.value?"编辑网盘配置":"新增网盘配置",width:"520px"},{footer:o(()=>[t(u,{onClick:e[8]||(e[8]=l=>{k.value=!1,_.value=null})},{default:o(()=>[...e[25]||(e[25]=[n("取消",-1)])]),_:1}),t(u,{type:"primary",loading:w.value,onClick:Y},{default:o(()=>[...e[26]||(e[26]=[n("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[t(W,{model:s,"label-width":"80px",size:"small"},{default:o(()=>[t(y,{label:"网盘类型"},{default:o(()=>[t(T,{modelValue:s.cloud_type,"onUpdate:modelValue":e[5]||(e[5]=l=>s.cloud_type=l),style:{width:"100%"},disabled:!!_.value},{default:o(()=>[t(z,{label:"夸克网盘",value:"quark"}),t(z,{label:"百度网盘",value:"baidu"}),t(z,{label:"阿里云盘",value:"aliyun"})]),_:1},8,["modelValue","disabled"])]),_:1}),t(y,{label:"昵称"},{default:o(()=>[t(E,{modelValue:s.nickname,"onUpdate:modelValue":e[6]||(e[6]=l=>s.nickname=l),placeholder:"可选"},null,8,["modelValue"])]),_:1}),t(y,{label:"Cookie"},{default:o(()=>[t(E,{modelValue:s.cookie,"onUpdate:modelValue":e[7]||(e[7]=l=>s.cookie=l),type:"textarea",rows:3,placeholder:"粘贴完整 Cookie 字符串"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ie=fe(ze,[["__scopeId","data-v-cd6e7f19"]]);export{Ie as default};