pan-mini/pages/category/category.vue

198 lines
4.7 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<uni-row>
<uni-col :span="4">
<view>
一级分类
</view>
</uni-col>
<uni-col :span="8">
<uni-data-select v-model="categoryParam.id" :localdata="categoryList" @change="categoryChanged"></uni-data-select>
</uni-col>
<uni-col :span="4">
<view>
二级分类:
</view>
</uni-col>
<uni-col :span="8">
<uni-data-select v-model="subCategoryParam.id" :localdata="subCategoryList" @change="subCategoryChanged"></uni-data-select>
</uni-col>
</uni-row>
<!-- 视频列表 -->
<view class="video-container">
<image-grid-simple
:imageList="list"
:columns="2"
:height="'80vh'"
@image-click="handlerClick"
@load-more-action = "queryList"
>
<!-- <template #empty>
<view class="custom-empty">
<image src="/static/images/no-videos.png" />
<text>没有找到视频内容</text>
</view>
</template> -->
</image-grid-simple>
</view>
</template>
<script>
export default {
data() {
return {
categoryParam:{
target:'all',
id:0
},
categoryList:[
{
text:'全部',
value:0
}
],
subCategoryParam:{
id:0
},
subCategoryList:[
{
text:'全部',
value:0
}
],
list:[],
pageInfo:{
index:1,
size:10,
isEnd:false,
}
}
},
onLoad() {
this.getCategory();
this.queryList();
},
methods: {
getCategory() {
// 获取分类
let param = {
index:1,
size:1000,
target:'parent'
}
try {
this.$http.get('/category/list',param).then((resp)=>{
this.categoryList = [
{
text:'全部',
value:0
}
];
resp.data?.list.forEach((item,idx)=>{
this.categoryList.push({
value:item?.id,
text:item?.name,
});
});
})
} catch(err){
console.log("query category error",err)
}
},
getSubCategory() {
// 获取分类
let param = {
index:1,
size:1000,
}
if (this.categoryParam.id === 0) {
param.target = 'sub'
} else {
param.parent_id = this.categoryParam.id
}
try {
this.$http.get('/category/list',param).then((resp)=>{
this.subCategoryList = [
{
text:'全部',
value:0
}
];
resp.data?.list.forEach((item,idx)=>{
this.subCategoryList.push({
value:item?.id,
text:item?.name,
});
});
})
} catch(err){
console.log("query category error",err)
}
},
categoryChanged(e) {
// 一级分类变更
this.getSubCategory();
this.queryList();
},
subCategoryChanged(e) {
// 一级分类变更
this.queryList();
},
queryList() {
if (this.pageInfo.isEnd) {
uni.showToast({
title: '没有更多数据了哦!^v^',
icon: 'none',
complete: () => {
console.log("no more data")
}
});
return
}
let param = {
...this.pageInfo
}
if (this.categoryParam.id === 0) {
param.target = 'all'
} else {
param.category_id = this.categoryParam.id
}
if (this.subCategoryParam.id !== 0) {
param.sub_category_id = this.subCategoryParam.id
}
try {
uni.$http.get('/resource/list',param).then((resp) => {
console.log("resp data",resp.data);
resp.data?.list.forEach((item,idx)=>{
this.list.push({
id:item?.id,
name:item?.name,
src:item?.thumb_src,
android_src:item?.android_src,
});
});
console.log("length:",this.list.length,resp.data.page.rows,resp.data.page)
if (this.list.length >= resp.data.page.rows) {
this.pageInfo.isEnd = true
} else {
this.pageInfo.isEnd = false
this.pageInfo.index++
}
})
}catch(err) {
console.log("catch query list err:",err)
}
}
}
}
</script>
<style lang="scss">
</style>