Files
nuttyreading-html/pages/bookShop/orderList1.vue
2023-11-20 14:11:25 +08:00

625 lines
20 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>
<view class="container">
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<view class="header">
<!-- 顶部导航栏 -->
<z-nav-bar backState="2000" title="我的订单"></z-nav-bar>
<view class="ordersTabs">
<view v-for="(item,index) in ordersTabs" @click="ordersTabCLi(item.value)" :key="index"
:class="ordersListTab==item.value?'ordersdefine ordStyle':'ordersdefine'">
{{item.name}}
<view class="ordersnum">22</view>
</view>
</view>
</view>
<!-- 站位 -->
<view class="ordersTabs" style="z-index:0;position:unset;">
<view class="ordersdefine">1</view>
</view>
<view v-if="ordersListTab == 1">
<view v-if="newList.length > 0">
<view class="orderInfo" v-for="(item,index) in newList" :key="index">
<view class="mainContent">
<view class="item" @click.stop="toDetail(item)">
<view class="orderstatus">已完成</view>
<view>
<image class="feng" v-if="item.bookimage" :src="item.bookimage" mode="aspectFill"></image>
<!-- <view class="description" v-html="item.content">
</view> -->
<view class="btns flexbox">
<span class="booknameleft">{{item.bookname}}</span>
<span class="right flexbox opbtns">
¥76
</span>
</view>
<view class="btns flexbox" style="margin-top:10rpx;padding-bottom: 72rpx;">
<span class="left" style="color: #C0C4CC;"></span>
<span class="right flexbox opbtns" style="color: #C0C4CC;">
×1
</span>
</view>
</view>
<view class="btns flexbox" style="margin-top:10rpx;">
<span class="left" style="color: #C0C4CC;"></span>
<span class="right flexbox opbtns">
<view style="color: #000;font-size:30rpx;font-weight:700;">实付款</view>
<view style="color: #000;font-size:30rpx;font-weight:700;">{{' ¥' + item.commentNum}}</view>
</span>
</view>
<view class="btns flexbox" style="margin-top:10rpx;">
<span class="left" style="color: #C0C4CC;">订单详情</span>
<span class="right flexbox opbtns">
<view style="color: #000;border:1px solid #999;border-radius: 10rpx;padding: 0 10rpx;">查看物流</view>
<view style="color: #000;border:1px solid #999;border-radius: 10rpx;padding: 0 10rpx;margin-left:20rpx;width:140rpx;text-align: center;">评价</view>
</span>
</view>
<view style="border-bottom:2rpx solid #e9e9e9;height:50rpx;" v-if="index<item.length-1"></view>
</view>
</view>
</view>
</view>
<view class="quesheng" v-else>
暂无书评内容~
</view>
</view>
<view v-if="ordersListTab == 2">
<view v-if="hotList.length > 0">
<view class="orderInfo" v-for="(item,index) in hotList" :key="index">
<view class="mainContent">
<view class="item" @click.stop="toDetail(item)">
<view class="orderstatus">{{item.title}}</view>
<image class="feng" v-if="item.bookimage" :src="item.bookimage" mode="aspectFill"></image>
<view class="description" v-html="item.content">
</view>
<view class="btns flexbox">
<span class="left">{{item.bookname}}</span>
<span class="right flexbox opbtns" style="color:#3c9cff;">
全文
</span>
</view>
<view class="btns flexbox" style="margin-top:10rpx;">
<span class="left" style="color: #C0C4CC;">{{item.createTime}}</span>
<span class="right flexbox opbtns">
<image class="gzicon" v-if="item.ilike" src="../../static/icon/gz2.png" mode="aspectFill" @click.stop="clickLike(item)"></image>
<image class="gzicon" v-else src="../../static/icon/gz.png" mode="aspectFill"></image>
<view style="color: #C0C4CC;">{{item.contlike}}</view>
<image class="gzicon" v-if="1" src="../../static/icon/pinglun.png" mode="aspectFill"></image>
<view style="color: #C0C4CC;">{{item.commentNum}}</view>
</span>
</view>
<view style="border-bottom:2rpx solid #e9e9e9;height:50rpx;" v-if="index<item.length-1"></view>
</view>
</view>
</view>
</view>
<view class="quesheng" v-else>
暂无书评内容~
</view>
</view>
<!-- <view v-if="ordersListTab == 3">
<view class="" style="padding:40rpx 20rpx;">
<view class="mytabs flexbox">
<view :class="['item','item1', contentShow == 1 ? 'active' :'']" @click="setData(1)">
已购图书
</view>
<view :class="['item','item2', contentShow == 2 ? 'active' :'']" @click="setData(2)">
推荐图书
</view>
</view>
</view>
<view v-if="bookList.length > 0">
<view class="orderInfo3" v-for="(item,index) in bookList" :key="index">
<view class="mainContent3">
<view class="item">
<view class="btns flexbox" @click.stop="toMore(item)">
<view class="title">{{item.name}}</view>
<view class="pianshuping">{{item.forumNum}}篇书评</view>
</view>
<image class="feng" v-if="item.images" :src="item.images" mode="aspectFill" @click.stop="toMore(item)"></image>
<view class="shupingList">
<view class="description" v-for="(item1,index1) in item.forums" :key="index1" @click.stop="toDetail(item1)">{{item1.title}}</view>
</view>
<view class="btns flexbox" @click.stop="toMore(item)">
<span class="left"></span>
<span class="right flexbox opbtns" style="color:#3c9cff;">
全部
</span>
</view>
</view>
</view>
</view>
</view>
<view class="quesheng" v-else>
暂无书评内容~
</view>
</view> -->
<view v-if="status==0" style="text-align: center;">
<u-loading-icon style="display: inline-block;"></u-loading-icon>
<font style='vertical-align: super;margin-left: 10px;font-size: 26rpx;color: #909399;'>努力加载中</font>
</view>
<view v-if="status==1" style="padding-bottom: 20rpx;">
<u-divider text="全部加载完成"></u-divider>
</view>
<music-play :playData="playData"></music-play>
</view>
</template>
<script>
import $http from '@/config/requestConfig.js';
import emotion from '@/bkhumor-emojiplus/components/bkhumor-emojiplus/bkhumor-emojiplus.vue';
import musicPlay from '@/components/music.vue'
import { data } from 'jquery';
import {
mapState, mapMutations
} from 'vuex';
export default {
data() {
return {
// loadingNow : false,
playData:{},
emojiIcon:'cuIcon-emoji',
windowWidth:0,
bookid:null,
booklistpage: 1,
productList:[],
productInfo:{},
pingjiaShow:false, //添加评价
Pform:{ // 评价表单
star:0,
comment:'',
img:[],
html:''
},
emoji:[],
Files:[],
page:1,
pageSize:10,
total:0,
status:3,
shupingList:[],
bfaid:null,
ordersTabs: [{
name: '全部',
value: 1
}, {
name: '待付款',
value: 2
}, {
name: '待发货',
value: 3
}, {
name: '待收货',
value: 4
}, {
name: '已完成',
value: 5
}],
ordersListTab: 1,
newestpage: 1,
hotestpage: 1,
booksetpage: 1,
newList:[],
hotList:[],
bookList:[],
contentShow: 1,
}
},
onPullDownRefresh() {
console.log('下拉刷新了')
uni.stopPullDownRefresh();
this.newestpage = 1
this.hotestpage = 1
this.booksetpage = 1
this.newList = []
this.hotList = []
this.bookList = []
this.getBookList(this.ordersListTab, false)
},
onReachBottom() {
this.newestpage++
this.hotestpage++
this.booksetpage++
this.getBookList(this.ordersListTab, false)
},
onLoad(e) {
this.windowWidth = uni.getSystemInfoSync().windowWidth;
console.log(e,'onload')
// this.bookid = e.bookid
this.getBookList(1, false)
},
computed:{
...mapState(['userInfo']),
},
methods: {
...mapMutations(['setLoadingShow']),
setData(e) {
this.contentShow = e
this.getBookList(this.ordersListTab, true)
},
// 切换tab状态
ordersTabCLi(e) {
this.ordersListTab = e
this.newestpage = 1
this.hotestpage = 1
this.booksetpage = 1
this.newList = []
this.hotList = []
this.bookList = []
this.getBookList(this.ordersListTab, false)
},
// 查看本书更多书评
toMore(val){
console.log(val,'val')
uni.navigateTo({
url: '../comments/comments?bookid='+val.id,
});
},
// 书评详情
toDetail(val){
console.log(val,'val')
// uni.navigateTo({
// url:'../bookShop/commentsDetail?bookid='+val.bookid+'&bfa_id='+val.id
// })
uni.navigateTo({
url: './orderLCont?orderId=' + e.orderId + '&orderType=' + e.orderStatus + '&orderSn=' + e.orderSn
});
},
getBookList(flag, tushuflag){
// 根据tab不同获取最新书评、最热书评、书集列表
// uni.showLoading({
// title: '加载中'
// });
var httpurl = ""
if(flag == 1){
httpurl = "forum/articles/getForumsNew?page=" + this.newestpage + '&limit=10'
}else if(flag == 2){
httpurl = "forum/articles/getForumsHot?page=" + this.hotestpage + '&limit=10'
}else{
if(tushuflag){ // 点击切换已购和推荐
this.booksetpage = 1
this.bookList = []
}
if(this.contentShow == 1){
httpurl = "forum/articles/getHasForumsAndBook?page=" + this.booksetpage + '&limit=10&userId=' + this.userInfo.id
} else {
httpurl = "forum/articles/getBestForumsAndBook?page=" + this.booksetpage + '&limit=10&userId=' + this.userInfo.id
}
}
this.$http
.post(httpurl)
.then(res => {
if(flag == 1){
this.newList = this.newList.concat(res.page.records)
}else if(flag == 2){
this.hotList = this.hotList.concat(res.page.records)
}else{
this.bookList = this.bookList.concat(res.page.records)
}
console.log(this.newList,'this.newList')
// let list = res.page.records
// console.log(list,'list')
// for(let i=0; i < list.length; i++){
// let data = {
// 'page': 1,
// 'limit': 3,
// 'bookid' : list[i].bookid
// }
// this.$http
// .post('forum/articles/descupdatelist', data)
// .then(res => {
// // this.total = res.page.totalPage
// // this.shupingList = this.shupingList.concat(res.page.list)
// list[i].shupingList = res.page.list
// console.log(res.page.list,'评论获取成功')
// console.log(list,'list')
// this.productList.push(list[i])
// console.log(this.productList,'productList')
// // this.status = 3
// }).catch((e)=>{
// console.log(e,'e')
// })
// }
if(res.page.records.length != 10){
this.status = 1
} else {
this.status = 0
}
// uni.hideLoading();
}).catch((e)=>{
console.log(e,'e')
})
},
},
components:{
musicPlay,
emotion
}
}
</script>
<style lang="scss" scoped>
// @import '@/style/mixin.scss';
.ordersTabs {
// margin: 70rpx 0 0 0;
width: 730rpx;
// padding: 0 3% 3% 3%;
position: fixed;
// top: 80rpx;
background-color: #f7faf9;
z-index: 100;
.ordersdefine {
display: inline-block;
padding: 20rpx 0 20rpx 0;
// margin: 40rpx 0 15rpx 0;
width:140rpx;
text-align: center;
font-size: 30rpx;
position: relative;
.ordersnum{
position: absolute;
top: 8rpx;
right: 0rpx;
background-color: red;
// border:1rpx solid #a3a3a3;
border-radius: 40rpx;
width: 28rpx;
height: 28rpx;
font-size: 20rpx;
font-weight: 500;
color: rgb(255, 255, 255);
}
}
.ordStyle {
// border-bottom: 4rpx solid #54a966;
// color: #54a966;
font-weight: bold;
}
}
.flexbox{display: flex;}
.container{padding: 0 10px;}
.star{display: inline-block; width: 20px; height: 20px; margin-right: 10rpx;}
.starGray{ background : url(../../static/icon/star_greey.png) no-repeat; background-size: contain; }
.starLight{ background : url(../../static/icon/star_light.png) no-repeat; background-size: contain;}
.cuIcon-emoji {
background : url(../../static/biaoqing.png) no-repeat; background-size: contain; display: block; margin-right: 20rpx;
width: 30px; }
.cuIcon-keyboard{background : url(../../static/biaoqing.png) no-repeat; background-size: contain; display: block;
width: 30px; }
.tanchu {
padding: 40rpx 30rpx 40rpx 30rpx;
position: relative;
.dp_title {
font-size: 32rpx;
margin-bottom: 50rpx;
color: #555;
text-align: center;
font-weight: bold;
}
.dp_add {
position: absolute;
top: 40rpx;
right: 30rpx;
font-size: 22rpx;
background-color: #fd6004;
color: #fff;
border-radius: 10rpx;
padding: 5rpx 10rpx;
.u-icon {
display: inline-block;
margin-right: 5rpx;
}
}}
.quesheng{text-align: center; margin-top: 100rpx; color: #8b8a91; padding-bottom: 20rpx; padding-top: 20rpx;}
.gengduoshuping{text-align: right; color: #0044ff; padding-bottom: 20rpx; padding-top: 20rpx;}
.orderInfo{
justify-content: space-between;
// margin-bottom: 15px;
background-color: #fff;
padding:20rpx;
border: 1px splid #999;
box-sizing: border-box;
// padding-bottom: 20rpx;
border-radius: 20rpx;
margin-bottom: 20rpx;
}
.mainContent{
background-color: #fff;
.item{
// padding: 10px;
// margin-bottom: 30rpx;
// border: 1px solid #999;
box-sizing: border-box;
// padding-bottom: 20rpx;
border-radius: 20rpx;
// margin-bottom: 20rpx;
}
.feng{
margin:0rpx 20rpx 0 0;
height: 160rpx;
width: 140rpx;
float:left;
border-radius: 20rpx;
border:1rpx solid #e9e9e9;
}
.orderstatus{font-size: 30rpx; color: red; text-align: right;padding-bottom: 10rpx;}
/deep/.description{
overflow: hidden;
color: #666;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 5;
line-clamp: 5;
-webkit-box-orient: vertical;
font-size: 26rpx;
margin-bottom: 20rpx;
margin-top:10rpx;
height: 172rpx;
img{
width: 100% !important;
}
}
.btns{
font-size: 28rpx;
justify-content: space-between;
align-items: center;
.booknameleft{
width: 372rpx;
color: #000000;
}
.left{
width: 300rpx;
color: #a1a1a1;
}
.right{
width: 350rpx;
display: flex;
justify-content: flex-end;
align-items: center;
}
.gzicon{
margin:0 0 0 20rpx;
height: 40rpx;
width: 40rpx;
// float:left;
// border-radius: 20rpx;
// border:1rpx solid #e9e9e9;
}
.opbtns{
.pingjia{margin-left: 10px;}
}
}
}
.mb30{margin-bottom: 30rpx; overflow: hidden;}
// .orderInfo3{
// justify-content: space-between;
// // margin-bottom: 15px;
// background-color: #fff;
// padding:20rpx;
// border: 1px splid #999;
// box-sizing: border-box;
// // padding-bottom: 20rpx;
// border-radius: 20rpx;
// margin-bottom: 20rpx;
// .mainContent3{
// background-color: #fff;
// .item{
// // padding: 10px;
// // margin-bottom: 30rpx;
// // border: 1px solid #999;
// box-sizing: border-box;
// // padding-bottom: 20rpx;
// border-radius: 20rpx;
// // margin-bottom: 20rpx;
// }
// .feng{
// margin:10rpx 20rpx 0 0;
// height: 240rpx;
// width: 164rpx;
// float:left;
// border-radius: 20rpx;
// border:1rpx solid #e9e9e9;
// }
// .title{font-size: 30rpx; font-weight: 700; color: #000; overflow: hidden;}
// .pianshuping{
// font-size: 24rpx;
// color: red;
// }
// .shupingList{
// min-height: 212rpx;
// }
// /deep/.description{
// overflow: hidden;
// color: #666;
// text-overflow: -o-ellipsis-lastline;
// overflow: hidden;
// text-overflow: ellipsis;
// display: -webkit-box;
// -webkit-line-clamp: 1;
// line-clamp: 1;
// -webkit-box-orient: vertical;
// font-size: 26rpx;
// margin-bottom: 20rpx;
// margin-top:10rpx;
// img{
// width: 100% !important;
// }
// }
// .btns{
// font-size: 22rpx;
// justify-content: space-between;
// align-items: center;
// .left{
// width: 300rpx;
// color: #a1a1a1;
// }
// .right{
// width: 300rpx;
// display: flex;
// justify-content: flex-end;
// align-items: center;
// }
// .gzicon{
// margin:0 0 0 20rpx;
// height: 40rpx;
// width: 40rpx;
// // float:left;
// // border-radius: 20rpx;
// // border:1rpx solid #e9e9e9;
// }
// .opbtns{
// .pingjia{margin-left: 10px;}
// }
// }
// }
// }
.mytabs {
// background: url('@/static/icon/bgtushu.png') no-repeat left top;
height: 80rpx;
// margin-bottom: 30rpx;
.item {
border-radius: 10rpx;
background-color: #c6ead0;
width: 48%;
// margin: 0 10rpx;
text-align: center;
color: #3c7f56;
font-size: 36rpx;
line-height: 80rpx;
}
.item.active {
background-color: #3c7f56;
color: #fff;
}
.item1 {
margin-right: 20rpx;
}
}
</style>