diff --git a/assets/admin/src/constants/sections/permissions.js b/assets/admin/src/constants/sections/permissions.js index dccb2621..1d198c39 100644 --- a/assets/admin/src/constants/sections/permissions.js +++ b/assets/admin/src/constants/sections/permissions.js @@ -7,37 +7,15 @@ export const permissionsSection = { route: '/permissions', children: [ customPage({ - key: 'permissions-comment', - name: 'PermissionsComment', - label: '评论权限', - route: '/permissions/comment', - component: 'CommentPermissions', - title: '评论权限', - desc: '游客评论、频率限制、敏感词和审核策略。', + key: 'permissions-capabilities', + name: 'PermissionsCapabilities', + label: '基本权限', + route: '/permissions/capabilities', + component: 'PermissionsCapabilities', + title: '基本权限 / 能力矩阵', + desc: '统一管理用户、投稿、评论、上传和下载的准入能力。', canonicalDomain: 'permissions', - section: 'comment', - }), - customPage({ - key: 'permissions-attachment', - name: 'PermissionsAttachment', - label: '附件权限', - route: '/permissions/attachment', - component: 'AttachmentPermissions', - title: '附件权限', - desc: '上传角色、文件类型、大小限制和审核状态。', - canonicalDomain: 'permissions', - section: 'attachment', - }), - customPage({ - key: 'permissions-download', - name: 'PermissionsDownload', - label: '下载权限', - route: '/permissions/download', - component: 'DownloadPermissions', - title: '下载权限', - desc: '登录要求、积分要求、角色要求和 VIP 特权。', - canonicalDomain: 'permissions', - section: 'download', + section: 'capabilities', }), schemaPage({ key: 'permissions-login', @@ -52,23 +30,23 @@ export const permissionsSection = { schemaPage({ key: 'permissions-moderation', name: 'PermissionsModeration', - label: '审核和风控', + label: '内容审核', route: '/permissions/moderation', - title: '审核和风控', + title: '内容审核', desc: '评论审核、反垃圾、限流与风控配置。', canonicalDomain: 'permissions', section: 'moderation', }), customPage({ - key: 'permissions-capabilities', - name: 'PermissionsCapabilities', - label: '基本权限', - route: '/permissions/capabilities', - component: 'PermissionsCapabilities', - title: '基本权限 / 能力矩阵', - desc: '统一管理用户治理、投稿和评论的角色能力矩阵。', + key: 'permissions-attachment', + name: 'PermissionsAttachment', + label: '附件配置', + route: '/permissions/attachment', + component: 'AttachmentPermissions', + title: '附件配置', + desc: '管理文件大小、类型、安全限制和审核策略。', canonicalDomain: 'permissions', - section: 'capabilities', + section: 'attachment', }), ], } diff --git a/assets/admin/src/pages/ResourceDownload.vue b/assets/admin/src/pages/ResourceDownload.vue index 427132d5..fc26b6be 100644 --- a/assets/admin/src/pages/ResourceDownload.vue +++ b/assets/admin/src/pages/ResourceDownload.vue @@ -6,7 +6,7 @@ > @@ -18,15 +18,9 @@

当前联动摘要

- - 登录门槛:{{ form.download_login ? '已启用' : '已关闭' }} - 积分购买模式:{{ form.download_credit ? '已启用' : '已关闭' }} - - 下载验证码:{{ form.download_captcha ? '已启用' : '已关闭' }} - 默认积分价:{{ form.download_default_cost }} {{ currencyName }} @@ -44,10 +38,6 @@

下载门槛

- - - - - - - - - - - - - - @@ -123,7 +117,6 @@ const saving = ref(false) // 后端 /settings/basic 返回基础字段;auth 相关字段由 /settings/auth 独立维护。 const basic = reactive({ comment_enabled: true, - comment_requires_registration: false, icp_number: '', police_number: '', lazyload_enabled: true, @@ -139,7 +132,6 @@ async function loadAll() { if (basicRes?.code === 'success' && basicRes.data) { const d = basicRes.data basic.comment_enabled = d.comment_enabled !== false - basic.comment_requires_registration = !!d.comment_requires_registration basic.icp_number = d.icp_number || '' basic.police_number = d.police_number || '' basic.lazyload_enabled = d.lazyload_enabled !== false @@ -159,7 +151,6 @@ async function handleSave() { try { const basicPayload = { comment_enabled: basic.comment_enabled, - comment_requires_registration: basic.comment_requires_registration, icp_number: basic.icp_number, police_number: basic.police_number, lazyload_enabled: basic.lazyload_enabled, diff --git a/assets/admin/src/pages/permissions/AttachmentPermissions.vue b/assets/admin/src/pages/permissions/AttachmentPermissions.vue index 2867dc52..c0703126 100644 --- a/assets/admin/src/pages/permissions/AttachmentPermissions.vue +++ b/assets/admin/src/pages/permissions/AttachmentPermissions.vue @@ -2,11 +2,10 @@
@@ -34,31 +33,10 @@
-

头像与封面

+

用户资料卡背景图

- - - - - - - - - - - - - - - - + @@ -70,24 +48,10 @@

内容上传

- - - - - - - - - - @@ -100,13 +64,6 @@

资源附件

- - - - - @@ -158,27 +115,19 @@ const saving = ref(false) const moderationSnapshot = ref({}) const form = reactive({ - allow_avatar_upload: true, - allow_cover_upload: true, - allow_background_upload: false, avatar_max_size: 2, - allow_submit_images: true, submit_image_max_size: 5, - allow_comment_images: false, comment_image_max_size: 2, - allow_resource_upload: true, resource_max_size: 50, ai_moderate_background: true, ai_moderate_submit: false, }) const summaryItems = computed(() => [ - { key: 'avatar', icon: 'fas fa-user-circle', label: '头像上传', enabled: form.allow_avatar_upload }, - { key: 'cover', icon: 'fas fa-image', label: '封面上传', enabled: form.allow_cover_upload }, - { key: 'background', icon: 'fas fa-photo-video', label: '背景图上传', enabled: form.allow_background_upload }, - { key: 'submit', icon: 'fas fa-edit', label: '投稿图片', enabled: form.allow_submit_images }, - { key: 'comment', icon: 'fas fa-comment-dots', label: '评论图片', enabled: form.allow_comment_images }, - { key: 'resource', icon: 'fas fa-file-archive', label: '资源附件', enabled: form.allow_resource_upload }, + { key: 'profile', icon: 'fas fa-id-card', label: '资料卡图片', enabled: true }, + { key: 'submit', icon: 'fas fa-edit', label: '投稿图片', enabled: true }, + { key: 'comment', icon: 'fas fa-comment-dots', label: '评论图片', enabled: true }, + { key: 'resource', icon: 'fas fa-file-archive', label: '资源附件', enabled: true }, ]) function go(path) { @@ -199,15 +148,9 @@ async function load() { const moderation = moderationRes?.data ?? moderationRes ?? {} // Map permission fields - form.allow_avatar_upload = permission.allow_avatar_upload !== false - form.allow_cover_upload = permission.allow_cover_upload !== false - form.allow_background_upload = !!permission.allow_background_upload form.avatar_max_size = Number(permission.avatar_max_size || 2) - form.allow_submit_images = permission.allow_submit_images !== false form.submit_image_max_size = Number(permission.submit_image_max_size || 5) - form.allow_comment_images = !!permission.allow_comment_images form.comment_image_max_size = Number(permission.comment_image_max_size || 2) - form.allow_resource_upload = permission.allow_resource_upload !== false form.resource_max_size = Number(permission.resource_max_size || 50) form.ai_moderate_background = moderation.ai_moderate_background !== false @@ -226,15 +169,9 @@ async function handleSave() { try { await Promise.all([ api.savePermissionsAttachmentSettings({ - allow_avatar_upload: form.allow_avatar_upload, - allow_cover_upload: form.allow_cover_upload, - allow_background_upload: form.allow_background_upload, avatar_max_size: form.avatar_max_size, - allow_submit_images: form.allow_submit_images, submit_image_max_size: form.submit_image_max_size, - allow_comment_images: form.allow_comment_images, comment_image_max_size: form.comment_image_max_size, - allow_resource_upload: form.allow_resource_upload, resource_max_size: form.resource_max_size, }), api.savePermissionsModerationSettings({ diff --git a/assets/admin/src/pages/permissions/CommentPermissions.vue b/assets/admin/src/pages/permissions/CommentPermissions.vue deleted file mode 100644 index 45a9d030..00000000 --- a/assets/admin/src/pages/permissions/CommentPermissions.vue +++ /dev/null @@ -1,154 +0,0 @@ - - - diff --git a/assets/admin/src/pages/permissions/DownloadPermissions.vue b/assets/admin/src/pages/permissions/DownloadPermissions.vue deleted file mode 100644 index 173b1d00..00000000 --- a/assets/admin/src/pages/permissions/DownloadPermissions.vue +++ /dev/null @@ -1,161 +0,0 @@ - - - diff --git a/assets/admin/src/pages/permissions/PermissionsCapabilities.vue b/assets/admin/src/pages/permissions/PermissionsCapabilities.vue index 015d4a1e..56ac1966 100644 --- a/assets/admin/src/pages/permissions/PermissionsCapabilities.vue +++ b/assets/admin/src/pages/permissions/PermissionsCapabilities.vue @@ -12,8 +12,7 @@ - 转账/提现(balance_transfer、points_transfer、balance_withdraw)默认 exclude all,与 Zibll 一致:未在矩阵中为角色/等级/VIP/认证打开前,前台入口会隐藏或拒绝。 - medal_manually_set 控制谁可授予徽章;管理员 manage_options 始终可通过。 + 每项能力都通过“所有人、已登录、等级、VIP、已认证”五列治理;管理员(manage_options)始终可通过。 diff --git a/assets/admin/src/pages/users/UsersFeatures.vue b/assets/admin/src/pages/users/UsersFeatures.vue index 1b256bc7..569e67c6 100644 --- a/assets/admin/src/pages/users/UsersFeatures.vue +++ b/assets/admin/src/pages/users/UsersFeatures.vue @@ -1,49 +1,30 @@