Files
wordpress-theme-aksrt/assets/admin/src/schema/sections/users/level.js
T
kate522 9375b1c30c refactor(assets): vendor 资产迁入标准目录并全仓去除 zibll 标识
- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css,
  js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img,
  fonts→assets/fonts; 删除 assets/vendor
- libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向
- 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入
  路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_*
- 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化
- 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→
  window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel,
  .zib-slider→.aksrt-slider, zib_menu_options meta 键等
- 自有 CSS 改名: legacy-utilities/compat-vars/footer shell
- admin SPA 重建; 契约测试同步(路径/断言/文件更名)
- 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用)

验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过;
契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
2026-08-22 16:16:30 +08:00

74 lines
2.8 KiB
JavaScript

/**
* User level + integral XP (legacy user_level_s / user_level_opt / user_integral_opt).
*/
export const INTEGRAL_CATALOG = [
{ key: 'sign_up', label: '首次注册', default: 20, group: '用户' },
{ key: 'sign_in', label: '每日登录', default: 5, group: '用户' },
{ key: 'followed', label: '被关注', default: 5, group: '用户' },
{ key: 'post_new', label: '发布文章', default: 5, group: '文章' },
{ key: 'post_like', label: '文章获赞', default: 1, group: '文章' },
{ key: 'post_favorite', label: '文章被收藏', default: 2, group: '文章' },
{ key: 'comment_new', label: '发表评论', default: 2, group: '文章' },
{ key: 'comment_like', label: '评论获赞', default: 1, group: '文章' },
]
export function defaultLevelOpt(max = 10) {
const opt = {}
for (let i = 1; i <= max; i++) {
opt['upgrade_integral_' + i] = i === 1 ? 0 : (i - 1) * 500 * i
opt['name_' + i] = 'LV' + i
opt['icon_img_' + i] = ''
}
return opt
}
export function defaultIntegralOpt() {
const opt = { day_max: 100 }
for (const row of INTEGRAL_CATALOG) {
opt[row.key] = row.default
}
return opt
}
export const levelSchema = {
key: 'users.level',
title: '用户等级',
icon: 'fa fas fa-level-up-alt',
description: '等级与经验值:最高等级、升级阈值、经验获取矩阵(对齐 legacy user_level / user_integral)。',
defaults: {
user_level_s: true,
user_level_public_display: true,
user_level_max: 10,
user_level_opt: defaultLevelOpt(10),
user_integral_opt: defaultIntegralOpt(),
user_level_notify: true,
},
groups: [
{
key: 'display',
title: '等级显示',
fields: [
{ key: 'user_level_s', label: '启用用户等级', type: 'switch', default: true },
{ key: 'user_level_public_display', label: '公开页显示等级', type: 'switch', default: true, dependsOn: { key: 'user_level_s', value: true } },
{ key: 'user_level_max', label: '最高等级', type: 'number', default: 10, min: 3, max: 30, dependsOn: { key: 'user_level_s', value: true } },
{ key: 'user_level_notify', label: '升级通知', type: 'switch', default: true, dependsOn: { key: 'user_level_s', value: true } },
],
},
{
key: 'level_opt',
title: '等级升级阈值',
fields: [
{ key: 'user_level_opt', label: '升级经验配置', type: 'json', sanitizeType: 'array', default: defaultLevelOpt(10), help: 'upgrade_integral_N 为升到 N 级所需累计经验' },
],
},
{
key: 'integral',
title: '经验值得分',
fields: [
{ key: 'user_integral_opt', label: '经验值获取', type: 'json', sanitizeType: 'array', default: defaultIntegralOpt(), help: 'day_max + 各行为得分;对应功能未开则将分值设 0' },
],
},
],
}