Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
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
8b8ba6b7
Commit
8b8ba6b7
authored
Mar 02, 2022
by
yanzhongrong
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into dev_yzr
parents
39e6c236
fafe7550
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1374 additions
and
297 deletions
+1374
-297
index.js
src/router/index.js
+23
-3
index.js
src/store/index.js
+3
-1
leaky.js
src/store/modules/leaky.js
+36
-0
common.scss
src/styles/common.scss
+6
-0
index.vue
src/views/dashboard/index.vue
+1
-0
FSU.vue
src/views/setting/add/comp/FSU.vue
+50
-86
leakyCable.vue
src/views/setting/add/comp/leakyCable.vue
+7
-12
monitorEquip.vue
src/views/setting/add/comp/monitorEquip.vue
+57
-82
railWay.vue
src/views/setting/add/comp/railWay.vue
+5
-1
api.js
src/views/setting/api.js
+12
-1
fsuTable.vue
src/views/setting/statistics/comp/fsuTable.vue
+115
-2
leakyTable.vue
src/views/setting/statistics/comp/leakyTable.vue
+201
-30
monitorTable.vue
src/views/setting/statistics/comp/monitorTable.vue
+143
-2
railWayTable.vue
src/views/setting/statistics/comp/railWayTable.vue
+99
-73
stationTable.vue
src/views/setting/statistics/comp/stationTable.vue
+73
-4
detail.vue
src/views/setting/statistics/detail.vue
+268
-0
sitedetail.vue
src/views/setting/statistics/sitedetail.vue
+275
-0
No files found.
src/router/index.js
View file @
8b8ba6b7
...
...
@@ -92,10 +92,30 @@ export const constantRoutes = [
path
:
'statistics'
,
name
:
'settingAtatistics'
,
component
:
()
=>
import
(
'@/views/setting/statistics/index'
),
meta
:
{
title
:
'配置信息统计'
}
}
meta
:
{
title
:
'配置信息统计'
},
children
:
[
]
},
{
path
:
"/detail"
,
name
:
"detail"
,
component
:
()
=>
import
(
'@/views/setting/statistics/detail'
),
meta
:
{
title
:
"详情"
},
hidden
:
true
,
},
{
path
:
"/sitedetail"
,
name
:
"sitedetail"
,
component
:
()
=>
import
(
'@/views/setting/statistics/sitedetail'
),
meta
:
{
title
:
"站点详情"
},
hidden
:
true
,
},
]
},
{
path
:
'/monitor'
,
component
:
Layout
,
...
...
@@ -122,7 +142,7 @@ export const constantRoutes = [
component
:
Layout
,
redirect
:
'/maintain/oneself'
,
name
:
'Maintain'
,
meta
:
{
title
:
'维护管理'
,
icon
:
'maintain'
},
meta
:
{
title
:
'维护管理'
,
icon
:
'maintain'
},
children
:
[
{
path
:
'oneself'
,
...
...
src/store/index.js
View file @
8b8ba6b7
...
...
@@ -9,6 +9,7 @@ import railWay from './modules/railWay'
import
station
from
'./modules/station'
import
FSU
from
'./modules/FSU'
import
monitor
from
'./modules/monitor'
import
leaky
from
'./modules/leaky'
Vue
.
use
(
Vuex
)
...
...
@@ -21,7 +22,8 @@ const store = new Vuex.Store({
railWay
,
station
,
FSU
,
monitor
monitor
,
leaky
},
getters
})
...
...
src/store/modules/leaky.js
0 → 100644
View file @
8b8ba6b7
import
{
leakyCablelist
}
from
"../../views/setting/api"
const
state
=
{
list
:
[],
pageNum
:
1
,
pageSize
:
10
,
}
const
mutations
=
{
changeList
(
state
,
arr
)
{
state
.
list
=
arr
},
}
const
actions
=
{
asyncList
(
context
)
{
leakyCablelist
(
{
current
:
context
.
state
.
pageNum
,
size
:
context
.
state
.
pageSize
,
}).
then
(
res
=>
{
let
arr
=
res
.
records
?
res
.
records
:[]
context
.
commit
(
"changeList"
,
arr
)
})
}
}
const
getters
=
{
list
(
state
)
{
return
state
.
list
}
}
export
default
{
state
,
mutations
,
actions
,
getters
,
namespaced
:
true
}
\ No newline at end of file
src/styles/common.scss
View file @
8b8ba6b7
...
...
@@ -51,4 +51,10 @@
}
.form
.el-form-item
.el-select
{
width
:
100%
;
}
.search-input-box
{
display
:
inline-block
;
margin-right
:
20px
;
margin-bottom
:
20px
;
}
\ No newline at end of file
src/views/dashboard/index.vue
View file @
8b8ba6b7
...
...
@@ -51,6 +51,7 @@ export default {
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/views/setting/add/comp/FSU.vue
View file @
8b8ba6b7
...
...
@@ -54,9 +54,9 @@
>
<el-option
v-for=
"item in backupModeSelect"
:key=
"item.
key
"
:label=
"item.
label
"
:value=
"item.
key
"
:key=
"item.
id
"
:label=
"item.
dictValue
"
:value=
"item.
dictValue
"
></el-option
></el-select>
</el-form-item>
...
...
@@ -64,9 +64,9 @@
<el-select
v-model=
"FSUForm.connectMode"
placeholder=
"请选择通信方式"
>
<el-option
v-for=
"item in connectModeSelect"
:key=
"item.
key
"
:label=
"item.
label
"
:value=
"item.
key
"
:key=
"item.
id
"
:label=
"item.
dictValue
"
:value=
"item.
dictValue
"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -74,9 +74,9 @@
<el-select
v-model=
"FSUForm.equipType"
placeholder=
"请选择设备类型"
>
<el-option
v-for=
"item in equipTypeSelect"
:key=
"item.
key
"
:label=
"item.
label
"
:value=
"item.
key
"
:key=
"item.
id
"
:label=
"item.
dictValue
"
:value=
"item.
dictValue
"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -87,9 +87,9 @@
>
<el-option
v-for=
"item in equipSubTypeSelect"
:key=
"item.
key
"
:label=
"item.
label
"
:value=
"item.
key
"
:key=
"item.
id
"
:label=
"item.
dictValue
"
:value=
"item.
dictValue
"
></el-option>
</el-select>
</el-form-item>
...
...
@@ -119,7 +119,7 @@
</div>
</
template
>
<
script
>
import
{
fsusave
,
selectForSite
}
from
"../../api"
;
import
{
fsusave
,
selectF
suItem
,
selectF
orSite
}
from
"../../api"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
export
default
{
...
...
@@ -127,82 +127,36 @@ export default {
components
:
{},
data
()
{
return
{
asd
:
{
"01"
:
[{
ss
:
"dasda"
,
fsa
:
"dasd"
}],
"02"
:
[{
ss2
:
"dasda"
,
fsasdasd
:
"dasd"
}],
},
type
:
1
,
railWaySelect
:
[],
stationSelect
:
[],
stationSelect2
:
[],
backupModeSelect
:
[
{
key
:
0
,
label
:
"整机备份"
,
},
{
key
:
1
,
label
:
"整机备份2"
,
},
{
key
:
2
,
label
:
"整机备份3"
,
},
],
connectModeSelect
:
[
{
key
:
0
,
label
:
"以太网"
,
},
{
key
:
1
,
label
:
"以太网2"
,
},
{
key
:
2
,
label
:
"以太网3"
,
},
],
equipTypeSelect
:
[
{
key
:
0
,
label
:
"漏缆监控单元"
,
},
{
key
:
1
,
label
:
"漏缆监控单元2"
,
},
{
key
:
2
,
label
:
"漏缆监控单元3"
,
},
],
equipSubTypeSelect
:
[
{
key
:
0
,
label
:
"故障定位设备"
,
},
{
key
:
1
,
label
:
"故障定位设备2"
,
},
{
key
:
2
,
label
:
"故障定位设备3"
,
},
],
backupModeSelect
:
[],
connectModeSelect
:
[],
equipTypeSelect
:
[],
equipSubTypeSelect
:
[],
FSUForm
:
{
backupMode
:
2
,
connectMode
:
1
,
equipFactory
:
"打发点"
,
equipName
:
"阿达21"
,
equipSerialNumber
:
"4651"
,
equipSubType
:
2
,
equipType
:
0
,
fsuCode
:
"212"
,
fsuPort
:
10
,
ip
:
"151511"
,
kmSign
:
"46511"
,
parentId
:
17
,
siteId
:
11
,
siteName
:
"asd"
,
softVersion
:
"8451"
,
wayId
:
17
backupMode
:
''
,
connectMode
:
''
,
equipFactory
:
"设备厂商1"
,
equipName
:
"设备名称1"
,
equipSerialNumber
:
"4651"
,
equipSubType
:
''
,
equipType
:
''
,
fsuCode
:
"212"
,
fsuPort
:
10
,
ip
:
"192.168.2.1"
,
kmSign
:
"46511"
,
parentId
:
''
,
siteId
:
''
,
wayId
:
''
,
siteName
:
"站点1"
,
softVersion
:
"6.0.2"
,
},
rules
:
{
wayId
:
[{
required
:
true
,
message
:
"请选择铁路线"
,
trigger
:
"blur"
}],
...
...
@@ -312,12 +266,22 @@ wayId: 17
});
},
},
created
()
{
selectFsuItem
().
then
((
res
)
=>
{
this
.
backupModeSelect
=
res
[
"01"
];
this
.
connectModeSelect
=
res
[
"02"
];
this
.
equipTypeSelect
=
res
[
"03"
];
this
.
equipSubTypeSelect
=
res
[
"04"
];
});
},
mounted
()
{
this
.
asyncrailWayList
();
this
.
asyncstationList
();
this
.
railWaySelect
=
this
.
railWaylist
;
this
.
stationSelect
=
this
.
stationlist
;
console
.
log
(
this
.
asd
);
},
};
</
script
>
...
...
src/views/setting/add/comp/leakyCable.vue
View file @
8b8ba6b7
...
...
@@ -128,12 +128,9 @@ export default {
components
:
{},
data
()
{
return
{
railWaySelect
:
[],
stationSelect
:
[],
stationSelect2
:
[],
fsuSelect
:
[],
railWaySelect
:
[],
stationSelect2
:
[],
fsuSelect2
:
[],
monitorSelect
:
[],
monitor2
:
[],
FSUrailway
:
[
{
...
...
@@ -233,17 +230,17 @@ export default {
},
changesite
()
{
this
.
fsuSelect2
=
this
.
fsu
Selec
t
.
filter
(
this
.
fsuSelect2
=
this
.
fsu
lis
t
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
leakyCableForm
.
siteId
);
},
changefsu
()
{
console
.
log
(
this
.
leakyCableForm
.
fsuId
);
this
.
monitor2
=
this
.
monitor
Selec
t
.
filter
(
this
.
monitor2
=
this
.
monitor
Equiplis
t
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
leakyCableForm
.
fsuId
);
console
.
log
(
this
.
monitorSelect
);
},
reset
()
{
this
.
$refs
.
leakyCableForm
.
resetFields
();
...
...
@@ -287,9 +284,7 @@ export default {
this
.
asyncmonitorList
();
this
.
railWaySelect
=
this
.
railWaylist
;
this
.
stationSelect
=
this
.
stationlist
;
this
.
fsuSelect
=
this
.
fsulist
;
this
.
monitorSelect
=
this
.
monitorEquiplist
;
},
};
</
script
>
...
...
src/views/setting/add/comp/monitorEquip.vue
View file @
8b8ba6b7
...
...
@@ -7,7 +7,7 @@
label-width=
"200px"
class=
"form"
>
<el-form-item
label=
"所在铁路线:"
prop=
"wayId"
>
<el-form-item
label=
"所在铁路线:"
prop=
"wayId"
>
<el-select
v-model=
"monitorForm.wayId"
placeholder=
"请选择铁路线"
...
...
@@ -22,7 +22,11 @@
</el-select>
</el-form-item>
<el-form-item
label=
"所在站点:"
prop=
"siteId"
>
<el-select
v-model=
"monitorForm.siteId"
placeholder=
"请选择站点"
@
change=
"changesite()"
>
<el-select
v-model=
"monitorForm.siteId"
placeholder=
"请选择站点"
@
change=
"changesite()"
>
<el-option
v-for=
"item in stationSelect2"
:key=
"item.id"
...
...
@@ -31,7 +35,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所在FSU:"
prop=
"fsuId"
>
<el-form-item
label=
"所在FSU:"
prop=
"fsuId"
>
<el-select
v-model=
"monitorForm.fsuId"
placeholder=
"请选择FSU"
>
<el-option
v-for=
"item in fsuSelect2"
...
...
@@ -47,8 +51,11 @@
placeholder=
"请输入设备身份编号"
/>
</el-form-item>
<el-form-item
label=
"设备名称:"
prop=
"equipName"
>
<el-input
v-model=
"monitorForm.equipName"
placeholder=
"请输入设备名称"
/>
<el-form-item
label=
"设备名称:"
prop=
"equipName"
>
<el-input
v-model=
"monitorForm.equipName"
placeholder=
"请输入设备名称"
/>
</el-form-item>
<el-form-item
label=
"设备厂商:"
prop=
"equipFactory"
>
<el-input
...
...
@@ -56,40 +63,34 @@
placeholder=
"请输入设备厂商"
/>
</el-form-item>
<el-form-item
label=
"设备类别:"
prop=
"equipType"
>
<el-select
v-model=
"monitorForm.equipType"
placeholder=
"请输入设备类别"
>
<el-form-item
label=
"设备类别:"
prop=
"equipType"
>
<el-select
v-model=
"monitorForm.equipType"
placeholder=
"请输入设备类别"
>
<el-option
v-for=
"item in equipTypeSelect"
:key=
"item.
key
"
:label=
"item.
label
"
:value=
"item.
key
"
:key=
"item.
id
"
:label=
"item.
dictValue
"
:value=
"item.
dictValue
"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"设备型号:"
prop=
"equipMode"
>
<el-select
v-model=
"monitorForm.equipMode"
placeholder=
"请输入设备型号"
>
<el-select
v-model=
"monitorForm.equipMode"
placeholder=
"请输入设备型号"
>
<el-option
v-for=
"item in equipModeSelect"
:key=
"item.
key
"
:label=
"item.
label
"
:value=
"item.
key
"
:key=
"item.
id
"
:label=
"item.
dictValue
"
:value=
"item.
dictValue
"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"设备生产序列号:"
prop=
"equipSerialNumber"
>
<el-input
v-model=
"monitorForm.equipSerialNumber"
placeholder=
"请输入设备生产序列号"
/>
</el-form-item>
<el-form-item
label=
"设备所在铁路公里标:"
prop=
"kmSign"
>
<el-form-item
label=
"设备所在铁路公里标:"
prop=
"kmSign"
>
<el-input
v-model=
"monitorForm.kmSign"
placeholder=
"请输入设备所在铁路公里标"
...
...
@@ -101,7 +102,7 @@
placeholder=
"请输入安装日期"
/>
</el-form-item>
<el-form-item
label=
" 维护日期:"
prop=
"repairDate"
>
<el-input
v-model=
"monitorForm.repairDate"
...
...
@@ -116,15 +117,15 @@
</div>
</
template
>
<
script
>
import
{
monitorEquipsave
}
from
"../../api"
;
import
{
monitorEquipsave
,
selectMonitorItem
}
from
"../../api"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
export
default
{
props
:
[],
components
:
{},
data
()
{
return
{
railWaySelect
:
[],
railWaySelect
:
[],
stationSelect
:
[],
stationSelect2
:
[],
fsuSelect
:
[],
...
...
@@ -139,48 +140,22 @@ export default {
label
:
"南昆客运专线"
,
},
],
equipTypeSelect
:
[
{
key
:
0
,
label
:
"漏缆监控单元"
,
},
{
key
:
1
,
label
:
"漏缆监控单元2"
,
},
{
key
:
2
,
label
:
"漏缆监控单元3"
,
},
],
equipModeSelect
:
[
{
key
:
0
,
label
:
"型号"
,
},
{
key
:
1
,
label
:
"型号2"
,
},
{
key
:
2
,
label
:
"型号3"
,
},
],
equipTypeSelect
:
[],
equipModeSelect
:
[],
monitorForm
:
{
wayId
:
""
,
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
wayId
:
""
,
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
equipCode
:
""
,
equipFactory
:
""
,
equipMode
:
0
,
equipMode
:
''
,
equipName
:
""
,
equipSerialNumber
:
""
,
equipType
:
0
,
equipType
:
''
,
installDate
:
"2022-02-24 12:24:84"
,
kmSign
:
""
,
repairDate
:
"2022-02-24 12:24:84"
,
},
rules
:
{
...
...
@@ -235,18 +210,14 @@ export default {
asyncfsuList
:
"FSU/asyncList"
,
}),
changerailWay
()
{
this
.
stationSelect2
=
this
.
stationlist
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
monitorForm
.
wayId
);
},
changesite
()
{
this
.
fsuSelect2
=
this
.
fsuSelect
.
filter
(
changesite
()
{
this
.
fsuSelect2
=
this
.
fsulist
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
monitorForm
.
siteId
);
},
reset
()
{
this
.
$refs
.
monitorForm
.
resetFields
();
...
...
@@ -254,43 +225,47 @@ export default {
submit
()
{
this
.
$refs
.
monitorForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
monitorForm
.
parentId
=
this
.
monitorForm
.
fsuId
this
.
monitorForm
.
parentId
=
this
.
monitorForm
.
fsuId
;
monitorEquipsave
(
this
.
monitorForm
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
successAlert
(
"添加成功"
)
console
.
log
(
res
);
}
else
{
warning
(
"添加失败"
)
if
(
res
.
code
==
200
)
{
successAlert
(
"添加成功"
);
}
else
{
warning
(
"添加失败"
);
}
});
}
this
.
monitorForm
=
{
wayId
:
""
,
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
wayId
:
""
,
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
equipCode
:
""
,
equipFactory
:
""
,
equipMode
:
0
,
equipMode
:
''
,
equipName
:
""
,
equipSerialNumber
:
""
,
equipType
:
0
,
equipType
:
''
,
installDate
:
"2022-02-22 12:24:84"
,
kmSign
:
""
,
repairDate
:
"2022-02-24 12:24:84"
,
};
});
},
},
created
()
{
selectMonitorItem
().
then
((
res
)
=>
{
this
.
equipTypeSelect
=
res
[
"03"
]
this
.
equipModeSelect
=
res
[
"09"
]
});
},
mounted
()
{
this
.
asyncrailWayList
();
this
.
asyncrailWayList
();
this
.
asyncstationList
();
this
.
asyncfsuList
();
this
.
railWaySelect
=
this
.
railWaylist
;
this
.
stationSelect
=
this
.
stationlist
;
this
.
fsuSelect
=
this
.
fsulist
;
},
};
</
script
>
...
...
src/views/setting/add/comp/railWay.vue
View file @
8b8ba6b7
...
...
@@ -38,6 +38,7 @@
<
script
>
import
{
railWaysave
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
export
default
{
props
:
[],
components
:
{},
...
...
@@ -72,6 +73,9 @@ export default {
},
computed
:
{},
methods
:
{
...
mapActions
({
asyncrailWayList
:
"railWay/asyncList"
,
}),
reset
()
{
this
.
$refs
.
form
.
resetFields
();
},
...
...
@@ -81,7 +85,7 @@ export default {
railWaysave
(
this
.
formData
).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
successAlert
(
"添加成功"
)
console
.
log
(
res
);
this
.
asyncrailWayList
()
}
else
{
warning
(
"添加失败"
)
}
...
...
src/views/setting/api.js
View file @
8b8ba6b7
...
...
@@ -19,13 +19,16 @@ const path = {
fsusave
:
'fsu/save'
,
fsubatchDelete
:
'fsu/batchDeleteFsu'
,
fsuselectList
:
'fsu/selectList'
,
selectFsuItem
:
'dict/selectFsuItem'
,
//fsu数据字典
monitorEquipList
:
'monitorEquip/selectPage'
,
monitorEquipdetail
:
'monitorEquip/detail'
,
monitorEquipsave
:
'monitorEquip/save'
,
monitorEquipbatchDelete
:
'monitorEquip/batchDeleteEquip'
,
monitorEquipselectList
:
'monitorEquip/selectList'
,
selectMonitorItem
:
'dict/selectMonitorItem'
,
//监测设备字典
leakyCableList
:
'leakyCable/selectPage'
,
leakyCabledetail
:
'leakyCable/detail'
,
leakyCablesave
:
'leakyCable/save'
,
...
...
@@ -75,6 +78,10 @@ export function sitelist() {
return
request
.
post
(
path
.
siteselectList
,
...
arguments
)
}
//fsu
export
function
selectFsuItem
()
{
//fsu字典
return
request
.
post
(
path
.
selectFsuItem
,
...
arguments
)
}
export
function
fsulist
()
{
return
request
.
post
(
path
.
fsuList
,
...
arguments
)
}
...
...
@@ -93,6 +100,10 @@ export function sitelist() {
return
request
.
post
(
path
.
fsuselectList
,
...
arguments
)
}
//监测
export
function
selectMonitorItem
()
{
return
request
.
post
(
path
.
selectMonitorItem
,
...
arguments
)
}
export
function
monitorEquiplist
()
{
return
request
.
post
(
path
.
monitorEquipList
,
...
arguments
)
}
...
...
src/views/setting/statistics/comp/fsuTable.vue
View file @
8b8ba6b7
...
...
@@ -14,6 +14,76 @@
<el-button
type=
"primary"
@
click=
"query"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"exportData"
>
导出
</el-button>
</div>
</div>
<div>
<div
class=
"search-input-box"
>
<label>
设备名称:
</label>
<el-input
size=
"small"
placeholder=
"请输入设备名称"
style=
"width: 180px"
v-model=
"FSUForm.equipName"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
FSU身份编号:
</label>
<el-input
size=
"small"
placeholder=
"请输入FSU身份编号"
style=
"width: 180px"
v-model=
"FSUForm.fsuCode"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
IP地址:
</label>
<el-input
size=
"small"
placeholder=
"请输入IP地址"
style=
"width: 180px"
v-model=
"FSUForm.ip"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
所在铁路线:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在铁路线"
style=
"width: 180px"
v-model=
"FSUForm.wayId"
clearable
@
change=
"changerailWay()"
>
<el-option
v-for=
"item in railWaySelect"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</div>
<div
class=
"search-input-box"
>
<label>
所在站点:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在站点"
style=
"width: 180px"
v-model=
"FSUForm.siteId"
clearable
>
<el-option
v-for=
"item in stationSelect2"
:key=
"item.id"
:label=
"item.siteName"
:value=
"item.id"
></el-option>
</el-select>
</div>
</div>
<el-table
ref=
"multipleTable"
...
...
@@ -269,11 +339,25 @@
import
Pagination
from
"@/components/Pagination"
;
import
{
fsulist
,
fsubatchDelete
,
fsudetail
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
export
default
{
props
:
[],
components
:
{
Pagination
},
data
()
{
return
{
railWaySelect
:
[],
stationSelect
:
[],
stationSelect2
:
[],
FSUForm
:
{
fsuCode
:
""
,
equipName
:
"阿达21"
,
equipSerialNumber
:
"4651"
,
ip
:
"151511"
,
parentId
:
""
,
siteId
:
""
,
siteName
:
"asd"
,
wayId
:
""
,
},
Info
:[],
visible
:
false
,
tableData
:
[],
...
...
@@ -286,8 +370,25 @@ export default {
ids
:
[],
};
},
computed
:
{},
computed
:
{
...
mapGetters
({
railWaylist
:
"railWay/list"
,
stationlist
:
"station/list"
,
}),
},
methods
:
{
...
mapActions
({
asyncrailWayList
:
"railWay/asyncList"
,
asyncstationList
:
"station/asyncList"
,
asyncfsuList
:
"FSU/asyncList"
,
}),
changerailWay
()
{
this
.
stationSelect2
=
this
.
stationlist
.
filter
(
(
item
)
=>
item
.
wayId
===
this
.
FSUForm
.
wayId
);
},
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
""
:
"single-row"
;
},
...
...
@@ -299,6 +400,7 @@ export default {
fsubatchDelete
({
ids
}).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
successAlert
(
"删除成功"
);
this
.
asyncfsuList
();
this
.
getTableData
();
}
else
{
warningAlert
(
"删除失败"
)
...
...
@@ -319,7 +421,14 @@ export default {
},
handleView
(
row
)
{
this
.
$router
.
push
({
path
:
'/detail'
,
query
:{
id
:
row
.
id
},
})
let
id
=
row
.
id
;
fsudetail
({
id
}).
then
((
res
)
=>
{
this
.
Info
=
res
...
...
@@ -347,6 +456,10 @@ export default {
},
mounted
()
{
this
.
getTableData
();
this
.
asyncrailWayList
();
this
.
asyncstationList
();
this
.
railWaySelect
=
this
.
railWaylist
;
// this.stationSelect = this.stationlist;
},
};
</
script
>
...
...
src/views/setting/statistics/comp/leakyTable.vue
View file @
8b8ba6b7
...
...
@@ -15,6 +15,113 @@
<el-button
type=
"primary"
@
click=
"exportData"
>
导出
</el-button>
</div>
</div>
<div>
<div
class=
"search-input-box"
>
<label>
漏缆描述:
</label>
<el-input
size=
"small"
placeholder=
"请输入漏缆描述"
style=
"width: 180px"
v-model=
"leakyCableForm.leakyCableDescribe"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
漏缆编号:
</label>
<el-input
size=
"small"
placeholder=
"请输入漏缆编号"
style=
"width: 180px"
v-model=
"leakyCableForm.leakyCableCode"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
漏缆型号:
</label>
<el-input
size=
"small"
placeholder=
"请输入漏缆型号"
style=
"width: 180px"
v-model=
"leakyCableForm.leakyCableMode"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
所在铁路线:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在铁路线"
style=
"width: 180px"
v-model=
"leakyCableForm.wayId"
clearable
@
change=
"changerailWay()"
>
<el-option
v-for=
"item in railWaySelect"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</div>
<div
class=
"search-input-box"
>
<label>
所在站点:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在站点"
style=
"width: 180px"
v-model=
"leakyCableForm.siteId"
@
change=
"changesite()"
clearable
>
<el-option
v-for=
"item in stationSelect2"
:key=
"item.id"
:label=
"item.siteName"
:value=
"item.id"
></el-option>
</el-select>
</div>
<div
class=
"search-input-box"
>
<label>
所在FSU:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在FSU"
style=
"width: 180px"
v-model=
"leakyCableForm.fsuId"
@
change=
"changefsu()"
clearable
>
<el-option
v-for=
"item in fsuSelect2"
:key=
"item.id"
:label=
"item.equipName"
:value=
"item.id"
></el-option>
</el-select>
</div>
<div
class=
"search-input-box"
>
<label>
所在监测设备:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在监测设备"
style=
"width: 180px"
v-model=
"leakyCableForm.monitor"
clearable
>
<el-option
v-for=
"item in monitor2"
:key=
"item.id"
:label=
"item.equipName"
:value=
"item.id"
></el-option>
</el-select>
</div>
</div>
<el-table
ref=
"multipleTable"
class=
"statistics-table"
...
...
@@ -32,63 +139,68 @@
@selection-change="handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
<el-table-column
prop=
"wayId"
label=
"所在铁路线"
align=
"center"
/>
<el-table-column
prop=
"wayId"
label=
"所在铁路线"
align=
"center"
/>
<el-table-column
prop=
"hundredMetersLoss"
label=
"漏缆百米损耗"
show-overflow-tooltip
align=
"center"
/>
/>
<el-table-column
prop=
"leakyCableCode"
label=
"漏缆编号"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
/>
<el-table-column
prop=
"leakyCableDescribe"
label=
"描述"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
/>
<el-table-column
prop=
"leakyCableLength"
label=
"漏缆长度"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
/>
<el-table-column
prop=
"leakyCableMode"
label=
"漏缆型号"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
/>
<el-table-column
prop=
"reductRatio"
label=
"漏缆速度衰减系数:"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
/>
<el-table-column
prop=
"sendPower"
label=
"发射功率"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
/>
<el-table-column
prop=
"jumperLength"
label=
"跳线长度"
show-overflow-tooltip
align=
"center"
/>
/>
<el-table-column
prop=
"inserterLength"
label=
"插入器长度"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
prop=
"antennaFeederLength"
label=
"天馈线长度:"
align=
"center"
/>
<el-table-column
prop=
"antennaFeederLength"
label=
"天馈线长度:"
align=
"center"
/>
<el-table-column
prop=
"action"
label=
"详细信息"
...
...
@@ -113,13 +225,33 @@
</template>
<
script
>
import
Pagination
from
"@/components/Pagination"
;
import
{
leakyCablelist
,
leakyCablebatchDelete
,
leakyCabledetail
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
leakyCablelist
,
leakyCablebatchDelete
,
leakyCabledetail
,
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
export
default
{
props
:
[],
components
:
{
Pagination
},
data
()
{
return
{
railWaySelect
:
[],
stationSelect2
:
[],
fsuSelect2
:
[],
monitor2
:
[],
leakyCableForm
:
{
wayId
:
""
,
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
monitor
:
""
,
leakyCableCode
:
"22"
,
leakyCableDescribe
:
"打打"
,
leakyCableMode
:
"打打"
,
},
tableData
:
[],
params
:
{
pageNum
:
1
,
...
...
@@ -130,8 +262,38 @@ export default {
ids
:
[],
};
},
computed
:
{},
computed
:
{
...
mapGetters
({
railWaylist
:
"railWay/list"
,
stationlist
:
"station/list"
,
fsulist
:
"FSU/list"
,
monitorEquiplist
:
"monitor/list"
,
}),
},
methods
:
{
...
mapActions
({
asyncrailWayList
:
"railWay/asyncList"
,
asyncstationList
:
"station/asyncList"
,
asyncfsuList
:
"FSU/asyncList"
,
asyncmonitorList
:
"monitor/asyncList"
,
asyncleakyList
:
"leaky/asyncList"
,
}),
changerailWay
()
{
this
.
stationSelect2
=
this
.
stationlist
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
leakyCableForm
.
wayId
);
},
changesite
()
{
this
.
fsuSelect2
=
this
.
fsulist
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
leakyCableForm
.
siteId
);
},
changefsu
()
{
this
.
monitor2
=
this
.
monitorEquiplist
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
leakyCableForm
.
fsuId
);
},
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
""
:
"single-row"
;
},
...
...
@@ -141,15 +303,14 @@ export default {
delData
()
{
let
ids
=
this
.
ids
;
leakyCablebatchDelete
({
ids
}).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
successAlert
(
"删除成功"
);
this
.
asyncleakyList
()
this
.
getTableData
();
}
else
{
warningAlert
(
"删除失败"
)
}
else
{
warningAlert
(
"删除失败"
)
;
}
});
},
refresh
()
{
this
.
getTableData
();
...
...
@@ -160,15 +321,17 @@ export default {
this
.
multipleSelection
=
val
;
this
.
ids
=
this
.
multipleSelection
.
map
((
i
)
=>
i
.
id
);
},
handleView
(
row
)
{
let
id
=
row
.
id
;
leakyCabledetail
({
id
}).
then
((
res
)
=>
{
this
.
$router
.
push
({
path
:
"/detail"
,
query
:
{
id
:
row
.
id
,
},
});
let
id
=
row
.
id
;
leakyCabledetail
({
id
}).
then
((
res
)
=>
{});
},
handlePageChange
(
pageData
)
{
this
.
params
.
pageSize
=
pageData
.
size
;
...
...
@@ -193,6 +356,14 @@ export default {
},
mounted
()
{
this
.
getTableData
();
this
.
asyncrailWayList
();
this
.
asyncstationList
();
this
.
asyncfsuList
();
this
.
asyncmonitorList
();
this
.
railWaySelect
=
this
.
railWaylist
;
this
.
monitorSelect
=
this
.
monitorEquiplist
;
},
};
</
script
>
...
...
src/views/setting/statistics/comp/monitorTable.vue
View file @
8b8ba6b7
...
...
@@ -14,6 +14,94 @@
<el-button
type=
"primary"
@
click=
"query"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"exportData"
>
导出
</el-button>
</div>
</div>
<div>
<div
class=
"search-input-box"
>
<label>
设备名称:
</label>
<el-input
size=
"small"
placeholder=
"请输入设备名称"
style=
"width: 180px"
v-model=
"monitorForm.equipName"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
设备身份编号:
</label>
<el-input
size=
"small"
placeholder=
"请输入设备身份编号"
style=
"width: 180px"
v-model=
"monitorForm.equipCode"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
IP地址:
</label>
<el-input
size=
"small"
placeholder=
"请输入IP地址"
style=
"width: 180px"
v-model=
"monitorForm.ip"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
所在铁路线:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在铁路线"
style=
"width: 180px"
v-model=
"monitorForm.wayId"
clearable
@
change=
"changerailWay()"
>
<el-option
v-for=
"item in railWaySelect"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</div>
<div
class=
"search-input-box"
>
<label>
所在站点:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在站点"
style=
"width: 180px"
v-model=
"monitorForm.siteId"
@
change=
"changesite()"
clearable
>
<el-option
v-for=
"item in stationSelect2"
:key=
"item.id"
:label=
"item.siteName"
:value=
"item.id"
></el-option>
</el-select>
</div>
<div
class=
"search-input-box"
>
<label>
所在FSU:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在FSU"
style=
"width: 180px"
v-model=
"monitorForm.fsuId"
clearable
>
<el-option
v-for=
"item in fsuSelect2"
:key=
"item.id"
:label=
"item.equipName"
:value=
"item.id"
></el-option>
</el-select>
</div>
</div>
<el-table
ref=
"multipleTable"
...
...
@@ -113,11 +201,25 @@ import {
monitorEquipdetail
,
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
export
default
{
props
:
[],
components
:
{
Pagination
},
data
()
{
return
{
railWaySelect
:
[],
stationSelect2
:
[],
fsuSelect2
:
[],
monitorForm
:
{
wayId
:
""
,
parentId
:
""
,
siteId
:
""
,
fsuId
:
""
,
equipCode
:
""
,
equipName
:
""
,
},
tableData
:
[],
params
:
{
pageNum
:
1
,
...
...
@@ -128,8 +230,34 @@ export default {
ids
:
[],
};
},
computed
:
{},
computed
:
{
...
mapGetters
({
railWaylist
:
"railWay/list"
,
stationlist
:
"station/list"
,
fsulist
:
"FSU/list"
,
}),
},
methods
:
{
...
mapActions
({
asyncrailWayList
:
"railWay/asyncList"
,
asyncstationList
:
"station/asyncList"
,
asyncfsuList
:
"FSU/asyncList"
,
asyncmonitorList
:
"monitor/asyncList"
,
}),
changerailWay
()
{
this
.
stationSelect2
=
this
.
stationlist
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
monitorForm
.
wayId
);
},
changesite
()
{
this
.
fsuSelect2
=
this
.
fsuSelect
.
filter
(
(
item
)
=>
item
.
parentId
===
this
.
monitorForm
.
siteId
);
},
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
""
:
"single-row"
;
},
...
...
@@ -141,6 +269,7 @@ export default {
monitorEquipbatchDelete
({
ids
}).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
successAlert
(
"删除成功"
);
this
.
asyncmonitorList
();
this
.
getTableData
();
}
else
{
warningAlert
(
"删除失败"
)
...
...
@@ -161,7 +290,14 @@ export default {
},
handleView
(
row
)
{
this
.
$router
.
push
({
path
:
'/detail'
,
query
:{
id
:
row
.
id
},
})
let
id
=
row
.
id
;
monitorEquipdetail
({
id
}).
then
((
res
)
=>
{
...
...
@@ -191,6 +327,11 @@ export default {
},
mounted
()
{
this
.
getTableData
();
this
.
asyncrailWayList
();
this
.
asyncstationList
();
this
.
asyncfsuList
();
this
.
railWaySelect
=
this
.
railWaylist
;
this
.
fsuSelect
=
this
.
fsulist
;
},
};
</
script
>
...
...
src/views/setting/statistics/comp/railWayTable.vue
View file @
8b8ba6b7
...
...
@@ -15,6 +15,38 @@
<el-button
type=
"primary"
@
click=
"exportData"
>
导出
</el-button>
</div>
</div>
<div>
<div
class=
"search-input-box"
>
<label>
铁路名称:
</label>
<el-input
size=
"small"
placeholder=
"请输入铁路名称"
style=
"width: 180px"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
铁路起点站名:
</label>
<el-input
size=
"small"
placeholder=
"请输入起点站名"
style=
"width: 180px"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
铁路终点站名:
</label>
<el-input
size=
"small"
placeholder=
"请输入终点站名"
style=
"width: 180px"
clearable
>
</el-input>
</div>
</div>
<el-table
ref=
"multipleTable"
class=
"statistics-table"
...
...
@@ -63,62 +95,53 @@
</
template
>
</el-table-column>
</el-table>
<el-dialog
:showClose=
"false"
title=
"铁路线详情"
:visible
.
sync=
"visible"
width=
"500px"
>
<table
style=
"margin: auto"
class=
"device-detail-tb"
>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label
>
铁路名:
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.name"
></label>
</td>
</tr>
<el-dialog
:showClose=
"false"
title=
"铁路线详情"
:visible
.
sync=
"visible"
width=
"500px"
>
<table
style=
"margin: auto"
class=
"device-detail-tb"
>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label>
铁路名:
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.name"
></label>
</td>
</tr>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label
>
铁路线起点站名:
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.startPointName"
></label>
</td>
</tr>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label
>
铁路线终点站名:
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.endPointName"
></label>
</td>
</tr>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label
>
铁路全长(公里):
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.totalLong"
></label>
</td>
</tr>
</table>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"visible=false"
>
关闭
</el-button
></span>
</el-dialog>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label>
铁路线起点站名:
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.startPointName"
></label>
</td>
</tr>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label>
铁路线终点站名:
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.endPointName"
></label>
</td>
</tr>
<tr
style=
"line-height: 50px"
>
<td
style=
"width: 145px"
>
<label>
铁路全长(公里):
</label>
</td>
<td
style=
"width: 180px; text-align: left"
>
<label
v-text=
"Info.totalLong"
></label>
</td>
</tr>
</table>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"visible = false"
>
关闭
</el-button
></span
>
</el-dialog>
<pagination
:limit=
"params.pageSize"
:page=
"params.pageNum"
...
...
@@ -130,15 +153,16 @@
</template>
<
script
>
import
Pagination
from
"@/components/Pagination"
;
import
{
railWaylist
,
railWaybatchDelete
,
railWaydetail
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
railWaylist
,
railWaydetail
,
railWaybatchDelete
}
from
"../../api"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
export
default
{
props
:
[],
components
:
{
Pagination
},
data
()
{
return
{
visible
:
false
,
Info
:[],
visible
:
false
,
Info
:
[],
tableData
:
[],
params
:
{
pageNum
:
1
,
...
...
@@ -151,7 +175,9 @@ export default {
},
computed
:
{},
methods
:
{
...
mapActions
({
asyncrailWayList
:
"railWay/asyncList"
,
}),
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
""
:
"single-row"
;
},
...
...
@@ -161,14 +187,14 @@ export default {
delData
()
{
let
ids
=
this
.
ids
;
railWaybatchDelete
({
ids
}).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
if
(
res
.
code
==
200
)
{
successAlert
(
"删除成功"
);
this
.
getTableData
();
}
else
{
warningAlert
(
"删除失败"
)
this
.
asyncrailWayList
()
this
.
getTableData
();
}
else
{
warningAlert
(
"删除失败"
);
}
});
},
refresh
()
{
this
.
getTableData
();
...
...
@@ -182,13 +208,17 @@ export default {
},
handleView
(
row
)
{
this
.
$router
.
push
({
path
:
"/detail"
,
query
:
{
id
:
row
.
id
,
},
});
let
id
=
row
.
id
;
railWaydetail
({
id
}).
then
((
res
)
=>
{
console
.
log
(
res
);
// this.$router.push('/')
// this.visible=true
this
.
Info
=
res
console
.
log
(
this
.
Info
);
this
.
Info
=
res
;
});
},
handlePageChange
(
pageData
)
{
...
...
@@ -197,10 +227,6 @@ export default {
this
.
getTableData
();
},
getTableData
()
{
// this.tableData2 = this.tableData.slice(( this.params.pageNum - 1) * this.params.pageSize,
// this.params.pageNum * this.params.pageSize
// );
// this.total = this.tableData.length
let
params
=
{
current
:
this
.
params
.
pageNum
,
size
:
this
.
params
.
pageSize
,
...
...
src/views/setting/statistics/comp/stationTable.vue
View file @
8b8ba6b7
...
...
@@ -14,6 +14,55 @@
<el-button
type=
"primary"
@
click=
"query"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"exportData"
>
导出
</el-button>
</div>
</div>
<div>
<div
class=
"search-input-box"
>
<label>
站名:
</label>
<el-input
size=
"small"
placeholder=
"请输入站名"
style=
"width: 180px"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
站点编号:
</label>
<el-input
size=
"small"
placeholder=
"请输入起点编号"
style=
"width: 180px"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
站点地址:
</label>
<el-input
size=
"small"
placeholder=
"请输入站点地址"
style=
"width: 180px"
clearable
>
</el-input>
</div>
<div
class=
"search-input-box"
>
<label>
所在铁路线:
</label>
<el-select
size=
"small"
placeholder=
"请选择所在铁路线"
style=
"width: 180px"
clearable
>
<el-option
v-for=
"item in railWaySelect"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</div>
</div>
<el-table
ref=
"multipleTable"
...
...
@@ -209,11 +258,13 @@
import
Pagination
from
"@/components/Pagination"
;
import
{
sitelist
,
sitebatchDelete
,
sitedetail
}
from
"../../api"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
export
default
{
props
:
[],
components
:
{
Pagination
},
data
()
{
return
{
railWaySelect
:[],
visible
:
false
,
Info
:[],
tableData
:[],
...
...
@@ -226,9 +277,17 @@ export default {
ids
:
[],
};
},
computed
:
{},
computed
:
{
...
mapGetters
({
railWaylist
:
"railWay/list"
,
}),
},
methods
:
{
...
mapActions
({
asyncrailWayList
:
"railWay/asyncList"
,
asyncstationList
:
"station/asyncList"
,
}),
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
""
:
"single-row"
;
},
...
...
@@ -240,6 +299,7 @@ export default {
sitebatchDelete
({
ids
}).
then
((
res
)
=>
{
if
(
res
.
code
==
200
)
{
successAlert
(
"删除成功"
);
this
.
asyncstationList
();
this
.
getTableData
();
}
else
{
warningAlert
(
"删除失败"
)
...
...
@@ -260,7 +320,14 @@ export default {
},
handleView
(
row
)
{
this
.
$router
.
push
({
path
:
'/sitedetail'
,
query
:{
id
:
row
.
id
},
})
let
id
=
row
.
id
;
sitedetail
({
id
}).
then
((
res
)
=>
{
this
.
Info
=
res
...
...
@@ -292,7 +359,9 @@ export default {
},
mounted
()
{
this
.
getTableData
();
this
.
asyncrailWayList
()
this
.
railWaySelect
=
this
.
railWaylist
;
},
};
...
...
src/views/setting/statistics/detail.vue
0 → 100644
View file @
8b8ba6b7
<
template
>
<div
class=
"dashboard-container"
>
<!-- 首页 -->
<header
class=
"header_title"
>
{{
titleinfo
}}
</header>
<el-row
:gutter=
"24"
>
<el-col
:span=
"12"
v-for=
"item in listData"
class=
"mb20"
>
<el-card
shadow=
"never"
>
<div
slot=
"header"
class=
"clearfix posa"
>
<span>
{{
item
.
title
}}
</span>
<el-button
v-if=
"item.option"
style=
"float: right; padding: 3px 0;margin-right:20px"
type=
"text"
class=
"savebtn"
>
保存
</el-button>
</div>
<div
v-for=
"k in item.list"
:key=
"k.name"
:class=
"item.list.length
<
=
2
?
'
text2
'
:
'
text
'"
>
<el-row
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
{{
k
.
name
}}
</div>
</el-col>
<el-col
:span=
"10"
>
<div
v-if=
"item.option"
>
<el-input
v-model=
"k.value"
clearable
placeholder=
"请输入内容"
>
{{
k
.
value
}}
</el-input>
</div>
<el-row
:gutter=
"20"
v-else-if=
"k.handle"
>
<el-col
:span=
"10"
class=
"value_handle"
>
{{
k
.
value
}}
</el-col>
<el-col
:span=
"10"
><el-button
class=
"alarmbtn"
type=
"primary"
size=
"mini"
>
处理告警
</el-button></el-col>
</el-row>
<div
class=
"item_data"
v-else
>
{{
k
.
value
}}
</div>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
</el-row>
<div>
</div>
</div>
</
template
>
<
script
>
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
{
railWaydetail
,
sitedetail
,
fsudetail
,
monitorEquipdetail
}
from
"../api"
;
export
default
{
props
:
[],
components
:
{},
data
()
{
return
{
titleinfo
:
''
,
listData2
:
[],
listData
:
[
{
title
:
'服务器信息'
,
list
:
[
{
name
:
'服务器IP'
,
value
:
'192.168.1.110'
,
},
{
name
:
'操作系统'
,
value
:
'Red Hat EnterpiseLin...'
,
},
{
name
:
'系统软件版本'
,
value
:
'192.168.1.110'
,
},
]
},
{
title
:
'当前状态'
,
list
:
[
{
handle
:
true
,
name
:
'设备状态'
,
value
:
'告警'
,
},
{
handle
:
true
,
name
:
'漏缆状态'
,
value
:
'紧急告警'
,
}
]
},
{
title
:
'管理员(admin)管理范围'
,
list
:
[
{
name
:
'基站'
,
value
:
'20个'
,
},
{
name
:
'FSU'
,
value
:
'20台'
,
},
{
name
:
'监测设备'
,
value
:
'81台'
,
},
{
name
:
'混缆'
,
value
:
'142根'
,
},
]
},
{
title
:
'基本信息'
,
option
:
true
,
list
:
[
{
name
:
'铁路名称'
,
value
:
'张呼铁路客运专线'
,
},
{
name
:
'铁路起点站名'
,
value
:
'张家口'
,
},
{
name
:
'铁路终点站名'
,
value
:
'呼和浩特'
,
},
{
name
:
'铁路总长度(公里)'
,
value
:
'286.8'
,
},
]
},
],
id
:
""
,
};
},
computed
:
{
...
mapGetters
({}),
},
methods
:
{
...
mapActions
({}),
},
methods
:
{
getParams
()
{
this
.
id
=
this
.
$route
.
query
.
id
;
// console.log(this.id);
railWaydetail
({
id
:
this
.
id
}).
then
((
res
)
=>
{
this
.
titleinfo
=
res
.
name
+
'信息'
this
.
listData
[
3
].
list
[
0
].
value
=
res
.
name
this
.
listData
[
3
].
list
[
1
].
value
=
res
.
startPointName
this
.
listData
[
3
].
list
[
2
].
value
=
res
.
endPointName
this
.
listData
[
3
].
list
[
3
].
value
=
res
.
totalLong
});
},
},
created
()
{
this
.
getParams
();
},
mounted
()
{},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.header_title
{
font-size
:
23px
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
500
;
line-height
:
40px
;
text-align
:
center
;
color
:
#0058ff
;
letter-spacing
:
10px
;
opacity
:
1
;
margin-bottom
:
20px
;
}
::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
;
}
}
.posa
{
position
:
relative
;
}
.savebtn
{
position
:
absolute
;
right
:
2%
;
}
// .el-col {
// margin-bottom: 20px;
// }
.text
{
// display: flex;
padding
:
10px
20px
10px
20px
;
border-bottom
:
1px
solid
#e3e3e3
;
&
:last-child
{
border-bottom
:
none
;
}
.item_name
,
.item_data
,
.value_handle
{
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
;
}
.item_data
{
}
.value_handle
{
color
:
red
;
margin-right
:
10px
;
}
.alarmbtn
{
margin-top
:
6px
;
margin-bottom
:
6px
;
}
.el-card
:last-child
.text
{
border-bottom
:
none
!
important
;
}
}
.text2
{
// display: flex;
padding
:
10px
20px
10px
20px
;
border-bottom
:
1px
solid
#e3e3e3
;
.item_name
,
.item_data
,
.value_handle
{
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
;
}
.item_data
{
}
.value_handle
{
color
:
red
;
margin-right
:
10px
;
min-width
:
52px
;
}
.alarmbtn
{
margin-top
:
6px
;
margin-bottom
:
6px
;
}
.el-card
:last-child
.text
{
border-bottom
:
none
!
important
;
}
}
</
style
>
src/views/setting/statistics/sitedetail.vue
0 → 100644
View file @
8b8ba6b7
<
template
>
<div
class=
"dashboard-container"
>
<!-- 首页 -->
<header
class=
"header_title"
>
{{
titleinfo
}}
</header>
<el-row
:gutter=
"24"
>
<el-col
:span=
"12"
v-for=
"item in listData"
class=
"mb20"
>
<el-card
shadow=
"never"
>
<div
slot=
"header"
class=
"clearfix posa"
>
<span>
{{
item
.
title
}}
</span>
<el-button
v-if=
"item.option"
style=
"float: right; padding: 3px 0;margin-right:20px"
type=
"text"
class=
"savebtn"
>
保存
</el-button>
</div>
<div
v-for=
"k in item.list"
:key=
"k.name"
:class=
"item.list.length
<
=
2
?
'
text2
'
:
'
text
'"
>
<el-row
:gutter=
"24"
>
<el-col
:span=
"10"
>
<div
class=
"item_name"
>
{{
k
.
name
}}
</div>
</el-col>
<el-col
:span=
"10"
>
<div
v-if=
"item.option"
>
<el-input
v-model=
"k.value"
clearable
placeholder=
"请输入内容"
>
{{
k
.
value
}}
</el-input>
</div>
<el-row
:gutter=
"20"
v-else-if=
"k.handle"
>
<el-col
:span=
"10"
class=
"value_handle"
>
{{
k
.
value
}}
</el-col>
<el-col
:span=
"10"
><el-button
class=
"alarmbtn"
type=
"primary"
size=
"mini"
>
处理告警
</el-button></el-col>
</el-row>
<div
class=
"item_data"
v-else
>
{{
k
.
value
}}
</div>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
</el-row>
<div>
</div>
</div>
</
template
>
<
script
>
import
{
mapGetters
,
mapActions
}
from
'vuex'
;
import
{
railWaydetail
,
sitedetail
,
fsudetail
,
monitorEquipdetail
}
from
"../api"
;
export
default
{
props
:
[],
components
:
{},
data
()
{
return
{
titleinfo
:
''
,
id
:
""
,
listData
:
[
{
title
:
'管理范围'
,
list
:
[
{
name
:
'FSU'
,
value
:
'1台'
,
},
{
name
:
'监测设备'
,
value
:
'1台'
,
},
{
name
:
'漏缆'
,
value
:
'2根'
,
},
]
},
{
title
:
'基本信息'
,
option
:
true
,
list
:
[
{
name
:
'站点编号'
,
value
:
''
,
},
{
name
:
'站名'
,
value
:
''
,
},
{
name
:
'站点地址'
,
value
:
''
,
},
{
name
:
'所在铁路线'
,
value
:
''
,
},
{
name
:
'站点所在局'
,
value
:
''
,
},
{
name
:
'站点所在段号'
,
value
:
''
,
},
{
name
:
'站点所在铁路公里标'
,
value
:
''
,
},
{
name
:
'站点经度'
,
value
:
''
,
},
{
name
:
'站点纬度'
,
value
:
''
,
},
{
name
:
'站点监控时间'
,
value
:
''
,
},
{
name
:
'站点其他信息'
,
value
:
''
,
},
]
},
{
title
:
'当前状态'
,
list
:
[
{
handle
:
true
,
name
:
'设备状态'
,
value
:
'正常'
,
},
{
handle
:
true
,
name
:
'漏缆状态'
,
value
:
'正常'
,
}
]
},
],
};
},
computed
:
{
...
mapGetters
({}),
},
methods
:
{
...
mapActions
({}),
getParams
()
{
this
.
id
=
this
.
$route
.
query
.
id
;
sitedetail
({
id
:
this
.
id
}).
then
((
res
)
=>
{
this
.
titleinfo
=
'站点('
+
res
.
siteName
+
")"
this
.
listData
[
1
].
list
[
0
].
value
=
res
.
siteCode
this
.
listData
[
1
].
list
[
1
].
value
=
res
.
siteName
this
.
listData
[
1
].
list
[
2
].
value
=
res
.
siteAddress
this
.
listData
[
1
].
list
[
3
].
value
=
res
.
siteArea
this
.
listData
[
1
].
list
[
4
].
value
=
res
.
wayId
this
.
listData
[
1
].
list
[
5
].
value
=
res
.
siteSectionCode
this
.
listData
[
1
].
list
[
6
].
value
=
res
.
siteKmSign
this
.
listData
[
1
].
list
[
7
].
value
=
res
.
siteLatitude
this
.
listData
[
1
].
list
[
8
].
value
=
res
.
siteLongitude
this
.
listData
[
1
].
list
[
10
].
value
=
res
.
siteOtherMessage
});
},
},
created
()
{
this
.
getParams
();
},
mounted
()
{},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.header_title
{
font-size
:
23px
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
500
;
line-height
:
40px
;
text-align
:
center
;
color
:
#0058ff
;
letter-spacing
:
10px
;
opacity
:
1
;
margin-bottom
:
20px
;
}
::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
;
}
}
.posa
{
position
:
relative
;
}
.savebtn
{
position
:
absolute
;
right
:
2%
;
}
// .el-col {
// margin-bottom: 20px;
// }
.text
{
// display: flex;
padding
:
10px
20px
10px
20px
;
border-bottom
:
1px
solid
#e3e3e3
;
&
:last-child
{
border-bottom
:
none
;
}
.item_name
,
.item_data
,
.value_handle
{
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
;
}
.item_data
{
}
.value_handle
{
color
:
red
;
margin-right
:
10px
;
}
.alarmbtn
{
margin-top
:
6px
;
margin-bottom
:
6px
;
}
.el-card
:last-child
.text
{
border-bottom
:
none
!
important
;
}
}
.text2
{
// display: flex;
padding
:
10px
20px
10px
20px
;
border-bottom
:
1px
solid
#e3e3e3
;
.item_name
,
.item_data
,
.value_handle
{
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
;
}
.item_data
{
}
.value_handle
{
color
:
red
;
margin-right
:
10px
;
min-width
:
52px
;
}
.alarmbtn
{
margin-top
:
6px
;
margin-bottom
:
6px
;
}
.el-card
:last-child
.text
{
border-bottom
:
none
!
important
;
}
}
</
style
>
\ No newline at end of file
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