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

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" "use client"
import { import {
Activity, Activity,
BarChart3,
ChevronsLeft, ChevronsLeft,
ChevronsRight, ChevronsRight,
CircleDollarSign, CircleDollarSign,

View File

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

View File

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