Commit e1a80dac authored by youjj's avatar youjj

车辆管理,收车,还车

parent a8f75796
...@@ -32,18 +32,21 @@ module.exports = { ...@@ -32,18 +32,21 @@ module.exports = {
proxyTable: { proxyTable: {
'/jwt': { '/jwt': {
target: 'http://10.5.52.3:8765', target: 'http://10.5.52.3:8765',
// target: 'http://localhost:8765',
pathRewrite: { pathRewrite: {
'^/jwt': '/jwt' '^/jwt': '/jwt'
}, },
}, },
'/api':{ '/api':{
target: 'http://10.5.52.3:8765', target: 'http://10.5.52.3:8765',
// target: 'http://localhost:8765',
pathRewrite: { pathRewrite: {
'^/api': '/api' '^/api': '/api'
}, },
}, },
'/vehicle': { '/vehicle': {
target: 'http://10.5.52.3:8765' target: 'http://10.5.52.3:8765'
// target: 'http://localhost:8765'
}, },
}, },
// CSS Sourcemaps off by default because relative paths are "buggy" // CSS Sourcemaps off by default because relative paths are "buggy"
......
...@@ -3587,6 +3587,7 @@ ...@@ -3587,6 +3587,7 @@
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"inherits": "~2.0.0" "inherits": "~2.0.0"
} }
...@@ -3596,6 +3597,7 @@ ...@@ -3596,6 +3597,7 @@
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"hoek": "2.x.x" "hoek": "2.x.x"
} }
...@@ -3614,7 +3616,8 @@ ...@@ -3614,7 +3616,8 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
"integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=",
"dev": true "dev": true,
"optional": true
}, },
"caseless": { "caseless": {
"version": "0.12.0", "version": "0.12.0",
...@@ -3634,7 +3637,8 @@ ...@@ -3634,7 +3637,8 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"dev": true "dev": true,
"optional": true
}, },
"combined-stream": { "combined-stream": {
"version": "1.0.5", "version": "1.0.5",
...@@ -3656,13 +3660,15 @@ ...@@ -3656,13 +3660,15 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true "dev": true,
"optional": true
}, },
"cryptiles": { "cryptiles": {
"version": "2.0.5", "version": "2.0.5",
...@@ -3745,7 +3751,8 @@ ...@@ -3745,7 +3751,8 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz",
"integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=",
"dev": true "dev": true,
"optional": true
}, },
"forever-agent": { "forever-agent": {
"version": "0.6.1", "version": "0.6.1",
...@@ -3936,6 +3943,7 @@ ...@@ -3936,6 +3943,7 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "1.0.1" "number-is-nan": "1.0.1"
} }
...@@ -3951,7 +3959,8 @@ ...@@ -3951,7 +3959,8 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true "dev": true,
"optional": true
}, },
"isstream": { "isstream": {
"version": "0.1.2", "version": "0.1.2",
...@@ -4192,7 +4201,8 @@ ...@@ -4192,7 +4201,8 @@
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
"dev": true "dev": true,
"optional": true
}, },
"punycode": { "punycode": {
"version": "1.4.1", "version": "1.4.1",
...@@ -4235,6 +4245,7 @@ ...@@ -4235,6 +4245,7 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz",
"integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"buffer-shims": "~1.0.0", "buffer-shims": "~1.0.0",
"core-util-is": "~1.0.0", "core-util-is": "~1.0.0",
...@@ -4289,7 +4300,8 @@ ...@@ -4289,7 +4300,8 @@
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz",
"integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=",
"dev": true "dev": true,
"optional": true
}, },
"semver": { "semver": {
"version": "5.3.0", "version": "5.3.0",
...@@ -4354,6 +4366,7 @@ ...@@ -4354,6 +4366,7 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
...@@ -4365,6 +4378,7 @@ ...@@ -4365,6 +4378,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.1.tgz",
"integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=", "integrity": "sha1-YuIA8DmVWmgQ2N8KM//A8BNmLZg=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.0.1" "safe-buffer": "^5.0.1"
} }
...@@ -4397,6 +4411,7 @@ ...@@ -4397,6 +4411,7 @@
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"block-stream": "*", "block-stream": "*",
"fstream": "^1.0.2", "fstream": "^1.0.2",
...@@ -4458,7 +4473,8 @@ ...@@ -4458,7 +4473,8 @@
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true "dev": true,
"optional": true
}, },
"uuid": { "uuid": {
"version": "3.0.1", "version": "3.0.1",
......
import fetch from 'utils/fetch';
export function departureVehicle(param) {
return fetch({
url: '/vehicle/active/departure',
method: 'post',
data: param
});
}
export function arrivalVehicle(param) {
return fetch({
url: '/vehicle/active/arrival',
method: 'post',
data: param
})
}
...@@ -62,6 +62,10 @@ const baseInfo = { ...@@ -62,6 +62,10 @@ const baseInfo = {
3: { 3: {
code: 3, code: 3,
val: '报废' val: '报废'
},
4: {
code: 4,
val: '出车'
} }
}, },
codeAndBranchCompany: {}, codeAndBranchCompany: {},
......
...@@ -15,6 +15,9 @@ export default { ...@@ -15,6 +15,9 @@ export default {
103001: "车辆预定申请状态已被修改,请刷新后继续操作", 103001: "车辆预定申请状态已被修改,请刷新后继续操作",
102001: "车牌已存在", 102001: "车牌已存在",
102003: "车辆编码已存在", 102003: "车辆编码已存在",
103002: "车辆预定申请状态已变更,请刷新后继续操作" 103002: "车辆预定申请状态已变更,请刷新后继续操作",
104001: "车辆不存在",
104002: "车辆不可用",
104003: "车辆未出车",
} }
} }
...@@ -263,10 +263,14 @@ ...@@ -263,10 +263,14 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="操作" width="250"> <el-table-column align="center" label="操作" width="500">
<template scope="scope"> <template scope="scope">
<el-button v-if="vehicleInfo_btn_edit " size="small" type="success" @click="handleUpdate(scope.row)">编辑 <el-button v-if="vehicleInfo_btn_edit" size="small" type="success" @click="handleUpdate(scope.row)">编辑
</el-button> </el-button>
<el-button v-if="scope.row.status == 1" size="small" type="success" @click="departureHandler(scope.row)">出车</el-button>
<el-button v-if="scope.row.status == 4" size="small" type="success" @click="arrivalHandler(scope.row)">收车</el-button>
<el-button v-if="vehicleInfo_btn_apply && checkIfRuning(scope.row) " size="small" type="success" <el-button v-if="vehicleInfo_btn_apply && checkIfRuning(scope.row) " size="small" type="success"
@click="handleApply(scope.row)">申请预订 @click="handleApply(scope.row)">申请预订
</el-button> </el-button>
...@@ -543,6 +547,58 @@ ...@@ -543,6 +547,58 @@
<book-info-viewer ref="bookInfoViewer"></book-info-viewer> <book-info-viewer ref="bookInfoViewer"></book-info-viewer>
<acc-item-selector v-on:select="accItemSelected" :selectedAccItem="form4Apply.selectedAccItem" <acc-item-selector v-on:select="accItemSelected" :selectedAccItem="form4Apply.selectedAccItem"
v-on:clear="accItemClear" ref="accItemSelector"></acc-item-selector> v-on:clear="accItemClear" ref="accItemSelector"></acc-item-selector>
<!-- 出车信息弹窗 -->
<el-dialog title="出车" :visible.sync="departureDialogVisible">
<el-form :model="departureForm" :rules="rules" ref="form" label-width="90px">
<el-form-item label="车牌号">
<el-input v-model="departureForm.numberPlate" disabled="false"></el-input>
</el-form-item>
<el-form-item label="用途" prop="use">
<el-input v-model="departureForm.use" placeholder="请输入出车用途"></el-input>
</el-form-item>
<el-form-item label="使用人" prop="user">
<el-input v-model="departureForm.user" placeholder="请输入出车使用人"></el-input>
</el-form-item>
<el-form-item label="使用人联系方式" prop="userTel">
<el-input v-model="departureForm.userTel" placeholder="请输入出车使用人联系方式"></el-input>
</el-form-item>
<el-form-item label="验车人" prop="checkMan">
<el-input v-model="departureForm.checkMan" placeholder="请输入出车验车人"></el-input>
</el-form-item>
<el-form-item label="验车人联系方式" prop="checkManTel">
<el-input v-model="departureForm.checkManTel" placeholder="请输入出车验车人联系方式"></el-input>
</el-form-item>
<el-form-item label="公里数" prop="mileage">
<el-input v-model="departureForm.mileage" placeholder="请输入出车时公里数"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelDeparture">取 消</el-button>
<el-button type="primary" @click="departureVehicleHandler">确 定</el-button>
</div>
</el-dialog>
<!-- 收车信息弹窗 -->
<el-dialog title="收车" :visible.sync="arrivalDialogVisible">
<el-form :model="arrivalForm" :rules="rules" ref="form" label-width="90px">
<el-form-item label="车牌号">
<el-input v-model="arrivalForm.numberPlate" disabled="false"></el-input>
</el-form-item>
<el-form-item label="收车人" prop="checkMan">
<el-input v-model="arrivalForm.recycleMan" placeholder="请输入收车人"></el-input>
</el-form-item>
<el-form-item label="收车人联系方式" prop="checkManTel">
<el-input v-model="arrivalForm.recycleManTel" placeholder="请输入收车人联系方式"></el-input>
</el-form-item>
<el-form-item label="公里数" prop="mileage">
<el-input v-model="arrivalForm.mileage" placeholder="请输入收车时公里数"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelArrival">取 消</el-button>
<el-button type="primary" @click="arrivalVehicleHandler">确 定</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -566,6 +622,11 @@ ...@@ -566,6 +622,11 @@
getInsuranceCompany getInsuranceCompany
} from 'api/base_info/constant/'; } from 'api/base_info/constant/';
import {
departureVehicle,
arrivalVehicle
} from 'api/vehicle/active';
import { import {
getSonRegionByCodes, getSonRegionByCodes,
getRegionByCodes, getRegionByCodes,
...@@ -604,11 +665,13 @@ ...@@ -604,11 +665,13 @@
import bookInfoViewer from '../bookInfoViewer'; import bookInfoViewer from '../bookInfoViewer';
import accItemSelector from '../accompanyingItem/accItemSelector.vue'; import accItemSelector from '../accompanyingItem/accItemSelector.vue';
import Element from "../../admin/menu/components/element";
export default { export default {
name: 'vehicleInfo', name: 'vehicleInfo',
components: { components: {
Element,
bookInfoViewer, bookInfoViewer,
accItemSelector accItemSelector
}, },
...@@ -849,7 +912,26 @@ ...@@ -849,7 +912,26 @@
create: '创建', create: '创建',
apply: '预定申请' apply: '预定申请'
}, },
tableKey: 0 tableKey: 0,
departureDialogVisible: false,
departureForm: {
vehicleId: null,
numberPlate: null,
use: null,
user: null,
userTel: null,
checkMan: null,
checkManTel: null,
mileage: null
},
arrivalDialogVisible: false,
arrivalForm: {
vehicleId: null,
numberPlate: null,
recycleMan: null,
recycleManTel: null,
mileage: null
}
} }
}, },
created() { created() {
...@@ -968,6 +1050,89 @@ ...@@ -968,6 +1050,89 @@
} }
}, },
methods: { methods: {
arrivalHandler(row) {
// open dialog
this.arrivalDialogVisible = true;
this.clearArrivalForm();
this.arrivalForm.vehicleId = row.id;
this.arrivalForm.numberPlate = row.numberPlate;
},
cancelArrival() {
this.arrivalDialogVisible = false;
this.clearArrivalForm();
},
arrivalVehicleHandler() {
arrivalVehicle(this.arrivalForm).then(response => {
if (response.code === rsCode.RS_CODE_SUC) {
this.arrivalDialogVisible = false;
this.$notify({
title: '成功',
message: '收车成功',
type: 'success',
duration: 2000
});
} else {
this.$notify({
title: '失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
clearArrivalForm() {
this.arrivalForm = {
vehicleId: null,
numberPlate: null,
recycleMan: null,
recycleManTel: null,
mileage: null
};
},
departureHandler(row) {
// open dialog
this.departureDialogVisible = true;
this.clearDepartureForm();
this.departureForm.vehicleId = row.id;
this.departureForm.numberPlate = row.numberPlate;
},
cancelDeparture() {
this.departureDialogVisible = false;
this.clearDepartureForm();
},
clearDepartureForm() {
this.departureForm = {
vehicleId: null,
numberPlate: null,
use: null,
user: null,
userTel: null,
checkMan: null,
checkManTel: null,
mileage: null
}
},
departureVehicleHandler() {
departureVehicle(this.departureForm).then(response => {
if (response.code === rsCode.RS_CODE_SUC) {
this.departureDialogVisible = false;
this.$notify({
title: '成功',
message: '出车成功',
type: 'success',
duration: 2000
});
} else {
this.$notify({
title: '失败',
message: rsCode.msg[response.code] ? rsCode.msg[response.code] : '操作失败!',
type: 'error',
duration: 2000
});
}
});
},
getAllBelong2Type: function () { getAllBelong2Type: function () {
return this.belong2Type; return this.belong2Type;
}, },
......
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