diff --git a/src/views/billing/packagehistories/index.vue b/src/views/billing/packagehistories/index.vue
index 1961edf..e3d06d1 100644
--- a/src/views/billing/packagehistories/index.vue
+++ b/src/views/billing/packagehistories/index.vue
@@ -6,6 +6,7 @@ import { useI18n } from "vue-i18n";
import { useRouter } from 'vue-router';
import { fetchPackageHistory } from '@/service/api/auth';
import { useWindowSize } from '@vueuse/core';
+import { useTable, useTableOperate } from '@/hooks/common/table';
const router = useRouter();
const handleBack = () => {
@@ -69,27 +70,27 @@ const showPackageDetail = (record: Api.Package.PackageHistoryRecord) => {
width: 400,
content: h('div', { class: 'package-detail' }, [
h('div', { class: 'detail-item' }, [
- h('span', { class: 'detail-label' }, t('page.packagehistories.packagename')+':'),
+ h('span', { class: 'detail-label' }, t('page.packagehistories.packagename') + ':'),
h('span', { class: 'detail-value' }, record.upackage?.packageName || '未知套餐')
]),
h('div', { class: 'detail-item' }, [
- h('span', { class: 'detail-label' }, t('page.packagehistories.price')+':'),
+ h('span', { class: 'detail-label' }, t('page.packagehistories.price') + ':'),
h('span', { class: 'detail-value' }, `¥${Number(record.upackage?.price || 0).toFixed(2)}`)
]),
h('div', { class: 'detail-item' }, [
- h('span', { class: 'detail-label' }, t('page.packagehistories.traffic')+':'),
+ h('span', { class: 'detail-label' }, t('page.packagehistories.traffic') + ':'),
h('span', { class: 'detail-value' },
record.upackage?.trafficEnable ? formatTraffic(record.upackage.traffic) : t('page.packagehistories.unlimit')
)
]),
h('div', { class: 'detail-item' }, [
- h('span', { class: 'detail-label' }, t('page.packagehistories.Expirationdate')+':'),
+ h('span', { class: 'detail-label' }, t('page.packagehistories.Expirationdate') + ':'),
h('span', { class: 'detail-value' },
`${record.upackage?.periodNum || 0} ${formatPeriodType(record.upackage?.periodType || 0)}`
)
]),
h('div', { class: 'detail-item' }, [
- h('span', { class: 'detail-label' }, t('page.packagehistories.orderdate')+':'),
+ h('span', { class: 'detail-label' }, t('page.packagehistories.orderdate') + ':'),
h('span', { class: 'detail-value' }, formatDateTime(record.createTime))
])
]),
@@ -97,53 +98,110 @@ const showPackageDetail = (record: Api.Package.PackageHistoryRecord) => {
});
};
-const columns = computed
(() => [
- {
- title: t('page.packagehistories.orderdate'),
- dataIndex: 'createTime',
- key: 'createTime',
- responsive: ['md'],
- customRender: ({ text }) => text ? formatDateTime(text) : ''
+// const columns = computed(() => [
+// {
+// title: t('page.packagehistories.orderdate'),
+// dataIndex: 'createTime',
+// key: 'createTime',
+// responsive: ['md'],
+// customRender: ({ text }) => text ? formatDateTime(text) : ''
+// },
+// {
+// title: t('page.packagehistories.amount'),
+// dataIndex: 'orderAmount',
+// key: 'orderAmount',
+// customRender: ({ text }: { text: string }) => {
+// const formattedAmount = Number(text).toFixed(2);
+// return `¥${formattedAmount}`;
+// }
+// },
+// {
+// title: t('page.packagehistories.packagename'),
+// dataIndex: ['upackage', 'packageName'],
+// key: 'packageName',
+// customRender: ({ text, record }: { text: string; record: Api.Package.PackageHistoryRecord }) => {
+// return h(AButton, {
+// type: 'link',
+// size: 'small',
+// onClick: (e: Event) => {
+// e.stopPropagation(); // 阻止事件冒泡,避免触发行点击事件
+// showPackageDetail(record);
+// }
+// }, {
+// default: () => text || t('page.packagehistories.unpackage')
+// });
+// }
+// },
+// {
+// title: t('page.packagehistories.status'),
+// dataIndex: 'status',
+// key: 'status',
+// customRender: ({ text }: { text: number }) => {
+// return h(ATag, {
+// color: text === 1 ? 'success' : 'warning'
+// }, {
+// default: () => text === 1 ? t('page.packagehistories.paid') : t('page.packagehistories.unpaid')
+// })
+// }
+// }
+// ]);
+
+
+const { columns, data, loading, getData, mobilePagination, searchParams } = useTable({
+ apiFn: fetchPackageHistory,
+ apiParams: {
+ pageNum: 1,
+ pageSize: 5,
},
- {
- title: t('page.packagehistories.amount'),
- dataIndex: 'orderAmount',
- key: 'orderAmount',
- customRender: ({ text }: { text: string }) => {
- const formattedAmount = Number(text).toFixed(2);
- return `¥${formattedAmount}`;
+ rowKey: 'packageName',
+ columns: () => [
+ {
+ title: t('page.packagehistories.orderdate'),
+ dataIndex: 'createTime',
+ key: 'createTime',
+ responsive: ['md'],
+ customRender: ({ text }) => text ? formatDateTime(text) : ''
+ },
+ {
+ title: t('page.packagehistories.amount'),
+ dataIndex: 'orderAmount',
+ key: 'orderAmount',
+ customRender: ({ text }: { text: string }) => {
+ const formattedAmount = Number(text).toFixed(2);
+ return `¥${formattedAmount}`;
+ }
+ },
+ {
+ title: t('page.packagehistories.packagename'),
+ dataIndex: ['upackage', 'packageName'],
+ key: 'packageName',
+ customRender: ({ text, record }: { text: string; record: Api.Package.PackageHistoryRecord }) => {
+ return h(AButton, {
+ type: 'link',
+ size: 'small',
+ onClick: (e: Event) => {
+ e.stopPropagation(); // 阻止事件冒泡,避免触发行点击事件
+ showPackageDetail(record);
+ }
+ }, {
+ default: () => text || t('page.packagehistories.unpackage')
+ });
+ }
+ },
+ {
+ title: t('page.packagehistories.status'),
+ dataIndex: 'status',
+ key: 'status',
+ customRender: ({ text }: { text: number }) => {
+ return h(ATag, {
+ color: text === 1 ? 'success' : 'warning'
+ }, {
+ default: () => text === 1 ? t('page.packagehistories.paid') : t('page.packagehistories.unpaid')
+ })
+ }
}
- },
- {
- title: t('page.packagehistories.packagename'),
- dataIndex: ['upackage', 'packageName'],
- key: 'packageName',
- customRender: ({ text, record }: { text: string; record: Api.Package.PackageHistoryRecord }) => {
- return h(AButton, {
- type: 'link',
- size: 'small',
- onClick: (e: Event) => {
- e.stopPropagation(); // 阻止事件冒泡,避免触发行点击事件
- showPackageDetail(record);
- }
- }, {
- default: () => text || t('page.packagehistories.unpackage')
- });
- }
- },
- {
- title: t('page.packagehistories.status'),
- dataIndex: 'status',
- key: 'status',
- customRender: ({ text }: { text: number }) => {
- return h(ATag, {
- color: text === 1 ? 'success' : 'warning'
- }, {
- default: () => text === 1 ? t('page.packagehistories.paid') : t('page.packagehistories.unpaid')
- })
- }
- }
-]);
+ ]
+});
const formatTraffic = (bytes: number): string => {
if (!bytes) return '0B';
@@ -157,6 +215,8 @@ const formatTraffic = (bytes: number): string => {
}
return `${bytes}B`;
};
+
+
@@ -168,19 +228,8 @@ const formatTraffic = (bytes: number): string => {