Files
CoreInject/frontend/dist/assets/CTPaZ9b5.js
QiuChenly 8394c93e6c 性能优化、错误修复
### 后端更新

性能优化
- Redis、数据库索引优化, 复杂联表查询查询速度从10秒降低到500ms

功能增强
- 统一文件上传 API
- 论坛权限管理优化

### 前端更新

问题修复
- 统一错误提示、组件复用、图标本地化、密码加密传输、大文件分片上传

新增功能
- 全局通知系统、WebSocket 实时消息、图标批量同步、IP 封禁管理、应用版本批量查询、头像上传、TypeScript 类型完善、讨论区功能增强

代码优化
- 删除冗余组件、统一 API 错误处理、优化代码结构、统一 UI 风格
2025-11-13 03:02:01 +08:00

22 lines
1.2 KiB
JavaScript

import{A as t}from"./C_NDl53k.js"
async function s(s){var e,n
try{const c=s.filter(t=>t.hasIcon&&t.bundleId)
if(0===c.length)return
const a=c.map(t=>t.bundleId),o=await t.batchCheckAppIconsExist(a)
if(!o.success)return
const r=(null==(e=o.data)?void 0:e.missingBundleIds)||[]
if(0===r.length)return
const i=5
let l=0,u=0
const d=[],h=new Map
c.forEach(t=>{h.set(t.bundleId,t)})
for(let s=0;s<r.length;s+=i){const e=r.slice(s,s+i);(await Promise.allSettled(e.map(async s=>{try{const e=h.get(s),n=(null==e?void 0:e.name)||void 0,c=t.getAppIconUrl(s),a=await fetch(c)
if(!a.ok)throw new Error(`获取本地图标失败: HTTP ${a.status}`)
const o=await a.blob()
if(0===o.size)throw new Error("图标文件为空")
const r=new File([o],`${s}.png`,{type:o.type||"image/png"}),i=await t.syncAppIconToCloud(s,r,n)
if(i.success)return d.push(s),{bundleId:s,success:!0}
throw new Error(i.message||"上传失败")}catch(e){return{bundleId:s,success:!1,error:e.message||String(e)}}}))).forEach(t=>{"fulfilled"===t.status&&t.value.success?l++:u++})}if(d.length>0){await new Promise(t=>setTimeout(t,500))
const s=await t.batchCheckAppIconsExist(d)
s.success&&((null==(n=s.data)?void 0:n.missingBundleIds)||[]).length}}catch(c){}}export{s as b}