Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
JINRUN-PERPOSITION
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
xinzhedeai
JINRUN-PERPOSITION
Commits
90fd5fb8
Commit
90fd5fb8
authored
Dec 02, 2025
by
xinzhedeai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add:报警处理功能
parent
772d65f8
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
102 additions
and
54 deletions
+102
-54
alarm.js
src/api/jinrun/alarm.js
+1
-38
alarm.vue
src/views/sos/alarm.vue
+101
-16
No files found.
src/api/jinrun/alarm.js
View file @
90fd5fb8
...
...
@@ -39,44 +39,7 @@ export function update(data) {
// 删除报警设置
export
function
deleteAlarm
(
id
)
{
return
request
({
url
:
'
/sos/alarm/deleteAlarm
'
+
id
,
url
:
'
/sos/alarm/deleteAlarm
/
'
+
id
,
method
:
'
delete
'
})
}
// 添加聚集远程报警设置
export
function
addJujiSetting
(
id
)
{
return
request
({
url
:
'
/sos/alarm/addRemoteGatherAlarmSetting
'
,
method
:
'
post
'
})
}
// 更新聚集远程报警设置
export
function
updateJujiSetting
(
id
)
{
return
request
({
url
:
'
/sos/alarm/updateRemoteGatherAlarmSetting
'
,
method
:
'
put
'
})
}
// 删除聚集远程报警设置
export
function
deleteJujiSetting
(
id
)
{
return
request
({
url
:
'
/sos/alarm/deleteRemoteGatherAlarmSetting
'
,
method
:
'
delete
'
})
}
// 查询聚集报警设置列表
export
function
getRemoteGatherAlarmSettingList
(
query
)
{
return
request
({
url
:
'
/sos/alarm/getRemoteGatherAlarmSettingList
'
,
method
:
'
get
'
,
params
:
query
})
}
src/views/sos/alarm.vue
View file @
90fd5fb8
...
...
@@ -65,24 +65,32 @@
<el-table-column
label=
"SOS报警时间"
align=
"center"
prop=
"alarmTime"
/>
<el-table-column
label=
"报警地点经纬度"
align=
"center"
>
<template
slot-scope=
"scope"
>
<div>
{{
scope
.
row
.
coordinates
}}
</div>
<div>
{{
scope
.
row
.
coordinates
}}
</div>
<div>
{{
scope
.
row
.
longitude
}}
</div>
<div>
{{
scope
.
row
.
latitude
}}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"报警状态"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
v-if=
"
scope.row.alarmStatus !== 0
"
v-if=
"
!scope.row.alarmStatus
"
type=
"primary"
size=
"mini"
@
click=
"handleDispose(scope.row)"
>
处置
</el-button>
<span
v-if=
"scope.row.alarmStatus == 1"
>
已处置
</span>
<span
v-if=
"scope.row.alarmStatus"
>
已处置
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"解除原因"
align=
"center"
prop=
"relieveReason"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
otherReason
?
scope
.
row
.
otherReason
:
scope
.
row
.
relieveReason
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"解除原因"
align=
"center"
prop=
"relieveReason"
/>
<el-table-column
label=
"解除人"
align=
"center"
prop=
"relieveBy"
/>
<el-table-column
label=
"解除时间"
align=
"center"
prop=
"relieveTime"
/>
</el-table>
...
...
@@ -101,8 +109,13 @@
:visible.sync=
"disposeDialogVisible"
width=
"500px"
>
<el-form
:model=
"disposeForm"
ref=
"disposeFormRef"
label-width=
"120px"
>
<el-form-item
label=
"选择解除报警原因"
prop=
"reason"
required
>
<el-form
:model=
"disposeForm"
ref=
"disposeFormRef"
label-width=
"150px"
:rules=
"rules"
>
<el-form-item
label=
"选择解除报警原因"
prop=
"reason"
>
<div
v-for=
"item in reasonOptions"
:key=
"item.dictValue"
...
...
@@ -144,11 +157,6 @@
import
{
listInfo
,
update
}
from
"
@/api/jinrun/alarm
"
;
import
{
getDict
}
from
"
@/api/jinrun/common
"
;
// 假设解除原因的字典类型为 'alarm_dispose_reason'
const
ALARM_DISPOSE_REASON_DICT_TYPE
=
"
alarm_dispose_reason
"
;
// 假设其他原因的值为 'other'
const
OTHER_REASON_VALUE
=
"
other
"
;
export
default
{
name
:
"
Info
"
,
data
()
{
...
...
@@ -196,18 +204,96 @@ export default {
form
:
{
personType
:
""
,
},
// 校验规则
rules
:
{
reason
:
[
{
required
:
true
,
message
:
"
请选择解除报警原因
"
,
trigger
:
"
change
"
,
},
],
otherReason
:
[
{
required
:
true
,
message
:
"
请输入其他解除原因
"
,
trigger
:
"
blur
"
,
},
{
min
:
1
,
max
:
200
,
message
:
"
其他原因长度应在 1 到 200 个字符之间
"
,
trigger
:
"
blur
"
,
},
],
},
};
},
created
()
{
this
.
getList
();
this
.
getReasonOptions
();
this
.
getPersonTypeOptions
();
},
methods
:
{
/** 获取人员类型下拉列表数据 */
getPersonTypeOptions
()
{
// 调用数据字典接口
getDict
({
dictType
:
"
person_type
"
})
.
then
((
response
)
=>
{
this
.
personTypeOptions
=
response
.
records
||
[];
})
.
catch
((
error
)
=>
{
this
.
$modal
.
msgError
(
"
获取人员类型数据失败
"
);
console
.
error
(
"
获取人员类型数据失败:
"
,
error
);
});
},
/** 提交解除报警 */
submitDispose
()
{
// 表单验证
this
.
$refs
.
disposeFormRef
.
validate
((
valid
)
=>
{
if
(
valid
)
{
// 构建提交参数
const
submitData
=
{
// personId: this.disposeForm.personId,
alarmStatus
:
1
,
// 设置为已处置状态
id
:
this
.
disposeForm
.
id
,
relieveReason
:
this
.
disposeForm
.
reason
,
};
if
(
this
.
disposeForm
.
reason
===
0
)
{
submitData
.
otherReasons
=
this
.
disposeForm
.
otherReason
;
}
// 调用后端接口
update
(
submitData
)
.
then
((
response
)
=>
{
if
(
response
.
code
===
200
)
{
// 成功处理
this
.
$modal
.
msgSuccess
(
"
解除报警成功
"
);
// 关闭弹窗
this
.
disposeDialogVisible
=
false
;
// 刷新数据列表
this
.
getList
();
}
else
{
// 处理失败
this
.
$modal
.
msgError
(
response
.
msg
||
"
解除报警失败
"
);
}
})
.
catch
((
error
)
=>
{
// 处理网络错误等异常情况
console
.
error
(
"
解除报警失败:
"
,
error
);
this
.
$modal
.
msgError
(
"
服务器错误,请稍后重试
"
);
});
}
else
{
// 表单验证失败
return
false
;
}
});
},
/** 获取解除原因选项 */
getReasonOptions
()
{
// 调用数据字典接口获取解除原因
getDict
({
dictType
:
ALARM_DISPOSE_REASON_DICT_TYPE
})
getDict
({
dictType
:
"
relieve_reason
"
})
.
then
((
response
)
=>
{
this
.
reasonOptions
=
response
.
records
||
[];
})
...
...
@@ -229,8 +315,7 @@ export default {
handleDispose
(
row
)
{
// 重置表单
this
.
disposeForm
=
{
realName
:
row
.
realName
,
personId
:
row
.
personId
,
id
:
row
.
id
,
reason
:
""
,
otherReason
:
""
,
};
...
...
@@ -242,7 +327,7 @@ export default {
/** 处理原因选择变化 */
handleReasonChange
(
reason
)
{
// 当选择其他时显示文本框
this
.
showOtherReason
=
reason
==
=
OTHER_REASON_VALUE
;
this
.
showOtherReason
=
reason
==
0
;
// 如果不是其他,清空其他原因
if
(
!
this
.
showOtherReason
)
{
this
.
disposeForm
.
otherReason
=
""
;
...
...
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