diff --git a/web/assets/js/model/dbinbound.js b/web/assets/js/model/dbinbound.js
index 45301ddd..acb62ce4 100644
--- a/web/assets/js/model/dbinbound.js
+++ b/web/assets/js/model/dbinbound.js
@@ -6,6 +6,7 @@ class DBInbound {
this.up = 0;
this.down = 0;
this.total = 0;
+ this.allTime = 0;
this.remark = "";
this.enable = true;
this.expiryTime = 0;
diff --git a/web/html/component/aClientTable.html b/web/html/component/aClientTable.html
index 96bd502f..8ad337c9 100644
--- a/web/html/component/aClientTable.html
+++ b/web/html/component/aClientTable.html
@@ -98,6 +98,10 @@
+
+
+ [[ SizeFormatter.sizeFormat(getAllTimeClient(record, client.email)) ]]
+
diff --git a/web/html/inbounds.html b/web/html/inbounds.html
index 58d2d07a..4b2b90da 100644
--- a/web/html/inbounds.html
+++ b/web/html/inbounds.html
@@ -484,6 +484,9 @@
+
+ [[ SizeFormatter.sizeFormat(dbInbound.allTime || 0) ]]
+
@@ -723,6 +726,11 @@
align: 'center',
width: 60,
scopedSlots: { customRender: 'traffic' },
+ }, {
+ title: '{{ i18n "pages.inbounds.allTimeTraffic" }}',
+ align: 'center',
+ width: 60,
+ scopedSlots: { customRender: 'allTimeInbound' },
}, {
title: '{{ i18n "pages.inbounds.expireDate" }}',
align: 'center',
@@ -759,6 +767,7 @@
{ title: '{{ i18n "online" }}', width: 30, scopedSlots: { customRender: 'online' } },
{ title: '{{ i18n "pages.inbounds.client" }}', width: 80, scopedSlots: { customRender: 'client' } },
{ title: '{{ i18n "pages.inbounds.traffic" }}', width: 80, align: 'center', scopedSlots: { customRender: 'traffic' } },
+ { title: '{{ i18n "pages.inbounds.allTimeTraffic" }}', width: 80, align: 'center', scopedSlots: { customRender: 'allTime' } },
{ title: '{{ i18n "pages.inbounds.expireDate" }}', width: 80, align: 'center', scopedSlots: { customRender: 'expiryTime' } },
];
@@ -1417,6 +1426,12 @@
clientStats = dbInbound.clientStats.find(stats => stats.email === email);
return clientStats ? clientStats.up + clientStats.down : 0;
},
+ getAllTimeClient(dbInbound, email) {
+ if (email.length == 0) return 0;
+ clientStats = dbInbound.clientStats.find(stats => stats.email === email);
+ if (!clientStats) return 0;
+ return clientStats.allTime || (clientStats.up + clientStats.down);
+ },
getRemStats(dbInbound, email) {
if (email.length == 0) return 0;
clientStats = dbInbound.clientStats.find(stats => stats.email === email);