Commit 4997b883 authored by 164003836@qq.con's avatar 164003836@qq.con

车辆信息管理:增加简单的还车,提车环节

parent 41640b63
......@@ -37,3 +37,19 @@ export function unbook(id) {
method: 'delete'
});
}
export function lift(data) {
return fetch({
url: '/vehicle/vehicleInfo/book/4employee/lift',
method: 'put',
data: data
});
}
export function ret(data) {
return fetch({
url: '/vehicle/vehicleInfo/book/4employee/ret',
method: 'put',
data: data
});
}
......@@ -13,6 +13,7 @@ export const VEHICLE_CONSTANT_STATUS_NORMAL = 1; // 车辆状态 - 废弃
export const BOOK_RECORD_STATUS_APPLY = 1; // 预定记录状态 - 申请中
export const BOOK_RECORD_STATUS_PROVED = 2; // 预定记录状态 - 已通过
export const BOOK_RECORD_STATUS_LIFT = 7; // 预定记录状态 - 已提车
const baseInfo = {
......@@ -59,6 +60,10 @@ const baseInfo = {
6: {
code: 6,
val: '取消预订'
},
7: {
code: 7,
val: '已提车'
}
}
},
......
......@@ -6,6 +6,7 @@ export default {
VEHICLE_INFO_NUMBER_PLATE_EXIST: 102001, //车牌已存在
VEHICLE_INFO_CODE_EXIST: 102003, //车辆编码已存在
VEHICLE_BOOKED_RECORD_ALREADY_CHANGED: 103001, //车辆预定申请状态已被修改,请刷新后继续操作
VEHICLE_BOOKED_RECORD_STATUS_CHANGED: 103002 //车辆预定申请状态已被修改,请刷新后继续操作
},
msg: {
1: '成功',
......@@ -13,6 +14,7 @@ export default {
101001: "车辆预定信息已被修改,请刷新后继续操作",
103001: "车辆预定申请状态已被修改,请刷新后继续操作",
102001: "车牌已存在",
102003: "车辆编码已存在"
102003: "车辆编码已存在",
103002: "车辆预定申请状态已变更,请刷新后继续操作"
}
}
......@@ -84,11 +84,11 @@
</template>
</el-table-column>
<el-table-column align="center" label="提车地址" width="200">
<template scope="scope">
<span>{{scope.row.liftAddr}}</span>
</template>
</el-table-column>
<!-- <el-table-column align="center" label="提车地址" width="200">-->
<!-- <template scope="scope">-->
<!-- <span>{{scope.row.liftAddr}}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column align="center" label="目的地" width="200">
<template scope="scope">
......@@ -102,18 +102,50 @@
</template>
</el-table-column>
<el-table-column align="center" label="申请审核人" width="65">
<el-table-column align="center" label="申请审核人" width="120">
<template scope="scope">
<span>{{scope.row.reviewerNameApply}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="取消人" width="65">
<el-table-column align="center" label="取消人" width="100">
<template scope="scope">
<span>{{scope.row.reviewerNameCancel}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="提车地点" width="120">
<template scope="scope">
<span>{{scope.row.liftCompanyName}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="提车审核人" width="120">
<template scope="scope">
<span>{{scope.row.reviewerNameLift}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="提车时间" width="120">
<template scope="scope">
<span>{{scope.row.actualStartDate}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="还车地点" width="120">
<template scope="scope">
<span>{{scope.row.retCompanyName}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="还车审核人" width="120">
<template scope="scope">
<span>{{scope.row.reviewerNameReturn}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="还车时间" width="120">
<template scope="scope">
<span>{{scope.row.actualEndDate}}</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>
......@@ -125,6 +157,12 @@
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>
<el-button v-if="bookRecord_btn_lift && checkIfProved(scope.row.status)" size="small" type="success"
@click="handleLift(scope.row)">提车
</el-button>
<el-button v-if="bookRecord_btn_ret && checkIfLift(scope.row.status)" size="small" type="success"
@click="handleRet(scope.row)">还车
</el-button>
<el-button v-if="bookRecord_btn_unbook && checkIfProved(scope.row.status)" size="small" type="danger"
@click="handleUnbook(scope.row)">取消预定
</el-button>
......@@ -141,6 +179,52 @@
<book-info-viewer ref="bookInfoViewer"></book-info-viewer>
<!-- 提车对话框相关html元素 -->
<el-dialog title="提车" :visible.sync="dialogForm4LiftVisible">
<el-form :model="form4Lift" :rules="rules4Lift" ref="form4Lift" label-width="120px">
<el-form-item label="提车分公司" prop="liftCompany">
<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="liftRemark">
<el-input v-model="form4Lift.liftRemark" placeholder="请输入备注信息"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelDialog4Lift('form4Lift')">取 消</el-button>
<el-button type="primary" @click="lift('form4Lift')">确 定</el-button>
</div>
</el-dialog>
<!-- 提车对话框相关html元素 -->
<el-dialog title="还车" :visible.sync="dialogForm4RetVisible">
<el-form :model="form4Ret" :rules="rules4Ret" ref="form4Ret" label-width="120px">
<el-form-item label="还车分公司" prop="retCompany">
<el-select class="filter-item" v-model.number="form4Ret.retCompany" 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="retRemark">
<el-input v-model="form4Ret.retRemark" placeholder="请输入备注信息"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelDialog4Ret('form4Ret')">取 消</el-button>
<el-button type="primary" @click="ret('form4Ret')">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
......@@ -149,6 +233,9 @@
page,
prove,
reject,
getObj,
lift,
ret,
unbook
} from 'api/vehicle/bookRecord';
......@@ -173,7 +260,8 @@
import {
BOOK_RECORD_STATUS_APPLY,
BOOK_RECORD_STATUS_PROVED
BOOK_RECORD_STATUS_PROVED,
BOOK_RECORD_STATUS_LIFT
} from '../../../store/modules/baseInfo';
import bookInfoViewer from '../bookInfoViewer';
......@@ -204,8 +292,58 @@
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
tableKey: 0,
form4Lift: {
id: undefined,
liftCompany: undefined,
liftRemark: undefined
},
rules4Lift: {
liftCompany: [
{
required: true,
message: '请选择提车分公司',
trigger: 'blur',
type: 'integer'
}
],
retRemark: [
{
min: 0,
max: 2000,
message: '长度小于 2000 个字符',
trigger: 'blur'
}
]
},
form4Ret: {
id: undefined,
retCompany: undefined,
retRemark: undefined
},
rules4Ret: {
retCompany: [
{
required: true,
message: '请选择提车分公司',
trigger: 'blur',
type: 'integer'
}
],
retRemark: [
{
min: 0,
max: 2000,
message: '长度小于 2000 个字符',
trigger: 'blur'
}
]
}
}
},
created() {
......@@ -216,6 +354,8 @@
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_lift = this.elements['bookRecord:btn_lift'];
this.bookRecord_btn_ret = this.elements['bookRecord:btn_ret'];
},
computed: {
...mapGetters([
......@@ -239,6 +379,49 @@
}
},
methods: {
cancelDialog4Lift(formName) {
this.dialogForm4LiftVisible = false;
this.$refs[formName].resetFields();
},
cancelDialog4Ret(formName) {
this.dialogForm4RetVisible = false;
this.$refs[formName].resetFields();
},
lift(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
lift(this.form4Lift).then((response) => {
if (response.code === rsCode.code.VEHICLE_BOOKED_RECORD_STATUS_CHANGED) {
this.$notify({
title: '失败',
message: rsCode.msg[rsCode.code.VEHICLE_BOOKED_RECORD_STATUS_CHANGED],
type: 'error',
duration: 2000
});
} else if (response.code === rsCode.RS_CODE_SUC) {
this.$notify({
title: '成功',
message: '操作成功',
type: 'success',
duration: 2000
});
this.dialogForm4LiftVisible = false;
this.getList();
} else {
this.$notify({
title: '失败',
message: '操作失败',
type: 'error',
duration: 2000
});
}
});
} else {
return false;
}
});
},
handleBookInfo(row) {
this.$refs.bookInfoViewer.handleBookInfo(row.vehicle);
},
......@@ -263,6 +446,9 @@
checkIfProved(code) {
return code === BOOK_RECORD_STATUS_PROVED;
},
checkIfLift(code) {
return code === BOOK_RECORD_STATUS_LIFT;
},
getList() {
this.listLoading = true;
page(this.listQuery)
......@@ -374,6 +560,63 @@
});
});
},
handleLift(row) {
this.resetTemp4Lift();
getObj(row.id)
.then(response => {
if (!this.$utils.isEmpty(response.data) && this.$utils.isInteger(response.data.liftCompany)) {
this.form4Lift.liftCompany = response.data.liftCompany;
}
this.form4Lift.id = row.id;
this.dialogForm4LiftVisible = true;
});
},
handleRet(row) {
this.resetTemp4Ret();
getObj(row.id)
.then(response => {
if (!this.$utils.isEmpty(response.data) && this.$utils.isInteger(response.data.retCompany)) {
this.form4Ret.retCompany = response.data.retCompany;
}
this.form4Ret.id = row.id;
this.dialogForm4RetVisible = true;
});
},
ret(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
ret(this.form4Ret).then((response) => {
if (response.code === rsCode.code.VEHICLE_BOOKED_RECORD_STATUS_CHANGED) {
this.$notify({
title: '失败',
message: rsCode.msg[rsCode.code.VEHICLE_BOOKED_RECORD_STATUS_CHANGED],
type: 'error',
duration: 2000
});
} else if (response.code === rsCode.RS_CODE_SUC) {
this.$notify({
title: '成功',
message: '操作成功',
type: 'success',
duration: 2000
});
this.dialogForm4RetVisible = false;
this.getList();
} else {
this.$notify({
title: '失败',
message: '操作失败',
type: 'error',
duration: 2000
});
}
});
} else {
return false;
}
});
},
handleUnbook(row) {
this.$confirm('确定取消预定?', '提示', {
confirmButtonText: '确定',
......@@ -408,15 +651,18 @@
});
});
},
resetTemp() {
this.form = {
resetTemp4Lift() {
this.form4Lift = {
id: undefined,
liftCompany: undefined,
liftRemark: undefined
};
},
resetTemp4Ret() {
this.form4Ret = {
id: undefined,
name: undefined,
addrProvince: undefined,
addrCity: undefined,
addrTown: undefined,
addrDetail: undefined,
updateTime: undefined
retCompany: undefined,
retRemark: undefined
};
}
}
......
......@@ -49,13 +49,18 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-button class="filter-item" type="primary" :icon=" showMoreQueryFilter ? 'caret-top' : 'caret-bottom' "
v-waves @click="showMoreQueryFilter=!showMoreQueryFilter">
更多条件
</el-button>
<el-form-item label="分公司" prop="subordinateBranch">
<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-col>
</el-row>
<el-button class="filter-item" type="primary" :icon=" showMoreQueryFilter ? 'caret-top' : 'caret-bottom' "
v-waves @click="showMoreQueryFilter=!showMoreQueryFilter">
更多条件
</el-button>
<transition name="fade">
<div v-if="showMoreQueryFilter">
......@@ -462,8 +467,11 @@
</el-date-picker>
</el-form-item>
<el-form-item label="提车地址" prop="liftAddr">
<el-input v-model="form4Apply.liftAddr" placeholder="请输入提车地址"></el-input>
<el-form-item label="提车分公司" prop="liftCompany">
<el-select class="filter-item" v-model.number="form4Apply.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="destination">
<el-input v-model="form4Apply.destination" placeholder="请输入目的地"></el-input>
......@@ -622,6 +630,7 @@
bookEndDate: undefined,
vehicle: undefined,
liftAddr: undefined,
liftCompany: undefined,
destination: undefined,
remark: undefined
},
......@@ -707,17 +716,12 @@
trigger: 'blur'
}
],
liftAddr: [
liftCompany: [
{
required: true,
message: '请输入提车地址',
trigger: 'blur'
},
{
min: 0,
max: 200,
message: '长度小于 200 个字符',
trigger: 'blur'
message: '请选择提车分公司',
trigger: 'blur',
type: 'integer'
}
],
destination: [
......@@ -1154,6 +1158,7 @@
bookStartDate: undefined,
bookEndDate: undefined,
vehicle: undefined,
liftCompany: undefined,
liftAddr: undefined,
destination: undefined,
remark: undefined
......
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