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.
2 lines
18 KiB
JavaScript
2 lines
18 KiB
JavaScript
import{d as E}from"./vendor-draggable.CceJcfGJ.js";import{a as V}from"./shared-api.D5_fnN32.js";import{P as pe}from"./PageHeader.Di3JTPjc.js";import{_ as fe}from"./index.js";import{u as _e,a as ce,B as b,b as I}from"./vendor-naive.BuHWlEgf.js";import{o as me,X as c,a4 as o,a3 as s,r as C,a1 as _,e as L,W as u,N as f,f as i,Y as n,Z as w,a2 as y,L as j,a5 as g,F as $,R as be,c as ye}from"./vendor-vue.Bykizn0M.js";import"./vendor-misc.1adHN6i_.js";const ge={class:"aksrt-page-container content-page"},ve={class:"aksrt-card-header-row"},ke={class:"aksrt-card-header-row__left"},we={class:"aksrt-card-header-row__title"},he={class:"section-desc section-desc--tight"},xe={class:"tabbar-sort__item"},Te={class:"tabbar-sort__main"},Ue={class:"tabbar-sort__icon"},Ce={class:"tabbar-sort__meta"},$e={class:"tabbar-sort__title-row"},ze={class:"tabbar-sort__desc"},Ie={class:"tabbar-sort__actions"},Ae={class:"aksrt-form-actions"},Fe={class:"icon-preview-row"},De={key:1,class:"muted-text"},Ve={key:5,class:"add-items-editor"},Ne={class:"add-items-editor__head"},Se={class:"add-items-editor__presets"},Pe={key:0,class:"add-items-editor__list"},Be={class:"add-items-editor__row"},Oe={key:1,class:"muted-text"},Me={class:"aksrt-modal-footer"},qe={__name:"FooterTabbarSettings",setup(Ee){const m=_e(),W=ce(),A=C(!0),z=C(!1),T=C(!1),h=C(-1),F=C([]),d=L({enabled:!0,scroll_hide:!1,scroll_down_hide:!0,footer_tabbar_single:"default",items:[]}),a=L({id:"",type:"link",icon:"",text:"",link:"",badge:"",badge_mode:"static",category_id:null,search_default_type:"post",new_window:!1,add_items:[],enabled:!0,sort_order:0,ontop:!1}),H=[{label:"首页",value:"home"},{label:"分类页",value:"category"},{label:"链接",value:"link"},{label:"中央发布按钮",value:"add"},{label:"用户中心",value:"user"},{label:"登录/我的",value:"auth"},{label:"搜索",value:"search"},{label:"消息中心",value:"msg"},{label:"开通会员",value:"pay_vip"},{label:"购物车",value:"shop_cart"}],R={home:"首页",category:"分类页",link:"链接",add:"中央发布按钮",user:"用户中心",auth:"登录/我的",search:"搜索",msg:"消息中心",pay_vip:"开通会员",shop_cart:"购物车"},N={home:{icon:"fas fa-home",text:"首页"},category:{icon:"fas fa-th-large",text:"分类"},link:{icon:"fas fa-link",text:"链接"},add:{icon:"fas fa-plus",text:"发布"},user:{icon:"fas fa-user",text:"用户中心"},auth:{icon:"fas fa-user",text:"我的"},search:{icon:"fas fa-search",text:"搜索"},msg:{icon:"fas fa-bell",text:"消息"},pay_vip:{icon:"fas fa-crown",text:"会员"},shop_cart:{icon:"fas fa-shopping-cart",text:"购物车"}},X=ye(()=>d.items.filter(t=>t.enabled));function Y(t){var e;if(t.type==="home")return t.ontop?"首页按钮,滚动后切换返回顶部":"首页按钮";if(t.type==="category"){if(t.category_id){const r=F.value.find(p=>p.value===t.category_id);return r?`跳转到分类: ${r.label}`:`跳转到分类 ID ${t.category_id}`}return"跳转到分类聚合页"}return t.type==="add"?(e=t.add_items)!=null&&e.length?`展开 ${t.add_items.length} 个发布入口`:"点击后打开默认发布入口":t.type==="search"?`打开顶部搜索面板,默认搜索${t.search_default_type==="category"?"分类":t.search_default_type==="tag"?"标签":"文章"}`:t.type==="user"?"自动跳转到用户中心或登录页":t.type==="auth"?"登录用户显示我的,游客显示登录":t.type==="msg"?"跳转到消息中心页面":t.type==="pay_vip"?t.link||"跳转到会员开通页":t.type==="shop_cart"?t.link||"跳转到购物车页面":t.link||"自定义链接按钮"}const Z=[{label:"写文章",icon:"fas fa-pen-fancy",url:"/post-new"},{label:"投稿页",icon:"fas fa-file-alt",url:"/submit"},{label:"发布资源",icon:"fas fa-cloud-upload-alt",url:"/resource-new"},{label:"创作中心",icon:"fas fa-palette",url:"/creator"}];function G(t){a.add_items.some(e=>e.url===t.url)||a.add_items.push({id:`add_${Date.now()}_${a.add_items.length}`,label:t.label,icon:t.icon,url:t.url})}function J(){a.add_items.push({id:`add_${Date.now()}_${a.add_items.length}`,label:"",icon:"fas fa-pen",url:""})}function K(t){a.add_items.splice(t,1)}function S(){d.items=d.items.map((t,e)=>({...t,sort_order:e}))}function Q(t,e=!1){const r=N[t]||N.link;(e||!a.icon)&&(a.icon=r.icon),(e||!a.text)&&(a.text=r.text),["link","msg","pay_vip","shop_cart"].includes(t)||(a.link=""),t!=="category"&&(a.category_id=null),t!=="search"&&(a.search_default_type="post"),t!=="add"&&(a.add_items=[]),t!=="home"&&(a.ontop=!1)}function ee(t){Q(t,!1)}function ae(){if(d.items.length>=5){m.warning("底部Tab最多只能配置 5 个按钮");return}Object.assign(a,{id:`tab_${Date.now()}`,type:"link",icon:"fas fa-link",text:"链接",link:"",badge:"",badge_mode:"static",category_id:null,search_default_type:"post",new_window:!1,add_items:[],enabled:!0,sort_order:d.items.length,ontop:!1}),h.value=-1,T.value=!0}function te(t){const e=d.items[t];Object.assign(a,{id:e.id,type:e.type||"link",icon:e.icon||"",text:e.text||"",link:e.link||"",badge:e.badge||"",badge_mode:e.badge_mode||"static",category_id:e.category_id||null,search_default_type:e.search_default_type||"post",new_window:!!e.new_window,add_items:Array.isArray(e.add_items)?e.add_items.map(r=>({...r})):[],enabled:e.enabled!==!1,sort_order:e.sort_order??t,ontop:e.ontop||!1}),h.value=t,T.value=!0}function le(){if(h.value<0&&d.items.length>=5){m.warning("底部Tab最多只能配置 5 个按钮");return}if(!a.icon){m.warning("请填写图标");return}if(!a.text){m.warning("请填写显示文字");return}const t={id:a.id||`tab_${Date.now()}`,type:a.type,icon:a.icon,text:a.text,link:["link","msg","pay_vip","shop_cart"].includes(a.type)?a.link:"",badge:(a.badge||"").trim(),badge_mode:a.badge_mode,category_id:a.type==="category"&&a.category_id||0,search_default_type:a.type==="search"?a.search_default_type:"post",new_window:a.type==="link"?!!a.new_window:!1,add_items:a.type==="add"?a.add_items.filter(e=>e.label&&e.url).map(e=>({id:e.id||`add_${Date.now()}`,label:e.label,icon:e.icon||"fas fa-pen",url:e.url})):[],enabled:a.enabled,sort_order:a.sort_order,ontop:a.type==="home"?a.ontop:!1};h.value>=0?d.items[h.value]=t:d.items.push(t),T.value=!1,m.success(h.value>=0?"已更新":"已添加")}async function se(){try{const t=await V.getCategories();t.code==="success"&&Array.isArray(t.data)&&(F.value=t.data.map(e=>({label:e.name,value:Number(e.id)})))}catch(t){console.error("[FooterTabbar] load categories failed:",t)}}function oe(t){W.warning({title:"确认删除",content:`确定删除「${d.items[t].text}」按钮吗?`,positiveText:"删除",negativeText:"取消",onPositiveClick:()=>{d.items.splice(t,1),S(),m.success("已删除")}})}async function ne(){A.value=!0;try{const[t]=await Promise.all([V.getFooterTabbarSettings(),se()]);if(t.code==="success"&&t.data){const e=t.data;d.enabled=e.enabled!==!1,d.scroll_hide=e.scroll_hide||!1,d.scroll_down_hide=e.scroll_down_hide!==!1,d.footer_tabbar_single=e.footer_tabbar_single||"default",d.items=(e.items||[]).map((r,p)=>({...r,badge:r.badge||"",badge_mode:r.badge_mode||"static",category_id:r.category_id||0,search_default_type:r.search_default_type||"post",new_window:!!r.new_window,add_items:Array.isArray(r.add_items)?r.add_items:[],sort_order:r.sort_order??p}))}}catch(t){console.error("[FooterTabbar] load failed:",t),m.error("加载配置失败")}finally{A.value=!1}}async function P(){if(d.items.length>5){m.warning("底部Tab最多只能配置 5 个按钮");return}z.value=!0;try{const t={enabled:d.enabled,scroll_hide:d.scroll_hide,scroll_down_hide:d.scroll_down_hide,footer_tabbar_single:d.footer_tabbar_single,items:d.items.map((r,p)=>({...r,sort_order:p}))},e=await V.saveFooterTabbarSettings(t);e.code==="success"?m.success(e.message||"保存成功"):m.error(e.message||"保存失败")}catch(t){console.error("[FooterTabbar] save failed:",t),m.error("保存失败")}finally{z.value=!1}}return me(ne),(t,e)=>{const r=_("n-switch"),p=_("n-form-item"),D=_("n-select"),B=_("n-form"),O=_("n-card"),de=_("n-empty"),re=_("n-spin"),x=_("n-input"),U=_("n-radio"),M=_("n-space"),q=_("n-radio-group"),ie=_("n-alert"),ue=_("n-modal");return u(),c("div",ge,[o(pe,{title:"底部Tab配置",desc:"自定义移动端底部导航栏的按钮,支持排序、图标配置和返回顶部功能。"},{actions:s(()=>[o(f(b),{type:"primary",loading:z.value,onClick:P},{default:s(()=>[...e[18]||(e[18]=[i("保存",-1)])]),_:1},8,["loading"])]),_:1}),o(re,{show:A.value,style:{width:"100%","min-height":"200px"}},{default:s(()=>[o(O,{class:"aksrt-section-card"},{header:s(()=>[...e[19]||(e[19]=[n("div",{class:"aksrt-card-header-row"},[n("div",{class:"aksrt-card-header-row__left"},[n("span",{class:"header-icon"},[n("i",{class:"fas fa-cog"})]),n("strong",{class:"aksrt-card-header-row__title"},"基础设置")])],-1)])]),default:s(()=>[o(B,{model:d,"label-placement":"left","label-width":"140",class:"aksrt-form"},{default:s(()=>[o(p,{label:"启用底部Tab"},{default:s(()=>[o(r,{value:d.enabled,"onUpdate:value":e[0]||(e[0]=l=>d.enabled=l)},null,8,["value"]),e[20]||(e[20]=n("span",{class:"aksrt-hint-text",style:{"margin-left":"12px"}},"移动端底部导航栏总开关",-1))]),_:1}),o(p,{label:"向下滚动隐藏"},{default:s(()=>[o(r,{value:d.scroll_down_hide,"onUpdate:value":e[1]||(e[1]=l=>d.scroll_down_hide=l)},null,8,["value"]),e[21]||(e[21]=n("span",{class:"aksrt-hint-text",style:{"margin-left":"12px"}},"页面向下滚动时隐藏,向上滚动时显示",-1))]),_:1}),o(p,{label:"文章页专属Tab"},{default:s(()=>[o(D,{value:d.footer_tabbar_single,"onUpdate:value":e[2]||(e[2]=l=>d.footer_tabbar_single=l),options:[{label:"默认按钮",value:"default"},{label:"文章扩展按钮(评论/收藏/分享)",value:"extend"}],style:{width:"240px"}},null,8,["value"]),e[22]||(e[22]=n("span",{class:"aksrt-hint-text",style:{"margin-left":"12px"}},"文章详情页底部显示的Tab按钮类型",-1))]),_:1})]),_:1},8,["model"])]),_:1}),o(O,{class:"aksrt-section-card"},{header:s(()=>[n("div",ve,[n("div",ke,[e[23]||(e[23]=n("span",{class:"header-icon"},[n("i",{class:"fas fa-list-ul"})],-1)),n("strong",we,"Tab按钮配置 ("+w(d.items.length)+")",1)]),o(f(b),{type:"primary",size:"small",onClick:ae},{icon:s(()=>[...e[24]||(e[24]=[n("i",{class:"fas fa-plus"},null,-1)])]),default:s(()=>[e[25]||(e[25]=i(" 添加按钮 ",-1))]),_:1})])]),default:s(()=>[e[32]||(e[32]=n("p",{class:"section-desc"},"配置移动端底部导航栏显示的按钮,支持拖拽排序。建议按钮数量不超过5个。",-1)),n("div",he,"当前已启用 "+w(X.value.length)+" 个按钮,最多允许 5 个。",1),d.items.length?(u(),y(f(E),{key:0,modelValue:d.items,"onUpdate:modelValue":e[3]||(e[3]=l=>d.items=l),"item-key":"id",handle:".tabbar-sort__handle","ghost-class":"tabbar-sort__ghost",animation:"180",class:"tabbar-sort",onEnd:S},{item:s(({element:l,index:v})=>[n("div",xe,[n("div",Te,[e[27]||(e[27]=n("button",{type:"button",class:"tabbar-sort__handle","aria-label":"拖拽排序"},[n("i",{class:"fas fa-grip-vertical"})],-1)),n("span",Ue,[l.icon?(u(),c("i",{key:0,class:j(l.icon)},null,2)):g("",!0)]),n("div",Ce,[n("div",$e,[n("strong",null,w(l.text||"按钮"),1),o(f(I),{size:"small",bordered:!1},{default:s(()=>[i(w(R[l.type]||l.type),1)]),_:2},1024),l.badge?(u(),y(f(I),{key:0,size:"small",type:"error",bordered:!1},{default:s(()=>[i("徽标 "+w(l.badge),1)]),_:2},1024)):g("",!0),l.type==="home"&&l.ontop?(u(),y(f(I),{key:1,size:"small",type:"success",bordered:!1},{default:s(()=>[...e[26]||(e[26]=[i("返回顶部",-1)])]),_:1})):g("",!0),o(f(I),{size:"small",type:l.enabled?"success":"default",bordered:!1},{default:s(()=>[i(w(l.enabled?"启用":"禁用"),1)]),_:2},1032,["type"])]),n("div",ze,w(Y(l)),1)])]),n("div",Ie,[o(f(b),{size:"tiny",quaternary:"",type:"primary",onClick:k=>te(v)},{icon:s(()=>[...e[28]||(e[28]=[n("i",{class:"fas fa-edit",style:{"font-size":"12px"}},null,-1)])]),default:s(()=>[e[29]||(e[29]=i(" 编辑 ",-1))]),_:1},8,["onClick"]),o(f(b),{size:"tiny",quaternary:"",type:"error",onClick:k=>oe(v)},{icon:s(()=>[...e[30]||(e[30]=[n("i",{class:"fas fa-trash-alt",style:{"font-size":"12px"}},null,-1)])]),default:s(()=>[e[31]||(e[31]=i(" 删除 ",-1))]),_:1},8,["onClick"])])])]),_:1},8,["modelValue"])):(u(),y(de,{key:1,description:"暂无Tab按钮,请点击上方按钮添加"}))]),_:1}),n("div",Ae,[o(f(b),{type:"primary",loading:z.value,onClick:P},{default:s(()=>[...e[33]||(e[33]=[i("保存底部Tab配置",-1)])]),_:1},8,["loading"])])]),_:1},8,["show"]),o(ue,{show:T.value,"onUpdate:show":e[17]||(e[17]=l=>T.value=l),"mask-closable":!1,preset:"card",title:h.value>=0?"编辑Tab按钮":"添加Tab按钮",class:"aksrt-modal-card",style:{"max-width":"520px"}},{footer:s(()=>[n("div",Me,[o(f(b),{onClick:e[16]||(e[16]=l=>T.value=!1)},{default:s(()=>[...e[48]||(e[48]=[i("取消",-1)])]),_:1}),o(f(b),{type:"primary",onClick:le},{default:s(()=>[...e[49]||(e[49]=[i("保存",-1)])]),_:1})])]),default:s(()=>[o(B,{model:a,"label-placement":"top",class:"aksrt-form"},{default:s(()=>[o(p,{label:"按钮类型"},{default:s(()=>[o(D,{value:a.type,"onUpdate:value":[e[4]||(e[4]=l=>a.type=l),ee],options:H,placeholder:"选择按钮类型"},null,8,["value"])]),_:1}),o(p,{label:"图标 (Font Awesome)"},{feedback:s(()=>[n("div",Fe,[e[34]||(e[34]=n("span",null,"预览:",-1)),a.icon?(u(),c("i",{key:0,class:j(a.icon),style:{"font-size":"20px"}},null,2)):(u(),c("span",De,"无图标")),e[35]||(e[35]=n("a",{href:"https://fontawesome.com/search?m=free",target:"_blank",rel:"noopener",style:{"margin-left":"12px"}},[n("i",{class:"fas fa-external-link-alt"}),i(" Font Awesome 图标库 ")],-1))])]),default:s(()=>[o(x,{value:a.icon,"onUpdate:value":e[5]||(e[5]=l=>a.icon=l),placeholder:"例如: fas fa-home"},null,8,["value"])]),_:1}),o(p,{label:"显示文字"},{default:s(()=>[o(x,{value:a.text,"onUpdate:value":e[6]||(e[6]=l=>a.text=l),placeholder:"例如: 首页"},null,8,["value"])]),_:1}),o(p,{label:"徽标文本"},{default:s(()=>[o(x,{value:a.badge,"onUpdate:value":e[7]||(e[7]=l=>a.badge=l),placeholder:"例如: NEW, 9+,留空不显示",maxlength:"4"},null,8,["value"])]),_:1}),o(p,{label:"徽标模式"},{default:s(()=>[o(q,{value:a.badge_mode,"onUpdate:value":e[8]||(e[8]=l=>a.badge_mode=l)},{default:s(()=>[o(M,null,{default:s(()=>[o(U,{value:"static"},{default:s(()=>[...e[36]||(e[36]=[i("静态文本",-1)])]),_:1}),o(U,{value:"dynamic"},{default:s(()=>[...e[37]||(e[37]=[i("动态徽标",-1)])]),_:1})]),_:1})]),_:1},8,["value"])]),_:1}),a.badge_mode==="dynamic"?(u(),y(ie,{key:0,type:"info","show-icon":!1,style:{"margin-bottom":"16px"}},{default:s(()=>[a.type==="auth"?(u(),c($,{key:0},[i("未登录时显示提醒徽标,登录后自动隐藏。")],64)):a.type==="user"?(u(),c($,{key:1},[i("登录用户显示评论数徽标,游客不显示。")],64)):a.type==="search"?(u(),c($,{key:2},[i("搜索结果页显示 ON 徽标,其它页面隐藏。")],64)):(u(),c($,{key:3},[i("当前类型不提供动态徽标,前端将回退为静态徽标。")],64))]),_:1})):g("",!0),a.type==="category"?(u(),y(p,{key:1,label:"指定分类"},{default:s(()=>[o(D,{value:a.category_id,"onUpdate:value":e[9]||(e[9]=l=>a.category_id=l),options:F.value,placeholder:"留空则跳转分类聚合页",clearable:"",filterable:""},null,8,["value","options"])]),_:1})):g("",!0),a.type==="search"?(u(),y(p,{key:2,label:"默认搜索类型"},{default:s(()=>[o(q,{value:a.search_default_type,"onUpdate:value":e[10]||(e[10]=l=>a.search_default_type=l)},{default:s(()=>[o(M,null,{default:s(()=>[o(U,{value:"post"},{default:s(()=>[...e[38]||(e[38]=[i("文章",-1)])]),_:1}),o(U,{value:"category"},{default:s(()=>[...e[39]||(e[39]=[i("分类",-1)])]),_:1}),o(U,{value:"tag"},{default:s(()=>[...e[40]||(e[40]=[i("标签",-1)])]),_:1})]),_:1})]),_:1},8,["value"])]),_:1})):g("",!0),["link","msg","pay_vip","shop_cart"].includes(a.type)?(u(),y(p,{key:3,label:"链接地址"},{default:s(()=>[o(x,{value:a.link,"onUpdate:value":e[11]||(e[11]=l=>a.link=l),placeholder:a.type==="msg"?"留空使用默认消息中心地址":a.type==="pay_vip"?"留空使用默认会员页地址":a.type==="shop_cart"?"留空使用默认购物车地址":"https:// 或 /path"},null,8,["value","placeholder"])]),_:1})):g("",!0),a.type==="link"?(u(),y(p,{key:4,label:"新窗口打开"},{default:s(()=>[o(r,{value:a.new_window,"onUpdate:value":e[12]||(e[12]=l=>a.new_window=l)},null,8,["value"])]),_:1})):g("",!0),a.type==="add"?(u(),c("div",Ve,[n("div",Ne,[e[43]||(e[43]=n("strong",null,"发布菜单项",-1)),o(f(b),{size:"small",type:"primary",onClick:J},{icon:s(()=>[...e[41]||(e[41]=[n("i",{class:"fas fa-plus"},null,-1)])]),default:s(()=>[e[42]||(e[42]=i(" 添加子项 ",-1))]),_:1})]),n("div",Se,[e[44]||(e[44]=n("span",{class:"add-items-editor__presets-label"},"快速添加:",-1)),(u(),c($,null,be(Z,l=>o(f(b),{key:l.url,size:"tiny",secondary:"",type:a.add_items.some(v=>v.url===l.url)?"success":"default",disabled:a.add_items.some(v=>v.url===l.url),onClick:v=>G(l)},{default:s(()=>[i(w(l.label),1)]),_:2},1032,["type","disabled","onClick"])),64))]),a.add_items.length?(u(),c("div",Pe,[o(f(E),{modelValue:a.add_items,"onUpdate:modelValue":e[13]||(e[13]=l=>a.add_items=l),"item-key":"id",handle:".add-items-editor__drag","ghost-class":"add-items-editor__ghost",animation:"180"},{item:s(({element:l,index:v})=>[n("div",Be,[e[46]||(e[46]=n("button",{type:"button",class:"add-items-editor__drag","aria-label":"拖拽排序"},[n("i",{class:"fas fa-grip-vertical"})],-1)),o(x,{value:l.label,"onUpdate:value":k=>l.label=k,placeholder:"名称,例如:写文章"},null,8,["value","onUpdate:value"]),o(x,{value:l.icon,"onUpdate:value":k=>l.icon=k,placeholder:"图标,例如:fas fa-pen"},null,8,["value","onUpdate:value"]),o(x,{value:l.url,"onUpdate:value":k=>l.url=k,placeholder:"链接,例如:/wp-admin/post-new.php"},null,8,["value","onUpdate:value"]),o(f(b),{quaternary:"",type:"error",onClick:k=>K(v)},{icon:s(()=>[...e[45]||(e[45]=[n("i",{class:"fas fa-trash-alt"},null,-1)])]),_:1},8,["onClick"])])]),_:1},8,["modelValue"])])):(u(),c("div",Oe,"当前没有子项,前端将回退为默认发布入口。"))])):g("",!0),a.type==="home"?(u(),y(p,{key:6,label:"返回顶部功能"},{default:s(()=>[o(r,{value:a.ontop,"onUpdate:value":e[14]||(e[14]=l=>a.ontop=l)},null,8,["value"]),e[47]||(e[47]=n("span",{class:"aksrt-hint-text",style:{"margin-left":"12px"}},"页面滚动后切换为返回顶部按钮",-1))]),_:1})):g("",!0),o(p,{label:"启用状态"},{default:s(()=>[o(r,{value:a.enabled,"onUpdate:value":e[15]||(e[15]=l=>a.enabled=l)},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["show","title"])])}}},Ze=fe(qe,[["__scopeId","data-v-13ae8f9c"]]);export{Ze as default};
|