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:
2026-09-06 14:35:15 +08:00
parent 2e25894eb5
commit 27d8a9ea71
64 changed files with 15839 additions and 3 deletions
+3 -3
View File
@@ -70,9 +70,9 @@ ask-*.md
assets/css/routes/docs/*
!assets/css/routes/docs/toolbar-search-enhancements.css
# Frontend build output and installed dependencies
/assets/admin/build/*
!/assets/admin/build/.gitkeep
# Installed dependencies (the SPA build output IS tracked so git-based deploys
# carry assets/admin/build as one unit; rebuild with: cd assets/admin && npm run build)
/assets/admin/node_modules/
/assets/admin/node_modules/*
!/assets/admin/node_modules/.gitkeep
assets/admin/.vite-temp/
@@ -0,0 +1 @@
import{o as S,X as v,a4 as a,a3 as t,r as g,a1 as m,e as U,_ as V,W as p,f as b,Y as o,F,R as I,a2 as q,Z as z,c as D}from"./vendor-vue.BxZIRU0_.js";import{a as k}from"./shared-api.DnsQ5cxS.js";import{P as E}from"./PageHeader.CtT29f8Y.js";import{_ as H}from"./FaIcon.NZ6TDkNu.js";import{_ as L}from"./index.js";import{u as R}from"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const T={class:"aksrt-page-container"},W={class:"aksrt-attach__summary"},X={class:"aksrt-form-actions"},Y={__name:"AttachmentPermissions",setup(Z){const y=V(),u=R(),c=g(!0),d=g(!1),s=U({avatar_max_size:2,submit_image_max_size:5,comment_image_max_size:2,resource_max_size:50}),h=D(()=>[{key:"profile",icon:"fa fas fa-id-card",label:"资料卡图片",enabled:!0},{key:"submit",icon:"fa fas fa-edit",label:"投稿图片",enabled:!0},{key:"comment",icon:"fa fas fa-comment-dots",label:"评论图片",enabled:!0},{key:"resource",icon:"fa fas fa-file-archive",label:"资源附件",enabled:!0}]);function w(){y.push("/permissions/moderation")}async function B(){c.value=!0;try{const l=await k.getPermissionsAttachmentSettings(),e=(l==null?void 0:l.data)??l??{};s.avatar_max_size=Number(e.avatar_max_size||2),s.submit_image_max_size=Number(e.submit_image_max_size||5),s.comment_image_max_size=Number(e.comment_image_max_size||2),s.resource_max_size=Number(e.resource_max_size||50)}catch(l){u.error(l.message||"加载附件权限失败")}finally{c.value=!1}}async function M(){d.value=!0;try{await k.savePermissionsAttachmentSettings({avatar_max_size:s.avatar_max_size,submit_image_max_size:s.submit_image_max_size,comment_image_max_size:s.comment_image_max_size,resource_max_size:s.resource_max_size}),u.success("附件治理配置已保存")}catch(l){u.error(l.message||"保存失败")}finally{d.value=!1}}return S(B),(l,e)=>{const x=m("n-button"),N=m("n-space"),P=m("n-grid-item"),A=m("n-grid"),i=m("n-card"),r=m("n-input-number"),_=m("n-form-item"),f=m("n-form"),C=m("n-spin");return p(),v("div",T,[a(E,{title:"附件治理",desc:"管理各类上传文件的大小、安全限制和审核策略;准入权限请在“基本权限”中配置。"},{actions:t(()=>[a(N,null,{default:t(()=>[a(x,{quaternary:"",onClick:w},{default:t(()=>[...e[4]||(e[4]=[b("审核策略",-1)])]),_:1})]),_:1})]),_:1}),a(C,{show:c.value,style:{width:"100%","min-height":"200px"}},{default:t(()=>[a(i,{class:"aksrt-section-card"},{default:t(()=>[e[5]||(e[5]=o("div",{class:"aksrt-section-header"},[o("h3",null,"上传策略总览")],-1)),a(A,{cols:3,"x-gap":12,"y-gap":12},{default:t(()=>[(p(!0),v(F,null,I(h.value,n=>(p(),q(P,{key:n.key},{default:t(()=>[o("div",W,[a(H,{icon:n.icon,size:16,color:n.enabled?"#52c41a":"var(--aksrt-color-muted)"},null,8,["icon","color"]),o("div",null,[o("strong",null,z(n.label),1),o("p",null,z(n.enabled?"已启用":"已关闭"),1)])])]),_:2},1024))),128))]),_:1})]),_:1}),a(i,{class:"aksrt-section-card"},{default:t(()=>[e[6]||(e[6]=o("div",{class:"aksrt-section-header"},[o("h3",null,"用户资料卡背景图")],-1)),a(f,{model:s,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:t(()=>[a(_,{label:"头像/用户资料卡背景图大小上限 (MB)"},{default:t(()=>[a(r,{value:s.avatar_max_size,"onUpdate:value":e[0]||(e[0]=n=>s.avatar_max_size=n),min:1,max:10,style:{"max-width":"160px"}},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),a(i,{class:"aksrt-section-card"},{default:t(()=>[e[7]||(e[7]=o("div",{class:"aksrt-section-header"},[o("h3",null,"内容上传")],-1)),a(f,{model:s,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:t(()=>[a(_,{label:"投稿图片大小上限 (MB)"},{default:t(()=>[a(r,{value:s.submit_image_max_size,"onUpdate:value":e[1]||(e[1]=n=>s.submit_image_max_size=n),min:1,max:20,style:{"max-width":"160px"}},null,8,["value"])]),_:1}),a(_,{label:"评论图片大小上限 (MB)"},{default:t(()=>[a(r,{value:s.comment_image_max_size,"onUpdate:value":e[2]||(e[2]=n=>s.comment_image_max_size=n),min:1,max:10,style:{"max-width":"160px"}},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),a(i,{class:"aksrt-section-card"},{default:t(()=>[e[8]||(e[8]=o("div",{class:"aksrt-section-header"},[o("h3",null,"资源附件")],-1)),a(f,{model:s,"label-placement":"left","label-width":"200",class:"aksrt-form"},{default:t(()=>[a(_,{label:"资源附件大小上限 (MB)"},{default:t(()=>[a(r,{value:s.resource_max_size,"onUpdate:value":e[3]||(e[3]=n=>s.resource_max_size=n),min:1,max:200,style:{"max-width":"160px"}},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1}),o("div",X,[a(x,{type:"primary",loading:d.value,onClick:M},{default:t(()=>[...e[9]||(e[9]=[b("保存配置",-1)])]),_:1},8,["loading"])])]),_:1},8,["show"])])}}},ee=L(Y,[["__scopeId","data-v-d6037ce3"]]);export{ee as default};
@@ -0,0 +1 @@
.aksrt-attach__summary[data-v-d6037ce3]{display:flex;align-items:center;gap:10px;padding:12px;border-radius:6px;background:#fafafa}.aksrt-attach__summary strong[data-v-d6037ce3]{display:block;font-size:13px;color:var(--aksrt-color-text)}.aksrt-attach__summary p[data-v-d6037ce3]{margin:2px 0 0;font-size:12px;color:var(--aksrt-color-muted)}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import t from"./SchemaPage._RXlmOMl.js";import{a2 as o,W as m}from"./vendor-vue.BxZIRU0_.js";import"./shared-api.DsnKC5vk.js";import"./FaIcon.NZ6TDkNu.js";import"./index.js";import"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";import"./FaIconPicker.DuahAn6_.js";import"./shared-api.DnsQ5cxS.js";import"./level.E3ANSDAX.js";import"./badge.CKTsmH1z.js";const h={__name:"CommentSettings",setup(r){return(p,e)=>(m(),o(t,{domain:"post_list",section:"comment"}))}};export{h as default};
@@ -0,0 +1 @@
import{X as n,Y as a,a4 as f,Z as l,a3 as u,a2 as y,a5 as c,F as h,R as P,c as o,a1 as V,$ as b,W as r,f as _}from"./vendor-vue.BxZIRU0_.js";import{_ as S}from"./FaIcon.NZ6TDkNu.js";import{_ as C}from"./index.js";import"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const F={class:"aksrt-deferred-page"},R={class:"aksrt-deferred-page__icon"},w={class:"aksrt-deferred-page__title"},A={class:"aksrt-deferred-page__desc"},I={class:"aksrt-deferred-page__meta"},T={key:0,class:"aksrt-deferred-page__depends"},$={class:"aksrt-deferred-page__depends-list"},E={key:1,class:"aksrt-deferred-page__reason"},L={key:2,class:"aksrt-deferred-page__features"},W={class:"aksrt-deferred-page__badge"},X={__name:"DeferredPage",props:{title:{type:String,default:""},description:{type:String,default:""},icon:{type:String,default:""},features:{type:Array,default:()=>[]},status:{type:String,default:""},phase:{type:String,default:""},dependsOn:{type:Array,default:()=>[]},reason:{type:String,default:""}},setup(z){const t=z,d=b(),O=o(()=>{var s,e;return t.title||((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.title)||"功能开发中"}),x=o(()=>{var s,e;return t.description||((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.description)||"此功能正在规划开发中,将在后续版本上线。"}),D=o(()=>{var s,e;return t.icon||((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.icon)||"fa fas fa-rocket"}),B=o(()=>{var s,e;return t.status||((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.status)||"deferred"}),g=o(()=>{var s,e;return t.phase||((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.phase)||""}),m=o(()=>{var s,e;return t.dependsOn&&t.dependsOn.length?t.dependsOn:((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.dependsOn)||[]}),k=o(()=>{var s,e;return t.reason||((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.reason)||""}),v=o(()=>{var s,e;return t.features&&t.features.length?t.features:((e=(s=d.meta)==null?void 0:s.deferredProps)==null?void 0:e.features)||[]});return(s,e)=>{const p=V("n-tag");return r(),n("div",F,[a("div",R,[f(S,{icon:D.value,size:48},null,8,["icon"])]),a("h2",w,l(O.value),1),a("p",A,l(x.value),1),a("div",I,[f(p,{size:"small",type:"info"},{default:u(()=>[_(l(B.value),1)]),_:1}),g.value?(r(),y(p,{key:0,size:"small",type:"warning"},{default:u(()=>[_("Phase "+l(g.value),1)]),_:1})):c("",!0)]),m.value.length?(r(),n("div",T,[e[0]||(e[0]=a("span",{class:"aksrt-deferred-page__label"},"依赖",-1)),a("div",$,[(r(!0),n(h,null,P(m.value,i=>(r(),y(p,{key:i,size:"small",type:"default"},{default:u(()=>[_(l(i),1)]),_:2},1024))),128))])])):c("",!0),k.value?(r(),n("div",E,[e[1]||(e[1]=a("span",{class:"aksrt-deferred-page__label"},"原因",-1)),a("p",null,l(k.value),1)])):c("",!0),v.value&&v.value.length?(r(),n("div",L,[(r(!0),n(h,null,P(v.value,(i,N)=>(r(),n("div",{key:N,class:"aksrt-deferred-page__feature"},[f(S,{icon:"fa fas fa-check-circle",size:14}),a("span",null,l(i),1)]))),128))])):c("",!0),a("div",W,[f(p,{type:"info",size:"small"},{default:u(()=>[...e[2]||(e[2]=[_("即将推出",-1)])]),_:1})])])}}},H=C(X,[["__scopeId","data-v-2af15f85"]]);export{H as default};
+1
View File
@@ -0,0 +1 @@
.aksrt-deferred-page[data-v-2af15f85]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;padding:40px 20px}.aksrt-deferred-page__icon[data-v-2af15f85]{color:var(--aksrt-color-border-strong);margin-bottom:20px}.aksrt-deferred-page__title[data-v-2af15f85]{margin:0 0 10px;font-size:20px;font-weight:600;color:var(--aksrt-color-text)}.aksrt-deferred-page__desc[data-v-2af15f85]{margin:0 0 20px;font-size:14px;color:var(--aksrt-color-muted);max-width:400px;line-height:1.6}.aksrt-deferred-page__meta[data-v-2af15f85]{display:flex;gap:10px;margin-bottom:18px}.aksrt-deferred-page__depends[data-v-2af15f85],.aksrt-deferred-page__reason[data-v-2af15f85]{width:min(520px,100%);margin-bottom:18px;text-align:left}.aksrt-deferred-page__label[data-v-2af15f85]{display:inline-block;margin-bottom:8px;font-size:12px;font-weight:600;color:var(--aksrt-color-text-secondary)}.aksrt-deferred-page__depends-list[data-v-2af15f85]{display:flex;flex-wrap:wrap;gap:8px}.aksrt-deferred-page__reason p[data-v-2af15f85]{margin:0;color:var(--aksrt-color-muted);line-height:1.7}.aksrt-deferred-page__features[data-v-2af15f85]{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.aksrt-deferred-page__feature[data-v-2af15f85]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--aksrt-color-muted)}.aksrt-deferred-page__feature[data-v-2af15f85] i{color:#52c41a}
+1
View File
@@ -0,0 +1 @@
.aksrt-docs__grid[data-v-096fd8a8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;margin-bottom:16px}.aksrt-docs__card[data-v-096fd8a8]{cursor:pointer;transition:box-shadow .2s}.aksrt-docs__card[data-v-096fd8a8]:hover{box-shadow:0 2px 12px #00000014}.aksrt-docs__card-inner[data-v-096fd8a8]{display:flex;align-items:center;gap:12px}.aksrt-docs__card-icon[data-v-096fd8a8]{flex-shrink:0;width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center}.aksrt-docs__card-body[data-v-096fd8a8]{flex:1;min-width:0}.aksrt-docs__card-title[data-v-096fd8a8]{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--aksrt-color-text)}.aksrt-docs__card-desc[data-v-096fd8a8]{margin:0;font-size:12px;color:var(--aksrt-color-muted);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aksrt-docs__card-arrow[data-v-096fd8a8]{flex-shrink:0;color:#c0c4cc}.aksrt-docs__section[data-v-096fd8a8]{margin-bottom:16px}.aksrt-docs__action[data-v-096fd8a8]{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:6px;background:#fafafa}.aksrt-docs__action i[data-v-096fd8a8]{color:var(--aksrt-color-primary);margin-top:2px}.aksrt-docs__action strong[data-v-096fd8a8]{display:block;font-size:14px;color:var(--aksrt-color-text);margin-bottom:2px}.aksrt-docs__action p[data-v-096fd8a8]{margin:0 0 4px;font-size:12px;color:var(--aksrt-color-muted)}.aksrt-docs__action a[data-v-096fd8a8]{font-size:12px;color:var(--aksrt-color-primary);text-decoration:none}.aksrt-docs__action a[data-v-096fd8a8]:hover{text-decoration:underline}
+1
View File
@@ -0,0 +1 @@
import{P as h}from"./PageHeader.CtT29f8Y.js";import{_ as r}from"./FaIcon.NZ6TDkNu.js";import{a as A}from"./shared-api.DnsQ5cxS.js";import{_ as C}from"./index.js";import{r as m,o as D,X as y,a4 as t,a3 as o,Y as s,F as V,R as P,a1 as i,W as p,f as d,a2 as B,I as T,Z as _}from"./vendor-vue.BxZIRU0_.js";import"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const $={class:"aksrt-page-container"},I={class:"aksrt-docs__action"},K={class:"aksrt-docs__action"},N={class:"aksrt-docs__action"},R={class:"aksrt-docs__action"},F={class:"aksrt-docs__grid"},H={class:"aksrt-docs__card-inner"},L={class:"aksrt-docs__card-body"},E={class:"aksrt-docs__card-title"},J={class:"aksrt-docs__card-desc"},M={__name:"DocsPage",setup(O){var k;const b=m(((k=window.aksrtAdminData)==null?void 0:k.themeVersion)||"3.4.0-dev"),u=m("—"),w=m([{key:"admin-ia-map",title:"后台 IA 蓝图",description:"完整的后台信息架构映射,12 个顶级分区及子页面清单。",icon:"fa fas fa-sitemap",color:"var(--aksrt-color-primary)",file:"admin-ia-map.md"},{key:"legacy-gap-matrix",title:"对标差异矩阵",description:"AKSRT 当前 → 原主题参考 → AKSRT 目标三层对照表。",icon:"fa fas fa-columns",color:"#722ed1",file:"legacy-gap-matrix.md"},{key:"frontend-page-matrix",title:"前端页面矩阵",description:"前端模板、CSS、JS 资产映射与覆盖范围。",icon:"fa fas fa-desktop",color:"#13c2c2",file:"frontend-page-matrix.md"},{key:"manual-acceptance-baseline",title:"验收基线",description:"每个 Phase 的人工验收标准和检查清单。",icon:"fa fas fa-clipboard",color:"#52c41a",file:"manual-acceptance-baseline.md"},{key:"feature-domain-map",title:"功能域地图",description:"业务域划分、依赖关系和模块边界说明。",icon:"fa fas fa-map",color:"#fa8c16",file:"feature-domain-map.md"},{key:"migration-map",title:"迁移地图",description:"设置 key 迁移、旧选项兼容和 Schema 版本对照。",icon:"fa fas fa-exchange-alt",color:"#eb2f96",file:"migration-map.md"}]);D(async()=>{try{const e=await A.getHealthCheck();e!=null&&e.data&&(u.value=e.data.db_schema_version||"—")}catch{}});function x(e){var n;const a=((n=window.aksrtAdminData)==null?void 0:n.siteUrl)||window.location.origin;window.open(`${a}/wp-content/themes/AKSRT-theme/docs/${e.file}`,"_blank")}return(e,a)=>{const n=i("router-link"),c=i("n-grid-item"),z=i("n-grid"),f=i("n-card"),g=i("n-tag"),v=i("n-descriptions-item"),S=i("n-descriptions");return p(),y("div",$,[t(h,{title:"文档中心",desc:"主题使用文档、开发指南、迁移说明和更新日志。"}),t(f,{title:"常用操作",size:"small",class:"aksrt-docs__section"},{default:o(()=>[t(z,{cols:2,"x-gap":12,"y-gap":12},{default:o(()=>[t(c,null,{default:o(()=>[s("div",I,[t(r,{icon:"fa fas fa-paint-brush",size:16}),s("div",null,[a[1]||(a[1]=s("strong",null,"全局设置",-1)),a[2]||(a[2]=s("p",null,"Logo、导航栏、自定义代码",-1)),t(n,{to:"/global/common"},{default:o(()=>[...a[0]||(a[0]=[d("前往配置 →",-1)])]),_:1})])])]),_:1}),t(c,null,{default:o(()=>[s("div",K,[t(r,{icon:"fa fas fa-home",size:16}),s("div",null,[a[4]||(a[4]=s("strong",null,"首页配置",-1)),a[5]||(a[5]=s("p",null,"首页模块、布局、排序和预设模板",-1)),t(n,{to:"/page-display/homepage"},{default:o(()=>[...a[3]||(a[3]=[d("前往配置 →",-1)])]),_:1})])])]),_:1}),t(c,null,{default:o(()=>[s("div",N,[t(r,{icon:"fa fas fa-users",size:16}),s("div",null,[a[7]||(a[7]=s("strong",null,"用户管理",-1)),a[8]||(a[8]=s("p",null,"登录注册、OAuth、签到、积分",-1)),t(n,{to:"/users/auth"},{default:o(()=>[...a[6]||(a[6]=[d("前往配置 →",-1)])]),_:1})])])]),_:1}),t(c,null,{default:o(()=>[s("div",R,[t(r,{icon:"fa fas fa-wrench",size:16}),s("div",null,[a[10]||(a[10]=s("strong",null,"工具",-1)),a[11]||(a[11]=s("p",null,"导入导出、健康检查、备份与更新",-1)),t(n,{to:"/tools/import-export"},{default:o(()=>[...a[9]||(a[9]=[d("前往配置 →",-1)])]),_:1})])])]),_:1})]),_:1})]),_:1}),s("div",F,[(p(!0),y(V,null,P(w.value,l=>(p(),B(f,{key:l.key,class:"aksrt-docs__card",size:"small",hoverable:"",onClick:U=>x(l)},{default:o(()=>[s("div",H,[s("div",{class:"aksrt-docs__card-icon",style:T({background:l.color})},[t(r,{icon:l.icon,size:20,color:"#fff"},null,8,["icon"])],4),s("div",L,[s("h4",E,_(l.title),1),s("p",J,_(l.description),1)]),t(r,{icon:"fa fas fa-external-link-alt",size:12,class:"aksrt-docs__card-arrow"})])]),_:2},1032,["onClick"]))),128))]),t(f,{title:"当前版本",size:"small",class:"aksrt-docs__section"},{default:o(()=>[t(S,{column:2,bordered:"","label-placement":"left",size:"small"},{default:o(()=>[t(v,{label:"主题版本"},{default:o(()=>[t(g,{type:"success",size:"small"},{default:o(()=>[d(_(b.value),1)]),_:1})]),_:1}),t(v,{label:"Schema 版本"},{default:o(()=>[t(g,{type:"info",size:"small"},{default:o(()=>[d(_(u.value),1)]),_:1})]),_:1})]),_:1})]),_:1})])}}},Q=C(M,[["__scopeId","data-v-096fd8a8"]]);export{Q as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.aksrt-ai__status[data-v-290bff3b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.aksrt-ai__status-card[data-v-290bff3b]{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-radius:8px;border:1px solid #e8e8e8}.aksrt-ai__status-icon[data-v-290bff3b]{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px}.aksrt-ai__status-icon--ok[data-v-290bff3b]{background:#d4edda;color:#155724}.aksrt-ai__status-icon--warn[data-v-290bff3b]{background:#fff3cd;color:#856404}.aksrt-ai__status-icon--off[data-v-290bff3b]{background:#f8d7da;color:#721c24}.aksrt-ai__status-icon--info[data-v-290bff3b]{background:#d1ecf1;color:#0c5460}.aksrt-ai__status-value[data-v-290bff3b]{font-size:18px;font-weight:600;color:var(--aksrt-color-text)}.aksrt-ai__status-label[data-v-290bff3b]{font-size:12px;color:#888}.aksrt-ai__form-card[data-v-290bff3b]{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:24px;margin-bottom:16px}.aksrt-ai__form-card h3[data-v-290bff3b]{margin:0 0 16px;font-size:16px;font-weight:600}.aksrt-form-hint[data-v-290bff3b]{font-size:12px;color:#888;margin-top:4px}.aksrt-ai__load-error[data-v-290bff3b]{background:#fdecea;border-color:#f5c2c0;color:#842029;margin-bottom:16px}.aksrt-ai__notice[data-v-290bff3b]{background:#fff8e1;border-color:#ffe082}.aksrt-ai__notice h3[data-v-290bff3b]{color:#e65100}.aksrt-ai__notice ul[data-v-290bff3b]{margin:0;padding-left:20px}.aksrt-ai__notice li[data-v-290bff3b]{margin-bottom:8px;font-size:14px}.aksrt-ai__notice code[data-v-290bff3b]{background:#0000000f;padding:2px 6px;border-radius:3px;font-size:13px}.aksrt-badge[data-v-290bff3b]{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px}.aksrt-badge--success[data-v-290bff3b]{background:#d4edda;color:#155724}.aksrt-badge--warning[data-v-290bff3b]{background:#fff3cd;color:#856404}.aksrt-table[data-v-290bff3b]{width:100%;border-collapse:collapse}.aksrt-table th[data-v-290bff3b],.aksrt-table td[data-v-290bff3b]{border-bottom:1px solid #eee;padding:10px 8px;text-align:left}.aksrt-form-group[data-v-290bff3b]{margin-bottom:14px}.aksrt-input[data-v-290bff3b],.aksrt-select[data-v-290bff3b]{width:100%;max-width:480px;padding:8px 10px}.aksrt-button[data-v-290bff3b]{padding:8px 16px;border:0;border-radius:6px;cursor:pointer}.aksrt-button--primary[data-v-290bff3b]{background:#1677ff;color:#fff}.aksrt-button[data-v-290bff3b]:disabled{opacity:.6;cursor:not-allowed}
+1
View File
@@ -0,0 +1 @@
import{W as r,X as p,I as f,L as u,c as a}from"./vendor-vue.BxZIRU0_.js";const c={__name:"FaIcon",props:{icon:{type:String,required:!0},size:{type:[Number,String],default:null},fw:{type:Boolean,default:!1},spin:{type:Boolean,default:!1},pulse:{type:Boolean,default:!1},rotate:{type:[Number,String],default:null},flip:{type:String,default:null},extraClass:{type:String,default:""}},setup(l){const e=l,i=a(()=>{const t=[],s=e.icon.trim();return s.startsWith("fa-")?t.push("fa","fas",s):t.push(...s.split(/\s+/)),e.fw&&t.push("fa-fw"),e.spin&&t.push("fa-spin"),e.pulse&&t.push("fa-pulse"),e.rotate&&t.push(`fa-rotate-${e.rotate}`),e.flip&&t.push(`fa-flip-${e.flip}`),e.extraClass&&t.push(e.extraClass),t.join(" ")}),n=a(()=>e.size?{fontSize:typeof e.size=="number"?`${e.size}px`:e.size}:{});return(t,s)=>(r(),p("i",{class:u(i.value),style:f(n.value),"aria-hidden":"true"},null,6))}};export{c as _};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.aksrt-icon-value__svg[data-v-127de8f8]{display:inline-flex}.aksrt-icon-value__svg[data-v-127de8f8] svg,.aksrt-icon-value__svg svg[data-v-127de8f8]{width:1em;height:1em;fill:currentColor}.aksrt-icon-picker__panel[data-v-b3172250]{padding:12px}.aksrt-icon-picker__search[data-v-b3172250],.aksrt-icon-picker__tabs[data-v-b3172250]{margin-bottom:10px}.aksrt-icon-picker__tabs[data-v-b3172250] .n-radio-group{flex-wrap:wrap}.aksrt-icon-picker__grid[data-v-b3172250]{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;max-height:260px;overflow-y:auto}.aksrt-icon-picker__item[data-v-b3172250]{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;cursor:pointer;font-size:16px;color:var(--aksrt-color-text-secondary);transition:all .15s}.aksrt-icon-picker__item[data-v-b3172250]:hover{background:var(--aksrt-color-primary-soft);color:var(--aksrt-color-primary)}.aksrt-icon-picker__item.is-active[data-v-b3172250]{background:var(--aksrt-color-primary);color:#fff}.aksrt-icon-picker__item[data-v-b3172250] svg,.aksrt-icon-picker__preview-svg[data-v-b3172250] svg,.aksrt-icon-picker__preview-svg svg[data-v-b3172250]{width:18px;height:18px;fill:currentColor}.aksrt-icon-picker__preview-svg[data-v-b3172250]{display:inline-flex}.aksrt-icon-picker__empty[data-v-b3172250]{grid-column:1 / -1;text-align:center;padding:20px;color:var(--aksrt-color-muted);font-size:13px}.aksrt-icon-picker__custom-actions[data-v-b3172250]{display:flex;align-items:center;gap:10px;margin-top:8px}.aksrt-icon-picker__custom-preview[data-v-b3172250]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px dashed var(--aksrt-color-muted);border-radius:4px}.aksrt-icon-picker__grid--session[data-v-b3172250]{margin-top:10px;padding-top:8px;border-top:1px solid var(--aksrt-color-muted)}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.icon-preview-row[data-v-1ae52996]{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:13px}.theme-icon-preview[data-v-1ae52996]{display:flex;flex-direction:column;gap:6px;color:var(--n-text-color-3);font-size:13px}.theme-icon-preview span[data-v-1ae52996],.theme-icon-preview-inline[data-v-1ae52996]{display:inline-flex;align-items:center;gap:6px}.icon-preview-row a[data-v-1ae52996]{color:var(--n-primary-color);text-decoration:none}.icon-preview-row a[data-v-1ae52996]:hover{text-decoration:underline}.muted-text[data-v-1ae52996]{color:#999;font-size:12px}.aksrt-modal-footer[data-v-1ae52996]{display:flex;justify-content:flex-end;gap:10px}.section-desc[data-v-1ae52996]{color:var(--n-text-color-3);font-size:13px;margin:0 0 16px}.float-btn-sort[data-v-1ae52996]{display:flex;flex-direction:column;gap:12px}.float-btn-sort__item[data-v-1ae52996]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--n-border-color);border-radius:14px;background:var(--n-card-color)}.float-btn-sort__main[data-v-1ae52996]{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.float-btn-sort__handle[data-v-1ae52996]{width:30px;height:30px;border:0;background:transparent;color:var(--n-text-color-3);cursor:grab}.float-btn-sort__handle[data-v-1ae52996]:active{cursor:grabbing}.float-btn-sort__icon[data-v-1ae52996]{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#88abda1f;color:var(--n-text-color-2)}.float-btn-sort__meta[data-v-1ae52996]{min-width:0;flex:1}.float-btn-sort__title-row[data-v-1ae52996]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.float-btn-sort__desc[data-v-1ae52996]{font-size:13px;color:var(--n-text-color-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.float-btn-sort__actions[data-v-1ae52996]{display:flex;gap:8px;flex-shrink:0}.float-btn-sort__ghost[data-v-1ae52996]{opacity:.45}.add-items-editor[data-v-1ae52996]{margin-bottom:16px}.add-items-editor__head[data-v-1ae52996]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.add-items-editor__head-actions[data-v-1ae52996]{display:flex;gap:8px}.add-items-editor__list[data-v-1ae52996]{display:flex;flex-direction:column;gap:10px}.add-items-editor__row[data-v-1ae52996]{display:grid;grid-template-columns:auto 1fr 1fr 1.4fr auto;gap:10px;align-items:center}.add-items-editor__drag[data-v-1ae52996]{width:32px;height:32px;border:0;border-radius:8px;background:#88abda1f;color:var(--n-text-color-3);cursor:grab}.add-items-editor__drag[data-v-1ae52996]:active{cursor:grabbing}.add-items-editor__ghost[data-v-1ae52996]{opacity:.45}.add-items-preview[data-v-1ae52996]{margin-top:14px;padding:14px;border:1px dashed var(--n-border-color);border-radius:14px;background:#88abda0a}.add-items-preview__title[data-v-1ae52996]{font-size:13px;color:var(--n-text-color-3);margin-bottom:10px}.add-items-preview__panel[data-v-1ae52996]{display:flex;align-items:center;gap:12px;margin-top:12px}.add-items-preview__panel[data-v-1ae52996]:first-of-type{margin-top:0}.add-items-preview__mode[data-v-1ae52996]{width:40px;flex-shrink:0;font-size:12px;color:var(--n-text-color-3)}.add-items-preview__trigger[data-v-1ae52996]{width:42px;height:42px;border-radius:12px;background:#fff;border:1px solid var(--n-border-color);display:inline-flex;align-items:center;justify-content:center;color:var(--n-text-color-2);box-shadow:0 8px 20px #11182714}.add-items-preview__trigger--dark[data-v-1ae52996]{background:#232734;border-color:#ffffff14;color:#d8dee9;box-shadow:0 12px 28px #00000047}.add-items-preview__menu[data-v-1ae52996]{flex:1;min-width:0;padding:10px;border-radius:14px;background:#fff;border:1px solid var(--n-border-color)}.add-items-preview__menu--dark[data-v-1ae52996]{background:#232734;border-color:#ffffff14}.add-items-preview__list[data-v-1ae52996]{display:flex;flex-direction:column;gap:6px}.add-items-preview__item[data-v-1ae52996]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:#88abda0f;color:var(--n-text-color-2);text-decoration:none}.add-items-preview__item i[data-v-1ae52996]{width:18px;text-align:center;color:var(--n-primary-color)}.add-items-preview__item--dark[data-v-1ae52996]{background:#ffffff0d;color:#e5e7eb}.add-items-preview__item--dark i[data-v-1ae52996]{color:#9fc0ec}.add-items-preview__empty[data-v-1ae52996]{font-size:13px;color:var(--n-text-color-3);padding:10px 12px}.add-items-preview__empty--dark[data-v-1ae52996]{color:#e5e7ebb8}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.icon-preview-row[data-v-cc40d71e]{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:13px}.icon-preview-row a[data-v-cc40d71e]{color:var(--n-primary-color);text-decoration:none}.icon-preview-row a[data-v-cc40d71e]:hover{text-decoration:underline}.muted-text[data-v-cc40d71e]{color:#999;font-size:12px}.aksrt-modal-footer[data-v-cc40d71e]{display:flex;justify-content:flex-end;gap:10px}.section-desc[data-v-cc40d71e]{color:var(--n-text-color-3);font-size:13px;margin:0 0 16px}.section-desc--tight[data-v-cc40d71e]{margin-top:-6px}.add-items-editor[data-v-cc40d71e]{margin-bottom:16px}.add-items-editor__head[data-v-cc40d71e]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.add-items-editor__presets[data-v-cc40d71e]{display:flex;align-items:center;gap:6px;margin-bottom:12px;flex-wrap:wrap}.add-items-editor__presets-label[data-v-cc40d71e]{font-size:12px;color:var(--n-text-color-3, #999)}.add-items-editor__list[data-v-cc40d71e]{display:flex;flex-direction:column;gap:10px}.add-items-editor__row[data-v-cc40d71e]{display:grid;grid-template-columns:32px 1fr 1fr 1.2fr 40px;gap:8px;align-items:center}.add-items-editor__drag[data-v-cc40d71e]{width:32px;height:32px;border:0;border-radius:10px;background:#f3f5f7;color:#6b7280;cursor:grab}.add-items-editor__ghost[data-v-cc40d71e]{opacity:.5}.tabbar-sort[data-v-cc40d71e]{display:flex;flex-direction:column;gap:12px}.tabbar-sort__item[data-v-cc40d71e]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--n-border-color);border-radius:14px;background:#fff}.tabbar-sort__main[data-v-cc40d71e]{min-width:0;display:flex;align-items:center;gap:12px;flex:1}.tabbar-sort__handle[data-v-cc40d71e]{width:32px;height:32px;border:0;border-radius:10px;background:#f3f5f7;color:#6b7280;cursor:grab}.tabbar-sort__icon[data-v-cc40d71e]{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#18a0581f;color:var(--aksrt-color-primary);font-size:18px;flex:0 0 auto}.tabbar-sort__meta[data-v-cc40d71e]{min-width:0;flex:1}.tabbar-sort__title-row[data-v-cc40d71e]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:4px}.tabbar-sort__desc[data-v-cc40d71e]{color:var(--n-text-color-3);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabbar-sort__actions[data-v-cc40d71e]{display:flex;gap:6px;flex:0 0 auto}.tabbar-sort__ghost[data-v-cc40d71e]{opacity:.5}@media(max-width:1023px){.tabbar-sort__item[data-v-cc40d71e]{flex-direction:column;align-items:stretch}.tabbar-sort__actions[data-v-cc40d71e]{justify-content:flex-end}.add-items-editor__row[data-v-cc40d71e]{grid-template-columns:32px 1fr}}
@@ -0,0 +1 @@
import{o as d,X as a,Y as o,Z as u,c as l,$ as _,W as r}from"./vendor-vue.BxZIRU0_.js";import{_ as m}from"./index.js";import"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const v={class:"aks-native-ops-redirect"},f={key:0},h=["href"],k={key:1,class:"desc"},w={__name:"NativeOpsRedirect",setup(y){const n=_(),p=l(()=>{var e;return((e=n.meta)==null?void 0:e.title)||"运营功能已迁移"}),t=l(()=>{var c,i;const e=((c=n.meta)==null?void 0:c.nativeAdminPath)||"";return e?(((i=window.aksrtAdminData)==null?void 0:i.adminUrl)||"/wp-admin/").replace(/\/?$/,"/")+e.replace(/^\//,""):""});return d(()=>{t.value&&window.location.replace(t.value)}),(e,s)=>(r(),a("div",v,[o("h2",null,u(p.value),1),s[0]||(s[0]=o("p",{class:"desc"}," 此运营功能已迁移到 WordPress 原生后台侧栏(对齐 legacy)。正在跳转… ",-1)),t.value?(r(),a("p",f,[o("a",{class:"button button-primary",href:t.value},"立即打开原生页面",8,h)])):(r(),a("p",k,"未配置原生跳转地址,请从左侧 WP 菜单进入。"))]))}},P=m(w,[["__scopeId","data-v-6c4fe740"]]);export{P as default};
+1
View File
@@ -0,0 +1 @@
.aks-native-ops-redirect[data-v-6c4fe740]{max-width:640px;margin:48px auto;padding:24px;background:var(--aks-surface, #fff);border-radius:8px;border:1px solid var(--aks-border, #e5e7eb)}.desc[data-v-6c4fe740]{color:#646970;line-height:1.6}.button[data-v-6c4fe740]{display:inline-block;margin-top:8px;padding:8px 14px;background:#2271b1;color:#fff;border-radius:4px;text-decoration:none}
@@ -0,0 +1 @@
import{_ as n}from"./index.js";import{X as s,Y as d,Z as o,l as r,a5 as c,W as t,f as i}from"./vendor-vue.BxZIRU0_.js";const _={class:"aksrt-page-header"},l={class:"aksrt-page-header__main"},h={class:"aksrt-page-header__title"},p={key:0,class:"aksrt-page-header__desc"},u={key:1,class:"aksrt-page-header__desc"},g={key:0,class:"aksrt-page-header__actions"},k={__name:"PageHeader",props:{title:{type:String,required:!0},desc:{type:String,default:""}},setup(a){return(e,m)=>(t(),s("header",_,[d("div",l,[d("h2",h,o(a.title),1),a.desc?(t(),s("p",p,[r(e.$slots,"desc",{},()=>[i(o(a.desc),1)],!0)])):e.$slots.desc?(t(),s("div",u,[r(e.$slots,"desc",{},void 0,!0)])):c("",!0)]),e.$slots.actions?(t(),s("div",g,[r(e.$slots,"actions",{},void 0,!0)])):c("",!0)]))}},$=n(k,[["__scopeId","data-v-9e7de2bf"]]);export{$ as P};
+1
View File
@@ -0,0 +1 @@
.aksrt-page-header[data-v-9e7de2bf]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.aksrt-page-header__main[data-v-9e7de2bf]{flex:1 1 auto;min-width:0}.aksrt-page-header__title[data-v-9e7de2bf]{margin:0 0 6px;color:var(--aksrt-color-text);font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.3}.aksrt-page-header__desc[data-v-9e7de2bf]{margin:0;color:var(--aksrt-color-muted);font-size:13px;line-height:1.65}.aksrt-page-header__actions[data-v-9e7de2bf]{flex:0 0 auto;display:flex;align-items:center;gap:8px}@media(max-width:768px){.aksrt-page-header[data-v-9e7de2bf]{margin-bottom:14px;gap:10px}.aksrt-page-header__title[data-v-9e7de2bf]{font-size:18px}.aksrt-page-header__desc[data-v-9e7de2bf]{font-size:12px}.aksrt-page-header__actions[data-v-9e7de2bf]{width:100%}}
@@ -0,0 +1 @@
import{_ as H,a1 as s,W as r,X as q,a4 as p,a3 as t,a2 as m,F as A,R as D,f as B,Z as y,a5 as C,l as I,N as P,c as V,o as O,r as N,Y as f,L as $}from"./vendor-vue.BxZIRU0_.js";import{a as E}from"./shared-api.DnsQ5cxS.js";import{P as R}from"./PageHeader.CtT29f8Y.js";import{u as T,A as U,g as W}from"./shared-api.DsnKC5vk.js";import{u as L}from"./vendor-naive.CKYCZmXD.js";import{_ as X}from"./index.js";import"./FaIcon.NZ6TDkNu.js";import"./FaIconPicker.DuahAn6_.js";import"./vendor-misc.bELTaXdf.js";import"./level.E3ANSDAX.js";import"./badge.CKTsmH1z.js";const Y={class:"aksrt-page-container"},Z={__name:"PaymentSectionPage",props:{section:{type:String,required:!0},title:{type:String,required:!0},desc:{type:String,default:""},note:{type:String,default:""},links:{type:Array,default:()=>[]}},setup(c){const g=c,h=H(),l=L(),u=V(()=>W("payment",g.section)||{groups:[]}),F=V(()=>{const n={};return(u.value.groups||[]).forEach(x=>{(x.fields||[]).forEach(S=>{S.default!==void 0&&(n[S.key]=S.default)})}),n}),{formData:e,loading:v,saving:_,loadError:i,dirty:a,save:k,reload:d}=T({fetch:()=>E.getSchemaPage("payment",g.section),submit:n=>E.saveSchemaPage("payment",g.section,n),defaults:F.value,onSaved:()=>{l.success("设置已保存")}});function w(n){h.push(n)}async function o(){try{await k()}catch(n){l.error(n.message||"保存失败")}}function M(){d(),l.info("已放弃更改")}return(n,x)=>{const S=s("n-button"),z=s("n-space"),G=s("n-alert"),j=s("n-card");return r(),q("div",Y,[p(R,{title:c.title,desc:c.desc},{actions:t(()=>[c.links.length?(r(),m(z,{key:0},{default:t(()=>[(r(!0),q(A,null,D(c.links,b=>(r(),m(S,{key:b.path,quaternary:"",onClick:ee=>w(b.path)},{default:t(()=>[B(y(b.label),1)]),_:2},1032,["onClick"]))),128))]),_:1})):C("",!0)]),_:1},8,["title","desc"]),c.note?(r(),m(j,{key:0,class:"aksrt-section-card"},{default:t(()=>[p(G,{type:"info","show-icon":!1},{default:t(()=>[B(y(c.note),1)]),_:1})]),_:1})):C("",!0),I(n.$slots,"before-form"),p(U,{schema:u.value.groups,"form-data":P(e),dirty:P(a),loading:P(v),saving:P(_),"load-error":P(i),"show-search":!1,"onUpdate:formData":x[0]||(x[0]=b=>e.value=b),onSave:o,onReload:M},null,8,["schema","form-data","dirty","loading","saving","load-error"])])}}},J={class:"aksrt-gateway__card"},K={class:"aksrt-gateway__help"},Q={__name:"PaymentGateway",setup(c){const g=L(),h=N([]),l=N({}),u=N(!1);function F(e){return e==="balance"||e==="alipay"||e==="epay_alipay"?"fa fas fa-credit-card":e==="wechatpay"||e==="epay_wxpay"?"fa fab fa-weixin":e==="paypal"?"fa fab fa-paypal":e==="stripe"?"fa fab fa-cc-stripe":"fa fas fa-credit-card"}return O(async()=>{var e,v,_;u.value=!0;try{const[i,a]=await Promise.all([E.request("/payment/overview").catch(()=>null)]);if((v=(e=i==null?void 0:i.data)==null?void 0:e.gateway)!=null&&v.gateways){const k=Object.entries(i.data.gateway.gateways).map(([d,w])=>({id:d,name:d,configured:!!w}));h.value=k}(_=a==null?void 0:a.data)!=null&&_.gateway?l.value=a.data.gateway:a!=null&&a.data&&(l.value=a.data)}catch{g.warning("部分支付接口暂不可用")}finally{u.value=!1}}),(e,v)=>{const _=s("n-tag"),i=s("n-grid-item"),a=s("n-grid"),k=s("n-empty"),d=s("n-card"),w=s("n-spin");return r(),m(Z,{section:"gateway",title:"收款接口",desc:"管理余额、支付宝、微信、PayPal、Stripe、易支付与卡密兑换通道。",note:"以渠道开关与凭据是否齐全为准;异步回调由各网关验签。卡密为兑换入口,不进入收银台。",links:[{label:"余额充值",path:"/payment/recharge"},{label:"充值卡",path:"/payment/card-pass"}]},{"before-form":t(()=>[p(w,{show:u.value},{default:t(()=>[p(d,{class:"aksrt-section-card",title:"网关状态"},{default:t(()=>[p(a,{cols:3,"x-gap":12,"y-gap":12},{default:t(()=>[(r(!0),q(A,null,D(h.value,o=>(r(),m(i,{key:o.id},{default:t(()=>[f("div",J,[f("div",{class:$(["aksrt-gateway__icon",o.configured?"aksrt-gateway__icon--active":""])},[f("i",{class:$(F(o.id))},null,2)],2),f("div",null,[f("strong",null,y(o.name),1),f("p",null,y(o.configured?"已配置":"未配置"),1)]),p(_,{type:o.configured?"success":"default",size:"small",round:""},{default:t(()=>[B(y(o.configured?"可用":"不可用"),1)]),_:2},1032,["type"])])]),_:2},1024))),128))]),_:1}),!u.value&&h.value.length===0?(r(),m(k,{key:0,description:"暂无已注册的支付网关"})):C("",!0)]),_:1}),l.value.help_text?(r(),m(d,{key:0,class:"aksrt-section-card",title:"运行说明"},{default:t(()=>[f("p",K,y(l.value.help_text),1)]),_:1})):C("",!0)]),_:1},8,["show"])]),_:1})}}},fe=X(Q,[["__scopeId","data-v-37b55ac6"]]);export{fe as default};
+1
View File
@@ -0,0 +1 @@
.aksrt-gateway__card[data-v-37b55ac6]{display:flex;align-items:center;gap:12px;padding:14px;border-radius:8px;background:var(--surface-2, #fafafa);border:1px solid var(--color-line, #f0f0f0)}.aksrt-gateway__icon[data-v-37b55ac6]{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--surface-3, #f0f0f0);color:var(--aksrt-color-muted);font-size:16px}.aksrt-gateway__icon--active[data-v-37b55ac6]{background:var(--color-primary-soft, #f0f5ff);color:var(--aksrt-color-primary)}.aksrt-gateway__card strong[data-v-37b55ac6]{display:block;font-size:14px;color:var(--aksrt-color-text)}.aksrt-gateway__card p[data-v-37b55ac6]{margin:2px 0 0;font-size:12px;color:var(--aksrt-color-muted)}.aksrt-gateway__help[data-v-37b55ac6]{margin:0;font-size:13px;color:var(--color-ink-3, #5c6370);line-height:1.6}
@@ -0,0 +1 @@
import{a as V}from"./shared-api.DnsQ5cxS.js";import{P as T}from"./PageHeader.CtT29f8Y.js";import{_ as U}from"./index.js";import{u as q,b as C,c as H,d as I}from"./vendor-naive.CKYCZmXD.js";import{o as L,X as w,a4 as l,a3 as n,r as f,e as P,a1 as u,W as h,f as d,a2 as j,Y as c,N as S,Z as v,a5 as W,F as X,R as Y,k as p}from"./vendor-vue.BxZIRU0_.js";import"./vendor-misc.bELTaXdf.js";const Z={class:"aksrt-page-container"},A={class:"aksrt-cap-matrix__header"},G={class:"aksrt-cap-matrix__title"},K={class:"aksrt-cap-matrix__desc"},Q={class:"aksrt-form-actions"},$={__name:"PermissionsCapabilities",setup(ee){const y=q(),g=f(!0),k=f(!1),b=f([]),x=f({}),_=P({cap_count:0,group_count:0,column_count:0}),o=P({}),N=f({});L(B);async function B(){g.value=!0;try{const e=await V.getCapabilities(),a=(e==null?void 0:e.data)||{};x.value=a.columns||{},b.value=a.groups||[],Object.assign(_,a.summary||{cap_count:0,group_count:0,column_count:0});const s={};for(const t of b.value)for(const i of t.items||[])s[i.cap_id]={...i.values||{}};O(o,s),N.value=JSON.parse(JSON.stringify(s))}catch(e){y.error((e==null?void 0:e.message)||"加载能力矩阵失败")}finally{g.value=!1}}function O(e,a){Object.keys(e).forEach(s=>delete e[s]),Object.entries(a).forEach(([s,t])=>{e[s]={...t}})}function z(e){const a=[{title:"能力项",key:"label",fixed:"left",width:280,render:t=>p("div",{class:"aksrt-cap-matrix__cap"},[p("strong",t.label),p("code",t.cap_id)])}],s=new Set;for(const t of e.items||[])for(const i of t.visible_columns||[])s.add(i);for(const t of Object.keys(x.value||{}))s.has(t)&&a.push({title:x.value[t],key:t,width:t==="level"||t==="vip"?110:100,render:i=>E(i,t)});return a}function E(e,a){var t,i;return(e.visible_columns||[]).includes(a)?(o[e.cap_id]||(o[e.cap_id]={...e.values||{}}),a==="level"||a==="vip"?p(H,{value:((t=o[e.cap_id])==null?void 0:t[a])??-1,min:-1,max:a==="level"?10:2,step:1,size:"small",style:"width: 90px",onUpdateValue:r=>J(e.cap_id,a,r??-1)}):p(I,{value:!!((i=o[e.cap_id])!=null&&i[a]),size:"small",onUpdateValue:r=>J(e.cap_id,a,r)})):p("span",{class:"aksrt-cap-matrix__empty"},"—")}function J(e,a,s){o[e]||(o[e]={}),o[e][a]=s}function M(){O(o,JSON.parse(JSON.stringify(N.value||{}))),y.info("已恢复默认矩阵")}async function D(){k.value=!0;try{await V.saveCapabilities(JSON.parse(JSON.stringify(o))),N.value=JSON.parse(JSON.stringify(o)),y.success("能力矩阵已保存")}catch(e){y.error((e==null?void 0:e.message)||"保存能力矩阵失败")}finally{k.value=!1}}return(e,a)=>{const s=u("n-button"),t=u("n-space"),i=u("n-alert"),r=u("n-card"),F=u("n-data-table"),R=u("n-spin");return h(),w("div",Z,[l(T,{title:"基本权限 / 能力矩阵",desc:"统一管理用户治理、投稿和评论的角色能力矩阵。"},{actions:n(()=>[l(t,null,{default:n(()=>[l(s,{quaternary:"",onClick:M},{default:n(()=>[...a[0]||(a[0]=[d("恢复默认",-1)])]),_:1})]),_:1})]),_:1}),l(i,{type:"warning","show-icon":!0,style:{margin:"12px 0 16px"}},{default:n(()=>[...a[1]||(a[1]=[d(" 每项能力都通过“所有人、已登录、等级、VIP、已认证”五列治理;管理员(manage_options)始终可通过。 ",-1)])]),_:1}),l(R,{show:g.value,style:{width:"100%","min-height":"240px"}},{default:n(()=>[_.cap_count?(h(),j(r,{key:0,class:"aksrt-section-card"},{default:n(()=>[a[2]||(a[2]=c("div",{class:"aksrt-section-header"},[c("h3",null,"矩阵概览")],-1)),l(t,null,{default:n(()=>[l(S(C),{round:"",type:"info"},{default:n(()=>[d("能力项:"+v(_.cap_count),1)]),_:1}),l(S(C),{round:"",type:"info"},{default:n(()=>[d("分组:"+v(_.group_count),1)]),_:1}),l(S(C),{round:"",type:"info"},{default:n(()=>[d("角色列:"+v(_.column_count),1)]),_:1})]),_:1})]),_:1})):W("",!0),(h(!0),w(X,null,Y(b.value,m=>(h(),j(r,{key:m.key,class:"aksrt-section-card"},{header:n(()=>[c("div",A,[c("div",null,[c("h3",G,v(m.title),1),c("p",K,"共 "+v(m.items.length)+" 项能力",1)])])]),default:n(()=>[l(F,{columns:z(m),data:m.items,bordered:!0,size:"small","single-line":!1,"scroll-x":1200},null,8,["columns","data"])]),_:2},1024))),128)),c("div",Q,[l(s,{type:"primary",loading:k.value,onClick:D},{default:n(()=>[...a[3]||(a[3]=[d("保存能力矩阵",-1)])]),_:1},8,["loading"])])]),_:1},8,["show"])])}}},le=U($,[["__scopeId","data-v-01a5a887"]]);export{le as default};
@@ -0,0 +1 @@
.aksrt-cap-matrix__header[data-v-01a5a887]{display:flex;align-items:center;justify-content:space-between}.aksrt-cap-matrix__title[data-v-01a5a887]{margin:0;font-size:15px;font-weight:600}.aksrt-cap-matrix__desc[data-v-01a5a887]{margin:4px 0 0;font-size:12px;color:var(--aksrt-color-muted)}.aksrt-cap-matrix__cap[data-v-01a5a887]{display:flex;flex-direction:column;gap:4px}.aksrt-cap-matrix__cap code[data-v-01a5a887]{font-size:11px;color:#667085}.aksrt-cap-matrix__empty[data-v-01a5a887]{color:#c0c4cc}.aksrt-form-actions[data-v-01a5a887]{display:flex;justify-content:flex-end;margin-top:16px}
@@ -0,0 +1 @@
import t from"./SchemaPage._RXlmOMl.js";import{a2 as o,W as r}from"./vendor-vue.BxZIRU0_.js";import"./shared-api.DsnKC5vk.js";import"./FaIcon.NZ6TDkNu.js";import"./index.js";import"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";import"./FaIconPicker.DuahAn6_.js";import"./shared-api.DnsQ5cxS.js";import"./level.E3ANSDAX.js";import"./badge.CKTsmH1z.js";const d={__name:"PostPageSettings",setup(p){return(m,e)=>(r(),o(t,{domain:"post_list",section:"page"}))}};export{d as default};
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.aksrt-schema-page[data-v-62325927]{max-width:none;margin:0}.aksrt-schema-page__tool-actions[data-v-62325927]{display:flex;justify-content:flex-end;margin-top:16px}.aksrt-schema-page__field-hint[data-v-62325927]{margin:8px 0 0;font-size:12px;color:var(--aksrt-color-muted)}.captcha-test-overlay[data-v-62325927]{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.captcha-test-panel[data-v-62325927]{background:#fff;border-radius:12px;width:420px;max-width:90%;box-shadow:0 8px 32px #0000002e}.captcha-test-header[data-v-62325927]{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid #e8e8ec;font-size:16px;font-weight:600}.captcha-test-close[data-v-62325927]{background:none;border:none;font-size:24px;cursor:pointer;color:#999;padding:0;line-height:1}.captcha-test-close[data-v-62325927]:hover{color:#333}.captcha-test-body[data-v-62325927]{padding:24px;min-height:180px;display:flex;justify-content:center;align-items:center}
@@ -0,0 +1 @@
import{X as k,a4 as n,a3 as o,a1 as s,_ as c,W as x,f as e}from"./vendor-vue.BxZIRU0_.js";import{P as C}from"./PageHeader.CtT29f8Y.js";import"./index.js";import"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const g={class:"aksrt-page-container"},w={__name:"ThemeAuthorizationPage",setup(v){const d=c();function r(a){d.push(a)}return(a,t)=>{const u=s("n-button"),p=s("n-space"),_=s("n-alert"),i=s("n-card"),l=s("n-list-item"),m=s("n-list");return x(),k("div",g,[n(C,{title:"主题授权",desc:"当前版本按产品决策不实现在线授权/撤销授权,仅保留主题信息与更新能力。"},{actions:o(()=>[n(p,null,{default:o(()=>[n(u,{quaternary:"",onClick:t[0]||(t[0]=f=>r("/tools/import-export"))},{default:o(()=>[...t[2]||(t[2]=[e("兼容&工具",-1)])]),_:1}),n(u,{quaternary:"",onClick:t[1]||(t[1]=f=>r("/tools/update"))},{default:o(()=>[...t[3]||(t[3]=[e("更新中心",-1)])]),_:1})]),_:1})]),_:1}),n(i,{class:"aksrt-section-card"},{default:o(()=>[n(_,{type:"info",title:"按设计省略","show-icon":!0},{default:o(()=>[...t[4]||(t[4]=[e(" 本主题当前不实现 原主题风格的授权码校验、域名绑定、撤销授权、本地免授权等机制。 `AKSRT_Update_Checker` 仅负责匿名版本检测与更新提示,不与授权系统耦合。 ",-1)])]),_:1})]),_:1}),n(i,{class:"aksrt-section-card",title:"当前策略",size:"small"},{default:o(()=>[n(m,{bordered:""},{default:o(()=>[n(l,null,{default:o(()=>[...t[5]||(t[5]=[e("不提供授权码输入框或“立即授权”按钮",-1)])]),_:1}),n(l,null,{default:o(()=>[...t[6]||(t[6]=[e("不提供“已授权 / 未授权 / 本地免授权”三态逻辑",-1)])]),_:1}),n(l,null,{default:o(()=>[...t[7]||(t[7]=[e("更新能力统一收口到“更新中心”与“主题信息”页",-1)])]),_:1}),n(l,null,{default:o(()=>[...t[8]||(t[8]=[e("若未来恢复授权体系,应单独立项,不与现有更新检测器混接",-1)])]),_:1})]),_:1})]),_:1})])}}};export{w as default};
+1
View File
@@ -0,0 +1 @@
.aksrt-theme-info__loading[data-v-4017c910]{display:flex;justify-content:center;padding:60px 0}.aksrt-theme-info__card[data-v-4017c910]{margin-bottom:16px}.aksrt-theme-info__modules[data-v-4017c910]{display:flex;flex-wrap:wrap;gap:8px}.aksrt-theme-info__module-tag[data-v-4017c910]{display:inline-flex;align-items:center;gap:5px}.aksrt-theme-info__links[data-v-4017c910]{display:flex;flex-wrap:wrap;gap:12px}.aksrt-theme-info__link[data-v-4017c910]{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;background:#f5f7fa;color:#333;text-decoration:none;font-size:13px;transition:background .2s}.aksrt-theme-info__link[data-v-4017c910]:hover{background:#e8eaed}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{o as C,X as _,a4 as n,a3 as o,r as d,a1 as s,_ as H,W as l,f as p,Y as r,F as D,R as N,a2 as R,Z as i,c as V}from"./vendor-vue.BxZIRU0_.js";import{a as F}from"./shared-api.DnsQ5cxS.js";import{P as I}from"./PageHeader.CtT29f8Y.js";import{_ as M}from"./index.js";import{u as P}from"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const j={class:"aksrt-page-container"},q={class:"aksrt-health-grid"},E={class:"aksrt-section-header"},L={style:{margin:"0",color:"#4b5565"}},O={__name:"ToolsHealth",setup(S){const m=H(),f=P(),c=d(!0),u=d({}),h=V(()=>Object.entries(u.value||{}).map(([t,e])=>({key:t,...e||{}})));function g(t){m.push(t)}function v(t){return(t==null?void 0:t.data)??t??{}}function y(t){return t==="ok"?"success":t==="warning"?"warning":t==="error"?"error":"info"}async function k(){c.value=!0;try{const t=await F.getHealthCheck();u.value=v(t).checks||{}}catch(t){f.error(t.message||"加载健康检查失败")}finally{c.value=!1}}return C(k),(t,e)=>{const x=s("n-button"),w=s("n-space"),b=s("n-tag"),T=s("n-card"),B=s("n-spin");return l(),_("div",j,[n(I,{title:"健康检查",desc:"集中查看运行环境、数据库表和系统诊断状态。"},{actions:o(()=>[n(w,null,{default:o(()=>[n(x,{quaternary:"",onClick:e[0]||(e[0]=a=>g("/tools/import-export"))},{default:o(()=>[...e[1]||(e[1]=[p("导入导出",-1)])]),_:1})]),_:1})]),_:1}),n(B,{show:c.value,style:{width:"100%","min-height":"200px"}},{default:o(()=>[r("div",q,[(l(!0),_(D,null,N(h.value,a=>(l(),R(T,{key:a.key,class:"aksrt-section-card"},{default:o(()=>[r("div",E,[r("h3",null,i(a.label),1),n(b,{round:"",type:y(a.status)},{default:o(()=>[p(i(a.status),1)]),_:2},1032,["type"])]),r("p",L,i(a.value),1)]),_:2},1024))),128))])]),_:1},8,["show"])])}}},A=M(O,[["__scopeId","data-v-b6c15d59"]]);export{A as default};
+1
View File
@@ -0,0 +1 @@
.aksrt-health-grid[data-v-b6c15d59]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
@@ -0,0 +1,3 @@
import{X as $,a4 as a,a3 as l,a1 as c,_ as A,W as B,f as r,Y as n,Z as P,r as u}from"./vendor-vue.BxZIRU0_.js";import{a as f}from"./shared-api.DnsQ5cxS.js";import{P as V}from"./PageHeader.CtT29f8Y.js";import{_ as q}from"./index.js";import{u as U}from"./vendor-naive.CKYCZmXD.js";import"./vendor-misc.bELTaXdf.js";const z={class:"aksrt-page-container"},H={class:"aksrt-tools-output"},M={__name:"ToolsImportExport",setup(W){const b=A(),s=U(),m=u(!1),i=u(!1),y=u(!1),g=u(!1),v=u(""),d=u(""),k=u("global"),N=[{label:"全局&功能",value:"global"},{label:"页面&显示",value:"page_display"},{label:"文章&列表",value:"post_list"},{label:"用户&互动",value:"users"},{label:"支付&付费",value:"payment"}];function w(e){b.push(e)}function C(e){return(e==null?void 0:e.data)??e??{}}function S(){try{return JSON.parse(v.value||"{}")}catch{throw new Error("导入 JSON 格式无效")}}async function O(){m.value=!0;try{const e=C(await f.exportSettings());v.value=JSON.stringify(e,null,2),d.value=`导出完成
版本: ${e.version||"unknown"}
时间: ${e.exported||"unknown"}`,s.success("导出成功")}catch(e){s.error(e.message||"导出失败")}finally{m.value=!1}}async function J(){i.value=!0;try{const e=S(),t=await f.importSettings({...e,dry_run:!0});d.value=JSON.stringify(t,null,2),s.success("Dry Run 校验完成")}catch(e){s.error(e.message||"校验失败")}finally{i.value=!1}}async function R(){i.value=!0;try{const e=S(),t=await f.importSettings(e);d.value=JSON.stringify(t,null,2),s.success("导入完成")}catch(e){s.error(e.message||"导入失败")}finally{i.value=!1}}async function D(){y.value=!0;try{const e=await f.resetDomain(k.value);d.value=JSON.stringify(e,null,2),s.success("域设置已重置")}catch(e){s.error(e.message||"重置失败")}finally{y.value=!1}}async function E(){if(window.confirm("确认重置全部 schema 托管设置吗?系统会先自动创建一份“重置全部前快照”。")){g.value=!0;try{const e=await f.resetAllSettings();d.value=JSON.stringify(e,null,2),s.success("全部设置已重置")}catch(e){s.error(e.message||"重置全部失败")}finally{g.value=!1}}}return(e,t)=>{const o=c("n-button"),x=c("n-space"),T=c("n-input"),_=c("n-card"),I=c("n-select");return B(),$("div",z,[a(V,{title:"导入导出",desc:"导出当前设置快照、执行 dry-run 导入校验,并支持按域重置到 schema 默认值。"},{actions:l(()=>[a(x,null,{default:l(()=>[a(o,{quaternary:"",onClick:t[0]||(t[0]=p=>w("/tools/backup"))},{default:l(()=>[...t[4]||(t[4]=[r("数据备份",-1)])]),_:1}),a(o,{quaternary:"",onClick:t[1]||(t[1]=p=>w("/tools/health"))},{default:l(()=>[...t[5]||(t[5]=[r("健康检查",-1)])]),_:1})]),_:1})]),_:1}),a(_,{class:"aksrt-section-card"},{default:l(()=>[t[9]||(t[9]=n("div",{class:"aksrt-section-header"},[n("h3",null,"导出与导入")],-1)),a(x,{style:{"margin-bottom":"16px"}},{default:l(()=>[a(o,{loading:m.value,onClick:O},{default:l(()=>[...t[6]||(t[6]=[r("导出当前配置",-1)])]),_:1},8,["loading"]),a(o,{loading:i.value,onClick:J},{default:l(()=>[...t[7]||(t[7]=[r("Dry Run 校验",-1)])]),_:1},8,["loading"]),a(o,{type:"primary",loading:i.value,onClick:R},{default:l(()=>[...t[8]||(t[8]=[r("执行导入",-1)])]),_:1},8,["loading"])]),_:1}),a(T,{value:v.value,"onUpdate:value":t[2]||(t[2]=p=>v.value=p),type:"textarea",autosize:{minRows:12,maxRows:20},placeholder:"导出的 JSON 会出现在这里,也可以直接粘贴导入。"},null,8,["value"]),t[10]||(t[10]=n("p",{class:"aksrt-tools-hint"}," 正式导入前会自动创建一份“导入前自动快照”,与“数据备份”页的快照体系共用,便于回滚。 ",-1))]),_:1}),a(_,{class:"aksrt-section-card"},{default:l(()=>[t[13]||(t[13]=n("div",{class:"aksrt-section-header"},[n("h3",null,"按域重置")],-1)),a(x,{align:"center",wrap:""},{default:l(()=>[a(I,{value:k.value,"onUpdate:value":t[3]||(t[3]=p=>k.value=p),options:N,style:{width:"220px"}},null,8,["value"]),a(o,{loading:y.value,onClick:D},{default:l(()=>[...t[11]||(t[11]=[r("重置所选域",-1)])]),_:1},8,["loading"]),a(o,{type:"error",tertiary:"",loading:g.value,onClick:E},{default:l(()=>[...t[12]||(t[12]=[r("重置全部",-1)])]),_:1},8,["loading"])]),_:1}),t[14]||(t[14]=n("p",{class:"aksrt-tools-hint"},"仅支持重置 schema 托管的业务域。健康检查和迁移状态属于运维面板,不参与按域回滚。",-1))]),_:1}),a(_,{class:"aksrt-section-card"},{default:l(()=>[t[15]||(t[15]=n("div",{class:"aksrt-section-header"},[n("h3",null,"最近结果")],-1)),n("pre",H,P(d.value||"尚未执行操作。"),1)]),_:1})])}}},G=q(M,[["__scopeId","data-v-c6830358"]]);export{G as default};
+1
View File
@@ -0,0 +1 @@
.aksrt-tools-output[data-v-c6830358]{margin:0;padding:14px;border-radius:12px;background:#101828;color:#d0d7e2;font-size:12px;line-height:1.7;white-space:pre-wrap;word-break:break-word}.aksrt-tools-hint[data-v-c6830358]{margin:12px 0 0;color:#667085;font-size:12px;line-height:1.7}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.aksrt-update__changelog[data-v-978699d0]{margin-top:16px}.aksrt-update__changelog pre[data-v-978699d0]{margin:8px 0 0;padding:12px 14px;border-radius:12px;background:#101828;color:#d0d7e2;font-size:12px;line-height:1.7;white-space:pre-wrap;word-break:break-word}.aksrt-update__grid[data-v-978699d0]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.aksrt-update__guide[data-v-978699d0]{display:flex;flex-direction:column;gap:4px;padding:14px;border:1px solid var(--aksrt-color-border);border-radius:12px;text-decoration:none;color:inherit;background:#fafafa}.aksrt-update__guide[data-v-978699d0]:hover{border-color:var(--aksrt-color-primary);background:#f5faff}.aksrt-update__guide span[data-v-978699d0]{font-size:12px;color:#667085}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.medal-cat-block[data-v-fe872f5e]{margin-bottom:16px}.medal-item-row[data-v-fe872f5e]{padding:12px;border:1px solid var(--n-border-color, #efeff5);border-radius:8px;margin-bottom:8px}
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.integral-field__label[data-v-d90bca95]{font-size:12px;margin-bottom:4px;opacity:.8}
+1
View File
@@ -0,0 +1 @@
.aksrt-status-card[data-v-2e5fcc8a] .n-card__content{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.aksrt-section-card[data-v-2e5fcc8a],.aksrt-provider-tabs[data-v-2e5fcc8a]{margin-top:16px}.aksrt-form-actions[data-v-2e5fcc8a]{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.aksrt-wechat__status[data-v-5a53c055]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.aksrt-wechat__status-card[data-v-5a53c055]{display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border-radius:8px;border:1px solid #e8e8e8}.aksrt-wechat__status-icon[data-v-5a53c055]{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px}.aksrt-wechat__status-icon--ok[data-v-5a53c055]{background:#d4edda;color:#155724}.aksrt-wechat__status-icon--warn[data-v-5a53c055]{background:#fff3cd;color:#856404}.aksrt-wechat__status-icon--info[data-v-5a53c055]{background:#d1ecf1;color:#0c5460}.aksrt-wechat__status-value[data-v-5a53c055]{font-size:18px;font-weight:600;color:var(--aksrt-color-text)}.aksrt-wechat__status-label[data-v-5a53c055]{font-size:12px;color:#888}.aksrt-wechat__form-card[data-v-5a53c055]{background:#fff;border:1px solid #e8e8e8;border-radius:8px;padding:24px;margin-bottom:16px}.aksrt-wechat__form-card h3[data-v-5a53c055]{margin:0 0 16px;font-size:16px;font-weight:600}.aksrt-form-hint[data-v-5a53c055]{font-size:12px;color:#888;margin-top:4px}
+1
View File
@@ -0,0 +1 @@
const _=[{label:"注册天数",value:"registration_time"},{label:"累计签到天数",value:"checkin_all_day"},{label:"发布文章数",value:"new_post"},{label:"评论数",value:"comment"},{label:"粉丝数",value:"followed"},{label:"文章获赞",value:"like"},{label:"评论获赞",value:"comment_like"},{label:"内容阅读量",value:"views"},{label:"现金创作分成累计(元)",value:"creator_income"},{label:"推广佣金累计(元)",value:"affiliate_commission"},{label:"仅手动授予",value:"manually_add"}],s=(()=>{var l;const a=((l=window.aksrtAdminData)==null?void 0:l.themeUri)||"";return a?String(a).replace(/\/$/,"")+"/assets/img/medal":"/assets/img/medal"})(),e=a=>`${s}/medal-${a}.svg`,t=()=>[{cat_name:"成长",items:[{slug:"rookie",name:"初出茅庐",desc:"注册时间超过30天",icon:e(1),get_type:"registration_time",get_val:30},{slug:"checkin-30",name:"签到达人",desc:"累计签到30天",icon:e(2),get_type:"checkin_all_day",get_val:30},{slug:"writer",name:"创作先锋",desc:"发布10篇文章",icon:e(5),get_type:"new_post",get_val:10},{slug:"popular",name:"人气之星",desc:"累计获得100次点赞",icon:e(9),get_type:"like",get_val:100}]},{cat_name:"限定",items:[{slug:"annual-star",name:"年度人气达人",desc:"活动限定徽章",icon:e(12),get_type:"manually_add",get_val:0},{slug:"vip-member",name:"尊贵会员",desc:"给予 VIP 用户的特殊徽章",icon:e(15),get_type:"manually_add",get_val:0}]}],d={key:"users.badge",title:"用户徽章",icon:"fa fas fa-trophy",description:"配置勋章分类、自动授予条件与前台展示。路由仍为 /users/badge;存储键为 user_medal_*。",defaults:{user_medal_s:!1,user_medal_public_display:!0,user_medal_limit:3,user_medal_args:t()},groups:[{key:"display",title:"徽章展示",icon:"fa fas fa-trophy",fields:[{key:"user_medal_s",label:"启用徽章/勋章系统",type:"switch",default:!1},{key:"user_medal_public_display",label:"公开页显示徽章",type:"switch",default:!0,dependsOn:{key:"user_medal_s",value:!0}},{key:"user_medal_limit",label:"最多显示数量",type:"number",default:3,min:1,max:8,dependsOn:{key:"user_medal_s",value:!0}}]},{key:"catalog",title:"徽章明细",icon:"fa fas fa-trophy",fields:[{key:"user_medal_args",label:"分类与条目",type:"json",default:t(),help:"由自定义页编辑:分类 → 条目(slug/名称/描述/图标/get_type/get_val)。仅手动授予用 manually_add。",dependsOn:{key:"user_medal_s",value:!0}}]}]};export{_ as M,d as b,t as d};
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long
+16
View File
@@ -0,0 +1,16 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>AKSRT 主题设置</title>
<script type="module" crossorigin src="./index.js"></script>
<link rel="modulepreload" crossorigin href="./vendor-vue.BxZIRU0_.js">
<link rel="modulepreload" crossorigin href="./vendor-misc.bELTaXdf.js">
<link rel="modulepreload" crossorigin href="./vendor-naive.CKYCZmXD.js">
<link rel="stylesheet" crossorigin href="./index.css">
</head>
<body>
<div id="aksrt-admin-app"></div>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
const r=[{key:"sign_up",label:"首次注册",default:20,group:"用户"},{key:"sign_in",label:"每日登录",default:5,group:"用户"},{key:"followed",label:"被关注",default:5,group:"用户"},{key:"post_new",label:"发布文章",default:5,group:"文章"},{key:"post_like",label:"文章获赞",default:1,group:"文章"},{key:"post_favorite",label:"文章被收藏",default:2,group:"文章"},{key:"comment_new",label:"发表评论",default:2,group:"文章"},{key:"comment_like",label:"评论获赞",default:1,group:"文章"}];function a(t=10){const l={};for(let e=1;e<=t;e++)l["upgrade_integral_"+e]=e===1?0:(e-1)*500*e,l["name_"+e]="LV"+e,l["icon_img_"+e]="";return l}function u(){const t={day_max:100};for(const l of r)t[l.key]=l.default;return t}const s={key:"users.level",title:"用户等级",icon:"fa fas fa-level-up-alt",description:"等级与经验值:最高等级、升级阈值、经验获取矩阵(对齐 legacy user_level / user_integral)。",defaults:{user_level_s:!0,user_level_public_display:!0,user_level_max:10,user_level_opt:a(10),user_integral_opt:u(),user_level_notify:!0},groups:[{key:"display",title:"等级显示",fields:[{key:"user_level_s",label:"启用用户等级",type:"switch",default:!0},{key:"user_level_public_display",label:"公开页显示等级",type:"switch",default:!0,dependsOn:{key:"user_level_s",value:!0}},{key:"user_level_max",label:"最高等级",type:"number",default:10,min:3,max:30,dependsOn:{key:"user_level_s",value:!0}},{key:"user_level_notify",label:"升级通知",type:"switch",default:!0,dependsOn:{key:"user_level_s",value:!0}}]},{key:"level_opt",title:"等级升级阈值",fields:[{key:"user_level_opt",label:"升级经验配置",type:"json",sanitizeType:"array",default:a(10),help:"upgrade_integral_N 为升到 N 级所需累计经验"}]},{key:"integral",title:"经验值得分",fields:[{key:"user_integral_opt",label:"经验值获取",type:"json",sanitizeType:"array",default:u(),help:"day_max + 各行为得分;对应功能未开则将分值设 0"}]}]};export{r as I,a,u as d,s as l};
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long