Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mes-ui
Project
Project
Details
Activity
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
mes
mes-ui
Commits
e8cafe3d
Commit
e8cafe3d
authored
Jan 26, 2024
by
李驰骋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
车辆管理提交
parent
646ea8d7
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
667 additions
and
0 deletions
+667
-0
vehicle.js
src/api/mes/md/vehicle.js
+44
-0
vehicleDispatch.js
src/api/mes/md/vehicleDispatch.js
+44
-0
singleSelect.vue
src/views/mes/md/vehicle/components/singleSelect.vue
+231
-0
dispatchAdd.vue
src/views/mes/md/vehicleDispatch/components/dispatchAdd.vue
+168
-0
dispatchBack.vue
src/views/mes/md/vehicleDispatch/components/dispatchBack.vue
+180
-0
No files found.
src/api/mes/md/vehicle.js
0 → 100644
View file @
e8cafe3d
import
request
from
'@/utils/request'
// 查询车辆列表列表
export
function
listVehicle
(
query
)
{
return
request
({
url
:
'/md/vehicle/list'
,
method
:
'get'
,
params
:
query
})
}
// 查询车辆列表详细
export
function
getVehicle
(
vehicleId
)
{
return
request
({
url
:
'/md/vehicle/'
+
vehicleId
,
method
:
'get'
})
}
// 新增车辆列表
export
function
addVehicle
(
data
)
{
return
request
({
url
:
'/md/vehicle'
,
method
:
'post'
,
data
:
data
})
}
// 修改车辆列表
export
function
updateVehicle
(
data
)
{
return
request
({
url
:
'/md/vehicle'
,
method
:
'put'
,
data
:
data
})
}
// 删除车辆列表
export
function
delVehicle
(
vehicleId
)
{
return
request
({
url
:
'/md/vehicle/'
+
vehicleId
,
method
:
'delete'
})
}
src/api/mes/md/vehicleDispatch.js
0 → 100644
View file @
e8cafe3d
import
request
from
'@/utils/request'
// 查询派车记录列表
export
function
listVehicleDispatch
(
query
)
{
return
request
({
url
:
'/md/vehicleDispatch/list'
,
method
:
'get'
,
params
:
query
})
}
// 查询派车记录详细
export
function
getVehicleDispatch
(
dispatchId
)
{
return
request
({
url
:
'/md/vehicleDispatch/'
+
dispatchId
,
method
:
'get'
})
}
// 新增派车记录
export
function
addVehicleDispatch
(
data
)
{
return
request
({
url
:
'/md/vehicleDispatch'
,
method
:
'post'
,
data
:
data
})
}
// 修改派车记录
export
function
updateVehicleDispatch
(
data
)
{
return
request
({
url
:
'/md/vehicleDispatch'
,
method
:
'put'
,
data
:
data
})
}
// 删除派车记录
export
function
delVehicleDispatch
(
dispatchId
)
{
return
request
({
url
:
'/md/vehicleDispatch/'
+
dispatchId
,
method
:
'delete'
})
}
src/views/mes/md/vehicle/components/singleSelect.vue
0 → 100644
View file @
e8cafe3d
<
template
>
<el-dialog
title=
"车辆选择"
v-if=
"showFlag"
:visible
.
sync=
"showFlag"
:modal=
"true"
width=
"80%"
center
append-to-body
>
<el-row
:gutter=
"20"
>
<el-col
:span=
"20"
:xs=
"24"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"车辆名称"
prop=
"vehicleName"
>
<el-input
v-model=
"queryParams.vehicleName"
placeholder=
"请输入车辆名称"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"车牌号"
prop=
"licensePlate"
>
<el-input
v-model=
"queryParams.licensePlate"
placeholder=
"请输入车牌号"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button
>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button
>
</el-form-item>
</el-form>
<el-table
v-loading=
"loading"
:data=
"vehicleList"
@
current-change=
"handleCurrent"
@
row-dblclick=
"handleRowDbClick"
>
<el-table-column
width=
"50"
align=
"center"
>
<template
v-slot=
"scope"
>
<el-radio
v-model=
"selectedVehicleId"
:label=
"scope.row.vehicleId"
@
change=
"handleRowChange(scope.row)"
>
{{
""
}}
</el-radio
>
</
template
>
</el-table-column>
<el-table-column
label=
"车辆编码"
align=
"center"
prop=
"vehicleCode"
/>
<el-table-column
label=
"车辆名称"
align=
"center"
prop=
"vehicleName"
/>
<el-table-column
label=
"车牌号"
align=
"center"
prop=
"licensePlate"
/>
<el-table-column
label=
"车型"
align=
"center"
prop=
"vehicleModel"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:options=
"dict.type.vehicle_model"
:value=
"scope.row.vehicleModel"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"座位数"
align=
"center"
prop=
"seating"
/>
<el-table-column
label=
"购买时间"
align=
"center"
prop=
"purchaseDate"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
purchaseDate
,
'{y
}
-{m
}
-{d
}
'
)
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"验车时间"
align
=
"center"
prop
=
"inspectionDate"
width
=
"180"
>
<
template
slot
-
scope
=
"scope"
>
<
span
>
{{
parseTime
(
scope
.
row
.
inspectionDate
,
'{y
}
-{m
}
-{d
}
'
)
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
/el-table
>
<
pagination
v
-
show
=
"total > 0"
:
total
=
"total"
:
page
.
sync
=
"queryParams.pageNum"
:
limit
.
sync
=
"queryParams.pageSize"
@
pagination
=
"getList"
/>
<
/el-col
>
<
/el-row
>
<
div
slot
=
"footer"
class
=
"dialog-footer"
>
<
el
-
button
type
=
"primary"
@
click
=
"confirmSelect"
>
确
定
<
/el-button
>
<
el
-
button
@
click
=
"showFlag = false"
>
取
消
<
/el-button
>
<
/div
>
<
/el-dialog
>
<
/template
>
<
script
>
import
{
listVehicle
}
from
"@/api/mes/md/vehicle"
;
export
default
{
name
:
"MdItemSingle"
,
dicts
:
[
"sys_yes_no"
,
"mes_item_product"
],
components
:
{
}
,
data
()
{
return
{
showFlag
:
false
,
// 选中数组
selectedVehicleId
:
undefined
,
selectedRows
:
undefined
,
// 非单个禁用
single
:
true
,
// 非多个禁用
multiple
:
true
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 物料产品表格数据
vehicleList
:
null
,
// 部门树选项
itemTypeOptions
:
undefined
,
// 部门名称
itemTypeName
:
undefined
,
defaultProps
:
{
children
:
"children"
,
label
:
"label"
,
}
,
// 查询参数
queryParams
:
{
pageNum
:
1
,
pageSize
:
10
,
itemCode
:
undefined
,
itemName
:
undefined
,
itemTypeId
:
0
,
}
,
// 列信息
columns
:
[
{
key
:
0
,
label
:
`物料/产品编码`
,
visible
:
true
}
,
{
key
:
1
,
label
:
`物料/产品名称`
,
visible
:
true
}
,
{
key
:
2
,
label
:
`规格型号`
,
visible
:
true
}
,
{
key
:
3
,
label
:
`单位`
,
visible
:
true
}
,
{
key
:
4
,
label
:
`物料/产品`
,
visible
:
true
}
,
{
key
:
5
,
label
:
`物料分类`
,
visible
:
true
}
,
{
key
:
6
,
label
:
`创建时间`
,
visible
:
true
}
,
{
key
:
7
,
label
:
`备注`
,
visible
:
true
}
,
],
}
;
}
,
watch
:
{
// 根据名称筛选分类树
itemTypeName
(
val
)
{
this
.
$refs
.
tree
.
filter
(
val
);
}
,
}
,
created
()
{
this
.
getList
();
}
,
methods
:
{
/** 查询物料编码列表 */
getList
()
{
this
.
loading
=
true
;
listVehicle
(
this
.
queryParams
).
then
((
response
)
=>
{
this
.
vehicleList
=
response
.
rows
;
this
.
total
=
response
.
total
;
this
.
loading
=
false
;
}
);
}
,
// 筛选节点
filterNode
(
value
,
data
)
{
if
(
!
value
)
return
true
;
return
data
.
label
.
indexOf
(
value
)
!==
-
1
;
}
,
// 节点单击事件
handleNodeClick
(
data
)
{
this
.
queryParams
.
itemTypeId
=
data
.
id
;
this
.
handleQuery
();
}
,
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
}
,
/** 重置按钮操作 */
resetQuery
()
{
this
.
resetForm
(
"queryForm"
);
this
.
handleQuery
();
}
,
handleCurrent
(
row
)
{
if
(
row
)
{
this
.
selectedRows
=
row
;
}
}
,
handleRowDbClick
(
row
)
{
if
(
row
)
{
this
.
selectedRows
=
row
;
this
.
$emit
(
"onSelected"
,
this
.
selectedRows
);
this
.
showFlag
=
false
;
}
}
,
// 单选选中数据
handleRowChange
(
row
)
{
if
(
row
)
{
this
.
selectedRows
=
row
;
}
}
,
//确定选中
confirmSelect
()
{
if
(
this
.
selectedVehicleId
==
null
||
this
.
selectedVehicleId
==
0
)
{
this
.
$notify
({
title
:
"提示"
,
type
:
"warning"
,
message
:
"请至少选择一条数据!"
,
}
);
return
;
}
this
.
$emit
(
"onSelected"
,
this
.
selectedRows
);
this
.
showFlag
=
false
;
}
,
}
,
}
;
<
/script
>
src/views/mes/md/vehicleDispatch/components/dispatchAdd.vue
0 → 100644
View file @
e8cafe3d
<
template
>
<!-- 车辆派送 -->
<el-dialog
:title=
"title"
v-if=
"showFlag"
:visible
.
sync=
"showFlag"
width=
"700px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"派车编号"
prop=
"dispatchCode"
disabled=
""
v-if=
"form.dispatchId != null"
>
<el-input
v-model=
"form.dispatchCode"
placeholder=
"请输入派车编号"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"用车说明"
prop=
"dispatchTitle"
>
<el-input
v-model=
"form.dispatchTitle"
placeholder=
"请输入名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆"
prop=
"vehicleId"
>
<el-input
v-model=
"form.vehicleName"
readonly
placeholder=
"请选择车辆"
>
<el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"$refs['VehicleSelectRef'].showFlag = true"
></el-button>
</el-input>
<VehicleSelect
ref=
"VehicleSelectRef"
@
onSelected=
"onVehicleSelect"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"驾驶人"
prop=
"driverBy"
>
<el-input
v-model=
"form.driverBy"
placeholder=
"请输入驾驶人"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"派车时间"
prop=
"dispatchDate"
>
<el-date-picker
clearable
v-model=
"form.dispatchDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"请选择派车时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"派时里程"
prop=
"startMileage"
>
<el-input
v-model=
"form.startMileage"
placeholder=
"请输入派时里程"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
placeholder=
"请输入备注"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
v-if=
"optType !='view'"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
{
getVehicleDispatch
,
addVehicleDispatch
,
updateVehicleDispatch
}
from
"@/api/mes/md/vehicleDispatch"
;
import
VehicleSelect
from
"@/views/mes/md/vehicle/components/singleSelect.vue"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
export
default
{
name
:
"DispatchBack"
,
dicts
:
[
"sys_yes_no"
,
"mes_item_product"
],
components
:
{
VehicleSelect
},
data
()
{
return
{
showFlag
:
false
,
dispatchId
:
null
,
optType
:
null
,
// 表单参数
form
:
{
dispatchId
:
null
,
dispatchCode
:
null
,
dispatchTitle
:
null
,
vehicleId
:
null
,
vehicleName
:
null
,
dispatchBy
:
null
,
driverBy
:
null
,
dispatchDate
:
null
,
backDate
:
null
,
travelMileage
:
null
,
startMileage
:
null
,
endMileage
:
null
,
oilConsumption
:
null
,
remark
:
null
},
// 表单校验
rules
:
{
vehicleId
:
[
{
required
:
true
,
message
:
"车辆不能为空"
,
trigger
:
"blur"
}
],
vehicleId
:
[
{
required
:
true
,
message
:
"车辆不能为空"
,
trigger
:
"blur"
}
],
},
title
:
'确认派送'
};
},
created
()
{
},
methods
:
{
// 取消按钮
cancel
()
{
this
.
showFlag
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
dispatchId
:
null
,
dispatchCode
:
null
,
dispatchTitle
:
null
,
vehicleId
:
null
,
vehicleName
:
null
,
dispatchBy
:
null
,
driverBy
:
null
,
dispatchDate
:
null
,
backDate
:
null
,
travelMileage
:
null
,
startMileage
:
null
,
endMileage
:
null
,
oilConsumption
:
null
,
remark
:
null
};
this
.
resetForm
(
"form"
);
},
onVehicleSelect
(
row
)
{
if
(
row
!=
undefined
&&
row
!=
null
)
{
this
.
form
.
vehicleId
=
row
.
vehicleId
;
this
.
form
.
vehicleName
=
row
.
vehicleName
;
}
},
submitForm
()
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
dispatchId
!=
null
)
{
updateVehicleDispatch
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
showFlag
=
false
;
this
.
$emit
(
"reload"
);
});
}
else
{
addVehicleDispatch
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"新增成功"
);
this
.
showFlag
=
false
;
this
.
$emit
(
"reload"
);
});
}
}
});
},
},
};
</
script
>
src/views/mes/md/vehicleDispatch/components/dispatchBack.vue
0 → 100644
View file @
e8cafe3d
<
template
>
<!-- 车辆回收 -->
<el-dialog
:title=
"title"
v-if=
"showFlag"
:visible
.
sync=
"showFlag"
:modal=
"true"
width=
"900px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-row>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"派车编号"
prop=
"dispatchCode"
v-if=
"form.dispatchId != null"
>
<el-input
v-model=
"form.dispatchCode"
disabled
placeholder=
"请输入派车编号"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"名称"
prop=
"dispatchTitle"
>
<el-input
v-model=
"form.dispatchTitle"
disabled
placeholder=
"请输入名称"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"车辆"
prop=
"vehicleId"
>
<el-input
v-model=
"form.vehicleName"
disabled
placeholder=
"请选择车辆"
>
<el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"$refs['VehicleSelectRef'].showFlag = true"
></el-button>
</el-input>
<VehicleSelect
ref=
"VehicleSelectRef"
@
onSelected=
"onVehicleSelect"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"派车人"
prop=
"dispatchBy"
>
<el-input
v-model=
"form.dispatchBy"
disabled
placeholder=
"请输入派车人"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"驾驶人"
prop=
"driverBy"
>
<el-input
v-model=
"form.driverBy"
disabled
placeholder=
"请输入驾驶人"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"派车时间"
required
prop=
"dispatchDate"
>
<el-date-picker
clearable
readonly
v-model=
"form.dispatchDate"
type=
"date"
disabled
value-format=
"yyyy-MM-dd"
placeholder=
"请选择派车时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"派时总里程"
prop=
"startMileage"
>
<el-input
v-model=
"form.startMileage"
disabled
placeholder=
"请输入派时里程"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"返回时间"
prop=
"backDate"
>
<el-date-picker
clearable
v-model=
"form.backDate"
type=
"date"
value-format=
"yyyy-MM-dd"
placeholder=
"请选择返回时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"还车总里程"
prop=
"endMileage"
>
<el-input
v-model=
"form.endMileage"
placeholder=
"请输入还车里程"
@
change=
"mileageCalculate"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"本次里程数"
prop=
"travelMileage"
>
<el-input
v-model=
"form.travelMileage"
placeholder=
"请输入本次里程数"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"耗油量"
prop=
"oilConsumption"
>
<el-input
v-model=
"form.oilConsumption"
placeholder=
"请输入耗油量"
/>
</el-form-item>
</el-col>
<el-col
:md=
"8"
:xs=
"12"
>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"form.remark"
placeholder=
"请输入备注"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"submitForm"
v-if=
"optType !='view'"
>
确 定
</el-button>
<el-button
@
click=
"showFlag = false"
>
取 消
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
{
getVehicleDispatch
,
addVehicleDispatch
,
updateVehicleDispatch
}
from
"@/api/mes/md/vehicleDispatch"
;
import
VehicleSelect
from
"@/views/mes/md/vehicle/components/singleSelect.vue"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
export
default
{
name
:
"DispatchBack"
,
dicts
:
[
"sys_yes_no"
,
"mes_item_product"
],
components
:
{
VehicleSelect
},
data
()
{
return
{
showFlag
:
false
,
dispatchId
:
null
,
optType
:
null
,
// 表单参数
form
:
{},
// 表单校验
rules
:
{
backDate
:
[
{
required
:
true
,
message
:
"返回时间不能为空"
,
trigger
:
"blur"
}
],
},
title
:
'确认派送'
};
},
created
()
{
},
methods
:
{
// 取消按钮
cancel
()
{
this
.
showFlag
=
false
;
this
.
reset
();
},
// 表单重置
reset
()
{
this
.
form
=
{
dispatchId
:
null
,
dispatchCode
:
null
,
dispatchTitle
:
null
,
vehicleId
:
null
,
dispatchBy
:
null
,
driverBy
:
null
,
dispatchDate
:
null
,
backDate
:
null
,
travelMileage
:
null
,
startMileage
:
null
,
endMileage
:
null
,
oilConsumption
:
null
,
remark
:
null
};
this
.
resetForm
(
"form"
);
},
mileageCount
(){
},
onVehicleSelect
(
row
)
{
if
(
row
!=
undefined
&&
row
!=
null
)
{
this
.
form
.
itemId
=
row
.
itemId
;
this
.
form
.
itemName
=
row
.
itemName
;
this
.
form
.
unit
=
row
.
unitOfMeasure
;
}
},
submitForm
()
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
if
(
valid
)
{
updateVehicleDispatch
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
showFlag
=
false
;
this
.
$emit
(
"reload"
);
});
}
});
},
mileageCalculate
(){
if
(
this
.
form
.
startMileage
!=
null
&&
this
.
form
.
endMileage
!=
null
){
this
.
form
.
travelMileage
=
this
.
form
.
endMileage
-
this
.
form
.
startMileage
;
}
}
},
};
</
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