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.
2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
import{a as U}from"./shared-api.DnsQ5cxS.js";import{u as R}from"./vendor-naive.CKYCZmXD.js";import{o as W,X as E,Y as o,a4 as a,a3 as n,a1 as m,r as v,e as L,W as I,f as C}from"./vendor-vue.BxZIRU0_.js";import"./vendor-misc.bELTaXdf.js";const T={class:"aksrt-page-container"},D={class:"aksrt-form-footer"},K={__name:"CmsCredits",setup(F){const b=R(),t=L({enabled:!0,currency_name:"",register_bonus:10,daily_signin:{enabled:!0,base:1,streak:{3:2,7:5,30:20}},comment_reward:{enabled:!0,amount:1,daily_cap:5,min_length:10,on_approved:!0},referral_reward:{enabled:!0,promoter_amount:5,referred_amount:2,level_points:0,require_verify:!0,ip_daily_cap:3},download_default_cost:0}),g=v("{}"),k=v(!1),y=v(!1),$=v([]),c=v(1),N=v(1),u=L({asset:null,transaction_id:"",operation_key:"",ref_type:"",ref_key:"",actor_user_id:""}),z=[{label:"积分",value:"points"},{label:"余额",value:"balance"}],B=[{title:"交易号",key:"transaction_label",width:100,fixed:"left"},{title:"幂等键",key:"operation_key",width:260,ellipsis:{tooltip:!0}},{title:"资产",key:"assets_label",width:100},{title:"原因",key:"reason",width:150,ellipsis:{tooltip:!0}},{title:"业务引用",key:"reference_label",width:200,ellipsis:{tooltip:!0}},{title:"操作者",key:"actor_label",width:100},{title:"增减 / 手续费",key:"delta_label",width:180,ellipsis:{tooltip:!0}},{title:"变动后余额",key:"balance_label",width:150,ellipsis:{tooltip:!0}},{title:"备注",key:"remark",width:180,ellipsis:{tooltip:!0}},{title:"UTC 时间",key:"created_at",width:190}];function j(d,e){if(d==="balance")return typeof e=="string"&&/^[+-]?\d+\.\d{2}$/.test(e)?e:"0.00";const i=String(e??"0");return/^-?\d+$/.test(i)?i:"0"}async function w(){y.value=!0;try{const d={page:c.value,per_page:20};Object.entries(u).forEach(([r,p])=>{p!==null&&String(p).trim()!==""&&(d[r]=p)});const e=await U.getCreditLog(d),i=(e==null?void 0:e.data)||e||{};$.value=(i.items||[]).map(r=>{const p=Array.isArray(r.entries)?r.entries:[];return{...r,transaction_label:`#${r.id}`,assets_label:(r.assets||[]).join(" / "),reference_label:[r.ref_type,r.ref_key].filter(Boolean).join(":")||"—",actor_label:r.actor_user_id?`#${r.actor_user_id}`:"系统",delta_label:p.map(s=>{const _=j(s.asset,s.delta),f=s.asset==="points"&&!_.startsWith("-")&&_!=="0"?`+${_}`:_;return`${s.asset}:${f}`}).join(";"),balance_label:p.map(s=>`${s.asset}:${j(s.asset,s.balance_after)}`).join(";")}}),N.value=Math.max(1,Math.ceil(Number(i.total||0)/Number(i.per_page||20)))}catch(d){b.error(d.message||"加载账本失败")}finally{y.value=!1}}function O(){c.value=1,w()}function J(){Object.assign(u,{asset:null,transaction_id:"",operation_key:"",ref_type:"",ref_key:"",actor_user_id:""}),O()}async function M(){var d;try{const e=await U.getCreditSettings(),i=(e==null?void 0:e.data)||e||{};Object.assign(t,i),g.value=JSON.stringify(((d=t.daily_signin)==null?void 0:d.streak)||{},null,0)}catch(e){b.error(e.message||"加载失败")}}async function P(){k.value=!0;try{let d={};try{d=JSON.parse(g.value||"{}")}catch{}t.daily_signin.streak=d,await U.saveCreditSettings(t),b.success("已保存")}catch(d){b.error(d.message||"保存失败")}finally{k.value=!1}}return W(()=>{M(),w()}),(d,e)=>{const i=m("n-switch"),r=m("n-form-item"),p=m("n-input"),s=m("n-input-number"),_=m("n-form"),f=m("n-card"),V=m("n-select"),x=m("n-button"),S=m("n-space"),q=m("n-data-table"),A=m("n-pagination");return I(),E("div",T,[e[36]||(e[36]=o("h2",{class:"aksrt-page-title"},"积分配置",-1)),e[37]||(e[37]=o("p",{class:"aksrt-page-desc"}," 配置积分规则与发放策略。可自定义货币名称(如”金币”、”魔石”等)。用户余额与手工调整在 WordPress 原生”用户”菜单中管理。 ",-1)),a(f,{class:"aksrt-section-card"},{default:n(()=>[e[26]||(e[26]=o("div",{class:"aksrt-section-header"},[o("h3",null,"主开关 + 基础设置")],-1)),a(_,{model:t,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:n(()=>[a(r,{label:"启用积分系统"},{default:n(()=>[a(i,{value:t.enabled,"onUpdate:value":e[0]||(e[0]=l=>t.enabled=l)},null,8,["value"])]),_:1}),a(r,{label:"自定义货币名称"},{feedback:n(()=>[...e[25]||(e[25]=[o("span",{class:"aksrt-hint-text"},'自定义货币显示名称,如"金币"、"魔石"等。留空则使用默认名称"积分"。',-1)])]),default:n(()=>[a(p,{value:t.currency_name,"onUpdate:value":e[1]||(e[1]=l=>t.currency_name=l),placeholder:"积分",maxlength:"20"},null,8,["value"])]),_:1}),a(r,{label:"注册赠送积分"},{default:n(()=>[a(s,{value:t.register_bonus,"onUpdate:value":e[2]||(e[2]=l=>t.register_bonus=l),min:0,max:1e4},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),a(f,{title:"统一资产账本",class:"aksrt-section-card"},{default:n(()=>[a(S,{vertical:"",size:12},{default:n(()=>[a(S,{wrap:""},{default:n(()=>[a(V,{value:u.asset,"onUpdate:value":e[3]||(e[3]=l=>u.asset=l),options:z,clearable:"",placeholder:"资产",style:{width:"130px"}},null,8,["value"]),a(p,{value:u.transaction_id,"onUpdate:value":e[4]||(e[4]=l=>u.transaction_id=l),placeholder:"交易号",clearable:"",style:{width:"130px"}},null,8,["value"]),a(p,{value:u.operation_key,"onUpdate:value":e[5]||(e[5]=l=>u.operation_key=l),placeholder:"幂等键",clearable:"",style:{width:"240px"}},null,8,["value"]),a(p,{value:u.ref_type,"onUpdate:value":e[6]||(e[6]=l=>u.ref_type=l),placeholder:"引用类型",clearable:"",style:{width:"130px"}},null,8,["value"]),a(p,{value:u.ref_key,"onUpdate:value":e[7]||(e[7]=l=>u.ref_key=l),placeholder:"引用键",clearable:"",style:{width:"180px"}},null,8,["value"]),a(p,{value:u.actor_user_id,"onUpdate:value":e[8]||(e[8]=l=>u.actor_user_id=l),placeholder:"操作者 ID",clearable:"",style:{width:"130px"}},null,8,["value"]),a(x,{type:"primary",loading:y.value,onClick:O},{default:n(()=>[...e[27]||(e[27]=[C("查询",-1)])]),_:1},8,["loading"]),a(x,{onClick:J},{default:n(()=>[...e[28]||(e[28]=[C("重置",-1)])]),_:1})]),_:1}),a(q,{columns:B,data:$.value,loading:y.value,"row-key":l=>l.id,"scroll-x":1600,size:"small"},null,8,["data","loading","row-key"]),a(A,{page:c.value,"onUpdate:page":[e[9]||(e[9]=l=>c.value=l),w],"page-count":N.value,"page-size":20},null,8,["page","page-count"])]),_:1})]),_:1}),a(f,{class:"aksrt-section-card"},{default:n(()=>[e[30]||(e[30]=o("div",{class:"aksrt-section-header"},[o("h3",null,"每日签到")],-1)),a(_,{model:t.daily_signin,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:n(()=>[a(r,{label:"启用"},{default:n(()=>[a(i,{value:t.daily_signin.enabled,"onUpdate:value":e[10]||(e[10]=l=>t.daily_signin.enabled=l)},null,8,["value"])]),_:1}),a(r,{label:"基础奖励"},{default:n(()=>[a(s,{value:t.daily_signin.base,"onUpdate:value":e[11]||(e[11]=l=>t.daily_signin.base=l),min:0,max:1e4},null,8,["value"])]),_:1}),a(r,{label:"连续奖励(JSON)"},{feedback:n(()=>[...e[29]||(e[29]=[o("span",{class:"aksrt-hint-text"},"连续 N 天时额外发放的积分。",-1)])]),default:n(()=>[a(p,{type:"textarea",value:g.value,"onUpdate:value":e[12]||(e[12]=l=>g.value=l),placeholder:'{"3":2,"7":5,"30":20}',autosize:{minRows:2}},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),a(f,{class:"aksrt-section-card"},{default:n(()=>[e[31]||(e[31]=o("div",{class:"aksrt-section-header"},[o("h3",null,"评论奖励")],-1)),a(_,{model:t.comment_reward,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:n(()=>[a(r,{label:"启用"},{default:n(()=>[a(i,{value:t.comment_reward.enabled,"onUpdate:value":e[13]||(e[13]=l=>t.comment_reward.enabled=l)},null,8,["value"])]),_:1}),a(r,{label:"单次奖励"},{default:n(()=>[a(s,{value:t.comment_reward.amount,"onUpdate:value":e[14]||(e[14]=l=>t.comment_reward.amount=l),min:0,max:1e4},null,8,["value"])]),_:1}),a(r,{label:"每日上限"},{default:n(()=>[a(s,{value:t.comment_reward.daily_cap,"onUpdate:value":e[15]||(e[15]=l=>t.comment_reward.daily_cap=l),min:0,max:100},null,8,["value"])]),_:1}),a(r,{label:"最少字符数"},{default:n(()=>[a(s,{value:t.comment_reward.min_length,"onUpdate:value":e[16]||(e[16]=l=>t.comment_reward.min_length=l),min:0,max:500},null,8,["value"])]),_:1}),a(r,{label:"审核通过后发放"},{default:n(()=>[a(i,{value:t.comment_reward.on_approved,"onUpdate:value":e[17]||(e[17]=l=>t.comment_reward.on_approved=l)},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),a(f,{class:"aksrt-section-card"},{default:n(()=>[e[32]||(e[32]=o("div",{class:"aksrt-section-header"},[o("h3",null,"Ref 推广奖励")],-1)),a(_,{model:t.referral_reward,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:n(()=>[a(r,{label:"启用"},{default:n(()=>[a(i,{value:t.referral_reward.enabled,"onUpdate:value":e[18]||(e[18]=l=>t.referral_reward.enabled=l)},null,8,["value"])]),_:1}),a(r,{label:"推广人奖励"},{default:n(()=>[a(s,{value:t.referral_reward.promoter_amount,"onUpdate:value":e[19]||(e[19]=l=>t.referral_reward.promoter_amount=l),min:0,max:1e4},null,8,["value"])]),_:1}),a(r,{label:"新用户奖励"},{default:n(()=>[a(s,{value:t.referral_reward.referred_amount,"onUpdate:value":e[20]||(e[20]=l=>t.referral_reward.referred_amount=l),min:0,max:1e4},null,8,["value"])]),_:1}),a(r,{label:"推广等级积分"},{default:n(()=>[a(s,{value:t.referral_reward.level_points,"onUpdate:value":e[21]||(e[21]=l=>t.referral_reward.level_points=l),min:0,max:1e4},null,8,["value"])]),_:1}),a(r,{label:"需邮箱验证后发放"},{default:n(()=>[a(i,{value:t.referral_reward.require_verify,"onUpdate:value":e[22]||(e[22]=l=>t.referral_reward.require_verify=l)},null,8,["value"])]),_:1}),a(r,{label:"同 IP 当日上限"},{default:n(()=>[a(s,{value:t.referral_reward.ip_daily_cap,"onUpdate:value":e[23]||(e[23]=l=>t.referral_reward.ip_daily_cap=l),min:0,max:100},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),a(f,{class:"aksrt-section-card"},{default:n(()=>[e[34]||(e[34]=o("div",{class:"aksrt-section-header"},[o("h3",null,"下载消费(参考)")],-1)),a(_,{model:t,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:n(()=>[a(r,{label:`默认积分价参考(${t.currency_name||"积分"})`},{feedback:n(()=>[...e[33]||(e[33]=[o("span",{class:"aksrt-hint-text"},"实际价格以文章「付费内容设置」的积分价或现金价为准;下载解锁走收银台订单,不按次扣费。",-1)])]),default:n(()=>[a(s,{value:t.download_default_cost,"onUpdate:value":e[24]||(e[24]=l=>t.download_default_cost=l),min:0,max:1e5},null,8,["value"])]),_:1},8,["label"])]),_:1},8,["model"])]),_:1}),o("div",D,[a(x,{type:"primary",loading:k.value,onClick:P},{default:n(()=>[...e[35]||(e[35]=[C("保存配置",-1)])]),_:1},8,["loading"])])])}}};export{K as default};
|