5.17(添加租赁期列表

This commit is contained in:
Hong
2024-05-17 18:46:44 +08:00
parent ea3c3f9476
commit 89d7212eb2
10 changed files with 336 additions and 27 deletions

View File

@@ -10,6 +10,15 @@ export function getInformationOrderList(params) {
params params
}) })
} }
//获取已经租出去的车辆列表
export function byProductIdOrderList(params) {
return request({
url: `/api/front/car/information/orderByProductId/list/${params.productId}`,
method: 'get',
params
})
}
/** /**
* 获取租车订单详情 * 获取租车订单详情
*/ */

View File

@@ -312,6 +312,14 @@
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{
"path" : "pages/carShop/order/car_rental/car_hire_list",
"style" :
{
"navigationBarTitleText" : "出租详情",
"enablePullDownRefresh" : false
}
},
{ {
"path" : "pages/carShop/order/car_rental/advanced", "path" : "pages/carShop/order/car_rental/advanced",
"style" : "style" :

View File

@@ -55,7 +55,8 @@
</view> </view>
</view> </view>
</view> </view>
<view class="flex align-center" :class="[actType==1?'justify-end':'justify-between']"> <view v-if="carRentalValue!=2" class="flex align-center"
:class="[actType==1?'justify-end':'justify-between']">
<view v-if="actType==2" class="f-24 c666">已售:{{item.saleNum}}</view> <view v-if="actType==2" class="f-24 c666">已售:{{item.saleNum}}</view>
<view class="flex"> <view class="flex">
<u-button v-if="!item.isShow" plain shape="circle" @click="isShowCarFn(item,'del')" <u-button v-if="!item.isShow" plain shape="circle" @click="isShowCarFn(item,'del')"
@@ -69,6 +70,10 @@
color="#333333">{{item.isShow?'下架':'上架'}}</u-button> color="#333333">{{item.isShow?'下架':'上架'}}</u-button>
</view> </view>
</view> </view>
<view v-else class="flex align-center justify-end" @click="navHireCarFn(item)">
<view>出租:{{item.sales}} </view>
<image style="width: 14rpx;height: 26rpx;margin-left: 16rpx;" src="@/static/images/icon/arrow-right.png" mode=""></image>
</view>
</view> </view>
</z-paging> </z-paging>
</view> </view>
@@ -120,6 +125,13 @@
}; };
}, },
methods: { methods: {
//查看出租数量列表
navHireCarFn(item){
console.log(item);
uni.navigateTo({
url:'/pages/carShop/order/car_rental/car_hire_list?id='+item.id
})
},
//去编辑 //去编辑
navEditFn(item) { navEditFn(item) {
uni.navigateTo({ uni.navigateTo({
@@ -229,6 +241,7 @@
} else { } else {
obj.activityType = this.carRentalValue obj.activityType = this.carRentalValue
getInformationList(obj).then(res => { getInformationList(obj).then(res => {
console.log(res.data);
this.$refs.paging.complete(res.data.list); this.$refs.paging.complete(res.data.list);
}) })
} }

View File

@@ -0,0 +1,256 @@
<template>
<view>
<!-- 租车 -->
<z-paging ref="paging" v-model="dataList" @query="queryList">
<view>
<view class="list-cont" v-for="(item,index) in dataList" :key="index" @click="navParticularFn(item)">
<view class="user-data f-jcsb f-a-i">
<view class="f-a-i">
<view class="user-data-image">
<image :src="item.userAvatar" mode=""></image>
</view>
<view class="user-data-name">{{item.nickname}}</view>
</view>
<view class="user-data-state">
<text v-if="item.status==2">
<text v-if="item.giveStatus==0">租赁期</text>
<text v-if="item.giveStatus==1">司机申请提前还车</text>
<text v-if="item.giveStatus==2">提前还车申请通过</text>
<text v-if="item.giveStatus==3">提前还车申请未通过</text>
</text>
<text v-if="item.status==3">已完成</text>
</view>
</view>
<view :class="['f-a-i','car-rental']">
<image :src="item.image" mode=""></image>
<view class="car-rental-cont">
<view class="car-rental-cont-name">{{item.carNo}}</view>
<view class="car-rental-cont-auto-age">{{item.nickname}} | 租期 {{item.monthRent}}个月</view>
<view class="car-rental-cont-price">{{item.rentalPrice}}<text
class="car-rental-cont-price-tit">/</text>
</view>
</view>
</view>
</view>
</view>
</z-paging>
</view>
</template>
<script>
import {
byProductIdOrderList,
} from "@/api/carShop/order/order.js"
import config from '@/config';
export default {
components: {},
data() {
return {
config,
actTab: -1,
dataList: [],
orderId: '',
productId: ''
};
},
onLoad(optios) {
this.productId = optios.id
},
methods: {
//详情
navParticularFn(item) {
uni.navigateTo({
url: `/pages/carShop/order/car_rental/rental_particulars?id=${item.id}`
})
},
//列表
queryList(pageNo, pageSize) {
// 此处请求仅为演示,请替换为自己项目中的请求
let obj = {
page: pageNo,
limit: pageSize,
productId: this.productId
}
byProductIdOrderList(obj).then(res => {
console.log(res.data.list);
this.$refs.paging.complete(res.data.list);
})
},
},
onShow() {
if (this.$refs.paging) {
this.$refs.paging.refresh();
}
}
}
</script>
<style lang="scss">
page {
background: #f5f5f5;
}
.order-list-butt {
width: 100%;
padding: 0 24rpx;
.order-list-butt-go {
width: 120rpx;
font-size: 24rpx;
font-weight: 400;
color: #999999;
image {
width: 48rpx;
height: 48rpx;
}
}
.order-list-butt-refund {
padding: 16rpx 24rpx;
font-size: 24rpx;
font-weight: 400;
color: #111111;
background: #F5F5F5;
}
}
.user-data {
padding: 24rpx 24rpx 0 24rpx;
.user-data-image {
width: 48rpx;
height: 48rpx;
border-radius: 50%;
background: #f5f5f5;
image {
width: 100%;
height: 100%;
border-radius: 50%;
}
}
.user-data-name {
font-size: 28rpx;
font-weight: 400;
color: #000000;
margin-left: 16rpx;
}
.user-data-state {
font-size: 24rpx;
font-weight: 600;
color: #F20808;
}
}
.car-rental {
width: calc(100% - 48rpx);
margin: 24rpx 24rpx 0 24rpx;
padding-bottom: 24rpx;
border-bottom: 1rpx solid #eee;
.car-rental-cont {
height: 150rpx;
width: calc(100% - 218rpx);
margin-left: 16rpx;
display: flex;
flex-direction: column;
justify-content: space-around;
.car-rental-cont-name {
font-size: 32rpx;
font-weight: 400;
color: #111111;
}
.car-rental-cont-price {
font-size: 32rpx;
font-weight: 600;
color: #111111;
}
.car-rental-cont-total-payment {
font-size: 24rpx;
font-weight: 400;
color: #666666;
}
}
image {
width: 202rpx;
height: 150rpx;
}
}
.list-cont {
width: calc(100% - 48rpx);
margin: 24rpx;
background: #fff;
border-radius: 8rpx;
padding-bottom: 24rpx;
.order-price {
font-size: 24rpx;
font-weight: 400;
color: #999999;
margin: 16rpx 24rpx 38rpx 0;
text {
font-size: 40rpx;
font-weight: 600;
color: #000000;
}
}
}
.tab-list {
background: #fff;
view {
width: 88rpx;
padding-bottom: 12rpx;
border-bottom: 6rpx solid transparent;
font-size: 29rpx;
font-weight: 600;
color: #555555;
text-align: center;
}
.act-tab {
border-bottom: 6rpx solid #000;
font-size: 29rpx;
font-weight: 600;
color: #222222;
}
}
.act-flaf {
width: calc(100% - 56rpx);
margin-left: 24rpx;
}
.circle {
width: 30rpx;
height: 30rpx;
border-radius: 50%;
border: 2rpx solid #D7D7D7;
}
.my-evaluate {
background: #fff;
padding: 16rpx 24rpx;
width: calc(100% - 48rpx);
margin: 24rpx;
border-radius: 8rpx;
}
.butt-list {
width: 160rpx;
height: 56rpx;
margin-left: 16rpx;
}
</style>

View File

@@ -34,7 +34,7 @@
<image :src="item.image" mode=""></image> <image :src="item.image" mode=""></image>
<view class="car-rental-cont"> <view class="car-rental-cont">
<view class="car-rental-cont-name">{{item.title}}</view> <view class="car-rental-cont-name">{{item.title}}</view>
<view class="car-rental-cont-auto-age">车龄 {{item.carAge}} | 租期 {{item.monthRent}}</view> <view class="car-rental-cont-auto-age">车龄 {{item.carAge}} | 租期 {{item.monthRent}}个月</view>
<view class="car-rental-cont-price">{{item.rentalPrice}}<text <view class="car-rental-cont-price">{{item.rentalPrice}}<text
class="car-rental-cont-price-tit">/</text> class="car-rental-cont-price-tit">/</text>
</view> </view>

View File

@@ -51,6 +51,10 @@
<view class="title">接单信息</view> <view class="title">接单信息</view>
<view class="buy-info"> <view class="buy-info">
<view class="f-jcsb cont-list"> <view class="f-jcsb cont-list">
<view class="c444 f-28">车牌号</view>
<view class="f-28 c111">{{formData.carNo?formData.carNo:'--'}}</view>
</view>
<view class="f-jcsb cont-list cont-ma48">
<view class="c444 f-28">租赁费用</view> <view class="c444 f-28">租赁费用</view>
<view class="f-28 c111">¥{{formData.price}}</view> <view class="f-28 c111">¥{{formData.price}}</view>
</view> </view>

View File

@@ -46,6 +46,10 @@
<view class="title">费用及时间</view> <view class="title">费用及时间</view>
<view class="buy-info"> <view class="buy-info">
<view class="f-jcsb cont-list"> <view class="f-jcsb cont-list">
<view>车牌号</view>
<view>{{orderData.carNo?orderData.carNo:'--'}}</view>
</view>
<view class="f-jcsb cont-list cont-ma48">
<view>租赁费用</view> <view>租赁费用</view>
<view>¥{{orderData.price}}</view> <view>¥{{orderData.price}}</view>
</view> </view>
@@ -198,6 +202,7 @@
}, },
getInformationOrderDealerFn() { getInformationOrderDealerFn() {
getInformationOrderDealer(this.orderId).then(res => { getInformationOrderDealer(this.orderId).then(res => {
console.log( '详情',res.data);
this.orderData = res.data this.orderData = res.data
}) })
} }

View File

@@ -115,10 +115,7 @@
</view> </view>
</u-form-item> </u-form-item>
<u-form-item label="解绑日期" prop="dataTime" @click="datetimeShow=true" border-bottom='true'> <u-form-item label="解绑日期" prop="dataTime" @click="datetimeShow=true" border-bottom='true'>
<view class="lr" v-if="carInfo.unbindTime"> <view class="lr">
{{carInfo.unbindTime?carInfo.unbindTime:'--'}}
</view>
<view class="lr" v-else>
<u--input v-model="dataTime" placeholder="请选择(必选)" :readonly='true' <u--input v-model="dataTime" placeholder="请选择(必选)" :readonly='true'
suffixIcon="arrow-right" suffixIconStyle="color: #999999" suffixIcon="arrow-right" suffixIconStyle="color: #999999"
placeholderStyle=" color: #999999 " border="none" inputAlign='right'></u--input> placeholderStyle=" color: #999999 " border="none" inputAlign='right'></u--input>
@@ -144,12 +141,11 @@
placeholderStyle=" color: #999999 " border='none' inputAlign='right'></u--input> placeholderStyle=" color: #999999 " border='none' inputAlign='right'></u--input>
</view> </view>
</u-form-item> </u-form-item>
<u-form-item label="车主姓名" border-bottom='true' <u-form-item label="车主姓名" border-bottom='true'>
v-if="carInfo.category==2 || formData.category==2"> <!-- <view class="lr" v-if="carInfo.ownerName">
<view class="lr" v-if="carInfo.ownerName">
{{carInfo.ownerName?carInfo.ownerName:'--'}} {{carInfo.ownerName?carInfo.ownerName:'--'}}
</view> </view> -->
<view class="lr" v-else> <view class="lr" >
<u--input placeholder="请填写(非必填)" v-model="formData.ownerName" <u--input placeholder="请填写(非必填)" v-model="formData.ownerName"
placeholderStyle=" color: #999999" inputAlign="right" border='none'></u--input> placeholderStyle=" color: #999999" inputAlign="right" border='none'></u--input>
</view> </view>
@@ -439,25 +435,34 @@
if (!this.carInfo.company) { if (!this.carInfo.company) {
this.carInfo.company = this.formData.company this.carInfo.company = this.formData.company
} }
if (!this.carInfo.ownerName) { this.carInfo.ownerName = this.formData.ownerName
this.carInfo.ownerName = this.formData.ownerName
}
// 未实名 isCertification => true已实名 // 未实名 isCertification => true已实名
if (this.mineInfo.isCertification) { if (this.mineInfo.isCertification) {
if (this.noneInfo) { if (this.noneInfo) {
console.log(this.formData.unbindTime);
//carInfo.unbindTime
this.carInfo.unbindTime = this.formData.unbindTime this.carInfo.unbindTime = this.formData.unbindTime
console.log(this.carInfo); console.log(11111,this.carInfo);
userBindAPI(this.carInfo).then(res => { userBindAPI(this.carInfo).then(res => {
uni.redirectTo({ console.log(11111,res);
url: '/pages/driver/serve/repair/bind_result' if(res.data=='申请中'){
}) this.$toast('已提交换绑申请,请等待~')
}else{
uni.redirectTo({
url: '/pages/driver/serve/repair/bind_result'
})
}
}) })
} else { } else {
console.log(this.formData);
userBindAPI(this.formData).then(res => { userBindAPI(this.formData).then(res => {
uni.redirectTo({ console.log(2222,res);
url: '/pages/driver/serve/repair/bind_result' if(res.data=='申请中'){
}) this.$toast('已提交换绑申请,请等待~')
}else{
uni.redirectTo({
url: '/pages/driver/serve/repair/bind_result'
})
}
}) })
} }
} else { } else {
@@ -612,6 +617,7 @@
dir: 'crmebimage/public/product/' dir: 'crmebimage/public/product/'
}, null, res => { }, null, res => {
this.formData[key] = res.data this.formData[key] = res.data
this.carInfo[key] = res.data
this.videoOrImage = false this.videoOrImage = false
uni.hideLoading(); uni.hideLoading();
}); });

View File

@@ -248,7 +248,8 @@
</view> </view>
</view> </view>
<view class="problem-image"> <view class="problem-image">
<u-parse :content="problemTypeContent" :tagStyle="parseStyle"></u-parse> <rich-text :nodes="problemTypeContent" :tagStyle="parseStyle" :preview="false" :image-menu-prevent="false"></rich-text>
<!-- <u-parse :showImgMenu="false" :content="problemTypeContent" :tagStyle="parseStyle" :previewImg="false"></u-parse> -->
</view> </view>
</view> </view>
</view> </view>
@@ -352,7 +353,8 @@
//常见问题详情 //常见问题详情
problemTypeContent: '', problemTypeContent: '',
parseStyle: { parseStyle: {
img: 'width:654rpx;' img: 'width:654rpx;',
image:'width:654rpx;'
}, },
}; };
}, },
@@ -858,6 +860,12 @@
width: 654rpx; width: 654rpx;
border-radius: 8rpx; border-radius: 8rpx;
} }
.problem-image img {
display: block;
margin: 0 auto;
max-width: 100%;
height: auto;
}
} }
} }

View File

@@ -5,12 +5,12 @@
<!-- 占位图 --> <!-- 占位图 -->
<image v-if="n.name=='img'&&((opts[1]&&!ctrl[i])||ctrl[i]<0)" class="_img" :style="n.attrs.style" :src="ctrl[i]<0?opts[2]:opts[1]" mode="widthFix" /> <image v-if="n.name=='img'&&((opts[1]&&!ctrl[i])||ctrl[i]<0)" class="_img" :style="n.attrs.style" :src="ctrl[i]<0?opts[2]:opts[1]" mode="widthFix" />
<!-- 显示图片 --> <!-- 显示图片 -->
<!-- #ifndef H5 || APP-PLUS -->
<image v-if="n.name=='img'" :id="n.attrs.id" :class="'_img '+n.attrs.class" :style="(ctrl[i]==-1?'display:none;':'')+'width:'+(ctrl[i]||1)+'px;height:1px;'+n.attrs.style" :src="n.attrs.src" :mode="n.h?'':'widthFix'" :lazy-load="opts[0]" :webp="n.webp" :show-menu-by-longpress="opts[3]&&!n.attrs.ignore" :image-menu-prevent="!opts[3]||n.attrs.ignore" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap" />
<!-- #endif -->
<!-- #ifdef H5 || APP-PLUS --> <!-- #ifdef H5 || APP-PLUS -->
<img v-if="n.name=='img'" :id="n.attrs.id" :class="'_img '+n.attrs.class" :style="(ctrl[i]==-1?'display:none;':'')+n.attrs.style" :src="n.attrs.src||(ctrl.load?n.attrs['data-src']:'')" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap"/> <img v-if="n.name=='img'" :id="n.attrs.id" :class="'_img '+n.attrs.class" :style="(ctrl[i]==-1?'display:none;':'')+n.attrs.style" :src="n.attrs.src||(ctrl.load?n.attrs['data-src']:'')" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap"/>
<!-- #endif --> <!-- #endif -->
<!-- #ifndef H5 || APP-PLUS -->
<image v-if="n.name=='img'" :id="n.attrs.id" :class="'_img '+n.attrs.class" :style="(ctrl[i]==-1?'display:none;':'')+'width:'+(ctrl[i]||1)+'px;height:1px;'+n.attrs.style" :src="n.attrs.src" :mode="n.h?'':'widthFix'" :lazy-load="opts[0]" :webp="n.webp" :show-menu-by-longpress="opts[3]&&!n.attrs.ignore" :image-menu-prevent="!opts[3]||n.attrs.ignore" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap" />
<!-- #endif -->
<!-- 文本 --> <!-- 文本 -->
<!-- #ifndef MP-BAIDU --> <!-- #ifndef MP-BAIDU -->
<text v-else-if="n.type=='text'" decode>{{n.text}}</text> <text v-else-if="n.type=='text'" decode>{{n.text}}</text>