align(品牌数据库): 非超管分组强制锁定(筛选/新增/编辑下拉禁用并锁本人分组、重置保持锁定),超管全量放开(对齐 admin.js getInvalidAsinDataLockedGroupId/refreshShopGroupSelects)

This commit is contained in:
2026-09-05 23:06:28 +08:00
parent 32ef9a2ebb
commit 2f4bb834cf
3 changed files with 80 additions and 7 deletions
@@ -44,6 +44,20 @@ export function invalidAsinDeleteText(item: Pick<InvalidAsinItem, 'dataValue'> |
return `确定删除不符合 ASIN“${value}”吗?删除后不可恢复。`
}
/**
* 非超管分组锁定(对齐 admin.js getInvalidAsinDataLockedGroupId:超管不锁;
* 非超管锁 lockedGroupId,缺失时退化为第一个分组;无分组返回 null)。
*/
export function invalidAsinLockedGroupId(
groups: Array<{ id: number }>,
lockedGroupId: number | null | undefined,
operatorRole: string,
): number | null {
if ((operatorRole || '').toLowerCase() === 'super_admin') return null
if (lockedGroupId != null && groups.some((group) => group.id === lockedGroupId)) return lockedGroupId
return groups.length ? groups[0].id : null
}
/** 解析单条品牌数据库项;缺 id 视为无效。 */
export function toInvalidAsinItem(raw: unknown): InvalidAsinItem | null {
if (!raw || typeof raw !== 'object') return null