diff --git a/yelaymaths/app.json b/yelaymaths/app.json
index 7e51ae3..faddc29 100644
--- a/yelaymaths/app.json
+++ b/yelaymaths/app.json
@@ -10,6 +10,7 @@
"pages/VideoDetailsPage/VideoDetailsPage",
"pages/IndexNewCourseDetails/IndexNewCourseDetails",
"pages/IndexFreeCourseDetails/IndexFreeCourseDetails",
+ "pages/orders/orders",
"pages/ChangeUserInfo/ChangeUserInfo"
],
"window": {
diff --git a/yelaymaths/pages/orders/orders.js b/yelaymaths/pages/orders/orders.js
new file mode 100644
index 0000000..32e8935
--- /dev/null
+++ b/yelaymaths/pages/orders/orders.js
@@ -0,0 +1,61 @@
+// pages/orders/orders.js
+//
+// 订单中心:列出当前用户的全部订单,微信审核要求交易类小程序必须提供这个页面。
+// 数据来自服务端 GET /v1/orders(只返回自己的单)。
+const api = require('../../utils/api');
+const format = require('../../utils/format');
+const store = require('../../utils/store');
+
+const app = getApp();
+
+Page({
+ data: {
+ loading: true,
+ list: [],
+ /** 按钮文案走后台配置 */
+ contactText: '',
+ },
+
+ onLoad() {
+ // 等启动流程把配置和身份准备好再拉,避免首屏空白
+ app.ready().then(() => {
+ this.applyConfig();
+ this.load();
+ });
+ },
+
+ /** 每次回到页面都重新拉一次,付款回来能立刻看到新订单。 */
+ onShow() {
+ if (!this.data.loading) this.load();
+ },
+
+ applyConfig() {
+ this.setData({ contactText: store.cfg('course.button.contact') });
+ },
+
+ load() {
+ api
+ .getOrders()
+ .then((list) => {
+ this.setData({
+ loading: false,
+ list: (list || []).map((item) => ({
+ outTradeNo: item.outTradeNo,
+ title: item.courseTitle || '',
+ statusText: item.statusText || '',
+ status: item.status,
+ amountYuan: format.fenToYuan(item.amountFen),
+ createdAtText: format.toDateTimeString(item.createdAt),
+ })),
+ });
+ })
+ .catch((err) => {
+ this.setData({ loading: false });
+ wx.showToast({ title: (err && err.message) || '订单加载失败', icon: 'none' });
+ });
+ },
+
+ onShareAppMessage() {
+ return { title: store.cfg('share.title'), path: '/pages/index/index' };
+ },
+});
diff --git a/yelaymaths/pages/orders/orders.json b/yelaymaths/pages/orders/orders.json
new file mode 100644
index 0000000..5c1f617
--- /dev/null
+++ b/yelaymaths/pages/orders/orders.json
@@ -0,0 +1,3 @@
+{
+ "navigationBarTitleText": "我的订单"
+}
diff --git a/yelaymaths/pages/orders/orders.wxml b/yelaymaths/pages/orders/orders.wxml
new file mode 100644
index 0000000..6f34a3b
--- /dev/null
+++ b/yelaymaths/pages/orders/orders.wxml
@@ -0,0 +1,25 @@
+
+
+ 加载中…
+ 暂无订单
+
+
+
+
+ {{item.title}}
+ {{item.statusText}}
+
+
+ 订单号 {{item.outTradeNo}}
+
+
+ ¥{{item.amountYuan}}
+ {{item.createdAtText}}
+
+
+
+
+
+
diff --git a/yelaymaths/pages/orders/orders.wxss b/yelaymaths/pages/orders/orders.wxss
new file mode 100644
index 0000000..cf8f918
--- /dev/null
+++ b/yelaymaths/pages/orders/orders.wxss
@@ -0,0 +1,58 @@
+/* pages/orders/orders.wxss */
+.order-page {
+ padding: 20rpx;
+ box-sizing: border-box;
+ height: 100vh;
+}
+
+.order-hint {
+ margin-top: 200rpx;
+ text-align: center;
+ font-size: 28rpx;
+ color: #999;
+}
+
+.order-item {
+ width: 710rpx;
+ margin-bottom: 20rpx;
+ padding: 24rpx;
+ border-radius: 20rpx;
+ background-color: #fff;
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
+ box-sizing: border-box;
+}
+
+.order-line {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.order-title {
+ font-size: 30rpx;
+ color: #333;
+}
+
+.order-status {
+ font-size: 26rpx;
+ color: #00aa00;
+}
+
+.order-sub {
+ margin-top: 12rpx;
+ font-size: 24rpx;
+ color: #888;
+}
+
+.order-amount {
+ color: #e60012;
+}
+
+.order-service {
+ width: 710rpx;
+ margin: 40rpx 0 60rpx;
+ border-radius: 45rpx;
+ font-size: 30rpx;
+ color: #fff;
+ background-color: #4caf50;
+}
diff --git a/yelaymaths/pages/wode/wode.js b/yelaymaths/pages/wode/wode.js
index b45c32a..043e192 100644
--- a/yelaymaths/pages/wode/wode.js
+++ b/yelaymaths/pages/wode/wode.js
@@ -20,6 +20,8 @@ Page({
text4: '',
text5: '',
text6: '',
+ /** 「我的订单」入口文案,走后台配置 */
+ ordersText: '',
},
onLoad() {
@@ -43,6 +45,7 @@ Page({
text4: store.cfg('profile.menu.contact'),
text5: store.cfg('profile.menu.wechat'),
text6: store.cfg('profile.qrcode_caption'),
+ ordersText: store.cfg('profile.menu.orders'),
qrcodeUrl: qrcodeName ? config.STATIC_BASE_URL + '/Images/WXCode/' + qrcodeName + '.png' : '',
});
},
@@ -76,6 +79,11 @@ Page({
wx.navigateTo({ url: '/pages/ChangeUserInfo/ChangeUserInfo' });
},
+ /** 订单中心:微信审核要求交易类小程序必须有,入口放在这一页。 */
+ toOrders() {
+ wx.navigateTo({ url: '/pages/orders/orders' });
+ },
+
showQrcode() {
this.setData({ showCode: true });
},
diff --git a/yelaymaths/pages/wode/wode.wxml b/yelaymaths/pages/wode/wode.wxml
index 2ae97d3..99994db 100644
--- a/yelaymaths/pages/wode/wode.wxml
+++ b/yelaymaths/pages/wode/wode.wxml
@@ -31,6 +31,11 @@
>
+
+