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
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
<
template
>
<div
class=
"dashboard-container"
>
<!-- 首页 -->
<header
class=
"header_title"
>
天馈线(
{{
form
.
baseInfo
.
feederDescribe
}}
)
</header>
<el-row
:gutter=
"24"
>
<el-col
:span=
"12"
class=
"mb20"
>
<el-card
shadow=
"never"
>
<div
slot=
"header"
class=
"clearfix posa"
>
<span>
记录信息
</span>
</div>
<div>
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"7"
>
<div
class=
"item_name"
>
历史记录
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"item_data"
>
{{
form
.
log
.
all
}}
条
</div>
</el-col>
<el-col
:span=
"6"
>
<el-button
class=
"picbtn"
type=
"success"
size=
"mini"
>
趋势分析图形
</el-button>
</el-col>
</el-row>
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"7"
>
<div
class=
"item_name"
>
维修记录
</div>
</el-col>
<el-col
:span=
"7"
>
<div
class=
"item_data"
>
{{
form
.
log
.
monitor
}}
条
</div>
</el-col>
<el-col
:span=
"7"
/>
</el-row>
</div>
</el-card>
</el-col>
<el-col
:span=
"12"
class=
"mb20"
>
<el-card
shadow=
"never"
>
<div
slot=
"header"
class=
"clearfix posa"
>
<span>
基础信息
</span>
<el-button
v-if=
"flag == true"
style=
"float: right; padding: 3px 0; margin-right: 20px"
type=
"text"
class=
"savebtn"
@
click=
"editbtn()"
><svg-icon
icon-class=
"edit"
/>
编辑
</el-button>
<el-button
v-else
style=
"float: right; padding: 3px 0; margin-right: 20px"
type=
"text"
class=
"savebtn"
@
click=
"savebtn()"
><svg-icon
icon-class=
"save"
/>
保存
</el-button>
</div>
<div>
<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
.
feederCode
}}
</div>
</el-col>
</el-row>
<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
.
feederDescribe
}}
</div>
</el-col>
</el-row>
<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
.
railWayName
}}
</div>
</el-col>
</el-row>
<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
.
siteName
}}
</div>
</el-col>
</el-row>
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
所在FSU
</div>
</el-col>
<el-col
:span=
"colspan"
>
<div
class=
"item_data"
>
{{
form
.
baseInfo
.
fsuName
}}
</div>
</el-col>
</el-row>
<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
.
equipName
}}
</div>
</el-col>
</el-row>
<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
.
feederModel
}}
</div>
</el-col>
</el-row>
<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
.
feederLength
}}
</div>
</el-col>
</el-row>
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
天馈线百米损耗
</div>
</el-col>
<el-col
:span=
"colspan"
>
<div>
<el-input
v-model=
"form.baseInfo.feederLossMeters"
clearable
placeholder=
"请输入内容"
:disabled=
"flag"
/>
</div>
</el-col>
</el-row>
<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
.
reductRatio
}}
</div>
</el-col>
</el-row>
<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
.
sendPower
}}
</div>
</el-col>
</el-row>
<!--
<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
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
.
jumperLength
}}
</div>
</el-col>
</el-row>
<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
.
inserterLength
}}
</div>
</el-col>
</el-row>
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
开通状态
</div>
</el-col>
<el-col
:span=
"colspan"
>
<el-select
v-model=
"form.baseInfo.isOpen"
:disabled=
"flag"
style=
"width: 100%"
>
<el-option
v-for=
"item in isOpenSelect"
:key=
"item.key"
:label=
"item.label"
:value=
"item.key"
/>
</el-select>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
<el-col
:span=
"12"
class=
"mb20 specialCard"
>
<el-card
shadow=
"never"
>
<div
slot=
"header"
class=
"clearfix posa"
>
<span>
当前状态
</span>
</div>
<div>
<!-- === -->
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
天馈线状态
</div>
</el-col>
<el-col
:span=
"8"
>
<div
v-if=
"statusl.length != 0"
class=
"item_data levelData"
:style=
"acolor"
/>
</el-col>
<el-col
:span=
"6"
>
<el-button
v-if=
"
timeStatus.level == '紧急告警' || timeStatus.level == '重要告警' || timeStatus.level == '一般告警'
"
class=
"alarmbtn"
type=
"primary"
size=
"mini"
@
click=
"toalarm()"
>
处理告警
</el-button>
</el-col>
</el-row>
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
最后更新时间
</div>
</el-col>
<el-col
:span=
"colspan"
>
<div
v-if=
"statusl.length != 0"
class=
"item_data"
>
{{
statusl
[
1
].
value
}}
</div>
</el-col>
</el-row>
<el-row
v-for=
"(item, i) in long"
:key=
"i"
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
距(
{{
form
.
baseInfo
.
leakyCableDescribe
}}
方向)
{{
item
.
value
}}
米
</div>
</el-col>
<el-col
:span=
"colspan"
>
<div
class=
"item_data"
>
驻波比:
{{
zhubobi
[
i
].
value
}}
</div>
</el-col>
</el-row>
<!-- ==== -->
<el-row
class=
"text"
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
百米损耗
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"item_data"
>
{{
form
.
baseInfo
.
hundredMetersLoss
}}
</div>
</el-col>
<el-col
:span=
"6"
>
<el-button
class=
"picbtn"
type=
"success"
size=
"mini"
>
生成图形
</el-button>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
</el-row>
</div>
</
template
>
<
script
>
import
{
DetailMixins
}
from
'./mixins'
import
{
leakyCableOpen
}
from
'../api'
export
default
{
mixins
:
[
DetailMixins
],
data
()
{
return
{
colspan
:
14
,
acolor
:
{
color
:
''
},
leakyList
:
[],
timeStatus
:
{},
zhubobi
:
[],
long
:
[],
statusl
:
[]
}
},
computed
:
{
statusAlarmfun
()
{
return
this
.
form
.
status
||
[]
}
},
watch
:
{
statusAlarmfun
:
{
immediate
:
true
,
handler
(
newV
)
{
if
(
newV
)
{
this
.
trans
()
this
.
$nextTick
(
function
()
{
this
.
leakylevelcolor
()
})
}
}
},
deep
:
true
},
methods
:
{
savebtn
()
{
this
.
flag
=
true
const
params
=
{
id
:
this
.
form
.
baseInfo
.
id
,
isOpen
:
this
.
form
.
baseInfo
.
isOpen
,
hundredMetersLoss
:
this
.
form
.
baseInfo
.
hundredMetersLoss
}
leakyCableOpen
(
params
).
then
((
res
)
=>
{
this
.
$message
.
success
(
'修改成功'
)
})
},
leakylevelcolor
()
{
if
(
this
.
timeStatus
.
level
===
'正常'
)
{
this
.
acolor
.
color
=
'green'
}
else
if
(
this
.
timeStatus
.
level
===
'紧急'
)
{
this
.
acolor
.
color
=
'#f00'
this
.
timeStatus
.
level
=
'紧急告警'
}
else
if
(
this
.
timeStatus
.
level
===
'重要'
)
{
this
.
acolor
.
color
=
'#f89850'
this
.
timeStatus
.
level
=
'重要告警'
}
else
if
(
this
.
timeStatus
.
level
===
'一般'
)
{
this
.
acolor
.
color
=
'#ead906'
this
.
timeStatus
.
level
=
'一般告警'
}
},
toalarm
()
{
this
.
$router
.
push
({
path
:
'/alarm/cableTime'
,
query
:
{
alarmTargetName
:
this
.
form
.
baseInfo
.
leakyCableDescribe
}
})
},
trans
()
{
const
arr1
=
[];
const
arr2
=
[];
const
arr3
=
[]
if
(
this
.
statusAlarmfun
.
length
!==
0
)
{
for
(
let
i
=
0
;
i
<
this
.
statusAlarmfun
.
length
;
i
++
)
{
if
(
i
%
2
!==
0
)
{
if
(
this
.
statusAlarmfun
[
i
].
name
===
'最后更新时间'
)
{
arr1
.
push
(
this
.
statusAlarmfun
[
i
])
}
else
{
arr2
.
push
(
this
.
statusAlarmfun
[
i
])
}
}
else
{
if
(
this
.
statusAlarmfun
[
i
].
name
===
'天馈线状态'
)
{
arr1
.
push
(
this
.
statusAlarmfun
[
i
])
}
else
{
arr3
.
push
(
this
.
statusAlarmfun
[
i
])
}
}
}
this
.
statusl
=
arr1
this
.
zhubobi
=
arr2
this
.
long
=
arr3
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-card
{
border
:
1px
solid
#e3e3e3
;
border-radius
:
8px
;
// min-height: 243px;
.el-card__header
{
font-size
:
18px
;
color
:
#333333
;
font-weight
:
500
;
text-align
:
center
;
background
:
rgba
(
226
,
235
,
255
,
0
.39
);
opacity
:
1
;
}
.el-card__body
{
padding
:
0px
;
}
}
.specialCard
{
position
:
absolute
;
top
:
205px
;
}
.posa
{
position
:
relative
;
}
.savebtn
{
position
:
absolute
;
right
:
2%
;
}
.text
{
padding
:
10px
20px
10px
20px
;
border-bottom
:
1px
solid
#e3e3e3
;
&
:last-child
{
border-bottom
:
none
;
}
.item_name
,
.item_data
{
height
:
16px
;
line-height
:
16px
;
margin-top
:
12px
;
margin-bottom
:
12px
;
}
.item_name
{
width
:
262px
;
height
:
16px
;
line-height
:
16px
;
color
:
#7e7e7e
;
margin-top
:
12px
;
margin-bottom
:
12px
;
}
.el-card
:last-child
.text
{
border-bottom
:
none
!
important
;
}
}
</
style
>
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
<
template
>
<div>
<div
class=
"leakage-top"
>
<div
style=
"color: #666666"
></div>
<div
class=
"operate-btn"
>
<delids
:multipleSelection2=
"multipleSelection"
@
del=
"del()"
>
删除
</delids
>
<el-button
type=
"primary"
@
click=
"refresh"
>
刷新
</el-button>
<el-button
type=
"primary"
@
click=
"block = !block"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"exportData"
>
导出
</el-button>
</div>
</div>
<el-form
class=
"search-div"
v-if=
"block"
:model=
"form"
:inline=
"true"
size=
"mini"
>
<el-form-item
label=
"天馈线描述:"
>
<el-input
placeholder=
"请输入天馈线描述"
v-model=
"form.feederDescribe"
clearable
>
</el-input>
</el-form-item>
<el-form-item
label=
"天馈线编号:"
>
<el-input
placeholder=
"请输入天馈线编号"
v-model=
"form.feederCode"
clearable
>
</el-input>
</el-form-item>
<el-form-item
label=
"天馈线型号:"
>
<el-select
placeholder=
"请选择天馈线型号"
v-model=
"form.feederModel"
clearable
>
<el-option
v-for=
"item in equipTypeList"
:key=
"item.feederModel"
:label=
"item.feederModel"
:value=
"item.feederModel"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所在铁路线:"
>
<el-select
placeholder=
"请选择所在铁路线"
v-model=
"form.wayId"
clearable
@
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=
"所在站点:"
>
<el-select
placeholder=
"请选择所在站点"
v-model=
"form.siteId"
@
change=
"changesite()"
clearable
>
<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:"
>
<el-select
placeholder=
"请选择所在FSU"
v-model=
"form.fsuId"
@
change=
"changefsu()"
clearable
>
<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=
"所在监测设备:"
>
<el-select
placeholder=
"请选择所在监测设备"
v-model=
"form.monitor"
clearable
>
<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>
<el-button
type=
"success"
@
click=
"searchQuery()"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-table
ref=
"multipleTable"
class=
"statistics-table"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
:row-class-name=
"tableRowClassName"
:row-style=
"
{ height: '50px' }"
:header-cell-style="{
background: '#eaf1fe',
color: '#000',
fontWeight: 700,
height: '50px',
}"
@selection-change="handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
prop=
"feederDescribe"
label=
"天馈线描述"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
prop=
"feederCode"
label=
"天馈线编号"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
prop=
"feederModel"
label=
"天馈线型号"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
prop=
"railWayName"
label=
"所在铁路线"
align=
"center"
/>
<el-table-column
prop=
"siteName"
label=
"所在站点"
align=
"center"
/>
<el-table-column
prop=
"fsuName"
label=
"所在FSU"
align=
"center"
/>
<el-table-column
prop=
"equipName"
label=
"所在监测设备"
align=
"center"
/>
<el-table-column
prop=
"action"
label=
"详细信息"
show-overflow-tooltip
align=
"center"
>
<template
slot-scope=
"
{ row }">
<el-link
type=
"primary"
:underline=
"false"
@
click=
"handleView(row)"
>
查看
</el-link
>
</
template
>
</el-table-column>
</el-table>
<Pagination
:limit=
"form.size"
:page=
"form.current"
:total=
"total"
class=
"pagination"
@
pagination=
"handlePageChange"
/>
</div>
</template>
<
script
>
import
{
antennaFeederList
,
antennaFeederDelete
,
antennaFeederDetail
,
railWaylist
,
selectForSite
,
selectForFsu
,
selectForEquip
,
}
from
"../../api"
;
import
{
cableTypeEnum
}
from
"../../../maintain/api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
download
from
"@/utils/download"
;
import
{
exportFeeder
}
from
"@/api/export"
;
export
default
{
props
:
[],
components
:
{},
data
()
{
return
{
railWaySelect
:
[],
stationSelect2
:
[],
fsuSelect2
:
[],
equipTypeList
:
[],
monitor2
:
[],
form
:
formInit
(),
tableData
:
[],
params
:
{
current
:
1
,
size
:
10
,
},
total
:
10
,
multipleSelection
:
[],
ids
:
[],
block
:
0
,
istrue
:
0
,
exids
:
[],
};
},
computed
:
{},
methods
:
{
changerailWay
()
{
selectForSite
({
wayId
:
this
.
form
.
wayId
}).
then
((
res
)
=>
{
this
.
stationSelect2
=
res
;
});
},
changesite
()
{
selectForFsu
({
siteId
:
this
.
form
.
siteId
}).
then
((
res
)
=>
{
this
.
fsuSelect2
=
res
;
});
},
changefsu
()
{
selectForEquip
({
fsuId
:
this
.
form
.
fsuId
}).
then
((
res
)
=>
{
this
.
monitor2
=
res
;
});
},
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
""
:
"single-row"
;
},
changeType
(
item
)
{
this
.
activeName
=
item
.
key
;
},
del
()
{
let
ids
=
this
.
ids
;
antennaFeederDelete
({
ids
}).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
successAlert
(
"删除成功"
);
this
.
getTableData
();
}
else
{
warningAlert
(
"删除失败"
);
}
});
},
refresh
()
{
this
.
reset
();
},
searchQuery
()
{
this
.
istrue
=
1
;
this
.
getTableData
();
},
reset
()
{
this
.
form
=
formInit
();
this
.
searchQuery
();
},
exportData
()
{
if
(
this
.
exids
.
length
==
0
)
{
this
.
$message
.
warning
(
"暂无数据"
);
return
false
;
}
else
{
exportFeeder
({
ids
:
this
.
exids
}).
then
((
res
)
=>
{
download
(
res
,
"vnd.ms-excel"
,
`天馈线表.xls`
);
});
}
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
this
.
ids
=
this
.
multipleSelection
.
map
((
i
)
=>
i
.
id
);
},
handleView
(
row
)
{
this
.
$router
.
push
({
path
:
"/detail"
,
query
:
{
id
:
row
.
id
,
type
:
5
,
},
});
},
handlePageChange
(
pageData
)
{
this
.
form
.
size
=
pageData
.
size
;
this
.
form
.
current
=
pageData
.
page
;
this
.
getTableData
();
},
getTableData
()
{
antennaFeederList
(
this
.
form
).
then
((
res
)
=>
{
let
list
=
res
.
records
||
[];
this
.
tableData
=
list
;
this
.
total
=
res
.
total
;
this
.
exids
=
list
.
map
((
i
)
=>
i
.
id
);
if
(
this
.
istrue
==
1
)
{
if
(
this
.
tableData
.
length
)
{
successAlert
(
"操作成功"
);
}
else
{
warningAlert
(
"查询结果为空"
);
}
this
.
istrue
=
0
;
}
});
},
getAllWay
()
{
railWaylist
(
this
.
params
).
then
((
res
)
=>
{
this
.
railWaySelect
=
res
.
records
;
if
(
res
.
total
>
this
.
params
.
size
)
{
this
.
params
.
size
=
res
.
total
;
this
.
getAllWay
();
}
});
},
getLeakyCablel
()
{
cableTypeEnum
().
then
((
res
)
=>
{
let
list
=
res
||
[];
this
.
equipTypeList
=
list
;
});
},
},
created
()
{
var
that
=
this
;
document
.
onkeydown
=
function
(
e
)
{
var
key
=
window
.
event
.
keyCode
;
if
(
key
==
13
)
{
that
.
searchQuery
();
}
};
},
mounted
()
{
this
.
getTableData
();
this
.
getLeakyCablel
();
this
.
getAllWay
();
},
};
function
formInit
(
data
=
{})
{
return
{
wayId
:
""
,
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
monitor
:
""
,
feederCode
:
""
,
feederDescribe
:
""
,
siteName
:
""
,
feederModel
:
""
,
current
:
1
,
size
:
10
,
...
data
,
};
}
</
script
>
<
style
lang=
"scss"
scoped
>
.leakage-cable
{
.leakage-top
{
margin-bottom
:
20px
;
display
:
flex
;
align-items
:
flex-end
;
justify-content
:
space-between
;
}
&
:
:
v-deep
.
cell
{
color
:
#333333
;
}
&
:
:
v-deep
.
stripe
{
background-color
:
#eaf1fe
;
}
&
:
:
v-deep
.
red
{
background-color
:
#f00
;
}
&
:
:
v-deep
.
green
{
background-color
:
green
;
}
.page
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin
:
20px
0
;
.pageNum
{
margin
:
0
20px
;
}
}
}
</
style
>
<
style
lang=
"scss"
>
.statistics-table
{
.single-row
{
background
:
#f1f6ff
;
}
td
{
padding
:
5px
!
important
;
}
}
</
style
>
\ No newline at end of file
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