Compare commits

..

1 Commits

Author SHA1 Message Date
a1d21c67b8 commission--yt-commit 2025-06-30 13:12:06 +08:00
5 changed files with 79 additions and 36 deletions

View File

@ -1,7 +1,7 @@
{ {
"pages": [ "pages": [
"pages/personCenter/mine/mine",
"pages/loginModule/pwdLogin/pwdLogin", "pages/loginModule/pwdLogin/pwdLogin",
"pages/personCenter/mine/mine",
"pages/loginModule/agreement/agreement", "pages/loginModule/agreement/agreement",
"pages/loginModule/privacyPolicy/privacyPolicy", "pages/loginModule/privacyPolicy/privacyPolicy",
"pages/personCenter/subCommissionSetting/subCommissionSetting", "pages/personCenter/subCommissionSetting/subCommissionSetting",

View File

@ -1,9 +1,40 @@
import { baseUrl } from "../../../request";
import { decodeBase64 } from "../../../utils/decodebase64";
// pages/course/courseDetail/courseDetail.js // pages/course/courseDetail/courseDetail.js
Page({ Page({
data: { data: {
items: [null, null, null,null, null, null], chapterList: [null, null, null,null, null, null], // 章节目录
activeTab: 'intro', // 默认选中“课程简介” activeTab: 'intro', // 默认选中“课程简介”
activeIndex: null, // 默认没有任何标题被选中 activeIndex: null, // 默认没有任何标题被选中
cid: 0, // 课程ID
courseObj: '', // 课程对象
richText: '', // 课程概述富文本
},
// 获取课程详情
getCourseDetail() {
const cid = this.data.cid;
wx.request({
url: baseUrl + '/course/query/id',
method: 'POST',
data: {
id: cid
},
header: {
Authorization :wx.getStorageSync('token'),
},
success : res => {
console.log(res);
if (res.data.code === 1) {
this.setData({
courseObj: res.data.data,
chapterList: res.data.data.courseChapters,
richText: decodeBase64(res.data.data.detail)
})
}
}
})
}, },
/** 切换选项卡 */ /** 切换选项卡 */
@ -40,7 +71,13 @@ Page({
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad(options) {}, onLoad(options) {
console.log(options);
this.setData({
cid: options.id,
})
this.getCourseDetail()
},
onReady() {}, onReady() {},

View File

@ -1,18 +1,8 @@
<view class="flex-col page"> <view class="flex-col page">
<view class="flex-col"> <view class="flex-col">
<!-- 背景 + 支付信息 --> <!-- 背景 -->
<view class="flex-col justify-start section"> <view class="flex-col section">
<view class="flex-col section_2"> <image class="background-image" src="https://img.picui.cn/free/2025/06/26/685cc80000461.png" />
<view class="flex-row items-baseline self-start no-wrap">
<text class="shrink-0 font">券后支付</text>
<text class="shrink-0 font_2 text text_2 mx-15">168元</text>
<text class="flex-1 font">即可观看所有视频</text>
</view>
<view class="mt-18 flex-col justify-start items-center self-center text-wrapper" bind:tap="gotoCourseOrder" data-id="{{ '1' }}">
<text class="font_3 text_3">立即购买</text>
</view>
</view>
</view> </view>
<!-- 选项卡 --> <!-- 选项卡 -->
@ -27,15 +17,15 @@
<view class="flex-col section_4"> <view class="flex-col section_4">
<view class="flex-row items-center group_4"> <view class="flex-row items-center group_4">
<view class="shrink-0 group_5"> <view class="shrink-0 group_5">
<text class="text_6">168</text> <text class="text_6">{{ courseObj.originPrice }}</text>
<text class="font_3 text_7">元券后价</text> <text class="font_3 text_7">元券后价</text>
</view> </view>
<view class="ml-4 flex-col justify-start items-start shrink-0 relative group_6"> <view class="ml-4 flex-col justify-start items-start shrink-0 relative group_6">
<text class="font_2 text text_8">268元</text> <text class="font_2 text text_8">{{ courseObj.discountPrice }}元</text>
<view class="divider pos"></view> <view class="divider pos"></view>
</view> </view>
</view> </view>
<text class="group_4 text_9 mt-9">【早鸟42折】掌握CAD技能+++++++实战工作训练营</text> <text class="group_4 text_9 mt-9">{{ courseObj.name }}</text>
</view> </view>
<!-- 课程概述(仅当 activeTab==='intro' --> <!-- 课程概述(仅当 activeTab==='intro' -->
@ -44,26 +34,26 @@
<image class="image" src="./image/cal.png" /> <image class="image" src="./image/cal.png" />
<text class="ml-6 font_2 text_10">课程概述</text> <text class="ml-6 font_2 text_10">课程概述</text>
</view> </view>
<view class="section_6"></view> <rich-text class="section_6" nodes="{{richText}}"></rich-text>
</view> </view>
<!-- 课程目录(仅当 activeTab==='catalog' --> <!-- 课程目录(仅当 activeTab==='catalog' -->
<view wx:if="{{activeTab==='catalog'}}" class="flex-col mt-35"> <view wx:if="{{activeTab==='catalog'}}" class="flex-col mt-35">
<view class="flex-col section_7"> <view class="flex-col section_7">
<view class="flex-col list"> <view class="flex-col list">
<view class="flex-col list-item mt-15" wx:for="{{items}}" wx:for-item="item" wx:for-index="index" wx:key="index"> <view class="flex-col list-item mt-15" wx:for="{{chapterList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
<view class="flex-col justify-start self-end text-wrapper_2"> <!-- <view class="flex-col justify-start self-end text-wrapper_2">
<text class="font_4 text_11">全集试看</text> <text class="font_4 text_11">全集试看</text>
</view> </view> -->
<view class="flex-row self-start group_8 mt-1"> <view class="flex-row self-start group_8 mt-1">
<text class="shrink-0 self-start font_5 text_12">{{ index + 1}}</text> <text class="shrink-0 self-start font_5 text_12">{{ index + 1}}</text>
<text class="ml-16 flex-1 font_2 {{activeIndex === index ? 'active-title' : ''}}" bindtap="selectCourse" data-index="{{index}}"> <text class="ml-16 flex-1 font_2 {{activeIndex === index ? 'active-title' : ''}}" bindtap="selectCourse" data-index="{{index}}">
推荐片:带你透视中国基层干部的生态图景推荐片:带你透视中国基层干部的生态图景 {{ item.name }}
</text> </text>
</view> </view>
<view class="flex-row justify-between self-stretch group_9 mt-1"> <view class="flex-row justify-between self-stretch group_9 mt-1">
<text class="self-start font_6 text_13" style="margin-top: 10rpx;">视频课·27分59秒</text> <!-- <text class="self-start font_6 text_13" style="margin-top: 10rpx;">视频课·27分59秒</text> -->
<image class="image_2" src="./image/lock.png" /> <!-- <image class="image_2" src="./image/lock.png" /> -->
</view> </view>
</view> </view>
</view> </view>
@ -86,4 +76,4 @@
</view> </view>
</view> </view>
</view> </view>
</view> </view>

View File

@ -20,7 +20,14 @@
margin-left: 28.13rpx; margin-left: 28.13rpx;
} }
/* 页面容器 */ /* 背景图样式移至 WXML */
.background-image {
width: 100%;
height: 300rpx; /* 给图片设置固定高度或者你可以设置为100% */
object-fit: cover;
}
/* 页面样式保持不变 */
.page { .page {
background-color: #f6f7f9; background-color: #f6f7f9;
width: 100%; width: 100%;
@ -32,7 +39,6 @@
/* 背景图 */ /* 背景图 */
.section { .section {
background-image: url('https://ide.code.fun/api/image?token=6858ee4b4ae84d0012334127&name=1f211c9a259577e8af923158ce6e4ab6.png');
background-size: 100% 100%; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
@ -152,10 +158,10 @@
.section_6 { .section_6 {
background-color: #ffffff00; background-color: #ffffff00;
height: 791.25rpx; height: 791.25rpx;
border-left: solid 1.88rpx #000000; /* border-left: solid 1.88rpx #000000;
border-right: solid 1.88rpx #000000; border-right: solid 1.88rpx #000000;
border-top: solid 1.88rpx #000000; border-top: solid 1.88rpx #000000;
border-bottom: solid 1.88rpx #000000; border-bottom: solid 1.88rpx #000000; */
} }
/* 目录列表 */ /* 目录列表 */
@ -174,7 +180,7 @@
} }
.list-item { .list-item {
padding-left: 37.5rpx; padding-left: 37.5rpx;
padding-bottom: 18.75rpx; padding-bottom: 25.75rpx;
background-color: #f6f7f9; background-color: #f6f7f9;
border-radius: 10.63rpx; border-radius: 10.63rpx;
} }
@ -209,6 +215,7 @@
.text_12 { .text_12 {
margin-top: 0; /* 垂直居中序号 */ margin-top: 0; /* 垂直居中序号 */
align-self: center !important; align-self: center !important;
padding-top: 32rpx;
} }
.font_2 { .font_2 {
font-size: 26.25rpx; font-size: 26.25rpx;
@ -223,6 +230,7 @@
} }
.text_8 { .text_8 {
color: #8c8c8c; color: #8c8c8c;
width: 100rpx;
} }
.text_2 { .text_2 {
color: #ff8d1a; color: #ff8d1a;

View File

@ -1,4 +1,5 @@
import { baseUrl } from "../../../request"; import { baseUrl } from "../../../request";
const { globalImgUrl } = require("../../../request")
// pages/course/homepage/homepage.js // pages/course/homepage/homepage.js
Page({ Page({
@ -31,10 +32,9 @@ Page({
}); });
}, },
/** // 获取热门课程
* 生命周期函数--监听页面加载
*/ getCourseList() {
onLoad(options) {
// 请求后端接口 // 请求后端接口
wx.request({ wx.request({
url: baseUrl + '/course/query/hot', // ← 替换为真实接口 url: baseUrl + '/course/query/hot', // ← 替换为真实接口
@ -44,6 +44,7 @@ Page({
}, },
success: (res) => { success: (res) => {
if (res.data.code === 1) { if (res.data.code === 1) {
console.log('课程列表---->',res.data.data);
// 将后端的 data 数组绑定到 items // 将后端的 data 数组绑定到 items
this.setData({ this.setData({
courseList: res.data.data courseList: res.data.data
@ -64,6 +65,13 @@ Page({
}); });
}, },
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getCourseList()
},
/** /**
* 生命周期函数--监听页面初次渲染完成 * 生命周期函数--监听页面初次渲染完成
*/ */