Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
FleetTruckView
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
FleetTruck
FleetTruckView
Commits
71384625
Commit
71384625
authored
Aug 09, 2023
by
高晓帆
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
货箱回落
parent
fe197214
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
3176 additions
and
35 deletions
+3176
-35
config_20230724113600.json
.history/public/config_20230724113600.json
+6
-0
config_20230802092530.json
.history/public/config_20230802092530.json
+6
-0
Main_20230724113600.vue
.history/src/views/Main_20230724113600.vue
+329
-0
Main_20230724184752.vue
.history/src/views/Main_20230724184752.vue
+329
-0
view_def_20230731164335.js
.history/src/views/js/view_def_20230731164335.js
+213
-0
view_def_20230731164346.js
.history/src/views/js/view_def_20230731164346.js
+213
-0
view_def_20230731182010.js
.history/src/views/js/view_def_20230731182010.js
+213
-0
view_def_20230803164103.js
.history/src/views/js/view_def_20230803164103.js
+213
-0
view_def_20230809150401.js
.history/src/views/js/view_def_20230809150401.js
+209
-0
RunControl_20230731182014.vue
.history/src/views/set-tags/RunControl_20230731182014.vue
+201
-0
RunControl_20230802095929.vue
.history/src/views/set-tags/RunControl_20230802095929.vue
+201
-0
RunControl_20230802100007.vue
.history/src/views/set-tags/RunControl_20230802100007.vue
+202
-0
RunControl_20230802100014.vue
.history/src/views/set-tags/RunControl_20230802100014.vue
+202
-0
RunControl_20230802100019.vue
.history/src/views/set-tags/RunControl_20230802100019.vue
+202
-0
RunControl_20230802100028.vue
.history/src/views/set-tags/RunControl_20230802100028.vue
+202
-0
RunControl_20230802103757.vue
.history/src/views/set-tags/RunControl_20230802103757.vue
+202
-0
Truckmonitorview.zip
Truckmonitorview.zip
+0
-0
config.json
public/config.json
+2
-1
view_def.js
src/views/js/view_def.js
+26
-30
RunControl.vue
src/views/set-tags/RunControl.vue
+5
-4
No files found.
.history/public/config_20230724113600.json
0 → 100644
View file @
71384625
{
"SERVICE_IP"
:
"172.16.0.153:1234"
,
"MAP_CENTER"
:
[
39.74441007068
,
111.24544532751
],
"version"
:
"1.1.3"
}
\ No newline at end of file
.history/public/config_20230802092530.json
0 → 100644
View file @
71384625
{
"SERVICE_IP"
:
"172.16.0.114:1234"
,
"MAP_CENTER"
:
[
39.74441007068
,
111.24544532751
],
"version"
:
"1.1.3"
}
\ No newline at end of file
.history/src/views/Main_20230724113600.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"main"
>
<page-header
class=
"page-header"
></page-header>
<div
class=
"page-main"
>
<side-bar
class=
"side-bar"
ref=
"sideBarDom"
@
changeTab=
"changeTab"
></side-bar>
<div
class=
"container"
>
<div
class=
"container-message"
v-show=
"isShowBasic"
>
<basic-message
v-if=
"basciName === 'basic_message'"
@
handleClose=
"handleClose"
@
showModal=
"showModal"
></basic-message>
<basic-information
v-else
@
handleClose=
"handleClose"
></basic-information>
<information-msg
class=
"information-msg"
></information-msg>
</div>
<div
v-show=
"!isShowBasic"
class=
"container-message-icon"
@
click=
"handleShowBasic"
>
<img
src=
"/image/basic-message-icon.png"
alt=
""
/>
</div>
<map-container
class=
"map"
:reloadData=
"reloadData"
:isShowBasic=
"isShowBasic"
@
handleSend=
"handleSend"
></map-container>
</div>
</div>
<Modal
v-model=
"isShow"
:mask-closable=
"false"
:footer-hide=
"true"
:title=
"title"
:closable=
"isCloseable"
:width=
"modalWidth"
@
on-visible-change=
"modeChange"
>
<component
:is=
"currentTag"
:is-show=
"isShow"
@
handleSend=
"handleSend"
@
closeModal=
"closeModal"
></component>
</Modal>
<Modal
v-model=
"isShowTip"
:mask-closable=
"false"
:mask=
"false"
:footer-hide=
"isFooterHide"
>
<p>
{{
vehicleTip
}}
</p>
<p>
{{
remaintime
}}
</p>
<template
#
footer
>
<Button
type=
"info"
class=
"footer"
@
click=
"doClose"
>
确定
</Button>
</
template
>
</Modal>
<Modal
v-model=
"isShowBoxCheck"
title=
"确认信息"
class=
"box-check"
:closable=
"false"
:mask-closable=
"false"
@
on-ok=
"handleBoxCheck(1)"
@
on-cancel=
"handleBoxCheck(0)"
>
<span>
{{ checkMsg.msg }}
</span>
</Modal>
</div>
</template>
<
script
setup
>
import
{
onBeforeMount
,
ref
,
getCurrentInstance
,
computed
,
watch
,
toRefs
,
reactive
,
onBeforeUnmount
,
shallowRef
}
from
'vue'
import
{
useVehicleStore
}
from
'../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
Message
}
from
'view-ui-plus'
;
import
PageHeader
from
'./PageHeader.vue'
import
SideBar
from
'./SideBar.vue'
;
import
BasicMessage
from
'./BasicMessage.vue'
;
import
BasicInformation
from
'./BasicInformation.vue'
;
import
InformationMsg
from
'./InformationMsg.vue'
;
import
AlarmModal
from
'./AlarmModal.vue'
import
ModeSwitch
from
'./ModeSwitch.vue'
import
LogModal
from
'./LogModal.vue'
import
SetView
from
'./SetView.vue'
import
Logout
from
'./Logout.vue'
import
MapContainer
from
'./MapContainer.vue'
let
tipTimer
=
null
const
isShowBasic
=
ref
(
true
)
const
currentName
=
ref
(
'basic_message'
)
const
basciName
=
ref
(
'basic_message'
)
const
isShow
=
ref
(
false
)
const
isShowTip
=
ref
(
false
)
const
isShowBoxCheck
=
ref
(
false
)
const
title
=
ref
(
''
)
const
isCloseable
=
ref
(
true
)
const
currentTag
=
shallowRef
(
''
)
const
sideBarDom
=
ref
(
null
)
const
vehicleTip
=
ref
(
''
)
const
remaintime
=
ref
(
''
)
const
isFooterHide
=
ref
(
true
)
const
reloadData
=
ref
(
false
)
const
boxCheckMsg
=
reactive
({
checkMsg
:
{}
})
const
{
checkMsg
}
=
toRefs
(
boxCheckMsg
)
const
instance
=
getCurrentInstance
()
const
{
appContext
}
=
instance
const
{
$indexRoot
}
=
appContext
.
config
.
globalProperties
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
tipInfo
,
infoPop
}
=
vehicleStoreToRefs
onBeforeMount
(()
=>
{
window
.
addEventListener
(
'beforeunload'
,
()
=>
{
handleSubscribe
()
})
// // 发送同步地图版本号信息
// if (!$indexRoot.sock) {
// $indexRoot.init()
// }
})
function
handleSubscribe
()
{
reloadData
.
value
=
true
$indexRoot
.
destroyData
()
}
const
modalWidth
=
computed
(()
=>
{
if
(
currentName
.
value
===
'log'
||
currentName
.
value
===
'set'
)
return
'70%'
return
'520px'
})
function
handleSend
(
msg
)
{
if
(
$indexRoot
.
sock
)
{
console
.
log
(
'发送信息'
,
msg
)
$indexRoot
.
sock
.
send
(
JSON
.
stringify
(
msg
))
}
else
{
$indexRoot
.
init
().
then
(
socket
=>
{
console
.
log
(
'发送信息'
,
msg
)
socket
.
send
(
JSON
.
stringify
(
msg
))
})
}
}
function
doModeSwitch
()
{
isCloseable
.
value
=
false
title
.
value
=
'确认信息'
isShow
.
value
=
true
currentTag
.
value
=
ModeSwitch
}
function
handleModal
(
name
)
{
title
.
value
=
name
===
'log'
?
'日志获取'
:
'设置'
currentTag
.
value
=
name
===
'log'
?
LogModal
:
SetView
isCloseable
.
value
=
true
isShow
.
value
=
true
}
function
handleLogout
()
{
title
.
value
=
''
currentTag
.
value
=
Logout
isCloseable
.
value
=
true
isShow
.
value
=
true
}
function
changeTab
(
name
)
{
console
.
log
(
name
)
currentName
.
value
=
name
switch
(
name
)
{
case
'mode_switch'
:
doModeSwitch
()
break
case
'mode_information'
:
case
'basic_message'
:
basciName
.
value
=
name
break
case
'log'
:
case
'set'
:
handleModal
(
name
)
break
case
'logout'
:
handleLogout
()
break
}
}
function
handleClose
()
{
isShowBasic
.
value
=
false
}
function
handleShowBasic
()
{
isShowBasic
.
value
=
true
}
function
closeModal
()
{
isShow
.
value
=
false
}
function
modeChange
(
visible
)
{
if
(
!
visible
)
{
let
sideBar
=
sideBarDom
.
value
sideBar
.
changeMode
()
}
}
function
showModal
()
{
isShow
.
value
=
true
currentTag
.
value
=
AlarmModal
title
.
value
=
'车辆故障码'
isCloseable
.
value
=
true
}
function
doClose
()
{
isShowTip
.
value
=
false
if
(
tipTimer
)
{
clearTimeout
(
tipTimer
)
tipTimer
=
null
}
}
function
handleShowBoxCheck
(
list
)
{
let
data
=
list
[
0
]
if
(
!
data
)
return
boxCheckMsg
.
checkMsg
=
data
isShowBoxCheck
.
value
=
true
}
function
handleBoxCheck
(
accept
)
{
let
{
type
,
value
}
=
boxCheckMsg
.
checkMsg
handleSend
({
type
:
'/info/popupack'
,
msg
:
{
type
,
value
,
accept
}
})
vehicleStore
.
splitInfoPop
()
}
watch
(
tipInfo
,
(
msg
)
=>
{
if
(
!
msg
)
return
const
{
type
,
value
,
remaintime
:
vehicleRemainTime
,
isFirst
}
=
msg
if
(
type
===
1
)
{
isShowTip
.
value
=
true
vehicleTip
.
value
=
value
isFooterHide
.
value
=
false
tipTimer
=
setTimeout
(()
=>
{
doClose
()
},
5
*
1000
)
}
else
if
(
type
===
2
)
{
Message
.
info
({
content
:
value
,
duration
:
10
,
closable
:
true
})
}
else
{
isFooterHide
.
value
=
true
if
(
isFirst
===
1
)
{
isShowTip
.
value
=
true
}
vehicleTip
.
value
=
value
remaintime
.
value
=
vehicleRemainTime
if
(
vehicleRemainTime
<
1
)
{
isShowTip
.
value
=
false
}
}
vehicleStore
.
setData
(
'tipInfo'
,
null
)
},
{
deep
:
true
})
watch
(
infoPop
,
(
list
)
=>
{
if
(
list
.
length
)
{
handleShowBoxCheck
(
list
)
}
else
{
isShowBoxCheck
.
value
=
false
}
},
{
deep
:
true
})
onBeforeUnmount
(()
=>
{
$indexRoot
.
destroyData
()
window
.
removeEventListener
(
'beforeunload'
,
handleSubscribe
())
})
</
script
>
<
style
lang=
"less"
scoped
>
.main {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
.page-header {
flex: 0 0 10vh;
min-height: 46px;
// align-items: flex-end;
}
.page-main {
background: url('/image/background.png') no-repeat;
background-size: cover;
flex: auto;
display: flex;
height: calc(100% - 10vh);
.side-bar {
flex: 0 0 7vw;
min-width: 70px;
}
.container {
flex: auto;
display: flex;
position: relative;
.container-message {
flex: 0 0 22vw;
min-width: 240px;
display: flex;
flex-direction: column;
overflow-y: auto;
overflow-x: hidden;
.container-basic {
flex: auto;
height: calc(100% - 150px);
overflow-y: auto;
overflow-x: hidden;
}
}
.container-message-icon {
position: absolute;
z-index: 9999;
top: 5vh;
left: 1vw;
background: #4A75A9;
box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25);
border-radius: 10px;
opacity: 1;
display: flex;
cursor: pointer;
}
.map {
flex: auto;
display: flex;
flex-direction: column;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/Main_20230724184752.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"main"
>
<page-header
class=
"page-header"
></page-header>
<div
class=
"page-main"
>
<side-bar
class=
"side-bar"
ref=
"sideBarDom"
@
changeTab=
"changeTab"
></side-bar>
<div
class=
"container"
>
<div
class=
"container-message"
v-show=
"isShowBasic"
>
<basic-message
v-if=
"basciName === 'basic_message'"
@
handleClose=
"handleClose"
@
showModal=
"showModal"
></basic-message>
<basic-information
v-else
@
handleClose=
"handleClose"
></basic-information>
<information-msg
class=
"information-msg"
></information-msg>
</div>
<div
v-show=
"!isShowBasic"
class=
"container-message-icon"
@
click=
"handleShowBasic"
>
<img
src=
"/image/basic-message-icon.png"
alt=
""
/>
</div>
<map-container
class=
"map"
:reloadData=
"reloadData"
:isShowBasic=
"isShowBasic"
@
handleSend=
"handleSend"
></map-container>
</div>
</div>
<Modal
v-model=
"isShow"
:mask-closable=
"false"
:footer-hide=
"true"
:title=
"title"
:closable=
"isCloseable"
:width=
"modalWidth"
@
on-visible-change=
"modeChange"
>
<component
:is=
"currentTag"
:is-show=
"isShow"
@
handleSend=
"handleSend"
@
closeModal=
"closeModal"
></component>
</Modal>
<Modal
v-model=
"isShowTip"
:mask-closable=
"false"
:mask=
"false"
:footer-hide=
"isFooterHide"
>
<p>
{{
vehicleTip
}}
</p>
<p>
{{
remaintime
}}
</p>
<template
#
footer
>
<Button
type=
"info"
class=
"footer"
@
click=
"doClose"
>
确定
</Button>
</
template
>
</Modal>
<Modal
v-model=
"isShowBoxCheck"
title=
"确认信息"
class=
"box-check"
:closable=
"false"
:mask-closable=
"false"
@
on-ok=
"handleBoxCheck(1)"
@
on-cancel=
"handleBoxCheck(0)"
>
<span>
{{ checkMsg.msg }}
</span>
</Modal>
</div>
</template>
<
script
setup
>
import
{
onBeforeMount
,
ref
,
getCurrentInstance
,
computed
,
watch
,
toRefs
,
reactive
,
onBeforeUnmount
,
shallowRef
}
from
'vue'
import
{
useVehicleStore
}
from
'../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
import
{
Message
}
from
'view-ui-plus'
;
import
PageHeader
from
'./PageHeader.vue'
import
SideBar
from
'./SideBar.vue'
;
import
BasicMessage
from
'./BasicMessage.vue'
;
import
BasicInformation
from
'./BasicInformation.vue'
;
import
InformationMsg
from
'./InformationMsg.vue'
;
import
AlarmModal
from
'./AlarmModal.vue'
import
ModeSwitch
from
'./ModeSwitch.vue'
import
LogModal
from
'./LogModal.vue'
import
SetView
from
'./SetView.vue'
import
Logout
from
'./Logout.vue'
import
MapContainer
from
'./MapContainer.vue'
let
tipTimer
=
null
const
isShowBasic
=
ref
(
true
)
const
currentName
=
ref
(
'basic_message'
)
const
basciName
=
ref
(
'basic_message'
)
const
isShow
=
ref
(
false
)
const
isShowTip
=
ref
(
false
)
const
isShowBoxCheck
=
ref
(
false
)
const
title
=
ref
(
''
)
const
isCloseable
=
ref
(
true
)
const
currentTag
=
shallowRef
(
''
)
const
sideBarDom
=
ref
(
null
)
const
vehicleTip
=
ref
(
''
)
const
remaintime
=
ref
(
''
)
const
isFooterHide
=
ref
(
true
)
const
reloadData
=
ref
(
false
)
const
boxCheckMsg
=
reactive
({
checkMsg
:
{}
})
const
{
checkMsg
}
=
toRefs
(
boxCheckMsg
)
const
instance
=
getCurrentInstance
()
const
{
appContext
}
=
instance
const
{
$indexRoot
}
=
appContext
.
config
.
globalProperties
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
tipInfo
,
infoPop
}
=
vehicleStoreToRefs
onBeforeMount
(()
=>
{
window
.
addEventListener
(
'beforeunload'
,
()
=>
{
handleSubscribe
()
})
// // 发送同步地图版本号信息
// if (!$indexRoot.sock) {
// $indexRoot.init()
// }
})
function
handleSubscribe
()
{
reloadData
.
value
=
true
$indexRoot
.
destroyData
()
}
const
modalWidth
=
computed
(()
=>
{
if
(
currentName
.
value
===
'log'
||
currentName
.
value
===
'set'
)
return
'70%'
return
'520px'
})
function
handleSend
(
msg
)
{
if
(
$indexRoot
.
sock
)
{
console
.
log
(
'发送信息'
,
msg
)
$indexRoot
.
sock
.
send
(
JSON
.
stringify
(
msg
))
}
else
{
$indexRoot
.
init
().
then
(
socket
=>
{
console
.
log
(
'发送信息'
,
msg
)
socket
.
send
(
JSON
.
stringify
(
msg
))
})
}
}
function
doModeSwitch
()
{
isCloseable
.
value
=
false
title
.
value
=
'确认信息'
isShow
.
value
=
true
currentTag
.
value
=
ModeSwitch
}
function
handleModal
(
name
)
{
title
.
value
=
name
===
'log'
?
'日志获取'
:
'设置'
currentTag
.
value
=
name
===
'log'
?
LogModal
:
SetView
isCloseable
.
value
=
true
isShow
.
value
=
true
}
function
handleLogout
()
{
title
.
value
=
''
currentTag
.
value
=
Logout
isCloseable
.
value
=
true
isShow
.
value
=
true
}
function
changeTab
(
name
)
{
console
.
log
(
name
)
currentName
.
value
=
name
switch
(
name
)
{
case
'mode_switch'
:
doModeSwitch
()
break
case
'mode_information'
:
case
'basic_message'
:
basciName
.
value
=
name
break
case
'log'
:
case
'set'
:
handleModal
(
name
)
break
case
'logout'
:
handleLogout
()
break
}
}
function
handleClose
()
{
isShowBasic
.
value
=
false
}
function
handleShowBasic
()
{
isShowBasic
.
value
=
true
}
function
closeModal
()
{
isShow
.
value
=
false
}
function
modeChange
(
visible
)
{
if
(
!
visible
)
{
let
sideBar
=
sideBarDom
.
value
sideBar
.
changeMode
()
}
}
function
showModal
()
{
isShow
.
value
=
true
currentTag
.
value
=
AlarmModal
title
.
value
=
'车辆故障码'
isCloseable
.
value
=
true
}
function
doClose
()
{
isShowTip
.
value
=
false
if
(
tipTimer
)
{
clearTimeout
(
tipTimer
)
tipTimer
=
null
}
}
function
handleShowBoxCheck
(
list
)
{
let
data
=
list
[
0
]
if
(
!
data
)
return
boxCheckMsg
.
checkMsg
=
data
isShowBoxCheck
.
value
=
true
}
function
handleBoxCheck
(
accept
)
{
let
{
type
,
value
}
=
boxCheckMsg
.
checkMsg
handleSend
({
type
:
'/info/popupack'
,
msg
:
{
type
,
value
,
accept
}
})
vehicleStore
.
splitInfoPop
()
}
watch
(
tipInfo
,
(
msg
)
=>
{
if
(
!
msg
)
return
const
{
type
,
value
,
remaintime
:
vehicleRemainTime
,
isFirst
}
=
msg
if
(
type
===
1
)
{
isShowTip
.
value
=
true
vehicleTip
.
value
=
value
isFooterHide
.
value
=
false
tipTimer
=
setTimeout
(()
=>
{
doClose
()
},
5
*
1000
)
}
else
if
(
type
===
2
)
{
Message
.
info
({
content
:
value
,
duration
:
10
,
closable
:
true
})
}
else
{
isFooterHide
.
value
=
true
if
(
isFirst
===
1
)
{
isShowTip
.
value
=
true
}
vehicleTip
.
value
=
value
remaintime
.
value
=
vehicleRemainTime
if
(
vehicleRemainTime
<
1
)
{
isShowTip
.
value
=
false
}
}
vehicleStore
.
setData
(
'tipInfo'
,
null
)
},
{
deep
:
true
})
watch
(
infoPop
,
(
list
)
=>
{
if
(
list
.
length
)
{
handleShowBoxCheck
(
list
)
}
else
{
isShowBoxCheck
.
value
=
false
}
},
{
deep
:
true
})
onBeforeUnmount
(()
=>
{
$indexRoot
.
destroyData
()
window
.
removeEventListener
(
'beforeunload'
,
handleSubscribe
())
})
</
script
>
<
style
lang=
"less"
scoped
>
.main {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
.page-header {
flex: 0 0 10vh;
min-height: 46px;
// align-items: flex-end;
}
.page-main {
background: url('/image/background.png') no-repeat;
background-size: cover;
flex: auto;
display: flex;
height: calc(100% - 10vh);
.side-bar {
flex: 0 0 7vw;
min-width: 70px;
}
.container {
flex: auto;
display: flex;
position: relative;
.container-message {
flex: 0 0 22vw;
min-width: 240px;
display: flex;
flex-direction: column;
overflow-y: auto;
overflow-x: hidden;
.container-basic {
flex: auto;
height: calc(100% - 150px);
overflow-y: auto;
overflow-x: hidden;
}
}
.container-message-icon {
position: absolute;
z-index: 9999;
top: 5vh;
left: 1vw;
background: #4A75A9;
box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25);
border-radius: 10px;
opacity: 1;
display: flex;
cursor: pointer;
}
.map {
flex: auto;
display: flex;
flex-direction: column;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/js/view_def_20230731164335.js
0 → 100644
View file @
71384625
export
const
INFORMATION_MESSAGE
=
[
[
{
name
:
'oemstateflag'
,
label
:
'模式给定'
},
{
name
:
'oemstate'
,
label
:
'反馈'
}
],
[
{
name
:
'gearcmd'
,
label
:
'挡位给定'
},
{
name
:
'Current_Gear'
,
label
:
'反馈'
}
],
[
{
name
:
'target_velocity'
,
label
:
'速度给定'
},
{
name
:
'VechicleSpd'
,
label
:
'反馈'
}
],
[
{
name
:
'steerangle'
,
label
:
'转向给定'
},
{
name
:
'Steering_angle'
,
label
:
'反馈'
}
],
[
{
name
:
'dump_bed'
,
label
:
'举升给定'
},
{
name
:
'Dump_Bed_Position'
,
label
:
'反馈'
}
],
[
{
name
:
'throttlecmd'
,
label
:
'油门给定'
},
{
name
:
'throttle'
,
label
:
'反馈'
}
],
[
{
name
:
'Retarder_cmd'
,
label
:
'电制动给定'
},
{
name
:
'retarder_position'
,
label
:
'反馈'
}
],
[
{
name
:
'loadBrakeCmd'
,
label
:
'装载制动给定'
},
],
[
{
name
:
'loadBrakeStatus'
,
label
:
'装载制动反馈'
},
],
[
{
name
:
'mechBrakeCmd'
,
label
:
'机械制动给定'
},
],
[
{
name
:
'mechBrakeStatus'
,
label
:
'机械制动反馈'
},
],
[
{
name
:
'AutoChangeFlag'
,
label
:
'转向状态码'
},
],
[
{
name
:
'EngSpd'
,
label
:
'发动机转速'
},
],
[
{
name
:
'vehicleLoad'
,
label
:
'载重'
}
],
[
{
name
:
'oil'
,
label
:
'燃油剩余量'
}
],
// [
// {
// name: 'vehicleHeading',
// label: '朝向'
// },
// ],
// [
// {
// name: 'vehicleLongtitude',
// label: '经度'
// },
// ],
// [
// {
// name: 'vehicleLatitude',
// label: '纬度'
// },
// ],
[
{
name
:
'lateralDeviation'
,
label
:
'横向偏差'
},
],
[
{
name
:
'courseDeviation'
,
label
:
'航向偏差'
},
],
[
{
name
:
'previewDeviation'
,
label
:
'预瞄偏差'
},
],
[
{
name
:
'current_point'
,
label
:
'当前点'
},
{
name
:
'all_amount'
,
label
:
'总点数'
}
],
[
{
name
:
'obstacleFrontDistance'
,
label
:
'前向障碍物距离'
},
],
[
{
name
:
'obstacleFrontFlag'
,
label
:
'前向障碍物标志'
},
],
[
{
name
:
'obstacleBackDistance'
,
label
:
'后向障碍物距离'
},
],
[
{
name
:
'obstacleBackBarriDistance'
,
label
:
'后向挡墙距离'
},
],
[
{
name
:
'followStatus'
,
label
:
'跟会车状态'
},
],
]
// 跟会车字段,根据followVisible判断
export
const
FOLLOW_DETAILS
=
[
{
name
:
'followVehicleId'
,
label
:
'跟会车车辆编号'
},
{
name
:
'followDistance'
,
label
:
'跟会车距离'
},
{
name
:
'followSpeed'
,
label
:
'跟会车速度'
},
]
\ No newline at end of file
.history/src/views/js/view_def_20230731164346.js
0 → 100644
View file @
71384625
export
const
INFORMATION_MESSAGE
=
[
[
{
name
:
'oemstateflag'
,
label
:
'模式给定'
},
{
name
:
'oemstate'
,
label
:
'反馈'
}
],
[
{
name
:
'gearcmd'
,
label
:
'挡位给定'
},
{
name
:
'Current_Gear'
,
label
:
'反馈'
}
],
[
{
name
:
'target_velocity'
,
label
:
'速度给定'
},
{
name
:
'VechicleSpd'
,
label
:
'反馈'
}
],
[
{
name
:
'steerangle'
,
label
:
'转向给定'
},
{
name
:
'Steering_angle'
,
label
:
'反馈'
}
],
[
{
name
:
'dump_bed'
,
label
:
'举升给定'
},
{
name
:
'Dump_Bed_Position'
,
label
:
'反馈'
}
],
[
{
name
:
'throttlecmd'
,
label
:
'油门给定'
},
{
name
:
'throttle'
,
label
:
'反馈'
}
],
[
{
name
:
'Retarder_cmd'
,
label
:
'电制动给定'
},
{
name
:
'retarder_position'
,
label
:
'反馈'
}
],
// [
// {
// name: 'loadBrakeCmd',
// label: '装载制动给定'
// },
// ],
// [
// {
// name: 'loadBrakeStatus',
// label: '装载制动反馈'
// },
// ],
// [
// {
// name: 'mechBrakeCmd',
// label: '机械制动给定'
// },
// ],
// [
// {
// name: 'mechBrakeStatus',
// label: '机械制动反馈'
// },
// ],
[
{
name
:
'AutoChangeFlag'
,
label
:
'转向状态码'
},
],
[
{
name
:
'EngSpd'
,
label
:
'发动机转速'
},
],
[
{
name
:
'vehicleLoad'
,
label
:
'载重'
}
],
[
{
name
:
'oil'
,
label
:
'燃油剩余量'
}
],
// [
// {
// name: 'vehicleHeading',
// label: '朝向'
// },
// ],
// [
// {
// name: 'vehicleLongtitude',
// label: '经度'
// },
// ],
// [
// {
// name: 'vehicleLatitude',
// label: '纬度'
// },
// ],
[
{
name
:
'lateralDeviation'
,
label
:
'横向偏差'
},
],
[
{
name
:
'courseDeviation'
,
label
:
'航向偏差'
},
],
[
{
name
:
'previewDeviation'
,
label
:
'预瞄偏差'
},
],
[
{
name
:
'current_point'
,
label
:
'当前点'
},
{
name
:
'all_amount'
,
label
:
'总点数'
}
],
[
{
name
:
'obstacleFrontDistance'
,
label
:
'前向障碍物距离'
},
],
[
{
name
:
'obstacleFrontFlag'
,
label
:
'前向障碍物标志'
},
],
[
{
name
:
'obstacleBackDistance'
,
label
:
'后向障碍物距离'
},
],
[
{
name
:
'obstacleBackBarriDistance'
,
label
:
'后向挡墙距离'
},
],
[
{
name
:
'followStatus'
,
label
:
'跟会车状态'
},
],
]
// 跟会车字段,根据followVisible判断
export
const
FOLLOW_DETAILS
=
[
{
name
:
'followVehicleId'
,
label
:
'跟会车车辆编号'
},
{
name
:
'followDistance'
,
label
:
'跟会车距离'
},
{
name
:
'followSpeed'
,
label
:
'跟会车速度'
},
]
\ No newline at end of file
.history/src/views/js/view_def_20230731182010.js
0 → 100644
View file @
71384625
export
const
INFORMATION_MESSAGE
=
[
[
{
name
:
'oemstateflag'
,
label
:
'模式给定'
},
{
name
:
'oemstate'
,
label
:
'反馈'
}
],
[
{
name
:
'gearcmd'
,
label
:
'挡位给定'
},
{
name
:
'Current_Gear'
,
label
:
'反馈'
}
],
[
{
name
:
'target_velocity'
,
label
:
'速度给定'
},
{
name
:
'VechicleSpd'
,
label
:
'反馈'
}
],
[
{
name
:
'steerangle'
,
label
:
'转向给定'
},
{
name
:
'Steering_angle'
,
label
:
'反馈'
}
],
[
{
name
:
'dump_bed'
,
label
:
'举升给定'
},
{
name
:
'Dump_Bed_Position'
,
label
:
'反馈'
}
],
[
{
name
:
'throttlecmd'
,
label
:
'油门给定'
},
{
name
:
'throttle'
,
label
:
'反馈'
}
],
[
{
name
:
'Retarder_cmd'
,
label
:
'电制动给定'
},
{
name
:
'retarder_position'
,
label
:
'反馈'
}
],
[
{
name
:
'loadBrakeCmd'
,
label
:
'装载制动给定'
},
],
[
{
name
:
'loadBrakeStatus'
,
label
:
'装载制动反馈'
},
],
[
{
name
:
'mechBrakeCmd'
,
label
:
'机械制动给定'
},
],
[
{
name
:
'mechBrakeStatus'
,
label
:
'机械制动反馈'
},
],
[
{
name
:
'AutoChangeFlag'
,
label
:
'转向状态码'
},
],
[
{
name
:
'EngSpd'
,
label
:
'发动机转速'
},
],
[
{
name
:
'vehicleLoad'
,
label
:
'载重'
}
],
[
{
name
:
'oil'
,
label
:
'燃油剩余量'
}
],
// [
// {
// name: 'vehicleHeading',
// label: '朝向'
// },
// ],
// [
// {
// name: 'vehicleLongtitude',
// label: '经度'
// },
// ],
// [
// {
// name: 'vehicleLatitude',
// label: '纬度'
// },
// ],
[
{
name
:
'lateralDeviation'
,
label
:
'横向偏差'
},
],
[
{
name
:
'courseDeviation'
,
label
:
'航向偏差'
},
],
[
{
name
:
'previewDeviation'
,
label
:
'预瞄偏差'
},
],
[
{
name
:
'current_point'
,
label
:
'当前点'
},
{
name
:
'all_amount'
,
label
:
'总点数'
}
],
[
{
name
:
'obstacleFrontDistance'
,
label
:
'前向障碍物距离'
},
],
[
{
name
:
'obstacleFrontFlag'
,
label
:
'前向障碍物标志'
},
],
[
{
name
:
'obstacleBackDistance'
,
label
:
'后向障碍物距离'
},
],
[
{
name
:
'obstacleBackBarriDistance'
,
label
:
'后向挡墙距离'
},
],
[
{
name
:
'followStatus'
,
label
:
'跟会车状态'
},
],
]
// 跟会车字段,根据followVisible判断
export
const
FOLLOW_DETAILS
=
[
{
name
:
'followVehicleId'
,
label
:
'跟会车车辆编号'
},
{
name
:
'followDistance'
,
label
:
'跟会车距离'
},
{
name
:
'followSpeed'
,
label
:
'跟会车速度'
},
]
\ No newline at end of file
.history/src/views/js/view_def_20230803164103.js
0 → 100644
View file @
71384625
export
const
INFORMATION_MESSAGE
=
[
[
{
name
:
'oemstateflag'
,
label
:
'模式给定'
},
{
name
:
'oemstate'
,
label
:
'反馈'
}
],
[
{
name
:
'gearcmd'
,
label
:
'挡位给定'
},
{
name
:
'Current_Gear'
,
label
:
'反馈'
}
],
[
{
name
:
'target_velocity'
,
label
:
'速度给定'
},
{
name
:
'VechicleSpd'
,
label
:
'反馈'
}
],
[
{
name
:
'steerangle'
,
label
:
'转向给定'
},
{
name
:
'Steering_angle'
,
label
:
'反馈'
}
],
[
{
name
:
'dump_bed'
,
label
:
'举升给定'
},
{
name
:
'Dump_Bed_Position'
,
label
:
'反馈'
}
],
[
{
name
:
'throttlecmd'
,
label
:
'油门给定'
},
{
name
:
'throttle'
,
label
:
'反馈'
}
],
[
{
name
:
'Retarder_cmd'
,
label
:
'电制动给定'
},
{
name
:
'retarder_position'
,
label
:
'反馈'
}
],
[
{
name
:
'loadBrakeCmd'
,
label
:
'装载制动给定'
},
],
[
{
name
:
'loadBrakeStatus'
,
label
:
'装载制动反馈'
},
],
[
{
name
:
'mechBrakeCmd'
,
label
:
'机械制动给定'
},
],
[
{
name
:
'mechBrakeStatus'
,
label
:
'机械制动反馈'
},
],
[
{
name
:
'AutoChangeFlag'
,
label
:
'转向状态码'
},
],
[
{
name
:
'EngSpd'
,
label
:
'发动机转速'
},
],
[
{
name
:
'vehicleLoad'
,
label
:
'载重'
}
],
[
{
name
:
'oil'
,
label
:
'燃油剩余量'
}
],
// [
// {
// name: 'vehicleHeading',
// label: '朝向'
// },
// ],
// [
// {
// name: 'vehicleLongtitude',
// label: '经度'
// },
// ],
// [
// {
// name: 'vehicleLatitude',
// label: '纬度'
// },
// ],
[
{
name
:
'lateralDeviation'
,
label
:
'横向偏差'
},
],
[
{
name
:
'courseDeviation'
,
label
:
'航向偏差'
},
],
// [
// {
// name: 'previewDeviation',
// label: '预瞄偏差'
// },
// ],
[
{
name
:
'current_point'
,
label
:
'当前点'
},
{
name
:
'all_amount'
,
label
:
'总点数'
}
],
[
{
name
:
'obstacleFrontDistance'
,
label
:
'前向障碍物距离'
},
],
[
{
name
:
'obstacleFrontFlag'
,
label
:
'前向障碍物标志'
},
],
[
{
name
:
'obstacleBackDistance'
,
label
:
'后向障碍物距离'
},
],
[
{
name
:
'obstacleBackBarriDistance'
,
label
:
'后向挡墙距离'
},
],
[
{
name
:
'followStatus'
,
label
:
'跟会车状态'
},
],
]
// 跟会车字段,根据followVisible判断
export
const
FOLLOW_DETAILS
=
[
{
name
:
'followVehicleId'
,
label
:
'跟会车车辆编号'
},
{
name
:
'followDistance'
,
label
:
'跟会车距离'
},
{
name
:
'followSpeed'
,
label
:
'跟会车速度'
},
]
\ No newline at end of file
.history/src/views/js/view_def_20230809150401.js
0 → 100644
View file @
71384625
export
const
INFORMATION_MESSAGE
=
[
[
{
name
:
'oemstateflag'
,
label
:
'模式给定'
},
{
name
:
'oemstate'
,
label
:
'反馈'
}
],
[
{
name
:
'gearcmd'
,
label
:
'挡位给定'
},
{
name
:
'Current_Gear'
,
label
:
'反馈'
}
],
[
{
name
:
'target_velocity'
,
label
:
'速度给定'
},
{
name
:
'VechicleSpd'
,
label
:
'反馈'
}
],
[
{
name
:
'steerangle'
,
label
:
'转向给定'
},
{
name
:
'Steering_angle'
,
label
:
'反馈'
}
],
[
{
name
:
'dump_bed'
,
label
:
'举升给定'
},
{
name
:
'Dump_Bed_Position'
,
label
:
'反馈'
}
],
[
{
name
:
'throttlecmd'
,
label
:
'油门给定'
},
{
name
:
'throttle'
,
label
:
'反馈'
}
],
[
{
name
:
'Retarder_cmd'
,
label
:
'电制动给定'
},
{
name
:
'retarder_position'
,
label
:
'反馈'
}
],
[
{
name
:
'loadBrakeCmd'
,
label
:
'装载制动给定'
},
{
name
:
'loadBrakeStatus'
,
label
:
'反馈'
},
],
[
{
name
:
'mechBrakeCmd'
,
label
:
'机械制动给定'
},
{
name
:
'mechBrakeStatus'
,
label
:
'反馈'
},
],
[
{
name
:
'AutoChangeFlag'
,
label
:
'转向状态码'
},
],
[
{
name
:
'EngSpd'
,
label
:
'发动机转速'
},
],
[
{
name
:
'vehicleLoad'
,
label
:
'载重'
}
],
[
{
name
:
'oil'
,
label
:
'燃油剩余量'
}
],
// [
// {
// name: 'vehicleHeading',
// label: '朝向'
// },
// ],
// [
// {
// name: 'vehicleLongtitude',
// label: '经度'
// },
// ],
// [
// {
// name: 'vehicleLatitude',
// label: '纬度'
// },
// ],
[
{
name
:
'lateralDeviation'
,
label
:
'横向偏差'
},
],
[
{
name
:
'courseDeviation'
,
label
:
'航向偏差'
},
],
// [
// {
// name: 'previewDeviation',
// label: '预瞄偏差'
// },
// ],
[
{
name
:
'current_point'
,
label
:
'当前点'
},
{
name
:
'all_amount'
,
label
:
'总点数'
}
],
[
{
name
:
'obstacleFrontDistance'
,
label
:
'前向障碍物距离'
},
],
[
{
name
:
'obstacleFrontFlag'
,
label
:
'前向障碍物标志'
},
],
[
{
name
:
'obstacleBackDistance'
,
label
:
'后向障碍物距离'
},
],
[
{
name
:
'obstacleBackBarriDistance'
,
label
:
'后向挡墙距离'
},
],
[
{
name
:
'followStatus'
,
label
:
'跟会车状态'
},
],
]
// 跟会车字段,根据followVisible判断
export
const
FOLLOW_DETAILS
=
[
{
name
:
'followVehicleId'
,
label
:
'跟会车车辆编号'
},
{
name
:
'followDistance'
,
label
:
'跟会车距离'
},
{
name
:
'followSpeed'
,
label
:
'跟会车速度'
},
]
\ No newline at end of file
.history/src/views/set-tags/RunControl_20230731182014.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"run-control"
>
<div
class=
"content"
>
<div
v-for=
"item in topList"
:key=
"item.index"
class=
"c-box"
>
<Button
type=
"primary"
@
click=
"handleSave(item.key, item.value)"
>
{{
item
.
btn
}}
</Button>
<p>
<span
class=
"desc"
>
{{
item
.
des
}}
</span>
<InputNumber
v-model=
"form[item.value]"
controls-outside
></InputNumber>
</p>
</div>
</div>
<div
class=
"run-middle"
>
<div
class=
"content"
v-for=
"item in middleList"
:key=
"item.index"
>
<p
class=
"c-box"
v-for=
"list in item"
:key=
"list.key"
>
<span>
{{
list
.
label
}}
</span>
<i-switch
size=
"large"
v-model=
"form[list.key]"
@
on-change=
"handleChange($event, list.type)"
>
<template
#
open
>
<span>
开启
</span>
</
template
>
<
template
#
close
>
<span>
关闭
</span>
</
template
>
</i-switch>
</p>
</div>
</div>
<div
class=
"content"
>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(7)"
>
加载参数
</Button>
<span>
触发控制模块重新加载参数
</span>
</p>
</div>
<Modal
v-model=
"isShow"
:closable=
"false"
:mask-closable=
"true"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
</Modal>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
,
watch
,
markRaw
}
from
'vue'
;
import
{
useVehicleStore
}
from
'../../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
const
RUN_CONTROL_TOP
=
[
{
btn
:
'打火'
,
key
:
'1'
,
des
:
'打火持续时间'
,
value
:
'engineStartTime'
},
{
btn
:
'熄火'
,
key
:
'2'
,
des
:
'熄火持续时间'
,
value
:
'engineStallTime'
},
{
btn
:
'上电'
,
key
:
'3'
,
des
:
'上电持续时间'
,
value
:
'powerOnTime'
},
]
const
RUN_CONTROL_MIDDLE
=
[
[
{
label
:
'举升'
,
key
:
'liftSwitch'
,
type
:
4
},
{
label
:
'防滑'
,
key
:
'antiSlideSlip'
,
type
:
'5'
}
],
[
// {
// label: '感知屏蔽',
// key: 'perceptionShielding',
// type: 8
// },
{
label
:
'绕障'
,
key
:
'obstaclesBypassingEnable'
,
type
:
9
}
]
]
const
topList
=
markRaw
(
RUN_CONTROL_TOP
)
const
middleList
=
markRaw
(
RUN_CONTROL_MIDDLE
)
const
data
=
reactive
({
form
:
{}
})
const
{
form
}
=
toRefs
(
data
)
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
controlInfo
}
=
vehicleStoreToRefs
const
isShow
=
ref
(
false
);
const
emits
=
defineEmits
([
'sendMsg'
])
function
handleSend
(
msg
)
{
emits
(
'sendMsg'
,
{
type
:
'/setting/controlSetting'
,
msg
:
JSON
.
parse
(
JSON
.
stringify
(
msg
))
})
}
function
handleChange
(
value
,
key
)
{
let
data
=
value
?
1
:
2
handleSend
({
value
:
data
,
type
:
Number
(
key
)
})
}
function
handleSave
(
type
,
key
)
{
let
value
=
1
if
(
key
)
{
value
=
form
.
value
[
key
]
||
1
}
let
data
=
{
type
:
Number
(
type
),
value
}
handleSend
(
data
)
}
function
boxDown
(){
isShow
.
value
=
true
;
}
function
boxCancel
(){
isShow
.
value
=
false
;
}
watch
(
controlInfo
,
(
value
)
=>
{
data
.
form
=
{...
value
}
},
{
immediate
:
true
,
deep
:
true
})
</
script
>
<
style
lang=
"less"
scoped
>
.run-control {
overflow: auto;
.content {
padding: 10px 20px;
background: #111521;
border-radius: 8px;
.c-box {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 2px solid rgba(63,69,86,0.6);
&:nth-last-child(1) {
border: 0;
}
.desc {
margin-right: 5px;
}
/deep/.ivu-btn-primary {
width: 88px;
}
}
.b-box {
justify-content: flex-start;
span {
margin-left: 10px;
}
}
}
.run-middle {
display: flex;
margin: 10px 0;
.content {
width: 50%;
&:nth-child(1) {
margin-right: 10px;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/set-tags/RunControl_20230802095929.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"run-control"
>
<div
class=
"content"
>
<div
v-for=
"item in topList"
:key=
"item.index"
class=
"c-box"
>
<Button
type=
"primary"
@
click=
"handleSave(item.key, item.value)"
>
{{
item
.
btn
}}
</Button>
<p>
<span
class=
"desc"
>
{{
item
.
des
}}
</span>
<InputNumber
v-model=
"form[item.value]"
controls-outside
></InputNumber>
</p>
</div>
</div>
<div
class=
"run-middle"
>
<div
class=
"content"
v-for=
"item in middleList"
:key=
"item.index"
>
<p
class=
"c-box"
v-for=
"list in item"
:key=
"list.key"
>
<span>
{{
list
.
label
}}
</span>
<i-switch
size=
"large"
v-model=
"form[list.key]"
@
on-change=
"handleChange($event, list.type)"
>
<template
#
open
>
<span>
开启
</span>
</
template
>
<
template
#
close
>
<span>
关闭
</span>
</
template
>
</i-switch>
</p>
</div>
</div>
<div
class=
"content"
>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(7)"
>
加载参数
</Button>
<span>
触发控制模块重新加载参数
</span>
</p>
</div>
<Modal
v-model=
"isShow"
:mask-closable=
"true"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
</Modal>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
,
watch
,
markRaw
}
from
'vue'
;
import
{
useVehicleStore
}
from
'../../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
const
RUN_CONTROL_TOP
=
[
{
btn
:
'打火'
,
key
:
'1'
,
des
:
'打火持续时间'
,
value
:
'engineStartTime'
},
{
btn
:
'熄火'
,
key
:
'2'
,
des
:
'熄火持续时间'
,
value
:
'engineStallTime'
},
{
btn
:
'上电'
,
key
:
'3'
,
des
:
'上电持续时间'
,
value
:
'powerOnTime'
},
]
const
RUN_CONTROL_MIDDLE
=
[
[
{
label
:
'举升'
,
key
:
'liftSwitch'
,
type
:
4
},
{
label
:
'防滑'
,
key
:
'antiSlideSlip'
,
type
:
'5'
}
],
[
// {
// label: '感知屏蔽',
// key: 'perceptionShielding',
// type: 8
// },
{
label
:
'绕障'
,
key
:
'obstaclesBypassingEnable'
,
type
:
9
}
]
]
const
topList
=
markRaw
(
RUN_CONTROL_TOP
)
const
middleList
=
markRaw
(
RUN_CONTROL_MIDDLE
)
const
data
=
reactive
({
form
:
{}
})
const
{
form
}
=
toRefs
(
data
)
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
controlInfo
}
=
vehicleStoreToRefs
const
isShow
=
ref
(
false
);
const
emits
=
defineEmits
([
'sendMsg'
])
function
handleSend
(
msg
)
{
emits
(
'sendMsg'
,
{
type
:
'/setting/controlSetting'
,
msg
:
JSON
.
parse
(
JSON
.
stringify
(
msg
))
})
}
function
handleChange
(
value
,
key
)
{
let
data
=
value
?
1
:
2
handleSend
({
value
:
data
,
type
:
Number
(
key
)
})
}
function
handleSave
(
type
,
key
)
{
let
value
=
1
if
(
key
)
{
value
=
form
.
value
[
key
]
||
1
}
let
data
=
{
type
:
Number
(
type
),
value
}
handleSend
(
data
)
}
function
boxDown
(){
isShow
.
value
=
true
;
}
function
boxCancel
(){
isShow
.
value
=
false
;
}
watch
(
controlInfo
,
(
value
)
=>
{
data
.
form
=
{...
value
}
},
{
immediate
:
true
,
deep
:
true
})
</
script
>
<
style
lang=
"less"
scoped
>
.run-control {
overflow: auto;
.content {
padding: 10px 20px;
background: #111521;
border-radius: 8px;
.c-box {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 2px solid rgba(63,69,86,0.6);
&:nth-last-child(1) {
border: 0;
}
.desc {
margin-right: 5px;
}
/deep/.ivu-btn-primary {
width: 88px;
}
}
.b-box {
justify-content: flex-start;
span {
margin-left: 10px;
}
}
}
.run-middle {
display: flex;
margin: 10px 0;
.content {
width: 50%;
&:nth-child(1) {
margin-right: 10px;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/set-tags/RunControl_20230802100007.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"run-control"
>
<div
class=
"content"
>
<div
v-for=
"item in topList"
:key=
"item.index"
class=
"c-box"
>
<Button
type=
"primary"
@
click=
"handleSave(item.key, item.value)"
>
{{
item
.
btn
}}
</Button>
<p>
<span
class=
"desc"
>
{{
item
.
des
}}
</span>
<InputNumber
v-model=
"form[item.value]"
controls-outside
></InputNumber>
</p>
</div>
</div>
<div
class=
"run-middle"
>
<div
class=
"content"
v-for=
"item in middleList"
:key=
"item.index"
>
<p
class=
"c-box"
v-for=
"list in item"
:key=
"list.key"
>
<span>
{{
list
.
label
}}
</span>
<i-switch
size=
"large"
v-model=
"form[list.key]"
@
on-change=
"handleChange($event, list.type)"
>
<template
#
open
>
<span>
开启
</span>
</
template
>
<
template
#
close
>
<span>
关闭
</span>
</
template
>
</i-switch>
</p>
</div>
</div>
<div
class=
"content"
>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(7)"
>
加载参数
</Button>
<span>
触发控制模块重新加载参数
</span>
</p>
</div>
<Modal
v-model=
"isShow"
title=
""
:closable=
"false"
:mask-closable=
"true"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
</Modal>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
,
watch
,
markRaw
}
from
'vue'
;
import
{
useVehicleStore
}
from
'../../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
const
RUN_CONTROL_TOP
=
[
{
btn
:
'打火'
,
key
:
'1'
,
des
:
'打火持续时间'
,
value
:
'engineStartTime'
},
{
btn
:
'熄火'
,
key
:
'2'
,
des
:
'熄火持续时间'
,
value
:
'engineStallTime'
},
{
btn
:
'上电'
,
key
:
'3'
,
des
:
'上电持续时间'
,
value
:
'powerOnTime'
},
]
const
RUN_CONTROL_MIDDLE
=
[
[
{
label
:
'举升'
,
key
:
'liftSwitch'
,
type
:
4
},
{
label
:
'防滑'
,
key
:
'antiSlideSlip'
,
type
:
'5'
}
],
[
// {
// label: '感知屏蔽',
// key: 'perceptionShielding',
// type: 8
// },
{
label
:
'绕障'
,
key
:
'obstaclesBypassingEnable'
,
type
:
9
}
]
]
const
topList
=
markRaw
(
RUN_CONTROL_TOP
)
const
middleList
=
markRaw
(
RUN_CONTROL_MIDDLE
)
const
data
=
reactive
({
form
:
{}
})
const
{
form
}
=
toRefs
(
data
)
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
controlInfo
}
=
vehicleStoreToRefs
const
isShow
=
ref
(
false
);
const
emits
=
defineEmits
([
'sendMsg'
])
function
handleSend
(
msg
)
{
emits
(
'sendMsg'
,
{
type
:
'/setting/controlSetting'
,
msg
:
JSON
.
parse
(
JSON
.
stringify
(
msg
))
})
}
function
handleChange
(
value
,
key
)
{
let
data
=
value
?
1
:
2
handleSend
({
value
:
data
,
type
:
Number
(
key
)
})
}
function
handleSave
(
type
,
key
)
{
let
value
=
1
if
(
key
)
{
value
=
form
.
value
[
key
]
||
1
}
let
data
=
{
type
:
Number
(
type
),
value
}
handleSend
(
data
)
}
function
boxDown
(){
isShow
.
value
=
true
;
}
function
boxCancel
(){
isShow
.
value
=
false
;
}
watch
(
controlInfo
,
(
value
)
=>
{
data
.
form
=
{...
value
}
},
{
immediate
:
true
,
deep
:
true
})
</
script
>
<
style
lang=
"less"
scoped
>
.run-control {
overflow: auto;
.content {
padding: 10px 20px;
background: #111521;
border-radius: 8px;
.c-box {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 2px solid rgba(63,69,86,0.6);
&:nth-last-child(1) {
border: 0;
}
.desc {
margin-right: 5px;
}
/deep/.ivu-btn-primary {
width: 88px;
}
}
.b-box {
justify-content: flex-start;
span {
margin-left: 10px;
}
}
}
.run-middle {
display: flex;
margin: 10px 0;
.content {
width: 50%;
&:nth-child(1) {
margin-right: 10px;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/set-tags/RunControl_20230802100014.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"run-control"
>
<div
class=
"content"
>
<div
v-for=
"item in topList"
:key=
"item.index"
class=
"c-box"
>
<Button
type=
"primary"
@
click=
"handleSave(item.key, item.value)"
>
{{
item
.
btn
}}
</Button>
<p>
<span
class=
"desc"
>
{{
item
.
des
}}
</span>
<InputNumber
v-model=
"form[item.value]"
controls-outside
></InputNumber>
</p>
</div>
</div>
<div
class=
"run-middle"
>
<div
class=
"content"
v-for=
"item in middleList"
:key=
"item.index"
>
<p
class=
"c-box"
v-for=
"list in item"
:key=
"list.key"
>
<span>
{{
list
.
label
}}
</span>
<i-switch
size=
"large"
v-model=
"form[list.key]"
@
on-change=
"handleChange($event, list.type)"
>
<template
#
open
>
<span>
开启
</span>
</
template
>
<
template
#
close
>
<span>
关闭
</span>
</
template
>
</i-switch>
</p>
</div>
</div>
<div
class=
"content"
>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(7)"
>
加载参数
</Button>
<span>
触发控制模块重新加载参数
</span>
</p>
</div>
<Modal
v-model=
"isShow"
title=
1"
:closable=
"false"
:mask-closable=
"true"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
</Modal>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
,
watch
,
markRaw
}
from
'vue'
;
import
{
useVehicleStore
}
from
'../../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
const
RUN_CONTROL_TOP
=
[
{
btn
:
'打火'
,
key
:
'1'
,
des
:
'打火持续时间'
,
value
:
'engineStartTime'
},
{
btn
:
'熄火'
,
key
:
'2'
,
des
:
'熄火持续时间'
,
value
:
'engineStallTime'
},
{
btn
:
'上电'
,
key
:
'3'
,
des
:
'上电持续时间'
,
value
:
'powerOnTime'
},
]
const
RUN_CONTROL_MIDDLE
=
[
[
{
label
:
'举升'
,
key
:
'liftSwitch'
,
type
:
4
},
{
label
:
'防滑'
,
key
:
'antiSlideSlip'
,
type
:
'5'
}
],
[
// {
// label: '感知屏蔽',
// key: 'perceptionShielding',
// type: 8
// },
{
label
:
'绕障'
,
key
:
'obstaclesBypassingEnable'
,
type
:
9
}
]
]
const
topList
=
markRaw
(
RUN_CONTROL_TOP
)
const
middleList
=
markRaw
(
RUN_CONTROL_MIDDLE
)
const
data
=
reactive
({
form
:
{}
})
const
{
form
}
=
toRefs
(
data
)
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
controlInfo
}
=
vehicleStoreToRefs
const
isShow
=
ref
(
false
);
const
emits
=
defineEmits
([
'sendMsg'
])
function
handleSend
(
msg
)
{
emits
(
'sendMsg'
,
{
type
:
'/setting/controlSetting'
,
msg
:
JSON
.
parse
(
JSON
.
stringify
(
msg
))
})
}
function
handleChange
(
value
,
key
)
{
let
data
=
value
?
1
:
2
handleSend
({
value
:
data
,
type
:
Number
(
key
)
})
}
function
handleSave
(
type
,
key
)
{
let
value
=
1
if
(
key
)
{
value
=
form
.
value
[
key
]
||
1
}
let
data
=
{
type
:
Number
(
type
),
value
}
handleSend
(
data
)
}
function
boxDown
(){
isShow
.
value
=
true
;
}
function
boxCancel
(){
isShow
.
value
=
false
;
}
watch
(
controlInfo
,
(
value
)
=>
{
data
.
form
=
{...
value
}
},
{
immediate
:
true
,
deep
:
true
})
</
script
>
<
style
lang=
"less"
scoped
>
.run-control {
overflow: auto;
.content {
padding: 10px 20px;
background: #111521;
border-radius: 8px;
.c-box {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 2px solid rgba(63,69,86,0.6);
&:nth-last-child(1) {
border: 0;
}
.desc {
margin-right: 5px;
}
/deep/.ivu-btn-primary {
width: 88px;
}
}
.b-box {
justify-content: flex-start;
span {
margin-left: 10px;
}
}
}
.run-middle {
display: flex;
margin: 10px 0;
.content {
width: 50%;
&:nth-child(1) {
margin-right: 10px;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/set-tags/RunControl_20230802100019.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"run-control"
>
<div
class=
"content"
>
<div
v-for=
"item in topList"
:key=
"item.index"
class=
"c-box"
>
<Button
type=
"primary"
@
click=
"handleSave(item.key, item.value)"
>
{{
item
.
btn
}}
</Button>
<p>
<span
class=
"desc"
>
{{
item
.
des
}}
</span>
<InputNumber
v-model=
"form[item.value]"
controls-outside
></InputNumber>
</p>
</div>
</div>
<div
class=
"run-middle"
>
<div
class=
"content"
v-for=
"item in middleList"
:key=
"item.index"
>
<p
class=
"c-box"
v-for=
"list in item"
:key=
"list.key"
>
<span>
{{
list
.
label
}}
</span>
<i-switch
size=
"large"
v-model=
"form[list.key]"
@
on-change=
"handleChange($event, list.type)"
>
<template
#
open
>
<span>
开启
</span>
</
template
>
<
template
#
close
>
<span>
关闭
</span>
</
template
>
</i-switch>
</p>
</div>
</div>
<div
class=
"content"
>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(7)"
>
加载参数
</Button>
<span>
触发控制模块重新加载参数
</span>
</p>
</div>
<Modal
v-model=
"isShow"
title=
"22"
:closable=
"false"
:mask-closable=
"true"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
</Modal>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
,
watch
,
markRaw
}
from
'vue'
;
import
{
useVehicleStore
}
from
'../../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
const
RUN_CONTROL_TOP
=
[
{
btn
:
'打火'
,
key
:
'1'
,
des
:
'打火持续时间'
,
value
:
'engineStartTime'
},
{
btn
:
'熄火'
,
key
:
'2'
,
des
:
'熄火持续时间'
,
value
:
'engineStallTime'
},
{
btn
:
'上电'
,
key
:
'3'
,
des
:
'上电持续时间'
,
value
:
'powerOnTime'
},
]
const
RUN_CONTROL_MIDDLE
=
[
[
{
label
:
'举升'
,
key
:
'liftSwitch'
,
type
:
4
},
{
label
:
'防滑'
,
key
:
'antiSlideSlip'
,
type
:
'5'
}
],
[
// {
// label: '感知屏蔽',
// key: 'perceptionShielding',
// type: 8
// },
{
label
:
'绕障'
,
key
:
'obstaclesBypassingEnable'
,
type
:
9
}
]
]
const
topList
=
markRaw
(
RUN_CONTROL_TOP
)
const
middleList
=
markRaw
(
RUN_CONTROL_MIDDLE
)
const
data
=
reactive
({
form
:
{}
})
const
{
form
}
=
toRefs
(
data
)
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
controlInfo
}
=
vehicleStoreToRefs
const
isShow
=
ref
(
false
);
const
emits
=
defineEmits
([
'sendMsg'
])
function
handleSend
(
msg
)
{
emits
(
'sendMsg'
,
{
type
:
'/setting/controlSetting'
,
msg
:
JSON
.
parse
(
JSON
.
stringify
(
msg
))
})
}
function
handleChange
(
value
,
key
)
{
let
data
=
value
?
1
:
2
handleSend
({
value
:
data
,
type
:
Number
(
key
)
})
}
function
handleSave
(
type
,
key
)
{
let
value
=
1
if
(
key
)
{
value
=
form
.
value
[
key
]
||
1
}
let
data
=
{
type
:
Number
(
type
),
value
}
handleSend
(
data
)
}
function
boxDown
(){
isShow
.
value
=
true
;
}
function
boxCancel
(){
isShow
.
value
=
false
;
}
watch
(
controlInfo
,
(
value
)
=>
{
data
.
form
=
{...
value
}
},
{
immediate
:
true
,
deep
:
true
})
</
script
>
<
style
lang=
"less"
scoped
>
.run-control {
overflow: auto;
.content {
padding: 10px 20px;
background: #111521;
border-radius: 8px;
.c-box {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 2px solid rgba(63,69,86,0.6);
&:nth-last-child(1) {
border: 0;
}
.desc {
margin-right: 5px;
}
/deep/.ivu-btn-primary {
width: 88px;
}
}
.b-box {
justify-content: flex-start;
span {
margin-left: 10px;
}
}
}
.run-middle {
display: flex;
margin: 10px 0;
.content {
width: 50%;
&:nth-child(1) {
margin-right: 10px;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/set-tags/RunControl_20230802100028.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"run-control"
>
<div
class=
"content"
>
<div
v-for=
"item in topList"
:key=
"item.index"
class=
"c-box"
>
<Button
type=
"primary"
@
click=
"handleSave(item.key, item.value)"
>
{{
item
.
btn
}}
</Button>
<p>
<span
class=
"desc"
>
{{
item
.
des
}}
</span>
<InputNumber
v-model=
"form[item.value]"
controls-outside
></InputNumber>
</p>
</div>
</div>
<div
class=
"run-middle"
>
<div
class=
"content"
v-for=
"item in middleList"
:key=
"item.index"
>
<p
class=
"c-box"
v-for=
"list in item"
:key=
"list.key"
>
<span>
{{
list
.
label
}}
</span>
<i-switch
size=
"large"
v-model=
"form[list.key]"
@
on-change=
"handleChange($event, list.type)"
>
<template
#
open
>
<span>
开启
</span>
</
template
>
<
template
#
close
>
<span>
关闭
</span>
</
template
>
</i-switch>
</p>
</div>
</div>
<div
class=
"content"
>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(7)"
>
加载参数
</Button>
<span>
触发控制模块重新加载参数
</span>
</p>
</div>
<Modal
v-model=
"isShow"
title=
"提示"
:closable=
"false"
:mask-closable=
"true"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
</Modal>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
,
watch
,
markRaw
}
from
'vue'
;
import
{
useVehicleStore
}
from
'../../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
const
RUN_CONTROL_TOP
=
[
{
btn
:
'打火'
,
key
:
'1'
,
des
:
'打火持续时间'
,
value
:
'engineStartTime'
},
{
btn
:
'熄火'
,
key
:
'2'
,
des
:
'熄火持续时间'
,
value
:
'engineStallTime'
},
{
btn
:
'上电'
,
key
:
'3'
,
des
:
'上电持续时间'
,
value
:
'powerOnTime'
},
]
const
RUN_CONTROL_MIDDLE
=
[
[
{
label
:
'举升'
,
key
:
'liftSwitch'
,
type
:
4
},
{
label
:
'防滑'
,
key
:
'antiSlideSlip'
,
type
:
'5'
}
],
[
// {
// label: '感知屏蔽',
// key: 'perceptionShielding',
// type: 8
// },
{
label
:
'绕障'
,
key
:
'obstaclesBypassingEnable'
,
type
:
9
}
]
]
const
topList
=
markRaw
(
RUN_CONTROL_TOP
)
const
middleList
=
markRaw
(
RUN_CONTROL_MIDDLE
)
const
data
=
reactive
({
form
:
{}
})
const
{
form
}
=
toRefs
(
data
)
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
controlInfo
}
=
vehicleStoreToRefs
const
isShow
=
ref
(
false
);
const
emits
=
defineEmits
([
'sendMsg'
])
function
handleSend
(
msg
)
{
emits
(
'sendMsg'
,
{
type
:
'/setting/controlSetting'
,
msg
:
JSON
.
parse
(
JSON
.
stringify
(
msg
))
})
}
function
handleChange
(
value
,
key
)
{
let
data
=
value
?
1
:
2
handleSend
({
value
:
data
,
type
:
Number
(
key
)
})
}
function
handleSave
(
type
,
key
)
{
let
value
=
1
if
(
key
)
{
value
=
form
.
value
[
key
]
||
1
}
let
data
=
{
type
:
Number
(
type
),
value
}
handleSend
(
data
)
}
function
boxDown
(){
isShow
.
value
=
true
;
}
function
boxCancel
(){
isShow
.
value
=
false
;
}
watch
(
controlInfo
,
(
value
)
=>
{
data
.
form
=
{...
value
}
},
{
immediate
:
true
,
deep
:
true
})
</
script
>
<
style
lang=
"less"
scoped
>
.run-control {
overflow: auto;
.content {
padding: 10px 20px;
background: #111521;
border-radius: 8px;
.c-box {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 2px solid rgba(63,69,86,0.6);
&:nth-last-child(1) {
border: 0;
}
.desc {
margin-right: 5px;
}
/deep/.ivu-btn-primary {
width: 88px;
}
}
.b-box {
justify-content: flex-start;
span {
margin-left: 10px;
}
}
}
.run-middle {
display: flex;
margin: 10px 0;
.content {
width: 50%;
&:nth-child(1) {
margin-right: 10px;
}
}
}
}
</
style
>
\ No newline at end of file
.history/src/views/set-tags/RunControl_20230802103757.vue
0 → 100644
View file @
71384625
<
template
>
<div
class=
"run-control"
>
<div
class=
"content"
>
<div
v-for=
"item in topList"
:key=
"item.index"
class=
"c-box"
>
<Button
type=
"primary"
@
click=
"handleSave(item.key, item.value)"
>
{{
item
.
btn
}}
</Button>
<p>
<span
class=
"desc"
>
{{
item
.
des
}}
</span>
<InputNumber
v-model=
"form[item.value]"
controls-outside
></InputNumber>
</p>
</div>
</div>
<div
class=
"run-middle"
>
<div
class=
"content"
v-for=
"item in middleList"
:key=
"item.index"
>
<p
class=
"c-box"
v-for=
"list in item"
:key=
"list.key"
>
<span>
{{
list
.
label
}}
</span>
<i-switch
size=
"large"
v-model=
"form[list.key]"
@
on-change=
"handleChange($event, list.type)"
>
<template
#
open
>
<span>
开启
</span>
</
template
>
<
template
#
close
>
<span>
关闭
</span>
</
template
>
</i-switch>
</p>
</div>
</div>
<div
class=
"content"
>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(7)"
>
加载参数
</Button>
<span>
触发控制模块重新加载参数
</span>
</p>
</div>
<Modal
v-model=
"isShow"
title=
"提示"
:closable=
"true"
:mask-closable=
"false"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
</Modal>
</div>
</template>
<
script
setup
>
import
{
ref
,
reactive
,
toRefs
,
watch
,
markRaw
}
from
'vue'
;
import
{
useVehicleStore
}
from
'../../store/VehicleStore'
;
import
{
storeToRefs
}
from
'pinia'
;
const
RUN_CONTROL_TOP
=
[
{
btn
:
'打火'
,
key
:
'1'
,
des
:
'打火持续时间'
,
value
:
'engineStartTime'
},
{
btn
:
'熄火'
,
key
:
'2'
,
des
:
'熄火持续时间'
,
value
:
'engineStallTime'
},
{
btn
:
'上电'
,
key
:
'3'
,
des
:
'上电持续时间'
,
value
:
'powerOnTime'
},
]
const
RUN_CONTROL_MIDDLE
=
[
[
{
label
:
'举升'
,
key
:
'liftSwitch'
,
type
:
4
},
{
label
:
'防滑'
,
key
:
'antiSlideSlip'
,
type
:
'5'
}
],
[
// {
// label: '感知屏蔽',
// key: 'perceptionShielding',
// type: 8
// },
{
label
:
'绕障'
,
key
:
'obstaclesBypassingEnable'
,
type
:
9
}
]
]
const
topList
=
markRaw
(
RUN_CONTROL_TOP
)
const
middleList
=
markRaw
(
RUN_CONTROL_MIDDLE
)
const
data
=
reactive
({
form
:
{}
})
const
{
form
}
=
toRefs
(
data
)
const
vehicleStore
=
useVehicleStore
()
const
vehicleStoreToRefs
=
storeToRefs
(
vehicleStore
)
const
{
controlInfo
}
=
vehicleStoreToRefs
const
isShow
=
ref
(
false
);
const
emits
=
defineEmits
([
'sendMsg'
])
function
handleSend
(
msg
)
{
emits
(
'sendMsg'
,
{
type
:
'/setting/controlSetting'
,
msg
:
JSON
.
parse
(
JSON
.
stringify
(
msg
))
})
}
function
handleChange
(
value
,
key
)
{
let
data
=
value
?
1
:
2
handleSend
({
value
:
data
,
type
:
Number
(
key
)
})
}
function
handleSave
(
type
,
key
)
{
let
value
=
1
if
(
key
)
{
value
=
form
.
value
[
key
]
||
1
}
let
data
=
{
type
:
Number
(
type
),
value
}
handleSend
(
data
)
}
function
boxDown
(){
isShow
.
value
=
true
;
}
function
boxCancel
(){
isShow
.
value
=
false
;
}
watch
(
controlInfo
,
(
value
)
=>
{
data
.
form
=
{...
value
}
},
{
immediate
:
true
,
deep
:
true
})
</
script
>
<
style
lang=
"less"
scoped
>
.run-control {
overflow: auto;
.content {
padding: 10px 20px;
background: #111521;
border-radius: 8px;
.c-box {
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px 0;
border-bottom: 2px solid rgba(63,69,86,0.6);
&:nth-last-child(1) {
border: 0;
}
.desc {
margin-right: 5px;
}
/deep/.ivu-btn-primary {
width: 88px;
}
}
.b-box {
justify-content: flex-start;
span {
margin-left: 10px;
}
}
}
.run-middle {
display: flex;
margin: 10px 0;
.content {
width: 50%;
&:nth-child(1) {
margin-right: 10px;
}
}
}
}
</
style
>
\ No newline at end of file
Truckmonitorview.zip
View file @
71384625
No preview for this file type
public/config.json
View file @
71384625
{
"SERVICE_IP"
:
"172.16.0.1
53
:1234"
,
"SERVICE_IP"
:
"172.16.0.1
14
:1234"
,
"MAP_CENTER"
:
[
39.74441007068
,
111.24544532751
],
"version"
:
"1.1.3"
}
\ No newline at end of file
src/views/js/view_def.js
View file @
71384625
...
...
@@ -69,30 +69,26 @@ export const INFORMATION_MESSAGE = [
label
:
'反馈'
}
],
// [
// {
// name: 'loadBrakeCmd',
// label: '装载制动给定'
// },
// ],
// [
// {
// name: 'loadBrakeStatus',
// label: '装载制动反馈'
// },
// ],
// [
// {
// name: 'mechBrakeCmd',
// label: '机械制动给定'
// },
// ],
// [
// {
// name: 'mechBrakeStatus',
// label: '机械制动反馈'
// },
// ],
[
{
name
:
'loadBrakeCmd'
,
label
:
'装载制动给定'
},
{
name
:
'loadBrakeStatus'
,
label
:
'反馈'
},
],
[
{
name
:
'mechBrakeCmd'
,
label
:
'机械制动给定'
},
{
name
:
'mechBrakeStatus'
,
label
:
'反馈'
},
],
[
{
name
:
'AutoChangeFlag'
,
...
...
@@ -147,12 +143,12 @@ export const INFORMATION_MESSAGE = [
label
:
'航向偏差'
},
],
[
{
name
:
'previewDeviation'
,
label
:
'预瞄偏差'
},
],
//
[
//
{
//
name: 'previewDeviation',
//
label: '预瞄偏差'
//
},
//
],
[
{
name
:
'current_point'
,
...
...
src/views/set-tags/RunControl.vue
View file @
71384625
...
...
@@ -25,10 +25,10 @@
</div>
</div>
<div
class=
"content"
>
<
!-- <
p class="c-box b-box">
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"boxDown(10)"
>
货箱回落
</Button>
<span>
仅在0/1级故障下且货箱功能正常时点击
</span>
</p>
-->
</p>
<p
class=
"c-box b-box"
>
<Button
type=
"primary"
@
click=
"handleSave(6)"
>
解锁
</Button>
<span>
解锁上次异常退出导致的路权锁定
</span>
...
...
@@ -39,8 +39,9 @@
</p>
</div>
<Modal
v-model=
"isShow"
:closable=
"false"
:mask-closable=
"true"
title=
"提示"
:closable=
"true"
:mask-closable=
"false"
@
on-ok=
"handleSave(10)"
@
on-cancel=
"boxCancel()"
>
<p
style=
"text-align: center;"
>
是否执行货箱回落指令
</p>
...
...
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