625 lines
20 KiB
Vue
625 lines
20 KiB
Vue
<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>
|