Files
CloudSearch/source_clean/frontend/assets/UserDashboard-Bfz2oA0R.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
7.9 KiB
JavaScript

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