|
|
@@ -23,6 +23,8 @@ import { Popover, PopoverContent, PopoverTrigger } from '@d8d/shared-ui-componen
|
|
|
import { Calendar } from '@d8d/shared-ui-components/components/ui/calendar';
|
|
|
import { cn } from '@d8d/shared-ui-components/utils/cn';
|
|
|
import { DisabledStatus } from '@d8d/shared-types';
|
|
|
+import { CreditBalanceDialog } from '@d8d/credit-balance-management-ui-mt';
|
|
|
+import { CreditCard } from 'lucide-react';
|
|
|
|
|
|
// 使用RPC方式提取类型
|
|
|
type CreateUserRequest = InferRequestType<typeof userClient.index.$post>['json'];
|
|
|
@@ -58,6 +60,8 @@ export const UserManagement = () => {
|
|
|
const [editingUser, setEditingUser] = useState<UserResponse | null>(null);
|
|
|
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
|
|
|
const [userToDelete, setUserToDelete] = useState<number | null>(null);
|
|
|
+ const [creditBalanceDialogOpen, setCreditBalanceDialogOpen] = useState(false);
|
|
|
+ const [selectedUserForCredit, setSelectedUserForCredit] = useState<{ id: number; name: string } | null>(null);
|
|
|
|
|
|
const [isCreateForm, setIsCreateForm] = useState(true);
|
|
|
|
|
|
@@ -196,6 +200,15 @@ export const UserManagement = () => {
|
|
|
setIsModalOpen(true);
|
|
|
};
|
|
|
|
|
|
+ // 打开信用额度管理对话框
|
|
|
+ const handleOpenCreditDialog = (user: UserResponse) => {
|
|
|
+ setSelectedUserForCredit({
|
|
|
+ id: user.id,
|
|
|
+ name: user.name || user.username
|
|
|
+ });
|
|
|
+ setCreditBalanceDialogOpen(true);
|
|
|
+ };
|
|
|
+
|
|
|
// 打开编辑用户对话框
|
|
|
const handleEditUser = (user: UserResponse) => {
|
|
|
setEditingUser(user);
|
|
|
@@ -568,6 +581,15 @@ export const UserManagement = () => {
|
|
|
</TableCell>
|
|
|
<TableCell className="text-right">
|
|
|
<div className="flex justify-end gap-2">
|
|
|
+ <Button
|
|
|
+ variant="ghost"
|
|
|
+ size="icon"
|
|
|
+ onClick={() => handleOpenCreditDialog(user)}
|
|
|
+ aria-label="管理信用额度"
|
|
|
+ title="管理信用额度"
|
|
|
+ >
|
|
|
+ <CreditCard className="h-4 w-4" />
|
|
|
+ </Button>
|
|
|
<Button
|
|
|
variant="ghost"
|
|
|
size="icon"
|
|
|
@@ -900,6 +922,19 @@ export const UserManagement = () => {
|
|
|
</DialogFooter>
|
|
|
</DialogContent>
|
|
|
</Dialog>
|
|
|
+
|
|
|
+ {/* 信用额度管理对话框 */}
|
|
|
+ {selectedUserForCredit && (
|
|
|
+ <CreditBalanceDialog
|
|
|
+ userId={selectedUserForCredit.id}
|
|
|
+ userName={selectedUserForCredit.name}
|
|
|
+ open={creditBalanceDialogOpen}
|
|
|
+ onOpenChange={setCreditBalanceDialogOpen}
|
|
|
+ title={`${selectedUserForCredit.name}的信用额度管理`}
|
|
|
+ description={`管理用户 ${selectedUserForCredit.name} (ID: ${selectedUserForCredit.id}) 的信用额度`}
|
|
|
+ size="lg"
|
|
|
+ />
|
|
|
+ )}
|
|
|
</div>
|
|
|
);
|
|
|
};
|