From 0e20be0425d63b0fa625952c30a683035a316d15 Mon Sep 17 00:00:00 2001 From: yuanteng <1876787513@qq.com> Date: Mon, 23 Jun 2025 10:03:08 +0800 Subject: [PATCH] commission--yt-commit --- app.json | 12 +- pages/course/homepage/homepage.js | 72 +++++++++ pages/course/homepage/homepage.json | 3 + pages/course/homepage/homepage.wxml | 52 +++++++ pages/course/homepage/homepage.wxss | 137 ++++++++++++++++++ pages/course/homepage/image/cj.png | Bin 0 -> 8639 bytes pages/course/homepage/image/kgky.png | Bin 0 -> 8538 bytes pages/course/homepage/image/sousuo.png | Bin 0 -> 812 bytes pages/course/homepage/image/zmt.png | Bin 0 -> 11463 bytes pages/course/searchCourses/images/sousuo.png | Bin 0 -> 812 bytes pages/course/searchCourses/searchCourses.js | 66 +++++++++ pages/course/searchCourses/searchCourses.json | 3 + pages/course/searchCourses/searchCourses.wxml | 26 ++++ pages/course/searchCourses/searchCourses.wxss | 89 ++++++++++++ .../personCenter/bindBankCard/bindBankCard.js | 11 +- .../bindBankCard/bindBankCard.wxml | 1 + pages/personCenter/resetPwd/resetPwd.js | 4 +- .../withdrawalAccount/withdrawalAccount.js | 1 - pages/projectModule/applyCode/applyCode.js | 4 +- .../projectDetail/projectDetail.js | 16 +- utils/decodebase64.js | 58 ++++++++ utils/util.js | 23 ++- 22 files changed, 553 insertions(+), 25 deletions(-) create mode 100644 pages/course/homepage/homepage.js create mode 100644 pages/course/homepage/homepage.json create mode 100644 pages/course/homepage/homepage.wxml create mode 100644 pages/course/homepage/homepage.wxss create mode 100644 pages/course/homepage/image/cj.png create mode 100644 pages/course/homepage/image/kgky.png create mode 100644 pages/course/homepage/image/sousuo.png create mode 100644 pages/course/homepage/image/zmt.png create mode 100644 pages/course/searchCourses/images/sousuo.png create mode 100644 pages/course/searchCourses/searchCourses.js create mode 100644 pages/course/searchCourses/searchCourses.json create mode 100644 pages/course/searchCourses/searchCourses.wxml create mode 100644 pages/course/searchCourses/searchCourses.wxss create mode 100644 utils/decodebase64.js diff --git a/app.json b/app.json index 37c628c..5c7cbe7 100644 --- a/app.json +++ b/app.json @@ -1,9 +1,9 @@ { "pages": [ "pages/loginModule/pwdLogin/pwdLogin", + "pages/personCenter/mine/mine", "pages/loginModule/agreement/agreement", "pages/loginModule/privacyPolicy/privacyPolicy", - "pages/personCenter/mine/mine", "pages/personCenter/subCommissionSetting/subCommissionSetting", "pages/test/testVideo/testVideo", "pages/personCenter/withdrawal/withdrawal", @@ -24,7 +24,9 @@ "pages/personCenter/resetPwd/resetPwd", "pages/personCenter/bindBankCard/bindBankCard", "pages/projectModule/settlement/settlement", - "pages/projectModule/subSettlement/subSettlement" + "pages/projectModule/subSettlement/subSettlement", + "pages/course/homepage/homepage", + "pages/course/searchCourses/searchCourses" ], "window": { "navigationBarTextStyle": "black", @@ -47,6 +49,12 @@ "iconPath": "/static/jd1.png", "selectedIconPath": "/static/jd2.png" }, + { + "pagePath": "pages/course/homepage/homepage", + "text": "课程", + "iconPath": "/static/jd1.png", + "selectedIconPath": "/static/jd1.png" + }, { "pagePath": "pages/personCenter/mine/mine", "text": "我的", diff --git a/pages/course/homepage/homepage.js b/pages/course/homepage/homepage.js new file mode 100644 index 0000000..6ee67d7 --- /dev/null +++ b/pages/course/homepage/homepage.js @@ -0,0 +1,72 @@ +// pages/course/homepage/homepage.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + items: [null,null,null,null,null,null,null] + }, + + gotoSearch() { + wx.navigateTo({ + url: '/pages/course/searchCourses/searchCourses', + }) + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/pages/course/homepage/homepage.json b/pages/course/homepage/homepage.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/pages/course/homepage/homepage.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/pages/course/homepage/homepage.wxml b/pages/course/homepage/homepage.wxml new file mode 100644 index 0000000..8da08ac --- /dev/null +++ b/pages/course/homepage/homepage.wxml @@ -0,0 +1,52 @@ + + + + + 搜索更多好课 + + + + + + + 考公考研 + + + + 自媒体 + + + + 财经 + + + 热门课程 + + + + + + 区块链和加密数字货币(随报随学认证班) + + 券后99元起 + 18523人学习 + + + + + \ No newline at end of file diff --git a/pages/course/homepage/homepage.wxss b/pages/course/homepage/homepage.wxss new file mode 100644 index 0000000..8bdec29 --- /dev/null +++ b/pages/course/homepage/homepage.wxss @@ -0,0 +1,137 @@ +.ml-3 { + margin-left: 5.63rpx; +} +.mt-17 { + margin-top: 31.88rpx; +} +.page { + padding: 0rpx 0 10.88rpx; + background-color: #ffffff; + width: 100%; + overflow-y: auto; + overflow-x: hidden; + height: 100%; +} +.group { + padding-left: 30rpx; + padding-right: 28.13rpx; +} +.section { + padding: 11.25rpx 0; + background-color: #f2f2f2; + border-radius: 93.75rpx; +} +.image { + width: 35.63rpx; + height: 35.63rpx; +} +.text { + color: #a8a8a8; + font-size: 22.5rpx; + font-family: SourceHanSerifCN; + line-height: 20.83rpx; +} +.equal-division { + align-self: stretch; + margin: 21.88rpx 31.46rpx 0 29.48rpx; +} +.group_2 { + flex: 1 1 229.69rpx; +} +.group_1 { + padding: 13.56rpx 0 9.99rpx; +} +.image_3 { + width: 96rpx; + height: 96rpx; +} +.font { + font-size: 26.25rpx; + font-family: SourceHanSansCN; + line-height: 24.15rpx; + color: #000000; +} +.text_1 { + line-height: 24.26rpx; +} +.group_3 { + padding: 13.56rpx 0 10.09rpx; +} +.text_3 { + line-height: 24.23rpx; +} +.group_4 { + padding: 13.56rpx 0 10.13rpx; +} +.text_4 { + line-height: 24.13rpx; +} +.text_2 { + margin-left: 35.04rpx; + margin-top: 38.16rpx; + color: #000000; + font-size: 30rpx; + font-family: SourceHanSansCN; + line-height: 27.75rpx; +} +.list { + margin-top: 9.56rpx; +} +.group_5 { + padding: 18.75rpx 29.46rpx 0 35.63rpx; + height: 180rpx; +} +.list-divider { + background-color: #d6d6d6; + height: 1.88rpx; +} +.pos_3 { + position: absolute; + left: 35.63rpx; + right: 33.81rpx; + top: 178.13rpx; +} +.image_4 { + border-radius: 9.38rpx; + width: 208.13rpx; + height: 133.13rpx; +} +.pos { + position: absolute; + left: 35.63rpx; + top: 50%; + transform: translateY(-50%); +} +.group_6 { + width: 453.49rpx; +} +.pos_2 { + position: absolute; + right: 29.46rpx; + top: 50%; + transform: translateY(-50%); +} +.font_2 { + font-size: 26.25rpx; + font-family: SourceHanSansCN; + line-height: 31.88rpx; + color: #000000; +} +.font_3 { + font-size: 26.25rpx; + font-family: AlibabaPuHuiTi; + line-height: 24.15rpx; + color: #ff5733; +} +.font_4 { + font-size: 22.5rpx; + font-family: AlibabaPuHuiTi; + line-height: 20.34rpx; + color: #a6a6a6; +} +.swiper { + border-radius: 9.38rpx; + width: 691.88rpx; + height: 324.38rpx; + margin-top: 22.5rpx; +} \ No newline at end of file diff --git a/pages/course/homepage/image/cj.png b/pages/course/homepage/image/cj.png new file mode 100644 index 0000000000000000000000000000000000000000..3047ad3bc4f639499f00f21b1e5787dff98bfd55 GIT binary patch literal 8639 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 Lt3WH{Ohf($h$oR$ literal 0 HcmV?d00001 diff --git a/pages/course/homepage/image/kgky.png b/pages/course/homepage/image/kgky.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b7253d2e9f7d7a01f8f0219f4970c98169373b GIT binary patch literal 8538 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 Uv;eOq*8l(j07*qoM6N<$g3&$zg8%>k literal 0 HcmV?d00001 diff --git a/pages/course/homepage/image/sousuo.png b/pages/course/homepage/image/sousuo.png new file mode 100644 index 0000000000000000000000000000000000000000..d58893a78e7241fe57a3dd646dcc742247a6499b GIT binary patch literal 812 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 aqm%v)EJDf6PEo*&4C(9KKv!tnKlndweUpX& literal 0 HcmV?d00001 diff --git a/pages/course/searchCourses/images/sousuo.png b/pages/course/searchCourses/images/sousuo.png new file mode 100644 index 0000000000000000000000000000000000000000..d58893a78e7241fe57a3dd646dcc742247a6499b GIT binary patch literal 812 zcmV+{1JnG8P)Px#1am@3R0s$N2z&@+hyVZr)=5M`R9J=WmrYLNFcioCuc;%JIYMp#vtu`{gxC&8 zfD_Ox2y|7tLP-~f6VMw>_Xv@>K{)|ALY63v`(`mVgpwAgO_@#qQWV?r$IoByJp()K zv|Ul%22x7z_4W0j-ERM6W*>kDAS0r5KA%6kuA2lwkbN7Nl+r7T;+&a#8fKNoN~vML z-%qy+7DZ8yhz1KlQ~g1gdjL8gIw!imxVRW@1uTx^djO|8n-S4%yWPI4+OC_M8{cu9 z4uAmwUl&h=5NCC_cO_U9MUsemIy)9Z1U3UmDZM<;2c@=27>3^|z$l z2Q%MZUS0+pf$1%I(b;hrhG%u5jLNI7lw)L69-?oz8ZolwX;eYOpAZPN2<#QYzU5%E)!yF@OvJ@;pCX3#`>@ z?d#-p)73K4H#r3WBHCYFdkL6!GcX-BsIoEsQdMWn*Z+3wZQiF_9oEFT@=N66JWF1 zthNdI1g5X{6abjH*U+jNi*Id$DlNZK%J@bv&vR=xQl-&o^cDgsrL3K}Q&sr*_?R6X z9eG4_NJNLn$H#bhc(6Jfi%=%I05HC~y1H9czpRz(cV!2cZ z@uN<#xDrfC>CI-dC%oUN6u?jjF{v6v2Z*OcbdGmJnkuEbI-lB}G258GJbR-AKuScZ zc4NMtK>4zag%ClW=N%&YZ6IyntY1kwc)Z8LgJX#j{YpxJx0Qd<&{lA@-<72Y$1l9U zjxqo#Ge6Jg^GVg9aU352c(R474YrBuz + + + + + + + + + + + 区块链和加密数字货币(随报随学认证班) + + 券后99元起 + 18523人学习 + + + + + \ No newline at end of file diff --git a/pages/course/searchCourses/searchCourses.wxss b/pages/course/searchCourses/searchCourses.wxss new file mode 100644 index 0000000..123018e --- /dev/null +++ b/pages/course/searchCourses/searchCourses.wxss @@ -0,0 +1,89 @@ +/* pages/course/searchCourses/searchCourses.wxss */ + +.ml-3 { + margin-left: 5.63rpx; +} +.mt-17 { + margin-top: 31.88rpx; +} +.page { + padding: 26.25rpx 0 918.73rpx; + background-color: #ffffff; + width: 100%; + overflow-y: auto; + overflow-x: hidden; + height: 100%; +} +.section { + margin-left: 28.13rpx; + margin-right: 26.27rpx; + padding: 11.25rpx 24.38rpx; + background-color: #f2f2f2; + border-radius: 93.75rpx; +} +.image { + width: 35.63rpx; + height: 35.63rpx; +} +.text { + color: #a8a8a8; + font-size: 22.5rpx; + font-family: SourceHanSerifCN; + line-height: 20.83rpx; +} +.list { + padding-top: 11.25rpx; + border-top: solid 1.88rpx #d1d1d1; +} +.list-item { + padding: 28.13rpx 29.46rpx 0 35.63rpx; + height: 189.39rpx; +} +.list-divider { + background-color: #d6d6d6; + height: 1.88rpx; +} +.pos_3 { + position: absolute; + left: 35.63rpx; + right: 33.81rpx; + top: 187.52rpx; +} +.image_2 { + border-radius: 9.38rpx; + width: 208.13rpx; + height: 133.13rpx; +} +.pos { + position: absolute; + left: 35.63rpx; + top: 50%; + transform: translateY(-50%); +} +.group_2 { + width: 453.49rpx; +} +.pos_2 { + position: absolute; + right: 29.46rpx; + top: 50%; + transform: translateY(-50%); +} +.font { + font-size: 26.25rpx; + font-family: SourceHanSansCN; + line-height: 31.88rpx; + color: #000000; +} +.font_2 { + font-size: 26.25rpx; + font-family: AlibabaPuHuiTi; + line-height: 24.15rpx; + color: #ff5733; +} +.font_3 { + font-size: 22.5rpx; + font-family: AlibabaPuHuiTi; + line-height: 20.34rpx; + color: #a6a6a6; +} \ No newline at end of file diff --git a/pages/personCenter/bindBankCard/bindBankCard.js b/pages/personCenter/bindBankCard/bindBankCard.js index f5f62f1..f84e961 100644 --- a/pages/personCenter/bindBankCard/bindBankCard.js +++ b/pages/personCenter/bindBankCard/bindBankCard.js @@ -217,8 +217,11 @@ Page({ icon: 'success', }); // 这里可以跳转到其他页面 - wx.navigateTo({ - url: '/pages/personCenter/withdrawal/withdrawal', + let pages = getCurrentPages(); // 获取小程序页面栈 + let beforePage = pages[pages.length - 2]; // 获取上个页面的实例对象 + beforePage.getAccountInfo(); + wx.navigateBack({ + delta:1 }); }, fail(err) { @@ -251,7 +254,9 @@ Page({ /** * 生命周期函数--监听页面显示 */ - onShow() {}, + onShow() { + this.getAccountInfo() + }, /** * 生命周期函数--监听页面隐藏 diff --git a/pages/personCenter/bindBankCard/bindBankCard.wxml b/pages/personCenter/bindBankCard/bindBankCard.wxml index 5bdc39d..bb16150 100644 --- a/pages/personCenter/bindBankCard/bindBankCard.wxml +++ b/pages/personCenter/bindBankCard/bindBankCard.wxml @@ -30,6 +30,7 @@ placeholder="请输入持卡人身份证号" data-field="idCardNumber" bindinput="handleInputChange" + type="idcard" value="{{ idCardNumber }}" /> diff --git a/pages/personCenter/resetPwd/resetPwd.js b/pages/personCenter/resetPwd/resetPwd.js index a14f723..11072a8 100644 --- a/pages/personCenter/resetPwd/resetPwd.js +++ b/pages/personCenter/resetPwd/resetPwd.js @@ -18,7 +18,9 @@ Page({ resetPwd() { const { phone, verificationCode, password, currentPwd } = this.data; - formatPassword(password,currentPwd); + if( !formatPassword(password,currentPwd) ) { + return; + } wx.request({ url: baseUrl + '/userInfo/mini/in/reset/pwd', method: 'POST', diff --git a/pages/personCenter/withdrawalAccount/withdrawalAccount.js b/pages/personCenter/withdrawalAccount/withdrawalAccount.js index fb8c05a..68d0013 100644 --- a/pages/personCenter/withdrawalAccount/withdrawalAccount.js +++ b/pages/personCenter/withdrawalAccount/withdrawalAccount.js @@ -74,7 +74,6 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad(options) { - this.getAccountInfo() }, /** diff --git a/pages/projectModule/applyCode/applyCode.js b/pages/projectModule/applyCode/applyCode.js index 5684f69..986542e 100644 --- a/pages/projectModule/applyCode/applyCode.js +++ b/pages/projectModule/applyCode/applyCode.js @@ -1,4 +1,5 @@ const { baseUrl } = require('../../../request'); +import { decodeBase64 } from '../../../utils/decodebase64' Page({ data: { @@ -12,7 +13,7 @@ Page({ onLoad(options) { this.setData({ projectId: options.id || '', - promoCodeDesc: decodeURIComponent(options.desc || ''), + promoCodeDesc: decodeBase64(options.desc), mode: options.mode || 'add', salespersonName: options.name ? decodeURIComponent(options.name) : '', salespersonPhone: options.phone ? decodeURIComponent(options.phone) : '' @@ -34,6 +35,7 @@ Page({ // 申请资料报备 onApply() { + console.log('---->',this.data.promoCodeDesc); // 如果是查看模式,阻止提交 if (this.data.mode === 'view') return; diff --git a/pages/projectModule/projectDetail/projectDetail.js b/pages/projectModule/projectDetail/projectDetail.js index 312ff02..4ce87ce 100644 --- a/pages/projectModule/projectDetail/projectDetail.js +++ b/pages/projectModule/projectDetail/projectDetail.js @@ -1,5 +1,6 @@ const { baseUrl } = require('../../../request'); import { globalImgUrl } from '../../../request'; +import { decodeBase64 } from '../../../utils/decodebase64' Page({ data: { @@ -55,10 +56,10 @@ Page({ notificationList: detail.projectNotificationVOList || [], settlementDetailList: detail.projectAllDetailVOList || [], promoCodeList: detail.promoCodeApplyVOList || [], - settlementDesc: this.decode64(detail.settlementDesc), - projectDesc: this.decode64(detail.projectDesc), - projectFlow: this.decode64(detail.projectFlow), - projectDescription: this.decode64(detail.projectDescription) + settlementDesc: decodeBase64(detail.settlementDesc), + projectDesc: decodeBase64(detail.projectDesc), + projectFlow: decodeBase64(detail.projectFlow), + projectDescription: decodeBase64(detail.projectDescription) }); } else { wx.showToast({ @@ -76,13 +77,6 @@ Page({ }); }, - // base64转为字符串 - decode64(text) { - var decoder = new TextDecoder(); - return new TextDecoder().decode(Uint8Array.from(atob(text), (c) => c.charCodeAt(0))); - // return decodeURIComponent(escape(String.fromCharCode(...[text]))); - }, - switchTab(e) { const idx = +e.currentTarget.dataset.index; this.setData({ activeTab: idx }); diff --git a/utils/decodebase64.js b/utils/decodebase64.js new file mode 100644 index 0000000..00a70ae --- /dev/null +++ b/utils/decodebase64.js @@ -0,0 +1,58 @@ +function decodeBase64(base64Str) { + try { + // 第一步:先 URL 解码(解决 %2B、%3D 等问题) + const urlDecoded = decodeURIComponent(base64Str); + + // 第二步:处理 Base64 字符(替换 URL 安全字符) + let safeBase64 = urlDecoded + .replace(/-/g, "+") + .replace(/_/g, "/") + .replace(/\s/g, ""); + + // 补全等号 + const pad = safeBase64.length % 4; + safeBase64 = safeBase64.padEnd( + safeBase64.length + (pad ? 4 - pad : 0), + "=" + ); + + // 第三步:使用微信小程序提供的 base64 解码函数 + const arrayBuffer = wx.base64ToArrayBuffer(safeBase64); + const bytes = new Uint8Array(arrayBuffer); + + // 第四步:手动 UTF-8 解码 + let utf8Str = ""; + let i = 0; + while (i < bytes.length) { + const byte = bytes[i]; + if (byte < 0x80) { + utf8Str += String.fromCharCode(byte); + i++; + } else if (byte < 0xe0) { + utf8Str += String.fromCharCode( + ((byte & 0x1f) << 6) | (bytes[i + 1] & 0x3f) + ); + i += 2; + } else if (byte < 0xf0) { + utf8Str += String.fromCharCode( + ((byte & 0x0f) << 12) | + ((bytes[i + 1] & 0x3f) << 6) | + (bytes[i + 2] & 0x3f) + ); + i += 3; + } else { + // 四字节字符跳过 + i += 4; + } + } + + return utf8Str; + } catch (e) { + console.error("Base64解码失败:", e); + return "

内容解析错误

"; + } +} + +module.exports = { + decodeBase64 +}; diff --git a/utils/util.js b/utils/util.js index 65c55d3..dc98657 100644 --- a/utils/util.js +++ b/utils/util.js @@ -20,29 +20,40 @@ const formatPassword = (pwd , currentPwd) => { title: '密码不能为空', icon: 'error' }) - return; + return false; } - if (pwd.length < 6) { + if (pwd.length < 6 || pwd.length > 10) { wx.showToast({ - title: '密码不能小于6位', + title: '密码长度必须在6-10位', icon: 'error' }) - return; + return false; } if (currentPwd === '') { wx.showToast({ title: '请输入二次确认密码', icon: 'error' }) - return; + return false; } if (currentPwd !== pwd) { wx.showToast({ title: '两次密码不一致', icon: 'error' }) - return; + return false; } + // 纪文昊写的 密码必须包含字母和数字 + const hasLetter = /[a-zA-z]/.test(pwd); + const hasNumber = /[0-9]/.test(pwd); + if (!hasLetter || !hasNumber) { + wx.showToast({ + title: '密码必须包含字母和数字', + icon: 'none' + }) + return false; + } + return true; } module.exports = {