网管列表表格操作按钮优化

This commit is contained in:
Eamon
2026-06-29 17:44:28 +08:00
parent ea26e2fa1b
commit 3dfe8a2b52
3 changed files with 54 additions and 30 deletions

View File

@@ -1,7 +1,6 @@
"use client"
import {
Activity,
BarChart3,
ChevronsLeft,
ChevronsRight,
CircleDollarSign,

View File

@@ -14,6 +14,12 @@ import { Auth } from "@/components/auth"
import { DataTable, useDataTable } from "@/components/data-table"
import { Page } from "@/components/page"
import { Button } from "@/components/ui/button"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"
import { ScopeChannelWriteClearExpired, ScopeProxyWrite } from "@/lib/scopes"
import type { Gateway } from "@/models/gateway"
import CreatePage from "./create"
@@ -168,7 +174,8 @@ export default function GatewayPage() {
id: "action",
meta: { pin: "right" },
header: "操作",
cell: ({ row }) => (
cell: ({ row }) => {
return (
<div className="flex gap-2 ">
<Button
onClick={() =>
@@ -178,24 +185,41 @@ export default function GatewayPage() {
variant={
row.original.status === 0 ? "default" : "destructive"
}
size="sm"
>
{row.original.status === 0 ? "启用" : "停用"}
</Button>
<Auth scope={ScopeChannelWriteClearExpired}>
<Button onClick={() => clearExpired(row.original)}>
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button size="sm" variant="outline">
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end" className="w-8">
<Auth scope={ScopeChannelWriteClearExpired}>
<DropdownMenuItem
onClick={() => clearExpired(row.original)}
>
</DropdownMenuItem>
</Auth>
<Auth scope={ScopeProxyWrite}>
<Button onClick={() => createPort(row.original)}>
<DropdownMenuItem
onClick={() => createPort(row.original)}
>
</Button>
<Button onClick={() => createChains(row.original)}>
</DropdownMenuItem>
<DropdownMenuItem
onClick={() => createChains(row.original)}
>
</Button>
</DropdownMenuItem>
</Auth>
</DropdownMenuContent>
</DropdownMenu>
</div>
),
)
},
},
]}
/>

View File

@@ -439,6 +439,7 @@ function CheckOrder(props: { trade: Trade; onSuccess: () => void }) {
trade_no: props.trade.inner_no,
method: Number(props.trade.method),
})
console.log(res, "res")
if (res.success) {
setData(res.data)
@@ -555,7 +556,7 @@ function CheckOrder(props: { trade: Trade; onSuccess: () => void }) {
</div>
)}
{props && props.trade.status === 0 && (
<>
<div className="flex gap-4 items-center justify-center">
<Button size="sm" className="w-32" onClick={headerClick}>
</Button>
@@ -565,7 +566,7 @@ function CheckOrder(props: { trade: Trade; onSuccess: () => void }) {
<Button size="sm" className="w-32" onClick={cancel}>
</Button>
</>
</div>
)}
<DialogFooter>