diff --git a/src/apis.js b/src/apis.js
index 305a040..590d837 100644
--- a/src/apis.js
+++ b/src/apis.js
@@ -333,6 +333,9 @@ export const createOrderAPI = (vipId) => {
quanity: 1,
tradeType: "mini",
payType: "wxpay",
+ returnUrl: "",
+ remark: "",
+ mockTest: false,
});
};
diff --git a/src/components/AppBackground.vue b/src/components/AppBackground.vue
index 134b66e..32bfcb7 100644
--- a/src/components/AppBackground.vue
+++ b/src/components/AppBackground.vue
@@ -57,6 +57,12 @@ const props = defineProps({
src="https://static.shelingxingqiu.com/shootmini/static/rank/rank-bg.png"
mode="widthFix"
/>
+
diff --git a/src/components/AppFooter.vue b/src/components/AppFooter.vue
index 05f2ebe..bfe2831 100644
--- a/src/components/AppFooter.vue
+++ b/src/components/AppFooter.vue
@@ -8,7 +8,7 @@ const tabs = [
function handleTabClick(index) {
if (index === 0) {
uni.navigateTo({
- url: "/pages/be-vip",
+ url: "/pages/member/be-vip",
});
}
if (index === 1) {
diff --git a/src/components/Header.vue b/src/components/Header.vue
index 7296572..7aad964 100644
--- a/src/components/Header.vue
+++ b/src/components/Header.vue
@@ -316,7 +316,7 @@ onBeforeUnmount(() => {
width: 156rpx;
height: 28rpx;
font-weight: 400;
- font-size: 20rpx;
+ font-size: 24rpx;
color: #ffffff;
text-align: center;
line-height: 28rpx;
diff --git a/src/components/ModalDialog.vue b/src/components/ModalDialog.vue
new file mode 100644
index 0000000..069a0f3
--- /dev/null
+++ b/src/components/ModalDialog.vue
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ title }}
+ {{ content }}
+
+
+
+
+
+ {{ cancelText }}
+
+
+ {{ confirmText }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Signin.vue b/src/components/Signin.vue
index 619d681..53ee292 100644
--- a/src/components/Signin.vue
+++ b/src/components/Signin.vue
@@ -1,5 +1,5 @@
@@ -187,10 +198,11 @@ onShow(() => {
昵称:
diff --git a/src/pages.json b/src/pages.json
index bd1f50c..1b3e684 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -69,15 +69,18 @@
{
"path": "pages/user"
},
- {
- "path": "pages/orders"
- },
- {
- "path": "pages/order-detail"
- },
- {
- "path": "pages/be-vip"
- },
+ {
+ "path": "pages/member/orders"
+ },
+ {
+ "path": "pages/member/order-detail"
+ },
+ {
+ "path": "pages/member/be-vip"
+ },
+ {
+ "path": "pages/member/vip-intro"
+ },
{
"path": "pages/grade-intro"
},
diff --git a/src/pages/be-vip.vue b/src/pages/be-vip.vue
deleted file mode 100644
index 94288d3..0000000
--- a/src/pages/be-vip.vue
+++ /dev/null
@@ -1,258 +0,0 @@
-
-
-
-
-
-
-
-
-
- VIP 介绍
-
-
-
-
-
-
-
-
- 会员续费
-
-
- (selectedVIP = index)"
- >
- {{ item.name }}
-
-
-
- 支付
-
-
- 我的订单
-
-
-
-
-
-
-
-
-
diff --git a/src/pages/member/be-vip.vue b/src/pages/member/be-vip.vue
new file mode 100644
index 0000000..f91acfd
--- /dev/null
+++ b/src/pages/member/be-vip.vue
@@ -0,0 +1,876 @@
+
+
+
+
+
+
+
+ {{ item.tab }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 有效期至:{{ getActiveVipExpiredDate(type) }}
+
+
+
+
+ 订单管理
+
+
+
+
+
+
+ {{ type.benefitTitle }}
+
+
+
+
+
+
+
+
+ {{ benefit.label }}
+
+
+
+
+
+
+
+
+
+ {{ pack.name }}
+
+ ¥
+ {{ pack.price }}
+
+
+ ¥{{ pack.original }}
+
+
+
+
+
+
+
+
+
+
+ 支付即同意
+ 《 会员自动续费服务协议》
+ 《 扣款授权服务协议》
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/order-detail.vue b/src/pages/member/order-detail.vue
similarity index 100%
rename from src/pages/order-detail.vue
rename to src/pages/member/order-detail.vue
diff --git a/src/pages/orders.vue b/src/pages/member/orders.vue
similarity index 63%
rename from src/pages/orders.vue
rename to src/pages/member/orders.vue
index 79bb987..0ab018b 100644
--- a/src/pages/orders.vue
+++ b/src/pages/member/orders.vue
@@ -3,6 +3,7 @@ import { ref, onMounted } from "vue";
import { onShow } from "@dcloudio/uni-app";
import Container from "@/components/Container.vue";
import ScrollList from "@/components/ScrollList.vue";
+import ModalDialog from "@/components/ModalDialog.vue";
import { getOrderListAPI } from "@/apis";
import useStore from "@/store";
import { orderStatusNames, getStatusColor } from "@/constants";
@@ -10,13 +11,34 @@ import { storeToRefs } from "pinia";
const store = useStore();
const { user, config } = storeToRefs(store);
+const autoRenewDialogVisible = ref(false);
+const selectedRenewOrder = ref(null);
+
const toDetailPage = (detail) => {
uni.setStorageSync("order", detail);
uni.navigateTo({
- url: `/pages/order-detail`,
+ url: "/pages/member/order-detail",
});
};
+const openAutoRenewDialog = (detail) => {
+ selectedRenewOrder.value = detail;
+ autoRenewDialogVisible.value = true;
+};
+
+const closeAutoRenewDialog = () => {
+ autoRenewDialogVisible.value = false;
+ selectedRenewOrder.value = null;
+};
+
+const confirmAutoRenewDialog = () => {
+ autoRenewDialogVisible.value = false;
+ uni.showToast({
+ title: "功能实现中",
+ icon: "none",
+ });
+}
+
const list = ref([]);
const onLoading = async (page) => {
@@ -44,7 +66,7 @@ onShow(() => {
-
+
{
>
金额:{{ item.total }} 元
支付方式:微信
+
+
+
@@ -78,15 +113,15 @@ onShow(() => {
width: 100%;
height: 100%;
background-color: #f5f5f5;
- padding-top: 10px;
+ padding-top: 16rpx;
}
.order-item {
position: relative;
background-color: #fff;
- margin-bottom: 10px;
+ margin-bottom: 16rpx;
display: flex;
flex-direction: column;
- padding: 15px;
+ padding: 28rpx 30rpx 18rpx 30rpx;
}
.order-item > view:first-child {
position: absolute;
@@ -98,12 +133,19 @@ onShow(() => {
font-size: 11px;
}
.order-item > text:nth-child(2) {
- color: #000;
- font-size: 16px;
+ color: #333333;
+ font-size: 30rpx;
}
.order-item > text {
color: #666666;
- font-size: 13px;
- margin-top: 5px;
+ font-size: 26rpx;
+ margin-bottom: 10rpx;
+}
+.order-item > .renew-action {
+ position: absolute;
+ right: 30rpx;
+ bottom: 18rpx;
+ color: #1f6ed4;
+ margin-bottom: 0;
}
diff --git a/src/pages/member/vip-intro.vue b/src/pages/member/vip-intro.vue
new file mode 100644
index 0000000..8c46dbf
--- /dev/null
+++ b/src/pages/member/vip-intro.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+ 射灵星球会员权益
+
+
+ 核心特权:
+ 解锁约战、段位评级、实时排位赛、AI智能教练点评四大核心功能。
+
+
+
+ 专属服务:
+ 享全年不同阶段VIP专属客服,快速解决技术故障、规则疑问等所有问题。
+
+
+
+ 新用户福利:
+ 所有初次绑定设备的用户,免费赠送6个月普通会员。
+
+
+
+
+ 加入射灵星球,在真实射箭运动中体验在线竞技的乐趣,结识全球志同道合的弓友,持续享受新功能与系统升级,不断挑战自我,创造属于你的辉煌战绩!
+
+
+
+
+
+
+ 初次绑定设备赠送6个月
+
+
+
+ 特权
+ 基础用户
+ 普通会员
+ 超级会员
+
+
+ 专属落点标识
+ 无
+ 无
+ 螺旋
+
+
+ 专属命中效果
+ 无
+ 无
+ 玻璃裂纹
+
+
+ 箭矢飞行特效
+ 无
+ 无
+ 光箭
+
+
+ 每日约战次数
+ 2次
+ 22次
+ 无限
+
+
+ 每日排位赛次数
+ 2次
+ 22次
+ 无限
+
+
+ 教练点评
+ 无
+ 专享
+ 专享
+
+
+ 会员标识
+ 无
+ 专享
+ 专享
+
+
+ 专属客服
+ 无
+ 专享
+ 专享
+
+
+
+
+ 会员时长叠加与生效规则
+
+
+ 等级优先级:
+
+ 同时拥有 超级会员 和 普通会员 时,优先使用超级会员权益,普通会员时长自动顺延,待 超级会员 到期后自动生效。
+
+
+
+
+ 连续套餐叠加:
+
+ 已有月 / 半年 / 年卡时再购买连续包月 / 包年,总有效期直接累加;连续套餐从下单日起算,下个周期正常自动扣费。
+
+
+
+
+
+ 示例:1 月 1 日买半年卡(7 月 1 日到期),1 月 10 日买连续包月,总有效期延至 8 月 1 日,8 月 1 日会发起首次自动扣款。
+
+
+
+
+ 升级超级会员规则:
+
+ 购买升级 超级会员 后立即生效,可升级时长以购买页面提示为准;未升级的剩余 普通会员 时长,将在 超级会员 到期后继续使用。
+
+
+
+
+
+
+
+
diff --git a/src/pages/team-battle/components/Header.vue b/src/pages/team-battle/components/Header.vue
index 35df1ba..4867093 100644
--- a/src/pages/team-battle/components/Header.vue
+++ b/src/pages/team-battle/components/Header.vue
@@ -316,7 +316,7 @@ onBeforeUnmount(() => {
width: 156rpx;
height: 28rpx;
font-weight: 400;
- font-size: 20rpx;
+ font-size: 24rpx;
color: #ffffff;
text-align: center;
line-height: 28rpx;
diff --git a/src/pages/user.vue b/src/pages/user.vue
index e2f2fcd..f0f529e 100644
--- a/src/pages/user.vue
+++ b/src/pages/user.vue
@@ -13,7 +13,7 @@ const { updateUser } = store;
const toOrderPage = () => {
uni.navigateTo({
- url: "/pages/orders",
+ url: "/pages/member/orders",
});
};
@@ -27,7 +27,7 @@ const toFristTryPage = async () => {
};
const toBeVipPage = () => {
uni.navigateTo({
- url: "/pages/be-vip",
+ url: "/pages/member/be-vip",
});
};
const toMyGrowthPage = () => {
diff --git a/src/static/common/dialog-bg.png b/src/static/common/dialog-bg.png
new file mode 100644
index 0000000..56635f6
Binary files /dev/null and b/src/static/common/dialog-bg.png differ
diff --git a/src/static/common/dialog-icon.png b/src/static/common/dialog-icon.png
new file mode 100644
index 0000000..919e07d
Binary files /dev/null and b/src/static/common/dialog-icon.png differ
diff --git a/src/static/common/dialog-light.png b/src/static/common/dialog-light.png
new file mode 100644
index 0000000..a6ce9bf
Binary files /dev/null and b/src/static/common/dialog-light.png differ
diff --git a/src/static/vip/intro-toast.png b/src/static/vip/intro-toast.png
new file mode 100644
index 0000000..f942f6d
Binary files /dev/null and b/src/static/vip/intro-toast.png differ
diff --git a/src/static/vip/super-battle.png b/src/static/vip/super-battle.png
new file mode 100644
index 0000000..6193cbb
Binary files /dev/null and b/src/static/vip/super-battle.png differ
diff --git a/src/static/vip/super-button.png b/src/static/vip/super-button.png
new file mode 100644
index 0000000..04cceff
Binary files /dev/null and b/src/static/vip/super-button.png differ
diff --git a/src/static/vip/svip-arrow.png b/src/static/vip/svip-arrow.png
new file mode 100644
index 0000000..1d16efb
Binary files /dev/null and b/src/static/vip/svip-arrow.png differ
diff --git a/src/static/vip/svip-badge.png b/src/static/vip/svip-badge.png
new file mode 100644
index 0000000..fe78d88
Binary files /dev/null and b/src/static/vip/svip-badge.png differ
diff --git a/src/static/vip/svip-battle.png b/src/static/vip/svip-battle.png
new file mode 100644
index 0000000..18d2778
Binary files /dev/null and b/src/static/vip/svip-battle.png differ
diff --git a/src/static/vip/svip-comment.png b/src/static/vip/svip-comment.png
new file mode 100644
index 0000000..3195eb3
Binary files /dev/null and b/src/static/vip/svip-comment.png differ
diff --git a/src/static/vip/svip-hit.png b/src/static/vip/svip-hit.png
new file mode 100644
index 0000000..d80f87d
Binary files /dev/null and b/src/static/vip/svip-hit.png differ
diff --git a/src/static/vip/svip-off.png b/src/static/vip/svip-off.png
new file mode 100644
index 0000000..da413db
Binary files /dev/null and b/src/static/vip/svip-off.png differ
diff --git a/src/static/vip/svip-on.png b/src/static/vip/svip-on.png
new file mode 100644
index 0000000..610b63d
Binary files /dev/null and b/src/static/vip/svip-on.png differ
diff --git a/src/static/vip/svip-order.png b/src/static/vip/svip-order.png
new file mode 100644
index 0000000..fbd3c35
Binary files /dev/null and b/src/static/vip/svip-order.png differ
diff --git a/src/static/vip/svip-point.png b/src/static/vip/svip-point.png
new file mode 100644
index 0000000..4f4b77f
Binary files /dev/null and b/src/static/vip/svip-point.png differ
diff --git a/src/static/vip/svip-rank.png b/src/static/vip/svip-rank.png
new file mode 100644
index 0000000..79bccc0
Binary files /dev/null and b/src/static/vip/svip-rank.png differ
diff --git a/src/static/vip/svip-service.png b/src/static/vip/svip-service.png
new file mode 100644
index 0000000..3e0f0fe
Binary files /dev/null and b/src/static/vip/svip-service.png differ
diff --git a/src/static/vip/svip-title.png b/src/static/vip/svip-title.png
new file mode 100644
index 0000000..d360349
Binary files /dev/null and b/src/static/vip/svip-title.png differ
diff --git a/src/static/vip/svip-title2.png b/src/static/vip/svip-title2.png
new file mode 100644
index 0000000..ca17c17
Binary files /dev/null and b/src/static/vip/svip-title2.png differ
diff --git a/src/static/vip/vip-badge.png b/src/static/vip/vip-badge.png
new file mode 100644
index 0000000..d8b7dd0
Binary files /dev/null and b/src/static/vip/vip-badge.png differ
diff --git a/src/static/vip/vip-battle.png b/src/static/vip/vip-battle.png
new file mode 100644
index 0000000..3d46318
Binary files /dev/null and b/src/static/vip/vip-battle.png differ
diff --git a/src/static/vip/vip-bg.png b/src/static/vip/vip-bg.png
new file mode 100644
index 0000000..952845e
Binary files /dev/null and b/src/static/vip/vip-bg.png differ
diff --git a/src/static/vip/vip-comment.png b/src/static/vip/vip-comment.png
new file mode 100644
index 0000000..016de68
Binary files /dev/null and b/src/static/vip/vip-comment.png differ
diff --git a/src/static/vip/vip-off.png b/src/static/vip/vip-off.png
new file mode 100644
index 0000000..d9020c7
Binary files /dev/null and b/src/static/vip/vip-off.png differ
diff --git a/src/static/vip/vip-on.png b/src/static/vip/vip-on.png
new file mode 100644
index 0000000..eae1e2f
Binary files /dev/null and b/src/static/vip/vip-on.png differ
diff --git a/src/static/vip/vip-order.png b/src/static/vip/vip-order.png
new file mode 100644
index 0000000..54962a8
Binary files /dev/null and b/src/static/vip/vip-order.png differ
diff --git a/src/static/vip/vip-rank.png b/src/static/vip/vip-rank.png
new file mode 100644
index 0000000..8aac306
Binary files /dev/null and b/src/static/vip/vip-rank.png differ
diff --git a/src/static/vip/vip-service.png b/src/static/vip/vip-service.png
new file mode 100644
index 0000000..422b8a4
Binary files /dev/null and b/src/static/vip/vip-service.png differ
diff --git a/src/static/vip/vip-title.png b/src/static/vip/vip-title.png
new file mode 100644
index 0000000..1fbc913
Binary files /dev/null and b/src/static/vip/vip-title.png differ
diff --git a/src/static/vip/vip-title2.png b/src/static/vip/vip-title2.png
new file mode 100644
index 0000000..3656d63
Binary files /dev/null and b/src/static/vip/vip-title2.png differ