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:
1 parent
2e25894eb5
commit
27d8a9ea71
64 files changed
+15839
-3
No files matched your search
@@ -0,0 +1,47 @@
|
||||
import{_ as I}from"./FaIcon.NZ6TDkNu.js";import{r as E,W as s,X as n,L as Z,Y as _,a2 as m,a5 as z,Z as k,ad as Ye,l as de,a4 as o,a3 as b,j as Ua,v as ja,z as Ea,a1 as T,f as A,c as H,w as me,F as j,R as K,o as we,b as ra,x as Ma,ac as Ra,I as Ka,ai as Ga,m as ea}from"./vendor-vue.BxZIRU0_.js";import{_ as te}from"./index.js";import{F as Na}from"./FaIconPicker.DuahAn6_.js";import{ba as ce,bb as Ha,bc as Fa,bd as ue,be as Wa,bf as Ba,bg as Ja}from"./vendor-misc.bELTaXdf.js";import{a as fe}from"./shared-api.DnsQ5cxS.js";import{l as Qa}from"./level.E3ANSDAX.js";import{b as Xa}from"./badge.CKTsmH1z.js";const Za={class:"aksrt-field-group__header-left"},Ya={class:"aksrt-field-group__title"},et={key:0,class:"aksrt-field-group__desc"},at={class:"aksrt-field-group__header-right"},tt=["aria-expanded","title"],lt={class:"aksrt-field-group__body"},st={__name:"AksFieldGroup",props:{title:{type:String,default:""},description:{type:String,default:""},icon:{type:String,default:""},collapsible:{type:Boolean,default:!1},defaultCollapsed:{type:Boolean,default:!1}},setup(e){const $=e,i=E(!!$.defaultCollapsed);function p(){$.collapsible&&(i.value=!i.value)}return(S,v)=>(s(),n("div",{class:Z(["aksrt-field-group",{"is-collapsible":e.collapsible,"is-collapsed":e.collapsible&&i.value}])},[e.title?(s(),n("div",{key:0,class:Z(["aksrt-field-group__header",{"is-clickable":e.collapsible}]),onClick:v[1]||(v[1]=D=>e.collapsible?p():void 0)},[_("div",Za,[e.icon?(s(),m(I,{key:0,icon:e.icon,size:16,class:"aksrt-field-group__icon"},null,8,["icon"])):z("",!0),_("div",null,[_("h3",Ya,k(e.title),1),e.description?(s(),n("p",et,k(e.description),1)):z("",!0)])]),_("div",at,[S.$slots.actions?(s(),n("div",{key:0,class:"aksrt-field-group__actions",onClick:v[0]||(v[0]=Ye(()=>{},["stop"]))},[de(S.$slots,"actions",{},void 0,!0)])):z("",!0),e.collapsible?(s(),n("button",{key:1,type:"button",class:"aksrt-field-group__collapse-btn","aria-expanded":(!i.value).toString(),title:i.value?"展开配置":"收起配置",onClick:Ye(p,["stop"])},[o(I,{icon:i.value?"fa fas fa-chevron-right":"fa fas fa-chevron-down",size:12},null,8,["icon"]),_("span",null,k(i.value?"展开":"收起"),1)],8,tt)):z("",!0)])],2)):z("",!0),o(Ea,{name:"aksrt-collapse"},{default:b(()=>[Ua(_("div",lt,[de(S.$slots,"default",{},void 0,!0)],512),[[ja,!i.value]])]),_:3})],2))}},it=te(st,[["__scopeId","data-v-6e29aa86"]]),nt={class:"aksrt-media-field"},ut={key:0,class:"aksrt-media-field__preview"},dt=["src","alt"],ot={key:1,class:"aksrt-media-field__file"},rt={class:"aksrt-media-field__filename"},_t={class:"aksrt-media-field__overlay"},pt={__name:"AksMediaField",props:{modelValue:{type:String,default:""},accept:{type:String,default:"image/*"},placeholder:{type:String,default:"选择图片"}},emits:["update:modelValue"],setup(e,{emit:$}){const i=e,p=$,S=H(()=>i.modelValue?/\.(jpg|jpeg|png|gif|webp|svg|bmp|ico)(\?.*)?$/i.test(i.modelValue)||i.modelValue.startsWith("data:image/"):!1),v=H(()=>{if(!i.modelValue)return"";try{const O=new URL(i.modelValue,window.location.origin).pathname.split("/");return O[O.length-1]||i.modelValue}catch{const g=i.modelValue.split("/");return g[g.length-1]||i.modelValue}});function D(){if(typeof wp<"u"&&wp.media){const g=wp.media({title:i.placeholder,multiple:!1,library:{type:i.accept==="image/*"?"image":void 0}});g.on("select",()=>{const O=g.state().get("selection").first().toJSON();p("update:modelValue",O.url)}),g.open()}}function C(){p("update:modelValue","")}return(g,O)=>{const N=T("n-button"),W=T("n-input");return s(),n("div",nt,[e.modelValue?(s(),n("div",ut,[S.value?(s(),n("img",{key:0,src:e.modelValue,alt:e.placeholder,class:"aksrt-media-field__image"},null,8,dt)):(s(),n("div",ot,[o(I,{icon:"fa fas fa-file",size:24}),_("span",rt,k(v.value),1)])),_("div",_t,[o(N,{size:"tiny",quaternary:"",onClick:D},{default:b(()=>[o(I,{icon:"fa fas fa-exchange-alt"}),O[1]||(O[1]=A(" 更换 ",-1))]),_:1}),o(N,{size:"tiny",quaternary:"",type:"error",onClick:C},{default:b(()=>[o(I,{icon:"fa fas fa-trash-alt"}),O[2]||(O[2]=A(" 移除 ",-1))]),_:1})])])):(s(),n("div",{key:1,class:"aksrt-media-field__empty",onClick:D},[o(I,{icon:"fa fas fa-cloud-upload-alt",size:28}),_("span",null,k(e.placeholder),1)])),o(W,{value:e.modelValue,placeholder:"或直接输入 URL",size:"small",class:"aksrt-media-field__url","onUpdate:value":O[0]||(O[0]=R=>p("update:modelValue",R))},null,8,["value"])])}}},aa=te(pt,[["__scopeId","data-v-6a55ccc5"]]),yt={class:"aksrt-gallery-field"},ct={key:0,class:"aksrt-gallery-field__grid"},ft=["src","alt"],bt={key:1,class:"aksrt-gallery-field__placeholder"},mt={class:"aksrt-gallery-field__actions"},kt={key:1,class:"aksrt-gallery-field__empty"},ht={class:"aksrt-gallery-field__buttons"},vt={key:2,class:"aksrt-gallery-field__error"},gt={__name:"AksGalleryField",props:{modelValue:{type:Array,default:()=>[]},title:{type:String,default:"选择图片"}},emits:["update:modelValue"],setup(e,{emit:$}){const i=e,p=$,S=E({}),v=E("");let D=0;const C=H(()=>{const q=new Set;return i.modLine truncated
|
||||
en|English
|
||||
zh-TW|繁體中文
|
||||
ja|日本語
|
||||
ko|한국어
|
||||
fr|Français
|
||||
de|Deutsch
|
||||
es|Español
|
||||
ru|Русский`,i18n_nomenclature:"",i18n_url_strategy:"query"},groups:[{key:"basic",title:"基础配置",icon:"fa fas fa-globe",fields:[{key:"i18n_enabled",label:"启用多语言",type:"switch",default:!1,help:"开启后站点将支持多语言切换"},{key:"i18n_default_lang",label:"默认语言",type:"select",default:"zh-CN",options:[{label:"简体中文",value:"zh-CN"},{label:"English",value:"en"},{label:"繁體中文",value:"zh-TW"},{label:"日本語",value:"ja"},{label:"한국어",value:"ko"},{label:"Français",value:"fr"},{label:"Deutsch",value:"de"},{label:"Español",value:"es"},{label:"Русский",value:"ru"}],dependsOn:{key:"i18n_enabled",value:!0}},{key:"i18n_auto_detect",label:"自动检测浏览器语言",type:"switch",default:!0,dependsOn:{key:"i18n_enabled",value:!0},help:"基于浏览器 Accept-Language 自动切换(AKSRT 方案,区别于 legacy IP 定位方案)"}]},{key:"languages",title:"语言管理",icon:"fa fas fa-language",fields:[{key:"i18n_available_langs",label:"可用语言列表",type:"textarea",default:`zh-CN|简体中文
|
||||
en|English
|
||||
zh-TW|繁體中文
|
||||
ja|日本語
|
||||
ko|한국어
|
||||
fr|Français
|
||||
de|Deutsch
|
||||
es|Español
|
||||
ru|Русский`,dependsOn:{key:"i18n_enabled",value:!0},help:"每行一个语言:语言代码|显示名称(9 种内置语言)"},{key:"i18n_nomenclature",label:"自定义术语",type:"code",default:"",dependsOn:{key:"i18n_enabled",value:!0},help:"JSON 格式自定义翻译术语(key => 翻译),对齐 legacy nomenclature"}]},{key:"display",title:"展示设置",icon:"fa fas fa-eye",fields:[{key:"i18n_switcher_position",label:"语言切换器位置",type:"radio",default:"footer",options:[{label:"导航栏",value:"header"},{label:"页脚",value:"footer"},{label:"导航栏+页脚",value:"both"},{label:"隐藏",value:"none"}],dependsOn:{key:"i18n_enabled",value:!0}},{key:"i18n_url_strategy",label:"URL 策略",type:"radio",default:"query",options:[{label:"查询参数 (?lang=en)",value:"query"},{label:"路径前缀 (/en/page)",value:"path"},{label:"子域名 (en.site.com)",value:"subdomain"}],dependsOn:{key:"i18n_enabled",value:!0}}]}]},Nl={key:"global.custom-code",title:"自定义代码",icon:"fa fas fa-code",description:"自定义 CSS、JS 代码注入。",defaults:{custom_css:"",head_code:"",foot_code:"",trackcode:""},groups:[{key:"css",title:"自定义 CSS",icon:"fa fab fa-css3",fields:[{key:"custom_css",label:"自定义 CSS",type:"code",language:"css",placeholder:"/* 在此输入自定义 CSS */",rows:10,help:"将在页面 <head> 中加载"}]},{key:"code",title:"头部 & 底部代码",icon:"fa fas fa-code",fields:[{key:"head_code",label:"头部 HTML 代码",type:"code",placeholder:"<!-- 支持 meta/link/style/script 等任意 HTML -->",rows:6,help:"在 <head> 中输出,支持 meta/link/style/script 等任意 HTML"},{key:"foot_code",label:"底部 HTML 代码",type:"code",placeholder:"<!-- 在 </body> 前输出 -->",rows:6,help:"在页面底部 </body> 前输出,支持任意 HTML"}]},{key:"stats",title:"统计代码",icon:"fa fas fa-chart-bar",fields:[{key:"trackcode",label:"统计代码",type:"code",placeholder:"<!-- 百度统计 / GA / CNZZ / 51la -->",rows:6,help:"百度统计、Google Analytics、CNZZ、51la 等统计代码,自动在 head 中输出"}]}]},Hl={key:"global.seo",title:"SEO 优化",icon:"fa fas fa-search",description:"站点标题、描述、关键词与 AI SEO。AI 生成入口在文章「独立 SEO」框;连接配置在「扩展 → AI 连接配置」。优先使用 WordPress AI Connectors。",defaults:{seo_enabled:!0,seo_ai_enabled:!1,seo_connector:"-",seo_title:"",seo_keywords:"",seo_description:"",ai_seo_title_prompt:"",ai_seo_keywords_prompt:"",ai_seo_description_prompt:"",seo_baidu_push:!1,seo_baidu_normal:!1,seo_baidu_fast:!1,seo_baidu_token:"",seo_image_optimize:!0,seo_image_default:"",seo_image_always_default:!1,seo_auto_alt:!0,seo_go_link:!0,seo_go_link_nonce:!0,seo_go_link_post:!0,seo_go_link_exclude:"",seo_no_category:!1,seo_jsonld:!0,seo_jsonld_single:!0,seo_jsonld_page:!0},groups:[{key:"basic",title:"SEO 基础",icon:"fa fas fa-globe",fields:[{key:"seo_enabled",label:"启用核心 SEO 优化",type:"switch",default:!0,help:"关闭后主题不再输出 SEO title/description/keywords 等 head 标签。"},{key:"seo_ai_enabled",label:"启用 AI SEO 生成",type:"switch",default:!1,help:"开启后文章/分类「独立 SEO」框显示「AI 生成 SEO」按钮。需先配置 AI 连接(WP Connectors 或扩展 → AI 连接配置)。",dependsOn:{key:"seo_enabled",value:!0}},{key:"seo_connector",label:"标题连接符",type:"input",default:"-",placeholder:"例如:- 或 |",help:"AI 生成标题时会用此连接符追加站点名。"},{key:"seo_title",label:"站点 SEO 标题",type:"textarea",rows:2,default:""},{key:"seo_keywords",label:"站点 SEO 关键词",type:"textarea",rows:3,default:""},{key:"seo_description",label:"站点 SEO 描述",type:"textarea",rows:4,default:""}]},{key:"ai-seo",title:"AI SEO 提示词",icon:"fa fab fa-android",description:"留空则使用内置 原主题风格默认提示词。填写后作为 system instruction 覆盖默认。",fields:[{key:"ai_seo_title_prompt",label:"标题提示词",type:"textarea",rows:5,default:"",dependsOn:{key:"seo_ai_enabled",value:!0},placeholder:"你是一名资深的网站 SEO 编辑……直接输出标题文本本身,不要任何前缀、引号或解释。",help:"控制 AI 如何生成 SEO 标题。留空使用主题内置默认。"},{key:"ai_seo_keywords_prompt",label:"关键词提示词",type:"textarea",rows:5,default:"",dependsOn:{key:"seo_ai_enabled",value:!0},placeholder:"你是一名资深 SEO 编辑……使用英文逗号分隔,直接输出关键词列表。",help:"控制 AI 如何生成 meta keywords。留空使用主题内置默认。"},{key:"ai_seo_description_prompt",label:"描述提示词",type:"textarea",rows:5,default:"",dependsOn:{key:"seo_ai_enabled",value:!0},placeholder:"你是一名资深的中文 SEO 编辑……字数控制在 80 至 150 个汉字之间。",help:"控制 AI 如何生成 meta description。留空使用主题内置默认。"}]},{key:"baidu",title:"百度推送",ic
Line truncated
|
||||
详情请联系管理员`,user_verify_desc:"认证用户会在昵称后显示认证徽章,同时享受多种优先待遇。申请请确保信息属实。"},groups:[{key:"display",title:"公开展示",icon:"fa fas fa-eye",fields:[{key:"user_verify_enabled",label:"启用身份认证",type:"switch",default:!0},{key:"user_verify_public_display",label:"公开页显示认证徽标",type:"switch",default:!0,dependsOn:{key:"user_verify_enabled",value:!0}},{key:"user_verify_personal_badge_text",label:"个人认证徽标文案",type:"input",default:"个人认证",dependsOn:{key:"user_verify_public_display",value:!0}},{key:"user_verify_enterprise_badge_text",label:"企业认证徽标文案",type:"input",default:"企业认证",dependsOn:{key:"user_verify_public_display",value:!0}}]},{key:"workflow",title:"认证方式",icon:"fa fas fa-tasks",fields:[{type:"alert",content:"认证方式固定为个人认证和企业认证,申请人不可自行新增或修改类型。"}]},{key:"apply",title:"申请设置",icon:"fa fas fa-edit",fields:[{key:"user_verify_allow_apply",label:"允许用户前台申请",type:"switch",default:!0,dependsOn:{key:"user_verify_enabled",value:!0}},{key:"user_verify_disable_desc",label:"停用申请说明",type:"textarea",default:`由于系统正在维护,暂时无法申请身份认证
|
||||
详情请联系管理员`,dependsOn:{key:"user_verify_allow_apply",value:!1}},{key:"user_verify_personal_fee",label:"个人认证每次扣余额(元)",type:"input",default:"0.00",help:"仅接受最多两位小数的十进制字符串。",dependsOn:{key:"user_verify_allow_apply",value:!0}},{key:"user_verify_personal_free_applications",label:"个人认证赠送初始次数",type:"number",default:0,min:0,max:9999,help:"每位用户前 N 次个人认证申请免费,之后按单次费用扣余额。",dependsOn:{key:"user_verify_allow_apply",value:!0}},{key:"user_verify_personal_require_real_name",label:"个人认证强制填写真实姓名",type:"switch",default:!1,dependsOn:{key:"user_verify_allow_apply",value:!0}},{key:"user_verify_enterprise_fee",label:"企业认证每次扣余额(元)",type:"input",default:"0.00",help:"仅接受最多两位小数的十进制字符串。",dependsOn:{key:"user_verify_allow_apply",value:!0}},{key:"user_verify_enterprise_free_applications",label:"企业认证赠送初始次数",type:"number",default:0,min:0,max:9999,help:"每位用户前 N 次企业认证申请免费,之后按单次费用扣余额。",dependsOn:{key:"user_verify_allow_apply",value:!0}},{key:"user_verify_enterprise_require_real_name",label:"企业认证强制填写真实姓名",type:"switch",default:!1,dependsOn:{key:"user_verify_allow_apply",value:!0}},{key:"user_verify_desc",label:"申请介绍",type:"textarea",default:"认证用户会在昵称后显示认证徽章,同时享受多种优先待遇。申请请确保信息属实。",dependsOn:{key:"user_verify_allow_apply",value:!0}}]}]},ys={key:"users.wechat",title:"微信通知",icon:"fa fab fa-weixin",description:"配置微信模板消息、订阅/解绑和站外通知策略。",defaults:{wechat_notify_enabled:!1,wechat_app_id:"",wechat_app_secret:"",wechat_template_id:"",wechat_token:"",wechat_encoding_aes_key:"",wechat_notify_comment:!0,wechat_notify_reply:!0,wechat_notify_system:!0,wechat_bind_entry:!0},groups:[{key:"account",title:"公众号配置",icon:"fa fab fa-weixin",fields:[{key:"wechat_notify_enabled",label:"启用微信通知",type:"switch",default:!1,help:"开启后用户可绑定微信接收通知"},{key:"wechat_app_id",label:"AppID",type:"input",default:"",dependsOn:{key:"wechat_notify_enabled",value:!0}},{key:"wechat_app_secret",label:"AppSecret",type:"input",default:"",dependsOn:{key:"wechat_notify_enabled",value:!0}},{key:"wechat_template_id",label:"模板消息 ID",type:"input",default:"",dependsOn:{key:"wechat_notify_enabled",value:!0},help:"在微信公众平台申请的模板消息 ID"}]},{key:"verify",title:"服务器验证",icon:"fa fas fa-check-circle",fields:[{key:"wechat_token",label:"Token",type:"input",default:"",dependsOn:{key:"wechat_notify_enabled",value:!0},help:"微信公众平台服务器配置中的 Token"},{key:"wechat_encoding_aes_key",label:"EncodingAESKey",type:"input",default:"",dependsOn:{key:"wechat_notify_enabled",value:!0}}]},{key:"triggers",title:"通知触发器",icon:"fa fas fa-bell",fields:[{key:"wechat_notify_comment",label:"新评论通知",type:"switch",default:!0,dependsOn:{key:"wechat_notify_enabled",value:!0}},{key:"wechat_notify_reply",label:"评论回复通知",type:"switch",default:!0,dependsOn:{key:"wechat_notify_enabled",value:!0}},{key:"wechat_notify_system",label:"系统通知",type:"switch",default:!0,dependsOn:{key:"wechat_notify_enabled",value:!0}},{key:"wechat_bind_entry",label:"显示绑定入口",type:"switch",default:!0,dependsOn:{key:"wechat_notify_enabled",value:!0},help:"在用户中心显示微信绑定/解绑按钮"}]}]},cs={key:"users.report",title:"禁封/举报",icon:"fa fas fa-flag",description:"配置举报入口、公开限制提示和后续治理分类,为封禁/举报流程预留稳定结构。",defaults:{user_report_enabled:!1,user_report_public_entry:!0,user_report_public_notice:!0,user_report_ban_notice_text:"当前账号处于限制状态,部分互动能力已关闭。",user_report_categories:`spam|垃圾信息
|
||||
abuse|人身攻击
|
||||
copyright|版权投诉`,ban_preset_reason:`spam|垃圾信息
|
||||
abuse|人身攻击
|
||||
violation|违规操作`,ban_appeal_desc:"",ban_appeal_keys:"",user_report_img_s:!0,user_report_desc:""},groups:[{key:"entry",title:"前台入口",icon:"fa fas fa-sign-in-alt",fields:[{key:"user_report_enabled",label:"启用举报/禁封结构",type:"switch",default:!1},{key:"user_report_public_entry",label:"公开主页展示举报入口",type:"switch",default:!0,dependsOn:{key:"user_report_enabled",value:!0}},{key:"user_report_public_notice",label:"公开显示限制提示",type:"switch",default:!0,dependsOn:{key:"user_report_enabled",value:!0}},{key:"user_report_ban_notice_text",label:"限制提示文案",type:"input",default:"当前账号处于限制状态,部分互动能力已关闭。",dependsOn:{key:"user_report_public_notice",value:!0}}]},{key:"taxonomy",title:"举报分类",icon:"fa fas fa-list",fields:[{key:"user_report_categories",label:"举报分类",type:"textarea",default:`spam|垃圾信息
|
||||
abuse|人身攻击
|
||||
copyright|版权投诉`,help:"每行一个分类:slug|显示名称",dependsOn:{key:"user_report_enabled",value:!0}}]},{key:"ban",title:"禁封设置",icon:"fa fas fa-ban",fields:[{key:"ban_preset_reason",label:"预设封禁原因",type:"textarea",default:`spam|垃圾信息
|
||||
abuse|人身攻击
|
||||
violation|违规操作`,help:"每行一条:slug|显示名称",dependsOn:{key:"user_report_enabled",value:!0}},{key:"ban_appeal_desc",label:"申诉说明",type:"textarea",default:"",dependsOn:{key:"user_report_enabled",value:!0}},{key:"ban_appeal_keys",label:"申诉关键词",type:"input",default:"",help:"逗号分隔",dependsOn:{key:"user_report_enabled",value:!0}}]},{key:"image",title:"图片举报",icon:"fa fas fa-image",fields:[{key:"user_report_img_s",label:"启用图片举报",type:"switch",default:!0,dependsOn:{key:"user_report_enabled",value:!0}},{key:"user_report_desc",label:"举报说明",type:"textarea",default:"",dependsOn:{key:"user_report_img_s",value:!0}}]}]},fs={key:"users.sms",title:"短信接口",icon:"fa fas fa-comment",description:"配置短信验证码和短信通知服务的供应商、模板和限流策略。",defaults:{sms_enabled:!1,sms_provider:"aliyun",sms_number_limit_ch:!0,sms_access_key:"",sms_access_secret:"",sms_sign_name:"",sms_template_code:"",sms_code_length:6,sms_code_expire:300,sms_rate_limit:60,sms_daily_limit:10,sms_notify_bind:!0,sms_notify_login:!1,sms_notify_register:!0,sms_notify_reset_password:!0,sms_ali_api_type:"sms",sms_region_id:"cn-hangzhou",sms_tencent_app_id:"",sms_tencent_app_key:"",sms_tencent_secret_id:"",sms_tencent_secret_key:"",sms_tencent_region:"ap-guangzhou",sms_huawei_sender:"",sms_huawei_signature:"",sms_huawei_endpoint:"",sms_custom_url:"",sms_custom_method:"POST",sms_custom_auth_type:"header",sms_custom_auth_key:"",sms_custom_auth_value:"",sms_custom_headers:"",sms_custom_body:"",sms_custom_success_rule:""},groups:[{key:"provider",title:"供应商配置",icon:"fa fas fa-plug",fields:[{key:"sms_enabled",label:"启用短信服务",type:"switch",default:!1,help:"开启后支持短信验证码和短信通知"},{key:"sms_provider",label:"短信供应商",type:"select",default:"aliyun",options:[{label:"阿里云短信",value:"aliyun"},{label:"腾讯云短信",value:"tencent"},{label:"华为云短信",value:"huawei"},{label:"自定义接口",value:"custom"}],dependsOn:{key:"sms_enabled",value:!0}},{key:"sms_number_limit_ch",label:"仅发国内",type:"switch",default:!0,dependsOn:{key:"sms_enabled",value:!0},help:"开启后仅支持发送国内短信,关闭后可发送港澳台及国际短信"},{key:"sms_access_key",label:"AccessKey / SecretId / AppKey",type:"input",default:"",dependsOn:{key:"sms_enabled",value:!0},help:"阿里云填 AccessKey,腾讯云填 SecretId,华为云填 AppKey"},{key:"sms_access_secret",label:"AccessSecret / SecretKey / AppSecret",type:"input",inputType:"password",default:"",dependsOn:{key:"sms_enabled",value:!0}}]},{key:"aliyun",title:"阿里云配置",icon:"fa fas fa-cloud",fields:[{key:"sms_ali_api_type",label:"接口类型",type:"radio",default:"sms",options:[{label:"短信服务",value:"sms"},{label:"号码认证",value:"verify"}],dependsOn:{key:"sms_provider",value:"aliyun"}},{key:"sms_region_id",label:"RegionId",type:"input",default:"cn-hangzhou",dependsOn:{key:"sms_provider",value:"aliyun"}}]},{key:"tencent",title:"腾讯云配置",icon:"fa fas fa-cloud",fields:[{key:"sms_tencent_app_id",label:"SdkAppId",type:"input",default:"",dependsOn:{key:"sms_provider",value:"tencent"},help:"腾讯云短信应用 ID"},{key:"sms_tencent_app_key",label:"AppKey",type:"input",inputType:"password",default:"",dependsOn:{key:"sms_provider",value:"tencent"}},{key:"sms_tencent_secret_id",label:"SecretId",type:"input",default:"",dependsOn:{key:"sms_provider",value:"tencent"}},{key:"sms_tencent_secret_key",label:"SecretKey",type:"input",inputType:"password",default:"",dependsOn:{key:"sms_provider",value:"tencent"}},{key:"sms_tencent_region",label:"地域",type:"input",default:"ap-guangzhou",dependsOn:{key:"sms_provider",value:"tencent"}}]},{key:"huawei",title:"华为云配置",icon:"fa fas fa-cloud",fields:[{key:"sms_huawei_sender",label:"通道号 (sender)",type:"input",default:"",dependsOn:{key:"sms_provider",value:"huawei"}},{key:"sms_huawei_signature",label:"短信签名",type:"input",default:"",dependsOn:{key:"sms_provider",value:"huawei"},help:"华为云短信签名内容"},{key:"sms_huawei_endpoint",label:"API Endpoint",type:"input",default:"",dependsOn:{key:"sms_provider",value:"huawei"},help:"留空使用默认 endpoint"}]},{key:"custom",title:"自定义接口配置",icon:"fa fas fa-plug",fields:[{key:"sms_custom_url",label:"请求 URL",type:"input",default:"",dependsOn:{key:"sms_provider",value:"custom"},help:"支持 {phone} {code} {time} 变量"},{key:"sms_custom_method",label:"请求方法",type:"select",default:"POST",options:[{label:"POST",value:"POST"},{label:"GET",value:"GET"},{label:"PUT",value:"PUT"}],dependsOn:{key:"sms_provider",value:"custom"}},{key:"sms_custom_auth_type",label:"鉴权方式",type:"select",default:"header",options:[{label:"Header",value:"header"}],dependsOn:{key:"sms_provider",value:"custom"}},{key:"sms_custom_auth_key",label:"鉴权 Header 名",type:"input",default:"",dependsOn:{key:"sms_provider
Line truncated
|
||||
98|108|推荐包`,pay_balance_product_name:"",pay_balance_price:0,pay_balance_tag:"元",pay_balance_tag_class:"",pay_balance_product_custom_s:!0,pay_balance_product_custom_limit:9999,pay_balance_transfer_s:!1,pay_balance_transfer_service_charge:0,pay_balance_transfer_desc:"",pay_balance_pass_charge_s:!1,pay_balance_pass_charge_desc:"",pay_balance_pass_charge_only_password:!1,pay_balance_points_exchange_s:!1,pay_balance_points_exchange_rate:100,pay_balance_points_exchange_min_points:100,pay_balance_points_exchange_daily_max_points:1e5,pay_balance_points_exchange_desc:""},groups:[{key:"basic",title:"充值开关",icon:"fa fas fa-credit-card",fields:[{key:"pay_balance_s",label:"启用余额功能",type:"switch",default:!0,help:"开启后用户中心显示现金钱包,并默认允许余额支付(可在收款接口单独关闭)。充值需另配支付宝/微信等外部网关。"},{key:"pay_balance_desc",label:"充值说明",type:"textarea",default:"",dependsOn:{key:"pay_balance_s",value:!0}}]},{key:"packages",title:"充值套餐",icon:"fa fas fa-folder-open",fields:[{key:"pay_balance_product",label:"套餐列表",type:"textarea",default:`30|30|入门包
|
||||
98|108|推荐包`,help:"每行一个套餐:支付金额|到账金额|标题",dependsOn:{key:"pay_balance_s",value:!0}}]},{key:"product",title:"充值产品",icon:"fa fas fa-archive",fields:[{key:"pay_balance_product_name",label:"充值产品",type:"input",default:"",dependsOn:{key:"pay_balance_s",value:!0}},{key:"pay_balance_price",label:"充值价格",type:"number",default:0,min:0,max:99999,dependsOn:{key:"pay_balance_s",value:!0}},{key:"pay_balance_tag",label:"价格标签",type:"input",default:"元",dependsOn:{key:"pay_balance_s",value:!0}},{key:"pay_balance_tag_class",label:"标签样式",type:"input",default:"",dependsOn:{key:"pay_balance_s",value:!0}},{key:"pay_balance_product_custom_s",label:"自定义金额",type:"switch",default:!0,dependsOn:{key:"pay_balance_s",value:!0}},{key:"pay_balance_product_custom_limit",label:"自定义金额限制",type:"number",default:9999,min:1,max:99999,dependsOn:{key:"pay_balance_s",value:!0}}]},{key:"transfer",title:"余额转账",icon:"fa fas fa-exchange-alt",fields:[{key:"pay_balance_transfer_s",label:"启用余额转账",type:"switch",default:!1},{key:"pay_balance_transfer_service_charge",label:"转账手续费(%)",type:"number",default:0,min:0,max:50,dependsOn:{key:"pay_balance_transfer_s",value:!0}},{key:"pay_balance_transfer_desc",label:"转账说明",type:"textarea",default:"",dependsOn:{key:"pay_balance_transfer_s",value:!0}}]},{key:"pass-charge",title:"充值卡免扣",icon:"fa fas fa-ticket-alt",fields:[{key:"pay_balance_pass_charge_s",label:"启用余额卡密兑换",type:"switch",default:!1},{key:"pay_balance_pass_charge_desc",label:"卡密兑换说明",type:"textarea",default:"",dependsOn:{key:"pay_balance_pass_charge_s",value:!0}},{key:"pay_balance_pass_charge_only_password",label:"仅密码兑换",type:"switch",default:!1,dependsOn:{key:"pay_balance_pass_charge_s",value:!0}}]},{key:"exchange",title:"余额兑换积分",icon:"fa fas fa-database",fields:[{key:"pay_balance_points_exchange_s",label:"启用余额兑换积分",type:"switch",default:!1,dependsOn:{key:"pay_balance_s",value:!0}},{key:"pay_balance_points_exchange_rate",label:"兑换比例",type:"number",default:100,min:1,max:1e4,help:"1 余额 = N 积分",dependsOn:{key:"pay_balance_points_exchange_s",value:!0}},{key:"pay_balance_points_exchange_min_points",label:"单笔最低购买积分",type:"number",default:100,min:1,max:1e7,dependsOn:{key:"pay_balance_points_exchange_s",value:!0}},{key:"pay_balance_points_exchange_daily_max_points",label:"每日最高购买积分",type:"number",default:1e5,min:1,max:1e7,dependsOn:{key:"pay_balance_points_exchange_s",value:!0}},{key:"pay_balance_points_exchange_desc",label:"兑换说明",type:"textarea",default:"",dependsOn:{key:"pay_balance_points_exchange_s",value:!0}}]}]},ks={key:"payment.vip",title:"VIP会员",icon:"fa fas fa-gem",description:"对齐 legacy 双级会员:分档套餐、权益、续费/升级与积分兑换。",defaults:{nav_pay_vip:!0,nav_user_pay_vip:!0,pay_user_vip_1_s:!0,pay_user_vip_1_name:"一级会员",pay_user_vip_1_desc:"尊享一级会员特权",pay_user_vip_1_equity:"<li>免费下载部分资源</li><li>会员专属身份标识</li><li>付费内容会员价</li>",vip_1_product_s:!0,payment_vip_1_products:`30|59|1|month|限时|月卡
|
||||
98|199|3|month|特惠|季卡
|
||||
365|599|12|month|超值|年卡
|
||||
999|1299|0|day|永久|永久卡`,vip_1_img_icon:"",pay_user_vip_2_s:!0,pay_user_vip_2_name:"二级会员",pay_user_vip_2_desc:"尊享二级会员特权",pay_user_vip_2_equity:"<li>更高免费下载额度</li><li>更高等级身份标识</li><li>更多付费内容会员价</li>",vip_2_product_s:!0,payment_vip_2_products:`58|99|1|month|限时|月卡
|
||||
168|299|3|month|特惠|季卡
|
||||
598|999|12|month|超值|年卡
|
||||
1299|1999|0|day|永久|永久卡`,vip_2_img_icon:"",pay_user_vip_desc:"",pay_user_vip_more:"",pay_download_limit:0,pay_download_limit_vip_1:0,pay_download_limit_vip_2:0,pay_vip_pass_charge_s:!1,pay_vip_pass_charge_desc:"",pay_vip_pass_charge_only_password:!0,pay_vip_points_exchange_s:!1,pay_vip_points_exchange_desc:"",payment_vip_points_packages:`1|500|30|积分月卡
|
||||
1|5000|0|积分永久`,vip_renew:!0,vip_renew_desc:"",vip_renew_price_type:"discount",vip_renew_discount:8,vip_renew_reduce:"20.00",vip_upgrade:!0,vip_upgrade_desc:"",vip_upgrade_product:`unit|1|按剩余天数升级
|
||||
jump|199|升级永久二级会员
|
||||
permanent|299|永久一级升永久二级`},groups:[{key:"basic",title:"会员等级",icon:"fa fas fa-user",fields:[{key:"nav_pay_vip",label:"导航栏购买按钮",type:"switch",default:!0,help:"在顶部导航栏显示开通会员按钮;请注意顶部导航的整体宽度。"},{key:"nav_user_pay_vip",label:"用户框购买按钮",type:"switch",default:!0,help:"在导航栏用户框内显示开通会员按钮。"},{key:"pay_user_vip_1_s",label:"启用一级会员",type:"switch",default:!0},{key:"pay_user_vip_1_name",label:"一级会员名称",type:"input",default:"一级会员",dependsOn:{key:"pay_user_vip_1_s",value:!0}},{key:"pay_user_vip_1_desc",label:"一级会员一句话简介",type:"input",default:"尊享一级会员特权",dependsOn:{key:"pay_user_vip_1_s",value:!0}},{key:"pay_user_vip_1_equity",label:"一级会员权益 HTML",type:"textarea",default:"<li>免费下载部分资源</li><li>会员专属身份标识</li><li>付费内容会员价</li>",dependsOn:{key:"pay_user_vip_1_s",value:!0},help:"建议使用 <li> 列表项"},{key:"vip_1_img_icon",label:"一级会员图标 URL",type:"input",default:"",dependsOn:{key:"pay_user_vip_1_s",value:!0},help:"留空使用内置 vip-1.svg 图标"},{key:"pay_user_vip_2_s",label:"启用二级会员",type:"switch",default:!0},{key:"pay_user_vip_2_name",label:"二级会员名称",type:"input",default:"二级会员",dependsOn:{key:"pay_user_vip_2_s",value:!0}},{key:"pay_user_vip_2_desc",label:"二级会员一句话简介",type:"input",default:"尊享二级会员特权",dependsOn:{key:"pay_user_vip_2_s",value:!0}},{key:"pay_user_vip_2_equity",label:"二级会员权益 HTML",type:"textarea",default:"<li>更高免费下载额度</li><li>更高等级身份标识</li><li>更多付费内容会员价</li>",dependsOn:{key:"pay_user_vip_2_s",value:!0}},{key:"vip_2_img_icon",label:"二级会员图标 URL",type:"input",default:"",dependsOn:{key:"pay_user_vip_2_s",value:!0},help:"留空使用内置 vip-2.svg 图标"},{key:"pay_user_vip_desc",label:"弹窗顶部会员说明",type:"textarea",default:""},{key:"pay_user_vip_more",label:"弹窗底部补充说明 HTML",type:"textarea",default:""}]},{key:"packages",title:"分档套餐",icon:"fa fas fa-gem",fields:[{key:"vip_1_product_s",label:"允许购买一级会员",type:"switch",default:!0,dependsOn:{key:"pay_user_vip_1_s",value:!0}},{key:"payment_vip_1_products",label:"一级会员套餐",type:"textarea",default:`30|59|1|month|限时|月卡
|
||||
98|199|3|month|特惠|季卡
|
||||
365|599|12|month|超值|年卡
|
||||
999|1299|0|day|永久|永久卡`,dependsOn:{key:"vip_1_product_s",value:!0},help:"每行:执行价|原价|时长|单位(day|month)|标签|标题;时长 0=永久"},{key:"vip_2_product_s",label:"允许购买二级会员",type:"switch",default:!0,dependsOn:{key:"pay_user_vip_2_s",value:!0}},{key:"payment_vip_2_products",label:"二级会员套餐",type:"textarea",default:`58|99|1|month|限时|月卡
|
||||
168|299|3|month|特惠|季卡
|
||||
598|999|12|month|超值|年卡
|
||||
1299|1999|0|day|永久|永久卡`,dependsOn:{key:"vip_2_product_s",value:!0},help:"每行:执行价|原价|时长|单位(day|month)|标签|标题;时长 0=永久"}]},{key:"points_exchange",title:"积分兑换会员",icon:"fa fas fa-database",fields:[{key:"pay_vip_points_exchange_s",label:"启用积分兑换",type:"switch",default:!1},{key:"payment_vip_points_packages",label:"兑换套餐",type:"textarea",default:`1|500|30|积分月卡
|
||||
1|5000|0|积分永久`,dependsOn:{key:"pay_vip_points_exchange_s",value:!0},help:"每行:等级|积分|天数|标题(天数 0=永久;仅未开通会员可兑)"},{key:"pay_vip_points_exchange_desc",label:"兑换说明",type:"textarea",default:"",dependsOn:{key:"pay_vip_points_exchange_s",value:!0}}]},{key:"benefit",title:"下载权益",icon:"fa fas fa-gift",fields:[{key:"pay_download_limit",label:"普通用户下载限制",type:"number",default:0,min:0,max:9999,help:"0为不限制"},{key:"pay_download_limit_vip_1",label:"一级会员下载限制",type:"number",default:0,min:0,max:9999,dependsOn:{key:"pay_user_vip_1_s",value:!0}},{key:"pay_download_limit_vip_2",label:"二级会员下载限制",type:"number",default:0,min:0,max:9999,dependsOn:{key:"pay_user_vip_2_s",value:!0}},{key:"pay_vip_pass_charge_s",label:"会员卡密兑换",type:"switch",default:!1},{key:"pay_vip_pass_charge_desc",label:"卡密兑换说明",type:"textarea",default:"",dependsOn:{key:"pay_vip_pass_charge_s",value:!0}},{key:"pay_vip_pass_charge_only_password",label:"仅密码兑换",type:"switch",default:!0,dependsOn:{key:"pay_vip_pass_charge_s",value:!0},help:"开启后只需输入卡密;关闭则需卡号+卡密。"}]},{key:"renew",title:"续费设置",icon:"fa fas fa-sync-alt",fields:[{key:"vip_renew",label:"允许续费",type:"switch",default:!0},{key:"vip_renew_desc",label:"续费说明",type:"textarea",default:"",dependsOn:{key:"vip_renew",value:!0}},{key:"vip_renew_price_type",label:"续费价格类型",type:"radio",default:"discount",options:[{label:"相同价格",value:"same"},{label:"折扣价格",value:"discount"},{label:"优惠立减",value:"reduce"}],dependsOn:{key:"vip_renew",value:!0}},{key:"vip_renew_discount",label:"续费折扣(折,如 8=八折)",type:"number",default:8,min:1,max:100,dependsOn:{key:"vip_renew_price_type",value:"discount"}},{key:"vip_renew_reduce",label:"续费减免金额",type:"input",sanitize_type:"money_decimal",default:"20.00",min:0,max:9999,dependsOn:{key:"vip_renew_price_type",value:"reduce"}}]},{key:"upgrade",title:"升级设置",icon:"fa fas fa-arrow-up",fields:[{key:"vip_upgrade",label:"允许升级",type:"switch",default:!0},{key:"vip_upgrade_desc",label:"升级说明",type:"textarea",default:"",dependsOn:{key:"vip_upgrade",value:!0}},{key:"vip_upgrade_product",label:"升级产品",type:"textarea",default:`unit|1|按剩余天数升级
|
||||
jump|199|升级永久二级会员
|
||||
permanent|299|永久一级升永久二级`,dependsOn:{key:"vip_upgrade",value:!0},help:"每行一条。永久VIP1升级:permanent|价格|标题;按剩余天:unit|每日单价|标题;限时跳转永久:jump|价格|标题"}]}]},hs={key:"payment.revenue",title:"创作中心",icon:"fa fas fa-chart-line",description:"分别配置现金收益和积分收益的会员分成比例,结算周期结束后自动入账。",defaults:{pay_income_s:!1,payment_revenue_cycle_days:30,payment_revenue_note:"<p>订单完成并经过结算周期后,作者分成会自动转入对应的钱包。</p>",payment_revenue_cash_ratio_user:60,payment_revenue_cash_ratio_vip_1:70,payment_revenue_cash_ratio_vip_2:80,payment_revenue_points_ratio_user:0,payment_revenue_points_ratio_vip_1:0,payment_revenue_points_ratio_vip_2:0},groups:[{key:"basic",title:"创作中心设置",icon:"fa fas fa-cog",fields:[{key:"pay_income_s",label:"启用创作分成",type:"switch",default:!1},{key:"payment_revenue_cycle_days",label:"结算周期(天)",type:"number",default:30,min:1,max:365,dependsOn:{key:"pay_income_s",value:!0}},{key:"payment_revenue_note",label:"结算备注文案",type:"textarea",sanitize_type:"html",default:"<p>订单完成并经过结算周期后,作者分成会自动转入对应的钱包。</p>",help:"支持安全 HTML,结算后会展示在前台创作中心。",dependsOn:{key:"pay_income_s",value:!0}}]},{key:"cash",title:"现金收益分成",icon:"fa fas fa-credit-card",fields:[{key:"payment_revenue_cash_ratio_user",label:"普通用户分成比例(%)",type:"number",default:60,min:0,max:100,dependsOn:{key:"pay_income_s",value:!0}},{key:"payment_revenue_cash_ratio_vip_1",label:"一级会员分成比例(%)",type:"number",default:70,min:0,max:100,dependsOn:{key:"pay_income_s",value:!0}},{key:"payment_revenue_cash_ratio_vip_2",label:"二级会员分成比例(%)",type:"number",default:80,min:0,max:100,dependsOn:{key:"pay_income_s",value:!0}}]},{key:"points",title:"积分收益分成",icon:"fa fas fa-database",fields:[{key:"payment_revenue_points_ratio_user",label:"普通用户分成比例(%)",type:"number",default:0,min:0,max:100,dependsOn:{key:"pay_income_s",value:!0}},{key:"payment_revenue_points_ratio_vip_1",label:"一级会员分成比例(%)",type:"number",default:0,min:0,max:100,dependsOn:{key:"pay_income_s",value:!0}},{key:"payment_revenue_points_ratio_vip_2",label:"二级会员分成比例(%)",type:"number",default:0,min:0,max:100,dependsOn:{key:"pay_income_s",value:!0}}]}]},vs={key:"payment.affiliate",title:"推广返佣",icon:"fa fas fa-share-alt",description:"配置推广归因、分级佣金比例和结算规则。",defaults:{affiliate_enabled:!1,affiliate_ratio_user:5,affiliate_ratio_vip_1:5,affiliate_ratio_vip_2:5,affiliate_order_types:["membership","content"],affiliate_settlement_days:7,affiliate_promotion_text:""},groups:[{key:"policy",title:"返佣策略",icon:"fa fas fa-sitemap",fields:[{key:"affiliate_enabled",label:"启用推广返佣",type:"switch",default:!1},{key:"affiliate_ratio_user",label:"普通会员佣金比例(%)",type:"number",default:5,min:0,max:100,dependsOn:{key:"affiliate_enabled",value:!0}},{key:"affiliate_ratio_vip_1",label:"一级会员佣金比例(%)",type:"number",default:5,min:0,max:100,dependsOn:{key:"affiliate_enabled",value:!0}},{key:"affiliate_ratio_vip_2",label:"二级会员佣金比例(%)",type:"number",default:5,min:0,max:100,dependsOn:{key:"affiliate_enabled",value:!0}},{key:"affiliate_order_types",label:"适用订单类型",type:"checkbox",default:["membership","content"],sanitize_type:"array",options:[{label:"会员订单",value:"membership"},{label:"付费内容",value:"content"},{label:"购买积分",value:"credits"}],dependsOn:{key:"affiliate_enabled",value:!0}},{key:"affiliate_settlement_days",label:"结算观察期(天)",type:"number",default:7,min:0,max:90,dependsOn:{key:"affiliate_enabled",value:!0}}]},{key:"text",title:"文案设置",icon:"fa fas fa-pen",fields:[{key:"affiliate_promotion_text",label:"推广说明",type:"textarea",default:"",dependsOn:{key:"affiliate_enabled",value:!0}}]}]},gs={key:"payment.gateway",title:"收款接口",icon:"fa fas fa-credit-card",description:"管理已支持的收款通道:余额、支付宝、微信、PayPal、Stripe、易支付与卡密兑换。开启渠道后展开填写凭据。",defaults:{payment_wechat_enabled:!1,payment_alipay_enabled:!1,payment_paypal_enabled:!1,payment_stripe_enabled:!1,payment_epay_enabled:!1,payment_balance_enabled:!0,payment_card_pass_enabled:!1,wechat_merchantid:"",wechat_appid:"",wechat_payment_type:"native",wechat_api_v3_key:"",wechat_private_key_path:"",wechat_cert_path:"",alipay_appid:"",alipay_privatekey:"",alipay_payment_type:"page",alipay_app_public_cert_path:"",alipay_public_cert_path:"",alipay_root_cert_path:"",paypal_client_id:"",paypal_client_secret:"",paypal_currency:"USD",paypal_sandbox:!0,stripe_secret_key:"",stripe_publishable_key:"",stripe_webhook_secret:"",stripe_currency:"usd",stripe_tes
Line truncated
|
||||
Reference in new issue
Block a user