187 lines
4.5 KiB
Vue
187 lines
4.5 KiB
Vue
<template>
|
|
<view class="container">
|
|
<view class="containerBody">
|
|
<VNavigationBar background-color="rgba(0,0,0,0)" title="新建工单" title-color="#333"></VNavigationBar>
|
|
<view class="body">
|
|
<view class="card phone">
|
|
<view class="phoneHeader">
|
|
<view class="title">查找手机号|车牌号|车架号</view>
|
|
<view class="desc">根据手机号查找|车牌号|车架号/建立客户信息</view>
|
|
</view>
|
|
<view class="phoneBody">
|
|
<view class="searchBox">
|
|
<input v-model="phone" placeholder="请输入手机号码|车牌号|车架号" type="tel">
|
|
</view>
|
|
<view class="btn" @click="listUserInfo">
|
|
<image class="btnIcon" mode="aspectFit" src="/pages-order/static/search.png"></image>
|
|
确认查找
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="orderList">
|
|
<view v-for="item in orderList" :key="item.id" class="orderItem" @click="addOrder(item)">
|
|
<booking-order-card :order="item"></booking-order-card>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import VNavigationBar from '@/components/VNavigationBar.vue'
|
|
import OrderCard from "@/components/orderCard.vue";
|
|
import request from "@/utils/request";
|
|
import BookingOrderCard from "@/components/bookingOrderCard.vue";
|
|
import {formatTimestamp, formatTimestampCustom} from "@/utils/utils";
|
|
|
|
export default {
|
|
components: {
|
|
OrderCard,
|
|
BookingOrderCard,
|
|
VNavigationBar,
|
|
},
|
|
data() {
|
|
return {
|
|
phone: '',
|
|
userInfo: null,
|
|
carList: [],
|
|
orderList: []
|
|
}
|
|
},
|
|
onLoad(data) {
|
|
},
|
|
methods: {
|
|
listUserInfo() {
|
|
this.carList = []
|
|
this.userInfo = null
|
|
console.log("获取用户信息")
|
|
if (this.phone != '') {
|
|
const params = {
|
|
phoneOrCar: this.phone
|
|
}
|
|
request({
|
|
url: '/admin-api/base/custom/page',
|
|
method: 'GET',
|
|
params: params
|
|
}).then(res => {
|
|
console.log(res);
|
|
if (res.data.records.length > 0) {
|
|
const params = {
|
|
userId: res.data.records[0].userId
|
|
}
|
|
request({
|
|
url: '/admin-api/repair/booking/list',
|
|
method: 'GET',
|
|
params: params
|
|
}).then(res => {
|
|
console.log(res);
|
|
this.orderList = res.data
|
|
this.orderList.map((item) => {
|
|
item.bookingTime = formatTimestamp( item.bookingTime)
|
|
})
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
uni.showToast({
|
|
title: '请输入手机号',
|
|
icon: 'none'
|
|
})
|
|
}
|
|
},
|
|
addOrder(order){
|
|
console.log('执行')
|
|
uni.navigateTo({
|
|
url: `/pages-order/addOrder/addOrder?phone=${this.phone}&carId=${order.carId}&repairType=${order.repairType}&bookingId=${order.id}`
|
|
});
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="less" scoped>
|
|
.container {
|
|
height: 100%;
|
|
background-color: #F3F5F7;
|
|
|
|
.containerBody {
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
background: linear-gradient(180deg, #C1DEFF 0%, rgba(193, 222, 255, 0) 100%);
|
|
background-size: 100% 500rpx;
|
|
background-repeat: no-repeat;
|
|
}
|
|
|
|
.body {
|
|
flex: 1;
|
|
height: 0;
|
|
overflow: auto;
|
|
|
|
.card {
|
|
background: #FFFFFF;
|
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
margin: 20rpx 32rpx;
|
|
}
|
|
|
|
.phone {
|
|
background: #0174F6;
|
|
|
|
.phoneHeader {
|
|
padding: 20rpx 30rpx;
|
|
|
|
.title {
|
|
font-weight: bold;
|
|
font-size: 32rpx;
|
|
color: #FFFFFF;
|
|
margin-bottom: 10rpx;
|
|
}
|
|
|
|
.desc {
|
|
font-weight: 500;
|
|
font-size: 24rpx;
|
|
color: rgba(255, 255, 255, 0.7);
|
|
}
|
|
}
|
|
|
|
.phoneBody {
|
|
background: #FFFFFF;
|
|
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
|
padding: 0 30rpx;
|
|
|
|
.searchBox {
|
|
padding: 40rpx 0;
|
|
border-bottom: 1rpx solid #EEEEEE;
|
|
}
|
|
|
|
.btn {
|
|
padding: 40rpx 0;
|
|
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
column-gap: 10rpx;
|
|
|
|
font-weight: 500;
|
|
font-size: 32rpx;
|
|
color: #0174F6;
|
|
|
|
.btnIcon {
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.orderList {
|
|
.orderItem {
|
|
margin: 20rpx 32rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|