PrivatePhotos.D2usM0Ly.js 1.7 KB

1
  1. import{d as s,B as e,P as a,_ as t,f as o,b as r,i as u,w as c,h as n,n as l,p as i,v as d,j as p,t as h,F as f,y as v,m,s as _,$ as k,a0 as y,a1 as P,a2 as $}from"./index-BNxenxOw.js";import{_ as b}from"./_plugin-vue_export-helper.DCCCKk3b.js";const j=b(s({__name:"PrivatePhotos",props:{ids:{},scope:{},resourceId:{}},setup(s){const b=s,j=e([]),w=e("");let C=0;function x(s){s.startsWith("blob:")&&URL.revokeObjectURL(s)}function I(){j.value.forEach(s=>x(s.path)),j.value=[]}async function E(){const s=++C;if(I(),w.value="",!_.token)return;const e=_.token,a=_.epoch;for(const t of b.ids){if(s!==C||a!==_.epoch)return;try{const o=await new Promise((s,a)=>k({url:`${P}/photos/${t}?scope=${b.scope}&resource_id=${b.resourceId}`,header:{Authorization:`Bearer ${e}`},success(t){200===t.statusCode?s(t.tempFilePath):(401===t.statusCode&&e===_.token&&y(),a(new Error("照片读取失败")))},fail:()=>a(new Error("照片读取失败"))}));if(s!==C||a!==_.epoch)return void x(o);j.value.push({id:t,path:o})}catch{s===C&&(w.value="部分照片加载失败,请重新加载")}}}return a(()=>[b.ids.join(","),b.resourceId,_.epoch],E,{immediate:!0,flush:"sync"}),t(()=>{C++,I()}),(s,e)=>{const a=d,t=u,_=v;return o(),r(t,null,{default:c(()=>[n(t,{class:"grid"},{default:c(()=>[(o(!0),l(f,null,i(j.value,s=>(o(),r(t,{key:s.id},{default:c(()=>[n(a,{src:s.path,class:"photo",mode:"aspectFill",onClick:e=>{return a=s.path,void $({current:a,urls:j.value.map(s=>s.path)});var a}},null,8,["src","onClick"]),n(t,{class:"muted small"},{default:c(()=>[p("照片 #"+h(s.id),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),w.value?(o(),r(_,{key:0,class:"text-button",onClick:E},{default:c(()=>[p(h(w.value),1)]),_:1})):m("",!0)]),_:1})}}}),[["__scopeId","data-v-2d023a57"]]);export{j as P};