feat(payment): align VIP/balance/order schema keys with Zibll

Extract payment readers into AKSRT_Settings_Payment_Runtime and store
canonical Zibll option IDs (pay_user_vip_*, pay_balance_*, pay_box_position,
pay_mark, pay_rebate_*, pay_income_*) in aksrt_settings with no legacy
payment_* dual-read. Update PHP/JS payment schemas and VIP sidebar gate.
This commit is contained in:
2026-07-11 17:13:29 +08:00
parent 80d2c5fbc3
commit d9fbacbce6
12 changed files with 703 additions and 554 deletions
@@ -4,23 +4,23 @@ export const affiliateSchema = {
icon: 'fas fa-share-alt',
description: '配置返佣比例、归因窗口和结算说明。',
defaults: {
payment_affiliate_enabled: false,
payment_affiliate_ratio: 10,
pay_rebate_s: false,
pay_rebate_ratio: 10,
payment_affiliate_window_days: 30,
payment_affiliate_require_paid_order: true,
payment_affiliate_self_s: true,
payment_affiliate_show_users: true,
pay_rebate_self_s: true,
pay_rebate_show_users: true,
payment_affiliate_user_ratio: 10,
payment_affiliate_vip1_ratio: 0,
payment_affiliate_vip2_ratio: 0,
payment_affiliate_poster_s: true,
payment_affiliate_poster_img: '',
payment_affiliate_poster_title: '',
payment_affiliate_poster_desc: '',
payment_affiliate_text_desc: '',
payment_affiliate_text_details_title: '',
payment_affiliate_text_details: '',
payment_affiliate_text_discount: '',
pay_rebate_ratio_vip_1: 0,
pay_rebate_ratio_vip_2: 0,
pay_rebate_poster_s: true,
pay_rebate_poster_img: '',
pay_rebate_poster_title: '',
pay_rebate_poster_desc: '',
pay_rebate_text_desc: '',
pay_rebate_text_details_title: '',
pay_rebate_text_details: '',
pay_rebate_text_discount: '',
payment_affiliate_note: '返佣链路复用邀请体系,订单归因和结算自动衔接当前策略字段。',
},
groups: [
@@ -29,12 +29,12 @@ export const affiliateSchema = {
title: '返佣策略',
icon: 'fas fa-project-diagram',
fields: [
{ key: 'payment_affiliate_enabled', label: '启用推广返佣结构', type: 'switch', default: false },
{ key: 'payment_affiliate_ratio', label: '返佣比例(%)', type: 'number', default: 10, min: 0, max: 100, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_window_days', label: '归因窗口(天)', type: 'number', default: 30, min: 1, max: 365, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_require_paid_order', label: '仅对已支付订单返佣', type: 'switch', default: true, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_self_s', label: '自购返佣', type: 'switch', default: true, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_show_users', label: '显示推广用户', type: 'switch', default: true, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'pay_rebate_s', label: '启用推广返佣结构', type: 'switch', default: false },
{ key: 'pay_rebate_ratio', label: '返佣比例(%)', type: 'number', default: 10, min: 0, max: 100, dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'payment_affiliate_window_days', label: '归因窗口(天)', type: 'number', default: 30, min: 1, max: 365, dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'payment_affiliate_require_paid_order', label: '仅对已支付订单返佣', type: 'switch', default: true, dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_self_s', label: '自购返佣', type: 'switch', default: true, dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_show_users', label: '显示推广用户', type: 'switch', default: true, dependsOn: { key: 'pay_rebate_s', value: true } },
],
},
{
@@ -42,9 +42,9 @@ export const affiliateSchema = {
title: '用户返佣比例',
icon: 'fas fa-users-cog',
fields: [
{ key: 'payment_affiliate_user_ratio', label: '普通用户比例(%)', type: 'number', default: 10, min: 0, max: 100, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_vip1_ratio', label: 'VIP1比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_vip2_ratio', label: 'VIP2比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_user_ratio', label: '普通用户比例(%)', type: 'number', default: 10, min: 0, max: 100, dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_ratio_vip_1', label: 'VIP1比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_ratio_vip_2', label: 'VIP2比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'pay_rebate_s', value: true } },
],
},
{
@@ -52,10 +52,10 @@ export const affiliateSchema = {
title: '推广海报',
icon: 'fas fa-image',
fields: [
{ key: 'payment_affiliate_poster_s', label: '启用推广海报', type: 'switch', default: true, dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_poster_img', label: '海报背景图', type: 'media', default: '', dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_poster_title', label: '海报标题', type: 'input', default: '', dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_poster_desc', label: '海报描述', type: 'input', default: '', dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'pay_rebate_poster_s', label: '启用推广海报', type: 'switch', default: true, dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_poster_img', label: '海报背景图', type: 'media', default: '', dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_poster_title', label: '海报标题', type: 'input', default: '', dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_poster_desc', label: '海报描述', type: 'input', default: '', dependsOn: { key: 'pay_rebate_s', value: true } },
],
},
{
@@ -63,10 +63,10 @@ export const affiliateSchema = {
title: '文案设置',
icon: 'fas fa-pen-fancy',
fields: [
{ key: 'payment_affiliate_text_desc', label: '返佣说明', type: 'textarea', default: '', dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_text_details_title', label: '明细标题', type: 'input', default: '', dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_text_details', label: '明细说明', type: 'textarea', default: '', dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'payment_affiliate_text_discount', label: '折扣文案', type: 'input', default: '', dependsOn: { key: 'payment_affiliate_enabled', value: true } },
{ key: 'pay_rebate_text_desc', label: '返佣说明', type: 'textarea', default: '', dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_text_details_title', label: '明细标题', type: 'input', default: '', dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_text_details', label: '明细说明', type: 'textarea', default: '', dependsOn: { key: 'pay_rebate_s', value: true } },
{ key: 'pay_rebate_text_discount', label: '折扣文案', type: 'input', default: '', dependsOn: { key: 'pay_rebate_s', value: true } },
],
},
],
@@ -6,16 +6,16 @@ export const orderSchema = {
defaults: {
payment_order_prefix: 'AKSRT',
payment_order_expiry: 30,
payment_show_user: true,
payment_show_paycount: true,
payment_no_logged_in: true,
payment_cookie_day: 15,
payment_no_logged_remind: '您当前未登录!建议登陆后购买,可保存购买订单',
payment_wait_float_s: true,
pay_show_user: true,
pay_show_paycount: true,
pay_no_logged_in: true,
pay_cookie_day: 15,
pay_no_logged_remind: '您当前未登录!建议登陆后购买,可保存购买订单',
pay_wait_float_s: true,
payment_order_max_minutes: 30,
payment_mark: '付费',
payment_box_position: 'content',
payment_free_logged_show: false,
pay_mark: '付费',
pay_box_position: 'top',
pay_free_logged_show: false,
payment_show_ip: false,
payment_show_device: false,
payment_show_order_no: true,
@@ -28,11 +28,11 @@ export const orderSchema = {
payment_order_status_refunded: '已退款',
payment_order_status_refunding: '退款中',
payment_order_status_processing: '处理中',
payment_service: '',
payment_service_icon: '',
payment_service_value: '',
payment_service_qq: '',
payment_service_wechat: '',
pay_service: '',
pay_service_icon: '',
pay_service_value: '',
pay_service_qq: '',
pay_service_wechat: '',
},
groups: [
{
@@ -42,12 +42,12 @@ export const orderSchema = {
fields: [
{ key: 'payment_order_prefix', label: '订单前缀', type: 'input', default: 'AKSRT' },
{ key: 'payment_order_expiry', label: '订单有效期(分钟)', type: 'number', default: 30, min: 5, max: 1440 },
{ key: 'payment_show_user', label: '显示用户信息', type: 'switch', default: true },
{ key: 'payment_show_paycount', label: '显示购买次数', type: 'switch', default: true },
{ key: 'payment_no_logged_in', label: '未登录提示', type: 'switch', default: true },
{ key: 'payment_cookie_day', label: 'Cookie有效期(天)', type: 'number', default: 15, min: 1, max: 31, help: '未登录购买 Cookie 有效时间,1-31 天' },
{ key: 'payment_no_logged_remind', label: '未登录提醒文案', type: 'textarea', default: '您当前未登录!建议登陆后购买,可保存购买订单', help: '未登录用户查看付费内容时的提醒文案' },
{ key: 'payment_wait_float_s', label: '订单等待浮动', type: 'switch', default: true },
{ key: 'pay_show_user', label: '显示用户信息', type: 'switch', default: true },
{ key: 'pay_show_paycount', label: '显示购买次数', type: 'switch', default: true },
{ key: 'pay_no_logged_in', label: '未登录提示', type: 'switch', default: true },
{ key: 'pay_cookie_day', label: 'Cookie有效期(天)', type: 'number', default: 15, min: 1, max: 31, help: '未登录购买 Cookie 有效时间,1-31 天' },
{ key: 'pay_no_logged_remind', label: '未登录提醒文案', type: 'textarea', default: '您当前未登录!建议登陆后购买,可保存购买订单', help: '未登录用户查看付费内容时的提醒文案' },
{ key: 'pay_wait_float_s', label: '订单等待浮动', type: 'switch', default: true },
{ key: 'payment_order_max_minutes', label: '订单最大支付时间(分钟)', type: 'number', default: 30, min: 5, max: 1440 },
],
},
@@ -56,9 +56,9 @@ export const orderSchema = {
title: '展示设置',
icon: 'fas fa-eye',
fields: [
{ key: 'payment_mark', label: '付费标记', type: 'input', default: '付费' },
{ key: 'payment_box_position', label: '付费框位置', type: 'radio', default: 'top', options: [{ label: '内容顶部(正文前)', value: 'top' }, { label: '内容底部(正文后)', value: 'bottom' }] },
{ key: 'payment_free_logged_show', label: '登录用户显示免费', type: 'switch', default: false },
{ key: 'pay_mark', label: '付费标记', type: 'input', default: '付费' },
{ key: 'pay_box_position', label: '付费框位置', type: 'radio', default: 'top', options: [{ label: '内容顶部(正文前)', value: 'top' }, { label: '内容底部(正文后)', value: 'bottom' }] },
{ key: 'pay_free_logged_show', label: '登录用户显示免费', type: 'switch', default: false },
{ key: 'payment_show_ip', label: '显示用户IP', type: 'switch', default: false },
{ key: 'payment_show_device', label: '显示设备信息', type: 'switch', default: false },
{ key: 'payment_show_order_no', label: '显示订单号', type: 'switch', default: true },
@@ -85,11 +85,11 @@ export const orderSchema = {
title: '服务设置',
icon: 'fas fa-headset',
fields: [
{ key: 'payment_service', label: '客服设置', type: 'textarea', default: '' },
{ key: 'payment_service_icon', label: '客服图标', type: 'icon', default: '' },
{ key: 'payment_service_value', label: '客服内容', type: 'input', default: '' },
{ key: 'payment_service_qq', label: 'QQ客服', type: 'input', default: '' },
{ key: 'payment_service_wechat', label: '微信客服', type: 'media', default: '' },
{ key: 'pay_service', label: '客服设置', type: 'textarea', default: '' },
{ key: 'pay_service_icon', label: '客服图标', type: 'icon', default: '' },
{ key: 'pay_service_value', label: '客服内容', type: 'input', default: '' },
{ key: 'pay_service_qq', label: 'QQ客服', type: 'input', default: '' },
{ key: 'pay_service_wechat', label: '微信客服', type: 'media', default: '' },
],
},
],
@@ -9,11 +9,11 @@ export const paidSchema = {
payment_vip_exempt_roles: '',
payment_paid_catalog_note: '',
payment_manual_delivery_note: '付费或人工确认内容请在订单备注中记录交付方式。',
payment_paid_mark: '付费',
pay_mark: '付费',
payment_currency_symbol: '¥',
payment_paid_show_user: true,
payment_paid_show_paycount: true,
payment_paid_box_position: 'top',
pay_show_user: true,
pay_show_paycount: true,
pay_box_position: 'top',
payment_download_enable: false,
payment_download_remote_s: true,
payment_download_verify_nonce: true,
@@ -47,11 +47,11 @@ export const paidSchema = {
title: '展示设置',
icon: 'fas fa-eye',
fields: [
{ key: 'payment_paid_mark', label: '付费标记', type: 'input', default: '付费' },
{ key: 'pay_mark', label: '付费标记', type: 'input', default: '付费' },
{ key: 'payment_currency_symbol', label: '货币符号', type: 'input', default: '¥', help: '商品价格前缀,如 ¥、$、¥' },
{ key: 'payment_paid_show_user', label: '显示购买用户', type: 'switch', default: true },
{ key: 'payment_paid_show_paycount', label: '显示购买次数', type: 'switch', default: true },
{ key: 'payment_paid_box_position', label: '付费框位置', type: 'radio', default: 'top', options: [{ label: '内容顶部(正文前)', value: 'top' }, { label: '内容底部(正文后)', value: 'bottom' }] },
{ key: 'pay_show_user', label: '显示购买用户', type: 'switch', default: true },
{ key: 'pay_show_paycount', label: '显示购买次数', type: 'switch', default: true },
{ key: 'pay_box_position', label: '付费框位置', type: 'radio', default: 'top', options: [{ label: '内容顶部(正文前)', value: 'top' }, { label: '内容底部(正文后)', value: 'bottom' }] },
],
},
{
@@ -4,27 +4,25 @@ export const rechargeSchema = {
icon: 'fas fa-charging-station',
description: '配置测试充值、手动确认和充值套餐结构。',
defaults: {
payment_recharge_enabled: true,
payment_recharge_mode: 'manual_review',
payment_recharge_desc: '',
payment_recharge_auto_to_balance: true,
payment_recharge_packages: '30|30|入门包\n98|108|推荐包',
payment_recharge_help: '当前支持人工确认与测试联调;接入真实网关时复用同一组字段。',
payment_recharge_product: '',
payment_recharge_price: 0,
payment_recharge_tag: '元',
payment_recharge_tag_class: '',
payment_recharge_custom_s: true,
payment_recharge_custom_limit: 9999,
payment_balance_transfer_s: false,
payment_balance_transfer_service_charge: 0,
payment_balance_transfer_desc: '',
payment_recharge_pass_charge_s: false,
payment_recharge_pass_charge_desc: '',
payment_recharge_pass_charge_only_password: false,
payment_recharge_exchange_s: false,
payment_recharge_exchange_rate: 100,
payment_recharge_exchange_desc: '',
pay_balance_s: true,
pay_balance_desc: '',
pay_auto_to_balance: true,
pay_balance_product: '30|30|入门包\n98|108|推荐包',
pay_balance_product_name: '',
pay_balance_price: 0,
pay_balance_tag: '元',
pay_balance_tag_class: '',
pay_balance_product_custom_s: true,
pay_balance_product_custom_limit: 9999,
pay_balance_transfer_s: false,
pay_balance_transfer_service_charge: 0,
pay_balance_transfer_desc: '',
pay_balance_pass_charge_s: false,
pay_balance_pass_charge_desc: '',
pay_balance_pass_charge_only_password: false,
pay_balance_exchange_s: false,
pay_balance_exchange_rate: 100,
pay_balance_exchange_desc: '',
},
groups: [
{
@@ -32,10 +30,10 @@ export const rechargeSchema = {
title: '充值开关',
icon: 'fas fa-wallet',
fields: [
{ key: 'payment_recharge_enabled', label: '启用余额充值结构', type: 'switch', default: true },
{ key: 'payment_recharge_mode', label: '充值模式', type: 'radio', default: 'manual_review', options: [{ label: '人工确认', value: 'manual_review' }, { label: '测试网关', value: 'test_gateway' }], dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_desc', label: '充值说明', type: 'textarea', default: '', dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_auto_to_balance', label: '自动到账到余额', type: 'switch', default: true, dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'pay_balance_s', label: '启用余额功能', type: 'switch', default: true },
{ key: 'payment_recharge_mode', label: '充值模式', type: 'radio', default: 'manual_review', options: [{ label: '人工确认', value: 'manual_review' }, { label: '测试网关', value: 'test_gateway' }], dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_balance_desc', label: '充值说明', type: 'textarea', default: '', dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_auto_to_balance', label: '自动到账到余额', type: 'switch', default: true, dependsOn: { key: 'pay_balance_s', value: true } },
],
},
{
@@ -43,8 +41,8 @@ export const rechargeSchema = {
title: '充值套餐',
icon: 'fas fa-box-open',
fields: [
{ key: 'payment_recharge_packages', label: '套餐列表', type: 'textarea', default: '30|30|入门包\n98|108|推荐包', help: '每行一个套餐:支付金额|到账金额|标题', dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_help', label: '帮助文案', type: 'textarea', default: '当前支持人工确认与测试联调;接入真实网关时复用同一组字段。', dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'pay_balance_product', label: '套餐列表', type: 'textarea', default: '30|30|入门包\n98|108|推荐包', help: '每行一个套餐:支付金额|到账金额|标题', dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'payment_recharge_help', label: '帮助文案', type: 'textarea', default: '当前支持人工确认与测试联调;接入真实网关时复用同一组字段。', dependsOn: { key: 'pay_balance_s', value: true } },
],
},
{
@@ -52,12 +50,12 @@ export const rechargeSchema = {
title: '充值产品',
icon: 'fas fa-box',
fields: [
{ key: 'payment_recharge_product', label: '充值产品', type: 'input', default: '', dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_price', label: '充值价格', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_tag', label: '价格标签', type: 'input', default: '元', dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_tag_class', label: '标签样式', type: 'input', default: '', dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_custom_s', label: '自定义金额', type: 'switch', default: true, dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'payment_recharge_custom_limit', label: '自定义金额限制', type: 'number', default: 9999, min: 1, max: 99999, dependsOn: { key: 'payment_recharge_enabled', value: true } },
{ key: 'pay_balance_product_name', label: '充值产品', type: 'input', default: '', dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_balance_price', label: '充值价格', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_balance_tag', label: '价格标签', type: 'input', default: '元', dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_balance_tag_class', label: '标签样式', type: 'input', default: '', dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_balance_product_custom_s', label: '自定义金额', type: 'switch', default: true, dependsOn: { key: 'pay_balance_s', value: true } },
{ key: 'pay_balance_product_custom_limit', label: '自定义金额限制', type: 'number', default: 9999, min: 1, max: 99999, dependsOn: { key: 'pay_balance_s', value: true } },
],
},
{
@@ -65,9 +63,9 @@ export const rechargeSchema = {
title: '余额转账',
icon: 'fas fa-exchange-alt',
fields: [
{ key: 'payment_balance_transfer_s', label: '启用余额转账', type: 'switch', default: false },
{ key: 'payment_balance_transfer_service_charge', label: '转账手续费(%)', type: 'number', default: 0, min: 0, max: 50, dependsOn: { key: 'payment_balance_transfer_s', value: true } },
{ key: 'payment_balance_transfer_desc', label: '转账说明', type: 'textarea', default: '', dependsOn: { key: 'payment_balance_transfer_s', value: true } },
{ key: 'pay_balance_transfer_s', label: '启用余额转账', type: 'switch', default: false },
{ key: 'pay_balance_transfer_service_charge', label: '转账手续费(%)', type: 'number', default: 0, min: 0, max: 50, dependsOn: { key: 'pay_balance_transfer_s', value: true } },
{ key: 'pay_balance_transfer_desc', label: '转账说明', type: 'textarea', default: '', dependsOn: { key: 'pay_balance_transfer_s', value: true } },
],
},
{
@@ -75,9 +73,9 @@ export const rechargeSchema = {
title: '充值卡免扣',
icon: 'fas fa-ticket-alt',
fields: [
{ key: 'payment_recharge_pass_charge_s', label: '启用充值卡免扣', type: 'switch', default: false },
{ key: 'payment_recharge_pass_charge_desc', label: '免扣说明', type: 'textarea', default: '', dependsOn: { key: 'payment_recharge_pass_charge_s', value: true } },
{ key: 'payment_recharge_pass_charge_only_password', label: '仅密码免扣', type: 'switch', default: false, dependsOn: { key: 'payment_recharge_pass_charge_s', value: true } },
{ key: 'pay_balance_pass_charge_s', label: '启用充值卡免扣', type: 'switch', default: false },
{ key: 'pay_balance_pass_charge_desc', label: '免扣说明', type: 'textarea', default: '', dependsOn: { key: 'pay_balance_pass_charge_s', value: true } },
{ key: 'pay_balance_pass_charge_only_password', label: '仅密码免扣', type: 'switch', default: false, dependsOn: { key: 'pay_balance_pass_charge_s', value: true } },
],
},
{
@@ -85,9 +83,9 @@ export const rechargeSchema = {
title: '积分兑换',
icon: 'fas fa-coins',
fields: [
{ key: 'payment_recharge_exchange_s', label: '启用积分兑换', type: 'switch', default: false },
{ key: 'payment_recharge_exchange_rate', label: '兑换比例', type: 'number', default: 100, min: 1, max: 10000, help: 'N 积分 = 1 元', dependsOn: { key: 'payment_recharge_exchange_s', value: true } },
{ key: 'payment_recharge_exchange_desc', label: '兑换说明', type: 'textarea', default: '', dependsOn: { key: 'payment_recharge_exchange_s', value: true } },
{ key: 'pay_balance_exchange_s', label: '启用积分兑换', type: 'switch', default: false },
{ key: 'pay_balance_exchange_rate', label: '兑换比例', type: 'number', default: 100, min: 1, max: 10000, help: 'N 积分 = 1 元', dependsOn: { key: 'pay_balance_exchange_s', value: true } },
{ key: 'pay_balance_exchange_desc', label: '兑换说明', type: 'textarea', default: '', dependsOn: { key: 'pay_balance_exchange_s', value: true } },
],
},
],
@@ -4,16 +4,16 @@ export const revenueSchema = {
icon: 'fas fa-chart-line',
description: '配置作者分成比例、结算门槛和结算周期。',
defaults: {
payment_revenue_enabled: false,
pay_income_s: false,
payment_revenue_share_ratio: 70,
payment_revenue_ratio_vip1: 0,
payment_revenue_ratio_vip2: 0,
ratio_vip_1: 0,
ratio_vip_2: 0,
payment_revenue_settlement_threshold: 100,
payment_revenue_cycle_days: 30,
payment_revenue_points_rule: '',
payment_revenue_note: '分成规则已就绪,订单入账后自动按比例结算。',
payment_revenue_desc_details: '',
payment_revenue_desc_page: '',
pay_income_desc_details: '',
pay_income_desc_page: '',
},
groups: [
{
@@ -21,14 +21,14 @@ export const revenueSchema = {
title: '分成策略',
icon: 'fas fa-percentage',
fields: [
{ key: 'payment_revenue_enabled', label: '启用创作分成结构', type: 'switch', default: false },
{ key: 'payment_revenue_share_ratio', label: '作者分成比例(%)', type: 'number', default: 70, min: 0, max: 100, dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'payment_revenue_ratio_vip1', label: 'VIP1分成比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'payment_revenue_ratio_vip2', label: 'VIP2分成比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'payment_revenue_settlement_threshold', label: '最小结算金额', type: 'number', default: 100, min: 0, max: 100000, dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'payment_revenue_cycle_days', label: '结算周期(天)', type: 'number', default: 30, min: 1, max: 365, dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'payment_revenue_points_rule', label: '积分规则', type: 'textarea', default: '', dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'payment_revenue_note', label: '结算备注', type: 'textarea', default: '分成策略和台账结构已就绪,订单入账后自动按比例结算。', dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'pay_income_s', label: '启用创作分成结构', type: 'switch', default: false },
{ key: 'payment_revenue_share_ratio', label: '作者分成比例(%)', type: 'number', default: 70, min: 0, max: 100, dependsOn: { key: 'pay_income_s', value: true } },
{ key: 'ratio_vip_1', label: 'VIP1分成比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'pay_income_s', value: true } },
{ key: 'ratio_vip_2', label: 'VIP2分成比例(%)', type: 'number', default: 0, min: 0, max: 100, dependsOn: { key: 'pay_income_s', value: true } },
{ key: 'payment_revenue_settlement_threshold', label: '最小结算金额', type: 'number', default: 100, min: 0, max: 100000, dependsOn: { key: 'pay_income_s', value: true } },
{ key: 'payment_revenue_cycle_days', label: '结算周期(天)', type: 'number', default: 30, min: 1, max: 365, dependsOn: { key: 'pay_income_s', value: true } },
{ key: 'payment_revenue_points_rule', label: '积分规则', type: 'textarea', default: '', dependsOn: { key: 'pay_income_s', value: true } },
{ key: 'payment_revenue_note', label: '结算备注', type: 'textarea', default: '分成策略和台账结构已就绪,订单入账后自动按比例结算。', dependsOn: { key: 'pay_income_s', value: true } },
],
},
{
@@ -36,8 +36,8 @@ export const revenueSchema = {
title: '展示设置',
icon: 'fas fa-file-alt',
fields: [
{ key: 'payment_revenue_desc_details', label: '收益明细文案', type: 'textarea', default: '', dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'payment_revenue_desc_page', label: '收益说明页', type: 'input', default: '', dependsOn: { key: 'payment_revenue_enabled', value: true } },
{ key: 'pay_income_desc_details', label: '收益明细文案', type: 'textarea', default: '', dependsOn: { key: 'pay_income_s', value: true } },
{ key: 'pay_income_desc_page', label: '收益说明页', type: 'input', default: '', dependsOn: { key: 'pay_income_s', value: true } },
],
},
],
+46 -59
View File
@@ -2,44 +2,42 @@ export const vipSchema = {
key: 'payment.vip',
title: 'VIP会员',
icon: 'fas fa-crown',
description: '配置会员名称、套餐和付费权益说明。',
description: '对齐 Zibll 双级会员:pay_user_vip_1 / pay_user_vip_2 与下载权益。',
defaults: {
payment_vip_enabled: false,
payment_vip_name: 'VIP会员',
payment_vip_badge_text: 'VIP',
payment_vip_desc: '',
pay_user_vip_1_s: true,
pay_user_vip_1_name: '一级会员',
pay_user_vip_2_s: true,
pay_user_vip_2_name: '二级会员',
pay_user_vip_desc: '',
payment_vip_packages: '30|30|月卡\n365|365|年卡',
payment_vip_help: '会员权益以免扣下载和身份展示为主,开通后立即生效。',
payment_vip_download_limit: 0,
payment_vip_download_speed: 0,
payment_vip_discount: 100,
payment_vip_pass_charge: false,
payment_vip_pass_charge_desc: '',
payment_vip_renew: true,
payment_vip_renew_desc: '',
payment_vip_renew_price_type: 'discount',
payment_vip_renew_discount: 8,
payment_vip_renew_reduce: 20,
payment_vip_upgrade: true,
payment_vip_upgrade_desc: '',
payment_vip_upgrade_product: '',
payment_vip_month_price: 0,
payment_vip_year_price: 0,
payment_vip_permanent_price: 0,
payment_vip_unit_price: 0,
payment_vip_unit_tag: '元',
payment_vip_jump_price: 0,
pay_download_limit: 0,
pay_download_speed: 0,
pay_download_limit_vip_1: 0,
pay_download_speed_vip_1: 0,
pay_download_limit_vip_2: 0,
pay_download_speed_vip_2: 0,
pay_vip_pass_charge_s: false,
pay_vip_pass_charge_desc: '',
vip_renew: true,
vip_renew_desc: '',
vip_renew_price_type: 'discount',
vip_renew_discount: 8,
vip_renew_reduce: 20,
vip_upgrade: true,
vip_upgrade_desc: '',
vip_upgrade_product: '',
},
groups: [
{
key: 'basic',
title: '会员基础',
title: '会员等级',
icon: 'fas fa-user-shield',
fields: [
{ key: 'payment_vip_enabled', label: '启用会员结构', type: 'switch', default: false },
{ key: 'payment_vip_name', label: '会员名称', type: 'input', default: 'VIP会员', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_badge_text', label: '会员徽标文案', type: 'input', default: 'VIP', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_desc', label: '会员说明', type: 'textarea', default: '', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'pay_user_vip_1_s', label: '启用一级会员', type: 'switch', default: true },
{ key: 'pay_user_vip_1_name', label: '一级会员名称', type: 'input', default: '一级会员', dependsOn: { key: 'pay_user_vip_1_s', value: true } },
{ key: 'pay_user_vip_2_s', label: '启用二级会员', type: 'switch', default: true },
{ key: 'pay_user_vip_2_name', label: '二级会员名称', type: 'input', default: '二级会员', dependsOn: { key: 'pay_user_vip_2_s', value: true } },
{ key: 'pay_user_vip_desc', label: '会员说明', type: 'textarea', default: '' },
],
},
{
@@ -47,20 +45,22 @@ export const vipSchema = {
title: '会员套餐',
icon: 'fas fa-gem',
fields: [
{ key: 'payment_vip_packages', label: '套餐列表', type: 'textarea', default: '30|30|月卡\n365|365|年卡', help: '每行一个套餐:价格|时长(天)|标题', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_help', label: '权益说明', type: 'textarea', default: '会员权益以免扣下载和身份展示为主,开通后立即生效。', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_packages', label: '套餐列表', type: 'textarea', default: '30|30|月卡\n365|365|年卡', help: '每行一个套餐:价格|时长(天)|标题' },
],
},
{
key: 'benefit',
title: '会员权益',
title: '下载权益',
icon: 'fas fa-gift',
fields: [
{ key: 'payment_vip_download_limit', label: '下载限制', type: 'number', default: 0, min: 0, max: 9999, help: '0为不限制', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_download_speed', label: '下载速度(KB/s)', type: 'number', default: 0, min: 0, max: 99999, help: '0为不限制', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_discount', label: '折扣(%)', type: 'number', default: 100, min: 1, max: 100, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_pass_charge', label: '积分充值免扣', type: 'switch', default: false, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_pass_charge_desc', label: '积分充值说明', type: 'textarea', default: '', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'pay_download_limit', label: '普通用户下载限制', type: 'number', default: 0, min: 0, max: 9999, help: '0为不限制' },
{ key: 'pay_download_speed', label: '普通用户下载速度(KB/s)', type: 'number', default: 0, min: 0, max: 99999, 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: true } },
{ key: 'pay_download_speed_vip_1', label: '一级会员下载速度(KB/s)', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'pay_user_vip_1_s', value: true } },
{ key: 'pay_download_limit_vip_2', label: '二级会员下载限制', type: 'number', default: 0, min: 0, max: 9999, dependsOn: { key: 'pay_user_vip_2_s', value: true } },
{ key: 'pay_download_speed_vip_2', label: '二级会员下载速度(KB/s)', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'pay_user_vip_2_s', value: true } },
{ key: 'pay_vip_pass_charge_s', label: '会员卡密兑换', type: 'switch', default: false },
{ key: 'pay_vip_pass_charge_desc', label: '卡密兑换说明', type: 'textarea', default: '', dependsOn: { key: 'pay_vip_pass_charge_s', value: true } },
],
},
{
@@ -68,11 +68,11 @@ export const vipSchema = {
title: '续费设置',
icon: 'fas fa-sync-alt',
fields: [
{ key: 'payment_vip_renew', label: '允许续费', type: 'switch', default: true, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_renew_desc', label: '续费说明', type: 'textarea', default: '', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_renew_price_type', label: '续费价格类型', type: 'radio', default: 'discount', options: [{ label: '相同价格', value: 'same' }, { label: '折扣价格', value: 'discount' }, { label: '优惠立减', value: 'reduce' }], dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_renew_discount', label: '续费折扣(%)', type: 'number', default: 8, min: 1, max: 100, dependsOn: { key: 'payment_vip_renew_price_type', value: 'discount' } },
{ key: 'payment_vip_renew_reduce', label: '续费减免金额', type: 'number', default: 20, min: 0, max: 9999, dependsOn: { key: 'payment_vip_renew_price_type', value: 'reduce' } },
{ key: 'vip_renew', label: '允许续费', type: 'switch', default: true },
{ key: 'vip_renew_desc', label: '续费说明', type: 'textarea', default: '', dependsOn: { key: 'vip_renew', value: true } },
{ 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: true } },
{ key: 'vip_renew_discount', label: '续费折扣(%)', type: 'number', default: 8, min: 1, max: 100, dependsOn: { key: 'vip_renew_price_type', value: 'discount' } },
{ key: 'vip_renew_reduce', label: '续费减免金额', type: 'number', default: 20, min: 0, max: 9999, dependsOn: { key: 'vip_renew_price_type', value: 'reduce' } },
],
},
{
@@ -80,22 +80,9 @@ export const vipSchema = {
title: '升级设置',
icon: 'fas fa-arrow-up',
fields: [
{ key: 'payment_vip_upgrade', label: '允许升级', type: 'switch', default: true, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_upgrade_desc', label: '升级说明', type: 'textarea', default: '', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_upgrade_product', label: '升级产品', type: 'input', default: '', dependsOn: { key: 'payment_vip_enabled', value: true } },
],
},
{
key: 'price',
title: '价格设置',
icon: 'fas fa-yen-sign',
fields: [
{ key: 'payment_vip_month_price', label: '月卡价格', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_year_price', label: '年卡价格', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_permanent_price', label: '永久价格', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_unit_price', label: '单位价格', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_unit_tag', label: '单位标签', type: 'input', default: '元', dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'payment_vip_jump_price', label: '跳转价格', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'payment_vip_enabled', value: true } },
{ key: 'vip_upgrade', label: '允许升级', type: 'switch', default: true },
{ key: 'vip_upgrade_desc', label: '升级说明', type: 'textarea', default: '', dependsOn: { key: 'vip_upgrade', value: true } },
{ key: 'vip_upgrade_product', label: '升级产品', type: 'input', default: '', dependsOn: { key: 'vip_upgrade', value: true } },
],
},
],