Files
CoreInject/frontend/dist/assets/Dcev5rw-.js
2025-11-16 05:39:11 +08:00

22 lines
4.2 KiB
JavaScript

import{A as a}from"./RX4g3b5N.js"
import{_ as s,A as e,a as l}from"./BaSQ3xJt.js"
import{u as t,L as n}from"./C2sz-FFd.js"
import{g as i,m as p,f as c}from"./Bt6cakcM.js"
import{d as o,r as d,c as u,o as r,a as v,e as g,m as h,b as m,z as y,F as f,B as b,l as I,u as k,h as A}from"./CdD4XvnD.js"
const j={class:"official-apps-page"},w={class:"page-container"},V={key:0,class:"loading"},C={key:1,class:"error"},M={key:2,class:"empty"},U={key:3},_={key:0,class:"app-section"},G={class:"apps-grid"},x={key:1,class:"app-section"},z={class:"apps-grid"},B={key:4,class:"list-footer"},F={class:"footer-stats"},L={class:"stat-item"},N={class:"stat-value"},O={class:"stat-item"},Q={class:"stat-value"},R={class:"stat-item"},S={class:"stat-value"},T=l(o({__name:"OfficialApps",setup(l){const o=d([]),T=d(!0),q=d(""),D=u(()=>o.value.sort((a,s)=>a.name.localeCompare(s.name))),E=u(()=>D.value.filter(a=>a.path&&a.path.length>0)),H=u(()=>D.value.filter(a=>!a.path||0===a.path.length)),J=async()=>{T.value=!0,q.value=""
try{const s=await e.getApps()
if(0===s.length){const a=await e.batchGetAppVersions([])
if(a.success&&a.data){const s=a.data.notInstalledApps||[]
o.value=s.map(a=>K(a))}else o.value=[]}else{const l=s.map(a=>{let s=[]
return s=a.category?Array.isArray(a.category)?a.category.length>0?a.category:[i(a.bundleId)]:[a.category]:[i(a.bundleId)],{...a,category:s}}),t=await e.batchGetAppVersions(l)
if(t.success&&t.data){const l=t.data,n=p(s,l).filter(a=>null!==a.update),i=(l.notInstalledApps||[]).map(a=>K(a)),d=[...n,...i]
o.value=await c(d)
const u=i.map(a=>a.bundleId)
if(u.length>0)try{const a=await e.batchGetAppIconIds(u)
a.success&&a.iconIdMap&&(o.value=o.value.map(s=>!s.path&&a.iconIdMap[s.bundleId]?{...s,iconId:a.iconIdMap[s.bundleId]}:s))}catch(a){}}else o.value=[]}}catch(a){q.value="加载应用列表失败,请检查服务是否运行",o.value=[]}finally{T.value=!1}}
function K(a){return{bundleId:a.bundleId,name:a.appName,version:"",bundleVersion:"",path:"",status:"supported",injection:null,update:a.versions.length>0?{hasUpdate:!1,latestVersion:a.latestVersion,feedUrl:"",versions:a.versions}:null}}const{updating:P,modalVisible:W,modalTitle:X,logs:Y,modalStatus:Z,handleUpdate:$,hideModal:aa}=t({onRefresh:async a=>{try{const s=await e.getApp(a),l=o.value.findIndex(s=>s.bundleId===a)
if(-1!==l){const a=o.value[l]
o.value[l]={...s,update:a.update||s.update}}}catch(s){}}}),sa=a=>{$(a)},ea=async a=>{await J()}
return r(()=>{J()}),(e,l)=>(A(),v("div",j,[g("div",w,[l[8]||(l[8]=g("div",{class:"page-header"},[g("h1",{class:"page-title"},"来自官方"),g("p",{class:"page-description"},"浏览和下载经过 QiuChenly 认证的可信来源应用")],-1)),T.value?(A(),v("div",V,[...l[0]||(l[0]=[g("div",{class:"spinner"},null,-1),g("p",null,"加载应用中...",-1)])])):q.value?(A(),v("div",C,[g("p",null,y(q.value),1),g("button",{onClick:J,class:"btn btn-primary"},"重试")])):0===D.value.length?(A(),v("div",M,[h(s,{icon:"fluent-color:shield-checkmark-24",class:"empty-icon"}),l[1]||(l[1]=g("p",null,"没有找到来自官方的应用",-1)),l[2]||(l[2]=g("p",{class:"empty-hint"},"当前没有可用的应用更新",-1))])):(A(),v("div",U,[E.value.length>0?(A(),v("div",_,[l[3]||(l[3]=g("h3",{class:"section-title"},"已安装的应用",-1)),g("div",G,[(A(!0),v(f,null,b(E.value,s=>(A(),I(a,{key:s.bundleId,app:s,mode:"list",updating:k(P),onInject:sa,onUpdated:ea},null,8,["app","updating"]))),128))])])):m("",!0),H.value.length>0?(A(),v("div",x,[l[4]||(l[4]=g("h3",{class:"section-title"},"未在此Mac上安装",-1)),g("div",z,[(A(!0),v(f,null,b(H.value,s=>(A(),I(a,{key:s.bundleId,app:s,mode:"list",updating:k(P),onInject:sa,onUpdated:ea},null,8,["app","updating"]))),128))])])):m("",!0)])),D.value.length>0?(A(),v("div",B,[g("div",F,[g("span",L,[l[5]||(l[5]=g("span",{class:"stat-label"},"总计:",-1)),g("span",N,y(D.value.length),1)]),g("span",O,[l[6]||(l[6]=g("span",{class:"stat-label"},"已安装:",-1)),g("span",Q,y(E.value.length),1)]),g("span",R,[l[7]||(l[7]=g("span",{class:"stat-label"},"未安装:",-1)),g("span",S,y(H.value.length),1)])])])):m("",!0)]),h(n,{visible:k(W),title:k(X),logs:k(Y),loading:k(P),status:k(Z),"can-close":"loading"!==k(Z),onClose:k(aa)},null,8,["visible","title","logs","loading","status","can-close","onClose"])]))}}),[["__scopeId","data-v-5e899d81"]])
export{T as default}