396 lines
9.0 KiB
Vue
396 lines
9.0 KiB
Vue
|
<template>
|
|||
|
<view>
|
|||
|
<tabBar :currentPage="'pages/index/index'"></tabBar>
|
|||
|
<view class="content">
|
|||
|
<image
|
|||
|
src="../../static/image/home/fontree.png"
|
|||
|
mode=""
|
|||
|
class="logo"
|
|||
|
></image>
|
|||
|
</view>
|
|||
|
<scroll-view
|
|||
|
scroll-y
|
|||
|
@scrolltolower="onreachBottom"
|
|||
|
:refresher-enabled="true"
|
|||
|
:refresher-triggered="isrefresh"
|
|||
|
@refresherpulling="openLoading"
|
|||
|
@refresherrefresh="onRefresh"
|
|||
|
@refresherrestore="onRestore"
|
|||
|
@scroll="onScroll"
|
|||
|
:scroll-anchoring="true"
|
|||
|
refresher-background="#699A70"
|
|||
|
refresher-default-style="none"
|
|||
|
:style="'height:' + listHeight + 'px;'"
|
|||
|
:refresher-threshold="300"
|
|||
|
class="scroll"
|
|||
|
>
|
|||
|
<image
|
|||
|
src="../../static/image/home/new_line.png"
|
|||
|
mode=""
|
|||
|
class="line"
|
|||
|
v-if="showPull"
|
|||
|
></image>
|
|||
|
<image
|
|||
|
src="../../static/image/home/new_flower.png"
|
|||
|
mode=""
|
|||
|
class="flower-static"
|
|||
|
v-if="showPull"
|
|||
|
></image>
|
|||
|
<view v-for="(item, index) in listData" :key="index" class="item">
|
|||
|
<view class="box">
|
|||
|
<!-- :style="'background: url(' + item.CoverImg + ');'" -->
|
|||
|
<image
|
|||
|
:src="item.CoverImg"
|
|||
|
mode="scaleToFill"
|
|||
|
class="img"
|
|||
|
@click="goLink(item)"
|
|||
|
></image>
|
|||
|
<!-- <view class="bt-con">
|
|||
|
<view class="name">{{ item.SeriesName }}</view>
|
|||
|
<view class="des">{{ item.Desc }}</view>
|
|||
|
</view> -->
|
|||
|
<view class="description">
|
|||
|
<view class="text">
|
|||
|
<view class="name">{{ item.SeriesName }}</view>
|
|||
|
<view class="des">{{ item.Desc }}</view>
|
|||
|
</view>
|
|||
|
<view class="line-des"></view>
|
|||
|
<view
|
|||
|
class="detail"
|
|||
|
@click="goLink(item)"
|
|||
|
:style="{
|
|||
|
background:
|
|||
|
item.SeriesName === '泰丰十周年' ? '#FC4947' : '#699A70',
|
|||
|
}"
|
|||
|
>查看详情</view
|
|||
|
>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</scroll-view>
|
|||
|
<Dialog
|
|||
|
:detail="detail"
|
|||
|
:collectionsUID="collectionsUID"
|
|||
|
:num="num"
|
|||
|
:isShow="isShow"
|
|||
|
/>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
haojia
|
|||
|
<script>
|
|||
|
import Dialog from "./dialog/dialog.vue";
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
Dialog,
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
title: "Hello",
|
|||
|
fromLogin: true,
|
|||
|
listData: [],
|
|||
|
page: 1,
|
|||
|
pageSize: 10,
|
|||
|
showPull: false,
|
|||
|
isrefresh: false,
|
|||
|
listHeight: uni.getSystemInfoSync().windowHeight - 88 - 61,
|
|||
|
isShow: false,
|
|||
|
collectionsUID: "",
|
|||
|
num: "",
|
|||
|
detail: {},
|
|||
|
};
|
|||
|
},
|
|||
|
onShow() {
|
|||
|
let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
|
|||
|
let curRoute = routes[routes.length - 2];
|
|||
|
},
|
|||
|
onLoad() {
|
|||
|
this.onreachBottom();
|
|||
|
const collectionsUID = uni.getStorageSync("collectionsUID");
|
|||
|
if (collectionsUID) {
|
|||
|
this.collectionsUID = collectionsUID;
|
|||
|
}
|
|||
|
const num = uni.getStorageSync("num");
|
|||
|
if (num) {
|
|||
|
this.num = JSON.parse(num);
|
|||
|
}
|
|||
|
if (this.collectionsUID && this.num) {
|
|||
|
this.collectionsDetail();
|
|||
|
}
|
|||
|
},
|
|||
|
methods: {
|
|||
|
openLoading(e) {
|
|||
|
if (e.detail.deltaY < 0) return;
|
|||
|
this.showPull = true;
|
|||
|
this.isrefresh = true;
|
|||
|
},
|
|||
|
onRefresh(e) {
|
|||
|
if (this._freshing) return;
|
|||
|
this._freshing = true;
|
|||
|
this.isrefresh = true;
|
|||
|
setTimeout(() => {
|
|||
|
this.getData();
|
|||
|
}, 2000);
|
|||
|
},
|
|||
|
onRestore() {
|
|||
|
this.showPull = false;
|
|||
|
},
|
|||
|
onreachBottom() {
|
|||
|
this.getData();
|
|||
|
},
|
|||
|
onScroll() {
|
|||
|
this.page++;
|
|||
|
let params = {
|
|||
|
page: this.page,
|
|||
|
pageSize: this.pageSize,
|
|||
|
};
|
|||
|
uni.$u.debounce(async () => {
|
|||
|
await this.$api.series
|
|||
|
.list(params)
|
|||
|
.then((res) => {
|
|||
|
if (res.status === 0) {
|
|||
|
if (res.data.Data) {
|
|||
|
this.listData = [...this.listData, ...(res.data.Data || [])];
|
|||
|
}
|
|||
|
this.page--;
|
|||
|
} else {
|
|||
|
uni.showToast({
|
|||
|
title: this.$t("load.failed"),
|
|||
|
icon: "none",
|
|||
|
});
|
|||
|
}
|
|||
|
})
|
|||
|
.catch((err) => {
|
|||
|
uni.showToast({
|
|||
|
title: this.$t("load.failed"),
|
|||
|
icon: "none",
|
|||
|
});
|
|||
|
});
|
|||
|
}, 500);
|
|||
|
},
|
|||
|
goLink(item) {
|
|||
|
// uni.navigateTo({
|
|||
|
// url: '/pages/index/activity/index?detail=' + encodeURIComponent(JSON.stringify(item))
|
|||
|
// });
|
|||
|
console.log(1111, item);
|
|||
|
if (item.SeriesName === "泰丰十周年") {
|
|||
|
uni.navigateTo({
|
|||
|
url:
|
|||
|
"/pages/index/activeSeries/activeSeries?detail=" +
|
|||
|
encodeURIComponent(JSON.stringify(item)),
|
|||
|
});
|
|||
|
} else {
|
|||
|
uni.navigateTo({
|
|||
|
url: "/pages/index/series/series?SeriesUID=" + item.SeriesUuid,
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
async getData() {
|
|||
|
let params = {
|
|||
|
page: 1,
|
|||
|
pageSize: this.pageSize,
|
|||
|
};
|
|||
|
await this.$api.series
|
|||
|
.list(params)
|
|||
|
.then((res) => {
|
|||
|
if (res.status === 0) {
|
|||
|
this.listData = res.data.Data;
|
|||
|
/* } else {
|
|||
|
this.listData = [...this.listData, ...res.data.Data || []];
|
|||
|
} */
|
|||
|
} else {
|
|||
|
uni.showToast({
|
|||
|
title: this.$t("load.failed"),
|
|||
|
icon: "none",
|
|||
|
});
|
|||
|
}
|
|||
|
this.isrefresh = false; //触发onRestore,并关闭刷新图标
|
|||
|
this._freshing = false;
|
|||
|
})
|
|||
|
.catch((err) => {
|
|||
|
console.log(1231312312, err);
|
|||
|
uni.showToast({
|
|||
|
title: this.$t("load.failed"),
|
|||
|
icon: "none",
|
|||
|
});
|
|||
|
});
|
|||
|
},
|
|||
|
async collectionsDetail() {
|
|||
|
if (uni.getStorageSync("collectionsDetail")) {
|
|||
|
await this.$api.series
|
|||
|
.collectionsDetail({
|
|||
|
collectionsUID: this.collectionsUID,
|
|||
|
num: this.num,
|
|||
|
})
|
|||
|
.then((res) => {
|
|||
|
if (res.status === 0) {
|
|||
|
this.detail = res.data;
|
|||
|
this.isShow = true;
|
|||
|
uni.setStorageSync("collectionsDetail", false);
|
|||
|
} else {
|
|||
|
this.$common.msgToast(res.msg, null, "error");
|
|||
|
}
|
|||
|
})
|
|||
|
.catch((err) => {
|
|||
|
uni.showToast({
|
|||
|
title: this.$t("load.failed"),
|
|||
|
icon: "none",
|
|||
|
});
|
|||
|
});
|
|||
|
}
|
|||
|
},
|
|||
|
},
|
|||
|
};
|
|||
|
</script>
|
|||
|
|
|||
|
<style lang="scss">
|
|||
|
page {
|
|||
|
background: url("@/static/image/home/new_bg.png") no-repeat;
|
|||
|
background-size: 100% 100%;
|
|||
|
background-attachment: fixed;
|
|||
|
height: 100vh;
|
|||
|
}
|
|||
|
|
|||
|
/deep/ .uni-scroll-view-refresher {
|
|||
|
max-height: 250rpx;
|
|||
|
}
|
|||
|
|
|||
|
/deep/ .uni-scroll-view {
|
|||
|
overflow-y: auto !important;
|
|||
|
}
|
|||
|
|
|||
|
.content {
|
|||
|
height: 122rpx;
|
|||
|
background: #ffffff;
|
|||
|
|
|||
|
// padding-top: 300rpx;
|
|||
|
// border: 1px solid red;
|
|||
|
.logo {
|
|||
|
width: 188rpx;
|
|||
|
height: 56rpx;
|
|||
|
margin-top: 36rpx;
|
|||
|
margin-left: 48rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.line {
|
|||
|
width: 2rpx;
|
|||
|
height: 164rpx;
|
|||
|
position: absolute;
|
|||
|
left: 50%;
|
|||
|
top: 0;
|
|||
|
transform: translateX(-50%);
|
|||
|
}
|
|||
|
|
|||
|
.flower-static {
|
|||
|
width: 43rpx;
|
|||
|
height: 43rpx;
|
|||
|
position: absolute;
|
|||
|
left: 47%;
|
|||
|
top: 167rpx;
|
|||
|
animation: fadenum 1s infinite;
|
|||
|
}
|
|||
|
|
|||
|
@keyframes fadenum {
|
|||
|
100% {
|
|||
|
transform: rotate(360deg);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.item {
|
|||
|
margin-bottom: 40rpx;
|
|||
|
}
|
|||
|
|
|||
|
.box {
|
|||
|
width: 656rpx;
|
|||
|
height: 814rpx;
|
|||
|
margin: 0 48rpx;
|
|||
|
display: flex;
|
|||
|
flex-direction: column;
|
|||
|
|
|||
|
.img {
|
|||
|
width: 656rpx;
|
|||
|
height: 656rpx;
|
|||
|
}
|
|||
|
|
|||
|
// .bt-con {
|
|||
|
// position: absolute;
|
|||
|
// bottom: 0;
|
|||
|
// width: 656rpx;
|
|||
|
// height: 158rpx;
|
|||
|
// background: rgba(255, 255, 255, 0.3);
|
|||
|
|
|||
|
// //
|
|||
|
// .name {
|
|||
|
// font-size: 32rpx;
|
|||
|
// border-bottom: 1rpx solid #fff;
|
|||
|
// margin: 28rpx 50rpx 0 50rpx;
|
|||
|
// text-align: center;
|
|||
|
// padding-bottom: 10rpx;
|
|||
|
// }
|
|||
|
|
|||
|
// .des {
|
|||
|
// padding-top: 10rpx;
|
|||
|
// font-size: 20rpx;
|
|||
|
// text-align: center;
|
|||
|
// overflow: hidden;
|
|||
|
// text-overflow: ellipsis;
|
|||
|
// white-space: nowrap;
|
|||
|
// }
|
|||
|
// }
|
|||
|
.description {
|
|||
|
width: 656rpx;
|
|||
|
height: 158rpx;
|
|||
|
// border: 1px solid red;
|
|||
|
box-sizing: border-box;
|
|||
|
padding: 18px 11px 18px 11px;
|
|||
|
display: flex;
|
|||
|
justify-content: center;
|
|||
|
align-items: center;
|
|||
|
background-color: #ffffff;
|
|||
|
border-bottom-left-radius: 8rpx;
|
|||
|
border-bottom-right-radius: 8rpx;
|
|||
|
|
|||
|
.text {
|
|||
|
flex: 1;
|
|||
|
|
|||
|
.name {
|
|||
|
font-size: 32rpx;
|
|||
|
color: #000000;
|
|||
|
font-family: "Songti TC";
|
|||
|
font-weight: 500;
|
|||
|
margin-bottom: 2px;
|
|||
|
overflow: hidden;
|
|||
|
white-space: nowrap;
|
|||
|
text-overflow: ellipsis;
|
|||
|
}
|
|||
|
|
|||
|
.des {
|
|||
|
margin-right: 28rpx;
|
|||
|
font-size: 20rpx;
|
|||
|
color: #939393;
|
|||
|
overflow: hidden;
|
|||
|
text-overflow: ellipsis;
|
|||
|
display: -webkit-box;
|
|||
|
-webkit-line-clamp: 2;
|
|||
|
-webkit-box-orient: vertical;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
.line-des {
|
|||
|
width: 1rpx;
|
|||
|
height: 114rpx;
|
|||
|
background-color: #d8d8d8;
|
|||
|
}
|
|||
|
|
|||
|
.detail {
|
|||
|
background: #699a70;
|
|||
|
padding: 12rpx 40rpx;
|
|||
|
border-radius: 8rpx;
|
|||
|
text-align: center;
|
|||
|
margin-left: 19px;
|
|||
|
font-size: 28rpx;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|