刷新令牌只有在 401 时才会清空cookie
This commit is contained in:
20
README.md
20
README.md
@@ -1,9 +1,21 @@
|
|||||||
## TODO
|
## TODO
|
||||||
|
|
||||||
|
支付等待轮询需要使用 abortcontroller,以便在手动点击时能中断轮询请求
|
||||||
|
|
||||||
|
长短效切换 url 没有重写
|
||||||
|
|
||||||
|
手机支付后原页面保留完成等待弹窗
|
||||||
|
|
||||||
|
支付接口 sse 向客户端推送通知与支付结果等事件
|
||||||
|
|
||||||
|
微信支付渠道无法完成支付
|
||||||
|
|
||||||
|
整体文字替换
|
||||||
|
|
||||||
后台首页 :
|
后台首页 :
|
||||||
|
- 接口联调
|
||||||
- banner 拉伸问题
|
- banner 拉伸问题
|
||||||
- 图表组件高度和查询按钮越界问题
|
- 图表组件高度和查询按钮越界问题
|
||||||
- 磁贴组件手机视图竖排,删除“套餐”,“数量”
|
|
||||||
- 公告查看更多跳转实现
|
- 公告查看更多跳转实现
|
||||||
|
|
||||||
手机端支付页面样式调整为类似电商的底部支付栏
|
手机端支付页面样式调整为类似电商的底部支付栏
|
||||||
@@ -12,14 +24,10 @@ MDX code 块语法高亮
|
|||||||
|
|
||||||
全部替换封装时间范围组件,检查结束时间字段手机端适配问题(需要尾部对齐)
|
全部替换封装时间范围组件,检查结束时间字段手机端适配问题(需要尾部对齐)
|
||||||
|
|
||||||
全局修改断点命名
|
页尾链接完善跳转地址
|
||||||
|
|
||||||
页头链接完善跳转地址
|
|
||||||
|
|
||||||
树组件优化
|
树组件优化
|
||||||
|
|
||||||
sse 向客户端推送通知与支付结果等事件
|
|
||||||
|
|
||||||
IP 管理按长短效分页
|
IP 管理按长短效分页
|
||||||
|
|
||||||
调整页面大小优化:如果单页大小不超过预期大小,不需要刷新数据
|
调整页面大小优化:如果单页大小不超过预期大小,不需要刷新数据
|
||||||
|
|||||||
@@ -6,6 +6,54 @@ export type SftpayPageProps = {
|
|||||||
|
|
||||||
export default async function SftpayPage(props: SftpayPageProps) {
|
export default async function SftpayPage(props: SftpayPageProps) {
|
||||||
return (
|
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>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,54 +1,26 @@
|
|||||||
import Wrap from '@/components/wrap'
|
'use client'
|
||||||
import {NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport} from '@radix-ui/react-navigation-menu'
|
import {Button} from '@/components/ui/button'
|
||||||
import Link from 'next/link'
|
import {useEffect, useRef, useState} from 'react'
|
||||||
|
|
||||||
export default function TestPage() {
|
export default function TestPage() {
|
||||||
|
const [show, setShow] = useState(false)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="fixed left-0 top-0 w-full">
|
<div>
|
||||||
<Wrap>
|
<Button onClick={() => setShow(true)}>test</Button>
|
||||||
<NavigationMenu>
|
{show && <TestCanvas/>}
|
||||||
<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>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function TestCanvas() {
|
||||||
|
const c = useRef<HTMLCanvasElement>(null)
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
console.log(c)
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<canvas ref={c}></canvas>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user