Commit a1065ca3 authored by guoyou's avatar guoyou

会员订单管理

parents 367f3618 2685bdd4
module.exports = { module.exports = {
NODE_ENV: '"development"', NODE_ENV: '"development"',
BASE_API:'"https://xxtest.upyuns.com"',//'"https://dev.dfangche.com"',//'"https://xxfcmgmt.upyuns.com"(正)',//http://10.1.37.192:9527(何), //https://xxtest.upyuns.com(测),10.1.37.246:9527(韩), 10.1.37.244(李斌)10.1.37.248:8765(小威) BASE_API:'"https://dev.dfangche.com"',//'"https://xxtest.upyuns.com"',//'"https://xxtest.upyuns.com"',//'"https://xxtest.upyuns.com"',//'"https://xxfcmgmt.upyuns.com"(正)',//http://10.1.37.192:9527(何), //https://xxtest.upyuns.com(测),10.1.37.246:9527(韩), 10.1.37.244(李斌)10.1.37.248:8765(小威)
APP_ORIGIN: '"https://wallstreetcn.com"' APP_ORIGIN: '"https://wallstreetcn.com"'
} }
<template> <template>
<el-dialog title="租车订单详情" :visible.sync="dialogVisible" class="order-details"> <el-dialog title="租车订单详情" :visible.sync="dialogVisible" class="order-details">
<el-form :model="form" ref="form" label-width="120px"> <el-form :model="form" ref="form" label-width="110px">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="订单号:"> <el-form-item label="订单号:">
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="订单创建时间:"> <el-form-item label="创建订单时间:">
<span></span> <span>{{form.crtTime}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="实际支付时间:"> <el-form-item label="实际支付时间:">
<span>{{form.crtTime}}</span> <span>{{!!form.payTime ? timestamp(new Date(form.payTime)) : '无'}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="会员等级/身份:"> <el-form-item label="会员等级/身份:">
<span></span> <span>{{form.memberName}}/{{form. jobTitle}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
@click="resetCar" @click="resetCar"
>重新配车</el-button> >重新配车</el-button>
</el-form-item> </el-form-item>
</el-col> --> </el-col>-->
</el-row> </el-row>
<!-- <el-row> <!-- <el-row>
<el-col :span="8"> <el-col :span="8">
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<span>{{form.startCompanyName}}</span> <span>{{form.startCompanyName}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> --> </el-row>-->
<!-- <el-row> <!-- <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="还车:"> <el-form-item label="还车:">
...@@ -90,32 +90,50 @@ ...@@ -90,32 +90,50 @@
>更换</el-button> >更换</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> --> </el-row>-->
<table class="orderDetail"> <table class="orderDetail">
<tr> <tr>
<th>房车</th> <th>房车</th>
<th>取/还时间</th> <th>取/还时间</th>
<th>交车公司</th> <th>交车公司</th>
<th>还车公司</th> <th>还车公司</th>
<th>费用明细</th> <th>免费天数</th>
<th>车辆租赁费</th>
<th>优惠券</th>
<th>不计免赔</th>
<th>租房车押金</th>
</tr> </tr>
<tr> <tr>
<!-- {{rentCostDetail}} -->
<td>{{form.name}}</td> <td>{{form.name}}</td>
<td> <td>
<p>取:{{form.orderRentVehicleDetail.startTime}}</p> <p>取:{{form.orderRentVehicleDetail.startTime}}</p>
<p>还:{{form.orderRentVehicleDetail.endTime}}</p> <p>还:{{form.orderRentVehicleDetail.endTime}}</p>
<p>租借天数:{{form.orderRentVehicleDetail.dayNum}}</p>
</td> </td>
<td>{{form.startCompanyName}}</td> <td>{{form.startCompanyName}}</td>
<td>{{form.endCompanyName}}</td> <td>{{form.endCompanyName}}</td>
<td></td>
<td></td>
<td>
<p v-if="form.couponList">
优惠券:
<span
v-for="(item,index) in form.couponList"
:key="index"
>{{item.title}}-{{item.usedAmount}}</span>
</p>
<p v-else>优惠券:无</p>
</td>
<td></td>
<td> <td>
<p>车辆租赁费:</p> <!-- {{form.orderRentVehicleDetail.costDetail.children}} -->
<p>免费天数:</p> <!-- <div v-show="form.orderRentVehicleDetail.costDetail">
<p>不计免赔:</p> <p
<p>租房车押金:</p> v-for="(item,index) in JSON.parse(form.orderRentVehicleDetail.costDetail).children"
<p>优惠券:</p> :key="index"
>{{item.key}}:{{item.detail || '无'}}</p>
</div> -->
</td> </td>
</tr> </tr>
<tr> <tr>
<td> <td>
...@@ -128,36 +146,47 @@ ...@@ -128,36 +146,47 @@
v-show="form.status == 4 || form.status == 5" v-show="form.status == 4 || form.status == 5"
size="mini" size="mini"
type="text" type="text"
style="padding: 7px 9px;"
@click="resetReturn = true" @click="resetReturn = true"
>更换</el-button> >更换</el-button>
</td> </td>
<td>共计:¥{{form.realAmount}}</td> <td colspan="5">{{form.payWay == 1 ? '微信公众号支付' : form.payWay == 2 ? '支付宝即时支付' : form.payWay == 3 ? '银联支付' : ''}} 共计:¥{{form.realAmount}}</td>
</tr> </tr>
</table> </table>
<p>额外随车物品:11111</p> <p>
<p>内部邀请人:11111</p> <b>额外随车物品:</b>
<p>驾驶证:11111</p> <span
v-for="(item,index) in JSON.parse(this.form.carArticlesJson)"
:key="index"
<div v-if="form.orderVehicleCrosstownDto" style="margin: 20px 0;"> style="margin-right:10px"
>{{item.name || '无'}}</span>
</p>
<p>
<b>内部邀请人:</b>
<span>{{form.facilitatePhone || '无'}}</span>
</p>
<p>
<b>驾驶证:</b>
<span
v-if="form.orderVehicleCrosstownDto"
>{{form.orderVehicleCrosstownDto.licenseName}} {{form.orderVehicleCrosstownDto.licensePhone}} {{form.orderVehicleCrosstownDto.licenseIdCard}}</span>
<span v-else></span>
</p>
<!-- <div v-if="form.orderVehicleCrosstownDto" style="margin: 20px 0;">
<span style="font-size: 18px;font-weight: bold;">驾驶人信息</span> <span style="font-size: 18px;font-weight: bold;">驾驶人信息</span>
</div> </div>-->
<table class="orderDetail" v-if="form.orderVehicleCrosstownDto"> <!-- <table class="orderDetail" v-if="form.orderVehicleCrosstownDto">
<tr> <tr>
<th>姓名</th> <th>姓名</th>
<th>手机号</th> <th>手机号</th>
<th>身份证号</th> <th>身份证号</th>
<!-- <th>驾照</th>-->
</tr> </tr>
<tr> <tr>
<td>{{form.orderVehicleCrosstownDto.licenseName}}</td> <td>{{form.orderVehicleCrosstownDto.licenseName}}</td>
<td>{{form.orderVehicleCrosstownDto.licensePhone}}</td> <td>{{form.orderVehicleCrosstownDto.licensePhone}}</td>
<td>{{form.orderVehicleCrosstownDto.licenseIdCard}}</td> <td>{{form.orderVehicleCrosstownDto.licenseIdCard}}</td>
<!-- <td><img style="width: 140px;height: 140px;" :src="form.orderVehicleCrosstownDto?form.orderVehicleCrosstownDto.licenseImg:'https://xxtest.upyuns.com/image/app/default_%20avatar.png'"></td>-->
</tr> </tr>
</table> </table>-->
</el-form> </el-form>
<div class="modal_modal" v-show="resetCarVisible"></div> <div class="modal_modal" v-show="resetCarVisible"></div>
<!-- 重新配车 --> <!-- 重新配车 -->
...@@ -215,6 +244,7 @@ export default { ...@@ -215,6 +244,7 @@ export default {
updateNumberPlat: false, //是否重新配车 updateNumberPlat: false, //是否重新配车
dialogVisible: false, dialogVisible: false,
resetCarVisible: false, resetCarVisible: false,
goods: [],
resetCarForm: { resetCarForm: {
no: '', no: '',
numberPlate: '' //重新配车车牌号 numberPlate: '' //重新配车车牌号
...@@ -248,7 +278,7 @@ export default { ...@@ -248,7 +278,7 @@ export default {
} }
}, },
mounted() { mounted() {
console.log(this.form)
this.dialogVisible = true this.dialogVisible = true
if (this.form.status == 2) { if (this.form.status == 2) {
this.form.ststusName = '取消' this.form.ststusName = '取消'
...@@ -268,6 +298,32 @@ export default { ...@@ -268,6 +298,32 @@ export default {
this.getAllFn() this.getAllFn()
}, },
methods: { methods: {
timestamp(now) {
var year = now.getFullYear()
var month = now.getMonth() + 1
var date = now.getDate()
var Hours = now.getHours()
var Minutes = now.getMinutes()
var Seconds = now.getSeconds()
month = month.toString().length == 1 ? '0' + month : month
date = date.toString().length == 1 ? '0' + date : date
Hours = Hours.toString().length == 1 ? '0' + Hours : Hours
Minutes = Minutes.toString().length == 1 ? '0' + Minutes : Minutes
Seconds = Seconds.toString().length == 1 ? '0' + Seconds : Seconds
return (
year +
'-' +
month +
'-' +
date +
' ' +
Hours +
':' +
Minutes +
':' +
Seconds
)
},
getAllFn() { getAllFn() {
let _this = this let _this = this
getAll().then(data => { getAll().then(data => {
......
<template> <template>
<el-dialog title="违章查询" :visible.sync="isVisible"> <el-dialog title="违章查询" :visible.sync="isVisible">
<el-form> <el-form>
<el-row> <!-- <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="订单号"> <el-form-item label="订单号">
<span>{{row.no}}</span> <span>{{row.no}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="订单金额"> <el-form-item label="订单金额">
<span>{{row.realAmount}}</span> <span>{{row.realAmount}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="车牌号"> <el-form-item label="车牌号">
<span>{{row.vehicleNumberPlat}}</span> <span>{{row.vehicleNumberPlat}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="用户ID/实名"> <el-form-item label="用户ID/实名">
<span>{{row.userId}}</span>/<span>{{row.username}}</span> <span>{{row.userId}}</span>/
</el-form-item> <span>{{row.username}}</span>
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col :span="8"> <el-row>
<el-form-item label="取车"> <el-col :span="8">
<span>{{dateFormat(row.orderRentVehicleDetail.startTime)}}</span> <el-form-item label="取车">
</el-form-item> <span>{{dateFormat(row.orderRentVehicleDetail.startTime)}}</span>
</el-col> </el-form-item>
<el-col :span="16"> </el-col>
<el-form-item label="交车公司"> <el-col :span="16">
<span>{{row.startCompanyName}}</span> <el-form-item label="交车公司">
<span>({{row.orderRentVehicleDetail.startCityName}}{{row.orderRentVehicleDetail.startAddr}})</span> <span>{{row.startCompanyName}}</span>
</el-form-item> <span>({{row.orderRentVehicleDetail.startCityName}}{{row.orderRentVehicleDetail.startAddr}})</span>
</el-col> </el-form-item>
</el-row> </el-col>
<el-row> </el-row>
<el-col :span="8"> <el-row>
<el-form-item label="还车"> <el-col :span="8">
<span>{{dateFormat(row.orderRentVehicleDetail.endTime)}}</span> <el-form-item label="还车">
</el-form-item> <span>{{dateFormat(row.orderRentVehicleDetail.endTime)}}</span>
</el-col> </el-form-item>
<el-col :span="16"> </el-col>
<el-form-item label="收车公司"> <el-col :span="16">
<span><span>{{row.endCompanyName}}</span> <el-form-item label="收车公司">
<span>({{row.orderRentVehicleDetail.endCityName}}{{row.orderRentVehicleDetail.endAddr}})</span></span> <span>
</el-form-item> <span>{{row.endCompanyName}}</span>
</el-col> <span>({{row.orderRentVehicleDetail.endCityName}}{{row.orderRentVehicleDetail.endAddr}})</span>
</el-row> </span>
<el-row> </el-form-item>
<el-col> </el-col>
<el-form-item label="违章截图" :style="{display:'block'}"> </el-row> -->
<!--<el-upload--> <el-row>
<!--:action="BASE_API+'/api/universal/file/app/unauth/admin/upload'"--> <el-col>
<!--list-type="picture-card"--> <el-form-item label="违章截图" :style="{display:'block'}">
<!--:headers="getHeaderWithToken"--> <!--<el-upload-->
<!--:on-success="handleSuccess"--> <!--:action="BASE_API+'/api/universal/file/app/unauth/admin/upload'"-->
<!--:on-remove="handleRemove">--> <!--list-type="picture-card"-->
<!--<i class="el-icon-plus"></i>--> <!--:headers="getHeaderWithToken"-->
<!--</el-upload>--> <!--:on-success="handleSuccess"-->
<!--<el-dialog v-model="dialogVisible" size="tiny">--> <!--:on-remove="handleRemove">-->
<!--<img width="100%" :src="dialogImageUrl" alt="">--> <!--<i class="el-icon-plus"></i>-->
<!--</el-dialog>--> <!--</el-upload>-->
<el-upload <!--<el-dialog v-model="dialogVisible" size="tiny">-->
class="upload-demo" <!--<img width="100%" :src="dialogImageUrl" alt="">-->
:headers="getHeaderWithToken" <!--</el-dialog>-->
:action="BASE_API+'/api/universal/file/app/unauth/admin/upload'" <el-upload
:on-remove="handleRemove" class="upload-demo"
:file-list="fileList2" :headers="getHeaderWithToken"
:on-success="handleSuccess" :action="BASE_API+'/api/universal/file/app/unauth/admin/upload'"
list-type="picture-card"> :on-remove="handleRemove"
<!--<div slot="tip" class="el-upload__tip">最多上传5张</div>--> :file-list="fileList2"
<i class="el-icon-plus"></i> :on-success="handleSuccess"
</el-upload> list-type="picture-card"
</el-form-item> >
</el-col> <!--<div slot="tip" class="el-upload__tip">最多上传5张</div>-->
</el-row> <i class="el-icon-plus"></i>
<el-row> </el-upload>
<el-form-item label="违章罚款" style="display: inline-block;"> </el-form-item>
<el-input v-model="price" type="number" placeholder="请输入违章罚款金额"></el-input> </el-col>
</el-form-item> </el-row>
</el-row> <el-row>
</el-form> <el-form-item label="违章罚款" style="display: inline-block;width:100%">
<el-input style="width:300px" v-model="price" type="number" placeholder="请输入违章罚款金额"></el-input><span style="margin-left:10px"></span>
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="okHandler('form')">确 定</el-button> <el-button type="primary" @click="okHandler('form')">确 定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { import { page, saveOrderViolation } from 'api/order/rentVehicle'
page, import { mapGetters } from 'vuex'
saveOrderViolation import { formatDate } from '../../../utils/dateFormattor'
} from 'api/order/rentVehicle'; import { getToken } from '../../../utils/auth'
import {mapGetters} from 'vuex'; import { getOneIllegalRow } from 'api/order/rentVehicle'
import { import ElRow from 'element-ui/packages/row/src/row'
formatDate import ElInput from '../../../../node_modules/element-ui/packages/input/src/input.vue'
} from '../../../utils/dateFormattor'; import ElCol from 'element-ui/packages/col/src/col'
import { import ElFormItem from '../../../../node_modules/element-ui/packages/form/src/form-item.vue'
getToken import ElForm from '../../../../node_modules/element-ui/packages/form/src/form.vue'
} from '../../../utils/auth'; export default {
import { props: ['row'],
getOneIllegalRow name: 'illegalDialog',
} from 'api/order/rentVehicle'; components: {
import ElRow from "element-ui/packages/row/src/row"; ElForm,
import ElInput from "../../../../node_modules/element-ui/packages/input/src/input.vue"; ElFormItem,
import ElCol from "element-ui/packages/col/src/col"; ElCol,
import ElFormItem from "../../../../node_modules/element-ui/packages/form/src/form-item.vue"; ElInput,
import ElForm from "../../../../node_modules/element-ui/packages/form/src/form.vue"; ElRow
export default { },
props: ["row"], data() {
name: 'illegalDialog', return {
components: { BASE_API: process.env.BASE_API,
ElForm, price: undefined, //违章罚款金额
ElFormItem, isVisible: false,
ElCol, fileList2: [] //违章截图
ElInput, }
ElRow },
}, created() {},
data() { watch: {
return { isVisible(newValue, oldValue) {
BASE_API: process.env.BASE_API, if (!newValue) {
price: undefined,//违章罚款金额 this.$emit('illegalEvent', false)
isVisible: false, }
fileList2:[],//违章截图 }
} },
}, mounted() {
created() { let that = this
// if(that.row.refundStatus == 3) {
}, //refundStatus退款状态 0、未退款 1、已退还所有(取消订单时)2、 已退还部分(保留违章预备金)3、已退还所有押金(扣除该扣除的)
watch: { that.getOne(that.row.detailId)
isVisible(newValue, oldValue){ // }
if(!newValue){ this.isVisible = true
this.$emit('illegalEvent', false); },
} computed: {
}, ...mapGetters(['elements']),
}, getHeaderWithToken() {
mounted() { return { Authorization: getToken() }
let that = this; }
// if(that.row.refundStatus == 3) { },
//refundStatus退款状态 0、未退款 1、已退还所有(取消订单时)2、 已退还部分(保留违章预备金)3、已退还所有押金(扣除该扣除的) methods: {
that.getOne(that.row.detailId); /**
// } * 根据id查询一条记录
this.isVisible = true; * */
}, getOne(id) {
computed: { let t = this
...mapGetters([ getOneIllegalRow(id).then(response => {
'elements', if (response.status == 200) {
]), let arr = response.data.picture.split(',')
getHeaderWithToken() { let fileList2 = []
return {Authorization: getToken()}; let p = {}
} arr.map(function(item) {
}, p = {
methods: { url: item
/** }
* 根据id查询一条记录 fileList2.push(p)
* */ })
getOne(id){ t.price = parseFloat(response.data.price)
let t = this; t.fileList2 = fileList2
getOneIllegalRow(id).then(response => { t.id = response.data.id ? response.data.id : undefined
if(response.status == 200){ } else {
let arr = response.data.picture.split(","); this.$notify({
let fileList2 = []; title: '失败',
let p = {}; message: response.menu,
arr.map(function(item){ type: 'error',
p = { duration: 2000
url: item })
}; }
fileList2.push(p); })
}); },
t.price = parseFloat(response.data.price); /**
t.fileList2 = fileList2; * 上传成功
t.id = response.data.id?response.data.id: undefined; * */
} else { handleSuccess(res, file) {
this.$notify({ let c = { url: res.data }
title: '失败', this.fileList2.push(c)
message: response.menu, this.showLoadingBody = false
type: 'error', },
duration: 2000 /**
}); * 删除违章图片
} * */
}) handleRemove(file, fileList) {
}, this.fileList2 = fileList
/** },
* 上传成功 /**
* */ * 确定
handleSuccess(res, file) { * */
let c = {url: res.data}; okHandler() {
this.fileList2.push(c); let arr = []
this.showLoadingBody = false; this.fileList2.map(function(item) {
}, arr.push(item.url)
/** })
* 删除违章图片 let params = {
* */ picture: arr.join(','),
handleRemove(file, fileList){ price: this.price,
this.fileList2 = fileList; detailId: this.row.detailId,
}, id: this.id
/** }
* 确定 saveOrderViolation(params).then(response => {
* */ if (response.status === 200) {
okHandler() { this.$notify({
let arr = []; title: '成功',
this.fileList2.map(function(item){ message: '创建成功',
arr.push(item.url); type: 'success',
}); duration: 2000
let params = { })
picture:arr.join(","), this.$emit('illegalEvent', false)
price:this.price, } else {
detailId: this.row.detailId, this.$notify({
id: this.id title: '创建失败',
}; message: '操作失败!',
saveOrderViolation(params).then(response => { type: 'error',
if (response.status === 200) { duration: 2000
this.$notify({ })
title: '成功', }
message: '创建成功', })
type: 'success', },
duration: 2000 /**
}); * 弹框-取消
this.$emit('illegalEvent', false); * */
} else { cancel() {
this.$notify({ this.$emit('illegalEvent', false)
title: '创建失败', },
message: '操作失败!', /**
type: 'error', * 格式化时间
duration: 2000 * @param timestamp
}); * @returns {*}
} */
}); dateFormat(timestamp) {
}, let date = new Date(timestamp) //时间戳为10位需*1000,时间戳为13位的话不需乘1000
/** return formatDate(date, 'yyyy-MM-dd hh:mm:ss')
* 弹框-取消 }
* */ }
cancel() { }
this.$emit('illegalEvent', false);
},
/**
* 格式化时间
* @param timestamp
* @returns {*}
*/
dateFormat(timestamp) {
let date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
},
}
}
</script> </script>
<style> <style>
.el-form-item__content{ .el-form-item__content {
display: inline-block; display: inline-block;
} }
</style> </style>
...@@ -18,22 +18,11 @@ ...@@ -18,22 +18,11 @@
</el-col> </el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="所属公司" prop="startCompanyId"> <el-form-item label="所属公司" prop="startCompanyId">
<!-- <el-select
class="filter-item"
v-model="listQuery.startCompanyId"
placeholder="请选择"
@change="getAllBranchCompanyChange"
>
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="val in allBranchCompany" :key="val.id" :label="val.name" :value="val.id"></el-option>
</el-select>-->
<el-select <el-select
v-model="listQuery.startCompanyId" v-model="listQuery.startCompanyId"
class="filter-item"
filterable filterable
placeholder="请选择" placeholder="请选择"
@change="getAllBranchCompanyChange" getAllBranchCompanyChange
> >
<el-option :key="undefined" label="无" :value="undefined"></el-option> <el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option <el-option
...@@ -258,94 +247,185 @@ ...@@ -258,94 +247,185 @@
v-on:rentOrderDetailDialogEvent="rentOrderDetailDialogEvent" v-on:rentOrderDetailDialogEvent="rentOrderDetailDialogEvent"
></rentOrderDetailModal> ></rentOrderDetailModal>
<!-- 交车记录 --> <!-- 交车记录,还车记录,押金记录 -->
<el-dialog :title="modalTitle" :visible.sync="orderVehicleCrosstownVisible"> <el-dialog :title="modalTitle" :visible.sync="orderVehicleCrosstownVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="90px"> <el-form :model="form" :rules="rules" ref="form" label-width="90px">
<div class="label-title"> <div v-if="modalTitle=='交车记录'">
<span>订单号:</span> <el-row :gutter="20">
<span class="label-text">{{form.no}}</span> <el-col :span="10">
<span>支付时间:</span> <el-form-item label="客户姓名:">
<span class="label-text">{{form.crtTime}}</span> <span>{{form.realName}}</span>
</div> </el-form-item>
<div class="label-title"> </el-col>
<span>订单状态:</span> <el-col :span="10">
<span class="label-text">{{form.ststusName}}</span> <el-form-item label="手机号:">
<span class="label-text">{{form.telephone}}</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="驾驶证:">
<viewer>
<img :src="form.userLicenseImg" class="voucher" />
</viewer>
</el-form-item>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="交车操作人:">
<span class="label-text">{{orderReturnVehicleCrosstown.operatorName}} {{orderReturnVehicleCrosstown.operatorPhone}}</span>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="交车时间:">
<span class="label-text">{{orderReturnVehicleCrosstown.operatorTime ? dateFormat(orderReturnVehicleCrosstown.operatorTime) : ''}}</span>
</el-form-item>
</el-col>
</el-row>
</div> </div>
<div class="label-title">
<span>姓名/手机号:</span> <div v-else-if="modalTitle=='还车记录'">
<span class="label-text"> <el-form-item label="实退押金:">
<span>{{form.realName}}</span>/ <span>{{orderReturnVehicleCrosstown.restDeposit}}</span>
<span>{{form.telephone}}</span> </el-form-item>
</span> <el-form-item label="消费超额:">
<span
v-for="(item,index) in orderReturnVehicleCrosstown.violateDetailList"
:key="index"
>{{item.excessCost}}</span>
</el-form-item>
<el-form-item label="违约类型:">
<span
v-for="(item,index) in orderReturnVehicleCrosstown.violateDetailList"
:key="index"
>{{item.statusName}}</span>
</el-form-item>
<el-form-item label="赔款备注:">
<span
v-for="(item,index) in orderReturnVehicleCrosstown.violateDetailList"
:key="index"
>{{item.deductions}}</span>
</el-form-item>
<el-form-item label="优惠券返还:">
<span
v-for="(item,index) in orderReturnVehicleCrosstown.backCoupons"
:key="index"
>{{item.title}} {{item.usedAmount}}</span>
</el-form-item>
</div> </div>
<div class="label-title">
<span>取车:</span> <div v-show="modalTitle=='还车记录' || modalTitle=='交车记录'">
<span class="label-text">{{form.orderRentVehicleDetail.startTime}}</span> <el-form-item label="公里数:">
<span class="label-text">{{form.orderRentVehicleDetail.startAddr}}</span> <p
<span class="label-text">交车公司:</span> style="line-height: 1;position: relative;top: -3px;"
<span>{{form.startCompanyName}}</span> >{{orderReturnVehicleCrosstown.mileage}}km/h</p>
<viewer>
<img :src="orderReturnVehicleCrosstown.mileageImg" class="voucher" />
</viewer>
</el-form-item>
<el-form-item label="车辆取证:">
<viewer :images="otherImg">
<img v-for="src in otherImg" :src="src" :key="src" class="voucher" />
</viewer>
</el-form-item>
<el-form-item label="备注:">
<span>{{form.remak}}</span>
</el-form-item>
</div> </div>
<div class="label-title">
<span>还车:</span> <div v-show="modalTitle=='还车记录'">
<span class="label-text">{{form.orderRentVehicleDetail.endTime}}</span> <div v-show="orderReturnVehicleCrosstown.type == 3">
<span class="label-text">{{form.orderRentVehicleDetail.endAddr}}</span> <el-form-item label="定损类型:">
<span class="label-text">交车公司:</span> <span></span>
<span>{{form.endCompanyName}}</span> </el-form-item>
<el-form-item label="定损总赔:">
<span>{{dedDetailDTOListAll}}</span>
</el-form-item>
<el-form-item label="赔偿事项:">
<div v-for="(item,index) in orderReturnVehicleCrosstown.dedDetailDTOList" :key="index">
<p
style="line-height: 1;position: relative;top: -3px;"
>事项{{index+1}} {{item.deductions}} {{item.cost}}</p>
<viewer :images="item.picList">
<img v-for="src in item.picList" :src="src" :key="src" class="voucher" />
</viewer>
</div>
</el-form-item>
<el-form-item label="定损时间:">
<span>{{dateFormat(orderReturnVehicleCrosstown.statusTime)}}</span>
</el-form-item>
</div>
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="收车操作人:">
<span
class="label-text"
>{{orderReturnVehicleCrosstown.operatorName}} {{orderReturnVehicleCrosstown.operatorPhone}}</span>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="收车时间:">
<span class="label-text">{{dateFormat(orderReturnVehicleCrosstown.operatorTime)}}</span>
</el-form-item>
</el-col>
</el-row>
</div> </div>
<div class="stepBox" v-if="depositDetail"> <div class="stepBox" v-if="depositDetail">
<div class="title" v-if="depositRefundRecord.length>0">押金退还进度</div> <div class="title" v-if="depositRefundRecord.length>0">押金退还进度</div>
<ul> <ul>
<li >
<p class="inline successInline"></p>
<p>
成功收车
<br />
<span>{{dateFormat(crtTimeIndex)}}</span>
</p>
</li>
<li <li
v-for="(item,index) in depositRefundRecord" v-for="(item,index) in depositRefundRecord"
:class="{'active':item.iscomplete}" :class="{'active':item.iscomplete}"
:key="index" :key="index"
> >
<img class="activeImg" v-if="item.iscomplete" src="../../../assets/images/active.png" alt /> <p :class="{successInline:item.iscomplete}" class="inline"></p>
<img class="activeImg" v-if="!item.iscomplete" src="../../../assets/images/doing.png" alt />
<p class="stepTitle"> <p class="stepTitle">
<template v-if="item.status==1"> <template v-if="item.status==1">
<div class="picBox"> <div class="picBox">
<div style="flex: 1">{{item.restAmount}}押金退还已申请</div> <div>{{item.restAmount}}押金退还已申请</div>
<div style="font-size: 10px;color: #999">{{item.updTimeStr}}</div> <div style="color: #999">{{item.updTimeStr}}</div>
</div> </div>
</template> </template>
<template v-if="item.status==2"> <template v-if="item.status==2">
<div class="picBox"> <div class="picBox">
<div style="flex: 1">{{item.restAmount}}元押金退还到账</div> <div v-show="item.iscomplete">退还押金{{item.restAmount}}(扣除{{item.amount}}元)</div>
<div style="font-size: 10px;color: #999">{{item.updTimeStr}}</div> <div v-show='!item.iscomplete'>退还押金15000元</div>
<div style="color: #999" v-show="item.iscomplete">{{item.updTimeStr}}</div>
<button v-if="item.iscomplete">详情</button>
</div> </div>
</template> </template>
<template v-if="item.status==3"> <template v-if="item.status==3">
<div class="picBox"> <div class="picBox">
<div style="flex: 1">{{item.restAmount}}元房车违章押金到账</div> <div v-show="item.iscomplete">退还违章保证金{{item.restAmount}}元(扣除{{item.amount}}元)</div>
<div style="font-size: 10px;color: #999">{{item.updTimeStr}}</div> <div v-show="!item.iscomplete">退还押金5000元</div>
</div> <div style="color: #999" v-show="item.iscomplete">{{item.updTimeStr}}</div>
</template> <div v-if="item.iscomplete">详情</div>
<template v-if="item.status==4">
<div class="picBox">
<div style="flex: 1">房车定损评定中</div>
<div style="font-size: 10px;color: #999">{{item.updTimeStr}}</div>
</div> </div>
</template> </template>
<template v-if="item.status==5"> <template v-if="item.status==5">
<div class="picBox"> <div class="picBox">
<div style="flex: 1">完成定损,退还剩余押金</div> <div>定损中</div>
<div style="font-size: 10px;color: #999">{{item.updTimeStr}}</div> <div style="color: #999" v-if="item.iscomplete">{{item.updTimeStr}}</div>
</div> </div>
</template> </template>
<template v-if="item.status==6"> <template v-if="item.status==6">
<div class="picBox"> <div class="picBox">
<div style="flex: 1">押金退还到账</div> <div v-show="item.iscomplete">退还押金{{item.restAmount}}(扣除{{item.amount}}元)</div>
<div style="font-size: 10px;color: #999">{{item.updTimeStr}}</div> <div v-show='!item.iscomplete'>退还押金15000元</div>
<div style="color: #999" v-show="item.iscomplete">{{item.updTimeStr}}</div>
<button v-if="item.iscomplete">详情</button>
</div> </div>
</template> </template>
</p> </p>
<p class="tip"> <!-- <p class="tip">
<template v-if="item.status==1">成功还车,退还15000租车押金</template> <template v-if="item.status==1">成功还车,退还15000租车押金</template>
<template v-if="item.status==2">{{item.updTimeStr}} 到账</template> <template v-if="item.status==2">{{item.updTimeStr}} 到账</template>
<template v-if="item.status==3">预计{{item.endTimeStr}}之前到账</template> <template v-if="item.status==3">预计{{item.endTimeStr}}之前到账</template>
...@@ -358,8 +438,8 @@ ...@@ -358,8 +438,8 @@
定损流程有疑问可联系滴房车 客服 定损流程有疑问可联系滴房车 客服
<a :href="'tel://'+Tel" style="color: #666666;">{{Tel}}</a> <a :href="'tel://'+Tel" style="color: #666666;">{{Tel}}</a>
</template> </template>
</p> </p> -->
<p <!-- <p
class="detailTitle" class="detailTitle"
v-if="item.orderViolation && item.status==3" v-if="item.orderViolation && item.status==3"
style="margin-top: 15px" style="margin-top: 15px"
...@@ -387,76 +467,10 @@ ...@@ -387,76 +467,10 @@
<div class="picBox"> <div class="picBox">
<img class="picItem" :src="it" alt v-for="(it,ix) in itm.picList" :key="ix" /> <img class="picItem" :src="it" alt v-for="(it,ix) in itm.picList" :key="ix" />
</div> </div>
</div> </div> -->
</li> </li>
</ul> </ul>
</div> </div>
<div v-if="vehicleDetail" style="border: 1px solid;">
<div style="border-bottom: 1px solid;">
<span class="label-text">交车交接人:</span>
<span class="label-text">{{orderReturnVehicleCrosstown.username}}</span>
</div>
<div>
<span class="label-text">上传驾驶证*:</span>
<span class="label-text">{{orderReturnVehicleCrosstown.licenseName}}</span>
<span class="label-text">{{orderReturnVehicleCrosstown.licensePhone}}</span>
<br />
<span style="margin-left:110px;">身份证号:</span>
<span class="label-text">{{orderReturnVehicleCrosstown.licenseIdCard}}</span>
<br />
<viewer>
<img
:src="orderReturnVehicleCrosstown.licenseImg"
style="width: 100px; height: 100px;margin-left:110px;"
/>
</viewer>
</div>
<div>
<span class="label-text">拍照取证*:</span>
<br />
<viewer :images="otherImg">
<img
v-for="src in otherImg"
:src="src"
:key="src"
style="width: 100px; height: 100px;margin-left:110px;"
/>
</viewer>
</div>
<div v-if="handover">
<span class="label-text">房车公里数*:</span>
<span class="label-text">当前公里数:</span>
<span class="label-text">{{orderReturnVehicleCrosstown.mileage}}Km</span>
<br />
<viewer>
<img
:src="orderReturnVehicleCrosstown.mileageImg"
style="width: 100px; height: 100px;margin-left:110px;"
/>
</viewer>
</div>
<div v-if="returnVehicle">
<span class="label-text">钥匙照片*:</span>
<br />
<viewer>
<img
:src="orderReturnVehicleCrosstown.vehicleKey"
style="width: 100px; height: 100px;margin-left:110px;"
/>
</viewer>
</div>
<div v-if="returnVehicle">
<span class="label-text">押金扣除项*:</span>
<span>{{orderReturnVehicleCrosstown.deduction?'有扣除项':'没有扣除项'}}</span>
<br />
</div>
<div>
<span class="label-text">备注:</span>
<span class="label-text">{{orderReturnVehicleCrosstown.remak}}</span>
</div>
<div></div>
</div>
</el-form> </el-form>
</el-dialog> </el-dialog>
...@@ -518,6 +532,7 @@ export default { ...@@ -518,6 +532,7 @@ export default {
}, },
data() { data() {
return { return {
isInline:false,
pictureList: [], pictureList: [],
dedDetail: [], dedDetail: [],
depositRefundRecord: [], depositRefundRecord: [],
...@@ -629,6 +644,7 @@ export default { ...@@ -629,6 +644,7 @@ export default {
orderStartTime: undefined, orderStartTime: undefined,
orderEndTime: undefined orderEndTime: undefined
}, },
crtTimeIndex:null,
baranchQuery: { baranchQuery: {
zoneId: null zoneId: null
}, },
...@@ -671,6 +687,7 @@ export default { ...@@ -671,6 +687,7 @@ export default {
licensePhone: undefined licensePhone: undefined
}, //还车记录 }, //还车记录
tableKey: 0, tableKey: 0,
dedDetailDTOListAll: undefined,
otherImg: [], otherImg: [],
handover: false, handover: false,
returnVehicle: false, returnVehicle: false,
...@@ -1041,6 +1058,7 @@ export default { ...@@ -1041,6 +1058,7 @@ export default {
} }
this.orderVehicleQuery.orderId = this.form.id this.orderVehicleQuery.orderId = this.form.id
this.orderVehicleQuery.type = 1 this.orderVehicleQuery.type = 1
this.orderVehicleQuery.types = null
this.getAllOrderVehicleCrosstown() this.getAllOrderVehicleCrosstown()
this.handover = true this.handover = true
this.returnVehicle = false this.returnVehicle = false
...@@ -1055,6 +1073,16 @@ export default { ...@@ -1055,6 +1073,16 @@ export default {
} else { } else {
this.orderVehicleCrosstownVisible = true this.orderVehicleCrosstownVisible = true
this.orderReturnVehicleCrosstown = response.data[0] this.orderReturnVehicleCrosstown = response.data[0]
var sum = 0
if (this.orderReturnVehicleCrosstown.dedDetailDTOList) {
this.orderReturnVehicleCrosstown.dedDetailDTOList.forEach(
element => {
sum += element.cost
}
)
this.dedDetailDTOListAll = sum
}
if (response.data[0].imgs) { if (response.data[0].imgs) {
this.otherImg = response.data[0].imgs.split(',') this.otherImg = response.data[0].imgs.split(',')
} }
...@@ -1105,7 +1133,8 @@ export default { ...@@ -1105,7 +1133,8 @@ export default {
this.serviceCost = this.form.orderRentVehicleDetail.dayNum * 600 this.serviceCost = this.form.orderRentVehicleDetail.dayNum * 600
} }
this.orderVehicleQuery.orderId = this.form.id this.orderVehicleQuery.orderId = this.form.id
this.orderVehicleQuery.type = 2 this.orderVehicleQuery.types = '2,3'
this.orderVehicleQuery.type = null
this.getAllOrderVehicleCrosstown() this.getAllOrderVehicleCrosstown()
this.returnVehicle = true this.returnVehicle = true
this.handover = false this.handover = false
...@@ -1120,11 +1149,12 @@ export default { ...@@ -1120,11 +1149,12 @@ export default {
that.depositRefundRecord = [] that.depositRefundRecord = []
that.dedTotal = 0 that.dedTotal = 0
that.Tel = '' that.Tel = ''
getStep(row.no).then(response => { getStep(row.no+'&address=1').then(response => {
response.data.forEach(function(item) { response.data.forEach(function(item) {
if (item.type != 1) { if (item.type != 1) {
that.Tel = item.customerPhone that.Tel = item.customerPhone
that.type = item.type that.type = item.type
that.crtTimeIndex = item.crtTime
if (item.dedDetail) { if (item.dedDetail) {
var dedTotal = 0 var dedTotal = 0
var dedDetail = JSON.parse(item.dedDetail) var dedDetail = JSON.parse(item.dedDetail)
...@@ -1162,6 +1192,8 @@ export default { ...@@ -1162,6 +1192,8 @@ export default {
var arr = item.depositRefundRecord var arr = item.depositRefundRecord
} }
that.depositRefundRecord = arr that.depositRefundRecord = arr
// console.log(that.depositRefundRecord); // console.log(that.depositRefundRecord);
} }
...@@ -1360,13 +1392,21 @@ export default { ...@@ -1360,13 +1392,21 @@ export default {
</script> </script>
<style scpoed> <style scpoed>
.voucher {
width: 100px;
height: 100px;
border: 1px solid #d9d9d9;
}
.label-text { .label-text {
margin-left: 10px; margin-left: 10px;
margin-right: 20px; margin-right: 20px;
} }
.label-title { .label-title {
margin-top: 10px; margin-top: 15px;
display: inline-block;
width: 49%;
color: #333;
} }
.orderDetail tr th { .orderDetail tr th {
...@@ -1398,11 +1438,55 @@ export default { ...@@ -1398,11 +1438,55 @@ export default {
} }
.stepBox { .stepBox {
background-color: #fff; /* border:1px solid red; */
width: 100%; }
margin-top: 10px; .stepBox li {
list-style: none;
margin-bottom: 40px;
/* position: absolute; */
}
.stepBox li p {
display: inline-block;
font-size: 14px;
color: #333;
}
.stepBox li p span {
color: #999;
} }
.successInline{
background: rgb(0, 153, 255) !important;
}
.successInline::before{
background: rgb(0, 153, 255) !important;
}
.stepBox li .inline:nth-child(1) {
width: 20px;
height: 20px;
border-radius: 50%;
/* background: rgb(0, 153, 255); */
background: #999;
position: relative;
}
.stepBox li .inline:nth-child(1)::before {
content: '';
position: absolute;
left: -40px;
top: -43px;
width: 100px;
height: 1px;
/* background: rgb(0, 153, 255); */
background: #999;
transform: rotate(90deg);
}
.stepBox li:first-child .inline::before {
background: transparent !important;
}
.stepBox li p:nth-child(2) {
margin-left: 30px;
position: relative;
top: -3px;
}
.title { .title {
font-size: 17px; font-size: 17px;
color: #171413; color: #171413;
...@@ -1412,29 +1496,6 @@ export default { ...@@ -1412,29 +1496,6 @@ export default {
padding: 10px; padding: 10px;
} }
.stepBox ul {
margin-left: 10px;
padding-left: 10px;
padding-top: 20px;
}
.stepBox li {
position: relative;
padding: 0 20px 20px 20px;
list-style: none;
min-height: 40px;
border-left: 1px solid #ccc;
margin-top: -15px;
}
.stepBox li.active {
border-color: #47e270;
}
.stepBox ul li:last-child {
border: none;
}
.activeImg, .activeImg,
.doingImg { .doingImg {
position: absolute; position: absolute;
...@@ -1512,13 +1573,13 @@ export default { ...@@ -1512,13 +1573,13 @@ export default {
margin-left: 10px; margin-left: 10px;
} }
.picBox { /* .picBox {
display: flex; display: flex;
display: -webkit-box; display: -webkit-box;
display: -webkit-flex; display: -webkit-flex;
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
} } */
.picItem { .picItem {
width: calc(33.3% - 10px); width: calc(33.3% - 10px);
...@@ -1534,4 +1595,7 @@ export default { ...@@ -1534,4 +1595,7 @@ export default {
font-size: 10px; font-size: 10px;
margin-right: 5px; margin-right: 5px;
} }
.el-form-item__content {
display: block !important;
}
</style> </style>
...@@ -26,19 +26,27 @@ ...@@ -26,19 +26,27 @@
<el-select class="filter-item" v-model="listQuery.status" placeholder="请选择申请状态"> <el-select class="filter-item" v-model="listQuery.status" placeholder="请选择申请状态">
<el-option :key="undefined" label="全部" :value="undefined"></el-option> <el-option :key="undefined" label="全部" :value="undefined"></el-option>
<!-- <el-option v-for="(val, key, index) in statusList " :key="val.code" :label="val.val" <!-- <el-option v-for="(val, key, index) in statusList " :key="val.code" :label="val.val"
<<<<<<< HEAD
:value="val.code"></el-option>--> :value="val.code"></el-option>-->
<el-option <el-option
v-for="(val, index) in statusList " v-for="(val, index) in statusList "
:key="index" :key="index"
:label="val.val" :label="val.val"
:value="val.code" :value="val.code"
=======
:value="val.code"></el-option>-->
<el-option
v-for="(val, index) in statusList "
:key="index"
:label="val.val"
:value="val.code"
>>>>>>> dev-loc
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
</el-col>
<el-col :span="5"> <el-col :span="5">
<el-form-item label="所属大区"> <el-form-item label="所属大区">
<el-select <el-select
...@@ -55,11 +63,19 @@ ...@@ -55,11 +63,19 @@
<el-col :span="5"> <el-col :span="5">
<el-form-item label="提车公司" prop="subordinateBranch"> <el-form-item label="提车公司" prop="subordinateBranch">
<el-autocomplete <el-autocomplete
<<<<<<< HEAD
class="inline-input" class="inline-input"
v-model="listQuery.liftCompanyName" v-model="listQuery.liftCompanyName"
:fetch-suggestions="querySearch" :fetch-suggestions="querySearch"
placeholder="请输入内容" placeholder="请输入内容"
@select="handleSelect" @select="handleSelect"
=======
class="inline-input"
v-model="listQuery.liftCompanyName"
:fetch-suggestions="querySearch"
placeholder="请输入内容"
@select="handleSelect"
>>>>>>> dev-loc
></el-autocomplete> ></el-autocomplete>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -133,12 +149,20 @@ ...@@ -133,12 +149,20 @@
</el-table-column> </el-table-column>
<el-table-column align="center" label="预定取/还时间" width="200"> <el-table-column align="center" label="预定取/还时间" width="200">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.bookStartDate}}</span> <br/><span>{{scope.row.bookEndDate}}</span> <span>{{scope.row.bookStartDate}}</span>
<br />
<span>{{scope.row.bookEndDate}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="实际取/还时间" width="200"> <el-table-column align="center" label="实际取/还时间" width="200">
<template scope="scope"> <template scope="scope">
<<<<<<< HEAD
<span>{{scope.row.actualStartDate}}</span> <br/><span>{{scope.row.actualEndDate}}</span> <span>{{scope.row.actualStartDate}}</span> <br/><span>{{scope.row.actualEndDate}}</span>
=======
<span>{{scope.row.actualStartDate}}</span>
<br />
<span>{{scope.row.actualEndDate}}</span>
>>>>>>> dev-loc
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column align="center" label="预定时间" width="220"> <!-- <el-table-column align="center" label="预定时间" width="220">
...@@ -421,17 +445,30 @@ ...@@ -421,17 +445,30 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin-left: 20px;" v-if="departurePicList.length>0"> <el-row style="margin-left: 20px;" v-if="departurePicList.length>0">
<<<<<<< HEAD
<el-col <el-col
:span="3" :span="3"
v-for="(item, index) in departurePicList" v-for="(item, index) in departurePicList"
:key="index" :key="index"
:offset="index%6 > 0 ? 1 : 0" :offset="index%6 > 0 ? 1 : 0"
style="margin-bottom:10px" style="margin-bottom:10px"
=======
<viewer :images="departurePicList">
<img v-for="src in departurePicList" :src="src" :key="src" class="voucher" />
</viewer>
<!-- <el-col
:span="3"
v-for="(item, index) in departurePicList"
:key="index"
:offset="index%6 > 0 ? 1 : 0"
style="margin-bottom:10px"
>>>>>>> dev-loc
> >
<el-card> <el-card>
<img :src="item" class="image" /> <img :src="item" class="image" />
</el-card> </el-card>
</el-col> </el-col> -->
</el-row> </el-row>
<hr /> <hr />
<el-row> <el-row>
...@@ -470,17 +507,29 @@ ...@@ -470,17 +507,29 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row style="margin-left: 20px;" v-if="arrivalPicList.length>0"> <el-row style="margin-left: 20px;" v-if="arrivalPicList.length>0">
<<<<<<< HEAD
<el-col <el-col
:span="3" :span="3"
v-for="(item, index) in arrivalPicList" v-for="(item, index) in arrivalPicList"
:key="index" :key="index"
:offset="index%6 > 0 ? 1 : 0" :offset="index%6 > 0 ? 1 : 0"
style="margin-bottom:10px" style="margin-bottom:10px"
=======
<viewer :images="arrivalPicList">
<img v-for="src in arrivalPicList" :src="src" :key="src" class="voucher" />
</viewer>
<!-- <el-col
:span="3"
v-for="(item, index) in arrivalPicList"
:key="index"
:offset="index%6 > 0 ? 1 : 0"
style="margin-bottom:10px"
>>>>>>> dev-loc
> >
<el-card> <el-card>
<img :src="item" class="image" /> <img :src="item" class="image" />
</el-card> </el-card>
</el-col> </el-col> -->
</el-row> </el-row>
<hr /> <hr />
<el-row> <el-row>
...@@ -832,8 +881,96 @@ ...@@ -832,8 +881,96 @@
remark: '', remark: '',
bookRecordId: null bookRecordId: null
}, },
<<<<<<< HEAD
arrivalFormrules: { arrivalFormrules: {
recycleMan: { recycleMan: {
=======
{
id: '5',
name: '旅游'
},
{
id: '6',
name: '保养'
},
{
id: '7',
name: '预约中'
},
{
id: '8',
name: '禁用'
},
{
id: '9',
name: '客户用车'
},
{
id: '10',
name: '其他'
}
],
detailId: '',
illegalVisible: false,
price: undefined, //违章罚款金额
fileList2: [], //违章截图
detailItem: {},
dialogDetailVisible: false,
baranchQuery: {
zoneId: null
},
allZoneArr: [], //全部片区
allBranchCompany: [],
state2: '', //搜索-分公司名称
rules4Query: {},
list: null,
total: null,
listLoading: true,
listQuery: {
page: 1,
limit: 20,
flag: false,
zoneId: undefined,
liftCompany: undefined,
liftCompanyName: '',
numberPlate: undefined,
selectedMonth: undefined,
status: undefined,
bookType: undefined,
bookStartDate: undefined,
bookEndDate: undefined
},
inline: true,
dialogFormVisible: false,
dialogStatus: '',
bookRecord_btn_prove: false,
bookRecord_btn_unbook: false,
bookRecord_btn_reject: false,
bookRecord_btn_lift: false,
bookRecord_btn_ret: false,
dialogForm4LiftVisible: false,
dialogForm4RetVisible: false,
allCompanies: {},
tableKey: 0,
form4Lift: {
state1: '',
id: undefined,
mileageLift: undefined,
liftCompany: undefined,
liftRemark: undefined
},
rules4Lift: {
liftCompany: [
{
required: true,
message: '请选择提车分公司',
trigger: 'blur',
type: 'integer'
}
],
mileageLift: [
{
>>>>>>> dev-loc
required: true, required: true,
message: '请输入收车人', message: '请输入收车人',
trigger: 'blur' trigger: 'blur'
...@@ -1117,6 +1254,7 @@ ...@@ -1117,6 +1254,7 @@
if(queryJson.bookType){ if(queryJson.bookType){
t.listQuery.bookType = queryJson.bookType; t.listQuery.bookType = queryJson.bookType;
} }
<<<<<<< HEAD
// if(queryJson.liftCompany){ // if(queryJson.liftCompany){
// t.allCompaniesArr.map(function (item) { // t.allCompaniesArr.map(function (item) {
// if(item.id == queryJson.liftCompany){ // if(item.id == queryJson.liftCompany){
...@@ -1124,6 +1262,86 @@ ...@@ -1124,6 +1262,86 @@
// } // }
// }); // });
// } // }
=======
]
},
selectedAccItem: undefined
}
},
created() {
let t = this
getAll().then(response => {
this.allCompaniesArr = response.data
let query = localStorage.getItem('bookRecord')
if (query != 'null' && query) {
let queryJson = JSON.parse(query)
if (queryJson.page) {
t.listQuery.page = queryJson.page
}
if (queryJson.limit) {
t.listQuery.limit = queryJson.limit
}
if (queryJson.flag) {
t.listQuery.flag = queryJson.flag
}
if (queryJson.zoneId) {
t.listQuery.zoneId = queryJson.zoneId
}
if (queryJson.liftCompany) {
t.listQuery.liftCompany = queryJson.liftCompany
}
if (queryJson.liftCompanyName) {
t.listQuery.liftCompanyName = queryJson.liftCompanyName
}
if (queryJson.numberPlate) {
t.listQuery.numberPlate = queryJson.numberPlate
}
if (queryJson.selectedMonth) {
t.listQuery.selectedMonth = queryJson.selectedMonth
}
if (queryJson.status) {
t.listQuery.status = queryJson.status
}
if (queryJson.bookType) {
t.listQuery.bookType = queryJson.bookType
}
// if(queryJson.liftCompany){
// t.allCompaniesArr.map(function (item) {
// if(item.id == queryJson.liftCompany){
// t.listQuery.liftCompanyName = item.name;
// }
// });
// }
}
this.getList()
})
getAllCompany(codeAndBranchCompany => {
//初始化公司列表
this.allCompanies = codeAndBranchCompany
})
this.bookRecord_btn_prove = this.elements['bookRecord:btn_prove']
this.bookRecord_btn_reject = this.elements['bookRecord:btn_reject']
this.bookRecord_btn_unbook = this.elements['bookRecord:btn_unbook']
this.bookRecord_btn_lift = this.elements['bookRecord:btn_lift']
this.bookRecord_btn_ret = this.elements['bookRecord:btn_ret']
},
computed: {
...mapGetters(['elements', 'bookRecordStatus']),
getHeaderWithToken() {
return { Authorization: getToken() }
},
//获取大区列表
getAllZoneList() {
return getAllZone()
},
selectedMonth4Query: {
get: function() {
if (
this.$utils.isString(this.listQuery.selectedMonth) &&
this.listQuery.selectedMonth !== ''
) {
return toEast8Date(this.listQuery.selectedMonth)
>>>>>>> dev-loc
} }
this.getList() this.getList()
}); });
...@@ -1256,6 +1474,7 @@ ...@@ -1256,6 +1474,7 @@
} }
}) })
} }
<<<<<<< HEAD
}, },
/** /**
* 确定 * 确定
...@@ -1264,6 +1483,45 @@ ...@@ -1264,6 +1483,45 @@
let arr = [] let arr = []
this.fileList2.map(function(item) { this.fileList2.map(function(item) {
arr.push(item.url) arr.push(item.url)
=======
}
}
},
methods: {
/**
* 重置
* */
reloadPage() {
this.listQuery = {
page: 1,
limit: 20,
flag: false,
zoneId: undefined,
liftCompany: undefined,
liftCompanyName: '',
numberPlate: undefined,
selectedMonth: undefined,
status: undefined,
bookType: undefined,
bookStartDate: undefined,
bookEndDate: undefined
}
if (this.listQuery) {
localStorage.setItem(
'bookRecord',
JSON.stringify(this.listQuery)
)
}
this.getList()
},
confirm() {
if (this.returnForm.retCompany == '') {
this.$notify({
title: '失败',
message: '还车地点不能为空',
type: 'error',
duration: 2000
>>>>>>> dev-loc
}) })
let params = { let params = {
illegalPic: arr.join(','), illegalPic: arr.join(','),
...@@ -1278,7 +1536,12 @@ ...@@ -1278,7 +1536,12 @@
type: 'success', type: 'success',
duration: 2000 duration: 2000
}) })
<<<<<<< HEAD
this.illegalVisible = false this.illegalVisible = false
=======
this.resetReturn = false
this.dialogDetailVisible = false
>>>>>>> dev-loc
this.getList() this.getList()
} else { } else {
this.$notify({ this.$notify({
...@@ -1400,6 +1663,7 @@ ...@@ -1400,6 +1663,7 @@
t.departurePicList = [] t.departurePicList = []
t.arrivalPicList = [] t.arrivalPicList = []
} }
<<<<<<< HEAD
this.dialogDetailVisible = true this.dialogDetailVisible = true
}, },
//监听change事件 //监听change事件
...@@ -1463,6 +1727,100 @@ ...@@ -1463,6 +1727,100 @@
set[formName].validate(valid => { set[formName].validate(valid => {
if (valid) { if (valid) {
if (Number(this.departureForm.mileage) > 999999) { if (Number(this.departureForm.mileage) > 999999) {
=======
} else {
t.departurePicList = []
t.arrivalPicList = []
}
this.dialogDetailVisible = true
},
//监听change事件
getProvinceRegions(item) {
this.listQuery.zoneId = item
this.baranchQuery.zoneId = item
// this.listQuery.liftCompany = undefined
// getAllBranchCompanyByZoneId(this.baranchQuery).then(response => {
// this.allBranchCompany = response.data
// })
},
getAllBranchCompanyChange(item) {
this.listQuery.liftCompany = item
},
querySearch(queryString, cb) {
let selectArry = []
let iitem = {
value: '全部',
name: '全部'
}
selectArry.push(iitem)
this.allCompaniesArr.map(function(item) {
item.value = item.name
selectArry.push(item)
})
this.selectArry = selectArry
var results = queryString
? selectArry.filter(this.createFilter(queryString))
: selectArry
// 调用 callback 返回建议列表的数据
cb(results)
},
createFilter(queryString) {
return restaurant => {
return restaurant.name.indexOf(queryString.toLowerCase()) != -1
}
},
/**
* 提车分公司
* */
handleSelect(item) {
if (item.value == '全部') {
this.listQuery.liftCompany = undefined
} else {
this.listQuery.liftCompany = item.id
}
},
cancelDialog4Lift(formName) {
this.dialogForm4LiftVisible = false
this.$refs[formName].resetFields()
},
cancelDialog4Ret(formName) {
this.dialogForm4RetVisible = false
this.$refs[formName].resetFields()
},
/**
* 出车弹框-确定
* */
liftOk(formName) {
const set = this.$refs
set[formName].validate(valid => {
if (valid) {
if (Number(this.departureForm.mileage) > 999999) {
this.$notify({
title: '警告',
message: '公里数不能大于999999',
type: 'warning',
duration: 2000
})
return false
}
var arr = []
this.departurePicList.map(function(item) {
arr.push(item.url)
})
this.departureForm.departurePic = arr.join(',')
departureVehicle(this.departureForm).then(response => {
if (response.status == 200) {
this.dialogForm4LiftVisible = false
this.$notify({
title: '成功',
message: '出车成功',
type: 'success',
duration: 2000
})
this.cleanDepartureForm()
this.getList()
} else {
>>>>>>> dev-loc
this.$notify({ this.$notify({
title: '警告', title: '警告',
message: '公里数不能大于999999', message: '公里数不能大于999999',
...@@ -1631,6 +1989,7 @@ ...@@ -1631,6 +1989,7 @@
remark: null, remark: null,
bookStartDate: null bookStartDate: null
} }
<<<<<<< HEAD
}, },
cleanArrivalForm() { cleanArrivalForm() {
this.arrivalForm = { this.arrivalForm = {
...@@ -1645,6 +2004,86 @@ ...@@ -1645,6 +2004,86 @@
arrivalPic: '', arrivalPic: '',
remark: '', remark: '',
bookRecordId: null bookRecordId: null
=======
return this.bookRecordStatus[data.status + ''].val
}
return ''
},
getAllBookRecordStatus: function() {
console.log(this.bookRecordStatus)
return this.bookRecordStatus
},
getDatePeriodStr([startDate, endDate]) {
if (
this.$utils.isString(startDate) &&
startDate !== '' &&
this.$utils.isString(endDate) &&
endDate !== ''
) {
return (
formatDate(toEast8Date(startDate), 'yyyy-MM-dd') +
' 至 ' +
formatDate(toEast8Date(endDate), 'yyyy-MM-dd')
)
}
return '未知'
},
/**
* 清空出车弹框数据
*/
cleanDepartureForm() {
this.departureForm = {
vehicleId: null,
departureBranchCompanyId: null, //出发地分公司id
departureBranchCompanyName: '', //出发地分公司名称
use: null,
user: null,
userTel: null,
checkMan: null,
checkManTel: null,
mileage: null,
numberPlate: null,
expectArrivalBranchCompanyId: null, //目的地分公司id
expectArrivalBranchCompanyName: '', //目的地分公司名称
bookRecordId: null,
departurePic: '',
remark: null,
bookStartDate: null
}
},
cleanArrivalForm() {
this.arrivalForm = {
vehicleId: null,
numberPlate: null,
arrivalDate: null,
recycleMan: null,
recycleManTel: null,
mileage: null,
arrivalBranchCompanyId: null,
arrivalBranchCompanyName: '',
arrivalPic: '',
remark: '',
bookRecordId: null
}
},
/**
* 搜索按钮
* */
handleFilter() {
this.listQuery.page = 1
this.$refs.queryForm.validate(valid => {
if (valid) {
if (this.listQuery) {
localStorage.setItem(
'bookRecord',
JSON.stringify(this.listQuery)
)
}
this.getList()
} else {
return false
>>>>>>> dev-loc
} }
}, },
/** /**
...@@ -1903,6 +2342,7 @@ ...@@ -1903,6 +2342,7 @@
</script> </script>
<style scoped> <style scoped>
<<<<<<< HEAD
.order-details .el-form-item { .order-details .el-form-item {
margin-bottom: 0px !important; margin-bottom: 0px !important;
} }
...@@ -1932,4 +2372,41 @@ ...@@ -1932,4 +2372,41 @@
background: #000; background: #000;
z-index: 2001; z-index: 2001;
} }
=======
.order-details .el-form-item {
margin-bottom: 0px !important;
}
.order-details hr {
height: 1px;
background-color: #ccc;
border: none;
}
.image {
width: 100%;
height: 110px;
display: block;
}
.el-card__body,
.el-card {
padding: 0px !important;
width: 150px;
text-align: center;
}
.modal_modal {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
opacity: 0.5;
background: #000;
z-index: 2001;
}
.voucher {
width: 100px;
height: 100px;
border: 1px solid #d9d9d9;
margin-right:20px;
}
>>>>>>> dev-loc
</style> </style>
...@@ -308,8 +308,6 @@ export default { ...@@ -308,8 +308,6 @@ export default {
: Number(this.setForm.price) : Number(this.setForm.price)
defaults.freeDays = Number(this.setForm.freeDays) defaults.freeDays = Number(this.setForm.freeDays)
defaults.level = this.setForm.level defaults.level = this.setForm.level
console.log(defaults);
params.push(defaults) params.push(defaults)
}) })
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment