bike/pages_admin/admin_order.vue

478 lines
11 KiB
Vue
Raw Normal View History

2024-05-08 23:18:30 +08:00
<template>
<view class="page">
<u-navbar :is-back="false" title="订单" :border-bottom="false" :background="bgc" title-color='#2E4975'
title-size='36' height='36'></u-navbar>
<view class="top_box">
<view class="left_text">
时间范围
</view>
<view class="timebox">
<view class="left_time" @click="time1=true">
{{firsTime}}
</view>
-
<view class="right_time" @click="time2=true">
{{lasTime}}
</view>
</view>
</view>
<view class="top_box">
<view class="left_text">
手机号
</view>
<view class="sear_ipt">
<input type="text"
v-model="searchKeyword"
placeholder="请输入内容"
class="input"
placeholder-style="color:#C7CDD3"
@input="search()">
</view>
</view>
<view class="tap">
<view class="tap_cont " :class="curtitidx==0?'act1':''" @click="changeidx(0)">
全部
</view>
<view class="tap_cont" :class="curtitidx==1?'act1':''" @click="changeidx(1)">
进行中
</view>
<view class="tap_cont" :class="curtitidx==2?'act1':''" @click="changeidx(2)">
待支付
</view>
<view class="tap_cont" :class="curtitidx==3?'act1':''" @click="changeidx(3)">
已完成
</view>
</view>
<u-mask :show="show" @click="show = false" :z-index='100' />
<view class="tip_box" v-if="show">
<view class="top">
<view class="tip">
提示
</view>
<view class="txt">
确定要辅助还车吗
</view>
</view>
<view class="bot">
<view class="bot_left" @click="show=false">
取消
</view>
<view class="bot_right">
确定
</view>
</view>
</view>
<u-picker mode="time" v-model="time1" :params="params" @confirm="confirm1" :default-time='pickertime'></u-picker>
<u-picker mode="time" v-model="time2" :params="params" @confirm="confirm2" :default-time='pickertime'></u-picker>
<view class="warp_box">
<swiper class="swiper" :style="{ height: swiperHeight + 'rpx' }" :current='curtitidx' @change="swiperchange" next-margin='-20rpx'>
<swiper-item>
<view class="swiper-item ">
<view class="card" @click="todetail(item.id)" v-for="imte in 3" :key="imte">
<view class="line"></view>
<view class="top_info">
<view class="top_info_left">
订单编号12635412134568461
</view>
<view class="top_info_right">
<view class="yuan"></view>
进行中
</view>
</view>
<view class="lines"></view>
<view class="order_info">
<view class="info_li">
租赁用户15863007894
</view>
<view class="info_li">
<view class="half_info_li">
车辆编号122323
</view>
<view class="half_info_li">
租赁时长6分钟
</view>
</view>
<view class="info_li">
订单费用6.00
</view>
<view class="info_li">
开关时间2024.02.13 14:24:03-2024.02.13 14:30:03
</view>
</view>
<view class="lines"></view>
<view class="btn_box">
<view class="btn">
辅助还车
</view>
<view class="btn_line">
</view>
<view class="btn">
查看详情
</view>
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item ">
<view class="card" v-for="(item,index) in eledata" :key="index" v-if="item.status!=1" @click="todetail(item.id)">
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item ">
<view class="card" v-for="(item,index) in fixdata" :key="index" v-if="item.status!=1" @click="todetail(item.id)">
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item ">
<view class="card" v-for="(item,index ) in alreadyList" :key="index" @click="todetail(item.id)">
</view>
</view>
</swiper-item>
</swiper>
</view>
<tab-bar :indexs='2' style=""></tab-bar>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#F7FAFE",
},
params: {
year: true,
month: true,
day: true,
hour: false,
minute: false,
second: false
},
pickertime: '',
time1:false,
time2:false,
lasTime:'00-00',
firsTime:'00-00',
searchKeyword:'',
curtitidx:0,
swiperHeight:414*3,
fixdata: [],
eledata: [],
listData: [],
alreadyList:[],
show:true
}
},
onShow() {
this.$store.dispatch('userInfo', this.$u).then(() => {
// 执行其他操作...
});
},
watch: {
curtitidx(newValue, oldValue) {
// 处理userId变化的逻辑
console.log('userId 发生变化', newValue, oldValue);
if(newValue==0){
this.swiperHeight=(this.listData.length*440)
}else if(newValue==1){
this.swiperHeight=this.eledata.length*440
}else if(newValue==1){
this.swiperHeight=this.fixdata.length*440
}
}
},
computed: {
userId() {
return this.$store.getters.userId;
},
},
methods: {
changeidx(idx){
this.curtitidx=idx
},
swiperchange(e){
this.curtitidx=e.detail.current
console.log(e,'eeeeeeeee');
},
confirm1(e) {
console.log(e,'eeeeeeee');
this.firsTime = e.year+'-'+e.month+'-'+e.day
},
confirm2(e) {
this.lasTime = e.year+'-'+e.month+'-'+e.day
},
search() {
// 根据关键字过滤 this.classlist
if (this.searchKeyword !== '') {
const filteredList = JSON.parse(JSON.stringify(this.orgstulist)).filter(item => {
// 匹配 nickName 或者 id
return item.nickName.includes(this.searchKeyword) || item.id.toString().includes(this.searchKeyword);
});
// 更新 this.classlist 为过滤后的列表
this.stulist = filteredList;
} else {
this.fuwei();
}
},
}
}
</script>
<style lang="scss">
page {
background-color: #fff;
}
.page {
width: 750rpx;
.tip_box {
position: fixed;
left: 72rpx;
top: 628rpx;
width: 610rpx;
// height: 282rpx;
background: #FFFFFF;
border-radius: 30rpx 30rpx 30rpx 30rpx;
z-index: 110;
padding-bottom: 100rpx;
.top {
padding: 52rpx 38rpx 42rpx 36rpx;
.tip{
width: 100%;
text-align: center;
font-weight: 700;
font-size: 32rpx;
color: #3D3D3D;
}
.txt {
margin-top: 32rpx;
width: 100%;
text-align: center;
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
}
}
.bot {
position: absolute;
width: 610rpx;
// border-top: 2rpx solid #D8D8D8;
display: flex;
flex-wrap: nowrap;
// height: 100%;
bottom: -20rpx;
.bot_left {
border-radius: 0rpx 0rpx 0rpx 30rpx;
width: 50%;
height: 86rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
background: #EEEEEE;
}
.bot_right {
border-radius: 0rpx 0rpx 30rpx 0rpx;
width: 50%;
height: 86rpx;
background: #4C97E7;
display: flex;
align-items: center;
justify-content: center;
color: #FFFFFF;
// border-left: 2rpx solid #D8D8D8;
font-weight: 500;
font-size: 32rpx;
// color: #4C97E7;
}
}
}
.warp_box{
.swiper{
.swiper-item{
.card{
margin: 16rpx auto;
width: 750rpx;
background: #fff;
.btn_box{
display: flex;
flex-wrap: nowrap;
align-items: center;
width: 100%;
height: 96rpx;
.btn{
display: flex;
align-items: center;
justify-content: center;
font-weight: 400;
font-size: 36rpx;
color: #3D3D3D;
width: 49%;
}
.btn_line{
width: 0rpx;
height: 51rpx;
border: 2rpx solid #4C97E7;
}
}
.order_info{
padding: 26rpx 30rpx ;
display: flex;
flex-wrap: wrap;
.info_li{
display: flex;
flex-wrap: nowrap;
width: 100%;
font-weight: 400;
font-size: 28rpx;
color: #808080;
.half_info_li{
width: 50%;
font-weight: 400;
font-size: 28rpx;
color: #808080;
}
}
}
.line{
width: 750rpx;
height: 22rpx;
background: #F6F6F6;
border-radius: 0rpx 0rpx 0rpx 0rpx;
}
.lines{
width: 750rpx;
height: 2rpx;
background: #D8D8D8;
// border: 2rpx solid #D8D8D8;
}
.top_info{
padding: 24rpx 32rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
.top_info_left{
font-weight: 400;
font-size: 28rpx;
color: #3D3D3D;
}
.top_info_right{
display: flex;
flex-wrap: nowrap;
align-items: center;
margin-left: auto;
.yuan{
margin-right: 12rpx;
border-radius: 50%;
width: 14rpx;
height: 14rpx;
background: #4C97E7;
}
font-weight: 400;
font-size: 28rpx;
color: #4C97E7;
}
}
}
}
}
}
.tap{
margin-top: 24rpx;
width: 750rpx;
display: flex;
flex-wrap: nowrap;
align-items: center;
justify-content: space-around;
.tap_cont{
text-align: center;
padding-bottom: 15rpx;
width: 100rpx;
font-weight: 500;
font-size: 32rpx;
color: #3D3D3D;
border-bottom: 6rpx solid #fff ;
}
.act1{
border-bottom: 6rpx solid #4C97E7 ;
color: #4C97E7;
}
}
.top_box {
display: flex;
flex-wrap: nowrap;
align-items: center;
padding: 28rpx 30rpx;
margin: 20rpx auto;
width: 672rpx;
height: 100rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.07);
border-radius: 10rpx 10rpx 10rpx 10rpx;
.left_text {
width: 25%;
font-weight: 400;
font-size: 32rpx;
color: #3D3D3D;
}
.timebox {
width: 75%;
display: flex;
flex-wrap: nowrap;
align-items: center;
margin-left: 34rpx;
.left_time {
text-align: center;
margin-right: 6rpx;
height: 50rpx;
width: 45%;
border: 2rpx solid #ccc;
border-radius: 12rpx;
font-weight: 400;
font-size: 32rpx;
color: #979797;
}
.right_time {
text-align: center;
margin-left: 6rpx;
height: 50rpx;
width: 45%;
border: 2rpx solid #ccc;
border-radius: 12rpx;
font-weight: 400;
font-size: 32rpx;
color: #979797;
}
}
}
}
</style>