From 53d0cc67678103dfbcf0d99d7d25757a9f540207 Mon Sep 17 00:00:00 2001
From: yuanteng <1876787513@qq.com>
Date: Wed, 25 Jun 2025 15:45:25 +0800
Subject: [PATCH] commission--yt-commit
---
pages/course/applyPromotion/applyPromotion.js | 160 ++++++++++++++++++
.../course/applyPromotion/applyPromotion.json | 3 +
.../course/applyPromotion/applyPromotion.wxml | 36 ++++
.../course/applyPromotion/applyPromotion.wxss | 61 +++++++
pages/course/applyPromotion/image/wenhao.png | Bin 0 -> 1518 bytes
.../course/courseOrderList/courseOrderList.js | 88 ++++++++++
.../courseOrderList/courseOrderList.json | 3 +
.../courseOrderList/courseOrderList.wxml | 25 +++
.../courseOrderList/courseOrderList.wxss | 125 ++++++++++++++
.../courseSettlementRecord.js | 66 ++++++++
.../courseSettlementRecord.json | 3 +
.../courseSettlementRecord.wxml | 55 ++++++
.../courseSettlementRecord.wxss | 117 +++++++++++++
pages/course/recommendUser/image/right.png | Bin 0 -> 321 bytes
pages/course/recommendUser/recommendUser.js | 67 ++++++++
pages/course/recommendUser/recommendUser.json | 3 +
pages/course/recommendUser/recommendUser.wxml | 78 +++++++++
pages/course/recommendUser/recommendUser.wxss | 122 +++++++++++++
static/course.png | Bin 0 -> 4412 bytes
static/courseselected.png | Bin 0 -> 4974 bytes
20 files changed, 1012 insertions(+)
create mode 100644 pages/course/applyPromotion/applyPromotion.js
create mode 100644 pages/course/applyPromotion/applyPromotion.json
create mode 100644 pages/course/applyPromotion/applyPromotion.wxml
create mode 100644 pages/course/applyPromotion/applyPromotion.wxss
create mode 100644 pages/course/applyPromotion/image/wenhao.png
create mode 100644 pages/course/courseOrderList/courseOrderList.js
create mode 100644 pages/course/courseOrderList/courseOrderList.json
create mode 100644 pages/course/courseOrderList/courseOrderList.wxml
create mode 100644 pages/course/courseOrderList/courseOrderList.wxss
create mode 100644 pages/course/courseSettlementRecord/courseSettlementRecord.js
create mode 100644 pages/course/courseSettlementRecord/courseSettlementRecord.json
create mode 100644 pages/course/courseSettlementRecord/courseSettlementRecord.wxml
create mode 100644 pages/course/courseSettlementRecord/courseSettlementRecord.wxss
create mode 100644 pages/course/recommendUser/image/right.png
create mode 100644 pages/course/recommendUser/recommendUser.js
create mode 100644 pages/course/recommendUser/recommendUser.json
create mode 100644 pages/course/recommendUser/recommendUser.wxml
create mode 100644 pages/course/recommendUser/recommendUser.wxss
create mode 100644 static/course.png
create mode 100644 static/courseselected.png
diff --git a/pages/course/applyPromotion/applyPromotion.js b/pages/course/applyPromotion/applyPromotion.js
new file mode 100644
index 0000000..268d218
--- /dev/null
+++ b/pages/course/applyPromotion/applyPromotion.js
@@ -0,0 +1,160 @@
+// pages/course/applyPromotion/applyPromotion.js
+Page({
+
+ data: {
+ showCode: false,
+ buttonText: '生成推广码',
+ codeImageUrl: 'https://img.picui.cn/free/2025/06/24/685a8953cae83.png'
+ },
+
+ // 点击“生成推广码”或“查看推荐的用户”
+ handleGenerate() {
+ if (!this.data.showCode) {
+ // 1. 显示带遮罩的 loading,防止用户点击其他地方
+ wx.showLoading({
+ title: '生成中...',
+ mask: true
+ });
+
+ // 2. 调用后端接口生成推广码图片
+ wx.request({
+ url: 'https://your-backend.com/api/generatePromotionCode', // TODO: 替换成你真实的接口地址
+ method: 'POST',
+ data: {
+ // 如果需要传用户信息或参数,在这里补充
+ },
+ success: res => {
+ if (1) {
+ // 3. 接口返回正确,更新图片地址并显示
+ this.setData({
+ codeImageUrl: res.data.imageUrl,
+ showCode: true,
+ buttonText: '查看推荐的用户'
+ });
+ } else {
+ wx.showToast({
+ title: '生成失败,请重试',
+ icon: 'none'
+ });
+ }
+ },
+ fail: () => {
+ wx.showToast({
+ title: '网络错误,请检查连接',
+ icon: 'none'
+ });
+ },
+ complete: () => {
+ // 4. 隐藏 loading
+ wx.hideLoading();
+ }
+ });
+
+ } else {
+ // 已生成时,跳转到查看推荐用户页(如有)
+ wx.navigateTo({
+ url: '/pages/course/recommendUser/recommendUser',
+ })
+ }
+ },
+
+ // 保存图片到相册(与之前一致)
+ saveImage() {
+ const {
+ codeImageUrl
+ } = this.data;
+ wx.showLoading({
+ title: '保存中...',
+ mask: true
+ });
+ wx.downloadFile({
+ url: codeImageUrl,
+ success: res => {
+ if (res.statusCode === 200) {
+ wx.saveImageToPhotosAlbum({
+ filePath: res.tempFilePath,
+ success: () => {
+ wx.hideLoading();
+ wx.showToast({
+ title: '保存成功',
+ icon: 'success'
+ });
+ },
+ fail: err => {
+ wx.hideLoading();
+ wx.showToast({
+ title: '保存失败',
+ icon: 'none'
+ });
+ console.error('saveImageToPhotosAlbum 失败', err);
+ }
+ });
+ }
+ },
+ fail: err => {
+ wx.hideLoading();
+ wx.showToast({
+ title: '下载失败',
+ icon: 'none'
+ });
+ console.error('downloadFile 失败', err);
+ }
+ });
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/course/applyPromotion/applyPromotion.json b/pages/course/applyPromotion/applyPromotion.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/course/applyPromotion/applyPromotion.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/course/applyPromotion/applyPromotion.wxml b/pages/course/applyPromotion/applyPromotion.wxml
new file mode 100644
index 0000000..14717f4
--- /dev/null
+++ b/pages/course/applyPromotion/applyPromotion.wxml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ {{buttonText}}
+
+
+
+
+
+
+
+ 保存图片
+
+
+
+
+
+
+ 推广码说明
+
+
+
+
diff --git a/pages/course/applyPromotion/applyPromotion.wxss b/pages/course/applyPromotion/applyPromotion.wxss
new file mode 100644
index 0000000..838decb
--- /dev/null
+++ b/pages/course/applyPromotion/applyPromotion.wxss
@@ -0,0 +1,61 @@
+/* pages/course/applyPromotion/applyPromotion.wxss */
+.page {
+ background-color: #f6f7f9;
+ width: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 100%;
+}
+.group {
+ padding: 69.38rpx 0 52.5rpx;
+}
+/* 上下居中改由 justify-center 控制,无需修改原有 padding */
+.text-wrapper {
+ padding: 30rpx 0 30rpx;
+ background-color: #a5d63f;
+ border-radius: 46.07rpx;
+ width: 395.63rpx;
+}
+.image {
+ width: 667.5rpx;
+ height: 763.13rpx;
+}
+.text-wrapper_2 {
+ padding: 30rpx 0 30rpx;
+ background-color: #ff8d1a;
+ border-radius: 46.07rpx;
+ width: 395.63rpx;
+}
+.section {
+ padding: 0 30rpx 60rpx;
+ background-color: #ffffff;
+}
+.group_2 {
+ padding: 35.63rpx 0 30rpx;
+}
+.image_2 {
+ width: 45rpx;
+ height: 45rpx;
+}
+.font {
+ font-size: 30rpx;
+ font-family: SourceHanSansCN;
+ line-height: 27.99rpx;
+ color: #ffffff;
+}
+.text {
+ line-height: 28.29rpx;
+}
+.text_2 {
+ color: #000000;
+ font-size: 28.13rpx;
+ line-height: 26.19rpx;
+}
+.section_2 {
+ background-color: #ffffff00;
+ height: 813.75rpx;
+ border-left: solid 1.88rpx #000000;
+ border-right: solid 1.88rpx #000000;
+ border-top: solid 1.88rpx #000000;
+ border-bottom: solid 1.88rpx #000000;
+}
diff --git a/pages/course/applyPromotion/image/wenhao.png b/pages/course/applyPromotion/image/wenhao.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd67389a25f831e006046c8d17b8e447716ddac5
GIT binary patch
literal 1518
zcmVPx#1am@3R0s$N2z&@+hyVZum`OxIRA_<4noVpIM-<0@voa2f2^fhq5+q=tNNHL@
zETD&03ZbY6PEc{_h1Q&qdMW9tH$dv4>Luv~!3hJ0a)|_|RIN%wBtR;uoFG&pQSd@Y
zB~YL?e<;
z#aP2pl-dLIq6Lq76wM-xp|Dw!>nt&>w#TzU`u0sg(y1tGNMNZW2)zMhNU|i?)zjS>sn#s
zwrbrZS(LN2u9=z$=uubwK*F=Y%oCU#g-17G{_o0-g_|{r9S5N89ZkxOEFyii%tloL
zl1{}4t6zbbEA!C^JiZCfA5?3mJa+WJ&K_v%@)GZi+Op?trRo(4lodXgfjj4e32tIX
z59~hXo)M)6)aE^X<*Jn>P*(VfAsD?9NY=85v}zJNdz|SNNO%$`EBxqXnE0_FvR1_I
zWBTV1O8QiLe84Pfc{UJMr!j@Ueg5?b4{&c#|4N}$zf7ij&7v*>@+_6Wv^Jxc;qgcV
zC9DBnBrJ6?e?%!JmA*(i6+@}hj!F|luW#f{+#7`Ff0U-g^d?$_a|TS+$z|N5@VasP
zg5DfgAg4-aVTFLCQ!z}{xpUsA{01d=fAr5(^RXxTrJ|rB>?%SRa4Y>+6a_2Rz($$1}Z3KjcB9LFEA`X4+v`RsRFYEy&uy|zLwOA&hAPBIAyXj=jM<+jU5vMmKDM
z55EZBo|hBszXE|*B%Ou3JXd^OnEb7{(j*
z!-bFGheU8cQl!=GD?%5XhzC#<0K?Clo|bNV6^6sC^|?1JBPg+M-`xF>|0gU>=E
z(6P^B^i{I(fMYF$o8iD$S_j_*yqvw_
zj2*aLi%Z5VtZRi2POgf472)L{RScUk0~Z0+5g$gx=?QM@(lZfsQPⅅlXA>PMC@1
z-Ro0h7cm`OxeWaLO|VN(HFyi3MdYArkB^xdmEr@@yo=p=UtTQ|k-VyUMQTLiUcy85
z2#q%h(BY+fgTaY}oAoZc`SE22`NI9WcI#!cEGH_dj0s<#8sr1s?l6>p*ob`3E0XnoI}zw(51CB$
zVyVx8qtyS|K^C~ivRtZX#7#8hYZb_oQFLQj+gO%vl<~!iV56`R8AlikB6KPK2SarC
U<9U^|cK`qY07*qoM6N<$f=T@8RR910
literal 0
HcmV?d00001
diff --git a/pages/course/courseOrderList/courseOrderList.js b/pages/course/courseOrderList/courseOrderList.js
new file mode 100644
index 0000000..abec682
--- /dev/null
+++ b/pages/course/courseOrderList/courseOrderList.js
@@ -0,0 +1,88 @@
+// pages/course/courseOrderList/courseOrderList.js
+Page({
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ items: [null, null, null],
+ countDown: 30 * 60 , // 初始倒计时
+ countDownStr: '' // 用于在视图中渲染的倒计时文本
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+ this.startCountDown();
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {},
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {},
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+ clearInterval(this.intervalId);
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+ clearInterval(this.intervalId);
+ },
+
+ /**
+ * 启动倒计时
+ */
+ startCountDown() {
+ this.updateCountDownStr();
+ this.intervalId = setInterval(() => {
+ let cd = this.data.countDown;
+ if (cd <= 1) {
+ clearInterval(this.intervalId);
+ this.setData({
+ countDown: 0,
+ countDownStr: '00分00秒'
+ });
+ } else {
+ cd--;
+ this.setData({ countDown: cd });
+ this.updateCountDownStr();
+ }
+ }, 1000);
+ },
+
+ /**
+ * 更新倒计时显示字符串
+ */
+ updateCountDownStr() {
+ const minutes = Math.floor(this.data.countDown / 60);
+ const seconds = this.data.countDown % 60;
+ const str = `${minutes}分${seconds < 10 ? '0' + seconds : seconds}秒`;
+ this.setData({ countDownStr: str });
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {},
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {},
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {}
+});
diff --git a/pages/course/courseOrderList/courseOrderList.json b/pages/course/courseOrderList/courseOrderList.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/course/courseOrderList/courseOrderList.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/course/courseOrderList/courseOrderList.wxml b/pages/course/courseOrderList/courseOrderList.wxml
new file mode 100644
index 0000000..8c9ceb1
--- /dev/null
+++ b/pages/course/courseOrderList/courseOrderList.wxml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ 订单号:202506191307440406460485418
+ 待支付
+
+ 区块链和加密数字货币(随报随学认证班)(随报随学认证班)
+ ¥999.00
+ 请在 {{countDownStr}} 内完成支付
+
+ 2025-06-17 13:00:33
+
+
+ 取消订单
+
+
+ 支付
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/course/courseOrderList/courseOrderList.wxss b/pages/course/courseOrderList/courseOrderList.wxss
new file mode 100644
index 0000000..54b2a3c
--- /dev/null
+++ b/pages/course/courseOrderList/courseOrderList.wxss
@@ -0,0 +1,125 @@
+/* pages/course/courseOrderList/courseOrderList.wxss */
+
+.mt-17 {
+ margin-top: 31.88rpx;
+}
+.ml-37 {
+ margin-left: 69.38rpx;
+}
+.ml-11 {
+ margin-left: 20.63rpx;
+}
+.page {
+ padding: 26.25rpx 0 350.63rpx;
+ background-color: #f8f8f8;
+ width: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 100%;
+}
+.group_1 {
+ margin-left: 20.63rpx;
+ margin-right: 18.77rpx;
+}
+.list-item {
+ padding-left: 22.5rpx;
+ padding-right: 3.51rpx;
+ filter: drop-shadow(0rpx 3.75rpx 3.75rpx #00000040);
+ background-color: #ffffff;
+ border-radius: 9.66rpx;
+}
+.list-item:first-child {
+ margin-top: 0;
+}
+.group {
+ padding: 32.51rpx 0 25.82rpx;
+ border-bottom: solid 1.88rpx #e3e3e3;
+}
+.font {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 24.17rpx;
+ color: #696969;
+}
+.text {
+ line-height: 24.02rpx;
+}
+.font_2 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 24.17rpx;
+ color: #f84947;
+}
+.font_3 {
+ font-size: 30rpx;
+ font-family: SourceHanSansCN;
+ line-height: 35.63rpx;
+ color: #000000;
+}
+.text_2 {
+ margin-top: 25.69rpx;
+}
+.font_4 {
+ font-size: 30rpx;
+ font-family: SourceHanSansCN;
+ line-height: 24.17rpx;
+ color: #3d3d3d;
+}
+.text_3 {
+ margin-top: 58.09rpx;
+ line-height: 22.76rpx;
+ margin-right: 50rpx; /* 向左移动:增加右侧间距 */
+}
+.font_5 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 26.32rpx;
+ color: #f84947;
+}
+.text_4 {
+ margin-right: 7.13rpx;
+ margin-top: 34.91rpx;
+ font-size: 28.13rpx;
+}
+.group_2 {
+ margin-right: 20.87rpx;
+ margin-top: 30.30rpx;
+ padding: 15.94rpx 0 17.81rpx;
+ border-top: solid 1.88rpx #e3e3e3;
+}
+.font_6 {
+ font-size: 22.5rpx;
+ font-family: SourceHanSansCN;
+ line-height: 26.25rpx;
+ color: #a1a1a1;
+}
+.text_5 {
+ width: 206.25rpx;
+}
+.text-wrapper {
+ padding: 10.8rpx 0 8.16rpx;
+ background-color: #ffffff;
+ border-radius: 9.38rpx;
+ width: 142.5rpx;
+ height: 46.88rpx;
+ border: solid 1.88rpx #ff8d1a;
+}
+.font_7 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 24.17rpx;
+ color: #ff8d1a;
+}
+.text-wrapper_2 {
+ padding: 11.89rpx 0 8.94rpx;
+ background-color: #ff8d1a;
+ border-radius: 9.38rpx;
+ width: 140.63rpx;
+ height: 45rpx;
+}
+.font_8 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 24.17rpx;
+ color: #ffffff;
+}
diff --git a/pages/course/courseSettlementRecord/courseSettlementRecord.js b/pages/course/courseSettlementRecord/courseSettlementRecord.js
new file mode 100644
index 0000000..088a0bb
--- /dev/null
+++ b/pages/course/courseSettlementRecord/courseSettlementRecord.js
@@ -0,0 +1,66 @@
+// pages/course/courseSettlementRecord/courseSettlementRecord.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ items: [null,null,null]
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/course/courseSettlementRecord/courseSettlementRecord.json b/pages/course/courseSettlementRecord/courseSettlementRecord.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/course/courseSettlementRecord/courseSettlementRecord.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/course/courseSettlementRecord/courseSettlementRecord.wxml b/pages/course/courseSettlementRecord/courseSettlementRecord.wxml
new file mode 100644
index 0000000..cd21cc9
--- /dev/null
+++ b/pages/course/courseSettlementRecord/courseSettlementRecord.wxml
@@ -0,0 +1,55 @@
+
+
+ 结算记录
+
+
+
+ 请输入下单用户
+
+
+
+
+
+
+ 【早鸟42折】掌握CAD技能实战技能实战技能实战工作训练营
+
+
+
+
+ 下单用户
+ {{item.user || 'user_cxz'}}
+
+
+ 课程价格
+ {{item.price || '¥168'}}
+
+
+ 下单数量
+ {{item.count || '×1'}}
+
+
+ 下单时间
+ {{item.orderTime || '2025-06-14 18:30:00'}}
+
+
+ 抽成比例
+ {{item.rate || '%10'}}
+
+
+ 抽成补贴
+ {{item.subsidy || '¥16.8'}}
+
+
+ 结算时间
+ {{item.settlementTime || '2025-06-20 18:30:00'}}
+
+
+
+
+
diff --git a/pages/course/courseSettlementRecord/courseSettlementRecord.wxss b/pages/course/courseSettlementRecord/courseSettlementRecord.wxss
new file mode 100644
index 0000000..4acd1a1
--- /dev/null
+++ b/pages/course/courseSettlementRecord/courseSettlementRecord.wxss
@@ -0,0 +1,117 @@
+/* pages/course/courseSettlementRecord/courseSettlementRecord.wxss */
+/* 新增统一行样式 */
+.group_row {
+ margin-top: 22.5rpx;
+ /* 左右对齐 */
+ padding: 0 3.75rpx;
+}
+
+/* 取消 time 文本的宽度限制并防止换行 */
+.text_11 {
+ /* 去掉原先 width: 240rpx; */
+ width: auto !important;
+}
+/* 防止文本换行 */
+.nowrap {
+ white-space: nowrap;
+}
+
+/* 以下为原样式,未作改动 */
+.ml-3 {
+ margin-left: 5.63rpx;
+}
+.mt-13 {
+ margin-top: 24.38rpx;
+}
+.ml-11 {
+ margin-left: 20.63rpx;
+}
+.page {
+ padding: 30rpx 37.5rpx 785.63rpx;
+ background-image: linear-gradient(180deg, #ff8d1a 0%, #ff8d1a00 31.5%);
+ width: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 100%;
+}
+.text {
+ color: #ffffff;
+ font-size: 33.75rpx;
+ font-family: SourceHanSansCN;
+ line-height: 31.29rpx;
+}
+.section {
+ padding: 15rpx 18.75rpx;
+ background-color: #ffffff;
+ border-radius: 9.38rpx;
+}
+.image {
+ width: 35.63rpx;
+ height: 35.63rpx;
+}
+.text_2 {
+ color: #b0b0b0;
+ font-size: 30rpx;
+ font-family: SourceHanSansCN;
+ line-height: 27.94rpx;
+}
+.list {
+ padding-top: 22.5rpx;
+}
+.list-item {
+ padding: 22.5rpx 7.5rpx 22.5rpx 18.75rpx;
+ background-color: #ffffff;
+ border-radius: 9.38rpx;
+}
+.list-item:first-child {
+ margin-top: 0;
+}
+.group {
+ margin-left: 3.75rpx;
+ margin-right: 22.5rpx;
+}
+.image_2 {
+ border-radius: 9.38rpx;
+ width: 196.88rpx;
+ height: 125.63rpx;
+}
+.font {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 31.88rpx;
+ color: #000000;
+}
+.text_3 {
+ margin-top: 3.75rpx;
+}
+.font_2 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 24.34rpx;
+ color: #000000;
+}
+.font_3 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 21.49rpx;
+ color: #fc2f35;
+}
+.font_4 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 19.24rpx;
+ color: #000000;
+}
+.font_5 {
+ font-size: 26.25rpx;
+ font-family: SourceHanSansCN;
+ line-height: 21.49rpx;
+ color: #0ed062;
+}
+.text_13 {
+ /* margin-right: 15rpx; */
+ font-size: 28.13rpx;
+}
+.text_14 {
+ font-size: 28.13rpx;
+}
diff --git a/pages/course/recommendUser/image/right.png b/pages/course/recommendUser/image/right.png
new file mode 100644
index 0000000000000000000000000000000000000000..fedc2225dd9f65a826c9a014a0769f1207fad62c
GIT binary patch
literal 321
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}EX7WqAsj$Z
z!;#VfyUv&+e33k>+&_FCwaecd}F(}po00}%E?xuA}>YvG~Qbf
z{!&GDuC)oDmG|U7B@^nR73%k~GbtLRo)T%l;k{|w^)Gp+k9f>odAIDf%ngB;QCtt%
zUi=ciz~IKUFor#6ri4-~Gh4=sUp}I_#!?Pa4_PO;R4^|QaAe?gF;EauWa4n#v6tC?
zQP;MGuZ(V{Qv*}
literal 0
HcmV?d00001
diff --git a/pages/course/recommendUser/recommendUser.js b/pages/course/recommendUser/recommendUser.js
new file mode 100644
index 0000000..e0db4fd
--- /dev/null
+++ b/pages/course/recommendUser/recommendUser.js
@@ -0,0 +1,67 @@
+// pages/course/recommendUser/recommendUser.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+ items: [null, null, null],
+ items_1: [null, null, null],
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/course/recommendUser/recommendUser.json b/pages/course/recommendUser/recommendUser.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/pages/course/recommendUser/recommendUser.json
@@ -0,0 +1,3 @@
+{
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/course/recommendUser/recommendUser.wxml b/pages/course/recommendUser/recommendUser.wxml
new file mode 100644
index 0000000..64512dd
--- /dev/null
+++ b/pages/course/recommendUser/recommendUser.wxml
@@ -0,0 +1,78 @@
+
+
+ 我推荐的用户
+
+
+ 直推用户
+
+
+
+ 用户名
+ 给我创造的收益
+ 绑定时间
+ 联系
+
+
+
+
+
+
+ {{item.userName || 'user_cxzsdfdfs'}}
+
+ ¥{{item.revenue || '160.00'}}
+
+ {{item.bindTime || '2025-06-20'}}
+
+
+
+
+
+
+
+
+
+
+ 间推用户
+
+
+ 用户名
+ 给我创造的收益
+ 绑定时间
+ 联系
+
+
+
+
+ {{item.userName || 'user_cxzsdfdfs'}}
+
+ ¥{{item.revenue || '160.00'}}
+
+ {{item.bindTime || '2025-06-20'}}
+
+
+
+
+
+
+
+
+
+
diff --git a/pages/course/recommendUser/recommendUser.wxss b/pages/course/recommendUser/recommendUser.wxss
new file mode 100644
index 0000000..4b87fb4
--- /dev/null
+++ b/pages/course/recommendUser/recommendUser.wxss
@@ -0,0 +1,122 @@
+/*=========== 公共间距 ===========*/
+.ml-35 {
+ margin-left: 65.63rpx;
+}
+.ml-27 {
+ margin-left: 50.63rpx;
+}
+.mt-13 {
+ margin-top: 24.38rpx;
+}
+
+/*=========== 页面整体 ===========*/
+.page {
+ padding: 37.76rpx 41.25rpx 980.63rpx;
+ background-image: linear-gradient(180deg, #ff8d1a 0%, #ff8d1a00 27%);
+ width: 100%;
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 100%;
+}
+
+/*=========== 文本样式,均放大一号 ===========*/
+/* 主标题 “我推荐的用户” */
+.text {
+ color: #ffffff;
+ font-size: 36rpx; /* 原 33.75rpx → 36rpx */
+ line-height: 34rpx; /* 对应行高 */
+ font-family: SourceHanSansCN;
+}
+
+/* 次级标题 “直推用户”/“间推用户” */
+.text_2 {
+ margin-top: 40.42rpx;
+ color: #ffffff;
+ font-size: 36rpx; /* 新增字号 */
+ line-height: 34rpx;
+ font-family: SourceHanSansCN;
+}
+
+/* 通用白字 */
+.font {
+ font-size: 33rpx; /* 原 30rpx → 33rpx */
+ line-height: 30rpx;
+ color: #ffffff;
+ font-family: SourceHanSansCN;
+}
+
+/* 卡片容器 */
+.section {
+ padding: 27.66rpx 27.09rpx 22.67rpx;
+ background-color: #ffffff;
+ border-radius: 9.38rpx;
+}
+.view {
+ margin-top: 25.58rpx;
+}
+.group {
+ padding-left: 14.06rpx;
+}
+
+/* 表头文字 */
+.font_2 {
+ font-size: 30rpx; /* 原 26.25rpx → 30rpx */
+ line-height: 28rpx;
+ color: #323232;
+ font-family: SourceHanSansCN;
+}
+
+/* 表格内容:收益、时间 */
+.font_4 {
+ font-size: 30rpx; /* 原 26.25rpx → 30rpx */
+ line-height: 23rpx;
+ color: #323232;
+ font-family: SourceHanSansCN;
+}
+
+/* 小图标 */
+.image {
+ width: 30rpx;
+ height: 30rpx;
+}
+
+/* “间推用户”前缀 */
+.text_6 {
+ margin-left: 2.74rpx;
+ color: #323232;
+ font-size: 30rpx; /* 新增字号 */
+ line-height: 28rpx;
+ font-family: SourceHanSansCN;
+}
+
+/* 用户名文字,放大一号 */
+.font_3 {
+ font-size: 30rpx; /* 原 26.25rpx → 30rpx */
+ line-height: 36rpx; /* 支持两行 */
+ color: #323232;
+ font-family: SourceHanSansCN;
+}
+
+/*=========== 新增:用户名自动换行 ===========*/
+/* 固定宽度,在“sdfdfs”处自动断行 */
+.name {
+ flex: none; /* 关闭 flex 自动拉伸 */
+ width: 127rpx; /* 根据字符长度微调,200rpx 在 “user_cxz” 后换行 */
+ word-break: break-all; /* 任意字符处断行 */
+ white-space: normal; /* 允许多行 */
+ margin-right: 50rpx;
+}
+
+/* 列表条目顶部对齐,支持多行用户名 */
+.list-item,
+.list-item_2 {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ align-items: flex-start;
+ margin-right: 12.28rpx;
+}
+.list-item:first-child,
+.list-item_2:first-child {
+ margin-top: 0;
+}
diff --git a/static/course.png b/static/course.png
new file mode 100644
index 0000000000000000000000000000000000000000..58c8fc29711555ed3feb794516fcfc866cf3600c
GIT binary patch
literal 4412
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
D)f?^(
literal 0
HcmV?d00001
diff --git a/static/courseselected.png b/static/courseselected.png
new file mode 100644
index 0000000000000000000000000000000000000000..3362644fa80374ac616f7a1180d1bf6560a59c98
GIT binary patch
literal 4974
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
SZ@L(u0d%!)YZj_ohx`ZsDHlip
literal 0
HcmV?d00001