刷新令牌只有在 401 时才会清空cookie

This commit is contained in:
2025-08-15 10:39:00 +08:00
parent 55b5762944
commit 1baa7c94dc
3 changed files with 83 additions and 55 deletions

View File

@@ -1,9 +1,21 @@
## TODO
支付等待轮询需要使用 abortcontroller以便在手动点击时能中断轮询请求
长短效切换 url 没有重写
手机支付后原页面保留完成等待弹窗
支付接口 sse 向客户端推送通知与支付结果等事件
微信支付渠道无法完成支付
整体文字替换
后台首页
- 接口联调
- banner 拉伸问题
- 图表组件高度和查询按钮越界问题
- 磁贴组件手机视图竖排,删除“套餐”,“数量”
- 公告查看更多跳转实现
手机端支付页面样式调整为类似电商的底部支付栏
@@ -12,14 +24,10 @@ MDX code 块语法高亮
全部替换封装时间范围组件,检查结束时间字段手机端适配问题(需要尾部对齐)
全局修改断点命名
页头链接完善跳转地址
页尾链接完善跳转地址
树组件优化
sse 向客户端推送通知与支付结果等事件
IP 管理按长短效分页
调整页面大小优化:如果单页大小不超过预期大小,不需要刷新数据

View File

@@ -6,6 +6,54 @@ export type SftpayPageProps = {
export default async function SftpayPage(props: SftpayPageProps) {
return (
<div>111</div>
<div className="flex items-center justify-center min-h-screen bg-gray-100">
<div className="w-full max-w-md p-8 space-y-8 bg-white rounded-lg shadow-lg">
<div className="text-center">
<div className="flex justify-center">
<div className="rounded-full bg-green-100 p-3">
<svg className="h-12 w-12 text-green-500" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7"/>
</svg>
</div>
</div>
<h2 className="mt-6 text-3xl font-extrabold text-gray-900"></h2>
<p className="mt-2 text-sm text-gray-600">
使
</p>
</div>
<div className="mt-8 space-y-6">
<div className="border-t border-gray-200 pt-4">
<dl className="space-y-4">
<div className="flex justify-between">
<dt className="text-sm font-medium text-gray-500"></dt>
<dd className="text-sm text-gray-900">ORD-12345678</dd>
</div>
<div className="flex justify-between">
<dt className="text-sm font-medium text-gray-500"></dt>
<dd className="text-sm font-bold text-gray-900">¥ 299.00</dd>
</div>
<div className="flex justify-between">
<dt className="text-sm font-medium text-gray-500"></dt>
<dd className="text-sm text-gray-900">{new Date().toLocaleString('zh-CN')}</dd>
</div>
<div className="flex justify-between">
<dt className="text-sm font-medium text-gray-500"></dt>
<dd className="text-sm text-gray-900">SFT支付</dd>
</div>
</dl>
</div>
<div className="flex items-center justify-center">
<button
type="button"
className="w-full flex justify-center py-3 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
>
</button>
</div>
</div>
</div>
</div>
)
}

View File

@@ -1,54 +1,26 @@
import Wrap from '@/components/wrap'
import {NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport} from '@radix-ui/react-navigation-menu'
import Link from 'next/link'
'use client'
import {Button} from '@/components/ui/button'
import {useEffect, useRef, useState} from 'react'
export default function TestPage() {
const [show, setShow] = useState(false)
return (
<div className="fixed left-0 top-0 w-full">
<Wrap>
<NavigationMenu>
<div className="flex">
<div className="flex-1">
</div>
<div className="flex-1">
<NavigationMenuList className="flex justify-around">
<NavigationMenuItem>
<NavigationMenuLink asChild>
<Link href="/test">Test 0 </Link>
</NavigationMenuLink>
</NavigationMenuItem>
<NavigationMenuItem>
<NavigationMenuTrigger>
Test 1
</NavigationMenuTrigger>
<NavigationMenuContent>
<NavigationMenuLink asChild>
<Link href="/test">Test 1 Content</Link>
</NavigationMenuLink>
</NavigationMenuContent>
</NavigationMenuItem>
<NavigationMenuItem>
<NavigationMenuTrigger>
Test 2
</NavigationMenuTrigger>
<NavigationMenuContent>
<NavigationMenuLink asChild>
<Link href="/test">Test 2 Content</Link>
</NavigationMenuLink>
</NavigationMenuContent>
</NavigationMenuItem>
<NavigationMenuItem>
<NavigationMenuLink asChild>
<Link href="/test">Test 3 </Link>
</NavigationMenuLink>
</NavigationMenuItem>
<NavigationMenuIndicator className="w-full h-1 bg-green-500"/>
</NavigationMenuList>
</div>
</div>
<NavigationMenuViewport className="bg-blue-100"/>
</NavigationMenu>
</Wrap>
<div>
<Button onClick={() => setShow(true)}>test</Button>
{show && <TestCanvas/>}
</div>
)
}
function TestCanvas() {
const c = useRef<HTMLCanvasElement>(null)
useEffect(() => {
console.log(c)
}, [])
return (
<canvas ref={c}></canvas>
)
}