You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
6.3 KiB
212 lines
6.3 KiB
<template>
|
|
<div class="main">
|
|
<div class="top-header">
|
|
<span class="back" @click="toBack"></span>
|
|
<p>我的借阅</p>
|
|
</div>
|
|
<div class="order-main">
|
|
<van-tabs v-model:active="active" swipeable @click-tab="onClickTab">
|
|
<van-tab v-for="item in tabTitle" :title="item.name">
|
|
<van-list
|
|
v-model:loading="loading"
|
|
:finished="finished"
|
|
finished-text="没有更多了"
|
|
@load="onLoad"
|
|
>
|
|
<div v-for="(item,i) in borrowingList" :key="i">
|
|
<div class="order-item">
|
|
<div class="list-top">
|
|
<div class="top-info">
|
|
<p class="active-name">
|
|
{{ item.seleceName }}<i></i>
|
|
</p>
|
|
</div>
|
|
<div :class="['order-status', !item.realityTime && 'jy']">{{ !item.realityTime ? '借阅中' : '已归还' }}</div>
|
|
</div>
|
|
<div class="product-cont lending-cont">
|
|
<div class="product-img">
|
|
<img :src="$coverUrl+'/demoOnlineSelect/getBookCover.do?id='+item.bookId" alt="" />
|
|
</div>
|
|
<div class="product-txt">
|
|
<div class="product-info">
|
|
<h4 class="overflow-txt-only">{{ item.bookName }}</h4>
|
|
<div class="author-date">
|
|
<p class="author overflow-txt-only">{{ item.author }}</p>
|
|
<p class="date overflow-txt-only">{{ item.createdDate }}</p>
|
|
</div>
|
|
<div class="intro overflow-txt">{{ item.introduce }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mylending-info">
|
|
<p class="lending-date">借阅开始时间:{{ item.startTime }}</p>
|
|
<p class="lending-date">最后归还时间:{{ item.returnTime }}</p>
|
|
<p v-if="item.realityTime" class="actual-date">实际归还时间:{{ item.realityTime }}</p>
|
|
<div :class="['myLending-status', item.returnBook === 1 && 'lq-status', item.returnBook === 2 && 'zs-status', item.returnBook === 3 && 'yq-status']"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</van-list>
|
|
</van-tab>
|
|
</van-tabs>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
// import { Toast } from 'vant'
|
|
import { reactive, computed, onMounted, getCurrentInstance, toRefs } from 'vue'
|
|
export default {
|
|
name: 'Order',
|
|
setup() {
|
|
const { proxy } = getCurrentInstance()
|
|
let data = reactive({
|
|
tabCur: 1,
|
|
active: 0,
|
|
borrowingList:[],
|
|
tabTitle: [
|
|
{
|
|
value: '0',
|
|
name: '全部',
|
|
},
|
|
{
|
|
value: '1',
|
|
name: '借阅中',
|
|
},
|
|
{
|
|
value: '2',
|
|
name: '已归还',
|
|
}
|
|
],
|
|
loading: false,
|
|
finished: false,
|
|
pagetTable: {
|
|
current: 1,
|
|
size: 10,
|
|
total: '',
|
|
}
|
|
})
|
|
onMounted(() => {
|
|
data.active = JSON.parse(proxy.$route.query.tabActive)
|
|
if(data.active){
|
|
onLoad()
|
|
}
|
|
})
|
|
let onClickTab = (item) => {
|
|
data.pagetTable.current = 1
|
|
data.loading = true
|
|
data.finished = false
|
|
data.active = item.name
|
|
data.borrowingList = []
|
|
onLoad()
|
|
}
|
|
let onLoad = () => {
|
|
let timer = setTimeout(() => {
|
|
getMyBorrowing()
|
|
data.pagetTable.current ++
|
|
data.finished && clearTimeout(timer);//清除计时器
|
|
}, 1000);
|
|
}
|
|
let getMyBorrowing = () => {
|
|
let param = {
|
|
openid: 'ocHu-sysUQ6-xb9knAJ5mATqCOJE',
|
|
status: data.active,
|
|
pageNo: data.pagetTable.current,
|
|
pageSize: data.pagetTable.size,
|
|
}
|
|
proxy.$http
|
|
.get(proxy.$API.MYBORROWING, {
|
|
params: param,
|
|
})
|
|
.then((res) => {
|
|
if(res.data !== null && res.data.length !== 0){
|
|
// data.borrowingList = res.data
|
|
// data.pagetTable.total = res.data.page.totalRows
|
|
data.borrowingList.push(...res.data.myBorrowing)
|
|
data.loading = false
|
|
data.finished = true
|
|
// if (data.list.length >= res.data.page.totalRows) {
|
|
// data.finished = true
|
|
// }
|
|
data.borrowingList.forEach(item=>{
|
|
if (item.realityTime) {
|
|
if (item.realityTime <= item.returnTime) {
|
|
item.returnBook = 2
|
|
console.log('准时1')
|
|
} else {
|
|
item.returnBook = 3
|
|
console.log('逾期')
|
|
}
|
|
} else {
|
|
const currentDate = new Date();
|
|
const remainingDays = Math.ceil((new Date(item.returnTime) - currentDate) / (1000 * 3600 * 24));
|
|
console.log(remainingDays)
|
|
|
|
if (remainingDays <= 3) {
|
|
item.returnBook = 1
|
|
console.log('临时')
|
|
} else {
|
|
// item.returnBook = 2
|
|
console.log('借阅中,还未到临期时间')
|
|
}
|
|
}
|
|
})
|
|
|
|
}else{
|
|
data.borrowingList = []
|
|
data.finished = true;
|
|
}
|
|
})
|
|
.catch((res) => {
|
|
console.log(res)
|
|
})
|
|
}
|
|
let toBack = () => {
|
|
proxy.$router.go(-1)
|
|
}
|
|
return {
|
|
...toRefs(data),
|
|
toBack,
|
|
getMyBorrowing,
|
|
onClickTab,
|
|
onLoad
|
|
}
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.mylending-info{
|
|
position: relative;
|
|
margin-top: .32rem;
|
|
padding: .25rem;
|
|
font-size: .24rem;
|
|
line-height: .4rem;
|
|
background: rgba(241,241,249,0.4);
|
|
border-radius: 0.08rem;
|
|
border: 0.02rem solid #C6C6E2;
|
|
p.actual-date{
|
|
color: #FF3871;
|
|
}
|
|
.myLending-status{
|
|
position: absolute;
|
|
right: .3rem;
|
|
top: .36rem;
|
|
width: 1.22rem;
|
|
height: 1.07rem;
|
|
&.yq-status{
|
|
background: url('@assets/images/mylending-img1.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
&.zs-status{
|
|
background: url('@assets/images/mylending-img2.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
&.lq-status{
|
|
background: url('@assets/images/mylending-img3.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
}
|
|
}
|
|
|
|
</style>
|