初始化

This commit is contained in:
魏啾
2024-03-21 15:38:10 +08:00
parent e2f200ae7a
commit 81321b648f
479 changed files with 60060 additions and 1 deletions

539
pages/my/order/index.vue Normal file
View File

@@ -0,0 +1,539 @@
<template>
<view class="content">
<view class="onecontent">
<view class="onecontent_oen flex-start">
<input class="onecontent_oen_input" type="text" placeholder="搜索订单/商家名/商品名">
<text class="onecontent_oen_text">搜索</text>
</view>
<view class="onecontent_tow flex-between">
<view ref="uTabs" class="onecontent_tow_item flex-colum" v-for="(item,index) in swipercurrentdata"
:key="index" @click="orderswitch(index)">
<view :class="swiperCurrent == index?'onecontent_tow_itemtexts':'onecontent_tow_itemtext'">
{{item.name}}
</view>
</view>
</view>
</view>
<view class="towcontent">
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{height:height}">
<swiper-item v-for="(item, index) in list_" :key="index">
<scroll-view scroll-y style="width: 100%;" :style="{height:height}" @scrolltolower="lower">
<view class="towcontentitem" v-for="(item,index1) in list_[index].data" :key="index1">
<view class="towcontentitemone flex-between">
<text class="towcontentitemone_one">KIKI美发龙首店</text>
<view class="towcontentitemone_tow flex-start">
<image class="towcontentitemone_towimage"
src="https://ointmentweapp.oss-cn-beijing.aliyuncs.com/image/my/order/shijian.png"
mode="">
</image>待付款
</view>
</view>
<view class="towcontentitemtow flex-start">
<image class="towcontentitemtow_imge" src="@/static/logo.png" mode=""></image>
<view class="towcontentitemtow_one flex-colum-start">
<text class="towcontentitemtow_one_one">人气高级染烫+单人护理</text>
<text class="towcontentitemtow_one_tow"><text
style="font-size:28rpx;">¥</text>120.00</text>
</view>
<view class="towcontentitemtow_tow">
x1
</view>
</view>
<view class="towcontentitemthere">
<view class="towcontentitemthereitem towcontentitemthereitem_tow"
@click="overlayshow = true">
取消订单
</view>
<view class="towcontentitemthereitem towcontentitemthereitem_there">
待服务
</view>
<view class="towcontentitemthereitem towcontentitemthereitem_one">
去付款
</view>
</view>
</view>
<u-loadmore style="padding-bottom: 20rpx;"
v-if="list_[index].is_end&&list_[index].data.length>0" :status="form.status" />
<view v-if="list_[index].data.length<=0" class="flex-colum_image flex-colum">
<image class=""
src="https://ointmentweapp.oss-cn-beijing.aliyuncs.com/image/my/order/nothave.png"
mode="">
</image>
<text>诶呀暂无数据~</text>
</view>
</scroll-view>
</swiper-item>
</swiper>
</view>
<u-overlay :show="overlayshow" @click="overlayshow = false">
<view class="warp">
<view class="rect flex-colum" @tap.stop>
<view class="rectone">
确定删除订单吗?
</view>
<view class="recttow flex-between">
<view class="recttow_one">
确定
</view>
<view class="recttow_tow" @click="overlayshow = false">
取消
</view>
</view>
</view>
</view>
</u-overlay>
</view>
</template>
<script>
export default {
data() {
return {
height: "",
// 因为内部的滑动机制限制请将tabs组件和swiper组件的current用不同变量赋值
current: 0, // tabs组件的current值表示当前活动的tab选项
swiperCurrent: 0, // swiper组件的current值表示当前那个swiper-item是活动的
overlayshow: false,
swipercurrentdata: [{
name: '全部'
}, {
name: '待付款'
}, {
name: '待服务'
}, {
name: '已完成'
}, {
name: '退款/售后'
}],
form: {
status: 'loadmore',
},
}
},
onLoad() {
// this.swiperCurrent = option.type;
},
onShow() {
this.init_fn();
},
mounted() {
var query = uni.createSelectorQuery().in(this).select('.onecontent')
query.boundingClientRect(ele => {
var that = this;
uni.getSystemInfo({
success(res) {
console.log(res, ele)
that.height = (res.windowHeight - ele.height) + "px";
console.log(that.height)
that = null;
}
})
}).exec();
},
methods: {
init_fn() {
this.list_ = {
list1: { //全部
data: [],
page: 1,
is_end: false,
},
list2: { //代付款
data: [],
page: 1,
is_end: false,
},
list3: { //待发货
data: [],
page: 1,
is_end: false,
},
list4: { //待收货
data: [],
page: 1,
is_end: false,
},
list5: { //已完成
data: [],
page: 1,
is_end: false,
},
}
for (let i = 0; i <= 4; i++) {
this.get_order_list(i);
}
},
async get_order_list(order_status) {
this.form.status = 'loading';
let page = null; //页数
switch (order_status) {
case 0:
order_status = "";
page = this.list_.list1.page;
break;
case 1:
order_status = 0;
page = this.list_.list2.page;
break;
case 2:
order_status = 1;
page = this.list_.list3.page;
break;
case 3:
order_status = 3;
page = this.list_.list4.page;
break;
case 4:
order_status = 5;
page = this.list_.list5.page;
break;
}
// let res = await uni.ajax.get_order_list({
// order_status: order_status, //加载那个
// page: page
// })
let res = []
// res.data.forEach(item=>{//计算待支付订单剩余时间
// if(item.order_status==0){
// item.timeDiff=(new Date(item.estimate_close_at).getTime() -new Date().getTime())/1000;
// }
// })
switch (order_status) {
case "":
this.paging(res, this.list_.list1)
break;
case 0:
this.paging(res, this.list_.list2)
break;
case 1:
this.paging(res, this.list_.list3)
break;
case 3:
this.paging(res, this.list_.list4)
break;
case 5:
this.paging(res, this.list_.list5)
break;
}
uni.hideLoading();
},
paging(res, list) {
list.data = list.data.concat(res.data);
if (res.next_page_url == null) {
list.is_end = true;
this.form.status = 'nomore'
} else {
this.form.status = 'loading';
list.page = list.page + 1;
}
},
lower() {
switch (this.current) {
case 0:
this.onReachBottom_fn(this.list_.list1)
break;
case 1:
this.onReachBottom_fn(this.list_.list2)
break;
case 2:
this.onReachBottom_fn(this.list_.list3)
break;
case 3:
this.onReachBottom_fn(this.list_.list4)
break;
case 4:
this.onReachBottom_fn(this.list_.list5)
break;
}
},
onReachBottom_fn(list) {
if (!list.is_end) {
this.get_order_list(this.current);
}
},
// tabs通知swiper切换
orderswitch(index) {
this.swiperCurrent = index;
},
// swiper-item左右移动通知tabs的滑块跟随移动
transition(e) {
let dx = e.detail.dx
console.log(e, dx)
this.$refs.uTabs.setDx(dx);
},
// 由于swiper的内部机制问题快速切换swiper不会触发dx的连续变化需要在结束时重置状态 swiper滑动结束分别设置tabs和swiper的状态
animationfinish(e) {
let current = e.detail.current;
this.swiperCurrent = current;
this.current = current;
},
}
}
</script>
<style lang="scss">
page {
background: #F6F6F6;
}
.content {
.onecontent {
width: 100%;
background: #FFFFFF;
padding: 10rpx 28rpx;
.onecontent_oen {
margin: 0 auto;
width: 100%;
height: 70rpx;
border-radius: 36rpx;
border: 2rpx solid #333333;
padding-right: 8rpx;
.onecontent_oen_input {
padding-left: 32rpx;
flex: 1;
}
.onecontent_oen_text {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
text-align: center;
line-height: 56rpx;
width: 116rpx;
height: 56rpx;
background: #333333;
border-radius: 36rpx;
}
}
.onecontent_tow {
padding: 32rpx 0 32rpx 0;
width: 100%;
.onecontent_tow_item {
position: relative;
.onecontent_tow_itemtexts {
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
}
.onecontent_tow_itemtext {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
}
.onecontent_tow_itemtexts::after {
content: '';
position: absolute;
bottom: -10rpx;
left: 50%;
transform: translateX(-50%);
width: 19.33rpx;
height: 6.66rpx;
background: url(https://ointmentweapp.oss-cn-beijing.aliyuncs.com/image/my/order/order1.png) no-repeat;
background-size: 100% 100%;
}
}
}
}
.towcontent {
padding: 0 28rpx;
.flex-colum_image {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
text {
margin-top: 30rpx;
font-size: 32rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #666666;
}
}
.towcontentitem {
margin-top: 32rpx;
padding: 24rpx;
width: 100%;
background: #FFFFFF;
border-radius: 12rpx;
.towcontentitemone {
padding-bottom: 16rpx;
border-bottom: 1px solid #F6F6F6;
.towcontentitemone_one {
font-size: 28rpx;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #333333;
}
.towcontentitemone_tow {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
.towcontentitemone_towimage {
margin-right: 10rpx;
width: 24rpx;
height: 24rpx;
}
}
}
.towcontentitemtow {
position: relative;
padding: 22rpx 0;
border-bottom: 1px solid #F6F6F6;
.towcontentitemtow_imge {
width: 144rpx;
height: 144rpx;
background: #666666;
border-radius: 12rpx;
}
.towcontentitemtow_one {
margin-left: 32rpx;
.towcontentitemtow_one_one {
font-size: 28rpx;
font-family: PingFang SC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
}
.towcontentitemtow_one_tow {
margin-top: 24rpx;
font-size: 40rpx;
font-family: Roboto-Bold, Roboto;
font-weight: bold;
color: #FC5F69;
}
}
.towcontentitemtow_tow {
position: absolute;
bottom: 32rpx;
right: 0;
font-size: 28rpx;
font-family: Roboto-Regular, Roboto;
font-weight: 400;
color: #999999;
}
}
.towcontentitemthere {
width: 100%;
margin-top: 16rpx;
display: flex;
justify-content: flex-end;
align-items: center;
flex-wrap: wrap;
.towcontentitemthereitem {
margin-left: 24rpx;
padding: 8rpx 32rpx;
font-size: 28rpx;
border-radius: 28rpx;
}
.towcontentitemthereitem_one {
background: linear-gradient(101deg, #FA8E5D 0%, #F45E4D 100%);
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
.towcontentitemthereitem_tow {
background: #F6F6F6;
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #999999;
}
.towcontentitemthereitem_there {
background: linear-gradient(101deg, #8083A7 0%, #4D4E64 100%);
font-family: PingFang SC-Bold, PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
}
}
}
.warp {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
.rect {
padding: 40rpx 68rpx;
width: 480rpx;
background: #FFFFFF;
border-radius: 42rpx;
.rectone {
font-size: 32rpx;
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
font-weight: bold;
color: #333333;
}
.recttow {
width: 100%;
margin-top: 32rpx;
.recttow_one {
padding: 8rpx 40rpx;
background: #FFFFFF;
border-radius: 26rpx;
border: 2rpx solid #999999;
font-size: 28rpx;
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
font-weight: 400;
color: #333333;
}
.recttow_tow {
padding: 8rpx 40rpx;
background: #333333;
font-size: 28rpx;
font-family: Source Han Sans CN-Medium, Source Han Sans CN;
font-weight: 500;
color: #FFFFFF;
border-radius: 26rpx;
}
}
}
}
}
</style>