| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /**
- * 活动管理权限判定(小程序端)
- *
- * 与后端 `ActivityController.hasActivityManageRole`(com.etotem.cfc.controller)保持一致:
- * 后台角色 admin / activity_admin 直接放行;roles 列表含 activity_manager 也放行。
- *
- * 注意:小程序登录态里 userInfo 只存 nickname/userId/familyId,
- * 角色存在独立的 `role` / `currentRole` storage key 里(见 App.vue saveLoginInfo、utils/api.js _applyLoginData),
- * 所以不能只读 userInfo.role,否则永远判为无权限。
- */
- var ACTIVITY_MANAGE_ROLES = ['admin', 'activity_admin', 'activity_manager']
- function hasRoleInList(list, role) {
- if (!list || !list.length) return false
- for (var i = 0; i < list.length; i++) {
- if (list[i] === role) return true
- }
- return false
- }
- /**
- * 当前登录账号是否有活动管理权限(后台角色)
- * @returns {boolean}
- */
- export function hasActivityManageRole() {
- var mainRole = uni.getStorageSync('currentRole') || uni.getStorageSync('role') || ''
- if (hasRoleInList(ACTIVITY_MANAGE_ROLES, mainRole)) return true
- var userInfo = uni.getStorageSync('userInfo') || {}
- if (hasRoleInList(ACTIVITY_MANAGE_ROLES, userInfo.role)) return true
- if (hasRoleInList(ACTIVITY_MANAGE_ROLES, userInfo.roles)) return true
- return false
- }
- /**
- * vendorStatus 接口返回是否表示「已通过审核的活动提供商」
- * @param {Object} vendorStatusData /api/vendor/status 的 data 字段
- * @returns {boolean}
- */
- export function isApprovedActivityProvider(vendorStatusData) {
- var d = vendorStatusData || {}
- return d.vendorType === 'activity_provider' && d.vendorStatus === 'approved'
- }
|