commission--yt-commit

This commit is contained in:
2025-06-23 10:03:08 +08:00
parent 2350346d95
commit 0e20be0425
22 changed files with 553 additions and 25 deletions

View File

@ -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": "我的",

View File

@ -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() {
}
})

View File

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

View File

@ -0,0 +1,52 @@
<view class="flex-col page">
<view class="flex-col self-stretch group">
<view class="flex-row justify-center items-center section" bind:tap="gotoSearch">
<image
class="image"
src="./image/sousuo.png"
/>
<text class="text ml-3">搜索更多好课</text>
</view>
<swiper class="swiper" autoplay="true" circular="true"></swiper>
</view>
<view class="flex-row equal-division">
<view class="flex-col items-center group_2 group_1">
<image
class="image_3"
src="./image/kgky.png"
/>
<text class="font text_1 mt-12">考公考研</text>
</view>
<view class="flex-col items-center group_2 group_3">
<image
class="image_3"
src="./image/zmt.png"
/>
<text class="font text_3 mt-12">自媒体</text>
</view>
<view class="flex-col items-center group_2 group_4">
<image
class="image_3"
src="./image/cj.png"
/>
<text class="font text_4 mt-12">财经</text>
</view>
</view>
<text class="self-start text_2">热门课程</text>
<view class="flex-col self-stretch list">
<view class="flex-row relative group_5" wx:for="{{items}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="list-divider pos_3"></view>
<image
class="image_4 pos"
src="https://ide.code.fun/api/image?token=6854f3c94ae84d0012332367&name=9c2a22f14e2bd768cbd40d939693e4a8.png"
/>
<view class="flex-col group_6 pos_2">
<text class="font_2">区块链和加密数字货币(随报随学认证班)</text>
<view class="flex-row justify-between items-baseline mt-17">
<text class="font_3">券后99元起</text>
<text class="font_4">18523人学习</text>
</view>
</view>
</view>
</view>
</view>

View File

@ -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;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

View File

@ -0,0 +1,66 @@
// pages/course/searchCourses/searchCourses.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

View File

@ -0,0 +1,26 @@
<!--pages/course/searchCourses/searchCourses.wxml-->
<view class="flex-col page">
<view class="flex-row items-center section">
<image
class="image"
src="https://ide.code.fun/api/image?token=6854f3c94ae84d0012332367&name=f2d91149603a9b9bbd30ffd5a77c2043.png"
/>
<input class="text ml-3" placeholder="搜索更多好课" />
</view>
<view class="flex-col list mt-17">
<view class="flex-row relative list-item" wx:for="{{items}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="list-divider pos_3"></view>
<image
class="image_2 pos"
src="https://ide.code.fun/api/image?token=6854f3c94ae84d0012332367&name=9c2a22f14e2bd768cbd40d939693e4a8.png"
/>
<view class="flex-col group_2 pos_2">
<text class="font">区块链和加密数字货币(随报随学认证班)</text>
<view class="flex-row justify-between items-baseline mt-17">
<text class="font_2">券后99元起</text>
<text class="font_3">18523人学习</text>
</view>
</view>
</view>
</view>
</view>

View File

@ -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;
}

View File

@ -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()
},
/**
* 生命周期函数--监听页面隐藏

View File

@ -30,6 +30,7 @@
placeholder="请输入持卡人身份证号"
data-field="idCardNumber"
bindinput="handleInputChange"
type="idcard"
value="{{ idCardNumber }}"
/>
</view>

View File

@ -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',

View File

@ -74,7 +74,6 @@ Page({
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getAccountInfo()
},
/**

View File

@ -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;

View File

@ -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 });

58
utils/decodebase64.js Normal file
View File

@ -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 "<p>内容解析错误</p>";
}
}
module.exports = {
decodeBase64
};

View File

@ -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 = {