Commit a79767d3 authored by lixy's avatar lixy

车辆排期管理-排班记录

parent 98697576
import fetch from 'utils/fetch'; import fetch from 'utils/fetch';
/**
* 排班列表
* @param query
*/
export function getVehiclePlanList(query) { export function getVehiclePlanList(query) {
return fetch({ return fetch({
url: '/vehicle/vehicleInfo/app/unauth/getVehiclePlanList', url: '/vehicle/vehicleInfo/app/unauth/getVehiclePlanList',
...@@ -7,3 +11,67 @@ export function getVehiclePlanList(query) { ...@@ -7,3 +11,67 @@ export function getVehiclePlanList(query) {
params: query params: query
}); });
} }
/**
* 根据订单号获取租车订单详情
* @param query
*/
export function getVehicleOrderDetail(query) {
return fetch({
url: '/api/order/baseOrder/orderDetail',
method: 'get',
params: query
});
}
/**
* 同意
* @param query
*/
export function agreeBook(bookRecordId) {
return fetch({
url: '/vehicle/vehicleInfo/book/4employee/prove/' + bookRecordId,
method: 'put'
});
}
/**
* 取消
*/
export function cancleBook(bookRecordId) {
return fetch({
url: '/vehicle/vehicleInfo/unbook/4employee/' + bookRecordId,
method: 'delete'
});
}
/**
* 拒绝
*/
export function rejectBook(bookRecordId) {
return fetch({
url: '/vehicle/vehicleInfo/book/4employee/reject/' + bookRecordId,
method: 'put'
});
}
/**
* 安排用车
*/
export function bookPlan(query) {
return fetch({
url: '/vehicle/vehicleInfo/book/4employee',
method: 'post',
data: query
});
}
/**
* 排班记录
*/
export function getBookRecord(query) {
return fetch({
url: '/vehicle/vehicleInfo/app/unauth/getBookRecord',
method: 'get',
params: query
});
}
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
</el-form> </el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button> <el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
<el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate" <el-button class="filter-item" style="margin-left: 10px;" @click="handleCreate"
type="primary" icon="edit">添加 type="primary" icon="edit" v-if="campsite_btn_save">添加
</el-button> </el-button>
</div> </div>
<el-table :key='tableKey' :data="list" border fit highlight-current-row <el-table :key='tableKey' :data="list" border fit highlight-current-row
...@@ -64,11 +64,11 @@ ...@@ -64,11 +64,11 @@
</el-table-column> </el-table-column>
<el-table-column align="center" width="300" label="操作"> <el-table-column align="center" width="300" label="操作">
<template scope="scope"> <template scope="scope">
<el-button size="small" type="success" @click="handleUpdate(scope.row)">编辑 <el-button size="small" type="success" @click="handleUpdate(scope.row)" v-if="campsiteshop_btn_update">编辑
</el-button> </el-button>
<el-button size="small" type="primary" v-if="scope.row.saleState==2|| scope.row.saleState==0" @click="upStatus(scope.row)">上架 <el-button size="small" type="primary" v-if="(scope.row.saleState==2|| scope.row.saleState==0) && campsiteshop_btn_update_salestatus" @click="upStatus(scope.row)">上架
</el-button> </el-button>
<el-button size="small" type="warn" v-if="scope.row.saleState==1" @click="upStatus(scope.row)">下架 <el-button size="small" type="warn" v-if="scope.row.saleState==1 && campsiteshop_btn_update_salestatus" @click="upStatus(scope.row)">下架
</el-button> </el-button>
<el-popover <el-popover
ref="popover5" ref="popover5"
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
<el-button type="primary" size="mini" @click="deleteHandler(scope.row)">确定</el-button> <el-button type="primary" size="mini" @click="deleteHandler(scope.row)">确定</el-button>
</div> </div>
</el-popover> </el-popover>
<el-button type="danger" size="small" v-popover:popover5>删除</el-button> <el-button type="danger" size="small" v-popover:popover5 v-if="campsiteshop_btn_del">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -162,10 +162,18 @@ import { ...@@ -162,10 +162,18 @@ import {
update: '编辑', update: '编辑',
create: '创建' create: '创建'
}, },
tableKey: 0 tableKey: 0,
campsite_btn_save: false,//添加
campsiteshop_btn_update: false,//编辑
campsiteshop_btn_update_salestatus:false,//上下架
campsiteshop_btn_del: false,//删除
} }
}, },
created() { created() {debugger
this.campsite_btn_save = this.elements['campsite:btn_save'];
this.campsiteshop_btn_update = this.elements['campsiteshop:btn_update'];
this.campsiteshop_btn_update_salestatus = this.elements['campsiteshop:btn_update_salestatus'];
this.campsiteshop_btn_del = this.elements['campsiteshop:btn_del'];
this.getList(); this.getList();
}, },
computed: { computed: {
......
...@@ -126,6 +126,21 @@ ...@@ -126,6 +126,21 @@
}, },
mounted() { mounted() {
this.dialogVisible = true; this.dialogVisible = true;
if (this.form.status == 2) {
this.form.ststusName = '取消';
}
if (this.form.status == 3) {
this.form.ststusName = '待付款';
}
if (this.form.status == 4) {
this.form.ststusName = '待出行';
}
if (this.form.status == 5) {
this.form.ststusName = '出行中';
}
if (this.form.status == 6) {
this.form.ststusName = '已完成';
}
}, },
methods: { methods: {
......
...@@ -188,7 +188,7 @@ ...@@ -188,7 +188,7 @@
}, },
methods: { methods: {
//获取订单详情 //获取订单详情
getOrderInfo(){debugger getOrderInfo(){
let params = { let params = {
orderNo: this.tourRow.no orderNo: this.tourRow.no
}; };
......
...@@ -172,11 +172,7 @@ ...@@ -172,11 +172,7 @@
<el-row style="border-bottom: 1px dashed #ccc;padding: 10px 0;"> <el-row style="border-bottom: 1px dashed #ccc;padding: 10px 0;">
<el-col :span="3"> <el-col :span="3">
<div class="demo-type"> <div class="demo-type">
<el-avatar <img :src="userDetails.headimgurl" style="width: 80px;border-radius: 50%;"/>
src="https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png"
@error="errorHandler">
<img :src="userDetails.headimgurl" style="width: 80px;border-radius: 50%;"/>
</el-avatar>
</div> </div>
</el-col> </el-col>
<el-col :span="18"> <el-col :span="18">
...@@ -406,7 +402,7 @@ ...@@ -406,7 +402,7 @@
<div class="filter-container"> <div class="filter-container">
<el-form ref="queryForm" :model="orderQuery" label-width="100px"> <el-form ref="queryForm" :model="orderQuery" label-width="100px">
<el-row> <el-row>
<el-col :span="7"> <el-col :span="8">
<el-form-item label="订单类型"> <el-form-item label="订单类型">
<el-select class="filter-item" v-model="orderQuery.type" placeholder="请选订单装太"> <el-select class="filter-item" v-model="orderQuery.type" placeholder="请选订单装太">
<el-option :key="undefined" label="所有订单" :value="undefined"></el-option> <el-option :key="undefined" label="所有订单" :value="undefined"></el-option>
...@@ -415,7 +411,7 @@ ...@@ -415,7 +411,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="8">
<el-form-item label="订单状态"> <el-form-item label="订单状态">
<el-select class="filter-item" v-model="orderQuery.status" placeholder="请选会员类型"> <el-select class="filter-item" v-model="orderQuery.status" placeholder="请选会员类型">
<el-option :key="undefined" label="所有订单" :value="undefined"></el-option> <el-option :key="undefined" label="所有订单" :value="undefined"></el-option>
...@@ -424,8 +420,8 @@ ...@@ -424,8 +420,8 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="8">
<el-button class="filter-item" type="primary" v-waves icon="search" @click="userOrder">搜索</el-button> <el-button class="filter-item" type="primary" v-waves icon="search" @click="userOrder" style="margin-left: 10px;">搜索</el-button>
</el-col> </el-col>
</el-row> </el-row>
......
...@@ -5,18 +5,24 @@ ...@@ -5,18 +5,24 @@
<el-form-item label="车牌号:"> <el-form-item label="车牌号:">
<span>{{currentItem.item.numberPlate}}</span> <span>{{currentItem.item.numberPlate}}</span>
</el-form-item> </el-form-item>
<el-form-item label="停靠公司:"> <el-form-item label="当前停靠公司:">
<span>{{currentItem.item.parkCompanyName}}</span> <span>{{currentItem.item.parkCompanyName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="还车公司:">
<span>{{currentItem.ii.vehicleBookRecord.retCompanyName}}</span>
</el-form-item>
<el-form-item label="申请人:"> <el-form-item label="申请人:">
<span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span> <span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="禁用时间:"> <el-form-item label="禁用时间:">
<span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span> <span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span>
</el-form-item> </el-form-item>
<el-form-item label="禁用说明:">
<span>{{currentItem.ii.vehicleBookRecord.remark}}</span>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="cancel()">取消禁用</el-button> <el-button @click="cancel()">取消禁用</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
......
...@@ -90,9 +90,9 @@ ...@@ -90,9 +90,9 @@
</ul> </ul>
</div> </div>
<!--车辆排班--> <!--车辆排班-->
<!--bookType 2-租车、1-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用--> <!--bookType 1-租车、2-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用-->
<div style="display: flex;"> <div style="display: flex;">
<span class="tip-co bg-2"></span><span>租房车</span> <span class="tip-co bg-1"></span><span>租房车</span>
<span class="tip-co bg-5"></span><span>房车游</span> <span class="tip-co bg-5"></span><span>房车游</span>
<span class="tip-co bg-4"></span><span>展览</span> <span class="tip-co bg-4"></span><span>展览</span>
<span class="tip-co bg-6"></span><span>保养</span> <span class="tip-co bg-6"></span><span>保养</span>
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
<div style="color: #bfcbd9;font-size: 14px;"> <div style="color: #bfcbd9;font-size: 14px;">
现在位置:{{item.parkCompanyName}} 现在位置:{{item.parkCompanyName}}
</div> </div>
<div>{{item.numberPlate}}</div> <div>{{item.numberPlate}}<img src="../../../assets/images/detail.png" style="width: 15px;margin-left: 10px;"/></div>
<div style="color: #bfcbd9;font-size: 14px;">{{item.vehicleModel?item.vehicleModel.name:''}}</div> <div style="color: #bfcbd9;font-size: 14px;">{{item.vehicleModel?item.vehicleModel.name:''}}</div>
</div> </div>
<div class="day-title flex-jca-fdc" style="padding: 0;" v-for="iitem in item.temp" :key="iitem.day" > <div class="day-title flex-jca-fdc" style="padding: 0;" v-for="iitem in item.temp" :key="iitem.day" >
...@@ -157,8 +157,8 @@ ...@@ -157,8 +157,8 @@
.tip-co:first-child{ .tip-co:first-child{
margin-left: 0; margin-left: 0;
} }
/*2-租车、1-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用*/ /*1-租车、2-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用*/
.bg-2{ .bg-1{
background: #20a0ff; background: #20a0ff;
} }
.bg-5{ .bg-5{
...@@ -461,7 +461,7 @@ ...@@ -461,7 +461,7 @@
* 点击事件 * 点击事件
* */ * */
toShowDialog(item, iitem, ii){ toShowDialog(item, iitem, ii){
// <!--bookType 2-租车、1-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用--> // <!--bookType 1-租车、2-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用-->
if(!ii.bg){ if(!ii.bg){
//空白-可安排用车 //空白-可安排用车
this.anpai = true; this.anpai = true;
...@@ -480,7 +480,7 @@ ...@@ -480,7 +480,7 @@
} else if(ii.bookType == 7){ } else if(ii.bookType == 7){
this.zhanlan = true; this.zhanlan = true;
this.currentItem = {item: item, iitem: iitem, ii: ii, title: "预定用车"}; this.currentItem = {item: item, iitem: iitem, ii: ii, title: "预定用车"};
} else if(ii.bookType == 2){ } else if(ii.bookType == 1){
this.getOneVechi(ii.vehicleBookRecord.orderNo); this.getOneVechi(ii.vehicleBookRecord.orderNo);
// this.rentOrder = true; // this.rentOrder = true;
// this.rentOrderInfo = {}; // this.rentOrderInfo = {};
...@@ -743,7 +743,8 @@ ...@@ -743,7 +743,8 @@
// iitem.bookStartDate = iitem.bookStartDate.substring(0,10) + " " +sStart + ":00:00"; // iitem.bookStartDate = iitem.bookStartDate.substring(0,10) + " " +sStart + ":00:00";
// iitem.bookEndDate = iitem.bookEndDate.substring(0,10) + " " +sEnd + ":00:00"; // iitem.bookEndDate = iitem.bookEndDate.substring(0,10) + " " +sEnd + ":00:00";
// }); // });
item.temp = _this.getDayList(item);//获取车辆30天排期 // item.temp = _this.getDayList(item);//获取车辆30天排期
item.temp = _this.getMonthDayList(item);//获取车辆30天排期
}); });
} }
if (!this.$utils.isEmpty(response.data.vehicleWarningMsgs)) { if (!this.$utils.isEmpty(response.data.vehicleWarningMsgs)) {
...@@ -754,6 +755,8 @@ ...@@ -754,6 +755,8 @@
} }
this.listLoading = false; this.listLoading = false;
this.list = listRs; this.list = listRs;
//渲染颜色
this.setColor();
this.total = totalCountRs; this.total = totalCountRs;
}) })
}, },
...@@ -776,7 +779,20 @@ ...@@ -776,7 +779,20 @@
this.getList(); this.getList();
}, },
/** /**
* 获取日期数组 * 获取未来30天日历表
* */
getMonthDayList(item){
let temp = [];
let list = this.list;
for(let i = 0; i < 30; i++){
let t = [];
let tymd = getymdTimeByDay(i);
temp.push({day: getTimeByDay(i), month: getMonth(i), time: tymd});
}
return temp;
},
/**
* 渲染颜色
* */ * */
getDayList(item){ getDayList(item){
let temp = []; let temp = [];
...@@ -804,15 +820,15 @@ ...@@ -804,15 +820,15 @@
pp.h = h; pp.h = h;
item.vehicleBookRecord.map(function (iitem) { item.vehicleBookRecord.map(function (iitem) {
if (iitem.bookStartDate <= tt && iitem.bookEndDate >=tt) { if (iitem.bookStartDate <= tt && iitem.bookEndDate >=tt) {
// <!--bookType 1-分公司使用、2-租车、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用--> // <!--bookType 2-分公司使用、1-租车、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用-->
if(iitem.bookStartDate == tt && (iitem.bookType == 2 || iitem.bookType == 5 || iitem.bookType == 4)){//租车、旅游、展览显示起止时间 if(iitem.bookStartDate == tt && (iitem.bookType == 1 || iitem.bookType == 5 || iitem.bookType == 4)){//租车、旅游、展览显示起止时间
pp.timeStr = h; pp.timeStr = h;
} }
pp.bg = "bg-"+ iitem.bookType; pp.bg = "bg-"+ iitem.bookType;
pp.vehicleBookRecord = iitem; pp.vehicleBookRecord = iitem;
pp.bookType = iitem.bookType; pp.bookType = iitem.bookType;
if(iitem.bookEndDate == tt){ if(iitem.bookEndDate == tt){
if (iitem.bookType == 2 || iitem.bookType == 5 || iitem.bookType == 4){ if (iitem.bookType == 1 || iitem.bookType == 5 || iitem.bookType == 4){
pp.timeEtr = h; pp.timeEtr = h;
} }
pp.bg = ""; pp.bg = "";
...@@ -825,6 +841,54 @@ ...@@ -825,6 +841,54 @@
} }
return temp; return temp;
}, },
/**
* 获取日期数组
* */
setColor(){
let temp = [];
this.list.map(function(item){
item.temp.map(function(ttemp){
let children = [];
let tt = "";//yyyy-MM-dd hh:mm:ss
let h = "";
let bookType = undefined;//当前车辆状态
let vehicleBookRecord = {};//车辆排班信息
for(let ii = 0; ii < 24; ii ++) {
if (ii < 10) {
h = "0" + ii;
tt = ttemp.time + " 0" + ii + ":00:00";
} else {
tt = ttemp.time + " " + ii + ":00:00";
h = ii;
}
let bg = "";//背景色
let pp = {};
pp.time =tt;
pp.h = h;
item.vehicleBookRecord.map(function (iitem) {
if (iitem.bookStartDate <= tt && iitem.bookEndDate >=tt) {
// <!--bookType 2-分公司使用、1-租车、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用-->
if(iitem.bookStartDate == tt && (iitem.bookType == 1 || iitem.bookType == 5 || iitem.bookType == 4)){//租车、旅游、展览显示起止时间
pp.timeStr = h;
}
pp.bg = "bg-"+ iitem.bookType;
pp.vehicleBookRecord = iitem;
pp.bookType = iitem.bookType;
if(iitem.bookEndDate == tt){
if (iitem.bookType == 1 || iitem.bookType == 5 || iitem.bookType == 4){
pp.timeEtr = h;
}
pp.bg = "";
}
}
});
children.push(pp);
}
ttemp.children = children
});
});
},
/** /**
* tempDayList * tempDayList
**/ **/
......
...@@ -11,11 +11,11 @@ ...@@ -11,11 +11,11 @@
<el-form-item label="申请人:"> <el-form-item label="申请人:">
<span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span> <span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="提车公司:"> <el-form-item label="当前停靠公司:">
<span>{{currentItem.item.parkCompanyName}}</span> <span>{{currentItem.item.parkCompanyName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="还车公司:"> <el-form-item label="还车公司:">
<span>{{currentItem.item.destinationBranchCompanyName}}</span> <span>{{currentItem.ii.vehicleBookRecord.retCompanyName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="预定时间:"> <el-form-item label="预定时间:">
<span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span> <span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span>
...@@ -24,12 +24,11 @@ ...@@ -24,12 +24,11 @@
<span>{{currentItem.title == "展览用车"?"展览": currentItem.title == "预定用车"?"预定":""}}</span> <span>{{currentItem.title == "展览用车"?"展览": currentItem.title == "预定用车"?"预定":""}}</span>
</el-form-item> </el-form-item>
<el-form-item label="申请说明:"> <el-form-item label="申请说明:">
<span></span> <span>{{currentItem.ii.vehicleBookRecord.remark}}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" v-if='currentItem.title == "展览用车" && currentItem.ii.vehicleBookRecord.status==2' class="dialog-footer"> <div slot="footer" v-if='currentItem.title == "展览用车" && currentItem.ii.vehicleBookRecord.status==2' class="dialog-footer">
<el-button @click="cancel()">取消用车</el-button> <el-button @click="cancel()">取消用车</el-button>
<el-button type="primary" @click="handelOk()">确 定</el-button>
</div> </div>
<div slot="footer" v-if='currentItem.title == "预定用车" && currentItem.ii.vehicleBookRecord.status==1' class="dialog-footer"> <div slot="footer" v-if='currentItem.title == "预定用车" && currentItem.ii.vehicleBookRecord.status==1' class="dialog-footer">
<el-button type="primary" @click="agree()">同 意</el-button> <el-button type="primary" @click="agree()">同 意</el-button>
......
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<el-form-item label="所属公司:"> <el-form-item label="所属公司:">
<span>{{currentItem.item.subordinateBranchName}}</span> <span>{{currentItem.item.subordinateBranchName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="提车保养公司:"> <el-form-item label="当前停靠公司:">
<span>{{currentItem.item.parkCompanyName}}</span> <span>{{currentItem.item.parkCompanyName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="还车公司:"> <el-form-item label="还车公司:">
<span>{{currentItem.item.destinationBranchCompanyName}}</span> <span>{{currentItem.ii.vehicleBookRecord.retCompanyName}}</span>
</el-form-item> </el-form-item>
<el-form-item label="保养人:"> <el-form-item label="保养人:">
<span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span> <span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span>
...@@ -27,9 +27,12 @@ ...@@ -27,9 +27,12 @@
<span></span> <span></span>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer" v-if="currentItem.ii.vehicleBookRecord.status==2">
<el-button @click="cancel()">取消用车</el-button> <el-button @click="cancel()">取消用车</el-button>
<el-button type="primary" @click="handelOk()">确 定</el-button> </div>
<div slot="footer" v-if='currentItem.ii.vehicleBookRecord.status==1' class="dialog-footer">
<el-button type="primary" @click="agree()">同 意</el-button>
<el-button @click="notAgree()">不同意</el-button>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
...@@ -38,6 +41,11 @@ ...@@ -38,6 +41,11 @@
import ElRow from "element-ui/packages/row/src/row"; import ElRow from "element-ui/packages/row/src/row";
import ElCol from "element-ui/packages/col/src/col"; import ElCol from "element-ui/packages/col/src/col";
import ElFormItem from "../../../../node_modules/element-ui/packages/form/src/form-item.vue"; import ElFormItem from "../../../../node_modules/element-ui/packages/form/src/form-item.vue";
import {
agreeBook,
cancleBook,
rejectBook
} from 'api/vehicle/vehicleSchedulManage';
export default { export default {
components: { components: {
ElFormItem, ElFormItem,
...@@ -68,16 +76,23 @@ ...@@ -68,16 +76,23 @@
* 保养-弹框-取消 * 保养-弹框-取消
* */ * */
cancel() { cancel() {
console.log("保养取消用车"); cancleBook(this.currentItem.ii.vehicleBookRecord.id).then(response => {this.$emit("zhanlanDialogEvent", true);});
this.$emit("baoyangDialogEvent", true); this.$emit("baoyangDialogEvent", true);
}, },
/** /**
* 保养-确定用车 * 同意
* */ */
handelOk(){ agree(){
console.log("保养确定用车"); console.log("同意");
this.$emit("baoyangDialogEvent", true); agreeBook(this.currentItem.ii.vehicleBookRecord.id).then(response => {this.$emit("zhanlanDialogEvent", true);});
} },
/**
* 不同意
*/
notAgree(){
console.log("不同意");
rejectBook(this.currentItem.ii.vehicleBookRecord.id).then(response => {this.$emit("zhanlanDialogEvent", true);});
},
} }
} }
</script> </script>
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<el-date-picker <el-date-picker
v-model="form.times" v-model="form.times"
type="datetimerange" type="datetimerange"
format="yyyy-MM-dd hh" :picker-options="pickerOptions0"
placeholder="选择时间范围"> placeholder="选择时间范围">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
...@@ -116,6 +116,11 @@ ...@@ -116,6 +116,11 @@
name: 'vehiclePlanModal', name: 'vehiclePlanModal',
data() { data() {
return { return {
pickerOptions0: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e7;
}
},
anpai:false, anpai:false,
allCompaniesArr:[], allCompaniesArr:[],
form:{ form:{
...@@ -223,6 +228,7 @@ ...@@ -223,6 +228,7 @@
* */ * */
handelOk(formName){ handelOk(formName){
const set = this.$refs; const set = this.$refs;
console.log(this.form.times);
set[formName].validate(valid => { set[formName].validate(valid => {
if (valid) { if (valid) {
let params = { let params = {
...@@ -250,6 +256,7 @@ ...@@ -250,6 +256,7 @@
} }
}) })
}, },
} }
} }
</script> </script>
......
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
</el-table-column> </el-table-column>
<el-table-column width="100" align="center" label="用途"> <el-table-column width="100" align="center" label="用途">
<template scope="scope"> <template scope="scope">
<!--/*2-租车、1-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用*/--> <!--/*1-租车、2-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用*/-->
<span>{{scope.row.bookType==2?"租房车":scope.row.bookType==4?"展览":scope.row.bookType==5?"房车游":scope.row.bookType==6?"保养":scope.row.bookType==7?"预约中":scope.row.bookType==8?"禁用":'未知用途'}}</span> <span>{{scope.row.bookType==1?"租房车":scope.row.bookType==4?"展览":scope.row.bookType==5?"房车游":scope.row.bookType==6?"保养":scope.row.bookType==7?"预约中":scope.row.bookType==8?"禁用":'未知用途'}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="200" align="center" label="订单号"> <el-table-column width="200" align="center" label="订单号">
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" width="300"> <el-table-column align="center" label="操作" width="300">
<template scope="scope"> <template scope="scope">
<el-button size="small" type="success" @click="handleDetail(scope.row)">详情</el-button> <el-button size="small" type="success" @click="toShowDialog(scope.row)">详情</el-button>
<el-button size="small" type="success" @click="getLogInfo(scope.row)">重新安排</el-button> <el-button size="small" type="success" @click="getLogInfo(scope.row)">重新安排</el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -64,26 +64,31 @@ ...@@ -64,26 +64,31 @@
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination> layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
</div> </div>
<!--详情--> <!--保养弹框-->
<el-dialog title="详情" :visible.sync="dialogVisible"> <vehicleMaintenanceModal v-if="baoyang" :currentItem="currentItem" v-on:baoyangDialogEvent = "baoyangDialogEvent"></vehicleMaintenanceModal>
<el-form :model="currentItem" ref="currentItem" label-width="120px"> <!--展览、预定用车弹框-->
<el-form-item label="车牌号:"> <vehicleExhibitionModal v-if="zhanlan" :currentItem="currentItem" v-on:zhanlanDialogEvent = "zhanlanDialogEvent"></vehicleExhibitionModal>
<span>{{currentItem.numberPlate}}</span> <!--安排用车弹框-->
</el-form-item> <vehiclePlanModal v-if="anpai" :currentItem="currentItem" v-on:anpaiDialogEvent = "anpaiDialogEvent"></vehiclePlanModal>
<!--<el-form-item label="停靠公司:">--> <!--租车详情弹框-->
<!--<span>{{currentItem.parkCompanyName}}</span>--> <!--rentOrder-->
<!--</el-form-item>--> <rentOrderDetailModal :form="rentOrderInfo" :rentCostDetail="rentCostDetail" v-if="rentOrder" v-on:rentOrderDetailDialogEvent="rentOrderDetailDialogEvent"></rentOrderDetailModal>
<!--<el-form-item label="申请人:">--> <!--旅游订单详情-->
<!--<span>{{currentItem.ii.vehicleBookRecord.bookUserName}}</span>--> <tourOrderDetailModal :tourRow="tourRow" v-if="tourDialogVisible" v-on:tourOrderDetailDialogEvent="tourOrderDetailDialogEvent"></tourOrderDetailModal>
<!--</el-form-item>--> <!--禁用弹框-->
<!--<el-form-item label="禁用时间:">--> <disableModal v-if="jinyong" :currentItem="currentItem" v-on:jinyongDialogEvent = "jinyongDialogEvent"></disableModal>
<!--<span>{{currentItem.ii.vehicleBookRecord.bookStartDate}}~{{currentItem.ii.vehicleBookRecord.bookEndDate}}</span>-->
<!--</el-form-item>-->
</el-form>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import vehicleMaintenanceModal from './vehicleMaintenanceModal';//车辆保养弹框
import vehicleExhibitionModal from './vehicleExhibitionModal';//车辆展览弹框
import vehiclePlanModal from './vehiclePlanModal';//安排用车
import rentOrderDetailModal from "../../order/modal/rentOrderDetailModal";//租车订单详情
import tourOrderDetailModal from "../../order/modal/tourOrderDetailModal";//房车游订单详情
import disableModal from "./disableModal";//禁用弹框
import {
getVehicleOrderDetail
} from 'api/vehicle/vehicleSchedulManage';
import { import {
getBookRecord getBookRecord
} from 'api/vehicle/vehicleSchedulManage'; } from 'api/vehicle/vehicleSchedulManage';
...@@ -91,8 +96,29 @@ ...@@ -91,8 +96,29 @@
import { import {
formatDate formatDate
} from 'utils/dateFormattor'; } from 'utils/dateFormattor';
import {
toEast8Date,
deepCopyDate,
newEast8Date,
convertDate2Str,
timestamp2Date,
getTimeByDay,
getCurrentMonth,
getMonth,
getymdTimeByDay,
getCurrentYearMonth
} from 'utils/dateUtils';
export default { export default {
name: 'vehicleRecords', name: 'vehicleRecords',
components: {
vehicleExhibitionModal,
vehicleMaintenanceModal,
vehiclePlanModal,
rentOrderDetailModal,
tourOrderDetailModal,
disableModal
},
data() { data() {
return { return {
currentItem: {},//当前操作表单 currentItem: {},//当前操作表单
...@@ -119,7 +145,17 @@ ...@@ -119,7 +145,17 @@
numberPlate: undefined numberPlate: undefined
}, },
tableKey: 0, tableKey: 0,
dialogFormVisible: false dialogFormVisible: false,
baoyang: false,//保养弹框,
zhanlan: false,//展览弹框
rentOrder: false,//租车订单详情
anpai: false,//安排用车弹框
jinyong: false,//禁用弹框
currentItem: {},//待操作数据
rentOrderInfo: {},//租车订单详情
rentCostDetail: {},//租车订单费用明细
tourDialogVisible: false,//旅游订单弹框
tourRow: {},//旅游订单详情-当前行
} }
}, },
created() { created() {
...@@ -133,6 +169,79 @@ ...@@ -133,6 +169,79 @@
handleFilter() { handleFilter() {
this.getList(); this.getList();
}, },
/**
* 点击事件
* */
toShowDialog( cc, iitem){
let item = {};
let ii = {
vehicleBookRecord: cc
};
// <!--bookType 1-租车、2-分公司使用、3-维修、4、展览、5、旅游、6、保养、7、预约中、8、禁用-->
item.numberPlate = this.listQuery.numberPlate;//车牌号
item.parkCompanyName = cc.parkCompanyName;//当前停靠公司
item.subordinateBranchName = cc.subordinateBranchName;//所属公司
if(cc.bookType == 6){
//保养
this.baoyang = true;
this.currentItem = {item: item, iitem: iitem, ii: ii};
} else if(cc.bookType == 4){
//展览
this.zhanlan = true;
this.currentItem = {item: item, ii: ii, title: "展览用车"};
} else if(cc.bookType == 7){
this.zhanlan = true;
this.currentItem = {item: item, ii: ii, title: "预定用车"};
} else if(cc.bookType == 1){
this.getOneVechi(cc.orderNo);
this.currentItem = {item: item, iitem: iitem, ii: ii, title: "租车订单"};
} else if(cc.bookType == 5) {
//房车游订单详情
this.tourRow = {no: cc.vehicleBookRecord.orderNo};
this.tourDialogVisible = true
} else if(cc.bookType == 8) {
//禁用
this.jinyong = true;
this.currentItem = {item: item, iitem: iitem, ii: ii, title: "禁用"};
}
},
/**
* 根据订单号获取订单详情
* */
getOneVechi: function(orderNo) {
let params = {
orderNo: orderNo
};
getVehicleOrderDetail(params).then(res => {
if (res.status == 200) {
let a = res.data;
a.orderRentVehicleDetail.startTime = timestamp2Date(a.orderRentVehicleDetail.startTime);
a.orderRentVehicleDetail.endTime = timestamp2Date(a.orderRentVehicleDetail.endTime);
let arr = a.picture ? a.picture.split(",") : [];
a.picture = arr.length > 0 ? arr[0] : "";
a.payTime = timestamp2Date(a.payTime);
this.rentOrderInfo = a;
this.costDetail = JSON.parse(this.rentOrderInfo.orderRentVehicleDetail.costDetail);
var cost = '';
this.costDetail.children.map(function(a) {
cost += a.key + ":" +a.detail+" ";
});
this.rentCostDetail = cost;
if(this.rentOrderInfo.orderRentVehicleDetail.driverType==1) {
this.serviceCost = this.rentOrderInfo.orderRentVehicleDetail.dayNum * 600
}
this.rentOrder = true;
} else {
this.$notify({
title: '失败',
message: '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
/** /**
* 获取排班记录列表数据 * 获取排班记录列表数据
*/ */
...@@ -156,11 +265,50 @@ ...@@ -156,11 +265,50 @@
this.getList(); this.getList();
}, },
/** /**
* 详情 * 关闭保养弹框后逻辑处理
*/ * */
handleDetail(row){ baoyangDialogEvent(e){
this.currentItem = row; this.baoyang = false;
this.dialogVisible = true; if(e){//关闭编辑
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 关闭展览弹框后逻辑处理
* */
zhanlanDialogEvent(e){
this.zhanlan = false;
if(e){//关闭编辑
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 禁用弹框关闭后逻辑处理
* */
jinyongDialogEvent(e){
this.jinyong = false;
if(e){//关闭编辑
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 安排用车弹框关闭逻辑处理
* */
anpaiDialogEvent(e){
this.anpai = false;
if(e){//关闭编辑
//编辑成功-重新加载列表
this.getList();
}
},
/**
* 租车订单详情弹框关闭
* */
rentOrderDetailDialogEvent(e){
this.rentOrder = false;
}, },
} }
} }
......
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