Files
wordpress-theme-aksrt/assets/admin/build/SchemaPage.CSkx936u.js
T
kate522 a3dde3874a 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.
2026-07-15 02:10:05 +08:00

2 lines
17 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{aa as R,a1 as i,W as _,a2 as S,a3 as l,a4 as a,f,Y as C,c as x,w as te,b as ae,X as K,ab as ne,R as le,N as A,a5 as M,ac as oe,I as se,Z as ue,r as L,$ as ce,l as re,ad as ie,ae as de,n as pe}from"./vendor-vue.Bykizn0M.js";import{u as me,A as fe,n as ve,g as $}from"./shared-api.B7o7Pzvu.js";import{a as F}from"./shared-api.D5_fnN32.js";import{_ as _e}from"./index.js";import{u as ge}from"./vendor-naive.BuHWlEgf.js";import"./FaIcon.CX_hGmM4.js";import"./vendor-misc.1adHN6i_.js";const ye={__name:"TencentConfig",props:{modelValue:{type:Object,default:()=>({})},modelModifiers:{}},emits:["update:modelValue"],setup(T){const s=R(T,"modelValue"),y=x(()=>{const u=s.value;return!!(u.secret_id&&u.secret_key&&u.app_id&&u.app_secret_key)});return(u,e)=>{const v=i("n-divider"),o=i("n-a"),m=i("n-alert"),p=i("n-input"),g=i("n-form-item"),k=i("n-tag"),I=i("n-space"),V=i("n-form");return _(),S(V,{"label-placement":"left","label-width":"130"},{default:l(()=>[a(I,{vertical:"",style:{width:"100%"}},{default:l(()=>[a(v,{"title-placement":"left"},{default:l(()=>[...e[4]||(e[4]=[f("云 API 密钥(用于 TC3 签名)",-1)])]),_:1}),a(m,{type:"warning",style:{"margin-bottom":"12px"}},{default:l(()=>[e[6]||(e[6]=f(" 请从 ",-1)),a(o,{href:"https://console.cloud.tencent.com/cam/capi",target:"_blank"},{default:l(()=>[...e[5]||(e[5]=[f("访问管理控制台 → API 密钥管理",-1)])]),_:1}),e[7]||(e[7]=f(" 获取。建议使用子账号密钥并仅授予 ",-1)),e[8]||(e[8]=C("code",null,"QcloudCaptchaFullAccess",-1)),e[9]||(e[9]=f(" 权限。 ",-1))]),_:1}),a(g,{label:"SecretId"},{default:l(()=>[a(p,{value:s.value.secret_id,"onUpdate:value":e[0]||(e[0]=c=>s.value.secret_id=c),placeholder:"腾讯云 API SecretId",autocomplete:"off"},null,8,["value"])]),_:1}),a(g,{label:"SecretKey"},{default:l(()=>[a(p,{value:s.value.secret_key,"onUpdate:value":e[1]||(e[1]=c=>s.value.secret_key=c),type:"text",placeholder:"腾讯云 API SecretKey",autocomplete:"off","show-password-on":"click"},null,8,["value"])]),_:1}),a(v,{"title-placement":"left"},{default:l(()=>[...e[10]||(e[10]=[f("验证码密钥",-1)])]),_:1}),a(g,{label:"CaptchaAppId"},{default:l(()=>[a(p,{value:s.value.app_id,"onUpdate:value":e[2]||(e[2]=c=>s.value.app_id=c),placeholder:"从验证码控制台获取 CaptchaAppId",autocomplete:"off"},null,8,["value"])]),_:1}),a(g,{label:"AppSecretKey"},{feedback:l(()=>[...e[11]||(e[11]=[f("请从「验证管理 → 基础配置」完整复制,注意区分 I/l/1/O/0",-1)])]),default:l(()=>[a(p,{value:s.value.app_secret_key,"onUpdate:value":e[3]||(e[3]=c=>s.value.app_secret_key=c),type:"text",placeholder:"从验证码控制台获取 AppSecretKey",autocomplete:"off","show-password-on":"click"},null,8,["value"])]),_:1}),a(m,{type:"info",style:{"margin-bottom":"12px"}},{default:l(()=>[...e[12]||(e[12]=[f(" 腾讯云验证码 2.0 — 验证类型(滑动拼图、文字点选、空间语义等)请在",-1),C("a",{href:"https://console.cloud.tencent.com/captcha/graphical",target:"_blank"},"验证码控制台",-1),f("配置。 ",-1)])]),_:1}),y.value?(_(),S(k,{key:0,type:"success",size:"small"},{default:l(()=>[...e[13]||(e[13]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),S(k,{key:1,type:"warning",size:"small"},{default:l(()=>[...e[14]||(e[14]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},we={__name:"AliyunConfig",props:{modelValue:{type:Object,default:()=>({})},modelModifiers:{}},emits:["update:modelValue"],setup(T){const s=R(T,"modelValue"),y=x(()=>{const u=s.value;return!!(u.region&&u.prefix&&u.scene_id&&u.access_key_id&&u.access_key_secret)});return(u,e)=>{const v=i("n-divider"),o=i("n-select"),m=i("n-form-item"),p=i("n-input"),g=i("n-alert"),k=i("n-tag"),I=i("n-space"),V=i("n-form");return _(),S(V,{"label-placement":"left","label-width":"130"},{default:l(()=>[a(I,{vertical:"",style:{width:"100%"}},{default:l(()=>[a(v,{"title-placement":"left"},{default:l(()=>[...e[5]||(e[5]=[f("前端配置",-1)])]),_:1}),a(m,{label:"所属地区"},{default:l(()=>[a(o,{value:s.value.region,"onUpdate:value":e[0]||(e[0]=c=>s.value.region=c),options:[{label:"中国内地 (cn)",value:"cn"},{label:"新加坡 (sgp)",value:"sgp"}],placeholder:"选择地区"},null,8,["value"])]),_:1}),a(m,{label:"身份标 (prefix)"},{default:l(()=>[a(p,{value:s.value.prefix,"onUpdate:value":e[1]||(e[1]=c=>s.value.prefix=c),placeholder:"从概览页获取身份标",autocomplete:"off"},null,8,["value"])]),_:1}),a(m,{label:"场景ID"},{default:l(()=>[a(p,{value:s.value.scene_id,"onUpdate:value":e[2]||(e[2]=c=>s.value.scene_id=c),placeholder:"从验证码场景列表获取 SceneId",autocomplete:"off"},null,8,["value"])]),_:1}),a(v,{"title-placement":"left"},{default:l(()=>[...e[6]||(e[6]=[f("后端 API 密钥(用于服务端验签)",-1)])]),_:1}),a(m,{label:"AccessKey ID"},{default:l(()=>[a(p,{value:s.value.access_key_id,"onUpdate:value":e[3]||(e[3]=c=>s.value.access_key_id=c),placeholder:"阿里云 RAM 用户 AccessKey ID",autocomplete:"off"},null,8,["value"])]),_:1}),a(m,{label:"AccessKey Secret"},{default:l(()=>[a(p,{value:s.value.access_key_secret,"onUpdate:value":e[4]||(e[4]=c=>s.value.access_key_secret=c),type:"password","show-password-on":"click",autocomplete:"current-password",placeholder:"阿里云 RAM 用户 AccessKey Secret"},null,8,["value"])]),_:1}),a(g,{type:"warning",style:{"margin-bottom":"8px"}},{default:l(()=>[...e[7]||(e[7]=[f(" 请使用 RAM 子账号密钥并授权 ",-1),C("code",null,"AliyunYundunAFSFullAccess",-1),f(" 权限,切勿使用主账号密钥。 ",-1)])]),_:1}),y.value?(_(),S(k,{key:0,type:"success",size:"small"},{default:l(()=>[...e[8]||(e[8]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),S(k,{key:1,type:"warning",size:"small"},{default:l(()=>[...e[9]||(e[9]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},he={__name:"CloudflareConfig",props:{modelValue:{type:Object,default:()=>({})},modelModifiers:{}},emits:["update:modelValue"],setup(T){const s=R(T,"modelValue"),y=x(()=>{const v=s.value;return!!(v.site_key&&v.secret_key)}),u=[{label:"自动",value:"auto"},{label:"浅色",value:"light"},{label:"深色",value:"dark"}],e=[{label:"正常",value:"normal"},{label:"紧凑",value:"compact"}];return(v,o)=>{const m=i("n-input"),p=i("n-form-item"),g=i("n-select"),k=i("n-tag"),I=i("n-space"),V=i("n-form");return _(),S(V,{"label-placement":"left","label-width":"130"},{default:l(()=>[a(I,{vertical:"",style:{width:"100%"}},{default:l(()=>[a(p,{label:"Site Key"},{default:l(()=>[a(m,{value:s.value.site_key,"onUpdate:value":o[0]||(o[0]=c=>s.value.site_key=c),placeholder:"Cloudflare Turnstile Site Key",autocomplete:"off"},null,8,["value"])]),_:1}),a(p,{label:"Secret Key"},{default:l(()=>[a(m,{value:s.value.secret_key,"onUpdate:value":o[1]||(o[1]=c=>s.value.secret_key=c),type:"password","show-password-on":"click",autocomplete:"current-password"},null,8,["value"])]),_:1}),a(p,{label:"自定义域名"},{default:l(()=>[a(m,{value:s.value.domain,"onUpdate:value":o[2]||(o[2]=c=>s.value.domain=c),placeholder:"留空使用默认域名",autocomplete:"url"},null,8,["value"])]),_:1}),a(p,{label:"主题"},{default:l(()=>[a(g,{value:s.value.theme,"onUpdate:value":o[3]||(o[3]=c=>s.value.theme=c),options:u,clearable:""},null,8,["value"])]),_:1}),a(p,{label:"尺寸"},{default:l(()=>[a(g,{value:s.value.size,"onUpdate:value":o[4]||(o[4]=c=>s.value.size=c),options:e,clearable:""},null,8,["value"])]),_:1}),y.value?(_(),S(k,{key:0,type:"success",size:"small"},{default:l(()=>[...o[5]||(o[5]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),S(k,{key:1,type:"warning",size:"small"},{default:l(()=>[...o[6]||(o[6]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},ke={__name:"GeetestConfig",props:{modelValue:{type:Object,default:()=>({product:"bind"})},modelModifiers:{}},emits:["update:modelValue"],setup(T){const s=R(T,"modelValue"),y=x(()=>{const u=s.value;return!!(u.captcha_id&&u.captcha_key)});return(u,e)=>{const v=i("n-input"),o=i("n-form-item"),m=i("n-tag"),p=i("n-space"),g=i("n-form");return _(),S(g,{"label-placement":"left","label-width":"130"},{default:l(()=>[a(p,{vertical:"",style:{width:"100%"}},{default:l(()=>[a(o,{label:"Captcha ID"},{default:l(()=>[a(v,{value:s.value.captcha_id,"onUpdate:value":e[0]||(e[0]=k=>s.value.captcha_id=k),placeholder:"极验 GeeTest CaptchaID",autocomplete:"off"},null,8,["value"])]),_:1}),a(o,{label:"Captcha Key"},{default:l(()=>[a(v,{value:s.value.captcha_key,"onUpdate:value":e[1]||(e[1]=k=>s.value.captcha_key=k),type:"password","show-password-on":"click",autocomplete:"current-password"},null,8,["value"])]),_:1}),y.value?(_(),S(m,{key:0,type:"success",size:"small"},{default:l(()=>[...e[2]||(e[2]=[f("✓ 已完整配置",-1)])]),_:1})):(_(),S(m,{key:1,type:"warning",size:"small"},{default:l(()=>[...e[3]||(e[3]=[f("未完成配置",-1)])]),_:1}))]),_:1})]),_:1})}}},be={class:"aksrt-schema-page"},Se={key:0,class:"aksrt-schema-page__tool-actions"},Ce={class:"captcha-test-panel"},Te={class:"captcha-test-body"},xe={key:0,style:{"text-align":"center",padding:"40px"}},Ue={style:{"font-size":"16px",margin:"0"}},Ae={key:2,id:"captcha-test-box",style:{"min-height":"150px"}},Ie={__name:"SchemaPage",props:{domain:{type:String,default:""},section:{type:String,default:""},showSearch:{type:Boolean,default:!0}},setup(T){const s=T,y=ce(),u=ge(),e=L(!1),v=L(!1),o=L(null),m=x(()=>{var n,t;return ve(s.domain||((n=y.meta)==null?void 0:n.canonicalDomain)||((t=y.meta)==null?void 0:t.schemaDomain)||I(y.path))}),p=x(()=>{var n,t;return s.section||((n=y.meta)==null?void 0:n.section)||((t=y.meta)==null?void 0:t.schemaSection)||V(y.path)}),g=x(()=>m.value==="permissions"&&p.value==="login"),k=x(()=>m.value==="permissions"&&p.value==="moderation");function I(n){return n.split("/").filter(Boolean)[0]||"global"}function V(n){const t=n.split("/").filter(Boolean);return t[t.length-1]||"common"}const c=x(()=>{var t,h;const n=$(m.value,p.value);return n&&n.groups&&n.groups.length>0?{title:n.title||"",description:n.description||"",icon:n.icon||"",groups:n.groups}:{title:((t=y.meta)==null?void 0:t.title)||"",description:((h=y.meta)==null?void 0:h.desc)||"",icon:"",groups:[]}}),N=x(()=>{const n=$(m.value,p.value);if(!n)return{};const t={};for(const h of n.groups||[])for(const d of h.fields||[])d.default!==void 0&&(t[d.key]=d.default);return t}),{formData:z,loading:B,saving:q,loadError:O,dirty:G,save:J,reload:E}=me({fetch:()=>F.getSchemaPage(m.value,p.value),submit:n=>F.saveSchemaPage(m.value,p.value,n),defaults:N.value,onSaved:()=>{u.success("设置已保存")}});async function Y(){try{await J()}catch(n){u.error("保存失败: "+((n==null?void 0:n.message)||"未知错误"))}}function Q(){U(),E(),u.info("已放弃更改")}function W(n){if(!z.value||!n)return{};const t=z.value[n];return t&&typeof t=="object"?t:{}}function X(){var r;const n=(r=z.value)==null?void 0:r.active_provider;if(!n)return;const t=W(n),d=({tencent:["secret_id","secret_key","app_id","app_secret_key"],aliyun:["region","prefix","scene_id","access_key_id","access_key_secret"],cloudflare:["site_key","secret_key"],geetest:["captcha_id","captcha_key"]}[n]||[]).filter(D=>!t[D]);if(d.length){u.warning(`请先填写必填字段: ${d.join(", ")}`);return}if(n==="tencent"){j(t);return}e.value=!0,o.value=null,v.value=!0,pe(()=>{Z(n,t)})}function j(n){const t="https://turing.captcha.qcloud.com/TJCaptcha.js";if(typeof window.TencentCaptcha<"u"){try{new window.TencentCaptcha(n.app_id,function(r){r.ret===0?u.success("腾讯云验证码测试成功!配置正确。"):u.warning("验证已取消。")},{userLanguage:"zh-cn"}).show()}catch(r){u.error("初始化失败: "+r.message)}return}const h=document.querySelector('script[src="'+t+'"]');if(h){h.addEventListener("load",function(){j(n)},{once:!0});return}const d=document.createElement("script");d.src=t,d.onload=function(){try{new window.TencentCaptcha(n.app_id,function(r){r.ret===0?u.success("腾讯云验证码测试成功!"):u.warning("验证已取消。")},{userLanguage:"zh-cn"}).show()}catch(r){u.error("初始化失败: "+r.message)}},d.onerror=function(){u.error("加载腾讯验证码SDK失败")},document.head.appendChild(d)}function Z(n,t){setTimeout(()=>{v.value=!1,H(n,t)},100)}function H(n,t){const h=document.getElementById("captcha-test-sdk");if(h&&h.remove(),window.__gtTestCaptcha){try{window.__gtTestCaptcha.destroy()}catch{}window.__gtTestCaptcha=null}const d=document.createElement("script");switch(d.id="captcha-test-sdk",n){case"tencent":d.src="https://turing.captcha.qcloud.com/TJCaptcha.js",d.onload=function(){try{new window.TencentCaptcha(t.app_id,function(r){o.value={success:r.ret===0,message:r.ret===0?"验证成功!":"验证已取消。"}},{userLanguage:"zh-cn"}).show()}catch(r){o.value={success:!1,message:"初始化失败: "+r.message}}},d.onerror=function(){o.value={success:!1,message:"加载SDK失败"}};break;case"cloudflare":window.onTurnstileTestLoad=function(){try{window.turnstile.render("#captcha-test-box",{sitekey:t.site_key,theme:"auto",size:t.size||"normal",callback:function(){o.value={success:!0,message:"验证成功!"},u.success("Cloudflare Turnstile 测试成功!"),setTimeout(U,1500)},"error-callback":function(){o.value={success:!1,message:"验证失败"}}})}catch(r){o.value={success:!1,message:"初始化失败: "+r.message}}},d.src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onTurnstileTestLoad",d.onerror=function(){o.value={success:!1,message:"加载SDK失败"}};break;case"geetest":d.src="https://static.geetest.com/v4/gt4.js",d.onload=function(){try{window.initGeetest4({captchaId:t.captcha_id,product:t.product||"float"},function(r){window.__gtTestCaptcha=r;const D=function(){o.value={success:!0,message:"验证成功!"},u.success("极验 GeeTest 测试成功!"),setTimeout(U,1500)},P=function(b){o.value={success:!1,message:"出错: "+(b.msg||"?")}},w=function(){o.value||(o.value={success:!1,message:"已关闭"})};(t.product||"float")==="bind"?r.onReady(()=>r.showCaptcha()).onSuccess(D).onError(P).onClose(w):r.appendTo("#captcha-test-box").onReady(()=>{}).onSuccess(D).onError(P).onClose(w)})}catch(r){o.value={success:!1,message:"初始化失败: "+r.message}}},d.onerror=function(){o.value={success:!1,message:"加载SDK失败"}};break;case"aliyun":window.AliyunCaptchaConfig={region:t.region||"cn",prefix:t.prefix},d.src="https://o.alicdn.com/captcha-frontend/aliyunCaptcha/AliyunCaptcha.js",d.onload=function(){try{window.initAliyunCaptcha({SceneId:t.scene_id,mode:"embed",element:"#captcha-test-box",success:function(){o.value={success:!0,message:"验证成功!"},u.success("阿里云测试成功!"),setTimeout(U,1500)},fail:function(r){o.value={success:!1,message:String(r)}},getInstance:function(){},slideStyle:{width:360,height:40},language:"cn"})}catch(r){o.value={success:!1,message:"初始化失败: "+r.message}}},d.onerror=function(){o.value={success:!1,message:"加载SDK失败"}};break;default:o.value={success:!1,message:"未知服务商"};return}document.head.appendChild(d)}function U(){if(e.value=!1,o.value=null,v.value=!1,window.__gtTestCaptcha){try{window.__gtTestCaptcha.destroy()}catch{}window.__gtTestCaptcha=null}const n=document.getElementById("captcha-test-sdk");if(n&&n.remove(),window.onTurnstileTestLoad)try{delete window.onTurnstileTestLoad}catch{}}return te([m,p],([n,t],[h,d])=>{(n!==h||t!==d)&&(U(),E())}),ae(()=>{U()}),(n,t)=>{var D,P;const h=i("n-dynamic-tags"),d=i("n-button"),r=i("n-spin");return _(),K("div",be,[a(fe,{title:c.value.title,description:c.value.description,icon:c.value.icon,schema:c.value.groups,"form-data":A(z),dirty:A(G),loading:A(B),saving:A(q),"load-error":A(O),"show-search":T.showSearch,"onUpdate:formData":t[0]||(t[0]=w=>z.value=w),onSave:Y,onReload:Q},ne({_:2},[g.value?{name:"field-tencent",fn:l(({value:w,setValue:b})=>[a(ye,{"model-value":w||{},"onUpdate:modelValue":b},null,8,["model-value","onUpdate:modelValue"])]),key:"0"}:void 0,g.value?{name:"field-aliyun",fn:l(({value:w,setValue:b})=>[a(we,{"model-value":w||{},"onUpdate:modelValue":b},null,8,["model-value","onUpdate:modelValue"])]),key:"1"}:void 0,g.value?{name:"field-cloudflare",fn:l(({value:w,setValue:b})=>[a(he,{"model-value":w||{},"onUpdate:modelValue":b},null,8,["model-value","onUpdate:modelValue"])]),key:"2"}:void 0,g.value?{name:"field-geetest",fn:l(({value:w,setValue:b})=>[a(ke,{"model-value":w||{},"onUpdate:modelValue":b},null,8,["model-value","onUpdate:modelValue"])]),key:"3"}:void 0,k.value?{name:"field-geoip_block_countries",fn:l(({value:w,setValue:b})=>[a(h,{value:Array.isArray(w)?w:[],"onUpdate:value":b},null,8,["value","onUpdate:value"]),t[1]||(t[1]=C("p",{class:"aksrt-schema-page__field-hint"},"使用 ISO 国家代码,如 CN / US / RU。",-1))]),key:"4"}:void 0,le(n.$slots,(w,b)=>({name:b,fn:l(ee=>[re(n.$slots,b,ie(de(ee)),void 0,!0)])}))]),1032,["title","description","icon","schema","form-data","dirty","loading","saving","load-error","show-search"]),g.value&&!A(B)?(_(),K("div",Se,[a(d,{disabled:!((D=A(z))!=null&&D.enabled)||!((P=A(z))!=null&&P.active_provider),onClick:X},{default:l(()=>[...t[2]||(t[2]=[f(" 测试验证 ",-1)])]),_:1},8,["disabled"])])):M("",!0),e.value?(_(),K("div",{key:1,class:"captcha-test-overlay",onClick:oe(U,["self"])},[C("div",Ce,[C("div",{class:"captcha-test-header"},[t[3]||(t[3]=C("span",null,"测试验证码",-1)),C("button",{class:"captcha-test-close",onClick:U},"×")]),C("div",Te,[v.value?(_(),K("div",xe,[a(r),t[4]||(t[4]=C("p",{style:{"margin-top":"10px",color:"#999"}},"加载中...",-1))])):M("",!0),o.value&&!v.value?(_(),K("div",{key:1,style:se({color:o.value.success?"#18a058":"#d03050",textAlign:"center",padding:"20px"})},[C("p",Ue,ue(o.value.message),1)],4)):M("",!0),!v.value&&!o.value?(_(),K("div",Ae)):M("",!0)])])])):M("",!0)])}}},Le=_e(Ie,[["__scopeId","data-v-a4bec770"]]);export{Le as default};