Browse Source

图书馆演示活动H5

master
xuhuajiao 2 years ago
parent
commit
6db94f9ce4
  1. 244
      library-activity/src/assets/css/style.scss
  2. BIN
      library-activity/src/assets/images/arrow-w.png
  3. BIN
      library-activity/src/assets/images/banner.png
  4. BIN
      library-activity/src/assets/images/book-arrow.png
  5. BIN
      library-activity/src/assets/images/card-img1.png
  6. BIN
      library-activity/src/assets/images/card-img2.png
  7. BIN
      library-activity/src/assets/images/dialog-img1.png
  8. BIN
      library-activity/src/assets/images/icon-copy.png
  9. BIN
      library-activity/src/assets/images/log-img1.png
  10. BIN
      library-activity/src/assets/images/log-img2.png
  11. BIN
      library-activity/src/assets/images/log-img3.png
  12. BIN
      library-activity/src/assets/images/log-img4.png
  13. BIN
      library-activity/src/assets/images/log-img5.png
  14. BIN
      library-activity/src/assets/images/mylending-img1.png
  15. BIN
      library-activity/src/assets/images/mylending-img2.png
  16. BIN
      library-activity/src/assets/images/mylending-img3.png
  17. BIN
      library-activity/src/assets/images/mylending-img4.png
  18. BIN
      library-activity/src/assets/images/mylending-img5.png
  19. BIN
      library-activity/src/assets/images/mylending-img6.png
  20. BIN
      library-activity/src/assets/images/order-detail-img1.png
  21. BIN
      library-activity/src/assets/images/order-detail-img2.png
  22. BIN
      library-activity/src/assets/images/order-detail-img3.png
  23. BIN
      library-activity/src/assets/images/order-detail-img4.png
  24. BIN
      library-activity/src/assets/images/order-detail-img5.png
  25. BIN
      library-activity/src/assets/images/search.png
  26. 6
      library-activity/src/main.js
  27. 24
      library-activity/src/router/index.js
  28. 276
      library-activity/src/views/bookList/bookList.vue
  29. 359
      library-activity/src/views/cart/cart copy.vue
  30. 149
      library-activity/src/views/cart/cart.vue
  31. 12
      library-activity/src/views/cart/result.vue
  32. 7
      library-activity/src/views/index.vue
  33. 218
      library-activity/src/views/logisticsInfo/logisticsInfo.vue
  34. 153
      library-activity/src/views/mine/mine.vue
  35. 446
      library-activity/src/views/myLending/myLending.vue
  36. 229
      library-activity/src/views/order/order.vue
  37. 269
      library-activity/src/views/orderDetail/orderDetail.vue

244
library-activity/src/assets/css/style.scss

@ -160,4 +160,248 @@
}
}
}
}
.order-detail-header{
width: 100%;
height: 3.87rem;
background: url('@assets/images/order-detail-img2.png') no-repeat left top;
background-size: contain;
.back{
display: block;
width: .5rem;
height: .5rem;
margin: .5rem 0 0 .32rem;
background: url('@assets/images/back.png') no-repeat transparent;
background-size: .5rem .5rem;
}
}
.order-main,
.order-detail{
.order-item {
padding: 0.2rem 0.24rem 0.26rem 0.24rem;
margin-bottom: .2rem;
background: #fff;
// box-shadow: 0px 0.03rem 0.6rem 1px rgba(0, 0, 0, 0.08);
border-radius: 0.08rem;
.product-cont {
margin-top: 0.3rem;
}
.order-book-price {
display: flex;
flex-direction: column;
justify-content: flex-start;
text-align: right;
span {
&:first-child {
font-size: 0.32rem;
font-weight: bold;
i {
font-style: normal;
font-size: 0.2rem;
}
}
&:last-child {
font-size: 0.24rem;
}
}
}
.order-bottom{
display: flex;
justify-content: flex-end;
align-items: center;
margin-top: .3rem;
padding-top: .3rem;
border-top: 1px solid #C6C6E2;
span{
display: block;
padding: 0 .24rem;
margin-left: .3rem;
height: .6rem;
line-height: .64rem;
font-size: .28rem;
border: 0.02rem solid #000;
border-radius: .5rem;
&.order-btn02{
color: #5A86F4;
border-color: #5A86F4;
}
}
}
}
}
.order-dealer{
display: flex;
justify-content: space-between;
align-items: center;
padding: .26rem 0 0 0;
.order-pay{
font-size: .32rem;
span {
font-size: .4rem;
i{
font-style: normal;
font-size: 0.24rem;
}
}
}
}
.order-main {
padding: 2rem 0.32rem 0 0.32rem;
.van-tabs__wrap{
position: fixed;
top: 1rem;
left: 0;
right: 0;
z-index: 99;
background-color: #fff;
}
.van-tab {
font-size: 0.32rem;
color: #858585;
z-index: 9999;
// margin-left: -0.18rem;
}
.van-tab--grow {
padding: 0 0.18rem;
z-index: 222;
}
.van-tabs__nav {
background: transparent;
padding: 0;
.van-tab--active {
font-weight: bold;
color: #000;
}
}
.van-tabs__line {
width: 0.48rem;
height: 0.2rem;
bottom: 10px;
background: url('@assets/images/order-icon.png') no-repeat;
background-size: 0.48rem 0.2rem;
}
.van-tabs__content--animated{
overflow: auto;
}
}
.order-main{
.order-item {
.product-cont {
.author-date{
p{
background-color: #F4F6FC !important;
color: #717275 !important;
}
}
}
}
}
.order-status {
font-size: 0.28rem;
color: #666;
&.dshe {
color: #5a86f4;
}
&.dhuo {
color: #ffb625;
}
&.jy {
color: #FE6902;
}
}
.van-dialog{
width: 6.1rem;
background: linear-gradient(180deg, #E8EEFD 0%, #FFFFFF 100%);
box-shadow: 0px .03rem .6rem 1px rgba(0,0,0,0.08);
border-radius: .16rem;
}
.dialog-btn{
display: flex;
justify-content: center;
align-items: center;
padding-bottom: .3rem;
span{
display: block;
height: .8rem;
line-height: .8rem;
padding: 0 .68rem;
margin: 0 .2rem;
font-size: .32rem;
text-align: center;
background-color: #F4F4F9;
color: #414243;
border-radius: .5rem;
&.btn-comfired{
color: #fff;
background-color: #5A86F4;
}
}
}
.bookItem-dialog-detail{
padding: .26rem;
margin-bottom: .2rem;
border-bottom: 1px solid #C6C6E2;
.product-cont{
position: relative;
padding-top: .3rem;
.book-inventory{
position: absolute;
top: 2rem;
left: 0;
font-size: .2rem;
padding: 0.06rem 0;
width: 1.18rem;
border: 1px solid #C6C6E2;
background-color: #F9F9FD;
border-radius: 0.08rem;
text-align: center;
p{
opacity: .6;
}
span{
i{
font-style: normal;
color: #FF383D;
}
}
}
}
.bookItem-txt{
display: flex;
justify-content: flex-start;
font-size: .24rem;
color: #757676;
line-height: .36rem;
.intro-txt{
width: 3.4rem;
color: #191A1A;
opacity: 1;
}
}
.order-dealer{
.dealer{
opacity: 0.6;
}
}
.order-pay{
display: flex;
align-items: center;
.yj-price{
padding: .1rem 0 0 .1rem;
font-size: .24rem;
color: #FF3871;
text-decoration: line-through;
i{
font-size: .18rem;
}
}
}
}

BIN
library-activity/src/assets/images/arrow-w.png

After

Width: 40  |  Height: 40  |  Size: 400 B

BIN
library-activity/src/assets/images/banner.png

After

Width: 686  |  Height: 217  |  Size: 74 KiB

BIN
library-activity/src/assets/images/book-arrow.png

After

Width: 16  |  Height: 16  |  Size: 382 B

BIN
library-activity/src/assets/images/card-img1.png

After

Width: 610  |  Height: 245  |  Size: 100 KiB

BIN
library-activity/src/assets/images/card-img2.png

After

Width: 80  |  Height: 80  |  Size: 8.8 KiB

BIN
library-activity/src/assets/images/dialog-img1.png

After

Width: 278  |  Height: 278  |  Size: 39 KiB

BIN
library-activity/src/assets/images/icon-copy.png

After

Width: 24  |  Height: 24  |  Size: 451 B

BIN
library-activity/src/assets/images/log-img1.png

After

Width: 1080  |  Height: 746  |  Size: 390 KiB

BIN
library-activity/src/assets/images/log-img2.png

After

Width: 36  |  Height: 36  |  Size: 1.5 KiB

BIN
library-activity/src/assets/images/log-img3.png

After

Width: 16  |  Height: 16  |  Size: 395 B

BIN
library-activity/src/assets/images/log-img4.png

After

Width: 32  |  Height: 32  |  Size: 1.4 KiB

BIN
library-activity/src/assets/images/log-img5.png

After

Width: 32  |  Height: 32  |  Size: 1.0 KiB

BIN
library-activity/src/assets/images/mylending-img1.png

After

Width: 122  |  Height: 107  |  Size: 12 KiB

BIN
library-activity/src/assets/images/mylending-img2.png

After

Width: 122  |  Height: 107  |  Size: 7.4 KiB

BIN
library-activity/src/assets/images/mylending-img3.png

After

Width: 122  |  Height: 107  |  Size: 11 KiB

BIN
library-activity/src/assets/images/mylending-img4.png

After

Width: 107  |  Height: 107  |  Size: 7.8 KiB

BIN
library-activity/src/assets/images/mylending-img5.png

After

Width: 107  |  Height: 107  |  Size: 5.1 KiB

BIN
library-activity/src/assets/images/mylending-img6.png

After

Width: 107  |  Height: 107  |  Size: 8.0 KiB

BIN
library-activity/src/assets/images/order-detail-img1.png

After

Width: 79  |  Height: 79  |  Size: 3.1 KiB

BIN
library-activity/src/assets/images/order-detail-img2.png

After

Width: 750  |  Height: 387  |  Size: 258 KiB

BIN
library-activity/src/assets/images/order-detail-img3.png

After

Width: 80  |  Height: 80  |  Size: 1.1 KiB

BIN
library-activity/src/assets/images/order-detail-img4.png

After

Width: 684  |  Height: 5  |  Size: 2.2 KiB

BIN
library-activity/src/assets/images/order-detail-img5.png

After

Width: 39  |  Height: 40  |  Size: 1.6 KiB

BIN
library-activity/src/assets/images/search.png

After

Width: 43  |  Height: 45  |  Size: 2.2 KiB

6
library-activity/src/main.js

@ -17,7 +17,7 @@ import '@/assets/js/rem.js'
import '@/assets/js/swiper6.min.js'
import '@/assets/css/style.scss'
import { Toast, Swipe, SwipeItem, Popup, Picker, Tab, Tabs, Dialog, Uploader, DatetimePicker, Slider, Checkbox, CheckboxGroup, Form, Field, CellGroup, Area,Button } from 'vant';
import { Toast, Swipe, SwipeItem, Popup, Picker, Tab, Tabs, Dialog, Uploader, DatetimePicker, Slider, Checkbox, CheckboxGroup, Form, Field, CellGroup, Area, Button, Progress, List} from 'vant';
import 'vant/lib/index.css';
@ -130,7 +130,9 @@ app.use(Toast)
.use(Field)
.use(CellGroup)
.use(Area)
.use(Button);
.use(Button)
.use(Progress)
.use(List);
app.config.globalProperties.$API = $API
app.config.globalProperties.$http = $http

24
library-activity/src/router/index.js

@ -9,6 +9,12 @@ const router = createRouter({
component: () =>
import('@/views/index.vue'),
},
{
path: '/BookList',
name: 'BookList',
component: () =>
import('@/views/bookList/bookList.vue'),
},
{
path: '/Mine',
name: 'Mine',
@ -56,6 +62,24 @@ const router = createRouter({
name: 'Order',
component: () =>
import('@/views/order/order.vue'),
},
{
path: '/OrderDetail',
name: 'OrderDetail',
component: () =>
import('@/views/orderDetail/orderDetail.vue'),
},
{
path: '/LogisticsInfo',
name: 'LogisticsInfo',
component: () =>
import('@/views/logisticsInfo/logisticsInfo.vue'),
},
{
path: '/MyLending',
name: 'MyLending',
component: () =>
import('@/views/myLending/myLending.vue'),
}
]
})

276
library-activity/src/views/bookList/bookList.vue

@ -0,0 +1,276 @@
<template>
<div class="main">
<div class="top-header">
<span class="back" @click="toBack"></span>
<p>活动书籍</p>
</div>
<div class="bookList-main">
<input type="text" v-model="query" placeholder="搜索" class="search-input" />
<div class="banner">
<img src="@assets/images/banner.png" alt="" />
</div>
<div class="booList-all">
<div class="booList-filter">
<select v-model="selectedValue">
<option value="1">热度降序</option>
<option value="2">热度升序</option>
<option value="3">价格降序</option>
<option value="4">价格升序</option>
</select>
</div>
<van-list
v-model:loading="loading"
:finished="finished"
finished-text="没有更多了"
@load="onLoad"
>
<div class="book-item" v-for="(item,index) in list" :key="item" @click="showDetial=true">
<div class="product-cont">
<div class="product-img"><img src="" alt="" /></div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt">秒懂AI提问让人工智能开发大脑{{ item }} </h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<p class="book-publish">人民邮电出版社</p>
</div>
</div>
<div class="dealer"> 京东商城</div>
</div>
<div class="sales-progress">
<van-progress :percentage="50" :show-pivot="false" color="#5A86F4" stroke-width=".17rem" />
<p>已定<span>5</span></p>
<p>剩余<span>5</span></p>
</div>
</div>
</van-list>
</div>
</div>
<van-dialog v-model:show="showDetial" :show-confirm-button="false">
<div class="bookItem-dialog-detail">
<div class="list-top">
<div class="top-info">
<p class="active-name">你选书我买单<i></i></p>
</div>
</div>
<div class="product-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="book-inventory">
<p>剩余库存</p>
<span><i>5</i></span>
</div>
<div class="product-txt">
<div class="product-info">
<h4>秒懂AI提问让人工智能开发大脑</h4>
<div class="bookItem-txt">
<span>著者</span>
<p class="author">秋叶 刘进新 姜梅 定秋枫</p>
</div>
<div class="bookItem-txt">
<span>出版社</span>
<p>人民邮电出版社</p>
</div>
<div class="bookItem-txt">
<span>出版时间</span>
<p>2023年07月</p>
</div>
<div class="bookItem-txt">
<span>简介</span>
<p class="intro-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</p>
</div>
</div>
</div>
</div>
<div class="order-dealer">
<p class="dealer">京东商城</p>
<div class="order-pay">
<p>实付款<span><i></i>0</span></p>
<span class="yj-price"><i></i>129.0</span>
</div>
</div>
</div>
<div class="dialog-btn">
<span @click="showDetial=false">取消</span>
<span class="btn-comfired" @click="addCart">加入书车</span>
</div>
</van-dialog>
</div>
</template>
<script>
import { Toast } from 'vant'
import { reactive, onMounted, getCurrentInstance, toRefs } from 'vue'
export default {
name: 'BookList',
setup() {
const { proxy } = getCurrentInstance()
let data = reactive({
query: '',
selectedValue: '1',
showDetial: false,
list:[],
loading: false,
finished: false
})
onMounted(() => {})
let toBack = () => {
proxy.$router.go(-1);
}
let onLoad = () => {
//
setTimeout(() => {
for (let i = 0; i < 10; i++) {
data.list.push(data.list.length + 1);
}
//
data.loading = false;
//
if (data.list.length >= 40) {
data.finished = true;
}
}, 1000);
}
let addCart = () => {
data.showDetial = false
Toast('当前书籍已成功加入书车')
}
return {
...toRefs(data),
toBack,
addCart,
onLoad
}
},
}
</script>
<style scoped lang="scss">
.bookList-main{
padding: 1.2rem .32rem 0 .32rem;
height: calc(100% - 1.2rem);
background-color: #fff;
.search-input{
display: block;
padding: .18rem .18rem .18rem .66rem;
width: calc(100% - .84rem);
height: .32rem;
line-height: .32rem;
font-size: .26rem;
background: url('@assets/images/search.png') no-repeat #F1F4FE .24rem center;
background-size: .24rem .24rem;
border-radius: 0.08rem;
}
.banner{
margin: .3rem 0 .2rem 0;
box-shadow: 0px 0.1rem 0.6rem 1px rgba(20, 69, 207, 0.20);
img{
display: block;
width: 100%;
}
}
}
.booList-all{
padding: .36rem .24rem;
background: #fff;
box-shadow: 0px 0.03rem 0.6rem 1px rgba(0, 0, 0, 0.08);
border-radius: 0.08rem;
}
.booList-filter{
select{
display: block;
font-size: .28rem;
padding-right: .24rem;
border: none;
color: #FE6902;
background: url('@assets/images/book-arrow.png') no-repeat transparent right center;
background-size: .16rem .16rem;
-webkit-appearance:none;
-moz-appearance:none;
appearance:none;
outline: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
}
.book-item{
padding-top: .4rem;
.product-cont{
position: relative;
.product-info{
h4{
width: 3.34rem;
}
}
.author-date{
margin: 0.04rem 0;
p{
height: .36rem;
line-height: .36rem;
color: #757676 !important;
background-color: #fff !important;
border: 1px solid #C6C6E2;
border-radius: 0.04rem;
}
}
.book-publish{
font-size: .24rem;
opacity: .6;
}
.dealer{
position: absolute;
top: 0;
right: 0;
padding: 0.04rem 0.08rem 0.04rem .32rem;
font-size: .24rem;
background-color: #F4F6FC;
background-position: .08rem center;
opacity: .6;
}
}
.sales-progress{
display: flex;
justify-content: space-between;
align-items: center;
margin-top: .24rem;
padding: .2rem .24rem;
background-color: #F9F9FD;
border: 1px solid #C6C6E2;
border-radius: 0.08rem;
:deep(.van-progress){
width: 2.88rem;
border-radius: 0.03rem;
background-color: #E1E8FC;
}
p{
font-size: .24rem;
color: #737475;
span{
color: #191A1A;
}
&:last-child{
span{
color: #FF3871;
}
}
}
}
}
.dialog-btn{
span{
width: 2rem;
text-align: center;
padding: 0;
}
}
</style>

359
library-activity/src/views/cart/cart copy.vue

@ -0,0 +1,359 @@
<template>
<div class="main">
<div class="cart-main">
<div class="cart-top">
<div class="cart-num">图书数量<span>(5)</span></div>
<span @click="cartDelt">管理</span>
</div>
<div class="cart-list">
<div class="cart-item">
<div class="list-top">
<van-checkbox v-model="checked"></van-checkbox>
<div class="top-info">
<p class="active-name">你选书我买单<i></i></p>
<p class="dealer">京东商城</p>
</div>
</div>
<div class="product-list">
<div class="product-item">
<van-checkbox v-model="checked"></van-checkbox>
<div class="product-cont">
<div class="product-img"><img src="" alt="" /></div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑 </h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only ">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
<div class="product-bottom">
<p class="product-price">实付款 <span><i class="rmb"></i>29.0</span><i>129.0</i></p>
<span class="product-num">x1</span>
</div>
</div>
</div>
</div>
<div class="product-item">
<van-checkbox v-model="checked"></van-checkbox>
<div class="product-cont">
<div class="product-img"><img src="" alt="" /></div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑 </h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only ">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
<div class="product-bottom">
<p class="product-price">实付款 <span><i class="rmb"></i>29.0</span><i>129.0</i></p>
<span class="product-num">x1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cart-item">
<div class="list-top">
<van-checkbox v-model="checked"></van-checkbox>
<div class="top-info">
<p class="active-name">你选书我买单<i></i></p>
<p class="dealer">京东商城</p>
</div>
</div>
<div class="product-list">
<div class="product-item">
<van-checkbox v-model="checked"></van-checkbox>
<div class="product-cont">
<div class="product-img"><img src="" alt="" /></div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑 </h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only ">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
<div class="product-bottom">
<p class="product-price">实付款 <span><i class="rmb"></i>29.0</span><i>129.0</i></p>
<span class="product-num">x1</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cart-pay">
<van-checkbox v-model="checked">全选</van-checkbox>
<div v-if="!isDeltHandle" class="payment-right">
<div class="total-num">合计:<span><i class="rmb"></i>0</span></div>
<p class="pay-btn" @click="goPay">下单</p>
</div>
<div v-else class="payment-right">
<p class="delt-btn" @click="confirmDelt">删除</p>
</div>
</div>
<TabBar :tabCur.sync="tabCur" />
</div>
</template>
<script>
import { Toast } from 'vant'
import { reactive, computed, onMounted, getCurrentInstance, toRefs } from 'vue'
import TabBar from '@/components/tabBar/index.vue'
export default {
name: 'Cart',
components: { TabBar },
setup() {
const { proxy } = getCurrentInstance()
let data = reactive({
tabCur: 1,
checked: false,
isDeltHandle: false
})
onMounted(() => {})
let goPay = () => {
proxy.$router.push({ path: '/CartResult' })
}
let cartDelt = () =>{
data.isDeltHandle = !data.isDeltHandle
}
return {
...toRefs(data),
goPay,
cartDelt
}
},
}
</script>
<style scoped lang="scss">
.cart-main{
padding: 0.25rem .125rem 2.375rem .125rem;
color: #191A1A;
.cart-top{
position: fixed;
top: 0;
right: 0;
left: 0;
display: flex;
justify-content: space-between;
align-items: center;
font-size: .3rem;
padding: .25rem;
background-color: #F4F4FC;
z-index: 999;
.cart-num{
font-size: .3rem;
opacity: 0.6;
span{
font-size: 0.25rem;
}
}
}
}
.cart-list{
padding-top: .875rem;
}
.cart-item{
padding: .25rem;
margin-bottom: .1875rem;
box-shadow: 0px .0375rem 0.75rem 1px rgba(0,0,0,0.08);
border-radius: 0.1rem;
background-color: #fff;
.list-top{
display: flex;
justify-content: flex-start;
align-items: center;
.top-info{
display: flex;
flex: 1;
justify-content: space-between;
align-items: center;
}
.active-name{
position: relative;
padding: 0 0.375rem;
font-size: .3rem;
font-weight: bold;
background: url('@assets/images/gift.png') no-repeat left center;
background-size: 0.275rem 0.275rem;
&::after{
position: absolute;
right: 0;
top: 50%;
content: "";
width: .2rem;
height: .2rem;
background: url('@assets/images/arrow.png') no-repeat center center;
background-size:.2rem .2rem;
transform: translateY(-50%)
}
}
.dealer{
padding-left: .4rem;
font-size: .3rem;
background: url('@assets/images/dealer.png') no-repeat left center;
background-size: .3rem .3rem;
}
}
}
.product-list{
.product-item{
display: flex;
justify-content: flex-start;
margin-top: .25rem;
.product-cont{
flex: 1;
display: flex;
justify-content: flex-start;
.product-img{
width: 1.25rem;
height: 1.75rem;
margin: .125rem 0.2rem 0 0;
background-color: #f1f1f1;
border-radius: 0.05rem;
overflow: hidden;
}
.product-txt{
flex: 1;
.product-info{
h4{
font-size: .3rem;
}
.author-date{
display: flex;
justify-content: flex-start;
margin: .075rem 0;
p{
font-size: .25rem;
padding: 0 .05rem;
margin-right: 0.1rem;
background-color: #F4F6FC;
color: #717275;
}
}
.intro{
font-size: .25rem;
opacity: 0.6;
}
}
.product-bottom{
display: flex;
justify-content: space-between;
align-items: center;
color: #757676;
.product-price{
span{
display: inline-block;
font-size: .35rem;
font-weight: bold;
color: #000;
margin-right: 0.175rem;
.rmb{
font-style: normal;
font-size: .25rem;
text-decoration: none;
color: #000;
}
}
i{
font-style: normal;
text-decoration: line-through;
color: #FF3871;
}
}
}
}
}
}
}
.cart-pay{
position: fixed;
left: 0;
right: 0;
bottom: 1.225rem;
padding: 0 .4rem;
height: 1rem;
// background-color: #fcfcfc;
background: linear-gradient(#fff, #f1f1f1);
display: flex;
justify-content: space-between;
align-items: center;
.payment-right{
display: flex;
justify-content: space-between;
align-items: center;
font-size: .3rem;
.total-num{
font-size: 0.3rem;
span{
font-size: .35rem;
font-weight: bold;
color: #FF3871;
.rmb{
font-style: normal;
font-size: .25rem;
text-decoration: none;
}
}
}
.pay-btn{
width: 1.875rem;
height: 0.75rem;
margin-left: 0.5rem;
line-height: 0.75rem;
text-align: center;
color: #fff;
background: url('@assets/images/btn3.png') no-repeat center center;
background-size: 100% 100%;
}
.delt-btn{
width: 1.875rem;
height: 0.75rem;
line-height: 0.75rem;
font-size: .3rem;
color: #000;
text-align: center;
border: 2px solid #000;
opacity: 0.6;
border-radius: .625rem;
}
}
}
.van-checkbox{
margin-right: .15rem;
}
:deep(.van-checkbox__icon){
height: .325rem;
}
:deep(.van-checkbox__icon .van-icon){
width: .325rem;
height: .325rem;
border-color: rgba(0,0,0,.3);
}
:deep(.van-checkbox__icon--checked .van-icon){
border: none;
background: url('@assets/images/selected.png') no-repeat transparent;
background-size: .325rem .325rem;
}
:deep(.van-icon-success:before){
display: none;
}
:deep(.van-checkbox__label){
font-size: .3rem;
}
</style>

149
library-activity/src/views/cart/cart.vue

@ -2,26 +2,26 @@
<div class="main">
<div class="cart-main">
<div class="cart-top">
<div class="cart-num">图书数量<span>(5)</span></div>
<div class="cart-num">图书数量<span>({{list.length + list2.length}})</span></div>
<span @click="cartDelt">{{ !isDeltHandle ? '管理' : '完成' }}</span>
</div>
<div class="cart-list">
<div class="cart-item">
<div class="cart-item" v-if="list.length !== 0">
<div class="list-top">
<van-checkbox v-model="checked"></van-checkbox>
<van-checkbox v-model="activeSelect" @change="(list,activeSelect)"></van-checkbox>
<div class="top-info">
<p class="active-name">你选书我买单<i></i></p>
<p class="dealer">京东商城</p>
</div>
</div>
<div class="product-list">
<div class="product-item">
<van-checkbox v-model="checked"></van-checkbox>
<div class="product-cont">
<div v-for="item in list" :key="item.id" class="product-item" >
<van-checkbox v-model="item.selected" ></van-checkbox>
<div class="product-cont" @click="showDetial=true">
<div class="product-img"><img src="" alt="" /></div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑 </h4>
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑 {{ item.id }} </h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only ">2023年07月</p>
@ -31,28 +31,7 @@
<div class="product-bottom">
<p class="product-price">实付款 <span><i class="rmb"></i>29.0</span><i>129.0</i></p>
<span v-if="!isDeltHandle" class="product-num">x1</span>
<span v-else class="item-delt"></span>
</div>
</div>
</div>
</div>
<div class="product-item">
<van-checkbox v-model="checked"></van-checkbox>
<div class="product-cont">
<div class="product-img"><img src="" alt="" /></div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑 </h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only ">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
<div class="product-bottom">
<p class="product-price">实付款 <span><i class="rmb"></i>29.0</span><i>129.0</i></p>
<span v-if="!isDeltHandle" class="product-num">x1</span>
<span v-else class="item-delt"></span>
<span v-else class="item-delt" @click.stop="deltCurrentItem('active1',item.id)"></span>
</div>
</div>
</div>
@ -60,22 +39,22 @@
</div>
</div>
<div class="cart-item">
<div class="cart-item" v-if="list2.length !== 0">
<div class="list-top">
<van-checkbox v-model="checked"></van-checkbox>
<van-checkbox v-model="activeSelect2" @change="(list2,activeSelect2)"> </van-checkbox>
<div class="top-info">
<p class="active-name">你选书我买单<i></i></p>
<p class="dealer">京东商城</p>
</div>
</div>
<div class="product-list">
<div class="product-item">
<van-checkbox v-model="checked"></van-checkbox>
<div class="product-cont">
<div v-for="item in list2" :key="item.id" class="product-item">
<van-checkbox v-model="item.selected"></van-checkbox>
<div class="product-cont" @click="showDetial=true">
<div class="product-img"><img src="" alt="" /></div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑 </h4>
<h4 class="overflow-txt-only">{{ item.id }}秒懂AI提问让人工智能开发大脑 </h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only ">2023年07月</p>
@ -85,7 +64,7 @@
<div class="product-bottom">
<p class="product-price">实付款 <span><i class="rmb"></i>29.0</span><i>129.0</i></p>
<span v-if="!isDeltHandle" class="product-num">x1</span>
<span v-else class="item-delt"></span>
<span v-else class="item-delt" @click.stop="deltCurrentItem('active2',item.id)"></span>
</div>
</div>
</div>
@ -94,8 +73,9 @@
</div>
</div>
</div>
<div class="cart-pay">
<van-checkbox v-model="checked">全选</van-checkbox>
<van-checkbox v-model="allSelected">全选</van-checkbox>
<div v-if="!isDeltHandle" class="payment-right">
<div class="total-num">合计:<span><i class="rmb"></i>0</span></div>
<p class="pay-btn" @click="goPay">下单</p>
@ -105,6 +85,56 @@
</div>
</div>
<TabBar :tabCur.sync="tabCur" />
<van-dialog v-model:show="showDetial" :show-confirm-button="false">
<div class="bookItem-dialog-detail">
<div class="list-top">
<div class="top-info">
<p class="active-name">你选书我买单<i></i></p>
</div>
</div>
<div class="product-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="book-inventory">
<p>剩余库存</p>
<span><i>5</i></span>
</div>
<div class="product-txt">
<div class="product-info">
<h4>秒懂AI提问让人工智能开发大脑</h4>
<div class="bookItem-txt">
<span>著者</span>
<p class="author">秋叶 刘进新 姜梅 定秋枫</p>
</div>
<div class="bookItem-txt">
<span>出版社</span>
<p>人民邮电出版社</p>
</div>
<div class="bookItem-txt">
<span>出版时间</span>
<p>2023年07月</p>
</div>
<div class="bookItem-txt">
<span>简介</span>
<p class="intro-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</p>
</div>
</div>
</div>
</div>
<div class="order-dealer">
<p class="dealer">京东商城</p>
<div class="order-pay">
<p>实付款<span><i></i>0</span></p>
<span class="yj-price"><i></i>129.0</span>
</div>
</div>
</div>
<div class="dialog-btn">
<span @click="showDetial=false">关闭</span>
</div>
</van-dialog>
</div>
</template>
@ -119,20 +149,54 @@ export default {
const { proxy } = getCurrentInstance()
let data = reactive({
tabCur: 1,
checked: false,
isDeltHandle: false
activeSelect: false,
activeSelect2: false,
allSelected: false,
isDeltHandle: false,
showDetial: false,
list:[],
list2:[]
})
onMounted(() => {})
onMounted(() => {
for (let i = 0; i < 2; i++) {
const json = {}
json.selected = false
json.id = data.list.length + 1
data.list.push(json);
}
for (let i = 0; i < 1; i++) {
// data.list2.push(data.list2.length + 1);
const json = {}
json.selected = false
json.id = data.list2.length + 1
data.list2.push(json);
}
})
let goPay = () => {
proxy.$router.push({ path: '/CartResult' })
}
let cartDelt = () =>{
data.isDeltHandle = !data.isDeltHandle
}
let deltCurrentItem = (type, itemIndex) =>{
const targetList = type === 'active1' ? data.list : data.list2
const index = targetList.findIndex(item => item.id === itemIndex)
if (index !== -1) {
targetList.splice(index, 1)
}
}
let selectAll = (list , selectAll) => {
console.log(selectAll)
for (let item of list) {
item.selected = selectAll
}
}
return {
...toRefs(data),
goPay,
cartDelt
cartDelt,
deltCurrentItem,
selectAll
}
},
}
@ -260,4 +324,7 @@ export default {
font-size: .28rem;
}
.bookItem-dialog-detail{
border-bottom: none;
}
</style>

12
library-activity/src/views/cart/result.vue

@ -9,7 +9,7 @@
<p>恭喜您已成功下单</p>
<span class="tip">我们会尽快完成审核工作请耐心等待</span>
<div class="result-btn">
<span>查看订单</span>
<span @click="toOrder(0)">查看订单</span>
<span class="result-btn-more" @click="toMoreOrder">再下一单</span>
</div>
</div>
@ -33,12 +33,22 @@ export default {
let toBack = () => {
proxy.$router.go(-1);
}
let toOrder = (tabActive) => {
// proxy.$router.push({ path: '/Order' })
proxy.$router.push({
path: '/Order',
query: {
tabActive: tabActive
}
})
}
let toMoreOrder = () =>{
location.href = './';
}
return {
...toRefs(data),
toBack,
toOrder,
toMoreOrder
}
},

7
library-activity/src/views/index.vue

@ -19,7 +19,7 @@
</div>
<div class="active-bottom">
<p class="active-slogn">新书 · 选书· 下单· 借阅</p>
<span class="active-btn"></span>
<span class="active-btn" @click="toBookList"></span>
</div>
</div>
<div class="active-item">
@ -114,6 +114,9 @@ export default {
if (userData) {
}
})
let toBookList = () => {
proxy.$router.push({ path: '/BookList' })
}
let Encrypt = (o) => {
if (typeof o === 'string') {
if (o) {
@ -253,7 +256,6 @@ export default {
console.log(res)
})
}
/* 获取token 和用户信息 */
let getTokenAndUserInfo = () => {
if (!location.search) {
@ -302,6 +304,7 @@ export default {
}
return {
data,
toBookList,
Encrypt,
ToTryLogin,
isLogin,

218
library-activity/src/views/logisticsInfo/logisticsInfo.vue

@ -0,0 +1,218 @@
<template>
<div class="main">
<div class="order-detail-header">
<span class="back" @click="toBack"></span>
</div>
<div class="logistics-main">
<div class="logistics-tab">
<span :class="tabActive === 0 ? 'active':''" @click="tabActive=0">订单1</span>
<span :class="tabActive === 1 ? 'active':''" @click="tabActive=1">订单2</span>
</div>
<div class="logistics-detail">
<div class="logistics-top">
<p>顺丰速运 SF1629871960733</p>
<div class="logistics-handle">
<span @click="copyLogisticsInfo">复制</span>
<span @click="makePhoneCall">打电话</span>
</div>
</div>
<div class="log-step">
<div class="log-step-new">
<div class="step-new-info">
<p>运输中 11-21 16:57</p>
<span>查看详情</span>
</div>
<div class="step-new-detail">
[鄂州市]快件离开 湖北武昌转运中心已发往 湖北武汉洪山广场公司
</div>
</div>
<div class="send-to-location">
<div class="location-info">送至 中南路8号石化大院4栋3单元201</div>
<div class="location-detail">
<p>张三 86-130****0000</p>
<span>取件可出示虚拟号 156232142001-4596</span>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { Toast } from 'vant'
import { reactive, computed, onMounted, getCurrentInstance, toRefs } from 'vue'
export default {
name: 'LogisticsInfo',
components:{ Toast },
setup() {
const { proxy } = getCurrentInstance()
let data = reactive({
tabActive: 0
})
onMounted(() => {})
let toBack = () => {
proxy.$router.go(-1)
}
let copyLogisticsInfo = () => {
const logisticsInfo = 'SF1629871960733';
if (navigator.clipboard) {
navigator.clipboard.writeText(logisticsInfo)
.then(() => {
Toast('物流单号已复制');
})
.catch(err => {
console.error('复制失败:', err);
});
} else {
const input = document.createElement('textarea');
input.style.position = 'fixed';
input.style.opacity = 0;
input.value = logisticsInfo;
document.body.appendChild(input);
input.select();
document.execCommand('copy');
document.body.removeChild(input);
Toast('物流单号已复制');
}
}
let makePhoneCall = () => {
const phoneNumber = '95338';
const telLink = `tel:${phoneNumber}`;
window.open(telLink, '_self');
}
return {
...toRefs(data),
toBack,
copyLogisticsInfo,
makePhoneCall
}
}
}
</script>
<style scoped lang="scss">
.order-detail-header{
height: 6.8rem;
background: url('@assets/images/log-img1.png') no-repeat left top;
background-size: contain;
.back{
background: url('@assets/images/back.png') no-repeat transparent;
background-size: .5rem .5rem;
}
}
.logistics-main{
margin-top: -3rem;
.logistics-tab{
display: flex;
justify-content: center;
margin: 0 .32rem .2rem .32rem;
padding: .16rem 0;
background: #fff;
box-shadow: 0px 0.03rem 0.6rem 1px rgba(0, 0, 0, 0.08);
border-radius: 0.32rem;
span{
display: block;
padding: 0 .36rem;
margin: 0 .24rem;
height: .6rem;
line-height: .6rem;
font-size: .32rem;
color: #7A7A7F;
background-color: #F4F4F9;
border-radius: .5rem;
&.active{
color: #fff;
background-color: #FE6902;
}
}
}
.logistics-detail{
padding: 0 .32rem .32rem .32rem;
background-color: #fff;
border-radius: .32rem .32rem 0 0;
.logistics-top{
display: flex;
justify-content: space-between;
align-items: center;
font-size: .28rem;
padding: .3rem 0 .36rem 0;
p{
padding-left: .5rem;
background: url('@assets/images/log-img2.png') no-repeat left center;
background-size: .36rem .36rem;
}
.logistics-handle{
opacity: .4;
span{
display: inline-block;
padding: 0 .2rem;
height: .24rem;
line-height: .24rem;
&:first-child{
border-right: 1px solid #000;
}
}
}
}
.log-step{
.log-step-new{
position: relative;
&::before{
position: absolute;
left: .16rem;
top: .46rem;
content: "";
width: 0.01rem;
height: 100%;
border-left: 1px solid #ddd;
}
.step-new-info{
display: flex;
justify-content: space-between;
align-items: center;
font-size: .24rem;
color: #FE6902;
p{
background: url('@assets/images/log-img5.png') no-repeat left center;
background-size: .32rem .32rem;
}
span{
padding-right: .22rem;
background: url('@assets/images/log-img3.png') no-repeat right center;
background-size: .16rem .16rem;
}
}
}
.send-to-location{
.location-info{
background: url('@assets/images/log-img4.png') no-repeat left center;
background-size: .32rem .32rem;
}
.location-detail{
span{
opacity: .6;
}
}
}
.step-new-info p,
.location-info{
padding-left: .5rem;
font-size: .32rem;
font-weight: bold;
}
.step-new-detail,
.location-detail{
margin: .16rem 0 .48rem .5rem;
padding: .18rem .18rem .18rem .24rem;
font-size: .28rem;
line-height: .42rem;
background: #F6F6FB;
border-radius: 0.08rem;
}
}
}
}
</style>

153
library-activity/src/views/mine/mine.vue

@ -11,7 +11,7 @@
</div>
<div class="user-card">
<p>NO.10078398329</p>
<span>切换证号</span>
<span @click="showCard=true">切换证号</span>
</div>
</div>
</div>
@ -19,38 +19,38 @@
<div class="mine-item mine-order">
<div class="mine-title">
<h4>我的订单</h4>
<span @click="toOrder">查看全部</span>
<span @click="toOrder(0)">查看全部</span>
</div>
<div class="order-handle">
<div class="order-item">
<div class="order-item" @click="toOrder(1)">
<div class="order-icon">
<img src="@assets/images/d-she.png" alt="" />
<i>1</i>
</div>
<p>待审核</p>
</div>
<div class="order-item">
<div class="order-item" @click="toOrder(2)">
<div class="order-icon">
<img src="@assets/images/d-fh.png" alt="" />
<!-- <i></i> -->
</div>
<p>待发货</p>
</div>
<div class="order-item">
<div class="order-item" @click="toOrder(3)">
<div class="order-icon">
<img src="@assets/images/d-shuo.png" alt="" />
<!-- <i></i> -->
</div>
<p>待收货</p>
</div>
<div class="order-item">
<div class="order-item" @click="toOrder(4)">
<div class="order-icon">
<img src="@assets/images/y-wc.png" alt="" />
<!-- <i></i> -->
</div>
<p>已完成</p>
</div>
<div class="order-item">
<div class="order-item" @click="toOrder(5)">
<div class="order-icon">
<img src="@assets/images/y-qx.png" alt="" />
<!-- <i></i> -->
@ -62,7 +62,7 @@
<div class="log-img">
<img src="" alt="" />
</div>
<div class="log-txt">
<div class="log-txt" @click="toLogisticsInfo">
<div class="log-num">顺丰速运 SF1629871960733</div>
<div class="logo-cont overflow-txt-only">[鄂州市]快件离开 湖北武昌转运中心</div>
</div>
@ -71,16 +71,16 @@
<div class="mine-item mine-lend">
<div class="mine-title">
<h4>我的借阅</h4>
<span>查看全部</span>
<span @click="toLending(0)">查看全部</span>
</div>
<div class="order-handle">
<div class="order-item">
<div class="order-item" @click="toLending(1)">
<div class="order-icon">
<img src="@assets/images/lending.png" alt="" />
</div>
<p>借阅中</p>
</div>
<div class="order-item">
<div class="order-item" @click="toLending(2)">
<div class="order-icon">
<img src="@assets/images/return.png" alt="" />
</div>
@ -100,6 +100,39 @@
</div>
</div>
<TabBar :tabCur.sync="tabCur" />
<van-dialog v-model:show="showCard" :show-confirm-button="false">
<div class="dialog-card">
<h5>切换读者证</h5>
<div class="card-item" @click="cardIndex=0">
<img src="@assets/images/card-img2.png" alt="" />
<div class="card-txt">
<span>读者证号</span>
<p>NO.10078398329</p>
</div>
<div :class="['select-card', cardIndex===0 ? 'active': '']"></div>
</div>
<div class="card-item" @click="cardIndex=1">
<img src="@assets/images/card-img2.png" alt="" />
<div class="card-txt">
<span>读者证号</span>
<p>NO.10078398329</p>
</div>
<div :class="['select-card', cardIndex===1 ? 'active': '']"></div>
</div>
<div class="card-item" @click="cardIndex=2">
<img src="@assets/images/card-img2.png" alt="" />
<div class="card-txt">
<span>读者证号</span>
<p>NO.10078398329</p>
</div>
<div :class="['select-card', cardIndex===2 ? 'active': '']"></div>
</div>
</div>
<div class="card-btn">
<span @click="changeCardComfired">确定</span>
<span @click="showCard=false">取消</span>
</div>
</van-dialog>
</div>
</template>
@ -113,10 +146,25 @@ export default {
setup() {
const { proxy } = getCurrentInstance()
let data = reactive({
tabCur: 2
tabCur: 2,
showCard: false,
cardIndex: 0
})
let toOrder = () => {
proxy.$router.push({ path: '/Order' })
let toOrder = (tabActive) => {
proxy.$router.push({
path: '/Order',
query: {
tabActive: tabActive
}
})
}
let toLending = (tabActive) =>{
proxy.$router.push({
path: '/MyLending',
query: {
tabActive: tabActive
}
})
}
let toMyAddress = () => {
proxy.$router.push({ path: '/MyAddress' })
@ -127,13 +175,23 @@ export default {
let toFeedback = () => {
proxy.$router.push({ path: '/Feedback' })
}
let toLogisticsInfo = () => {
proxy.$router.push({ path: '/LogisticsInfo' })
}
let changeCardComfired = () => {
data.showCard = false
Toast('读者证切换成功')
}
onMounted(() => {})
return {
...toRefs(data),
toOrder,
toLending,
toMyAddress,
toAboutUs,
toFeedback
toFeedback,
toLogisticsInfo,
changeCardComfired
}
},
}
@ -341,4 +399,69 @@ export default {
}
}
}
.dialog-card{
width: 6.12rem;
background: url('@assets/images/card-img1.png') no-repeat #fff left top;
background-size: 100% 2.45rem;
border-radius: .16rem;
h5{
padding: 1.15rem .24rem .24rem .24rem;
font-size: .32rem;
}
.card-item{
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 .3rem .2rem .24rem;
padding: .18rem .24rem;
background: rgba(241,241,249,0.4);
border: 0.02rem solid #C6C6E2;
border-radius: 0.08rem;
img{
display: block;
width: .8rem;
}
.card-txt{
flex: 1;
margin-left: .2rem;
font-size: .32rem;
p{
font-size: .24rem;
opacity: .6;
}
}
.select-card{
width: .37rem;
height: .37rem;
border: 0.02rem solid #949497;
border-radius: 50%;
&.active{
width: .41rem;
height: .41rem;
border: none;
background: url('@assets/images/selected.png') no-repeat;
background-size: .41rem .41rem;
}
}
}
}
.card-btn{
padding: .2rem 0 .3rem 0;
span{
display:block;
width: 4.3rem;
height: .8rem;
line-height: .8rem;
font-size: .32rem;
text-align: center;
margin: 0 auto;
border-radius: .4rem;
color: #666;
&:first-child{
background-color: #5A86F4;
color: #fff;
}
}
}
</style>

446
library-activity/src/views/myLending/myLending.vue

@ -0,0 +1,446 @@
<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>
<van-tab v-for="item in tabTitle" :title="item.name">
<div v-show="active === 0">
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status jy">借阅中</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
</div>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status jy">借阅中</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status lq-status"></div>
</div>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status">已归还</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status zs-status"></div>
</div>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status">已归还</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status yq-status"></div>
</div>
</div>
</div>
<div v-show="active === 1">
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status jy">借阅中</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
</div>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status jy">借阅中</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status lq-status"></div>
</div>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status jy">借阅中</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info2">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status lq-status"></div>
</div>
</div>
</div>
<div v-show="active === 2">
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status">已归还</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status zs-status"></div>
</div>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status">已归还</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status yq-status"></div>
</div>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div class="order-status">已归还</div>
</div>
<div class="product-cont lending-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
</div>
<div class="mylending-info2">
<p class="lending-date">借阅开始时间2023-11-18 10:15:30</p>
<p class="lending-date">最后归还时间2023-11-18 10:15:30</p>
<p class="actual-date">实际归还时间2023-11-18 10:15:30</p>
<div class="myLending-status yq-status"></div>
</div>
</div>
</div>
</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,
tabTitle: [
{
value: '0',
name: '全部',
},
{
value: '1',
name: '借阅中',
},
{
value: '2',
name: '已归还',
}
],
})
onMounted(() => {
console.log(proxy.$route.query.tabActive)
data.active = JSON.parse(proxy.$route.query.tabActive)
})
let toBack = () => {
proxy.$router.go(-1)
}
return {
...toRefs(data),
toBack
}
},
}
</script>
<style scoped lang="scss">
.mylending-info{
position: relative;
padding: .2rem 0 0 0;
font-size: .24rem;
line-height: .4rem;
color: #757676;
p{
padding: .04rem 0;
}
p.actual-date{
color: #FF3871;
}
.myLending-status{
position: absolute;
right: 0;
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%;
}
}
}
.mylending-info2{
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.07rem;
height: 1.07rem;
&.yq-status{
background: url('@assets/images/mylending-img6.png') no-repeat;
background-size: 100% 100%;
}
&.zs-status{
background: url('@assets/images/mylending-img5.png') no-repeat;
background-size: 100% 100%;
}
&.lq-status{
background: url('@assets/images/mylending-img4.png') no-repeat;
background-size: 100% 100%;
}
}
}
</style>

229
library-activity/src/views/order/order.vue

@ -17,7 +17,7 @@
</div>
<div class="order-status dshe">待审核</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(0)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -40,7 +40,7 @@
<p class="dealer">京东商城</p>
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
</div>
</div>
<div class="order-item">
<div class="list-top">
@ -51,7 +51,7 @@
</div>
<div class="order-status dhuo">待发货</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(1)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -85,7 +85,7 @@
</div>
<div class="order-status dhuo">待收货</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(2)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -109,8 +109,8 @@
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
<div class="order-bottom">
<span class="order-btn01">查看物流</span>
<span class="order-btn02">确认收货</span>
<span class="order-btn01" @click="toLogisticsInfo">查看物流</span>
<span class="order-btn02" @click="show = true">确认收货</span>
</div>
</div>
@ -123,7 +123,7 @@
</div>
<div class="order-status">已完成</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(3)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -147,7 +147,7 @@
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
<div class="order-bottom">
<span class="order-btn01">查看物流</span>
<span class="order-btn01" @click="toLogisticsInfo">查看物流</span>
</div>
</div>
@ -160,7 +160,7 @@
</div>
<div class="order-status">已取消</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(4)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -184,7 +184,7 @@
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
<div class="order-bottom">
<span class="order-btn01">删除订单</span>
<span class="order-btn01" @click="showDelt=true">删除订单</span>
</div>
</div>
</div>
@ -199,7 +199,7 @@
</div>
<div class="order-status dshe">待审核</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(0)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -236,7 +236,7 @@
</div>
<div class="order-status dhuo">待发货</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(1)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -272,7 +272,7 @@
</div>
<div class="order-status dhuo">待收货</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(2)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -296,8 +296,8 @@
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
<div class="order-bottom">
<span class="order-btn01">查看物流</span>
<span class="order-btn02">确认收货</span>
<span class="order-btn01" @click="toLogisticsInfo">查看物流</span>
<span class="order-btn02" @click="show = true">确认收货</span>
</div>
</div>
</div>
@ -312,7 +312,7 @@
</div>
<div class="order-status">已完成</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(3)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -336,7 +336,7 @@
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
<div class="order-bottom">
<span class="order-btn01">查看物流</span>
<span class="order-btn01" @click="toLogisticsInfo">查看物流</span>
</div>
</div>
</div>
@ -351,7 +351,7 @@
</div>
<div class="order-status">已取消</div>
</div>
<div class="product-cont">
<div class="product-cont" @click="toOrderDeatil(4)">
<div class="product-img">
<img src="" alt="" />
</div>
@ -375,7 +375,7 @@
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
<div class="order-bottom">
<span class="order-btn01">删除订单</span>
<span class="order-btn01" @click="showDelt=true">删除订单</span>
</div>
</div>
</div>
@ -383,14 +383,36 @@
</van-tab>
</van-tabs>
</div>
<van-dialog v-model:show="show" :show-confirm-button="false">
<div class="dialog-detail">
<img src="@assets/images/dialog-img1.png" alt="" />
<p>确认收货</p>
<span>确定该订单已收到吗</span>
</div>
<div class="dialog-btn">
<span @click="show=false">取消</span>
<span class="btn-comfired" @click="comfiredHandle">确定</span>
</div>
</van-dialog>
<van-dialog v-model:show="showDelt" :show-confirm-button="false">
<div class="dialog-detail">
<img src="@assets/images/dialog-img1.png" alt="" />
<p>删除订单</p>
<span>确定删除该订单吗</span>
</div>
<div class="dialog-btn">
<span @click="showDelt=false">取消</span>
<span class="btn-comfired" @click="deltHandle">确定</span>
</div>
</van-dialog>
<!-- <TabBar :tabCur.sync="tabCur" /> -->
</div>
</template>
<script>
// import { Toast } from 'vant'
import { reactive, computed, onMounted, getCurrentInstance, toRefs } from 'vue'
import { Toast } from 'vant'
import { reactive, computed, onMounted, getCurrentInstance, toRefs, ref } from 'vue'
// import TabBar from '@/components/tabBar/index.vue'
export default {
name: 'Order',
@ -400,6 +422,8 @@ export default {
let data = reactive({
tabCur: 1,
active: 0,
show: false,
showDelt: false,
tabTitle: [
{
value: '0',
@ -427,140 +451,65 @@ export default {
},
],
})
onMounted(() => {})
onMounted(() => {
console.log(proxy.$route.query.tabActive)
data.active = JSON.parse(proxy.$route.query.tabActive)
})
let toBack = () => {
proxy.$router.go(-1)
}
let toMoreOrder = () => {
location.href = './'
let toOrderDeatil = (type) => {
// proxy.$router.push({ path: '/OrderDetail' })
proxy.$router.push({
path: '/OrderDetail',
query: {
type: type
}
})
}
let toLogisticsInfo = () => {
proxy.$router.push({ path: '/LogisticsInfo' })
}
let comfiredHandle = () =>{
data.show = false
Toast('确认收货成功')
}
let deltHandle = () =>{
data.showDelt = false
Toast('删除订单成功')
}
return {
...toRefs(data),
toBack,
toMoreOrder,
toOrderDeatil,
toLogisticsInfo,
comfiredHandle,
deltHandle
}
},
}
</script>
<style scoped lang="scss">
.order-main {
padding: 2rem 0.32rem 0 0.32rem;
:deep(.van-tabs__wrap){
position: fixed;
top: 1rem;
left: 0;
right: 0;
z-index: 99;
background-color: #fff;
}
:deep(.van-tab) {
font-size: 0.32rem;
color: #858585;
// margin-left: -0.18rem;
}
:deep(.van-tab--grow) {
padding: 0 0.18rem;
z-index: 222;
}
:deep(.van-tabs__nav) {
background: transparent;
padding: 0;
.van-tab--active {
font-weight: bold;
color: #000;
}
}
:deep(.van-tabs__line) {
width: 0.48rem;
height: 0.2rem;
bottom: 10px;
background: url('@assets/images/order-icon.png') no-repeat;
background-size: 0.48rem 0.2rem;
}
:deep(.van-tabs__content--animated) {
overflow: auto;
}
}
.order-item {
padding: 0.2rem 0.24rem 0.26rem 0.24rem;
margin-bottom: .2rem;
background: #fff;
// box-shadow: 0px 0.03rem 0.6rem 1px rgba(0, 0, 0, 0.08);
border-radius: 0.08rem;
.product-cont {
margin-top: 0.3rem;
}
.order-book-price {
display: flex;
flex-direction: column;
justify-content: flex-start;
text-align: right;
span {
&:first-child {
font-size: 0.32rem;
font-weight: bold;
i {
font-style: normal;
font-size: 0.2rem;
}
}
&:last-child {
font-size: 0.24rem;
}
}
}
.order-dealer{
display: flex;
justify-content: space-between;
align-items: center;
padding: .26rem 0 0 0;
.order-pay{
font-size: .32rem;
span {
font-size: .4rem;
i{
font-style: normal;
font-size: 0.24rem;
}
}
}
.dialog-detail{
text-align: center;
padding-bottom: .48rem;
img{
display: block;
width: 2.78rem;
margin: 0 auto;
}
.order-bottom{
display: flex;
justify-content: flex-end;
align-items: center;
margin-top: .3rem;
padding-top: .3rem;
border-top: 1px solid #C6C6E2;
span{
display: block;
padding: 0 .24rem;
margin-left: .3rem;
height: .6rem;
line-height: .64rem;
font-size: .28rem;
border: 0.02rem solid #000;
border-radius: .5rem;
&.order-btn02{
color: #5A86F4;
border-color: #5A86F4;
}
}
p{
margin-top: -.5rem;
font-size: .38rem;
font-weight: bold;
line-height: .6rem;
}
span{
font-size: .28rem;
opacity: .6;
}
}
.order-status {
font-size: 0.28rem;
color: #666;
&.dshe {
color: #5a86f4;
}
&.dhuo {
color: #ffb625;
}
}
</style>

269
library-activity/src/views/orderDetail/orderDetail.vue

@ -0,0 +1,269 @@
<template>
<div class="main">
<div class="order-detail-header">
<span class="back" @click="toBack"></span>
</div>
<div class="order-detail">
<div class="detail-base">
<p>{{ orderName }}</p>
<span>{{ orderInfo }}</span>
</div>
<div v-if="orderType==='2' || orderType==='3'" class="parcel-log" @click="toLogisticsInfo">
<p>共2个包裹运送中</p>
<p>顺丰速运SF162987196073</p>
</div>
<div class="user-location">
<p>洪山科技创业中心C栋武汉优软科技</p>
<p>是路飞啊<span>15376587658</span></p>
</div>
<div class="order-item">
<div class="list-top">
<div class="top-info">
<p class="active-name">
你选书我买单<i></i>
</p>
</div>
<div :class="['order-status', orderType === '0' ? 'dshe' : '' , (orderType==='1' || orderType==='2') ? 'dhuo' : '']">{{ orderName }}</div>
</div>
<div class="product-cont">
<div class="product-img">
<img src="" alt="" />
</div>
<div class="product-txt">
<div class="product-info">
<h4 class="overflow-txt-only">秒懂AI提问让人工智能开发大脑</h4>
<div class="author-date">
<p class="author overflow-txt-only">秋叶 刘进新 姜梅 定秋枫</p>
<p class="date overflow-txt-only">2023年07月</p>
</div>
<div class="intro overflow-txt">精心提炼20种GPT提问方法及指令从入门到进阶再到精通100个案例带你玩</div>
</div>
</div>
<div class="order-book-price">
<span><i></i>29.0</span>
<span>X1</span>
</div>
</div>
<div class="order-dealer">
<p class="dealer">京东商城</p>
<p class="order-pay">实付款<span><i></i>0</span></p>
</div>
</div>
<div class="order-all-info">
<div class="info-item">
<span>订单编号</span>
<p @click="copyOrderNum">20207896532145632103</p>
</div>
<div class="info-item">
<span>支付方式</span>
<p>图书馆统一支付</p>
</div>
<div class="info-item">
<span>创建时间</span>
<p>2023-11-18 13:56:30</p>
</div>
<div class="info-item" v-if="orderType === '1' || orderType === '2' || orderType === '3'">
<span>审核时间</span>
<p>2023-11-18 13:56:30</p>
</div>
<div class="info-item" v-if="orderType === '2' || orderType === '3'">
<span>发货时间</span>
<p>2023-11-18 13:56:30</p>
</div>
<div class="info-item" v-if="orderType === '3'">
<span>收货时间</span>
<p>2023-11-18 13:56:30</p>
</div>
</div>
</div>
</div>
</template>
<script>
import { Toast } from 'vant'
import { reactive, computed, onMounted, getCurrentInstance, toRefs, watch } from 'vue'
export default {
name: 'OrderDetail',
components:{ Toast },
setup() {
const { proxy } = getCurrentInstance()
let data = reactive({
orderType: 0,
orderName: computed(function(){
switch(data.orderType){
case '0' :
return '待审核'
break;
case '1' :
return '待发货'
break;
case '2' :
return '待收货'
break;
case '3' :
return '已完成'
break;
case '4' :
return '已取消'
break;
}
}),
orderInfo: computed(function(){
switch(data.orderType){
case '0' :
return '已提交图书馆,耐心等待审核'
break;
case '1' :
return '审核通过,马上安排发货'
break;
case '2' :
return '快递马上就到,请及时查收'
break;
case '3' :
return '订单已完成'
break;
case '4' :
return '订单已取消'
break;
}
})
})
onMounted(() => {
console.log(proxy.$route.query.type)
data.orderType = proxy.$route.query.type
})
let toBack = () => {
proxy.$router.go(-1)
}
let toLogisticsInfo = () => {
proxy.$router.push({ path: '/LogisticsInfo' })
}
let copyOrderNum = () => {
const logisticsInfo = '20207896532145632103';
if (navigator.clipboard) {
navigator.clipboard.writeText(logisticsInfo)
.then(() => {
Toast('订单编号已复制');
})
.catch(err => {
console.error('复制失败:', err);
});
} else {
const input = document.createElement('textarea');
input.style.position = 'fixed';
input.style.opacity = 0;
input.value = logisticsInfo;
document.body.appendChild(input);
input.select();
document.execCommand('copy');
document.body.removeChild(input);
Toast('订单编号已复制');
}
}
return {
...toRefs(data),
toBack,
toLogisticsInfo,
copyOrderNum
}
},
}
</script>
<style scoped lang="scss">
.order-detail{
margin-top: -2.06rem;
padding: 0 .32rem;
.detail-base{
padding: 0 0 .4rem 1.1rem ;
font-size: .28rem;
font-weight: bold;
color: #fff;
background: url('@assets/images/order-detail-img1.png') no-repeat left .1rem;
background-size: .78rem .78rem;
p{
font-size: .4rem;
}
}
.parcel-log{
position: relative;
padding: 0.26rem .26rem .26rem 1.2rem;
margin-bottom: .2rem;
font-size: .28rem;
box-shadow: 0px 0.03rem .6rem 1px rgba(0,0,0,0.08);
border-radius: 0.08rem;
background: url('@assets/images/order-detail-img3.png') no-repeat #fff .26rem .26rem;
background-size: .78rem .78rem;
&::after{
position: absolute;
right: .26rem;
top: 50%;
transform: translateY(-50%);
content: "";
width: .32rem;
height: .32rem;
background: url('@assets/images/arrow.png') no-repeat;
background-size: .32rem .32rem;
}
p:last-child{
font-size: .24rem;
opacity: 0.6;
}
}
.user-location{
position: relative;
padding: .29rem .26rem .26rem .8rem;
margin-bottom: .2rem;
font-size: .32rem;
box-shadow: 0px 0.03rem .6rem 1px rgba(0,0,0,0.08);
border-radius: 0.08rem;
background-color: #fff;
background: url('@assets/images/order-detail-img5.png') no-repeat #fff .26rem .34rem;
background-size: .4rem .4rem;
&::after{
position: absolute;
left: 0;
bottom: 0;
content: "";
width: calc(100%);
height: 0.05rem;
background: url('@assets/images/order-detail-img4.png') no-repeat left bottom;
background-size: 100% 0.05rem;
}
p:last-child{
font-size: .28rem;
opacity: 0.6;
span{
margin-left: .3rem;
}
}
}
.order-item{
margin-bottom: .2rem;
box-shadow: 0px 0.03rem 0.6rem 1px rgba(0, 0, 0, 0.08);
}
.order-all-info{
padding: .26rem;
font-size: .28rem;
box-shadow: 0px 0.03rem .6rem 1px rgba(0,0,0,0.08);
border-radius: 0.08rem;
background-color: #fff;
.info-item{
display: flex;
justify-content: space-between;
line-height: .68rem;
span{
display: block;
opacity: 0.6;
}
&:first-child{
p{
padding-right: .4rem;
background: url('@assets/images/icon-copy.png') no-repeat right center;
background-size: .24rem .24rem;
}
}
}
}
}
</style>
Loading…
Cancel
Save