diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index ffb975e..ea522a3 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -816,8 +816,9 @@ async function handleReset() { // 行选择变化 function handleRowSelectionChange(rowKeys: (string | number)[]) { - const numericKeys = rowKeys.map(key => typeof key === 'string' ? Number.parseInt(key) : key) - selectedRows.value = tableData.value.filter(row => numericKeys.includes(row.roleId)) + // 保持字符串格式避免精度丢失 + const stringKeys = rowKeys.map(key => String(key)) + selectedRows.value = tableData.value.filter(row => stringKeys.includes(String(row.roleId))) } // 批量修改(选中一个角色进行修改) @@ -1078,9 +1079,8 @@ async function handleConfirmAssignMenu() { // 确保选中子菜单时父菜单也被包含 const completeMenuIds = ensureParentMenusIncluded(checkedKeys.value, menuData.value) - // 将字符串格式的key转换为数字格式发送给后端 - const menuIds = completeMenuIds.map(key => Number.parseInt(String(key))) - const response = await saveRoleMenuPermission(currentAssignRole.value.roleId, menuIds) + // 保持字符串格式避免精度丢失 + const response = await saveRoleMenuPermission(String(currentAssignRole.value.roleId), completeMenuIds) if (response.isSuccess) { coiMsgSuccess('菜单权限分配成功')