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
b1d21bb3
Commit
b1d21bb3
authored
Jan 07, 2025
by
dupengyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
补充缺失页面 补充devserver及
parent
3e2f1a6d
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
899 additions
and
257 deletions
+899
-257
backuprestore.js
src/api/backuprestore.js
+3
-3
baseData.js
src/api/baseData.js
+7
-7
export.js
src/api/export.js
+15
-15
job.js
src/api/job.js
+36
-0
sync.js
src/api/sync.js
+9
-0
table.js
src/api/table.js
+1
-1
udp.js
src/api/udp.js
+10
-0
user.js
src/api/user.js
+3
-3
index.js
src/const/index.js
+8
-4
index.js
src/router/index.js
+33
-0
request.js
src/utils/request.js
+2
-1
api.js
src/views/alarm/api.js
+25
-8
search.vue
src/views/alarm/cableTime/components/search.vue
+6
-3
index.vue
src/views/alarm/cableTime/index.vue
+22
-2
search.vue
src/views/alarm/device/components/search.vue
+2
-2
index.vue
src/views/alarm/statistics/index.vue
+361
-96
printToPdf.js
src/views/alarm/statistics/printToPdf.js
+50
-0
api.js
src/views/dashboard/api.js
+9
-9
api.js
src/views/history/api.js
+12
-12
index.vue
src/views/jobgroup/jobinfo/index.vue
+0
-0
index.vue
src/views/jobgroup/joblog/index.vue
+0
-0
index.vue
src/views/jobgroup/jobmanage/index.vue
+0
-0
index.vue
src/views/jobgroup/screen/index.vue
+60
-0
api.js
src/views/maintain/api.js
+3
-3
api.js
src/views/monitor/api.js
+2
-2
autoAdd.vue
src/views/setting/add/comp/autoAdd.vue
+83
-0
parameter.vue
src/views/setting/add/comp/parameter.vue
+0
-0
api.js
src/views/setting/api.js
+41
-41
monitorTable.vue
src/views/setting/statistics/comp/monitorTable.vue
+29
-1
index.vue
src/views/system/synchronize/index.vue
+37
-36
api.js
src/views/user/api.js
+5
-5
vue.config.js
vue.config.js
+25
-3
No files found.
src/api/backuprestore.js
View file @
b1d21bb3
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询分页
// 查询分页
export
function
selectPage
(
params
)
{
export
function
selectPage
(
params
)
{
return
request
({
return
request
({
url
:
'/backuprestore/selectPage'
,
url
:
'/
api/
backuprestore/selectPage'
,
method
:
'post'
,
method
:
'post'
,
params
params
})
})
...
@@ -12,7 +12,7 @@ export function selectPage(params) {
...
@@ -12,7 +12,7 @@ export function selectPage(params) {
// 数据备份
// 数据备份
export
function
doBackup
(
data
)
{
export
function
doBackup
(
data
)
{
return
request
({
return
request
({
url
:
'/backuprestore/doBackup'
,
url
:
'/
api/
backuprestore/doBackup'
,
method
:
'post'
,
method
:
'post'
,
data
data
})
})
...
@@ -21,7 +21,7 @@ export function doBackup(data) {
...
@@ -21,7 +21,7 @@ export function doBackup(data) {
// 数据恢复
// 数据恢复
export
function
restore
(
params
)
{
export
function
restore
(
params
)
{
return
request
({
return
request
({
url
:
'/backuprestore/restore'
,
url
:
'/
api/
backuprestore/restore'
,
method
:
'post'
,
method
:
'post'
,
params
params
})
})
...
...
src/api/baseData.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
const
path
=
{
const
path
=
{
deptList
:
'/dict/selectDeptItem'
,
deptList
:
'/
api/
dict/selectDeptItem'
,
fsuList
:
'/dict/selectFsuItem'
,
fsuList
:
'/
api/
dict/selectFsuItem'
,
OperateEnum
:
'/dict/selectOperationItem'
,
OperateEnum
:
'/
api/
dict/selectOperationItem'
,
LeakyCablelEnum
:
'/dict/selectLeakyCablelItem'
,
LeakyCablelEnum
:
'/
api/
dict/selectLeakyCablelItem'
,
MonitorEnum
:
'/dict/selectMonitorItem'
,
MonitorEnum
:
'/
api/
dict/selectMonitorItem'
,
selectDictType
:
'/dict/selectDictType'
,
selectDictType
:
'/
api/
dict/selectDictType'
,
getTree
:
'/home/getTree'
,
getTree
:
'/
api/
home/getTree'
,
}
}
export
function
deptList
()
{
export
function
deptList
()
{
...
...
src/api/export.js
View file @
b1d21bb3
...
@@ -2,29 +2,29 @@ import request from '@/utils/request'
...
@@ -2,29 +2,29 @@ import request from '@/utils/request'
const
path
=
{
const
path
=
{
// 告警管理
// 告警管理
exportLeakyCable
:
'sysMonitorAlarm/export'
,
exportLeakyCable
:
'
api/
sysMonitorAlarm/export'
,
exportConnet
:
'sysConnectAlarm/export'
,
exportConnet
:
'
api/
sysConnectAlarm/export'
,
// 配置管理
// 配置管理
exportRailWay
:
"railWay/export"
,
exportRailWay
:
"
api/
railWay/export"
,
exportSite
:
"site/export"
,
exportSite
:
"
api/
site/export"
,
exportFsu
:
"fsu/export"
,
exportFsu
:
"
api/
fsu/export"
,
exportMonitorEquip
:
"monitorEquip/export"
,
exportMonitorEquip
:
"
api/
monitorEquip/export"
,
exportLeaky
:
"leakyCable/export"
,
exportLeaky
:
"
api/
leakyCable/export"
,
exportFeeder
:
"antennaFeeder/export"
,
exportFeeder
:
"a
pi/a
ntennaFeeder/export"
,
// 实时状态
// 实时状态
exportLeakyCableTime
:
'sysLeakyCableStatus/export'
,
exportLeakyCableTime
:
'
api/
sysLeakyCableStatus/export'
,
exportConnetTime
:
'sysDeviceStatus/export'
,
exportConnetTime
:
'
api/
sysDeviceStatus/export'
,
// 历史数据
// 历史数据
exportLeakyStatusHistory
:
'sysHistoryMonitorStatus/export'
,
exportLeakyStatusHistory
:
'
api/
sysHistoryMonitorStatus/export'
,
exportLeakyMaintainHistory
:
'sysHistoryMonitorMaintain/export'
,
exportLeakyMaintainHistory
:
'
api/
sysHistoryMonitorMaintain/export'
,
exportConnectStatusHistory
:
'sysHistoryConnectStatus/export'
,
exportConnectStatusHistory
:
'
api/
sysHistoryConnectStatus/export'
,
exportConnectMaintainHistory
:
'sysHistoryConnectMaintain/export'
,
exportConnectMaintainHistory
:
'
api/
sysHistoryConnectMaintain/export'
,
// 用户管理
// 用户管理
exportLog
:
'sysLog/exportLog'
,
exportLog
:
'
api/
sysLog/exportLog'
,
}
}
const
blobConf
=
{
responseType
:
'blob'
}
const
blobConf
=
{
responseType
:
'blob'
}
...
...
src/api/job.js
0 → 100644
View file @
b1d21bb3
import
request
from
'@/utils/request'
// 运行报表
export
function
chartInfo
(
params
)
{
return
request
({
url
:
'/xxl-job-admin/chartInfo'
,
method
:
'post'
,
params
})
}
// 任务管理
export
function
jobinfoList
(
data
)
{
return
request
({
url
:
'/xxl-job-admin/jobinfo/pageList'
,
method
:
'post'
,
data
})
}
// 调度日志
export
function
joblogList
(
data
)
{
return
request
({
url
:
'/xxl-job-admin/joblog/pageList'
,
method
:
'post'
,
data
})
}
// 执行器管理
export
function
jobgroupList
(
data
)
{
return
request
({
url
:
'/xxl-job-admin/jobgroup/pageList'
,
method
:
'post'
,
data
})
}
src/api/sync.js
0 → 100644
View file @
b1d21bb3
import
request
from
'@/utils/request'
export
function
selectFeederPage
(
params
)
{
return
request
({
url
:
'/device/sync/selectFeederPage'
,
method
:
'post'
,
params
})
}
src/api/table.js
View file @
b1d21bb3
...
@@ -2,7 +2,7 @@ import request from '@/utils/request'
...
@@ -2,7 +2,7 @@ import request from '@/utils/request'
export
function
getList
(
params
)
{
export
function
getList
(
params
)
{
return
request
({
return
request
({
url
:
'/vue-admin-template/table/list'
,
url
:
'/
api/
vue-admin-template/table/list'
,
method
:
'get'
,
method
:
'get'
,
params
params
})
})
...
...
src/api/udp.js
0 → 100644
View file @
b1d21bb3
import
request
from
'@/utils/request'
export
function
timeSync
(
params
)
{
return
request
({
url
:
'/device/udp/timeSync'
,
method
:
'post'
,
params
})
}
src/api/user.js
View file @
b1d21bb3
...
@@ -2,19 +2,19 @@ import request from '@/utils/request'
...
@@ -2,19 +2,19 @@ import request from '@/utils/request'
export
function
login
(
data
)
{
export
function
login
(
data
)
{
return
request
({
return
request
({
url
:
'/user/login'
,
url
:
'/
api/
user/login'
,
method
:
'post'
,
method
:
'post'
,
data
data
})
})
}
}
export
function
getInfo
()
{
export
function
getInfo
()
{
return
request
.
post
(
'/user/getUser'
,
...
arguments
)
return
request
.
post
(
'/
api/
user/getUser'
,
...
arguments
)
}
}
export
function
logout
()
{
export
function
logout
()
{
return
request
({
return
request
({
url
:
'/user/logout'
,
url
:
'/
api/
user/logout'
,
method
:
'post'
method
:
'post'
})
})
}
}
src/const/index.js
View file @
b1d21bb3
export
const
alarmLeval
=
{
export
const
alarmLeval
=
{
1
:
'紧急
'
,
0
:
'一般
'
,
2
:
'重要'
,
1
:
'重要'
,
3
:
'一般
'
2
:
'紧急
'
}
}
export
const
alarmType
=
{
export
const
alarmType
=
{
0
:
'漏缆'
,
0
:
'漏缆'
,
1
:
'天馈线'
,
1
:
'天馈线'
,
}
}
export
const
confirmStatus
=
{
0
:
'未确认'
,
1
:
'已确认'
,
2
:
'已消除'
}
export
const
ConnectStatusEnum
=
{
export
const
ConnectStatusEnum
=
{
0
:
'连接正常'
,
0
:
'连接正常'
,
1
:
'连接异常'
1
:
'连接异常'
...
...
src/router/index.js
View file @
b1d21bb3
...
@@ -158,6 +158,39 @@ export const constantRoutes = [
...
@@ -158,6 +158,39 @@ export const constantRoutes = [
// }
// }
// ]
// ]
// },
// },
{
path
:
'/jobgroup'
,
component
:
Layout
,
redirect
:
'/jobgroup'
,
name
:
'Jobgroup'
,
meta
:
{
title
:
'轮询管理'
,
icon
:
'history'
},
children
:
[
{
path
:
'screen'
,
name
:
'screen'
,
component
:
()
=>
import
(
'@/views/jobgroup/screen/index.vue'
),
meta
:
{
title
:
'运行报表'
}
},
{
path
:
'jobinfo'
,
name
:
'jobinfo'
,
component
:
()
=>
import
(
'@/views/jobgroup/jobinfo/index.vue'
),
meta
:
{
title
:
'任务管理'
}
},
{
path
:
'joblog'
,
name
:
'joblog'
,
component
:
()
=>
import
(
'@/views/jobgroup/joblog/index.vue'
),
meta
:
{
title
:
'调度日志'
}
},
{
path
:
'jobmanage'
,
name
:
'jobmanage'
,
component
:
()
=>
import
(
'@/views/jobgroup/jobmanage/index.vue'
),
meta
:
{
title
:
'执行器管理'
}
},
]
},
{
{
path
:
'/history'
,
path
:
'/history'
,
component
:
Layout
,
component
:
Layout
,
...
...
src/utils/request.js
View file @
b1d21bb3
...
@@ -7,7 +7,7 @@ import EventBus from '@/utils/bus'
...
@@ -7,7 +7,7 @@ import EventBus from '@/utils/bus'
// create an axios instance
// create an axios instance
const
service
=
axios
.
create
({
const
service
=
axios
.
create
({
baseURL
:
'/
api/
'
,
// url = base url + request url
baseURL
:
'/'
,
// url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
// withCredentials: true, // send cookies when cross-domain requests
timeout
:
5000
// request timeout
timeout
:
5000
// request timeout
})
})
...
@@ -33,6 +33,7 @@ function endLoading(el) {
...
@@ -33,6 +33,7 @@ function endLoading(el) {
// request interceptor
// request interceptor
service
.
interceptors
.
request
.
use
(
service
.
interceptors
.
request
.
use
(
config
=>
{
config
=>
{
console
.
log
(
config
)
// do something before request is sent
// do something before request is sent
startLoading
(
config
.
el
)
startLoading
(
config
.
el
)
// config.data = json.dumps(config.data)
// config.data = json.dumps(config.data)
...
...
src/views/alarm/api.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
;
import
request
from
'@/utils/request'
;
const
path
=
{
const
path
=
{
cableTimeList
:
'sysMonitorAlarm/selectPage'
,
cableTimeList
:
'api/sysMonitorAlarm/selectPage'
,
cableConfirm
:
'sysMonitorAlarm/confirm'
,
cableConfirm
:
'api/sysMonitorAlarm/confirm'
,
cableCancel
:
'sysMonitorAlarm/cancel'
,
cableCancel
:
'api/sysMonitorAlarm/cancel'
,
eliminate
:
'api/sysMonitorAlarm/eliminate'
,
deviceList
:
'sysConnectAlarm/selectPage'
,
deviceList
:
'api/sysConnectAlarm/selectPage'
,
deviceConfirm
:
'sysConnectAlarm/confirm'
,
deviceConfirm
:
'api/sysConnectAlarm/confirm'
,
deviceCancel
:
'sysConnectAlarm/cancel'
deviceCancel
:
'api/sysConnectAlarm/cancel'
,
alarmConfirmStatusStatistics
:
'api/sysMonitorAlarmStatistics/alarmConfirmStatusStatistics'
,
alarmLevelStatistics
:
'/api/sysMonitorAlarmStatistics/alarmLevelStatistics'
,
alarmLevelCountStatistics
:
'/api/sysMonitorAlarmStatistics/alarmLevelCountStatistics'
}
}
export
function
cableTimeList
()
{
export
function
cableTimeList
()
{
...
@@ -19,7 +23,9 @@ export function cableCancel() {
...
@@ -19,7 +23,9 @@ export function cableCancel() {
export
function
cableConfirm
()
{
export
function
cableConfirm
()
{
return
request
.
post
(
path
.
cableConfirm
,
...
arguments
);
return
request
.
post
(
path
.
cableConfirm
,
...
arguments
);
}
}
export
function
eliminate
()
{
return
request
.
post
(
path
.
eliminate
,
...
arguments
);
}
export
function
deviceList
()
{
export
function
deviceList
()
{
return
request
.
post
(
path
.
deviceList
,
...
arguments
);
return
request
.
post
(
path
.
deviceList
,
...
arguments
);
}
}
...
@@ -29,3 +35,14 @@ export function deviceConfirm() {
...
@@ -29,3 +35,14 @@ export function deviceConfirm() {
export
function
deviceCancel
()
{
export
function
deviceCancel
()
{
return
request
.
post
(
path
.
deviceCancel
,
...
arguments
);
return
request
.
post
(
path
.
deviceCancel
,
...
arguments
);
}
}
export
function
alarmConfirmStatusStatistics
()
{
return
request
.
post
(
path
.
alarmConfirmStatusStatistics
,
...
arguments
);
}
export
function
alarmLevelStatistics
()
{
return
request
.
post
(
path
.
alarmLevelStatistics
,
...
arguments
);
}
export
function
alarmLevelCountStatistics
()
{
return
request
.
post
(
path
.
alarmLevelCountStatistics
,
...
arguments
);
}
src/views/alarm/cableTime/components/search.vue
View file @
b1d21bb3
...
@@ -51,7 +51,7 @@
...
@@ -51,7 +51,7 @@
v-for=
"(val, key) in alarmType"
v-for=
"(val, key) in alarmType"
:key=
"key"
:key=
"key"
:label=
"val"
:label=
"val"
:value=
"
val
"
:value=
"
key
"
>
>
</el-option>
</el-option>
</el-select>
</el-select>
...
@@ -77,7 +77,7 @@
...
@@ -77,7 +77,7 @@
<
script
>
<
script
>
import
{
commonQuery
}
from
"@/views/history/api"
;
import
{
commonQuery
}
from
"@/views/history/api"
;
import
{
alarmLeval
,
alarmType
}
from
"@/const"
;
import
{
alarmLeval
,
alarmType
}
from
"@/const"
;
export
default
{
export
default
{
name
:
"search"
,
name
:
"search"
,
...
@@ -87,7 +87,7 @@ export default {
...
@@ -87,7 +87,7 @@ export default {
form
:
formInit
(),
form
:
formInit
(),
alarmLeval
,
alarmLeval
,
alarmType
,
alarmType
,
dateRange
:
[]
dateRange
:
[],
};
};
},
},
mounted
()
{
mounted
()
{
...
@@ -95,10 +95,13 @@ export default {
...
@@ -95,10 +95,13 @@ export default {
},
},
methods
:
{
methods
:
{
toSearch
()
{
toSearch
()
{
this
.
form
.
startUploadTime
=
this
.
dateRange
[
0
];
this
.
form
.
endUploadTime
=
this
.
dateRange
[
1
];
this
.
$emit
(
"search"
,
this
.
form
);
this
.
$emit
(
"search"
,
this
.
form
);
},
},
reset
()
{
reset
()
{
this
.
form
=
formInit
();
this
.
form
=
formInit
();
this
.
dateRange
=
[]
this
.
$emit
(
"search"
);
this
.
$emit
(
"search"
);
},
},
getInit
()
{
getInit
()
{
...
...
src/views/alarm/cableTime/index.vue
View file @
b1d21bb3
...
@@ -125,7 +125,7 @@
...
@@ -125,7 +125,7 @@
<el-button
<el-button
v-if=
"scope.row.confirmStatus == 1"
v-if=
"scope.row.confirmStatus == 1"
type=
"text"
type=
"text"
@
click=
"
confirmAlarm
(scope.row)"
@
click=
"
eliminate
(scope.row)"
>
已消除
</el-button
>
已消除
</el-button
>
>
</
template
>
</
template
>
...
@@ -201,7 +201,7 @@
...
@@ -201,7 +201,7 @@
</template>
</template>
<
script
>
<
script
>
import
{
cableTimeList
,
cableConfirm
,
cableCancel
}
from
"../api"
;
import
{
cableTimeList
,
cableConfirm
,
cableCancel
,
eliminate
}
from
"../api"
;
import
{
exportLeakyCable
}
from
"@/api/export"
;
import
{
exportLeakyCable
}
from
"@/api/export"
;
import
search
from
"./components/search.vue"
;
import
search
from
"./components/search.vue"
;
import
download
from
"@/utils/download"
;
import
download
from
"@/utils/download"
;
...
@@ -247,6 +247,26 @@ export default {
...
@@ -247,6 +247,26 @@ export default {
this
.
searchOption
=
this
.
$route
.
query
;
this
.
searchOption
=
this
.
$route
.
query
;
},
},
methods
:
{
methods
:
{
eliminate
(
row
)
{
this
.
$confirm
(
"是否将该项警告消除?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
this
.
handleEliminate
(
row
.
id
);
})
.
catch
(()
=>
{
warningAlert
(
"取消"
);
});
},
async
handleEliminate
(
id
)
{
let
res
=
await
eliminate
({
id
:
id
});
if
(
res
.
code
===
200
)
{
successAlert
(
"取消告警成功"
);
this
.
getTableData
();
}
},
// 表格背景图颜色
// 表格背景图颜色
cellClassFn
({
row
,
column
,
rowIndex
,
columnIndex
})
{
cellClassFn
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
if
(
...
...
src/views/alarm/device/components/search.vue
View file @
b1d21bb3
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
placeholder=
"请输入网元设备"
placeholder=
"请输入网元设备"
></el-input>
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"监测设备厂家"
label-width=
"120px"
>
<
!--
<
el-form-item
label=
"监测设备厂家"
label-width=
"120px"
>
<el-select
v-model=
"value"
placeholder=
"请选择"
>
<el-select
v-model=
"value"
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"item in options"
v-for=
"item in options"
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
>
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
-->
<el-form-item
label=
"上传时间"
>
<el-form-item
label=
"上传时间"
>
<el-date-picker
<el-date-picker
v-model=
"dateRange"
v-model=
"dateRange"
...
...
src/views/alarm/statistics/index.vue
View file @
b1d21bb3
...
@@ -25,7 +25,7 @@
...
@@ -25,7 +25,7 @@
class=
"ml10"
class=
"ml10"
type=
"primary"
type=
"primary"
icon=
"el-icon-refresh-right"
icon=
"el-icon-refresh-right"
@
click=
"
getIni
t"
@
click=
"
handlePrin
t"
>
打印
</el-button
>
打印
</el-button
>
>
</div>
</div>
...
@@ -39,31 +39,55 @@
...
@@ -39,31 +39,55 @@
>
>
<el-form-item
label=
"告警对象"
>
<el-form-item
label=
"告警对象"
>
<el-input
<el-input
v-model=
"form.
pointDeviceName
"
v-model=
"form.
alarmTarget
"
clearable
clearable
placeholder=
"请输入告警对象"
placeholder=
"请输入告警对象"
></el-input>
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"告警类型"
>
<el-form-item
label=
"告警类型"
>
<el-input
<el-select
v-model=
"form.pointDeviceName"
v-model=
"form.alarmType"
placeholder=
"请选择告警类型"
clearable
clearable
placeholder=
"请输入告警类型"
>
></el-input>
<el-option
v-for=
"(val, key) in alarmType"
:key=
"key"
:label=
"val"
:value=
"key"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"告警级别"
>
<el-form-item
label=
"告警级别"
>
<el-input
<el-select
v-model=
"form.pointDeviceName"
v-model=
"form.alarmLevel"
placeholder=
"请选择告警级别"
clearable
clearable
placeholder=
"请输入告警级别"
>
></el-input>
<el-option
v-for=
"(val, key) in alarmLeval"
:key=
"key"
:label=
"val"
:value=
"key"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"告警状态"
>
<el-form-item
label=
"告警状态"
>
<el-input
<el-select
v-model=
"form.pointDeviceName"
v-model=
"form.confirmStatus"
placeholder=
"请选择告警类型"
clearable
clearable
placeholder=
"请输入告警状态"
>
></el-input>
<el-option
v-for=
"(val, key) in confirmStatus"
:key=
"key"
:label=
"val"
:value=
"key"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"告警产生时间"
>
<el-form-item
label=
"告警产生时间"
>
<el-date-picker
<el-date-picker
...
@@ -81,98 +105,336 @@
...
@@ -81,98 +105,336 @@
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
class=
"both"
>
<div
id=
"print"
>
<div
class=
"card"
>
<div
class=
"both"
>
<div
class=
"nav-title"
>
告警类型分布统计
</div>
<div
class=
"card"
>
<div
class=
"nav-title"
>
告警状态分布统计
</div>
<div>
<div
id=
"chart1"
style=
"width: 600px; height: 300px"
></div>
</div>
</div>
<div
class=
"card"
>
<div
class=
"nav-title"
>
告警级别分布
</div>
<div>
<div
id=
"chart2"
style=
"width: 600px; height: 300px"
></div>
</div>
</div>
</div>
</div>
<div
class=
"card"
>
<div
class=
"card"
>
<div
class=
"nav-title"
>
告警级别分布
</div>
<div
class=
"nav-title"
>
告警数量统计
</div>
<div>
<div
id=
"chart3"
style=
"width: 100%; height: 300px"
></div>
</div>
</div>
</div>
</div>
<div>
<div
class=
"card"
>
<!-- :cell-class-name="cellClassFn" -->
<div
class=
"nav-title"
>
告警数量统计
</div>
<el-table
</div>
:data=
"tableData"
<div>
style=
"width: 100%"
<!-- :cell-class-name="cellClassFn" -->
:header-cell-style=
"
{ background: '#EAF1FE', color: '#666666' }"
<el-table
>
:data=
"tableData"
<el-table-column
style=
"width: 100%"
type=
"index"
:header-cell-style=
"
{ background: '#EAF1FE', color: '#666666' }"
label=
"序号"
>
width=
"100"
<el-table-column
type=
"index"
label=
"序号"
width=
"100"
align=
"center"
/>
align=
"center"
<el-table-column
/>
prop=
"siteName"
<el-table-column
label=
"告警对象编号"
prop=
"siteName"
width=
"180"
label=
"告警对象编号"
align=
"center"
width=
"180"
/>
align=
"center"
<el-table-column
/>
prop=
"alarmTarget"
<el-table-column
label=
"告警对象名称"
prop=
"alarmTarget"
width=
"180"
label=
"告警对象名称"
align=
"center"
width=
"180"
/>
align=
"center"
<el-table-column
/>
prop=
"siteName"
<el-table-column
label=
"告警类型"
prop=
"siteName"
width=
"150"
label=
"告警类型"
align=
"center"
width=
"150"
/>
align=
"center"
<el-table-column
/>
prop=
"siteName"
<el-table-column
label=
"告警级别"
prop=
"siteName"
width=
"150"
label=
"告警级别"
align=
"center"
width=
"150"
/>
align=
"center"
<el-table-column
prop=
"alarmInfo"
label=
"告警状态"
align=
"center"
>
/>
<template
slot-scope=
"scope"
>
<el-table-column
prop=
"alarmInfo"
label=
"告警状态"
align=
"center"
>
<div
<template
slot-scope=
"scope"
>
v-for=
"(item, index) in scope.row.alarmInfo"
<div
:key=
"index"
v-for=
"(item, index) in scope.row.alarmInfo"
:class=
"levelStyle[item.level]"
:key=
"index"
>
:class=
"levelStyle[item.level]"
<span>
距离:
{{
item
.
distance
}}
</span
>
>
<span>
距离:
{{
item
.
distance
}}
</span
<span>
驻波比:
{{
item
.
value
}}
</span>
>
</div>
<span>
驻波比:
{{
item
.
value
}}
</span>
<div>
漏缆百米损耗:
{{
scope
.
row
.
lossValue
}}
</div>
</div>
</
template
>
<div>
漏缆百米损耗:
{{
scope
.
row
.
lossValue
}}
</div>
</el-table-column>
</
template
>
</el-table-column>
<el-table-column
<el-table-column
prop=
"confirmTime"
prop=
"confirmTime"
label=
"告警产生时间"
label=
"告警产生时间"
width=
"180"
width=
"180"
align=
"center"
align=
"center"
/>
/>
<el-table-column
label=
"操作"
align=
"center"
width=
"100"
>
<el-table-column
label=
"操作"
align=
"center"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"confirmAlarm(scope.row)"
<el-button
type=
"text"
@
click=
"confirmAlarm(scope.row)"
>
详情
</el-button
>
详情
</el-button
>
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</div>
</div>
</div>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
*
as
echarts
from
"echarts"
;
import
printToPdf
from
"./printToPdf.js"
;
import
{
alarmLeval
,
alarmType
,
confirmStatus
}
from
"@/const"
;
import
{
alarmConfirmStatusStatistics
,
alarmLevelStatistics
,
alarmLevelCountStatistics
,
}
from
"../api"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
form
:
{},
form
:
{},
dateRange
:
[],
dateRange
:
[],
value
:
""
,
value
:
""
,
alarmLeval
,
alarmType
,
confirmStatus
,
options
:
[],
options
:
[],
myChart
:
{
chart1
:
null
,
chart2
:
null
,
chart3
:
null
,
},
tableData
:
[],
tableData
:
[],
isQuery
:
false
,
isQuery
:
false
,
};
};
},
},
mounted
()
{
this
.
handlealArmConfirmStatusStatistics
();
this
.
handlealArmLevelStatistics
();
this
.
handleAlarmLevelCountStatistics
();
},
methods
:
{
methods
:
{
async
handlealArmConfirmStatusStatistics
()
{
let
res
=
await
alarmConfirmStatusStatistics
(
this
.
form
);
if
(
this
.
myChart
.
chart1
!=
null
)
{
this
.
myChart
.
chart1
.
dispose
();
}
let
chartDom
=
document
.
getElementById
(
"chart1"
);
this
.
myChart
.
chart1
=
echarts
.
init
(
chartDom
);
let
option
;
option
=
{
tooltip
:
{
trigger
:
"item"
,
},
legend
:
{
left
:
"right"
,
},
series
:
[
{
name
:
"Access From"
,
type
:
"pie"
,
radius
:
"50%"
,
data
:
[
{
value
:
1048
,
name
:
"Search Engine"
},
{
value
:
735
,
name
:
"Direct"
},
{
value
:
580
,
name
:
"Email"
},
{
value
:
484
,
name
:
"Union Ads"
},
{
value
:
300
,
name
:
"Video Ads"
},
],
emphasis
:
{
itemStyle
:
{
shadowBlur
:
10
,
shadowOffsetX
:
0
,
shadowColor
:
"rgba(0, 0, 0, 0.5)"
,
},
},
},
],
};
option
&&
this
.
myChart
.
chart1
.
setOption
(
option
);
},
async
handlealArmLevelStatistics
()
{
let
res
=
await
alarmLevelStatistics
(
this
.
form
);
if
(
this
.
myChart
.
chart2
!=
null
)
{
this
.
myChart
.
chart2
.
dispose
();
}
let
chartDom
=
document
.
getElementById
(
"chart2"
);
this
.
myChart
.
chart2
=
echarts
.
init
(
chartDom
);
let
option
;
option
=
{
tooltip
:
{
trigger
:
"item"
,
},
legend
:
{
top
:
"5%"
,
left
:
"center"
,
},
series
:
[
{
name
:
"Access From"
,
type
:
"pie"
,
radius
:
[
"40%"
,
"70%"
],
avoidLabelOverlap
:
false
,
label
:
{
show
:
false
,
position
:
"center"
,
},
emphasis
:
{
label
:
{
show
:
true
,
fontSize
:
40
,
fontWeight
:
"bold"
,
},
},
labelLine
:
{
show
:
false
,
},
data
:
[
{
value
:
1048
,
name
:
"Search Engine"
},
{
value
:
735
,
name
:
"Direct"
},
{
value
:
580
,
name
:
"Email"
},
{
value
:
484
,
name
:
"Union Ads"
},
{
value
:
300
,
name
:
"Video Ads"
},
],
},
],
};
option
&&
this
.
myChart
.
chart2
.
setOption
(
option
);
},
async
handleAlarmLevelCountStatistics
()
{
let
res
=
await
alarmLevelCountStatistics
(
this
.
form
);
if
(
this
.
myChart
.
chart3
!=
null
)
{
this
.
myChart
.
chart3
.
dispose
();
}
let
chartDom
=
document
.
getElementById
(
"chart3"
);
this
.
myChart
.
chart3
=
echarts
.
init
(
chartDom
);
let
option
;
option
=
{
tooltip
:
{
trigger
:
"axis"
,
axisPointer
:
{
type
:
"cross"
,
crossStyle
:
{
color
:
"#999"
,
},
},
},
toolbox
:
{
feature
:
{
dataView
:
{
show
:
true
,
readOnly
:
false
},
magicType
:
{
show
:
true
,
type
:
[
"line"
,
"bar"
]
},
restore
:
{
show
:
true
},
saveAsImage
:
{
show
:
true
},
},
},
legend
:
{
data
:
[
"Evaporation"
,
"Precipitation"
,
"Temperature"
],
},
xAxis
:
[
{
type
:
"category"
,
data
:
[
"Mon"
,
"Tue"
,
"Wed"
,
"Thu"
,
"Fri"
,
"Sat"
,
"Sun"
],
axisPointer
:
{
type
:
"shadow"
,
},
},
],
yAxis
:
[
{
type
:
"value"
,
name
:
"Precipitation"
,
min
:
0
,
max
:
250
,
interval
:
50
,
axisLabel
:
{
formatter
:
"{value} ml"
,
},
},
{
type
:
"value"
,
name
:
"Temperature"
,
min
:
0
,
max
:
25
,
interval
:
5
,
axisLabel
:
{
formatter
:
"{value} °C"
,
},
},
],
series
:
[
{
name
:
"Evaporation"
,
type
:
"bar"
,
tooltip
:
{
valueFormatter
:
function
(
value
)
{
return
value
+
" ml"
;
},
},
data
:
[
2.0
,
4.9
,
7.0
,
23.2
,
25.6
,
76.7
,
135.6
,
162.2
,
32.6
,
20.0
,
6.4
,
3.3
,
],
},
{
name
:
"Precipitation"
,
type
:
"bar"
,
tooltip
:
{
valueFormatter
:
function
(
value
)
{
return
value
+
" ml"
;
},
},
data
:
[
2.6
,
5.9
,
9.0
,
26.4
,
28.7
,
70.7
,
175.6
,
182.2
,
48.7
,
18.8
,
6.0
,
2.3
,
],
},
{
name
:
"Temperature"
,
type
:
"line"
,
yAxisIndex
:
1
,
tooltip
:
{
valueFormatter
:
function
(
value
)
{
return
value
+
" °C"
;
},
},
data
:
[
2.0
,
2.2
,
3.3
,
4.5
,
6.3
,
10.2
,
20.3
,
23.4
,
23.0
,
16.5
,
12.0
,
6.2
,
],
},
],
};
option
&&
this
.
myChart
.
chart3
.
setOption
(
option
);
},
getInit
()
{},
getInit
()
{},
reset
()
{},
reset
()
{
toSearch
()
{},
this
.
dateRange
=
[];
this
.
form
=
{};
},
toSearch
()
{
this
.
form
.
startUploadTime
=
this
.
dateRange
[
0
];
this
.
form
.
endUploadTime
=
this
.
dateRange
[
1
];
// this.$emit("search", this.form);
},
handlePrint
()
{
printToPdf
(
"print"
);
},
},
},
};
};
</
script
>
</
script
>
...
@@ -212,19 +474,22 @@ export default {
...
@@ -212,19 +474,22 @@ export default {
margin-bottom
:
0
;
margin-bottom
:
0
;
}
}
}
}
.both
{
}
display
:
flex
;
#print
{
justify-content
:
space-between
;
width
:
100%
;
gap
:
16px
;
}
.card
{
.both
{
flex
:
1
;
display
:
flex
;
}
justify-content
:
space-between
;
}
gap
:
16px
;
.card
{
.card
{
margin-bottom
:
16px
;
flex
:
1
;
padding
:
16px
;
border-radius
:
8px
;
border
:
1px
solid
#d7d7d7
;
}
}
}
}
.card
{
margin-bottom
:
16px
;
padding
:
16px
;
border-radius
:
8px
;
border
:
1px
solid
#d7d7d7
;
}
</
style
>
</
style
>
\ No newline at end of file
src/views/alarm/statistics/printToPdf.js
0 → 100644
View file @
b1d21bb3
function
printToPdf
(
targetId
)
{
// 确保DOM已完全加载
if
(
document
.
readyState
===
'loading'
)
{
document
.
addEventListener
(
'DOMContentLoaded'
,
function
()
{
performPrint
(
targetId
);
});
}
else
{
performPrint
(
targetId
);
}
}
function
performPrint
(
targetId
)
{
const
targetElement
=
document
.
getElementById
(
targetId
);
if
(
!
targetElement
)
{
console
.
error
(
'Element with ID'
+
targetId
+
'not found.'
);
return
;
}
// 克隆目标元素及其子元素
const
clonedElement
=
targetElement
.
cloneNode
(
true
);
clonedElement
.
style
.
width
=
'320mm'
// 在打印之前隐藏所有元素
function
hideAllElements
()
{
document
.
getElementById
(
'app'
).
style
.
display
=
'none'
// 将克隆的元素添加到body中
document
.
body
.
appendChild
(
clonedElement
);
}
// 在打印结束后恢复所有元素
function
showAllElements
()
{
document
.
body
.
removeChild
(
clonedElement
);
document
.
getElementById
(
'app'
).
style
.
display
=
''
}
// 添加事件监听器以在打印之前和之后执行操作
window
.
addEventListener
(
'beforeprint'
,
hideAllElements
);
window
.
addEventListener
(
'afterprint'
,
showAllElements
);
// 触发打印
window
.
print
();
// 打印完成后移除事件监听器
window
.
removeEventListener
(
'beforeprint'
,
hideAllElements
);
window
.
removeEventListener
(
'afterprint'
,
showAllElements
);
}
// 调用函数
export
default
printToPdf
\ No newline at end of file
src/views/dashboard/api.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
const
path
=
{
const
path
=
{
treeBaseInfo
:
'/home/treeBaseInfo'
,
treeBaseInfo
:
'/
api/
home/treeBaseInfo'
,
railWayOpen
:
'/railWay/updateRailWay'
,
railWayOpen
:
'/
api/
railWay/updateRailWay'
,
siteOpen
:
'/site/updateSite'
,
siteOpen
:
'/
api/
site/updateSite'
,
fsuOpen
:
'/fsu/updateFsu'
,
fsuOpen
:
'/
api/
fsu/updateFsu'
,
monitorEquipOpen
:
'/monitorEquip/updateMonitorEquip'
,
monitorEquipOpen
:
'/
api/
monitorEquip/updateMonitorEquip'
,
leakyCableOpen
:
'/leakyCable/updateLeakyCable'
,
leakyCableOpen
:
'/
api/
leakyCable/updateLeakyCable'
,
updateFeeder
:
'/antennaFeeder/updateFeeder'
,
updateFeeder
:
'/a
pi/a
ntennaFeeder/updateFeeder'
,
getYear
:
'/sysStandingWaveRatio/getYear'
,
getYear
:
'/
api/
sysStandingWaveRatio/getYear'
,
getMonth
:
'/sysStandingWaveRatio/getMonth'
,
getMonth
:
'/
api/
sysStandingWaveRatio/getMonth'
,
}
}
export
function
treeBaseInfo
()
{
export
function
treeBaseInfo
()
{
...
...
src/views/history/api.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
const
path
=
{
const
path
=
{
MonitorStatusList
:
'sysHistoryMonitorStatus/selectPage'
,
MonitorStatusList
:
'
api/
sysHistoryMonitorStatus/selectPage'
,
MonitorStatusDelete
:
'sysHistoryMonitorStatus/batchDeleteHistoryMonitorStatus'
,
MonitorStatusDelete
:
'
api/
sysHistoryMonitorStatus/batchDeleteHistoryMonitorStatus'
,
pictorialStatement
:
'sysHistoryMonitorStatus/pictorialStatement'
,
pictorialStatement
:
'
api/
sysHistoryMonitorStatus/pictorialStatement'
,
MonitorMaintainList
:
'sysHistoryMonitorMaintain/selectPage'
,
MonitorMaintainList
:
'
api/
sysHistoryMonitorMaintain/selectPage'
,
MonitorMaintainDelete
:
'sysHistoryMonitorMaintain/batchDeleteHistoryMonitorMaintain'
,
MonitorMaintainDelete
:
'
api/
sysHistoryMonitorMaintain/batchDeleteHistoryMonitorMaintain'
,
ConnectStatusList
:
'sysHistoryConnectStatus/selectPage'
,
ConnectStatusList
:
'
api/
sysHistoryConnectStatus/selectPage'
,
ConnectStatusDelete
:
'sysHistoryConnectStatus/batchDeleteHistoryConnectStatus'
,
ConnectStatusDelete
:
'
api/
sysHistoryConnectStatus/batchDeleteHistoryConnectStatus'
,
ConnectStatusDeleteAll
:
'sysHistoryConnectStatus/deleteAll'
,
ConnectStatusDeleteAll
:
'
api/
sysHistoryConnectStatus/deleteAll'
,
ConnectMaintainList
:
'sysHistoryConnectMaintain/selectPage'
,
ConnectMaintainList
:
'
api/
sysHistoryConnectMaintain/selectPage'
,
ConnectMaintainDelete
:
'sysHistoryConnectMaintain/batchDeleteHistoryConnectMaintain'
,
ConnectMaintainDelete
:
'
api/
sysHistoryConnectMaintain/batchDeleteHistoryConnectMaintain'
,
ConnectMaintainDeleteAll
:
'sysHistoryConnectMaintain/deleteAll'
,
ConnectMaintainDeleteAll
:
'
api/
sysHistoryConnectMaintain/deleteAll'
,
commonQuery
:
'sysHistoryCommon/getSiteAndAlarmAll'
,
commonQuery
:
'
api/
sysHistoryCommon/getSiteAndAlarmAll'
,
}
}
export
function
MonitorStatusList
()
{
export
function
MonitorStatusList
()
{
...
...
src/views/jobgroup/jobinfo/index.vue
0 → 100644
View file @
b1d21bb3
src/views/jobgroup/joblog/index.vue
0 → 100644
View file @
b1d21bb3
src/views/jobgroup/jobmanage/index.vue
0 → 100644
View file @
b1d21bb3
src/views/jobgroup/screen/index.vue
0 → 100644
View file @
b1d21bb3
<
template
>
<div
class=
""
>
<div
class=
"card"
>
<div
class=
"card-body"
>
<div
class=
"icon"
></div>
<div>
<div
class=
"title"
></div>
<div
class=
"num"
></div>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
{
chartInfo
}
from
"@/api/job.js"
;
export
default
{
data
()
{
return
{
topList
:
[
{
title
:
"设备总数"
,
icon
:
"el-icon-s-home"
,
num
:
3
,
color
:
"#00C0EF"
,
msg
:
"调度中心运行的任务数量"
,
},
{
title
:
"调度次数"
,
icon
:
"el-icon-s-home"
,
num
:
0
,
color
:
"#F39C12"
,
msg
:
"调度中心触发的调度次数"
,
},
{
title
:
"执行器数量"
,
icon
:
"el-icon-s-home"
,
num
:
0
,
color
:
"#00A65A"
,
msg
:
"调度中心在线的执行器机器数量"
,
},
],
};
},
mounted
()
{
this
.
handleChartInfo
();
},
methods
:
{
async
handleChartInfo
(){
console
.
log
(
'---'
);
let
res
=
await
chartInfo
({});
// console.log(res);
}
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
</
style
>
\ No newline at end of file
src/views/maintain/api.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
;
import
request
from
'@/utils/request'
;
const
path
=
{
const
path
=
{
cableTypeEnum
:
'equipParam/selectItem'
,
cableTypeEnum
:
'
api/
equipParam/selectItem'
,
saveParam
:
'equipParam/saveParam'
,
saveParam
:
'
api/
equipParam/saveParam'
,
selectEquipByType
:
'equipParam/selectEquipByType'
,
selectEquipByType
:
'
api/
equipParam/selectEquipByType'
,
}
}
export
function
cableTypeEnum
()
{
export
function
cableTypeEnum
()
{
...
...
src/views/monitor/api.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
const
path
=
{
const
path
=
{
CableStatusList
:
'sysLeakyCableStatus/selectPage'
,
CableStatusList
:
'
api/
sysLeakyCableStatus/selectPage'
,
DeviceStatusList
:
'sysDeviceStatus/selectPage'
,
DeviceStatusList
:
'
api/
sysDeviceStatus/selectPage'
,
}
}
export
function
CableStatusList
()
{
export
function
CableStatusList
()
{
...
...
src/views/setting/add/comp/autoAdd.vue
View file @
b1d21bb3
<
template
>
<div>
<el-table
ref=
"multipleTable"
class=
"statistics-table"
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%; height: auto"
:row-class-name=
"tableRowClassName"
:row-style=
"
{ height: '50px' }"
:header-cell-style="{
background: '#eaf1fe',
color: '#000',
fontWeight: 700,
height: '50px',
}"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"55"
align=
"center"
/>
<el-table-column
prop=
"equipCode"
label=
"设备编号"
align=
"center"
/>
<el-table-column
prop=
"equipName"
label=
"设备名称"
show-overflow-tooltip
align=
"center"
/>
<el-table-column
prop=
"ip"
label=
"设备IP"
align=
"center"
/>
<el-table-column
prop=
"railWayName"
label=
"设备型号"
align=
"center"
/>
<el-table-column
prop=
"siteName"
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>
</div>
</template>
<
script
>
export
default
{
data
()
{
return
{
tableData
:
[
{
equipCode
:
"123456"
,
equipName
:
"123456"
,
ip
:
"123456"
,
railWayName
:
"123456"
,
siteName
:
"123456"
,
},
{
equipCode
:
"123456"
,
equipName
:
"123456"
,
ip
:
"123456"
,
railWayName
:
"123456"
,
},
],
};
},
methods
:
{
tableRowClassName
({
row
,
rowIndex
})
{
return
rowIndex
%
2
===
0
?
""
:
"single-row"
;
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.statistics-table
{
.single-row
{
background
:
#f1f6ff
;
}
td
{
padding
:
5px
!
important
;
}
}
</
style
>
\ No newline at end of file
src/views/setting/add/comp/parameter.vue
0 → 100644
View file @
b1d21bb3
src/views/setting/api.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
;
import
request
from
'@/utils/request'
;
const
path
=
{
const
path
=
{
railWaylist
:
'railWay/selectPage'
,
railWaylist
:
'
api/
railWay/selectPage'
,
railWaydetail
:
'railWay/detail'
,
railWaydetail
:
'
api/
railWay/detail'
,
railWaysave
:
'railWay/save'
,
railWaysave
:
'
api/
railWay/save'
,
railWaybatchDelete
:
'railWay/batchDelete'
,
railWaybatchDelete
:
'
api/
railWay/batchDelete'
,
railWayselectList
:
'railWay/selectList'
,
railWayselectList
:
'
api/
railWay/selectList'
,
updateRailWay
:
'railWay/updateRailWay'
,
updateRailWay
:
'
api/
railWay/updateRailWay'
,
sitelist
:
'site/selectPage'
,
sitelist
:
'
api/
site/selectPage'
,
sitedetail
:
'site/detail'
,
sitedetail
:
'
api/
site/detail'
,
sitesave
:
'site/save'
,
sitesave
:
'
api/
site/save'
,
sitebatchDelete
:
'site/batchDelete'
,
sitebatchDelete
:
'
api/
site/batchDelete'
,
siteselectList
:
'site/selectList'
,
siteselectList
:
'
api/
site/selectList'
,
selectForSite
:
'site/selectForSite'
,
//铁路查站点
selectForSite
:
'
api/
site/selectForSite'
,
//铁路查站点
updateSiteConf
:
'site/updateSiteConf'
,
updateSiteConf
:
'
api/
site/updateSiteConf'
,
fsuList
:
'fsu/selectPage'
,
fsuList
:
'
api/
fsu/selectPage'
,
fsudetail
:
'fsu/detail'
,
fsudetail
:
'
api/
fsu/detail'
,
fsusave
:
'fsu/save'
,
fsusave
:
'
api/
fsu/save'
,
fsubatchDelete
:
'fsu/batchDeleteFsu'
,
fsubatchDelete
:
'
api/
fsu/batchDeleteFsu'
,
fsuselectList
:
'fsu/selectList'
,
fsuselectList
:
'
api/
fsu/selectList'
,
selectForFsu
:
'fsu/selectForFsu'
,
selectForFsu
:
'
api/
fsu/selectForFsu'
,
updateFsuConf
:
'fsu/updateFsuConf'
,
updateFsuConf
:
'
api/
fsu/updateFsuConf'
,
selectFsuItem
:
'dict/selectFsuItem'
,
//fsu数据字典
selectFsuItem
:
'
api/
dict/selectFsuItem'
,
//fsu数据字典
monitorEquipList
:
'monitorEquip/selectPage'
,
monitorEquipList
:
'
api/
monitorEquip/selectPage'
,
monitorEquipdetail
:
'monitorEquip/detail'
,
monitorEquipdetail
:
'
api/
monitorEquip/detail'
,
monitorEquipsave
:
'monitorEquip/save'
,
monitorEquipsave
:
'
api/
monitorEquip/save'
,
monitorEquipbatchDelete
:
'monitorEquip/batchDeleteEquip'
,
monitorEquipbatchDelete
:
'
api/
monitorEquip/batchDeleteEquip'
,
monitorEquipselectList
:
'monitorEquip/selectList'
,
monitorEquipselectList
:
'
api/
monitorEquip/selectList'
,
selectForEquip
:
'monitorEquip/selectForEquip'
,
selectForEquip
:
'
api/
monitorEquip/selectForEquip'
,
selectMonitorItem
:
'dict/selectMonitorItem'
,
//监测设备字典
selectMonitorItem
:
'
api/
dict/selectMonitorItem'
,
//监测设备字典
updateMonitorEquipConf
:
'monitorEquip/updateMonitorEquipConf'
,
updateMonitorEquipConf
:
'
api/
monitorEquip/updateMonitorEquipConf'
,
leakyCableList
:
'leakyCable/selectPage'
,
leakyCableList
:
'
api/
leakyCable/selectPage'
,
leakyCabledetail
:
'leakyCable/detail'
,
leakyCabledetail
:
'
api/
leakyCable/detail'
,
leakyCablesave
:
'leakyCable/save'
,
leakyCablesave
:
'
api/
leakyCable/save'
,
leakyCablebatchDelete
:
'leakyCable/batchDeleteEquip'
,
leakyCablebatchDelete
:
'
api/
leakyCable/batchDeleteEquip'
,
leakyCableselectList
:
'leakyCable/selectList'
,
leakyCableselectList
:
'
api/
leakyCable/selectList'
,
selectForCable
:
'leakyCable/selectForCable'
,
selectForCable
:
'
api/
leakyCable/selectForCable'
,
updateLeakyCableConf
:
'leakyCable/updateLeakyCableConf'
,
updateLeakyCableConf
:
'
api/
leakyCable/updateLeakyCableConf'
,
antennaFeederSave
:
'antennaFeeder/save'
,
antennaFeederSave
:
'a
pi/a
ntennaFeeder/save'
,
antennaFeederDelete
:
'antennaFeeder/batchDeleteEquip'
,
antennaFeederDelete
:
'a
pi/a
ntennaFeeder/batchDeleteEquip'
,
antennaFeederDetail
:
'antennaFeeder/detail'
,
antennaFeederDetail
:
'a
pi/a
ntennaFeeder/detail'
,
antennaFeederList
:
'antennaFeeder/selectFeederPage'
,
antennaFeederList
:
'a
pi/a
ntennaFeeder/selectFeederPage'
,
updateFeederConf
:
'antennaFeeder/updateFeederConf'
,
updateFeederConf
:
'a
pi/a
ntennaFeeder/updateFeederConf'
,
}
}
// 铁路线
// 铁路线
export
function
railWaylist
()
{
export
function
railWaylist
()
{
...
...
src/views/setting/statistics/comp/monitorTable.vue
View file @
b1d21bb3
...
@@ -85,6 +85,20 @@
...
@@ -85,6 +85,20 @@
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"监测设备厂家:"
>
<el-select
placeholder=
"请选择监测设备厂家"
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>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"success"
@
click=
"searchQuery()"
>
查询
</el-button>
<el-button
type=
"success"
@
click=
"searchQuery()"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
<el-button
type=
"primary"
@
click=
"reset"
>
重置
</el-button>
...
@@ -159,11 +173,21 @@
...
@@ -159,11 +173,21 @@
width=
"40%"
width=
"40%"
:close-on-click-modal=
"false"
:close-on-click-modal=
"false"
>
>
<autoAdd
/>
</el-dialog>
<el-dialog
title=
"监测设备参数设置"
:visible
.
sync=
"openSetting"
width=
"40%"
:close-on-click-modal=
"false"
>
<autoAdd
/>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
monitor
from
"../../add/comp/monitorEquip.vue"
;
import
monitor
from
"../../add/comp/monitorEquip.vue"
;
import
autoAdd
from
"../../add/comp/autoAdd.vue"
;
import
{
import
{
monitorEquiplist
,
monitorEquiplist
,
monitorEquipbatchDelete
,
monitorEquipbatchDelete
,
...
@@ -175,7 +199,7 @@ import { successAlert, warningAlert } from "@/utils/alert";
...
@@ -175,7 +199,7 @@ import { successAlert, warningAlert } from "@/utils/alert";
import
download
from
"@/utils/download"
;
import
download
from
"@/utils/download"
;
import
{
exportMonitorEquip
}
from
"@/api/export"
;
import
{
exportMonitorEquip
}
from
"@/api/export"
;
export
default
{
export
default
{
components
:
{
monitor
},
components
:
{
monitor
,
autoAdd
},
data
()
{
data
()
{
return
{
return
{
railWaySelect
:
[],
railWaySelect
:
[],
...
@@ -196,6 +220,7 @@ export default {
...
@@ -196,6 +220,7 @@ export default {
visible
:
false
,
visible
:
false
,
curInfo
:
{},
curInfo
:
{},
open
:
false
,
open
:
false
,
openSetting
:
false
,
};
};
},
},
created
()
{
created
()
{
...
@@ -212,6 +237,9 @@ export default {
...
@@ -212,6 +237,9 @@ export default {
this
.
getAllWay
();
this
.
getAllWay
();
},
},
methods
:
{
methods
:
{
handleSetting
()
{
this
.
openSetting
=
true
;
},
handleAutomatic
()
{
handleAutomatic
()
{
this
.
open
=
true
;
this
.
open
=
true
;
},
},
...
...
src/views/system/synchronize/index.vue
View file @
b1d21bb3
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
<el-tab-pane
label=
"同步设备"
>
<el-tab-pane
label=
"同步设备"
>
<div
class=
"top-box"
>
<div
class=
"top-box"
>
<div
class=
"nav-title"
>
同步设备
</div>
<div
class=
"nav-title"
>
同步设备
</div>
<el-button
type=
"primary"
@
click=
"handle
Click
"
>
开始同步
</el-button>
<el-button
type=
"primary"
@
click=
"handle
TimeSync
"
>
开始同步
</el-button>
</div>
</div>
<div
class=
"table"
>
<div
class=
"table"
>
<el-table
<el-table
...
@@ -14,51 +14,28 @@
...
@@ -14,51 +14,28 @@
:header-cell-style=
"
{ background: '#f5f7fa', color: '#909399' }"
:header-cell-style=
"
{ background: '#f5f7fa', color: '#909399' }"
>
>
<el-table-column
<el-table-column
prop=
"
name
"
prop=
"
ip
"
label=
"设备
IP
"
label=
"设备
ip
"
width=
""
width=
""
></el-table-column>
></el-table-column>
<el-table-column
<el-table-column
prop=
"
nam
e"
prop=
"
equipmentCod
e"
label=
"设备编号"
label=
"设备编号"
width=
""
width=
""
></el-table-column>
></el-table-column>
<el-table-column
<el-table-column
prop=
"name"
prop=
"lastModifiedTime"
label=
"站点名称"
width=
""
></el-table-column>
</el-table>
</div>
</el-tab-pane>
<el-tab-pane
label=
"同步记录"
>
<div
class=
"top-box"
>
<div
class=
"nav-title"
>
时间同步记录
</div>
<!--
<el-button
type=
"primary"
@
click=
"handleClick"
>
开始同步
</el-button>
-->
</div>
<div
class=
"table"
>
<el-table
:data=
"tableData"
style=
"width: 100%"
border
:header-cell-style=
"
{ background: '#f5f7fa', color: '#909399' }"
>
<el-table-column
prop=
"name"
label=
"同步设备"
width=
""
></el-table-column>
<el-table-column
prop=
"name"
label=
"状态"
width=
""
></el-table-column>
<el-table-column
prop=
"name"
label=
"同步时间"
label=
"同步时间"
width=
""
width=
""
></el-table-column>
></el-table-column>
</el-table>
</el-table>
<Pagination
:limit=
"params.size"
:page=
"params.current"
:total=
"total"
class=
"pagination"
@
pagination=
"handlePageChange"
/>
</div>
</div>
</el-tab-pane>
</el-tab-pane>
</el-tabs>
</el-tabs>
...
@@ -66,15 +43,39 @@
...
@@ -66,15 +43,39 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
selectFeederPage
}
from
"@/api/sync"
;
import
{
timeSync
}
from
"@/api/udp"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
tableData
:
[],
tableData
:
[],
params
:
{
current
:
1
,
size
:
10
,
},
total
:
0
,
};
};
},
},
mounted
()
{
this
.
handleSelectFeederPage
();
},
methods
:
{
methods
:
{
handleClick
()
{
handlePageChange
(
pageData
)
{
this
.
params
.
size
=
pageData
.
size
;
this
.
params
.
current
=
pageData
.
page
;
this
.
handleSelectFeederPage
();
},
async
handleTimeSync
()
{
let
res
=
await
timeSync
({});
console
.
log
(
res
);
this
.
$message
.
success
(
"开始备份"
);
this
.
$message
.
success
(
"开始备份"
);
this
.
handleSelectFeederPage
();
},
async
handleSelectFeederPage
()
{
let
res
=
await
selectFeederPage
({});
this
.
tableData
=
res
.
records
;
this
.
total
=
res
.
total
;
},
},
},
},
};
};
...
...
src/views/user/api.js
View file @
b1d21bb3
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
const
path
=
{
const
path
=
{
list
:
'user/selectUserPage'
,
list
:
'
api/
user/selectUserPage'
,
create
:
'user/saveUser'
,
create
:
'
api/
user/saveUser'
,
updatePwd
:
'user/updatePwd'
,
updatePwd
:
'
api/
user/updatePwd'
,
updateInfo
:
'user/updateUserBaseInfo'
,
updateInfo
:
'
api/
user/updateUserBaseInfo'
,
logList
:
'sysLog/selectLogPage'
,
logList
:
'
api/
sysLog/selectLogPage'
,
}
}
export
function
list
()
{
export
function
list
()
{
...
...
vue.config.js
View file @
b1d21bb3
...
@@ -12,7 +12,27 @@ const port = process.env.port || process.env.npm_config_port || 8886 // dev port
...
@@ -12,7 +12,27 @@ const port = process.env.port || process.env.npm_config_port || 8886 // dev port
const
rewriteDefaultConfig
=
{
const
rewriteDefaultConfig
=
{
changeOrigin
:
true
,
changeOrigin
:
true
,
target
:
'http://101.126.159.207:8886'
,
target
:
'http://101.126.159.207:8886'
,
// target: 'http://192.168.0.127:8886',
// ws: true,
headers
:
{
referer
:
'laddercloud.cn'
},
}
const
rewriteDeviceConfig
=
{
changeOrigin
:
true
,
target
:
'http://101.126.159.207:8087'
,
// target: 'http://192.168.0.127:8886',
// ws: true,
headers
:
{
referer
:
'laddercloud.cn'
},
}
const
rewriteAdminConfig
=
{
changeOrigin
:
true
,
target
:
'http://101.126.159.207:8887'
,
// target: 'http://192.168.0.127:8886',
// target: 'http://192.168.0.127:8886',
// ws: true,
// ws: true,
headers
:
{
headers
:
{
...
@@ -35,7 +55,9 @@ module.exports = {
...
@@ -35,7 +55,9 @@ module.exports = {
errors
:
true
errors
:
true
},
},
proxy
:
{
proxy
:
{
'/api'
:
rewriteDefaultConfig
'/api'
:
rewriteDefaultConfig
,
'/device'
:
rewriteDeviceConfig
,
'/xxl-job-admin'
:
rewriteAdminConfig
},
},
},
},
configureWebpack
:
{
configureWebpack
:
{
...
@@ -87,7 +109,7 @@ module.exports = {
...
@@ -87,7 +109,7 @@ module.exports = {
.
plugin
(
'ScriptExtHtmlWebpackPlugin'
)
.
plugin
(
'ScriptExtHtmlWebpackPlugin'
)
.
after
(
'html'
)
.
after
(
'html'
)
.
use
(
'script-ext-html-webpack-plugin'
,
[{
.
use
(
'script-ext-html-webpack-plugin'
,
[{
// `runtime` must same as runtimeChunk name. default is `runtime`
// `runtime` must same as runtimeChunk name. default is `runtime`
inline
:
/runtime
\.
.*
\.
js$/
inline
:
/runtime
\.
.*
\.
js$/
}])
}])
.
end
()
.
end
()
...
...
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