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