|
@@ -13,9 +13,12 @@
|
|
|
|
|
|
|
|
<!-- 我的档案 -->
|
|
<!-- 我的档案 -->
|
|
|
<view class="status-card">
|
|
<view class="status-card">
|
|
|
- <view class="status-row">
|
|
|
|
|
|
|
+ <view class="status-row" @click="goTo('/pages/verify/index')">
|
|
|
<text class="status-label">校友校验</text>
|
|
<text class="status-label">校友校验</text>
|
|
|
- <text :class="['status-value', verifyClass]">{{ verifyLabel }}</text>
|
|
|
|
|
|
|
+ <view class="status-value-wrap">
|
|
|
|
|
+ <text :class="['status-value', verifyClass]">{{ verifyLabel }}</text>
|
|
|
|
|
+ <text class="status-arrow">›</text>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
<view class="status-row">
|
|
<view class="status-row">
|
|
|
<text class="status-label">我的班级</text>
|
|
<text class="status-label">我的班级</text>
|
|
@@ -46,31 +49,6 @@
|
|
|
<text class="growth-guide-text">登录后查看我的成长档案</text>
|
|
<text class="growth-guide-text">登录后查看我的成长档案</text>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <!-- 日常服务 -->
|
|
|
|
|
- <view class="section-title">日常服务</view>
|
|
|
|
|
- <view class="nav-grid">
|
|
|
|
|
- <view class="nav-item" @click="switchToTab('/pages/course/index')">
|
|
|
|
|
- <text class="nav-icon">📚</text>
|
|
|
|
|
- <text class="nav-text">课程</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="nav-item" @click="goTo('/pages/enroll/list')">
|
|
|
|
|
- <text class="nav-icon">🎫</text>
|
|
|
|
|
- <text class="nav-text">报名中心</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="nav-item" @click="goTo('/pages/survey/index')">
|
|
|
|
|
- <text class="nav-icon">📝</text>
|
|
|
|
|
- <text class="nav-text">兴趣调研</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="nav-item" @click="goTo('/pages/verify/index')">
|
|
|
|
|
- <text class="nav-icon">🎓</text>
|
|
|
|
|
- <text class="nav-text">校友校验</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <view class="nav-item" @click="goTo('/pages/salon/list')">
|
|
|
|
|
- <text class="nav-icon">🎨</text>
|
|
|
|
|
- <text class="nav-text">沙龙</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- </view>
|
|
|
|
|
-
|
|
|
|
|
<!-- 平台动态 -->
|
|
<!-- 平台动态 -->
|
|
|
<view class="section-title">平台动态</view>
|
|
<view class="section-title">平台动态</view>
|
|
|
<view class="dynamic-list" v-if="dynamics.length">
|
|
<view class="dynamic-list" v-if="dynamics.length">
|
|
@@ -99,6 +77,23 @@
|
|
|
</swiper-item>
|
|
</swiper-item>
|
|
|
</swiper>
|
|
</swiper>
|
|
|
|
|
|
|
|
|
|
+ <!-- 沙龙 -->
|
|
|
|
|
+ <view class="section-title">沙龙</view>
|
|
|
|
|
+ <view class="course-mini-list">
|
|
|
|
|
+ <view class="course-mini-card" v-for="(s, idx) in salonNews" :key="idx" @click="goSalon(s)">
|
|
|
|
|
+ <view class="course-mini-head">
|
|
|
|
|
+ <text class="course-mini-level">{{ mapTheme(s.theme) }}</text>
|
|
|
|
|
+ <text class="course-mini-name">{{ s.title }}</text>
|
|
|
|
|
+ <text class="course-mini-status" :class="s.num <= 0 ? 'st-finished' : 'st-upcoming'">{{ s.num <= 0 ? '已满' : '可报名' }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <text class="course-mini-desc">{{ formatDateTime(s.time) }} · {{ s.place }}</text>
|
|
|
|
|
+ <text class="course-mini-desc">余 {{ s.num }}/{{ s.capacity }} 位</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="course-mini-empty" v-if="!salonNews.length && isLoggedIn">
|
|
|
|
|
+ <text class="course-mini-empty-text">暂无沙龙活动</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
<!-- 最近课程 -->
|
|
<!-- 最近课程 -->
|
|
|
<view class="section-title">最近课程</view>
|
|
<view class="section-title">最近课程</view>
|
|
|
<view class="course-mini-list">
|
|
<view class="course-mini-list">
|
|
@@ -304,23 +299,11 @@ export default {
|
|
|
}).catch(function() {})
|
|
}).catch(function() {})
|
|
|
},
|
|
},
|
|
|
buildDynamics() {
|
|
buildDynamics() {
|
|
|
- // 平台动态 = 沙龙(可报名,最多 2 条)+ 进行中/未开始课程(最多 2 条)
|
|
|
|
|
|
|
+ // 平台动态 = 进行中/未开始课程(最多 3 条);沙龙已独立成区块,避免重复
|
|
|
var self = this
|
|
var self = this
|
|
|
var arr = []
|
|
var arr = []
|
|
|
- var salons = this.salonNews || []
|
|
|
|
|
- for (var i = 0; i < salons.length && arr.length < 2; i++) {
|
|
|
|
|
- var s = salons[i]
|
|
|
|
|
- arr.push({
|
|
|
|
|
- type: 'salon',
|
|
|
|
|
- tag: self.mapTheme(s.theme),
|
|
|
|
|
- tagClass: 'dynamic-tag-salon',
|
|
|
|
|
- title: s.title,
|
|
|
|
|
- desc: formatDateTime(s.time) + ' · ' + (s.place || '') + ' · 余 ' + s.num + '/' + s.capacity,
|
|
|
|
|
- url: '/pages/salon/list'
|
|
|
|
|
- })
|
|
|
|
|
- }
|
|
|
|
|
var courses = this.recentCourses || []
|
|
var courses = this.recentCourses || []
|
|
|
- for (var j = 0; j < courses.length && arr.length < 4; j++) {
|
|
|
|
|
|
|
+ for (var j = 0; j < courses.length && arr.length < 3; j++) {
|
|
|
var c = courses[j]
|
|
var c = courses[j]
|
|
|
if (c.effectiveStatus !== 'active' && c.effectiveStatus !== 'upcoming') continue
|
|
if (c.effectiveStatus !== 'active' && c.effectiveStatus !== 'upcoming') continue
|
|
|
arr.push({
|
|
arr.push({
|
|
@@ -352,6 +335,9 @@ export default {
|
|
|
if (!c || !c.id) return
|
|
if (!c || !c.id) return
|
|
|
uni.navigateTo({ url: '/pages/course/detail?courseId=' + c.id })
|
|
uni.navigateTo({ url: '/pages/course/detail?courseId=' + c.id })
|
|
|
},
|
|
},
|
|
|
|
|
+ goSalon() {
|
|
|
|
|
+ uni.navigateTo({ url: '/pages/salon/list' })
|
|
|
|
|
+ },
|
|
|
goDynamic(d) {
|
|
goDynamic(d) {
|
|
|
if (!d || !d.url) return
|
|
if (!d || !d.url) return
|
|
|
uni.navigateTo({ url: d.url })
|
|
uni.navigateTo({ url: d.url })
|
|
@@ -396,9 +382,6 @@ export default {
|
|
|
},
|
|
},
|
|
|
goTo(url) {
|
|
goTo(url) {
|
|
|
uni.navigateTo({ url: url })
|
|
uni.navigateTo({ url: url })
|
|
|
- },
|
|
|
|
|
- switchToTab(url) {
|
|
|
|
|
- uni.switchTab({ url: url })
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -438,7 +421,9 @@ export default {
|
|
|
.status-row { display: flex; justify-content: space-between; padding: 14rpx 0; border-bottom: 1rpx solid #F1F5F9; }
|
|
.status-row { display: flex; justify-content: space-between; padding: 14rpx 0; border-bottom: 1rpx solid #F1F5F9; }
|
|
|
.status-row:last-child { border-bottom: none; }
|
|
.status-row:last-child { border-bottom: none; }
|
|
|
.status-label { font-size: 28rpx; color: #5A4F4B; }
|
|
.status-label { font-size: 28rpx; color: #5A4F4B; }
|
|
|
-.status-value { font-size: 28rpx; color: #2A2326; font-weight: 500; max-width: 420rpx; text-align: right; }
|
|
|
|
|
|
|
+.status-value-wrap { display: flex; align-items: center; max-width: 420rpx; }
|
|
|
|
|
+.status-value { font-size: 28rpx; color: #2A2326; font-weight: 500; max-width: 390rpx; text-align: right; }
|
|
|
|
|
+.status-arrow { font-size: 28rpx; color: #B6AA9F; margin-left: 8rpx; }
|
|
|
.val-pass { color: #22C55E; }
|
|
.val-pass { color: #22C55E; }
|
|
|
.val-pending { color: #FFB74D; }
|
|
.val-pending { color: #FFB74D; }
|
|
|
.val-fail { color: #EF5350; }
|
|
.val-fail { color: #EF5350; }
|
|
@@ -459,13 +444,8 @@ export default {
|
|
|
.growth-card-guide { display: flex; align-items: center; justify-content: center; padding: 40rpx 32rpx; }
|
|
.growth-card-guide { display: flex; align-items: center; justify-content: center; padding: 40rpx 32rpx; }
|
|
|
.growth-guide-text { font-size: 26rpx; color: #94877F; }
|
|
.growth-guide-text { font-size: 26rpx; color: #94877F; }
|
|
|
|
|
|
|
|
-/* 日常服务 */
|
|
|
|
|
|
|
+/* 区块标题 */
|
|
|
.section-title { font-size: 30rpx; font-weight: 600; color: #2A2326; margin-bottom: 16rpx; border-left: 8rpx solid #FC7A57; padding-left: 16rpx; }
|
|
.section-title { font-size: 30rpx; font-weight: 600; color: #2A2326; margin-bottom: 16rpx; border-left: 8rpx solid #FC7A57; padding-left: 16rpx; }
|
|
|
-.nav-grid { display: flex; flex-wrap: nowrap; background: #FFF; border-radius: 16rpx; overflow: hidden; margin-bottom: 24rpx; }
|
|
|
|
|
-.nav-item { flex: 1; display: flex; flex-direction: column; align-items: center; padding: 28rpx 0; }
|
|
|
|
|
-.nav-item:active { background: #F8FAFC; }
|
|
|
|
|
-.nav-icon { font-size: 44rpx; margin-bottom: 8rpx; }
|
|
|
|
|
-.nav-text { font-size: 24rpx; color: #2A2326; text-align: center; }
|
|
|
|
|
|
|
|
|
|
/* 平台动态 */
|
|
/* 平台动态 */
|
|
|
.dynamic-list { background: #FFF; border-radius: 16rpx; overflow: hidden; margin-bottom: 24rpx; }
|
|
.dynamic-list { background: #FFF; border-radius: 16rpx; overflow: hidden; margin-bottom: 24rpx; }
|
|
@@ -473,7 +453,6 @@ export default {
|
|
|
.dynamic-item:last-child { border-bottom: none; }
|
|
.dynamic-item:last-child { border-bottom: none; }
|
|
|
.dynamic-item:active { background: #FAF7F4; }
|
|
.dynamic-item:active { background: #FAF7F4; }
|
|
|
.dynamic-tag { flex-shrink: 0; font-size: 22rpx; font-weight: 600; padding: 4rpx 14rpx; border-radius: 6rpx; margin-right: 16rpx; }
|
|
.dynamic-tag { flex-shrink: 0; font-size: 22rpx; font-weight: 600; padding: 4rpx 14rpx; border-radius: 6rpx; margin-right: 16rpx; }
|
|
|
-.dynamic-tag-salon { background: #FFF0E8; color: #FC7A57; }
|
|
|
|
|
.dynamic-tag-course { background: #EEF2FF; color: #7C3AED; }
|
|
.dynamic-tag-course { background: #EEF2FF; color: #7C3AED; }
|
|
|
.dynamic-main { flex: 1; overflow: hidden; }
|
|
.dynamic-main { flex: 1; overflow: hidden; }
|
|
|
.dynamic-title { display: block; font-size: 28rpx; font-weight: 600; color: #2A2326; margin-bottom: 4rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
.dynamic-title { display: block; font-size: 28rpx; font-weight: 600; color: #2A2326; margin-bottom: 4rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|