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