Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
卡
卡车调度系统
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
caicaicai
卡车调度系统
Commits
5c3d3690
Commit
5c3d3690
authored
Feb 28, 2022
by
caicaicai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改
parent
ead6a0f9
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
678 additions
and
3261 deletions
+678
-3261
common.js
src/assets/js/common.js
+223
-4
index.vue
src/views/carManagement/carFault/index.vue
+93
-659
index.vue
src/views/carManagement/carFleet/index.vue
+63
-651
index.vue
src/views/carManagement/carInformation/index.vue
+141
-625
index.vue
src/views/carManagement/carModel/index.vue
+63
-650
index.vue
src/views/carManagement/carRepair/index.vue
+64
-649
index.vue
src/views/carManagement/carType/index.vue
+31
-23
No files found.
src/assets/js/common.js
View file @
5c3d3690
...
...
@@ -7,10 +7,11 @@ var HttpReq = function(){
//卡车调度系统
truckDispatching
:{
//系统管理——班次设置
shiftQuery
:
function
(){
shiftQuery
:
function
(
param
){
return
request
({
url
:
'
/api/Class
'
,
method
:
'
get
'
,
params
:
param
,
})
},
shiftAdd
:
function
(
data
){
...
...
@@ -37,10 +38,11 @@ var HttpReq = function(){
})
},
//系统管理——数据字典——报警时长
alarmTimeQuery
:
function
(){
alarmTimeQuery
:
function
(
param
){
return
request
({
url
:
'
/api/AlarmTime
'
,
method
:
'
get
'
,
params
:
param
,
})
},
alarmTimeAdd
:
function
(
data
){
...
...
@@ -67,10 +69,11 @@ var HttpReq = function(){
})
},
//系统管理——数据字典——疲劳驾驶
fdriTimeQuery
:
function
(){
fdriTimeQuery
:
function
(
param
){
return
request
({
url
:
'
/api/FdriTime
'
,
method
:
'
get
'
,
params
:
param
,
})
},
fdriTimeAdd
:
function
(
data
){
...
...
@@ -97,10 +100,11 @@ var HttpReq = function(){
})
},
//系统管理——数据字典——优先级设置
getPriorityQuery
:
function
(){
getPriorityQuery
:
function
(
param
){
return
request
({
url
:
'
/api/Pri
'
,
method
:
'
get
'
,
params
:
param
,
})
},
getPriorityTimeAdd
:
function
(
data
){
...
...
@@ -126,6 +130,221 @@ var HttpReq = function(){
data
:
data
,
})
},
//车辆管理——车辆类型
carTypeQuery
:
function
(
param
){
return
request
({
url
:
'
/api/CarClass
'
,
method
:
'
get
'
,
params
:
param
,
})
},
carTypeAdd
:
function
(
data
){
return
request
({
url
:
'
/api/CarClass
'
,
method
:
'
POST
'
,
data
:
data
,
}).
then
((
res
)
=>
{
return
res
})
},
carTypeUpdate
:
function
(
data
){
return
request
({
url
:
'
/api/CarClass
'
,
method
:
'
PUT
'
,
data
:
data
,
})
},
carTypeDel
:
function
(
data
){
return
request
({
url
:
'
/api/CarClass
'
,
method
:
'
Delete
'
,
data
:
data
,
})
},
//车辆管理——车辆型号
carModelQuery
:
function
(
param
){
return
request
({
url
:
'
/api/CarModel
'
,
method
:
'
get
'
,
params
:
param
,
})
},
carModelAdd
:
function
(
data
){
return
request
({
url
:
'
/api/CarModel
'
,
method
:
'
POST
'
,
data
:
data
,
}).
then
((
res
)
=>
{
return
res
})
},
carModelUpdate
:
function
(
data
){
return
request
({
url
:
'
/api/CarModel
'
,
method
:
'
PUT
'
,
data
:
data
,
})
},
carModelDel
:
function
(
data
){
return
request
({
url
:
'
/api/CarModel
'
,
method
:
'
Delete
'
,
data
:
data
,
})
},
//车辆管理——车队管理
carFleetQuery
:
function
(
param
){
return
request
({
url
:
'
/api/CarRoad
'
,
method
:
'
get
'
,
params
:
param
,
})
},
carFleetAdd
:
function
(
data
){
return
request
({
url
:
'
/api/CarRoad
'
,
method
:
'
POST
'
,
data
:
data
,
}).
then
((
res
)
=>
{
return
res
})
},
carFleetUpdate
:
function
(
data
){
return
request
({
url
:
'
/api/CarRoad
'
,
method
:
'
PUT
'
,
data
:
data
,
})
},
carFleetDel
:
function
(
data
){
return
request
({
url
:
'
/api/CarRoad
'
,
method
:
'
Delete
'
,
data
:
data
,
})
},
//车辆管理——车辆信息
carInformationQuery
:
function
(
param
){
return
request
({
url
:
'
/api/Car
'
,
method
:
'
get
'
,
params
:
param
,
})
},
carInformationAdd
:
function
(
data
){
return
request
({
url
:
'
/api/Car
'
,
method
:
'
POST
'
,
data
:
data
,
}).
then
((
res
)
=>
{
return
res
})
},
carInformationUpdate
:
function
(
data
){
return
request
({
url
:
'
/api/Car
'
,
method
:
'
PUT
'
,
data
:
data
,
})
},
carInformationDel
:
function
(
data
){
return
request
({
url
:
'
/api/Car
'
,
method
:
'
Delete
'
,
data
:
data
,
})
},
//车辆管理——车辆故障管理
carFaultQuery
:
function
(
param
){
return
request
({
url
:
'
/api/CarBreak
'
,
method
:
'
get
'
,
params
:
param
,
})
},
carFaultAdd
:
function
(
data
){
return
request
({
url
:
'
/api/CarBreak
'
,
method
:
'
POST
'
,
data
:
data
,
}).
then
((
res
)
=>
{
return
res
})
},
carFaultUpdate
:
function
(
data
){
return
request
({
url
:
'
/api/CarBreak
'
,
method
:
'
PUT
'
,
data
:
data
,
})
},
carFaultDel
:
function
(
data
){
return
request
({
url
:
'
/api/CarBreak
'
,
method
:
'
Delete
'
,
data
:
data
,
})
},
//车辆管理——车辆维修管理
carRepairQuery
:
function
(
param
){
return
request
({
url
:
'
/api/CarRepair
'
,
method
:
'
get
'
,
params
:
param
,
})
},
carRepairAdd
:
function
(
data
){
return
request
({
url
:
'
/api/CarRepair
'
,
method
:
'
POST
'
,
data
:
data
,
}).
then
((
res
)
=>
{
return
res
})
},
carRepairUpdate
:
function
(
data
){
return
request
({
url
:
'
/api/CarRepair
'
,
method
:
'
PUT
'
,
data
:
data
,
})
},
carRepairDel
:
function
(
data
){
return
request
({
url
:
'
/api/CarRepair
'
,
method
:
'
Delete
'
,
data
:
data
,
})
},
...
...
src/views/carManagement/carFault/index.vue
View file @
5c3d3690
<
template
>
<div
class=
"common-page device-manage"
>
<div
class=
"option page-row"
>
<!--工具栏-->
<div
class=
"head-container"
>
<!-- 搜索 -->
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
设备识别码
</label>
<el-input
v-model=
"query.code"
clearable
size=
"small"
placeholder=
"请输入设备识别码"
style=
"width:180px;"
@
clear=
"clearLimit"
/>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-search"
@
click=
"toSearch"
>
搜索
</el-button>
</div>
</div>
<!-- 表格 -->
<div
class=
"panel-bottom page-row"
>
<h3>
设备管理列表
</h3>
<h3>
车辆故障管理
</h3>
<div
class=
"ctin-box"
>
<div
class=
"content-within"
>
<div
class=
"content-fix"
>
...
...
@@ -19,30 +12,17 @@
</div>
<div
class=
"content"
>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"id"
label=
"设备ID"
align=
"center"
></el-table-column>
<el-table-column
prop=
"code"
label=
"设备识别码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"设备名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWindspeed"
label=
"风速报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmTemperature"
label=
"温度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmHumidity"
label=
"湿度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmCo2"
label=
"二氧化碳报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmMlux"
label=
"光照报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmPh"
label=
"酸碱度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterTemperature"
label=
"水温报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmElectricalConductance"
label=
"电导率报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterDepth"
label=
"液位报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"设备激活时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"addTime"
label=
"最后采集时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"projectId"
label=
"所属项目"
align=
"center"
:formatter=
"formatter"
></el-table-column>
<el-table-column
label=
"操作"
min-width=
"180px"
align=
"center"
fixed=
"right"
>
<el-table-column
prop=
"id"
label=
"序号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"编码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"number"
label=
"车辆名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"driver"
label=
"司机"
align=
"center"
></el-table-column>
<el-table-column
prop=
"carbreak"
label=
"故障类型"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"日期"
align=
"center"
></el-table-column>
<el-table-column
prop=
"status"
label=
"车辆状态处理"
align=
"center"
:formatter=
"statusChange"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-view"
@
click=
"toSeeMore(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"toEdit(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"toDelete(scope.row)"
></el-button>
<!--
<div
class=
"btn-groub2"
>
<el-button
size=
"mini"
type=
"warning"
icon=
"el-icon-set-up"
@
click=
"toInstructionSet(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"info"
icon=
"el-icon-tickets"
@
click=
"toInstructionLog(scope.row)"
></el-button>
</div>
-->
<el-button
size=
"mini"
type=
"primary"
@
click=
"toEdit(scope.row)"
>
处理故障
</el-button>
<!--
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"toDelete(scope.row)"
></el-button>
-->
</
template
>
</el-table-column>
</el-table>
...
...
@@ -57,56 +37,24 @@
<!-- 表单渲染 -->
<el-dialog
append-to-body
:close-on-click-modal=
"true"
:before-close=
"cancelForm"
:visible.sync=
"form.visible"
:title=
"form.title"
width=
"700px"
>
<el-form
:model=
"form.item"
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"150px"
>
<el-form-item
label=
"选择项目"
prop=
"projectId"
>
<el-select
v-model=
"form.item.projectId"
placeholder=
"请选择项目"
size=
"small"
>
<el-option
v-for=
"(obj,index) in form.selectList"
:label=
"obj.name"
:value=
"obj.id"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="设备ID" prop="id">
<el-input v-model="form.item.id" style="width:280px;" placeholder="请输入设备编号" :disabled="form.reqType==='edit'"/>
</el-form-item> -->
<el-form-item
label=
"设备识别码"
prop=
"code"
>
<el-input
v-model=
"form.item.code"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备名称"
prop=
"name"
>
<el-input
v-model=
"form.item.name"
style=
"width:260px;"
placeholder=
"请输入设备名称"
/>
</el-form-item>
<el-form-item
label=
"风速报警阈值"
prop=
"alarmWindspeed"
>
<el-input
v-model=
"form.item.alarmWindspeed"
style=
"width:160px;"
placeholder=
"请输入风速报警阈值"
/>
</el-form-item>
<el-form-item
label=
"温度报警阈值"
prop=
"alarmTemperature"
>
<el-input
v-model=
"form.item.alarmTemperature"
style=
"width:160px;"
placeholder=
"请输入温度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"湿度报警阈值"
prop=
"alarmHumidity"
>
<el-input
v-model=
"form.item.alarmHumidity"
style=
"width:160px;"
placeholder=
"请输入湿度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"二氧化碳报警阈值"
prop=
"alarmCo2"
>
<el-input
v-model=
"form.item.alarmCo2"
style=
"width:160px;"
placeholder=
"请输入二氧化碳报警阈值"
/>
</el-form-item>
<el-form-item
label=
"光照报警阈值"
prop=
"alarmMlux"
>
<el-input
v-model=
"form.item.alarmMlux"
style=
"width:160px;"
placeholder=
"请输入光照报警阈值"
/>
</el-form-item>
<el-form-item
label=
"酸碱度报警阈值"
prop=
"alarmPh"
>
<el-input
v-model=
"form.item.alarmPh"
style=
"width:160px;"
placeholder=
"请输入酸碱度报警阈值"
/>
<el-form-item
label=
"编码"
prop=
"name"
v-show=
"form.reqType == 'add'"
>
<el-input
v-model=
"form.item.name"
style=
"width:280px;"
placeholder=
"请输入编码"
/>
</el-form-item>
<el-form-item
label=
"
水温报警阈值"
prop=
"alarmWaterTemperature"
>
<el-input
v-model=
"form.item.
alarmWaterTemperature"
style=
"width:160px;"
placeholder=
"请输入水温报警阈值
"
/>
<el-form-item
label=
"
车辆名称"
prop=
"number"
v-show=
"form.reqType == 'add'"
>
<el-input
v-model=
"form.item.
number"
style=
"width:280px;"
placeholder=
"请输入车辆名称
"
/>
</el-form-item>
<el-form-item
label=
"
电导率报警阈值"
prop=
"alarmElectricalConductance"
>
<el-input
v-model=
"form.item.
alarmElectricalConductance"
style=
"width:160px;"
placeholder=
"请输入电导率报警阈值
"
/>
<el-form-item
label=
"
司机"
prop=
"driver"
v-show=
"form.reqType == 'add'"
>
<el-input
v-model=
"form.item.
driver"
style=
"width:280px;"
placeholder=
"请输入司机
"
/>
</el-form-item>
<el-form-item
label=
"
液位报警阈值"
prop=
"alarmWaterDepth"
>
<el-input
v-model=
"form.item.
alarmWaterDepth"
style=
"width:160px;"
placeholder=
"请输入液位报警阈值
"
/>
<el-form-item
label=
"
故障类型"
prop=
"carbreak"
v-show=
"form.reqType == 'add'"
>
<el-input
v-model=
"form.item.
carbreak"
style=
"width:280px;"
placeholder=
"请输入故障类型
"
/>
</el-form-item>
<el-form-item
label=
"上传设备位置"
prop=
"position"
>
<el-input
v-model=
"picFileName"
style=
"width:160px;"
placeholder=
"请上传设备位置"
disabled
/>
<input
type=
"file"
name=
"image"
@
change=
"excelImport($event)"
/>
</el-form-item>
<div
style=
"margin:0px 0px 10px 55px;font-size:16px;font-weight:bold;"
>
摄像头参数配置
</div>
<el-form-item
label=
"摄像头ID"
prop=
"camera"
>
<el-input
v-model=
"form.item.camera"
style=
"width:160px;"
placeholder=
"请输入摄像头ID"
/>
<el-form-item
label=
"车辆状态处理"
prop=
"status"
v-show=
"form.reqType == 'edit'"
>
<el-select
v-model=
"form.item.status"
placeholder=
"请选择车辆状态处理"
style=
"width:280px;"
>
<el-option
label=
"正常"
value=
"0"
></el-option>
<el-option
label=
"故障"
value=
"1"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm"
>
取消
</el-button>
...
...
@@ -114,119 +62,15 @@
</div>
</el-dialog>
<!-- 查看更多 -->
<el-dialog
title=
"查看设备"
:visible.sync=
"form.seeMoreDialog"
width=
"800px"
>
<el-form
:model=
"seeMoreData"
style=
"margin-top:20px;"
>
<el-form-item
label=
"摄像头位置图片"
label-width=
"150px"
>
<el-image
:src=
"seeMoreImgUrl"
style=
"width:300px;"
></el-image>
</el-form-item>
<el-form-item
label=
"摄像头图像"
label-width=
"150px"
>
<div
id=
"video-container"
style=
"width:550px;height:350px"
></div>
</el-form-item>
<el-form-item
label=
"摄像头ID"
label-width=
"150px"
>
<el-input
v-model=
"seeMoreData.camera"
style=
"width:200px"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"form.seeMoreDialog = false"
>
关闭
</el-button>
</div>
</el-dialog>
<!-- 历史图表 -->
<el-dialog
class=
"ecahrt1-dialog"
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm2"
:visible.sync=
"form.historyDialog"
>
<el-form
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"80px"
>
<!-- <el-form-item prop="eprogramid" >
<el-select v-model="form.item2.value" placeholder="请选择月份">
<el-option v-for="obj in form.monthSelectList" :label="obj.name" :value="obj.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item
prop=
"eprogramid"
>
<date-range-picker
v-model=
"query.timeSpace"
class=
"date-item"
/>
</el-form-item>
<el-form-item
>
<el-button
type=
"primary"
@
click=
"findHistory"
>
查询
</el-button>
</el-form-item>
<el-form-item
prop=
"content"
style=
"display:block;"
>
<div
class=
"form-body"
>
<div
id=
"ecahrtA"
></div>
</div>
</el-form-item>
</el-form>
</el-dialog>
<!-- 指令下发 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm3"
:visible.sync=
"form2.visible"
:title=
"form2.title"
width=
"600px"
>
<el-form
:model=
"form2.item"
:rules=
"rules"
ref=
"form2"
:inline=
"true"
size=
"small"
label-width=
"100px"
>
<el-form-item
label=
"设备ID"
prop=
"ecode"
>
<el-input
v-model=
"form2.item.ecode"
style=
"width:280px;"
placeholder=
"请输入设备编号"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备识别码"
prop=
"subcode"
>
<el-input
v-model=
"form2.item.subcode"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"是否启动校正"
prop=
"ilAdjust"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilAdjust"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"obj in form2.adjustList"
:label=
"obj.name"
:key=
"obj.value"
:value=
"obj.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"是否存储裂缝"
prop=
"ilSave"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilSave"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.saveList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"裂缝阈值"
prop=
"ilThreshed"
>
<el-input
v-model=
"form2.item.ilThreshed"
style=
"width:160px;"
placeholder=
"请输入裂缝阈值"
/>
<span
style=
"color:#aaa;"
>
1~255
</span>
</el-form-item>
<el-form-item
label=
"唤醒周期"
prop=
"timekey"
>
<el-select
v-model=
"form2.item.timekey"
placeholder=
"请选择时间"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.timeList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
<el-input
v-model=
"form2.item.time"
style=
"width:160px;"
placeholder=
"请输入时长"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm3"
>
取消
</el-button>
<el-button
:loading=
"form2.status.cu === 2"
type=
"primary"
@
click=
"reqSetInstruction('form2', form2.item)"
>
确认
</el-button>
</div>
</el-dialog>
<!-- 指令日志 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm4"
:visible.sync=
"form2.logVisible"
:title=
"form2.title"
width=
"65%"
>
<div
class=
"content"
>
<el-table
:data=
"form2.formData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"subcode"
label=
"设备识别码"
min-width=
"135px"
></el-table-column>
<el-table-column
prop=
"ilThreshed"
label=
"裂缝阈值"
></el-table-column>
<el-table-column
prop=
"ilAdjust"
label=
"校正功能"
></el-table-column>
<el-table-column
prop=
"ilSave"
label=
"存储裂缝"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"唤醒时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
time
+
'
(
'
+
scope
.
row
.
timeUnit
+
'
)
'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"ilSendSuccess"
label=
"下发状态"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"下发时间"
min-width=
"145px"
></el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
:total=
"form2.total"
:current-page=
"form2.page"
style=
"margin-top:8px;"
layout=
"total, prev, pager, next, sizes"
@
size-change=
"sizeChange2"
@
current-change=
"pageChange2"
/>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
echarts
from
'
echarts
'
;
import
{
Tools
,
HttpReq
,
Dates
}
from
'
@/assets/js/common.js
'
;
import
DateRangePicker
from
'
@/components/DateRangePicker
'
;
import
cuAmap
from
'
@/components/AMap
'
;
import
Axios
from
'
axios
'
import
EZUIKit
from
"
ezuikit-js
"
;
export
default
{
name
:
'
carFault
'
,
components
:
{
DateRangePicker
,
cuAmap
},
name
:
'
CarFault
'
,
components
:
{},
data
()
{
return
{
loading
:
false
,
...
...
@@ -234,77 +78,18 @@ export default {
size
:
10
,
total
:
0
,
query
:{},
picFileName
:
''
,
tableData
:
[],
seeMoreData
:{},
seeMoreImgUrl
:
""
,
form
:
{
title
:
'
添加设备
'
,
visible
:
false
,
reqType
:
'
add
'
,
historyDialog
:
false
,
seeMoreDialog
:
false
,
title
:
'
新增车辆故障
'
,
visible
:
false
,
reqType
:
'
add
'
,
status
:{
cu
:
0
},
selectList
:[],
item
:{},
monthSelectList
:[
{
name
:
'
一月
'
,
value
:
'
01
'
},
{
name
:
'
二月
'
,
value
:
'
02
'
},
{
name
:
'
三月
'
,
value
:
'
03
'
},
{
name
:
'
四月
'
,
value
:
'
04
'
},
{
name
:
'
五月
'
,
value
:
'
05
'
},
{
name
:
'
六月
'
,
value
:
'
06
'
},
{
name
:
'
七月
'
,
value
:
'
07
'
},
{
name
:
'
八月
'
,
value
:
'
08
'
},
{
name
:
'
九月
'
,
value
:
'
09
'
},
{
name
:
'
十月
'
,
value
:
'
10
'
},
{
name
:
'
十一月
'
,
value
:
'
11
'
},
{
name
:
'
十二月
'
,
value
:
'
12
'
},
],
item2
:{
value
:
''
},
},
rules
:
{
projectId
:
[
{
required
:
true
,
message
:
'
请选择项目
'
,
trigger
:
'
blur
'
}
],
id
:
[
{
required
:
true
,
message
:
'
请输入设备ID
'
,
trigger
:
'
blur
'
}
],
code
:
[
{
required
:
true
,
message
:
'
请输入设备识别码
'
,
trigger
:
'
blur
'
}
],
name
:
[
{
required
:
true
,
message
:
'
请输入设备名称
'
,
trigger
:
'
blur
'
}
],
},
form2
:{
title
:
'
指令下发
'
,
visible
:
false
,
logDialog
:
false
,
logVisible
:
false
,
query
:{},
page
:
1
,
size
:
10
,
total
:
0
,
status
:{
cu
:
0
},
item
:{
ecode
:
""
,
ename
:
''
,
ilAdjust
:
0
,
ilSave
:
0
,
time
:
''
,
ilThreshed
:
0
,
timekey
:
'
ilTimHour
'
,
},
adjustList
:[
{
name
:
'
启动
'
,
value
:
1
},
{
name
:
'
不启动
'
,
value
:
0
},
],
saveList
:[
{
name
:
'
存储
'
,
value
:
1
},
{
name
:
'
不存储
'
,
value
:
0
},
],
timeList
:[
{
name
:
'
时
'
,
value
:
'
ilTimHour
'
},
{
name
:
'
分
'
,
value
:
'
ilTimMins
'
},
{
name
:
'
秒
'
,
value
:
'
ilTimSec
'
},
],
formData
:[],
// time: [
// {required: true, message: '请输入车辆型号', trigger: 'blur' }
// ],
},
}
},
...
...
@@ -316,24 +101,25 @@ export default {
},
methods
:
{
loadData
()
{
var
that
=
this
;
var
sort
=
'
addTime,desc
'
;
var
sort
=
'
createTime,desc
'
;
var
param
=
this
.
query
;
param
.
page
=
this
.
page
-
1
;
param
.
size
=
this
.
size
;
param
.
sort
=
sort
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
;
});
let
showData
=
[];
this
.
$nextTick
(()
=>
{
HttpReq
.
plantFactory
.
getDeviceManageList
(
param
).
then
((
res
)
=>
{
//console.log(res);
HttpReq
.
truckDispatching
.
carFaultQuery
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
this
.
loading
=
false
;
this
.
tableData
=
res
.
content
;
this
.
total
=
res
.
totalElements
;
res
.
data
.
content
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
status
==
1
){
showData
.
push
(
item
);
}
})
this
.
tableData
=
showData
;
this
.
total
=
showData
.
length
;
}
})
})
...
...
@@ -346,47 +132,26 @@ export default {
}
return
''
;
},
// 点击搜索
toSearch
()
{
this
.
page
=
1
this
.
loadData
()
},
clearLimit
(){
// 清除限制
this
.
loadData
()
},
cancelForm
(
a
,
b
,
c
){
this
.
form
.
visible
=
false
;
},
cancelForm2
(){
this
.
form
.
historyDialog
=
false
;
},
toAdd
()
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
添加设备
'
;
this
.
form
.
title
=
'
新增车辆故障
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
reqType
=
'
add
'
;
this
.
form
.
item
=
{};
this
.
picFileName
=
''
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toEdit
(
item
)
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
编辑设备
'
;
this
.
form
.
title
=
'
修改车辆故障并删除此条数据
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
item
=
item
;
this
.
form
.
item
=
{...
item
}
;
this
.
form
.
reqType
=
'
edit
'
;
this
.
picFileName
=
this
.
form
.
item
.
position
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toDelete
(
item
)
{
var
id
=
item
.
id
;
...
...
@@ -396,103 +161,7 @@ export default {
type
:
'
warning
'
}).
then
((
e
)
=>
{
this
.
reqRemoveProject
([
id
])
}).
catch
((
e
)
=>
{
})
},
//查看图片以及其他信息
toSeeMore
(
row
){
//console.log(row);
this
.
seeMoreData
=
row
;
this
.
seeMoreImgUrl
=
process
.
env
.
VUE_APP_LOCAL_API2
+
"
/avatar/
"
+
row
.
position
;
this
.
form
.
seeMoreDialog
=
true
;
this
.
$nextTick
(()
=>
{
let
videoContainer
=
document
.
querySelector
(
'
#video-container
'
);
videoContainer
.
innerHTML
=
''
;
var
player
=
new
EZUIKit
.
EZUIKitPlayer
({
autoplay
:
true
,
id
:
'
video-container
'
,
accessToken
:
'
at.4qo66bb35a19h07a0d9pbmtj5v4g0o78-4jmzdu3k24-0866je6-qkz1xuwmf
'
,
url
:
'
ezopen://open.ys7.com/J16440511/1.live
'
,
template
:
"
simple
"
,
// simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
width
:
530
,
height
:
320
});
})
},
toHistoryLog
(
item
){
this
.
form
.
historyDialog
=
true
;
this
.
form
.
item2
.
value
=
Dates
.
format
(
'
MM
'
);
this
.
form
.
item2
.
code
=
item
.
ecode
;
this
.
$nextTick
(()
=>
{
var
ecahrtEl
=
document
.
getElementById
(
"
ecahrtA
"
);
this
.
ecahrtA
=
this
.
ecahrtA
||
this
.
createPanelEcharts
(
ecahrtEl
);
this
.
reqHistoryList
(
this
.
form
.
item2
);
});
},
cancelForm3
(
a
,
b
,
c
){
this
.
form2
.
visible
=
false
;
},
cancelForm4
(
a
,
b
,
c
){
this
.
form2
.
logVisible
=
false
;
},
// 指令下发
toInstructionSet
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
指令下发
'
;
form2
.
status
.
cu
=
0
;
form2
.
visible
=
true
;
form2
.
reqType
=
'
edit
'
;
form2
.
item
=
{
ecode
:
item
.
ecode
,
subcode
:
item
.
subcode
,
ilAdjust
:
form2
.
item
.
ilAdjust
,
ilSave
:
form2
.
item
.
ilSave
,
timekey
:
form2
.
item
.
timekey
,
time
:
''
,
};
},
// 指令日志
toInstructionLog
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
下发日志
'
;
form2
.
logVisible
=
true
;
form2
.
item
=
item
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]
||
fitem
[
key
]
===
0
){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
}).
catch
((
e
)
=>
{})
},
pageChange
(
e
)
{
this
.
page
=
e
...
...
@@ -503,15 +172,6 @@ export default {
this
.
size
=
e
this
.
loadData
()
},
pageChange2
(
e
)
{
this
.
form2
.
page
=
e
this
.
reqInstructionLog
(
this
.
form2
.
item
)
},
sizeChange2
(
e
)
{
this
.
form2
.
page
=
1
;
this
.
form2
.
size
=
e
;
this
.
reqInstructionLog
(
this
.
form2
.
item
);
},
submitForm
(
validateName
,
item
){
if
(
!
this
.
form
.
status
.
cu
){
this
.
form
.
status
.
cu
=
2
;
...
...
@@ -528,36 +188,22 @@ export default {
});
};
},
findHistory
(){
this
.
reqHistoryList
(
this
.
form
.
item2
);
},
//请求项目列表
reqProjectsSimple
(){
return
HttpReq
.
project
.
getProject
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
return
res
.
data
.
content
;
}
else
{
return
[]
}
})
},
//添加设备
//新增车辆故障
reqAddItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
addDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
}
;
lastData
.
status
=
1
;
HttpReq
.
truckDispatching
.
carFaultAdd
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
==
1
){
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
项目添加
成功!
'
,
title
:
'
车辆故障新增
成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -566,36 +212,43 @@ export default {
form
.
status
.
cu
=
0
});
},
//修改
设备
//修改
车辆故障
reqUpdateItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
upDateDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
this
.
$confirm
(
'
确认处理故障并且删除该条数据吗?
'
,
'
提示
'
,
{
confirmButtonText
:
'
确定
'
,
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
}).
then
((
e
)
=>
{
HttpReq
.
truckDispatching
.
carFaultUpdate
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
type
:
'
error
'
,
duration
:
2500
})
}
else
{
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
修改
成功!
'
,
title
:
'
车辆故障处理
成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
}
}).
catch
(
function
(
error
)
{
form
.
status
.
cu
=
0
});
}).
catch
((
e
)
=>
{
form
.
status
.
cu
=
0
})
},
//删除
设备
//删除
车辆故障
reqRemoveProject
(
item
){
HttpReq
.
plantFactory
.
removeDeviceManageList
(
item
).
then
((
res
)
=>
{
HttpReq
.
truckDispatching
.
carFaultDel
(
item
).
then
((
res
)
=>
{
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -609,229 +262,10 @@ export default {
this
.
loadData
();
})
},
reqHistoryList
(
item
){
var
timeSpace
=
this
.
query
.
timeSpace
;
var
startTime
=
timeSpace
?
timeSpace
[
0
].
split
(
'
'
)[
0
]
:
''
;
var
endTime
=
timeSpace
?
timeSpace
[
1
].
split
(
'
'
)[
0
]
:
''
;
HttpReq
.
historys
.
getItemBycode
({
codes
:
item
.
code
,
startTime
:
startTime
,
endTime
:
endTime
}).
then
((
res
)
=>
{
if
(
res
.
head
.
code
===
'
0000
'
){
var
body
=
res
.
body
||
{};
var
list
=
body
.
list
||
[];
var
xAxisData
=
[];
var
helement
=
[];
var
htemperature
=
[];
var
hlenght1
=
[],
hlenght2
=
[],
hlenght3
=
[];
for
(
var
item
of
list
){
xAxisData
.
push
(
item
.
createTime
);
helement
.
push
(
item
.
helement
);
htemperature
.
push
(
item
.
htemperature
);
hlenght1
.
push
(
item
.
hlenght1
);
hlenght2
.
push
(
item
.
hlenght2
);
hlenght3
.
push
(
item
.
hlenght3
);
};
this
.
ecahrtA
.
setData
({
xAxis
:
[
{
type
:
'
category
'
,
data
:
xAxisData
,
},
],
series
:
[
{
name
:
'
电压
'
,
data
:
helement
,
},
{
name
:
'
温度
'
,
data
:
htemperature
,
},
{
name
:
'
裂缝1
'
,
data
:
hlenght1
,
//车辆状态转换
statusChange
(
row
){
return
row
.
status
==
'
0
'
?
'
正常
'
:
'
故障
'
;
},
{
name
:
'
裂缝2
'
,
data
:
hlenght2
,
},
{
name
:
'
裂缝3
'
,
data
:
hlenght3
,
}
]
})
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
catch __
'
,
error
);
})
},
createPanelEcharts
(
el
){
var
myChart
=
echarts
.
init
(
el
),
lineColor
=
'
green
'
;
var
option
=
{
title
:
{
text
:
''
,
subtext
:
'
设备值
'
},
tooltip
:
{
trigger
:
'
axis
'
},
legend
:
{
data
:
[
'
电压
'
,
'
温度
'
,
'
裂缝1
'
,
'
裂缝2
'
,
'
裂缝3
'
],
textStyle
:
{
color
:
"
#000
"
},
},
textStyle
:
{
color
:
"
#333
"
},
calculable
:
true
,
xAxis
:
[
{
type
:
'
category
'
,
data
:
[],
}
],
yAxis
:
[
{
type
:
'
value
'
,
}
],
grid
:{
top
:
40
,
right
:
10
,
bottom
:
20
,
left
:
45
,
},
series
:
[
{
name
:
'
电压
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type: 'default', color:'#00e5ff'}, color:'#00e5ff'}, color:'green'},
},
{
name
:
'
温度
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝1
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type:'default', color:'red'}, color:'#1849fe'}, color:'red'},
},
{
name
:
'
裂缝2
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝3
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
}
]
};
myChart
.
setOption
(
option
);
var
setData
=
function
(
option
){
myChart
.
hideLoading
();
myChart
.
setOption
(
option
)
};
return
{
setData
:
setData
,
myChart
:
myChart
}
},
reqSetInstruction
(
form
,
item
){
var
param
=
{
deviceId
:
item
.
ecode
,
ilAdjust
:
item
.
ilAdjust
,
ilSave
:
item
.
ilSave
,
ilThreshed
:
item
.
ilThreshed
||
0
,
[
item
.
timekey
]:
item
.
time
||
0
,
};
HttpReq
.
equipment
.
setInstruction
(
param
).
then
((
res
)
=>
{
this
.
form2
.
visible
=
false
;
this
.
$notify
({
title
:
'
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}).
catch
(
function
(
error
)
{
this
.
form2
.
status
.
cu
=
0
;
this
.
$notify
({
title
:
error
,
type
:
'
error
'
,
duration
:
2500
})
});
},
reqInstructionLog
(
item
){
var
form2
=
this
.
form2
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
},
//图片上传
excelImport
(
event
)
{
let
that
=
this
;
let
file
=
event
.
target
.
files
[
0
];
let
formData1
=
new
FormData
();
formData1
.
append
(
"
avatar
"
,
file
);
Axios
({
url
:
process
.
env
.
VUE_APP_LOCAL_API2
+
'
/api/wEquipment/updateAvatar
'
,
method
:
"
post
"
,
data
:
formData1
,
}).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$message
.
success
(
"
上传成功
"
);
that
.
picFileName
=
response
.
data
.
avatar
;
}
else
{
this
.
$message
.
error
(
"
上传失败
"
);
}
},
)
.
catch
(
error
=>
{
console
.
log
(
error
);
});
},
//项目名称展示
formatter
(
row
){
let
proName
=
""
;
this
.
form
.
selectList
.
forEach
(
function
(
item
){
if
(
row
.
projectId
==
item
.
id
){
proName
=
item
.
name
;
}
})
return
proName
}
}
}
</
script
>
...
...
src/views/carManagement/carFleet/index.vue
View file @
5c3d3690
<
template
>
<div
class=
"common-page device-manage"
>
<div
class=
"option page-row"
>
<!--工具栏-->
<div
class=
"head-container"
>
<!-- 搜索 -->
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
设备识别码
</label>
<el-input
v-model=
"query.code"
clearable
size=
"small"
placeholder=
"请输入设备识别码"
style=
"width:180px;"
@
clear=
"clearLimit"
/>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-search"
@
click=
"toSearch"
>
搜索
</el-button>
</div>
</div>
<!-- 表格 -->
<div
class=
"panel-bottom page-row"
>
<h3>
设备管理列表
</h3>
<h3>
车队管理
</h3>
<div
class=
"ctin-box"
>
<div
class=
"content-within"
>
<div
class=
"content-fix"
>
...
...
@@ -19,30 +12,15 @@
</div>
<div
class=
"content"
>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"id"
label=
"设备ID"
align=
"center"
></el-table-column>
<el-table-column
prop=
"code"
label=
"设备识别码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"设备名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWindspeed"
label=
"风速报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmTemperature"
label=
"温度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmHumidity"
label=
"湿度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmCo2"
label=
"二氧化碳报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmMlux"
label=
"光照报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmPh"
label=
"酸碱度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterTemperature"
label=
"水温报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmElectricalConductance"
label=
"电导率报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterDepth"
label=
"液位报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"设备激活时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"addTime"
label=
"最后采集时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"projectId"
label=
"所属项目"
align=
"center"
:formatter=
"formatter"
></el-table-column>
<el-table-column
label=
"操作"
min-width=
"180px"
align=
"center"
fixed=
"right"
>
<el-table-column
prop=
"id"
label=
"序号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"车队名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"carclass"
label=
"车辆类型"
align=
"center"
></el-table-column>
<el-table-column
prop=
"area"
label=
"所属矿区"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"日期"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-view"
@
click=
"toSeeMore(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"toEdit(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"toDelete(scope.row)"
></el-button>
<!--
<div
class=
"btn-groub2"
>
<el-button
size=
"mini"
type=
"warning"
icon=
"el-icon-set-up"
@
click=
"toInstructionSet(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"info"
icon=
"el-icon-tickets"
@
click=
"toInstructionLog(scope.row)"
></el-button>
</div>
-->
</
template
>
</el-table-column>
</el-table>
...
...
@@ -57,176 +35,39 @@
<!-- 表单渲染 -->
<el-dialog
append-to-body
:close-on-click-modal=
"true"
:before-close=
"cancelForm"
:visible.sync=
"form.visible"
:title=
"form.title"
width=
"700px"
>
<el-form
:model=
"form.item"
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"150px"
>
<el-form-item
label=
"选择项目"
prop=
"projectId"
>
<el-select
v-model=
"form.item.projectId"
placeholder=
"请选择项目"
size=
"small"
>
<el-option
v-for=
"(obj,index) in form.selectList"
:label=
"obj.name"
:value=
"obj.id"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="设备ID" prop="id">
<el-input v-model="form.item.id" style="width:280px;" placeholder="请输入设备编号" :disabled="form.reqType==='edit'"/>
</el-form-item> -->
<el-form-item
label=
"设备识别码"
prop=
"code"
>
<el-input
v-model=
"form.item.code"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备名称"
prop=
"name"
>
<el-input
v-model=
"form.item.name"
style=
"width:260px;"
placeholder=
"请输入设备名称"
/>
</el-form-item>
<el-form-item
label=
"风速报警阈值"
prop=
"alarmWindspeed"
>
<el-input
v-model=
"form.item.alarmWindspeed"
style=
"width:160px;"
placeholder=
"请输入风速报警阈值"
/>
</el-form-item>
<el-form-item
label=
"温度报警阈值"
prop=
"alarmTemperature"
>
<el-input
v-model=
"form.item.alarmTemperature"
style=
"width:160px;"
placeholder=
"请输入温度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"湿度报警阈值"
prop=
"alarmHumidity"
>
<el-input
v-model=
"form.item.alarmHumidity"
style=
"width:160px;"
placeholder=
"请输入湿度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"二氧化碳报警阈值"
prop=
"alarmCo2"
>
<el-input
v-model=
"form.item.alarmCo2"
style=
"width:160px;"
placeholder=
"请输入二氧化碳报警阈值"
/>
</el-form-item>
<el-form-item
label=
"光照报警阈值"
prop=
"alarmMlux"
>
<el-input
v-model=
"form.item.alarmMlux"
style=
"width:160px;"
placeholder=
"请输入光照报警阈值"
/>
</el-form-item>
<el-form-item
label=
"酸碱度报警阈值"
prop=
"alarmPh"
>
<el-input
v-model=
"form.item.alarmPh"
style=
"width:160px;"
placeholder=
"请输入酸碱度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"水温报警阈值"
prop=
"alarmWaterTemperature"
>
<el-input
v-model=
"form.item.alarmWaterTemperature"
style=
"width:160px;"
placeholder=
"请输入水温报警阈值"
/>
</el-form-item>
<el-form-item
label=
"电导率报警阈值"
prop=
"alarmElectricalConductance"
>
<el-input
v-model=
"form.item.alarmElectricalConductance"
style=
"width:160px;"
placeholder=
"请输入电导率报警阈值"
/>
</el-form-item>
<el-form-item
label=
"液位报警阈值"
prop=
"alarmWaterDepth"
>
<el-input
v-model=
"form.item.alarmWaterDepth"
style=
"width:160px;"
placeholder=
"请输入液位报警阈值"
/>
</el-form-item>
<el-form-item
label=
"上传设备位置"
prop=
"position"
>
<el-input
v-model=
"picFileName"
style=
"width:160px;"
placeholder=
"请上传设备位置"
disabled
/>
<input
type=
"file"
name=
"image"
@
change=
"excelImport($event)"
/>
</el-form-item>
<div
style=
"margin:0px 0px 10px 55px;font-size:16px;font-weight:bold;"
>
摄像头参数配置
</div>
<el-form-item
label=
"摄像头ID"
prop=
"camera"
>
<el-input
v-model=
"form.item.camera"
style=
"width:160px;"
placeholder=
"请输入摄像头ID"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm"
>
取消
</el-button>
<el-button
:loading=
"form.status.cu === 2"
type=
"primary"
@
click=
"submitForm('form1', form.item)"
>
确认
</el-button>
</div>
</el-dialog>
<!-- 查看更多 -->
<el-dialog
title=
"查看设备"
:visible.sync=
"form.seeMoreDialog"
width=
"800px"
>
<el-form
:model=
"seeMoreData"
style=
"margin-top:20px;"
>
<el-form-item
label=
"摄像头位置图片"
label-width=
"150px"
>
<el-image
:src=
"seeMoreImgUrl"
style=
"width:300px;"
></el-image>
</el-form-item>
<el-form-item
label=
"摄像头图像"
label-width=
"150px"
>
<div
id=
"video-container"
style=
"width:550px;height:350px"
></div>
</el-form-item>
<el-form-item
label=
"摄像头ID"
label-width=
"150px"
>
<el-input
v-model=
"seeMoreData.camera"
style=
"width:200px"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"form.seeMoreDialog = false"
>
关闭
</el-button>
</div>
</el-dialog>
<!-- 历史图表 -->
<el-dialog
class=
"ecahrt1-dialog"
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm2"
:visible.sync=
"form.historyDialog"
>
<el-form
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"80px"
>
<!-- <el-form-item prop="eprogramid" >
<el-select v-model="form.item2.value" placeholder="请选择月份">
<el-option v-for="obj in form.monthSelectList" :label="obj.name" :value="obj.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item
prop=
"eprogramid"
>
<date-range-picker
v-model=
"query.timeSpace"
class=
"date-item"
/>
</el-form-item>
<el-form-item
>
<el-button
type=
"primary"
@
click=
"findHistory"
>
查询
</el-button>
</el-form-item>
<el-form-item
prop=
"content"
style=
"display:block;"
>
<div
class=
"form-body"
>
<div
id=
"ecahrtA"
></div>
</div>
</el-form-item>
</el-form>
</el-dialog>
<!-- 指令下发 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm3"
:visible.sync=
"form2.visible"
:title=
"form2.title"
width=
"600px"
>
<el-form
:model=
"form2.item"
:rules=
"rules"
ref=
"form2"
:inline=
"true"
size=
"small"
label-width=
"100px"
>
<el-form-item
label=
"设备ID"
prop=
"ecode"
>
<el-input
v-model=
"form2.item.ecode"
style=
"width:280px;"
placeholder=
"请输入设备编号"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备识别码"
prop=
"subcode"
>
<el-input
v-model=
"form2.item.subcode"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"是否启动校正"
prop=
"ilAdjust"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilAdjust"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"obj in form2.adjustList"
:label=
"obj.name"
:key=
"obj.value"
:value=
"obj.value"
></el-option>
</el-select>
<el-form-item
label=
"车队名称"
prop=
"name"
>
<el-input
v-model=
"form.item.name"
style=
"width:280px;"
placeholder=
"请输入车队名称"
/>
</el-form-item>
<el-form-item
label=
"是否存储裂缝"
prop=
"ilSave"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilSave"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.saveList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
<el-form-item
label=
"所属车辆类型"
prop=
"carclass"
>
<el-select
v-model=
"form.item.carclass"
placeholder=
"请选择车辆类型"
style=
"width:280px;"
>
<el-option
label=
"挖机"
value=
"挖机"
></el-option>
<el-option
label=
"铲车"
value=
"铲车"
></el-option>
<el-option
label=
"卡车"
value=
"卡车"
></el-option>
<el-option
label=
"清扫车"
value=
"清扫车"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"裂缝阈值"
prop=
"ilThreshed"
>
<el-input
v-model=
"form2.item.ilThreshed"
style=
"width:160px;"
placeholder=
"请输入裂缝阈值"
/>
<span
style=
"color:#aaa;"
>
1~255
</span>
</el-form-item>
<el-form-item
label=
"唤醒周期"
prop=
"timekey"
>
<el-select
v-model=
"form2.item.timekey"
placeholder=
"请选择时间"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.timeList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
<el-form-item
label=
"所属矿区"
prop=
"area"
>
<el-select
v-model=
"form.item.area"
placeholder=
"请选择所属矿区"
style=
"width:280px;"
>
<el-option
label=
"矿区1"
value=
"矿区1"
></el-option>
<el-option
label=
"矿区2"
value=
"矿区2"
></el-option>
</el-select>
<el-input
v-model=
"form2.item.time"
style=
"width:160px;"
placeholder=
"请输入时长"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm
3
"
>
取消
</el-button>
<el-button
:loading=
"form
2.status.cu === 2"
type=
"primary"
@
click=
"reqSetInstruction('form2', form2
.item)"
>
确认
</el-button>
<el-button
type=
"text"
@
click=
"cancelForm"
>
取消
</el-button>
<el-button
:loading=
"form
.status.cu === 2"
type=
"primary"
@
click=
"submitForm('form1', form
.item)"
>
确认
</el-button>
</div>
</el-dialog>
<!-- 指令日志 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm4"
:visible.sync=
"form2.logVisible"
:title=
"form2.title"
width=
"65%"
>
<div
class=
"content"
>
<el-table
:data=
"form2.formData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"subcode"
label=
"设备识别码"
min-width=
"135px"
></el-table-column>
<el-table-column
prop=
"ilThreshed"
label=
"裂缝阈值"
></el-table-column>
<el-table-column
prop=
"ilAdjust"
label=
"校正功能"
></el-table-column>
<el-table-column
prop=
"ilSave"
label=
"存储裂缝"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"唤醒时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
time
+
'
(
'
+
scope
.
row
.
timeUnit
+
'
)
'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"ilSendSuccess"
label=
"下发状态"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"下发时间"
min-width=
"145px"
></el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
:total=
"form2.total"
:current-page=
"form2.page"
style=
"margin-top:8px;"
layout=
"total, prev, pager, next, sizes"
@
size-change=
"sizeChange2"
@
current-change=
"pageChange2"
/>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
echarts
from
'
echarts
'
;
import
{
Tools
,
HttpReq
,
Dates
}
from
'
@/assets/js/common.js
'
;
import
DateRangePicker
from
'
@/components/DateRangePicker
'
;
import
cuAmap
from
'
@/components/AMap
'
;
import
Axios
from
'
axios
'
import
EZUIKit
from
"
ezuikit-js
"
;
export
default
{
name
:
'
carFleet
'
,
components
:
{
DateRangePicker
,
cuAmap
},
name
:
'
CarFleet
'
,
components
:
{},
data
()
{
return
{
loading
:
false
,
...
...
@@ -234,77 +75,18 @@ export default {
size
:
10
,
total
:
0
,
query
:{},
picFileName
:
''
,
tableData
:
[],
seeMoreData
:{},
seeMoreImgUrl
:
""
,
form
:
{
title
:
'
添加设备
'
,
visible
:
false
,
reqType
:
'
add
'
,
historyDialog
:
false
,
seeMoreDialog
:
false
,
title
:
'
新增车队
'
,
visible
:
false
,
reqType
:
'
add
'
,
status
:{
cu
:
0
},
selectList
:[],
item
:{},
monthSelectList
:[
{
name
:
'
一月
'
,
value
:
'
01
'
},
{
name
:
'
二月
'
,
value
:
'
02
'
},
{
name
:
'
三月
'
,
value
:
'
03
'
},
{
name
:
'
四月
'
,
value
:
'
04
'
},
{
name
:
'
五月
'
,
value
:
'
05
'
},
{
name
:
'
六月
'
,
value
:
'
06
'
},
{
name
:
'
七月
'
,
value
:
'
07
'
},
{
name
:
'
八月
'
,
value
:
'
08
'
},
{
name
:
'
九月
'
,
value
:
'
09
'
},
{
name
:
'
十月
'
,
value
:
'
10
'
},
{
name
:
'
十一月
'
,
value
:
'
11
'
},
{
name
:
'
十二月
'
,
value
:
'
12
'
},
],
item2
:{
value
:
''
},
},
rules
:
{
projectId
:
[
{
required
:
true
,
message
:
'
请选择项目
'
,
trigger
:
'
blur
'
}
],
id
:
[
{
required
:
true
,
message
:
'
请输入设备ID
'
,
trigger
:
'
blur
'
}
],
code
:
[
{
required
:
true
,
message
:
'
请输入设备识别码
'
,
trigger
:
'
blur
'
}
],
name
:
[
{
required
:
true
,
message
:
'
请输入设备名称
'
,
trigger
:
'
blur
'
}
],
},
form2
:{
title
:
'
指令下发
'
,
visible
:
false
,
logDialog
:
false
,
logVisible
:
false
,
query
:{},
page
:
1
,
size
:
10
,
total
:
0
,
status
:{
cu
:
0
},
item
:{
ecode
:
""
,
ename
:
''
,
ilAdjust
:
0
,
ilSave
:
0
,
time
:
''
,
ilThreshed
:
0
,
timekey
:
'
ilTimHour
'
,
},
adjustList
:[
{
name
:
'
启动
'
,
value
:
1
},
{
name
:
'
不启动
'
,
value
:
0
},
],
saveList
:[
{
name
:
'
存储
'
,
value
:
1
},
{
name
:
'
不存储
'
,
value
:
0
},
],
timeList
:[
{
name
:
'
时
'
,
value
:
'
ilTimHour
'
},
{
name
:
'
分
'
,
value
:
'
ilTimMins
'
},
{
name
:
'
秒
'
,
value
:
'
ilTimSec
'
},
],
formData
:[],
// time: [
// {required: true, message: '请输入车辆型号', trigger: 'blur' }
// ],
},
}
},
...
...
@@ -316,24 +98,19 @@ export default {
},
methods
:
{
loadData
()
{
var
that
=
this
;
var
sort
=
'
addTime,desc
'
;
var
sort
=
'
createTime,desc
'
;
var
param
=
this
.
query
;
param
.
page
=
this
.
page
-
1
;
param
.
size
=
this
.
size
;
param
.
sort
=
sort
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
;
});
this
.
$nextTick
(()
=>
{
HttpReq
.
plantFactory
.
getDeviceManageList
(
param
).
then
((
res
)
=>
{
//console.log(res);
HttpReq
.
truckDispatching
.
carFleetQuery
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
this
.
loading
=
false
;
this
.
tableData
=
res
.
content
;
this
.
total
=
res
.
totalElements
;
this
.
tableData
=
res
.
data
.
content
;
this
.
total
=
res
.
data
.
totalElements
;
}
})
})
...
...
@@ -346,47 +123,26 @@ export default {
}
return
''
;
},
// 点击搜索
toSearch
()
{
this
.
page
=
1
this
.
loadData
()
},
clearLimit
(){
// 清除限制
this
.
loadData
()
},
cancelForm
(
a
,
b
,
c
){
this
.
form
.
visible
=
false
;
},
cancelForm2
(){
this
.
form
.
historyDialog
=
false
;
},
toAdd
()
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
添加设备
'
;
this
.
form
.
title
=
'
新增车队
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
reqType
=
'
add
'
;
this
.
form
.
item
=
{};
this
.
picFileName
=
''
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toEdit
(
item
)
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
编辑设备
'
;
this
.
form
.
title
=
'
修改车队
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
item
=
item
;
this
.
form
.
item
=
{...
item
}
;
this
.
form
.
reqType
=
'
edit
'
;
this
.
picFileName
=
this
.
form
.
item
.
position
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toDelete
(
item
)
{
var
id
=
item
.
id
;
...
...
@@ -396,103 +152,7 @@ export default {
type
:
'
warning
'
}).
then
((
e
)
=>
{
this
.
reqRemoveProject
([
id
])
}).
catch
((
e
)
=>
{
})
},
//查看图片以及其他信息
toSeeMore
(
row
){
//console.log(row);
this
.
seeMoreData
=
row
;
this
.
seeMoreImgUrl
=
process
.
env
.
VUE_APP_LOCAL_API2
+
"
/avatar/
"
+
row
.
position
;
this
.
form
.
seeMoreDialog
=
true
;
this
.
$nextTick
(()
=>
{
let
videoContainer
=
document
.
querySelector
(
'
#video-container
'
);
videoContainer
.
innerHTML
=
''
;
var
player
=
new
EZUIKit
.
EZUIKitPlayer
({
autoplay
:
true
,
id
:
'
video-container
'
,
accessToken
:
'
at.4qo66bb35a19h07a0d9pbmtj5v4g0o78-4jmzdu3k24-0866je6-qkz1xuwmf
'
,
url
:
'
ezopen://open.ys7.com/J16440511/1.live
'
,
template
:
"
simple
"
,
// simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
width
:
530
,
height
:
320
});
})
},
toHistoryLog
(
item
){
this
.
form
.
historyDialog
=
true
;
this
.
form
.
item2
.
value
=
Dates
.
format
(
'
MM
'
);
this
.
form
.
item2
.
code
=
item
.
ecode
;
this
.
$nextTick
(()
=>
{
var
ecahrtEl
=
document
.
getElementById
(
"
ecahrtA
"
);
this
.
ecahrtA
=
this
.
ecahrtA
||
this
.
createPanelEcharts
(
ecahrtEl
);
this
.
reqHistoryList
(
this
.
form
.
item2
);
});
},
cancelForm3
(
a
,
b
,
c
){
this
.
form2
.
visible
=
false
;
},
cancelForm4
(
a
,
b
,
c
){
this
.
form2
.
logVisible
=
false
;
},
// 指令下发
toInstructionSet
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
指令下发
'
;
form2
.
status
.
cu
=
0
;
form2
.
visible
=
true
;
form2
.
reqType
=
'
edit
'
;
form2
.
item
=
{
ecode
:
item
.
ecode
,
subcode
:
item
.
subcode
,
ilAdjust
:
form2
.
item
.
ilAdjust
,
ilSave
:
form2
.
item
.
ilSave
,
timekey
:
form2
.
item
.
timekey
,
time
:
''
,
};
},
// 指令日志
toInstructionLog
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
下发日志
'
;
form2
.
logVisible
=
true
;
form2
.
item
=
item
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]
||
fitem
[
key
]
===
0
){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
}).
catch
((
e
)
=>
{})
},
pageChange
(
e
)
{
this
.
page
=
e
...
...
@@ -503,15 +163,6 @@ export default {
this
.
size
=
e
this
.
loadData
()
},
pageChange2
(
e
)
{
this
.
form2
.
page
=
e
this
.
reqInstructionLog
(
this
.
form2
.
item
)
},
sizeChange2
(
e
)
{
this
.
form2
.
page
=
1
;
this
.
form2
.
size
=
e
;
this
.
reqInstructionLog
(
this
.
form2
.
item
);
},
submitForm
(
validateName
,
item
){
if
(
!
this
.
form
.
status
.
cu
){
this
.
form
.
status
.
cu
=
2
;
...
...
@@ -528,36 +179,21 @@ export default {
});
};
},
findHistory
(){
this
.
reqHistoryList
(
this
.
form
.
item2
);
},
//请求项目列表
reqProjectsSimple
(){
return
HttpReq
.
project
.
getProject
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
return
res
.
data
.
content
;
}
else
{
return
[]
}
})
},
//添加设备
//新增车队
reqAddItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
addDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carFleetAdd
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
==
1
){
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
项目添加
成功!
'
,
title
:
'
车队新增
成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -566,36 +202,35 @@ export default {
form
.
status
.
cu
=
0
});
},
//修改
设备
//修改
车队
reqUpdateItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
upDateDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carFleetUpdate
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
type
:
'
error
'
,
duration
:
2500
})
}
else
{
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
修改成功!
'
,
title
:
'
车队
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
}
}).
catch
(
function
(
error
)
{
form
.
status
.
cu
=
0
});
},
//删除
设备
//删除
车队
reqRemoveProject
(
item
){
HttpReq
.
plantFactory
.
removeDeviceManageList
(
item
).
then
((
res
)
=>
{
HttpReq
.
truckDispatching
.
carFleetDel
(
item
).
then
((
res
)
=>
{
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -609,229 +244,6 @@ export default {
this
.
loadData
();
})
},
reqHistoryList
(
item
){
var
timeSpace
=
this
.
query
.
timeSpace
;
var
startTime
=
timeSpace
?
timeSpace
[
0
].
split
(
'
'
)[
0
]
:
''
;
var
endTime
=
timeSpace
?
timeSpace
[
1
].
split
(
'
'
)[
0
]
:
''
;
HttpReq
.
historys
.
getItemBycode
({
codes
:
item
.
code
,
startTime
:
startTime
,
endTime
:
endTime
}).
then
((
res
)
=>
{
if
(
res
.
head
.
code
===
'
0000
'
){
var
body
=
res
.
body
||
{};
var
list
=
body
.
list
||
[];
var
xAxisData
=
[];
var
helement
=
[];
var
htemperature
=
[];
var
hlenght1
=
[],
hlenght2
=
[],
hlenght3
=
[];
for
(
var
item
of
list
){
xAxisData
.
push
(
item
.
createTime
);
helement
.
push
(
item
.
helement
);
htemperature
.
push
(
item
.
htemperature
);
hlenght1
.
push
(
item
.
hlenght1
);
hlenght2
.
push
(
item
.
hlenght2
);
hlenght3
.
push
(
item
.
hlenght3
);
};
this
.
ecahrtA
.
setData
({
xAxis
:
[
{
type
:
'
category
'
,
data
:
xAxisData
,
},
],
series
:
[
{
name
:
'
电压
'
,
data
:
helement
,
},
{
name
:
'
温度
'
,
data
:
htemperature
,
},
{
name
:
'
裂缝1
'
,
data
:
hlenght1
,
},
{
name
:
'
裂缝2
'
,
data
:
hlenght2
,
},
{
name
:
'
裂缝3
'
,
data
:
hlenght3
,
}
]
})
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
catch __
'
,
error
);
})
},
createPanelEcharts
(
el
){
var
myChart
=
echarts
.
init
(
el
),
lineColor
=
'
green
'
;
var
option
=
{
title
:
{
text
:
''
,
subtext
:
'
设备值
'
},
tooltip
:
{
trigger
:
'
axis
'
},
legend
:
{
data
:
[
'
电压
'
,
'
温度
'
,
'
裂缝1
'
,
'
裂缝2
'
,
'
裂缝3
'
],
textStyle
:
{
color
:
"
#000
"
},
},
textStyle
:
{
color
:
"
#333
"
},
calculable
:
true
,
xAxis
:
[
{
type
:
'
category
'
,
data
:
[],
}
],
yAxis
:
[
{
type
:
'
value
'
,
}
],
grid
:{
top
:
40
,
right
:
10
,
bottom
:
20
,
left
:
45
,
},
series
:
[
{
name
:
'
电压
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type: 'default', color:'#00e5ff'}, color:'#00e5ff'}, color:'green'},
},
{
name
:
'
温度
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝1
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type:'default', color:'red'}, color:'#1849fe'}, color:'red'},
},
{
name
:
'
裂缝2
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝3
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
}
]
};
myChart
.
setOption
(
option
);
var
setData
=
function
(
option
){
myChart
.
hideLoading
();
myChart
.
setOption
(
option
)
};
return
{
setData
:
setData
,
myChart
:
myChart
}
},
reqSetInstruction
(
form
,
item
){
var
param
=
{
deviceId
:
item
.
ecode
,
ilAdjust
:
item
.
ilAdjust
,
ilSave
:
item
.
ilSave
,
ilThreshed
:
item
.
ilThreshed
||
0
,
[
item
.
timekey
]:
item
.
time
||
0
,
};
HttpReq
.
equipment
.
setInstruction
(
param
).
then
((
res
)
=>
{
this
.
form2
.
visible
=
false
;
this
.
$notify
({
title
:
'
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}).
catch
(
function
(
error
)
{
this
.
form2
.
status
.
cu
=
0
;
this
.
$notify
({
title
:
error
,
type
:
'
error
'
,
duration
:
2500
})
});
},
reqInstructionLog
(
item
){
var
form2
=
this
.
form2
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
},
//图片上传
excelImport
(
event
)
{
let
that
=
this
;
let
file
=
event
.
target
.
files
[
0
];
let
formData1
=
new
FormData
();
formData1
.
append
(
"
avatar
"
,
file
);
Axios
({
url
:
process
.
env
.
VUE_APP_LOCAL_API2
+
'
/api/wEquipment/updateAvatar
'
,
method
:
"
post
"
,
data
:
formData1
,
}).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$message
.
success
(
"
上传成功
"
);
that
.
picFileName
=
response
.
data
.
avatar
;
}
else
{
this
.
$message
.
error
(
"
上传失败
"
);
}
},
)
.
catch
(
error
=>
{
console
.
log
(
error
);
});
},
//项目名称展示
formatter
(
row
){
let
proName
=
""
;
this
.
form
.
selectList
.
forEach
(
function
(
item
){
if
(
row
.
projectId
==
item
.
id
){
proName
=
item
.
name
;
}
})
return
proName
}
}
}
</
script
>
...
...
src/views/carManagement/carInformation/index.vue
View file @
5c3d3690
...
...
@@ -4,13 +4,28 @@
<!--工具栏-->
<div
class=
"head-container"
>
<!-- 搜索 -->
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
设备识别码
</label>
<el-input
v-model=
"query.code"
clearable
size=
"small"
placeholder=
"请输入设备识别码"
style=
"width:180px;"
@
clear=
"clearLimit"
/>
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
车辆名称
</label>
<el-input
v-model=
"query.name"
clearable
size=
"small"
placeholder=
"请输入车辆名称"
style=
"width:180px;"
/>
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
所属车队
</label>
<el-select
v-model=
"query.road"
placeholder=
"请选择所属车队"
style=
"width:180px;"
>
<el-option
v-for=
"(obj,index) in selectList"
:label=
"obj.name"
:value=
"obj.name"
:key=
"index"
></el-option>
</el-select>
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
卡车类型
</label>
<el-select
v-model=
"query.carclass"
placeholder=
"请选择卡车类型"
style=
"width:180px;"
>
<el-option
label=
"挖机"
value=
"挖机"
></el-option>
<el-option
label=
"铲车"
value=
"铲车"
></el-option>
<el-option
label=
"卡车"
value=
"卡车"
></el-option>
<el-option
label=
"清扫车"
value=
"清扫车"
></el-option>
</el-select>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-search"
@
click=
"toSearch"
>
搜索
</el-button>
<el-button
size=
"mini"
icon=
"el-icon-refresh"
@
click=
"clearLimit"
>
重置
</el-button>
</div>
</div>
<!-- 表格 -->
<div
class=
"panel-bottom page-row"
>
<h3>
设备管理列表
</h3>
<h3>
车辆信息
</h3>
<div
class=
"ctin-box"
>
<div
class=
"content-within"
>
<div
class=
"content-fix"
>
...
...
@@ -19,30 +34,23 @@
</div>
<div
class=
"content"
>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"id"
label=
"设备ID"
align=
"center"
></el-table-column>
<el-table-column
prop=
"code"
label=
"设备识别码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"设备名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWindspeed"
label=
"风速报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmTemperature"
label=
"温度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmHumidity"
label=
"湿度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmCo2"
label=
"二氧化碳报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmMlux"
label=
"光照报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmPh"
label=
"酸碱度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterTemperature"
label=
"水温报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmElectricalConductance"
label=
"电导率报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterDepth"
label=
"液位报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"设备激活时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"addTime"
label=
"最后采集时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"projectId"
label=
"所属项目"
align=
"center"
:formatter=
"formatter"
></el-table-column>
<el-table-column
label=
"操作"
min-width=
"180px"
align=
"center"
fixed=
"right"
>
<el-table-column
prop=
"name"
label=
"车辆名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"number"
label=
"车牌号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"carclass"
label=
"卡车类型"
align=
"center"
></el-table-column>
<el-table-column
prop=
"road"
label=
"车队名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"model"
label=
"车辆型号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"weight"
label=
"运重(kg)"
align=
"center"
></el-table-column>
<el-table-column
prop=
"status"
label=
"车辆状态"
align=
"center"
:formatter=
"statusChange"
></el-table-column>
<el-table-column
prop=
"alarm"
label=
"超速预警(km/h)"
align=
"center"
></el-table-column>
<el-table-column
prop=
"month"
label=
"保养周期(月)"
align=
"center"
></el-table-column>
<el-table-column
prop=
"year"
label=
"车辆年限"
align=
"center"
></el-table-column>
<el-table-column
prop=
"time"
label=
"最新一次保养时间"
align=
"center"
></el-table-column>
<!--
<el-table-column
prop=
"time"
label=
"最新一次保养时间"
align=
"center"
:formatter=
"timeChange"
></el-table-column>
-->
<el-table-column
prop=
"plant"
label=
"终端设备编号"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-view"
@
click=
"toSeeMore(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"toEdit(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"toDelete(scope.row)"
></el-button>
<!--
<div
class=
"btn-groub2"
>
<el-button
size=
"mini"
type=
"warning"
icon=
"el-icon-set-up"
@
click=
"toInstructionSet(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"info"
icon=
"el-icon-tickets"
@
click=
"toInstructionLog(scope.row)"
></el-button>
</div>
-->
</
template
>
</el-table-column>
</el-table>
...
...
@@ -57,56 +65,54 @@
<!-- 表单渲染 -->
<el-dialog
append-to-body
:close-on-click-modal=
"true"
:before-close=
"cancelForm"
:visible.sync=
"form.visible"
:title=
"form.title"
width=
"700px"
>
<el-form
:model=
"form.item"
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"150px"
>
<el-form-item
label=
"选择项目"
prop=
"projectId"
>
<el-select
v-model=
"form.item.projectId"
placeholder=
"请选择项目"
size=
"small"
>
<el-option
v-for=
"(obj,index) in form.selectList"
:label=
"obj.name"
:value=
"obj.id"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="设备ID" prop="id">
<el-input v-model="form.item.id" style="width:280px;" placeholder="请输入设备编号" :disabled="form.reqType==='edit'"/>
</el-form-item> -->
<el-form-item
label=
"设备识别码"
prop=
"code"
>
<el-input
v-model=
"form.item.code"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form.reqType==='edit'"
/>
<el-form-item
label=
"车辆名称"
prop=
"name"
>
<el-input
v-model=
"form.item.name"
style=
"width:280px;"
placeholder=
"请输入车辆名称"
/>
</el-form-item>
<el-form-item
label=
"
设备名称"
prop=
"name
"
>
<el-input
v-model=
"form.item.n
ame"
style=
"width:260px;"
placeholder=
"请输入设备名称
"
/>
<el-form-item
label=
"
车牌号"
prop=
"number
"
>
<el-input
v-model=
"form.item.n
umber"
style=
"width:280px;"
placeholder=
"请输入车牌号
"
/>
</el-form-item>
<el-form-item
label=
"风速报警阈值"
prop=
"alarmWindspeed"
>
<el-input
v-model=
"form.item.alarmWindspeed"
style=
"width:160px;"
placeholder=
"请输入风速报警阈值"
/>
</el-form-item>
<el-form-item
label=
"温度报警阈值"
prop=
"alarmTemperature"
>
<el-input
v-model=
"form.item.alarmTemperature"
style=
"width:160px;"
placeholder=
"请输入温度报警阈值"
/>
<el-form-item
label=
"卡车类型"
prop=
"carclass"
>
<el-select
v-model=
"form.item.carclass"
placeholder=
"请选择卡车类型"
style=
"width:280px;"
>
<el-option
label=
"挖机"
value=
"挖机"
></el-option>
<el-option
label=
"铲车"
value=
"铲车"
></el-option>
<el-option
label=
"卡车"
value=
"卡车"
></el-option>
<el-option
label=
"清扫车"
value=
"清扫车"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"湿度报警阈值"
prop=
"alarmHumidity"
>
<el-input
v-model=
"form.item.alarmHumidity"
style=
"width:160px;"
placeholder=
"请输入湿度报警阈值"
/>
<el-form-item
label=
"车队名称"
prop=
"road"
>
<el-select
v-model=
"form.item.road"
placeholder=
"请选择所属车队名称"
style=
"width:280px;"
>
<el-option
v-for=
"(obj,index) in selectList"
:label=
"obj.name"
:value=
"obj.name"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"
二氧化碳报警阈值"
prop=
"alarmCo2"
>
<el-input
v-model=
"form.item.
alarmCo2"
style=
"width:160px;"
placeholder=
"请输入二氧化碳报警阈值
"
/>
<el-form-item
label=
"
车辆型号"
prop=
"model"
>
<el-input
v-model=
"form.item.
model"
style=
"width:280px;"
placeholder=
"请输入车辆型号
"
/>
</el-form-item>
<el-form-item
label=
"
光照报警阈值"
prop=
"alarmMlux"
>
<el-input
v-model=
"form.item.
alarmMlux"
style=
"width:160px;"
placeholder=
"请输入光照报警阈值
"
/>
<el-form-item
label=
"
运重(kg)"
prop=
"weight"
>
<el-input
v-model=
"form.item.
weight"
style=
"width:280px;"
placeholder=
"请输入运重(kg)
"
/>
</el-form-item>
<el-form-item
label=
"酸碱度报警阈值"
prop=
"alarmPh"
>
<el-input
v-model=
"form.item.alarmPh"
style=
"width:160px;"
placeholder=
"请输入酸碱度报警阈值"
/>
<el-form-item
label=
"车辆状态"
prop=
"status"
>
<el-select
v-model=
"form.item.status"
placeholder=
"请选择车辆状态"
style=
"width:280px;"
>
<el-option
label=
"正常"
value=
"0"
></el-option>
<el-option
label=
"故障"
value=
"1"
></el-option>
<el-option
label=
"停用"
value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"
水温报警阈值"
prop=
"alarmWaterTemperature"
>
<el-input
v-model=
"form.item.alarm
WaterTemperature"
style=
"width:160px;"
placeholder=
"请输入水温报警阈值
"
/>
<el-form-item
label=
"
超速预警(km/h)"
prop=
"alarm"
>
<el-input
v-model=
"form.item.alarm
"
style=
"width:280px;"
placeholder=
"请输入超速预警(km/h)
"
/>
</el-form-item>
<el-form-item
label=
"
电导率报警阈值"
prop=
"alarmElectricalConductance"
>
<el-input
v-model=
"form.item.
alarmElectricalConductance"
style=
"width:160px;"
placeholder=
"请输入电导率报警阈值
"
/>
<el-form-item
label=
"
保养周期(月)"
prop=
"month"
>
<el-input
v-model=
"form.item.
month"
style=
"width:280px;"
placeholder=
"请输入保养周期(月)
"
/>
</el-form-item>
<el-form-item
label=
"
液位报警阈值"
prop=
"alarmWaterDepth"
>
<el-input
v-model=
"form.item.
alarmWaterDepth"
style=
"width:160px;"
placeholder=
"请输入液位报警阈值
"
/>
<el-form-item
label=
"
车辆年限"
prop=
"year"
>
<el-input
v-model=
"form.item.
year"
style=
"width:280px;"
placeholder=
"请输入车辆年限
"
/>
</el-form-item>
<el-form-item
label=
"
上传设备位置"
prop=
"position
"
>
<el-input
v-model=
"
picFileName"
style=
"width:160px;"
placeholder=
"请上传设备位置"
disabled
/>
<
input
type=
"file"
name=
"image"
@
change=
"excelImport($event)"
/
>
<el-form-item
label=
"
最新一次保养时间"
prop=
"time
"
>
<el-input
v-model=
"
form.item.time"
style=
"width:280px;"
placeholder=
"请输入最新一次保养时间"
/>
<
!-- <el-date-picker v-model="form.item.time" type="date" placeholder="选择日期"></el-date-picker> --
>
</el-form-item>
<div
style=
"margin:0px 0px 10px 55px;font-size:16px;font-weight:bold;"
>
摄像头参数配置
</div>
<el-form-item
label=
"摄像头ID"
prop=
"camera"
>
<el-input
v-model=
"form.item.camera"
style=
"width:160px;"
placeholder=
"请输入摄像头ID"
/>
<el-form-item
label=
"终端设备编号"
prop=
"plant"
>
<el-input
v-model=
"form.item.plant"
style=
"width:280px;"
placeholder=
"请输入终端设备编号"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm"
>
取消
</el-button>
...
...
@@ -114,119 +120,15 @@
</div>
</el-dialog>
<!-- 查看更多 -->
<el-dialog
title=
"查看设备"
:visible.sync=
"form.seeMoreDialog"
width=
"800px"
>
<el-form
:model=
"seeMoreData"
style=
"margin-top:20px;"
>
<el-form-item
label=
"摄像头位置图片"
label-width=
"150px"
>
<el-image
:src=
"seeMoreImgUrl"
style=
"width:300px;"
></el-image>
</el-form-item>
<el-form-item
label=
"摄像头图像"
label-width=
"150px"
>
<div
id=
"video-container"
style=
"width:550px;height:350px"
></div>
</el-form-item>
<el-form-item
label=
"摄像头ID"
label-width=
"150px"
>
<el-input
v-model=
"seeMoreData.camera"
style=
"width:200px"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"form.seeMoreDialog = false"
>
关闭
</el-button>
</div>
</el-dialog>
<!-- 历史图表 -->
<el-dialog
class=
"ecahrt1-dialog"
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm2"
:visible.sync=
"form.historyDialog"
>
<el-form
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"80px"
>
<!-- <el-form-item prop="eprogramid" >
<el-select v-model="form.item2.value" placeholder="请选择月份">
<el-option v-for="obj in form.monthSelectList" :label="obj.name" :value="obj.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item
prop=
"eprogramid"
>
<date-range-picker
v-model=
"query.timeSpace"
class=
"date-item"
/>
</el-form-item>
<el-form-item
>
<el-button
type=
"primary"
@
click=
"findHistory"
>
查询
</el-button>
</el-form-item>
<el-form-item
prop=
"content"
style=
"display:block;"
>
<div
class=
"form-body"
>
<div
id=
"ecahrtA"
></div>
</div>
</el-form-item>
</el-form>
</el-dialog>
<!-- 指令下发 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm3"
:visible.sync=
"form2.visible"
:title=
"form2.title"
width=
"600px"
>
<el-form
:model=
"form2.item"
:rules=
"rules"
ref=
"form2"
:inline=
"true"
size=
"small"
label-width=
"100px"
>
<el-form-item
label=
"设备ID"
prop=
"ecode"
>
<el-input
v-model=
"form2.item.ecode"
style=
"width:280px;"
placeholder=
"请输入设备编号"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备识别码"
prop=
"subcode"
>
<el-input
v-model=
"form2.item.subcode"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"是否启动校正"
prop=
"ilAdjust"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilAdjust"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"obj in form2.adjustList"
:label=
"obj.name"
:key=
"obj.value"
:value=
"obj.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"是否存储裂缝"
prop=
"ilSave"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilSave"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.saveList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"裂缝阈值"
prop=
"ilThreshed"
>
<el-input
v-model=
"form2.item.ilThreshed"
style=
"width:160px;"
placeholder=
"请输入裂缝阈值"
/>
<span
style=
"color:#aaa;"
>
1~255
</span>
</el-form-item>
<el-form-item
label=
"唤醒周期"
prop=
"timekey"
>
<el-select
v-model=
"form2.item.timekey"
placeholder=
"请选择时间"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.timeList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
<el-input
v-model=
"form2.item.time"
style=
"width:160px;"
placeholder=
"请输入时长"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm3"
>
取消
</el-button>
<el-button
:loading=
"form2.status.cu === 2"
type=
"primary"
@
click=
"reqSetInstruction('form2', form2.item)"
>
确认
</el-button>
</div>
</el-dialog>
<!-- 指令日志 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm4"
:visible.sync=
"form2.logVisible"
:title=
"form2.title"
width=
"65%"
>
<div
class=
"content"
>
<el-table
:data=
"form2.formData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"subcode"
label=
"设备识别码"
min-width=
"135px"
></el-table-column>
<el-table-column
prop=
"ilThreshed"
label=
"裂缝阈值"
></el-table-column>
<el-table-column
prop=
"ilAdjust"
label=
"校正功能"
></el-table-column>
<el-table-column
prop=
"ilSave"
label=
"存储裂缝"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"唤醒时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
time
+
'
(
'
+
scope
.
row
.
timeUnit
+
'
)
'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"ilSendSuccess"
label=
"下发状态"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"下发时间"
min-width=
"145px"
></el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
:total=
"form2.total"
:current-page=
"form2.page"
style=
"margin-top:8px;"
layout=
"total, prev, pager, next, sizes"
@
size-change=
"sizeChange2"
@
current-change=
"pageChange2"
/>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
echarts
from
'
echarts
'
;
import
{
Tools
,
HttpReq
,
Dates
}
from
'
@/assets/js/common.js
'
;
import
DateRangePicker
from
'
@/components/DateRangePicker
'
;
import
cuAmap
from
'
@/components/AMap
'
;
import
Axios
from
'
axios
'
import
EZUIKit
from
"
ezuikit-js
"
;
export
default
{
name
:
'
carInformation
'
,
components
:
{
DateRangePicker
,
cuAmap
},
name
:
'
CarInformation
'
,
components
:
{},
data
()
{
return
{
loading
:
false
,
...
...
@@ -234,77 +136,19 @@ export default {
size
:
10
,
total
:
0
,
query
:{},
picFileName
:
''
,
tableData
:
[],
seeMoreData
:{},
seeMoreImgUrl
:
""
,
selectList
:[],
form
:
{
title
:
'
添加设备
'
,
visible
:
false
,
reqType
:
'
add
'
,
historyDialog
:
false
,
seeMoreDialog
:
false
,
title
:
'
新增车辆
'
,
visible
:
false
,
reqType
:
'
add
'
,
status
:{
cu
:
0
},
selectList
:[],
item
:{},
monthSelectList
:[
{
name
:
'
一月
'
,
value
:
'
01
'
},
{
name
:
'
二月
'
,
value
:
'
02
'
},
{
name
:
'
三月
'
,
value
:
'
03
'
},
{
name
:
'
四月
'
,
value
:
'
04
'
},
{
name
:
'
五月
'
,
value
:
'
05
'
},
{
name
:
'
六月
'
,
value
:
'
06
'
},
{
name
:
'
七月
'
,
value
:
'
07
'
},
{
name
:
'
八月
'
,
value
:
'
08
'
},
{
name
:
'
九月
'
,
value
:
'
09
'
},
{
name
:
'
十月
'
,
value
:
'
10
'
},
{
name
:
'
十一月
'
,
value
:
'
11
'
},
{
name
:
'
十二月
'
,
value
:
'
12
'
},
],
item2
:{
value
:
''
},
},
rules
:
{
projectId
:
[
{
required
:
true
,
message
:
'
请选择项目
'
,
trigger
:
'
blur
'
}
],
id
:
[
{
required
:
true
,
message
:
'
请输入设备ID
'
,
trigger
:
'
blur
'
}
],
code
:
[
{
required
:
true
,
message
:
'
请输入设备识别码
'
,
trigger
:
'
blur
'
}
],
name
:
[
{
required
:
true
,
message
:
'
请输入设备名称
'
,
trigger
:
'
blur
'
}
],
},
form2
:{
title
:
'
指令下发
'
,
visible
:
false
,
logDialog
:
false
,
logVisible
:
false
,
query
:{},
page
:
1
,
size
:
10
,
total
:
0
,
status
:{
cu
:
0
},
item
:{
ecode
:
""
,
ename
:
''
,
ilAdjust
:
0
,
ilSave
:
0
,
time
:
''
,
ilThreshed
:
0
,
timekey
:
'
ilTimHour
'
,
},
adjustList
:[
{
name
:
'
启动
'
,
value
:
1
},
{
name
:
'
不启动
'
,
value
:
0
},
],
saveList
:[
{
name
:
'
存储
'
,
value
:
1
},
{
name
:
'
不存储
'
,
value
:
0
},
],
timeList
:[
{
name
:
'
时
'
,
value
:
'
ilTimHour
'
},
{
name
:
'
分
'
,
value
:
'
ilTimMins
'
},
{
name
:
'
秒
'
,
value
:
'
ilTimSec
'
},
number
:
[
{
required
:
true
,
message
:
'
请输入车牌号
'
,
trigger
:
'
blur
'
}
],
formData
:[],
},
}
},
...
...
@@ -316,24 +160,26 @@ export default {
},
methods
:
{
loadData
()
{
var
that
=
this
;
var
sort
=
'
addTime,desc
'
;
var
sort
=
'
id,desc
'
;
var
param
=
this
.
query
;
param
.
page
=
this
.
page
-
1
;
param
.
size
=
this
.
size
;
param
.
sort
=
sort
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
;
});
this
.
$nextTick
(()
=>
{
HttpReq
.
plantFactory
.
getDeviceManageList
(
param
).
then
((
res
)
=>
{
//console.log(res);
//获取车辆信息
HttpReq
.
truckDispatching
.
carInformationQuery
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
this
.
loading
=
false
;
this
.
tableData
=
res
.
content
;
this
.
total
=
res
.
totalElements
;
this
.
tableData
=
res
.
data
.
content
;
this
.
total
=
res
.
data
.
totalElements
;
}
})
//获取车队
HttpReq
.
truckDispatching
.
carFleetQuery
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
this
.
selectList
=
res
.
data
.
content
;
}
})
})
...
...
@@ -348,45 +194,34 @@ export default {
},
// 点击搜索
toSearch
()
{
this
.
page
=
1
this
.
loadData
()
this
.
page
=
1
;
this
.
loadData
()
;
},
clearLimit
(){
// 清除限制
// 重置搜索
clearLimit
(){
this
.
query
=
{};
this
.
loadData
()
},
cancelForm
(
a
,
b
,
c
){
this
.
form
.
visible
=
false
;
},
cancelForm2
(){
this
.
form
.
historyDialog
=
false
;
},
toAdd
()
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
添加设备
'
;
this
.
form
.
title
=
'
新增车辆
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
reqType
=
'
add
'
;
this
.
form
.
item
=
{};
this
.
picFileName
=
''
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toEdit
(
item
)
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
编辑设备
'
;
this
.
form
.
title
=
'
修改车辆
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
item
=
item
;
this
.
form
.
item
=
{...
item
}
;
this
.
form
.
reqType
=
'
edit
'
;
this
.
picFileName
=
this
.
form
.
item
.
position
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toDelete
(
item
)
{
var
id
=
item
.
id
;
...
...
@@ -396,103 +231,7 @@ export default {
type
:
'
warning
'
}).
then
((
e
)
=>
{
this
.
reqRemoveProject
([
id
])
}).
catch
((
e
)
=>
{
})
},
//查看图片以及其他信息
toSeeMore
(
row
){
//console.log(row);
this
.
seeMoreData
=
row
;
this
.
seeMoreImgUrl
=
process
.
env
.
VUE_APP_LOCAL_API2
+
"
/avatar/
"
+
row
.
position
;
this
.
form
.
seeMoreDialog
=
true
;
this
.
$nextTick
(()
=>
{
let
videoContainer
=
document
.
querySelector
(
'
#video-container
'
);
videoContainer
.
innerHTML
=
''
;
var
player
=
new
EZUIKit
.
EZUIKitPlayer
({
autoplay
:
true
,
id
:
'
video-container
'
,
accessToken
:
'
at.4qo66bb35a19h07a0d9pbmtj5v4g0o78-4jmzdu3k24-0866je6-qkz1xuwmf
'
,
url
:
'
ezopen://open.ys7.com/J16440511/1.live
'
,
template
:
"
simple
"
,
// simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
width
:
530
,
height
:
320
});
})
},
toHistoryLog
(
item
){
this
.
form
.
historyDialog
=
true
;
this
.
form
.
item2
.
value
=
Dates
.
format
(
'
MM
'
);
this
.
form
.
item2
.
code
=
item
.
ecode
;
this
.
$nextTick
(()
=>
{
var
ecahrtEl
=
document
.
getElementById
(
"
ecahrtA
"
);
this
.
ecahrtA
=
this
.
ecahrtA
||
this
.
createPanelEcharts
(
ecahrtEl
);
this
.
reqHistoryList
(
this
.
form
.
item2
);
});
},
cancelForm3
(
a
,
b
,
c
){
this
.
form2
.
visible
=
false
;
},
cancelForm4
(
a
,
b
,
c
){
this
.
form2
.
logVisible
=
false
;
},
// 指令下发
toInstructionSet
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
指令下发
'
;
form2
.
status
.
cu
=
0
;
form2
.
visible
=
true
;
form2
.
reqType
=
'
edit
'
;
form2
.
item
=
{
ecode
:
item
.
ecode
,
subcode
:
item
.
subcode
,
ilAdjust
:
form2
.
item
.
ilAdjust
,
ilSave
:
form2
.
item
.
ilSave
,
timekey
:
form2
.
item
.
timekey
,
time
:
''
,
};
},
// 指令日志
toInstructionLog
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
下发日志
'
;
form2
.
logVisible
=
true
;
form2
.
item
=
item
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]
||
fitem
[
key
]
===
0
){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
}).
catch
((
e
)
=>
{})
},
pageChange
(
e
)
{
this
.
page
=
e
...
...
@@ -503,15 +242,6 @@ export default {
this
.
size
=
e
this
.
loadData
()
},
pageChange2
(
e
)
{
this
.
form2
.
page
=
e
this
.
reqInstructionLog
(
this
.
form2
.
item
)
},
sizeChange2
(
e
)
{
this
.
form2
.
page
=
1
;
this
.
form2
.
size
=
e
;
this
.
reqInstructionLog
(
this
.
form2
.
item
);
},
submitForm
(
validateName
,
item
){
if
(
!
this
.
form
.
status
.
cu
){
this
.
form
.
status
.
cu
=
2
;
...
...
@@ -528,36 +258,21 @@ export default {
});
};
},
findHistory
(){
this
.
reqHistoryList
(
this
.
form
.
item2
);
},
//请求项目列表
reqProjectsSimple
(){
return
HttpReq
.
project
.
getProject
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
return
res
.
data
.
content
;
}
else
{
return
[]
}
})
},
//添加设备
//新增车辆
reqAddItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
addDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carInformationAdd
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
==
1
){
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
项目添加
成功!
'
,
title
:
'
车辆新增
成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -566,36 +281,35 @@ export default {
form
.
status
.
cu
=
0
});
},
//修改
设备
//修改
车辆
reqUpdateItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
upDateDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carInformationUpdate
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
type
:
'
error
'
,
duration
:
2500
})
}
else
{
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
修改成功!
'
,
title
:
'
车辆
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
}
}).
catch
(
function
(
error
)
{
form
.
status
.
cu
=
0
});
},
//删除
设备
//删除
车辆
reqRemoveProject
(
item
){
HttpReq
.
plantFactory
.
removeDeviceManageList
(
item
).
then
((
res
)
=>
{
HttpReq
.
truckDispatching
.
carInformationDel
(
item
).
then
((
res
)
=>
{
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -609,228 +323,30 @@ export default {
this
.
loadData
();
})
},
reqHistoryList
(
item
){
var
timeSpace
=
this
.
query
.
timeSpace
;
var
startTime
=
timeSpace
?
timeSpace
[
0
].
split
(
'
'
)[
0
]
:
''
;
var
endTime
=
timeSpace
?
timeSpace
[
1
].
split
(
'
'
)[
0
]
:
''
;
HttpReq
.
historys
.
getItemBycode
({
codes
:
item
.
code
,
startTime
:
startTime
,
endTime
:
endTime
}).
then
((
res
)
=>
{
if
(
res
.
head
.
code
===
'
0000
'
){
var
body
=
res
.
body
||
{};
var
list
=
body
.
list
||
[];
var
xAxisData
=
[];
var
helement
=
[];
var
htemperature
=
[];
var
hlenght1
=
[],
hlenght2
=
[],
hlenght3
=
[];
for
(
var
item
of
list
){
xAxisData
.
push
(
item
.
createTime
);
helement
.
push
(
item
.
helement
);
htemperature
.
push
(
item
.
htemperature
);
hlenght1
.
push
(
item
.
hlenght1
);
hlenght2
.
push
(
item
.
hlenght2
);
hlenght3
.
push
(
item
.
hlenght3
);
};
this
.
ecahrtA
.
setData
({
xAxis
:
[
{
type
:
'
category
'
,
data
:
xAxisData
,
},
],
series
:
[
{
name
:
'
电压
'
,
data
:
helement
,
},
{
name
:
'
温度
'
,
data
:
htemperature
,
},
{
name
:
'
裂缝1
'
,
data
:
hlenght1
,
},
{
name
:
'
裂缝2
'
,
data
:
hlenght2
,
},
{
name
:
'
裂缝3
'
,
data
:
hlenght3
,
//车辆状态转换
statusChange
(
row
){
return
row
.
status
==
'
0
'
?
'
正常
'
:
row
.
status
==
'
1
'
?
'
故障
'
:
row
.
status
==
'
2
'
?
'
停用
'
:
''
;
},
//保养时间转换
timeChange
(
row
){
return
this
.
currentTime
(
row
.
time
);
},
currentTime
(
time
){
var
date
=
new
Date
(
time
);
var
year
=
date
.
getFullYear
();
//年 ,从 Date 对象以四位数字返回年份
var
month
=
date
.
getMonth
()
+
1
;
//月 ,从 Date 对象返回月份 (0 ~ 11) ,date.getMonth()比实际月份少 1 个月
var
day
=
date
.
getDate
();
//日 ,从 Date 对象返回一个月中的某一天 (1 ~ 31)
//修改月份格式
if
(
month
>=
1
&&
month
<=
9
)
{
month
=
"
0
"
+
month
;
}
]
})
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
catch __
'
,
error
);
})
},
createPanelEcharts
(
el
){
var
myChart
=
echarts
.
init
(
el
),
lineColor
=
'
green
'
;
var
option
=
{
title
:
{
text
:
''
,
subtext
:
'
设备值
'
},
tooltip
:
{
trigger
:
'
axis
'
},
legend
:
{
data
:
[
'
电压
'
,
'
温度
'
,
'
裂缝1
'
,
'
裂缝2
'
,
'
裂缝3
'
],
textStyle
:
{
color
:
"
#000
"
},
},
textStyle
:
{
color
:
"
#333
"
},
calculable
:
true
,
xAxis
:
[
{
type
:
'
category
'
,
data
:
[],
}
],
yAxis
:
[
{
type
:
'
value
'
,
}
],
grid
:{
top
:
40
,
right
:
10
,
bottom
:
20
,
left
:
45
,
},
series
:
[
{
name
:
'
电压
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type: 'default', color:'#00e5ff'}, color:'#00e5ff'}, color:'green'},
},
{
name
:
'
温度
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝1
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type:'default', color:'red'}, color:'#1849fe'}, color:'red'},
},
{
name
:
'
裂缝2
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝3
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
}
]
};
myChart
.
setOption
(
option
);
var
setData
=
function
(
option
){
myChart
.
hideLoading
();
myChart
.
setOption
(
option
)
};
return
{
setData
:
setData
,
myChart
:
myChart
}
},
reqSetInstruction
(
form
,
item
){
var
param
=
{
deviceId
:
item
.
ecode
,
ilAdjust
:
item
.
ilAdjust
,
ilSave
:
item
.
ilSave
,
ilThreshed
:
item
.
ilThreshed
||
0
,
[
item
.
timekey
]:
item
.
time
||
0
,
};
HttpReq
.
equipment
.
setInstruction
(
param
).
then
((
res
)
=>
{
this
.
form2
.
visible
=
false
;
this
.
$notify
({
title
:
'
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}).
catch
(
function
(
error
)
{
this
.
form2
.
status
.
cu
=
0
;
this
.
$notify
({
title
:
error
,
type
:
'
error
'
,
duration
:
2500
})
});
},
reqInstructionLog
(
item
){
var
form2
=
this
.
form2
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
//修改日期格式
if
(
day
>=
0
&&
day
<=
9
)
{
day
=
"
0
"
+
day
;
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
},
//图片上传
excelImport
(
event
)
{
let
that
=
this
;
let
file
=
event
.
target
.
files
[
0
];
let
formData1
=
new
FormData
();
formData1
.
append
(
"
avatar
"
,
file
);
Axios
({
url
:
process
.
env
.
VUE_APP_LOCAL_API2
+
'
/api/wEquipment/updateAvatar
'
,
method
:
"
post
"
,
data
:
formData1
,
}).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$message
.
success
(
"
上传成功
"
);
that
.
picFileName
=
response
.
data
.
avatar
;
}
else
{
this
.
$message
.
error
(
"
上传失败
"
);
}
},
)
.
catch
(
error
=>
{
console
.
log
(
error
);
});
},
//项目名称展示
formatter
(
row
){
let
proName
=
""
;
this
.
form
.
selectList
.
forEach
(
function
(
item
){
if
(
row
.
projectId
==
item
.
id
){
proName
=
item
.
name
;
}
})
return
proName
//获取当前系统时间 格式(yyyy-mm-dd hh:mm:ss)
let
currentFormatDate
=
year
+
"
-
"
+
month
+
"
-
"
+
day
;
return
currentFormatDate
;
}
}
}
...
...
src/views/carManagement/carModel/index.vue
View file @
5c3d3690
<
template
>
<div
class=
"common-page device-manage"
>
<div
class=
"option page-row"
>
<!--工具栏-->
<div
class=
"head-container"
>
<!-- 搜索 -->
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
设备识别码
</label>
<el-input
v-model=
"query.code"
clearable
size=
"small"
placeholder=
"请输入设备识别码"
style=
"width:180px;"
@
clear=
"clearLimit"
/>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-search"
@
click=
"toSearch"
>
搜索
</el-button>
</div>
</div>
<!-- 表格 -->
<div
class=
"panel-bottom page-row"
>
<h3>
设备管理列表
</h3>
<h3>
车辆型号管理
</h3>
<div
class=
"ctin-box"
>
<div
class=
"content-within"
>
<div
class=
"content-fix"
>
...
...
@@ -19,30 +12,16 @@
</div>
<div
class=
"content"
>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"id"
label=
"设备ID"
align=
"center"
></el-table-column>
<el-table-column
prop=
"code"
label=
"设备识别码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"设备名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWindspeed"
label=
"风速报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmTemperature"
label=
"温度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmHumidity"
label=
"湿度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmCo2"
label=
"二氧化碳报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmMlux"
label=
"光照报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmPh"
label=
"酸碱度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterTemperature"
label=
"水温报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmElectricalConductance"
label=
"电导率报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterDepth"
label=
"液位报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"设备激活时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"addTime"
label=
"最后采集时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"projectId"
label=
"所属项目"
align=
"center"
:formatter=
"formatter"
></el-table-column>
<el-table-column
label=
"操作"
min-width=
"180px"
align=
"center"
fixed=
"right"
>
<el-table-column
prop=
"id"
label=
"序号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"model"
label=
"车辆型号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"carclass"
label=
"所属车辆类型"
align=
"center"
></el-table-column>
<el-table-column
prop=
"weight"
label=
"运重(kg)"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarm"
label=
"超速预警"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"日期"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-view"
@
click=
"toSeeMore(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"toEdit(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"toDelete(scope.row)"
></el-button>
<!--
<div
class=
"btn-groub2"
>
<el-button
size=
"mini"
type=
"warning"
icon=
"el-icon-set-up"
@
click=
"toInstructionSet(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"info"
icon=
"el-icon-tickets"
@
click=
"toInstructionLog(scope.row)"
></el-button>
</div>
-->
</
template
>
</el-table-column>
</el-table>
...
...
@@ -57,56 +36,23 @@
<!-- 表单渲染 -->
<el-dialog
append-to-body
:close-on-click-modal=
"true"
:before-close=
"cancelForm"
:visible.sync=
"form.visible"
:title=
"form.title"
width=
"700px"
>
<el-form
:model=
"form.item"
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"150px"
>
<el-form-item
label=
"选择项目"
prop=
"projectId"
>
<el-select
v-model=
"form.item.projectId"
placeholder=
"请选择项目"
size=
"small"
>
<el-option
v-for=
"(obj,index) in form.selectList"
:label=
"obj.name"
:value=
"obj.id"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="设备ID" prop="id">
<el-input v-model="form.item.id" style="width:280px;" placeholder="请输入设备编号" :disabled="form.reqType==='edit'"/>
</el-form-item> -->
<el-form-item
label=
"设备识别码"
prop=
"code"
>
<el-input
v-model=
"form.item.code"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备名称"
prop=
"name"
>
<el-input
v-model=
"form.item.name"
style=
"width:260px;"
placeholder=
"请输入设备名称"
/>
</el-form-item>
<el-form-item
label=
"风速报警阈值"
prop=
"alarmWindspeed"
>
<el-input
v-model=
"form.item.alarmWindspeed"
style=
"width:160px;"
placeholder=
"请输入风速报警阈值"
/>
</el-form-item>
<el-form-item
label=
"温度报警阈值"
prop=
"alarmTemperature"
>
<el-input
v-model=
"form.item.alarmTemperature"
style=
"width:160px;"
placeholder=
"请输入温度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"湿度报警阈值"
prop=
"alarmHumidity"
>
<el-input
v-model=
"form.item.alarmHumidity"
style=
"width:160px;"
placeholder=
"请输入湿度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"二氧化碳报警阈值"
prop=
"alarmCo2"
>
<el-input
v-model=
"form.item.alarmCo2"
style=
"width:160px;"
placeholder=
"请输入二氧化碳报警阈值"
/>
</el-form-item>
<el-form-item
label=
"光照报警阈值"
prop=
"alarmMlux"
>
<el-input
v-model=
"form.item.alarmMlux"
style=
"width:160px;"
placeholder=
"请输入光照报警阈值"
/>
</el-form-item>
<el-form-item
label=
"酸碱度报警阈值"
prop=
"alarmPh"
>
<el-input
v-model=
"form.item.alarmPh"
style=
"width:160px;"
placeholder=
"请输入酸碱度报警阈值"
/>
<el-form-item
label=
"车辆型号"
prop=
"model"
>
<el-input
v-model=
"form.item.model"
style=
"width:280px;"
placeholder=
"请输入车辆型号"
/>
</el-form-item>
<el-form-item
label=
"水温报警阈值"
prop=
"alarmWaterTemperature"
>
<el-input
v-model=
"form.item.alarmWaterTemperature"
style=
"width:160px;"
placeholder=
"请输入水温报警阈值"
/>
</el-form-item>
<el-form-item
label=
"电导率报警阈值"
prop=
"alarmElectricalConductance"
>
<el-input
v-model=
"form.item.alarmElectricalConductance"
style=
"width:160px;"
placeholder=
"请输入电导率报警阈值"
/>
</el-form-item>
<el-form-item
label=
"液位报警阈值"
prop=
"alarmWaterDepth"
>
<el-input
v-model=
"form.item.alarmWaterDepth"
style=
"width:160px;"
placeholder=
"请输入液位报警阈值"
/>
<el-form-item
label=
"所属车辆类型"
>
<el-select
v-model=
"form.item.carclass"
placeholder=
"请选择所属车辆类型"
style=
"width:280px;"
>
<el-option
label=
"挖机"
value=
"挖机"
></el-option>
<el-option
label=
"铲车"
value=
"铲车"
></el-option>
<el-option
label=
"卡车"
value=
"卡车"
></el-option>
<el-option
label=
"清扫车"
value=
"清扫车"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"上传设备位置"
prop=
"position"
>
<el-input
v-model=
"picFileName"
style=
"width:160px;"
placeholder=
"请上传设备位置"
disabled
/>
<input
type=
"file"
name=
"image"
@
change=
"excelImport($event)"
/>
<el-form-item
label=
"运重(kg)"
prop=
"weight"
>
<el-input
v-model=
"form.item.weight"
style=
"width:280px;"
placeholder=
"请输入运重(kg)"
/>
</el-form-item>
<div
style=
"margin:0px 0px 10px 55px;font-size:16px;font-weight:bold;"
>
摄像头参数配置
</div>
<el-form-item
label=
"摄像头ID"
prop=
"camera"
>
<el-input
v-model=
"form.item.camera"
style=
"width:160px;"
placeholder=
"请输入摄像头ID"
/>
<el-form-item
label=
"超速预警"
prop=
"alarm"
>
<el-input
v-model=
"form.item.alarm"
style=
"width:280px;"
placeholder=
"请输入超速预警"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm"
>
取消
</el-button>
...
...
@@ -114,119 +60,15 @@
</div>
</el-dialog>
<!-- 查看更多 -->
<el-dialog
title=
"查看设备"
:visible.sync=
"form.seeMoreDialog"
width=
"800px"
>
<el-form
:model=
"seeMoreData"
style=
"margin-top:20px;"
>
<el-form-item
label=
"摄像头位置图片"
label-width=
"150px"
>
<el-image
:src=
"seeMoreImgUrl"
style=
"width:300px;"
></el-image>
</el-form-item>
<el-form-item
label=
"摄像头图像"
label-width=
"150px"
>
<div
id=
"video-container"
style=
"width:550px;height:350px"
></div>
</el-form-item>
<el-form-item
label=
"摄像头ID"
label-width=
"150px"
>
<el-input
v-model=
"seeMoreData.camera"
style=
"width:200px"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"form.seeMoreDialog = false"
>
关闭
</el-button>
</div>
</el-dialog>
<!-- 历史图表 -->
<el-dialog
class=
"ecahrt1-dialog"
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm2"
:visible.sync=
"form.historyDialog"
>
<el-form
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"80px"
>
<!-- <el-form-item prop="eprogramid" >
<el-select v-model="form.item2.value" placeholder="请选择月份">
<el-option v-for="obj in form.monthSelectList" :label="obj.name" :value="obj.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item
prop=
"eprogramid"
>
<date-range-picker
v-model=
"query.timeSpace"
class=
"date-item"
/>
</el-form-item>
<el-form-item
>
<el-button
type=
"primary"
@
click=
"findHistory"
>
查询
</el-button>
</el-form-item>
<el-form-item
prop=
"content"
style=
"display:block;"
>
<div
class=
"form-body"
>
<div
id=
"ecahrtA"
></div>
</div>
</el-form-item>
</el-form>
</el-dialog>
<!-- 指令下发 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm3"
:visible.sync=
"form2.visible"
:title=
"form2.title"
width=
"600px"
>
<el-form
:model=
"form2.item"
:rules=
"rules"
ref=
"form2"
:inline=
"true"
size=
"small"
label-width=
"100px"
>
<el-form-item
label=
"设备ID"
prop=
"ecode"
>
<el-input
v-model=
"form2.item.ecode"
style=
"width:280px;"
placeholder=
"请输入设备编号"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备识别码"
prop=
"subcode"
>
<el-input
v-model=
"form2.item.subcode"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"是否启动校正"
prop=
"ilAdjust"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilAdjust"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"obj in form2.adjustList"
:label=
"obj.name"
:key=
"obj.value"
:value=
"obj.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"是否存储裂缝"
prop=
"ilSave"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilSave"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.saveList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"裂缝阈值"
prop=
"ilThreshed"
>
<el-input
v-model=
"form2.item.ilThreshed"
style=
"width:160px;"
placeholder=
"请输入裂缝阈值"
/>
<span
style=
"color:#aaa;"
>
1~255
</span>
</el-form-item>
<el-form-item
label=
"唤醒周期"
prop=
"timekey"
>
<el-select
v-model=
"form2.item.timekey"
placeholder=
"请选择时间"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.timeList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
<el-input
v-model=
"form2.item.time"
style=
"width:160px;"
placeholder=
"请输入时长"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm3"
>
取消
</el-button>
<el-button
:loading=
"form2.status.cu === 2"
type=
"primary"
@
click=
"reqSetInstruction('form2', form2.item)"
>
确认
</el-button>
</div>
</el-dialog>
<!-- 指令日志 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm4"
:visible.sync=
"form2.logVisible"
:title=
"form2.title"
width=
"65%"
>
<div
class=
"content"
>
<el-table
:data=
"form2.formData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"subcode"
label=
"设备识别码"
min-width=
"135px"
></el-table-column>
<el-table-column
prop=
"ilThreshed"
label=
"裂缝阈值"
></el-table-column>
<el-table-column
prop=
"ilAdjust"
label=
"校正功能"
></el-table-column>
<el-table-column
prop=
"ilSave"
label=
"存储裂缝"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"唤醒时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
time
+
'
(
'
+
scope
.
row
.
timeUnit
+
'
)
'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"ilSendSuccess"
label=
"下发状态"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"下发时间"
min-width=
"145px"
></el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
:total=
"form2.total"
:current-page=
"form2.page"
style=
"margin-top:8px;"
layout=
"total, prev, pager, next, sizes"
@
size-change=
"sizeChange2"
@
current-change=
"pageChange2"
/>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
echarts
from
'
echarts
'
;
import
{
Tools
,
HttpReq
,
Dates
}
from
'
@/assets/js/common.js
'
;
import
DateRangePicker
from
'
@/components/DateRangePicker
'
;
import
cuAmap
from
'
@/components/AMap
'
;
import
Axios
from
'
axios
'
import
EZUIKit
from
"
ezuikit-js
"
;
export
default
{
name
:
'
carModel
'
,
components
:
{
DateRangePicker
,
cuAmap
},
name
:
'
CarModel
'
,
components
:
{},
data
()
{
return
{
loading
:
false
,
...
...
@@ -234,77 +76,18 @@ export default {
size
:
10
,
total
:
0
,
query
:{},
picFileName
:
''
,
tableData
:
[],
seeMoreData
:{},
seeMoreImgUrl
:
""
,
form
:
{
title
:
'
添加设备
'
,
visible
:
false
,
reqType
:
'
add
'
,
historyDialog
:
false
,
seeMoreDialog
:
false
,
title
:
'
新增车辆型号
'
,
visible
:
false
,
reqType
:
'
add
'
,
status
:{
cu
:
0
},
selectList
:[],
item
:{},
monthSelectList
:[
{
name
:
'
一月
'
,
value
:
'
01
'
},
{
name
:
'
二月
'
,
value
:
'
02
'
},
{
name
:
'
三月
'
,
value
:
'
03
'
},
{
name
:
'
四月
'
,
value
:
'
04
'
},
{
name
:
'
五月
'
,
value
:
'
05
'
},
{
name
:
'
六月
'
,
value
:
'
06
'
},
{
name
:
'
七月
'
,
value
:
'
07
'
},
{
name
:
'
八月
'
,
value
:
'
08
'
},
{
name
:
'
九月
'
,
value
:
'
09
'
},
{
name
:
'
十月
'
,
value
:
'
10
'
},
{
name
:
'
十一月
'
,
value
:
'
11
'
},
{
name
:
'
十二月
'
,
value
:
'
12
'
},
],
item2
:{
value
:
''
},
},
rules
:
{
projectId
:
[
{
required
:
true
,
message
:
'
请选择项目
'
,
trigger
:
'
blur
'
}
],
id
:
[
{
required
:
true
,
message
:
'
请输入设备ID
'
,
trigger
:
'
blur
'
}
],
code
:
[
{
required
:
true
,
message
:
'
请输入设备识别码
'
,
trigger
:
'
blur
'
}
],
name
:
[
{
required
:
true
,
message
:
'
请输入设备名称
'
,
trigger
:
'
blur
'
}
],
},
form2
:{
title
:
'
指令下发
'
,
visible
:
false
,
logDialog
:
false
,
logVisible
:
false
,
query
:{},
page
:
1
,
size
:
10
,
total
:
0
,
status
:{
cu
:
0
},
item
:{
ecode
:
""
,
ename
:
''
,
ilAdjust
:
0
,
ilSave
:
0
,
time
:
''
,
ilThreshed
:
0
,
timekey
:
'
ilTimHour
'
,
},
adjustList
:[
{
name
:
'
启动
'
,
value
:
1
},
{
name
:
'
不启动
'
,
value
:
0
},
],
saveList
:[
{
name
:
'
存储
'
,
value
:
1
},
{
name
:
'
不存储
'
,
value
:
0
},
],
timeList
:[
{
name
:
'
时
'
,
value
:
'
ilTimHour
'
},
{
name
:
'
分
'
,
value
:
'
ilTimMins
'
},
{
name
:
'
秒
'
,
value
:
'
ilTimSec
'
},
],
formData
:[],
// time: [
// {required: true, message: '请输入车辆型号', trigger: 'blur' }
// ],
},
}
},
...
...
@@ -316,24 +99,19 @@ export default {
},
methods
:
{
loadData
()
{
var
that
=
this
;
var
sort
=
'
addTime,desc
'
;
var
sort
=
'
id,desc
'
;
var
param
=
this
.
query
;
param
.
page
=
this
.
page
-
1
;
param
.
size
=
this
.
size
;
param
.
sort
=
sort
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
;
});
this
.
$nextTick
(()
=>
{
HttpReq
.
plantFactory
.
getDeviceManageList
(
param
).
then
((
res
)
=>
{
//console.log(res);
HttpReq
.
truckDispatching
.
carModelQuery
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
this
.
loading
=
false
;
this
.
tableData
=
res
.
content
;
this
.
total
=
res
.
totalElements
;
this
.
tableData
=
res
.
data
.
content
;
this
.
total
=
res
.
data
.
totalElements
;
}
})
})
...
...
@@ -346,47 +124,26 @@ export default {
}
return
''
;
},
// 点击搜索
toSearch
()
{
this
.
page
=
1
this
.
loadData
()
},
clearLimit
(){
// 清除限制
this
.
loadData
()
},
cancelForm
(
a
,
b
,
c
){
this
.
form
.
visible
=
false
;
},
cancelForm2
(){
this
.
form
.
historyDialog
=
false
;
},
toAdd
()
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
添加设备
'
;
this
.
form
.
title
=
'
新增车辆型号
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
reqType
=
'
add
'
;
this
.
form
.
item
=
{};
this
.
picFileName
=
''
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toEdit
(
item
)
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
编辑设备
'
;
this
.
form
.
title
=
'
修改车辆型号
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
item
=
item
;
this
.
form
.
item
=
{...
item
}
;
this
.
form
.
reqType
=
'
edit
'
;
this
.
picFileName
=
this
.
form
.
item
.
position
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toDelete
(
item
)
{
var
id
=
item
.
id
;
...
...
@@ -396,103 +153,7 @@ export default {
type
:
'
warning
'
}).
then
((
e
)
=>
{
this
.
reqRemoveProject
([
id
])
}).
catch
((
e
)
=>
{
})
},
//查看图片以及其他信息
toSeeMore
(
row
){
//console.log(row);
this
.
seeMoreData
=
row
;
this
.
seeMoreImgUrl
=
process
.
env
.
VUE_APP_LOCAL_API2
+
"
/avatar/
"
+
row
.
position
;
this
.
form
.
seeMoreDialog
=
true
;
this
.
$nextTick
(()
=>
{
let
videoContainer
=
document
.
querySelector
(
'
#video-container
'
);
videoContainer
.
innerHTML
=
''
;
var
player
=
new
EZUIKit
.
EZUIKitPlayer
({
autoplay
:
true
,
id
:
'
video-container
'
,
accessToken
:
'
at.4qo66bb35a19h07a0d9pbmtj5v4g0o78-4jmzdu3k24-0866je6-qkz1xuwmf
'
,
url
:
'
ezopen://open.ys7.com/J16440511/1.live
'
,
template
:
"
simple
"
,
// simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
width
:
530
,
height
:
320
});
})
},
toHistoryLog
(
item
){
this
.
form
.
historyDialog
=
true
;
this
.
form
.
item2
.
value
=
Dates
.
format
(
'
MM
'
);
this
.
form
.
item2
.
code
=
item
.
ecode
;
this
.
$nextTick
(()
=>
{
var
ecahrtEl
=
document
.
getElementById
(
"
ecahrtA
"
);
this
.
ecahrtA
=
this
.
ecahrtA
||
this
.
createPanelEcharts
(
ecahrtEl
);
this
.
reqHistoryList
(
this
.
form
.
item2
);
});
},
cancelForm3
(
a
,
b
,
c
){
this
.
form2
.
visible
=
false
;
},
cancelForm4
(
a
,
b
,
c
){
this
.
form2
.
logVisible
=
false
;
},
// 指令下发
toInstructionSet
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
指令下发
'
;
form2
.
status
.
cu
=
0
;
form2
.
visible
=
true
;
form2
.
reqType
=
'
edit
'
;
form2
.
item
=
{
ecode
:
item
.
ecode
,
subcode
:
item
.
subcode
,
ilAdjust
:
form2
.
item
.
ilAdjust
,
ilSave
:
form2
.
item
.
ilSave
,
timekey
:
form2
.
item
.
timekey
,
time
:
''
,
};
},
// 指令日志
toInstructionLog
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
下发日志
'
;
form2
.
logVisible
=
true
;
form2
.
item
=
item
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]
||
fitem
[
key
]
===
0
){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
}).
catch
((
e
)
=>
{})
},
pageChange
(
e
)
{
this
.
page
=
e
...
...
@@ -503,15 +164,6 @@ export default {
this
.
size
=
e
this
.
loadData
()
},
pageChange2
(
e
)
{
this
.
form2
.
page
=
e
this
.
reqInstructionLog
(
this
.
form2
.
item
)
},
sizeChange2
(
e
)
{
this
.
form2
.
page
=
1
;
this
.
form2
.
size
=
e
;
this
.
reqInstructionLog
(
this
.
form2
.
item
);
},
submitForm
(
validateName
,
item
){
if
(
!
this
.
form
.
status
.
cu
){
this
.
form
.
status
.
cu
=
2
;
...
...
@@ -528,36 +180,21 @@ export default {
});
};
},
findHistory
(){
this
.
reqHistoryList
(
this
.
form
.
item2
);
},
//请求项目列表
reqProjectsSimple
(){
return
HttpReq
.
project
.
getProject
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
return
res
.
data
.
content
;
}
else
{
return
[]
}
})
},
//添加设备
//新增车辆型号
reqAddItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
addDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carModelAdd
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
==
1
){
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
项目添加
成功!
'
,
title
:
'
车辆型号新增
成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -566,36 +203,35 @@ export default {
form
.
status
.
cu
=
0
});
},
//修改
设备
//修改
车辆型号
reqUpdateItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
upDateDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carModelUpdate
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
type
:
'
error
'
,
duration
:
2500
})
}
else
{
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
修改成功!
'
,
title
:
'
车辆型号
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
}
}).
catch
(
function
(
error
)
{
form
.
status
.
cu
=
0
});
},
//删除
设备
//删除
车辆型号
reqRemoveProject
(
item
){
HttpReq
.
plantFactory
.
removeDeviceManageList
(
item
).
then
((
res
)
=>
{
HttpReq
.
truckDispatching
.
carModelDel
(
item
).
then
((
res
)
=>
{
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -609,229 +245,6 @@ export default {
this
.
loadData
();
})
},
reqHistoryList
(
item
){
var
timeSpace
=
this
.
query
.
timeSpace
;
var
startTime
=
timeSpace
?
timeSpace
[
0
].
split
(
'
'
)[
0
]
:
''
;
var
endTime
=
timeSpace
?
timeSpace
[
1
].
split
(
'
'
)[
0
]
:
''
;
HttpReq
.
historys
.
getItemBycode
({
codes
:
item
.
code
,
startTime
:
startTime
,
endTime
:
endTime
}).
then
((
res
)
=>
{
if
(
res
.
head
.
code
===
'
0000
'
){
var
body
=
res
.
body
||
{};
var
list
=
body
.
list
||
[];
var
xAxisData
=
[];
var
helement
=
[];
var
htemperature
=
[];
var
hlenght1
=
[],
hlenght2
=
[],
hlenght3
=
[];
for
(
var
item
of
list
){
xAxisData
.
push
(
item
.
createTime
);
helement
.
push
(
item
.
helement
);
htemperature
.
push
(
item
.
htemperature
);
hlenght1
.
push
(
item
.
hlenght1
);
hlenght2
.
push
(
item
.
hlenght2
);
hlenght3
.
push
(
item
.
hlenght3
);
};
this
.
ecahrtA
.
setData
({
xAxis
:
[
{
type
:
'
category
'
,
data
:
xAxisData
,
},
],
series
:
[
{
name
:
'
电压
'
,
data
:
helement
,
},
{
name
:
'
温度
'
,
data
:
htemperature
,
},
{
name
:
'
裂缝1
'
,
data
:
hlenght1
,
},
{
name
:
'
裂缝2
'
,
data
:
hlenght2
,
},
{
name
:
'
裂缝3
'
,
data
:
hlenght3
,
}
]
})
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
catch __
'
,
error
);
})
},
createPanelEcharts
(
el
){
var
myChart
=
echarts
.
init
(
el
),
lineColor
=
'
green
'
;
var
option
=
{
title
:
{
text
:
''
,
subtext
:
'
设备值
'
},
tooltip
:
{
trigger
:
'
axis
'
},
legend
:
{
data
:
[
'
电压
'
,
'
温度
'
,
'
裂缝1
'
,
'
裂缝2
'
,
'
裂缝3
'
],
textStyle
:
{
color
:
"
#000
"
},
},
textStyle
:
{
color
:
"
#333
"
},
calculable
:
true
,
xAxis
:
[
{
type
:
'
category
'
,
data
:
[],
}
],
yAxis
:
[
{
type
:
'
value
'
,
}
],
grid
:{
top
:
40
,
right
:
10
,
bottom
:
20
,
left
:
45
,
},
series
:
[
{
name
:
'
电压
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type: 'default', color:'#00e5ff'}, color:'#00e5ff'}, color:'green'},
},
{
name
:
'
温度
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝1
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type:'default', color:'red'}, color:'#1849fe'}, color:'red'},
},
{
name
:
'
裂缝2
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝3
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
}
]
};
myChart
.
setOption
(
option
);
var
setData
=
function
(
option
){
myChart
.
hideLoading
();
myChart
.
setOption
(
option
)
};
return
{
setData
:
setData
,
myChart
:
myChart
}
},
reqSetInstruction
(
form
,
item
){
var
param
=
{
deviceId
:
item
.
ecode
,
ilAdjust
:
item
.
ilAdjust
,
ilSave
:
item
.
ilSave
,
ilThreshed
:
item
.
ilThreshed
||
0
,
[
item
.
timekey
]:
item
.
time
||
0
,
};
HttpReq
.
equipment
.
setInstruction
(
param
).
then
((
res
)
=>
{
this
.
form2
.
visible
=
false
;
this
.
$notify
({
title
:
'
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}).
catch
(
function
(
error
)
{
this
.
form2
.
status
.
cu
=
0
;
this
.
$notify
({
title
:
error
,
type
:
'
error
'
,
duration
:
2500
})
});
},
reqInstructionLog
(
item
){
var
form2
=
this
.
form2
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
},
//图片上传
excelImport
(
event
)
{
let
that
=
this
;
let
file
=
event
.
target
.
files
[
0
];
let
formData1
=
new
FormData
();
formData1
.
append
(
"
avatar
"
,
file
);
Axios
({
url
:
process
.
env
.
VUE_APP_LOCAL_API2
+
'
/api/wEquipment/updateAvatar
'
,
method
:
"
post
"
,
data
:
formData1
,
}).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$message
.
success
(
"
上传成功
"
);
that
.
picFileName
=
response
.
data
.
avatar
;
}
else
{
this
.
$message
.
error
(
"
上传失败
"
);
}
},
)
.
catch
(
error
=>
{
console
.
log
(
error
);
});
},
//项目名称展示
formatter
(
row
){
let
proName
=
""
;
this
.
form
.
selectList
.
forEach
(
function
(
item
){
if
(
row
.
projectId
==
item
.
id
){
proName
=
item
.
name
;
}
})
return
proName
}
}
}
</
script
>
...
...
src/views/carManagement/carRepair/index.vue
View file @
5c3d3690
<
template
>
<div
class=
"common-page device-manage"
>
<div
class=
"option page-row"
>
<!--工具栏-->
<div
class=
"head-container"
>
<!-- 搜索 -->
<label
class=
"el-form-item-label"
style=
"font-weight: 500;"
>
设备识别码
</label>
<el-input
v-model=
"query.code"
clearable
size=
"small"
placeholder=
"请输入设备识别码"
style=
"width:180px;"
@
clear=
"clearLimit"
/>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-search"
@
click=
"toSearch"
>
搜索
</el-button>
</div>
</div>
<!-- 表格 -->
<div
class=
"panel-bottom page-row"
>
<h3>
设备管理列表
</h3>
<h3>
车辆检修管理
</h3>
<div
class=
"ctin-box"
>
<div
class=
"content-within"
>
<div
class=
"content-fix"
>
...
...
@@ -19,30 +12,17 @@
</div>
<div
class=
"content"
>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"id"
label=
"设备ID"
align=
"center"
></el-table-column>
<el-table-column
prop=
"code"
label=
"设备识别码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"设备名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWindspeed"
label=
"风速报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmTemperature"
label=
"温度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmHumidity"
label=
"湿度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmCo2"
label=
"二氧化碳报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmMlux"
label=
"光照报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmPh"
label=
"酸碱度报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterTemperature"
label=
"水温报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmElectricalConductance"
label=
"电导率报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"alarmWaterDepth"
label=
"液位报警阈值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"设备激活时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"addTime"
label=
"最后采集时间"
align=
"center"
></el-table-column>
<el-table-column
prop=
"projectId"
label=
"所属项目"
align=
"center"
:formatter=
"formatter"
></el-table-column>
<el-table-column
label=
"操作"
min-width=
"180px"
align=
"center"
fixed=
"right"
>
<el-table-column
prop=
"id"
label=
"序号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"number"
label=
"编码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"车辆名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"driver"
label=
"司机"
align=
"center"
></el-table-column>
<el-table-column
prop=
"carrepair"
label=
"检修类型"
align=
"center"
></el-table-column>
<el-table-column
prop=
"createTime"
label=
"日期"
align=
"center"
></el-table-column>
<el-table-column
prop=
"cardescribe"
label=
"检修保养说明"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"success"
icon=
"el-icon-view"
@
click=
"toSeeMore(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"toEdit(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"danger"
icon=
"el-icon-delete"
@
click=
"toDelete(scope.row)"
></el-button>
<!--
<div
class=
"btn-groub2"
>
<el-button
size=
"mini"
type=
"warning"
icon=
"el-icon-set-up"
@
click=
"toInstructionSet(scope.row)"
></el-button>
<el-button
size=
"mini"
type=
"info"
icon=
"el-icon-tickets"
@
click=
"toInstructionLog(scope.row)"
></el-button>
</div>
-->
</
template
>
</el-table-column>
</el-table>
...
...
@@ -57,56 +37,24 @@
<!-- 表单渲染 -->
<el-dialog
append-to-body
:close-on-click-modal=
"true"
:before-close=
"cancelForm"
:visible.sync=
"form.visible"
:title=
"form.title"
width=
"700px"
>
<el-form
:model=
"form.item"
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"150px"
>
<el-form-item
label=
"选择项目"
prop=
"projectId"
>
<el-select
v-model=
"form.item.projectId"
placeholder=
"请选择项目"
size=
"small"
>
<el-option
v-for=
"(obj,index) in form.selectList"
:label=
"obj.name"
:value=
"obj.id"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="设备ID" prop="id">
<el-input v-model="form.item.id" style="width:280px;" placeholder="请输入设备编号" :disabled="form.reqType==='edit'"/>
</el-form-item> -->
<el-form-item
label=
"设备识别码"
prop=
"code"
>
<el-input
v-model=
"form.item.code"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备名称"
prop=
"name"
>
<el-input
v-model=
"form.item.name"
style=
"width:260px;"
placeholder=
"请输入设备名称"
/>
</el-form-item>
<el-form-item
label=
"风速报警阈值"
prop=
"alarmWindspeed"
>
<el-input
v-model=
"form.item.alarmWindspeed"
style=
"width:160px;"
placeholder=
"请输入风速报警阈值"
/>
</el-form-item>
<el-form-item
label=
"温度报警阈值"
prop=
"alarmTemperature"
>
<el-input
v-model=
"form.item.alarmTemperature"
style=
"width:160px;"
placeholder=
"请输入温度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"湿度报警阈值"
prop=
"alarmHumidity"
>
<el-input
v-model=
"form.item.alarmHumidity"
style=
"width:160px;"
placeholder=
"请输入湿度报警阈值"
/>
</el-form-item>
<el-form-item
label=
"二氧化碳报警阈值"
prop=
"alarmCo2"
>
<el-input
v-model=
"form.item.alarmCo2"
style=
"width:160px;"
placeholder=
"请输入二氧化碳报警阈值"
/>
</el-form-item>
<el-form-item
label=
"光照报警阈值"
prop=
"alarmMlux"
>
<el-input
v-model=
"form.item.alarmMlux"
style=
"width:160px;"
placeholder=
"请输入光照报警阈值"
/>
</el-form-item>
<el-form-item
label=
"酸碱度报警阈值"
prop=
"alarmPh"
>
<el-input
v-model=
"form.item.alarmPh"
style=
"width:160px;"
placeholder=
"请输入酸碱度报警阈值"
/>
<el-form-item
label=
"编码"
prop=
"number"
>
<el-input
v-model=
"form.item.number"
style=
"width:280px;"
placeholder=
"请输入编码"
:disabled=
"this.form.reqType == 'edit'"
/>
</el-form-item>
<el-form-item
label=
"
水温报警阈值"
prop=
"alarmWaterTemperature"
>
<el-input
v-model=
"form.item.
alarmWaterTemperature"
style=
"width:160px;"
placeholder=
"请输入水温报警阈值
"
/>
<el-form-item
label=
"
车辆名称"
prop=
"name"
>
<el-input
v-model=
"form.item.
name"
style=
"width:280px;"
placeholder=
"请输入车辆名称"
:disabled=
"this.form.reqType == 'edit'
"
/>
</el-form-item>
<el-form-item
label=
"
电导率报警阈值"
prop=
"alarmElectricalConductance"
>
<el-input
v-model=
"form.item.
alarmElectricalConductance"
style=
"width:160px;"
placeholder=
"请输入电导率报警阈值
"
/>
<el-form-item
label=
"
司机"
prop=
"driver"
>
<el-input
v-model=
"form.item.
driver"
style=
"width:280px;"
placeholder=
"请输入司机"
:disabled=
"this.form.reqType == 'edit'
"
/>
</el-form-item>
<el-form-item
label=
"液位报警阈值"
prop=
"alarmWaterDepth"
>
<el-input
v-model=
"form.item.alarmWaterDepth"
style=
"width:160px;"
placeholder=
"请输入液位报警阈值"
/>
</el-form-item>
<el-form-item
label=
"上传设备位置"
prop=
"position"
>
<el-input
v-model=
"picFileName"
style=
"width:160px;"
placeholder=
"请上传设备位置"
disabled
/>
<input
type=
"file"
name=
"image"
@
change=
"excelImport($event)"
/>
<el-form-item
label=
"检修类型"
prop=
"carrepair"
>
<el-select
v-model=
"form.item.carrepair"
placeholder=
"请选择检修类型"
style=
"width:280px;"
>
<el-option
label=
"定期保养"
value=
"定期保养"
></el-option>
<el-option
label=
"定期检修"
value=
"定期检修"
></el-option>
</el-select>
</el-form-item>
<div
style=
"margin:0px 0px 10px 55px;font-size:16px;font-weight:bold;"
>
摄像头参数配置
</div>
<el-form-item
label=
"摄像头ID"
prop=
"camera"
>
<el-input
v-model=
"form.item.camera"
style=
"width:160px;"
placeholder=
"请输入摄像头ID"
/>
<el-form-item
label=
"检修保养说明"
prop=
"cardescribe"
>
<el-input
v-model=
"form.item.cardescribe"
style=
"width:280px;"
placeholder=
"请输入检修保养说明"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm"
>
取消
</el-button>
...
...
@@ -114,119 +62,15 @@
</div>
</el-dialog>
<!-- 查看更多 -->
<el-dialog
title=
"查看设备"
:visible.sync=
"form.seeMoreDialog"
width=
"800px"
>
<el-form
:model=
"seeMoreData"
style=
"margin-top:20px;"
>
<el-form-item
label=
"摄像头位置图片"
label-width=
"150px"
>
<el-image
:src=
"seeMoreImgUrl"
style=
"width:300px;"
></el-image>
</el-form-item>
<el-form-item
label=
"摄像头图像"
label-width=
"150px"
>
<div
id=
"video-container"
style=
"width:550px;height:350px"
></div>
</el-form-item>
<el-form-item
label=
"摄像头ID"
label-width=
"150px"
>
<el-input
v-model=
"seeMoreData.camera"
style=
"width:200px"
></el-input>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"form.seeMoreDialog = false"
>
关闭
</el-button>
</div>
</el-dialog>
<!-- 历史图表 -->
<el-dialog
class=
"ecahrt1-dialog"
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm2"
:visible.sync=
"form.historyDialog"
>
<el-form
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"80px"
>
<!-- <el-form-item prop="eprogramid" >
<el-select v-model="form.item2.value" placeholder="请选择月份">
<el-option v-for="obj in form.monthSelectList" :label="obj.name" :value="obj.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item
prop=
"eprogramid"
>
<date-range-picker
v-model=
"query.timeSpace"
class=
"date-item"
/>
</el-form-item>
<el-form-item
>
<el-button
type=
"primary"
@
click=
"findHistory"
>
查询
</el-button>
</el-form-item>
<el-form-item
prop=
"content"
style=
"display:block;"
>
<div
class=
"form-body"
>
<div
id=
"ecahrtA"
></div>
</div>
</el-form-item>
</el-form>
</el-dialog>
<!-- 指令下发 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm3"
:visible.sync=
"form2.visible"
:title=
"form2.title"
width=
"600px"
>
<el-form
:model=
"form2.item"
:rules=
"rules"
ref=
"form2"
:inline=
"true"
size=
"small"
label-width=
"100px"
>
<el-form-item
label=
"设备ID"
prop=
"ecode"
>
<el-input
v-model=
"form2.item.ecode"
style=
"width:280px;"
placeholder=
"请输入设备编号"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"设备识别码"
prop=
"subcode"
>
<el-input
v-model=
"form2.item.subcode"
style=
"width:260px;"
placeholder=
"请输入设备识别码"
:disabled=
"form2.reqType==='edit'"
/>
</el-form-item>
<el-form-item
label=
"是否启动校正"
prop=
"ilAdjust"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilAdjust"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"obj in form2.adjustList"
:label=
"obj.name"
:key=
"obj.value"
:value=
"obj.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"是否存储裂缝"
prop=
"ilSave"
style=
"width:240px;"
>
<el-select
v-model=
"form2.item.ilSave"
placeholder=
"请选择"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.saveList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"裂缝阈值"
prop=
"ilThreshed"
>
<el-input
v-model=
"form2.item.ilThreshed"
style=
"width:160px;"
placeholder=
"请输入裂缝阈值"
/>
<span
style=
"color:#aaa;"
>
1~255
</span>
</el-form-item>
<el-form-item
label=
"唤醒周期"
prop=
"timekey"
>
<el-select
v-model=
"form2.item.timekey"
placeholder=
"请选择时间"
size=
"small"
style=
"width:120px;"
>
<el-option
v-for=
"(obj,index) in form2.timeList"
:label=
"obj.name"
:value=
"obj.value"
:key=
"index"
></el-option>
</el-select>
<el-input
v-model=
"form2.item.time"
style=
"width:160px;"
placeholder=
"请输入时长"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm3"
>
取消
</el-button>
<el-button
:loading=
"form2.status.cu === 2"
type=
"primary"
@
click=
"reqSetInstruction('form2', form2.item)"
>
确认
</el-button>
</div>
</el-dialog>
<!-- 指令日志 -->
<el-dialog
append-to-body
:close-on-click-modal=
"false"
:before-close=
"cancelForm4"
:visible.sync=
"form2.logVisible"
:title=
"form2.title"
width=
"65%"
>
<div
class=
"content"
>
<el-table
:data=
"form2.formData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"subcode"
label=
"设备识别码"
min-width=
"135px"
></el-table-column>
<el-table-column
prop=
"ilThreshed"
label=
"裂缝阈值"
></el-table-column>
<el-table-column
prop=
"ilAdjust"
label=
"校正功能"
></el-table-column>
<el-table-column
prop=
"ilSave"
label=
"存储裂缝"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"唤醒时间"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
time
+
'
(
'
+
scope
.
row
.
timeUnit
+
'
)
'
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"ilSendSuccess"
label=
"下发状态"
></el-table-column>
<el-table-column
prop=
"ilSendTime"
label=
"下发时间"
min-width=
"145px"
></el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
:total=
"form2.total"
:current-page=
"form2.page"
style=
"margin-top:8px;"
layout=
"total, prev, pager, next, sizes"
@
size-change=
"sizeChange2"
@
current-change=
"pageChange2"
/>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
echarts
from
'
echarts
'
;
import
{
Tools
,
HttpReq
,
Dates
}
from
'
@/assets/js/common.js
'
;
import
DateRangePicker
from
'
@/components/DateRangePicker
'
;
import
cuAmap
from
'
@/components/AMap
'
;
import
Axios
from
'
axios
'
import
EZUIKit
from
"
ezuikit-js
"
;
export
default
{
name
:
'
carRepair
'
,
components
:
{
DateRangePicker
,
cuAmap
},
name
:
'
CarRepair
'
,
components
:
{},
data
()
{
return
{
loading
:
false
,
...
...
@@ -234,77 +78,18 @@ export default {
size
:
10
,
total
:
0
,
query
:{},
picFileName
:
''
,
tableData
:
[],
seeMoreData
:{},
seeMoreImgUrl
:
""
,
form
:
{
title
:
'
添加设备
'
,
visible
:
false
,
reqType
:
'
add
'
,
historyDialog
:
false
,
seeMoreDialog
:
false
,
title
:
'
新增车辆维修
'
,
visible
:
false
,
reqType
:
'
add
'
,
status
:{
cu
:
0
},
selectList
:[],
item
:{},
monthSelectList
:[
{
name
:
'
一月
'
,
value
:
'
01
'
},
{
name
:
'
二月
'
,
value
:
'
02
'
},
{
name
:
'
三月
'
,
value
:
'
03
'
},
{
name
:
'
四月
'
,
value
:
'
04
'
},
{
name
:
'
五月
'
,
value
:
'
05
'
},
{
name
:
'
六月
'
,
value
:
'
06
'
},
{
name
:
'
七月
'
,
value
:
'
07
'
},
{
name
:
'
八月
'
,
value
:
'
08
'
},
{
name
:
'
九月
'
,
value
:
'
09
'
},
{
name
:
'
十月
'
,
value
:
'
10
'
},
{
name
:
'
十一月
'
,
value
:
'
11
'
},
{
name
:
'
十二月
'
,
value
:
'
12
'
},
],
item2
:{
value
:
''
},
},
rules
:
{
projectId
:
[
{
required
:
true
,
message
:
'
请选择项目
'
,
trigger
:
'
blur
'
}
],
id
:
[
{
required
:
true
,
message
:
'
请输入设备ID
'
,
trigger
:
'
blur
'
}
],
code
:
[
{
required
:
true
,
message
:
'
请输入设备识别码
'
,
trigger
:
'
blur
'
}
],
name
:
[
{
required
:
true
,
message
:
'
请输入设备名称
'
,
trigger
:
'
blur
'
}
],
},
form2
:{
title
:
'
指令下发
'
,
visible
:
false
,
logDialog
:
false
,
logVisible
:
false
,
query
:{},
page
:
1
,
size
:
10
,
total
:
0
,
status
:{
cu
:
0
},
item
:{
ecode
:
""
,
ename
:
''
,
ilAdjust
:
0
,
ilSave
:
0
,
time
:
''
,
ilThreshed
:
0
,
timekey
:
'
ilTimHour
'
,
},
adjustList
:[
{
name
:
'
启动
'
,
value
:
1
},
{
name
:
'
不启动
'
,
value
:
0
},
],
saveList
:[
{
name
:
'
存储
'
,
value
:
1
},
{
name
:
'
不存储
'
,
value
:
0
},
],
timeList
:[
{
name
:
'
时
'
,
value
:
'
ilTimHour
'
},
{
name
:
'
分
'
,
value
:
'
ilTimMins
'
},
{
name
:
'
秒
'
,
value
:
'
ilTimSec
'
},
],
formData
:[],
// time: [
// {required: true, message: '请输入车辆型号', trigger: 'blur' }
// ],
},
}
},
...
...
@@ -316,24 +101,19 @@ export default {
},
methods
:
{
loadData
()
{
var
that
=
this
;
var
sort
=
'
addTime,desc
'
;
var
sort
=
'
createTime,desc
'
;
var
param
=
this
.
query
;
param
.
page
=
this
.
page
-
1
;
param
.
size
=
this
.
size
;
param
.
sort
=
sort
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
;
});
this
.
$nextTick
(()
=>
{
HttpReq
.
plantFactory
.
getDeviceManageList
(
param
).
then
((
res
)
=>
{
//console.log(res);
HttpReq
.
truckDispatching
.
carRepairQuery
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
this
.
loading
=
false
;
this
.
tableData
=
res
.
content
;
this
.
total
=
res
.
totalElements
;
this
.
tableData
=
res
.
data
.
content
;
this
.
total
=
res
.
data
.
totalElements
;
}
})
})
...
...
@@ -346,47 +126,26 @@ export default {
}
return
''
;
},
// 点击搜索
toSearch
()
{
this
.
page
=
1
this
.
loadData
()
},
clearLimit
(){
// 清除限制
this
.
loadData
()
},
cancelForm
(
a
,
b
,
c
){
this
.
form
.
visible
=
false
;
},
cancelForm2
(){
this
.
form
.
historyDialog
=
false
;
},
toAdd
()
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
添加设备
'
;
this
.
form
.
title
=
'
新增车辆维修
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
reqType
=
'
add
'
;
this
.
form
.
item
=
{};
this
.
picFileName
=
''
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toEdit
(
item
)
{
// 请除表单验证
this
.
$refs
[
'
form1
'
]
&&
this
.
$refs
[
'
form1
'
].
clearValidate
();
this
.
form
.
title
=
'
编辑设备
'
;
this
.
form
.
title
=
'
修改车辆维修
'
;
this
.
form
.
status
.
cu
=
0
;
this
.
form
.
visible
=
true
;
this
.
form
.
item
=
item
;
this
.
form
.
item
=
{...
item
}
;
this
.
form
.
reqType
=
'
edit
'
;
this
.
picFileName
=
this
.
form
.
item
.
position
;
//请求项目列表
this
.
reqProjectsSimple
().
then
((
list
)
=>
{
this
.
form
.
selectList
=
list
});
},
toDelete
(
item
)
{
var
id
=
item
.
id
;
...
...
@@ -396,103 +155,7 @@ export default {
type
:
'
warning
'
}).
then
((
e
)
=>
{
this
.
reqRemoveProject
([
id
])
}).
catch
((
e
)
=>
{
})
},
//查看图片以及其他信息
toSeeMore
(
row
){
//console.log(row);
this
.
seeMoreData
=
row
;
this
.
seeMoreImgUrl
=
process
.
env
.
VUE_APP_LOCAL_API2
+
"
/avatar/
"
+
row
.
position
;
this
.
form
.
seeMoreDialog
=
true
;
this
.
$nextTick
(()
=>
{
let
videoContainer
=
document
.
querySelector
(
'
#video-container
'
);
videoContainer
.
innerHTML
=
''
;
var
player
=
new
EZUIKit
.
EZUIKitPlayer
({
autoplay
:
true
,
id
:
'
video-container
'
,
accessToken
:
'
at.4qo66bb35a19h07a0d9pbmtj5v4g0o78-4jmzdu3k24-0866je6-qkz1xuwmf
'
,
url
:
'
ezopen://open.ys7.com/J16440511/1.live
'
,
template
:
"
simple
"
,
// simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
width
:
530
,
height
:
320
});
})
},
toHistoryLog
(
item
){
this
.
form
.
historyDialog
=
true
;
this
.
form
.
item2
.
value
=
Dates
.
format
(
'
MM
'
);
this
.
form
.
item2
.
code
=
item
.
ecode
;
this
.
$nextTick
(()
=>
{
var
ecahrtEl
=
document
.
getElementById
(
"
ecahrtA
"
);
this
.
ecahrtA
=
this
.
ecahrtA
||
this
.
createPanelEcharts
(
ecahrtEl
);
this
.
reqHistoryList
(
this
.
form
.
item2
);
});
},
cancelForm3
(
a
,
b
,
c
){
this
.
form2
.
visible
=
false
;
},
cancelForm4
(
a
,
b
,
c
){
this
.
form2
.
logVisible
=
false
;
},
// 指令下发
toInstructionSet
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
指令下发
'
;
form2
.
status
.
cu
=
0
;
form2
.
visible
=
true
;
form2
.
reqType
=
'
edit
'
;
form2
.
item
=
{
ecode
:
item
.
ecode
,
subcode
:
item
.
subcode
,
ilAdjust
:
form2
.
item
.
ilAdjust
,
ilSave
:
form2
.
item
.
ilSave
,
timekey
:
form2
.
item
.
timekey
,
time
:
''
,
};
},
// 指令日志
toInstructionLog
(
item
){
var
form2
=
this
.
form2
;
// 请除表单验证
//this.$refs['form1'] && this.$refs['form1'].clearValidate();
form2
.
title
=
'
下发日志
'
;
form2
.
logVisible
=
true
;
form2
.
item
=
item
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]
||
fitem
[
key
]
===
0
){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
}).
catch
((
e
)
=>
{})
},
pageChange
(
e
)
{
this
.
page
=
e
...
...
@@ -503,15 +166,6 @@ export default {
this
.
size
=
e
this
.
loadData
()
},
pageChange2
(
e
)
{
this
.
form2
.
page
=
e
this
.
reqInstructionLog
(
this
.
form2
.
item
)
},
sizeChange2
(
e
)
{
this
.
form2
.
page
=
1
;
this
.
form2
.
size
=
e
;
this
.
reqInstructionLog
(
this
.
form2
.
item
);
},
submitForm
(
validateName
,
item
){
if
(
!
this
.
form
.
status
.
cu
){
this
.
form
.
status
.
cu
=
2
;
...
...
@@ -528,36 +182,21 @@ export default {
});
};
},
findHistory
(){
this
.
reqHistoryList
(
this
.
form
.
item2
);
},
//请求项目列表
reqProjectsSimple
(){
return
HttpReq
.
project
.
getProject
().
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
return
res
.
data
.
content
;
}
else
{
return
[]
}
})
},
//添加设备
//新增车辆维修
reqAddItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
addDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carRepairAdd
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
==
1
){
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
项目添加
成功!
'
,
title
:
'
车辆维修新增
成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -566,36 +205,35 @@ export default {
form
.
status
.
cu
=
0
});
},
//修改
设备
//修改
车辆维修
reqUpdateItem
(
form
,
item
){
let
lastData
=
item
;
lastData
.
position
=
this
.
picFileName
;
HttpReq
.
plantFactory
.
upDateDeviceManageList
(
lastData
).
then
((
res
)
=>
{
let
lastData
=
{...
item
};
HttpReq
.
truckDispatching
.
carRepairUpdate
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
type
:
'
error
'
,
duration
:
2500
})
}
else
{
if
(
res
.
code
==
200
){
this
.
$notify
({
title
:
'
修改成功!
'
,
title
:
'
车辆维修
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}
else
{
this
.
$notify
({
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
}
}).
catch
(
function
(
error
)
{
form
.
status
.
cu
=
0
});
},
//删除
设备
//删除
车辆维修
reqRemoveProject
(
item
){
HttpReq
.
plantFactory
.
removeDeviceManageList
(
item
).
then
((
res
)
=>
{
HttpReq
.
truckDispatching
.
carRepairDel
(
item
).
then
((
res
)
=>
{
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
head
.
message
,
title
:
res
.
msg
,
type
:
'
error
'
,
duration
:
2500
})
...
...
@@ -609,229 +247,6 @@ export default {
this
.
loadData
();
})
},
reqHistoryList
(
item
){
var
timeSpace
=
this
.
query
.
timeSpace
;
var
startTime
=
timeSpace
?
timeSpace
[
0
].
split
(
'
'
)[
0
]
:
''
;
var
endTime
=
timeSpace
?
timeSpace
[
1
].
split
(
'
'
)[
0
]
:
''
;
HttpReq
.
historys
.
getItemBycode
({
codes
:
item
.
code
,
startTime
:
startTime
,
endTime
:
endTime
}).
then
((
res
)
=>
{
if
(
res
.
head
.
code
===
'
0000
'
){
var
body
=
res
.
body
||
{};
var
list
=
body
.
list
||
[];
var
xAxisData
=
[];
var
helement
=
[];
var
htemperature
=
[];
var
hlenght1
=
[],
hlenght2
=
[],
hlenght3
=
[];
for
(
var
item
of
list
){
xAxisData
.
push
(
item
.
createTime
);
helement
.
push
(
item
.
helement
);
htemperature
.
push
(
item
.
htemperature
);
hlenght1
.
push
(
item
.
hlenght1
);
hlenght2
.
push
(
item
.
hlenght2
);
hlenght3
.
push
(
item
.
hlenght3
);
};
this
.
ecahrtA
.
setData
({
xAxis
:
[
{
type
:
'
category
'
,
data
:
xAxisData
,
},
],
series
:
[
{
name
:
'
电压
'
,
data
:
helement
,
},
{
name
:
'
温度
'
,
data
:
htemperature
,
},
{
name
:
'
裂缝1
'
,
data
:
hlenght1
,
},
{
name
:
'
裂缝2
'
,
data
:
hlenght2
,
},
{
name
:
'
裂缝3
'
,
data
:
hlenght3
,
}
]
})
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
catch __
'
,
error
);
})
},
createPanelEcharts
(
el
){
var
myChart
=
echarts
.
init
(
el
),
lineColor
=
'
green
'
;
var
option
=
{
title
:
{
text
:
''
,
subtext
:
'
设备值
'
},
tooltip
:
{
trigger
:
'
axis
'
},
legend
:
{
data
:
[
'
电压
'
,
'
温度
'
,
'
裂缝1
'
,
'
裂缝2
'
,
'
裂缝3
'
],
textStyle
:
{
color
:
"
#000
"
},
},
textStyle
:
{
color
:
"
#333
"
},
calculable
:
true
,
xAxis
:
[
{
type
:
'
category
'
,
data
:
[],
}
],
yAxis
:
[
{
type
:
'
value
'
,
}
],
grid
:{
top
:
40
,
right
:
10
,
bottom
:
20
,
left
:
45
,
},
series
:
[
{
name
:
'
电压
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type: 'default', color:'#00e5ff'}, color:'#00e5ff'}, color:'green'},
},
{
name
:
'
温度
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝1
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
//itemStyle: {normal: {areaStyle: {type:'default', color:'red'}, color:'#1849fe'}, color:'red'},
},
{
name
:
'
裂缝2
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
},
{
name
:
'
裂缝3
'
,
type
:
'
line
'
,
data
:
[
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
],
}
]
};
myChart
.
setOption
(
option
);
var
setData
=
function
(
option
){
myChart
.
hideLoading
();
myChart
.
setOption
(
option
)
};
return
{
setData
:
setData
,
myChart
:
myChart
}
},
reqSetInstruction
(
form
,
item
){
var
param
=
{
deviceId
:
item
.
ecode
,
ilAdjust
:
item
.
ilAdjust
,
ilSave
:
item
.
ilSave
,
ilThreshed
:
item
.
ilThreshed
||
0
,
[
item
.
timekey
]:
item
.
time
||
0
,
};
HttpReq
.
equipment
.
setInstruction
(
param
).
then
((
res
)
=>
{
this
.
form2
.
visible
=
false
;
this
.
$notify
({
title
:
'
修改成功!
'
,
type
:
'
success
'
,
duration
:
2500
});
this
.
loadData
()
}).
catch
(
function
(
error
)
{
this
.
form2
.
status
.
cu
=
0
;
this
.
$notify
({
title
:
error
,
type
:
'
error
'
,
duration
:
2500
})
});
},
reqInstructionLog
(
item
){
var
form2
=
this
.
form2
;
var
param
=
form2
.
query
;
param
.
page
=
form2
.
page
-
1
;
param
.
size
=
form2
.
size
;
param
.
sort
=
'
addTime,desc
'
;
param
.
deviceId
=
item
.
ecode
;
HttpReq
.
equipment
.
getInstructionLog
(
param
).
then
((
res
)
=>
{
if
(
res
){
form2
.
total
=
res
.
totalElements
;
var
formData
=
res
.
content
||
[],
timeKeys
=
{
'
ilTimHour
'
:
'
小时
'
,
'
ilTimMins
'
:
'
分钟
'
,
'
ilTimSec
'
:
'
秒
'
};
for
(
var
fitem
of
formData
){
fitem
.
subcode
=
item
.
subcode
;
for
(
var
key
in
timeKeys
){
if
(
fitem
[
key
]){
fitem
[
'
time
'
]
=
fitem
[
key
];
fitem
.
timeUnit
=
timeKeys
[
key
];
}
else
{
delete
fitem
[
key
]
}
};
fitem
.
ilAdjust
=
[
'
不启动
'
,
'
启动
'
][
fitem
.
ilAdjust
||
0
];
fitem
.
ilSave
=
[
'
不存储
'
,
'
存储
'
][
fitem
.
ilSave
||
0
];
fitem
.
ilSendSuccess
=
[
'
下发失败
'
,
'
下发成功
'
][
fitem
.
ilSendSuccess
||
0
];
};
form2
.
formData
=
formData
;
};
}).
catch
(
function
(
error
)
{
console
.
log
(
'
error ________________
'
,
error
);
});
},
//图片上传
excelImport
(
event
)
{
let
that
=
this
;
let
file
=
event
.
target
.
files
[
0
];
let
formData1
=
new
FormData
();
formData1
.
append
(
"
avatar
"
,
file
);
Axios
({
url
:
process
.
env
.
VUE_APP_LOCAL_API2
+
'
/api/wEquipment/updateAvatar
'
,
method
:
"
post
"
,
data
:
formData1
,
}).
then
(
response
=>
{
if
(
response
.
status
==
200
)
{
this
.
$message
.
success
(
"
上传成功
"
);
that
.
picFileName
=
response
.
data
.
avatar
;
}
else
{
this
.
$message
.
error
(
"
上传失败
"
);
}
},
)
.
catch
(
error
=>
{
console
.
log
(
error
);
});
},
//项目名称展示
formatter
(
row
){
let
proName
=
""
;
this
.
form
.
selectList
.
forEach
(
function
(
item
){
if
(
row
.
projectId
==
item
.
id
){
proName
=
item
.
name
;
}
})
return
proName
}
}
}
</
script
>
...
...
src/views/carManagement/carType/index.vue
View file @
5c3d3690
...
...
@@ -13,10 +13,14 @@
<div
class=
"content"
>
<el-table
:data=
"tableData"
v-loading=
"loading"
border
style=
"width:auto"
:row-class-name=
"tableRowClassName"
>
<el-table-column
prop=
"id"
label=
"序号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"id"
label=
"编码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"id"
label=
"车辆类型名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"id"
label=
"车辆标识图"
align=
"center"
></el-table-column>
<el-table-column
prop=
"time"
label=
"日期"
align=
"center"
></el-table-column>
<el-table-column
prop=
"code"
label=
"编码"
align=
"center"
></el-table-column>
<el-table-column
prop=
"name"
label=
"车辆类型名称"
align=
"center"
></el-table-column>
<el-table-column
prop=
"card"
label=
"车辆标识图"
align=
"center"
>
<template
slot-scope=
"scope"
>
<img
:src=
"imgSrcStart + '/avatar/' + scope.row.card"
width=
"40"
height=
"40"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"createTime"
label=
"日期"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
align=
"center"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"primary"
icon=
"el-icon-edit"
@
click=
"toEdit(scope.row)"
></el-button>
...
...
@@ -36,15 +40,20 @@
<el-dialog
append-to-body
:close-on-click-modal=
"true"
:before-close=
"cancelForm"
:visible.sync=
"form.visible"
:title=
"form.title"
width=
"700px"
>
<el-form
:model=
"form.item"
:rules=
"rules"
ref=
"form1"
:inline=
"true"
size=
"small"
label-width=
"150px"
>
<el-form-item
label=
"编码"
>
<el-input
v-model=
"form.item.
tim
e"
style=
"width:280px;"
placeholder=
"请输入编码"
/>
<el-input
v-model=
"form.item.
cod
e"
style=
"width:280px;"
placeholder=
"请输入编码"
/>
</el-form-item>
<el-form-item
label=
"车辆类型名称"
>
<el-input
v-model=
"form.item.time"
style=
"width:280px;"
placeholder=
"请输入车辆类型名称"
/>
<el-select
v-model=
"form.item.name"
placeholder=
"请选择车辆类型"
style=
"width:280px;"
>
<el-option
label=
"挖机"
value=
"挖机"
></el-option>
<el-option
label=
"铲车"
value=
"铲车"
></el-option>
<el-option
label=
"卡车"
value=
"卡车"
></el-option>
<el-option
label=
"清扫车"
value=
"清扫车"
></el-option>
</el-select>
</el-form-item>
<
!-- <
el-form-item label="车辆标识图" prop="position">
<el-form-item
label=
"车辆标识图"
prop=
"position"
>
<el-input
v-model=
"picFileName"
style=
"width:160px;"
placeholder=
"请上传设备位置"
disabled
/>
<input
type=
"file"
name=
"image"
@
change=
"excelImport($event)"
/>
</el-form-item>
-->
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"text"
@
click=
"cancelForm"
>
取消
</el-button>
...
...
@@ -64,12 +73,12 @@ export default {
components
:
{},
data
()
{
return
{
imgSrcStart
:
process
.
env
.
VUE_APP_LOCAL_API2
,
loading
:
false
,
page
:
1
,
size
:
10
,
total
:
0
,
query
:{},
alarmTimeId
:
''
,
picFileName
:
''
,
tableData
:
[],
form
:
{
...
...
@@ -101,7 +110,7 @@ export default {
param
.
sort
=
sort
;
this
.
$nextTick
(()
=>
{
HttpReq
.
truckDispatching
.
alarmTim
eQuery
(
param
).
then
((
res
)
=>
{
HttpReq
.
truckDispatching
.
carTyp
eQuery
(
param
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
){
this
.
loading
=
false
;
this
.
tableData
=
res
.
data
.
content
;
...
...
@@ -140,8 +149,7 @@ export default {
this
.
form
.
visible
=
true
;
this
.
form
.
item
=
{...
item
};
this
.
form
.
reqType
=
'
edit
'
;
this
.
alarmTimeId
=
this
.
form
.
item
.
id
;
//this.picFileName = this.form.item.position;
this
.
picFileName
=
this
.
form
.
item
.
card
;
},
toDelete
(
item
)
{
var
id
=
item
.
id
;
...
...
@@ -181,8 +189,8 @@ export default {
//新增车辆类型
reqAddItem
(
form
,
item
){
let
lastData
=
{...
item
};
//lastData.position
= this.picFileName;
HttpReq
.
truckDispatching
.
alarmTim
eAdd
(
lastData
).
then
((
res
)
=>
{
lastData
.
card
=
this
.
picFileName
;
HttpReq
.
truckDispatching
.
carTyp
eAdd
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
.
code
==
200
){
this
.
$notify
({
...
...
@@ -205,9 +213,8 @@ export default {
//修改车辆类型
reqUpdateItem
(
form
,
item
){
let
lastData
=
{...
item
};
lastData
.
id
=
this
.
alarmTimeId
;
//lastData.position = this.picFileName;
HttpReq
.
truckDispatching
.
alarmTimeUpdate
(
lastData
).
then
((
res
)
=>
{
lastData
.
card
=
this
.
picFileName
;
HttpReq
.
truckDispatching
.
carTypeUpdate
(
lastData
).
then
((
res
)
=>
{
form
.
visible
=
false
;
if
(
res
.
code
==
200
){
this
.
$notify
({
...
...
@@ -222,6 +229,7 @@ export default {
type
:
'
error
'
,
duration
:
2500
})
this
.
loadData
()
}
}).
catch
(
function
(
error
)
{
form
.
status
.
cu
=
0
...
...
@@ -229,7 +237,7 @@ export default {
},
//删除车辆类型
reqRemoveProject
(
item
){
HttpReq
.
truckDispatching
.
alarmTimet
Del
(
item
).
then
((
res
)
=>
{
HttpReq
.
truckDispatching
.
carType
Del
(
item
).
then
((
res
)
=>
{
if
(
res
.
status
==
400
){
this
.
$notify
({
title
:
res
.
msg
,
...
...
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