Commit e13b129b authored by guoyou's avatar guoyou

员工录入操作权限

parent bd5a94e1
...@@ -66,11 +66,13 @@ ...@@ -66,11 +66,13 @@
size="small" size="small"
class="el-button el-button--text el-button--small" class="el-button el-button--text el-button--small"
@click="editorStaff(scope.row)" @click="editorStaff(scope.row)"
v-if="scope.row.status != 1"
>编辑</el-button> >编辑</el-button>
<el-button <el-button
size="small" size="small"
class="el-button el-button--text el-button--small" class="el-button el-button--text el-button--small"
@click="deleteStaff(scope.row)" @click="deleteStaff(scope.row)"
v-if="scope.row.status != 1"
>删除</el-button> >删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -5,52 +5,84 @@ ...@@ -5,52 +5,84 @@
<el-form-item label="申请状态"> <el-form-item label="申请状态">
<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"
:value="val.code"></el-option> :value="val.code"></el-option>-->
<el-option
v-for="(val, index) in statusList "
:key="index"
:label="val.val"
:value="val.code"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="车辆编码"> <el-form-item label="车辆编码">
<el-input type="number" v-model.number="listQuery.code" placeholder="请输入车辆编码"></el-input> <el-input type="number" v-model.number="listQuery.code" placeholder="请输入车辆编码"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="车牌号"> <el-form-item label="车牌号">
<el-input v-model="listQuery.numberPlate" placeholder="请输入车牌号"></el-input> <el-input v-model="listQuery.numberPlate" placeholder="请输入车牌号"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="用途"> <el-form-item label="用途">
<el-select class="filter-item" v-model="listQuery.bookType" placeholder="请选择"> <el-select class="filter-item" v-model="listQuery.bookType" placeholder="请选择">
<el-option :key="undefined" label="无" :value="undefined"></el-option> <el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="val in bookTypeList" :key="val.id" :label="val.name" :value="val.id"> </el-option> <el-option v-for="val in bookTypeList" :key="val.id" :label="val.name" :value="val.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所属大区"> <el-form-item label="所属大区">
<el-select class="filter-item" v-model="listQuery.zoneId" placeholder="请选择" @change="getProvinceRegions"> <el-select
<el-option :key="undefined" label="无" :value="undefined"></el-option> class="filter-item"
<el-option v-for="val in getAllZoneList" :key="val.id" :label="val.name" :value="val.id"> </el-option> v-model="listQuery.zoneId"
</el-select> placeholder="请选择"
</el-form-item> @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-form-item label="提车公司">
<el-select class="filter-item" v-model="listQuery.liftCompany" placeholder="请选择" @change="getAllBranchCompanyChange"> <el-select
class="filter-item"
v-model="listQuery.liftCompany"
placeholder="请选择"
@change="getAllBranchCompanyChange"
>
<el-option :key="undefined" label="无" :value="undefined"></el-option> <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-option
</el-select> v-for="val in allBranchCompany"
</el-form-item> :key="val.id"
:label="val.name"
:value="val.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="预订月份" prop="selectedMonth4Query"> <el-form-item label="预订月份" prop="selectedMonth4Query">
<el-date-picker <el-date-picker
v-model="selectedMonth4Query" v-model="selectedMonth4Query"
type="month" type="month"
:editable="true" :editable="true"
format="yyyy-MM" format="yyyy-MM"
placeholder="请选择预订月份"> placeholder="请选择预订月份"
</el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<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-form> </el-form>
</div> </div>
<el-table
<el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row :key="tableKey"
style="width: 100%"> :data="list"
v-loading.body="listLoading"
border
fit
highlight-current-row
style="width: 100%"
>
<el-table-column align="center" label="车牌号" width="120"> <el-table-column align="center" label="车牌号" width="120">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.numberPlate}}</span> <span>{{scope.row.numberPlate}}</span>
...@@ -97,7 +129,7 @@ ...@@ -97,7 +129,7 @@
<span v-else>{{getDatePeriodStr([scope.row.bookStartDate, scope.row.bookEndDate])}}</span> <span v-else>{{getDatePeriodStr([scope.row.bookStartDate, 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">-->
...@@ -127,7 +159,7 @@ ...@@ -127,7 +159,7 @@
<template scope="scope"> <template scope="scope">
<span>{{scope.row.reviewerNameCancel}}</span> <span>{{scope.row.reviewerNameCancel}}</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">
...@@ -143,7 +175,7 @@ ...@@ -143,7 +175,7 @@
<template scope="scope"> <template scope="scope">
<span>{{scope.row.actualStartDate}}</span> <span>{{scope.row.actualStartDate}}</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">
...@@ -184,35 +216,73 @@ ...@@ -184,35 +216,73 @@
<template scope="scope"> <template scope="scope">
<span>{{scope.row.haveViolation?'是':'否'}}</span> <span>{{scope.row.haveViolation?'是':'否'}}</span>
</template> </template>
</el-table-column> --> </el-table-column>-->
<el-table-column align="center" label="详情" width="100" fixed="right"> <el-table-column align="center" label="详情" width="100" fixed="right">
<template scope="scope"> <template scope="scope">
<span style="color: #13CE66;cursor: pointer;" @click="handleDetail(scope.row)">订单详情</span> <span style="color: #13CE66;cursor: pointer;" @click="handleDetail(scope.row)">订单详情</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" width="200" fixed="right"> <el-table-column align="center" label="操作" width="200" fixed="right">
<template scope="scope"> <template scope="scope">
<!-- <el-button size="small" type="success" @click="handleBookInfo(scope.row)">预订信息</el-button> --> <!-- <el-button size="small" type="success" @click="handleBookInfo(scope.row)">预订信息</el-button> -->
<el-button size="small" class="el-button el-button--text el-button--small" v-if="scope.row.status==3" @click="illegalInquiry(scope.row)">违章记录</el-button> <el-button
<el-button v-if="bookRecord_btn_prove&&scope.row.status==1" size="small" class="el-button el-button--text el-button--small" @click="handleProve(scope.row)">通过</el-button> size="small"
<el-button v-if="bookRecord_btn_reject&&scope.row.status==1" size="small" class="el-button el-button--text el-button--small" style="color: red;" @click="handleReject(scope.row)">驳回</el-button> class="el-button el-button--text el-button--small"
v-if="scope.row.status==3"
@click="illegalInquiry(scope.row)"
>违章记录</el-button>
<el-button
v-if="bookRecord_btn_prove&&scope.row.status==1"
size="small"
class="el-button el-button--text el-button--small"
@click="handleProve(scope.row)"
>通过</el-button>
<el-button
v-if="bookRecord_btn_reject&&scope.row.status==1"
size="small"
class="el-button el-button--text el-button--small"
style="color: red;"
@click="handleReject(scope.row)"
>驳回</el-button>
<template v-if="scope.row.vehicleDepartureLogVo==undefined"> <template v-if="scope.row.vehicleDepartureLogVo==undefined">
<el-button v-if="bookRecord_btn_lift&&scope.row.liftStatus==1&&scope.row.status==2" size="small" class="el-button el-button--text el-button--small" @click="handleLift(scope.row)">出车</el-button> <el-button
v-if="bookRecord_btn_lift&&scope.row.liftStatus==1&&scope.row.status==2"
size="small"
class="el-button el-button--text el-button--small"
@click="handleLift(scope.row)"
>出车</el-button>
</template> </template>
<template v-if="scope.row.vehicleDepartureLogVo!=undefined"> <template v-if="scope.row.vehicleDepartureLogVo!=undefined">
<el-button v-if="bookRecord_btn_ret&&scope.row.vehicleDepartureLogVo.state==0&&scope.row.retStatus==1" size="small" class="el-button el-button--text el-button--small" @click="handleRet(scope.row)">收车</el-button> <el-button
v-if="bookRecord_btn_ret&&scope.row.vehicleDepartureLogVo.state==0&&scope.row.retStatus==1"
size="small"
class="el-button el-button--text el-button--small"
@click="handleRet(scope.row)"
>收车</el-button>
</template> </template>
<template v-if="scope.row.vehicleDepartureLogVo==undefined"> <template v-if="scope.row.vehicleDepartureLogVo==undefined">
<el-button v-if="bookRecord_btn_unbook&&scope.row.status==2" size="small" class="el-button el-button--text el-button--small" style="color: red;" @click="handleUnbook(scope.row)">取消预定</el-button> <el-button
v-if="bookRecord_btn_unbook&&scope.row.status==2"
size="small"
class="el-button el-button--text el-button--small"
style="color: red;"
@click="handleUnbook(scope.row)"
>取消预定</el-button>
</template> </template>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div v-show="!listLoading" class="pagination-container"> <div v-show="!listLoading" class="pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination
:current-page.sync="listQuery.page" :page-sizes="[10,20,30,40,50]" :page-size="listQuery.limit" @size-change="handleSizeChange"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination> @current-change="handleCurrentChange"
: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> </div>
<book-info-viewer ref="bookInfoViewer"></book-info-viewer> <book-info-viewer ref="bookInfoViewer"></book-info-viewer>
...@@ -220,7 +290,6 @@ ...@@ -220,7 +290,6 @@
<!-- 查看详情 --> <!-- 查看详情 -->
<el-dialog title="预约详情" :visible.sync="dialogDetailVisible" class="order-details"> <el-dialog title="预约详情" :visible.sync="dialogDetailVisible" class="order-details">
<el-form label-width="100px"> <el-form label-width="100px">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
...@@ -249,7 +318,7 @@ ...@@ -249,7 +318,7 @@
<el-form-item label="当前停靠公司"> <el-form-item label="当前停靠公司">
<span>{{detailItem.liftCompanyName}}</span> <span>{{detailItem.liftCompanyName}}</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">
...@@ -259,7 +328,7 @@ ...@@ -259,7 +328,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<hr> <hr />
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="使用人"> <el-form-item label="使用人">
...@@ -271,7 +340,8 @@ ...@@ -271,7 +340,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="预定时间"> <el-form-item label="预定时间">
<span>{{detailItem.bookStartDate}}</span><span>{{detailItem.bookEndDate}}</span> <span>{{detailItem.bookStartDate}}</span>
<span>{{detailItem.bookEndDate}}</span>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -303,7 +373,7 @@ ...@@ -303,7 +373,7 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<hr> <hr />
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="提车分公司"> <el-form-item label="提车分公司">
...@@ -312,30 +382,42 @@ ...@@ -312,30 +382,42 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="操作人"> <el-form-item label="操作人">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.checkMan}}</span> <span
v-if="detailItem.vehicleDepartureLogVo"
>{{detailItem.vehicleDepartureLogVo.checkMan}}</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 v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.departureTime}}</span> <span
v-if="detailItem.vehicleDepartureLogVo"
>{{detailItem.vehicleDepartureLogVo.departureTime}}</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="提车公里数"> <el-form-item label="提车公里数">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.mileageStart?detailItem.vehicleDepartureLogVo.mileageStart+'KM':''}}</span> <span
v-if="detailItem.vehicleDepartureLogVo"
>{{detailItem.vehicleDepartureLogVo.mileageStart?detailItem.vehicleDepartureLogVo.mileageStart+'KM':''}}</span>
</el-form-item> </el-form-item>
</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">
<el-col :span="3" v-for="(item, index) in departurePicList" :key="index" :offset="index%6 > 0 ? 1 : 0" style="margin-bottom:10px"> <el-col
:span="3"
v-for="(item, index) in departurePicList"
:key="index"
:offset="index%6 > 0 ? 1 : 0"
style="margin-bottom:10px"
>
<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>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="还车分公司"> <el-form-item label="还车分公司">
...@@ -344,30 +426,42 @@ ...@@ -344,30 +426,42 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="操作人"> <el-form-item label="操作人">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.recycleMan}}</span> <span
v-if="detailItem.vehicleDepartureLogVo"
>{{detailItem.vehicleDepartureLogVo.recycleMan}}</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 v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.arrivalTime}}</span> <span
v-if="detailItem.vehicleDepartureLogVo"
>{{detailItem.vehicleDepartureLogVo.arrivalTime}}</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="还车公里数"> <el-form-item label="还车公里数">
<span v-if="detailItem.vehicleDepartureLogVo">{{detailItem.vehicleDepartureLogVo.mileageEnd?detailItem.vehicleDepartureLogVo.mileageEnd+'KM':''}}</span> <span
v-if="detailItem.vehicleDepartureLogVo"
>{{detailItem.vehicleDepartureLogVo.mileageEnd?detailItem.vehicleDepartureLogVo.mileageEnd+'KM':''}}</span>
</el-form-item> </el-form-item>
</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">
<el-col :span="3" v-for="(item, index) in arrivalPicList" :key="index" :offset="index%6 > 0 ? 1 : 0" style="margin-bottom:10px"> <el-col
:span="3"
v-for="(item, index) in arrivalPicList"
:key="index"
:offset="index%6 > 0 ? 1 : 0"
style="margin-bottom:10px"
>
<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>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="审核人操作"> <el-form-item label="审核人操作">
...@@ -400,13 +494,23 @@ ...@@ -400,13 +494,23 @@
<!-- 出车对话框相关html元素 --> <!-- 出车对话框相关html元素 -->
<el-dialog title="出车" :visible.sync="dialogForm4LiftVisible"> <el-dialog title="出车" :visible.sync="dialogForm4LiftVisible">
<el-form :model="departureForm" :rules="departureFormrules" ref="departureForm" label-width="120px"> <el-form
:model="departureForm"
:rules="departureFormrules"
ref="departureForm"
label-width="120px"
>
<el-form-item label="车牌号"> <el-form-item label="车牌号">
<el-input v-model="departureForm.numberPlate" disabled></el-input> <el-input v-model="departureForm.numberPlate" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item label="出车时间"> <el-form-item label="出车时间">
<el-date-picker v-model="departureForm.departureDate" type="date" disabled <el-date-picker
format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker> v-model="departureForm.departureDate"
type="date"
disabled
format="yyyy-MM-dd"
placeholder="选择日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="出车分公司"> <el-form-item label="出车分公司">
<el-autocomplete <el-autocomplete
...@@ -457,7 +561,8 @@ ...@@ -457,7 +561,8 @@
:on-remove="handleDepartureRemove" :on-remove="handleDepartureRemove"
:file-list="departurePicList" :file-list="departurePicList"
:on-success="handleDepartureSuccess" :on-success="handleDepartureSuccess"
list-type="picture-card"> list-type="picture-card"
>
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
...@@ -477,8 +582,13 @@ ...@@ -477,8 +582,13 @@
<el-input v-model="arrivalForm.numberPlate" disabled></el-input> <el-input v-model="arrivalForm.numberPlate" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item label="收车时间"> <el-form-item label="收车时间">
<el-date-picker v-model="arrivalForm.arrivalDate" type="date" disabled <el-date-picker
format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker> v-model="arrivalForm.arrivalDate"
type="date"
disabled
format="yyyy-MM-dd"
placeholder="选择日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="还车分公司"> <el-form-item label="还车分公司">
<el-autocomplete <el-autocomplete
...@@ -511,7 +621,8 @@ ...@@ -511,7 +621,8 @@
:on-remove="handleArrivalRemove" :on-remove="handleArrivalRemove"
:file-list="arrivalPicList" :file-list="arrivalPicList"
:on-success="handleArrivalSuccess" :on-success="handleArrivalSuccess"
list-type="picture-card"> list-type="picture-card"
>
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
...@@ -536,7 +647,8 @@ ...@@ -536,7 +647,8 @@
:on-remove="handleRemove" :on-remove="handleRemove"
:file-list="fileList2" :file-list="fileList2"
:on-success="handleSuccess" :on-success="handleSuccess"
list-type="picture-card"> list-type="picture-card"
>
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
...@@ -544,10 +656,15 @@ ...@@ -544,10 +656,15 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col> <el-col>
<el-form-item label="违章罚款"> <el-form-item label="违章罚款">
<el-input v-model="price" type="number" placeholder="请输入违章罚款金额" style="width: 50%;margin-right:10px"></el-input> <el-input
</el-form-item> v-model="price"
</el-col> type="number"
placeholder="请输入违章罚款金额"
style="width: 50%;margin-right:10px"
></el-input>
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -555,1027 +672,1052 @@ ...@@ -555,1027 +672,1052 @@
<el-button type="primary" @click="okHandler('form')">确 定</el-button> <el-button type="primary" @click="okHandler('form')">确 定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import {
page, page,
prove, prove,
reject, reject,
getObj, getObj,
lift, lift,
ret, ret,
unbook, unbook,
getOneIllegalRow, getOneIllegalRow,
saveOrderViolation, saveOrderViolation,
departureVehicle, departureVehicle,
arrivalVehicle arrivalVehicle
} from 'api/vehicle/bookRecord'; } from "api/vehicle/bookRecord";
import { import { getAllCompany, getAll } from "api/base_info/branch_company/";
getAllCompany, import { getAllZone } from "api/base_info/constant/";
getAll import { getAllBranchCompanyByZoneId } from "api/order/rentVehicle";
} from 'api/base_info/branch_company/'; import { formatDate } from "utils/dateFormattor";
import {
getAllZone
} from 'api/base_info/constant/';
import {
getAllBranchCompanyByZoneId
} from 'api/order/rentVehicle';
import {
formatDate
} from 'utils/dateFormattor';
import rsCode from '../../../utils/rsCode'; import rsCode from "../../../utils/rsCode";
import {mapGetters} from 'vuex'; import { mapGetters } from "vuex";
import { import { toEast8Date, deepCopyDate, newEast8Date } from "utils/dateUtils";
toEast8Date, import { getToken } from "../../../utils/auth";
deepCopyDate, import {
newEast8Date BOOK_RECORD_STATUS_APPLY,
} from 'utils/dateUtils'; BOOK_RECORD_STATUS_PROVED,
import { BOOK_RECORD_STATUS_LIFT
getToken } from "../../../store/modules/baseInfo";
} from '../../../utils/auth';
import {
BOOK_RECORD_STATUS_APPLY,
BOOK_RECORD_STATUS_PROVED,
BOOK_RECORD_STATUS_LIFT
} from '../../../store/modules/baseInfo';
import bookInfoViewer from '../bookInfoViewer'; import bookInfoViewer from "../bookInfoViewer";
import accItemSelector from '../accompanyingItem/accItemSelector.vue'; import accItemSelector from "../accompanyingItem/accItemSelector.vue";
export default { export default {
name: 'bookRecord', name: "bookRecord",
components: { components: {
bookInfoViewer, bookInfoViewer,
accItemSelector accItemSelector
}, },
data() { data() {
return { return {
rejectVisible:false, rejectVisible: false,
rejectFrom:{ rejectFrom: {
vehicleBookRecordId:'', vehicleBookRecordId: "",
rejectRemark:'' rejectRemark: ""
},
rejectRules: {
rejectRemark: {
type: "string",
required: true,
message: "请输入拒绝原因",
trigger: "blur"
}
},
BASE_API: process.env.BASE_API,
departureFormrules: {
checkMan: {
required: true,
message: "请输入验车人",
trigger: "blur"
}, },
rejectRules:{ checkManTel: [
rejectRemark:{ {
type: "string",
required: true, required: true,
message: "请输入拒绝原因", message: "请输入验车人联系方式",
trigger: "blur" trigger: "blur"
},
{
pattern: /^1[3456789]\d{9}$/,
message: "请输入正确的手机号"
} }
],
mileage: {
type: "number",
required: true,
message: "请输入公里数",
trigger: "blur"
}
},
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
},
departurePicList: [],
arrivalPicList: [],
arrivalForm: {
vehicleId: null,
numberPlate: null,
arrivalDate: null,
recycleMan: null,
recycleManTel: null,
mileage: null,
arrivalBranchCompanyId: null,
arrivalBranchCompanyName: "",
arrivalPic: "",
remark: "",
bookRecordId: null
},
arrivalFormrules: {
recycleMan: {
required: true,
message: "请输入收车人",
trigger: "blur"
}, },
BASE_API: process.env.BASE_API, recycleManTel: [
departureFormrules:{ {
checkMan:{
required: true, required: true,
message: '请输入验车人', message: "请输入收车人联系方式",
trigger: 'blur' trigger: "blur"
}, },
checkManTel:[ {
{ pattern: /^1[3456789]\d{9}$/,
required: true, message: "请输入正确的手机号"
message: '请输入验车人联系方式',
trigger: 'blur'
},
{
pattern: /^1[3456789]\d{9}$/,
message: '请输入正确的手机号'
}
],
mileage:{
type:"number",
required: true,
message: '请输入公里数',
trigger: 'blur'
} }
],
mileage: {
type: "number",
required: true,
message: "请输入收车公里数",
trigger: "blur"
}
},
statusList: [
{
code: "1",
val: "申请中"
}, },
departureForm:{ {
vehicleId: null, code: "3",
departureBranchCompanyId: null,//出发地分公司id val: "待出行"
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,
}, },
departurePicList:[], {
arrivalPicList:[], code: "4",
arrivalForm:{ val: "驳回"
vehicleId: null,
numberPlate: null,
arrivalDate: null,
recycleMan: null,
recycleManTel: null,
mileage: null,
arrivalBranchCompanyId: null,
arrivalBranchCompanyName: '',
arrivalPic:'',
remark:'',
bookRecordId:null,
}, },
arrivalFormrules:{ {
recycleMan:{ code: "5",
required: true, val: "出行中"
message: '请输入收车人',
trigger: 'blur'
},
recycleManTel:[
{
required: true,
message: '请输入收车人联系方式',
trigger: 'blur'
},
{
pattern: /^1[3456789]\d{9}$/,
message: '请输入正确的手机号'
}
],
mileage:{
type:"number",
required: true,
message: '请输入收车公里数',
trigger: 'blur'
}
}, },
statusList:[ {
{ code: "6",
code:'1', val: "取消预订"
val:'申请中' },
}, {
{ code: "7",
code:'3', val: "已完成"
val:'待出行' }
}, ],
{ bookTypeList: [
code:'4', {
val:'驳回' id: "1",
}, name: "租车"
{ },
code:'5', {
val:'出行中' id: "2",
}, name: "用户租赁"
{ },
code:'6', {
val:'取消预订' id: "3",
}, name: "维修"
},
{
id: "4",
name: "展览"
},
{
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,
numberPlate: undefined,
selectedMonth: undefined,
status: undefined,
bookType: 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: {},
allCompaniesArr: [],
tableKey: 0,
form4Lift: {
state1: "",
id: undefined,
mileageLift: undefined,
liftCompany: undefined,
liftRemark: undefined
},
rules4Lift: {
liftCompany: [
{ {
code:'7', required: true,
val:'已完成' message: "请选择提车分公司",
}, trigger: "blur",
type: "integer"
}
], ],
bookTypeList:[ mileageLift: [
{
id:'1',
name:'租车'
},
{
id:'2',
name:'用户租赁'
},
{ {
id:'3', required: true,
name:'维修' message: "请输入当前里程数",
}, trigger: "blur",
{ type: "integer"
id:'4',
name:'展览'
},
{
id:'5',
name:'旅游'
}, },
{ {
id:'6', validator: (rule, value, callback) => {
name:'保养' if (this.$utils.isUndefined(value) || this.$utils.isNull(value)) {
}, return callback();
}
if (!this.$utils.isInteger(value)) {
return callback(new Error("里程数必须为整数"));
}
if (value < 0 || value > 9999999999) {
return callback(new Error("里程数合法范围:[0 - 9999999999]"));
}
callback();
},
trigger: "blur"
}
],
retRemark: [
{ {
id:'7', min: 0,
name:'预约中' max: 2000,
}, message: "长度小于 2000 个字符",
trigger: "blur"
}
]
},
form4Ret: {
id: undefined,
mileageRet: undefined,
haveViolation: undefined,
retCompany: undefined,
retRemark: undefined
},
rules4Ret: {
retCompany: [
{ {
id:'8', required: true,
name:'禁用' message: "请选择提车分公司",
}, trigger: "blur",
type: "integer"
}
],
mileageRet: [
{ {
id:'9', required: true,
name:'客户用车' message: "请输入当前里程数",
trigger: "blur",
type: "integer"
}, },
{ {
id:'10', validator: (rule, value, callback) => {
name:'其他' if (this.$utils.isUndefined(value) || this.$utils.isNull(value)) {
return callback();
}
if (!this.$utils.isInteger(value)) {
return callback(new Error("里程数必须为整数"));
}
if (value < 0 || value > 9999999999) {
return callback(new Error("里程数合法范围:[0 - 9999999999]"));
}
callback();
},
trigger: "blur"
} }
], ],
detailId:'', retRemark: [
illegalVisible:false, {
price: undefined,//违章罚款金额 min: 0,
fileList2:[],//违章截图 max: 2000,
detailItem:{}, message: "长度小于 2000 个字符",
dialogDetailVisible:false, trigger: "blur"
baranchQuery: { }
zoneId:null ]
}, },
allZoneArr:[],//全部片区 selectedAccItem: undefined
allBranchCompany:[], };
state2: '',//搜索-分公司名称 },
rules4Query: { created() {
this.getList();
}, getAll().then(response => {
list: null, this.allCompaniesArr = response.data;
total: null, });
listLoading: true, getAllCompany(codeAndBranchCompany => {
listQuery: { //初始化公司列表
page: 1, this.allCompanies = codeAndBranchCompany;
limit: 20, });
flag: false, this.bookRecord_btn_prove = this.elements["bookRecord:btn_prove"];
zoneId:undefined, this.bookRecord_btn_reject = this.elements["bookRecord:btn_reject"];
liftCompany: undefined, this.bookRecord_btn_unbook = this.elements["bookRecord:btn_unbook"];
numberPlate: undefined, this.bookRecord_btn_lift = this.elements["bookRecord:btn_lift"];
selectedMonth: undefined, this.bookRecord_btn_ret = this.elements["bookRecord:btn_ret"];
status: undefined, },
bookType:undefined computed: {
}, ...mapGetters(["elements", "bookRecordStatus"]),
inline: true, getHeaderWithToken() {
dialogFormVisible: false, return { Authorization: getToken() };
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: {},
allCompaniesArr: [],
tableKey: 0,
form4Lift: {
state1: '',
id: undefined,
mileageLift: undefined,
liftCompany: undefined,
liftRemark: undefined
},
rules4Lift: {
liftCompany: [
{
required: true,
message: '请选择提车分公司',
trigger: 'blur',
type: 'integer'
}
],
mileageLift: [
{
required: true,
message: '请输入当前里程数',
trigger: 'blur',
type: 'integer'
},
{
validator: (rule, value, callback) => {
if (this.$utils.isUndefined(value) || this.$utils.isNull(value)) {
return callback();
}
if (!this.$utils.isInteger(value)) {
return callback(new Error('里程数必须为整数'));
}
if (value < 0 || value > 9999999999) {
return callback(new Error('里程数合法范围:[0 - 9999999999]'));
}
callback();
},
trigger: 'blur'
}
],
retRemark: [
{
min: 0,
max: 2000,
message: '长度小于 2000 个字符',
trigger: 'blur'
}
]
},
form4Ret: {
id: undefined,
mileageRet: undefined,
haveViolation: undefined,
retCompany: undefined,
retRemark: undefined
},
rules4Ret: {
retCompany: [
{
required: true,
message: '请选择提车分公司',
trigger: 'blur',
type: 'integer'
}
],
mileageRet: [
{
required: true,
message: '请输入当前里程数',
trigger: 'blur',
type: 'integer'
},
{
validator: (rule, value, callback) => {
if (this.$utils.isUndefined(value) || this.$utils.isNull(value)) {
return callback();
}
if (!this.$utils.isInteger(value)) {
return callback(new Error('里程数必须为整数'));
}
if (value < 0 || value > 9999999999) {
return callback(new Error('里程数合法范围:[0 - 9999999999]'));
}
callback();
},
trigger: 'blur'
}
],
retRemark: [
{
min: 0,
max: 2000,
message: '长度小于 2000 个字符',
trigger: 'blur'
}
]
},
selectedAccItem: undefined
}
}, },
created() { //获取大区列表
this.getList(); getAllZoneList() {
getAll() return getAllZone();
.then(response => {
this.allCompaniesArr = response.data;
})
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: { selectedMonth4Query: {
...mapGetters([ get: function() {
'elements', if (
'bookRecordStatus' this.$utils.isString(this.listQuery.selectedMonth) &&
]), this.listQuery.selectedMonth !== ""
getHeaderWithToken() { ) {
return {Authorization: getToken()}; return toEast8Date(this.listQuery.selectedMonth);
}
return undefined;
}, },
//获取大区列表 set: function(date) {
getAllZoneList(){ if (this.$utils.isDate(date)) {
return getAllZone(); this.listQuery.selectedMonth = formatDate(date, "yyyy-MM");
}, } else {
selectedMonth4Query: { this.listQuery.selectedMonth = undefined;
get: function () {
if (this.$utils.isString(this.listQuery.selectedMonth) && this.listQuery.selectedMonth !== '') {
return toEast8Date(this.listQuery.selectedMonth);
}
return undefined;
},
set: function (date) {
if (this.$utils.isDate(date)) {
this.listQuery.selectedMonth = formatDate(date, 'yyyy-MM');
} else {
this.listQuery.selectedMonth = undefined;
}
} }
} }
}
},
methods: {
/**
* 确定
* */
okHandler() {
let arr = [];
this.fileList2.map(function(item) {
arr.push(item.url);
});
let params = {
illegalPic: arr.join(","),
illegalAmount: this.price,
id: this.detailId
};
saveOrderViolation(params).then(response => {
if (response.status === 200) {
this.$notify({
title: "成功",
message: "创建成功",
type: "success",
duration: 2000
});
this.illegalVisible = false;
this.getList();
} else {
this.$notify({
title: "创建失败",
message: "操作失败!",
type: "error",
duration: 2000
});
}
});
}, },
methods: { /**
/** * 上传成功
* 确定 * */
* */ handleSuccess(res, file) {
okHandler() { let c = { url: res.data };
let arr = []; this.fileList2.push(c);
this.fileList2.map(function(item){ this.showLoadingBody = false;
arr.push(item.url); },
}); /**
let params = { * 删除违章图片
illegalPic:arr.join(","), * */
illegalAmount:this.price, handleRemove(file, fileList1) {
id: this.detailId, this.fileList2 = fileList1;
}; },
saveOrderViolation(params).then(response => { /**
if (response.status === 200) { * 出车上传成功
this.$notify({ * */
title: '成功', handleDepartureSuccess(res, file) {
message: '创建成功', let c = { url: res.data };
type: 'success', this.departurePicList.push(c);
duration: 2000 this.showLoadingBody = false;
}); },
this.illegalVisible = false; /**
this.getList(); * 删除出车图片
} else { * */
this.$notify({ handleDepartureRemove(file, fileList2) {
title: '创建失败', this.departurePicList = fileList2;
message: '操作失败!', },
type: 'error', /**
duration: 2000 * 上传成功
}); * */
} handleArrivalSuccess(res, file) {
let c = { url: res.data };
this.arrivalPicList.push(c);
this.showLoadingBody = false;
},
/**
* 删除违章图片
* */
handleArrivalRemove(file, fileList3) {
this.arrivalPicList = fileList3;
},
/**
* 操作-违章查询按钮,显示违章弹框
*/
illegalInquiry(row) {
var t = this;
this.fileList2 = [];
this.price = "";
if (row.vehicleDepartureLogVo.illegalPic) {
let arr = row.vehicleDepartureLogVo.illegalPic.split(",");
let fileList2 = [];
let p = {};
arr.map(function(item) {
p = {
url: item
};
fileList2.push(p);
}); });
}, t.fileList2 = fileList2;
/** }
* 上传成功 if (row.vehicleDepartureLogVo.illegalAmount) {
* */ t.price = parseFloat(row.vehicleDepartureLogVo.illegalAmount);
handleSuccess(res, file) { }
let c = {url: res.data}; this.detailId = row.vehicleDepartureLogVo.id;
this.fileList2.push(c); this.illegalVisible = true;
this.showLoadingBody = false; },
}, /**
/** * 弹框-取消
* 删除违章图片 * */
* */ cancel() {
handleRemove(file, fileList1){ this.illegalVisible = false;
this.fileList2 = fileList1; },
}, handleDetail(row) {
/** var t = this;
* 出车上传成功 this.detailItem = row;
* */ if (row.vehicleDepartureLogVo != undefined) {
handleDepartureSuccess(res, file) { if (
let c = {url: res.data}; row.vehicleDepartureLogVo.departurePic != undefined &&
this.departurePicList.push(c); row.vehicleDepartureLogVo.departurePic != ""
this.showLoadingBody = false; ) {
}, let arr = row.vehicleDepartureLogVo.departurePic.split(",");
/** let departurePicList = [];
* 删除出车图片
* */
handleDepartureRemove(file, fileList2){
this.departurePicList = fileList2;
},
/**
* 上传成功
* */
handleArrivalSuccess(res, file) {
let c = {url: res.data};
this.arrivalPicList.push(c);
this.showLoadingBody = false;
},
/**
* 删除违章图片
* */
handleArrivalRemove(file, fileList3){
this.arrivalPicList = fileList3;
},
/**
* 操作-违章查询按钮,显示违章弹框
*/
illegalInquiry(row){
var t = this;
this.fileList2 = [];
this.price = '';
if(row.vehicleDepartureLogVo.illegalPic){
let arr = row.vehicleDepartureLogVo.illegalPic.split(",");
let fileList2 = [];
let p = {}; let p = {};
arr.map(function(item){ arr.map(function(item) {
p = { departurePicList.push(item);
url: item
};
fileList2.push(p);
}); });
t.fileList2 = fileList2; t.departurePicList = departurePicList;
} else {
t.departurePicList = [];
} }
if(row.vehicleDepartureLogVo.illegalAmount){ if (
t.price = parseFloat(row.vehicleDepartureLogVo.illegalAmount); row.vehicleDepartureLogVo.arrivalPic != undefined &&
row.vehicleDepartureLogVo.arrivalPic != ""
) {
let Arr = row.vehicleDepartureLogVo.arrivalPic.split(",");
let arrivalPicList = [];
let p = {};
Arr.map(function(item) {
arrivalPicList.push(item);
});
t.arrivalPicList = arrivalPicList;
} else {
t.arrivalPicList = [];
} }
this.detailId = row.vehicleDepartureLogVo.id; } else {
this.illegalVisible = true; t.departurePicList = [];
}, t.arrivalPicList = [];
/** }
* 弹框-取消 this.dialogDetailVisible = true;
* */ },
cancel() { //监听change事件
this.illegalVisible = false; getProvinceRegions(item) {
}, this.listQuery.zoneId = item;
handleDetail(row){ this.baranchQuery.zoneId = item;
var t = this this.listQuery.liftCompany = undefined;
this.detailItem = row; getAllBranchCompanyByZoneId(this.baranchQuery).then(response => {
if(row.vehicleDepartureLogVo!= undefined){ this.allBranchCompany = response.data;
if(row.vehicleDepartureLogVo.departurePic!= undefined&&row.vehicleDepartureLogVo.departurePic!=''){ });
let arr = row.vehicleDepartureLogVo.departurePic.split(","); },
let departurePicList = []; getAllBranchCompanyChange(item) {
let p = {}; this.listQuery.liftCompany = item;
arr.map(function(item){ },
departurePicList.push(item); querySearch(queryString, cb) {
}); let selectArry = [];
t.departurePicList = departurePicList; let iitem = {
}else{ value: "全部",
t.departurePicList = []; name: "全部"
} };
if(row.vehicleDepartureLogVo.arrivalPic!= undefined&&row.vehicleDepartureLogVo.arrivalPic!=''){ selectArry.push(iitem);
let Arr = row.vehicleDepartureLogVo.arrivalPic.split(","); this.allCompaniesArr.map(function(item) {
let arrivalPicList = []; item.value = item.name;
let p = {}; selectArry.push(item);
Arr.map(function(item){ });
arrivalPicList.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;
};
},
/**
* 分公司搜索
* */
handleSelect2(item) {
this.listQuery.subordinateBranch = item.id;
console.log(item);
},
/**
* 提车分公司
* */
handleSelect1(item) {
this.form4Lift.liftCompany = item.id;
console.log(item);
},
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
}); });
t.arrivalPicList = arrivalPicList; return false;
}else{
t.arrivalPicList = [];
} }
}else{ var arr = [];
t.departurePicList = []; this.departurePicList.map(function(item) {
t.arrivalPicList = []; arr.push(item.url);
} });
this.dialogDetailVisible = true; this.departureForm.departurePic = arr.join(",");
}, departureVehicle(this.departureForm).then(response => {
//监听change事件 if (response.status == 200) {
getProvinceRegions(item) { this.dialogForm4LiftVisible = false;
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);
};
},
/**
* 分公司搜索
* */
handleSelect2(item){
this.listQuery.subordinateBranch = item.id;
console.log(item);
},
/**
* 提车分公司
* */
handleSelect1(item){
this.form4Lift.liftCompany = item.id;
console.log(item);
},
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({ this.$notify({
title: '警告', title: "成功",
message: '公里数不能大于999999', message: "出车成功",
type: 'warning', type: "success",
duration: 2000
});
this.cleanDepartureForm();
this.getList();
} else {
this.$notify({
title: "失败",
message: response.message,
type: "error",
duration: 2000 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 {
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
});
}
});
} else {
return false;
}
});
},
handleBookInfo(row) {
this.$refs.bookInfoViewer.handleBookInfo(row.vehicle);
},
handleAccItemInfo(row) {
this.selectedAccItem = row.accItemAndAmount;
this.$refs.accItemSelector.show();
},
checkIfBooked(bookedDate, [startDateStr, endDateStr]) {
if (this.$utils.isInteger(bookedDate) &&
this.$utils.isString(startDateStr) && startDateStr !== '' &&
this.$utils.isString(endDateStr) && endDateStr !== '') {
let startDate = toEast8Date(startDateStr);
let endDate = toEast8Date(endDateStr);
for (; this.$utils.toDateString(startDate, 'yyyy-MM-dd') <= this.$utils.toDateString(endDate, 'yyyy-MM-dd');
startDate.setDate(startDate.getDate() + 1)) {
if ((bookedDate & (1 << (startDate.getDate() - 1))) !== 0) {
return true;
} }
} });
} else {
return false;
} }
return false; });
}, },
checkIfApply(code) { handleBookInfo(row) {
return code === BOOK_RECORD_STATUS_APPLY; this.$refs.bookInfoViewer.handleBookInfo(row.vehicle);
}, },
checkIfProved(code) { handleAccItemInfo(row) {
return code === BOOK_RECORD_STATUS_PROVED; this.selectedAccItem = row.accItemAndAmount;
}, this.$refs.accItemSelector.show();
checkIfLift(code) { },
return code === BOOK_RECORD_STATUS_LIFT; checkIfBooked(bookedDate, [startDateStr, endDateStr]) {
}, if (
getList() { this.$utils.isInteger(bookedDate) &&
this.listLoading = true; this.$utils.isString(startDateStr) &&
for(var key in this.listQuery){ startDateStr !== "" &&
if(this.listQuery[key]===''){ this.$utils.isString(endDateStr) &&
this.listQuery[key]=undefined endDateStr !== ""
) {
let startDate = toEast8Date(startDateStr);
let endDate = toEast8Date(endDateStr);
for (
;
this.$utils.toDateString(startDate, "yyyy-MM-dd") <=
this.$utils.toDateString(endDate, "yyyy-MM-dd");
startDate.setDate(startDate.getDate() + 1)
) {
if ((bookedDate & (1 << (startDate.getDate() - 1))) !== 0) {
return true;
} }
} }
page(this.listQuery) }
.then(response => { return false;
this.list = response.data.data; },
this.total = response.data.totalCount; checkIfApply(code) {
this.listLoading = false; return code === BOOK_RECORD_STATUS_APPLY;
}) },
}, checkIfProved(code) {
getBookRecordStatus: function (data) { return code === BOOK_RECORD_STATUS_PROVED;
this.bookRecordStatus['3'].val = '待出行' },
this.bookRecordStatus['4'].val = '驳回' checkIfLift(code) {
this.bookRecordStatus['5'].val = '出行中' return code === BOOK_RECORD_STATUS_LIFT;
this.bookRecordStatus['7'].val = '已完成' },
if(data) { getList() {
if (!this.$utils.isInteger(data.status)) { this.listLoading = true;
return '未知'; for (var key in this.listQuery) {
} if (this.listQuery[key] === "") {
if(data.status == 2 && (data.vehicleDepartureLogVo == undefined || data.vehicleDepartureLogVo == null)) { this.listQuery[key] = undefined;
return this.bookRecordStatus['3'].val;
}
if(data.status == 2 && data.vehicleDepartureLogVo != undefined && data.vehicleDepartureLogVo != null && data.vehicleDepartureLogVo.state == 0) {
return this.bookRecordStatus['5'].val;
}
if(data.status == 2 && data.vehicleDepartureLogVo != undefined && data.vehicleDepartureLogVo != null && data.vehicleDepartureLogVo.state == 1) {
return this.bookRecordStatus['7'].val;
}
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 '未知'; }
}, page(this.listQuery).then(response => {
/** this.list = response.data.data;
* 清空出车弹框数据 this.total = response.data.totalCount;
*/ this.listLoading = false;
cleanDepartureForm() { });
this.departureForm = { },
vehicleId: null, getBookRecordStatus: function(data) {
departureBranchCompanyId: null,//出发地分公司id this.bookRecordStatus["3"].val = "待出行";
departureBranchCompanyName: '',//出发地分公司名称 this.bookRecordStatus["4"].val = "驳回";
use: null, this.bookRecordStatus["5"].val = "出行中";
user: null, this.bookRecordStatus["7"].val = "已完成";
userTel: null, if (data) {
checkMan: null, if (!this.$utils.isInteger(data.status)) {
checkManTel: null, return "未知";
mileage: null, }
numberPlate: null, if (
expectArrivalBranchCompanyId: null,//目的地分公司id data.status == 2 &&
expectArrivalBranchCompanyName: '',//目的地分公司名称 (data.vehicleDepartureLogVo == undefined ||
bookRecordId:null, data.vehicleDepartureLogVo == null)
departurePic:'', ) {
remark:null, return this.bookRecordStatus["3"].val;
bookStartDate: null, }
}; if (
}, data.status == 2 &&
cleanArrivalForm(){ data.vehicleDepartureLogVo != undefined &&
this.arrivalForm = { data.vehicleDepartureLogVo != null &&
vehicleId: null, data.vehicleDepartureLogVo.state == 0
numberPlate: null, ) {
arrivalDate: null, return this.bookRecordStatus["5"].val;
recycleMan: null, }
recycleManTel: null, if (
mileage: null, data.status == 2 &&
arrivalBranchCompanyId: null, data.vehicleDepartureLogVo != undefined &&
arrivalBranchCompanyName: '', data.vehicleDepartureLogVo != null &&
arrivalPic:'', data.vehicleDepartureLogVo.state == 1
remark:'', ) {
bookRecordId:null return this.bookRecordStatus["7"].val;
} }
}, return this.bookRecordStatus[data.status + ""].val;
/** }
* 搜索按钮 return "";
* */ },
handleFilter() { getAllBookRecordStatus: function() {
this.listQuery.page = 1; console.log(this.bookRecordStatus);
this.$refs.queryForm.validate(valid => {
if (valid) { return this.bookRecordStatus;
this.getList(); },
} else { getDatePeriodStr([startDate, endDate]) {
return false; if (
} this.$utils.isString(startDate) &&
}); startDate !== "" &&
}, this.$utils.isString(endDate) &&
handleSizeChange(val) { endDate !== ""
this.listQuery.limit = val; ) {
this.getList(); return (
}, formatDate(toEast8Date(startDate), "yyyy-MM-dd") +
handleCurrentChange(val) { " 至 " +
this.listQuery.page = val; formatDate(toEast8Date(endDate), "yyyy-MM-dd")
this.getList(); );
}, }
handleProve(row) { return "未知";
this.$confirm('确定批准申请?', '提示', { },
confirmButtonText: '确定', /**
cancelButtonText: '取消', * 清空出车弹框数据
type: 'warning' */
}).then(() => { cleanDepartureForm() {
prove(row.id) this.departureForm = {
.then(response => { vehicleId: null,
if (response.code === rsCode.code.VEHICLE_BOOKED_INFO_ALREADY_CHANGED) { departureBranchCompanyId: null, //出发地分公司id
this.$notify({ departureBranchCompanyName: "", //出发地分公司名称
title: '失败', use: null,
message: rsCode.msg[rsCode.code.VEHICLE_BOOKED_INFO_ALREADY_CHANGED], user: null,
type: 'error', userTel: null,
duration: 2000 checkMan: null,
}); checkManTel: null,
} else if (response.code === rsCode.code.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED) { mileage: null,
this.$notify({ numberPlate: null,
title: '失败', expectArrivalBranchCompanyId: null, //目的地分公司id
message: rsCode.msg[rsCode.code.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED], expectArrivalBranchCompanyName: "", //目的地分公司名称
type: 'error', bookRecordId: null,
duration: 2000 departurePic: "",
}); remark: null,
} else if (response.code === rsCode.RS_CODE_SUC) { bookStartDate: null
this.$notify({ };
title: '成功', },
message: '操作成功', cleanArrivalForm() {
type: 'success', this.arrivalForm = {
duration: 2000 vehicleId: null,
}); numberPlate: null,
if(this.dialogDetailVisible){ arrivalDate: null,
this.dialogDetailVisible = false recycleMan: null,
} recycleManTel: null,
} mileage: null,
this.getList(); arrivalBranchCompanyId: null,
arrivalBranchCompanyName: "",
arrivalPic: "",
remark: "",
bookRecordId: null
};
},
/**
* 搜索按钮
* */
handleFilter() {
this.listQuery.page = 1;
this.$refs.queryForm.validate(valid => {
if (valid) {
this.getList();
} else {
return false;
}
});
},
handleSizeChange(val) {
this.listQuery.limit = val;
this.getList();
},
handleCurrentChange(val) {
this.listQuery.page = val;
this.getList();
},
handleProve(row) {
this.$confirm("确定批准申请?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
prove(row.id).then(response => {
if (
response.code === rsCode.code.VEHICLE_BOOKED_INFO_ALREADY_CHANGED
) {
this.$notify({
title: "失败",
message:
rsCode.msg[rsCode.code.VEHICLE_BOOKED_INFO_ALREADY_CHANGED],
type: "error",
duration: 2000
}); });
}); } else if (
}, response.code === rsCode.code.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED
rejectBtn(formName) { ) {
const set = this.$refs; this.$notify({
set[formName].validate(valid => { title: "失败",
if (valid) { message:
reject(this.rejectFrom) rsCode.msg[rsCode.code.VEHICLE_BOOKED_RECORD_ALREADY_CHANGED],
.then(response => { type: "error",
if (response.code == 1) { duration: 2000
this.$notify({
title: '成功',
message: '操作成功',
type: 'success',
duration: 2000
});
this.getList();
if(this.rejectVisible){
this.rejectVisible = false
}
if(this.dialogDetailVisible){
this.dialogDetailVisible = false
}
}else{
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
});
}
}); });
} else { } else if (response.code === rsCode.RS_CODE_SUC) {
return false; this.$notify({
title: "成功",
message: "操作成功",
type: "success",
duration: 2000
});
if (this.dialogDetailVisible) {
this.dialogDetailVisible = false;
}
} }
this.getList();
}); });
}, });
handleReject(row) { },
this.rejectVisible = true; rejectBtn(formName) {
this.rejectFrom.vehicleBookRecordId = row.id; const set = this.$refs;
this.rejectFrom.rejectRemark = ''; set[formName].validate(valid => {
}, if (valid) {
/** reject(this.rejectFrom).then(response => {
* 操作-出车 if (response.code == 1) {
* @param row
*/
handleLift(row) {
this.cleanDepartureForm();
this.departurePicList = [];
if(row.bookType==1){
this.departureForm.use = '租车'
}else if(row.bookType==2){
this.departureForm.use = '用户租赁'
}else if(row.bookType==3){
this.departureForm.use = '维修'
}else if(row.bookType==4){
this.departureForm.use = '展览'
}else if(row.bookType==5){
this.departureForm.use = '旅游'
}else if(row.bookType==6){
this.departureForm.use = '保养'
}else if(row.bookType==7){
this.departureForm.use = '预约中'
}else if(row.bookType==8){
this.departureForm.use = '禁用'
}else if(row.bookType==9){
this.departureForm.use = '客户用车'
}else if(row.bookType==10){
this.departureForm.use = '其他'
}
this.departureForm.bookRecordId=row.id
this.departureForm.vehicleId = row.vehicleId
this.departureForm.numberPlate = row.numberPlate
this.departureForm.departureDate = Date();
this.departureForm.departureBranchCompanyId = row.liftCompany
this.departureForm.departureBranchCompanyName = row.liftCompanyName
this.departureForm.user = row.vehicleUsername
this.departureForm.userTel = row.vehicleUserPhone
// if(row.vehicleDepartureLogVo!=undefined){
// this.departureForm.user = row.vehicleDepartureLogVo.user?row.vehicleDepartureLogVo.user:''
// this.departureForm.userTel = row.vehicleDepartureLogVo.userTel?row.vehicleDepartureLogVo.userTel:''
// }else{
// this.departureForm.user = ''
// this.departureForm.userTel = ''
// }
this.departureForm.expectArrivalBranchCompanyId = row.retCompany
this.departureForm.expectArrivalBranchCompanyName = row.retCompanyName
this.dialogForm4LiftVisible = true;
},
/**
* 操作-收车
* @param row
*/
handleRet(row) {
this.arrivalPicList = [];
this.arrivalForm.bookRecordId = row.id
this.arrivalForm.vehicleId = row.vehicleId
this.arrivalForm.numberPlate = row.numberPlate
this.arrivalForm.arrivalDate = Date();
this.arrivalForm.arrivalBranchCompanyId = row.retCompany
this.arrivalForm.arrivalBranchCompanyName = row.retCompanyName
this.dialogForm4RetVisible = true;
},
ret(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
if(Number(this.arrivalForm.mileage)>999999){
this.$notify({ this.$notify({
title: '警告', title: "成功",
message: '公里数不能大于999999', message: "操作成功",
type: 'warning', type: "success",
duration: 2000 duration: 2000
}); });
return false; this.getList();
} if (this.rejectVisible) {
var arr = []; this.rejectVisible = false;
this.arrivalPicList.map(function(item){
arr.push(item.url);
});
this.arrivalForm.arrivalPic=arr.join(",");
arrivalVehicle(this.arrivalForm).then(response => {
if (response.status == 200) {
this.dialogForm4RetVisible = false;
this.$notify({
title: '成功',
message: '收车成功',
type: 'success',
duration: 2000
});
this.cleanArrivalForm();
this.getList();
} else {
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
});
} }
if (this.dialogDetailVisible) {
this.dialogDetailVisible = false;
}
} else {
this.$notify({
title: "失败",
message: response.message,
type: "error",
duration: 2000
});
}
});
} else {
return false;
}
});
},
handleReject(row) {
this.rejectVisible = true;
this.rejectFrom.vehicleBookRecordId = row.id;
this.rejectFrom.rejectRemark = "";
},
/**
* 操作-出车
* @param row
*/
handleLift(row) {
this.cleanDepartureForm();
this.departurePicList = [];
if (row.bookType == 1) {
this.departureForm.use = "租车";
} else if (row.bookType == 2) {
this.departureForm.use = "用户租赁";
} else if (row.bookType == 3) {
this.departureForm.use = "维修";
} else if (row.bookType == 4) {
this.departureForm.use = "展览";
} else if (row.bookType == 5) {
this.departureForm.use = "旅游";
} else if (row.bookType == 6) {
this.departureForm.use = "保养";
} else if (row.bookType == 7) {
this.departureForm.use = "预约中";
} else if (row.bookType == 8) {
this.departureForm.use = "禁用";
} else if (row.bookType == 9) {
this.departureForm.use = "客户用车";
} else if (row.bookType == 10) {
this.departureForm.use = "其他";
}
this.departureForm.bookRecordId = row.id;
this.departureForm.vehicleId = row.vehicleId;
this.departureForm.numberPlate = row.numberPlate;
this.departureForm.departureDate = Date();
this.departureForm.departureBranchCompanyId = row.liftCompany;
this.departureForm.departureBranchCompanyName = row.liftCompanyName;
this.departureForm.user = row.vehicleUsername;
this.departureForm.userTel = row.vehicleUserPhone;
// if(row.vehicleDepartureLogVo!=undefined){
// this.departureForm.user = row.vehicleDepartureLogVo.user?row.vehicleDepartureLogVo.user:''
// this.departureForm.userTel = row.vehicleDepartureLogVo.userTel?row.vehicleDepartureLogVo.userTel:''
// }else{
// this.departureForm.user = ''
// this.departureForm.userTel = ''
// }
this.departureForm.expectArrivalBranchCompanyId = row.retCompany;
this.departureForm.expectArrivalBranchCompanyName = row.retCompanyName;
this.dialogForm4LiftVisible = true;
},
/**
* 操作-收车
* @param row
*/
handleRet(row) {
this.arrivalPicList = [];
this.arrivalForm.bookRecordId = row.id;
this.arrivalForm.vehicleId = row.vehicleId;
this.arrivalForm.numberPlate = row.numberPlate;
this.arrivalForm.arrivalDate = Date();
this.arrivalForm.arrivalBranchCompanyId = row.retCompany;
this.arrivalForm.arrivalBranchCompanyName = row.retCompanyName;
this.dialogForm4RetVisible = true;
},
ret(formName) {
const set = this.$refs;
set[formName].validate(valid => {
if (valid) {
if (Number(this.arrivalForm.mileage) > 999999) {
this.$notify({
title: "警告",
message: "公里数不能大于999999",
type: "warning",
duration: 2000
}); });
} else {
return false; return false;
} }
}); var arr = [];
}, this.arrivalPicList.map(function(item) {
handleUnbook(row) { arr.push(item.url);
this.$confirm('确定取消预定?', '提示', { });
confirmButtonText: '确定', this.arrivalForm.arrivalPic = arr.join(",");
cancelButtonText: '取消', arrivalVehicle(this.arrivalForm).then(response => {
type: 'warning' if (response.status == 200) {
}).then(() => { this.dialogForm4RetVisible = false;
var obj = { this.$notify({
vehicleBookRecordId:row.id title: "成功",
}; message: "收车成功",
type: "success",
unbook(obj) duration: 2000
.then(response => { });
if(response.code==1){ this.cleanArrivalForm();
this.$notify({ this.getList();
title: '成功', } else {
message: '操作成功', this.$notify({
type: 'success', title: "失败",
duration: 2000 message: response.message,
}); type: "error",
this.getList(); duration: 2000
}else{ });
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
});
}
}).catch(response=>{
console.log(response)
} }
});
} else {
return false;
}
});
},
handleUnbook(row) {
this.$confirm("确定取消预定?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
var obj = {
vehicleBookRecordId: row.id
};
); unbook(obj)
}); .then(response => {
}, if (response.code == 1) {
this.$notify({
title: "成功",
message: "操作成功",
type: "success",
duration: 2000
});
this.getList();
} else {
this.$notify({
title: "失败",
message: response.message,
type: "error",
duration: 2000
});
}
})
.catch(response => {
console.log(response);
});
});
} }
} }
};
</script> </script>
<style scoped> <style scoped>
.order-details .el-form-item{ .order-details .el-form-item {
margin-bottom: 0px !important; margin-bottom: 0px !important;
} }
.order-details hr { .order-details hr {
height: 1px; height: 1px;
background-color: #ccc; background-color: #ccc;
border: none; border: none;
} }
.image { .image {
width: 100%; width: 100%;
height: 110px; height: 110px;
display: block; display: block;
} }
.el-card__body,.el-card{padding: 0px !important;width: 150px;text-align: center;} .el-card__body,
.el-card {
padding: 0px !important;
width: 150px;
text-align: center;
}
</style> </style>
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