mirror of
https://git-qiuchenly.yltfspace.com/QiuChenly/corepatch
synced 2025-11-25 05:40:27 +08:00
87 lines
25 KiB
JavaScript
87 lines
25 KiB
JavaScript
import{d as e,r as a,c as l,w as t,o as s,k as i,i as n,a as c,e as r,b as o,v as d,F as u,B as p,n as v,z as m,m as g,h as f,l as h,t as y,x as k,q as b,s as I,I as w,H as C}from"./CdD4XvnD.js"
|
|
import{A as _}from"./RX4g3b5N.js"
|
|
import{_ as A,A as $,a as D}from"./BaSQ3xJt.js"
|
|
import{C as U}from"./Nkv5t_uh.js"
|
|
import{b as j}from"./BYwQvuzJ.js"
|
|
import{g as P,m as V,f as M}from"./Bt6cakcM.js"
|
|
const x={class:"carousel-wrapper"},S={class:"slide-background"},L=["src"],B={class:"slide-content"},E={class:"content-wrapper"},q={key:0,class:"app-icon-wrapper"},z=["src","alt"],H={class:"app-info"},F={key:0,class:"app-price"},W={class:"app-title"},G={key:1,class:"app-description"},N={class:"app-actions"},R=["onClick"],X=["onClick"],O=["disabled"],Y=["disabled"],Z=["viewBox"],T=["cx","cy","r"],J=["d"],K={key:3,class:"carousel-indicators"},Q=["onClick"],ee=D(e({__name:"HeroBanner",props:{items:{},autoPlay:{type:Boolean,default:!0},autoPlayInterval:{default:5e3},progressSize:{default:18}},emits:["action","slideChange"],setup(e,{emit:h}){const y=e,k=h,b=a(0)
|
|
let I=!1
|
|
const w=a(0)
|
|
let C=null,_=0
|
|
const D=a([]),U=a(!1),j=l(()=>({size:y.progressSize,viewBox:"0 0 24 24",centerX:12,centerY:12,radius:9})),P=e=>e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:e.imageId?{}:{background:"linear-gradient(135deg, #0078d4 0%, #106ebe 100%)"},V=e=>{var a
|
|
if(null==(a=e.app)?void 0:a.bundleId)return $.getAppIconUrl(e.app.bundleId)},M=e=>{e.target.style.display="none"},ee=(e,a)=>{k("action",e,a)},ae=(e=!1)=>{b.value<y.items.length-1?b.value++:b.value=0,e||ce(),se(),i(()=>{ie()})},le=()=>{ae(!1)},te=()=>{b.value>0?b.value--:b.value=y.items.length-1,ce(),se(),i(()=>{ie()})},se=()=>{y.items[b.value]&&k("slideChange",b.value,y.items[b.value])},ie=()=>{i(()=>{D.value.forEach((e,a)=>{e&&(a===b.value?e.play().catch(()=>{}):(e.pause(),e.currentTime=0))})})},ne=()=>{const e=j.value.centerX,a=j.value.centerY,l=j.value.radius
|
|
if(w.value<=0)return""
|
|
if(w.value>=100)return`M ${e} ${a} m -${l} 0 a ${l} ${l} 0 1 1 ${2*l} 0 a ${l} ${l} 0 1 1 -${2*l} 0`
|
|
const t=(w.value/100*360-90)*Math.PI/180,s=e+l*Math.cos(t),i=a+l*Math.sin(t)
|
|
return`M ${e} ${a} L ${e} ${a-l} A ${l} ${l} 0 ${w.value>50?1:0} 1 ${s} ${i} Z`},ce=()=>{w.value=0,_=Date.now()},re=()=>{U.value=!0,de()},oe=()=>{U.value=!1,ue()},de=()=>{I||(I=!0,C&&(clearInterval(C),C=null))},ue=()=>{if(!I)return
|
|
if(!y.autoPlay||y.items.length<=1)return
|
|
I=!1
|
|
const e=w.value/100*y.autoPlayInterval
|
|
_=Date.now()-e,pe(!1)},pe=(e=!1)=>{C&&clearInterval(C),e&&ce(),C=window.setInterval(()=>{I||(()=>{if(!y.autoPlay||I||y.items.length<=1)return
|
|
const e=(Date.now()-_)/y.autoPlayInterval*100
|
|
e>=100?(ce(),ae(!0)):w.value=e})()},50)}
|
|
return t(()=>y.items,()=>{b.value>=y.items.length&&(b.value=0),D.value=new Array(y.items.length).fill(null),y.autoPlay&&y.items.length>1&&pe(!0),i(()=>{ie()})},{immediate:!0}),t(()=>b.value,()=>{ie()}),s(()=>{y.autoPlay&&y.items.length>1&&pe(!0),i(()=>{ie()})}),n(()=>{C&&(clearInterval(C),C=null)}),(a,l)=>(f(),c("div",{class:"hero-carousel",onMouseenter:re,onMouseleave:oe},[r("div",x,[r("div",{class:"carousel-container",style:d({transform:`translateX(-${100*b.value}%)`})},[(f(!0),c(u,null,p(e.items,(e,a)=>(f(),c("div",{key:e.id||a,class:v(["carousel-slide",{active:a===b.value}])},[r("div",S,["video"===e.type&&e.videoUrl?(f(),c("video",{key:0,ref_for:!0,ref:e=>((e,a)=>{e&&(D.value[a]=e)})(e,a),class:v(["background-video",{active:a===b.value}]),src:e.videoUrl,muted:"",loop:"",playsinline:""},null,10,L)):(f(),c("div",{key:1,class:"background-image",style:d(P(e))},null,4)),l[0]||(l[0]=r("div",{class:"background-overlay"},null,-1))]),r("div",B,[r("div",E,[V(e)?(f(),c("div",q,[r("img",{src:V(e),alt:e.title,class:"app-icon",onError:M},null,40,z)])):o("",!0),r("div",H,[e.price?(f(),c("div",F,m(e.price),1)):o("",!0),r("h2",W,m(e.title),1),e.description?(f(),c("p",G,m(e.description),1)):o("",!0)]),r("div",N,[e.primaryAction?(f(),c("button",{key:0,class:"action-button primary",onClick:a=>ee("primary",e)},m(e.primaryAction.label),9,R)):o("",!0),e.secondaryAction?(f(),c("button",{key:1,class:"action-button secondary",onClick:a=>ee("secondary",e)},m(e.secondaryAction.label),9,X)):o("",!0)])])])],2))),128))],4)]),e.items.length>1?(f(),c("button",{key:0,class:v(["nav-arrow nav-arrow-left",{visible:U.value}]),onClick:te,disabled:0===b.value},[g(A,{icon:"mdi:triangle",class:"arrow-icon arrow-icon-left"})],10,O)):o("",!0),e.items.length>1?(f(),c("button",{key:1,class:v(["nav-arrow nav-arrow-right",{visible:U.value}]),onClick:le,disabled:b.value===e.items.length-1},[g(A,{icon:"mdi:triangle",class:"arrow-icon arrow-icon-right"})],10,Y)):o("",!0),e.items.length>1&&e.autoPlay?(f(),c("div",{key:2,class:"progress-indicator",style:d({width:`${j.value.size}px`,height:`${j.value.size}px`})},[(f(),c("svg",{class:"progress-circle",viewBox:j.value.viewBox,xmlns:"http://www.w3.org/2000/svg"},[r("circle",{class:"progress-track",cx:j.value.centerX,cy:j.value.centerY,r:j.value.radius,fill:"rgba(255, 255, 255, 0.2)"},null,8,T),r("path",{class:"progress-bar",d:ne(),fill:"white"},null,8,J)],8,Z))],4)):o("",!0),e.items.length>1?(f(),c("div",K,[(f(!0),c(u,null,p(e.items,(e,a)=>(f(),c("button",{key:e.id||a,class:v(["indicator",{active:a===b.value}]),onClick:e=>(e=>{e>=0&&e<y.items.length&&(b.value=e,ce(),se(),i(()=>{ie()}))})(a)},null,10,Q))),128))])):o("",!0)],32))}}),[["__scopeId","data-v-77596baf"]]),ae={class:"right-sidebar"},le={key:0,class:"featured-app-card"},te={class:"featured-app-content"},se={class:"featured-app-icon"},ie=["src","alt"],ne={class:"featured-app-info"},ce={key:0,class:"app-price"},re={class:"app-name"},oe={key:1,class:"app-version"},de={key:2,class:"app-description"},ue={class:"bottom-cards"},pe={key:0,class:"card image-viewer-card"},ve={class:"card-icon-container"},me={class:"main-icon"},ge=["src"],fe={class:"format-icons"},he={class:"card-title"},ye={key:1,class:"card entertainment-card"},ke={class:"app-icons-grid"},be=["onClick"],Ie=["src","alt"],we={class:"card-title"},Ce=D(e({__name:"RightSidebar",props:{entertainmentData:{default:void 0},imageViewerData:{default:void 0},featuredAppData:{default:void 0}},emits:["appClick"],setup(e,{emit:a}){const l=e,t=a,s=()=>{var e
|
|
return(null==(e=l.featuredAppData)?void 0:e.screenshotUrl)?{backgroundImage:`url(${l.featuredAppData.screenshotUrl})`}:{backgroundImage:"url(https://cn.bing.com/th?id=OHR.LagoonNebula_ZH-CN3890147543_1920x1080.jpg)"}},i=()=>{var e
|
|
return(null==(e=l.imageViewerData)?void 0:e.backgroundUrl)?{backgroundImage:`url(${l.imageViewerData.backgroundUrl})`}:{backgroundImage:"url(https://cn.bing.com/th?id=OHR.LagoonNebula_ZH-CN3890147543_1920x1080.jpg)"}}
|
|
return(a,l)=>(f(),c("div",ae,[e.featuredAppData?(f(),c("div",le,[r("div",{class:"featured-app-background",style:d(s())},null,4),r("div",te,[r("div",se,[e.featuredAppData.iconUrl?(f(),c("img",{key:0,src:e.featuredAppData.iconUrl,alt:e.featuredAppData.name},null,8,ie)):(f(),h(A,{key:1,icon:"fluent-color:apps-24",class:"default-icon"}))]),r("div",ne,[e.featuredAppData.price?(f(),c("div",ce,m(e.featuredAppData.price),1)):o("",!0),r("div",re,m(e.featuredAppData.name),1),e.featuredAppData.version?(f(),c("div",oe,m(e.featuredAppData.version),1)):o("",!0),e.featuredAppData.description?(f(),c("div",de,m(e.featuredAppData.description),1)):o("",!0)])])])):o("",!0),r("div",ue,[e.imageViewerData?(f(),c("div",pe,[r("div",{class:"image-viewer-background",style:d(i())},null,4),r("div",ve,[r("div",me,[e.imageViewerData.iconUrl?(f(),c("img",{key:0,src:e.imageViewerData.iconUrl,alt:"",class:"icon-image"},null,8,ge)):(f(),h(A,{key:1,icon:"fluent-color:image-24",class:"icon-large"}))]),r("div",fe,[(f(!0),c(u,null,p(e.imageViewerData.tags,(e,a)=>(f(),c("span",{key:a,class:"format-tag"},m(e),1))),128))])]),r("div",he,m(e.imageViewerData.title),1)])):o("",!0),e.entertainmentData?(f(),c("div",ye,[r("div",ke,[(f(!0),c(u,null,p(e.entertainmentData.apps,(e,a)=>(f(),c("div",{class:"app-icon",key:a,onClick:y(a=>(e=>{t("appClick",e)})(e),["stop"])},[e.iconUrl?(f(),c("img",{key:0,src:e.iconUrl,alt:e.name,class:"app-icon-image"},null,8,Ie)):(f(),h(A,{key:1,icon:"fluent-color:play-circle-24"}))],8,be))),128))]),r("div",we,m(e.entertainmentData.title),1)])):o("",!0)])]))}}),[["__scopeId","data-v-45de0ff0"]]),_e={class:"featured-scroll-wrapper"},Ae={class:"featured-list"},$e=["onClick"],De={class:"featured-icon-wrapper"},Ue=["src","alt"],je={key:1,class:"featured-icon-placeholder"},Pe={class:"featured-name"},Ve={class:"featured-category"},Me={class:"category-tag"},xe=["onClick"],Se=D(e({__name:"FeaturedApps",props:{apps:{}},emits:["appClick","action"],setup(e,{emit:d}){const h=e,k=d,b=a(null),I=a(!1),w=a(0),C=l(()=>w.value>0),_=l(()=>{if(!b.value)return!1
|
|
const e=b.value
|
|
return e.scrollWidth>e.clientWidth&&w.value<e.scrollWidth-e.clientWidth-1}),D=()=>{b.value&&(w.value=b.value.scrollLeft)},U=()=>{b.value&&b.value.scrollBy({left:-400,behavior:"smooth"})},j=()=>{b.value&&b.value.scrollBy({left:400,behavior:"smooth"})},P=e=>$.getAppIconUrl(e.bundleId),V=()=>{},M=e=>{const a=e.bundleId.toLowerCase()
|
|
return a.includes("social")||a.includes("chat")||a.includes("qq")||a.includes("wechat")?"社交":a.includes("music")||a.includes("video")||a.includes("player")?"娱乐":a.includes("design")||a.includes("photo")||a.includes("edit")?"设计":a.includes("tool")||a.includes("util")?"工具":"应用"},x=e=>"upgrade_available"===e.status?"更新":"injected"===e.status?"已安装":(e.status,"获取")
|
|
t(()=>h.apps,()=>{i(()=>{D()})},{immediate:!0})
|
|
const S=()=>{i(()=>{D()})}
|
|
return s(()=>{i(()=>{D(),b.value&&b.value.addEventListener("scroll",D)}),window.addEventListener("resize",S)}),n(()=>{b.value&&b.value.removeEventListener("scroll",D),window.removeEventListener("resize",S)}),(a,l)=>(f(),c("div",{class:"featured-apps",onMouseenter:l[0]||(l[0]=e=>I.value=!0),onMouseleave:l[1]||(l[1]=e=>I.value=!1)},[l[2]||(l[2]=r("h3",{class:"section-title"},"推荐应用",-1)),r("div",_e,[r("div",{class:"featured-scroll",ref_key:"scrollContainer",ref:b},[r("div",Ae,[(f(!0),c(u,null,p(e.apps,e=>(f(),c("div",{key:e.bundleId,class:"featured-card",onClick:a=>(e=>{k("appClick",e)})(e)},[r("div",De,[P(e)?(f(),c("img",{key:0,src:P(e),alt:e.name,class:"featured-icon",onError:V},null,40,Ue)):(f(),c("div",je,m(e.name.charAt(0).toUpperCase()),1))]),r("h4",Pe,m(e.name),1),r("div",Ve,[r("span",Me,m(M(e)),1)]),r("button",{class:"featured-button",onClick:y(a=>(e=>{k("action",e)})(e),["stop"])},m(x(e)),9,xe)],8,$e))),128))])],512),C.value?(f(),c("button",{key:0,class:v(["scroll-button scroll-button-left",{visible:I.value}]),onClick:U},[g(A,{icon:"mdi:chevron-left"})],2)):o("",!0),_.value?(f(),c("button",{key:1,class:v(["scroll-button scroll-button-right",{visible:I.value}]),onClick:j},[g(A,{icon:"mdi:chevron-right"})],2)):o("",!0)])],32))}}),[["__scopeId","data-v-f9c47b05"]]),Le={class:"category-section"},Be={class:"category-content"},Ee={class:"category-left"},qe={class:"featured-list"},ze=["onClick"],He={class:"featured-large-icon-wrapper"},Fe=["src","alt"],We={key:1,class:"featured-large-icon-placeholder"},Ge={class:"featured-large-info"},Ne={class:"featured-large-name"},Re={class:"featured-large-desc"},Xe=["onClick"],Oe={class:"category-right"},Ye={class:"category-grid"},Ze=["onClick"],Te={class:"category-icon"},Je={class:"category-name"},Ke=D(e({__name:"CategorySection",props:{featuredApps:{},categories:{default:()=>[{id:"tools",name:"工具",icon:"fluent-color:wrench-24"},{id:"social",name:"社交",icon:"fluent-color:people-24"},{id:"entertainment",name:"娱乐",icon:"fluent-color:video-24"},{id:"design",name:"设计",icon:"fluent-color:paint-brush-24"},{id:"education",name:"教育",icon:"fluent-color:book-24"},{id:"productivity",name:"效率",icon:"fluent-color:briefcase-24"},{id:"photo",name:"摄影",icon:"fluent-color:camera-24"},{id:"music",name:"音乐",icon:"fluent-color:headphones-48"},{id:"news",name:"新闻",icon:"fluent-color:news-24"},{id:"health",name:"健康",icon:"fluent-color:heart-24"},{id:"finance",name:"财务",icon:"fluent-color:coin-multiple-48"},{id:"travel",name:"旅行",icon:"fluent-color:globe-24"}]}},emits:["appClick","action","categoryClick"],setup(e,{emit:a}){const l=a,t=e=>$.getAppIconUrl(e.bundleId),s=()=>{},i=e=>"upgrade_available"===e.status?"更新":"injected"===e.status?"已安装":(e.status,"获取")
|
|
return(a,n)=>(f(),c("div",Le,[r("div",Be,[r("div",Ee,[n[0]||(n[0]=r("h3",{class:"section-title"},"特色应用",-1)),r("div",qe,[(f(!0),c(u,null,p(e.featuredApps.slice(0,2),e=>(f(),c("div",{key:e.bundleId,class:"featured-large-card",onClick:a=>(e=>{l("appClick",e)})(e)},[r("div",He,[t(e)?(f(),c("img",{key:0,src:t(e),alt:e.name,class:"featured-large-icon",onError:s},null,40,Fe)):(f(),c("div",We,m(e.name.charAt(0).toUpperCase()),1))]),r("div",Ge,[r("h4",Ne,m(e.name),1),r("p",Re,m(e.bundleId),1),r("button",{class:"featured-large-button",onClick:y(a=>(e=>{l("action",e)})(e),["stop"])},m(i(e)),9,Xe)])],8,ze))),128))])]),r("div",Oe,[n[1]||(n[1]=r("h3",{class:"section-title"},"分类",-1)),r("div",Ye,[(f(!0),c(u,null,p(e.categories,e=>(f(),c("div",{key:e.id,class:"category-card",onClick:a=>(e=>{l("categoryClick",e)})(e)},[r("div",Te,[g(A,{icon:e.icon},null,8,["icon"])]),r("span",Je,m(e.name),1)],8,Ze))),128))])])])]))}}),[["__scopeId","data-v-2970f815"]]),Qe=D(e({__name:"Shimmer",props:{customClass:{default:""},customStyle:{default:()=>({})}},setup:e=>(a,l)=>(f(),c("div",{class:v(["shimmer",e.customClass]),style:d(e.customStyle)},[k(a.$slots,"default",{},void 0)],6))}),[["__scopeId","data-v-c725e1ff"]]),ea={class:"card-content"},aa={class:"info-placeholder"},la={key:0,class:"version-placeholder"},ta={key:1,class:"description-placeholder"},sa=D(e({__name:"SkeletonCard",props:{mode:{default:"list"}},setup:e=>(a,l)=>(f(),c("div",{class:v(["skeleton-card",[`mode-${e.mode}`]])},[g(Qe,null,{default:b(()=>[r("div",ea,[l[4]||(l[4]=r("div",{class:"icon-placeholder"},null,-1)),r("div",aa,[l[2]||(l[2]=r("div",{class:"name-placeholder"},null,-1)),l[3]||(l[3]=r("div",{class:"tag-placeholder"},null,-1)),"list"===e.mode?(f(),c("div",la,[...l[0]||(l[0]=[r("div",{class:"version-line"},null,-1),r("div",{class:"version-line"},null,-1)])])):o("",!0),"search"===e.mode?(f(),c("div",ta,[...l[1]||(l[1]=[r("div",{class:"description-line"},null,-1),r("div",{class:"description-line short"},null,-1)])])):o("",!0)]),l[5]||(l[5]=r("div",{class:"button-placeholder"},null,-1))])]),_:1})],2))}),[["__scopeId","data-v-a12da7fe"]]),ia={class:"skeleton-hero"},na=D(e({__name:"SkeletonHero",setup:e=>(e,a)=>(f(),c("div",ia,[g(Qe,null,{default:b(()=>[...a[0]||(a[0]=[r("div",{class:"hero-content"},[r("div",{class:"icon-placeholder"}),r("div",{class:"info-placeholder"},[r("div",{class:"price-placeholder"}),r("div",{class:"title-placeholder"}),r("div",{class:"description-placeholder"},[r("div",{class:"line"}),r("div",{class:"line short"})])]),r("div",{class:"actions-placeholder"},[r("div",{class:"button-placeholder"}),r("div",{class:"button-placeholder secondary"})])],-1)])]),_:1})]))}),[["__scopeId","data-v-6f069147"]]),ca={class:"skeleton-sidebar"},ra={class:"bottom-cards-placeholder"},oa={class:"card-placeholder entertainment-placeholder"},da={class:"icons-grid-placeholder"},ua=D(e({__name:"SkeletonSidebar",setup:e=>(e,a)=>(f(),c("div",ca,[g(Qe,null,{default:b(()=>[...a[0]||(a[0]=[r("div",{class:"featured-app-placeholder"},[r("div",{class:"featured-icon-placeholder"}),r("div",{class:"featured-info-placeholder"},[r("div",{class:"price-placeholder"}),r("div",{class:"name-placeholder"}),r("div",{class:"version-placeholder"})])],-1)])]),_:1}),r("div",ra,[g(Qe,null,{default:b(()=>[...a[1]||(a[1]=[r("div",{class:"card-placeholder image-viewer-placeholder"},[r("div",{class:"card-icon-placeholder"}),r("div",{class:"card-title-placeholder"})],-1)])]),_:1}),g(Qe,null,{default:b(()=>[r("div",oa,[r("div",da,[(f(),c(u,null,p(6,e=>r("div",{key:e,class:"icon-item-placeholder"})),64))]),a[2]||(a[2]=r("div",{class:"card-title-placeholder"},null,-1))])]),_:1})])]))}),[["__scopeId","data-v-1b9c730e"]]),pa={class:"app-list"},va={class:"search-header"},ma={class:"search-title"},ga={class:"search-filters"},fa={class:"filter-tags"},ha={key:0,class:"apps-grid search-results-grid"},ya={key:1,class:"error"},ka={key:2,class:"empty"},ba={key:3,class:"apps-grid search-results-grid"},Ia={class:"hero-section"},wa={key:0,class:"featured-apps-skeleton"},Ca={class:"featured-scroll-skeleton"},_a={class:"list-section"},Aa={class:"list-header"},$a={class:"section-title"},Da={class:"section-description"},Ua={key:0,class:"apps-grid"},ja={key:1,class:"error"},Pa={key:2,class:"empty"},Va={key:3,class:"apps-grid"},Ma={class:"list-footer"},xa={class:"footer-stats"},Sa={class:"stat-item"},La={class:"stat-value"},Ba={class:"stat-item"},Ea={class:"stat-value"},qa=D(e({__name:"AppList",setup(e){const t=w(),i=C(),n=I([]),d=a(!0),v=a(""),y=a([]),k=a(!1),b=a({}),D=l(()=>t.query.search||""),x=l(()=>!!D.value),S=[{id:"all",label:"所有分类"},{id:"app",label:"应用"},{id:"game",label:"游戏"},{id:"mobile",label:"移动应用"}],L=a("all"),B=[{value:"all",label:"全部",icon:"fluent-color:text-bullet-list-square-sparkle-32"},{value:"injected",label:"已安装",icon:"fluent-color:checkmark-circle-24"},{value:"update",label:"可更新",icon:"fluent-color:arrow-download-24"},{value:"store",label:"商店应用",icon:"fluent-color:store-24"}],E=l(()=>n.value.filter(e=>"injected"===e.status||"upgrade_available"===e.status).slice(0,5)),q=l(()=>y.value.length>0?y.value.map(e=>{const a=b.value[e.imageId]||void 0
|
|
return{id:e._id,type:e.type,imageUrl:a,imageId:e.imageId,videoUrl:e.videoUrl,title:e.title,description:e.description,price:e.price,primaryAction:e.primaryAction,secondaryAction:e.secondaryAction}}):E.value.map(e=>{var a,l
|
|
const t=(null==(a=e.update)?void 0:a.imageId)||[],s=t.length>0?t[0]:void 0,i=t.length>1
|
|
return{id:e.bundleId,type:i?"video":"image",imageId:s,videoId:i&&t[1]?t[1]:void 0,title:e.name,description:(null==(l=e.update)?void 0:l.latestVersion)?`版本 ${e.update.latestVersion}`:`版本 ${e.version}`,price:"",primaryAction:{label:"upgrade_available"===e.status?"查看详情":"injected"===e.status?"已安装":"获取",action:"view",route:`/app/${e.bundleId}`},secondaryAction:"upgrade_available"===e.status?{label:"更新",action:"update"}:void 0,app:e}})),z=l(()=>0===n.value.length?{title:"App精选",apps:[]}:{title:"App精选",apps:[...n.value].sort(()=>Math.random()-.5).slice(0,6).map(e=>({iconUrl:e.hasIcon?$.getAppIconUrl(e.bundleId):void 0,name:e.name,bundleId:e.bundleId,...e}))}),H=[["专业级应用,为您提供卓越的使用体验。","功能强大,界面简洁,操作便捷。","让您的工作和生活更加高效。"],["精心设计的应用,满足您的各种需求。","稳定可靠,性能优异,值得信赖。","为您带来全新的使用感受。"],["功能丰富,设计精美,体验流畅。","无论是工作还是娱乐,都能轻松应对。","让您的数字生活更加精彩。"],["强大的功能,简洁的界面,出色的性能。","为您提供专业级的解决方案。","让每一次使用都成为享受。"],["创新设计,卓越性能,完美体验。","满足您的专业需求和个人喜好。","让您的设备发挥最大潜力。"],["功能全面,操作简单,效果出色。","无论是新手还是专家都能轻松上手。","为您的工作和生活增添便利。"]],F=l(()=>{var e,a
|
|
if(0===n.value.length)return
|
|
const l=E.value[0]||n.value.find(e=>null!==e.update)||n.value[0]
|
|
if(!l)return
|
|
const t=l.hasIcon?$.getAppIconUrl(l.bundleId):void 0,s=(null==(e=l.update)?void 0:e.imageId)&&l.update.imageId.length>0?l.update.imageId[0]:void 0,i=(e=>{const a=(e=>{let a=0
|
|
for(let l=0;l<e.length;l++)a=(a<<5)-a+e.charCodeAt(l),a&=a
|
|
return Math.abs(a)})(e),l=a%2+2
|
|
return H[a%H.length].slice(0,l).join(" ")})(l.bundleId)
|
|
return{name:l.name,iconUrl:t,version:(null==(a=l.update)?void 0:a.latestVersion)||l.version,description:i,price:"",screenshotId:s}}),W=l(()=>{var e,a
|
|
if(0===n.value.length)return
|
|
const l=n.value.find(e=>null!==e.update)||n.value[0]
|
|
if(!l)return
|
|
const t=l.hasIcon?$.getAppIconUrl(l.bundleId):void 0,s=(null==(e=l.update)?void 0:e.imageId)&&l.update.imageId.length>0?l.update.imageId[0]:void 0,i=["JPG","PNG","GIF","HEIC","BMP","WEBP","TIFF","SVG","ICO","RAW","PSD","PDF"]
|
|
let c
|
|
if((null==(a=l.update)?void 0:a.category)&&l.update.category.length>0)c=l.update.category
|
|
else{const e=[...i].sort(()=>Math.random()-.5),a=Math.floor(2*Math.random())+4
|
|
c=e.slice(0,a)}return{title:l.name,iconUrl:t,tags:c.slice(0,6),backgroundId:s}}),G=l(()=>{let e=[...n.value]
|
|
if(x.value&&D.value){const a=D.value.toLowerCase()
|
|
e=e.filter(e=>e.name.toLowerCase().includes(a)||e.bundleId.toLowerCase().includes(a))}if(x.value&&"all"!==L.value)switch(L.value){case"injected":e=e.filter(e=>"injected"===e.status)
|
|
break
|
|
case"update":e=e.filter(e=>"upgrade_available"===e.status)
|
|
break
|
|
case"store":e=e.filter(e=>null!==e.update)}else if(!x.value){const a=t.query.filter
|
|
if(a)switch(a){case"injected":e=e.filter(e=>"injected"===e.status)
|
|
break
|
|
case"update":e=e.filter(e=>"upgrade_available"===e.status)
|
|
break
|
|
case"unsupported":e=e.filter(e=>"unsupported"===e.status)
|
|
break
|
|
case"store":e=e.filter(e=>null!==e.update)}}return e.sort((e,a)=>e.name.localeCompare(a.name)),e}),N=()=>{switch(t.query.filter){case"injected":return"已注入应用"
|
|
case"update":return"可更新应用"
|
|
case"unsupported":return"不支持的应用"
|
|
case"store":return"应用商店"
|
|
default:return"所有应用"}},R=()=>{switch(t.query.filter){case"store":return"浏览和下载应用更新版本"
|
|
case"injected":return"已成功注入的应用列表"
|
|
case"update":return"有新版本可用的应用"
|
|
case"unsupported":return"当前版本不支持的应用"
|
|
default:return"系统中所有已安装的应用"}},X=async()=>{d.value=!0,v.value=""
|
|
try{const a=await $.getApps()
|
|
if(a.length>0)try{const e=a.map(e=>{let a=[]
|
|
return a=e.category?Array.isArray(e.category)?e.category.length>0?e.category:[P(e.bundleId)]:[e.category]:[P(e.bundleId)],{...e,category:a}}),l=await $.batchGetAppVersions(e)
|
|
let t
|
|
t=l.success&&l.data?V(a,l.data):a,n.value=await M(t)}catch(e){n.value=a}else n.value=a
|
|
j(n.value).catch(e=>{})}catch(e){v.value="加载应用列表失败,请检查服务是否运行",n.value=[]}finally{d.value=!1}},O=async e=>{await X()},Y=e=>{i.push(`/app/${e.bundleId}`)},Z=e=>{},T=e=>{if(e.bundleId){const a=n.value.find(a=>a.bundleId===e.bundleId)
|
|
a?Y(a):i.push(`/app/${e.bundleId}`)}},J=(e,a)=>{const l="primary"===e?a.primaryAction:a.secondaryAction
|
|
l&&(l.route?i.push(l.route):l.url?window.open(l.url,"_blank"):"update"===l.action&&a.app)},K=(e,a)=>{},Q=e=>{}
|
|
return s(()=>{X(),(async()=>{k.value=!0
|
|
try{const e=await $.getPublicCarousels()
|
|
e.success&&e.data&&(y.value=e.data,e.data.forEach(e=>{e.imageId&&!b.value[e.imageId]&&(async e=>{if(!b.value[e])try{const a=await $.getImage(e)
|
|
b.value[e]=a}catch(a){}})(e.imageId)}))}catch(e){}finally{k.value=!1}})()}),(e,a)=>(f(),c("div",pa,[x.value?(f(),c(u,{key:0},[r("div",va,[r("h2",ma,'"'+m(D.value)+'"',1)]),r("div",ga,[r("div",fa,[(f(),c(u,null,p(S,e=>r("button",{key:e.id,class:"filter-tag"},m(e.label),1)),64))]),g(U,{modelValue:L.value,"onUpdate:modelValue":a[0]||(a[0]=e=>L.value=e),options:B},null,8,["modelValue"])]),d.value?(f(),c("div",ha,[(f(),c(u,null,p(8,e=>g(sa,{key:`skeleton-search-${e}`,mode:"search"})),64))])):v.value?(f(),c("div",ya,[r("p",null,m(v.value),1),r("button",{onClick:X,class:"btn btn-primary"},"重试")])):0===G.value.length?(f(),c("div",ka,[g(A,{icon:"fluent-color:apps-24",class:"empty-icon"}),a[1]||(a[1]=r("p",null,"没有找到应用",-1)),a[2]||(a[2]=r("p",{class:"empty-hint"},"尝试调整搜索条件或筛选器",-1))])):(f(),c("div",ba,[(f(!0),c(u,null,p(G.value,e=>(f(),h(_,{key:e.bundleId,app:e,mode:"search","show-description":!0,onUpdated:O},null,8,["app"]))),128))]))],64)):(f(),c(u,{key:1},[r("div",Ia,[k.value||0===q.value.length?(f(),h(na,{key:0})):(f(),h(ee,{key:1,items:q.value,"auto-play":!0,"auto-play-interval":5e3,onAction:J,onSlideChange:K},null,8,["items"])),d.value||0===n.value.length?(f(),h(ua,{key:2})):(f(),h(Ce,{key:3,"entertainment-data":z.value,"image-viewer-data":W.value,"featured-app-data":F.value,onAppClick:T},null,8,["entertainment-data","image-viewer-data","featured-app-data"]))]),d.value||0===E.value.length?(f(),c("div",wa,[a[3]||(a[3]=r("div",{class:"section-title-skeleton"},null,-1)),r("div",Ca,[(f(),c(u,null,p(5,e=>g(sa,{key:`skeleton-featured-${e}`,mode:"list",class:"featured-skeleton-card"})),64))])])):(f(),h(Se,{key:1,apps:E.value,onAppClick:Y,onAction:Z},null,8,["apps"])),!d.value&&E.value.length>0?(f(),h(Ke,{key:2,"featured-apps":E.value.slice(0,2),onAppClick:Y,onAction:Z,onCategoryClick:Q},null,8,["featured-apps"])):o("",!0),r("div",_a,[r("div",Aa,[r("h2",$a,m(N()),1),r("p",Da,m(R()),1)]),d.value?(f(),c("div",Ua,[(f(),c(u,null,p(12,e=>g(sa,{key:`skeleton-list-${e}`,mode:"list"})),64))])):v.value?(f(),c("div",ja,[r("p",null,m(v.value),1),r("button",{onClick:X,class:"btn btn-primary"},"重试")])):0===G.value.length?(f(),c("div",Pa,[g(A,{icon:"fluent-color:apps-24",class:"empty-icon"}),a[4]||(a[4]=r("p",null,"没有找到应用",-1)),a[5]||(a[5]=r("p",{class:"empty-hint"},"尝试调整筛选器",-1))])):(f(),c("div",Va,[(f(!0),c(u,null,p(G.value,e=>(f(),h(_,{key:e.bundleId,app:e,mode:"list",onUpdated:O},null,8,["app"]))),128))])),r("div",Ma,[r("div",xa,[r("span",Sa,[a[6]||(a[6]=r("span",{class:"stat-label"},"总计:",-1)),r("span",La,m(n.value.length),1)]),r("span",Ba,[a[7]||(a[7]=r("span",{class:"stat-label"},"显示:",-1)),r("span",Ea,m(G.value.length),1)])])])])],64))]))}}),[["__scopeId","data-v-d9dd8f77"]])
|
|
export{qa as default}
|