Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-manage-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-manage-ui
Commits
d6bcf35c
Commit
d6bcf35c
authored
Jun 25, 2023
by
张耀
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into zy
parents
894ce7f6
462bf878
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
862 additions
and
159 deletions
+862
-159
.beagle.yml
.beagle.yml
+1
-1
src/App.vue
src/App.vue
+3
-3
src/components/bg-menu.vue
src/components/bg-menu.vue
+3
-4
src/components/warn-detail/tab.vue
src/components/warn-detail/tab.vue
+7
-7
src/page/main/auto-maintenance/task-manage/add/index.vue
src/page/main/auto-maintenance/task-manage/add/index.vue
+2
-4
src/page/main/config/accessRule/add/index.vue
src/page/main/config/accessRule/add/index.vue
+8
-30
src/page/main/config/accessRule/edit/index.vue
src/page/main/config/accessRule/edit/index.vue
+8
-30
src/page/main/forewarning/list/detail/index.vue
src/page/main/forewarning/list/detail/index.vue
+127
-0
src/page/main/forewarning/list/index.vue
src/page/main/forewarning/list/index.vue
+81
-13
src/page/main/forewarning/list/user-input-table.vue
src/page/main/forewarning/list/user-input-table.vue
+4
-4
src/page/main/forewarning/rule-set/index.vue
src/page/main/forewarning/rule-set/index.vue
+602
-3
src/page/main/system-admin/visit-control/add/index.vue
src/page/main/system-admin/visit-control/add/index.vue
+8
-30
src/page/main/system-admin/visit-control/edit/index.vue
src/page/main/system-admin/visit-control/edit/index.vue
+8
-30
No files found.
.beagle.yml
View file @
d6bcf35c
...
...
@@ -56,7 +56,7 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行
-
name
:
docker-sock
path
:
/var/run/docker.sock
# 将下载依赖的目录挂载出来,防止重复下载
settings
:
# 当前设置
base
:
registry.cn-qingdao.aliyuncs.com/wod/nginx:1.19.5-amd64
# 基础镜像
base
:
registry.cn-qingdao.aliyuncs.com/wod/nginx:1.19.5-amd64
# 基础镜像
dockerfile
:
.beagle/dockerfile
repo
:
smart-operation/so-manage-ui
# 生成镜像的 分组/名称
version
:
"
v3.0.1"
# 版本号
...
...
src/App.vue
View file @
d6bcf35c
...
...
@@ -5,10 +5,10 @@
<div
class=
"container"
v-if=
"pageShow"
>
<!--
<bg-nav
:highlightParentRule=
"highlightParentRule"
:title=
"nowParent.menuName"
width=
"208px"
:list=
"nowParent.children"
v-show=
"navShow"
class=
"con-nav"
/>
-->
<bg-nav
v-if=
"nowParent
.children
"
v-if=
"nowParent"
:highlightParentRule=
"highlightParentRule"
width=
"208px"
:list=
"nowParent
.children
"
:list=
"nowParent"
v-show=
"navShow"
class=
"con-nav"
/>
<div
class=
"bg-main view"
>
...
...
@@ -86,7 +86,7 @@ export default {
},
nowParent
()
{
if
(
this
.
pageShow
&&
this
.
$store
.
state
.
userInfo
)
{
return
this
.
rowPath
?
this
.
navMenu
[
this
.
rowPath
.
slice
(
1
,
2
)
]
:
""
;
return
this
.
rowPath
?
[
this
.
navMenu
[
this
.
rowPath
.
slice
(
1
,
2
)]
]
:
""
;
}
else
{
return
""
;
}
...
...
src/components/bg-menu.vue
View file @
d6bcf35c
...
...
@@ -151,8 +151,7 @@ export default {
},
transparentBg
()
{
return
(
this
.
documentScrollTop
<
180
&&
(
this
.
$route
.
name
===
"
shopRecommend
"
||
this
.
$route
.
name
===
"
shopSearch
"
)
this
.
documentScrollTop
<
180
&&
(
this
.
$route
.
name
===
"
shopRecommend
"
||
this
.
$route
.
name
===
"
shopSearch
"
)
);
},
isFront
()
{
...
...
@@ -236,7 +235,7 @@ export default {
if
(
n
==
"
logout
"
)
{
this
.
$axios
.
post
(
"
/apaas/system/v5/user/logout
"
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
"
200
"
)
{
window
.
location
.
href
=
"
/
apaas/manage/ui
/#/login
"
;
window
.
location
.
href
=
"
/
so/manage/ui/
/#/login
"
;
this
.
$store
.
commit
(
"
setUserInfo
"
,
null
);
clearCookie
(
"
bgToken
"
);
this
.
$message
.
success
(
"
退出成功
"
);
...
...
@@ -247,7 +246,7 @@ export default {
});
}
else
if
(
n
==
"
login
"
)
{
let
path
=
this
.
$route
.
path
;
window
.
location
.
href
=
`/
apaas/manage/ui
/#/login?redirect=
${
path
}
`
;
window
.
location
.
href
=
`/
so/manage/ui/
/#/login?redirect=
${
path
}
`
;
}
else
{
//是否有子路由,有则寻找子路由的第一个进行跳转,无则直接进行跳转
//使用childMenuAction是模拟template中,子路径点击跳转使用childMenuAction,
...
...
src/components/warn-detail/tab.vue
View file @
d6bcf35c
...
...
@@ -14,7 +14,7 @@
<
template
#status
="{
row
}"
>
<span
v-if=
"item.prop == 'push'"
>
<span
class=
"status"
:class=
"`status-$
{row.status}`">
</span>
<span>
{{
STATUS_OBJ
[
row
.
status
]
}}
</span>
<span>
{{
PUSH_STATUS
[
row
.
status
]
}}
</span>
</span>
<span
v-else
:class=
"`tab-$
{row.status}`">
{{
STATUS_OBJ
[
row
.
status
]
}}
...
...
@@ -27,7 +27,7 @@
<
script
setup
>
import
{
ref
}
from
"
vue
"
;
import
{
STATUS_OBJ
}
from
"
./env.js
"
;
import
{
STATUS_OBJ
,
PUSH_STATUS
}
from
"
./env.js
"
;
const
activeTab
=
ref
(
"
push
"
);
const
props
=
defineProps
({
tabs
:
{
...
...
@@ -59,22 +59,22 @@ const headers = {
},
],
dispose
:
[
{
prop
:
"
status
"
,
label
:
"
状态
"
,
},
{
prop
:
"
feedback
"
,
label
:
"
处置反馈
"
,
},
{
prop
:
"
feedback_time
"
,
label
:
"
处置反馈
"
,
label
:
"
反馈时间
"
,
},
{
prop
:
"
feedback_person
"
,
label
:
"
反馈人员
"
,
},
{
prop
:
"
status
"
,
label
:
"
状态
"
,
},
],
};
</
script
>
...
...
src/page/main/auto-maintenance/task-manage/add/index.vue
View file @
d6bcf35c
...
...
@@ -8,9 +8,7 @@
<el-step
title=
""
:class=
"
{ process_complete: step > 1 }">
<template
#icon
>
<span
class=
"process_desc"
>
<span
class=
"icon_box"
v-if=
"step > 0"
><bg-icon
class=
"step_icon"
icon=
"#bg-ic-file-editing"
></bg-icon
></span>
<span
class=
"icon_box"
v-if=
"step > 0"
><bg-icon
class=
"step_icon"
icon=
"#bg-ic-file"
></bg-icon></span>
<span
class=
"circle"
v-else
></span>
基本信息
</span>
...
...
@@ -20,7 +18,7 @@
<
template
#icon
>
<span
class=
"process_desc"
>
<span
class=
"icon_box"
v-if=
"step > 1"
><bg-icon
class=
"step_icon"
icon=
"#bg-ic-
file-lock
"
></bg-icon
><bg-icon
class=
"step_icon"
icon=
"#bg-ic-
instruction
"
></bg-icon
></span>
<span
class=
"circle"
v-else
></span>
执行内容
...
...
src/page/main/config/accessRule/add/index.vue
View file @
d6bcf35c
...
...
@@ -4,12 +4,7 @@
<bg-breadcrumb></bg-breadcrumb>
<div
class=
"main_container"
>
<div
class=
"form_content apaas_scroll_nor"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<div
class=
"top_content"
>
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-input
placeholder=
"请输入"
maxlength=
"100"
v-model=
"formData.ruleName"
></el-input>
...
...
@@ -30,29 +25,19 @@
<el-tooltip
placement=
"top-start"
effect=
"light"
>
<template
#content
>
<span>
输入IP段,不可重复,例如:192.168.0.0/24
</span><br
/>
<span
>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span
>
<span>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span>
</
template
>
<div
class=
"tip-image"
></div>
</el-tooltip>
</el-form-item>
<el-form-item
class=
"switch-item"
label=
"是否启用"
prop=
"state"
required
>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
</el-form-item>
</div>
<el-form-item
class=
"userScope"
label=
"用户范围"
prop=
"userScope"
>
<el-button
type=
"primary"
@
click=
"userMaintain"
>
用户维护
</el-button>
<div
class=
"table_content clearfix"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<
template
v-slot:isAdmin=
"{ row }"
>
<span>
{{
userTypeConfig
[
row
.
isAdmin
]
}}
</span>
</
template
>
...
...
@@ -67,11 +52,7 @@
</div>
</el-form-item>
</el-form>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<div
class=
"content_detail"
>
<div
class=
"form_filter"
>
<div
class=
"left"
>
...
...
@@ -299,10 +280,7 @@ const getOrgTree = () => {
};
const
changePage
=
(
page
)
=>
{
state
.
pageConfig
.
page
=
page
;
state
.
tableRows
=
state
.
selectedRows
.
slice
(
(
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
state
.
tableRows
=
state
.
selectedRows
.
slice
((
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
};
const
changeSize
=
(
size
)
=>
{
...
...
@@ -392,7 +370,7 @@ const submit = () => {
height
:
100%
;
padding-left
:
40px
;
.el-form
{
:
:v-deep
.el-form-item
{
:
deep
()
.el-form-item
{
display
:
block
;
margin-bottom
:
24px
;
width
:
60%
;
...
...
@@ -435,7 +413,7 @@ const submit = () => {
}
}
:
:v-deep
.dialog_box_maintain
{
:
deep
()
.dialog_box_maintain
{
.el-dialog__body
{
padding
:
0
0
70px
0
;
height
:
630px
;
...
...
src/page/main/config/accessRule/edit/index.vue
View file @
d6bcf35c
...
...
@@ -4,12 +4,7 @@
<bg-breadcrumb></bg-breadcrumb>
<div
class=
"main_container"
>
<div
class=
"form_content apaas_scroll_nor"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<div
class=
"top_content"
>
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-input
placeholder=
"请输入"
maxlength=
"100"
v-model=
"formData.ruleName"
></el-input>
...
...
@@ -30,29 +25,19 @@
<el-tooltip
placement=
"top-start"
effect=
"light"
>
<template
#content
>
<span>
输入IP段,不可重复,例如:192.168.0.0/24
</span><br
/>
<span
>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span
>
<span>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span>
</
template
>
<div
class=
"tip-image"
></div>
</el-tooltip>
</el-form-item>
<el-form-item
class=
"switch-item"
label=
"是否启用"
prop=
"state"
required
>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
</el-form-item>
</div>
<el-form-item
class=
"userScope"
label=
"用户范围"
prop=
"userScope"
>
<el-button
type=
"primary"
@
click=
"userMaintain"
>
用户维护
</el-button>
<div
class=
"table_content clearfix"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<
template
v-slot:isAdmin=
"{ row }"
>
<span>
{{
userTypeConfig
[
row
.
isAdmin
]
}}
</span>
</
template
>
...
...
@@ -67,11 +52,7 @@
</div>
</el-form-item>
</el-form>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<div
class=
"content_detail"
>
<div
class=
"form_filter"
>
<div
class=
"left"
>
...
...
@@ -312,10 +293,7 @@ const getOrgTree = () => {
};
const
changePage
=
(
page
)
=>
{
state
.
pageConfig
.
page
=
page
;
state
.
tableRows
=
state
.
selectedRows
.
slice
(
(
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
state
.
tableRows
=
state
.
selectedRows
.
slice
((
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
};
const
changeSize
=
(
size
)
=>
{
...
...
@@ -427,7 +405,7 @@ const submit = () => {
height
:
100%
;
padding-left
:
40px
;
.el-form
{
:
:v-deep
.el-form-item
{
:
deep
()
.el-form-item
{
display
:
block
;
margin-bottom
:
24px
;
width
:
60%
;
...
...
@@ -470,7 +448,7 @@ const submit = () => {
}
}
:
:v-deep
.dialog_box_maintain
{
:
deep
()
.dialog_box_maintain
{
.el-dialog__body
{
padding
:
0
0
70px
0
;
height
:
630px
;
...
...
src/page/main/forewarning/list/detail/index.vue
0 → 100644
View file @
d6bcf35c
<
template
>
<div
class=
"my-warn-detail"
>
<div
class=
"breadcrumb"
>
<bg-breadcrumb
/>
</div>
<div
class=
"content"
>
<warn-detail
:label-data=
"labelData"
:value-data=
"info"
:tabs=
"tabs"
></warn-detail>
</div>
</div>
</
template
>
<
script
setup
>
import
bgBreadcrumb
from
"
@/components/bg-breadcrumb.vue
"
;
import
warnDetail
from
"
@/components/warn-detail/index.vue
"
;
const
labelData
=
[
[
{
label
:
"
预警点
"
,
prop
:
"
warning_point
"
,
},
{
label
:
"
预警分类
"
,
prop
:
"
warning_type
"
,
},
],
[
{
label
:
"
预警指标
"
,
prop
:
"
warning_index
"
,
},
{
label
:
"
风险等级
"
,
prop
:
"
risk_level
"
,
},
],
[
{
label
:
"
状态
"
,
prop
:
"
status
"
,
},
{
label
:
"
预警阈值
"
,
prop
:
"
warning_threshold
"
,
},
],
[
{
label
:
"
当前报警值
"
,
prop
:
"
current_alarm_value
"
,
},
{
label
:
"
预警时间
"
,
prop
:
"
warning_time
"
,
},
],
];
const
info
=
{
warning_point
:
"
SaaS层/数据治理系统
"
,
warning_type
:
"
容器集群
"
,
warning_index
:
"
响应时间超时
"
,
risk_level
:
"
一般风险
"
,
status
:
"
success
"
,
warning_threshold
:
"
10ms
"
,
current_alarm_value
:
"
16ms
"
,
warning_time
:
"
2020-01-01 00:00:00
"
,
};
const
tabs
=
[
{
label
:
"
推送记录
"
,
prop
:
"
push
"
,
lists
:
[
{
method
:
"
短信
"
,
person
:
[
11
,
22
,
33
,
44
],
push_time
:
"
2022-07-29 10:23:59
"
,
push_type
:
"
自动推送
"
,
status
:
"
success
"
,
},
{
method
:
"
钉钉
"
,
person
:
[
11
,
33
,
44
],
push_time
:
"
2022-07-29 10:23:59
"
,
push_type
:
"
自动推送
"
,
status
:
"
error
"
,
},
],
},
{
label
:
"
处置记录
"
,
prop
:
"
dispose
"
,
lists
:
[
{
status
:
"
error
"
,
feedback
:
"
暂时无法处理,需要时间
"
,
feedback_time
:
"
2022-07-29 10:23:59
"
,
feedback_person
:
"
张三
"
,
},
{
status
:
"
success
"
,
feedback
:
"
暂时无法处理,需要时间
"
,
feedback_time
:
"
2022-07-29 10:23:59
"
,
feedback_person
:
"
张三
"
,
},
],
},
];
</
script
>
<
style
lang=
"scss"
scoped
>
.my-warn-detail
{
width
:
100%
;
height
:
100%
;
padding
:
0
24px
16px
;
.breadcrumb
{
width
:
100%
;
height
:
46px
;
}
.content
{
width
:
100%
;
height
:
calc
(
100%
-
46px
);
background-color
:
#ffffff
;
box-shadow
:
0px
1px
4px
0px
rgba
(
0
,
7
,
101
,
0
.15
);
border-radius
:
6px
;
padding
:
32px
;
}
}
</
style
>
src/page/main/forewarning/list/index.vue
View file @
d6bcf35c
...
...
@@ -2,14 +2,14 @@
<div
class=
"detail_container"
>
<bg-breadcrumb></bg-breadcrumb>
<div
class=
"main_container"
>
<bg-filter-group
@
search=
"changeSearch"
v-model=
"filter.search"
placeholder=
"请输入预警点"
>
<bg-filter-group
@
search=
"changeSearch"
v-model=
"filter.search"
placeholder=
"请输入预警点
/分类/指标
"
>
<template
v-slot:left_action
>
<div
class=
"apaas_button"
>
<el-button
type=
"primary"
@
click=
"batchPush"
>
<bg-icon
style=
"font-size: 12px; color: #fff; margin-right: 8px"
icon=
"#bg-ic-edit"
></bg-icon>
批量推送
</el-button>
<el-button
type=
"default"
@
click=
"batch
Delete"
>
批量删除
</el-button>
<el-button
type=
"default"
@
click=
"batch
Close"
>
批量关闭
</el-button>
<span
class=
"header_info"
>
已选择
<span
style=
"color: #202531; font-weight: bold"
>
{{
state
.
selected
.
length
}}
</span>
项
</span>
...
...
@@ -18,7 +18,7 @@
</
template
>
<
template
v-slot:filter_group
>
<div
class=
"left-filter filter_list"
>
<div
class=
"filter_item"
>
<
!--
<
div
class=
"filter_item"
>
<span
class=
"filter_title"
>
预警分类
</span>
<el-select
v-model=
"filter.warning_type"
placeholder=
"请选择"
style=
"width: 300px"
>
<el-option
...
...
@@ -39,7 +39,7 @@
:value=
"item.value"
>
</el-option>
</el-select>
</div>
</div>
-->
<div
class=
"filter_item"
>
<span
class=
"filter_title"
>
风险等级
</span>
<el-select
v-model=
"filter.risk_level"
placeholder=
"请选择"
style=
"width: 300px"
>
...
...
@@ -186,6 +186,10 @@ import axios from "@/request/http.js";
import
{
Search
}
from
"
@element-plus/icons-vue
"
;
import
bgBreadcrumb
from
"
@/components/bg-breadcrumb.vue
"
;
import
userInputTable
from
"
./user-input-table.vue
"
;
import
{
useRouter
}
from
"
vue-router
"
;
const
router
=
useRouter
();
const
bgForm
=
ref
(
null
);
const
dataTable
=
ref
(
null
);
const
closeForm
=
ref
(
null
);
...
...
@@ -341,6 +345,8 @@ const state = reactive({
pushRules
:
{
method
:
[{
type
:
"
array
"
,
required
:
true
,
message
:
"
请最少选择一种推送方式
"
,
trigger
:
"
change
"
}],
},
pushType
:
0
,
// 1-单条推送 2-批量推送
closeType
:
0
,
// 1-单条推送 2-批量推送
});
const
userTableFlag
=
computed
(()
=>
{
...
...
@@ -355,12 +361,19 @@ const clearSelected = () => {
dataTable
.
value
.
clearTable
();
};
// 清空
const
batchDelete
=
()
=>
{
console
.
log
(
"
批量删除
"
);
};
// 批量删除
const
batchClose
=
()
=>
{
console
.
log
(
"
批量关闭
"
);
if
(
!
state
.
selected
||
state
.
selected
.
length
==
0
)
{
ElMessage
.
error
(
"
请先勾选要关闭的预警数据
"
);
return
;
}
state
.
closeType
=
2
;
state
.
closeWarningDialog
=
true
;
};
// 批量关闭
const
goDetail
=
(
row
)
=>
{
console
.
log
(
"
去详情
"
);
router
.
push
(
`/forewarning/list/detail?id=
${
row
.
id
}
`
);
};
// 查看详情
const
changeSearch
=
(
val
)
=>
{
...
...
@@ -459,11 +472,35 @@ const changeSize = (size) => {
const
batchPush
=
()
=>
{
console
.
log
(
"
批量推送
"
);
if
(
!
state
.
selected
||
state
.
selected
.
length
==
0
)
{
ElMessage
.
error
(
"
请先勾选要推送的数据
"
);
return
;
}
state
.
pushType
=
2
;
state
.
userData
=
[
{
account
:
1
,
name
:
"
张一
"
,
mobile
:
"
13111111111
"
,
},
{
account
:
2
,
name
:
"
张二二
"
,
mobile
:
"
13222222222
"
,
},
{
account
:
4
,
name
:
"
张四三
"
,
mobile
:
"
13443434344
"
,
},
];
state
.
pushDialog
=
true
;
};
// 批量推送
const
pushWarning
=
(
row
)
=>
{
state
.
actionRow
=
row
;
console
.
log
(
"
推送提醒
"
);
state
.
pushType
=
1
;
state
.
userData
=
[
{
account
:
1
,
...
...
@@ -496,15 +533,30 @@ const cancelPushDialog = () => {
const
pushConfirm
=
()
=>
{
pushForm
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
state
.
actionRow
.
id
,
state
.
userData
);
console
.
log
(
state
.
pushFormData
);
cancelPushDialog
();
let
ids
=
[];
if
(
state
.
pushType
==
1
)
{
ids
.
push
(
state
.
actionRow
.
id
);
}
else
{
state
.
selected
.
forEach
((
e
)
=>
{
ids
.
push
(
e
.
id
);
});
}
let
params
=
{
ids
:
ids
,
method
:
state
.
pushFormData
.
method
||
[],
};
setTimeout
(()
=>
{
cancelPushDialog
();
clearSelected
();
changePage
(
1
);
},
200
);
}
});
};
const
closeWarning
=
(
row
)
=>
{
state
.
actionRow
=
row
;
state
.
closeType
=
1
;
state
.
closeWarningDialog
=
true
;
console
.
log
(
"
关闭预警
"
);
};
// 关闭预警
...
...
@@ -517,9 +569,25 @@ const cancelCloseWarningDialog = () => {
const
confirmClose
=
()
=>
{
closeForm
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
console
.
log
(
state
.
actionRow
.
id
);
console
.
log
(
state
.
closeFormData
);
cancelCloseWarningDialog
();
let
ids
=
[];
if
(
state
.
closeType
==
1
)
{
ids
.
push
(
state
.
actionRow
.
id
);
}
else
{
state
.
selected
.
forEach
((
e
)
=>
{
ids
.
push
(
e
.
id
);
});
}
let
params
=
{
ids
:
ids
,
close_notes
:
state
.
closeFormData
.
close_notes
,
close_remind
:
state
.
closeFormData
.
close_remind
,
};
console
.
log
(
params
);
setTimeout
(()
=>
{
cancelCloseWarningDialog
();
clearSelected
();
changePage
(
1
);
},
200
);
}
});
};
// 关闭预警弹窗确定按钮:提交表单
...
...
src/page/main/forewarning/list/user-input-table.vue
View file @
d6bcf35c
...
...
@@ -36,7 +36,7 @@
<
template
v-slot:action=
"{ row, index }"
>
<bg-table-btn
:disabled=
"disabled
|| !canAdd
"
:disabled=
"disabled"
:click=
"
() =>
{
addParam(index);
...
...
@@ -179,9 +179,9 @@ watch(
}
);
const
canAdd
=
computed
(()
=>
{
return
state
.
tableRows
.
length
>=
5
?
false
:
true
;
});
// 最多五条数据,控制下新增按钮的禁用
//
const canAdd = computed(() => {
//
return state.tableRows.length >= 5 ? false : true;
//
}); // 最多五条数据,控制下新增按钮的禁用
onBeforeMount
(()
=>
{
initTable
();
...
...
src/page/main/forewarning/rule-set/index.vue
View file @
d6bcf35c
This diff is collapsed.
Click to expand it.
src/page/main/system-admin/visit-control/add/index.vue
View file @
d6bcf35c
...
...
@@ -4,12 +4,7 @@
<bg-breadcrumb></bg-breadcrumb>
<div
class=
"main_container"
>
<div
class=
"form_content apaas_scroll_nor"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<div
class=
"top_content"
>
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-input
placeholder=
"请输入"
maxlength=
"100"
v-model=
"formData.ruleName"
></el-input>
...
...
@@ -30,29 +25,19 @@
<el-tooltip
placement=
"top-start"
effect=
"light"
>
<template
#content
>
<span>
输入IP段,不可重复,例如:192.168.0.0/24
</span><br
/>
<span
>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span
>
<span>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span>
</
template
>
<div
class=
"tip-image"
></div>
</el-tooltip>
</el-form-item>
<el-form-item
class=
"switch-item"
label=
"是否启用"
prop=
"state"
required
>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
</el-form-item>
</div>
<el-form-item
class=
"userScope"
label=
"用户范围"
prop=
"userScope"
>
<el-button
type=
"primary"
@
click=
"userMaintain"
>
用户维护
</el-button>
<div
class=
"table_content clearfix"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<
template
v-slot:isAdmin=
"{ row }"
>
<span>
{{
userTypeConfig
[
row
.
isAdmin
]
}}
</span>
</
template
>
...
...
@@ -67,11 +52,7 @@
</div>
</el-form-item>
</el-form>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<div
class=
"content_detail"
>
<div
class=
"form_filter"
>
<div
class=
"left"
>
...
...
@@ -299,10 +280,7 @@ const getOrgTree = () => {
};
const
changePage
=
(
page
)
=>
{
state
.
pageConfig
.
page
=
page
;
state
.
tableRows
=
state
.
selectedRows
.
slice
(
(
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
state
.
tableRows
=
state
.
selectedRows
.
slice
((
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
};
const
changeSize
=
(
size
)
=>
{
...
...
@@ -392,7 +370,7 @@ const submit = () => {
height
:
100%
;
padding-left
:
40px
;
.el-form
{
:
:v-deep
.el-form-item
{
:
deep
()
.el-form-item
{
display
:
block
;
margin-bottom
:
24px
;
width
:
60%
;
...
...
@@ -435,7 +413,7 @@ const submit = () => {
}
}
:
:v-deep
.dialog_box_maintain
{
:
deep
()
.dialog_box_maintain
{
.el-dialog__body
{
padding
:
0
0
70px
0
;
height
:
630px
;
...
...
src/page/main/system-admin/visit-control/edit/index.vue
View file @
d6bcf35c
...
...
@@ -4,12 +4,7 @@
<bg-breadcrumb></bg-breadcrumb>
<div
class=
"main_container"
>
<div
class=
"form_content apaas_scroll_nor"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<el-form
ref=
"refForm"
label-position=
"left"
:model=
"formData"
:rules=
"rules"
label-width=
"82px"
>
<div
class=
"top_content"
>
<el-form-item
label=
"规则名称"
prop=
"ruleName"
>
<el-input
placeholder=
"请输入"
maxlength=
"100"
v-model=
"formData.ruleName"
></el-input>
...
...
@@ -30,29 +25,19 @@
<el-tooltip
placement=
"top-start"
effect=
"light"
>
<template
#content
>
<span>
输入IP段,不可重复,例如:192.168.0.0/24
</span><br
/>
<span
>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span
>
<span>
输入IP地址,例如192.168.0.1(支持ipv4地址,配置多个IP时使用回车符分隔)
</span>
</
template
>
<div
class=
"tip-image"
></div>
</el-tooltip>
</el-form-item>
<el-form-item
class=
"switch-item"
label=
"是否启用"
prop=
"state"
required
>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"formData.state"
></bg-switch>
</el-form-item>
</div>
<el-form-item
class=
"userScope"
label=
"用户范围"
prop=
"userScope"
>
<el-button
type=
"primary"
@
click=
"userMaintain"
>
用户维护
</el-button>
<div
class=
"table_content clearfix"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<bg-table
ref=
"bgTable"
:headers=
"detailHeaders"
:rows=
"tableRows"
height=
"550"
:stripe=
"true"
>
<
template
v-slot:isAdmin=
"{ row }"
>
<span>
{{
userTypeConfig
[
row
.
isAdmin
]
}}
</span>
</
template
>
...
...
@@ -67,11 +52,7 @@
</div>
</el-form-item>
</el-form>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<el-dialog
class=
"dialog_box_maintain"
title=
"用户维护"
v-model=
"dialogMaintain"
width=
"1062px"
>
<div
class=
"content_detail"
>
<div
class=
"form_filter"
>
<div
class=
"left"
>
...
...
@@ -312,10 +293,7 @@ const getOrgTree = () => {
};
const
changePage
=
(
page
)
=>
{
state
.
pageConfig
.
page
=
page
;
state
.
tableRows
=
state
.
selectedRows
.
slice
(
(
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
state
.
tableRows
=
state
.
selectedRows
.
slice
((
page
-
1
)
*
state
.
pageConfig
.
limit
,
page
*
state
.
pageConfig
.
limit
);
};
const
changeSize
=
(
size
)
=>
{
...
...
@@ -427,7 +405,7 @@ const submit = () => {
height
:
100%
;
padding-left
:
40px
;
.el-form
{
:
:v-deep
.el-form-item
{
:
deep
()
.el-form-item
{
display
:
block
;
margin-bottom
:
24px
;
width
:
60%
;
...
...
@@ -470,7 +448,7 @@ const submit = () => {
}
}
:
:v-deep
.dialog_box_maintain
{
:
deep
()
.dialog_box_maintain
{
.el-dialog__body
{
padding
:
0
0
70px
0
;
height
:
630px
;
...
...
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