Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform-ui
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform-ui
Commits
16ec0546
Commit
16ec0546
authored
Aug 28, 2020
by
lixy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
车辆价格管理、车辆信息管理
parent
8560d93a
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1665 additions
and
2184 deletions
+1665
-2184
App.vue
src/App.vue
+7
-1
index.js
src/api/vehicle/vehicleInfo/index.js
+92
-1
index.js
src/router/index.js
+6
-0
festivalModal.vue
src/views/vehicle/festivalModal.vue
+198
-0
festivalPriceSetting.vue
src/views/vehicle/festivalPriceSetting.vue
+174
-0
generalPriceSetting.vue
src/views/vehicle/generalPriceSetting.vue
+181
-0
index.vue
src/views/vehicle/vehicleInfo/index.vue
+154
-2133
oneVehicle.vue
src/views/vehicle/vehicleInfo/oneVehicle.vue
+544
-49
vehiclePrice.vue
src/views/vehicle/vehiclePrice.vue
+309
-0
No files found.
src/App.vue
View file @
16ec0546
...
...
@@ -37,7 +37,7 @@
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:ellipsis
;
word-wrap
:break-word
;
word-break
:break-all
;
}
.ellipsis2
{
// width: 200px;
// width: 200px;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-
webkit-box
;
...
...
@@ -57,6 +57,12 @@
align-items
:
center
;
}
.flex-aic-jce
{
display
:
flex
;
justify-content
:
flex-end
;
align-items
:
center
;
}
.flex-jcc-aic-cl
{
display
:
flex
;
align-items
:
center
;
...
...
src/api/vehicle/vehicleInfo/index.js
View file @
16ec0546
...
...
@@ -15,7 +15,9 @@ export function getObj(id) {
});
}
/**
* 添加车辆
*/
export
function
addObj
(
obj
)
{
return
fetch
({
url
:
'/vehicle/vehicleInfo'
,
...
...
@@ -162,3 +164,92 @@ export function vehicleCompanyAll(query) {
params
:
query
});
}
/**
* 获取车辆价格列表--分页
*/
export
function
vehicleCommonPriceInfo
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleCommonPriceInfo/getAll'
,
method
:
'get'
,
params
:
query
});
}
/**
* 获取车辆价格详情
*/
export
function
vehicleCommonPriceOne
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleCommonPriceInfo/getOne'
,
method
:
'get'
,
params
:
query
});
}
/**
* 保存--通用价格
*/
export
function
vehicleCommonPriceUpdate
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleCommonPriceInfo/admin/addOrUpdate'
,
method
:
'post'
,
data
:
query
});
}
/**
* 获取节假日列表、节假日编辑
*/
export
function
getAllFestivalPrice
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleHolidayPriceInfo/getAll'
,
method
:
'get'
,
params
:
query
});
}
/**
* 获取节假日详情
*/
export
function
getOneFestivalPrice
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleHolidayPriceInfo/getOne'
,
method
:
'get'
,
params
:
query
});
}
/**
* 添加、编辑节假日
*/
export
function
saveOrUpdateFestivalPrice
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleHolidayPriceInfo/saveOrUpdate'
,
method
:
'post'
,
data
:
query
});
}
/**
* 生产商
*/
export
function
allManufacturer
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleInfo/getAllManufacturer'
,
method
:
'get'
,
params
:
query
});
}
/**
* 删除节假日
*/
export
function
deleteFestival
(
query
)
{
return
fetch
({
url
:
'vehicle/vehicleHolidayPriceInfo/deleteByVehicleId'
,
method
:
'delete'
,
params
:
query
});
}
src/router/index.js
View file @
16ec0546
...
...
@@ -366,6 +366,12 @@ export const asyncRouterMap = [{
name
:
'车辆信息管理'
,
authority
:
'vehicleInfo'
},
{
path
:
'vehiclePrice'
,
component
:
_import
(
'vehicle/vehiclePrice'
),
name
:
'车辆价格管理'
,
authority
:
'vehiclePrice'
},
{
path
:
'bookRecord'
,
component
:
_import
(
'vehicle/bookRecord/index'
),
...
...
src/views/vehicle/festivalModal.vue
0 → 100644
View file @
16ec0546
<
template
>
<el-dialog
title=
"节假日"
:visible
.
sync=
"oneDialogVisible"
@
close=
"closePop"
:modal=
"false"
width=
"30%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"140px"
>
<el-form-item
label=
"节日名称"
prop=
"festivalDay"
>
<el-input
v-model=
"form.festivalDay"
placeholder=
"请输入节日名称"
></el-input>
</el-form-item>
<el-form-item
label=
"开始时间"
prop=
"startTime"
>
<el-date-picker
v-model=
"form.startTime"
type =
"date"
placeholder =
"开始时间"
value-format=
"yyyy-MM-dd"
format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"结束时间"
prop=
"endTime"
>
<el-date-picker
v-model=
"form.endTime"
type =
"date"
placeholder =
"结束时间"
value-format=
"yyyy-MM-dd"
format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"租赁价格"
prop=
"rentPrice"
>
<el-input
type=
"number"
v-model=
"form.rentPrice"
placeholder=
"请输入租赁价格"
></el-input>
</el-form-item>
<el-form-item
label=
"免费天数"
prop=
"rentFreeDay"
>
<el-input
type=
"number"
v-model=
"form.rentFreeDay"
placeholder=
"请输入免费天数"
></el-input>
</el-form-item>
<el-form-item
label=
"应用对象"
prop=
"applicationObj"
>
<el-select
style=
"width: 100%;"
class=
"filter-item"
v-model=
"form.applicationObj"
placeholder=
"请选择应用对象"
>
<el-option
key=
"1"
label=
"应用于当前车辆"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"应用于同车型车辆"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"应用于所有车辆"
:value=
"3"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"flex-aic-jcc"
style=
"margin-top: 10px;"
>
<el-button
plain
@
click=
"closePop"
>
取消
</el-button>
<el-button
type=
"primary"
v-if=
"!isClick"
class=
"handle-ok"
@
click=
"handleOk('form')"
>
确定
</el-button>
<el-button
type=
"primary"
v-if=
"isClick"
class=
"handle-ok"
style=
"opacity: 0.4;"
:disabled=
"true"
>
确定
</el-button>
</div>
</el-dialog>
</
template
>
<
script
type=
"javascript"
>
import
{
mapGetters
}
from
'vuex'
;
import
ElFormItem
from
'../../../node_modules/element-ui/packages/form/src/form-item.vue'
import
ElButton
from
"../../../node_modules/element-ui/packages/button/src/button.vue"
;
import
{
getAllFestivalPrice
,
saveOrUpdateFestivalPrice
}
from
"api/vehicle/vehicleInfo"
;
import
{
objDeepCopy
}
from
"../../utils"
;
export
default
{
props
:
[
'festivalInfo'
,
'oneRow'
],
components
:
{
ElButton
,
ElFormItem
,
},
data
()
{
return
{
isClick
:
false
,
// 添加、编辑-确定按钮 是否已点击
oneDialogVisible
:
false
,
form
:
{
festivalId
:
undefined
,
startTime
:
undefined
,
// 开始时间
endTime
:
undefined
,
// 结束时间
festivalDay
:
undefined
,
// 节日名称
rentFreeDay
:
undefined
,
// 免费天数
rentPrice
:
undefined
,
// 租赁价格
vehicleId
:
undefined
,
// 车型id
applicationObj
:
1
,
// 应用对象
},
rules
:
{
festivalDay
:
{
required
:
true
,
message
:
'请输入节日名称'
,
trigger
:
'blur'
},
rentFreeDay
:
{
required
:
true
,
message
:
'请输入免费天数'
,
trigger
:
'blur'
},
applicationObj
:
{
required
:
true
,
message
:
'请选择应用对象'
,
trigger
:
'change'
},
rentPrice
:
{
required
:
true
,
message
:
'请输入租赁价格'
,
trigger
:
'blur'
},
startTime
:
{
required
:
true
,
message
:
'请选择开始时间'
,
trigger
:
'blur'
},
endTime
:
{
required
:
true
,
message
:
'请选择结束时间'
,
trigger
:
'blur'
}
}
}
},
mounted
()
{
this
.
oneDialogVisible
=
true
;
this
.
form
=
{
festivalId
:
undefined
,
startTime
:
undefined
,
// 开始时间
endTime
:
undefined
,
// 结束时间
festivalDay
:
undefined
,
// 节日名称
rentFreeDay
:
undefined
,
// 免费天数
rentPrice
:
undefined
,
// 租赁价格
vehicleId
:
this
.
oneRow
.
vehicleId
,
// 车型id
applicationObj
:
1
,
// 应用对象
}
if
(
this
.
festivalInfo
.
festivalId
){
// 编辑
this
.
getOne
()
}
},
computed
:
{
...
mapGetters
([
'elements'
])
},
methods
:
{
/**
* 获取节假日详情
*/
getOne
(){
let
_this
=
this
getAllFestivalPrice
({
festivalId
:
this
.
festivalInfo
.
festivalId
,
vehicleId
:
_this
.
oneRow
.
vehicleId
}
).
then
(
response
=>
{
debugger
if
(
response
.
status
==
200
)
{
if
(
response
.
data
.
length
>
0
)
{
this
.
form
=
{
festivalId
:
response
.
data
[
0
].
festivalId
,
startTime
:
response
.
data
[
0
].
startTime
,
endTime
:
response
.
data
[
0
].
endTime
,
applicationObj
:
response
.
data
[
0
].
allModelUse
?
2
:
response
.
data
[
0
].
allVehicleUse
?
3
:
1
,
// 周末免费天数扣除
festivalDay
:
response
.
data
[
0
].
festivalDay
,
// 节日名称
rentFreeDay
:
response
.
data
[
0
].
rentFreeDay
,
// 免费天数
rentPrice
:
response
.
data
[
0
].
rentPrice
,
// 租赁价格
vehicleId
:
_this
.
oneRow
.
vehicleId
,
// 车型id
}
}
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
/**
* 关闭弹窗
*/
closePop
(){
this
.
oneDialogVisible
=
false
this
.
$emit
(
'festivalModalEvent'
,
false
);
},
/**
* 确定
*/
handleOk
(){
if
(
this
.
isClick
)
{
return
}
this
.
isClick
=
true
const
set
=
this
.
$refs
set
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
let
params
=
objDeepCopy
(
this
.
form
)
params
.
allModelUse
=
params
.
applicationObj
==
2
?
1
:
0
params
.
allVehicleUse
=
params
.
applicationObj
==
3
?
1
:
0
params
.
applicationObj
=
undefined
saveOrUpdateFestivalPrice
(
params
).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$notify
({
title
:
'成功'
,
message
:
'保存成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
$emit
(
'festivalModalEvent'
,
true
);
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
}
else
{
this
.
isClick
=
false
}
})
},
}
}
</
script
>
src/views/vehicle/festivalPriceSetting.vue
0 → 100644
View file @
16ec0546
<
template
>
<el-dialog
title=
"节假日价格设置"
:visible
.
sync=
"oneDialogVisible"
@
close=
"closePop"
:modal=
"false"
>
<div
style=
"min-height: 500px"
>
<div
class=
"filter-container flex-aic-jce"
ref=
"filter-container"
>
<el-button
class=
"filter-item"
@
click=
"handleCreate"
plain
><i
class=
"el-icon-plus"
></i>
添加节假日
</el-button>
</div>
<el-table
:key=
"tableKey"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%;"
>
<el-table-column
type=
"index"
align=
"center"
label=
"序号"
width=
"65"
></el-table-column>
<el-table-column
align=
"center"
label=
"节日名称"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
festivalDay
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"开始时间"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
startTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"结束时间"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
endTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"租赁价格"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
rentPrice
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"免费天数"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
rentFreeDay
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"small"
type=
"text"
@
click=
"handleUpdate(scope.row)"
>
编辑
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"deleteHandler(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
</el-table>
</div>
<!-- 添加、编辑节假日 -->
<festival-modal
:festivalInfo=
"festivalInfo"
v-on:festivalModalEvent=
"festivalModalEvent"
v-if=
"festivalVisible"
:oneRow=
"oneRow"
></festival-modal>
</el-dialog>
</template>
<
script
type=
"javascript"
>
import
{
mapGetters
}
from
'vuex'
;
import
ElFormItem
from
'../../../node_modules/element-ui/packages/form/src/form-item.vue'
import
ElButton
from
"../../../node_modules/element-ui/packages/button/src/button.vue"
;
import
{
getAllFestivalPrice
,
deleteFestival
}
from
"api/vehicle/vehicleInfo"
;
import
festivalModal
from
"./festivalModal"
;
export
default
{
props
:
[
'oneRow'
],
components
:
{
festivalModal
,
ElButton
,
ElFormItem
,
},
data
()
{
return
{
oneDialogVisible
:
false
,
showLoadingBody
:
false
,
list
:
[],
total
:
null
,
listLoading
:
true
,
tableKey
:
0
,
festivalInfo
:
{},
// 当前操作项
festivalVisible
:
false
,
// 添加、编辑节假日弹窗
}
},
mounted
()
{
this
.
oneDialogVisible
=
true
;
this
.
getList
()
},
computed
:
{
...
mapGetters
([
'elements'
])
},
methods
:
{
/**
* 获取列表
*/
getList
()
{
getAllFestivalPrice
({
vehicleId
:
this
.
oneRow
.
vehicleId
}).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
listLoading
=
false
this
.
list
=
response
.
data
}
else
{
this
.
list
=
[]
this
.
listLoading
=
false
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
/*
* 添加--节假日
*/
handleCreate
(){
this
.
festivalVisible
=
true
this
.
festivalInfo
=
{}
},
/**
* 添加、编辑节假日 返回
*/
festivalModalEvent
(
e
){
this
.
festivalVisible
=
false
if
(
e
){
this
.
getList
()
}
},
/**
* 编辑--节假日
*/
handleUpdate
(
row
){
this
.
festivalVisible
=
true
this
.
festivalInfo
=
row
},
/**
* 删除
* */
deleteHandler
(
row
)
{
this
.
$confirm
(
'确定删除吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
let
params
=
{
vehicleId
:
this
.
oneRow
.
vehicleId
,
// 车型id
festivalId
:
row
.
festivalId
,
// 节日id
}
deleteFestival
(
params
).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$notify
({
title
:
'成功'
,
message
:
'删除成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
})
},
/**
* 关闭弹窗
*/
closePop
(){
this
.
oneDialogVisible
=
false
this
.
$emit
(
'festivalDialogEvent'
,
false
);
},
}
}
</
script
>
src/views/vehicle/generalPriceSetting.vue
0 → 100644
View file @
16ec0546
<
template
>
<el-dialog
title=
"通用价格设置"
:visible
.
sync=
"oneDialogVisible"
@
close=
"closePop"
:modal=
"false"
width=
"30%"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"140px"
>
<el-form-item
label=
"租赁价格"
prop=
"rentPrice"
>
<el-input
type=
"number"
v-model=
"form.rentPrice"
placeholder=
"输入租赁价格"
></el-input>
</el-form-item>
<el-form-item
label=
"周末租赁价格"
prop=
"rentWeekendPrice"
>
<el-input
v-model=
"form.rentWeekendPrice"
placeholder=
"请输入周末租赁价格"
type=
"number"
></el-input>
</el-form-item>
<el-form-item
label=
"免费天数扣除"
prop=
"rentFreeDay"
>
<el-input
type=
"number"
v-model=
"form.rentFreeDay"
placeholder=
"请输入免费天数扣除"
></el-input>
</el-form-item>
<el-form-item
label=
"周末免费天数扣除"
prop=
"rentWeekendDay"
>
<el-input
type=
"number"
v-model=
"form.rentWeekendDay"
placeholder=
"请输入周末免费天数扣除"
></el-input>
</el-form-item>
<el-form-item
label=
"应用对象"
prop=
"applicationObj"
>
<el-select
style=
"width: 100%;"
class=
"filter-item"
v-model=
"form.applicationObj"
placeholder=
"请选择应用对象"
>
<el-option
key=
"1"
label=
"应用于当前车辆"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"应用于同车型车辆"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"应用于所有车辆"
:value=
"3"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"flex-aic-jcc"
style=
"margin-top: 10px;"
>
<el-button
plain
@
click=
"closePop"
>
取消
</el-button>
<el-button
type=
"primary"
v-if=
"!isClick"
class=
"handle-ok"
@
click=
"handleOk('form')"
>
确定
</el-button>
<el-button
type=
"primary"
v-if=
"isClick"
class=
"handle-ok"
style=
"opacity: 0.4;"
:disabled=
"true"
>
确定
</el-button>
</div>
</el-dialog>
</
template
>
<
script
type=
"javascript"
>
import
{
mapGetters
}
from
'vuex'
;
import
ElFormItem
from
'../../../node_modules/element-ui/packages/form/src/form-item.vue'
import
ElButton
from
"../../../node_modules/element-ui/packages/button/src/button.vue"
;
import
{
vehicleCommonPriceOne
,
vehicleCommonPriceUpdate
}
from
"api/vehicle/vehicleInfo"
;
import
{
objDeepCopy
}
from
"../../utils"
;
export
default
{
props
:
[
'title'
,
'oneRow'
],
components
:
{
ElButton
,
ElFormItem
,
},
data
()
{
return
{
oneDialogVisible
:
false
,
form
:
{
// id: undefined,
applicationObj
:
1
,
// 应用对象
vehicleId
:
undefined
,
// 车辆id
rentFreeDay
:
undefined
,
// 免费天数扣除
rentPrice
:
undefined
,
// 租赁价格
rentWeekendDay
:
undefined
,
// 周末免费天数扣除
rentWeekendPrice
:
undefined
,
// 周末租赁价格
},
isClick
:
false
,
// 添加、编辑-确定按钮 是否已点击
rules
:
{
rentFreeDay
:
{
required
:
true
,
message
:
'请输入免费天数扣除'
,
trigger
:
'blur'
},
applicationObj
:
{
required
:
true
,
message
:
'请选择应用对象'
,
trigger
:
'change'
},
rentPrice
:
{
required
:
true
,
message
:
'请输入租赁价格'
,
trigger
:
'blur'
},
rentWeekendDay
:
{
required
:
true
,
message
:
'请选择周末免费天数扣除'
,
trigger
:
'change'
},
rentWeekendPrice
:
{
required
:
true
,
message
:
'请输入周末租赁价格'
,
trigger
:
'blur'
}
},
}
},
mounted
()
{
this
.
oneDialogVisible
=
true
;
this
.
form
=
{
// id: undefined,
applicationObj
:
1
,
// 应用对象
vehicleId
:
undefined
,
// 车辆id
rentFreeDay
:
undefined
,
// 免费天数扣除
rentPrice
:
undefined
,
// 租赁价格
rentWeekendDay
:
undefined
,
// 周末免费天数扣除
rentWeekendPrice
:
undefined
,
// 周末租赁价格
},
this
.
getOneDetail
()
// 获取车辆价格详情
},
computed
:
{
...
mapGetters
([
'elements'
])
},
methods
:
{
/**
* 获取车辆价格详情
*/
getOneDetail
(){
vehicleCommonPriceOne
({
id
:
this
.
oneRow
.
id
}
).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
form
=
{
// id: response.data.id,
vehicleId
:
response
.
data
.
vehicleId
,
applicationObj
:
response
.
data
.
allModelUse
?
2
:
response
.
data
.
allVehicleUse
?
3
:
1
,
// 周末免费天数扣除
rentFreeDay
:
response
.
data
.
rentFreeDay
,
// 免费天数扣除
rentPrice
:
response
.
data
.
rentPrice
,
// 租赁价格
rentWeekendDay
:
response
.
data
.
rentWeekendDay
,
// 周末免费天数扣除
rentWeekendPrice
:
response
.
data
.
rentWeekendPrice
,
// 周末租赁价格
}
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
/**
* 关闭弹窗
*/
closePop
(){
this
.
oneDialogVisible
=
false
this
.
$emit
(
'generalDialogEvent'
,
false
);
},
/**
* 确定
*/
handleOk
(){
if
(
this
.
isClick
)
{
return
}
this
.
isClick
=
true
const
set
=
this
.
$refs
set
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
let
params
=
objDeepCopy
(
this
.
form
)
params
.
allModelUse
=
params
.
applicationObj
==
2
?
1
:
0
params
.
allVehicleUse
=
params
.
applicationObj
==
3
?
1
:
0
params
.
applicationObj
=
undefined
vehicleCommonPriceUpdate
(
params
).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$notify
({
title
:
'成功'
,
message
:
'保存成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
$emit
(
'generalDialogEvent'
,
true
);
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
}
else
{
this
.
isClick
=
false
}
})
},
}
}
</
script
>
src/views/vehicle/vehicleInfo/index.vue
View file @
16ec0546
...
...
@@ -2,79 +2,96 @@
<div
class=
"app-container calendar-list-container"
v-loading
.
body=
"showLoadingBody"
>
<div
class=
"filter-container"
ref=
"filter-container"
>
<el-form
:rules=
"rules4Query"
ref=
"queryForm"
:inline=
"inline"
:model=
"listQuery"
label-width=
"100px"
>
<el-form-item
label=
"车牌号"
>
<el-input
v-model=
"listQuery.numberPlate"
placeholder=
"请输入车牌号"
></el-input>
</el-form-item>
<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,index) in allVehicleCompany "
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所属门店"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.subordinateBranch"
placeholder=
"请选择所属门店"
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleBranchCompany"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
<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,index) in getAllVehicleStatus() "
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"车型"
prop=
"modelId"
>
<el-autocomplete
class=
"inline-input"
v-model=
"vehicleArr"
:fetch-suggestions=
"queryVehicleModelSearch"
placeholder=
"请选择车型"
@
select=
"handleVehicleModelSelect"
></el-autocomplete>
</el-form-item>
<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,index) in getAllVehicleStatus()"
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
<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,index) in getAllVehicleStatus() "
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"车牌号"
>
<el-input
v-model=
"listQuery.numberPlate"
placeholder=
"请输入车牌号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"所属公司"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.companyId"
placeholder=
"请选择所属公司"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleCompany "
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"所属门店"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.subordinateBranch"
placeholder=
"请选择所属门店"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleBranchCompany"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"停靠门店"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.parkBranchCompanyId"
placeholder=
"请选择停靠门店"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleBranchCompany"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"车型"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.modelId"
placeholder=
"请选择车型"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleList"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"出行状态"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.status"
placeholder=
"请选择出行状态"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in getAllVehicleStatus()"
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
<!--
<el-col
:span=
"6"
>
-->
<!--
<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,index) in getAllVehicleStatus() "-->
<!-- :key="index"-->
<!-- :label="val.val"-->
<!-- :value="val.code"-->
<!-- >
</el-option>
-->
<!--
</el-select>
-->
<!--
</el-form-item>
-->
<!--
</el-col>
-->
</el-row>
</el-form>
<el-button
class=
"filter-item"
...
...
@@ -84,9 +101,9 @@
@
click=
"handleFilter('search')"
>
搜索
</el-button>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
@
click=
"reloadPage"
>
清除搜索
</el-button>
<el-button
class=
"filter-item"
v-if=
"
vehicleInfo_btn_add
"
@
click=
"handleCreate"
plain
><i
class=
"el-icon-plus"
></i>
添加车辆
</el-button>
<el-button
class=
"filter-item"
v-if=
"
elements['vehicleInfo:btn_add']
"
@
click=
"handleCreate"
plain
><i
class=
"el-icon-plus"
></i>
添加车辆
</el-button>
</div>
<el-table
:key=
"tableKey"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table
:key=
"tableKey"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
v-loading=
"listLoading"
>
<el-table-column
type=
"index"
align=
"center"
label=
"序号"
width=
"65"
></el-table-column>
<el-table-column
align=
"center"
label=
"车牌号"
>
<template
slot-scope=
"scope"
>
...
...
@@ -100,52 +117,52 @@
</el-table-column>
<el-table-column
align=
"center"
label=
"车型"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
cod
e
}}
</span>
<span>
{{
scope
.
row
.
vehicleTyp
e
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"所属门店"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
cod
e
}}
</span>
<span>
{{
scope
.
row
.
subBranchNam
e
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"停靠门店"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
cod
e
}}
</span>
<span>
{{
scope
.
row
.
parkBranchCompanyNam
e
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"所属公司"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
co
d
e
}}
</span>
<span>
{{
scope
.
row
.
co
mpanyNam
e
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"出行状态"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
code
}}
</span>
<span>
{{
getVehicleStatus
(
scope
.
row
.
status
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"车辆状态"
>
<
template
slot-scope=
"scope"
>
<span>
{{
getVehicleStatus
(
scope
.
row
.
status
)
}}
</span
>
</
template
>
</el-table-column
>
<!-- <el-table-column align="center" label="车辆状态">--
>
<!-- <template slot-scope="scope">--
>
<!-- <span>上下架</span>--
>
<!-- </template>--
>
<!-- </el-table-column>--
>
<el-table-column
align=
"center"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"small"
class=
"el-button el-button--text el-button--small"
@
click=
"handleUpdate(scope.row)"
>
{{
vehicleInfo_btn_edit
?
"编辑"
:
"查看"
}}
</el-button>
<el-button
size=
"small"
class=
"el-button el-button--text el-button--small"
@
click=
"handleUpdate(scope.row)"
>
上架/下架
</el-button
>
>
{{
elements
[
'vehicleInfo:btn_edit'
]
?
"编辑"
:
"查看"
}}
</el-button>
<!--
<el-button-->
<!-- size="small"-->
<!-- class="el-button el-button--text el-button--small"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- >上架/下架
</el-button>
--
>
<el-button
size=
"small"
@
click=
"deleteHandler(scope.row)"
class=
"el-button el-button--text el-button--small"
style=
"color:red;"
v-if=
"
vehicleInfo_btn_ret
"
v-if=
"
elements['vehicleInfo:btn_ret']
"
>
删除
</el-button>
</
template
>
</el-table-column>
...
...
@@ -163,701 +180,31 @@
<!-- 添加、编辑车辆 -->
<one-vehicle
v-on:oneDialogEvent=
"oneDialogEvent"
:title=
"title"
:oneRow=
"oneRow"
v-if=
"oneDialogVisible"
></one-vehicle>
<!-- 对话框相关html元素 -->
<el-dialog
:title=
"textMap[dialogStatus]"
:visible
.
sync=
"dialogFormVisible"
@
close=
"closePop"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"form"
label-width=
"100px"
>
<p
style=
"border-bottom:1px solid #bfcbd9;padding-bottom:10px"
>
基础信息
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆编码"
prop=
"code"
>
<el-input
v-model
.
number=
"form.code"
placeholder=
"请输入车辆编码"
type=
"number"
></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-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车架号"
prop=
"vin"
>
<el-input
v-model=
"form.vin"
placeholder=
"请输入车架号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"发动机号"
prop=
"engineNum"
>
<el-input
v-model=
"form.engineNum"
placeholder=
"请输入发动机号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"所属人"
>
<el-select
v-model
.
number=
"form.belongTo"
placeholder=
"请选择所属人"
style=
"width:100%"
>
<el-option
v-for=
"(val,index) in getAllBelong2Type() "
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
<el-input
v-if=
"typeof(form.belongTo) !== 'undefined' && form.belongTo != 1"
v-model=
"form.belongToName"
placeholder=
"请输入名称"
style=
"margin-top:10px"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆状态"
prop=
"status"
>
<el-select
class=
"filter-item"
v-model=
"form.status"
placeholder=
"请选择车辆状态"
style=
"width:100%"
>
<el-option
v-for=
"(val,index) in getAllVehicleStatus() "
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆品牌"
prop=
"brand"
>
<el-select
class=
"filter-item"
v-model=
"form.brand"
placeholder=
"请选择车辆品牌"
style=
"width:100%"
>
<el-option
:key=
"getUnkownBrandCode"
label=
"未知"
:value=
"getUnkownBrandCode"
></el-option>
<el-option
v-for=
"item in getAllBranch() "
:key=
"item.code"
:label=
"item.val"
:value=
"item.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<!--<el-form-item label="车型">
<el-select v-model="form.modelId" filterable placeholder="请选择">
<el-option
v-for="item in allVehicleList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>-->
<el-form-item
label=
"车型"
prop=
"vehicleModelName"
>
<el-autocomplete
class=
"inline-input"
v-model=
"form.vehicleModelName"
:fetch-suggestions=
"queryVehicleModelSearch"
placeholder=
"请输入内容"
@
select=
"handleVehicleModelSelectSubordinate"
style=
"width:100%"
></el-autocomplete>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"生产商"
prop=
"manufacturer"
>
<el-input
v-model=
"form.manufacturer"
placeholder=
"请输入生产商"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"年审日期"
prop=
"manufacturer"
>
<el-date-picker
v-model=
"form.annualVerificationDate"
type=
"date"
placeholder=
"选择日期"
style=
"width:100%"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"新旧程度"
prop=
"vehicleStatus"
>
<el-select
style=
"width: 100%;"
class=
"filter-item"
v-model=
"form.vehicleStatus"
placeholder=
"请选择新旧程度"
>
<el-option
key=
"1"
label=
"全新"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"9成新"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"8成新"
:value=
"3"
></el-option>
<el-option
key=
"4"
label=
"7成新"
:value=
"4"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"车身状况"
prop=
"vehicleBodyStatus"
>
<el-select
class=
"filter-item"
v-model=
"form.vehicleBodyStatus"
placeholder=
"请选择车身状况"
style=
"width:100%"
>
<el-option
key=
"1"
label=
"无剐蹭"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"微瑕疵"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"无瑕疵"
:value=
"3"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"内饰"
prop=
"vehicleInnerStatus"
>
<el-select
class=
"filter-item"
v-model=
"form.vehicleInnerStatus"
placeholder=
"请选择会员类型"
style=
"width:100%"
>
<el-option
key=
"1"
label=
"全新"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"9成新"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"8成新"
:value=
"3"
></el-option>
<el-option
key=
"4"
label=
"7成新"
:value=
"4"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"免费天数"
prop=
"memberUse"
>
<el-select
class=
"filter-item"
v-model=
"form.memberUse"
placeholder=
"请选择会员类型"
style=
"width:100%"
@
change=
"handlerChange()"
>
<el-option
key=
"1"
label=
"所有会员可用"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"付费会员可用"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"兑换会员可用"
:value=
"3"
></el-option>
<el-option
key=
"4"
label=
"不可使用会员天数"
:value=
"4"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<p
style=
"border-bottom:1px solid #bfcbd9;padding-bottom:10px"
>
用途、位置及里程
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"所属分公司"
prop=
"subordinateBranchName"
>
<el-autocomplete
class=
"inline-input"
v-model=
"form.subordinateBranchName"
:fetch-suggestions=
"querySearch"
placeholder=
"请输入内容"
@
select=
"handleSelectSubordinate"
style=
"width:100%"
></el-autocomplete>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<!--<el-form-item label="停靠分公司" v-if="dialogStatus=='update'" prop="parkBranchCompanyName">-->
<!--<el-input v-model="form.parkBranchCompanyName" placeholder="停靠分公司" readonly disabled></el-input>-->
<!--</el-form-item>-->
<!--v-else-if="dialogStatus=='create'"-->
<el-form-item
label=
"停靠分公司"
prop=
"parkBranchCompanyName"
>
<el-autocomplete
class=
"inline-input"
v-model=
"form.parkBranchCompanyName"
:fetch-suggestions=
"querySearch"
placeholder=
"请输入内容"
@
select=
"handleSelectPark"
style=
"width:100%"
></el-autocomplete>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!--<el-col :span="12">-->
<!--<el-form-item label="目的地分公司" prop="expectDestinationBranchCompanyName">-->
<!--<el-autocomplete-->
<!--class="inline-input"-->
<!--v-model="form.expectDestinationBranchCompanyName"-->
<!--:fetch-suggestions="querySearch"-->
<!--placeholder="请输入内容"-->
<!--@select="handleSelectExport"-->
<!--></el-autocomplete>-->
<!--</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=
"请选择用途"
style=
"width:100%"
>
<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-col
:span=
"12"
>
<el-form-item
label=
"公里数"
prop=
"mileageLastUpdate"
>
<el-input
v-model=
"form.mileageLastUpdate"
placeholder=
"请输入公里数"
></el-input>
</el-form-item>
</el-col>
</el-row>
<p
style=
"border-bottom:1px solid #bfcbd9;padding-bottom:10px"
>
车辆追踪设备
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"终端号"
prop=
"terminalNumber"
>
<el-input
v-model=
"form.terminalNumber"
placeholder=
"请输入终端号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"SIM卡号"
prop=
"simNumber"
>
<el-input
v-model=
"form.simNumber"
placeholder=
"请输入SIM卡号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"通讯类型"
prop=
"CommunicationType"
>
<el-select
class=
"filter-item"
v-model=
"form.communicationType"
placeholder=
"请选择通讯类型"
style=
"width:100%"
>
<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>
<p
style=
"border-bottom:1px solid #bfcbd9;padding-bottom:10px"
>
保险信息
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"商业险公司"
prop=
"insuranceCompany"
>
<el-select
class=
"filter-item"
v-model=
"form.insuranceCompany"
placeholder=
"请选择商业险公司"
style=
"width:100%"
>
<el-option
:key=
"undefined"
label=
"无"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val, index) in getAllInsuranceCompany() "
:key=
"index"
: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=
"insuranceEndDate"
>
<el-date-picker
v-model=
"form.insuranceEndDate"
type=
"date"
:editable=
"true"
format=
"yyyy-MM-dd"
placeholder=
"请选择商业险到期时间"
style=
"width:100%"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"交强险公司"
prop=
"strongInsuranceCompany"
>
<el-select
class=
"filter-item"
v-model=
"form.strongInsuranceCompany"
placeholder=
"请选择交强险公司"
style=
"width:100%"
>
<el-option
:key=
"undefined"
label=
"无"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val, index) in getAllInsuranceCompany() "
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"交强险单号"
prop=
"strongInsuranceNo"
>
<el-input
v-model
.
text=
"form.strongInsuranceNo"
placeholder=
"请输入交强险单号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"交强险日期"
prop=
"strongInsuranceEndDate"
>
<el-date-picker
v-model=
"form.strongInsuranceEndDate"
type=
"date"
:editable=
"true"
format=
"yyyy-MM-dd"
placeholder=
"请选择交强险到期时间"
style=
"width:100%"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!--<el-col :span="12">-->
<!--<el-form-item label="收车时间" prop="receiveTime">-->
<!--<el-date-picker-->
<!--v-model="form.receiveTime"-->
<!--type="date"-->
<!--:editable="true"-->
<!--format="yyyy-MM-dd HH:mm:dd"-->
<!--placeholder="请选择收车时间"-->
<!--></el-date-picker>-->
<!--</el-form-item>-->
<!--</el-col>-->
</el-row>
<p
style=
"border-bottom:1px solid #bfcbd9;padding-bottom:10px"
>
其他
</p>
<el-row>
<el-col
:span=
"24"
>
<el-form-item
label=
"行驶证"
prop=
"drivingLicensePath"
:style=
"{display:'block'}"
>
<el-upload
class=
"avatar-uploader"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:headers=
"getHeaderWithToken"
:on-success=
"handleAvatarSuccess"
:before-upload=
"beforeAvatarUpload"
:style=
"{display:'inline-block'}"
>
<img
v-if=
"$utils.isString(form.drivingLicensePath) && !$utils.isEmpty(form.drivingLicensePath)"
:src=
"getDrivingLicenseUrl(form.drivingLicensePath)"
class=
"avatar"
:style=
"{display:'block'}"
/>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
:style=
"{lineHeight:'350px'}"
style=
"position: relative;"
>
<br
/>
<span
class=
"driving-title"
>
行驶证正面
</span>
</i>
</el-upload>
<el-upload
class=
"avatar-uploader"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:headers=
"getHeaderWithToken"
:on-success=
"handleAvatarSuccessF"
:before-upload=
"beforeAvatarUpload"
:style=
"{display:'inline-block'}"
>
<img
v-if=
"$utils.isString(form.drivingLicenseDuplicatePath) && !$utils.isEmpty(form.drivingLicenseDuplicatePath)"
:src=
"getDrivingLicenseUrl(form.drivingLicenseDuplicatePath)"
class=
"avatar"
:style=
"{display:'block'}"
/>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
:style=
"{lineHeight:'350px'}"
style=
"position: relative;"
>
<br
/>
<span
class=
"driving-title"
>
行驶证副本
</span>
</i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item
label=
"保单pdf"
prop=
"insurancePDF"
:style=
"{display:'block'}"
>
<el-upload
ref=
"uploadPdf"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:headers=
"getHeaderWithToken"
:on-success=
"handleAvatarSuccessPDF"
:style=
"{display:'inline-block'}"
accept=
".pdf"
>
<el-button
size=
"small"
plain
>
选择文件
</el-button>
</el-upload>
<div
v-for=
"(item, i) in pdfList"
:key =
i
@
click=
"downloadPDF(i)"
>
<span>
{{item.name}}
</span>
</div>
</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>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel('form')"
>
取消
</el-button>
<el-button
v-if=
"dialogStatus=='create'"
type=
"primary"
@
click=
"create('form')"
>
确定
</el-button>
<el-button
type=
"primary"
@
click=
"update('form')"
v-if=
"dialogStatus=='update'&&vehicleInfo_btn_edit"
>
确 定
</el-button>
</div>
</el-dialog>
<!--申请对话框相关html元素 -->
<el-dialog
:title=
"textMap[dialogStatus]"
:visible
.
sync=
"dialogForm4ApplyVisible"
>
<el-form
:model=
"form4Apply"
:rules=
"rules4Apply"
ref=
"form4Apply"
label-width=
"120px"
>
<el-form-item
label=
"预订日期范围"
prop=
"bookDateRange4Apply"
>
<el-date-picker
v-model=
"bookDateRange4Apply"
type=
"daterange"
:editable=
"true"
format=
"yyyy-MM-dd"
placeholder=
"请输入预订日期范围"
:picker-options=
"pickerOptions4Apply"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"提车分公司"
prop=
"liftCompany"
>
<el-autocomplete
class=
"inline-input"
v-model=
"form4Apply.state3"
:fetch-suggestions=
"querySearch"
placeholder=
"请输入内容"
@
select=
"handleSelect3"
disabled
></el-autocomplete>
</el-form-item>
<el-form-item
label=
"还车分公司"
prop=
"retCompany"
>
<el-autocomplete
class=
"inline-input"
v-model=
"form4Apply.state4"
:fetch-suggestions=
"querySearch"
placeholder=
"请输入内容"
@
select=
"handleSelect4"
></el-autocomplete>
</el-form-item>
<el-form-item
label=
"使用人"
prop=
"vehicleUsername"
>
<el-input
v-model=
"form4Apply.vehicleUsername"
placeholder=
"请输入使用人"
></el-input>
</el-form-item>
<el-form-item
label=
"联系方式"
prop=
"vehicleUserPhone"
>
<el-input
type=
"number"
v-model=
"form4Apply.vehicleUserPhone"
placeholder=
"请输入使用人联系方式"
></el-input>
</el-form-item>
<el-form-item
label=
"用途"
prop=
"bookType"
>
<el-select
class=
"filter-item"
v-model=
"form4Apply.bookType"
placeholder=
"请选择用途"
>
<el-option
:key=
"undefined"
label
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val, index) in book_type_list "
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"保养项目"
prop=
"upkeepIds"
v-if=
"form4Apply.bookType==6"
>
<el-checkbox-group
v-model=
"form4Apply.upkeepIds"
>
<el-checkbox
v-for=
"item in allUpkeepItems"
:label=
"item.id"
:key=
"item.id"
>
{{item.name}}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item
label=
"目的地"
prop=
"destination"
>
<el-input
v-model=
"form4Apply.destination"
placeholder=
"请输入目的地"
></el-input>
</el-form-item>
<el-form-item
label=
"随行物品"
prop=
"selectedAccItem"
v-if=
"form4Apply.bookType!=3&&form4Apply.bookType!=6&&form4Apply.bookType!=8&&form4Apply.bookType!=10"
>
<el-input
type=
"textarea"
v-model=
"getSelectedAccItemStr"
:rows=
"5"
icon=
"menu"
@
focus=
"handleAccItemSelect"
clearable
placeholder=
"请选择随行物品"
></el-input>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form4Apply.remark"
placeholder=
"请输入备注信息"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel4Apply('form4Apply')"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"apply('form4Apply')"
>
确 定
</el-button>
</div>
</el-dialog>
<el-dialog
title=
"行驶证"
:visible
.
sync=
"dialogForm4LicenceVisible"
>
<img
:style=
"{width:'100%'}"
:src=
"licenceSrcUrl"
/>
</el-dialog>
<book-info-viewer
ref=
"bookInfoViewer"
></book-info-viewer>
<acc-item-selector
v-on:select=
"accItemSelected"
:selectedAccItem=
"form4Apply.selectedAccItem"
v-on:clear=
"accItemClear"
ref=
"accItemSelector"
></acc-item-selector>
<!-- 收车信息弹窗 -->
<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
></el-input>
</el-form-item>
<el-form-item
label=
"出车时间"
prop=
"arrivalDate"
>
<el-date-picker
v-model=
"arrivalForm.arrivalDate"
type=
"date"
disabled
format=
"yyyy-MM-dd"
placeholder=
"选择日期"
></el-date-picker>
</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-item
label=
"还车分公司"
prop=
"arrivalBranchCompanyId"
>
<el-autocomplete
class=
"inline-input"
v-model=
"arrivalForm.arrivalBranchCompanyName"
:fetch-suggestions=
"querySearch"
placeholder=
"请输入内容"
@
select=
"handleSelectArrivalCompanyName"
></el-autocomplete>
</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>
<!--出车弹框-->
<departureDialog
v-if=
"departureDialogVisible"
:departureRow=
"departureRow"
v-on:departureDialogEvent=
"departureDialogEvent"
></departureDialog>
<!-- 车辆保养弹窗 -->
<upkeepDialog
v-if=
"upkeepDialogVisible"
:upkeepRow=
"upkeepRow"
v-on:upkeepDialogEvent=
"upkeepDialogEvent"
></upkeepDialog>
</div>
</template>
<
script
type=
"javascript"
>
import
axios
from
'axios'
import
upkeepDialog
from
'../../modal/upkeepDialogVisible'
// 保养弹框
import
departureDialog
from
'../../modal/departureDialog'
// 出车弹框
import
'static/css/uploadImg.css'
// 引入图片上传组件对话框
import
{
page
,
addObj
,
getObj
,
book
,
getBookedInfoIn2Month
,
getBookedInfo
,
putObj
,
delObj
,
getSysRegionByIds
,
checkCode
,
downloadExcel
,
checkVin
,
checkEngineNum
,
getArea
,
exportExcel
,
vehicleBranchCompanyAll
,
vehicleCompanyAll
}
from
'../../../api/vehicle/vehicleInfo/'
import
{
getAllVehicleModelList
,
getAllVehicleList
}
from
'../../../api/vehicleType'
import
{
getSonRegionByCodes
}
from
'api/base_info/region/'
import
{
getConstantByTypeAndCode
,
getConstantListByType
,
getAllInsuranceCompany
,
getInsuranceCompany
}
from
'api/base_info/constant/'
import
{
departureVehicle
,
arrivalVehicle
,
upkeepVehicle
,
upkeepEndVehicle
}
from
'api/vehicle/active'
import
{
getAllUpkeepItem
,
getUpkeepAll
}
from
'api/vehicle/upkeep'
import
{
getSonRegionByCodes
,
getRegionByCodes
}
from
'api/base_info/region/'
import
{
VEHICLE_CONSTANT_VEHICLE_BRAND
,
VEHICLE_CONSTANT_VEHICLE_USE
,
VEHICLE_CONSTANT_BRAND_CODE_UNKOWN
,
BELONG_TO_TYPE_OWN
,
VEHICLE_CONSTANT_USE_TYPE_UNKOWN
,
VEHICLE_CONSTANT_STATUS_NORMAL
}
from
'../../../store/modules/baseInfo'
import
{
getAllCompany
,
getAll
}
from
'api/base_info/branch_company/'
import
{
formatDate
}
from
'utils/dateFormattor'
import
{
toEast8Date
,
deepCopyDate
,
newEast8Date
,
convertDate2Str
}
from
'utils/dateUtils'
...
...
@@ -865,15 +212,12 @@ import {
import
rsCode
from
'../../../utils/rsCode'
import
{
mapGetters
}
from
'vuex'
import
{
getToken
}
from
'utils/auth'
import
bookInfoViewer
from
'../bookInfoViewer'
import
accItemSelector
from
'../accompanyingItem/accItemSelector.vue'
import
Element1
from
'../../admin/menu/components/element'
import
ElRow
from
'element-ui/packages/row/src/row'
import
ElCol
from
'element-ui/packages/col/src/col'
import
{
getAllZone
}
from
'api/base_info/constant/'
import
ElFormItem
from
'../../../../node_modules/element-ui/packages/form/src/form-item.vue'
import
oneVehicle
from
"./oneVehicle"
;
...
...
@@ -896,9 +240,9 @@ export default {
oneDialogVisible
:
false
,
// 添加、编辑车辆弹框
title
:
'添加车辆'
,
oneRow
:
{},
// 当前操作项
allVehicleBranchCompany
:
[],
// 所属门店列表
allVehicleCompany
:
[],
// 所属公司列表
upkeepRow
:
{},
//保养数据
departureRow
:
{},
//出车数据
state1
:
''
,
vehicleArr
:
''
,
BASE_API
:
process
.
env
.
BASE_API
,
...
...
@@ -906,223 +250,24 @@ export default {
licenceSrcUrl
:
undefined
,
showLoadingBody
:
false
,
allVehicleList
:
[],
//全部车型
pdfList
:[],
form
:
{
insuranceEndDate
:
null
,
//商业险日期
vehicleModelName
:
''
,
//车型
subordinateBranchName
:
''
,
//
所属分公司
subordinateBranch
:
undefined
,
parkBranchCompanyName
:
''
,
//
停靠分公司
parkBranchCompanyId
:
undefined
,
subordinateBranchName
:
''
,
//
所属门店
subordinateBranch
:
undefined
,
// 所属门店id
parkBranchCompanyName
:
''
,
//
停靠门店
parkBranchCompanyId
:
undefined
,
// 停靠门店id
modelId
:
undefined
,
//车型id
status
:
undefined
,
//车辆状态
code
:
undefined
,
//车辆编码
numberPlate
:
undefined
,
//车牌
brand
:
undefined
,
//车辆品牌
useType
:
undefined
,
//用途
vin
:
undefined
,
//车架号
insuranceNo
:
undefined
,
//商业线单号
insuranceCompany
:
undefined
,
//商业险公司
insuranceDateRange4form
:
undefined
,
annualVerificationDate
:
undefined
,
maintenanceDate
:
undefined
,
belongTo
:
undefined
,
//所属人
belongToName
:
undefined
,
engineNum
:
undefined
,
//发动机号
manufacturer
:
undefined
,
//生产商
mileageLastUpdate
:
undefined
,
//公里数
// receiveTime: undefined,
drivingLicensePath
:
undefined
,
remark
:
undefined
,
terminalNumber
:
undefined
,
//终端号
simNumber
:
undefined
,
//sim卡
communicationType
:
undefined
,
//通讯类型
strongInsuranceCompany
:
undefined
,
strongInsuranceEndDate
:
undefined
,
strongInsuranceNo
:
undefined
,
memberUse
:
undefined
,
insurancePDF
:
undefined
,
remark
:
undefined
,
// 备注
vehicleInnerStatus
:
1
,
// 内饰:1、全新,2、9成新,3、8成新,4、7成新
vehicleStatus
:
1
,
// 车辆状况:1、全新,2、9成新,3、8成新,4、7成新
vehicleBodyStatus
:
1
// 车身状况:1、无剐蹭,2、微瑕疵,3、无瑕疵
},
rules
:
{
subordinateBranchName
:
[
{
required
:
true
,
message
:
'请选择所属分公司'
,
trigger
:
'change'
}
],
vehicleModelName
:
[
{
required
:
true
,
message
:
'请选择车型'
,
trigger
:
'change'
}
],
parkBranchCompanyName
:
[
{
required
:
true
,
message
:
'请选择停靠分公司'
,
trigger
:
'change'
}
],
maintenanceMileage
:
[
this
.
integerValidator
()],
code
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
$utils
.
isUndefined
(
value
)
||
this
.
$utils
.
isNull
(
value
)
||
this
.
$utils
.
isEmpty
(
''
+
value
)
)
{
return
callback
(
new
Error
(
'请输入车辆编码'
))
}
if
(
!
this
.
$utils
.
isInteger
(
value
))
{
return
callback
(
new
Error
(
'编码必须为整数'
))
}
if
(
value
<
1
||
value
>
9999999999
)
{
return
callback
(
new
Error
(
'编码合法范围:[1 - 9999999999]'
)
)
}
//检验code码
checkCode
(
value
,
this
.
form
.
id
).
then
(
response
=>
{
// console.log(response.data);
if
(
response
.
data
===
true
)
{
return
callback
(
new
Error
(
'该车辆编码已经被占用,请重新输入'
)
)
}
else
{
callback
()
}
})
},
trigger
:
'blur'
,
required
:
true
}
],
vin
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
//检验code码
if
(
this
.
$utils
.
isUndefined
(
value
)
||
this
.
$utils
.
isNull
(
value
)
||
this
.
$utils
.
isEmpty
(
''
+
value
)
)
{
return
callback
(
new
Error
(
'请输入车架号'
))
}
if
(
value
.
length
<
1
||
value
.
length
>
17
)
{
return
callback
(
new
Error
(
'车架号长度小于17 个字符'
)
)
}
checkVin
(
value
,
this
.
form
.
id
).
then
(
response
=>
{
// console.log(response.data);
if
(
response
.
data
===
true
)
{
return
callback
(
new
Error
(
'该车架号已经被占用,请重新输入'
)
)
}
else
{
callback
()
}
})
},
trigger
:
'blur'
,
required
:
true
}
],
engineNum
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
//检验code码
checkEngineNum
(
value
,
this
.
form
.
id
).
then
(
response
=>
{
// console.log(response.data);
if
(
response
.
data
===
true
)
{
return
callback
(
new
Error
(
'该发动机号已经被占用,请重新输入'
)
)
}
else
{
callback
()
}
}
)
},
trigger
:
'blur'
}
],
numberPlate
:
[
{
min
:
0
,
max
:
20
,
trigger
:
'blur'
,
message
:
'车牌不能为空且长度小于20个字符'
,
required
:
true
}
],
remark
:
[
{
min
:
0
,
max
:
2000
,
message
:
'长度小于 2000 个字符'
,
trigger
:
'blur'
}
],
vehicleInnerStatus
:
{
required
:
true
,
message
:
'请选择内饰'
,
trigger
:
'change'
},
vehicleStatus
:
{
required
:
true
,
message
:
'请选择车辆状况'
,
trigger
:
'change'
},
// 车辆状况:1、全新,2、9成新,3、8成新,4、7成新
vehicleBodyStatus
:
{
required
:
true
,
message
:
'请选择车身状况'
,
trigger
:
'change'
}
// 车身状况:1、无剐蹭,2、微瑕疵,3、无瑕疵
},
book_type_list
:
[
{
name
:
'维修'
,
id
:
3
},
{
name
:
'展览'
,
id
:
4
},
{
name
:
'旅游'
,
id
:
5
},
{
name
:
'保养'
,
id
:
6
},
{
name
:
'禁用'
,
id
:
8
},
{
name
:
'客户用车'
,
id
:
9
},
{
name
:
'其他'
,
id
:
10
}
],
form4Apply
:
{
bookStartDate
:
undefined
,
bookEndDate
:
undefined
,
...
...
@@ -1144,210 +289,6 @@ export default {
pickerOptions4Apply
:
{
disabledDate
:
this
.
checkBookDate
},
rules4Query
:
{
vin
:
[
{
min
:
0
,
max
:
200
,
message
:
'长度小于 200 个字符'
,
trigger
:
'blur'
}
],
subordinateBranch
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
(
this
.
$utils
.
isString
(
this
.
listQuery
.
bookedStartDate
)
&&
this
.
listQuery
.
bookedStartDate
!==
''
)
||
(
this
.
$utils
.
isString
(
this
.
listQuery
.
bookedEndDate
)
&&
this
.
listQuery
.
bookedEndDate
!==
''
)
||
(
this
.
$utils
.
isString
(
this
.
listQuery
.
notBookedStartDate
)
&&
this
.
listQuery
.
notBookedStartDate
!==
''
)
||
(
this
.
$utils
.
isString
(
this
.
listQuery
.
notBookedEndDate
)
&&
this
.
listQuery
.
notBookedEndDate
!==
''
)
)
{
if
(
!
this
.
listQuery
.
subordinateBranch
)
{
return
callback
(
new
Error
(
'若需按预定日期查询车辆,选择分公司'
)
)
}
}
callback
()
},
trigger
:
'blur'
}
],
notBookDateRange
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
notBookDateRange
)
{
let
startDate
=
toEast8Date
(
this
.
listQuery
.
notBookedStartDate
)
let
endDate
=
toEast8Date
(
this
.
listQuery
.
notBookedEndDate
)
if
(
this
.
$utils
.
isDate
(
startDate
)
&&
startDate
.
setMonth
(
startDate
.
getMonth
()
+
2
)
<
endDate
)
{
return
callback
(
new
Error
(
'日期范围不能超过2个月'
)
)
}
}
callback
()
},
trigger
:
'blur'
}
],
bookDateRange
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
bookDateRange
)
{
let
startDate
=
toEast8Date
(
this
.
listQuery
.
bookedStartDate
)
let
endDate
=
toEast8Date
(
this
.
listQuery
.
bookedEndDate
)
if
(
this
.
$utils
.
isDate
(
startDate
)
&&
startDate
.
setMonth
(
startDate
.
getMonth
()
+
2
)
<
endDate
)
{
return
callback
(
new
Error
(
'日期范围不能超过2个月'
)
)
}
}
callback
()
},
trigger
:
'blur'
}
]
},
rules4Apply
:
{
bookDateRange4Apply
:
[
{
validator
:
(
rule
,
value
,
callback
)
=>
{
if
(
!
this
.
$utils
.
isArray
(
this
.
bookDateRange4Apply
)
||
this
.
bookDateRange4Apply
.
length
===
0
)
{
return
callback
(
new
Error
(
'请输入预定时间。'
))
}
let
[
oriStartDate
,
ortEndDate
]
=
this
.
bookDateRange4Apply
if
(
!
this
.
$utils
.
isDate
(
oriStartDate
)
||
!
this
.
$utils
.
isDate
(
ortEndDate
)
)
{
return
callback
(
new
Error
(
'请输入预定时间。'
))
}
let
[
startDate
,
endDate
]
=
[
deepCopyDate
(
oriStartDate
),
deepCopyDate
(
ortEndDate
)
]
if
(
!
this
.
$utils
.
isDate
(
oriStartDate
)
||
!
this
.
$utils
.
isDate
(
ortEndDate
)
)
{
return
callback
()
}
for
(
let
curDate
=
startDate
;
curDate
<=
endDate
;
curDate
.
setDate
(
curDate
.
getDate
()
+
1
)
)
{
if
(
this
.
checkBookDate
(
curDate
))
{
return
callback
(
new
Error
(
'请选择从今天起两个月内,未预定的时间。'
)
)
}
}
callback
()
},
required
:
true
,
trigger
:
'blur'
}
],
vehicleUsername
:
[
{
required
:
true
,
message
:
'请输入使用人'
,
trigger
:
'blur'
}
],
vehicleUserPhone
:
[
{
required
:
true
,
message
:
'请输入使用人联系方式'
,
trigger
:
'blur'
},
{
pattern
:
/^1
[
3456789
]\d{9}
$/
,
message
:
'请输入正确的手机号'
}
],
bookType
:
[
{
required
:
true
,
message
:
'请选择用途'
}
],
liftCompany
:
[
{
required
:
true
,
message
:
'请选择提车分公司'
,
trigger
:
'blur'
,
type
:
'integer'
}
],
retCompany
:
[
{
required
:
true
,
message
:
'请选择还车分公司'
,
trigger
:
'blur'
,
type
:
'integer'
}
],
destination
:
[
{
min
:
0
,
max
:
200
,
message
:
'长度小于 200 个字符'
,
trigger
:
'blur'
}
],
remark
:
[
{
min
:
0
,
max
:
2000
,
message
:
'长度小于 2000 个字符'
,
trigger
:
'blur'
}
]
},
selectArry
:
[],
selectVehicleModelArray
:
[],
list
:
[],
...
...
@@ -1355,34 +296,11 @@ export default {
listLoading
:
true
,
listQuery
:
{
page
:
1
,
limit
:
2
0
,
limit
:
1
0
,
subordinateBranch
:
undefined
,
// 所属门店
zoneId
:
undefined
,
addrProvince
:
undefined
,
//省份编号
addrProvinceName
:
''
,
//省份名称
addrCity
:
undefined
,
//城市编号
addrCityName
:
''
,
//城市名称
addrTown
:
undefined
,
vin
:
undefined
,
insuranceCompany
:
undefined
,
mileageRangeStart
:
undefined
,
mileageRangeEnd
:
undefined
,
insuranceDateRange
:
undefined
,
mRange
:
undefined
,
aVRange
:
undefined
,
numberPlate
:
undefined
,
status
:
undefined
,
bookedStartDate
:
undefined
,
bookedEndDate
:
undefined
,
notBookedStartDate
:
undefined
,
notBookedEndDate
:
undefined
,
code
:
undefined
,
modelId
:
undefined
,
belongToName
:
undefined
,
useType
:
undefined
companyName
:
undefined
,
// 所属公司
parkBranchCompanyId
:
undefined
,
// 停靠门店
modelId
:
undefined
,
// 车型
},
showMoreQueryFilter
:
false
,
showMoreMoreCol
:
false
,
...
...
@@ -1428,309 +346,21 @@ export default {
arrivalBranchCompanyName
:
''
},
upkeepDialogVisible
:
false
,
allUpkeepItems
:
null
,
allZoneArr
:
[],
//全部片区
provinceRegions
:
[],
//片区下省份数据
cityList
:
[],
vehicleInfo_btn_edit
:
false
,
//编辑
vehicleInfo_btn_add
:
false
,
//新增
vehicleInfo_btn_apply
:
false
,
//申请预定
vehicleInfo_btn_ride
:
false
,
//出车
vehicleInfo_btn_ret
:
false
,
//删除
cityArr
:
[],
//城市编码
provinceArr
:
[],
//省份编码
allVehicleBranchCompany
:
[],
// 所属门店列表
allVehicleCompany
:
[],
// 所属公司列表
}
},
created
()
{
this
.
getVehicleBranchCompanyAll
()
// 获取 所属门店 所有门店筛选列表
this
.
getVehicleCompanyAll
()
// 获取 所属公司 所有公司筛选条件
let
t
=
this
axios
.
get
(
'../../static/city.json'
).
then
(
response
=>
{
t
.
cityArr
=
response
.
data
.
RECORDS
})
axios
.
get
(
'../../static/province.json'
).
then
(
response
=>
{
t
.
provinceArr
=
response
.
data
.
RECORDS
})
getAll
().
then
(
response
=>
{
this
.
allCompaniesArr
=
response
.
data
let
query
=
localStorage
.
getItem
(
'vehicleInfo'
)
if
(
query
!=
'null'
&&
query
)
{
let
queryJson
=
JSON
.
parse
(
query
)
if
(
queryJson
.
page
)
{
t
.
listQuery
.
page
=
queryJson
.
page
}
if
(
queryJson
.
limit
)
{
t
.
listQuery
.
limit
=
queryJson
.
limit
}
if
(
queryJson
.
addrCityName
)
{
t
.
listQuery
.
addrCityName
=
queryJson
.
addrCityName
}
if
(
queryJson
.
addrProvinceName
)
{
t
.
listQuery
.
addrProvinceName
=
queryJson
.
addrProvinceName
}
if
(
queryJson
.
addrCity
)
{
t
.
listQuery
.
addrCity
=
queryJson
.
addrCity
}
else
{
t
.
listQuery
.
addrCityName
=
''
}
if
(
queryJson
.
addrProvince
)
{
t
.
listQuery
.
addrProvince
=
queryJson
.
addrProvince
}
else
{
t
.
listQuery
.
addrProvinceName
=
''
}
// if (queryJson.vin) {
// t.listQuery.vin = queryJson.vin
// }
if
(
queryJson
.
insuranceCompany
)
{
t
.
listQuery
.
insuranceCompany
=
queryJson
.
insuranceCompany
}
if
(
queryJson
.
mileageRangeStart
)
{
t
.
listQuery
.
mileageRangeStart
=
queryJson
.
mileageRangeStart
}
if
(
queryJson
.
mileageRangeEnd
)
{
t
.
listQuery
.
mileageRangeEnd
=
queryJson
.
mileageRangeEnd
}
if
(
queryJson
.
insuranceDateRange
)
{
t
.
listQuery
.
insuranceDateRange
=
queryJson
.
insuranceDateRange
}
if
(
queryJson
.
mRange
)
{
t
.
listQuery
.
mRange
=
queryJson
.
mRange
}
if
(
queryJson
.
aVRange
)
{
t
.
listQuery
.
aVRange
=
queryJson
.
aVRange
}
if
(
queryJson
.
subordinateBranch
)
{
t
.
listQuery
.
subordinateBranch
=
queryJson
.
subordinateBranch
}
if
(
queryJson
.
numberPlate
)
{
t
.
listQuery
.
numberPlate
=
queryJson
.
numberPlate
}
if
(
queryJson
.
status
)
{
t
.
listQuery
.
status
=
queryJson
.
status
}
if
(
queryJson
.
bookedStartDate
)
{
t
.
listQuery
.
bookedStartDate
=
queryJson
.
bookedStartDate
}
if
(
queryJson
.
bookedEndDate
)
{
t
.
listQuery
.
bookedEndDate
=
queryJson
.
bookedEndDate
}
if
(
queryJson
.
notBookedStartDate
)
{
t
.
listQuery
.
notBookedStartDate
=
queryJson
.
notBookedStartDate
}
if
(
queryJson
.
notBookedEndDate
)
{
t
.
listQuery
.
notBookedEndDate
=
queryJson
.
notBookedEndDate
}
if
(
queryJson
.
code
)
{
t
.
listQuery
.
code
=
queryJson
.
code
}
if
(
queryJson
.
modelId
)
{
t
.
listQuery
.
modelId
=
queryJson
.
modelId
}
if
(
queryJson
.
subordinateBranch
)
{
t
.
allCompaniesArr
.
map
(
function
(
item
)
{
if
(
item
.
id
==
queryJson
.
subordinateBranch
)
{
t
.
state1
=
item
.
name
}
})
}
if
(
queryJson
.
useType
)
{
t
.
listQuery
.
useType
=
queryJson
.
useType
}
if
(
queryJson
.
belongToName
)
{
t
.
listQuery
.
belongToName
=
queryJson
.
belongToName
}
else
{
t
.
listQuery
.
belongToName
=
undefined
}
}
t
.
getAllVehicleType
()
//获取全部车型
})
getUpkeepAll
().
then
(
response
=>
{
this
.
allUpkeepItems
=
response
.
data
})
this
.
vehicleInfo_btn_edit
=
this
.
elements
[
'vehicleInfo:btn_edit'
]
this
.
vehicleInfo_btn_add
=
this
.
elements
[
'vehicleInfo:btn_add'
]
this
.
vehicleInfo_btn_apply
=
this
.
elements
[
'vehicleInfo:btn_apply'
]
this
.
vehicleInfo_btn_ride
=
this
.
elements
[
'vehicleInfo:btn_ride'
]
this
.
vehicleInfo_btn_ret
=
this
.
elements
[
'vehicleInfo:btn_ret'
]
t
.
getList
()
// 获取车辆列表
t
.
getAllVehicleType
()
//获取全部车型
},
computed
:
{
...
mapGetters
([
'elements'
,
'belong2Type'
,
'vehicleStatus'
]),
cityRegions
()
{
if
(
!
this
.
$utils
.
isInteger
(
this
.
form
.
addrProvince
))
{
return
null
}
return
getSonRegionByCodes
(
this
.
form
.
addrProvince
)
},
townRegions
()
{
if
(
!
this
.
$utils
.
isInteger
(
this
.
form
.
addrCity
))
{
return
null
}
return
getSonRegionByCodes
(
this
.
form
.
addrCity
)
},
getAllZoneList
()
{
let
that
=
this
that
.
allZoneArr
=
getAllZone
()
return
that
.
allZoneArr
},
townRegions4Query
()
{
if
(
!
this
.
$utils
.
isInteger
(
this
.
listQuery
.
addrCity
))
{
return
null
}
return
getSonRegionByCodes
(
this
.
listQuery
.
addrCity
)
},
getHeaderWithToken
()
{
return
{
Authorization
:
getToken
()
}
},
getSelectedAccItemStr
()
{
if
(
!
this
.
$utils
.
isEmpty
(
this
.
form4Apply
.
selectedAccItem
))
{
let
rsStr
=
''
for
(
let
key
in
this
.
form4Apply
.
selectedAccItem
)
{
rsStr
=
rsStr
+
this
.
$refs
.
accItemSelector
.
getNameById
(
key
)
+
' : '
+
this
.
form4Apply
.
selectedAccItem
[
key
]
+
'
\
n'
}
return
rsStr
}
return
''
},
getUnkownBrandCode
:
()
=>
VEHICLE_CONSTANT_BRAND_CODE_UNKOWN
,
getCurBookedInfo
:
function
()
{
if
(
!
this
.
$utils
.
isEmpty
(
this
.
curBookedInfo3Month
)
&&
this
.
curBookedInfo3Month
.
length
>
0
)
{
let
rs
=
{}
for
(
let
index
in
this
.
curBookedInfo3Month
)
{
rs
[
this
.
curBookedInfo3Month
[
index
].
yearMonth
]
=
this
.
curBookedInfo3Month
[
index
].
bookedDate
}
return
rs
}
return
undefined
},
bookDateRange
:
{
get
:
function
()
{
let
startDate
=
undefined
let
endDate
=
undefined
if
(
this
.
$utils
.
isString
(
this
.
listQuery
.
bookedStartDate
)
&&
this
.
listQuery
.
bookedStartDate
!==
''
)
{
startDate
=
toEast8Date
(
this
.
listQuery
.
bookedStartDate
)
}
if
(
this
.
$utils
.
isString
(
this
.
listQuery
.
bookedEndDate
)
&&
this
.
listQuery
.
bookedEndDate
!==
''
)
{
endDate
=
toEast8Date
(
this
.
listQuery
.
bookedEndDate
)
}
return
[
startDate
,
endDate
]
},
set
:
function
([
startDate
,
endDate
])
{
if
(
this
.
$utils
.
isDate
(
startDate
))
{
this
.
listQuery
.
bookedStartDate
=
formatDate
(
startDate
,
'yyyy-MM-dd'
)
}
else
{
this
.
listQuery
.
bookedStartDate
=
undefined
}
if
(
this
.
$utils
.
isDate
(
endDate
))
{
this
.
listQuery
.
bookedEndDate
=
formatDate
(
endDate
,
'yyyy-MM-dd'
)
}
else
{
this
.
listQuery
.
bookedEndDate
=
undefined
}
}
},
notBookDateRange
:
{
get
:
function
()
{
let
startDate
=
undefined
let
endDate
=
undefined
if
(
this
.
$utils
.
isString
(
this
.
listQuery
.
notBookedStartDate
)
&&
this
.
listQuery
.
notBookedStartDate
!==
''
)
{
startDate
=
toEast8Date
(
this
.
listQuery
.
notBookedStartDate
)
}
if
(
this
.
$utils
.
isString
(
this
.
listQuery
.
notBookedEndDate
)
&&
this
.
listQuery
.
notBookedEndDate
!==
''
)
{
endDate
=
toEast8Date
(
this
.
listQuery
.
notBookedEndDate
)
}
return
[
startDate
,
endDate
]
},
set
:
function
([
startDate
,
endDate
])
{
if
(
this
.
$utils
.
isDate
(
startDate
))
{
this
.
listQuery
.
notBookedStartDate
=
formatDate
(
startDate
,
'yyyy-MM-dd'
)
}
else
{
this
.
listQuery
.
notBookedStartDate
=
undefined
}
if
(
this
.
$utils
.
isDate
(
endDate
))
{
this
.
listQuery
.
notBookedEndDate
=
formatDate
(
endDate
,
'yyyy-MM-dd'
)
}
else
{
this
.
listQuery
.
notBookedEndDate
=
undefined
}
}
},
bookDateRange4Apply
:
{
get
:
function
()
{
let
startDate
=
undefined
let
endDate
=
undefined
if
(
this
.
$utils
.
isString
(
this
.
form4Apply
.
bookStartDate
)
&&
this
.
form4Apply
.
bookStartDate
!==
''
)
{
startDate
=
toEast8Date
(
this
.
form4Apply
.
bookStartDate
)
}
if
(
this
.
$utils
.
isString
(
this
.
form4Apply
.
bookEndDate
)
&&
this
.
form4Apply
.
bookEndDate
!==
''
)
{
endDate
=
toEast8Date
(
this
.
form4Apply
.
bookEndDate
)
}
return
[
startDate
,
endDate
]
},
set
:
function
([
startDate
,
endDate
])
{
if
(
this
.
$utils
.
isDate
(
startDate
))
{
this
.
form4Apply
.
bookStartDate
=
formatDate
(
startDate
,
'yyyy-MM-dd hh:mm:ss'
)
}
else
{
this
.
form4Apply
.
bookStartDate
=
undefined
}
if
(
this
.
$utils
.
isDate
(
endDate
))
{
this
.
form4Apply
.
bookEndDate
=
formatDate
(
endDate
,
'yyyy-MM-dd hh:mm:ss'
)
}
else
{
this
.
form4Apply
.
bookEndDate
=
undefined
}
}
}
},
methods
:
{
/**
...
...
@@ -1738,7 +368,7 @@ export default {
*/
getVehicleBranchCompanyAll
(){
vehicleBranchCompanyAll
({
state
:
1
}).
then
(
response
=>
{
if
(
response
.
status
==
200
){
debugger
if
(
response
.
status
==
200
){
this
.
allVehicleBranchCompany
=
response
.
data
}
else
{
this
.
$notify
({
...
...
@@ -1755,7 +385,7 @@ export default {
*/
getVehicleCompanyAll
(){
vehicleCompanyAll
({
state
:
1
}).
then
(
response
=>
{
if
(
response
.
status
==
200
){
debugger
if
(
response
.
status
==
200
){
this
.
allVehicleCompany
=
response
.
data
}
else
{
this
.
$notify
({
...
...
@@ -1817,62 +447,19 @@ export default {
listRs
=
response
.
data
}
this
.
allVehicleList
=
listRs
let
query
=
localStorage
.
getItem
(
'vehicleInfo'
)
if
(
query
!=
'null'
&&
query
)
{
let
queryJson
=
JSON
.
parse
(
query
)
if
(
queryJson
.
modelId
)
{
t
.
allVehicleList
.
map
(
function
(
item
)
{
if
(
item
.
id
==
queryJson
.
modelId
)
{
t
.
vehicleArr
=
item
.
name
}
})
}
}
t
.
getList
()
})
},
/**
* 重置
* */
reloadPage
()
{
this
.
state1
=
''
this
.
vehicleArr
=
''
this
.
listQuery
=
{
page
:
1
,
limit
:
20
,
zoneId
:
undefined
,
addrProvince
:
undefined
,
addrCity
:
undefined
,
addrProvinceName
:
''
,
addrCityName
:
''
,
addrTown
:
undefined
,
vin
:
undefined
,
insuranceCompany
:
undefined
,
mileageRangeStart
:
undefined
,
mileageRangeEnd
:
undefined
,
insuranceDateRange
:
undefined
,
mRange
:
undefined
,
aVRange
:
undefined
,
subordinateBranch
:
undefined
,
numberPlate
:
undefined
,
status
:
undefined
,
bookedStartDate
:
undefined
,
bookedEndDate
:
undefined
,
notBookedStartDate
:
undefined
,
notBookedEndDate
:
undefined
,
code
:
undefined
}
if
(
this
.
listQuery
)
{
if
(
!
this
.
listQuery
.
addrProvince
)
{
this
.
listQuery
.
addrProvinceName
=
''
}
if
(
!
this
.
listQuery
.
addrCity
)
{
this
.
listQuery
.
addrCityName
=
''
}
localStorage
.
setItem
(
'vehicleInfo'
,
JSON
.
stringify
(
this
.
listQuery
)
)
page
:
1
,
limit
:
20
,
subordinateBranch
:
undefined
,
// 所属门店
companyName
:
undefined
,
// 所属公司
parkBranchCompanyId
:
undefined
,
// 停靠门店
modelId
:
undefined
,
// 车型
}
this
.
getList
()
},
...
...
@@ -2077,441 +664,16 @@ export default {
}
console
.
log
(
item
)
},
/**
* 提车分公司
* */
handleSelect3
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
form4Apply
.
liftCompany
=
undefined
}
else
{
this
.
form4Apply
.
liftCompany
=
item
.
id
}
console
.
log
(
item
)
},
/**
* 还车分公司
* */
handleSelect4
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
form4Apply
.
retCompany
=
undefined
}
else
{
this
.
form4Apply
.
retCompany
=
item
.
id
}
console
.
log
(
item
)
},
/**
* 所属分公司
* */
handleSelectSubordinate
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
form
.
subordinateBranch
=
undefined
// this.form.subordinateBranchName = "";
}
else
{
this
.
form
.
subordinateBranch
=
item
.
id
// this.form.subordinateBranchName = item.name;
}
},
handleVehicleModelSelectSubordinate
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
form
.
modelId
=
undefined
}
else
{
this
.
form
.
modelId
=
item
.
id
}
},
/**
* 停靠分公司
* */
handleSelectPark
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
form
.
parkBranchCompanyId
=
undefined
this
.
form
.
parkBranchCompanyName
=
''
}
else
{
this
.
form
.
parkBranchCompanyId
=
item
.
id
this
.
form
.
parkBranchCompanyName
=
item
.
name
}
},
handleSelect1
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
form
.
subordinateBranch
=
undefined
}
else
{
this
.
form
.
subordinateBranch
=
item
.
id
}
console
.
log
(
item
)
},
/**
* 选择省份
*/
handleSelectProvince
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
listQuery
.
addrProvince
=
undefined
}
else
{
this
.
listQuery
.
addrProvince
=
item
.
code
}
},
/**
* 选择城市
*/
handleSelectCity
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
listQuery
.
addrCity
=
undefined
}
else
{
this
.
listQuery
.
addrCity
=
item
.
code
}
},
handleSelect
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
listQuery
.
subordinateBranch
=
undefined
}
else
{
this
.
listQuery
.
subordinateBranch
=
item
.
id
}
console
.
log
(
item
)
},
handleVehicleModelSelect
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
listQuery
.
modelId
=
undefined
}
else
{
this
.
listQuery
.
modelId
=
item
.
id
}
},
/**
* 出车分公司
* */
handleSelectPark1
(
item
)
{
if
(
item
.
value
==
'全部'
)
{
this
.
departureForm
.
departureBranchCompanyId
=
undefined
this
.
departureForm
.
departureBranchCompanyName
=
''
}
else
{
this
.
departureForm
.
departureBranchCompanyId
=
item
.
id
this
.
departureForm
.
departureBranchCompanyName
=
item
.
name
}
},
/**
* 保养结束
* */
upkeepEndHandler
(
row
)
{
console
.
dir
(
row
)
this
.
$confirm
(
'此操作将结束保养, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
upkeepEndVehicle
({
vehicleId
:
row
.
id
}).
then
(()
=>
{
this
.
$notify
({
title
:
'成功'
,
message
:
'操作成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
getList
()
})
})
},
/**
* 操作-保养-按钮
* */
upkeepHandler
(
row
)
{
this
.
upkeepRow
=
row
this
.
upkeepDialogVisible
=
true
},
handleBookRecord
(
row
)
{
this
.
$router
.
push
({
path
:
'/vehicle/vehicleSchedulManage'
,
query
:
{
numberPlate
:
row
.
numberPlate
}
})
},
handleDepartureLog
(
row
)
{
this
.
$router
.
push
({
path
:
'/vehicle/vehicleDepartureLog'
,
query
:
{
numberPlate
:
row
.
numberPlate
}
})
},
arrivalHandler
(
row
)
{
// open dialog
this
.
arrivalDialogVisible
=
true
this
.
clearArrivalForm
()
this
.
arrivalForm
.
vehicleId
=
row
.
id
this
.
arrivalForm
.
mileage
=
row
.
mileage
this
.
arrivalForm
.
arrivalBranchCompanyId
=
row
.
subordinateBranch
let
that
=
this
let
selectArry
=
[]
this
.
allCompaniesArr
.
map
(
function
(
item
)
{
item
.
value
=
item
.
name
selectArry
.
push
(
item
)
})
selectArry
.
map
(
function
(
iitem
)
{
if
(
row
.
subordinateBranch
==
iitem
.
id
)
{
that
.
arrivalForm
.
arrivalBranchCompanyName
=
iitem
.
name
}
})
this
.
arrivalForm
.
numberPlate
=
row
.
numberPlate
this
.
arrivalForm
.
vehicleDate
=
Date
()
},
cancelArrival
()
{
this
.
arrivalDialogVisible
=
false
this
.
clearArrivalForm
()
},
/**
* 收车-确定
*/
arrivalVehicleHandler
()
{
if
(
this
.
arrivalForm
.
arrivalBranchCompanyName
==
''
||
this
.
arrivalForm
.
arrivalBranchCompanyName
==
'全部'
)
{
this
.
arrivalForm
.
arrivalBranchCompanyId
=
undefined
}
arrivalVehicle
(
this
.
arrivalForm
).
then
(
response
=>
{
if
(
response
.
code
===
rsCode
.
RS_CODE_SUC
)
{
this
.
arrivalDialogVisible
=
false
this
.
$notify
({
title
:
'成功'
,
message
:
'收车成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
getList
()
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
rsCode
.
msg
[
response
.
code
]
?
rsCode
.
msg
[
response
.
code
]
:
'操作失败!'
,
type
:
'error'
,
duration
:
2000
})
}
})
},
clearArrivalForm
()
{
this
.
arrivalForm
=
{
vehicleId
:
null
,
numberPlate
:
null
,
arrivalDate
:
null
,
recycleMan
:
null
,
recycleManTel
:
null
,
mileage
:
null
,
arrivalBranchCompanyId
:
null
,
arrivalBranchCompanyName
:
''
}
},
/**
* 出车-按钮
* */
departureHandler
(
row
)
{
this
.
departureRow
=
row
this
.
departureDialogVisible
=
true
},
getAllBelong2Type
:
function
()
{
return
this
.
belong2Type
},
getBelongToNameStr
(
row
)
{
if
(
!
this
.
$utils
.
isInteger
(
row
.
belongTo
))
{
return
undefined
}
if
(
BELONG_TO_TYPE_OWN
===
row
.
belongTo
)
{
return
this
.
belong2Type
[
row
.
belongTo
].
val
}
if
(
this
.
$utils
.
isString
(
row
.
belongToName
)
&&
!
this
.
$utils
.
isEmpty
(
row
.
belongToName
)
)
{
return
row
.
belongToName
}
return
undefined
},
showImgDialog
(
drivingLicensePath
)
{
this
.
licenceSrcUrl
=
this
.
getDrivingLicenseUrl
(
drivingLicensePath
)
this
.
dialogForm4LicenceVisible
=
true
},
getDrivingLicenseUrl
(
drivingLicensePath
)
{
if
(
drivingLicensePath
.
indexOf
(
'https'
)
>
-
1
)
{
return
drivingLicensePath
}
else
{
return
(
process
.
env
.
BASE_API
+
'/vehicle/vehicleInfo/download/drivingLicense?realFileRelPath='
+
encodeURI
(
drivingLicensePath
)
)
}
},
handleAvatarSuccess
(
res
,
file
)
{
this
.
form
.
drivingLicensePath
=
res
.
data
this
.
showLoadingBody
=
false
},
handleAvatarSuccessF
(
res
,
file
)
{
this
.
form
.
drivingLicenseDuplicatePath
=
res
.
data
this
.
showLoadingBody
=
false
},
handleAvatarSuccessPDF
(
res
,
file
)
{
if
(
res
.
data
)
{
if
(
this
.
pdfList
.
length
>=
0
)
{
var
data
=
{
"id"
:
this
.
pdfList
.
length
+
1
,
"name"
:
"车辆保单"
+
(
this
.
pdfList
.
length
+
1
),
"url"
:
res
.
data
}
this
.
pdfList
.
push
(
data
)
}
}
this
.
showLoadingBody
=
false
},
downloadPDF
(
i
)
{
var
data
=
this
.
pdfList
[
i
].
url
;
if
(
data
)
{
window
.
open
(
data
,
'_blank'
);
}
else
{
alert
(
"车辆保单不存在"
)
}
},
beforeAvatarUpload
(
file
)
{
const
isJPG
=
file
.
type
===
'image/jpeg'
||
file
.
type
===
'image/gif'
file
.
type
===
'image/jpeg'
||
file
.
type
===
'image/gif'
||
file
.
type
===
'image/pdf'
const
isLt2M
=
file
.
size
/
1024
/
1024
<
10
getVehicleStatus
:
function
(
code
)
{
// console.log(this.getAllVehicleStatus()[1].val);
// let demo = this.getAllVehicleStatus.filter(item => item)
// console.log(this.vehicleStatus[code]);
if
(
!
isJPG
)
{
this
.
$message
.
error
(
'上传图片只能是 JPG/GIF 格式!'
)
}
if
(
!
isLt2M
)
{
this
.
$message
.
error
(
'上传图片大小不能超过 10MB!'
)
}
// this.showLoadingBody = true
return
isJPG
&&
isLt2M
},
accItemSelected
(
selected
)
{
this
.
form4Apply
.
selectedAccItem
=
selected
},
accItemClear
()
{
this
.
form4Apply
.
selectedAccItem
=
undefined
},
handleAccItemSelect
()
{
this
.
$refs
.
accItemSelector
.
show
()
},
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
)
{
getBookedInfo
(
this
.
form4BookInfo
.
vehicle
,
date
).
then
(
response
=>
{
this
.
curBookedInfo
=
response
.
data
})
},
checkBookDate
:
function
(
time
)
{
let
nowDate
=
newEast8Date
()
if
(
this
.
$utils
.
toDateString
(
time
,
'yyyy-MM-dd'
)
<
this
.
$utils
.
toDateString
(
nowDate
,
'yyyy-MM-dd'
)
)
{
return
true
}
if
(
nowDate
.
setMonth
(
nowDate
.
getMonth
()
+
2
)
<
time
)
{
//预定范围两个月内
return
true
}
let
curYearMonth
=
formatDate
(
time
,
'yyyy-MM'
)
if
(
!
this
.
$utils
.
isEmpty
(
this
.
getCurBookedInfo
)
&&
this
.
$utils
.
isInteger
(
this
.
getCurBookedInfo
[
curYearMonth
])
)
{
let
int4BitMap
=
this
.
getCurBookedInfo
[
curYearMonth
]
let
dayOfMonth
=
time
.
getDate
()
return
(
int4BitMap
&
(
1
<<
(
dayOfMonth
-
1
)))
!=
0
}
return
false
},
checkIfRuning
:
vehicle
=>
vehicle
.
status
===
VEHICLE_CONSTANT_STATUS_NORMAL
,
getVehicleStatus
:
function
(
code
)
{
// console.log(this.getAllVehicleStatus()[1].val);
// let demo = this.getAllVehicleStatus.filter(item => item)
// console.log(this.vehicleStatus[code]);
return
this
.
getAllVehicleStatus
()[
code
].
val
},
return
this
.
getAllVehicleStatus
()[
code
].
val
},
/**
* 出行状态
*/
getAllVehicleStatus
:
function
()
{
return
{
1
:
{
...
...
@@ -2540,155 +702,42 @@ export default {
}
}
},
getBrand
:
function
(
code
)
{
if
(
!
this
.
$utils
.
isInteger
(
code
)
||
code
==
VEHICLE_CONSTANT_BRAND_CODE_UNKOWN
)
{
return
'未知'
}
return
getConstantByTypeAndCode
(
VEHICLE_CONSTANT_VEHICLE_BRAND
,
code
)
?
getConstantByTypeAndCode
(
VEHICLE_CONSTANT_VEHICLE_BRAND
,
code
)
.
val
:
'品牌不存在'
},
getAllBranch
:
()
=>
{
return
getConstantListByType
(
VEHICLE_CONSTANT_VEHICLE_BRAND
)
},
getUseType
:
function
(
code
)
{
if
(
!
this
.
$utils
.
isInteger
(
code
)
||
code
==
VEHICLE_CONSTANT_USE_TYPE_UNKOWN
)
{
return
'未知'
}
return
getConstantByTypeAndCode
(
VEHICLE_CONSTANT_VEHICLE_USE
,
code
)
?
getConstantByTypeAndCode
(
VEHICLE_CONSTANT_VEHICLE_USE
,
code
)
.
val
:
'用途未知'
},
getAllUseType
:
()
=>
{
return
getConstantListByType
(
VEHICLE_CONSTANT_VEHICLE_USE
)
},
/**
* 获取车辆列表
*/
getList
()
{
// this.listQuery.vin = null
this
.
listLoading
=
true
let
listQueryTemp
=
this
.
fillDateRange2Object
(
this
.
listQuery
,
'mRange'
,
'mRangeDateStart'
,
'mRangeDateEnd'
)
listQueryTemp
=
this
.
fillDateRange2Object
(
listQueryTemp
,
'aVRange'
,
'aVRangeDateStart'
,
'aVRangeDateEnd'
)
listQueryTemp
=
this
.
fillDateRange2Object
(
listQueryTemp
,
'insuranceDateRange'
,
'insuranceDateRangeStart'
,
'insuranceDateRangeEnd'
)
if
(
!
this
.
state1
)
{
listQueryTemp
.
subordinateBranch
=
undefined
}
if
(
!
this
.
vehicleArr
)
{
listQueryTemp
.
modelId
=
undefined
}
if
(
!
this
.
listQuery
.
belongToName
)
{
this
.
listQuery
.
belongToName
=
undefined
}
page
(
listQueryTemp
).
then
(
response
=>
{
page
(
this
.
listQuery
).
then
(
response
=>
{
this
.
listLoading
=
false
if
(
response
.
code
==
1
)
{
let
totalCountRs
=
undefined
let
listRs
=
undefined
// if (
// !this.$utils.isEmpty(response.data.data) &&
// this.$utils.isInteger(response.data.totalCount)
// ) {
// listRs = response.data.data
// totalCountRs = response.data.totalCount
// listRs.map(function(item) {
// item.visible2 = false
// })
// }
this
.
listLoading
=
false
console
.
log
(
response
.
data
.
data
)
this
.
list
=
response
.
data
.
data
this
.
total
=
response
.
data
.
totalCount
}
else
{
this
.
list
=
[]
this
.
listLoading
=
false
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
getAddrStr
(
branchCompany
)
{
let
regions
=
getRegionByCodes
([
branchCompany
.
addrProvince
,
branchCompany
.
addrCity
,
branchCompany
.
addrTown
])
return
(
regions
[
0
].
name
+
' '
+
regions
[
1
].
name
+
' '
+
regions
[
2
].
name
+
' '
)
},
/**
* 搜索
*/
handleFilter
(
p
)
{
let
t
=
this
this
.
listQuery
.
page
=
1
this
.
$refs
.
queryForm
.
validate
(
valid
=>
{
if
(
valid
)
{
if
(
t
.
listQuery
)
{
localStorage
.
setItem
(
'vehicleInfo'
,
JSON
.
stringify
(
this
.
listQuery
)
)
}
//搜索
if
(
p
==
'search'
)
{
this
.
getList
()
}
//下载
if
(
p
==
'download'
)
{
this
.
download
()
}
if
(
p
==
'export'
)
{
this
.
exportExcelInfo
();
}
}
else
{
return
false
}
})
this
.
getList
()
},
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
if
(
this
.
listQuery
)
{
localStorage
.
setItem
(
'vehicleInfo'
,
JSON
.
stringify
(
this
.
listQuery
)
)
}
this
.
getList
()
},
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
if
(
this
.
listQuery
)
{
localStorage
.
setItem
(
'vehicleInfo'
,
JSON
.
stringify
(
this
.
listQuery
)
)
}
this
.
getList
()
},
/**
...
...
@@ -2706,34 +755,6 @@ export default {
this
.
oneRow
=
row
this
.
oneDialogVisible
=
true
},
/**
* 操作-申请预定
* */
handleApply
(
row
)
{
this
.
resetTemp4Apply
()
let
that
=
this
let
selectArry
=
[]
this
.
allCompaniesArr
.
map
(
function
(
item
)
{
item
.
value
=
item
.
name
selectArry
.
push
(
item
)
})
this
.
form4Apply
.
liftCompany
=
row
.
parkBranchCompanyId
this
.
form4Apply
.
vehicleId
=
row
.
id
selectArry
.
map
(
function
(
iitem
)
{
if
(
row
.
parkBranchCompanyId
==
iitem
.
id
)
{
that
.
form4Apply
.
state3
=
iitem
.
name
}
})
this
.
form4Apply
.
vehicle
=
row
.
id
getBookedInfoIn2Month
(
row
.
id
).
then
(
response
=>
{
this
.
curBookedInfo3Month
=
response
.
data
this
.
dialogStatus
=
'apply'
this
.
dialogForm4ApplyVisible
=
true
})
},
handleBookInfo
(
row
)
{
this
.
$refs
.
bookInfoViewer
.
handleBookInfo
(
row
.
id
)
},
create
(
formName
)
{
const
set
=
this
.
$refs
set
[
formName
].
validate
(
valid
=>
{
...
...
src/views/vehicle/vehicleInfo/oneVehicle.vue
View file @
16ec0546
<
template
>
<el-dialog
:title=
"title"
:visible
.
sync=
"oneDialogVisible"
@
close=
"closePop"
:modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"140px"
style=
"margin-top: -30px;"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"140px"
style=
"margin-top: -30px;
max-height: 500px;overflow: auto;
"
>
<p
style=
"padding: 10px;background: #f5f5f5;"
>
基础信息
</p>
<el-form-item
label=
"状态"
prop=
"state"
>
<el-radio-group
v-model=
"form.state"
>
<el-radio
:label=
"1"
>
上架
</el-radio>
<el-radio
:label=
"2"
>
下架
</el-radio>
</el-radio-group>
</el-form-item>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车牌号码"
prop=
"numberPlate"
>
...
...
@@ -46,17 +40,14 @@
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"停靠门店"
prop=
"stopName"
>
<el-select
style=
"width: 100%;"
class=
"filter-item"
v-model=
"form.stopName"
placeholder=
"请选择停靠门店"
>
<el-option
key=
"1"
label=
"全新"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"9成新"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"8成新"
:value=
"3"
></el-option>
<el-option
key=
"4"
label=
"7成新"
:value=
"4"
></el-option>
<el-form-item
label=
"停靠门店"
prop=
"parkBranchCompanyId"
>
<el-select
class=
"filter-item"
v-model=
"form.parkBranchCompanyId"
placeholder=
"请选择停靠门店"
filterable
>
<el-option
v-for=
"(val,index) in allVehicleBranchCompany"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
...
...
@@ -113,30 +104,252 @@
<p
style=
"padding: 10px;background: #f5f5f5;"
>
车辆归属
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"所属门店"
prop=
"vehicleStatus"
>
<el-form-item
label=
"所属门店"
prop=
"subordinateBranch"
>
<el-select
class=
"filter-item"
v-model=
"form.subordinateBranch"
placeholder=
"请选择所属门店"
filterable
>
<el-option
v-for=
"(val,index) in allVehicleBranchCompany"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"托管人"
>
<el-input
v-model=
"form.belongToName"
placeholder=
"请输入托管人"
></el-input>
</el-form-item>
</el-col>
</el-row>
<p
style=
"padding: 10px;background: #f5f5f5;"
>
品牌、车型
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆品牌"
prop=
"brand"
>
<el-select
class=
"filter-item"
v-model=
"form.brand"
placeholder=
"请选择车辆品牌"
style=
"width:100%"
>
<el-option
:key=
"getUnkownBrandCode"
label=
"未知"
:value=
"getUnkownBrandCode"
></el-option>
<el-option
v-for=
"item in getAllBranch() "
:key=
"item.code"
:label=
"item.val"
:value=
"item.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"车型"
prop=
"modelId"
>
<el-select
class=
"filter-item"
v-model=
"form.modelId"
placeholder=
"请选择车型"
filterable
>
<el-option
v-for=
"(val,index) in allVehicleList"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"生产商"
>
<el-select
class=
"filter-item"
v-model=
"form.manufacturer"
placeholder=
"请选择生产商"
filterable
>
<el-option
v-for=
"(val,index) in allManufacturer"
:key=
"index"
:label=
"val"
:value=
"val"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<p
style=
"padding: 10px;background: #f5f5f5;"
>
车辆信息
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车架号"
>
<el-input
v-model=
"form.vin"
placeholder=
"请输入车架号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"发动机号"
>
<el-input
v-model=
"form.engineNum"
placeholder=
"请输入发动机号"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"上牌日期"
>
<el-date-picker
v-model=
"form.vehicleRegisterDate"
type =
"datetime"
placeholder =
"上牌日期"
value-format=
" yyyy-MM-dd HH:mm"
format=
"yyyy-MM-dd HH:mm"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"年审日期"
>
<el-date-picker
v-model=
"form.annualVerificationDate"
type=
"date"
placeholder=
"选择日期"
style=
"width:100%"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item
label=
"行驶证"
:style=
"
{display:'block'}">
<el-upload
class=
"avatar-uploader"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:headers=
"getHeaderWithToken"
:on-success=
"handleAvatarSuccess"
:before-upload=
"beforeAvatarUpload"
:style=
"
{display:'inline-block'}"
>
<img
v-if=
"$utils.isString(form.drivingLicensePath) && !$utils.isEmpty(form.drivingLicensePath)"
:src=
"getDrivingLicenseUrl(form.drivingLicensePath)"
class=
"avatar"
:style=
"
{display:'block'}"
/>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
:style=
"
{lineHeight:'350px'}"
style="position: relative;"
>
<br
/>
<span
class=
"driving-title"
>
行驶证正面
</span>
</i>
</el-upload>
<el-upload
class=
"avatar-uploader"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:headers=
"getHeaderWithToken"
:on-success=
"handleAvatarSuccessF"
:before-upload=
"beforeAvatarUpload"
:style=
"
{display:'inline-block'}"
>
<img
v-if=
"$utils.isString(form.drivingLicenseDuplicatePath) && !$utils.isEmpty(form.drivingLicenseDuplicatePath)"
:src=
"getDrivingLicenseUrl(form.drivingLicenseDuplicatePath)"
class=
"avatar"
:style=
"
{display:'block'}"
/>
<i
v-else
class=
"el-icon-plus avatar-uploader-icon"
:style=
"
{lineHeight:'350px'}"
style="position: relative;"
>
<br
/>
<span
class=
"driving-title"
>
行驶证副本
</span>
</i>
</el-upload>
</el-form-item>
<p
style=
"padding: 10px;background: #f5f5f5;"
>
保险信息
</p>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"商业险公司"
>
<el-select
style=
"width: 100%;"
class=
"filter-item"
v-model=
"form.belongName"
placeholder=
"请选择所属门店"
v-model=
"form.insuranceCompany"
placeholder=
"请选择商业险公司"
style=
"width:100%"
>
<el-option
key=
"1"
label=
"全新"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"9成新"
:value=
"2"
></el-option>
<el-option
key=
"3"
label=
"8成新"
:value=
"3"
></el-option>
<el-option
key=
"4"
label=
"7成新"
:value=
"4"
></el-option>
<el-option
:key=
"undefined"
label=
"无"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val, index) in getAllInsuranceCompany() "
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"托管人"
>
<el-input
v-model=
"form.belongToName"
placeholder=
"请输入托管人"
></el-input>
<el-form-item
label=
"商业险单号"
>
<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=
"商业险日期"
>
<el-date-picker
v-model=
"form.insuranceEndDate"
type=
"date"
:editable=
"true"
format=
"yyyy-MM-dd"
placeholder=
"请选择商业险到期时间"
style=
"width:100%"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"交强险公司"
>
<el-select
class=
"filter-item"
v-model=
"form.strongInsuranceCompany"
placeholder=
"请选择交强险公司"
style=
"width:100%"
>
<el-option
:key=
"undefined"
label=
"无"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val, index) in getAllInsuranceCompany() "
:key=
"index"
:label=
"val.val"
:value=
"val.code"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"交强险单号"
>
<el-input
v-model
.
text=
"form.strongInsuranceNo"
placeholder=
"请输入交强险单号"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"交强险日期"
>
<el-date-picker
v-model=
"form.strongInsuranceEndDate"
type=
"date"
:editable=
"true"
format=
"yyyy-MM-dd"
placeholder=
"请选择交强险到期时间"
style=
"width:100%"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item
label=
"保单pdf"
:style=
"
{display:'block'}">
<el-upload
ref=
"uploadPdf"
:action=
"BASE_API + '/api/universal/file/app/unauth/admin/upload'"
:show-file-list=
"false"
:headers=
"getHeaderWithToken"
:on-success=
"handleAvatarSuccessPDF"
:style=
"
{display:'inline-block'}"
accept=".pdf"
>
<el-button
size=
"small"
plain
>
选择文件
</el-button>
</el-upload>
<div
v-for=
"(item, i) in pdfList"
:key =
i
@
click=
"downloadPDF(i)"
>
<span>
{{
item
.
name
}}
</span>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"flex-aic-jcc"
style=
"margin-top: 10px;"
>
<el-button
plain
@
click=
"closePop"
>
取消
</el-button>
<el-button
type=
"primary"
class=
"handle-ok"
@
click=
"handleOk('form')"
>
确定
</el-button>
<el-button
type=
"primary"
v-if=
"!isClick"
class=
"handle-ok"
@
click=
"handleOk('form')"
>
确定
</el-button>
<el-button
type=
"primary"
v-if=
"isClick"
class=
"handle-ok"
style=
"opacity: 0.4;"
:disabled=
"true"
>
确定
</el-button>
</div>
</el-dialog>
</
template
>
...
...
@@ -147,7 +360,18 @@
import
ElCol
from
'element-ui/packages/col/src/col'
import
ElRadio
from
"../../../../node_modules/element-ui/packages/radio/src/radio.vue"
;
import
ElButton
from
"../../../../node_modules/element-ui/packages/button/src/button.vue"
;
import
{
getObj
}
from
"../../../api/vehicle/vehicleInfo"
;
import
{
addObj
,
getObj
,
putObj
,
vehicleBranchCompanyAll
,
allManufacturer
}
from
"../../../api/vehicle/vehicleInfo"
;
import
{
getToken
}
from
'utils/auth'
import
{
VEHICLE_CONSTANT_VEHICLE_BRAND
,
VEHICLE_CONSTANT_BRAND_CODE_UNKOWN
,
}
from
'../../../store/modules/baseInfo'
import
{
getConstantListByType
,
getAllInsuranceCompany
,
getInsuranceCompany
}
from
'api/base_info/constant/'
import
{
getAllVehicleList
}
from
"../../../api/vehicleType"
;
export
default
{
props
:
[
'title'
,
'oneRow'
],
components
:
{
...
...
@@ -159,20 +383,41 @@
},
data
()
{
return
{
BASE_API
:
process
.
env
.
BASE_API
,
oneDialogVisible
:
false
,
allVehicleBranchCompany
:
[],
// 全部所属门店列表
allVehicleList
:
[],
//全部车型
allManufacturer
:
[],
// 生产商列表
isClick
:
false
,
// 添加、编辑-确定按钮 是否已点击
form
:
{
state
:
1
,
// 1、上架 2、下架
// state: 1, // 1、上架 2、下架
id
:
undefined
,
// 车辆id
numberPlate
:
undefined
,
// 车牌号码
code
:
undefined
,
// 车辆编号
status
:
undefined
,
// 出行状态
mileageLastUpdate
:
undefined
,
// 公里数
stopName
:
undefined
,
// 停靠门店
belongName
:
undefined
,
// 所属门店
parkBranchCompanyId
:
undefined
,
// 停靠门店
subordinateBranch
:
undefined
,
// 所属门店
belongToName
:
undefined
,
// 托管人
vehicleInnerStatus
:
undefined
,
// 内饰:1、全新,2、9成新,3、8成新,4、7成新
vehicleStatus
:
undefined
,
// 新旧程度:1、全新,2、9成新,3、8成新,4、7成新
vehicleBodyStatus
:
undefined
,
// 车身状况:1、无剐蹭,2、微瑕疵,3、无瑕疵
remark
:
undefined
,
// 备注
brand
:
undefined
,
// 车辆品牌
modelId
:
undefined
,
// 车型id
manufacturer
:
undefined
,
// 生产商
vin
:
undefined
,
//车架号
engineNum
:
undefined
,
//发动机号
vehicleRegisterDate
:
undefined
,
// 上牌日期
annualVerificationDate
:
undefined
,
// 年审日期
drivingLicensePath
:
undefined
,
// 行驶证正面
drivingLicenseDuplicatePath
:
undefined
,
// 行驶证副本
insuranceCompany
:
undefined
,
// 商业险公司
insuranceNo
:
undefined
,
// 商业险单号
insuranceEndDate
:
undefined
,
// 商业险日期
strongInsuranceCompany
:
undefined
,
// 交强险公司
strongInsuranceNo
:
undefined
,
// 交强险单号
strongInsuranceEndDate
:
undefined
,
// 交强险日期
},
rules
:
{
numberPlate
:
{
...
...
@@ -186,12 +431,12 @@
message
:
'请选择出行状态'
,
trigger
:
'change'
},
state
:
{
required
:
true
,
message
:
'请选择上下架状态'
,
trigger
:
'change'
},
stopName
:
{
//
state: {
//
required: true,
//
message: '请选择上下架状态',
//
trigger: 'change'
//
},
parkBranchCompanyId
:
{
required
:
true
,
message
:
'请选择停靠门店'
,
trigger
:
'change'
...
...
@@ -211,12 +456,23 @@
message
:
'请选择内饰'
,
trigger
:
'change'
},
belongName
:
{
subordinateBranch
:
{
required
:
true
,
message
:
'请选择所属门店'
,
trigger
:
'change'
}
},
brand
:
{
required
:
true
,
message
:
'请选择车辆品牌'
,
trigger
:
'change'
},
modelId
:
{
required
:
true
,
message
:
'请选择车型'
,
trigger
:
'change'
},
},
pdfList
:[],
// 保单列表
}
},
mounted
()
{
...
...
@@ -226,23 +482,196 @@
// 编辑
this
.
getVehicleDetail
()
// 获取车辆详情
}
this
.
getAllManufacturer
()
// 获取全部生产商
this
.
getAllVehicleType
()
// 获取全部车型
this
.
getVehicleBranchCompanyAll
()
// 获取所有门店
},
computed
:
{
...
mapGetters
([
'elements'
])
]),
getHeaderWithToken
()
{
return
{
Authorization
:
getToken
()
}
},
getUnkownBrandCode
:
()
=>
VEHICLE_CONSTANT_BRAND_CODE_UNKOWN
,
// 车辆品牌
},
methods
:
{
/**
* 获取全部供应商列表
*/
getAllManufacturer
(){
allManufacturer
().
then
(
response
=>
{
if
(
response
.
status
==
200
){
this
.
allManufacturer
=
response
.
data
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
/**
* 获取全部车型
* */
getAllVehicleType
()
{
getAllVehicleList
().
then
(
response
=>
{
if
(
response
.
status
==
200
){
let
listRs
=
undefined
if
(
!
this
.
$utils
.
isEmpty
(
response
.
data
))
{
listRs
=
response
.
data
}
this
.
allVehicleList
=
listRs
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
getAllInsuranceCompany
,
getInsuranceCompany
,
/**
* 获取所有门店
*/
getVehicleBranchCompanyAll
(){
vehicleBranchCompanyAll
({
state
:
1
}).
then
(
response
=>
{
if
(
response
.
status
==
200
){
this
.
allVehicleBranchCompany
=
response
.
data
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
/**
* 获取车辆全部品牌
*/
getAllBranch
:
()
=>
{
return
getConstantListByType
(
VEHICLE_CONSTANT_VEHICLE_BRAND
)
},
/**
* 获取车辆详情
*/
getVehicleDetail
(){
getObj
(
this
.
oneRow
.
id
).
then
(
response
=>
{
this
.
$utils
.
objectEach
(
response
.
data
,
(
item
,
key
)
=>
{
this
.
form
[
key
]
=
item
})
if
(
response
.
status
==
200
){
this
.
$utils
.
objectEach
(
response
.
data
,
(
item
,
key
)
=>
{
this
.
form
[
key
]
=
item
})
// this.form = {
// id: response.data.id, // 车辆id
// numberPlate: response.data.numberPlate, // 车牌号码
// code: response.data.code, // 车辆编号
// status: response.data.status, // 出行状态
// mileageLastUpdate: response.data.maintenanceMileage, // 公里数
// parkBranchCompanyId: response.data.parkBranchCompanyId, // 停靠门店
// subordinateBranch: response.data.subordinateBranch, // 所属门店
// belongToName: response.data.belongToName, // 托管人
// vehicleInnerStatus: response.data.vehicleInnerStatus, // 内饰:1、全新,2、9成新,3、8成新,4、7成新
// vehicleStatus: response.data.vehicleStatus, // 新旧程度:1、全新,2、9成新,3、8成新,4、7成新
// vehicleBodyStatus: response.data.vehicleBodyStatus, // 车身状况:1、无剐蹭,2、微瑕疵,3、无瑕疵
// remark: response.data.remark, // 备注
// }
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
beforeAvatarUpload
(
file
)
{
const
isJPG
=
file
.
type
===
'image/jpeg'
||
file
.
type
===
'image/gif'
file
.
type
===
'image/jpeg'
||
file
.
type
===
'image/gif'
||
file
.
type
===
'image/pdf'
const
isLt2M
=
file
.
size
/
1024
/
1024
<
10
if
(
!
isJPG
)
{
this
.
$message
.
error
(
'上传图片只能是 JPG/GIF 格式!'
)
}
if
(
!
isLt2M
)
{
this
.
$message
.
error
(
'上传图片大小不能超过 10MB!'
)
}
// this.showLoadingBody = true
return
isJPG
&&
isLt2M
},
/**
* 行驶证--正面
*/
handleAvatarSuccess
(
res
,
file
)
{
this
.
form
.
drivingLicensePath
=
res
.
data
this
.
showLoadingBody
=
false
},
/**
* 行驶证--副本
*/
handleAvatarSuccessF
(
res
,
file
)
{
this
.
form
.
drivingLicenseDuplicatePath
=
res
.
data
this
.
showLoadingBody
=
false
},
/**
* PDF保单上传
*/
handleAvatarSuccessPDF
(
res
,
file
)
{
if
(
res
.
data
)
{
if
(
this
.
pdfList
.
length
>=
0
)
{
var
data
=
{
"id"
:
this
.
pdfList
.
length
+
1
,
"name"
:
"车辆保单"
+
(
this
.
pdfList
.
length
+
1
),
"url"
:
res
.
data
}
this
.
pdfList
.
push
(
data
)
}
}
this
.
showLoadingBody
=
false
},
showImgDialog
(
drivingLicensePath
)
{
this
.
licenceSrcUrl
=
this
.
getDrivingLicenseUrl
(
drivingLicensePath
)
this
.
dialogForm4LicenceVisible
=
true
},
/**
* 行驶证--src
*/
getDrivingLicenseUrl
(
drivingLicensePath
)
{
if
(
drivingLicensePath
.
indexOf
(
'https'
)
>
-
1
)
{
return
drivingLicensePath
}
else
{
return
(
process
.
env
.
BASE_API
+
'/vehicle/vehicleInfo/download/drivingLicense?realFileRelPath='
+
encodeURI
(
drivingLicensePath
)
)
}
},
/**
* 下载保单
*/
downloadPDF
(
i
)
{
var
data
=
this
.
pdfList
[
i
].
url
;
if
(
data
)
{
window
.
open
(
data
,
'_blank'
);
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
'车辆保单不存在'
,
type
:
'error'
,
duration
:
2000
})
}
},
/**
* 公里数验证
*/
...
...
@@ -273,18 +702,33 @@
*/
cleanForm
(){
this
.
form
=
{
state
:
1
,
// 1、上架 2、下架
id
:
undefined
,
// 车辆id
numberPlate
:
undefined
,
// 车牌号码
code
:
undefined
,
// 车辆编号
status
:
undefined
,
// 出行状态
mileageLastUpdate
:
undefined
,
// 公里数
stopName
:
undefined
,
// 停靠门店
belongName
:
undefined
,
// 所属门店
parkBranchCompanyId
:
undefined
,
// 停靠门店
subordinateBranch
:
undefined
,
// 所属门店
belongToName
:
undefined
,
// 托管人
vehicleInnerStatus
:
undefined
,
// 内饰:1、全新,2、9成新,3、8成新,4、7成新
vehicleStatus
:
undefined
,
// 新旧程度:1、全新,2、9成新,3、8成新,4、7成新
vehicleBodyStatus
:
undefined
,
// 车身状况:1、无剐蹭,2、微瑕疵,3、无瑕疵
remark
:
undefined
,
// 备注
brand
:
undefined
,
// 车辆品牌
modelId
:
undefined
,
// 车型id
manufacturer
:
undefined
,
// 生产商
vin
:
undefined
,
//车架号
engineNum
:
undefined
,
//发动机号
vehicleRegisterDate
:
undefined
,
// 上牌日期
annualVerificationDate
:
undefined
,
// 年审日期
drivingLicensePath
:
undefined
,
// 行驶证正面
drivingLicenseDuplicatePath
:
undefined
,
// 行驶证副本
insuranceCompany
:
undefined
,
// 商业险公司
insuranceNo
:
undefined
,
// 商业险单号
insuranceEndDate
:
undefined
,
// 商业险日期
strongInsuranceCompany
:
undefined
,
// 交强险公司
strongInsuranceNo
:
undefined
,
// 交强险单号
strongInsuranceEndDate
:
undefined
,
// 交强险日期
}
},
/**
...
...
@@ -298,7 +742,58 @@
* 确定
*/
handleOk
(){
this
.
$emit
(
'oneDialogEvent'
,
true
);
const
set
=
this
.
$refs
if
(
this
.
isClick
)
{
return
}
this
.
isClick
=
true
set
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
id
)
{
// 编辑
putObj
(
this
.
form
).
then
(
response
=>
{
if
(
response
.
code
==
1
)
{
this
.
$notify
({
title
:
'成功'
,
message
:
'编辑成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
$emit
(
'oneDialogEvent'
,
true
);
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
}
else
{
// 添加
addObj
(
this
.
form
).
then
(
response
=>
{
if
(
response
.
code
==
1
)
{
this
.
$notify
({
title
:
'成功'
,
message
:
'添加成功'
,
type
:
'success'
,
duration
:
2000
})
this
.
$emit
(
'oneDialogEvent'
,
true
);
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
}
}
else
{
this
.
isClick
=
false
}
})
},
/**
* 出行状态
...
...
src/views/vehicle/vehiclePrice.vue
0 → 100644
View file @
16ec0546
<
template
>
<div
class=
"app-container calendar-list-container"
v-loading
.
body=
"showLoadingBody"
>
<div
class=
"filter-container"
ref=
"filter-container"
>
<el-form
ref=
"queryForm"
:inline=
"inline"
:model=
"listQuery"
label-width=
"100px"
>
<el-form-item
label=
"车牌号"
>
<el-input
v-model=
"listQuery.numberPlate"
placeholder=
"请输入车牌号"
></el-input>
</el-form-item>
<el-form-item
label=
"所属公司"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.companyId"
placeholder=
"请选择所属公司"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleCompany "
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所属门店"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.subordinateBranch"
placeholder=
"请选择所属门店"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleBranchCompany"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"车型"
>
<el-select
class=
"filter-item"
v-model=
"listQuery.modelId"
placeholder=
"请选择车型"
filterable
>
<el-option
:key=
"undefined"
label=
"全部"
:value=
"undefined"
></el-option>
<el-option
v-for=
"(val,index) in allVehicleList"
:key=
"index"
:label=
"val.name"
:value=
"val.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
icon=
"search"
@
click=
"handleFilter('search')"
>
搜索
</el-button>
<el-button
class=
"filter-item"
type=
"primary"
v-waves
@
click=
"reloadPage"
>
清除搜索
</el-button>
</div>
<el-table
:key=
"tableKey"
:data=
"list"
border
fit
highlight-current-row
style=
"width: 100%"
>
<el-table-column
type=
"index"
align=
"center"
label=
"序号"
width=
"65"
></el-table-column>
<el-table-column
align=
"center"
label=
"车牌号"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
numberPlate
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"车辆编码"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
code
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"车型"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
modelName
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"车龄"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
vehicleAge
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"新旧程度"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
vehicleStatus
==
4
?
'7成新'
:
scope
.
row
.
vehicleStatus
==
2
?
'9成新'
:
scope
.
row
.
vehicleStatus
==
3
?
'8成新'
:
'全新'
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"公里数"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
mileage
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"租赁价格"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
rentPrice
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"免费天数"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
rentFreeDay
}}
</span>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"small"
type=
"text"
@
click=
"handleGeneralPrice(scope.row)"
>
通用价格
</el-button>
<el-button
size=
"small"
type=
"text"
@
click=
"handlerFestivalPrice(scope.row)"
>
节假日价格
</el-button>
</
template
>
</el-table-column>
</el-table>
<el-pagination
class=
"pagination-container"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"listQuery.page"
:page-sizes=
"[10,20,30, 50]"
:page-size=
"listQuery.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
></el-pagination>
<!-- 通用价格设置 -->
<general-price-setting
v-on:generalDialogEvent=
"generalDialogEvent"
:one-row=
"oneRow"
v-if=
"generalDialogVisible"
></general-price-setting>
<!-- 节假日价格设置 -->
<festival-price-setting
v-on:festivalDialogEvent=
"festivalDialogEvent"
:one-row=
"oneRow"
v-if=
"festivalDialogVisible"
></festival-price-setting>
</div>
</template>
<
script
type=
"javascript"
>
import
generalPriceSetting
from
"./generalPriceSetting"
;
import
festivalPriceSetting
from
"./festivalPriceSetting"
;
import
{
vehicleCommonPriceInfo
,
vehicleBranchCompanyAll
,
vehicleCompanyAll
}
from
'api/vehicle/vehicleInfo/'
import
{
mapGetters
}
from
'vuex'
import
{
getAllVehicleList
}
from
"../../api/vehicleType"
;
export
default
{
components
:
{
generalPriceSetting
,
festivalPriceSetting
},
data
()
{
return
{
tableKey
:
0
,
oneRow
:
{},
// 当前操作项
festivalDialogVisible
:
false
,
// 节日价格弹框
generalDialogVisible
:
false
,
// 通用价格弹框
showLoadingBody
:
false
,
list
:
[],
total
:
null
,
listLoading
:
true
,
inline
:
true
,
listQuery
:
{
page
:
1
,
limit
:
20
,
subordinateBranch
:
undefined
,
// 所属门店
companyName
:
undefined
,
// 所属公司
modelId
:
undefined
,
// 车型
},
allVehicleBranchCompany
:
[],
// 所属门店列表
allVehicleCompany
:
[],
// 所属公司列表
allVehicleList
:
[],
//全部车型
}
},
created
()
{
this
.
getVehicleBranchCompanyAll
()
// 获取 所属门店 所有门店筛选列表
this
.
getVehicleCompanyAll
()
// 获取 所属公司 所有公司筛选条件
this
.
getList
()
this
.
getAllVehicleType
()
// 获取全部车型
},
computed
:
{
...
mapGetters
([
'elements'
]),
},
methods
:
{
/**
* 获取全部车型
* */
getAllVehicleType
()
{
let
t
=
this
getAllVehicleList
().
then
(
response
=>
{
let
listRs
=
undefined
if
(
!
this
.
$utils
.
isEmpty
(
response
.
data
))
{
listRs
=
response
.
data
}
this
.
allVehicleList
=
listRs
})
},
/**
* 获取所有门店-筛选列表
*/
getVehicleBranchCompanyAll
(){
vehicleBranchCompanyAll
({
state
:
1
}).
then
(
response
=>
{
if
(
response
.
status
==
200
){
this
.
allVehicleBranchCompany
=
response
.
data
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
/**
* 获取所属公司 所有公司--筛选条件
*/
getVehicleCompanyAll
(){
vehicleCompanyAll
({
state
:
1
}).
then
(
response
=>
{
if
(
response
.
status
==
200
){
this
.
allVehicleCompany
=
response
.
data
}
else
{
this
.
$notify
({
title
:
'失败'
,
message
:
response
.
message
,
type
:
'error'
,
duration
:
2000
})
}
})
},
/**
* 通用价格设置--返回
*/
generalDialogEvent
(
e
)
{
this
.
generalDialogVisible
=
false
;
if
(
e
)
{
this
.
getList
();
}
},
/**
* 通用价格设置--返回
*/
festivalDialogEvent
(
e
)
{
this
.
festivalDialogVisible
=
false
;
if
(
e
)
{
this
.
getList
();
}
},
/**
* 获取列表
*/
getList
()
{
vehicleCommonPriceInfo
(
this
.
listQuery
).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
listLoading
=
false
this
.
list
=
response
.
data
.
data
this
.
total
=
response
.
data
.
totalCount
}
else
{
this
.
list
=
[]
this
.
listLoading
=
false
}
})
},
/**
* 搜索
*/
handleFilter
(
p
)
{
this
.
listQuery
.
page
=
1
this
.
getList
()
},
/**
* 清除搜索
*/
reloadPage
(){
this
.
listQuery
=
{
page
:
1
,
limit
:
20
,
subordinateBranch
:
undefined
,
// 所属门店
}
this
.
getList
()
},
/**
* 一页显示数量调整
*/
handleSizeChange
(
val
)
{
this
.
listQuery
.
limit
=
val
this
.
getList
()
},
/**
* 翻页
*/
handleCurrentChange
(
val
)
{
this
.
listQuery
.
page
=
val
this
.
getList
()
},
/**
* 设置通用价格
*/
handleGeneralPrice
(
row
){
this
.
oneRow
=
row
this
.
generalDialogVisible
=
true
},
/**
* 设置节日价格
*/
handlerFestivalPrice
(
row
){
this
.
oneRow
=
row
this
.
festivalDialogVisible
=
true
},
}
}
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment