feat(admin): strip SPA ops menus; redirect old hashes to native WP (Phase 4)

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.
This commit is contained in:
kate522 committed 2026-07-15 02:10:05 +08:00
1 parent bf061f43ee
commit a3dde3874a
85 files changed
+15987 -249

No files matched your search

@@ -0,0 +1 @@
import{o as M,X as W,a4 as s,a3 as a,r as S,a1 as r,e as D,_ as $,W as j,f as l,Y as n,Z as P}from"./vendor-vue.Bykizn0M.js";import{a as v}from"./shared-api.D5_fnN32.js";import{P as E}from"./PageHeader.Di3JTPjc.js";import{u as F}from"./vendor-naive.BuHWlEgf.js";import"./index.js";import"./vendor-misc.1adHN6i_.js";const H={class:"aksrt-page-container"},X={class:"aksrt-form-actions"},L={__name:"UsersFeatures",setup(Y){const A=$(),b=F(),k=S(!0),g=S(!1),y=S(!1),m=D({tabs:[],sidebar:!0}),t=D({dynamicTabs:["posts","comments","favorites"],user_avatar_upload:!0,user_cover_upload:!0,user_social_links:!0});function T(o){A.push(o)}function w(o){return(o==null?void 0:o.data)??o??{}}function U(o){return(Array.isArray(o)?o:String(o||"").split(/[\s,]+/).filter(Boolean)).map(i=>String(i).trim()).filter(i=>["posts","comments","favorites","credits"].includes(i))}async function B(){k.value=!0;try{const[o,e,i]=await Promise.all([v.getSchemaPage("users","features"),v.getSchemaPage("page_display","user-home"),v.getPermissionsAttachmentSettings()]),d=w(o),u=w(e),f=w(i);t.dynamicTabs=U(d.user_center_tabs||"profile,posts,comments,favorites"),t.user_avatar_upload=d.user_avatar_upload!==!1,t.user_cover_upload=d.user_cover_upload!==!1,t.user_social_links=d.user_social_links!==!1,m.tabs=U(u.user_home_tabs||"posts,comments,favorites"),m.sidebar=u.user_home_sidebar!==!1,y.value=!!f.allow_background_upload}catch(o){b.error(o.message||"加载用户功能配置失败")}finally{k.value=!1}}async function R(){g.value=!0;try{await v.saveSchemaPage("users","features",{user_center_tabs:["profile",...t.dynamicTabs].join(","),user_avatar_upload:t.user_avatar_upload,user_cover_upload:t.user_cover_upload,user_social_links:t.user_social_links}),b.success("用户功能配置已保存")}catch(o){b.error(o.message||"保存失败")}finally{g.value=!1}}return M(B),(o,e)=>{const i=r("n-button"),d=r("n-space"),u=r("n-tag"),f=r("n-card"),p=r("n-form-item"),c=r("n-checkbox"),N=r("n-checkbox-group"),C=r("n-form"),x=r("n-switch"),V=r("n-alert"),q=r("n-spin");return j(),W("div",H,[s(E,{title:"用户功能",desc:"统一配置用户中心和公开主页的功能模块,让前台页面和后台字段使用同一份契约。"},{actions:a(()=>[s(d,null,{default:a(()=>[s(i,{quaternary:"",onClick:e[0]||(e[0]=_=>T("/page-display/user-home"))},{default:a(()=>[...e[6]||(e[6]=[l("公开主页",-1)])]),_:1}),s(i,{quaternary:"",onClick:e[1]||(e[1]=_=>T("/permissions/attachment"))},{default:a(()=>[...e[7]||(e[7]=[l("附件权限",-1)])]),_:1})]),_:1})]),_:1}),s(q,{show:k.value,style:{width:"100%","min-height":"200px"}},{default:a(()=>[s(f,{class:"aksrt-section-card"},{default:a(()=>[e[9]||(e[9]=n("div",{class:"aksrt-section-header"},[n("h3",null,"当前联动摘要")],-1)),s(d,null,{default:a(()=>[s(u,{type:"info",round:""},{default:a(()=>[...e[8]||(e[8]=[l("固定入口:个人信息 / 账号设置 / 消息通知",-1)])]),_:1}),s(u,{round:"",type:t.user_cover_upload?"success":"default"},{default:a(()=>[l(" 背景图编辑位:"+P(t.user_cover_upload?"已展示":"已隐藏"),1)]),_:1},8,["type"]),s(u,{round:"",type:y.value?"success":"warning"},{default:a(()=>[l(" 背景图上传权限:"+P(y.value?"已开放":"未开放"),1)]),_:1},8,["type"]),s(u,{round:"",type:m.sidebar?"success":"default"},{default:a(()=>[l(" 公开主页侧栏:"+P(m.sidebar?"开启":"关闭"),1)]),_:1},8,["type"])]),_:1})]),_:1}),s(f,{class:"aksrt-section-card"},{default:a(()=>[e[18]||(e[18]=n("div",{class:"aksrt-section-header"},[n("h3",null,"用户中心面板")],-1)),s(C,{"label-placement":"left","label-width":"170",class:"aksrt-form"},{default:a(()=>[s(p,{label:"固定面板"},{default:a(()=>[s(d,null,{default:a(()=>[s(u,{round:""},{default:a(()=>[...e[10]||(e[10]=[l("个人信息",-1)])]),_:1}),s(u,{round:""},{default:a(()=>[...e[11]||(e[11]=[l("账号设置",-1)])]),_:1}),s(u,{round:""},{default:a(()=>[...e[12]||(e[12]=[l("消息通知",-1)])]),_:1})]),_:1})]),_:1}),s(p,{label:"可切换业务面板"},{feedback:a(()=>[...e[17]||(e[17]=[n("span",{class:"aksrt-hint-text"},"“个人信息”始终保留在首位;积分面板仅在积分系统启用时显示。",-1)])]),default:a(()=>[s(N,{value:t.dynamicTabs,"onUpdate:value":e[2]||(e[2]=_=>t.dynamicTabs=_)},{default:a(()=>[s(d,{vertical:""},{default:a(()=>[s(c,{value:"posts"},{default:a(()=>[...e[13]||(e[13]=[l("我的文章",-1)])]),_:1}),s(c,{value:"comments"},{default:a(()=>[...e[14]||(e[14]=[l("我的评论",-1)])]),_:1}),s(c,{value:"favorites"},{default:a(()=>[...e[15]||(e[15]=[l("我的收藏",-1)])]),_:1}),s(c,{value:"credits"},{default:a(()=>[...e[16]||(e[16]=[l("账户余额 / 签到",-1)])]),_:1})]),_:1})]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),s(f,{class:"aksrt-section-card"},{default:a(()=>[e[22]||(e[22]=n("div",{class:"aksrt-section-header"},[n("h3",null,"公开资料编辑位")],-1)),s(C,{model:t,"label-placement":"left","label-width":"170",class:"aksrt-form"},{default:a(()=>[s(p,{label:"头像编辑入口"},{feedback:a(()=>Line truncated