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

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,7 +174,8 @@ export default function GatewayPage() {
id: "action", id: "action",
meta: { pin: "right" }, meta: { pin: "right" },
header: "操作", header: "操作",
cell: ({ row }) => ( cell: ({ row }) => {
return (
<div className="flex gap-2 "> <div className="flex gap-2 ">
<Button <Button
onClick={() => onClick={() =>
@@ -178,24 +185,41 @@ export default function GatewayPage() {
variant={ variant={
row.original.status === 0 ? "default" : "destructive" row.original.status === 0 ? "default" : "destructive"
} }
size="sm"
> >
{row.original.status === 0 ? "启用" : "停用"} {row.original.status === 0 ? "启用" : "停用"}
</Button> </Button>
<Auth scope={ScopeChannelWriteClearExpired}> <DropdownMenu>
<Button onClick={() => clearExpired(row.original)}> <DropdownMenuTrigger asChild>
<Button size="sm" variant="outline">
</Button> </Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end" className="w-8">
<Auth scope={ScopeChannelWriteClearExpired}>
<DropdownMenuItem
onClick={() => clearExpired(row.original)}
>
</DropdownMenuItem>
</Auth> </Auth>
<Auth scope={ScopeProxyWrite}> <Auth scope={ScopeProxyWrite}>
<Button onClick={() => createPort(row.original)}> <DropdownMenuItem
onClick={() => createPort(row.original)}
>
</Button> </DropdownMenuItem>
<Button onClick={() => createChains(row.original)}> <DropdownMenuItem
onClick={() => createChains(row.original)}
>
</Button> </DropdownMenuItem>
</Auth> </Auth>
</DropdownMenuContent>
</DropdownMenu>
</div> </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>