导入 AKSRT 主题开发源码
This commit is contained in:
1 parent
9681dd3d48
commit
1268a55dd0
595 files changed
+127705
No files matched your search
@@ -0,0 +1,73 @@
|
||||
export const affiliateSchema = {
|
||||
key: 'payment.affiliate',
|
||||
title: '推广返佣',
|
||||
icon: 'fas fa-share-alt',
|
||||
description: '配置返佣比例、归因窗口和结算说明。',
|
||||
defaults: {
|
||||
payment_affiliate_enabled: false,
|
||||
payment_affiliate_ratio: 10,
|
||||
payment_affiliate_window_days: 30,
|
||||
payment_affiliate_require_paid_order: true,
|
||||
payment_affiliate_self_s: true,
|
||||
payment_affiliate_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: '',
|
||||
payment_affiliate_note: '返佣链路复用邀请体系,订单归因和结算自动衔接当前策略字段。',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'policy',
|
||||
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: 'user-ratio',
|
||||
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: 'poster',
|
||||
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: 'text',
|
||||
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 } },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
export const cardPassSchema = {
|
||||
key: 'payment.card-pass',
|
||||
title: '充值卡',
|
||||
icon: 'fas fa-ticket-alt',
|
||||
description: '配置充值卡类型、卡号规则、批量生成和兑换逻辑。',
|
||||
defaults: {
|
||||
card_pass_enabled: false,
|
||||
card_pass_desc: '',
|
||||
card_pass_type: 'balance',
|
||||
card_pass_prefix: 'AK',
|
||||
card_pass_length: 16,
|
||||
card_pass_batch_size: 50,
|
||||
card_pass_max_redeem: 1,
|
||||
card_pass_expiry: 0,
|
||||
card_pass_amount: 10,
|
||||
card_pass_vip_days: 30,
|
||||
card_pass_credits: 0,
|
||||
card_pass_redeem_page: '',
|
||||
card_pass_success_msg: '兑换成功!',
|
||||
card_pass_fail_msg: '卡号无效或已过期',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'basic',
|
||||
title: '充值卡设置',
|
||||
icon: 'fas fa-id-card',
|
||||
fields: [
|
||||
{ key: 'card_pass_enabled', label: '启用充值卡', type: 'switch', default: false },
|
||||
{ key: 'card_pass_desc', label: '充值卡说明', type: 'textarea', default: '', dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_type', label: '充值卡类型', type: 'select', default: 'balance', options: [{ label: '余额卡', value: 'balance' }, { label: 'VIP卡', value: 'vip' }, { label: '积分卡', value: 'credits' }], dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_prefix', label: '卡号前缀', type: 'input', default: 'AK', dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_length', label: '卡号长度', type: 'number', default: 16, min: 8, max: 32, dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_batch_size', label: '批量生成数量', type: 'number', default: 50, min: 1, max: 500, dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'redeem',
|
||||
title: '兑换设置',
|
||||
icon: 'fas fa-exchange-alt',
|
||||
fields: [
|
||||
{ key: 'card_pass_max_redeem', label: '单卡最大兑换次数', type: 'number', default: 1, min: 1, max: 100, dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_expiry', label: '有效期(天)', type: 'number', default: 0, min: 0, help: '0为永久有效', dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_amount', label: '面额(元)', type: 'number', default: 10, min: 1, max: 9999, dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_vip_days', label: 'VIP天数', type: 'number', default: 30, min: 1, max: 3650, dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_credits', label: '赠送积分', type: 'number', default: 0, min: 0, max: 99999, dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'display',
|
||||
title: '展示设置',
|
||||
icon: 'fas fa-desktop',
|
||||
fields: [
|
||||
{ key: 'card_pass_redeem_page', label: '兑换页面', type: 'input', default: '', dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_success_msg', label: '兑换成功提示', type: 'input', default: '兑换成功!', dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
{ key: 'card_pass_fail_msg', label: '兑换失败提示', type: 'input', default: '卡号无效或已过期', dependsOn: { key: 'card_pass_enabled', value: true } },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
export const gatewaySchema = {
|
||||
key: 'payment.gateway',
|
||||
title: '收款接口',
|
||||
icon: 'fas fa-credit-card',
|
||||
description: '配置支付网关凭据、回调校验口令与运行模式。填写凭据后对应网关即变为”可用”。',
|
||||
defaults: {
|
||||
payment_gateway_mode: 'manual_review',
|
||||
payment_gateway_test_enabled: true,
|
||||
payment_gateway_manual_review: true,
|
||||
payment_gateway_callback_secret: '',
|
||||
payment_gateway_help: '未接真实支付网关时,建议使用测试网关或人工确认模式完成联调。',
|
||||
payment_wechat_enabled: false,
|
||||
payment_alipay_enabled: false,
|
||||
payment_paypal_enabled: false,
|
||||
payment_balance_enabled: false,
|
||||
payment_card_pass_enabled: false,
|
||||
payment_xunhupay_enabled: false,
|
||||
payment_xhpay_enabled: false,
|
||||
payment_payjs_enabled: false,
|
||||
payment_epay_enabled: false,
|
||||
payment_vmq_enabled: false,
|
||||
payment_codepay_enabled: false,
|
||||
payment_stripe_enabled: false,
|
||||
wechat_merchantid: '',
|
||||
wechat_jsapi: '',
|
||||
wechat_appsecret: '',
|
||||
wechat_cert_path: '',
|
||||
wechat_key_path: '',
|
||||
alipay_appid: '',
|
||||
alipay_privatekey: '',
|
||||
alipay_publickey: '',
|
||||
alipay_return_url: '',
|
||||
alipay_notify_url: '',
|
||||
paypal_client_id: '',
|
||||
paypal_client_secret: '',
|
||||
paypal_currency: 'USD',
|
||||
paypal_sandbox: true,
|
||||
xunhupay_appid: '',
|
||||
xunhupay_appsecret: '',
|
||||
xhpay_mchid: '',
|
||||
xhpay_alipay_v2: '',
|
||||
xhpay_wx_h5: '',
|
||||
payjs_mchid: '',
|
||||
payjs_key: '',
|
||||
epay_apiurl: '',
|
||||
epay_pid: '',
|
||||
epay_key: '',
|
||||
stripe_secret_key: '',
|
||||
stripe_publishable_key: '',
|
||||
stripe_webhook_secret: '',
|
||||
stripe_currency: 'usd',
|
||||
stripe_test_mode: true,
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'adapter',
|
||||
title: '网关适配器',
|
||||
icon: 'fas fa-plug',
|
||||
fields: [
|
||||
{ key: 'payment_gateway_mode', label: '运行模式', type: 'radio', default: 'manual_review', options: [{ label: '人工确认', value: 'manual_review' }, { label: '测试网关', value: 'test_gateway' }, { label: '适配器就绪', value: 'adapter_ready' }] },
|
||||
{ key: 'payment_gateway_test_enabled', label: '启用测试网关', type: 'switch', default: true },
|
||||
{ key: 'payment_gateway_manual_review', label: '保留人工复核', type: 'switch', default: true },
|
||||
{ key: 'payment_gateway_callback_secret', label: '回调校验口令', type: 'input', default: '', help: '真实网关接入时可直接复用该口令字段。' },
|
||||
{ key: 'payment_gateway_help', label: '运维说明', type: 'textarea', default: '未接真实支付网关时,建议使用测试网关或人工确认模式完成联调。' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'gateways',
|
||||
title: '支付网关',
|
||||
icon: 'fas fa-toggle-on',
|
||||
fields: [
|
||||
{ key: 'payment_wechat_enabled', label: '微信支付', type: 'switch', default: false },
|
||||
{ key: 'payment_alipay_enabled', label: '支付宝', type: 'switch', default: false },
|
||||
{ key: 'payment_paypal_enabled', label: 'PayPal', type: 'switch', default: false },
|
||||
{ key: 'payment_stripe_enabled', label: 'Stripe', type: 'switch', default: false },
|
||||
{ key: 'payment_balance_enabled', label: '余额支付', type: 'switch', default: false },
|
||||
{ key: 'payment_card_pass_enabled', label: '卡密充值', type: 'switch', default: false },
|
||||
{ key: 'payment_xunhupay_enabled', label: '虎皮椒', type: 'switch', default: false },
|
||||
{ key: 'payment_xhpay_enabled', label: '小火付', type: 'switch', default: false },
|
||||
{ key: 'payment_payjs_enabled', label: 'PayJS', type: 'switch', default: false },
|
||||
{ key: 'payment_epay_enabled', label: '易支付', type: 'switch', default: false },
|
||||
{ key: 'payment_vmq_enabled', label: 'V免签', type: 'switch', default: false },
|
||||
{ key: 'payment_codepay_enabled', label: 'Codepay', type: 'switch', default: false },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'wechat',
|
||||
title: '微信支付配置',
|
||||
icon: 'fab fa-weixin',
|
||||
fields: [
|
||||
{ key: 'wechat_merchantid', label: '商户号', type: 'input', default: '' },
|
||||
{ key: 'wechat_jsapi', label: 'JSAPI密钥', type: 'input', default: '' },
|
||||
{ key: 'wechat_appsecret', label: 'AppSecret', type: 'input', default: '' },
|
||||
{ key: 'wechat_cert_path', label: '证书路径', type: 'input', default: '', help: '退款等接口需要,绝对路径。' },
|
||||
{ key: 'wechat_key_path', label: '密钥路径', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'alipay',
|
||||
title: '支付宝配置',
|
||||
icon: 'fab fa-alipay',
|
||||
fields: [
|
||||
{ key: 'alipay_appid', label: 'AppID', type: 'input', default: '' },
|
||||
{ key: 'alipay_privatekey', label: '应用私钥', type: 'textarea', rows: 3, default: '' },
|
||||
{ key: 'alipay_publickey', label: '支付宝公钥', type: 'textarea', rows: 3, default: '' },
|
||||
{ key: 'alipay_return_url', label: '同步回调地址', type: 'input', default: '' },
|
||||
{ key: 'alipay_notify_url', label: '异步回调地址', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'paypal',
|
||||
title: 'PayPal 配置',
|
||||
icon: 'fab fa-paypal',
|
||||
fields: [
|
||||
{ key: 'paypal_client_id', label: 'Client ID', type: 'input', default: '' },
|
||||
{ key: 'paypal_client_secret', label: 'Client Secret', type: 'input', default: '' },
|
||||
{ key: 'paypal_currency', label: '货币', type: 'input', default: 'USD' },
|
||||
{ key: 'paypal_sandbox', label: '沙箱模式', type: 'switch', default: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'xunhupay',
|
||||
title: '虎皮椒配置',
|
||||
icon: 'fas fa-pepper-hot',
|
||||
fields: [
|
||||
{ key: 'xunhupay_appid', label: 'AppID', type: 'input', default: '' },
|
||||
{ key: 'xunhupay_appsecret', label: 'AppSecret', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'xhpay',
|
||||
title: '小火付配置',
|
||||
icon: 'fas fa-fire',
|
||||
fields: [
|
||||
{ key: 'xhpay_mchid', label: '商户号', type: 'input', default: '' },
|
||||
{ key: 'xhpay_alipay_v2', label: '支付宝V2', type: 'input', default: '' },
|
||||
{ key: 'xhpay_wx_h5', label: '微信H5', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'payjs',
|
||||
title: 'PayJS 配置',
|
||||
icon: 'fab fa-js',
|
||||
fields: [
|
||||
{ key: 'payjs_mchid', label: '商户号', type: 'input', default: '' },
|
||||
{ key: 'payjs_key', label: '通信密钥', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'epay',
|
||||
title: '易支付配置',
|
||||
icon: 'fas fa-university',
|
||||
fields: [
|
||||
{ key: 'epay_apiurl', label: '接口地址', type: 'input', default: '' },
|
||||
{ key: 'epay_pid', label: '商户ID', type: 'input', default: '' },
|
||||
{ key: 'epay_key', label: '商户密钥', type: 'input', default: '' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'stripe',
|
||||
title: 'Stripe 配置',
|
||||
icon: 'fab fa-stripe',
|
||||
fields: [
|
||||
{ key: 'stripe_secret_key', label: 'Secret Key', type: 'input', default: '' },
|
||||
{ key: 'stripe_publishable_key', label: 'Publishable Key', type: 'input', default: '' },
|
||||
{ key: 'stripe_webhook_secret', label: 'Webhook Secret', type: 'input', default: '', help: 'Stripe Dashboard 配置 Webhook 后获得,用于验签。' },
|
||||
{ key: 'stripe_currency', label: '货币', type: 'input', default: 'usd' },
|
||||
{ key: 'stripe_test_mode', label: '测试模式', type: 'switch', default: true },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Payment & Paid domain schemas.
|
||||
*/
|
||||
|
||||
import { paidSchema } from './paid.js'
|
||||
import { rechargeSchema } from './recharge.js'
|
||||
import { vipSchema } from './vip.js'
|
||||
import { revenueSchema } from './revenue.js'
|
||||
import { affiliateSchema } from './affiliate.js'
|
||||
import { gatewaySchema } from './gateway.js'
|
||||
import { orderSchema } from './order.js'
|
||||
import { cardPassSchema } from './cardPass.js'
|
||||
import { withdrawalSchema } from './withdrawal.js'
|
||||
|
||||
export const paymentSchemas = {
|
||||
paid: paidSchema,
|
||||
recharge: rechargeSchema,
|
||||
vip: vipSchema,
|
||||
revenue: revenueSchema,
|
||||
affiliate: affiliateSchema,
|
||||
gateway: gatewaySchema,
|
||||
order: orderSchema,
|
||||
cardPass: cardPassSchema,
|
||||
withdrawal: withdrawalSchema,
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
export const orderSchema = {
|
||||
key: 'payment.order',
|
||||
title: '订单设置',
|
||||
icon: 'fas fa-file-invoice',
|
||||
description: '配置订单前缀、有效期、展示字段和状态文案。',
|
||||
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,
|
||||
payment_order_max_minutes: 30,
|
||||
payment_mark: '付费',
|
||||
payment_box_position: 'content',
|
||||
payment_free_logged_show: false,
|
||||
payment_show_ip: false,
|
||||
payment_show_device: false,
|
||||
payment_show_order_no: true,
|
||||
payment_show_create_time: true,
|
||||
payment_show_pay_time: true,
|
||||
payment_order_status_pending: '待支付',
|
||||
payment_order_status_paid: '已支付',
|
||||
payment_order_status_completed: '已完成',
|
||||
payment_order_status_cancelled: '已取消',
|
||||
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: '',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'basic',
|
||||
title: '订单基础',
|
||||
icon: 'fas fa-cog',
|
||||
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: 'payment_order_max_minutes', label: '订单最大支付时间(分钟)', type: 'number', default: 30, min: 5, max: 1440 },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'display',
|
||||
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: 'box_top' }, { label: '内容顶', value: 'top' }, { label: '内容底', value: 'bottom' }, { label: '模块下', value: 'box_bottom' }] },
|
||||
{ key: 'payment_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 },
|
||||
{ key: 'payment_show_create_time', label: '显示创建时间', type: 'switch', default: true },
|
||||
{ key: 'payment_show_pay_time', label: '显示支付时间', type: 'switch', default: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'status',
|
||||
title: '状态设置',
|
||||
icon: 'fas fa-tags',
|
||||
fields: [
|
||||
{ key: 'payment_order_status_pending', label: '待支付状态文案', type: 'input', default: '待支付' },
|
||||
{ key: 'payment_order_status_paid', label: '已支付状态文案', type: 'input', default: '已支付' },
|
||||
{ key: 'payment_order_status_completed', label: '已完成状态文案', type: 'input', default: '已完成' },
|
||||
{ key: 'payment_order_status_cancelled', label: '已取消状态文案', type: 'input', default: '已取消' },
|
||||
{ key: 'payment_order_status_refunded', label: '已退款状态文案', type: 'input', default: '已退款' },
|
||||
{ key: 'payment_order_status_refunding', label: '退款中状态文案', type: 'input', default: '退款中' },
|
||||
{ key: 'payment_order_status_processing', label: '处理中状态文案', type: 'input', default: '处理中' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'service',
|
||||
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: '' },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
export const paidSchema = {
|
||||
key: 'payment.paid',
|
||||
title: '下载/付费内容中心',
|
||||
icon: 'fas fa-download',
|
||||
description: '统一管理资源下载、付费内容、角色免扣和人工交付说明。',
|
||||
defaults: {
|
||||
payment_paid_post_types: 'post',
|
||||
payment_vip_free_download: false,
|
||||
payment_vip_exempt_roles: '',
|
||||
payment_paid_catalog_note: '',
|
||||
payment_manual_delivery_note: '付费或人工确认内容请在订单备注中记录交付方式。',
|
||||
payment_paid_mark: '付费',
|
||||
payment_currency_symbol: '¥',
|
||||
payment_paid_show_user: true,
|
||||
payment_paid_show_paycount: true,
|
||||
payment_paid_box_position: 'top',
|
||||
payment_download_enable: false,
|
||||
payment_download_remote_s: true,
|
||||
payment_download_verify_nonce: true,
|
||||
payment_download_user_log: 50,
|
||||
payment_download_post_log: 50,
|
||||
payment_download_remote_size: 2048,
|
||||
payment_download_remote_ext: 'zip,rar,7z',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'strategy',
|
||||
title: '付费内容策略',
|
||||
icon: 'fas fa-layer-group',
|
||||
fields: [
|
||||
{ key: 'payment_paid_post_types', label: '受管内容类型', type: 'input', default: 'post', help: '逗号分隔,例如 post,course,doc' },
|
||||
{ key: 'payment_vip_free_download', label: '角色白名单免扣下载', type: 'switch', default: false },
|
||||
{ key: 'payment_vip_exempt_roles', label: '免扣角色列表', type: 'input', default: '', help: '逗号分隔的 WordPress role slug,例如 administrator,editor,vip' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'delivery',
|
||||
title: '交付说明',
|
||||
icon: 'fas fa-receipt',
|
||||
fields: [
|
||||
{ key: 'payment_paid_catalog_note', label: '前台付费提示', type: 'textarea', default: '', help: '显示在资源/付费内容页的运营说明。' },
|
||||
{ key: 'payment_manual_delivery_note', label: '人工交付备注', type: 'textarea', default: '付费或人工确认内容请在订单备注中记录交付方式。', help: '人工确认或离线交付流程的标准说明。' },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'display',
|
||||
title: '展示设置',
|
||||
icon: 'fas fa-eye',
|
||||
fields: [
|
||||
{ key: 'payment_paid_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: 'box_top' }, { label: '内容顶', value: 'top' }, { label: '内容底', value: 'bottom' }, { label: '模块下', value: 'box_bottom' }] },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'download',
|
||||
title: '下载设置',
|
||||
icon: 'fas fa-cloud-download-alt',
|
||||
fields: [
|
||||
{ key: 'payment_download_enable', label: '启用下载功能', type: 'switch', default: false },
|
||||
{ key: 'payment_download_remote_s', label: '远程文件下载', type: 'switch', default: true, dependsOn: { key: 'payment_download_enable', value: true } },
|
||||
{ key: 'payment_download_verify_nonce', label: '下载鉴权', type: 'switch', default: true, dependsOn: { key: 'payment_download_enable', value: true } },
|
||||
{ key: 'payment_download_user_log', label: '用户下载记录条数', type: 'number', default: 50, min: 0, max: 9999, help: '0 为不保存', dependsOn: { key: 'payment_download_enable', value: true } },
|
||||
{ key: 'payment_download_post_log', label: '文章下载记录条数', type: 'number', default: 50, min: 0, max: 9999, help: '0 为不保存', dependsOn: { key: 'payment_download_enable', value: true } },
|
||||
{ key: 'payment_download_remote_size', label: '远程文件大小限制(KB)', type: 'number', default: 2048, min: 1, max: 999999, dependsOn: { key: 'payment_download_remote_s', value: true } },
|
||||
{ key: 'payment_download_remote_ext', label: '远程文件格式限制', type: 'input', default: 'zip,rar,7z', help: '逗号分隔扩展名', dependsOn: { key: 'payment_download_remote_s', value: true } },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
export const rechargeSchema = {
|
||||
key: 'payment.recharge',
|
||||
title: '余额充值',
|
||||
icon: 'fas fa-charging-station',
|
||||
description: '配置测试充值、手动确认和充值套餐结构。',
|
||||
defaults: {
|
||||
payment_recharge_enabled: false,
|
||||
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: '',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'basic',
|
||||
title: '充值开关',
|
||||
icon: 'fas fa-wallet',
|
||||
fields: [
|
||||
{ key: 'payment_recharge_enabled', label: '启用余额充值结构', type: 'switch', default: false },
|
||||
{ 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: 'packages',
|
||||
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: 'product',
|
||||
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: 'transfer',
|
||||
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: 'pass-charge',
|
||||
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: 'exchange',
|
||||
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 } },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
export const revenueSchema = {
|
||||
key: 'payment.revenue',
|
||||
title: '创作分成',
|
||||
icon: 'fas fa-chart-line',
|
||||
description: '配置作者分成比例、结算门槛和结算周期。',
|
||||
defaults: {
|
||||
payment_revenue_enabled: false,
|
||||
payment_revenue_share_ratio: 70,
|
||||
payment_revenue_ratio_vip1: 0,
|
||||
payment_revenue_ratio_vip2: 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: '',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'policy',
|
||||
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: 'display',
|
||||
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 } },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
export const vipSchema = {
|
||||
key: 'payment.vip',
|
||||
title: 'VIP会员',
|
||||
icon: 'fas fa-crown',
|
||||
description: '配置会员名称、套餐和付费权益说明。',
|
||||
defaults: {
|
||||
payment_vip_enabled: false,
|
||||
payment_vip_name: 'VIP会员',
|
||||
payment_vip_badge_text: 'VIP',
|
||||
payment_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: 'same',
|
||||
payment_vip_renew_discount: 100,
|
||||
payment_vip_renew_reduce: 0,
|
||||
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,
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'basic',
|
||||
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: 'packages',
|
||||
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: 'benefit',
|
||||
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: 'renew',
|
||||
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: 'same', options: [{ label: '相同价格', value: 'same' }, { label: '折扣价格', value: 'discount' }], dependsOn: { key: 'payment_vip_enabled', value: true } },
|
||||
{ key: 'payment_vip_renew_discount', label: '续费折扣(%)', type: 'number', default: 100, min: 1, max: 100, dependsOn: { key: 'payment_vip_enabled', value: true } },
|
||||
{ key: 'payment_vip_renew_reduce', label: '续费减免金额', type: 'number', default: 0, min: 0, max: 9999, dependsOn: { key: 'payment_vip_enabled', value: true } },
|
||||
],
|
||||
},
|
||||
{
|
||||
key: 'upgrade',
|
||||
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 } },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
export const withdrawalSchema = {
|
||||
key: 'payment.withdrawal',
|
||||
title: '提现管理',
|
||||
icon: 'fas fa-hand-holding-usd',
|
||||
description: '配置提现门槛、手续费比例和提现说明。',
|
||||
defaults: {
|
||||
pay_rebate_withdraw_lowest_money: 50,
|
||||
withdraw_service_charge: 0,
|
||||
pay_rebate_withdraw_text_details: '',
|
||||
},
|
||||
groups: [
|
||||
{
|
||||
key: 'basic',
|
||||
title: '提现设置',
|
||||
icon: 'fas fa-sliders-h',
|
||||
fields: [
|
||||
{ key: 'pay_rebate_withdraw_lowest_money', label: '最低提现金额', type: 'number', default: 50, min: 1, max: 99999 },
|
||||
{ key: 'withdraw_service_charge', label: '提现手续费(%)', type: 'number', default: 0, min: 0, max: 50 },
|
||||
{ key: 'pay_rebate_withdraw_text_details', label: '提现说明', type: 'textarea', default: '' },
|
||||
],
|
||||
},
|
||||
],
|
||||
}
|
||||
Reference in new issue
Block a user