Files
wordpress-theme-aksrt/assets/admin/build/UsersBadge.DCbaumfe.js
T
kate522 27d8a9ea71 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.
2026-09-06 14:35:15 +08:00

2 lines
8.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{o as ee,X as v,a4 as a,a3 as l,r as T,a1 as u,e as ae,_ as le,W as m,f as o,Y as i,Z as b,a2 as k,a5 as U,F as $,R as q,N as se,c as te}from"./vendor-vue.BxZIRU0_.js";import{a as D}from"./shared-api.DnsQ5cxS.js";import{P as ne}from"./PageHeader.CtT29f8Y.js";import{d as E,M as re}from"./badge.CKTsmH1z.js";import{_ as ue}from"./index.js";import{u as de}from"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const oe={class:"aksrt-page-container"},_e={class:"aksrt-section-header",style:{display:"flex","justify-content":"space-between","align-items":"center"}},me={style:{"margin-top":"8px","text-align":"right"}},ie={class:"aksrt-form-actions"},pe={__name:"UsersBadge",setup(ce){const I=le(),C=de(),x=T(!0),h=T(!1),V=re,s=ae({user_medal_s:!1,user_medal_public_display:!0,user_medal_limit:3,user_medal_args:E()}),L=te(()=>s.user_medal_args.reduce((n,e)=>n+(Array.isArray(e.items)?e.items.length:0),0));function A(n){I.push(n)}function F(n){return(n==null?void 0:n.data)??n??{}}function N(){return{slug:"",name:"",desc:"",icon:"",get_type:"manually_add",get_val:0}}function z(n){return Array.isArray(n)?n.map(e=>({cat_name:String((e==null?void 0:e.cat_name)||(e==null?void 0:e.name)||"未命名").trim()||"未命名",items:Array.isArray(e==null?void 0:e.items)?e.items.map(t=>({slug:String((t==null?void 0:t.slug)||"").trim(),name:String((t==null?void 0:t.name)||"").trim(),desc:String((t==null?void 0:t.desc)||"").trim(),icon:String((t==null?void 0:t.icon)||(t==null?void 0:t.icon_url)||"").trim(),get_type:String((t==null?void 0:t.get_type)||"manually_add").trim()||"manually_add",get_val:Math.max(0,Number((t==null?void 0:t.get_val)??0)||0)})):[]})):E()}function Y(){s.user_medal_args.push({cat_name:"新分类",items:[N()]})}function j(n){s.user_medal_args.splice(n,1)}function G(n){s.user_medal_args[n].items||(s.user_medal_args[n].items=[]),s.user_medal_args[n].items.push(N())}function H(n,e){s.user_medal_args[n].items.splice(e,1)}async function K(){x.value=!0;try{const n=await D.getSchemaPage("users","badge"),e=F(n);s.user_medal_s=!!(e.user_medal_s??e.user_badge_enabled),s.user_medal_public_display=e.user_medal_public_display!==void 0?e.user_medal_public_display!==!1:e.user_badge_public_display!==!1,s.user_medal_limit=Number(e.user_medal_limit??e.user_badge_limit??3),s.user_medal_args=z(e.user_medal_args??null)}catch(n){C.error(n.message||"加载用户徽章配置失败")}finally{x.value=!1}}async function O(){h.value=!0;try{const n=z(s.user_medal_args);for(const e of n)for(const t of e.items)if(!t.slug||!t.name||!t.get_type){C.error("每个条目需要 slug、名称和获取条件"),h.value=!1;return}await D.saveSchemaPage("users","badge",{user_medal_s:!!s.user_medal_s,user_medal_public_display:!!s.user_medal_public_display,user_medal_limit:Number(s.user_medal_limit||3),user_medal_args:n}),s.user_medal_args=n,C.success("用户徽章配置已保存")}catch(n){C.error(n.message||"保存失败")}finally{h.value=!1}}return ee(K),(n,e)=>{const t=u("n-button"),w=u("n-space"),c=u("n-tag"),g=u("n-card"),B=u("n-switch"),S=u("n-form-item"),M=u("n-input-number"),W=u("n-form"),P=u("n-empty"),f=u("n-input"),p=u("n-grid-item"),X=u("n-select"),Z=u("n-grid"),J=u("n-alert"),Q=u("n-spin");return m(),v("div",oe,[a(ne,{title:"用户徽章",desc:"配置勋章分类、自动授予条件(get_type / get_val)与公开展示。路由 /users/badge,存储键 user_medal_*。"},{actions:l(()=>[a(w,null,{default:l(()=>[a(t,{quaternary:"",onClick:e[0]||(e[0]=d=>A("/users/notifications"))},{default:l(()=>[...e[5]||(e[5]=[o("消息通知",-1)])]),_:1}),a(t,{quaternary:"",onClick:e[1]||(e[1]=d=>A("/users/level"))},{default:l(()=>[...e[6]||(e[6]=[o("用户等级",-1)])]),_:1})]),_:1})]),_:1}),a(Q,{show:x.value,style:{width:"100%","min-height":"200px"}},{default:l(()=>[a(g,{class:"aksrt-section-card"},{default:l(()=>[e[7]||(e[7]=i("div",{class:"aksrt-section-header"},[i("h3",null,"当前摘要")],-1)),a(w,null,{default:l(()=>[a(c,{round:"",type:s.user_medal_s?"success":"default"},{default:l(()=>[o(" 徽章系统:"+b(s.user_medal_s?"已启用":"已关闭"),1)]),_:1},8,["type"]),a(c,{round:"",type:s.user_medal_public_display?"info":"default"},{default:l(()=>[o(" 公开展示:"+b(s.user_medal_public_display?"开启":"关闭"),1)]),_:1},8,["type"]),a(c,{round:"",type:"info"},{default:l(()=>[o("最多显示:"+b(s.user_medal_limit)+" 枚",1)]),_:1}),a(c,{round:"",type:"info"},{default:l(()=>[o("分类:"+b(s.user_medal_args.length),1)]),_:1}),a(c,{round:"",type:"info"},{default:l(()=>[o("条目:"+b(L.value),1)]),_:1})]),_:1})]),_:1}),a(g,{class:"aksrt-section-card"},{default:l(()=>[e[8]||(e[8]=i("div",{class:"aksrt-section-header"},[i("h3",null,"徽章展示")],-1)),a(W,{model:s,"label-placement":"left","label-width":"180",class:"aksrt-form"},{default:l(()=>[a(S,{label:"启用徽章/勋章系统"},{default:l(()=>[a(B,{value:s.user_medal_s,"onUpdate:value":e[2]||(e[2]=d=>s.user_medal_s=d)},null,8,["value"])]),_:1}),s.user_medal_s?(m(),k(S,{key:0,label:"公开页显示徽章"},{default:l(()=>[a(B,{value:s.user_medal_public_display,"onUpdate:value":e[3]||(e[3]=d=>s.user_medal_public_display=d)},null,8,["value"])]),_:1})):U("",!0),s.user_medal_s?(m(),k(S,{key:1,label:"最多显示数量"},{default:l(()=>[a(M,{value:s.user_medal_limit,"onUpdate:value":e[4]||(e[4]=d=>s.user_medal_limit=d),min:1,max:8,style:{width:"180px"}},null,8,["value"])]),_:1})):U("",!0)]),_:1},8,["model"])]),_:1}),s.user_medal_s?(m(),k(g,{key:0,class:"aksrt-section-card"},{default:l(()=>[i("div",_e,[e[10]||(e[10]=i("h3",null,"徽章明细(分类 → 条目)",-1)),a(t,{size:"small",onClick:Y},{default:l(()=>[...e[9]||(e[9]=[o("添加分类",-1)])]),_:1})]),s.user_medal_args.length?U("",!0):(m(),k(P,{key:0,description:"暂无分类,请添加"})),(m(!0),v($,null,q(s.user_medal_args,(d,y)=>(m(),v("div",{key:"cat-"+y,class:"medal-cat-block"},[a(g,{size:"small",embedded:""},{default:l(()=>[a(w,{vertical:"",size:12},{default:l(()=>[a(w,{align:"center"},{default:l(()=>[a(f,{value:d.cat_name,"onUpdate:value":r=>d.cat_name=r,placeholder:"分类名称",style:{width:"220px"}},null,8,["value","onUpdate:value"]),a(t,{size:"small",onClick:r=>G(y)},{default:l(()=>[...e[11]||(e[11]=[o("添加条目",-1)])]),_:1},8,["onClick"]),a(t,{size:"small",quaternary:"",type:"error",onClick:r=>j(y)},{default:l(()=>[...e[12]||(e[12]=[o("删除分类",-1)])]),_:1},8,["onClick"])]),_:2},1024),d.items&&d.items.length?U("",!0):(m(),k(P,{key:0,description:"该分类暂无条目"})),(m(!0),v($,null,q(d.items||[],(r,R)=>(m(),v("div",{key:"item-"+y+"-"+R,class:"medal-item-row"},[a(Z,{cols:"1 s:2 m:3","x-gap":12,"y-gap":8,responsive:"screen"},{default:l(()=>[a(p,null,{default:l(()=>[a(f,{value:r.slug,"onUpdate:value":_=>r.slug=_,placeholder:"slug"},null,8,["value","onUpdate:value"])]),_:2},1024),a(p,null,{default:l(()=>[a(f,{value:r.name,"onUpdate:value":_=>r.name=_,placeholder:"名称"},null,8,["value","onUpdate:value"])]),_:2},1024),a(p,null,{default:l(()=>[a(X,{value:r.get_type,"onUpdate:value":_=>r.get_type=_,options:se(V),placeholder:"获取条件"},null,8,["value","onUpdate:value","options"])]),_:2},1024),a(p,null,{default:l(()=>[a(M,{value:r.get_val,"onUpdate:value":_=>r.get_val=_,min:0,disabled:r.get_type==="manually_add",placeholder:"阈值",style:{width:"100%"}},null,8,["value","onUpdate:value","disabled"])]),_:2},1024),a(p,null,{default:l(()=>[a(f,{value:r.icon,"onUpdate:value":_=>r.icon=_,placeholder:"图标 URL"},null,8,["value","onUpdate:value"])]),_:2},1024),a(p,null,{default:l(()=>[a(f,{value:r.desc,"onUpdate:value":_=>r.desc=_,placeholder:"描述"},null,8,["value","onUpdate:value"])]),_:2},1024)]),_:2},1024),i("div",me,[a(t,{size:"tiny",quaternary:"",type:"error",onClick:_=>H(y,R)},{default:l(()=>[...e[13]||(e[13]=[o("删除条目",-1)])]),_:1},8,["onClick"])])]))),128))]),_:2},1024)]),_:2},1024)]))),128))]),_:1})):U("",!0),a(g,{class:"aksrt-section-card"},{default:l(()=>[a(J,{type:"info","show-icon":!1},{default:l(()=>[...e[14]||(e[14]=[o(" 前台已授予徽章保存在用户 meta aksrt_user_badges;佩戴为 aksrt_wear_badge(slug)。 字典来自 user_medal_args;运行时 AKSRT_User_Badges 读取 identity badge.dictionary 派生列表。 ",-1)])]),_:1})]),_:1}),i("div",ie,[a(t,{type:"primary",loading:h.value,onClick:O},{default:l(()=>[...e[15]||(e[15]=[o("保存配置",-1)])]),_:1},8,["loading"])])]),_:1},8,["show"])])}}},Ce=ue(pe,[["__scopeId","data-v-fe872f5e"]]);export{Ce as default};