Commit f052b6e5 authored by 164003836@qq.con's avatar 164003836@qq.con

车辆信息管理:增加字段

parent f1754c72
import store from '../../../store'; import store from '../../../store';
import rsCode from '../../../utils/rsCode'; import rsCode from '../../../utils/rsCode';
import {
VEHICLE_CONSTANT_VEHICLE_BRAND,
VEHICLE_CONSTANT_VEHICLE_USE,
VEHICLE_CONSTANT_BRAND_CODE_UNKOWN,
INSURANCE_COMPANY,
VEHICLE_CONSTANT_INSURANCE_COMPANY_UNKOWN,
VEHICLE_CONSTANT_USE_TYPE_UNKOWN,
VEHICLE_CONSTANT_STATUS_NORMAL
} from '../../../store/modules/baseInfo';
function loadFromServer(type) { function loadFromServer(type) {
...@@ -70,7 +79,7 @@ export function getConstantListByType(type) { ...@@ -70,7 +79,7 @@ export function getConstantListByType(type) {
return null; return null;
} }
let constantMap = store.getters.vehicleConstants(type); let constantMap = store.getters.vehicleConstants(type);
if (JSON.stringify(constantMap) === '{}') { if (constantMap == null || typeof (constantMap) == "undefined") {
let constants = loadFromServer(type); let constants = loadFromServer(type);
if (!constants || constants.length === 0) { if (!constants || constants.length === 0) {
return null; return null;
...@@ -87,3 +96,15 @@ export function getConstantListByType(type) { ...@@ -87,3 +96,15 @@ export function getConstantListByType(type) {
} }
return constantMap; return constantMap;
} }
export function getInsuranceCompany(code) {
if (code == null || typeof (code) == "undefined" || code === VEHICLE_CONSTANT_INSURANCE_COMPANY_UNKOWN) {
return '未知';
}
return getConstantByTypeAndCode(INSURANCE_COMPANY, code).val;
}
export function getAllInsuranceCompany() {
return getConstantListByType(INSURANCE_COMPANY);
}
// 以下为车辆相关常量类型的编码 // 以下为车辆相关常量类型的编码
export const VEHICLE_CONSTANT_VEHICLE_BRAND = 1; // "车辆品牌" export const VEHICLE_CONSTANT_VEHICLE_BRAND = 1; // "车辆品牌"
export const VEHICLE_CONSTANT_VEHICLE_USE = 2; // "车辆用途" export const VEHICLE_CONSTANT_VEHICLE_USE = 2; // "车辆用途"
export const INSURANCE_COMPANY = 3; // "保险公司"
export const VEHICLE_CONSTANT_BRAND_CODE_UNKOWN = 0; // 车辆品牌-未知 export const VEHICLE_CONSTANT_BRAND_CODE_UNKOWN = 0; // 车辆品牌-未知
export const VEHICLE_CONSTANT_USE_TYPE_UNKOWN = 0; // "车辆用途" - 未知 export const VEHICLE_CONSTANT_USE_TYPE_UNKOWN = 0; // "车辆用途" - 未知
export const VEHICLE_CONSTANT_INSURANCE_COMPANY_UNKOWN = 0; // "车辆用途" - 未知
export const VEHICLE_CONSTANT_STATUS_DISCARD = 3; // 车辆状态 - 废弃 export const VEHICLE_CONSTANT_STATUS_DISCARD = 3; // 车辆状态 - 废弃
export const VEHICLE_CONSTANT_STATUS_NORMAL = 1; // 车辆状态 - 废弃 export const VEHICLE_CONSTANT_STATUS_NORMAL = 1; // 车辆状态 - 废弃
......
...@@ -24,3 +24,14 @@ export function newEast8Date() { ...@@ -24,3 +24,14 @@ export function newEast8Date() {
export function deepCopyDate(date) { export function deepCopyDate(date) {
return toEast8Date(formatDate(date, 'yyyy-MM-dd')); return toEast8Date(formatDate(date, 'yyyy-MM-dd'));
} }
export function convertDate2Str(object) {
let ownPropertyNames = Object.getOwnPropertyNames(object);
for (let index in ownPropertyNames) {
let key = ownPropertyNames[index];
if ('[object Date]' === Object.prototype.toString.call(object[key])) {
object[key] = formatDate(object[key], 'yyyy-MM-dd hh:mm:ss');
}
}
}
...@@ -3,12 +3,16 @@ export default { ...@@ -3,12 +3,16 @@ export default {
code: { code: {
INVALID_REST_REQ_PARAM: 100000, //rest请求参数非法 INVALID_REST_REQ_PARAM: 100000, //rest请求参数非法
VEHICLE_BOOKED_INFO_ALREADY_CHANGED: 101001, //车辆预定信息已被修改,请刷新后继续操作 VEHICLE_BOOKED_INFO_ALREADY_CHANGED: 101001, //车辆预定信息已被修改,请刷新后继续操作
VEHICLE_INFO_NUMBER_PLATE_EXIST: 102001, //车牌已存在
VEHICLE_INFO_CODE_EXIST: 102003, //车辆编码已存在
VEHICLE_BOOKED_RECORD_ALREADY_CHANGED: 103001, //车辆预定申请状态已被修改,请刷新后继续操作 VEHICLE_BOOKED_RECORD_ALREADY_CHANGED: 103001, //车辆预定申请状态已被修改,请刷新后继续操作
}, },
msg: { msg: {
1: '成功', 1: '成功',
100000: "rest请求参数非法", 100000: "rest请求参数非法",
101001: "车辆预定信息已被修改,请刷新后继续操作", 101001: "车辆预定信息已被修改,请刷新后继续操作",
103001: "车辆预定申请状态已被修改,请刷新后继续操作" 103001: "车辆预定申请状态已被修改,请刷新后继续操作",
102001: "车牌已存在",
102003: "车辆编码已存在"
} }
} }
<template> <template>
<div class="app-container calendar-list-container"> <div class="app-container calendar-list-container">
<div class="filter-container" ref="filter-container"> <div class="filter-container" ref="filter-container">
<el-form :rules="rules4Query" ref="queryForm" :inline="inline" :model="listQuery"> <el-form :rules="rules4Query" ref="queryForm" :inline="inline" :model="listQuery" label-width="100px">
<el-form-item label="分公司" prop="subordinateBranch"> <el-row>
<el-select class="filter-item" v-model="listQuery.subordinateBranch" placeholder="请选择分公司"> <el-col :span="8">
<el-option :key="undefined" label="无" :value="undefined"></el-option> <el-form-item label="车牌">
<el-option v-for="item in allCompanies" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-input v-model="listQuery.numberPlate" placeholder="请输入车牌"></el-input>
</el-select> </el-form-item>
</el-form-item> </el-col>
<el-col :span="8">
<el-form-item label="车辆编码">
<el-input v-model.number="listQuery.code" placeholder="请输入车辆编码"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="车辆状态">
<el-select class="filter-item" v-model="listQuery.status" placeholder="请选择车辆状态">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in getAllVehicleStatus() " :key="val.code" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-form-item label=""> </el-row>
<el-input v-model="listQuery.numberPlate" placeholder="请输入车牌"></el-input>
</el-form-item>
<el-row>
<el-col :span="8">
<el-form-item label="未预订日期" prop="notBookDateRange">
<el-date-picker
v-model="notBookDateRange"
type="daterange"
:editable="true"
format="yyyy-MM-dd"
placeholder="请输入未预订日期范围">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="预订日期" prop="bookDateRange">
<el-date-picker
v-model="bookDateRange"
type="daterange"
:editable="true"
format="yyyy-MM-dd"
placeholder="请输入已预订日期范围">
</el-date-picker>
</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-col>
</el-row>
<el-form-item label="">
<el-input v-model="listQuery.code" placeholder="请输入车辆编码"></el-input>
</el-form-item>
<el-form-item label="车辆状态"> <transition name="fade">
<el-select class="filter-item" v-model="listQuery.status" placeholder="请选择车辆状态"> <div v-if="showMoreQueryFilter">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in getAllVehicleStatus() " :key="val.code" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
<el-form-item label="未预订日期范围" prop="notBookDateRange">
<el-date-picker
v-model="notBookDateRange"
type="daterange"
:editable="true"
format="yyyy-MM-dd"
placeholder="请输入未预订日期范围">
</el-date-picker>
</el-form-item>
<el-form-item label="预订日期范围" prop="bookDateRange"> <!-- <el-form-item label="里程数" prop="mileageRangeStart">-->
<el-date-picker <!-- <el-input v-model.number="listQuery.mileageRangeStart" placeholder="里程数范围上限"></el-input>-->
v-model="bookDateRange" <!-- </el-form-item>-->
type="daterange"
:editable="true" <!-- <el-form-item label="" prop="mileageRangeEnd">-->
format="yyyy-MM-dd" <!-- <el-input v-model.number="listQuery.mileageRangeEnd" placeholder="里程数范围下限"></el-input>-->
placeholder="请输入已预订日期范围"> <!-- </el-form-item>-->
</el-date-picker>
</el-form-item>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button> <el-row>
<el-button class="filter-item" v-if="vehicleInfo_btn_add" style="margin-left: 10px;" @click="handleCreate" <el-col :span="8">
type="primary" icon="edit">添加 <el-form-item label="车架号" prop="vin">
</el-button> <el-input v-model="listQuery.vin" placeholder="请输入车架号"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="保险公司" prop="insuranceCompany">
<el-select class="filter-item" v-model="listQuery.insuranceCompany" placeholder="请选择保险公司">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in getAllInsuranceCompany() " :key="val.code" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="保险结束日期" prop="insuranceDateRange">
<el-date-picker
v-model="listQuery.insuranceDateRange"
type="daterange"
:editable="true"
format="yyyy-MM-dd"
placeholder="请输入保险结束日期范围">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="年审日期" prop="aVRange">
<el-date-picker
v-model="listQuery.aVRange"
type="daterange"
:editable="true"
format="yyyy-MM-dd"
placeholder="请输入年审日期范围">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="保养日期" prop="mRange">
<el-date-picker
v-model="listQuery.mRange"
type="daterange"
:editable="true"
format="yyyy-MM-dd"
placeholder="请输入保养日期范围">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否违章" prop="haveViolation">
<el-select class="filter-item" v-model="listQuery.haveViolation" placeholder="请选择是否违章">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option key="1" label="是" value="1"></el-option>
<el-option key="0" label="否" value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</transition>
</el-form> </el-form>
<el-button class="filter-item" type="primary" v-waves icon="search" @click="handleFilter">搜索</el-button>
<el-button class="filter-item" v-if="vehicleInfo_btn_add" style="margin-left: 10px;" @click="handleCreate"
type="primary" icon="edit">添加
</el-button>
<el-button class="filter-item" type="primary" :icon=" showMoreMoreCol ? 'caret-left' : 'caret-right' " v-waves
@click="showMoreMoreCol=!showMoreMoreCol">
更多列
</el-button>
</div> </div>
<el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row <el-table :key='tableKey' :data="list" v-loading.body="listLoading" border fit highlight-current-row
style="width: 100%"> style="width: 100%">
<el-table-column align="center" label="编号" width="65"> <el-table-column align="center" label="编号" width="65">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.code}}</span> <span>{{scope.row.code}}</span>
...@@ -97,7 +188,68 @@ ...@@ -97,7 +188,68 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="180" align="center" label="最后更新时间">
<el-table-column width="200" align="center" v-if="showMoreMoreCol" label="车架号">
<template scope="scope">
<span>{{scope.row.vin}}</span>
</template>
</el-table-column>
<el-table-column width="65" align="center" v-if="showMoreMoreCol" label="里程数">
<template scope="scope">
<span>{{scope.row.mileage}}</span>
</template>
</el-table-column>
<el-table-column width="65" align="center" v-if="showMoreMoreCol" label="保险公司">
<template scope="scope">
<span>{{getInsuranceCompany(scope.row.insuranceCompany)}}</span>
</template>
</el-table-column>
<el-table-column width="150" align="center" v-if="showMoreMoreCol" label="保险单号">
<template scope="scope">
<span>{{scope.row.insuranceNo}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" v-if="showMoreMoreCol" label="保险开始时间">
<template scope="scope">
<span>{{scope.row.insuranceStartDate}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" v-if="showMoreMoreCol" label="保险结束时间">
<template scope="scope">
<span>{{scope.row.insuranceEndDate}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" v-if="showMoreMoreCol" label="年审时间">
<template scope="scope">
<span>{{scope.row.annualVerificationDate}}</span>
</template>
</el-table-column>
<el-table-column width="100" align="center" v-if="showMoreMoreCol" label="保养时间">
<template scope="scope">
<span>{{scope.row.maintenanceDate}}</span>
</template>
</el-table-column>
<el-table-column width="65" align="center" v-if="showMoreMoreCol" label="保养里程数">
<template scope="scope">
<span>{{scope.row.maintenanceMileage}}</span>
</template>
</el-table-column>
<el-table-column width="65" align="center" v-if="showMoreMoreCol" label="是否违章">
<template scope="scope">
<span>{{scope.row.haveViolation?'是':'否'}}</span>
</template>
</el-table-column>
<el-table-column width="180" align="center" v-if="showMoreMoreCol" label="最后更新时间">
<template scope="scope"> <template scope="scope">
<span>{{scope.row.updateTime?scope.row.updateTime:scope.row.createTime}}</span> <span>{{scope.row.updateTime?scope.row.updateTime:scope.row.createTime}}</span>
</template> </template>
...@@ -113,6 +265,7 @@ ...@@ -113,6 +265,7 @@
<el-button size="small" type="success" @click="handleBookInfo(scope.row)">预订信息</el-button> <el-button size="small" type="success" @click="handleBookInfo(scope.row)">预订信息</el-button>
</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">
...@@ -125,45 +278,164 @@ ...@@ -125,45 +278,164 @@
<!-- 对话框相关html元素 --> <!-- 对话框相关html元素 -->
<el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible"> <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible">
<el-form :model="form" :rules="rules" ref="form" label-width="100px"> <el-form :model="form" :rules="rules" ref="form" label-width="90px">
<el-form-item label="车牌" prop="numberPlate"> <el-row>
<el-input v-model="form.numberPlate" placeholder="输入车牌"></el-input> <el-col :span="12">
</el-form-item> <el-form-item label="车辆编码" prop="code">
<el-input v-model.number="form.code" placeholder="不填将自动生成"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="车牌" prop="numberPlate">
<el-input v-model="form.numberPlate" placeholder="输入车牌"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="车辆状态" prop="status"> <el-row>
<el-select class="filter-item" v-model="form.status" placeholder="请选择车辆状态"> <el-col :span="12">
<el-option v-for="(val, key, index) in getAllVehicleStatus() " :key="val.code" :label="val.val" <el-form-item label="车辆状态" prop="status">
:value="val.code"></el-option> <el-select class="filter-item" v-model="form.status" placeholder="请选择车辆状态">
</el-select> <el-option v-for="(val, key, index) in getAllVehicleStatus() " :key="val.code" :label="val.val"
</el-form-item> :value="val.code"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-form-item label="车辆品牌" prop="brand"> <el-col :span="12">
<el-select class="filter-item" v-model="form.brand" placeholder="请选择车辆品牌"> <el-form-item label="车辆品牌" prop="brand">
<el-option :key="getUnkownBrandCode" label="未知" :value="getUnkownBrandCode"></el-option> <el-select class="filter-item" v-model="form.brand" placeholder="请选择车辆品牌">
<el-option v-for="item in getAllBranch() " :key="item.code" :label="item.val" <el-option :key="getUnkownBrandCode" label="未知" :value="getUnkownBrandCode"></el-option>
:value="item.code"></el-option> <el-option v-for="item in getAllBranch() " :key="item.code" :label="item.val"
</el-select> :value="item.code"></el-option>
</el-form-item> </el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="分公司" prop="subordinateBranch"> <el-row>
<el-select class="filter-item" v-model="form.subordinateBranch" placeholder="请选择分公司"> <el-col :span="12">
<el-option :key="undefined" label="无" :value="undefined"></el-option> <el-form-item label="分公司" prop="subordinateBranch">
<el-option v-for="item in allCompanies" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-select class="filter-item" v-model="form.subordinateBranch" placeholder="请选择分公司">
</el-select> <el-option :key="undefined" label="无" :value="undefined"></el-option>
</el-form-item> <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-col :span="12">
<el-form-item label="用途" prop="useType">
<el-select class="filter-item" v-model="form.useType" placeholder="请选择用途">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="item in getAllUseType() " :key="item.code" :label="item.val"
:value="item.code"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="用途" prop="useType"> <el-row>
<el-select class="filter-item" v-model="form.useType" placeholder="请选择用途"> <el-col :span="12">
<el-option :key="undefined" label="无" :value="undefined"></el-option> <el-form-item label="车架号" prop="vin">
<el-option v-for="item in getAllUseType() " :key="item.code" :label="item.val" <el-input v-model="form.vin" placeholder="请输入车架号"></el-input>
:value="item.code"></el-option> </el-form-item>
</el-select> </el-col>
</el-form-item> <el-col :span="12">
<el-form-item label="里程数" prop="mileage">
<el-input v-model.number="form.mileage" placeholder="请输入里程数"></el-input>
</el-form-item>
</el-col>
<el-form-item label="备注" prop="remark"> </el-row>
<el-input v-model="form.remark" placeholder="请输入备注信息"></el-input>
</el-form-item> <el-row>
<el-col :span="12">
<el-form-item label="保险公司" prop="insuranceCompany">
<el-select class="filter-item" v-model="form.insuranceCompany" placeholder="请选择保险公司">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option v-for="(val, key, index) in getAllInsuranceCompany() " :key="val.code" :label="val.val"
:value="val.code"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="保险单号" prop="insuranceNo">
<el-input v-model="form.insuranceNo" placeholder="请输入保险单号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否违章" prop="haveViolation">
<el-select class="filter-item" v-model.number="form.haveViolation" placeholder="请选择是否违章">
<el-option :key="undefined" label="无" :value="undefined"></el-option>
<el-option key="1" label="是" :value="1"></el-option>
<el-option key="0" label="否" :value="0"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年审时间" prop="annualVerificationDate">
<el-date-picker
v-model="form.annualVerificationDate"
type="date"
:editable="true"
format="yyyy-MM-dd"
placeholder="请选择年审时间"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="保养时间" prop="annualVerificationDate">
<el-date-picker
v-model="form.maintenanceDate"
type="date"
:editable="true"
format="yyyy-MM-dd"
placeholder="请选择保养日期"
></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="保养里程数" prop="maintenanceMileage">
<el-input v-model.number="form.maintenanceMileage" placeholder="请输入保养里程数"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="保险日期" prop="insuranceDateRange4form">
<el-date-picker
v-model="form.insuranceDateRange4form"
type="daterange"
:editable="true"
format="yyyy-MM-dd"
placeholder="请输入保险日期范围"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input type="textarea" :rows="5" v-model="form.remark" placeholder="请输入备注信息"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -226,7 +498,9 @@ ...@@ -226,7 +498,9 @@
import { import {
getConstantByTypeAndCode, getConstantByTypeAndCode,
getConstantListByType getConstantListByType,
getAllInsuranceCompany,
getInsuranceCompany
} from 'api/base_info/constant/'; } from 'api/base_info/constant/';
import { import {
...@@ -238,6 +512,7 @@ ...@@ -238,6 +512,7 @@
VEHICLE_CONSTANT_VEHICLE_BRAND, VEHICLE_CONSTANT_VEHICLE_BRAND,
VEHICLE_CONSTANT_VEHICLE_USE, VEHICLE_CONSTANT_VEHICLE_USE,
VEHICLE_CONSTANT_BRAND_CODE_UNKOWN, VEHICLE_CONSTANT_BRAND_CODE_UNKOWN,
INSURANCE_COMPANY,
VEHICLE_CONSTANT_USE_TYPE_UNKOWN, VEHICLE_CONSTANT_USE_TYPE_UNKOWN,
VEHICLE_CONSTANT_STATUS_NORMAL VEHICLE_CONSTANT_STATUS_NORMAL
} from '../../../store/modules/baseInfo'; } from '../../../store/modules/baseInfo';
...@@ -253,7 +528,8 @@ ...@@ -253,7 +528,8 @@
import { import {
toEast8Date, toEast8Date,
deepCopyDate, deepCopyDate,
newEast8Date newEast8Date,
convertDate2Str
} from 'utils/dateUtils'; } from 'utils/dateUtils';
import rsCode from '../../../utils/rsCode'; import rsCode from '../../../utils/rsCode';
...@@ -272,13 +548,58 @@ ...@@ -272,13 +548,58 @@
return { return {
form: { form: {
status: undefined, status: undefined,
code: undefined,
numberPlate: undefined, numberPlate: undefined,
brand: undefined, brand: undefined,
subordinateBranch: undefined, subordinateBranch: undefined,
useType: undefined, useType: undefined,
vin: undefined,
insuranceNo: undefined,
insuranceCompany: undefined,
insuranceDateRange4form: undefined,
annualVerificationDate: undefined,
maintenanceDate: undefined,
maintenanceMileage: undefined,
haveViolation: undefined,
mileage: undefined,
remark: undefined remark: undefined
}, },
rules: { rules: {
subordinateBranch: [
{
type: 'integer',
required: true,
message: '请选择公司',
trigger: 'blur'
}
],
maintenanceMileage: [this.integerValidator()],
mileage: [this.integerValidator()],
code: [
{
validator: (rule, value, callback) => {
if (this.$utils.isUndefined(value) || this.$utils.isNull()) {
return callback();
}
if (!this.$utils.isInteger(value)) {
return callback(new Error('编码必须为整数'));
}
if (value < 1 || value > 9999999999) {
return callback(new Error('编码合法范围:[1 - 9999999999]'));
}
callback();
},
trigger: 'blur'
}
],
vin: [
{
min: 0,
max: 200,
message: '长度小于 200 个字符',
trigger: 'blur'
}
],
numberPlate: [ numberPlate: [
{ {
min: 0, min: 0,
...@@ -308,6 +629,14 @@ ...@@ -308,6 +629,14 @@
disabledDate: this.checkBookDate disabledDate: this.checkBookDate
}, },
rules4Query: { rules4Query: {
vin: [
{
min: 0,
max: 200,
message: '长度小于 200 个字符',
trigger: 'blur'
}
],
subordinateBranch: [ subordinateBranch: [
{ {
validator: (rule, value, callback) => { validator: (rule, value, callback) => {
...@@ -414,6 +743,14 @@ ...@@ -414,6 +743,14 @@
listQuery: { listQuery: {
page: 1, page: 1,
limit: 20, limit: 20,
vin: undefined,
haveViolation: undefined,
insuranceCompany: undefined,
mileageRangeStart: undefined,
mileageRangeEnd: undefined,
insuranceDateRange: undefined,
mRange: undefined,
aVRange: undefined,
subordinateBranch: undefined, subordinateBranch: undefined,
numberPlate: undefined, numberPlate: undefined,
status: undefined, status: undefined,
...@@ -423,6 +760,8 @@ ...@@ -423,6 +760,8 @@
notBookedEndDate: undefined, notBookedEndDate: undefined,
code: undefined code: undefined
}, },
showMoreQueryFilter: false,
showMoreMoreCol: false,
inline: true, inline: true,
dialogFormVisible: false, dialogFormVisible: false,
dialogForm4ApplyVisible: false, dialogForm4ApplyVisible: false,
...@@ -543,6 +882,52 @@ ...@@ -543,6 +882,52 @@
} }
}, },
methods: { methods: {
getAllInsuranceCompany,
getInsuranceCompany,
integerValidator: function () {
return {
validator: (rule, value, callback) => {
if (this.$utils.isUndefined(value) || this.$utils.isNull()) {
return callback();
}
if (!this.$utils.isInteger(value)) {
return callback(new Error('必须为整数'));
}
if (value < 1 || value > 9999999999) {
return callback(new Error('编码合法范围:[1 - 9999999999]'));
}
callback();
},
trigger: 'blur'
};
},
fillDateRange2Object: function (realBelong, rangePropName, startDatePropName, endDatePropName) {
if (this.$utils.isEmpty(realBelong) || !this.$utils.isArray(realBelong[rangePropName])) {
return realBelong;
}
let belong = this.$utils.clone(realBelong, true);
let [startDate, endDate] = belong[rangePropName];
if (this.$utils.isDate(startDate)) {
belong[startDatePropName] = formatDate(startDate, 'yyyy-MM-dd hh:mm:ss');
} else {
belong[startDatePropName] = undefined;
}
if (this.$utils.isDate(endDate)) {
belong[endDatePropName] = formatDate(endDate, 'yyyy-MM-dd hh:mm:ss');
} else {
belong[endDatePropName] = undefined;
}
belong[rangePropName] = undefined;
return belong;
},
fillDates2Range: function (belong, rangePropName, startDatePropName, endDatePropName) {
if (this.$utils.isEmpty(belong) || !this.$utils.isString(belong[startDatePropName]) || belong[startDatePropName] === '' ||
!this.$utils.isString(belong[endDatePropName]) || belong[endDatePropName] === '') {
return;
}
let [startDateStr, endDateStr] = [belong[startDatePropName], belong[endDatePropName]];
belong[rangePropName] = [toEast8Date(startDateStr), toEast8Date(endDateStr)];
},
changeDate4BookInfo: function (date) { changeDate4BookInfo: function (date) {
getBookedInfo(this.form4BookInfo.vehicle, date).then(response => { getBookedInfo(this.form4BookInfo.vehicle, date).then(response => {
this.curBookedInfo = response.data; this.curBookedInfo = response.data;
...@@ -591,7 +976,10 @@ ...@@ -591,7 +976,10 @@
}, },
getList() { getList() {
this.listLoading = true; this.listLoading = true;
page(this.listQuery).then(response => { let listQueryTemp = this.fillDateRange2Object(this.listQuery, 'mRange', 'mRangeDateStart', 'mRangeDateEnd');
listQueryTemp = this.fillDateRange2Object(listQueryTemp, 'aVRange', 'aVRangeDateStart', 'aVRangeDateEnd');
listQueryTemp = this.fillDateRange2Object(listQueryTemp, 'insuranceDateRange', 'insuranceDateRangeStart', 'insuranceDateRangeEnd');
page(listQueryTemp).then(response => {
let totalCountRs = undefined; let totalCountRs = undefined;
let listRs = undefined; let listRs = undefined;
if (!this.$utils.isEmpty(response.data.data) && this.$utils.isInteger(response.data.totalCount)) { if (!this.$utils.isEmpty(response.data.data) && this.$utils.isInteger(response.data.totalCount)) {
...@@ -633,6 +1021,7 @@ ...@@ -633,6 +1021,7 @@
getObj(row.id) getObj(row.id)
.then(response => { .then(response => {
this.form = response.data; this.form = response.data;
this.fillDates2Range(this.form, 'insuranceDateRange4form', 'insuranceStartDate', 'insuranceEndDate');
this.dialogFormVisible = true; this.dialogFormVisible = true;
this.dialogStatus = 'update'; this.dialogStatus = 'update';
}); });
...@@ -654,17 +1043,28 @@ ...@@ -654,17 +1043,28 @@
const set = this.$refs; const set = this.$refs;
set[formName].validate(valid => { set[formName].validate(valid => {
if (valid) { if (valid) {
addObj(this.form) let formTemp = this.fillDateRange2Object(this.form, 'insuranceDateRange4form', 'insuranceStartDate', 'insuranceEndDate');
.then(() => { convertDate2Str(formTemp);
this.dialogFormVisible = false; addObj(formTemp)
this.getList(); .then(response => {
this.$notify({ if (response.code === rsCode.RS_CODE_SUC) {
title: '成功', this.dialogFormVisible = false;
message: '创建成功', this.getList();
type: 'success', this.$notify({
duration: 2000 title: '成功',
}); message: '创建成功',
}) type: 'success',
duration: 2000
});
} else {
this.$notify({
title: '失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
});
} else { } else {
return false; return false;
} }
...@@ -683,16 +1083,26 @@ ...@@ -683,16 +1083,26 @@
const set = this.$refs; const set = this.$refs;
set[formName].validate(valid => { set[formName].validate(valid => {
if (valid) { if (valid) {
this.dialogFormVisible = false; let formTemp = this.fillDateRange2Object(this.form, 'insuranceDateRange4form', 'insuranceStartDate', 'insuranceEndDate');
putObj(this.form).then(() => { convertDate2Str(formTemp);
this.dialogFormVisible = false; putObj(formTemp).then(response => {
this.getList(); if (response.code === rsCode.RS_CODE_SUC) {
this.$notify({ this.dialogFormVisible = false;
title: '成功', this.getList();
message: '创建成功', this.$notify({
type: 'success', title: '成功',
duration: 2000 message: '更新成功',
}); type: 'success',
duration: 2000
});
} else {
this.$notify({
title: '失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
}); });
} else { } else {
return false; return false;
...@@ -722,10 +1132,20 @@ ...@@ -722,10 +1132,20 @@
resetTemp() { resetTemp() {
this.form = { this.form = {
status: undefined, status: undefined,
code: undefined,
numberPlate: undefined, numberPlate: undefined,
brand: undefined, brand: undefined,
subordinateBranch: undefined, subordinateBranch: undefined,
useType: undefined, useType: undefined,
vin: undefined,
insuranceNo: undefined,
insuranceCompany: undefined,
insuranceDateRange4form: undefined,
annualVerificationDate: undefined,
maintenanceDate: undefined,
maintenanceMileage: undefined,
haveViolation: undefined,
mileage: undefined,
remark: 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