引入 husky,并全局重新格式化
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
|
||||
import { ReactNode } from 'react'
|
||||
import { Metadata } from 'next'
|
||||
import {ReactNode} from 'react'
|
||||
import {Metadata} from 'next'
|
||||
|
||||
export async function generateMetadata(): Promise<Metadata> {
|
||||
return {
|
||||
@@ -9,9 +8,9 @@ export async function generateMetadata(): Promise<Metadata> {
|
||||
}
|
||||
|
||||
export type BillsLayoutProps = {
|
||||
children: ReactNode
|
||||
children: ReactNode
|
||||
}
|
||||
|
||||
export default async function BillsLayout(props: BillsLayoutProps) {
|
||||
return props.children
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,6 @@ type FilterSchema = zod.infer<typeof filterSchema>
|
||||
export type BillsPageProps = {}
|
||||
|
||||
export default function BillsPage(props: BillsPageProps) {
|
||||
|
||||
// ======================
|
||||
// 查询
|
||||
// ======================
|
||||
@@ -95,58 +94,58 @@ export default function BillsPage(props: BillsPageProps) {
|
||||
<Page>
|
||||
|
||||
{/* 操作区 */}
|
||||
<section className={`flex justify-between flex-wrap`}>
|
||||
<section className="flex justify-between flex-wrap">
|
||||
<div>
|
||||
<h1 className="text-xl font-bold">账单管理</h1>
|
||||
</div>
|
||||
|
||||
<Form form={form} onSubmit={onSubmit} className={`flex items-end gap-4`}>
|
||||
<FormField name={`type`} label={<span className={`text-sm`}>账单类型</span>}>
|
||||
<Form form={form} onSubmit={onSubmit} className="flex items-end gap-4">
|
||||
<FormField name="type" label={<span className="text-sm">账单类型</span>}>
|
||||
{({id, field}) => (
|
||||
<Select value={field.value} onValueChange={field.onChange}>
|
||||
<SelectTrigger className={`w-24 h-9`}>
|
||||
<SelectValue placeholder={`选择类型`}/>
|
||||
<SelectTrigger className="w-24 h-9">
|
||||
<SelectValue placeholder="选择类型"/>
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value={`all`}>全部</SelectItem>
|
||||
<SelectItem value={`3`}>充值</SelectItem>
|
||||
<SelectItem value={`1`}>消费</SelectItem>
|
||||
<SelectItem value={`2`}>退款</SelectItem>
|
||||
<SelectItem value="all">全部</SelectItem>
|
||||
<SelectItem value="3">充值</SelectItem>
|
||||
<SelectItem value="1">消费</SelectItem>
|
||||
<SelectItem value="2">退款</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
)}
|
||||
</FormField>
|
||||
<div className={`flex flex-col gap-2`}>
|
||||
<Label className={`text-sm`}>创建时间</Label>
|
||||
<div className={`flex items-center`}>
|
||||
<FormField name={`create_after`}>
|
||||
<div className="flex flex-col gap-2">
|
||||
<Label className="text-sm">创建时间</Label>
|
||||
<div className="flex items-center">
|
||||
<FormField name="create_after">
|
||||
{({field}) => (
|
||||
<DatePicker
|
||||
{...field}
|
||||
className={`w-36`}
|
||||
placeholder={`开始时间`}
|
||||
format={`yyyy-MM-dd`}
|
||||
className="w-36"
|
||||
placeholder="开始时间"
|
||||
format="yyyy-MM-dd"
|
||||
/>
|
||||
)}
|
||||
</FormField>
|
||||
<span className={`px-1`}>-</span>
|
||||
<FormField name={`create_before`}>
|
||||
<span className="px-1">-</span>
|
||||
<FormField name="create_before">
|
||||
{({field}) => (
|
||||
<DatePicker
|
||||
{...field}
|
||||
className={`w-36`}
|
||||
placeholder={`结束时间`}
|
||||
format={`yyyy-MM-dd`}
|
||||
className="w-36"
|
||||
placeholder="结束时间"
|
||||
format="yyyy-MM-dd"
|
||||
/>
|
||||
)}
|
||||
</FormField>
|
||||
</div>
|
||||
</div>
|
||||
<Button className={`h-9`} type="submit">
|
||||
<Button className="h-9" type="submit">
|
||||
<Search/>
|
||||
<span>筛选</span>
|
||||
</Button>
|
||||
<Button theme={`outline`} className={`h-9`} type="button" onClick={() => form.reset()}>
|
||||
<Button theme="outline" className="h-9" type="button" onClick={() => form.reset()}>
|
||||
<Eraser/>
|
||||
<span>重置</span>
|
||||
</Button>
|
||||
@@ -173,21 +172,21 @@ export default function BillsPage(props: BillsPageProps) {
|
||||
accessorKey: 'bill_no', header: `账单编号`,
|
||||
}, {
|
||||
accessorKey: 'type', header: `类型`, cell: ({row}) => (
|
||||
<div className={`flex gap-2 items-center`}>
|
||||
<div className="flex gap-2 items-center">
|
||||
{row.original.type === 1 && (
|
||||
<div className={`flex gap-2 items-center bg-orange-50 w-fit px-2 py-1 rounded-md`}>
|
||||
<div className="flex gap-2 items-center bg-orange-50 w-fit px-2 py-1 rounded-md">
|
||||
<CreditCard size={16}/>
|
||||
<span>消费</span>
|
||||
</div>
|
||||
)}
|
||||
{row.original.type === 2 && (
|
||||
<div className={`flex gap-2 items-center bg-green-50 w-fit px-2 py-1 rounded-md`}>
|
||||
<div className="flex gap-2 items-center bg-green-50 w-fit px-2 py-1 rounded-md">
|
||||
<CreditCard size={16}/>
|
||||
<span>退款</span>
|
||||
</div>
|
||||
)}
|
||||
{row.original.type === 3 && (
|
||||
<div className={`flex gap-2 items-center bg-blue-50 w-fit px-2 py-1 rounded-md`}>
|
||||
<div className="flex gap-2 items-center bg-blue-50 w-fit px-2 py-1 rounded-md">
|
||||
<CreditCard size={16}/>
|
||||
<span>充值</span>
|
||||
</div>
|
||||
@@ -203,28 +202,28 @@ export default function BillsPage(props: BillsPageProps) {
|
||||
<>
|
||||
{row.original.trade && (
|
||||
row.original.trade.status === 0 ? (
|
||||
<div className={`flex flex-col gap-1`}>
|
||||
<div className={`flex gap-1 items-center text-warn`}>
|
||||
<div className="flex flex-col gap-1">
|
||||
<div className="flex gap-1 items-center text-warn">
|
||||
<ClockIcon size={16}/>
|
||||
<span>订单待支付</span>
|
||||
<Link href={`/admin/bills`} className={`text-sm underline text-blue-500`}>
|
||||
<Link href="/admin/bills" className="text-sm underline text-blue-500">
|
||||
{row.original.trade.inner_no}
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
) : row.original.trade.status === 1 ? (
|
||||
<div className={`flex gap-1 items-center text-done`}>
|
||||
<div className="flex gap-1 items-center text-done">
|
||||
<CheckCircle size={16}/>
|
||||
<span>已完成</span>
|
||||
</div>
|
||||
) : row.original.trade.status === 2 ? (
|
||||
<div className={`flex gap-1 items-center text-weak`}>
|
||||
<div className="flex gap-1 items-center text-weak">
|
||||
<AlertCircle size={16}/>
|
||||
<span>已取消</span>
|
||||
</div>
|
||||
) : row.original.trade.status === 3 ? (
|
||||
<div className={`flex gap-1 items-center text-fail`}>
|
||||
<div className="flex gap-1 items-center text-fail">
|
||||
<AlertCircle size={16}/>
|
||||
<span>已退款</span>
|
||||
</div>
|
||||
@@ -237,15 +236,18 @@ export default function BillsPage(props: BillsPageProps) {
|
||||
},
|
||||
{
|
||||
accessorKey: 'amount', header: `支付信息`, cell: ({row}) => (
|
||||
<div className={`flex gap-1`}>
|
||||
<span className={`text-sm`}>
|
||||
<div className="flex gap-1">
|
||||
<span className="text-sm">
|
||||
{!row.original.trade && '余额'}
|
||||
{row.original.trade && row.original.trade.method === 1 && '支付宝'}
|
||||
{row.original.trade && row.original.trade.method === 2 && '微信'}
|
||||
</span>
|
||||
<span className={
|
||||
row.original.amount > 0 ? `text-green-400` : `text-orange-400`
|
||||
}>¥{row.original.amount}</span>
|
||||
}>
|
||||
¥
|
||||
{row.original.amount}
|
||||
</span>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
@@ -255,8 +257,8 @@ export default function BillsPage(props: BillsPageProps) {
|
||||
),
|
||||
},
|
||||
{
|
||||
accessorKey: 'action', header: `操作`, cell: (item) => (
|
||||
<div className={`flex gap-2`}>
|
||||
accessorKey: 'action', header: `操作`, cell: item => (
|
||||
<div className="flex gap-2">
|
||||
-
|
||||
</div>
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user