build(admin): track the SPA build output so git deploys carry it

assets/admin/build was gitignored, so servers deployed by git pull kept
running a stale admin bundle — the icon picker integration in the tabbar
and floating-button settings pages never reached them. Track the build
directory (rebuild with: cd assets/admin && npm run build) and commit the
current bundle containing the universal icon picker.
This commit is contained in:
kate522 committed 2026-09-06 14:35:15 +08:00
1 parent 2e25894eb5
commit 27d8a9ea71
64 files changed
+15839 -3

No files matched your search

@@ -0,0 +1 @@
import{e as le,o as te,X as x,a4 as s,a3 as n,r as O,a1 as o,_ as ae,W as d,f as p,Y as i,Z as g,a2 as f,a5 as y,N as b,F as j,R as B,c as P,k as L}from"./vendor-vue.BxZIRU0_.js";import{a as A}from"./shared-api.DnsQ5cxS.js";import{P as se}from"./PageHeader.CtT29f8Y.js";import{d as G,a as C,I as V}from"./level.E3ANSDAX.js";import{_ as ne}from"./index.js";import{u as re,c as k,f as T}from"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const _e={class:"aksrt-page-container"},ue={style:{margin:"0 0 8px"}},oe={class:"integral-field"},ie={class:"integral-field__label"},de={class:"aksrt-form-actions"},me={__name:"UsersLevel",setup(pe){const $=ae(),h=re(),N=O(!0),M=O(!1),l=le({user_level_s:!0,user_level_public_display:!0,user_level_max:10,user_level_opt:C(10),user_integral_opt:G(),user_level_notify:!0}),q=P(()=>[...new Set(V.map(t=>t.group))]),w=P(()=>{const t=Math.max(3,Math.min(30,Number(l.user_level_max)||10)),e=[];for(let a=1;a<=t;a++)e.push({level:a,name:l.user_level_opt["name_"+a]??"LV"+a,upgrade:Number(l.user_level_opt["upgrade_integral_"+a]??0)});return e}),D=[{title:"等级",key:"level",width:80},{title:"名称",key:"name",render:t=>L(T,{value:l.user_level_opt["name_"+t.level]??"",size:"small",onUpdateValue:e=>{l.user_level_opt["name_"+t.level]=e}})},{title:"等级图标 URL",key:"icon",render:t=>L(T,{value:l.user_level_opt["icon_img_"+t.level]??"",size:"small",placeholder:t.level<=10?"留空使用主题内置图标":"请输入图片 URL",onUpdateValue:e=>{l.user_level_opt["icon_img_"+t.level]=e}})},{title:"升级所需累计经验",key:"upgrade",width:200,render:t=>L(k,{value:Number(l.user_level_opt["upgrade_integral_"+t.level]??0),min:0,max:9999999,size:"small",style:"width: 160px;",onUpdateValue:e=>{l.user_level_opt["upgrade_integral_"+t.level]=Number(e||0)}})}];function I(t){$.push(t)}function E(t){return(t==null?void 0:t.data)??t??{}}function F(t){const e=Math.max(3,Math.min(30,Number(t)||10));l.user_level_max=e;const a={...l.user_level_opt},_=C(e);for(let r=1;r<=e;r++)a["upgrade_integral_"+r]===void 0&&(a["upgrade_integral_"+r]=_["upgrade_integral_"+r]),a["name_"+r]===void 0&&(a["name_"+r]="LV"+r),a["icon_img_"+r]===void 0&&(a["icon_img_"+r]="");for(const r of Object.keys(a)){const m=r.match(/_(\d+)$/);m&&Number(m[1])>e&&delete a[r]}l.user_level_opt=a}function R(t){const e=G();if(!t||typeof t!="object")return e;for(const a of V)t[a.key]!==void 0&&(e[a.key]=Math.max(0,Number(t[a.key])||0));return t.day_max!==void 0&&(e.day_max=Math.max(0,Number(t.day_max)||0)),e}function S(t,e){const a=C(e);if(!t||typeof t!="object")return a;for(let _=1;_<=e;_++)t["upgrade_integral_"+_]!==void 0&&(a["upgrade_integral_"+_]=Math.max(0,Number(t["upgrade_integral_"+_])||0)),t["name_"+_]!==void 0&&(a["name_"+_]=String(t["name_"+_]||"")),t["icon_img_"+_]!==void 0&&(a["icon_img_"+_]=String(t["icon_img_"+_]||""));return a}async function H(){N.value=!0;try{const t=await A.getSchemaPage("users","level"),e=E(t),a=e.user_level_s!==!1;l.user_level_s=a,l.user_level_public_display=e.user_level_public_display!==!1,l.user_level_max=Math.max(3,Math.min(30,Number(e.user_level_max||10))),l.user_level_notify=e.user_level_notify!==!1,l.user_level_opt=S(e.user_level_opt,l.user_level_max),l.user_integral_opt=R(e.user_integral_opt)}catch(t){h.error(t.message||"加载用户等级配置失败")}finally{N.value=!1}}async function W(){M.value=!0;try{const t=Math.max(3,Math.min(30,Number(l.user_level_max)||10)),e={user_level_s:!!l.user_level_s,user_level_public_display:!!l.user_level_public_display,user_level_max:t,user_level_notify:!!l.user_level_notify,user_level_opt:S(l.user_level_opt,t),user_integral_opt:R(l.user_integral_opt)};await A.saveSchemaPage("users","level",e),Object.assign(l,{user_level_max:t,user_level_opt:e.user_level_opt,user_integral_opt:e.user_integral_opt}),h.success("用户等级配置已保存")}catch(t){h.error(t.message||"保存失败")}finally{M.value=!1}}return te(H),(t,e)=>{const a=o("n-button"),_=o("n-space"),r=o("n-tag"),m=o("n-card"),U=o("n-switch"),c=o("n-form-item"),z=o("n-form"),X=o("n-alert"),Y=o("n-data-table"),Z=o("n-divider"),J=o("n-grid-item"),K=o("n-grid"),Q=o("n-spin");return d(),x("div",_e,[s(se,{title:"用户等级",desc:"配置等级开关、最高等级、升级经验阈值与经验获取矩阵(对齐 legacy 用户等级 / 经验值)。"},{actions:n(()=>[s(_,null,{default:n(()=>[s(a,{quaternary:"",onClick:e[0]||(e[0]=u=>I("/users/credits"))},{default:n(()=>[...e[7]||(e[7]=[p("用户积分",-1)])]),_:1}),s(a,{quaternary:"",onClick:e[1]||(e[1]=u=>I("/users/badge"))},{default:n(()=>[...e[8]||(e[8]=[p("用户徽章",-1)])]),_:1})]),_:1})]),_:1}),s(Q,{show:N.value,style:{width:"100%","min-height":"200px"}},{default:n(()=>[s(m,{class:"aksrt-section-card"},{default:n(()=>[e[9]||(e[9]=i("div",{class:"aksrt-section-header"},[i("h3",null,"当前摘要")],-1)),s(_,null,{default:n(()=>[s(r,{round:"",type:l.user_level_s?"success":"default"},{default:n(()=>[p(" 等级系统:"+g(l.user_level_s?"Line truncated