Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
501 lines
27 KiB
JavaScript
501 lines
27 KiB
JavaScript
/**
|
|
* VIP会员 — 结构 1:1 对照参考主题 Zibll:会员等级(开关)、会员权益
|
|
* (普通/一级/二级 tab)、会员购买选项(一级/二级/续费/升级 tab)、
|
|
* 积分兑换会员与界面文案。
|
|
*
|
|
* 会员商品 / 续费商品 / 升级价格 / 积分兑换明细均为结构化 group 或
|
|
* accordion,不再使用 `|` 分隔的 textarea。等级 Tab 标题通过 titleKey
|
|
* 绑定「会员显示名称」,改名即改 Tab 名。
|
|
*/
|
|
|
|
const VIP_EQUITY_DEFAULT = '<li>全站资源折扣购买</li><li>部分内容免费阅读</li><li>一对一技术指导</li><li>VIP用户专属QQ群</li>';
|
|
|
|
const vipTagPalette = [
|
|
{ label: '#f74b3d', value: 'b-red' },
|
|
{ label: '#f3920a', value: 'b-yellow' },
|
|
{ label: '#08c4c1', value: 'b-cyan' },
|
|
{ label: '#0a8cf3', value: 'b-blue' },
|
|
{ label: '#1fd05a', value: 'b-green' },
|
|
{ label: '#c133f5', value: 'b-purple' },
|
|
{ label: '#121517', value: 'b-black' },
|
|
{ label: 'linear-gradient(135deg, #ffbeb4 10%, #f61a1a 100%)', value: 'jb-red' },
|
|
{ label: 'linear-gradient(135deg, #ff5e7f 30%, #ff967e 100%)', value: 'jb-pink' },
|
|
{ label: 'linear-gradient(135deg, #ffd6b2 10%, #ff651c 100%)', value: 'jb-yellow' },
|
|
{ label: 'linear-gradient(140deg, #039ab3 10%, #58dbcf 90%)', value: 'jb-cyan' },
|
|
{ label: 'linear-gradient(135deg, #b6e6ff 10%, #198aff 100%)', value: 'jb-blue' },
|
|
{ label: 'linear-gradient(135deg, #ccffcd 10%, #52bb51 100%)', value: 'jb-green' },
|
|
{ label: 'linear-gradient(135deg, #fec2ff 10%, #d000de 100%)', value: 'jb-purple' },
|
|
{ label: 'linear-gradient(25deg, #eab869 10%, #fbecd4 60%, #ffe0ae 100%)', value: 'jb-vip1' },
|
|
{ label: 'linear-gradient(317deg, #4d4c4c 30%, #878787 70%, #5f5c5c 100%)', value: 'jb-vip2' },
|
|
];
|
|
|
|
const vipUnitOptions = [
|
|
{ label: '天', value: 'day' },
|
|
{ label: '月', value: 'month' },
|
|
];
|
|
|
|
// 会员商品/续费商品的手风琴配置:默认收起,标题行显示价格与时长摘要。
|
|
const vipProductGroupOptions = {
|
|
collapsible: true,
|
|
defaultCollapsed: true,
|
|
listPreview: { prefix: '价格:', titleKey: 'price', descKey: 'time', descUnitKey: 'unit' },
|
|
};
|
|
|
|
// 积分兑换明细的手风琴配置:默认收起,标题行显示积分与时长摘要。
|
|
const vipPointsGroupOptions = {
|
|
collapsible: true,
|
|
defaultCollapsed: true,
|
|
listPreview: { prefix: '积分:', titleKey: 'points', descKey: 'time', descUnitKey: 'unit' },
|
|
};
|
|
|
|
/**
|
|
* 会员商品字段集(参考主题 CFS_Module::vip_product)。
|
|
*/
|
|
function vipProductFields() {
|
|
return [
|
|
{ key: 'price', label: '执行价', type: 'number', sanitize_type: 'money_decimal', default: '699.00', min: 0, suffix: '元', help: '会员的实际购买价格' },
|
|
{ key: 'show_price', label: '原价', type: 'number', sanitize_type: 'money_decimal', default: '999.00', min: 0, suffix: '元', help: '显示在执行价格前面,并划掉' },
|
|
{ key: 'tag', label: '促销标签', type: 'textarea', sanitize_type: 'html', default: '', rows: 1, help: '支持HTML,请注意控制长度' },
|
|
{ key: 'tag_class', label: '标签颜色', type: 'palette', default: 'jb-yellow', dependsOn: { key: 'tag', operator: 'not_empty' }, options: vipTagPalette },
|
|
{ key: 'time', label: '会员有效时间', type: 'spinner', default: 3, min: 0, max: 3600, step: 1, help: '开通会员的时长。填0则为永久会员' },
|
|
{ key: 'unit', label: '时长单位', type: 'radio', default: 'month', inline: true, dependsOn: { key: 'time', operator: 'truthy' }, options: vipUnitOptions },
|
|
{ key: '_time_permanent_hint', label: '', type: 'alert', alertType: 'success', ui_only: true, dependsOn: { key: 'time', operator: 'eq', value: 0 }, content: '会员有效时间已设置为:永久会员' },
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 会员等级 Tab 字段集(参考主题 CFS_Module::vip_tab,显示名称并入 Tab)。
|
|
*/
|
|
function vipLevelTabFields(level) {
|
|
const dep = { key: `pay_user_vip_${level}_s`, value: true };
|
|
return [
|
|
{ key: `pay_user_vip_${level}_name`, label: '会员显示名称', type: 'input', sanitize_type: 'html', default: level === 1 ? '黄金会员' : '钻石会员', dependsOn: dep, help: '支持HTML,请注意控制长度' },
|
|
{ key: `pay_user_vip_${level}_desc`, label: '一句话简介', type: 'input', sanitize_type: 'html', default: '尊享专属特权', dependsOn: dep, help: '支持HTML' },
|
|
{ key: `pay_user_vip_${level}_equity`, label: '会员权益 HTML', type: 'textarea', sanitize_type: 'html', default: VIP_EQUITY_DEFAULT, rows: 4, dependsOn: dep, help: '支持安全HTML,建议使用 <li> 列表项' },
|
|
{ key: `vip_${level}_product_s`, label: '购买会员', type: 'switch', default: true, dependsOn: dep, help: '关闭后则不能付费购买会员,但可通过积分兑换会员,请确保已开启积分以及积分兑换会员功能' },
|
|
{
|
|
key: `vip_${level}_product`,
|
|
label: '会员商品',
|
|
type: 'group',
|
|
max: 8,
|
|
button_title: '添加会员商品',
|
|
default: [
|
|
{ price: 99, show_price: 199, tag: '<i class="fa fas fa-fw fa-bolt"></i> 限时特惠', time: 3, unit: 'month' },
|
|
{ price: 199, show_price: 299, tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', time: 6, unit: 'month' },
|
|
],
|
|
...vipProductGroupOptions,
|
|
dependsOn: { all: [dep, { key: `vip_${level}_product_s`, value: true }] },
|
|
help: '会员购买价格配置:执行价、原价、促销标签、标签颜色与会员有效时间',
|
|
fields: vipProductFields(),
|
|
},
|
|
{ key: `vip_${level}_img_icon`, label: '会员图标', type: 'upload', default: '', dependsOn: dep, help: `留空使用内置 vip-${level}.svg 图标;建议尺寸300x300` },
|
|
];
|
|
}
|
|
|
|
export const vipSchema = {
|
|
key: 'payment.vip',
|
|
title: 'VIP会员',
|
|
icon: 'fa fas fa-gem',
|
|
description: '双级会员:等级开关、权益(下载次数与限速)、会员商品、续费/升级与积分兑换。',
|
|
defaults: {
|
|
nav_pay_vip: true,
|
|
nav_user_pay_vip: true,
|
|
pay_user_vip_1_s: true,
|
|
pay_user_vip_1_name: '黄金会员',
|
|
pay_user_vip_1_desc: '尊享专属特权',
|
|
pay_user_vip_1_equity: VIP_EQUITY_DEFAULT,
|
|
vip_1_product_s: true,
|
|
vip_1_product: [
|
|
{ price: 99, show_price: 199, tag: '<i class="fa fas fa-fw fa-bolt"></i> 限时特惠', time: 3, unit: 'month' },
|
|
{ price: 199, show_price: 299, tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', time: 6, unit: 'month' },
|
|
],
|
|
vip_1_img_icon: '',
|
|
pay_user_vip_2_s: true,
|
|
pay_user_vip_2_name: '钻石会员',
|
|
pay_user_vip_2_desc: '尊享专属特权',
|
|
pay_user_vip_2_equity: VIP_EQUITY_DEFAULT,
|
|
vip_2_product_s: true,
|
|
vip_2_product: [
|
|
{ price: 99, show_price: 199, tag: '<i class="fa fas fa-fw fa-bolt"></i> 限时特惠', time: 3, unit: 'month' },
|
|
{ price: 199, show_price: 299, tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', time: 6, unit: 'month' },
|
|
],
|
|
vip_2_img_icon: '',
|
|
pay_user_vip_desc: '开通VIP会员,享受会员专属折扣以及多项特权',
|
|
pay_user_vip_more: '<div>购买后不支持退款</div><div>VIP权益仅适用于本站</div><div>欢迎与站长联系</div>',
|
|
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,
|
|
vip_1_product_s: true,
|
|
vip_renew: true,
|
|
vip_renew_desc: '立即续费会员,畅享VIP权益',
|
|
vip_renew_price_type: 'discount',
|
|
vip_renew_discount: 8,
|
|
vip_renew_reduce: '20.00',
|
|
vip_1_renew_product: [
|
|
{ price: 69, show_price: 199, tag: '<i class="fa fas fa-fw fa-bolt"></i> 限时特惠', time: 3, unit: 'month' },
|
|
{ price: 169, show_price: 299, tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', time: 6, unit: 'month' },
|
|
],
|
|
vip_2_renew_product: [
|
|
{ price: 269, show_price: 599, tag: '<i class="fa fas fa-fw fa-bolt"></i> 限时特惠', time: 3, unit: 'month' },
|
|
{ price: 369, show_price: 899, tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', time: 6, unit: 'month' },
|
|
],
|
|
vip_2_product_s: true,
|
|
vip_renew: true,
|
|
vip_renew_discount: 8,
|
|
vip_renew_reduce: '20.00',
|
|
vip_upgrade: true,
|
|
vip_upgrade_desc: '升级VIP会员,享更多会员权益',
|
|
vip_upgrade_product: {
|
|
month_to_month_s: true,
|
|
unit_price: '10.00',
|
|
unit_tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐',
|
|
unit_tag_class: 'jb-yellow',
|
|
jump_s: false,
|
|
jump_price: '199.00',
|
|
jump_show_price: '299.00',
|
|
jump_tag: '<i class="fa fas fa-fw fa-bolt"></i> 升级特惠',
|
|
jump_tag_class: 'jb-red',
|
|
permanent_price: '199.00',
|
|
permanent_show_price: '299.00',
|
|
permanent_tag: '<i class="fa fas fa-fw fa-bolt"></i> 升级特惠',
|
|
permanent_tag_class: 'jb-red',
|
|
},
|
|
pay_vip_points_exchange_s: false,
|
|
pay_vip_points_exchange_product: [
|
|
{ points: 500, level: 1, time: 30, unit: 'day' },
|
|
{ points: 5000, level: 1, time: 'Permanent' },
|
|
],
|
|
pay_vip_points_exchange_desc: '',
|
|
},
|
|
groups: [
|
|
{
|
|
key: 'notice',
|
|
title: '说明',
|
|
icon: 'fa fas fa-info-circle',
|
|
fields: [
|
|
{
|
|
key: 'vip_notice',
|
|
label: '',
|
|
type: 'content',
|
|
ui_only: true,
|
|
content: '<ul style="margin:0 0 0 18px;line-height:1.9"><li>开启付费会员功能之前,请先配置好收款接口,确保网站收款正常</li><li>会员功能的设置项目较多,请仔细核对,避免出现价格、时间的问题</li><li>配合设置名称、有效期等可搭配出不同类型的会员</li><li>管理员可在后台为用户单独开启会员</li></ul>',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
key: 'basic',
|
|
title: '会员等级',
|
|
icon: 'fa fas fa-user',
|
|
fields: [
|
|
{ key: 'nav_pay_vip', label: '导航栏购买按钮', type: 'switch', default: true, help: '在顶部导航栏显示开通会员按钮;请注意顶部导航的整体宽度。' },
|
|
{ key: 'nav_user_pay_vip', label: '用户框购买按钮', type: 'switch', default: true, help: '在导航栏用户框内显示开通会员按钮。' },
|
|
{ key: 'pay_user_vip_1_s', label: '启用一级会员', type: 'switch', default: true },
|
|
{
|
|
key: 'vip_level_order_notice',
|
|
label: '',
|
|
type: 'notice',
|
|
ui_only: true,
|
|
alertType: 'danger',
|
|
dependsOn: { all: [{ key: 'pay_user_vip_2_s', value: true }, { key: 'pay_user_vip_1_s', operator: 'falsy' }] },
|
|
content: '<div style="text-align:center"><b>必须先开启一级会员后才能开启二级会员!</b></div>',
|
|
},
|
|
{ key: 'pay_user_vip_2_s', label: '启用二级会员', type: 'switch', default: true },
|
|
],
|
|
},
|
|
{
|
|
key: 'benefit',
|
|
title: '会员权益',
|
|
icon: 'fa fas fa-gift',
|
|
fields: [
|
|
{
|
|
key: 'vip_benefit',
|
|
label: '会员权益',
|
|
type: 'tabbed',
|
|
tabs: [
|
|
{
|
|
key: 'ordinary',
|
|
title: '普通用户',
|
|
fields: [
|
|
{ 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, help: '付费下载限制最大下载速度(为0则不限制);只对本地服务器文件有效' },
|
|
],
|
|
},
|
|
{
|
|
key: 'vip1',
|
|
title: '一级会员',
|
|
titleKey: 'pay_user_vip_1_name',
|
|
titleFallback: '一级会员',
|
|
fields: [
|
|
{ key: 'pay_download_limit_vip_1', label: '付费资源:免费资源每日可下载(个)', type: 'number', default: 0, min: 0, max: 9999, dependsOn: { key: 'pay_user_vip_1_s', value: true }, help: '一级会员每日最多可下载几个免费资源(为0则不限制)' },
|
|
{ key: 'pay_download_speed_vip_1', label: '付费资源:下载限速(KB/s)', type: 'number', default: 0, min: 0, dependsOn: { key: 'pay_user_vip_1_s', value: true }, help: '付费下载限制最大下载速度(为0则不限制);只对本地服务器文件有效' },
|
|
],
|
|
},
|
|
{
|
|
key: 'vip2',
|
|
title: '二级会员',
|
|
titleKey: 'pay_user_vip_2_name',
|
|
titleFallback: '二级会员',
|
|
fields: [
|
|
{ key: 'pay_download_limit_vip_2', label: '付费资源:免费资源每日可下载(个)', type: 'number', default: 0, min: 0, max: 9999, dependsOn: { key: 'pay_user_vip_2_s', value: true }, help: '二级会员每日最多可下载几个免费资源(为0则不限制)' },
|
|
{ key: 'pay_download_speed_vip_2', label: '付费资源:下载限速(KB/s)', type: 'number', default: 0, min: 0, dependsOn: { key: 'pay_user_vip_2_s', value: true }, help: '付费下载限制最大下载速度(为0则不限制);只对本地服务器文件有效' },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
key: 'opt',
|
|
title: '会员购买选项',
|
|
icon: 'fa fas fa-shopping-cart',
|
|
fields: [
|
|
{
|
|
key: 'vip_opt',
|
|
label: '会员购买选项',
|
|
type: 'tabbed',
|
|
tabs: [
|
|
{
|
|
key: 'vip1',
|
|
title: '一级会员',
|
|
titleKey: 'pay_user_vip_1_name',
|
|
titleFallback: '一级会员',
|
|
fields: [
|
|
...vipLevelTabFields(1),
|
|
],
|
|
},
|
|
{
|
|
key: 'vip2',
|
|
title: '二级会员',
|
|
titleKey: 'pay_user_vip_2_name',
|
|
titleFallback: '二级会员',
|
|
fields: [
|
|
...vipLevelTabFields(2),
|
|
],
|
|
},
|
|
{
|
|
key: 'renew',
|
|
title: '会员续费',
|
|
fields: [
|
|
{
|
|
key: 'vip_renew',
|
|
label: '允许续费',
|
|
type: 'switch',
|
|
default: true,
|
|
help: '关闭后则不能续费,只能会员到期之后再购买。永久会员不需要续费',
|
|
},
|
|
{
|
|
key: 'vip_renew_desc',
|
|
label: '续费介绍',
|
|
type: 'input',
|
|
sanitize_type: 'html',
|
|
default: '立即续费会员,畅享VIP权益',
|
|
dependsOn: { key: 'vip_renew', value: true },
|
|
help: '续费会员的一句话简介,支持HTML',
|
|
},
|
|
{
|
|
key: 'vip_renew_price_type',
|
|
label: '续费价格类型',
|
|
type: 'select',
|
|
default: 'discount',
|
|
dependsOn: { key: 'vip_renew', value: true },
|
|
options: [
|
|
{ label: '相同价格', value: 'same' },
|
|
{ label: '折扣价格', value: 'discount' },
|
|
{ label: '优惠立减', value: 'reduce' },
|
|
{ label: '自定义商品', value: 'customize' },
|
|
],
|
|
help: '自定义商品时,按下方「一级会员续费」「二级会员续费」的商品选项计价',
|
|
},
|
|
{
|
|
key: 'vip_renew_discount',
|
|
label: '续费折扣',
|
|
type: 'slider',
|
|
sanitize_type: 'float',
|
|
default: 8,
|
|
min: 0.1,
|
|
max: 9.9,
|
|
step: 0.1,
|
|
unit: '折',
|
|
dependsOn: { key: 'vip_renew_price_type', value: 'discount' },
|
|
help: '在会员商品基础上打几折,如 8 = 八折',
|
|
},
|
|
{
|
|
key: 'vip_renew_reduce',
|
|
label: '续费减免金额',
|
|
type: 'spinner',
|
|
sanitize_type: 'money_decimal',
|
|
default: '20.00',
|
|
min: 0,
|
|
max: 500,
|
|
step: 5,
|
|
unit: '元',
|
|
dependsOn: { key: 'vip_renew_price_type', value: 'reduce' },
|
|
help: '在会员商品基础上优惠的金额,优惠后总金额不能为0元',
|
|
},
|
|
{
|
|
key: 'vip_1_renew_product',
|
|
label: '一级会员续费',
|
|
type: 'group',
|
|
max: 8,
|
|
button_title: '添加续费商品',
|
|
default: [
|
|
{ price: 69, show_price: 199, tag: '<i class="fa fas fa-fw fa-bolt"></i> 限时特惠', time: 3, unit: 'month' },
|
|
{ price: 169, show_price: 299, tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', time: 6, unit: 'month' },
|
|
],
|
|
dependsOn: { key: 'vip_renew_price_type', value: 'customize' },
|
|
help: '一级会员续费的商品选项',
|
|
...vipProductGroupOptions,
|
|
fields: vipProductFields(),
|
|
},
|
|
{
|
|
key: 'vip_2_renew_product',
|
|
label: '二级会员续费',
|
|
type: 'group',
|
|
max: 8,
|
|
button_title: '添加续费商品',
|
|
default: [
|
|
{ price: 269, show_price: 599, tag: '<i class="fa fas fa-fw fa-bolt"></i> 限时特惠', time: 3, unit: 'month' },
|
|
{ price: 369, show_price: 899, tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', time: 6, unit: 'month' },
|
|
],
|
|
dependsOn: { key: 'vip_renew_price_type', value: 'customize' },
|
|
help: '二级会员续费的商品选项',
|
|
...vipProductGroupOptions,
|
|
fields: vipProductFields(),
|
|
},
|
|
],
|
|
},
|
|
{
|
|
key: 'upgrade',
|
|
title: '会员升级',
|
|
fields: [
|
|
{ key: 'vip_upgrade', label: '允许升级', type: 'switch', default: true },
|
|
{ key: 'vip_upgrade_desc', label: '升级介绍', type: 'input', sanitize_type: 'html', default: '升级VIP会员,享更多会员权益', dependsOn: { key: 'vip_upgrade', value: true }, help: '升级会员的一句话简介,支持HTML' },
|
|
{
|
|
key: 'vip_upgrade_product',
|
|
label: '升级价格',
|
|
type: 'accordion',
|
|
default: {
|
|
month_to_month_s: true,
|
|
unit_price: '10.00',
|
|
unit_tag: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐',
|
|
unit_tag_class: 'jb-yellow',
|
|
jump_s: false,
|
|
jump_price: '199.00',
|
|
jump_show_price: '299.00',
|
|
jump_tag: '<i class="fa fas fa-fw fa-bolt"></i> 升级特惠',
|
|
jump_tag_class: 'jb-red',
|
|
permanent_price: '199.00',
|
|
permanent_show_price: '299.00',
|
|
permanent_tag: '<i class="fa fas fa-fw fa-bolt"></i> 升级特惠',
|
|
permanent_tag_class: 'jb-red',
|
|
},
|
|
dependsOn: { key: 'vip_upgrade', value: true },
|
|
help: '会员升级的商品选项',
|
|
sections: [
|
|
{ title: '月费会员升级月费会员', keys: ['_upgrade_unit_notice', 'month_to_month_s', 'unit_price', 'unit_tag', 'unit_tag_class'] },
|
|
{ title: '月费会员升级永久会员', keys: ['_upgrade_jump_notice', 'jump_s', 'jump_price', 'jump_show_price', 'jump_tag', 'jump_tag_class'] },
|
|
{ title: '永久会员升级永久会员', keys: ['permanent_price', 'permanent_show_price', 'permanent_tag', 'permanent_tag_class'] },
|
|
],
|
|
fields: [
|
|
{ key: '_upgrade_unit_notice', label: '', type: 'notice', ui_only: true, alertType: 'warning', content: '月费会员升级为月费会员,用户会员有效期不会改变;价格按照会员剩余天数计算升级价格,请在下方设置每天的单价' },
|
|
{ key: 'month_to_month_s', label: '月费会员升级月费会员', type: 'switch', default: true },
|
|
{ key: 'unit_price', label: '天单价', type: 'number', sanitize_type: 'money_decimal', default: '10.00', min: 0, unit: '元', dependsOn: { key: 'month_to_month_s', value: true } },
|
|
{ key: 'unit_tag', label: '促销标签', type: 'textarea', sanitize_type: 'html', default: '<i class="fa fas fa-fw fa-bolt"></i> 站长推荐', rows: 1, dependsOn: { key: 'month_to_month_s', value: true }, help: '支持HTML,请注意控制长度' },
|
|
{ key: 'unit_tag_class', label: '标签颜色', type: 'palette', default: 'jb-yellow', dependsOn: { all: [{ key: 'month_to_month_s', value: true }, { key: 'unit_tag', operator: 'not_empty' }] }, options: vipTagPalette },
|
|
{ key: '_upgrade_jump_notice', label: '', type: 'notice', ui_only: true, alertType: 'warning', content: '如果网站可以购买月费会员和永久会员,则可以开启此项;允许用户由月费会员直接升级到更高一级的永久会员,用户之前还未到期的部分将自动一起转为永久会员,可能会涉及到差价问题,请自行告知用户;如果网站没有永久会员的购买选项请务必关闭此项' },
|
|
{ key: 'jump_s', label: '月费会员升级永久会员', type: 'switch', default: false },
|
|
{ key: 'jump_price', label: '执行价', type: 'number', sanitize_type: 'money_decimal', default: '199.00', min: 0, unit: '元', dependsOn: { key: 'jump_s', value: true }, help: '月费会员升级永久会员的价格' },
|
|
{ key: 'jump_show_price', label: '原价', type: 'number', sanitize_type: 'money_decimal', default: '299.00', min: 0, unit: '元', dependsOn: { key: 'jump_s', value: true }, help: '显示在执行价格前面,并划掉' },
|
|
{ key: 'jump_tag', label: '促销标签', type: 'textarea', sanitize_type: 'html', default: '<i class="fa fas fa-fw fa-bolt"></i> 升级特惠', rows: 1, dependsOn: { key: 'jump_s', value: true }, help: '支持HTML,请注意控制长度' },
|
|
{ key: 'jump_tag_class', label: '标签颜色', type: 'palette', default: 'jb-red', dependsOn: { all: [{ key: 'jump_s', value: true }, { key: 'jump_tag', operator: 'not_empty' }] }, options: vipTagPalette },
|
|
{ key: 'permanent_price', label: '执行价', type: 'number', sanitize_type: 'money_decimal', default: '199.00', min: 0, unit: '元', help: '永久会员升级永久会员的价格' },
|
|
{ key: 'permanent_show_price', label: '原价', type: 'number', sanitize_type: 'money_decimal', default: '299.00', min: 0, unit: '元', help: '显示在执行价格前面,并划掉' },
|
|
{ key: 'permanent_tag', label: '促销标签', type: 'textarea', sanitize_type: 'html', default: '<i class="fa fas fa-fw fa-bolt"></i> 升级特惠', rows: 1, help: '支持HTML,请注意控制长度' },
|
|
{ key: 'permanent_tag_class', label: '标签颜色', type: 'palette', default: 'jb-red', dependsOn: { key: 'permanent_tag', operator: 'not_empty' }, options: vipTagPalette },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
key: 'points-exchange',
|
|
title: '积分兑换会员',
|
|
icon: 'fa fas fa-database',
|
|
fields: [
|
|
{ key: 'pay_vip_points_exchange_s', label: '启用积分兑换', type: 'switch', default: false, help: '开启后用户可使用积分兑换会员;由于积分可免费获取,所以积分兑换会员功能不支持升级及续费' },
|
|
{
|
|
key: 'pay_vip_points_exchange_product',
|
|
label: '积分兑换明细',
|
|
type: 'group',
|
|
max: 16,
|
|
button_title: '添加积分兑换商品',
|
|
default: [
|
|
{ points: 500, level: 1, time: 30, unit: 'day' },
|
|
{ points: 5000, level: 1, time: 'Permanent' },
|
|
],
|
|
dependsOn: { key: 'pay_vip_points_exchange_s', value: true },
|
|
help: '每一行为一个可兑换的会员套餐',
|
|
...vipPointsGroupOptions,
|
|
fields: [
|
|
{ key: 'points', label: '使用积分', type: 'number', default: 100, min: 0, unit: '积分' },
|
|
{
|
|
key: 'level',
|
|
label: '兑换会员',
|
|
type: 'radio',
|
|
default: 1,
|
|
inline: true,
|
|
options: [
|
|
{ label: '一级会员', value: 1 },
|
|
{ label: '二级会员', value: 2 },
|
|
],
|
|
},
|
|
{ key: 'time', label: '兑换时长', type: 'input', default: '', help: '填 Permanent 为永久' },
|
|
{
|
|
key: 'unit',
|
|
label: '时长单位',
|
|
type: 'radio',
|
|
default: 'day',
|
|
inline: true,
|
|
dependsOn: { key: 'time', operator: 'neq', value: 'Permanent' },
|
|
options: vipUnitOptions,
|
|
},
|
|
],
|
|
},
|
|
{ key: 'pay_vip_points_exchange_desc', label: '兑换说明', type: 'textarea', sanitize_type: 'html', default: '', rows: 2, dependsOn: { key: 'pay_vip_points_exchange_s', value: true }, help: '显示在积分兑换弹窗底部,可以为提醒事项、兑换协议等,支持HTML代码' },
|
|
],
|
|
},
|
|
{
|
|
key: 'modal-copy',
|
|
title: '界面文案',
|
|
icon: 'fa fas fa-align-left',
|
|
fields: [
|
|
{
|
|
key: 'pay_user_vip_desc',
|
|
label: '会员介绍',
|
|
type: 'input',
|
|
sanitize_type: 'html',
|
|
default: '开通VIP会员,享受会员专属折扣以及多项特权',
|
|
dependsOn: { any: [{ key: 'pay_user_vip_1_s', value: true }, { key: 'pay_user_vip_2_s', value: true }] },
|
|
help: '显示在开通界面顶部一句话简介,可以为会员权益简介或者活动介绍,支持HTML',
|
|
},
|
|
{
|
|
key: 'pay_user_vip_more',
|
|
label: '开通会员更多内容',
|
|
type: 'textarea',
|
|
sanitize_type: 'html',
|
|
default: '<div>购买后不支持退款</div><div>VIP权益仅适用于本站</div><div>欢迎与站长联系</div>',
|
|
rows: 4,
|
|
dependsOn: { any: [{ key: 'pay_user_vip_1_s', value: true }, { key: 'pay_user_vip_2_s', value: true }] },
|
|
help: '显示在开通界面底部位置,可以为提醒事项、用户协议等,支持HTML代码',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|