2 lines
14 KiB
JavaScript
2 lines
14 KiB
JavaScript
import{d as fe,o as he,a as d,c as r,b as l,f as s,w as u,F as K,r as P,g as ye,t as i,l as m,e as p,J as be,y as J,h as _,j as v,N as ke,n as L,k as I,s as Ce,O as xe,P as we,E as O}from"./index-C5b4pIQL.js";import{c as De,A as Se,_ as Ne}from"./_plugin-vue_export-helper-CzL5NdOX.js";const ze={class:"save-records"},Te={class:"toolbar"},$e={class:"toolbar-row"},Me={class:"filter-group"},Ve={style:{display:"inline-flex",alignItems:"center",gap:"6px"}},Ee=["src"],Be={class:"time-btns"},Fe=["onClick"],He={class:"toolbar-actions"},je={class:"record-count"},Ae={key:0,class:"save-summary"},Le={class:"summary-item summary-all"},Ie={class:"summary-item summary-success"},Ye={class:"summary-item summary-reused"},Ge={class:"summary-item summary-failed"},Re={key:0,class:"summary-item summary-rate"},Ue={class:"el-table-wrap"},Ke={class:"expand-detail"},Pe={class:"detail-row"},Je={class:"detail-cell"},Oe=["href"],Xe={key:0,class:"detail-cell"},Qe={class:"detail-code"},We={key:1,class:"detail-cell"},Ze={key:2,class:"detail-cell"},qe={key:3,class:"detail-cell"},et={class:"detail-row"},tt={key:0,class:"detail-cell"},at=["href"],lt={key:1,class:"detail-cell"},st={key:2,class:"detail-cell"},nt={class:"detail-code"},ot={key:0,class:"detail-row"},it={class:"detail-cell"},ut={class:"detail-code"},dt={key:0,class:"detail-cell"},rt={class:"detail-code"},ct={key:1,class:"detail-row"},_t={class:"detail-cell detail-full"},pt={class:"detail-error"},gt=["title"],mt=["src"],vt=["title"],ft={key:0,class:"loc-badge"},ht={key:1,class:"no-data"},yt=["title"],bt={key:1,class:"err-msg"},kt={key:2,class:"reuse-msg"},Ct={key:3,class:"no-data"},xt={class:"action-cell"},wt={key:1,class:"pagination-wrap"},Dt={class:"pagination-info"},St='<svg viewBox="0 0 24 24" width="16" height="16"><rect rx="4" width="24" height="24" fill="#909399"/><text x="12" y="16" text-anchor="middle" fill="white" font-size="14" font-weight="bold" font-family="Arial">☁</text></svg>',Nt=fe({__name:"SaveRecords",setup(zt){const Y=_([]),b=_(0),k=_(1),C=_(20),$=_(!1),w=_(""),D=_(""),S=_(""),M=_("today"),V=_(""),E=_(""),N=_(null),B=_([]),f=_(null),X=[{key:"today",label:"今日"},{key:"week",label:"本周"},{key:"month",label:"本月"},{key:"lastMonth",label:"上月"}],F=_({});async function Q(){try{const a=await De(),e={};for(const n of a.types)e[n.type]={label:n.label,icon:n.icon};F.value=e}catch{}}function H(a){var e;return((e=F.value[a])==null?void 0:e.label)||a}function G(a){var e;return((e=F.value[a])==null?void 0:e.icon)||St}function W(a){const e=new Set;a.forEach(o=>{o.source_type&&e.add(o.source_type)});const n=new Set(B.value);e.forEach(o=>{n.has(o)||B.value.push(o)})}function j(a){const e=a.getFullYear(),n=String(a.getMonth()+1).padStart(2,"0"),o=String(a.getDate()).padStart(2,"0");return`${e}-${n}-${o}`}function Z(a){if(!a)return"-";let e=a;/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(e)&&(e=e.replace(" ","T")+"+08:00");const n=new Date(e);if(isNaN(n.getTime()))return a;const o=c=>String(c).padStart(2,"0");return`${o(n.getMonth()+1)}-${o(n.getDate())} ${o(n.getHours())}:${o(n.getMinutes())}:${o(n.getSeconds())}`}function q(a){return a?a<1e3?`${a}ms`:`${(a/1e3).toFixed(1)}s`:"-"}function ee(a){return a?a>3e4?"dur-slow":a>1e4?"dur-warn":"dur-fast":""}function te(a){return a.length>50?a.slice(0,50)+"…":a}function ae(a){return a==="success"?"转存成功":a==="reused"?"♻️ 复用已有分享链接":"转存失败"}function le(a){return a==="success"?"status-ok":a==="reused"?"status-reuse":"status-fail"}function se(a){return a==="success"?"✓":a==="reused"?"♻️":"✗"}const ne={Anhui:"安徽",Beijing:"北京",Chongqing:"重庆",Fujian:"福建",Gansu:"甘肃",Guangdong:"广东",Guangxi:"广西",Guizhou:"贵州",Hainan:"海南",Hebei:"河北",Henan:"河南",Heilongjiang:"黑龙江",Hubei:"湖北",Hunan:"湖南","Inner Mongolia":"内蒙古",Jiangsu:"江苏",Jiangxi:"江西",Jilin:"吉林",Liaoning:"辽宁",Ningxia:"宁夏",Qinghai:"青海",Shaanxi:"陕西",Shandong:"山东",Shanghai:"上海",Shanxi:"山西",Sichuan:"四川",Tianjin:"天津",Tibet:"西藏",Xinjiang:"新疆",Yunnan:"云南",Zhejiang:"浙江","Hong Kong":"香港",Macau:"澳门",Taiwan:"台湾",Changsha:"长沙",Hefei:"合肥",Fuzhou:"福州",Lanzhou:"兰州",Guangzhou:"广州",Nanning:"南宁",Guiyang:"贵阳",Haikou:"海口",Shijiazhuang:"石家庄",Zhengzhou:"郑州",Harbin:"哈尔滨",Wuhan:"武汉",Nanjing:"南京",Nanchang:"南昌",Changchun:"长春",Shenyang:"沈阳",Yinchuan:"银川",Xining:"西宁","Xi'an":"西安",Jinan:"济南",Taiyuan:"太原",Chengdu:"成都",Shenzhen:"深圳",Hangzhou:"杭州",Suzhou:"苏州",Wuxi:"无锡",Ningbo:"宁波",Dongguan:"东莞",Foshan:"佛山",Zhuhai:"珠海",Qingdao:"青岛",Dalian:"大连",Xiamen:"厦门",Kunming:"昆明",Lhasa:"拉萨",Urumqi:"乌鲁木齐",Linyi:"临沂",Wenzhou:"温州",Quanzhou:"泉州"},oe={"China Telecom":"中国电信","China Mobile":"中国移动","China Unicom":"中国联通",Chinanet:"中国电信",ChinaNet:"中国电信",CMNET:"中国移动","CNC Group":"中国联通",unicom:"中国联通",telecom:"中国电信",mobile:"中国移动","China Education and Research Network":"教育网",CERNET:"教育网","China Networks":"中国网络",China163:"中国电信","CHINANET BACKBONE":"中国电信","Tencent Cloud":"腾讯云","Alibaba Cloud":"阿里云",Aliyun:"阿里云","Huawei Cloud":"华为云",Baidu:"百度","Beijing Baidu":"百度"};function R(a){return a.replace(/^(中国|China)\s*/i,"").split(/\s+/).filter(Boolean).map(o=>ne[o]||oe[o]||o).join(" ")}function ie({row:a}){return a.status==="failed"?"row-failed":""}async function ue(a){try{await navigator.clipboard.writeText(a),O.success("已复制到剪贴板")}catch{const e=document.createElement("textarea");e.value=a,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),O.success("已复制到剪贴板")}}function de(a){window.open(a,"_blank")}function re(a,e){}function z(a){M.value=a,N.value=null;const e=new Date,n=e.getFullYear(),o=e.getMonth();let c,g;switch(a){case"today":c=new Date(n,o,e.getDate()),g=c;break;case"week":{const x=e.getDay();c=new Date(n,o,e.getDate()+(x===0?-6:1-x)),g=e;break}case"month":c=new Date(n,o,1),g=e;break;case"lastMonth":c=new Date(n,o-1,1),g=new Date(n,o,0);break;default:c=new Date(n,o,e.getDate()),g=c}V.value=j(c);const A=new Date(g.getFullYear(),g.getMonth(),g.getDate()+1);E.value=j(A),y(1)}function ce(a){if(a&&a.length===2){M.value="",V.value=a[0];const e=new Date(a[1]);e.setDate(e.getDate()+1),E.value=j(e),y(1)}else z("today")}function _e(){w.value="",D.value="",S.value="",N.value=null,z("today")}async function y(a=1){$.value=!0;try{k.value=a;const e=w.value||void 0,n=D.value||void 0,o=S.value||void 0,c=await Se(a,C.value,V.value,E.value,e,n,o);Y.value=c.records,b.value=c.total,f.value=c.summary||null,W(c.records)}catch(e){console.error("加载转存记录失败",e)}finally{$.value=!1}}return he(()=>{z("today"),Q()}),(a,e)=>{const n=v("el-option"),o=v("el-select"),c=v("el-date-picker"),g=v("el-icon"),A=v("el-input"),x=v("el-button"),pe=v("el-tag"),h=v("el-table-column"),T=v("el-tooltip"),ge=v("el-table"),me=v("el-pagination"),ve=ke("loading");return d(),r("div",ze,[l("div",Te,[l("div",$e,[l("div",Me,[s(o,{modelValue:w.value,"onUpdate:modelValue":e[0]||(e[0]=t=>w.value=t),placeholder:"状态",clearable:"",style:{width:"100px"},onChange:e[1]||(e[1]=t=>y(1))},{default:u(()=>[s(n,{label:"全部状态",value:""}),s(n,{label:"✓ 成功",value:"success"}),s(n,{label:"♻️ 复用",value:"reused"}),s(n,{label:"✗ 失败",value:"failed"})]),_:1},8,["modelValue"]),s(o,{modelValue:D.value,"onUpdate:modelValue":e[2]||(e[2]=t=>D.value=t),placeholder:"网盘",clearable:"",style:{width:"100px"},onChange:e[3]||(e[3]=t=>y(1))},{default:u(()=>[s(n,{label:"全部网盘",value:""}),(d(!0),r(K,null,P(B.value,t=>(d(),J(n,{key:t,label:H(t),value:t},{default:u(()=>[l("span",Ve,[l("img",{src:G(t),style:{width:"16px",height:"16px"}},null,8,Ee),m(" "+i(H(t)),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"]),l("div",Be,[(d(),r(K,null,P(X,t=>l("button",{key:t.key,class:L(["time-btn",{active:M.value===t.key}]),onClick:U=>z(t.key)},i(t.label),11,Fe)),64))]),s(c,{modelValue:N.value,"onUpdate:modelValue":e[4]||(e[4]=t=>N.value=t),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"220px"},onChange:ce},null,8,["modelValue"]),s(A,{modelValue:S.value,"onUpdate:modelValue":e[5]||(e[5]=t=>S.value=t),placeholder:"搜索资源名称…",clearable:"",style:{width:"180px"},onClear:e[6]||(e[6]=t=>y(1)),onKeyup:e[7]||(e[7]=ye(t=>y(1),["enter"]))},{prefix:u(()=>[s(g,null,{default:u(()=>[s(I(Ce))]),_:1})]),_:1},8,["modelValue"])]),l("div",He,[s(x,{size:"small",onClick:_e},{default:u(()=>[...e[11]||(e[11]=[m("重置筛选",-1)])]),_:1}),l("span",je,"共 "+i(b.value)+" 条",1)])])]),f.value?(d(),r("div",Ae,[l("span",Le,[e[12]||(e[12]=m("📊 共 ",-1)),l("strong",null,i(f.value.total),1),e[13]||(e[13]=m(" 条",-1))]),e[18]||(e[18]=l("span",{class:"summary-divider"},"|",-1)),l("span",Ie,[e[14]||(e[14]=m("✅ 成功 ",-1)),l("strong",null,i(f.value.success),1)]),l("span",Ye,[e[15]||(e[15]=m("♻️ 复用 ",-1)),l("strong",null,i(f.value.reused),1)]),l("span",Ge,[e[16]||(e[16]=m("❌ 失败 ",-1)),l("strong",null,i(f.value.failed),1)]),f.value.total>0?(d(),r("span",Re,[e[17]||(e[17]=m(" 成功率 ",-1)),l("strong",null,i(((f.value.success+f.value.reused)/f.value.total*100).toFixed(1))+"%",1)])):p("",!0)])):p("",!0),l("div",Ue,[be((d(),J(ge,{data:Y.value,stripe:"",style:{width:"100%"},"empty-text":"暂无转存记录",onExpandChange:re,"row-class-name":ie},{default:u(()=>[s(h,{type:"expand",width:"36"},{default:u(({row:t})=>[l("div",Ke,[l("div",Pe,[l("div",Je,[e[19]||(e[19]=l("span",{class:"detail-label"},"原始链接",-1)),l("a",{href:t.source_url,target:"_blank",class:"detail-link"},i(t.source_url),9,Oe)]),t.original_folder_name?(d(),r("div",Xe,[e[20]||(e[20]=l("span",{class:"detail-label"},"原始文件夹名",-1)),l("code",Qe,i(t.original_folder_name),1)])):p("",!0),t.status!=="reused"&&(t.folder_count>0||t.file_count>0)?(d(),r("div",We,[e[22]||(e[22]=l("span",{class:"detail-label"},"文件夹",-1)),l("span",null,[l("strong",null,i(t.folder_count||0),1),e[21]||(e[21]=m(" 个",-1))])])):p("",!0),t.status!=="reused"&&(t.folder_count>0||t.file_count>0)?(d(),r("div",Ze,[e[24]||(e[24]=l("span",{class:"detail-label"},"文件",-1)),l("span",null,[l("strong",null,i(t.file_count||0),1),e[23]||(e[23]=m(" 个",-1))])])):p("",!0),t.status==="reused"?(d(),r("div",qe,[...e[25]||(e[25]=[l("span",{class:"detail-label"},"复用方式",-1),l("span",{class:"reuse-msg"},"♻️ 直接使用已有分享链接,无需实际转存",-1)])])):p("",!0)]),l("div",et,[t.share_url?(d(),r("div",tt,[e[26]||(e[26]=l("span",{class:"detail-label"},"分享链接",-1)),l("a",{href:t.share_url,target:"_blank",class:"detail-link"},i(t.share_url),9,at)])):p("",!0),t.share_pwd?(d(),r("div",lt,[e[27]||(e[27]=l("span",{class:"detail-label"},"分享密码",-1)),s(pe,{size:"small",type:"warning"},{default:u(()=>[m(i(t.share_pwd),1)]),_:2},1024)])):p("",!0),t.folder_name?(d(),r("div",st,[e[28]||(e[28]=l("span",{class:"detail-label"},"转存文件夹",-1)),l("code",nt,i(t.folder_name),1)])):p("",!0)]),t.ip_address?(d(),r("div",ot,[l("div",it,[e[29]||(e[29]=l("span",{class:"detail-label"},"IP 地址",-1)),l("code",ut,i(t.ip_address),1)]),t.ip_location?(d(),r("div",dt,[e[30]||(e[30]=l("span",{class:"detail-label"},"归属地",-1)),l("code",rt,i(R(t.ip_location)),1)])):p("",!0)])):p("",!0),t.status==="failed"&&t.error_message?(d(),r("div",ct,[l("div",_t,[e[31]||(e[31]=l("span",{class:"detail-label"},"错误信息",-1)),l("pre",pt,i(t.error_message),1)])])):p("",!0)])]),_:1}),s(h,{label:"序号",width:"68",align:"center"},{default:u(({$index:t})=>[m(i((k.value-1)*C.value+t+1),1)]),_:1}),s(h,{label:"时间",width:"140"},{default:u(({row:t})=>[l("span",{title:t.created_at},i(Z(t.created_at)),9,gt)]),_:1}),s(h,{label:"网盘",width:"70",align:"center"},{default:u(({row:t})=>[s(T,{content:H(t.source_type),placement:"top"},{default:u(()=>[l("img",{src:G(t.source_type),style:{width:"22px",height:"22px",cursor:"default"}},null,8,mt)]),_:2},1032,["content"])]),_:1}),s(h,{label:"状态",width:"72",align:"center"},{default:u(({row:t})=>[s(T,{content:ae(t.status),placement:"top"},{default:u(()=>[l("span",{class:L(["status-badge",le(t.status)])},i(se(t.status)),3)]),_:2},1032,["content"])]),_:1}),s(h,{label:"资源名称","min-width":"160","show-overflow-tooltip":""},{default:u(({row:t})=>[l("span",{title:t.source_title||""},i(t.source_title||"-"),9,vt)]),_:1}),s(h,{label:"耗时",width:"85",align:"center"},{default:u(({row:t})=>[l("span",{class:L(["duration",ee(t.duration_ms)])},i(q(t.duration_ms)),3)]),_:1}),s(h,{label:"归属地","min-width":"130","show-overflow-tooltip":""},{default:u(({row:t})=>[t.ip_location?(d(),r("span",ft,i(R(t.ip_location)),1)):(d(),r("span",ht,"-"))]),_:1}),s(h,{label:"备注","min-width":"200","show-overflow-tooltip":""},{default:u(({row:t})=>[t.status==="failed"&&t.error_message?(d(),r("span",{key:0,class:"err-msg",title:t.error_message},i(te(t.error_message)),9,yt)):t.status==="failed"?(d(),r("span",bt,"失败")):t.status==="reused"?(d(),r("span",kt,"♻️ 复用已有链接")):(d(),r("span",Ct,"-"))]),_:1}),s(h,{label:"操作",width:"80",fixed:"right",align:"center"},{default:u(({row:t})=>[l("div",xt,[s(T,{content:"复制分享链接",placement:"top"},{default:u(()=>[s(x,{size:"small",circle:"",text:"",disabled:!t.share_url,onClick:U=>ue(t.share_url)},{default:u(()=>[s(g,null,{default:u(()=>[s(I(xe))]),_:1})]),_:1},8,["disabled","onClick"])]),_:2},1024),s(T,{content:"打开分享链接",placement:"top"},{default:u(()=>[s(x,{size:"small",circle:"",text:"",disabled:!t.share_url,onClick:U=>de(t.share_url)},{default:u(()=>[s(g,null,{default:u(()=>[s(I(we))]),_:1})]),_:1},8,["disabled","onClick"])]),_:2},1024)])]),_:1})]),_:1},8,["data"])),[[ve,$.value]])]),b.value>0?(d(),r("div",wt,[l("div",Dt," 第 "+i((k.value-1)*C.value+1)+"-"+i(Math.min(k.value*C.value,b.value))+" 条,共 "+i(b.value)+" 条 ",1),s(me,{"current-page":k.value,"onUpdate:currentPage":e[8]||(e[8]=t=>k.value=t),"page-size":C.value,"onUpdate:pageSize":e[9]||(e[9]=t=>C.value=t),total:b.value,"page-sizes":[15,20,30,50,100],layout:"sizes, prev, pager, next, jumper",onCurrentChange:y,onSizeChange:e[10]||(e[10]=t=>y(1))},null,8,["current-page","page-size","total"])])):p("",!0)])}}}),Mt=Ne(Nt,[["__scopeId","data-v-a4822062"]]);export{Mt as default};
|