Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
web-monitor
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
Administrator
web-monitor
Commits
f39055f3
Commit
f39055f3
authored
Apr 11, 2022
by
yanzhongrong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feeder all
parent
aacebaea
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
1347 additions
and
115 deletions
+1347
-115
App.vue
src/App.vue
+32
-12
export.js
src/api/export.js
+4
-0
main.js
src/main.js
+1
-0
index.js
src/store/index.js
+2
-1
alarm.js
src/store/modules/alarm.js
+44
-18
bus.js
src/utils/bus.js
+1
-1
download.js
src/utils/download.js
+2
-2
api.js
src/views/alarm/api.js
+1
-1
index.vue
src/views/alarm/cableTime/index.vue
+1
-0
search.vue
src/views/alarm/device/components/search.vue
+10
-12
index.vue
src/views/alarm/device/index.vue
+11
-12
index.vue
src/views/dashboard/components/index.vue
+2
-0
type2.vue
src/views/dashboard/components/type2.vue
+60
-50
type5.vue
src/views/dashboard/components/type5.vue
+2
-2
type6.vue
src/views/dashboard/components/type6.vue
+446
-0
const.js
src/views/dashboard/const.js
+25
-0
index.vue
src/views/login/index.vue
+1
-0
line.vue
src/views/setting/add/comp/line.vue
+278
-0
index.vue
src/views/setting/add/index.vue
+4
-1
api.js
src/views/setting/api.js
+18
-2
lineTable.vue
src/views/setting/statistics/comp/lineTable.vue
+398
-0
index.vue
src/views/setting/statistics/index.vue
+4
-1
No files found.
src/App.vue
View file @
f39055f3
<
template
>
<div
id=
"app"
>
<router-view
/>
<audio
id=
"my_audio"
ref=
"audio"
src=
"./assets/audio/urgent.wav"
muted
autoplay
/>
<audio
ref=
"audio"
src=
"./assets/audio/urgent.wav"
muted=
"true"
loop=
"false"
/>
<transition
name=
"tipalerm"
>
<div
v-if=
"tflag"
class=
"tips"
>
<p>
提示
</p>
...
...
@@ -29,7 +29,7 @@ export default {
alevel
:
{
color
:
''
},
audioUrl
:
''
,
audioUrl
:
'
/assets/audio/urgent.wav
'
,
audioObj
:
{
'一般'
:
'commonly.wav'
,
'重要'
:
'importang.wav'
,
...
...
@@ -40,9 +40,7 @@ export default {
},
computed
:
{
...
mapState
(
'user'
,
[
'userBaseInfo'
,
'token'
]),
userId
()
{
return
this
.
userBaseInfo
.
userId
},
...
mapState
(
'alarm'
,
[
'cableList'
,
'deviceList'
]),
usertoken
()
{
return
this
.
token
}
...
...
@@ -51,8 +49,6 @@ export default {
$route
(
to
,
from
)
{
if
(
to
.
path
===
'/login'
)
{
setTimeout
(
this
.
closeWebsocket
(),
300
)
// this.websocket.close()
console
.
log
(
'在登录页'
)
}
},
usertoken
:
{
...
...
@@ -62,14 +58,33 @@ export default {
if
(
newV
!==
''
)
{
this
.
websocket
=
socket
({
onmessage
:
this
.
receiveMessage
})
}
else
{
this
.
closeWebsocket
()
;
this
.
closeWebsocket
()
}
}
}
},
cableList
:
{
handler
(
newV
)
{
if
(
newV
.
length
||
this
.
deviceList
.
length
)
{
setTimeout
(()
=>
{
this
.
$refs
.
audio
.
play
()
this
.
$refs
.
audio
.
loop
=
true
},
500
)
}
else
{
this
.
$refs
.
audio
.
loop
=
false
}
}
}
},
mounted
()
{
let
audioPlay
=
document
.
getElementById
(
'my_audio'
)
document
.
body
.
addEventListener
(
'mousedown'
,
()
=>
{
this
.
$refs
.
audio
.
muted
=
false
document
.
body
.
removeEventListener
(
'mousedown'
,
()
=>
{})
},
false
)
EventBus
.
$on
(
'dialogAlarm'
,
(
data
)
=>
{
// 接收消息之后 声音弹窗显示
this
.
msg
=
data
...
...
@@ -82,14 +97,19 @@ export default {
EventBus
.
$on
(
'autioPlay'
,
(
data
)
=>
{
this
.
audioUrl
=
'./assets/audio/'
+
this
.
audioObj
[
data
.
level
]
setTimeout
(()
=>
{
audioPlay
.
play
()
this
.
$refs
.
audio
.
play
()
},
500
)
if
(
this
.
cableList
.
length
||
this
.
deviceList
.
length
)
{
this
.
$refs
.
audio
.
loop
=
true
}
})
EventBus
.
$on
(
'cancelWS'
,
()
=>
{
this
.
websocket
.
close
()
console
.
log
(
'关闭ws'
)
this
.
closeWebsocket
()
})
},
destroyed
()
{
document
.
body
.
removeEventListener
(
'mousedown'
,
()
=>
{})
},
methods
:
{
receiveMessage
,
closeWebsocket
()
{
...
...
src/api/export.js
View file @
f39055f3
...
...
@@ -11,6 +11,7 @@ const path = {
exportFsu
:
"fsu/export"
,
exportMonitorEquip
:
"monitorEquip/export"
,
exportLeaky
:
"leakyCable/export"
,
exportFeeder
:
"antennaFeeder/export"
,
// 实时状态
exportLeakyCableTime
:
'sysLeakyCableStatus/export'
,
...
...
@@ -56,6 +57,9 @@ export function exportMonitorEquip() {
export
function
exportLeaky
()
{
return
requestBlob
(
path
.
exportLeaky
,
...
arguments
)
}
export
function
exportFeeder
()
{
return
requestBlob
(
path
.
exportFeeder
,
...
arguments
)
}
export
function
exportLeakyCableTime
()
{
...
...
src/main.js
View file @
f39055f3
...
...
@@ -25,6 +25,7 @@ function dispatchWithPromise(path) {
const
beforeEnterApp
=
()
=>
{
dispatchWithPromise
(
'depart/getDepart'
)
dispatchWithPromise
(
'user/getInfo'
)
dispatchWithPromise
(
'alarm/getAlarmList'
)
}
beforeEnterApp
()
...
...
src/store/index.js
View file @
f39055f3
...
...
@@ -5,7 +5,7 @@ import app from './modules/app'
import
settings
from
'./modules/settings'
import
user
from
'./modules/user'
import
depart
from
'./modules/depart'
import
alarm
from
'./modules/alarm'
Vue
.
use
(
Vuex
)
...
...
@@ -16,6 +16,7 @@ const store = new Vuex.Store({
settings
,
user
,
depart
,
alarm
},
getters
})
...
...
src/store/modules/alarm.js
View file @
f39055f3
import
{
deptList
}
from
'@/api/baseData
'
import
{
cableTimeList
,
deviceList
}
from
'@/views/alarm/api.js
'
const
getDefaultState
=
()
=>
{
return
{
cableList
:
null
,
deviceList
:
null
cableList
:
[]
,
deviceList
:
[]
}
}
...
...
@@ -13,38 +13,64 @@ const mutations = {
RESET_STATE
:
state
=>
{
Object
.
assign
(
state
,
getDefaultState
())
},
SET_DEPART
:
(
state
,
payload
)
=>
{
state
.
departList
=
handleDepart
(
payload
)
state
.
departMap
=
listToMap
(
payload
)
SET_CABLE
:
(
state
,
payload
)
=>
{
state
.
cableList
=
handleCable
(
payload
)
},
SET_DEVICE
:
(
state
,
payload
)
=>
{
state
.
deviceList
=
handleAlarm
(
payload
)
}
}
const
actions
=
{
getDepart
({
commit
})
{
deptList
({}).
then
(
res
=>
{
if
(
!
res
)
return
commit
(
'SET_DEPART'
,
res
)
getAlarmList
({
commit
},
resolve
)
{
Promise
.
all
([
cableTimeList
({
confirmStatus
:
0
}),
deviceList
({
confirmStatus
:
0
})
]).
then
(
res
=>
{
commit
(
'SET_CABLE'
,
res
[
0
].
records
.
filter
(
item
=>
{
item
.
alarmLevel
!==
1
}))
commit
(
'SET_DEVICE'
,
res
[
1
].
records
.
filter
(
item
=>
item
.
connectStatusName
===
'连接异常'
))
resolve
&&
resolve
()
})
},
getCableTime
({
commit
})
{
cableTimeList
({
confirmStatus
:
0
}).
then
(
res
=>
{
commit
(
'SET_CABLE'
,
res
.
records
.
filter
(
item
=>
item
.
alarmLevel
!==
1
))
})
},
getDevice
({
commit
})
{
return
deviceList
({
confirmStatus
:
0
}).
then
(
res
=>
{
commit
(
'SET_DEVICE'
,
res
.
records
.
filter
(
item
=>
item
.
connectStatusName
===
'连接异常'
))
})
}
}
const
getters
=
{
departMap
(
state
)
{
return
state
.
departMap
cableList
(
state
)
{
return
state
.
cableList
},
de
part
List
(
state
)
{
return
state
.
de
part
List
de
vice
List
(
state
)
{
return
state
.
de
vice
List
}
}
function
handleDepart
(
list
)
{
function
handleAlarm
(
list
)
{
if
(
!
list
)
return
return
list
.
map
(
item
=>
{
const
data
=
{}
data
.
id
=
item
.
id
data
.
value
=
item
.
connectStatusName
data
.
data
=
item
return
data
})
}
function
handleCable
(
list
)
{
if
(
!
list
)
return
return
list
.
map
(
item
=>
{
const
data
=
{}
data
.
label
=
item
.
dictValue
data
.
name
=
item
.
dictValue
data
.
id
=
item
.
id
data
.
value
=
item
.
id
data
.
alarmLevel
=
item
.
alarmLevel
data
.
value
=
item
.
alarmLevelName
data
.
data
=
item
return
data
})
...
...
src/utils/bus.js
View file @
f39055f3
import
Vue
from
'vue'
const
EventBus
=
new
Vue
()
export
default
EventBus
\ No newline at end of file
export
default
EventBus
src/utils/download.js
View file @
f39055f3
export
default
function
(
res
,
type
,
fileName
=
''
)
{
export
default
function
(
res
,
type
,
fileName
=
''
)
{
let
blob
=
new
Blob
([
res
],
{
type
:
`application/
${
type
}
`
})
let
a
=
document
.
createElement
(
'a'
)
let
url
=
window
.
URL
.
createObjectURL
(
blob
)
a
.
href
=
url
a
.
download
=
fileName
a
.
click
()
}
\ No newline at end of file
}
src/views/alarm/api.js
View file @
f39055f3
...
...
@@ -7,7 +7,7 @@ const path = {
deviceList
:
'sysConnectAlarm/selectPage'
,
deviceConfirm
:
'sysConnectAlarm/confirm'
,
deviceCancel
:
'sysConnectAlarm/cancel'
,
deviceCancel
:
'sysConnectAlarm/cancel'
}
export
function
cableTimeList
()
{
...
...
src/views/alarm/cableTime/index.vue
View file @
f39055f3
...
...
@@ -280,6 +280,7 @@ export default {
let
id
=
dialogInfo
.
id
cableConfirm
({
id
:
id
}).
then
((
res
)
=>
{
this
.
getTableData
()
this
.
$store
.
dispatch
(
'alarm/getCableTime'
)
})
this
.
centerDialogVisible
=
false
},
...
...
src/views/alarm/device/components/search.vue
View file @
f39055f3
<
template
>
<div>
<el-form
class=
"search-form"
:model=
"form"
ref
=
"form"
label-width=
"80px"
:inline=
"true"
size=
"mini"
>
<el-form-item
label=
"网元设备"
>
<el-form
class=
"search-form"
ref=
"form"
:model
=
"form"
label-width=
"80px"
:inline=
"true"
size=
"mini"
>
<el-form-item
label=
"网元设备"
>
<el-input
v-model=
"form.pointDeviceName"
clearable
placeholder=
"请输入网元设备"
></el-input>
</el-form-item>
<el-form-item
label=
"上传时间"
>
<el-date-picker
<el-date-picker
v-model=
"dateRange"
type=
"daterange"
range-separator=
"至"
...
...
@@ -16,8 +15,8 @@
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"success"
@
click=
"toSearch"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
<el-button
type=
"success"
@
click=
"toSearch"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
</el-form-item>
</el-form>
</div>
...
...
@@ -26,15 +25,14 @@
<
script
>
import
{
ConnectStatusEnum
}
from
'@/const/index'
export
default
{
name
:
'
s
earch'
,
name
:
'
S
earch'
,
data
()
{
return
{
form
:
formInit
(),
ConnectStatusEnum
,
dateRange
:
[],
dateRange
:
[]
}
},
mounted
()
{
},
methods
:
{
...
...
@@ -47,7 +45,7 @@ export default {
this
.
dateRange
=
[]
this
.
form
=
formInit
()
this
.
$emit
(
'search'
)
}
,
}
}
}
...
...
@@ -55,8 +53,8 @@ function formInit() {
return
{
pointDeviceName
:
''
,
pointConnectStatus
:
''
,
startUploadTime
:
''
,
endUploadTime
:
''
startUploadTime
:
''
,
endUploadTime
:
''
}
}
</
script
>
...
...
src/views/alarm/device/index.vue
View file @
f39055f3
...
...
@@ -170,6 +170,12 @@ export default {
exids
:
[]
}
},
mounted
()
{
this
.
getTableData
()
},
created
()
{
this
.
searchOption
=
this
.
$route
.
query
},
methods
:
{
// 表格背景图颜色
cellClassFn
({
row
,
column
,
rowIndex
,
columnIndex
})
{
...
...
@@ -233,6 +239,7 @@ export default {
let
id
=
dialogInfo
.
id
;
deviceConfirm
({
id
:
id
}).
then
((
res
)
=>
{
this
.
getTableData
();
this
.
$store
.
dispatch
(
'alarm/getDevice'
)
});
this
.
centerDialogVisible
=
false
;
},
...
...
@@ -255,7 +262,6 @@ export default {
this
.
confirmStatus
=
item
.
key
;
this
.
getTableData
();
},
exportList
()
{
if
(
this
.
exids
.
length
==
0
)
{
this
.
$message
.
warning
(
"暂无数据"
);
...
...
@@ -263,18 +269,11 @@ export default {
}
else
{
exportConnet
({
ids
:
this
.
exids
}).
then
((
res
)
=>
{
download
(
res
,
"vnd.ms-excel"
,
`设备连接告警.xls`
);
})
;
})
}
},
},
mounted
()
{
this
.
getTableData
();
},
created
()
{
console
.
log
(
this
.
$route
.
query
);
this
.
searchOption
=
this
.
$route
.
query
},
};
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/dashboard/components/index.vue
View file @
f39055f3
...
...
@@ -14,6 +14,7 @@ import Type2 from "./type2.vue";
import
Type3
from
"./type3.vue"
;
import
Type4
from
"./type4.vue"
;
import
Type5
from
"./type5.vue"
;
import
Type6
from
"./type6.vue"
;
export
default
{
data
()
{
...
...
@@ -40,6 +41,7 @@ export default {
Type3
,
Type4
,
Type5
,
Type6
,
},
methods
:
{
toUpdate
()
{
...
...
src/views/dashboard/components/type2.vue
View file @
f39055f3
...
...
@@ -199,21 +199,34 @@
<div
slot=
"header"
class=
"clearfix posa"
>
<span>
当前状态
</span>
</div>
<div>
<el-row
v-for=
"(item, i) in statusAlarmfun"
class=
"text"
:gutter=
"24"
>
<div>
<el-row
v-for=
"(item, i) in statusAlarmfun"
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
{{
item
.
name
}}
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"item_data levelData"
>
{{
item
.
value
}}
</div>
</el-col>
<el-col
:span=
"6"
><el-button
class=
"alarmbtn"
type=
"primary"
size=
"mini"
v-if=
"item.value == '连接异常' || item.value == '紧急' || item.value == '重要' || item.value == '一般'"
@
click=
"toalarm(item.value)"
>
处理告警
</el-button
<div
class=
"item_data levelData"
>
{{
item
.
value
}}
</div>
</el-col>
<el-col
:span=
"6"
><el-button
class=
"alarmbtn"
type=
"primary"
size=
"mini"
v-if=
"
item.value == '连接异常' ||
item.value == '紧急' ||
item.value == '重要' ||
item.value == '一般'
"
@
click=
"toalarm(item.name)"
>
处理告警
</el-button
></el-col
>
</el-row>
</div>
</el-card>
</el-col>
...
...
@@ -239,6 +252,29 @@ export default {
]
};
},
computed
:
{
statusAlarmfun
()
{
if
(
this
.
form
.
status
)
{
return
this
.
form
.
status
;
}
else
{
return
this
.
defaultList
}
},
},
watch
:
{
statusAlarmfun
:
{
immediate
:
true
,
handler
(
newV
)
{
if
(
newV
)
{
this
.
$nextTick
(
function
()
{
this
.
levelcolor2
();
});
}
},
},
},
methods
:
{
savebtn
()
{
this
.
flag
=
true
;
...
...
@@ -247,69 +283,43 @@ export default {
});
},
levelcolor2
()
{
let
la
=
document
.
getElementsByClassName
(
"levelData"
)
;
let
la
=
document
.
getElementsByClassName
(
"levelData"
)
for
(
var
i
=
0
;
i
<
this
.
statusAlarmfun
.
length
;
i
++
)
{
if
(
la
[
i
].
innerHTML
==
"连接正常"
)
{
la
[
i
].
style
.
color
=
"green"
;
la
[
i
].
innerHTML
=
"连接正常"
}
if
(
la
[
i
].
innerHTML
==
"连接异常"
)
{
la
[
i
].
style
.
color
=
"#f00"
;
la
[
i
].
innerHTML
=
"告警"
la
[
i
].
innerHTML
=
"告警"
}
if
(
la
[
i
].
innerHTML
==
"正常"
)
{
la
[
i
].
style
.
color
=
"green"
;
}
if
(
la
[
i
].
innerHTML
==
"紧急"
)
{
la
[
i
].
style
.
color
=
"#f00"
;
}
if
(
la
[
i
].
innerHTML
==
"重要"
)
{
}
if
(
la
[
i
].
innerHTML
==
"重要"
)
{
la
[
i
].
style
.
color
=
"#f89850"
;
la
[
i
].
innerHTML
=
"重要告警"
}
if
(
la
[
i
].
innerHTML
==
"一般"
)
{
la
[
i
].
style
.
color
=
"#ead906"
;
la
[
i
].
innerHTML
=
"一般告警"
la
[
i
].
innerHTML
=
"一般告警"
}
}
},
toalarm
(
data
){
console
.
log
(
data
);
let
topath
=
''
if
(
data
==
'告警'
)
{
topath
=
'/alarm/device'
}
else
{
topath
=
'/alarm/cableTime'
}
toalarm
(
data
)
{
let
topath
=
''
if
(
data
===
'设备状态'
)
{
topath
=
'/alarm/device'
}
else
{
topath
=
'/alarm/cableTime'
}
this
.
$router
.
push
({
path
:
topath
,
query
:
{
siteId
:
this
.
form
.
baseInfo
.
id
},
});
},
},
mounted
()
{},
computed
:
{
statusAlarmfun
()
{
if
(
this
.
form
.
status
)
{
return
this
.
form
.
status
;
}
else
{
return
this
.
defaultList
}
},
},
watch
:
{
statusAlarmfun
:
{
immediate
:
true
,
handler
(
newV
)
{
if
(
newV
)
{
this
.
$nextTick
(
function
()
{
this
.
levelcolor2
();
});
siteId
:
this
.
form
.
baseInfo
.
id
}
}
,
}
,
}
,
}
;
}
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/dashboard/components/type5.vue
View file @
f39055f3
...
...
@@ -159,14 +159,14 @@
<div
class=
"item_data"
>
{{
form
.
baseInfo
.
sendPower
}}
</div>
</el-col>
</el-row>
<el-row
class=
"text"
:gutter=
"24"
>
<
!--
<
el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
漏缆接头数量
</div>
</el-col>
<el-col
:span=
"colspan"
>
<div
class=
"item_data"
>
{{
form
.
baseInfo
.
kmSign
}}
</div>
</el-col>
</el-row>
</el-row>
-->
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
跳线长度
</div>
...
...
src/views/dashboard/components/type6.vue
0 → 100644
View file @
f39055f3
This diff is collapsed.
Click to expand it.
src/views/dashboard/const.js
View file @
f39055f3
...
...
@@ -126,6 +126,30 @@ export function formInit5(data = {}) {
...
data
}
}
export
function
formInit6
(
data
=
{})
{
return
{
deviceStatus
:
null
,
baseInfo
:
{
antennaFeederLength
:
null
,
equipId
:
null
,
fsuId
:
null
,
feederLossMeters
:
null
,
inserterLength
:
null
,
jumperLength
:
null
,
feederCode
:
""
,
feederDescribe
:
""
,
feederLength
:
null
,
feederModel
:
""
,
reductRatio
:
null
,
sendPower
:
null
,
siteId
:
null
,
wayId
:
null
,
},
log
:
0
,
loss
:
0
,
...
data
}
}
let
formFuncData
=
{
1
:
formInit1
,
...
...
@@ -133,6 +157,7 @@ let formFuncData = {
3
:
formInit3
,
4
:
formInit4
,
5
:
formInit5
,
6
:
formInit6
,
};
export
function
formInit
(
type
)
{
...
...
src/views/login/index.vue
View file @
f39055f3
...
...
@@ -149,6 +149,7 @@ export default {
if
(
!
token
)
return
this
.
$store
.
commit
(
'user/SET_TOKEN'
,
token
)
this
.
$store
.
commit
(
'user/SET_USERID'
,
userId
)
this
.
$store
.
dispatch
(
'user/getInfo'
)
setToken
(
token
)
this
.
$router
.
push
({
path
:
'/'
})
},
...
...
src/views/setting/add/comp/line.vue
0 → 100644
View file @
f39055f3
<
template
>
<div>
<el-form
ref=
"leakyCableForm"
:model=
"leakyCableForm"
:rules=
"rules"
label-width=
"200px"
class=
"form"
>
<el-form-item
label=
"所在铁路线:"
prop=
"wayId"
>
<el-select
v-model=
"leakyCableForm.wayId"
placeholder=
"请选择铁路线"
@
change=
"changerailWay()"
>
<el-option
v-for=
"item in railWaySelect"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所在站点:"
prop=
"siteId"
>
<el-select
v-model=
"leakyCableForm.siteId"
placeholder=
"请选择站点"
@
change=
"changesite()"
>
<el-option
v-for=
"item in stationSelect2"
:key=
"item.id"
:label=
"item.siteName"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所在FSU:"
prop=
"fsuId"
>
<el-select
v-model=
"leakyCableForm.fsuId"
placeholder=
"请选择FSU"
@
change=
"changefsu()"
>
<el-option
v-for=
"item in fsuSelect2"
:key=
"item.id"
:label=
"item.equipName"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所在监测设备:"
prop=
"equipId"
>
<el-select
v-model=
"leakyCableForm.equipId"
placeholder=
"请选择监测设备"
>
<el-option
v-for=
"item in monitor2"
:key=
"item.id"
:label=
"item.equipName"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"天馈线编号:"
prop=
"feederCode"
>
<el-input
v-model=
"leakyCableForm.feederCode"
placeholder=
"请输入天馈线编号"
/>
</el-form-item>
<el-form-item
label=
"天馈线描述:"
prop=
"feederDescribe"
>
<el-input
v-model=
"leakyCableForm.feederDescribe"
placeholder=
"请输入天馈线描述"
/>
</el-form-item>
<el-form-item
label=
"天馈线型号:"
prop=
"feederModel"
>
<el-input
v-model=
"leakyCableForm.feederModel"
placeholder=
"请输入天馈线型号"
/>
</el-form-item>
<el-form-item
label=
"天馈线长度:"
prop=
"feederLength"
>
<el-input
v-model=
"leakyCableForm.feederLength"
placeholder=
"请输入天馈线长度"
/>
</el-form-item>
<el-form-item
label=
"天馈线百米损耗:"
prop=
"feederLossMeters"
>
<el-input
v-model=
"leakyCableForm.feederLossMeters"
placeholder=
"请输入天馈线百米损耗"
/>
</el-form-item>
<el-form-item
label=
"天馈线速度衰减系数:"
prop=
"reductRatio"
>
<el-input
v-model=
"leakyCableForm.reductRatio"
placeholder=
"请输入天馈线速度衰减系数"
/>
</el-form-item>
<el-form-item
label=
"天馈线测试信号发射功率:"
prop=
"sendPower"
>
<el-input
v-model=
"leakyCableForm.sendPower"
placeholder=
"请输入天馈线测试信号发射功率"
/>
</el-form-item>
<el-form-item
label=
"跳线长度:"
prop=
"jumperLength"
>
<el-input
v-model=
"leakyCableForm.jumperLength"
placeholder=
"请输入跳线长度"
/>
</el-form-item>
<el-form-item
label=
"插入器长度:"
prop=
"inserterLength"
>
<el-input
v-model=
"leakyCableForm.inserterLength"
placeholder=
"请输入插入器长度"
/>
</el-form-item>
</el-form>
<div
class=
"btn"
>
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
<el-button
type=
"primary"
@
click=
"submit"
>
确认提交
</el-button>
</div>
</div>
</
template
>
<
script
>
import
{
antennaFeederSave
,
selectForSite
,
selectForFsu
,
selectForEquip
,
railWaylist
,
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
export
default
{
props
:
[],
components
:
{},
data
()
{
return
{
railWaySelect
:
[],
stationSelect2
:
[],
fsuSelect2
:
[],
monitor2
:
[],
FSUrailway
:
[],
leakyCableForm
:
formInit
(),
params
:
{
current
:
1
,
size
:
10
,
},
rules
:
{
wayId
:
[{
required
:
true
,
message
:
"请选择铁路线"
,
trigger
:
"blur"
}],
siteId
:
[{
required
:
true
,
message
:
"请选择站点"
,
trigger
:
"blur"
}],
fsuId
:
[{
required
:
true
,
message
:
"请选择FSU"
,
trigger
:
"blur"
}],
equipId
:
[
{
required
:
true
,
message
:
"请选择监测设备"
,
trigger
:
"blur"
},
],
feederLength
:
[
{
required
:
true
,
message
:
"请输入天馈线长度"
,
trigger
:
"blur"
},
],
// feederLossMeters: [
// { required: true, message: "请输入天馈线百米损耗", trigger: "blur" },
// ],
inserterLength
:
[
{
required
:
true
,
message
:
"请输入插入器长度"
,
trigger
:
"blur"
},
],
jumperLength
:
[
{
required
:
true
,
message
:
"请输入跳线长度"
,
trigger
:
"blur"
},
],
feederCode
:
[
{
required
:
true
,
message
:
"请输入天馈线编号"
,
trigger
:
"blur"
},
],
feederDescribe
:
[
{
required
:
true
,
message
:
"请输入天馈线描述"
,
trigger
:
"blur"
},
],
feederModel
:
[
{
required
:
true
,
message
:
"请输入天馈线型号"
,
trigger
:
"blur"
,
},
],
reductRatio
:
[
{
required
:
true
,
message
:
"请输入天馈线速度衰减系数"
,
trigger
:
"blur"
,
},
],
sendPower
:
[
{
required
:
true
,
message
:
"请输入天馈线测试信号发射功率"
,
trigger
:
"blur"
,
},
],
},
};
},
computed
:
{},
methods
:
{
changerailWay
()
{
selectForSite
({
wayId
:
this
.
leakyCableForm
.
wayId
}).
then
((
res
)
=>
{
this
.
stationSelect2
=
res
;
});
},
changesite
()
{
selectForFsu
({
siteId
:
this
.
leakyCableForm
.
siteId
}).
then
((
res
)
=>
{
this
.
fsuSelect2
=
res
;
});
},
changefsu
()
{
selectForEquip
({
fsuId
:
this
.
leakyCableForm
.
fsuId
}).
then
((
res
)
=>
{
this
.
monitor2
=
res
;
});
},
reset
()
{
this
.
$refs
.
leakyCableForm
.
resetFields
();
},
submit
()
{
this
.
$refs
.
leakyCableForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
antennaFeederSave
(
this
.
leakyCableForm
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
successAlert
(
"添加成功"
);
}
else
{
warningAlert
(
"添加失败"
);
}
});
}
this
.
leakyCableForm
=
formInit
();
});
},
getAllWay
()
{
railWaylist
(
this
.
params
).
then
((
res
)
=>
{
this
.
railWaySelect
=
res
.
records
;
if
(
res
.
total
>
this
.
params
.
size
)
{
this
.
params
.
size
=
res
.
total
;
this
.
getAllWay
();
}
});
},
},
mounted
()
{
this
.
getAllWay
();
},
};
function
formInit
(
data
=
{})
{
return
{
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
equipId
:
""
,
feederLossMeters
:
""
,
inserterLength
:
0
,
jumperLength
:
0
,
feederCode
:
""
,
feederDescribe
:
""
,
feederLength
:
0
,
feederModel
:
""
,
parentId
:
0
,
reductRatio
:
0
,
sendPower
:
0
,
...
data
,
};
}
</
script
>
<
style
lang=
"scss"
scoped
>
.form
{
padding
:
20px
0
;
width
:
600px
;
margin
:
0
auto
;
}
.btn
{
padding
:
20px
0
50px
0
;
text-align
:
center
;
}
</
style
>
src/views/setting/add/index.vue
View file @
f39055f3
...
...
@@ -36,6 +36,7 @@
<el-tab-pane
label=
"天馈线"
name=
"5"
>
<div
v-if=
"activeName === '5'"
class=
"content"
>
<div
class=
"content-title"
>
添加天馈线
</div>
<antennaFeeder
/>
</div>
</el-tab-pane>
</el-tabs>
...
...
@@ -49,13 +50,15 @@ import monitorEquip from "./comp/monitorEquip.vue";
import
station
from
"./comp/station.vue"
;
import
FSU
from
"./comp/FSU.vue"
;
import
leakyCable
from
"./comp/leakyCable.vue"
;
import
antennaFeeder
from
"./comp/line.vue"
;
export
default
{
components
:
{
monitorEquip
,
station
,
railWay
,
FSU
,
leakyCable
leakyCable
,
antennaFeeder
},
data
()
{
return
{
...
...
src/views/setting/api.js
View file @
f39055f3
...
...
@@ -37,6 +37,11 @@ const path = {
leakyCablebatchDelete
:
'leakyCable/batchDeleteEquip'
,
leakyCableselectList
:
'leakyCable/selectList'
,
selectForCable
:
'leakyCable/selectForCable'
,
antennaFeederSave
:
'antennaFeeder/save'
,
antennaFeederDelete
:
'antennaFeeder/batchDeleteEquip'
,
antennaFeederDetail
:
'antennaFeeder/detail'
,
antennaFeederList
:
'antennaFeeder/selectFeederPage'
,
}
// 铁路线
export
function
railWaylist
()
{
...
...
@@ -64,8 +69,6 @@ export function railWayselectList() {
export
function
selectForSite
()
{
return
request
.
post
(
path
.
selectForSite
,
...
arguments
)
}
export
function
sitelist
()
{
return
request
.
post
(
path
.
sitelist
,
...
arguments
)
}
...
...
@@ -154,3 +157,16 @@ export function selectForCable() {
return
request
.
post
(
path
.
selectForCable
,
...
arguments
)
}
// 天馈线
export
function
antennaFeederSave
()
{
return
request
.
post
(
path
.
antennaFeederSave
,
...
arguments
)
}
export
function
antennaFeederDelete
()
{
return
request
.
post
(
path
.
antennaFeederDelete
,
...
arguments
)
}
export
function
antennaFeederDetail
()
{
return
request
.
post
(
path
.
antennaFeederDetail
,
...
arguments
)
}
export
function
antennaFeederList
()
{
return
request
.
post
(
path
.
antennaFeederList
,
...
arguments
)
}
\ No newline at end of file
src/views/setting/statistics/comp/lineTable.vue
0 → 100644
View file @
f39055f3
This diff is collapsed.
Click to expand it.
src/views/setting/statistics/index.vue
View file @
f39055f3
...
...
@@ -16,6 +16,7 @@
<fsuTable
v-if=
"activeName == '2'"
/>
<monitorTable
v-if=
"activeName == '3'"
/>
<leakyTable
v-if=
"activeName == '4'"
/>
<lineTable
v-if=
"activeName == '5'"
/>
</div>
</
template
>
...
...
@@ -25,6 +26,7 @@ import stationTable from "./comp/stationTable.vue";
import
fsuTable
from
"./comp/fsuTable.vue"
;
import
monitorTable
from
"./comp/monitorTable.vue"
;
import
leakyTable
from
"./comp/leakyTable.vue"
;
import
lineTable
from
"./comp/lineTable.vue"
;
export
default
{
components
:
{
...
...
@@ -32,7 +34,8 @@ export default {
stationTable
,
fsuTable
,
monitorTable
,
leakyTable
leakyTable
,
lineTable
},
data
()
{
return
{
...
...
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