128 lines
2.8 KiB
Vue
128 lines
2.8 KiB
Vue
|
<template>
|
||
|
<scroll-view
|
||
|
scroll-y
|
||
|
@scrolltolower="loadMore"
|
||
|
class="case-list"
|
||
|
>
|
||
|
<!-- <CaseBox v-bind="{}" @clickLike="handleClickLike" @clickCollection="clickCollection"></CaseBox> -->
|
||
|
<view class="list-itme" v-for="(item, index) in caseList" :key="item.id">
|
||
|
<CaseBox v-bind="item" @ClickLike="ClickLike" @ClickCollection="ClickCollection"></CaseBox>
|
||
|
</view>
|
||
|
<view v-if="isLoading" class="loading">
|
||
|
<up-loadmore :status="status" />
|
||
|
</view>
|
||
|
</scroll-view>
|
||
|
</template>
|
||
|
|
||
|
<script setup>
|
||
|
import {
|
||
|
onMounted,
|
||
|
reactive,ref
|
||
|
} from 'vue';
|
||
|
const app=getApp();
|
||
|
const userUtils=ref(app.globalData.utils);
|
||
|
const caseList= ref([])
|
||
|
|
||
|
/**
|
||
|
* 获取列表
|
||
|
*/
|
||
|
import { getCaseList } from '@/apis/cast.js';
|
||
|
/**
|
||
|
* 数据转换
|
||
|
*/
|
||
|
import {dataToList} from './ut/dataTo.js'
|
||
|
//点赞列表
|
||
|
import {getLikesList,addLike} from '@/apis/likes.js'
|
||
|
//收藏列表
|
||
|
import {getCollectionsList,addCollections} from "@/apis/collections.js"
|
||
|
import { onShow } from "@dcloudio/uni-app"
|
||
|
const isLoading=ref(false);
|
||
|
const status=ref("nomore");
|
||
|
const getCaseLists=async()=>{
|
||
|
let res= await getCaseList();
|
||
|
let likre=await getLikesList();
|
||
|
let cols=await getCollectionsList();
|
||
|
if(res.code==200){
|
||
|
res=res.data;
|
||
|
likre=likre.code==200?likre.data.casesLikesList:null;
|
||
|
cols=cols.code==200?cols.data.caseCollectionsList:null
|
||
|
console.log("点赞列表",likre,cols);
|
||
|
let a=dataToList(res,likre,cols);
|
||
|
caseList.value=a.slice().reverse();
|
||
|
}
|
||
|
console.log("列表",caseList.value);
|
||
|
}
|
||
|
const loadMore=async()=>{
|
||
|
status.value="loading";
|
||
|
if (isLoading.value) return;
|
||
|
isLoading.value = true;
|
||
|
const newCases = await fetchCases();
|
||
|
console.log("加载更多2...");
|
||
|
isLoading.value = false;
|
||
|
status.value = "nomore";
|
||
|
console.log("加载更多2...");
|
||
|
}
|
||
|
const ClickLike=(info)=>{
|
||
|
console.log("点赞",info)
|
||
|
let bo="0";
|
||
|
if(info.is){
|
||
|
bo="1"
|
||
|
}
|
||
|
addLike({
|
||
|
contentType:0,
|
||
|
contentId:info.id,
|
||
|
extField1:bo,
|
||
|
})
|
||
|
}
|
||
|
const updateList=()=>{
|
||
|
getCaseLists();
|
||
|
}
|
||
|
const ClickCollection=(info)=>{
|
||
|
console.log("收藏")
|
||
|
let bo="0";
|
||
|
if(info.is){
|
||
|
bo="1";
|
||
|
}
|
||
|
addCollections({
|
||
|
contentType:0,
|
||
|
contentId:info.id,
|
||
|
extField1:bo,
|
||
|
})
|
||
|
}
|
||
|
const fetchCases=()=>{
|
||
|
return new Promise((resolve) => {
|
||
|
setTimeout(() => {
|
||
|
}, 1000);
|
||
|
});
|
||
|
}
|
||
|
onMounted(()=>{
|
||
|
// getCaseLists();
|
||
|
})
|
||
|
defineExpose({
|
||
|
updateList
|
||
|
});
|
||
|
onShow(()=>{
|
||
|
getCaseLists();
|
||
|
})
|
||
|
// onShow(()=>{
|
||
|
// console.log("加入来了来了")
|
||
|
// })
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss">
|
||
|
.case-list{
|
||
|
scrollbar-width: none;
|
||
|
// height: 40vh;
|
||
|
// overflow: auto;
|
||
|
height: 100%;
|
||
|
display: flexbox;
|
||
|
flex-flow: column;
|
||
|
background-color: #e2e2e2;
|
||
|
}
|
||
|
.list-itme{
|
||
|
width: 98%;
|
||
|
height: 350rpx;
|
||
|
margin: 10rpx auto;
|
||
|
// background-color: #000;
|
||
|
}
|
||
|
</style>
|