PrivatePhotos.CEsbEFwG.js 1.7 KB

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