lion 4 months ago
parent d21df92d85
commit 9542d6812f

@ -27,6 +27,14 @@
<text>我要报名</text> <text>我要报名</text>
</view> </view>
</view> </view>
<!-- 悬浮按钮当不可报名且有url时显示 -->
<view class="floating-btn" v-if="info.sign_status !== 10 && info.url && info.url_title">
<view @click="openWebview" class="url-container">
<image class="url-bg" :src="base.imgHost('urlbtn.png')" mode="aspectFill"></image>
<text class="url-text">{{ info.url_title }}</text>
</view>
</view>
</view> </view>
@ -243,6 +251,15 @@
}) })
}, },
// 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 { .modal {
::v-deep .u-drawer-bottom { ::v-deep .u-drawer-bottom {
border-radius: 40rpx; border-radius: 40rpx;

@ -55,8 +55,8 @@
<view class="event-info"> <view class="event-info">
<view class="event-title">{{ ev.title }}</view> <view class="event-title">{{ ev.title }}</view>
<view class="event-meta"> <view class="event-meta">
<text>{{ getCourseTypeName(ev.type) }}</text> <!-- <text>{{ getCourseTypeName(ev.type) }}</text> -->
<text> | {{ formatDateTimeRange(ev.start_time, ev.end_time) }}</text> <text>{{ formatDateTimeRange(ev.start_time, ev.end_time) }}</text>
</view> </view>
</view> </view>
</view> </view>
@ -78,10 +78,10 @@
</view> </view>
<view class="modal-body"> <view class="modal-body">
<view class="course-info"> <view class="course-info">
<view class="info-item"> <!-- <view class="info-item">
<text class="info-label">日程类型</text> <text class="info-label">日程类型</text>
<text class="info-value">{{ getCourseTypeName(detailData.type) }}</text> <text class="info-value">{{ getCourseTypeName(detailData.type) }}</text>
</view> </view> -->
<view class="info-item"> <view class="info-item">
<text class="info-label">开始时间</text> <text class="info-label">开始时间</text>
<text class="info-value">{{ formatDateTime(detailData.start_time) }}</text> <text class="info-value">{{ formatDateTime(detailData.start_time) }}</text>
@ -233,33 +233,16 @@ export default {
}, },
showCourseDetail(ev) { showCourseDetail(ev) {
// //
// type=1 // type=1
// - end_time <= end_time packages/course/detail?id=course_id
// - url webview
// type=3 使 v-html content // type=3 使 v-html content
// type=4 webview // type=4 webview
const type = ev.type const type = ev.type
if (type === 1) { 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) { if (ev.course_id) {
uni.navigateTo({ url: `/packages/course/detail?id=${ev.course_id}` }) uni.navigateTo({ url: `/packages/course/detail?id=${ev.course_id}` })
return return
} }
// // course_id
this.detailData = ev this.detailData = ev
this.showDetail = true this.showDetail = true
return return

@ -102,7 +102,6 @@
// //
loadCategories() { loadCategories() {
this.$u.api.bookOther().then(res => { this.$u.api.bookOther().then(res => {
console.log('分类接口返回数据:', res);
if (res && res.category) { if (res && res.category) {
// "" // ""
const categories = [{ const categories = [{
@ -112,16 +111,24 @@
}]; }];
// {id: name} // {id: name}
if (typeof res.category === 'object' && !Array.isArray(res.category)) { // if (typeof res.category === 'object' && !Array.isArray(res.category)) {
Object.keys(res.category).forEach(categoryId => { // Object.keys(res.category).forEach(categoryId => {
const categoryName = res.category[categoryId]; // const categoryName = res.category[categoryId];
categories.push({ // categories.push({
name: categoryName, // name: categoryName,
value: categoryName, // value: categoryName,
id: categoryId // id: categoryId
}); // });
// });
// }
res.category.map((item,index) => {
console.log(item,index)
categories.push({
name: item,
value: item,
id: index
}); });
} });
this.tabsList = categories; this.tabsList = categories;
console.log('设置分类列表:', this.tabsList); console.log('设置分类列表:', this.tabsList);
@ -156,7 +163,7 @@
// //
if (this.currentTab > 0 && this.tabsList[this.currentTab]) { 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]); console.log('使用分类筛选:', this.tabsList[this.currentTab]);
} }

@ -156,8 +156,16 @@ export default {
const res = await this.$u.api.myCourseContent({ const res = await this.$u.api.myCourseContent({
date: this.course.date 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() { async checkPermissionAndInit() {
console.log('开始检查权限...') console.log('开始检查权限...')

Loading…
Cancel
Save