<template>
|
|
<view>
|
|
<!-- 搜索栏 -->
|
|
<view class="search">
|
|
<uv-search
|
|
v-model="keyword"
|
|
placeholder="请输入要查询的内容"
|
|
placeholderColor="#C6C6C6"
|
|
searchIconColor="#8B8B8B"
|
|
:searchIconSize="40"
|
|
:inputStyle="{
|
|
'font-family': 'PingFang SC',
|
|
'font-weight': 400,
|
|
'font-size': '28rpx',
|
|
'line-height': 1.4,
|
|
'padding': '12rpx 0',
|
|
}"
|
|
bgColor="#fff"
|
|
:showAction="false"
|
|
@search="search"
|
|
></uv-search>
|
|
</view>
|
|
|
|
<view class="section">
|
|
<view class="section-header">
|
|
<!-- todo -->
|
|
<sectionHeader :title="`直播 · 05月11日 12:00`" @showAll="jumpToLive"></sectionHeader>
|
|
</view>
|
|
<view style="padding: 0 32rpx;">
|
|
<courseLiveCard v-for="item in liveList" :key="item.id" :data="item"></courseLiveCard>
|
|
</view>
|
|
</view>
|
|
<view class="section">
|
|
<sectionHeader title="推荐课程" @showAll="jumpToRecommendCourse"></sectionHeader>
|
|
<!-- <courseRecommendView></courseRecommendView> -->
|
|
<productCustomView :type="2" :list="list" @categoryChange="onCategoryChange"></productCustomView>
|
|
</view>
|
|
<!-- todo: check -->
|
|
<!-- <view class="section section-custom">
|
|
<sectionHeader title="自选课程" @showAll="jumpToCustomCourse"></sectionHeader>
|
|
<slot name="custom"></slot>
|
|
</view> -->
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import sectionHeader from '../sectionHeader.vue'
|
|
import courseLiveCard from './courseLiveCard.vue'
|
|
import courseRecommendView from './courseRecommendView.vue'
|
|
import productCustomView from '@/pages_order/product/productCustomView.vue'
|
|
|
|
export default {
|
|
components: {
|
|
sectionHeader,
|
|
courseLiveCard,
|
|
courseRecommendView,
|
|
productCustomView,
|
|
},
|
|
data() {
|
|
return {
|
|
keyword: '',
|
|
liveList: [],
|
|
list: [],
|
|
queryParams: {
|
|
pageNo: 1,
|
|
pageSize: 10,
|
|
type: 2, // 产品类型(0营养剂,1预约,2课程)
|
|
},
|
|
}
|
|
},
|
|
created() {
|
|
// todo: fetch
|
|
this.liveList = [
|
|
{
|
|
id: '001',
|
|
url: '',
|
|
startTime: '2025-07-25 19:30:00',
|
|
},
|
|
]
|
|
|
|
this.getData()
|
|
},
|
|
methods: {
|
|
async getData() {
|
|
try {
|
|
const queryParams = {
|
|
pageNo: 1,
|
|
// todo: check
|
|
pageSize: 6,
|
|
type: 2, // 产品类型(0营养剂,1预约,2课程)
|
|
homeRecommend: 'Y',
|
|
}
|
|
this.list = (await this.$fetch('getProductList', queryParams))?.records || []
|
|
} catch (err) {
|
|
|
|
}
|
|
},
|
|
onCategoryChange(e) {
|
|
const { classId } = e || {}
|
|
|
|
if (classId) {
|
|
this.queryParams.classId = classId
|
|
} else {
|
|
delete this.queryParams.classId
|
|
}
|
|
|
|
this.queryParams.pageNo = 1
|
|
this.queryParams.pageSize = 10
|
|
this.getData()
|
|
|
|
},
|
|
// 搜素
|
|
search() {
|
|
// todo: check
|
|
uni.navigateTo({
|
|
url: `/pages_order/product/productList?type=2&search=${this.keyword}&title=课程`
|
|
})
|
|
// this.keyword = ''
|
|
},
|
|
jumpToLive() {
|
|
// todo
|
|
return
|
|
uni.navigateTo({
|
|
url: `/pages_order/product/productList?type=2&title=直播`
|
|
})
|
|
},
|
|
jumpToRecommendCourse() {
|
|
uni.navigateTo({
|
|
url: `/pages_order/product/productList?type=2&homeRecommend=Y&title=推荐课程`
|
|
})
|
|
},
|
|
// todo: check
|
|
jumpToCustomCourse() {
|
|
uni.navigateTo({
|
|
url: `/pages_order/product/productList?type=2&title=自选课程`
|
|
})
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@import '../styles/tab.scss';
|
|
|
|
</style>
|