SPA shop/forum/payment/users sections now keep configuration pages only. Operational workbenches were removed from the sidebar and loaders; legacy hash routes open NativeOpsRedirect into the matching WP native admin page. Admin SPA production build refreshed accordingly.
11 lines
5.9 KiB
JavaScript
11 lines
5.9 KiB
JavaScript
import{o as E,X as H,a4 as s,a3 as a,r as U,a1 as r,e as B,_ as T,W as g,f as u,Y as _,Z as p,a2 as M,a5 as P,c as W}from"./vendor-vue.Bykizn0M.js";import{a as k}from"./shared-api.D5_fnN32.js";import{P as X}from"./PageHeader.Di3JTPjc.js";import{u as Y}from"./vendor-naive.BuHWlEgf.js";import"./index.js";import"./vendor-misc.1adHN6i_.js";const Z={class:"aksrt-page-container"},j={class:"aksrt-form-actions"},Q={__name:"UsersLevel",setup(A){const R=T(),m=Y(),b=U(!0),y=U(!1),l=B({user_level_enabled:!1,user_level_public_display:!0,user_level_source:"credits_balance",user_level_prefix:"Lv.",user_level_thresholds:`1|0
|
|
2|30
|
|
3|100
|
|
4|300`}),i=B({enabled:!0,currencyName:"积分"}),D=W(()=>String(l.user_level_thresholds||"").split(/\r?\n/).map(t=>t.trim()).filter(Boolean).length);function h(t){R.push(t)}function x(t){return(t==null?void 0:t.data)??t??{}}async function L(){b.value=!0;try{const[t,e]=await Promise.all([k.getSchemaPage("users","level"),k.getCreditSettings()]),o=x(t),d=x(e);l.user_level_enabled=!!o.user_level_enabled,l.user_level_public_display=o.user_level_public_display!==!1,l.user_level_source=o.user_level_source||"credits_balance",l.user_level_prefix=o.user_level_prefix||"Lv.",l.user_level_thresholds=o.user_level_thresholds||`1|0
|
|
2|30
|
|
3|100
|
|
4|300`,i.enabled=d.enabled!==!1,i.currencyName=d.currency_name||"积分"}catch(t){m.error(t.message||"加载用户等级配置失败")}finally{b.value=!1}}async function V(){y.value=!0;try{await k.saveSchemaPage("users","level",{user_level_enabled:l.user_level_enabled,user_level_public_display:l.user_level_public_display,user_level_source:l.user_level_source,user_level_prefix:l.user_level_prefix,user_level_thresholds:l.user_level_thresholds}),m.success("用户等级配置已保存")}catch(t){m.error(t.message||"保存失败")}finally{y.value=!1}}return E(L),(t,e)=>{const o=r("n-button"),d=r("n-space"),v=r("n-tag"),f=r("n-card"),w=r("n-switch"),c=r("n-form-item"),C=r("n-input"),N=r("n-form"),S=r("n-radio"),q=r("n-radio-group"),z=r("n-alert"),$=r("n-spin");return g(),H("div",Z,[s(X,{title:"用户等级",desc:"配置等级来源、展示前缀和阈值规则。前台公开主页会按照这里的规则输出等级身份芯片。"},{actions:a(()=>[s(d,null,{default:a(()=>[s(o,{quaternary:"",onClick:e[0]||(e[0]=n=>h("/users/credits"))},{default:a(()=>[...e[7]||(e[7]=[u("用户积分",-1)])]),_:1}),s(o,{quaternary:"",onClick:e[1]||(e[1]=n=>h("/users/badge"))},{default:a(()=>[...e[8]||(e[8]=[u("用户徽章",-1)])]),_:1})]),_:1})]),_:1}),s($,{show:b.value,style:{width:"100%","min-height":"200px"}},{default:a(()=>[s(f,{class:"aksrt-section-card"},{default:a(()=>[e[9]||(e[9]=_("div",{class:"aksrt-section-header"},[_("h3",null,"当前联动摘要")],-1)),s(d,null,{default:a(()=>[s(v,{round:"",type:l.user_level_enabled?"success":"default"},{default:a(()=>[u(" 等级系统:"+p(l.user_level_enabled?"已启用":"已关闭"),1)]),_:1},8,["type"]),s(v,{round:"",type:i.enabled?"info":"warning"},{default:a(()=>[u(" 积分系统:"+p(i.enabled?"已启用":"未启用"),1)]),_:1},8,["type"]),s(v,{round:"",type:"info"},{default:a(()=>[u(" 当前货币:"+p(i.currencyName),1)]),_:1}),s(v,{round:"",type:l.user_level_source==="credits_balance"?"success":"warning"},{default:a(()=>[u(" 来源:"+p(l.user_level_source==="credits_balance"?"积分余额":"手动 Meta"),1)]),_:1},8,["type"]),s(v,{round:"",type:"info"},{default:a(()=>[u(" 阈值条目:"+p(D.value),1)]),_:1})]),_:1})]),_:1}),s(f,{class:"aksrt-section-card"},{default:a(()=>[e[10]||(e[10]=_("div",{class:"aksrt-section-header"},[_("h3",null,"等级显示")],-1)),s(N,{model:l,"label-placement":"left","label-width":"180",class:"aksrt-form"},{default:a(()=>[s(c,{label:"启用等级系统"},{default:a(()=>[s(w,{value:l.user_level_enabled,"onUpdate:value":e[2]||(e[2]=n=>l.user_level_enabled=n)},null,8,["value"])]),_:1}),l.user_level_enabled?(g(),M(c,{key:0,label:"公开页显示等级"},{default:a(()=>[s(w,{value:l.user_level_public_display,"onUpdate:value":e[3]||(e[3]=n=>l.user_level_public_display=n)},null,8,["value"])]),_:1})):P("",!0),l.user_level_enabled?(g(),M(c,{key:1,label:"等级前缀"},{default:a(()=>[s(C,{value:l.user_level_prefix,"onUpdate:value":e[4]||(e[4]=n=>l.user_level_prefix=n),maxlength:"12",placeholder:"Lv."},null,8,["value"])]),_:1})):P("",!0)]),_:1},8,["model"])]),_:1}),s(f,{class:"aksrt-section-card"},{default:a(()=>[e[14]||(e[14]=_("div",{class:"aksrt-section-header"},[_("h3",null,"等级规则")],-1)),s(N,{model:l,"label-placement":"left","label-width":"180",class:"aksrt-form"},{default:a(()=>[s(c,{label:"等级来源"},{default:a(()=>[s(q,{value:l.user_level_source,"onUpdate:value":e[5]||(e[5]=n=>l.user_level_source=n),disabled:!l.user_level_enabled},{default:a(()=>[s(d,{size:"large"},{default:a(()=>[s(S,{value:"credits_balance"},{default:a(()=>[...e[11]||(e[11]=[u("积分余额",-1)])]),_:1}),s(S,{value:"manual_meta"},{default:a(()=>[...e[12]||(e[12]=[u("手动 Meta",-1)])]),_:1})]),_:1})]),_:1},8,["value","disabled"])]),_:1}),s(c,{label:"等级阈值"},{feedback:a(()=>[...e[13]||(e[13]=[_("span",{class:"aksrt-hint-text"},"每行一个等级,格式 `等级|所需积分`。手动 Meta 模式下仍建议保留完整字典,方便后续切换回自动计算。",-1)])]),default:a(()=>[s(C,{value:l.user_level_thresholds,"onUpdate:value":e[6]||(e[6]=n=>l.user_level_thresholds=n),type:"textarea",autosize:{minRows:5,maxRows:10},placeholder:`1|0
|
|
2|30
|
|
3|100
|
|
4|300`,disabled:!l.user_level_enabled},null,8,["value","disabled"])]),_:1})]),_:1},8,["model"])]),_:1}),s(f,{class:"aksrt-section-card"},{default:a(()=>[s(z,{type:"info","show-icon":!1},{default:a(()=>[...e[15]||(e[15]=[u(" 手动模式读取 `aksrt_user_level` user meta;自动模式则根据当前积分余额和上方阈值表实时计算等级,不需要单独写库。 ",-1)])]),_:1})]),_:1}),_("div",j,[s(o,{type:"primary",loading:y.value,onClick:V},{default:a(()=>[...e[16]||(e[16]=[u("保存配置",-1)])]),_:1},8,["loading"])])]),_:1},8,["show"])])}}};export{Q as default};
|