) => setDraft((value) => ({
...value, vehicleGrants: value.vehicleGrants.map((grant) => grant.vin === vin ? { ...grant, ...patch } : grant)
}));
@@ -371,10 +420,13 @@ export default function UsersPage() {
{creating ? '创建客户账号' : selected?.displayName}{creating ? '设置登录身份和最小必要权限' : <>@{selected?.username} · {draft.menuKeys.length} 个菜单 · {draft.vehicleGrants.length} 辆车 · 最近登录 {formatTime(selected?.lastLoginAt)}>}
}
- onCancel={closeEditor}
+ onCancel={requestCloseEditor}
footer={
- {feedback || '权限变更最多 30 秒生效,保存前请核对车辆有效期'}
-
+
+ {save.isError ? '保存失败' : hasUnsavedChanges ? '待保存' : '已同步'}
+ {feedback || (hasUnsavedChanges ? '更改仅保存在当前草稿,保存后最多 30 秒生效' : '账号与权限已和服务器同步')}
+
+
}
>
{editorVisible ?