mirror of
https://git-qiuchenly.yltfspace.com/QiuChenly/corepatch
synced 2025-11-25 05:40:27 +08:00
### 后端更新 性能优化 - Redis、数据库索引优化, 复杂联表查询查询速度从10秒降低到500ms 功能增强 - 统一文件上传 API - 论坛权限管理优化 ### 前端更新 问题修复 - 统一错误提示、组件复用、图标本地化、密码加密传输、大文件分片上传 新增功能 - 全局通知系统、WebSocket 实时消息、图标批量同步、IP 封禁管理、应用版本批量查询、头像上传、TypeScript 类型完善、讨论区功能增强 代码优化 - 删除冗余组件、统一 API 错误处理、优化代码结构、统一 UI 风格
17 lines
5.7 KiB
JavaScript
17 lines
5.7 KiB
JavaScript
import{d as a,r as s,w as e,o as p,f as t,k as l,b as n,l as i,m as o,g as d,B as u,N as c,v as r,u as v,t as h,c as m,I as g,e as b}from"./Cf-ihD4f.js"
|
|
import{c as y,A as k,_ as w,T as I,a as f}from"./C_NDl53k.js"
|
|
import{u as j,L as C}from"./DrS-_GpA.js"
|
|
const A={key:0,class:"status-badge"},_={key:0,class:"badge upgrade"},E={key:1,class:"badge injected"},R={class:"card-content"},U={class:"app-icon-wrapper"},V={class:"app-icon"},D=["src","alt"],L={class:"app-info"},T={class:"app-name"},$={key:0,class:"app-rating"},q={class:"category-tag"},B={key:1,class:"version-info"},x={key:0,class:"version-item"},M={class:"version-value"},N={key:1,class:"version-item latest"},S={class:"version-label"},z={class:"version-value"},F={key:2,class:"version-item bundle-id"},G={class:"version-value bundle-id-value"},H={key:2,class:"app-description"},J={class:"app-actions"},K=["disabled","title"],O={key:4,class:"button-tooltip"},P=f(a({__name:"AppCard",props:{app:{},mode:{default:"list"},showDescription:{type:Boolean,default:!1}},emits:["updated","openVersionDialog"],setup(a,{emit:f}){const P=a,Q=f,W=g(),X=s(!1),Y=s(!1),Z=s(null),{toasts:aa,warning:sa,removeToast:ea}=y(),pa=async()=>{if(P.app.iconId)try{const a=await k.getIcon(P.app.iconId)
|
|
Z.value=a,Y.value=!1}catch(a){Z.value=null,Y.value=!0}else Z.value=null}
|
|
e(()=>P.app.iconId,()=>{pa()},{immediate:!0}),p(()=>{P.app.iconId&&pa()})
|
|
const ta=t(()=>P.app.iconId&&Z.value?Z.value:P.app.path&&P.app.hasIcon?k.getAppIconUrl(P.app.bundleId):null),{updating:la,modalVisible:na,modalTitle:ia,logs:oa,modalStatus:da,handleUpdate:ua,handleReinstall:ca,hideModal:ra}=j({onRefresh:async()=>{try{await k.getApp(P.app.bundleId),Q("updated",P.app.bundleId)}catch(a){throw a}}}),va=()=>{const a=P.app.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")?"工具":"应用"},ha=t(()=>{if(!P.app.path||0===P.app.path.length)return!1
|
|
const a="upgrade_available"===P.app.status,s=null!==P.app.update&&!0===P.app.update.hasUpdate
|
|
return a||s}),ma=t(()=>{var a
|
|
return!(P.app.path||(null==(a=P.app.update)?void 0:a.versions)&&0!==P.app.update.versions.length)}),ga=()=>{var a
|
|
return la.value?"处理中...":P.app.path?ha.value?"更新":"injected"===P.app.status?"已安装":"supported"===P.app.status?"一键激活":"unsupported"===P.app.status?"不支持":"一键激活":((null==(a=P.app.update)?void 0:a.versions)&&P.app.update.versions.length,"下载")},ba=()=>{P.app.path&&W.push(`/app/${P.app.bundleId}`)},ya=()=>{var a,s
|
|
P.app.path?ha.value&&(null==(s=P.app.update)?void 0:s.versions)&&P.app.update.versions.length>0?window.dispatchEvent(new CustomEvent("open-version-dialog",{detail:P.app})):ha.value||"supported"===P.app.status?ua(P.app):"injected"!==P.app.status&&"unsupported"!==P.app.status&&ca():(null==(a=P.app.update)?void 0:a.versions)&&P.app.update.versions.length>0?window.dispatchEvent(new CustomEvent("open-version-dialog",{detail:P.app})):sa("该应用暂无可用的下载版本",3e3)},ka=()=>{X.value=!0,Y.value=!1},wa=()=>{X.value=!1,Y.value=!0}
|
|
return(s,e)=>{var p
|
|
return b(),l("div",{class:n(["app-card",[`mode-${a.mode}`,{"not-installed":!a.app.path}]]),onClick:ba},["list"===a.mode?(b(),l("div",A,[ha.value?(b(),l("div",_,[...e[0]||(e[0]=[o("span",null,"可更新",-1)])])):"injected"===a.app.status?(b(),l("div",E,[...e[1]||(e[1]=[o("span",null,"已注入",-1)])])):i("",!0)])):i("",!0),o("div",R,[o("div",U,[o("div",V,[ta.value?u((b(),l("img",{key:0,src:ta.value,alt:a.app.name,onLoad:ka,onError:wa},null,40,D)),[[c,X.value&&!Y.value]]):i("",!0),u(o("div",{class:"icon-placeholder"},r(a.app.name.charAt(0).toUpperCase()),513),[[c,!ta.value||!X.value||Y.value]])])]),o("div",L,[o("h3",T,r(a.app.name),1),"search"===a.mode?(b(),l("div",$,[d(w,{icon:"fluent-color:star-24",class:"star-icon"}),e[2]||(e[2]=o("span",null,"4.5",-1))])):i("",!0),o("div",q,[o("span",null,r(va()),1)]),"list"===a.mode?(b(),l("div",B,[a.app.path?(b(),l("div",x,[e[3]||(e[3]=o("span",{class:"version-label"},"当前",-1)),o("span",M,r(a.app.version||"未知"),1)])):i("",!0),(null==(p=a.app.update)?void 0:p.latestVersion)?(b(),l("div",N,[o("span",S,r(a.app.path?"最新":"版本"),1),o("span",z,r(a.app.update.latestVersion),1)])):i("",!0),a.app.path?i("",!0):(b(),l("div",F,[e[4]||(e[4]=o("span",{class:"version-label"},"包名",-1)),o("span",G,r(a.app.bundleId),1)]))])):i("",!0),"search"===a.mode&&a.showDescription?(b(),l("div",H,r(`${P.app.name}是一款优秀的应用程序,提供丰富的功能和良好的用户体验。`),1)):i("",!0)]),o("div",J,[o("button",{class:n(["action-button",!P.app.path&&ma.value?"disabled":ha.value?"warning":"injected"===P.app.status?"success":"supported"===P.app.status?"primary":"unsupported"===P.app.status?"disabled":"primary"]),onClick:h(ya,["stop"]),disabled:v(la)||ma.value,title:!P.app.path&&ma.value?"该应用暂无可用的下载版本":la.value?"正在处理中...":""},[ha.value?(b(),m(w,{key:0,icon:"mdi:arrow-down-circle",class:"button-icon"})):"supported"===P.app.status?(b(),m(w,{key:1,icon:"mdi:key",class:"button-icon"})):"injected"===P.app.status?(b(),m(w,{key:2,icon:"mdi:check-circle",class:"button-icon"})):P.app.path?i("",!0):(b(),m(w,{key:3,icon:"mdi:download",class:"button-icon"})),o("span",null,r(ga()),1),ma.value&&!P.app.path?(b(),l("span",O," 该应用暂无可用的下载版本 ")):i("",!0)],10,K)])]),d(C,{visible:v(na),title:v(ia),logs:v(oa),loading:v(la),status:v(da),"can-close":"loading"!==v(da),onClose:v(ra)},null,8,["visible","title","logs","loading","status","can-close","onClose"]),d(I,{toasts:v(aa),onRemove:v(ea)},null,8,["toasts","onRemove"])],2)}}}),[["__scopeId","data-v-ff5d0d27"]])
|
|
export{P as A}
|