From 212b16a8ec3836eb1f000fb1233ee00b2b877c2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?= Date: Tue, 4 Aug 2026 14:53:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20VIP=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/vip/HeaderVipBadge.vue | 30 ++ .../src/components/vip/StoreVipCell.vue | 83 ++++ .../src/components/vip/StoreVipMemberCard.vue | 107 +++++ .../src/components/vip/VipBadgeCombo.vue | 117 +++++ apps/web-antd/src/components/vip/VipGate.vue | 41 ++ .../src/components/vip/VipUpgradeModal.vue | 440 ++++++++++++++++++ apps/web-antd/src/layouts/basic.vue | 20 +- apps/web-antd/src/utils/vip.ts | 68 +++ .../views/business/store/settings/index.vue | 7 +- .../src/views/notice/compoents/detail.vue | 69 ++- .../src/views/system/store/config/table.ts | 7 + .../web-antd/src/views/system/store/index.vue | 22 + .../views/system/vip/duration/api/index.ts | 15 + .../system/vip/duration/components/modal.vue | 50 ++ .../views/system/vip/duration/config/form.ts | 57 +++ .../system/vip/duration/config/search.ts | 27 ++ .../views/system/vip/duration/config/table.ts | 33 ++ .../src/views/system/vip/duration/index.vue | 197 ++++++++ .../src/views/system/vip/level/api/index.ts | 28 ++ .../system/vip/level/components/modal.vue | 72 +++ .../system/vip/level/config/constants.ts | 15 + .../src/views/system/vip/level/config/form.ts | 100 ++++ .../views/system/vip/level/config/search.ts | 43 ++ .../views/system/vip/level/config/table.ts | 50 ++ .../src/views/system/vip/level/index.vue | 222 +++++++++ .../src/views/system/vip/record/api/index.ts | 7 + .../views/system/vip/record/config/search.ts | 33 ++ .../views/system/vip/record/config/table.ts | 44 ++ .../src/views/system/vip/record/index.vue | 33 ++ .../src/views/system/vip/store/api/index.ts | 19 + .../vip/store/components/open-modal.vue | 136 ++++++ .../views/system/vip/store/config/search.ts | 21 + .../views/system/vip/store/config/table.ts | 68 +++ .../src/views/system/vip/store/index.vue | 59 +++ 34 files changed, 2327 insertions(+), 13 deletions(-) create mode 100644 apps/web-antd/src/components/vip/HeaderVipBadge.vue create mode 100644 apps/web-antd/src/components/vip/StoreVipCell.vue create mode 100644 apps/web-antd/src/components/vip/StoreVipMemberCard.vue create mode 100644 apps/web-antd/src/components/vip/VipBadgeCombo.vue create mode 100644 apps/web-antd/src/components/vip/VipGate.vue create mode 100644 apps/web-antd/src/components/vip/VipUpgradeModal.vue create mode 100644 apps/web-antd/src/utils/vip.ts create mode 100644 apps/web-antd/src/views/system/vip/duration/api/index.ts create mode 100644 apps/web-antd/src/views/system/vip/duration/components/modal.vue create mode 100644 apps/web-antd/src/views/system/vip/duration/config/form.ts create mode 100644 apps/web-antd/src/views/system/vip/duration/config/search.ts create mode 100644 apps/web-antd/src/views/system/vip/duration/config/table.ts create mode 100644 apps/web-antd/src/views/system/vip/duration/index.vue create mode 100644 apps/web-antd/src/views/system/vip/level/api/index.ts create mode 100644 apps/web-antd/src/views/system/vip/level/components/modal.vue create mode 100644 apps/web-antd/src/views/system/vip/level/config/constants.ts create mode 100644 apps/web-antd/src/views/system/vip/level/config/form.ts create mode 100644 apps/web-antd/src/views/system/vip/level/config/search.ts create mode 100644 apps/web-antd/src/views/system/vip/level/config/table.ts create mode 100644 apps/web-antd/src/views/system/vip/level/index.vue create mode 100644 apps/web-antd/src/views/system/vip/record/api/index.ts create mode 100644 apps/web-antd/src/views/system/vip/record/config/search.ts create mode 100644 apps/web-antd/src/views/system/vip/record/config/table.ts create mode 100644 apps/web-antd/src/views/system/vip/record/index.vue create mode 100644 apps/web-antd/src/views/system/vip/store/api/index.ts create mode 100644 apps/web-antd/src/views/system/vip/store/components/open-modal.vue create mode 100644 apps/web-antd/src/views/system/vip/store/config/search.ts create mode 100644 apps/web-antd/src/views/system/vip/store/config/table.ts create mode 100644 apps/web-antd/src/views/system/vip/store/index.vue diff --git a/apps/web-antd/src/components/vip/HeaderVipBadge.vue b/apps/web-antd/src/components/vip/HeaderVipBadge.vue new file mode 100644 index 00000000..c81e4f6b --- /dev/null +++ b/apps/web-antd/src/components/vip/HeaderVipBadge.vue @@ -0,0 +1,30 @@ + + diff --git a/apps/web-antd/src/components/vip/StoreVipCell.vue b/apps/web-antd/src/components/vip/StoreVipCell.vue new file mode 100644 index 00000000..539c3b81 --- /dev/null +++ b/apps/web-antd/src/components/vip/StoreVipCell.vue @@ -0,0 +1,83 @@ + + + diff --git a/apps/web-antd/src/components/vip/StoreVipMemberCard.vue b/apps/web-antd/src/components/vip/StoreVipMemberCard.vue new file mode 100644 index 00000000..347dafdc --- /dev/null +++ b/apps/web-antd/src/components/vip/StoreVipMemberCard.vue @@ -0,0 +1,107 @@ + + + diff --git a/apps/web-antd/src/components/vip/VipBadgeCombo.vue b/apps/web-antd/src/components/vip/VipBadgeCombo.vue new file mode 100644 index 00000000..5c64905b --- /dev/null +++ b/apps/web-antd/src/components/vip/VipBadgeCombo.vue @@ -0,0 +1,117 @@ + + + diff --git a/apps/web-antd/src/components/vip/VipGate.vue b/apps/web-antd/src/components/vip/VipGate.vue new file mode 100644 index 00000000..e756500a --- /dev/null +++ b/apps/web-antd/src/components/vip/VipGate.vue @@ -0,0 +1,41 @@ + + diff --git a/apps/web-antd/src/components/vip/VipUpgradeModal.vue b/apps/web-antd/src/components/vip/VipUpgradeModal.vue new file mode 100644 index 00000000..39879609 --- /dev/null +++ b/apps/web-antd/src/components/vip/VipUpgradeModal.vue @@ -0,0 +1,440 @@ + + + diff --git a/apps/web-antd/src/layouts/basic.vue b/apps/web-antd/src/layouts/basic.vue index 654e12b3..ea138016 100644 --- a/apps/web-antd/src/layouts/basic.vue +++ b/apps/web-antd/src/layouts/basic.vue @@ -27,6 +27,7 @@ import { } from 'lucide-vue-next'; // import { $t } from '#/locales'; +import HeaderVipBadge from '#/components/vip/HeaderVipBadge.vue'; import { useAuthStore } from '#/store'; import LoginForm from '#/views/_core/authentication/login.vue'; import SwitchAccountModal from '#/layouts/components/SwitchAccountModal.vue'; @@ -234,14 +235,17 @@ watch(