diff --git a/packages/course/detail.vue b/packages/course/detail.vue index 15cad5e..29c7333 100644 --- a/packages/course/detail.vue +++ b/packages/course/detail.vue @@ -27,6 +27,14 @@ 我要报名 + + + + + + {{ info.url_title }} + + @@ -242,6 +250,15 @@ url: '/packages/register/index?id=' + this.course_id }) }, + + // 打开webview页面 + openWebview() { + if (this.info.url) { + uni.navigateTo({ + url: `/packages/webview/index?type=3&url=${this.info.url}` + }) + } + }, } @@ -338,6 +355,43 @@ } } + .floating-btn { + position: fixed; + bottom: 180rpx; + right: 0rpx; + z-index: 10; + width: 100%; + display: flex; + justify-content: center; + .url-container { + width: 614rpx; + height: 172rpx; + position: relative; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + padding: 23rpx 100rpx 40rpx 50rpx; + + .url-bg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1; + } + + .url-text { + font-size: 27rpx; + color: #28499a; + text-align: left; + position: relative; + z-index: 2; + } + } + } + .modal { ::v-deep .u-drawer-bottom { border-radius: 40rpx; diff --git a/packages/courseCalendar/index.vue b/packages/courseCalendar/index.vue index b8f8d50..fbc35af 100644 --- a/packages/courseCalendar/index.vue +++ b/packages/courseCalendar/index.vue @@ -55,8 +55,8 @@ {{ ev.title }} - {{ getCourseTypeName(ev.type) }} - | {{ formatDateTimeRange(ev.start_time, ev.end_time) }} + + {{ formatDateTimeRange(ev.start_time, ev.end_time) }} @@ -78,10 +78,10 @@ - + 开始时间 {{ formatDateTime(detailData.start_time) }} @@ -233,33 +233,16 @@ export default { }, showCourseDetail(ev) { // 跳转逻辑: - // type=1 课程: - // - 有 end_time 且当前时间 <= end_time:跳课程详情 packages/course/detail?id=course_id - // - 否则:若 url 有值跳 webview;否则跳课程详情 + // type=1 课程:直接跳转课程详情页面 // type=3 自定义事件:弹出详情,使用 v-html 渲染 content // type=4 资讯:跳 webview const type = ev.type if (type === 1) { - const now = new Date() - const end = ev.end_time ? this.parseDateTime(ev.end_time) : null - const inTime = end ? (now.getTime() <= end.getTime()) : true - if (inTime) { - if (ev.course_id) { - uni.navigateTo({ url: `/packages/course/detail?id=${ev.course_id}` }) - return - } - } - // 超时或无 end_time:优先 url - if (ev.url) { - const encoded = ev.url - uni.navigateTo({ url: `/packages/webview/index?type=3&url=${encoded}` }) - return - } if (ev.course_id) { uni.navigateTo({ url: `/packages/course/detail?id=${ev.course_id}` }) return } - // 兜底:弹窗 + // 没有 course_id 则弹窗兜底 this.detailData = ev this.showDetail = true return diff --git a/packages/library/index.vue b/packages/library/index.vue index baa4223..e3e2d69 100644 --- a/packages/library/index.vue +++ b/packages/library/index.vue @@ -102,7 +102,6 @@ // 加载分类数据 loadCategories() { this.$u.api.bookOther().then(res => { - console.log('分类接口返回数据:', res); if (res && res.category) { // 构建分类列表,第一个是"全部" const categories = [{ @@ -112,16 +111,24 @@ }]; // 处理返回的分类数据(对象格式:{id: name}) - if (typeof res.category === 'object' && !Array.isArray(res.category)) { - Object.keys(res.category).forEach(categoryId => { - const categoryName = res.category[categoryId]; - categories.push({ - name: categoryName, - value: categoryName, - id: categoryId - }); + // if (typeof res.category === 'object' && !Array.isArray(res.category)) { + // Object.keys(res.category).forEach(categoryId => { + // const categoryName = res.category[categoryId]; + // categories.push({ + // name: categoryName, + // value: categoryName, + // id: categoryId + // }); + // }); + // } + res.category.map((item,index) => { + console.log(item,index) + categories.push({ + name: item, + value: item, + id: index }); - } + }); this.tabsList = categories; console.log('设置分类列表:', this.tabsList); @@ -156,7 +163,7 @@ // 添加分类筛选 if (this.currentTab > 0 && this.tabsList[this.currentTab]) { - params.category = this.tabsList[this.currentTab].id; + params.category = this.tabsList[this.currentTab].name; console.log('使用分类筛选:', this.tabsList[this.currentTab]); } diff --git a/packages/sign/index.vue b/packages/sign/index.vue index 513e4f0..44fc8ab 100644 --- a/packages/sign/index.vue +++ b/packages/sign/index.vue @@ -156,8 +156,16 @@ export default { const res = await this.$u.api.myCourseContent({ date: this.course.date }); - this.courseContentList = res.list.filter(item => item.id != this.course.id) + // 检查返回的数据是否为空 + if (!res.list || res.list.length === 0) { + // 如果没有课程数据,禁用签到按钮 + this.canCheckin = false; + this.courseContentList = []; + return; + } + + this.courseContentList = res.list.filter(item => item.id != this.course.id) }, async checkPermissionAndInit() { console.log('开始检查权限...')