页面开发
@ -5,6 +5,9 @@
|
||||
<view class="navigationBarTitle" :style="{ color: titleColor }">
|
||||
{{ title }}
|
||||
</view>
|
||||
<view class="navigationBarBackExtra">
|
||||
<slot name="extra"></slot?>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -66,6 +69,11 @@ export default {
|
||||
position: absolute;
|
||||
left: 20rpx;
|
||||
}
|
||||
|
||||
.navigationBarBackExtra {
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
}
|
||||
.navigationBarTitle {
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
265
components/orderCard/OrderCard.vue
Normal file
@ -0,0 +1,265 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="orderCard" @click="onShowDetail">
|
||||
<view class="orderCardHeader">
|
||||
<text class="orderCardType">{{orderData.rescueTypeStr}}</text>
|
||||
<text class="orderCardTitle">{{ orderData.rescuePosition }}</text>
|
||||
</view>
|
||||
<view class="orderCardStatus">
|
||||
<view class="orderCardStatusData">
|
||||
<template v-if="orderData.rescueStatus > 2">
|
||||
<image src="@/static/icons/homeOrderCard/dhjl.png" class="orderCardDistanceIcon" mode="aspectFit"></image>
|
||||
<text class="orderCardDistanceValue">{{orderData.distance / 1000 || 0}}KM</text>
|
||||
|
||||
<image src="@/static/icons/homeOrderCard/yjsj.png" class="orderCardPredictIcon"></image>
|
||||
<text class="orderCardPredictDate">{{orderData.needTime || 0}}分钟</text>
|
||||
到达
|
||||
</template>
|
||||
</view>
|
||||
<text :class="{ toRescued: orderData.rescueStatus <= 2, inRescue: orderData.rescueStatus > 2 }"
|
||||
class="orderCardFlag">
|
||||
<template v-if="orderData.rescueStatus <= 2">{{orderData.rescueStatusStr}}</template>
|
||||
<template v-if="orderData.rescueStatus > 2">{{orderData.rescueStatusStr}}</template>
|
||||
</text>
|
||||
</view>
|
||||
<view class="orderCardProcess">
|
||||
<view v-if="orderData.rescueStatus == 2" class="orderCardSendOrders">
|
||||
系统正在派单中...
|
||||
</view>
|
||||
<view v-if="orderData.rescueStatus > 2">
|
||||
<text class="orderCardDriver">先伟</text>
|
||||
驾驶
|
||||
<text class="orderCardCarNo">鲁A12345</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="orderCardFooter">
|
||||
<text class="orderCardDateTime">2024-08-18 10:33</text>
|
||||
<view class="orderCardBtnGroup">
|
||||
<template v-if="role == 'ddzx' && orderData.rescueStatus <= 2">
|
||||
<view @click.stop="deleteId" class="orderCardBtnGroupItem" style="background-color: #fff;color: #317DFA">
|
||||
删除订单</view>
|
||||
<view @click.stop="getzhipai" class="orderCardBtnGroupItem">指派司机</view>
|
||||
</template>
|
||||
<template v-else-if="orderData.rescueStatus > 2">
|
||||
<view @click.stop="gettel" class="orderCardBtnGroupItem">联系司机</view>
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<u-picker :show="show" :columns="columns" @confirm="confirms" @cancel="cancels" keyName="realName"></u-picker>
|
||||
<u-modal :show="showDelete" title="是否确认删除" :showCancelButton="true" @confirm="deleteOk"
|
||||
@cancel="deleteCancel"></u-modal>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '../../utils/request';
|
||||
export default {
|
||||
props: {
|
||||
orderData: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {}
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.role = uni.getStorageSync('role')
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
columns: [],
|
||||
id: '',
|
||||
show: false,
|
||||
showDelete: false,
|
||||
role: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onShowDetail() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/details/details?id=' + this.orderData.id
|
||||
})
|
||||
},
|
||||
// zhi指派司机
|
||||
getzhipai() {
|
||||
console.log('getzhipai: ', this.getzhipai);
|
||||
this.getsjlist()
|
||||
this.show = true
|
||||
},
|
||||
// 获取司机列表
|
||||
getsjlist() {
|
||||
this.columns = []
|
||||
// 获取司机信息
|
||||
request({
|
||||
url: '/app/rescueInfo/driverInMap?searchValue=',
|
||||
method: 'get',
|
||||
}).then((res) => {
|
||||
this.columns.push(res.data)
|
||||
})
|
||||
},
|
||||
// 指派确定
|
||||
confirms(e) {
|
||||
console.log(e);
|
||||
let data = {
|
||||
rescueId: this.orderData.id,
|
||||
driverId: e.value[0].id
|
||||
}
|
||||
request({
|
||||
url: '/system/rescueInfo/designateDriver',
|
||||
method: 'post',
|
||||
params: data
|
||||
}).then((res) => {
|
||||
console.log('确认司机', res);
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '指派成功'
|
||||
})
|
||||
this.$emit('refresh')
|
||||
}
|
||||
})
|
||||
this.show = false
|
||||
},
|
||||
// 指派取消
|
||||
cancels() {
|
||||
this.show = false
|
||||
},
|
||||
// 删除订单
|
||||
deleteId() {
|
||||
this.showDelete = true
|
||||
return
|
||||
},
|
||||
deleteOk() {
|
||||
request({
|
||||
url: "/app/rescueInfo/delRescueInfo?id=" + this.orderData.id,
|
||||
method: 'post',
|
||||
}).then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: "删除成功"
|
||||
})
|
||||
this.$emit('deleteOk')
|
||||
}
|
||||
})
|
||||
this.showDelete = false
|
||||
},
|
||||
deleteCancel() {
|
||||
console.log("取消");
|
||||
this.showDelete = false
|
||||
},
|
||||
// 联系司机
|
||||
gettel() {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: this.orderData.driverPhoneNum //仅为示例
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.orderCard {
|
||||
background-color: #fff;
|
||||
padding: 24rpx;
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 22rpx;
|
||||
box-shadow: 2rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.orderCardHeader {
|
||||
line-height: 1.5;
|
||||
|
||||
.orderCardType {
|
||||
background-color: #EAF1FE;
|
||||
color: #317DFA;
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 16rpx 0 16rpx 0;
|
||||
font-size: 24rpx;
|
||||
margin-right: 12rpx;
|
||||
}
|
||||
|
||||
.orderCardTitle {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.orderCardStatus {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.orderCardStatusData {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 4rpx;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.orderCardDistanceIcon,
|
||||
.orderCardPredictIcon {
|
||||
width: 36rpx;
|
||||
height: 36rpx;
|
||||
}
|
||||
|
||||
.orderCardDistanceValue {
|
||||
color: #919191;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.orderCardPredictDate {
|
||||
color: #317DFA;
|
||||
}
|
||||
|
||||
.orderCardFlag {
|
||||
font-size: 24rpx;
|
||||
padding: 4rpx 16rpx;
|
||||
border-radius: 4rpx;
|
||||
|
||||
&.inRescue {
|
||||
background-color: #ECF8EA;
|
||||
color: #2FB821;
|
||||
}
|
||||
|
||||
&.toRescued {
|
||||
background-color: #FAE9E9;
|
||||
color: #D42424;
|
||||
}
|
||||
}
|
||||
|
||||
.orderCardProcess {
|
||||
|
||||
.orderCardSendOrders,
|
||||
.orderCardDriver,
|
||||
.orderCardCarNo {
|
||||
color: #317DFA;
|
||||
}
|
||||
}
|
||||
|
||||
.orderCardFooter {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.orderCardDateTime {
|
||||
color: #919191;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.orderCardBtnGroup {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 16rpx;
|
||||
}
|
||||
|
||||
.orderCardBtnGroupItem {
|
||||
background-color: #317DFA;
|
||||
color: #fff;
|
||||
border: 1px solid #317DFA;
|
||||
padding: 8rpx 16rpx;
|
||||
border-radius: 28rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,22 +1,22 @@
|
||||
<template>
|
||||
<view class="bottoms">
|
||||
|
||||
<view class="box" @click="getgogo(1)" v-if="role == 'user' ">
|
||||
<view class="box" :class="{active: aindex == 1}" @click="getgogo(1)" v-if="role == 'user' ">
|
||||
<view class="imgs">
|
||||
<image src="../../static/home.png" v-show="aindex == 1"></image>
|
||||
<image src="../../static/homex.png" v-show="aindex != 1"></image>
|
||||
<image src="@/static/icons/tabbar/home.png" v-show="aindex != 1"></image>
|
||||
<image src="@/static/icons/tabbar/home-checked.png" v-show="aindex == 1"></image>
|
||||
</view>
|
||||
<view class="">首页</view>
|
||||
</view>
|
||||
<view class="box" @click="getgogo(8)" v-if="role == 'police' ">
|
||||
<view class="box" :class="{active: aindex == 8}" @click="getgogo(8)" v-if="role == 'police' ">
|
||||
<view class="imgs">
|
||||
<image src="../../static/home.png" v-show="aindex == 8"></image>
|
||||
<image src="../../static/homex.png" v-show="aindex != 8"></image>
|
||||
<image src="@/static/icons/tabbar/home.png" v-show="aindex != 8"></image>
|
||||
<image src="@/static/icons/tabbar/home-checked.png" v-show="aindex == 8"></image>
|
||||
</view>
|
||||
<view class="">首页</view>
|
||||
</view>
|
||||
|
||||
<view class="box" @click="getgogo(2)">
|
||||
<!-- <view class="box" @click="getgogo(2)">
|
||||
<view class="imgs" style="position: relative;">
|
||||
<view class="hongdian" v-if=" msgNum && msgNum != 0 ">
|
||||
{{msgNum || ""}}
|
||||
@ -27,21 +27,21 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="">消息</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<!-- #ifdef APP-PLUS || H5 -->
|
||||
<view class="box" @click="getgogo(3)">
|
||||
<view class="box" :class="{active: aindex == 3}" @click="getgogo(3)">
|
||||
<view class="imgs">
|
||||
<image src="../../static/ycar.png" v-show="aindex == 3"></image>
|
||||
<image src="../../static/ycarx.png" v-show="aindex != 3"></image>
|
||||
<image src="@/static/icons/tabbar/car.png" v-show="aindex != 3"></image>
|
||||
<image src="@/static/icons/tabbar/car-checked.png" v-show="aindex == 3"></image>
|
||||
</view>
|
||||
<view class="">运力</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
|
||||
<view class="box" @click="getgogo(4)">
|
||||
<view class="box" :class="{active: aindex == 4}" @click="getgogo(4)">
|
||||
<view class="imgs">
|
||||
<image src="../../static/my.png" v-show="aindex == 4"></image>
|
||||
<image src="../../static/myx.png" v-show="aindex != 4"></image>
|
||||
<image src="@/static/icons/tabbar/my.png" v-show="aindex != 4"></image>
|
||||
<image src="@/static/icons/tabbar/my-checked.png" v-show="aindex == 4"></image>
|
||||
</view>
|
||||
<view class="">个人中心</view>
|
||||
</view>
|
||||
@ -218,28 +218,38 @@
|
||||
<style scoped lang="scss">
|
||||
.bottoms {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
background: #242A38;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
padding: 12rpx 40rpx;
|
||||
box-sizing: border-box;
|
||||
box-shadow: 4rpx 2rpx 12rpx 0 #c3c3c3;
|
||||
}
|
||||
|
||||
.box {
|
||||
width: 25%;
|
||||
text-align: center;
|
||||
flex: 1;
|
||||
width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 12px;
|
||||
color: #929292;
|
||||
|
||||
&.active {
|
||||
color: #327DFB;
|
||||
}
|
||||
}
|
||||
|
||||
.imgs {
|
||||
margin: 0 auto;
|
||||
margin-top: 10px;
|
||||
width: 18px;
|
||||
height: 16px;
|
||||
width: 50rpx;
|
||||
height: 50rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
|
@ -10,15 +10,15 @@
|
||||
<view class="" v-if="!detailsinfo.driverInfo">
|
||||
|
||||
<map style="width: 100%;height: 250px;" :layer-style='5' :latitude="detailsinfo.rescueInfo.rescueLatitude"
|
||||
:longitude="detailsinfo.rescueInfo.rescueLongitude" :markers="marker" :scale="scale"
|
||||
@markertap="markertap" @callouttap='callouttap' @tap="tap">
|
||||
:longitude="detailsinfo.rescueInfo.rescueLongitude" :markers="marker" :scale="scale" @markertap="markertap"
|
||||
@callouttap='callouttap' @tap="tap">
|
||||
</map>
|
||||
</view>
|
||||
<view class="" v-if="detailsinfo.driverInfo">
|
||||
|
||||
<map style="width: 100%;height: 250px;" :layer-style='5' :latitude="detailsinfo.driverInfo.driverLatitude"
|
||||
:longitude="detailsinfo.driverInfo.driverLongitude" :markers="marker" :scale="scale"
|
||||
@markertap="markertap" @callouttap='callouttap' @tap="tap">
|
||||
:longitude="detailsinfo.driverInfo.driverLongitude" :markers="marker" :scale="scale" @markertap="markertap"
|
||||
@callouttap='callouttap' @tap="tap">
|
||||
</map>
|
||||
</view>
|
||||
|
||||
@ -26,57 +26,91 @@
|
||||
<view class="zzhui">
|
||||
<view class="c-box">
|
||||
<view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 1">您的订单还未开始,请耐心等待</view>
|
||||
<view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 2">您的订单处于待开始,请耐心等待</view>
|
||||
<view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 3">救援人员仍在赶来的路上,请耐心等待</view>
|
||||
<view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 5">您的订单已经完成</view>
|
||||
<view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 6">待取车</view>
|
||||
<view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 7">您的订单已取消</view>
|
||||
<view class="box-bs" v-if="detailsinfo.driverInfo != '' ">
|
||||
<view class="bs-lsft">
|
||||
<view class="box-dtitle">{{detailsinfo.rescueInfo.licenseNum || ''}} </view>
|
||||
<view class="dix" style="margin-top: 15px; font-size: 12px;">
|
||||
<text style="margin-right: 10px;">{{detailsinfo.driverInfo.realName || '司机'}}</text>
|
||||
<view style="margin-right: 10px;">
|
||||
<uni-icons type="star-filled" color="#FFA632" size="12"></uni-icons>
|
||||
<text>{{detailsinfo.driverInfo.avgScore || 0}}</text>
|
||||
<view class="box-title" v-else-if="detailsinfo.rescueInfo.rescueStatus == 7">您的订单已取消</view>
|
||||
<view class="box-title" v-else-if="detailsinfo.rescueInfo.rescueStatus == 2">您的订单处于待开始,请耐心等待</view>
|
||||
<view v-else class="box-title" style="display: flex;column-gap: 2px;align-items: center;">
|
||||
<text>{{detailsinfo.rescueInfo.driverCarNum}}</text>
|
||||
<text>|</text>
|
||||
<text></text>
|
||||
<text>|</text>
|
||||
<text></text>
|
||||
</view>
|
||||
<text>{{detailsinfo.driverInfo.rescueNum || 0}}次救援</text>
|
||||
<!-- <view class="box-title" style="display: flex;column-gap: 2px;align-items: center;"
|
||||
v-if="detailsinfo.rescueInfo.rescueStatus == 3">
|
||||
<text>{{detailsinfo.rescueInfo.driverCarNum}}</text>
|
||||
<text>|</text>
|
||||
<text></text>
|
||||
<text>|</text>
|
||||
<text></text>
|
||||
</view> -->
|
||||
<!-- <view class="box" v-if="detailsinfo.rescueInfo.rescueStatus == 3">
|
||||
救援人员仍在赶来的路上,请耐心等待
|
||||
</view> -->
|
||||
<!-- <view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 3"></view> -->
|
||||
<!-- <view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 5">您的订单已经完成</view>
|
||||
<view class="box-title" v-if="detailsinfo.rescueInfo.rescueStatus == 6">待取车</view> -->
|
||||
|
||||
<view class="touxiang">
|
||||
<image :src=" baseUrl + detailsinfo.driverInfo.avatar " mode=""></image>
|
||||
</view>
|
||||
<view class="box-bs" v-if="detailsinfo.driverInfo != '' ">
|
||||
<view class="orderCardStatusData" v-if="detailsinfo.rescueInfo.rescueStatus > 2">
|
||||
<image src="@/static/icons/homeOrderCard/dhjl.png" class="orderCardDistanceIcon" mode="aspectFit"></image>
|
||||
<text class="orderCardDistanceValue">{{detailsinfo.rescueInfo.distance / 1000 || 0}}KM</text>
|
||||
|
||||
<image src="@/static/icons/homeOrderCard/yjsj.png" class="orderCardPredictIcon"></image>
|
||||
<text class="orderCardPredictDate">{{detailsinfo.rescueInfo.needTime || 0}}分钟</text>
|
||||
到达
|
||||
</view>
|
||||
<view class="bs-lsft">
|
||||
<!-- <view class="box-dtitle">{{detailsinfo.rescueInfo.licenseNum || ''}} </view> -->
|
||||
<view class="dix">
|
||||
<text>{{detailsinfo.driverInfo.realName || '司机'}}</text>
|
||||
<view>
|
||||
<uni-icons type="star-filled" color="#FFA632" size="14"></uni-icons>
|
||||
<text>{{(detailsinfo.driverInfo.avgScore || 0).toFixed(1)}}</text>
|
||||
</view>
|
||||
<text>{{detailsinfo.driverInfo.rescueNum || 0}}单</text>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="touxiang">
|
||||
<image :src=" baseUrl + avatar " mode=""></image>
|
||||
<view class="box-bs-footer">
|
||||
<view class="box-bs-footer-btn cancelOrderBtn">取消订单</view>
|
||||
<view class="box-bs-footer-btn callDriverBtn" @click="gettel(detailsinfo.driverInfo.phonenumber)">联系司机
|
||||
</view>
|
||||
</view>
|
||||
<view class="lanniu" v-if="detailsinfo.driverInfo != '' "
|
||||
</view>
|
||||
<!-- <view class="lanniu" v-if="detailsinfo.driverInfo != '' "
|
||||
@click="gettel(detailsinfo.driverInfo.phonenumber)">
|
||||
<uni-icons type="phone-filled" color="#ffffff" size="16"></uni-icons>
|
||||
<text>拨打电话</text>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
</view>
|
||||
|
||||
<view class="cont-bs" v-if="detailsinfo.setMoney != '' ">
|
||||
<view class="dix">
|
||||
<text>订单金额: </text>
|
||||
<text style="color: #FF522A;">{{detailsinfo.setMoney / 100}}元</text>
|
||||
<text style="color: #000000;font-size: 32rpx;">订单金额: </text>
|
||||
<text style="color: #FF522A;font-size: 32rpx;">{{detailsinfo.setMoney / 100}}</text>
|
||||
<text>元</text>
|
||||
</view>
|
||||
<view class="dix">
|
||||
|
||||
<uni-icons type="right" size="16"></uni-icons>
|
||||
<uni-icons type="right" size="16" color="#C7C7CC"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
<view class="c-box" style="margin-bottom: 15px;"
|
||||
v-if="detailsinfo.rescueInfo.orderStatus == 3 ||detailsinfo.rescueInfo.orderStatus == 2 ">
|
||||
<view class="">评价:</view>
|
||||
<view style="margin-top: 10px ; margin-left: 5px; ">
|
||||
<u-rate :count="count" v-model="value" active-color="#ffff00" inactive-color="#b2b2b2"></u-rate>
|
||||
<view style="font-size: 32rpx;color: #000;font-weight: bold" class="">评价内容</view>
|
||||
<view style="margin: 20rpx 0 20rpx 0;">
|
||||
<u-rate :count="count" v-model="value" active-color="#FFA632" inactive-color="#D7D7D7"></u-rate>
|
||||
</view>
|
||||
<u--textarea v-model="value5" v-if="detailsinfo.rescueInfo.orderStatus == 2 " placeholder="请输入内容"
|
||||
<u--textarea style="background: rgba(0,0,0,0.05);border-radius: 12rpx;" v-model="value5" v-if="detailsinfo.rescueInfo.orderStatus == 2 " placeholder="请输入内容"
|
||||
border="bottom"></u--textarea>
|
||||
<u--textarea v-model="value5" disabled v-if="detailsinfo.rescueInfo.orderStatus == 3 " placeholder="请输入内容"
|
||||
border="bottom"></u--textarea>
|
||||
<u--textarea v-model="value5" disabled v-if="detailsinfo.rescueInfo.orderStatus == 3 "
|
||||
placeholder="请输入内容" border="bottom"></u--textarea>
|
||||
<view class="anniua" @click="pinglun()" v-if="detailsinfo.rescueInfo.orderStatus == 2 ">
|
||||
<text>提交</text>
|
||||
<text>提交评价</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="cont-bs" v-if="detailsinfo.setMoney == '' ">
|
||||
@ -90,14 +124,16 @@
|
||||
|
||||
<view class="c-box">
|
||||
<view class="lan-ga" v-for="(item,index) in detailsinfo.detail" :key="index">
|
||||
<view class="ga-top-box">
|
||||
<view class="ga-top">
|
||||
<view class="gain">{{index + 1}}</view>
|
||||
<view class="gain">{{ String(index + 1).padStart(2, '0') }}</view>
|
||||
<view class="">{{item.title}}</view>
|
||||
</view>
|
||||
<view class="xhui" style="margin-left: 20px;">
|
||||
<view class="xhui">
|
||||
{{item.createTime}}
|
||||
</view>
|
||||
<view class="beizh" style="margin-left: 20px;">
|
||||
</view>
|
||||
<view class="beizh" style="margin-left: 60rpx;font-size: 14px;">
|
||||
{{item.remark}}
|
||||
</view>
|
||||
<view class="wrap-box" style="margin-left: 20px;" v-if="item.images">
|
||||
@ -227,7 +263,7 @@
|
||||
callout.borderWidth = '0'
|
||||
callout.bgColor = 'transparent'
|
||||
callout.display = 'ALWAYS'
|
||||
console.log(obj);
|
||||
// console.log(obj);
|
||||
obj.callout = callout
|
||||
arrcopy.push(obj)
|
||||
if (this.detailsinfo.driverInfo) {
|
||||
@ -244,7 +280,7 @@
|
||||
arrcopy.push(driverPosition)
|
||||
}
|
||||
this.marker = arrcopy;
|
||||
console.log(this.marker, "marker")
|
||||
// console.log(this.marker, "marker")
|
||||
})
|
||||
},
|
||||
async pinglun() {
|
||||
@ -345,6 +381,7 @@
|
||||
border-radius: 10px;
|
||||
padding: 15px;
|
||||
background: white;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.cont-bs {
|
||||
@ -397,20 +434,21 @@
|
||||
|
||||
.anniua {
|
||||
width: 100%;
|
||||
height: 88rpx;
|
||||
background: #327DFB;
|
||||
border-radius: 12rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
padding: 5px 10px;
|
||||
color: white;
|
||||
background: #2D81FF;
|
||||
border-radius: 10px;
|
||||
margin-top: 10px;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.dix {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 6px;
|
||||
}
|
||||
|
||||
.hezi-ga {
|
||||
@ -471,19 +509,81 @@
|
||||
|
||||
.box-bs {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.orderCardStatusData {
|
||||
margin: 32rpx 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin: 10px auto;
|
||||
column-gap: 4rpx;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.orderCardDistanceIcon,
|
||||
.orderCardPredictIcon {
|
||||
width: 36rpx;
|
||||
height: 36rpx;
|
||||
}
|
||||
|
||||
.orderCardDistanceValue {
|
||||
color: #919191;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.orderCardPredictDate {
|
||||
color: #317DFA;
|
||||
}
|
||||
|
||||
.bs-lsft {
|
||||
margin: 32rpx 0;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.box-bs-footer {
|
||||
margin: 32rpx 0 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
column-gap: 24rpx;
|
||||
|
||||
.box-bs-footer-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
&>.cancelOrderBtn {
|
||||
width: 160rpx;
|
||||
height: 52rpx;
|
||||
border-radius: 24rpx;
|
||||
border: 2rpx solid #327DFB;
|
||||
color: #327DFB;
|
||||
}
|
||||
|
||||
&>.callDriverBtn {
|
||||
width: 160rpx;
|
||||
height: 52rpx;
|
||||
background: #327DFB;
|
||||
border-radius: 24rpx;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.touxiang {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 40%;
|
||||
transform: translateY(-50%);
|
||||
width: 90rpx;
|
||||
height: 90rpx;
|
||||
background: #B9B9B9;
|
||||
border: 3px solid #FF924A;
|
||||
border: 2px solid #fff;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
box-shadow: 0rpx 0rpx 8rpx 4rpx rgba(0, 0, 0, 0.2);
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
@ -576,11 +676,18 @@
|
||||
border-bottom: 1px solid #EEEEEE;
|
||||
}
|
||||
|
||||
.ga-top-box {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.ga-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
color: #0D2E8D;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.img-box {
|
||||
@ -610,9 +717,10 @@
|
||||
}
|
||||
|
||||
.gain {
|
||||
font-style: 18px;
|
||||
box-sizing: border-box;
|
||||
width: 60rpx;
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
margin-right: 10px;
|
||||
color: #0D2E8D;
|
||||
color: #327DFB;
|
||||
}
|
||||
</style>
|
@ -50,8 +50,8 @@
|
||||
|
||||
}else{
|
||||
uni.navigateTo({
|
||||
// url:'/pages/login/login'
|
||||
url: '/pages/rescue/rescue'
|
||||
url:'/pages/login/login'
|
||||
// url: '/pages/rescue/rescue'
|
||||
// url: '/pages/rescue/trafficPolice'
|
||||
})
|
||||
}
|
||||
|
@ -1,39 +1,40 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="head-top">
|
||||
<view class=""></view>
|
||||
<view class="">消息</view>
|
||||
<view class=""></view>
|
||||
|
||||
</view>
|
||||
<view class="mubu">
|
||||
<VNavigationBarVue title="消息通知"></VNavigationBarVue>
|
||||
<scroll-view scroll-y @scrolltolower="scrolltolower" class="mubu">
|
||||
<view class="jsy" v-if="listArr.length == 0">
|
||||
<image src="http://www.nuoyunr.com/lananRsc/detection/qs.png" mode=""></image>
|
||||
</view>
|
||||
<view class="noticeGroup" v-for="group in groupArr" :key="group.date">
|
||||
<view class="noticeDate">{{ group.date }}</view>
|
||||
<!-- <view class="" @click="dianyidain()">测试方法</view> -->
|
||||
<view class="bao-box" v-for="(item,index) in listArr" :key="index">
|
||||
<view class="bao-box" v-for="(item,index) in group.noticeList" :key="index">
|
||||
<view class="icon-lv">
|
||||
<view class="hongdi" v-if="item.isRead == '0' "></view>
|
||||
<image src="../../static/jiejin.png" mode=""></image>
|
||||
<image src="@/static/icons/message/notice.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view class="you">
|
||||
<view class="box-top">
|
||||
<text class="numone">{{item.title || ''}}</text>
|
||||
<text class="numthree">{{item.createTime.slice(0, -3) || ''}}</text>
|
||||
<!-- <text class="numthree">{{item.createTime.slice(10, -3) || ''}}</text> -->
|
||||
</view>
|
||||
<view class="numtwo">{{item.content || ''}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view style="width: 100%; height: 50px;"></view>
|
||||
<tabBar :msg="msg"></tabBar>
|
||||
</scroll-view>
|
||||
|
||||
<view style="width: 100%; height: 100rpx;"></view>
|
||||
<tabBar msg="1"></tabBar>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '../../utils/request';
|
||||
import tabBar from '../../components/tabBar/tabBar.vue'
|
||||
import VNavigationBarVue from '../../components/VNavigationBar.vue';
|
||||
import dayjs from '../../uni_modules/uview-ui/libs/util/dayjs';
|
||||
const innerAudioContext = uni.createInnerAudioContext();
|
||||
export default {
|
||||
|
||||
@ -44,14 +45,20 @@
|
||||
pageNum: 1, //第几页
|
||||
pageSize: 10, //一页多少张
|
||||
totalPages: 0, //总数
|
||||
listArr: []
|
||||
listArr: [],
|
||||
groupArr: []
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.driverRescuePage()
|
||||
this.getlooklook()
|
||||
},
|
||||
onReachBottom() {
|
||||
components: {
|
||||
tabBar,
|
||||
VNavigationBarVue
|
||||
},
|
||||
methods: {
|
||||
scrolltolower() {
|
||||
if (this.pageNum >= this.totalPages) {
|
||||
uni.showToast({
|
||||
title: '没有下一页数据',
|
||||
@ -63,10 +70,6 @@
|
||||
this.driverRescuePage()
|
||||
}
|
||||
},
|
||||
components: {
|
||||
tabBar,
|
||||
},
|
||||
methods: {
|
||||
dianyidain() {
|
||||
console.log('执行了');
|
||||
|
||||
@ -90,8 +93,11 @@
|
||||
if (res.code == 200) {
|
||||
if (this.pageNum != 1) {
|
||||
this.listArr = this.listArr.concat(res.rows)
|
||||
this.noticeGroupByCreateTime(res.rows)
|
||||
} else {
|
||||
this.listArr = res.rows
|
||||
this.groupArr = []
|
||||
this.noticeGroupByCreateTime(this.listArr)
|
||||
}
|
||||
|
||||
let total = res.total
|
||||
@ -99,6 +105,26 @@
|
||||
}
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 消息通过日期分组
|
||||
*/
|
||||
noticeGroupByCreateTime(list) {
|
||||
if (list && list.length > 0) {
|
||||
list.forEach((item) => {
|
||||
const day = dayjs(item.createTime).format('MM-DD HH:mm')
|
||||
const find = this.groupArr.find(f => f.date === day)
|
||||
if (find) {
|
||||
find.noticeList.push(item)
|
||||
} else {
|
||||
this.groupArr.push({
|
||||
date: day,
|
||||
noticeList: [item]
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
console.log('this.groupArr: ',this.groupArr);
|
||||
},
|
||||
async getlooklook() {
|
||||
let res = await request({
|
||||
url: '/announcement/announcement/setAllRead',
|
||||
@ -114,43 +140,46 @@
|
||||
.content {
|
||||
width: 100%;
|
||||
height: calc(100vh);
|
||||
background-color: #F6F6F6;
|
||||
background: #F7F8FC;
|
||||
box-sizing: border-box;
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.head-top {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.mubu {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
width: 100%;
|
||||
background-color: #F6F6F6;
|
||||
background: #F7F8FC;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
padding: 20rpx 32rpx;
|
||||
}
|
||||
|
||||
.noticeGroup {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 24rpx;
|
||||
padding-bottom: 30rpx;
|
||||
.noticeDate {
|
||||
color: #929292;
|
||||
font-size: 24rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
.bao-box {
|
||||
width: 100%;
|
||||
background: white;
|
||||
box-sizing: border-box;
|
||||
padding: 15px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 10px;
|
||||
align-items: flex-start;
|
||||
column-gap: 20rpx;
|
||||
}
|
||||
|
||||
.icon-lv {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
flex-shrink: 0;
|
||||
width: 88rpx;
|
||||
height: 88rpx;
|
||||
border-radius: 50%;
|
||||
background: #CBF0D0;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
position: relative;
|
||||
|
||||
image {
|
||||
@ -163,10 +192,11 @@
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
top: 2px;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
background: #FF3829;
|
||||
border-radius: 50%;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.ddx {
|
||||
@ -176,6 +206,11 @@
|
||||
|
||||
.you {
|
||||
width: 80%;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,0,0,0.06);
|
||||
border-radius: 16rpx;
|
||||
border: 2rpx solid rgba(50,125,251,0.05);
|
||||
padding: 26rpx 34rpx;
|
||||
}
|
||||
|
||||
.box-top {
|
||||
@ -186,25 +221,22 @@
|
||||
}
|
||||
|
||||
.numone {
|
||||
font-size: 14px;
|
||||
font-size: 32rpx;
|
||||
font-family: Microsoft YaHei;
|
||||
font-weight: 400;
|
||||
color: #000000;
|
||||
|
||||
}
|
||||
|
||||
.numtwo {
|
||||
font-size: 16px;
|
||||
color: #666666;
|
||||
margin-top: 10px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
font-size: 28rpx;
|
||||
color: #929292;
|
||||
margin-top: 4rpx;
|
||||
}
|
||||
|
||||
.numthree {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
font-size: 24rpx;
|
||||
color: #929292;
|
||||
}
|
||||
|
||||
.jsy {
|
||||
|
@ -1,17 +1,12 @@
|
||||
<template>
|
||||
<view class="centenr">
|
||||
<view class="c-top">
|
||||
<view class="top-icon" @click="getback()">
|
||||
<uni-icons type="left" size="18"></uni-icons>
|
||||
<view class="">返回</view>
|
||||
</view>
|
||||
<view class="">数据统计</view>
|
||||
<view style="width: 10%; height: 100%; "></view>
|
||||
</view>
|
||||
<view class="distap">
|
||||
<view class="tapbox" :class="{'act' : tapindex == index }" v-for="(item,index) in typeList" :key="index"
|
||||
@click="gettapindex(index,item.type)">
|
||||
{{item.name}}
|
||||
<v-navigation-bar-vue title="数据统计"></v-navigation-bar-vue>
|
||||
<view class="queryDate">
|
||||
<text>日期</text>
|
||||
<view class="dateForm" @click="() => dateModalVisible = true">
|
||||
<text v-if="!startDate" class="placeholder">开始日期</text>
|
||||
<text v-else>{{ startDate }}</text>
|
||||
<image class="dateFormIcon" src="../../static/icons/statisticsinfo/rili@2x.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ail">
|
||||
@ -30,12 +25,23 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<tab-bar msg="1"></tab-bar>
|
||||
|
||||
<view>
|
||||
<u-calendar show-confirm @close="dateClose" @confirm="dateChange" :show="dateModalVisible" mode="single"></u-calendar>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '../../utils/request';
|
||||
import tabBar from '../../components/tabBar/tabBar.vue'
|
||||
import VNavigationBarVue from '../../components/VNavigationBar.vue';
|
||||
export default {
|
||||
components: {
|
||||
tabBar,
|
||||
VNavigationBarVue
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dataList: [],
|
||||
@ -54,13 +60,25 @@
|
||||
},
|
||||
|
||||
],
|
||||
type: 'day'
|
||||
type: 'day',
|
||||
dateModalVisible: false,
|
||||
startDate: ''
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
this.getDataList()
|
||||
},
|
||||
methods: {
|
||||
dateChange(e) {
|
||||
if (e && e.length > 0) {
|
||||
this.startDate = e[0]
|
||||
}
|
||||
console.log('e: ',e);
|
||||
this.dateModalVisible = false
|
||||
},
|
||||
dateClose() {
|
||||
this.dateModalVisible = false
|
||||
},
|
||||
getback() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
@ -87,42 +105,62 @@
|
||||
|
||||
<style scoped lang="scss">
|
||||
.centenr {
|
||||
background-color: #f7f7f7;
|
||||
height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.c-top {
|
||||
width: 100%;
|
||||
height: 88px;
|
||||
.queryDate {
|
||||
padding: 26rpx 32rpx;
|
||||
background-color: #317DFA;
|
||||
color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 30rpx;
|
||||
.dateForm {
|
||||
flex: 1;
|
||||
width: 0;
|
||||
background: #FFFFFF;
|
||||
border-radius: 12rpx;
|
||||
padding: 14rpx 20rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background-color: white;
|
||||
|
||||
color: #000;
|
||||
.placeholder {
|
||||
color: #C0C4CD;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.top-icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.dateFormIcon {
|
||||
width: 36rpx;
|
||||
height: 36rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ail {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
padding: 10rpx 34rpx 120rpx;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
.san_ {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
background-color: white;
|
||||
border-radius: 8px;
|
||||
margin: 10px 0px;
|
||||
background: #F7F8FC;
|
||||
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0,0,0,0.05);
|
||||
border-radius: 16rpx;
|
||||
border: 2rpx solid rgba(50,125,251,0.05);
|
||||
backdrop-filter: blur(20px);
|
||||
}
|
||||
|
||||
.s_box {
|
||||
@ -130,15 +168,18 @@
|
||||
}
|
||||
|
||||
.title_ {
|
||||
font-size: 16px;
|
||||
padding: 16rpx;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.nums {
|
||||
padding: 26rpx;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
color: #003bbc;
|
||||
// font-weight: bold;
|
||||
color: #327DFB;
|
||||
}
|
||||
|
||||
.distap {
|
||||
|
@ -1,26 +1,21 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="c-top">
|
||||
<view class="top-icon" @click="getback()">
|
||||
<uni-icons type="left" size="18"></uni-icons>
|
||||
<view class="">返回</view>
|
||||
</view>
|
||||
<view class="">车辆管理</view>
|
||||
<view style="width: 10%; height: 100%; "></view>
|
||||
</view>
|
||||
|
||||
<view class="carManageContent">
|
||||
<VNavigationBar class="navigationBar" title="车辆管理">
|
||||
<template v-slot:extra>
|
||||
<uni-icons size="28" type="plus" color="#fff" @click="goupdata('')"></uni-icons>
|
||||
</template>
|
||||
</VNavigationBar>
|
||||
<scroll-view class="carManangeScrollView" scroll-y @scrolltolower="scrolltolower">
|
||||
<view class="ail">
|
||||
<view class="_box" v-for="(item,index) in carList" :key="index" @click="goupdata(item.id)">
|
||||
<view class="_box-content">
|
||||
<view class="img_">
|
||||
<image :src="baseUrl+item.carImage" mode=""></image>
|
||||
<image :src="baseUrl+item.carImage" mode="aspectFill"></image>
|
||||
</view>
|
||||
<view class="right_">
|
||||
<view class="right-top" style="justify-content: space-between;">
|
||||
<view class="cphInfo" style="">
|
||||
<image class="cphIcon" src="../../static/icons/carManage/carNumIcon.png" mode="aspectFit"></image>
|
||||
<view class="cph">{{item.rescueCarNum}}</view>
|
||||
<!-- <view class="title_">{{item.rescueCarTypeStr}}</view> -->
|
||||
<u-tag type="success" :text="item.rescueCarTypeStr"></u-tag>
|
||||
<u-tag :text="item.rescueCarBrand"></u-tag>
|
||||
<!-- <view class="size_">{{item.rescueCarBrand}}</view> -->
|
||||
</view>
|
||||
<view class="right-top">
|
||||
<view class="timesize">保养到期时间:</view>
|
||||
@ -36,18 +31,31 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="_box-footer">
|
||||
<view class="tag">{{item.rescueCarTypeStr}}</view>
|
||||
<view class="tag">{{item.rescueCarBrand}}</view>
|
||||
</view>
|
||||
<view class="anniu" @click="goupdata('')">
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<tabBar msg="1"></tabBar>
|
||||
<!-- <view class="anniu" @click="goupdata('')">
|
||||
<u-icon name="plus" color="#fff" size="34"></u-icon>
|
||||
|
||||
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '../../utils/request'
|
||||
import VNavigationBar from '@/components/VNavigationBar.vue'
|
||||
import tabBarVue from '../../components/tabBar/tabBar.vue'
|
||||
export default {
|
||||
components: {
|
||||
VNavigationBar,
|
||||
tabBarVue
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
baseUrl: this.$baseUrl,
|
||||
@ -61,7 +69,8 @@
|
||||
onShow() {
|
||||
this.getCarList()
|
||||
},
|
||||
onReachBottom() {
|
||||
methods: {
|
||||
scrolltolower() {
|
||||
if (this.carList.length >= this.totalNum) {
|
||||
uni.showToast({
|
||||
title: '没有下一页数据',
|
||||
@ -72,7 +81,6 @@
|
||||
this.getCarList()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getback() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
@ -107,13 +115,16 @@
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.c-top {
|
||||
width: 100%;
|
||||
height: 88px;
|
||||
.carManageContent {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
flex-direction: column;
|
||||
background-color: #F7F8FC;
|
||||
}
|
||||
|
||||
.carManangeScrollView {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.top-icon {
|
||||
@ -129,17 +140,28 @@
|
||||
|
||||
._box {
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
box-sizing: border-box;
|
||||
padding: 10px 0px;
|
||||
display: flex;
|
||||
padding: 50rpx 46rpx;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0, 0, 0, 0.06);
|
||||
border-radius: 16rpx;
|
||||
margin: 24rpx 0;
|
||||
}
|
||||
|
||||
._box-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
column-gap: 32rpx;
|
||||
}
|
||||
|
||||
.img_ {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
width: 196rpx;
|
||||
height: 196rpx;
|
||||
background: #D8D8D8;
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
// border: 2rpx solid #979797;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
@ -152,35 +174,53 @@
|
||||
|
||||
}
|
||||
|
||||
.cphInfo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 10rpx;
|
||||
margin-bottom: 18rpx;
|
||||
}
|
||||
|
||||
.cphIcon {
|
||||
width: 100rpx;
|
||||
height: 44rpx;
|
||||
}
|
||||
|
||||
.cph {
|
||||
font-weight: 500;
|
||||
font-size: 32rpx;
|
||||
color: #000000;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.right-top {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 5px;
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
margin: 10rpx 0 0;
|
||||
}
|
||||
|
||||
.title_ {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
._box-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
column-gap: 40rpx;
|
||||
padding-top: 22rpx;
|
||||
}
|
||||
|
||||
.cph {
|
||||
font-size: 16px;
|
||||
color: #0796ef;
|
||||
}
|
||||
|
||||
.size_ {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.timesize {
|
||||
font-size: 16px;
|
||||
margin-right: 5px;
|
||||
color: #a6a6a6;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 16px;
|
||||
.tag {
|
||||
width: 104rpx;
|
||||
height: 48rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: rgba(70, 190, 55, 0.1);
|
||||
border-radius: 4rpx;
|
||||
font-size: 24rpx;
|
||||
color: #30B922;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.anniu {
|
||||
|
@ -1,88 +1,102 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="c-top">
|
||||
<view class="top-icon" @click="getback()">
|
||||
<uni-icons type="left" size="18"></uni-icons>
|
||||
<view class="">返回</view>
|
||||
</view>
|
||||
<view class="">编辑</view>
|
||||
<view style="width: 10%; height: 100%; "></view>
|
||||
</view>
|
||||
<view class="carManageFormContent">
|
||||
<v-navigation-bar title="新增车辆"></v-navigation-bar>
|
||||
<view class="body">
|
||||
<view class="ail">
|
||||
<view class="dis_">
|
||||
<view class="">车辆类型</view>
|
||||
<view class="right_" @click="show= true">{{carInfo.rescueCarTypeStr||'请选择车辆类型'}}</view>
|
||||
<view class="right_" @click="show= true">{{carInfo.rescueCarTypeStr||'请选择'}}</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">车牌号</view>
|
||||
<view class="right_"> <input type="text" v-model="carInfo.rescueCarNum" /> </view>
|
||||
<view class="right_"> <input placeholder-class="inputPlaceholder" type="text" placeholder="请输入"
|
||||
v-model="carInfo.rescueCarNum" /> </view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">品牌型号</view>
|
||||
<view class="right_"> <input type="text" v-model="carInfo.rescueCarBrand" /> </view>
|
||||
<view class="right_"> <input placeholder-class="inputPlaceholder" placeholder="请输入" type="text"
|
||||
v-model="carInfo.rescueCarBrand" /> </view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">车辆图片</view>
|
||||
<view class="rightImg">
|
||||
<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic1" name="1"
|
||||
:maxCount="1"></u-upload>
|
||||
<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic1" name="1" :maxCount="1">
|
||||
<view class="uploadBtn">
|
||||
<image class="uploadBtnIcon" src="/static/icons/carManage/image.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
</u-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">行驶证</view>
|
||||
<view class="rightImg">
|
||||
<u-upload :fileList="fileList2" @afterRead="afterRead2" @delete="deletePic2" name="2"
|
||||
:maxCount="1"></u-upload>
|
||||
<u-upload :fileList="fileList2" @afterRead="afterRead2" @delete="deletePic2" name="2" :maxCount="1">
|
||||
<view class="uploadBtn">
|
||||
<image class="uploadBtnIcon" src="/static/icons/carManage/image.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
</u-upload>
|
||||
</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">购买时间</view>
|
||||
<view class="right_" @click="seletTime('buy')">{{carInfo.carBuyTime||'请选择购买时间'}}
|
||||
<view class="right_" @click="seletTime('buy')">{{carInfo.carBuyTime||'请选择'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">保养到期时间</view>
|
||||
<view class="right_" @click="seletTime('by')"> {{carInfo.carKeepTime||'请选择保养到期时间'}}
|
||||
<view class="right_" @click="seletTime('by')"> {{carInfo.carKeepTime||'请选择'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">保险到期时间</view>
|
||||
<view class="right_" @click="seletTime('bx')"> {{carInfo.carInsuranceTime||'请选择保险到期时间'}}
|
||||
<view class="right_" @click="seletTime('bx')"> {{carInfo.carInsuranceTime||'请选择'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">年检到期时间</view>
|
||||
<view class="right_" @click="seletTime('nj')">{{carInfo.carCheckTime||'请选择年检到期时间'}}
|
||||
<view class="right_" @click="seletTime('nj')">{{carInfo.carCheckTime||'请选择'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">车牌颜色</view>
|
||||
<view class="right_" @click="carColorShow = true">{{carInfo.carLicenseColorStr||'请选择车牌颜色'}}
|
||||
<view class="right_" @click="carColorShow = true">{{carInfo.carLicenseColorStr||'请选择'}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="dis_">
|
||||
<view class="">车架号</view>
|
||||
<view class="right_"> <input type="text" v-model="carInfo.frameNumber" />
|
||||
</view>
|
||||
<view class="right_"> <input placeholder-class="inputPlaceholder" placeholder="请输入" type="text"
|
||||
v-model="carInfo.frameNumber" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="bo_dis">
|
||||
<u-button type="error" v-if="carId" @click="delItem()" text="删除"></u-button>
|
||||
<u-button type="primary" @click="saveOrUpdate" text="保存"></u-button>
|
||||
<!-- <u-button type="error" v-if="carId" @click="delItem()" text="删除"></u-button> -->
|
||||
<view class="deleteBtn" v-if="carId" @click="delItem()">删除</view>
|
||||
<view class="saveBtn" @click="saveOrUpdate" >保存</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<tab-bar-vue msg="1"></tab-bar-vue>
|
||||
<view>
|
||||
<u-picker :show="show" :columns="jycType" keyName="dictLabel" @confirm="confirm" @cancel="cancel"></u-picker>
|
||||
<u-picker :show="carColorShow" :columns="licenseColor" keyName="dictLabel" @confirm="confirmClor"
|
||||
@cancel="cancel"></u-picker>
|
||||
<u-datetime-picker :show="showtime" mode="date" @confirm="confirmtime"
|
||||
@cancel="showtime = false"></u-datetime-picker>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '../../utils/request';
|
||||
import upload from '@/utils/upload.js'
|
||||
import VNavigationBar from '@/components/VNavigationBar.vue'
|
||||
import tabBarVue from '../../components/tabBar/tabBar.vue'
|
||||
export default {
|
||||
components: {
|
||||
VNavigationBar,
|
||||
tabBarVue
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
@ -286,14 +300,12 @@
|
||||
},
|
||||
|
||||
async saveOrUpdate() {
|
||||
|
||||
if (this.imageList1.length > 0) {
|
||||
this.carInfo.carImage = this.imageList1[0]
|
||||
}
|
||||
if (this.imageList2.length > 0) {
|
||||
this.carInfo.driveLicenseImage = this.imageList2[0]
|
||||
}
|
||||
|
||||
if (!this.carId) {
|
||||
request({
|
||||
url: "/system/rescueCar",
|
||||
@ -316,6 +328,7 @@
|
||||
method: 'put',
|
||||
data: this.carInfo
|
||||
}).then(res => {
|
||||
console.log('res: ',res);
|
||||
|
||||
uni.showToast({
|
||||
title: "保存成功"
|
||||
@ -381,52 +394,76 @@
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.c-top {
|
||||
width: 100%;
|
||||
height: 88px;
|
||||
.carManageFormContent {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
flex-direction: column;
|
||||
background: #F7F8FC;
|
||||
}
|
||||
|
||||
.top-icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.body {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
padding-bottom: 100rpx;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.ail {
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
|
||||
padding: 32rpx;
|
||||
}
|
||||
|
||||
.dis_ {
|
||||
width: 100%;
|
||||
background: #FFFFFF;
|
||||
border-radius: 16rpx;
|
||||
border: 2rpx solid rgba(0, 0, 0, 0.05);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
font-size: 16px;
|
||||
margin: 10px auto;
|
||||
border-bottom: 1px solid #e6e6e6;
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 10px;
|
||||
padding: 32rpx 38rpx;
|
||||
|
||||
color: #000;
|
||||
font-size: 28rpx;
|
||||
font-weight: 500;
|
||||
|
||||
}
|
||||
|
||||
.right_ {
|
||||
color: #666;
|
||||
font-weight: normal;
|
||||
color: #929292;
|
||||
font-size: 24rpx;
|
||||
width: 55%;
|
||||
text-align: right;
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/deep/ .inputPlaceholder {
|
||||
color: #929292;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.uploadBtn {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
background: #F7F8FC;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.uploadBtnIcon {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
}
|
||||
|
||||
.rightImg {
|
||||
color: #666;
|
||||
width: 25%;
|
||||
// width: 25%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
@ -436,6 +473,28 @@
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
box-sizing: border-box;
|
||||
padding: 10px;
|
||||
column-gap: 20rpx;
|
||||
}
|
||||
.deleteBtn {
|
||||
background: rgb(245,108,108);
|
||||
width: 686rpx;
|
||||
height: 88rpx;
|
||||
border-radius: 12rpx;
|
||||
color: #FFF;
|
||||
font-size: 28rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.saveBtn {
|
||||
width: 686rpx;
|
||||
height: 88rpx;
|
||||
background: #327DFB;
|
||||
border-radius: 12rpx;
|
||||
color: #FFF;
|
||||
font-size: 28rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
</style>
|
@ -2,14 +2,17 @@
|
||||
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="content-header">
|
||||
<VNavigationBarVue title="我的订单"></VNavigationBarVue>
|
||||
<view class="top-icon">
|
||||
<view class="h-text" @click="getback()">返回</view>
|
||||
<view class="s-input">
|
||||
<uni-icons type="search" color=" #999999" size="16"></uni-icons>
|
||||
<input type="text" placeholder="搜索我的订单">
|
||||
<uni-icons type="search" color="#8E8E93" size="16"></uni-icons>
|
||||
<input v-model="searchText" type="text" placeholder="搜索我的订单">
|
||||
<uni-icons @click="searchText = ''" type="clear" color="#8E8E93"></uni-icons>
|
||||
</view>
|
||||
<view class="h-text">搜索</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="top-tap">
|
||||
<view class="tap-box" :class="{'cc' : gindex == item.id }" v-for="(item,index) in arrtap" :key="index"
|
||||
@click="getindex(item.id)">
|
||||
@ -22,7 +25,8 @@
|
||||
<image src="../../static/quesheng.png" mode=""></image>
|
||||
</view>
|
||||
|
||||
<view class="boxt" v-for="(item,index) in orderList" :key="index" @click="godetail(item.id)">
|
||||
<order-card-vue v-for="(item,index) in orderList" :key="index" :orderData="item"></order-card-vue>
|
||||
<!-- <view class="boxt" v-for="(item,index) in orderList" :key="index" @click="godetail(item.id)">
|
||||
<view class="boxt-left">
|
||||
<view class="left-lan">
|
||||
<view class="">{{item.rescueTypeStr}}</view>
|
||||
@ -57,33 +61,45 @@
|
||||
<view class="">联系司机</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
|
||||
<view style="width: 100%; height: 60px;"></view>
|
||||
</view>
|
||||
|
||||
<tabBar></tabBar>
|
||||
<tabBar :msg="1"></tabBar>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import tabBar from '../../components/tabBar/tabBar.vue'
|
||||
import VNavigationBarVue from '../../components/VNavigationBar.vue';
|
||||
import OrderCardVue from '../../components/orderCard/OrderCard.vue';
|
||||
import request from '../../utils/request';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 搜索内容
|
||||
searchText: '',
|
||||
gindex: 1,
|
||||
orderList: [],
|
||||
orderList: [
|
||||
// {
|
||||
// rescueTypeStr: '扣车',
|
||||
// rescuePosition: '四川省泸州市江阳区酒谷大道四段18号泸州',
|
||||
// rescueStatus: 2,
|
||||
// rescueStatusStr: '待救援',
|
||||
// driverName: '先伟',
|
||||
// driverCarNum: '川E69752',
|
||||
// distance: 12800,
|
||||
// needTime: 26,
|
||||
// rescueTime: '2024-08-12 08:42'
|
||||
// }
|
||||
],
|
||||
total: 0,
|
||||
pageNum: 1, //第几页
|
||||
pageSize: 10, //一页多少张
|
||||
totalPages: 0, //总数
|
||||
arrtap: [{
|
||||
text: '救援中',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
text: '待支付',
|
||||
id: 2
|
||||
},
|
||||
@ -92,19 +108,26 @@
|
||||
id: 3
|
||||
},
|
||||
{
|
||||
text: '待评价',
|
||||
id: 4
|
||||
text: '救援中',
|
||||
id: 1
|
||||
},
|
||||
{
|
||||
text: '已完成',
|
||||
id: 5
|
||||
},
|
||||
{
|
||||
text: '待评价',
|
||||
id: 4
|
||||
}
|
||||
|
||||
],
|
||||
arrbox: []
|
||||
}
|
||||
},
|
||||
components: {
|
||||
tabBar,
|
||||
VNavigationBarVue,
|
||||
OrderCardVue
|
||||
},
|
||||
onLoad(option) {
|
||||
this.gindex = option.id
|
||||
@ -155,11 +178,6 @@
|
||||
|
||||
})
|
||||
},
|
||||
getback() {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
})
|
||||
},
|
||||
getindex(index) {
|
||||
this.orderList = []
|
||||
this.gindex = index
|
||||
@ -174,9 +192,12 @@
|
||||
.content {
|
||||
width: 100%;
|
||||
height: calc(100vh);
|
||||
background-color: #F6F6F6;
|
||||
background-color: #F7F8FC;
|
||||
box-sizing: border-box;
|
||||
padding-top: 45px;
|
||||
}
|
||||
|
||||
.content-header {
|
||||
background-color: #327DFB;
|
||||
}
|
||||
|
||||
.top-icon {
|
||||
@ -184,7 +205,6 @@
|
||||
width: 100%;
|
||||
|
||||
padding: 5px 14px;
|
||||
background: white;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
@ -192,21 +212,30 @@
|
||||
}
|
||||
|
||||
.dil {
|
||||
background-color: #F6F6F6;
|
||||
background-color: #F7F8FC;
|
||||
box-sizing: border-box;
|
||||
padding: 15px 12px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 10px;
|
||||
}
|
||||
|
||||
.h-text {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #999999;
|
||||
width: 124rpx;
|
||||
height: 56rpx;
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border-radius: 28rpx;
|
||||
font-size: 28rpx;
|
||||
color: #FFFFFF;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.s-input {
|
||||
width: 78%;
|
||||
height: 30px;
|
||||
background: #F3F3F3;
|
||||
height: 56rpx;
|
||||
background: #fff;
|
||||
border-radius: 50px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
@ -215,35 +244,42 @@
|
||||
|
||||
input {
|
||||
margin-left: 5px;
|
||||
width: 80%;
|
||||
flex: 1;
|
||||
width: 0;
|
||||
font-size: 14px;
|
||||
color: #999999;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.top-tap {
|
||||
width: 100%;
|
||||
background: white;
|
||||
background: #327DFB;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
box-sizing: border-box;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.tap-box {
|
||||
width: 20%;
|
||||
font-size: 15px;
|
||||
font-size: 28rpx;
|
||||
font-weight: 400;
|
||||
color: #666666;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
padding-top: 24rpx;
|
||||
padding-bottom: 24rpx;
|
||||
}
|
||||
|
||||
.gang {
|
||||
width: 80%;
|
||||
height: 5px;
|
||||
margin: 0 auto;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
bottom: 0;
|
||||
width: 60%;
|
||||
height: 6rpx;
|
||||
border-radius: 12px;
|
||||
background: linear-gradient(87deg, #B6E1FF 0%, #339DFF 100%);
|
||||
background: linear-gradient(87deg, #fff 0%, #fff 100%);
|
||||
}
|
||||
|
||||
.d-box {
|
||||
|
@ -1,19 +1,17 @@
|
||||
<!-- 发起订单 -->
|
||||
<template>
|
||||
<view class="content">
|
||||
<VNavigationBarVue :title="title"></VNavigationBarVue>
|
||||
<view class="dil">
|
||||
<view class="top-icon" @click="getback()">
|
||||
<uni-icons type="left" size="18"></uni-icons>
|
||||
</view>
|
||||
<view style="color: #000;font-size: 34rpx;font-weight:bold;padding: 24rpx 0;">救援地址</view>
|
||||
<!-- 发起救援 头部-->
|
||||
<view class="top">
|
||||
<view style="flex: 1;width: 0;">
|
||||
<!-- 起 -->
|
||||
<view class="top-box">
|
||||
<view class="tb-left">
|
||||
<view class="uicon" style="background:#2A96FE; ">
|
||||
<text>起</text>
|
||||
</view>
|
||||
<view style="width: 100%;">
|
||||
<image class="uicon" src="@/static/icons/initiate/start.png" mode="aspectFit"></image>
|
||||
<view @click="getmap()" style="width: 100%;">
|
||||
<view class="text1" v-show="four == ''" v-if="rescueType != 5">请选择救援地址</view>
|
||||
<view class="text1" v-show="four == ''" v-if="rescueType == 5">请选择扣车地址</view>
|
||||
<view class="text1" v-show="four != ''">{{province}}{{city}}{{area}}</view>
|
||||
@ -23,60 +21,65 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tb-right" @click="getmap()">
|
||||
<!-- <view class="tb-right" @click="getmap()">
|
||||
<image src="../../static/dingwei.png" mode=""></image>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<!-- 终 -->
|
||||
<view class="top-box" v-if="rescueType == 1" style="border-top:1px solid #EAEAEA;">
|
||||
<view class="tb-left">
|
||||
<view class="uicon">
|
||||
<text>终</text>
|
||||
</view>
|
||||
<view style="width: 100%; overflow: hidden; ">
|
||||
<image class="uicon" src="@/static/icons/initiate/end.png" mode="aspectFit"></image>
|
||||
<view @click="getmap1()" style="width: 100%; overflow: hidden; ">
|
||||
<view class="text1" v-show="four1 == ''">请选择终点地址</view>
|
||||
<view class="text1" v-show="four1 != ''">{{province1}}{{city1}}{{area1}}</view>
|
||||
<!-- <view class="hong1" v-show="four1 == ''">*必填,请填写详细地址</view> -->
|
||||
<view class="hong1" v-show="four1 == ''">*必填,请填写详细地址</view>
|
||||
<view class="hong2" v-show="four1 != ''">
|
||||
<input type="text" :placeholder="four1">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tb-right" @click="getmap1()">
|
||||
<!-- <view class="tb-right" @click="getmap1()">
|
||||
<image src="../../static/dingwei.png" mode=""></image>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
<image class="start-end" src="@/static/icons/initiate/qiehuan.png" mode="aspectFit"></image>
|
||||
</view>
|
||||
<view style="color: #000;font-size: 34rpx;font-weight: bold;padding: 24rpx 0;">救援信息</view>
|
||||
<!-- 填空 -->
|
||||
<view class="tinput" @click="show = true" v-if="isAppointment == 1">
|
||||
<view class="jyxx">
|
||||
<view class="jyxx-tinput" @click="show = true" v-if="isAppointment == 1">
|
||||
<view class="text1"> <text class="hong1">*</text> 预约时间</view>
|
||||
<view class="you">
|
||||
<text>{{rescueTime}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tinput">
|
||||
<view class="text1"> 联系人</view>
|
||||
<view class="jyxx-tinput">
|
||||
<view class="text1"><text class="hong1">*</text> 联系人</view>
|
||||
<view class="you">
|
||||
<input type="text" placeholder="请输入联系人" v-model="connectionName">
|
||||
<input type="text" placeholder-style="color: #929292;font-size:24rpx" placeholder="请输入联系人"
|
||||
v-model="connectionName">
|
||||
</view>
|
||||
</view>
|
||||
<view class="tinput">
|
||||
<view class="text1"> 手机号</view>
|
||||
<view class="jyxx-tinput">
|
||||
<view class="text1"><text class="hong1">*</text> 手机号</view>
|
||||
<view class="you">
|
||||
<input type="text" placeholder="请输入手机号" v-model="connectionPhone">
|
||||
<input type="text" placeholder-style="color: #929292;font-size:24rpx" placeholder="请输入手机号"
|
||||
v-model="connectionPhone">
|
||||
</view>
|
||||
</view>
|
||||
<view class="tinput">
|
||||
<view class="text1"> 车牌号</view>
|
||||
<view class="jyxx-tinput">
|
||||
<view class="text1"><text class="hong1">*</text> 车牌号</view>
|
||||
<view class="you">
|
||||
<input type="text" placeholder="请输入车牌号" v-model="licenseNum">
|
||||
<input type="text" placeholder-style="color: #929292;font-size:24rpx" placeholder="请输入车牌号"
|
||||
v-model="licenseNum">
|
||||
</view>
|
||||
</view>
|
||||
<view class="tinput" @click="shows = true" v-if="rescueType == 5">
|
||||
<view class="jyxx-tinput" @click="shows = true" v-if="rescueType == 5">
|
||||
<view class="text1"> <text class="hong1">*</text> 扣车地点</view>
|
||||
<view class="you">
|
||||
<text>{{kcname || ''}}</text>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="xinput">
|
||||
@ -98,17 +101,17 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="tinput">
|
||||
<view class="text1"> 现场描述</view>
|
||||
<view class="you">
|
||||
<input type="text" placeholder="请输入备注" v-model="rescueDetail">
|
||||
</view>
|
||||
</view>
|
||||
<view class="tinput">
|
||||
<view class="text1"> 现场图片</view>
|
||||
<view class="you">
|
||||
<!-- <input type="text" placeholder="请输入现场图片"> -->
|
||||
<text>请上传现场图片</text>
|
||||
<text style="color: #929292;font-size: 24rpx">上传图片</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tinput">
|
||||
<view class="text1"> 备注</view>
|
||||
<view class="you">
|
||||
<input type="text" placeholder-style="color: #929292;font-size: 24rpx" placeholder="添加备注" v-model="rescueDetail">
|
||||
</view>
|
||||
</view>
|
||||
<!-- 上传图片 -->
|
||||
@ -119,18 +122,21 @@
|
||||
|
||||
|
||||
<view class="anniu" @click="postadd()">
|
||||
<text>发起</text>
|
||||
<text>发起救援</text>
|
||||
</view>
|
||||
<view style="width: 100%; height: 60px;"></view>
|
||||
</view>
|
||||
<view class="">
|
||||
<u-picker :show="shows" :columns="columns" @confirm="confirmm" @cancel="cancelm" keyName="dictValue"></u-picker>
|
||||
</view>
|
||||
|
||||
<tabBar></tabBar>
|
||||
<tabBar msg="1"></tabBar>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import tabBar from '../../components/tabBar/tabBar.vue'
|
||||
import VNavigationBarVue from '../../components/VNavigationBar.vue'
|
||||
import request from '../../utils/request'
|
||||
import config from '@/config'
|
||||
import upload from '@/utils/upload.js'
|
||||
@ -197,10 +203,30 @@
|
||||
columns: [
|
||||
|
||||
],
|
||||
title: '救援'
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
this.rescueType = option.id
|
||||
switch (option.id) {
|
||||
case '1':
|
||||
this.title = '拖车'
|
||||
break;
|
||||
case '2':
|
||||
this.title = '送油'
|
||||
break;
|
||||
case '3':
|
||||
this.title = '搭电'
|
||||
break;
|
||||
case '4':
|
||||
this.title = '换胎'
|
||||
break;
|
||||
case '5':
|
||||
this.title = '扣车'
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
this.newtwo()
|
||||
this.isAppointment = option.isAppointment
|
||||
this.role = uni.getStorageSync('role')
|
||||
@ -211,6 +237,7 @@
|
||||
},
|
||||
components: {
|
||||
tabBar,
|
||||
VNavigationBarVue
|
||||
},
|
||||
methods: {
|
||||
newtwo() {
|
||||
@ -499,17 +526,18 @@
|
||||
<style scoped lang="scss">
|
||||
.content {
|
||||
width: 100%;
|
||||
height: calc(100vh);
|
||||
background-color: #F6F6F6;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
padding-top: 45px;
|
||||
}
|
||||
|
||||
.top-icon {
|
||||
margin-bottom: 15px;
|
||||
background: #F7F8FC;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
row-gap: 10rpx;
|
||||
}
|
||||
|
||||
.dil {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
overflow: auto;
|
||||
box-sizing: border-box;
|
||||
background-color: #F6F6F6;
|
||||
padding: 0px 12px;
|
||||
@ -518,8 +546,17 @@
|
||||
.top {
|
||||
box-sizing: border-box;
|
||||
padding: 0px 15px;
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
background: #FFFFFF;
|
||||
border-radius: 16rpx;
|
||||
border: 2rpx solid rgba(50, 125, 251, 0.05);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 28rpx;
|
||||
|
||||
.start-end {
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.top-box {
|
||||
@ -534,20 +571,12 @@
|
||||
height: 100%;
|
||||
width: 85%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.uicon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 4px;
|
||||
color: white;
|
||||
background: orangered;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
width: 44rpx;
|
||||
height: 44rpx;
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
@ -562,16 +591,16 @@
|
||||
}
|
||||
|
||||
.text1 {
|
||||
font-size: 16px;
|
||||
font-size: 28rpx;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
color: #363636;
|
||||
}
|
||||
|
||||
.hong1 {
|
||||
margin-top: 5px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: #FF5453;
|
||||
color: #D42424;
|
||||
}
|
||||
|
||||
.hong2 {
|
||||
@ -586,6 +615,37 @@
|
||||
}
|
||||
}
|
||||
|
||||
.jyxx {
|
||||
background: #FFFFFF;
|
||||
border-radius: 16rpx;
|
||||
border: 2rpx solid rgba(50, 125, 251, 0.05);
|
||||
padding: 14rpx 38rpx;
|
||||
}
|
||||
|
||||
.jyxx-tinput {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
column-gap: 12rpx;
|
||||
padding: 24rpx 0;
|
||||
border-bottom: 2rpx solid rgba(151, 151, 152, 0.20);
|
||||
|
||||
&:last-child {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.text1 {
|
||||
font-size: 28rpx;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.you {
|
||||
flex: 1;
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.tinput {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
@ -599,10 +659,13 @@
|
||||
|
||||
.xinput {
|
||||
width: 100%;
|
||||
background: white;
|
||||
box-sizing: border-box;
|
||||
padding: 16px;
|
||||
padding: 36rpx;
|
||||
margin-top: 14px;
|
||||
|
||||
background: #FFFFFF;
|
||||
border-radius: 16rpx;
|
||||
border: 2rpx solid rgba(50,125,251,0.05);
|
||||
}
|
||||
|
||||
.you {
|
||||
@ -616,33 +679,35 @@
|
||||
}
|
||||
|
||||
.kuang {
|
||||
width: 38px;
|
||||
height: 23px;
|
||||
background: #ECECEC;
|
||||
width: 92rpx;
|
||||
height: 50rpx;
|
||||
font-size: 24rpx;
|
||||
color: #327DFB;
|
||||
border-radius: 5px;
|
||||
border: 2rpx solid #327DFB;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #666666;
|
||||
font-size: 14px;
|
||||
margin-right: 15px;
|
||||
margin-right: 24rpx;
|
||||
border-radius: 24rpx;
|
||||
}
|
||||
|
||||
.xlan {
|
||||
background: #CDE7FF !important;
|
||||
color: #1D62FF !important;
|
||||
border: 1px solid #2A96FE;
|
||||
background: #327DFB;
|
||||
border: 2rpx solid #327DFB;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.anniu {
|
||||
width: 100%;
|
||||
background: linear-gradient(105deg, #FFE3AC 0%, #F3BA60 98%);
|
||||
height: 40px;
|
||||
height: 88rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
color: #542F0E;
|
||||
border-radius: 4px;
|
||||
margin-top: 20px;
|
||||
color: #fff;
|
||||
margin-top: 30rpx;
|
||||
|
||||
background: #327DFB;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
</style>
|
@ -1,73 +1,115 @@
|
||||
<!-- 选择页 -->
|
||||
<template>
|
||||
<view class="content">
|
||||
<v-navigation-bar-vue title="立即救援"></v-navigation-bar-vue>
|
||||
<view class="bil">
|
||||
<view class="top-icon" @click="getback()">
|
||||
<uni-icons type="left" size="18"></uni-icons>
|
||||
<view class="">返回</view>
|
||||
</view>
|
||||
<view class="top-white">
|
||||
请选择您需要的业务
|
||||
</view>
|
||||
<view class="box">
|
||||
<view class="xz-box" id="y1" @click="getsx(1)">
|
||||
<view class="box-wenzi">拖车</view>
|
||||
<template v-for="(item, index) in busiTypeList">
|
||||
<view v-if="index !== 4 || role[0] == 'jjdd'" :key="index" class="xz-box" :class="{ checked: busiType === index + 1 }" @click="getsx(index + 1)">
|
||||
<image class="xz-box-icon" :src="item.icon" mode="aspectFit"></image>
|
||||
<view class="box-wenzi">{{item.label}}</view>
|
||||
<view class="checkedFlag">
|
||||
</view>
|
||||
<view class="xz-box" id="y2" @click="getsx(2)">
|
||||
<!-- <uni-icons type="plus"></uni-icons> -->
|
||||
<uni-icons class="checkedFlagIcon" type="checkmarkempty" size="22" color="#fff"></uni-icons>
|
||||
</view>
|
||||
</template>
|
||||
<!-- <view class="xz-box" :class="{ checked: busiType === 1 }" id="y1" @click="getsx(1)">
|
||||
<image class="xz-box-icon" src="@/static/icons/order/tuoche.png" mode="aspectFit"></image>
|
||||
<view class="box-wenzi">拖车</view>
|
||||
</view> -->
|
||||
<!-- <view class="xz-box" :class="{ checked: busiType === 2 }" id="y2" @click="getsx(2)">
|
||||
<image class="xz-box-icon" src="@/static/icons/order/songyou.png" mode="aspectFit"></image>
|
||||
<view class="box-wenzi">送油</view>
|
||||
</view>
|
||||
<view class="xz-box" id="y3" @click="getsx(3)">
|
||||
<view class="xz-box" :class="{ checked: busiType === 3 }" id="y3" @click="getsx(3)">
|
||||
<image class="xz-box-icon" src="@/static/icons/order/dadian.png" mode="aspectFit"></image>
|
||||
<view class="box-wenzi">搭电</view>
|
||||
</view>
|
||||
<view class="xz-box" id="y4" @click="getsx(4)">
|
||||
<view class="xz-box" :class="{ checked: busiType === 4 }" id="y4" @click="getsx(4)">
|
||||
<image class="xz-box-icon" src="@/static/icons/order/huantai.png" mode="aspectFit"></image>
|
||||
<view class="box-wenzi">换胎</view>
|
||||
</view>
|
||||
<view class="xz-box" v-if="role[0] == 'jjdd' " id="y5" @click="getsx(5)">
|
||||
<view class="xz-box" :class="{ checked: busiType === 5 }" v-if="role[0] == 'jjdd' " id="y5" @click="getsx(5)">
|
||||
<view class="box-wenzi">扣车</view>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<!-- <view class="anniu" @click="goindex()">
|
||||
<view class="">立即进入</view>
|
||||
</view> -->
|
||||
<view class="submitBtn" @click="hanleOkBusiType">下一步</view>
|
||||
</view>
|
||||
<tabBar></tabBar>
|
||||
<tabBar msg="1"></tabBar>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '../../utils/request';
|
||||
import tabBar from'../../components/tabBar/tabBar.vue'
|
||||
import tabBar from '../../components/tabBar/tabBar.vue'
|
||||
import VNavigationBarVue from '../../components/VNavigationBar.vue';
|
||||
|
||||
export default{
|
||||
data(){
|
||||
return{
|
||||
sx1:true,
|
||||
sx2:false,
|
||||
isAppointment:'',
|
||||
role:'',
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
sx1: true,
|
||||
sx2: false,
|
||||
isAppointment: '',
|
||||
role: '',
|
||||
busiType: '',
|
||||
busiTypeList: [{
|
||||
label: '拖车',
|
||||
icon: require('@/static/icons/order/tuoche.png')
|
||||
},
|
||||
{
|
||||
label: '送油',
|
||||
icon: require('@/static/icons/order/songyou.png')
|
||||
},
|
||||
{
|
||||
label: '搭电',
|
||||
icon: require('@/static/icons/order/dadian.png')
|
||||
},
|
||||
{
|
||||
label: '换胎',
|
||||
icon: require('@/static/icons/order/huantai.png')
|
||||
},
|
||||
{
|
||||
label: '扣车',
|
||||
icon: require('@/static/icons/order/tuoche.png')
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
components:{
|
||||
components: {
|
||||
tabBar,
|
||||
VNavigationBarVue
|
||||
},
|
||||
onLoad(option) {
|
||||
this.isAppointment = option.isAppointment
|
||||
this.role = uni.getStorageSync('role')
|
||||
},
|
||||
methods:{
|
||||
getback(){
|
||||
methods: {
|
||||
getback() {
|
||||
uni.navigateBack({
|
||||
delta:1,
|
||||
delta: 1,
|
||||
})
|
||||
},
|
||||
getsx(id){
|
||||
getsx(id) {
|
||||
this.busiType = id
|
||||
// uni.navigateTo({
|
||||
// url: '/pages/rescue/initiate?id=' + id + '&isAppointment=' + this.isAppointment
|
||||
// })
|
||||
},
|
||||
hanleOkBusiType() {
|
||||
uni.navigateTo({
|
||||
url:'/pages/rescue/initiate?id='+id+'&isAppointment='+this.isAppointment
|
||||
url: '/pages/rescue/initiate?id=' + this.busiType + '&isAppointment=' + this.isAppointment
|
||||
})
|
||||
},
|
||||
goindex(){
|
||||
goindex() {
|
||||
uni.navigateTo({
|
||||
url:'/pages/index/index'
|
||||
url: '/pages/index/index'
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -76,49 +118,112 @@
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.content{
|
||||
.content {
|
||||
width: 100%;
|
||||
height: calc(100vh);
|
||||
background: white;
|
||||
background: #F7F8FC;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
}
|
||||
.bil{
|
||||
.bil {
|
||||
flex: 1;
|
||||
height: 0;
|
||||
box-sizing: border-box;
|
||||
padding: 18px;
|
||||
padding-top: 50px;
|
||||
padding: 30rpx 36rpx;
|
||||
overflow: auto;
|
||||
padding-bottom: 120rpx;
|
||||
}
|
||||
.top-icon{
|
||||
|
||||
.top-icon {
|
||||
display: flex;
|
||||
color: #999999;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
.top-white{
|
||||
|
||||
.top-white {
|
||||
color: #333333;
|
||||
font-size: 19px;
|
||||
font-weight: bold;
|
||||
// margin-top: 40px;
|
||||
}
|
||||
.box{
|
||||
|
||||
.box {
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.xz-box{
|
||||
height: 80px;
|
||||
width: 48%;
|
||||
|
||||
.xz-box {
|
||||
width: 330rpx;
|
||||
height: 396rpx;
|
||||
background: #FFFFFF;
|
||||
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(0, 0, 0, 0.06);
|
||||
border-radius: 16rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
color: #FFFFFF;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
margin-top: 20px;
|
||||
margin-top: 36rpx;
|
||||
transition: all ease 400ms;
|
||||
overflow: hidden;
|
||||
|
||||
.checkedFlagIcon {
|
||||
display: none;
|
||||
}
|
||||
.anniu{
|
||||
|
||||
&.checked {
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
border: 2rpx solid #478AFA;
|
||||
|
||||
.checkedFlag {
|
||||
background-color: #478AFA;
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
position: absolute;
|
||||
right: -60rpx;
|
||||
bottom: -60rpx;
|
||||
transform: rotate(45deg);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.checkedFlagIcon {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.xz-box-icon {
|
||||
width: 130rpx;
|
||||
height: 130rpx;
|
||||
margin-bottom: 26rpx;
|
||||
}
|
||||
|
||||
.box-wenzi {
|
||||
font-size: 28rpx;
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
.submitBtn {
|
||||
margin-top: 30rpx;
|
||||
background: #327DFB;
|
||||
border-radius: 12rpx;
|
||||
padding: 24rpx;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.anniu {
|
||||
background: linear-gradient(105deg, #FFE3AC 0%, #F3BA60 98%);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
@ -131,19 +236,24 @@
|
||||
height: 45px;
|
||||
margin-top: 40px;
|
||||
}
|
||||
#y1{
|
||||
background-image: url('../../static/tc.png');
|
||||
}
|
||||
#y2{
|
||||
background-image: url('../../static/sy.png');
|
||||
}
|
||||
#y3{
|
||||
background-image: url('../../static/dd.png');
|
||||
}
|
||||
#y4{
|
||||
background-image: url('../../static/ht.png');
|
||||
}
|
||||
#y5{
|
||||
background-image: url('../../static/kc.png');
|
||||
}
|
||||
|
||||
// #y1 {
|
||||
// background-image: url('../../static/tc.png');
|
||||
// }
|
||||
|
||||
// #y2 {
|
||||
// background-image: url('../../static/sy.png');
|
||||
// }
|
||||
|
||||
// #y3 {
|
||||
// background-image: url('../../static/dd.png');
|
||||
// }
|
||||
|
||||
// #y4 {
|
||||
// background-image: url('../../static/ht.png');
|
||||
// }
|
||||
|
||||
// #y5 {
|
||||
// background-image: url('../../static/kc.png');
|
||||
// }
|
||||
</style>
|
@ -1,8 +1,8 @@
|
||||
<!-- 道路救援 首页-->
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="dil">
|
||||
<!-- 顶部 -->
|
||||
<view class="content-top">
|
||||
<view class="top-two">
|
||||
<view class="top-left">
|
||||
<view class="left1">
|
||||
@ -15,31 +15,59 @@
|
||||
<!-- #ifdef APP-PLUS || H5 -->
|
||||
<view class="top-right">
|
||||
<view class="">
|
||||
<uni-icons type="location-filled" color="#4282D8" size="16"></uni-icons>
|
||||
<uni-icons type="location-filled" color="#fff" size="16"></uni-icons>
|
||||
</view>
|
||||
<view class="">{{positionInfo}}</view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
|
||||
</view>
|
||||
<view class="top-menu">
|
||||
<view class="top-menu-item" :key="index" v-for="(item, index) in topMenuList" @click="goToMenuPage(item)">
|
||||
<image class="top-menu-item-icon" :src="item.icon" mode="aspectFit"></image>
|
||||
<text>{{ item.title }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="dil">
|
||||
<!-- 四个选项 -->
|
||||
<!-- #ifdef APP-PLUS || H5 -->
|
||||
<view class="four-box-header">
|
||||
<text class="four-box-header-title">我的订单</text>
|
||||
|
||||
<view class="four-box-header-extra">
|
||||
<text style="color: #929292;">待评价</text>
|
||||
<uni-icons type="right" color="#929292"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
<view class="four-box">
|
||||
<view class="boxf" @click="goToOrder(2)">
|
||||
<view class="zi1">待支付</view>
|
||||
<view class="zi2">{{dzfNum}}</view>
|
||||
<view class="zi1">
|
||||
<image class="zi1-icon" src="@/static/icons/homeOrderCard/dzf.png" mode="aspectFit"></image>
|
||||
<text>待支付</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="boxf1" @click="goToOrder(3)">
|
||||
<view class="zi1">待取车</view>
|
||||
<view class="zi2">{{dqcNum }}</view>
|
||||
<view class="zi1">
|
||||
<image class="zi1-icon" src="@/static/icons/homeOrderCard/dqc.png" mode="aspectFit"></image>
|
||||
<text>待取车</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="boxf2" @click="goToOrder(1)">
|
||||
<view class="zi1">救援中</view>
|
||||
<view class="zi2">{{jyzNum}}</view>
|
||||
<view class="zi1">
|
||||
<image class="zi1-icon" src="@/static/icons/homeOrderCard/jyz.png" mode="aspectFit"></image>
|
||||
<text>救援中</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="boxf3" @click="goToOrder(5)">
|
||||
<view class="zi1">已完成</view>
|
||||
<view class="zi2">{{ywcNum }}</view>
|
||||
<view class="zi1">
|
||||
<image class="zi1-icon" src="@/static/icons/homeOrderCard/ywc.png" mode="aspectFit"></image>
|
||||
<text>已完成</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="yijian">
|
||||
@ -75,14 +103,14 @@
|
||||
<!-- 标签切换 -->
|
||||
|
||||
|
||||
<view class="box-tap">
|
||||
<!-- <view class="box-tap">
|
||||
<view class="tap-left">
|
||||
|
||||
<view class="left-img1" @click="getone()" v-if="one == true">
|
||||
<image src="../../static/jyz.png" mode=""></image>
|
||||
<view class="gang"></view>
|
||||
</view>
|
||||
<view class="zi3" style="margin-right: 20px;" v-if="one == false" @click="getone()">救援中</view>
|
||||
<view class="zi3" style="margin-right: 20px;" v-if="one == false" @click="getone()">救援中</view> -->
|
||||
|
||||
<!-- <view class="left-img1" v-if="one == false" @click="getone()">
|
||||
<image src="../../static/jyls.png" mode=""></image>
|
||||
@ -90,7 +118,7 @@
|
||||
</view> -->
|
||||
|
||||
<!-- <view class="zi3" @click="getone()" v-if="one == true">救援历史</view> -->
|
||||
</view>
|
||||
<!-- </view>
|
||||
<view class="tap-right" @click="gohistory()">
|
||||
<view class="zi3">
|
||||
历史订单
|
||||
@ -99,12 +127,23 @@
|
||||
<uni-icons color: #666666; type="right" size="18"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="four-box-header">
|
||||
<text class="four-box-header-title">救援推荐</text>
|
||||
|
||||
<view class="four-box-header-extra" @click="gohistory()">
|
||||
<text style="color: #929292;">历史订单</text>
|
||||
<uni-icons type="right" color="#929292"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
<view class="tap-box">
|
||||
<view class="ques" v-if="orderList.length== 0 ">
|
||||
<image src="../../static/quesheng.png" mode=""></image>
|
||||
</view>
|
||||
<view class="boxt" v-for="(item,index) in orderList" :key="index">
|
||||
<view style="display: flex;flex-direction: column;row-gap: 10px;" v-else>
|
||||
<order-card @deleteOk="deleteOrderHandle" @refresh="getlist" v-for="(item, index) in orderList" :key="index" :orderData="item"></order-card>
|
||||
</view>
|
||||
<!-- <view class="boxt" v-for="(item,index) in orderList" :key="index">
|
||||
<view class="boxt-left" @click="godetail(item.id)">
|
||||
<view class="left-lan">
|
||||
<view class="">{{item.rescueTypeStr}}</view>
|
||||
@ -133,8 +172,6 @@
|
||||
<view class="zhtai">
|
||||
<view class="">{{item.rescueStatusStr}}</view>
|
||||
</view>
|
||||
<!-- v-if="role[0] == 'ddzx'" -->
|
||||
|
||||
<view class="dianhua" v-if="role == 'ddzx' && item.rescueStatus <= 2 ">
|
||||
<view>
|
||||
<view @click="getzhipai(item.id)" style="margin-bottom: 20px;" class="">指派司机</view>
|
||||
@ -150,9 +187,8 @@
|
||||
</view>
|
||||
<view class="">联系司机</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
</view>
|
||||
<!-- 一键救援 -->
|
||||
@ -162,7 +198,6 @@
|
||||
</view>
|
||||
<u-modal :show="showDelete" :title="title" :showCancelButton="true" @confirm="confirm"
|
||||
@cancel="cancel"></u-modal>
|
||||
<u-picker :show="show" :columns="columns" @confirm="confirms" @cancel="cancels" keyName="realName"></u-picker>
|
||||
<u-popup :show="showp" @close="close" @open="open" mode="center" :round="10">
|
||||
<scroll-view scroll-y style="height: 200px;">
|
||||
<view class="box_">
|
||||
@ -185,19 +220,41 @@
|
||||
import {
|
||||
getToken
|
||||
} from '@/utils/auth'
|
||||
// #ifdef APP
|
||||
const keepAlivePlugin = uni.requireNativePlugin('Ba-KeepAlive')
|
||||
const jyJPush = uni.requireNativePlugin('JY-JPush');
|
||||
// #endif
|
||||
import OrderCard from '@/components/orderCard/OrderCard.vue'
|
||||
// import { getWeather } from'../../utils/Weather'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
topMenuList: [
|
||||
{
|
||||
title: '我的订单',
|
||||
path: '/pages/rescue/historylist?id=1',
|
||||
icon: require('@/static/icons/homeTopMenu/icon_tenement.png')
|
||||
},
|
||||
{
|
||||
title: '车辆管理',
|
||||
path: '/pages/my/carManage',
|
||||
icon: require('@/static/icons/homeTopMenu/icon_clean.png')
|
||||
},
|
||||
{
|
||||
title: '数据统计',
|
||||
path: '/pages/my/StatisticsInfo',
|
||||
icon: require('@/static/icons/homeTopMenu/icon_maintain.png')
|
||||
},
|
||||
{
|
||||
title: '消息通知',
|
||||
path: '/pages/message/message',
|
||||
icon: require('@/static/icons/homeTopMenu/icon_fitment.png')
|
||||
}
|
||||
],
|
||||
msgSocket: this.$msgSocket,
|
||||
showp: false,
|
||||
title: '是否确认删除',
|
||||
content: '是否确认删除',
|
||||
show: false,
|
||||
id: '',
|
||||
did: '',
|
||||
dqcNum: 0,
|
||||
dzfNum: 0,
|
||||
jyzNum: 0,
|
||||
@ -211,7 +268,19 @@
|
||||
pageNum: 1, //第几页
|
||||
pageSize: 10, //一页多少张
|
||||
totalPages: 0, //总数
|
||||
orderList: [],
|
||||
orderList: [
|
||||
// {
|
||||
// rescueTypeStr: '扣车',
|
||||
// rescuePosition: '四川省泸州市江阳区酒谷大道四段18号泸州',
|
||||
// rescueStatus: 2,
|
||||
// rescueStatusStr: '待救援',
|
||||
// driverName: '先伟',
|
||||
// driverCarNum: '川E69752',
|
||||
// distance: 12800,
|
||||
// needTime: 26,
|
||||
// rescueTime: '2024-08-12 08:42'
|
||||
// }
|
||||
],
|
||||
sjlist: [],
|
||||
showDelete: false,
|
||||
arrbox: [
|
||||
@ -226,7 +295,6 @@
|
||||
dataResult: "",
|
||||
type: undefined
|
||||
},
|
||||
columns: [],
|
||||
one: true,
|
||||
warnList: []
|
||||
|
||||
@ -237,6 +305,7 @@
|
||||
this.$startMsgSocket(uni.getStorageSync('userId'))
|
||||
this.register()
|
||||
this.jyPushStart()
|
||||
console.log(require('@/static/icons/homeTopMenu/icon_tenement.png'), "require");
|
||||
},
|
||||
onShow() {
|
||||
this.timeWeekFormat()
|
||||
@ -261,6 +330,7 @@
|
||||
},
|
||||
components: {
|
||||
tabBar,
|
||||
OrderCard
|
||||
},
|
||||
methods: {
|
||||
jyPushStart() {
|
||||
@ -322,6 +392,14 @@
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 导航菜单跳转
|
||||
*/
|
||||
goToMenuPage(item) {
|
||||
uni.navigateTo({
|
||||
url: item.path
|
||||
})
|
||||
},
|
||||
isRunning() { //是否正在运行
|
||||
keepAlive.isRunning((res) => {
|
||||
console.log('保活服务验证', res);
|
||||
@ -346,6 +424,11 @@
|
||||
console.log('保活注册', res);
|
||||
});
|
||||
},
|
||||
deleteOrderHandle() {
|
||||
this.pageNum = 1
|
||||
this.orderList = []
|
||||
this.getlist()
|
||||
},
|
||||
getWarnList() {
|
||||
this.warnList = []
|
||||
request({
|
||||
@ -358,37 +441,6 @@
|
||||
}
|
||||
})
|
||||
},
|
||||
deleteId(id) {
|
||||
this.showDelete = true
|
||||
this.did = id
|
||||
return
|
||||
|
||||
|
||||
},
|
||||
confirm() {
|
||||
|
||||
|
||||
|
||||
request({
|
||||
url: "/app/rescueInfo/delRescueInfo?id=" + this.did,
|
||||
method: 'post',
|
||||
|
||||
}).then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: "删除成功"
|
||||
})
|
||||
this.pageNum = 1
|
||||
this.orderList = []
|
||||
this.getlist()
|
||||
}
|
||||
})
|
||||
this.showDelete = false
|
||||
},
|
||||
cancel() {
|
||||
console.log("取消");
|
||||
this.showDelete = false
|
||||
},
|
||||
goToOrder(type) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/rescue/historylist?id=' + type
|
||||
@ -404,46 +456,6 @@
|
||||
url: '/pages/rescue/initiate?id=' + id + '&isAppointment=' + this.isAppointment
|
||||
})
|
||||
},
|
||||
getsjlist() {
|
||||
this.columns = []
|
||||
// 获取司机信息
|
||||
request({
|
||||
url: '/app/rescueInfo/driverInMap?searchValue=',
|
||||
method: 'get',
|
||||
}).then((res) => {
|
||||
this.columns.push(res.data)
|
||||
})
|
||||
},
|
||||
getzhipai(id) {
|
||||
this.getsjlist()
|
||||
this.id = id
|
||||
this.show = true
|
||||
},
|
||||
confirms(e) {
|
||||
console.log(e);
|
||||
let data = {
|
||||
rescueId: this.id,
|
||||
driverId: e.value[0].id
|
||||
}
|
||||
request({
|
||||
url: '/system/rescueInfo/designateDriver',
|
||||
method: 'post',
|
||||
params: data
|
||||
}).then((res) => {
|
||||
console.log('确认司机', res);
|
||||
if (res.code == 200) {
|
||||
uni.showToast({
|
||||
title: '指派成功'
|
||||
})
|
||||
this.orderList = []
|
||||
this.getlist()
|
||||
}
|
||||
})
|
||||
this.show = false
|
||||
},
|
||||
cancels() {
|
||||
this.show = false
|
||||
},
|
||||
Fourhammers() {
|
||||
|
||||
request({
|
||||
@ -565,14 +577,19 @@
|
||||
.content {
|
||||
width: 100%;
|
||||
height: calc(100vh);
|
||||
background-color: #F6F6F6;
|
||||
background-color: #F7F8FC;
|
||||
|
||||
}
|
||||
|
||||
.dil {
|
||||
background-color: #F6F6F6;
|
||||
background-color: #F7F8FC;
|
||||
box-sizing: border-box;
|
||||
padding: 45px 12px;
|
||||
padding: 0 40rpx;
|
||||
}
|
||||
|
||||
.content-top {
|
||||
padding: 90rpx 40rpx 0;
|
||||
background-color: #327DFB;
|
||||
}
|
||||
|
||||
.top-two {
|
||||
@ -622,22 +639,49 @@
|
||||
align-items: center;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #4282D8;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.four-box {
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
.top-menu {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
|
||||
padding: 42rpx 0 32rpx;
|
||||
}
|
||||
.top-menu-item {
|
||||
color: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
row-gap: 12rpx;
|
||||
}
|
||||
.top-menu-item-icon {
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
}
|
||||
|
||||
.four-box-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 34rpx 0;
|
||||
}
|
||||
.four-box-header-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
.four-box-header-extra {
|
||||
font-size: 24rpx;
|
||||
}
|
||||
.four-box {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
gap: 24rpx;
|
||||
// margin-top: 15px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ques {
|
||||
width: 80%;
|
||||
margin: 10px auto;
|
||||
margin: 0 auto;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
@ -645,69 +689,66 @@
|
||||
}
|
||||
|
||||
.boxf {
|
||||
margin-top: 6px;
|
||||
height: 84px;
|
||||
width: 49%;
|
||||
height: 140rpx;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
padding: 12px;
|
||||
background-image: url('../../static/dzf.png');
|
||||
background-image: url('~@/static/images/homeOrderCard/dzf.png');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.boxf1 {
|
||||
margin-top: 6px;
|
||||
height: 84px;
|
||||
width: 49%;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
padding: 12px;
|
||||
background-image: url('../../static/dpq.png');
|
||||
background-image: url('~@/static/images/homeOrderCard/dqc.png');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.boxf2 {
|
||||
margin-top: 6px;
|
||||
height: 84px;
|
||||
width: 49%;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
padding: 12px;
|
||||
background-image: url('../../static/zxz.png');
|
||||
background-image: url('~@/static/images/homeOrderCard/jyz.png');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.boxf3 {
|
||||
margin-top: 6px;
|
||||
height: 84px;
|
||||
width: 49%;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
padding: 12px;
|
||||
background-image: url('../../static/yyd.png');
|
||||
background-image: url('~@/static/images/homeOrderCard/ywc.png');
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.zi1 {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
font-size: 24rpx;
|
||||
color: #333;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 10rpx;
|
||||
.zi1-icon {
|
||||
width: 38rpx;
|
||||
height: 38rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.zi2 {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 26px;
|
||||
font-size: 40rpx;
|
||||
font-weight: bold;
|
||||
color: #FFFFFF;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.box-tap {
|
||||
@ -755,8 +796,6 @@
|
||||
}
|
||||
|
||||
.tap-box {
|
||||
margin-top: 24px;
|
||||
background-color: #F6F6F6;
|
||||
}
|
||||
|
||||
.boxt {
|
||||
@ -894,9 +933,9 @@
|
||||
border-radius: 10px;
|
||||
height: 40px;
|
||||
font-size: 16px;
|
||||
background: #F3BA60;
|
||||
color: #542F0E;
|
||||
margin-top: 22px;
|
||||
background: #327DFB;
|
||||
color: #fff;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
|
||||
.y-left {
|
||||
@ -906,7 +945,7 @@
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 10px;
|
||||
background: #FFE3AC;
|
||||
background: #327DFB;
|
||||
}
|
||||
|
||||
.y-right {
|
||||
|
BIN
static/icons/carManage/carNumIcon.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
static/icons/carManage/image.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
static/icons/initiate/end.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
static/icons/initiate/qiehuan.png
Normal file
After Width: | Height: | Size: 954 B |
BIN
static/icons/initiate/start.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
static/icons/message/notice.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
static/icons/order/checked.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
static/icons/order/dadian.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
static/icons/order/huantai.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
static/icons/order/songyou.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
static/icons/order/tuoche.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
static/icons/statisticsinfo/rili@2x.png
Normal file
After Width: | Height: | Size: 857 B |