Commit b8845593 authored by denghr's avatar denghr

预定申请管理

parent 3ffcbeb3
......@@ -3,9 +3,9 @@ import fetch from 'utils/fetch';
export function page(query) {
return fetch({
url: '/vehicle/vehicleInfo/bookedRecord',
url: '/vehicle/vehicleInfo/app/unauth/getBookRecord',
method: 'get',
params: {vehicleBookRecordQueryVoJson: JSON.stringify(query)}
params: query
});
}
......
......@@ -2,28 +2,6 @@
<div class="app-container calendar-list-container">
<div class="filter-container" ref="filter-container">
<el-form :rules="rules4Query" ref="queryForm" :inline="inline" :model="listQuery">
<el-form-item label="分公司" prop="subordinateBranch">
<el-autocomplete
class="inline-input"
v-model="state2"
:fetch-suggestions="querySearch"
placeholder="请输入内容"
@select="handleSelect2"
></el-autocomplete>
<!--<el-select class="filter-item" v-model="listQuery.subordinateBranch" placeholder="请选择分公司">-->
<!--<el-option :key="undefined" label="无" :value="undefined"></el-option>-->
<!--<el-option v-for="item in allCompanies" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--</el-select>-->
</el-form-item>
<el-form-item label="">
<el-input v-model="listQuery.numberPlate" placeholder="请输入车牌"></el-input>
</el-form-item>
<el-form-item label="">
<el-input v-model="listQuery.vehicleCode" placeholder="请输入车辆编码"></el-input>
</el-form-item>
<el-form-item label="申请状态">
<el-select class="filter-item" v-model="listQuery.status" placeholder="请选择申请状态">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
......@@ -31,8 +9,24 @@
:value="val.code"></el-option>
</el-select>
</el-form-item>
<el-form-item label="车牌号">
<el-input v-model="listQuery.numberPlate" placeholder="请输入车牌号"></el-input>
</el-form-item>
<el-form-item label="请选择预订月份" prop="selectedMonth4Query">
<el-form-item label="所属大区">
<el-select class="filter-item" v-model="listQuery.zoneId" placeholder="请选择" @change="getProvinceRegions">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="val in getAllZoneList" :key="val.id" :label="val.name" :value="val.id"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="所属公司">
<el-select class="filter-item" v-model="listQuery.liftCompany" 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-form-item>
<el-form-item label="预订月份" prop="selectedMonth4Query">
<el-date-picker
v-model="selectedMonth4Query"
type="month"
......@@ -41,7 +35,6 @@
placeholder="请选择预订月份">
</el-date-picker>
</el-form-item>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
</el-form>
</div>
......@@ -49,37 +42,49 @@
<el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row
style="width: 100%">
<el-table-column align="center" label="车辆编号" width="65">
<template scope="scope">
<span>{{scope.row.vehicleCode}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="车牌号" width="120">
<template scope="scope">
<span>{{scope.row.numberPlate}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="所属公司" width="120">
<el-table-column align="center" label="停靠公司" width="120">
<template scope="scope">
<span>{{scope.row.subBranchName}}</span>
<span>{{scope.row.parkCompanyName}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="申请状态" width="65">
<el-table-column align="center" label="申请状态" width="150">
<template scope="scope">
<span>{{getBookRecordStatus(scope.row.status)}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="申请用户" width="65">
<el-table-column align="center" label="使用人/联系方式" width="250">
<template scope="scope">
<span>{{scope.row.bookUserName}}</span>
<span>{{scope.row.vehicleUsername}}/{{scope.row.vehicleUserPhone}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="预定日期" width="220">
<el-table-column align="center" label="出车用途" width="250">
<template scope="scope">
<span v-if="scope.row.bookType==1">租车</span>
<span v-if="scope.row.bookType==2">用户租赁</span>
<span v-if="scope.row.bookType==3">维修</span>
<span v-if="scope.row.bookType==4">展览</span>
<span v-if="scope.row.bookType==5">旅游</span>
<span v-if="scope.row.bookType==6">保养</span>
<span v-if="scope.row.bookType==7">预约中</span>
<span v-if="scope.row.bookType==8">禁用</span>
<span v-if="scope.row.bookType==9">客户用车</span>
<span v-if="scope.row.bookType==10">其他</span>
</template>
</el-table-column>
<el-table-column align="center" label="预定时间" width="220">
<template scope="scope">
<span>{{scope.row.bookStartDate}}{{scope.row.bookEndDate}}</span>
</template>
</el-table-column>
<!-- <el-table-column align="center" label="预定时间" width="220">
<template scope="scope">
<span
v-if="checkIfApply(scope.row.status) && checkIfBooked(scope.row.bookedDate, [scope.row.bookStartDate, scope.row.bookEndDate])"
......@@ -89,7 +94,7 @@
<span v-else>{{getDatePeriodStr([scope.row.bookStartDate, scope.row.bookEndDate])}}</span>
</template>
</el-table-column>
</el-table-column> -->
<!-- <el-table-column align="center" label="提车地址" width="200">-->
<!-- <template scope="scope">-->
......@@ -97,7 +102,7 @@
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column align="center" label="目的地" width="200">
<!-- <el-table-column align="center" label="目的地" width="200">
<template scope="scope">
<span>{{scope.row.destination}}</span>
</template>
......@@ -119,14 +124,14 @@
<template scope="scope">
<span>{{scope.row.reviewerNameCancel}}</span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column align="center" label="提车地点" width="120">
<el-table-column align="center" label="提车公司" width="200">
<template scope="scope">
<span>{{scope.row.liftCompanyName}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="提车审核人" width="120">
<!-- <el-table-column align="center" label="提车审核人" width="120">
<template scope="scope">
<span>{{scope.row.reviewerNameLift}}</span>
</template>
......@@ -135,14 +140,14 @@
<template scope="scope">
<span>{{scope.row.actualStartDate}}</span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column align="center" label="还车地点" width="120">
<el-table-column align="center" label="还车公司" width="200">
<template scope="scope">
<span>{{scope.row.retCompanyName}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="还车审核人" width="120">
<!-- <el-table-column align="center" label="还车审核人" width="120">
<template scope="scope">
<span>{{scope.row.reviewerNameReturn}}</span>
</template>
......@@ -176,19 +181,19 @@
<template scope="scope">
<span>{{scope.row.haveViolation?'是':'否'}}</span>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column align="center" label="详情" width="100">
<template scope="scope">
<span style="color: #13CE66;cursor: pointer;" @click="handleDetail(scope.row)">订单详情</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作" width="250">
<template scope="scope">
<el-button size="small" type="success" @click="handleBookInfo(scope.row)">预订信息</el-button>
<el-button
v-if="bookRecord_btn_prove && checkIfApply(scope.row.status) && !checkIfBooked(scope.row.bookedDate, [scope.row.bookStartDate, scope.row.bookEndDate])"
size="small" type="success" @click="handleProve(scope.row)">通过
<el-button v-if="scope.row.haveViolation" size="small" type="success" @click="weizhang(scope.row)">违章记录</el-button>
<el-button v-if="bookRecord_btn_prove&&scope.row.status==1" size="small" type="success" @click="handleProve(scope.row)">通过
</el-button>
<el-button
v-if="bookRecord_btn_reject && checkIfApply(scope.row.status) && !checkIfBooked(scope.row.bookedDate, [scope.row.bookStartDate, scope.row.bookEndDate]) "
size="small" type="danger" @click="handleReject(scope.row)">拒绝
<el-button v-if="bookRecord_btn_reject&&scope.row.status==1" size="small" type="danger" @click="handleReject(scope.row)">驳回
</el-button>
<el-button v-if="bookRecord_btn_lift && checkIfProved(scope.row.status)" size="small" type="success"
@click="handleLift(scope.row)">提车
......@@ -205,13 +210,169 @@
<div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30, 50]" :page-size="listQuery.limit"
:current-page.sync="listQuery.page" :page-sizes="[10,20,30,40,50]" :page-size="listQuery.limit"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div>
<book-info-viewer ref="bookInfoViewer"></book-info-viewer>
<acc-item-selector :selectedAccItem="selectedAccItem" :isReadOnly="true" ref="accItemSelector"></acc-item-selector>
<!-- 查看详情 -->
<el-dialog title="预约详情" :visible.sync="dialogDetailVisible" class="order-details">
<el-form label-width="100px">
<el-row>
<el-col :span="24">
<el-form-item label="申请状态">
<span v-if="detailItem.status==1">申请中</span>
<span v-if="detailItem.status==2">已通过</span>
<span v-if="detailItem.status==3">已归还</span>
<span v-if="detailItem.status==4">拒绝</span>
<span v-if="detailItem.status==5">逾期归还</span>
<span v-if="detailItem.status==6">取消预订</span>
<span v-if="detailItem.status==7">已提车</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="车牌号">
<span>{{detailItem.numberPlate}}</span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车辆编号">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.vehicleId}}</span>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="当前停靠公司">
<span>{{detailItem.parkCompanyName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="申请账号">
<span></span>
<span style="margin-left:10px"></span>
</el-form-item>
</el-col>
</el-row>
<hr>
<el-row>
<el-col :span="24">
<el-form-item label="使用人">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.user}}</span>
<span style="margin-left:10px" v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.userTel}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="预定时间">
<span>{{detailItem.bookStartDate}}</span><span>{{detailItem.bookEndDate}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="出车用途">
<span v-if="detailItem.bookType==1">租车</span>
<span v-if="detailItem.bookType==2">用户租赁</span>
<span v-if="detailItem.bookType==3">维修</span>
<span v-if="detailItem.bookType==4">展览</span>
<span v-if="detailItem.bookType==5">旅游</span>
<span v-if="detailItem.bookType==6">保养</span>
<span v-if="detailItem.bookType==7">预约中</span>
<span v-if="detailItem.bookType==8">禁用</span>
<span v-if="detailItem.bookType==9">客户用车</span>
<span v-if="detailItem.bookType==10">其他</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<span></span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="随车物品">
<span></span>
</el-form-item>
</el-col>
</el-row>
<hr>
<el-row>
<el-col :span="8">
<el-form-item label="提车分公司">
<span>{{detailItem.liftCompanyName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="操作人">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.checkMan}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="操作时间">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.departureTime}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="还车分公司">
<span>{{detailItem.retCompanyName}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="操作人">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.recycleMan}}</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="操作时间">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.arrivalTime}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="提车公里数">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.mileageStart}}KM</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="还车公里数">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.mileageEnd}}KM</span>
</el-form-item>
</el-col>
</el-row>
<hr>
<el-row>
<el-col :span="8">
<el-form-item label="审核人操作">
<span></span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="通过操作">
<span></span>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-if="detailItem.status==1" @click="handleReject(detailItem)">驳回</el-button>
<el-button v-if="detailItem.status==1" type="primary" @click="handleProve(detailItem)">通过</el-button>
</div>
</el-dialog>
<!-- 提车对话框相关html元素 -->
<el-dialog title="提车" :visible.sync="dialogForm4LiftVisible">
......@@ -226,10 +387,6 @@
placeholder="请输入内容"
@select="handleSelect1"
></el-autocomplete>
<!--<el-select class="filter-item" v-model="form4Lift.liftCompany" placeholder="请选择提车分公司">-->
<!--<el-option :key="undefined" label="无" :value="undefined"></el-option>-->
<!--<el-option v-for="item in allCompanies" :key="item.id" :label="item.name" :value="item.id"></el-option>-->
<!--</el-select>-->
</el-form-item>
<el-form-item label="提车里程数" prop="mileageLift">
......@@ -301,7 +458,12 @@
getAllCompany,
getAll
} from 'api/base_info/branch_company/';
import {
getAllZone
} from 'api/base_info/constant/';
import {
getAllBranchCompanyByZoneId
} from 'api/order/rentVehicle';
import {
formatDate
} from 'utils/dateFormattor';
......@@ -333,6 +495,13 @@
},
data() {
return {
detailItem:{},
dialogDetailVisible:false,
baranchQuery: {
zoneId:null
},
allZoneArr:[],//全部片区
allBranchCompany:[],
state2: '',//搜索-分公司名称
rules4Query: {
selectedMonth4Query: [
......@@ -353,10 +522,10 @@
listQuery: {
page: 1,
limit: 20,
subordinateBranch: undefined,
zoneId:undefined,
liftCompany: undefined,
numberPlate: undefined,
selectedMonth: formatDate(newEast8Date(), 'yyyy-MM'),
vehicleCode: undefined,
status: undefined
},
inline: true,
......@@ -481,8 +650,8 @@
this.allCompanies = codeAndBranchCompany;
});
this.bookRecord_btn_prove = this.elements['bookRecord:btn_prove'];
this.bookRecord_btn_unbook = this.elements['bookRecord:btn_unbook'];
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'];
},
......@@ -491,6 +660,10 @@
'elements',
'bookRecordStatus'
]),
//获取大区列表
getAllZoneList(){
return getAllZone();
},
selectedMonth4Query: {
get: function () {
if (this.$utils.isString(this.listQuery.selectedMonth) && this.listQuery.selectedMonth !== '') {
......@@ -508,6 +681,23 @@
}
},
methods: {
handleDetail(row){
this.detailItem = row;
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 = {
......@@ -659,9 +849,6 @@
* 搜索按钮
* */
handleFilter() {
if(this.state2 == "" || this.state2 == "全部"){
this.listQuery.subordinateBranch = undefined;
}
this.listQuery.page = 1;
this.$refs.queryForm.validate(valid => {
if (valid) {
......@@ -708,6 +895,9 @@
type: 'success',
duration: 2000
});
if(this.dialogDetailVisible){
this.dialogDetailVisible = false
}
}
this.getList();
});
......@@ -742,6 +932,9 @@
type: 'success',
duration: 2000
});
if(this.dialogDetailVisible){
this.dialogDetailVisible = false
}
}
this.getList();
});
......@@ -874,3 +1067,14 @@
}
}
</script>
<style>
.order-details .el-form-item{
margin-bottom: 0px !important;
}
.order-details hr {
height: 1px;
background-color: #ccc;
border: none;
}
</style>
\ No newline at end of file
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