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
821117a6
Commit
821117a6
authored
Oct 11, 2023
by
张耀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:
修复bug,优化预警规则设置和指标配置逻辑
parent
611f2376
Changes
21
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1180 additions
and
866 deletions
+1180
-866
.vscode/settings.json
.vscode/settings.json
+15
-17
package.json
package.json
+4
-1
src/bg-ui/bg-codemirror.vue
src/bg-ui/bg-codemirror.vue
+79
-0
src/bg-ui/index.js
src/bg-ui/index.js
+2
-0
src/i18n/i18n.js
src/i18n/i18n.js
+2
-2
src/main.js
src/main.js
+3
-3
src/page/main/forewarning/indicator-config/detail/index.vue
src/page/main/forewarning/indicator-config/detail/index.vue
+2
-2
src/page/main/forewarning/indicator-config/index.vue
src/page/main/forewarning/indicator-config/index.vue
+91
-28
src/page/main/forewarning/indicator-config/modules/add-form.vue
...ge/main/forewarning/indicator-config/modules/add-form.vue
+23
-6
src/page/main/forewarning/indicator-config/modules/interface.js
...ge/main/forewarning/indicator-config/modules/interface.js
+36
-35
src/page/main/forewarning/indicator-config/modules/slide.vue
src/page/main/forewarning/indicator-config/modules/slide.vue
+8
-7
src/page/main/forewarning/indicator-config/modules/warning-scope.vue
...in/forewarning/indicator-config/modules/warning-scope.vue
+129
-108
src/page/main/forewarning/rule-set/add/index.vue
src/page/main/forewarning/rule-set/add/index.vue
+2
-1
src/page/main/forewarning/rule-set/detail/index.vue
src/page/main/forewarning/rule-set/detail/index.vue
+7
-5
src/page/main/forewarning/rule-set/edit/index.vue
src/page/main/forewarning/rule-set/edit/index.vue
+10
-11
src/page/main/forewarning/rule-set/modules/add-form.vue
src/page/main/forewarning/rule-set/modules/add-form.vue
+25
-13
src/page/main/forewarning/rule-set/modules/custom.vue
src/page/main/forewarning/rule-set/modules/custom.vue
+20
-30
src/page/main/forewarning/rule-set/modules/gateway.vue
src/page/main/forewarning/rule-set/modules/gateway.vue
+28
-28
src/page/main/forewarning/rule-set/modules/interface.js
src/page/main/forewarning/rule-set/modules/interface.js
+1
-3
src/page/main/forewarning/rule-set/modules/static.vue
src/page/main/forewarning/rule-set/modules/static.vue
+51
-20
yarn.lock
yarn.lock
+642
-546
No files found.
.vscode/settings.json
View file @
821117a6
{
{
"editor.defaultFormatter"
:
"esbenp.prettier-vscode"
,
"editor.defaultFormatter"
:
"esbenp.prettier-vscode"
,
"GitCommitPlugin.ShowEmoji"
:
false
,
"GitCommitPlugin.ShowEmoji"
:
false
,
"editor.formatOnSave"
:
false
,
"volar.inlayHints.eventArgumentInInlineHandlers"
:
false
,
"editor.codeActionsOnSave"
:
{
"path-intellisense.mappings"
:
{
"source.fixAll.eslint"
:
true
"@"
:
"${workspaceFolder}/src"
},
},
"volar.inlayHints.eventArgumentInInlineHandlers"
:
false
,
//
文件保存自动格式化
//
"path-intellisense.mappings"
:
{
"editor.formatOnSave"
:
true
,
//
"@"
:
"${workspaceFolder}/src"
"[vue]"
:
{
//
},
"editor.defaultFormatter"
:
"esbenp.prettier-vscode"
//
文件保存自动格式化
},
"editor.formatOnSave"
:
true
,
"[javascript]"
:
{
"[vue]"
:
{
"editor.defaultFormatter"
:
"esbenp.prettier-vscode"
"editor.defaultFormatter"
:
"esbenp.prettier-vscode"
}
},
}
"vue.codeActions.enabled"
:
false
\ No newline at end of file
}
package.json
View file @
821117a6
...
@@ -7,12 +7,14 @@
...
@@ -7,12 +7,14 @@
"serve"
:
"vite preview"
"serve"
:
"vite preview"
},
},
"dependencies"
:
{
"dependencies"
:
{
"
@codemirror/theme-one-dark
"
:
"
^6.1.2
"
,
"
@element-plus/icons-vue
"
:
"
^2.0.6
"
,
"
@element-plus/icons-vue
"
:
"
^2.0.6
"
,
"
@wangeditor/editor
"
:
"
^5.1.14
"
,
"
@wangeditor/editor
"
:
"
^5.1.14
"
,
"
@wangeditor/editor-for-vue
"
:
"
^5.1.12
"
,
"
@wangeditor/editor-for-vue
"
:
"
^5.1.12
"
,
"
ace-builds
"
:
"
^1.9.6
"
,
"
ace-builds
"
:
"
^1.9.6
"
,
"
axios
"
:
"
^0.21.1
"
,
"
axios
"
:
"
^0.21.1
"
,
"
clipboard
"
:
"
^2.0.11
"
,
"
clipboard
"
:
"
^2.0.11
"
,
"
codemirror
"
:
"
^6.0.1
"
,
"
crypto-js
"
:
"
^4.1.1
"
,
"
crypto-js
"
:
"
^4.1.1
"
,
"
echarts
"
:
"
^5.3.3
"
,
"
echarts
"
:
"
^5.3.3
"
,
"
element-plus
"
:
"
^2.2.19
"
,
"
element-plus
"
:
"
^2.2.19
"
,
...
@@ -26,8 +28,9 @@
...
@@ -26,8 +28,9 @@
"
string-format
"
:
"
^2.0.0
"
,
"
string-format
"
:
"
^2.0.0
"
,
"
uuid
"
:
"
^8.3.2
"
,
"
uuid
"
:
"
^8.3.2
"
,
"
vue
"
:
"
^3.2.31
"
,
"
vue
"
:
"
^3.2.31
"
,
"
vue-codemirror
"
:
"
^6.1.1
"
,
"
vue-demi
"
:
"
^0.14.5
"
,
"
vue-demi
"
:
"
^0.14.5
"
,
"
vue-i18n
"
:
"
^9.
1.7
"
,
"
vue-i18n
"
:
"
^9.
5.0
"
,
"
vue-router
"
:
"
^4.0.10
"
,
"
vue-router
"
:
"
^4.0.10
"
,
"
vue3-ace-editor
"
:
"
^2.2.2
"
,
"
vue3-ace-editor
"
:
"
^2.2.2
"
,
"
vuex
"
:
"
^4.0.2
"
"
vuex
"
:
"
^4.0.2
"
...
...
src/bg-ui/bg-codemirror.vue
0 → 100644
View file @
821117a6
<
template
>
<Codemirror
v-model=
"code"
:placeholder=
"placeholder"
:style=
"
{ ...options.style, ...options.style }"
class="code-style"
:mode="options.mode"
:disabled="disabled"
:spellcheck="options.spellcheck"
:indentWithTab="options.indentWithTab"
:autofocus="options.autofocus"
:tabSize="options.tabSize"
:extensions="options.extensions"
@change="Change($event)"
@blur="Blur($event)" />
</
template
>
<
script
setup
>
import
{
Codemirror
}
from
"
vue-codemirror
"
;
import
{
oneDark
}
from
"
@codemirror/theme-one-dark
"
;
import
{
ref
,
watch
,
reactive
,
nextTick
}
from
"
vue
"
;
const
jsonData
=
ref
(
""
);
const
options
=
reactive
({
style
:
{
height
:
"
100%
"
},
mode
:
"
text/x-c++src
"
,
spellcheck
:
true
,
autofocus
:
true
,
indentWithTab
:
true
,
tabSize
:
2
,
extensions
:
[
oneDark
],
});
const
props
=
defineProps
({
modelValue
:
{
type
:
String
,
default
:
""
,
},
disabled
:
{
type
:
Boolean
,
default
:
false
,
},
placeholder
:
{
type
:
String
,
default
:
"
请输入表达式
"
,
},
});
const
code
=
ref
(
""
);
watch
(
()
=>
props
.
modelValue
,
(
n
)
=>
{
code
.
value
=
n
;
},
{
immediate
:
true
,
}
);
const
emits
=
defineEmits
([
"
update:modelValue
"
,
"
change
"
,
"
blur
"
]);
const
Change
=
async
(
$event
)
=>
{
await
nextTick
();
emits
(
"
update:modelValue
"
,
code
.
value
);
emits
(
"
change
"
,
{
$event
,
value
:
code
.
value
});
};
const
Blur
=
async
(
$event
)
=>
{
await
nextTick
();
emits
(
"
update:modelValue
"
,
code
.
value
);
emits
(
"
blur
"
,
{
$event
,
value
:
code
.
value
});
};
</
script
>
<
style
lang=
"scss"
scoped
>
.code-style
{
text-align
:
left
;
}
</
style
>
<
style
>
.cm-editor
{
border-radius
:
4px
;
overflow
:
hidden
;
}
</
style
>
src/bg-ui/index.js
View file @
821117a6
...
@@ -21,6 +21,7 @@ import BgTags from "./bg-tags.vue";
...
@@ -21,6 +21,7 @@ import BgTags from "./bg-tags.vue";
import
BgSwitch
from
"
./bg-switch.vue
"
;
import
BgSwitch
from
"
./bg-switch.vue
"
;
import
BgRichText
from
"
./bg-rich-text.vue
"
;
import
BgRichText
from
"
./bg-rich-text.vue
"
;
import
BgCodeEditor
from
"
./bg-code-editor.vue
"
;
import
BgCodeEditor
from
"
./bg-code-editor.vue
"
;
import
BgCodemirror
from
"
./bg-codemirror.vue
"
;
import
BgFilter
from
"
./bg-filter.vue
"
;
import
BgFilter
from
"
./bg-filter.vue
"
;
import
BgSort
from
"
./bg-sort.vue
"
;
import
BgSort
from
"
./bg-sort.vue
"
;
import
BgFilterDate
from
"
./bg-filter-date.vue
"
;
import
BgFilterDate
from
"
./bg-filter-date.vue
"
;
...
@@ -58,6 +59,7 @@ const components = {
...
@@ -58,6 +59,7 @@ const components = {
BgSwitch
,
// 开关
BgSwitch
,
// 开关
BgRichText
,
// 富文本
BgRichText
,
// 富文本
BgCodeEditor
,
//代码输入
BgCodeEditor
,
//代码输入
BgCodemirror
,
//代码输入
BgFilter
,
// 首页筛选
BgFilter
,
// 首页筛选
BgSort
,
// 首页排序
BgSort
,
// 首页排序
BgFilterDate
,
BgFilterDate
,
...
...
src/i18n/i18n.js
View file @
821117a6
import
{
createI18n
}
from
"
vue-i18n/index
"
;
import
{
createI18n
}
from
"
vue-i18n/index
.js
"
;
import
lang
from
"
./index
"
;
import
lang
from
"
./index
.js
"
;
const
i18n
=
createI18n
({
const
i18n
=
createI18n
({
locale
:
localStorage
.
lang
||
"
zh
"
,
locale
:
localStorage
.
lang
||
"
zh
"
,
...
...
src/main.js
View file @
821117a6
...
@@ -5,7 +5,7 @@ import "element-plus/dist/index.css";
...
@@ -5,7 +5,7 @@ import "element-plus/dist/index.css";
import
mavonEditor
from
"
mavon-editor
"
;
import
mavonEditor
from
"
mavon-editor
"
;
import
"
mavon-editor/dist/css/index.css
"
;
import
"
mavon-editor/dist/css/index.css
"
;
import
locale
from
"
element-plus/
lib/locale/lang/zh-cn
"
;
import
locale
from
"
element-plus/
dist/locale/zh-cn.mjs
"
;
import
*
as
ElementPlusIconsVue
from
"
@element-plus/icons-vue
"
;
import
*
as
ElementPlusIconsVue
from
"
@element-plus/icons-vue
"
;
...
@@ -27,7 +27,7 @@ import "../src/assets/item.css";
...
@@ -27,7 +27,7 @@ import "../src/assets/item.css";
import
store
from
"
@/store
"
;
import
store
from
"
@/store
"
;
import
i18n
from
"
./i18n/i18n.js
"
;
//
import i18n from "./i18n/i18n.js";
import
axios
from
"
./request/http.js
"
;
import
axios
from
"
./request/http.js
"
;
import
api
from
"
./request/api.js
"
;
import
api
from
"
./request/api.js
"
;
...
@@ -109,7 +109,7 @@ Promise.all([getUser(), getMenu("1e99371c-187f-4966-94cf-32f116f42ce6")])
...
@@ -109,7 +109,7 @@ Promise.all([getUser(), getMenu("1e99371c-187f-4966-94cf-32f116f42ce6")])
console
.
error
(
e
);
console
.
error
(
e
);
})
})
.
finally
(()
=>
{
.
finally
(()
=>
{
createVue
.
use
(
ElementPlus
,
{
locale
}).
use
(
store
).
use
(
router
).
use
(
i18n
).
use
(
bgui
).
use
(
mavonEditor
);
createVue
.
use
(
ElementPlus
,
{
locale
}).
use
(
store
).
use
(
router
).
use
(
bgui
).
use
(
mavonEditor
);
createVue
.
mount
(
"
#app
"
);
createVue
.
mount
(
"
#app
"
);
});
});
...
...
src/page/main/forewarning/indicator-config/detail/index.vue
View file @
821117a6
...
@@ -22,7 +22,8 @@
...
@@ -22,7 +22,8 @@
<gap-title
:hasLine=
"true"
title=
"指标表达式"
></gap-title>
<gap-title
:hasLine=
"true"
title=
"指标表达式"
></gap-title>
<div
class=
"info"
>
<div
class=
"info"
>
<div
class=
"indicator-expression"
>
<div
class=
"indicator-expression"
>
<bg-code-editor
v-model=
"info.indicator_expression"
disabled
></bg-code-editor>
<!-- <bg-code-editor v-model="info.indicator_expression" disabled></bg-code-editor> -->
<bg-codemirror
:disabled=
"true"
v-model=
"info.indicator_expression"
></bg-codemirror>
</div>
</div>
</div>
</div>
<gap-title
:hasLine=
"true"
title=
"预警范围"
></gap-title>
<gap-title
:hasLine=
"true"
title=
"预警范围"
></gap-title>
...
@@ -129,7 +130,6 @@ const rule_data = ref({});
...
@@ -129,7 +130,6 @@ const rule_data = ref({});
const
ruleTypeOptions
=
ref
({});
const
ruleTypeOptions
=
ref
({});
const
getRuleTypeOptions
=
async
()
=>
{
const
getRuleTypeOptions
=
async
()
=>
{
ruleTypeOptions
.
value
=
await
GetRuleTypeOptions
();
ruleTypeOptions
.
value
=
await
GetRuleTypeOptions
();
console
.
log
(
"
ruleTypeOptions.value:
"
,
ruleTypeOptions
.
value
);
getInfoData
();
getInfoData
();
};
};
const
advanced_label
=
[
const
advanced_label
=
[
...
...
src/page/main/forewarning/indicator-config/index.vue
View file @
821117a6
...
@@ -2,20 +2,38 @@
...
@@ -2,20 +2,38 @@
<div
class=
"detail_container"
>
<div
class=
"detail_container"
>
<bg-breadcrumb></bg-breadcrumb>
<bg-breadcrumb></bg-breadcrumb>
<div
class=
"detail_container-main"
>
<div
class=
"detail_container-main"
>
<Slide
v-model=
"node"
/>
<Slide
v-model=
"node
Data
"
/>
<div
class=
"main-content"
>
<div
class=
"main-content"
>
<bg-filter-group
@
search=
"changeSearch"
v-model=
"filter.metric_name"
placeholder=
"请输入指标名称"
>
<bg-filter-group
@
search=
"changeSearch"
v-model=
"filter.metric_name"
placeholder=
"请输入指标名称"
>
<template
v-slot:left_action
>
<template
v-slot:left_action
>
<div
class=
"apaas_button"
>
<div
class=
"apaas_button"
>
<el-button
type=
"primary"
@
click=
"addRule"
>
<el-button
type=
"primary"
class=
"add-btn"
@
click=
"addRule"
:disabled=
"nodeData?.node?.level == 1"
:style=
"[noType ? 'cursor: not-allowed' : '']"
>
<bg-icon
style=
"font-size: 12px; color: #fff; margin-right: 8px"
icon=
"#bg-ic-add"
></bg-icon>
<bg-icon
style=
"font-size: 12px; color: #fff; margin-right: 8px"
icon=
"#bg-ic-add"
></bg-icon>
新增
新增
</el-button>
</el-button>
<el-button
type=
"default"
@
click=
"batchDelete"
>
批量删除
</el-button>
<el-button
<span
class=
"header_info"
>
type=
"default"
已选择
<span
style=
"color: #202531; font-weight: bold"
>
{{
state
.
selected
.
length
}}
</span>
项
@
click=
"batchDelete"
:disabled=
"nodeData?.node?.level == 1"
:style=
"[noType ? 'cursor: not-allowed' : '']"
>
批量删除
</el-button>
<span
class=
"header_info selected-count"
>
已选择
<span
style=
"color: #202531"
>
{{
state
.
selected
.
length
}}
</span>
项
</span>
<span
class=
"header_info can_click_text clear-selected"
:class=
"
{ 'is-disabled': nodeData?.node?.level == 1 }"
@click="clearSelected">
清空
</span>
</span>
<span
class=
"header_info can_click_text"
@
click=
"clearSelected"
>
清空
</span>
</div>
</div>
</
template
>
</
template
>
<
template
v-slot:filter_group
>
<
template
v-slot:filter_group
>
...
@@ -65,12 +83,19 @@
...
@@ -65,12 +83,19 @@
{{
row
.
metric_name
}}
{{
row
.
metric_name
}}
</span>
</span>
</
template
>
</
template
>
<
template
#is_enabled
="{
row
}"
>
<
template
#status
="{
row
}"
>
<bg-switch
<el-switch
v-model=
"row.status"
active-text=
"是"
inactive-text=
"否"
inline-prompt
@
change=
"stateChange(row)"
>
</el-switch>
<!--
<bg-switch
@
click=
"stateChange(row)"
@
click=
"stateChange(row)"
:labels=
"['否', '是']"
:labels=
"['否', '是']"
:values=
"[2, 1]"
:values=
"[2, 1]"
v-model=
"row.is_enabled"
></bg-switch>
v-model=
"row.is_enabled"
></bg-switch>
-->
</
template
>
</
template
>
<
template
v-slot:created_at=
"{ row }"
>
<
template
v-slot:created_at=
"{ row }"
>
{{
dateStringToDate
(
row
.
created_at
)
}}
{{
dateStringToDate
(
row
.
created_at
)
}}
...
@@ -115,12 +140,18 @@ import axios from "@/request/http.js";
...
@@ -115,12 +140,18 @@ import axios from "@/request/http.js";
import
{
useRouter
}
from
"
vue-router
"
;
import
{
useRouter
}
from
"
vue-router
"
;
import
{
dateStringToDate
}
from
"
@/components/env
"
;
import
{
dateStringToDate
}
from
"
@/components/env
"
;
const
router
=
useRouter
();
const
router
=
useRouter
();
const
node
=
ref
({});
const
nodeData
=
ref
({});
const
noType
=
computed
(()
=>
{
return
!
nodeData
.
value
?.
data
?.
class_id
;
});
const
active_node_id
=
ref
(
""
);
watch
(
watch
(
()
=>
node
.
value
,
()
=>
node
Data
.
value
,
(
n
)
=>
{
(
n
)
=>
{
if
(
n
?.
data
.
class_id
)
{
if
(
n
.
node
.
level
==
1
)
return
;
if
(
n
?.
data
.
class_id
&&
active_node_id
.
value
!=
n
?.
data
.
class_id
)
{
getTableRows
();
getTableRows
();
active_node_id
.
value
=
n
.
data
.
class_id
;
}
}
},
},
{
deep
:
true
}
{
deep
:
true
}
...
@@ -149,7 +180,7 @@ const state = reactive({
...
@@ -149,7 +180,7 @@ const state = reactive({
},
},
{
{
label
:
"
是否启用
"
,
label
:
"
是否启用
"
,
prop
:
"
is_enabled
"
,
prop
:
"
status
"
,
},
},
{
{
label
:
"
创建人
"
,
label
:
"
创建人
"
,
...
@@ -211,15 +242,16 @@ const selectable = (row, index) => {
...
@@ -211,15 +242,16 @@ const selectable = (row, index) => {
return
row
.
is_enabled
===
2
;
return
row
.
is_enabled
===
2
;
};
};
const
getTableRows
=
()
=>
{
const
getTableRows
=
()
=>
{
const
[
start_time
=
""
,
end_time
=
""
]
=
state
.
filter
.
time
;
const
[
start_time
=
""
,
end_time
=
""
]
=
state
.
filter
.
time
||
[]
;
let
params
=
{
...
state
.
filter
,
class_id
:
node
.
value
.
data
.
class_id
,
start_time
,
end_time
};
let
params
=
{
...
state
.
filter
,
class_id
:
node
Data
.
value
.
data
.
class_id
,
start_time
,
end_time
};
Reflect
.
deleteProperty
(
params
,
"
time
"
);
Reflect
.
deleteProperty
(
params
,
"
time
"
);
axios
.
get
(
"
/v1/api/metric_config/list
"
,
{
params
}).
then
((
res
)
=>
{
axios
.
get
(
"
/v1/api/metric_config/list
"
,
{
params
}).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
state
.
tableRows
=
state
.
tableRows
=
res
.
data
.
data
?.
list
?
.
map
((
e
)
=>
{
res
.
data
.
data
?.
list
.
map
((
e
)
=>
{
return
{
return
{
...
e
,
...
e
,
status
:
e
.
is_enabled
==
1
,
};
};
})
||
[];
})
||
[];
state
.
tableTotal
=
res
.
data
.
data
.
total_count
;
state
.
tableTotal
=
res
.
data
.
data
.
total_count
;
...
@@ -248,6 +280,7 @@ const deleteRow = (row) => {
...
@@ -248,6 +280,7 @@ const deleteRow = (row) => {
};
// 删除
};
// 删除
const
batchDelete
=
()
=>
{
const
batchDelete
=
()
=>
{
// console.log("批量删除");
// console.log("批量删除");
if
(
noType
.
value
)
return
;
if
(
!
state
.
selected
||
state
.
selected
.
length
==
0
)
{
if
(
!
state
.
selected
||
state
.
selected
.
length
==
0
)
{
ElMessage
.
error
(
"
请先勾选要删除的数据
"
);
ElMessage
.
error
(
"
请先勾选要删除的数据
"
);
return
;
return
;
...
@@ -283,14 +316,16 @@ const delConfirm = () => {
...
@@ -283,14 +316,16 @@ const delConfirm = () => {
});
});
};
// 确定删除
};
// 确定删除
const
clearSelected
=
()
=>
{
const
clearSelected
=
()
=>
{
if
(
nodeData
.
value
.
node
.
level
==
1
)
return
;
dataTable
.
value
.
clearTable
();
dataTable
.
value
.
clearTable
();
};
// 清空
};
// 清空
const
addRule
=
()
=>
{
const
addRule
=
()
=>
{
// console.log("新增");
// console.log("新增");
if
(
noType
.
value
)
return
;
router
.
push
({
router
.
push
({
path
:
`/forewarning/indicator-config/add`
,
path
:
`/forewarning/indicator-config/add`
,
query
:
{
query
:
{
class_id
:
node
.
value
.
data
.
class_id
,
class_id
:
node
Data
.
value
.
data
?
.
class_id
,
},
},
});
});
};
// 新增规则
};
// 新增规则
...
@@ -300,7 +335,7 @@ const editRow = (row) => {
...
@@ -300,7 +335,7 @@ const editRow = (row) => {
path
:
`/forewarning/indicator-config/edit`
,
path
:
`/forewarning/indicator-config/edit`
,
query
:
{
query
:
{
id
:
row
.
id
,
id
:
row
.
id
,
class_id
:
node
.
value
.
data
.
class_id
,
class_id
:
node
Data
.
value
.
data
.
class_id
,
},
},
});
});
};
// 编辑
};
// 编辑
...
@@ -308,17 +343,22 @@ const stateChange = async (row) => {
...
@@ -308,17 +343,22 @@ const stateChange = async (row) => {
await
nextTick
();
await
nextTick
();
const
params
=
{
const
params
=
{
id
:
row
.
id
,
id
:
row
.
id
,
is_enabled
:
row
.
is_enabled
,
is_enabled
:
row
.
status
?
1
:
2
,
};
};
axios
.
put
(
"
/v1/api/metric_config
"
,
params
).
then
((
res
)
=>
{
axios
if
(
res
.
data
.
code
==
200
)
{
.
put
(
"
/v1/api/metric_config
"
,
params
)
ElMessage
.
success
(
`状态更新成功`
);
.
then
((
res
)
=>
{
getTableRows
();
if
(
res
.
data
.
code
==
200
)
{
}
else
{
ElMessage
.
success
(
`状态更新成功`
);
row
.
is_enabled
=
row
.
is_enabled
==
1
?
2
:
1
;
getTableRows
();
ElMessage
.
error
(
res
.
data
.
msg
);
}
else
{
}
row
.
status
=
!
row
.
status
;
});
ElMessage
.
error
(
res
.
data
.
msg
);
}
})
.
catch
((
e
)
=>
{
row
.
status
=
!
row
.
status
;
});
};
};
const
{
headers
,
tableRows
,
tableTotal
,
filter
,
noticeTypes
,
isEnabledOptions
,
delDialog
}
=
toRefs
(
state
);
const
{
headers
,
tableRows
,
tableTotal
,
filter
,
noticeTypes
,
isEnabledOptions
,
delDialog
}
=
toRefs
(
state
);
</
script
>
</
script
>
...
@@ -362,6 +402,21 @@ const { headers, tableRows, tableTotal, filter, noticeTypes, isEnabledOptions, d
...
@@ -362,6 +402,21 @@ const { headers, tableRows, tableTotal, filter, noticeTypes, isEnabledOptions, d
}
}
}
}
}
}
.selected-count
{
color
:
#404a62
;
font-size
:
14px
;
margin
:
0
24px
0
40px
;
}
.clear-selected
{
color
:
#3759be
;
font-size
:
14px
;
cursor
:
pointer
;
&
.is-disabled
{
color
:
#c0c4cc
;
cursor
:
not
-
allowed
;
}
}
.table_container
{
.table_container
{
flex
:
1
;
flex
:
1
;
width
:
100%
;
width
:
100%
;
...
@@ -385,4 +440,12 @@ const { headers, tableRows, tableTotal, filter, noticeTypes, isEnabledOptions, d
...
@@ -385,4 +440,12 @@ const { headers, tableRows, tableTotal, filter, noticeTypes, isEnabledOptions, d
}
}
}
}
}
}
.add-btn.is-disabled
{
&
,
&
:hover
{
background-image
:
none
;
background-color
:
rgb
(
149
,
163
,
202
);
border-color
:
rgb
(
149
,
163
,
202
);
}
}
</
style
>
</
style
>
src/page/main/forewarning/indicator-config/modules/add-form.vue
View file @
821117a6
...
@@ -7,7 +7,8 @@
...
@@ -7,7 +7,8 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"指标表达式"
prop=
"indicator_expression"
>
<el-form-item
label=
"指标表达式"
prop=
"indicator_expression"
>
<div
class=
"indicator-expression"
>
<div
class=
"indicator-expression"
>
<bg-code-editor
v-model=
"state.form.indicator_expression"
></bg-code-editor>
<!--
<bg-code-editor
v-model=
"state.form.indicator_expression"
></bg-code-editor>
-->
<bg-codemirror
v-model=
"state.form.indicator_expression"
></bg-codemirror>
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"预警范围"
prop=
""
>
<el-form-item
label=
"预警范围"
prop=
""
>
...
@@ -53,9 +54,12 @@
...
@@ -53,9 +54,12 @@
</el-form-item>
</el-form-item>
</div>
</div>
<el-form-item
label=
"检查周期"
prop=
"inspection_cycle"
>
<el-form-item
label=
"检查周期"
prop=
"inspection_cycle"
>
<el-select
style=
"flex: 1"
v-model=
"state.form.inspection_cycle"
placeholder=
"请选择检查周期"
>
<div
style=
"flex: 1; display: flex; align-items: center; gap: 8px"
>
<el-option
v-for=
"item in inspectionCycleOptions"
:key=
"item"
:label=
"item"
:value=
"item"
>
</el-option>
<el-select
style=
"flex: 1"
v-model=
"state.form.inspection_cycle"
placeholder=
"请选择检查周期"
>
</el-select>
<el-option
v-for=
"item in inspectionCycleOptions"
:key=
"item"
:label=
"item"
:value=
"item"
>
</el-option>
</el-select>
<span>
分钟
</span>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"是否立即启用"
>
<el-form-item
label=
"是否立即启用"
>
<el-switch
<el-switch
...
@@ -143,14 +147,27 @@ const Submit = async () => {
...
@@ -143,14 +147,27 @@ const Submit = async () => {
});
});
let
table_form_valid
=
await
table_form_ref
.
value
.
Submit
();
let
table_form_valid
=
await
table_form_ref
.
value
.
Submit
();
if
(
form_valid
&&
table_form_valid
)
{
if
(
form_valid
&&
table_form_valid
)
{
return
{
let
obj
=
{
...
state
.
form
,
...
state
.
form
,
...
table_form_ref
.
value
?.
form
,
...
table_form_ref
.
value
?.
form
,
};
};
if
(
!
isEdit
.
value
)
{
setTimeout
(()
=>
{
state
.
form
.
indicator_expression
=
""
;
table_form_ref
.
value
.
form_ref
.
resetFields
();
form_ref
.
value
.
resetFields
();
},
100
);
}
return
obj
;
}
}
ElMessage
.
error
(
"
有必填项没有填写
"
);
return
;
return
;
};
};
watch
(
()
=>
state
.
form
.
indicator_expression
,
(
n
)
=>
{
form_ref
.
value
?.
validateField
([
"
indicator_expression
"
]);
}
);
// 监听是否是编辑,是则插入原数据
// 监听是否是编辑,是则插入原数据
watch
(
watch
(
()
=>
props
.
row
,
()
=>
props
.
row
,
...
...
src/page/main/forewarning/indicator-config/modules/interface.js
View file @
821117a6
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
axios
from
"
@/request/http.js
"
;
import
axios
from
"
@/request/http.js
"
;
const
setParams
=
(
res
,
{
id
,
class_id
})
=>
{
const
setParams
=
(
res
,
{
id
,
class_id
})
=>
{
let
params
=
{
let
params
=
{
class_id
:
+
class_id
,
class_id
:
+
class_id
,
metric_name
:
res
.
name
,
metric_name
:
res
.
name
,
expr
:
res
.
indicator_expression
,
expr
:
res
.
indicator_expression
,
alert_range
:
res
.
warningScopeRows
.
map
((
e
)
=>
{
alert_range
:
return
{
res
.
warningScopeRows
.
map
((
e
)
=>
{
variable_name
:
e
.
key
,
return
{
metric_name
:
e
.
indicator_scope
,
variable_name
:
e
.
key
,
metric_label
:
e
.
indicator_tag
,
metric_name
:
e
.
indicator_scope
,
chinese_name
:
e
.
cname
,
metric_label
:
e
.
indicator_tag
,
is_required
:
e
.
is_required
==
1
,
chinese_name
:
e
.
cname
,
is_linked
:
e
.
is_linkage
==
1
,
is_required
:
e
.
is_required
==
1
,
};
is_linked
:
e
.
is_linkage
==
1
,
})
||
[],
};
duration
:
+
res
.
time
,
})
||
[],
duration_unit
:
res
.
unit
,
duration
:
+
res
.
time
,
check_period
:
res
.
inspection_cycle
,
duration_unit
:
res
.
unit
,
is_enabled
:
res
.
state
,
check_period
:
res
.
inspection_cycle
,
alert_rule_type
:
res
.
rule_type
,
is_enabled
:
res
.
state
,
}
alert_rule_type
:
res
.
rule_type
,
if
(
id
)
{
};
params
.
id
=
id
if
(
id
)
{
}
params
.
id
=
id
;
return
params
;
}
}
return
params
;
};
export
const
Save
=
(
res
,
p
,
cb
)
=>
{
export
const
Save
=
(
res
,
p
,
cb
)
=>
{
let
params
=
setParams
(
res
,
p
);
let
params
=
setParams
(
res
,
p
);
axios
[
p
.
id
?
'
put
'
:
'
post
'
](
'
/v1/api/metric_config
'
,
params
).
then
(
res
=>
{
axios
[
p
.
id
?
"
put
"
:
"
post
"
](
"
/v1/api/metric_config
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
`
${
p
.
id
?
'
编辑
'
:
'
新增
'
}
成功`
)
ElMessage
.
success
(
`
${
p
.
id
?
"
编辑
"
:
"
新增
"
}
成功`
);
cb
&&
cb
()
cb
&&
cb
();
}
else
{
}
else
{
ElMessage
.
error
(
res
.
data
.
data
)
ElMessage
.
error
(
res
.
data
.
data
);
}
}
})
});
}
};
\ No newline at end of file
src/page/main/forewarning/indicator-config/modules/slide.vue
View file @
821117a6
...
@@ -62,7 +62,7 @@
...
@@ -62,7 +62,7 @@
<el-button
type=
"primary"
size=
"default"
@
click=
"Save"
>
保存
</el-button>
<el-button
type=
"primary"
size=
"default"
@
click=
"Save"
>
保存
</el-button>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
<el-dialog
:close-on-click-modal=
"false"
v-model=
"addWarnTarget"
width=
"558px"
:before-close=
"Cancel"
>
<el-dialog
:close-on-click-modal=
"false"
v-model=
"addWarnTarget"
width=
"558px"
:before-close=
"Cancel
AddWarnTarget
"
>
<
template
#header
>
<
template
#header
>
<GapTitle
:title=
"isEditWarnType ? '编辑预警对象' : '新增预警对象'"
></GapTitle>
<GapTitle
:title=
"isEditWarnType ? '编辑预警对象' : '新增预警对象'"
></GapTitle>
</
template
>
</
template
>
...
@@ -88,11 +88,13 @@
...
@@ -88,11 +88,13 @@
<el-button
type=
"primary"
size=
"default"
@
click=
"SaveAddWarnTarget"
>
保存
</el-button>
<el-button
type=
"primary"
size=
"default"
@
click=
"SaveAddWarnTarget"
>
保存
</el-button>
</
template
>
</
template
>
</el-dialog>
</el-dialog>
<el-dialog
v-model=
"delWarnType"
width=
"400px"
:before-close=
"Cancel"
>
<el-dialog
v-model=
"delWarnType"
width=
"400px"
:before-close=
"Cancel
Del
"
>
<
template
#header
>
<
template
#header
>
<GapTitle
title=
"删除预警分类
"
></GapTitle>
<GapTitle
:title=
"`删除预警$
{activeTree.node.level == 1 ? '分类' : '对象'}`
">
</GapTitle>
</
template
>
</
template
>
<div
style=
"padding: 20px 0"
>
是否确定删除 {{ activeTree.own.label }} 这个预警分类
</div>
<div
style=
"padding: 20px 0"
>
是否确定删除 {{ activeTree.own.label }} 这个预警{{ activeTree.node.level == 1 ? "分类" : "对象" }}
</div>
<
template
#footer
>
<
template
#footer
>
<el-button
size=
"default"
@
click=
"CancelDel"
>
取消
</el-button>
<el-button
size=
"default"
@
click=
"CancelDel"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"default"
@
click=
"ConfirmDel"
>
确定
</el-button>
<el-button
type=
"primary"
size=
"default"
@
click=
"ConfirmDel"
>
确定
</el-button>
...
@@ -145,7 +147,7 @@ const getSlideTree = () => {
...
@@ -145,7 +147,7 @@ const getSlideTree = () => {
};
};
const
filterNode
=
(
value
,
data
)
=>
{
const
filterNode
=
(
value
,
data
)
=>
{
if
(
!
value
)
return
data
;
if
(
!
value
)
return
data
;
return
data
.
label
.
includes
(
value
);
return
data
.
class_name
.
includes
(
value
);
};
};
const
Search
=
async
()
=>
{
const
Search
=
async
()
=>
{
await
nextTick
();
await
nextTick
();
...
@@ -156,7 +158,6 @@ const Add = () => {
...
@@ -156,7 +158,6 @@ const Add = () => {
};
};
const
emits
=
defineEmits
([
"
undate:modelValue
"
]);
const
emits
=
defineEmits
([
"
undate:modelValue
"
]);
const
treeNodeChoose
=
(
data
,
node
)
=>
{
const
treeNodeChoose
=
(
data
,
node
)
=>
{
if
(
node
.
level
==
1
)
return
;
emits
(
"
update:modelValue
"
,
{
data
,
node
});
emits
(
"
update:modelValue
"
,
{
data
,
node
});
};
};
const
getBrotherNodes
=
(
node
)
=>
{
const
getBrotherNodes
=
(
node
)
=>
{
...
@@ -333,7 +334,7 @@ const SaveAddWarnTarget = () => {
...
@@ -333,7 +334,7 @@ const SaveAddWarnTarget = () => {
let
method
=
isEditWarnType
.
value
?
"
put
"
:
"
post
"
;
let
method
=
isEditWarnType
.
value
?
"
put
"
:
"
post
"
;
axios
[
method
](
"
/v1/api/alert_class
"
,
params
).
then
((
res
)
=>
{
axios
[
method
](
"
/v1/api/alert_class
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
"
预警对象新建成功
"
);
ElMessage
.
success
(
`预警对象
${
isEditWarnType
.
value
?
"
编辑
"
:
"
新建
"
}
成功`
);
CancelAddWarnTarget
();
CancelAddWarnTarget
();
getSlideTree
();
getSlideTree
();
}
else
{
}
else
{
...
...
src/page/main/forewarning/indicator-config/modules/warning-scope.vue
View file @
821117a6
This diff is collapsed.
Click to expand it.
src/page/main/forewarning/rule-set/add/index.vue
View file @
821117a6
...
@@ -26,10 +26,11 @@ const Cancle = () => {
...
@@ -26,10 +26,11 @@ const Cancle = () => {
};
};
const
add_form
=
ref
(
null
);
const
add_form
=
ref
(
null
);
const
SaveSubmit
=
async
()
=>
{
const
SaveSubmit
=
async
()
=>
{
let
res
=
await
add_form
.
value
.
Submit
();
let
{
res
,
cb
}
=
await
add_form
.
value
.
Submit
();
if
(
!
res
)
return
;
if
(
!
res
)
return
;
Save
(
res
,
{},
()
=>
{
Save
(
res
,
{},
()
=>
{
Cancle
();
Cancle
();
cb
&&
cb
();
});
});
};
};
</
script
>
</
script
>
...
...
src/page/main/forewarning/rule-set/detail/index.vue
View file @
821117a6
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
</
template
>
</
template
>
</Info>
</Info>
</div>
</div>
<div
class=
"warn-scope"
v-if=
"detection_type == 1"
>
<div
class=
"warn-scope"
v-if=
"detection_type == 1
&& watning_scope_data_key.length > 0
"
>
<gap-title
:hasLine=
"true"
title=
"预警范围"
></gap-title>
<gap-title
:hasLine=
"true"
title=
"预警范围"
></gap-title>
<div
class=
"info"
>
<div
class=
"info"
>
<Info
:labelData=
"warning_scope_label"
:valueData=
"watning_scope_data"
>
</Info>
<Info
:labelData=
"warning_scope_label"
:valueData=
"watning_scope_data"
>
</Info>
...
@@ -22,7 +22,8 @@
...
@@ -22,7 +22,8 @@
<div
class=
"warn-scope"
v-else
>
<div
class=
"warn-scope"
v-else
>
<gap-title
:hasLine=
"true"
title=
"指标表达式"
></gap-title>
<gap-title
:hasLine=
"true"
title=
"指标表达式"
></gap-title>
<div
class=
"indicator-expression"
>
<div
class=
"indicator-expression"
>
<bg-code-editor
v-model=
"indicator_expression"
:disabled=
"true"
></bg-code-editor>
<!-- <bg-code-editor v-model="indicator_expression" :disabled="true"></bg-code-editor> -->
<bg-codemirror
:disabled=
"true"
v-model=
"indicator_expression"
></bg-codemirror>
</div>
</div>
</div>
</div>
<gap-title
:hasLine=
"true"
title=
"预警规则"
></gap-title>
<gap-title
:hasLine=
"true"
title=
"预警规则"
></gap-title>
...
@@ -210,11 +211,12 @@ const getInfoData = () => {
...
@@ -210,11 +211,12 @@ const getInfoData = () => {
data
.
alert_range
.
forEach
((
e
)
=>
{
data
.
alert_range
.
forEach
((
e
)
=>
{
warning_scope_label
.
value
.
push
([
warning_scope_label
.
value
.
push
([
{
{
prop
:
e
.
name
,
prop
:
e
.
chinese_name
||
e
.
name
,
label
:
e
.
chinese_name
||
e
.
name
,
label
:
e
.
chinese_name
||
e
.
name
,
},
},
]);
]);
watning_scope_data
.
value
[
e
.
name
]
=
e
.
value
==
"
.*
"
?
"
全部
"
:
`
${
selectRule
[
e
.
compare
]}
${
e
.
value
}
`
;
watning_scope_data
.
value
[
e
.
chinese_name
||
e
.
name
]
=
e
.
value
==
"
.*
"
?
"
全部
"
:
`
${
selectRule
[
e
.
compare
]}
${
e
.
value
}
`
;
});
});
let
isEmpty
=
Empty
(
data
.
alert_rule_type
,
ruleTypeOptions
.
value
);
let
isEmpty
=
Empty
(
data
.
alert_rule_type
,
ruleTypeOptions
.
value
);
if
(
!
isEmpty
)
{
if
(
!
isEmpty
)
{
...
@@ -241,7 +243,7 @@ const getInfoData = () => {
...
@@ -241,7 +243,7 @@ const getInfoData = () => {
if
(
ruleTypeOptions
.
value
[
data
.
alert_rule_type
].
up
!==
""
)
{
if
(
ruleTypeOptions
.
value
[
data
.
alert_rule_type
].
up
!==
""
)
{
max
=
ruleTypeOptions
.
value
[
data
.
alert_rule_type
].
up
+
unit
;
max
=
ruleTypeOptions
.
value
[
data
.
alert_rule_type
].
up
+
unit
;
}
else
{
}
else
{
max
=
WIELESS_
SMALL
;
max
=
WIELESS_
BIG
;
}
}
}
}
return
{
return
{
...
...
src/page/main/forewarning/rule-set/edit/index.vue
View file @
821117a6
...
@@ -32,9 +32,8 @@ const Cancle = () => {
...
@@ -32,9 +32,8 @@ const Cancle = () => {
};
};
const
add_form
=
ref
(
null
);
const
add_form
=
ref
(
null
);
const
SaveSubmit
=
async
()
=>
{
const
SaveSubmit
=
async
()
=>
{
let
res
=
await
add_form
.
value
.
Submit
();
let
{
res
,
cb
}
=
await
add_form
.
value
.
Submit
();
if
(
!
res
)
return
;
if
(
!
res
)
return
;
console
.
log
(
"
res:
"
,
res
);
Save
(
res
,
{
id
},
()
=>
{
Save
(
res
,
{
id
},
()
=>
{
Cancle
();
Cancle
();
});
});
...
@@ -65,20 +64,20 @@ const getInfoData = () => {
...
@@ -65,20 +64,20 @@ const getInfoData = () => {
warn_indicator
:
data
.
metric_config_id
,
warn_indicator
:
data
.
metric_config_id
,
warn_target
:
findTypeBySecond
(
data
.
class_id
)?.
class_id
||
""
,
warn_target
:
findTypeBySecond
(
data
.
class_id
)?.
class_id
||
""
,
rule_type
:
data
.
alert_rule_type
,
rule_type
:
data
.
alert_rule_type
,
warning_scpoe_form
:
data
.
alert_range
?.
map
((
e
)
=>
{
return
{
...
e
,
value
:
e
.
value
==
"
.*
"
?
""
:
e
.
value
,
select
:
e
.
value
==
"
.*
"
?
"
all
"
:
e
.
compare
,
options
:
[],
};
})
||
[],
},
},
};
};
if
(
isEmpty
)
{
if
(
isEmpty
)
{
obj
.
type_com_ref
.
risk_level
=
data
.
alert_condition
[
0
].
risk_level
;
obj
.
type_com_ref
.
risk_level
=
data
.
alert_condition
[
0
].
risk_level
;
}
else
{
}
else
{
obj
.
type_com_ref
.
warning_scpoe_form
=
data
.
alert_range
?.
map
((
e
)
=>
{
return
{
...
e
,
value
:
e
.
value
==
"
.*
"
?
""
:
e
.
value
,
select
:
e
.
value
==
"
.*
"
?
"
all
"
:
e
.
compare
,
options
:
[],
};
})
||
[];
obj
.
type_com_ref
.
ruleRows
=
obj
.
type_com_ref
.
ruleRows
=
data
.
alert_condition
?.
map
((
e
)
=>
{
data
.
alert_condition
?.
map
((
e
)
=>
{
return
{
return
{
...
...
src/page/main/forewarning/rule-set/modules/add-form.vue
View file @
821117a6
...
@@ -23,7 +23,8 @@
...
@@ -23,7 +23,8 @@
ref=
"type_com_ref"
ref=
"type_com_ref"
:is=
"typeCom[state.form.type_key]"
:is=
"typeCom[state.form.type_key]"
:isEdit=
"isEdit"
:isEdit=
"isEdit"
:form=
"typrFormData"
></component>
:form=
"typrFormData"
@
update-duration=
"updateDuration"
></component>
<gap-title
:hasLine=
"true"
title=
"高级配置"
></gap-title>
<gap-title
:hasLine=
"true"
title=
"高级配置"
></gap-title>
<div
class=
"add-form-item"
>
<div
class=
"add-form-item"
>
<div
class=
"duration"
>
<div
class=
"duration"
>
...
@@ -108,6 +109,7 @@ import ManualDistributionForm from "@/components/manual-distribution/form.vue";
...
@@ -108,6 +109,7 @@ import ManualDistributionForm from "@/components/manual-distribution/form.vue";
import
Static
from
"
./static.vue
"
;
import
Static
from
"
./static.vue
"
;
import
Custom
from
"
./custom.vue
"
;
import
Custom
from
"
./custom.vue
"
;
import
{
MAX_DAY
}
from
"
@/components/env.js
"
;
import
{
MAX_DAY
}
from
"
@/components/env.js
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
const
props
=
defineProps
({
const
props
=
defineProps
({
row
:
{
row
:
{
type
:
Object
,
type
:
Object
,
...
@@ -151,6 +153,14 @@ const inputNum = () => {
...
@@ -151,6 +153,14 @@ const inputNum = () => {
state
.
form
.
time
=
max
;
state
.
form
.
time
=
max
;
}
}
};
};
const
updateDuration
=
(
data
)
=>
{
const
{
duration
,
duration_unit
,
check_period
}
=
data
;
state
.
form
.
time
=
duration
;
state
.
form
.
unit
=
duration_unit
;
state
.
form
.
inspection_cycle
=
check_period
;
};
const
types
=
{
const
types
=
{
static
:
"
静态阈值
"
,
static
:
"
静态阈值
"
,
custom
:
"
自定义
"
,
custom
:
"
自定义
"
,
...
@@ -159,16 +169,6 @@ const changeType = async (key) => {
...
@@ -159,16 +169,6 @@ const changeType = async (key) => {
state
.
form
.
type_key
=
key
;
state
.
form
.
type_key
=
key
;
form_ref
.
value
.
clearValidate
();
form_ref
.
value
.
clearValidate
();
};
};
const
durationOptions
=
[
{
id
:
1
,
name
:
"
直接产生预警
"
,
},
{
id
:
2
,
name
:
"
当预警持续
"
,
},
];
const
timeOptions
=
[
10
,
20
,
60
,
120
,
180
,
300
];
const
timeOptions
=
[
10
,
20
,
60
,
120
,
180
,
300
];
const
inspectionCycleOptions
=
ref
([
1
,
3
,
5
,
10
,
20
]);
const
inspectionCycleOptions
=
ref
([
1
,
3
,
5
,
10
,
20
]);
const
form_ref
=
ref
(
null
);
const
form_ref
=
ref
(
null
);
...
@@ -180,14 +180,26 @@ const Submit = async () => {
...
@@ -180,14 +180,26 @@ const Submit = async () => {
let
type_com_ref_valid
=
await
type_com_ref
.
value
.
Submit
();
let
type_com_ref_valid
=
await
type_com_ref
.
value
.
Submit
();
let
manual_distribution_form_valid
=
await
manual_distribution_form
.
value
.
Submit
();
let
manual_distribution_form_valid
=
await
manual_distribution_form
.
value
.
Submit
();
if
(
form_valid
&&
type_com_ref_valid
&&
manual_distribution_form_valid
)
{
if
(
form_valid
&&
type_com_ref_valid
&&
manual_distribution_form_valid
)
{
return
{
let
obj
=
{
...
state
.
form
,
...
state
.
form
,
type_com_ref
:
type_com_ref
.
value
?.
form
||
{},
type_com_ref
:
type_com_ref
.
value
?.
form
||
{},
manual_distribution_form
:
manual_distribution_form
.
value
?.
form
||
{},
manual_distribution_form
:
manual_distribution_form
.
value
?.
form
||
{},
};
};
return
{
res
:
obj
,
cb
:
()
=>
{
if
(
!
isEdit
.
value
)
{
setTimeout
(()
=>
{
type_com_ref
.
value
.
form_ref
.
resetFields
();
manual_distribution_form
.
value
.
form_ref
.
resetFields
();
form_ref
.
value
.
resetFields
();
},
100
);
}
},
};
}
}
ElMessage
.
error
(
"
有必填项没有填写
"
);
ElMessage
.
error
(
"
有必填项没有填写
"
);
return
;
return
{}
;
};
};
watch
(
watch
(
()
=>
props
.
row
,
()
=>
props
.
row
,
...
...
src/page/main/forewarning/rule-set/modules/custom.vue
View file @
821117a6
...
@@ -37,7 +37,8 @@
...
@@ -37,7 +37,8 @@
<div
class=
"custom-form-item"
>
<div
class=
"custom-form-item"
>
<el-form-item
label=
""
prop=
"indicator_expression"
>
<el-form-item
label=
""
prop=
"indicator_expression"
>
<div
class=
"indicator-expression"
>
<div
class=
"indicator-expression"
>
<bg-code-editor
v-model=
"state.form.indicator_expression"
></bg-code-editor>
<!--
<bg-code-editor
v-model=
"state.form.indicator_expression"
></bg-code-editor>
-->
<bg-codemirror
v-model=
"state.form.indicator_expression"
></bg-codemirror>
</div>
</div>
</el-form-item>
</el-form-item>
</div>
</div>
...
@@ -250,11 +251,10 @@ const inputNum = (index, key) => {
...
@@ -250,11 +251,10 @@ const inputNum = (index, key) => {
if
(
state
.
form
.
ruleRows
[
index
][
key
]
==
""
)
return
;
if
(
state
.
form
.
ruleRows
[
index
][
key
]
==
""
)
return
;
if
(
state
.
form
.
ruleRows
[
index
][
key
]
==
"
-
"
)
return
;
if
(
state
.
form
.
ruleRows
[
index
][
key
]
==
"
-
"
)
return
;
state
.
form
.
ruleRows
[
index
][
key
]
=
`
${
state
.
form
.
ruleRows
[
index
][
key
]}
`
state
.
form
.
ruleRows
[
index
][
key
]
=
`
${
state
.
form
.
ruleRows
[
index
][
key
]}
`
.
replace
(
/
[^\-
?
\d
.
]
/g
,
""
)
//只允许输入负号,数字,小数点
.
replace
(
/
[^\-
?
\d
.
]
/g
,
""
)
.
replace
(
/
(\-)
+/
,
"
$1
"
)
//过滤连续多个负号
.
replace
(
/
(\.)
+/
,
"
$1
"
)
.
replace
(
/
(\.)
+/
,
"
$1
"
)
//过滤连续多个小数点
.
replace
(
/
(\.\d
+
)\.
+/g
,
"
$1
"
)
.
replace
(
/
(\.\d
+
)\.
/g
,
"
$1
"
)
//过滤出现多个小数点
.
replace
(
/
(\.
.*
)\.
/g
,
"
$1
"
);
.
replace
(
/
(\d)\-
/g
,
"
$1
"
);
//过滤处于非开头的负号
};
};
const
changeWarningThresholdFrom
=
(
index
)
=>
{
const
changeWarningThresholdFrom
=
(
index
)
=>
{
let
{
down
,
up
}
=
limit
.
value
;
let
{
down
,
up
}
=
limit
.
value
;
...
@@ -274,18 +274,13 @@ const changeWarningThresholdFrom = (index) => {
...
@@ -274,18 +274,13 @@ const changeWarningThresholdFrom = (index) => {
}
}
let
rows
=
setLimits
(
index
);
let
rows
=
setLimits
(
index
);
if
(
rows
.
length
==
0
)
return
;
if
(
rows
.
length
==
0
)
return
;
try
{
let
items
=
rows
.
filter
((
e
,
i
)
=>
{
rows
.
forEach
((
e
)
=>
{
let
isPassDown
=
e
.
down
!==
""
?
+
e
.
down
<=
+
from
:
false
;
if
(
from
!==
""
)
{
let
isLessUp
=
e
.
up
!==
""
?
+
e
.
up
>=
+
from
:
false
;
if
(
i
==
0
&&
e
.
down
===
""
&&
+
from
<=
+
e
.
up
)
{
let
isLessDownAndPassUp
=
e
.
down
!==
""
&&
e
.
up
!==
""
&&
to
!==
""
?
+
from
<
+
e
.
down
&&
+
to
>
+
e
.
up
:
false
;
throw
""
;
return
(
isPassDown
&&
isLessUp
)
||
isLessDownAndPassUp
;
}
});
if
(
e
.
up
!==
""
&&
e
.
down
!==
""
&&
+
e
.
up
>=
+
from
&&
+
from
>
+
e
.
down
)
{
if
(
items
.
length
>
0
)
{
throw
""
;
}
}
});
}
catch
(
e
)
{
ElMessage
.
error
(
`该范围已被设置`
);
ElMessage
.
error
(
`该范围已被设置`
);
state
.
form
.
ruleRows
[
index
].
from
=
""
;
state
.
form
.
ruleRows
[
index
].
from
=
""
;
}
}
...
@@ -308,18 +303,13 @@ const changeWarningThresholdTo = (index) => {
...
@@ -308,18 +303,13 @@ const changeWarningThresholdTo = (index) => {
}
}
let
rows
=
setLimits
(
index
);
let
rows
=
setLimits
(
index
);
if
(
rows
.
length
==
0
)
return
;
if
(
rows
.
length
==
0
)
return
;
try
{
let
items
=
rows
.
filter
((
e
,
i
)
=>
{
rows
.
forEach
((
e
)
=>
{
let
isPassDown
=
e
.
down
!==
""
?
+
e
.
down
<=
+
to
:
false
;
if
(
to
!==
""
)
{
let
isLessUp
=
e
.
up
!==
""
?
+
e
.
up
>=
+
to
:
false
;
if
(
i
==
rows
.
length
-
1
&&
e
.
up
===
""
&&
+
to
>
+
e
.
down
)
{
let
isLessDownAndPassUp
=
e
.
down
!==
""
&&
e
.
up
!==
""
&&
from
!==
""
?
+
from
<
+
e
.
down
&&
+
to
>
+
e
.
up
:
false
;
throw
""
;
return
(
isPassDown
&&
isLessUp
)
||
isLessDownAndPassUp
;
}
});
if
(
e
.
up
!==
""
&&
e
.
down
!==
""
&&
+
e
.
up
>
+
to
&&
+
to
>
+
e
.
down
)
{
if
(
items
.
length
>
0
)
{
throw
""
;
}
}
});
}
catch
(
e
)
{
ElMessage
.
error
(
`该范围已被设置`
);
ElMessage
.
error
(
`该范围已被设置`
);
state
.
form
.
ruleRows
[
index
].
to
=
""
;
state
.
form
.
ruleRows
[
index
].
to
=
""
;
}
}
...
...
src/page/main/forewarning/rule-set/modules/gateway.vue
View file @
821117a6
...
@@ -130,10 +130,20 @@ const state = reactive({
...
@@ -130,10 +130,20 @@ const state = reactive({
},
},
tableRules
:
{
tableRules
:
{
from
:
(
index
)
=>
{
from
:
(
index
)
=>
{
return
[{
validator
:
(
rule
,
value
,
callback
)
=>
validateFrom
(
rule
,
value
,
callback
,
index
),
trigger
:
"
blur
"
}];
return
[
{
validator
:
(
rule
,
value
,
callback
)
=>
validateFrom
(
rule
,
value
,
callback
,
index
),
trigger
:
"
blur
"
,
},
];
},
},
to
:
(
index
)
=>
{
to
:
(
index
)
=>
{
return
[{
validator
:
(
rule
,
value
,
callback
)
=>
validateTo
(
rule
,
value
,
callback
,
index
),
trigger
:
"
blur
"
}];
return
[
{
validator
:
(
rule
,
value
,
callback
)
=>
validateTo
(
rule
,
value
,
callback
,
index
),
trigger
:
"
blur
"
,
},
];
},
},
risk_level
:
[{
required
:
true
,
message
:
"
请选择
"
,
trigger
:
"
change
"
}],
risk_level
:
[{
required
:
true
,
message
:
"
请选择
"
,
trigger
:
"
change
"
}],
},
},
...
@@ -218,7 +228,7 @@ const limit = computed(() => {
...
@@ -218,7 +228,7 @@ const limit = computed(() => {
const
changeWarningThresholdFrom
=
(
index
)
=>
{
const
changeWarningThresholdFrom
=
(
index
)
=>
{
let
{
down
,
up
}
=
limit
.
value
;
let
{
down
,
up
}
=
limit
.
value
;
let
{
from
,
to
}
=
state
.
form
.
ruleRows
[
index
];
let
{
from
,
to
}
=
state
.
form
.
ruleRows
[
index
];
if
(
to
!==
""
&&
from
!==
""
&&
from
>
+
to
)
{
if
(
to
!==
""
&&
from
!==
""
&&
from
>
=
+
to
)
{
ElMessage
.
error
(
`下限不能大于上限`
);
ElMessage
.
error
(
`下限不能大于上限`
);
state
.
form
.
ruleRows
[
index
].
from
=
""
;
state
.
form
.
ruleRows
[
index
].
from
=
""
;
return
;
return
;
...
@@ -233,18 +243,13 @@ const changeWarningThresholdFrom = (index) => {
...
@@ -233,18 +243,13 @@ const changeWarningThresholdFrom = (index) => {
}
}
let
rows
=
setLimits
(
index
);
let
rows
=
setLimits
(
index
);
if
(
rows
.
length
==
0
)
return
;
if
(
rows
.
length
==
0
)
return
;
try
{
let
items
=
rows
.
filter
((
e
,
i
)
=>
{
rows
.
forEach
((
e
,
i
)
=>
{
let
isPassDown
=
e
.
down
!==
""
?
+
e
.
down
<=
+
from
:
false
;
if
(
from
!==
""
)
{
let
isLessUp
=
e
.
up
!==
""
?
+
e
.
up
>=
+
from
:
false
;
if
(
i
==
0
&&
e
.
down
===
""
&&
+
from
<=
+
e
.
up
)
{
let
isLessDownAndPassUp
=
e
.
down
!==
""
&&
e
.
up
!==
""
&&
to
!==
""
?
+
from
<
+
e
.
down
&&
+
to
>
+
e
.
up
:
false
;
throw
""
;
return
(
isPassDown
&&
isLessUp
)
||
isLessDownAndPassUp
;
}
});
if
(
e
.
up
!==
""
&&
e
.
down
!==
""
&&
+
e
.
up
>=
+
from
&&
+
from
>
+
e
.
down
)
{
if
(
items
.
length
>
0
)
{
throw
""
;
}
}
});
}
catch
(
e
)
{
ElMessage
.
error
(
`该范围已被设置`
);
ElMessage
.
error
(
`该范围已被设置`
);
state
.
form
.
ruleRows
[
index
].
from
=
""
;
state
.
form
.
ruleRows
[
index
].
from
=
""
;
}
}
...
@@ -262,7 +267,7 @@ const inputNum = (index, key) => {
...
@@ -262,7 +267,7 @@ const inputNum = (index, key) => {
const
changeWarningThresholdTo
=
(
index
)
=>
{
const
changeWarningThresholdTo
=
(
index
)
=>
{
let
{
down
,
up
}
=
limit
.
value
;
let
{
down
,
up
}
=
limit
.
value
;
let
{
from
,
to
}
=
state
.
form
.
ruleRows
[
index
];
let
{
from
,
to
}
=
state
.
form
.
ruleRows
[
index
];
if
(
to
!==
""
&&
from
!==
""
&&
from
>
+
to
)
{
if
(
to
!==
""
&&
from
!==
""
&&
from
>
=
+
to
)
{
ElMessage
.
error
(
`下限不能大于上限`
);
ElMessage
.
error
(
`下限不能大于上限`
);
state
.
form
.
ruleRows
[
index
].
to
=
""
;
state
.
form
.
ruleRows
[
index
].
to
=
""
;
return
;
return
;
...
@@ -277,18 +282,13 @@ const changeWarningThresholdTo = (index) => {
...
@@ -277,18 +282,13 @@ const changeWarningThresholdTo = (index) => {
}
}
let
rows
=
setLimits
(
index
);
let
rows
=
setLimits
(
index
);
if
(
rows
.
length
==
0
)
return
;
if
(
rows
.
length
==
0
)
return
;
try
{
let
items
=
rows
.
filter
((
e
,
i
)
=>
{
rows
.
forEach
((
e
,
i
)
=>
{
let
isPassDown
=
e
.
down
!==
""
?
+
e
.
down
<=
+
to
:
false
;
if
(
to
!==
""
)
{
let
isLessUp
=
e
.
up
!==
""
?
+
e
.
up
>=
+
to
:
false
;
if
(
i
==
rows
.
length
-
1
&&
e
.
up
===
""
&&
+
to
>
+
e
.
down
)
{
let
isLessDownAndPassUp
=
e
.
down
!==
""
&&
e
.
up
!==
""
&&
from
!==
""
?
+
from
<
+
e
.
down
&&
+
to
>
+
e
.
up
:
false
;
throw
""
;
return
(
isPassDown
&&
isLessUp
)
||
isLessDownAndPassUp
;
}
});
if
(
e
.
up
!==
""
&&
e
.
down
!==
""
&&
+
e
.
up
>
+
to
&&
+
to
>
+
e
.
down
)
{
if
(
items
.
length
>
0
)
{
throw
""
;
}
}
});
}
catch
(
e
)
{
ElMessage
.
error
(
`该范围已被设置`
);
ElMessage
.
error
(
`该范围已被设置`
);
state
.
form
.
ruleRows
[
index
].
to
=
""
;
state
.
form
.
ruleRows
[
index
].
to
=
""
;
}
}
...
...
src/page/main/forewarning/rule-set/modules/interface.js
View file @
821117a6
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
axios
from
"
@/request/http.js
"
;
import
axios
from
"
@/request/http.js
"
;
// max(container_fs_usage_bytes{pod!=\"\", namespace!=\"arms-prom\",namespace!=\"monitoring\"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=\"\"}) by (pod_name,namespace, device) * 100
const
setParams
=
(
res
,
{
id
})
=>
{
const
setParams
=
(
res
,
{
id
})
=>
{
let
isEmpty
=
res
.
type_com_ref
.
isEmpty
let
isEmpty
=
res
.
type_com_ref
.
isEmpty
let
params
=
{
let
params
=
{
...
@@ -69,13 +68,12 @@ const setParams = (res, { id }) => {
...
@@ -69,13 +68,12 @@ const setParams = (res, { id }) => {
compare
:
e
.
select
==
'
all
'
?
'
=~
'
:
e
.
select
compare
:
e
.
select
==
'
all
'
?
'
=~
'
:
e
.
select
}
}
}),
}),
//
//
预警规则(下拉)
// 预警规则(下拉)
alert_rule_type
:
res
.
type_com_ref
.
alert_rule_type
,
alert_rule_type
:
res
.
type_com_ref
.
alert_rule_type
,
}
}
}
}
}
}
let
alert_condition
=
[]
let
alert_condition
=
[]
// debugger;
if
(
isEmpty
)
{
if
(
isEmpty
)
{
alert_condition
=
[{
alert_condition
=
[{
thresholds_max
:
0
,
thresholds_max
:
0
,
...
...
src/page/main/forewarning/rule-set/modules/static.vue
View file @
821117a6
...
@@ -89,7 +89,7 @@
...
@@ -89,7 +89,7 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
computed
,
nextTick
,
onMounted
,
reactive
,
ref
,
shallowReactive
}
from
"
vue
"
;
import
{
computed
,
nextTick
,
onMounted
,
reactive
,
ref
,
shallowReactive
,
watch
}
from
"
vue
"
;
import
gapTitle
from
"
@/components/gap-title.vue
"
;
import
gapTitle
from
"
@/components/gap-title.vue
"
;
import
Gateway
from
"
./gateway.vue
"
;
import
Gateway
from
"
./gateway.vue
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
...
@@ -132,13 +132,6 @@ const props = defineProps({
...
@@ -132,13 +132,6 @@ const props = defineProps({
default
:
false
,
default
:
false
,
},
},
});
});
// const changeSelect = (index, item) => {
// if (showSelect.includes(item.is_linked)) {
// state.form.warning_scpoe_form[index].value = [];
// } else {
// state.form.warning_scpoe_form[index].value = "";
// }
// };
const
validateValue
=
(
rule
,
value
,
callback
,
item
,
index
)
=>
{
const
validateValue
=
(
rule
,
value
,
callback
,
item
,
index
)
=>
{
if
(
!
item
.
is_required
||
item
.
select
==
"
all
"
)
return
callback
();
if
(
!
item
.
is_required
||
item
.
select
==
"
all
"
)
return
callback
();
if
(
item
.
value
==
""
)
{
if
(
item
.
value
==
""
)
{
...
@@ -160,6 +153,22 @@ const state = reactive({
...
@@ -160,6 +153,22 @@ const state = reactive({
risk_level
:
[{
required
:
true
,
message
:
"
请选择风险程度
"
,
trigger
:
"
change
"
}],
risk_level
:
[{
required
:
true
,
message
:
"
请选择风险程度
"
,
trigger
:
"
change
"
}],
},
},
});
});
const
info
=
()
=>
{
state
.
form
.
warn_type
=
props
.
form
.
warn_target
&&
props
.
form
.
warn_type
?
[
props
.
form
.
warn_target
,
props
.
form
.
warn_type
]
:
[];
state
.
form
.
warn_indicator
=
props
.
form
.
warn_indicator
;
alert_rule_type
.
value
=
props
.
form
.
rule_type
||
"
1
"
;
let
params
=
{
page
:
1
,
page_size
:
10000000000000
,
class_id
:
props
.
form
.
warn_type
,
is_enabled
:
1
,
};
getWarningIndicator
(
params
,
()
=>
{
state
.
form
.
warning_scpoe_form
=
props
.
form
?.
warning_scpoe_form
||
[];
});
state
.
form
.
risk_level
=
props
.
form
.
risk_level
;
};
const
ruleTypeOptions
=
ref
({});
const
ruleTypeOptions
=
ref
({});
const
getRuleTypeOptions
=
async
(
cb
)
=>
{
const
getRuleTypeOptions
=
async
(
cb
)
=>
{
ruleTypeOptions
.
value
=
await
GetRuleTypeOptions
();
ruleTypeOptions
.
value
=
await
GetRuleTypeOptions
();
...
@@ -167,11 +176,22 @@ const getRuleTypeOptions = async (cb) => {
...
@@ -167,11 +176,22 @@ const getRuleTypeOptions = async (cb) => {
info
();
info
();
}
}
};
};
watch
(
()
=>
props
.
form
,
(
n
)
=>
{
if
(
!
n
)
return
;
info
();
},
{
deep
:
true
,
}
);
const
module_data
=
ref
({});
const
module_data
=
ref
({});
const
alert_rule_type
=
ref
(
""
);
const
alert_rule_type
=
ref
(
""
);
const
isEmpty
=
computed
(()
=>
{
const
isEmpty
=
computed
(()
=>
{
return
Empty
(
alert_rule_type
.
value
,
ruleTypeOptions
.
value
);
return
Empty
(
alert_rule_type
.
value
,
ruleTypeOptions
.
value
);
});
});
const
emits
=
defineEmits
([
"
update-duration
"
]);
const
chooseWarnIndicator
=
()
=>
{
const
chooseWarnIndicator
=
()
=>
{
axios
axios
.
get
(
"
/v1/api/metric_config
"
,
{
.
get
(
"
/v1/api/metric_config
"
,
{
...
@@ -192,6 +212,7 @@ const chooseWarnIndicator = () => {
...
@@ -192,6 +212,7 @@ const chooseWarnIndicator = () => {
loading
:
false
,
loading
:
false
,
};
};
});
});
emits
(
"
update-duration
"
,
module_data
.
value
);
}
else
{
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
ElMessage
.
error
(
res
.
data
.
data
);
}
}
...
@@ -219,10 +240,29 @@ const cascaderProps = {
...
@@ -219,10 +240,29 @@ const cascaderProps = {
label
:
"
class_name
"
,
label
:
"
class_name
"
,
};
};
const
staticTypeOptions
=
ref
([]);
const
staticTypeOptions
=
ref
([]);
const
staticTypeFormat
=
(
res
)
=>
{
let
arr
=
res
?.
map
((
e
)
=>
{
let
children
=
[];
let
is_disabled
=
false
;
if
(
e
.
children
?.
length
==
0
&&
e
.
parent_id
==
0
)
{
children
=
[];
is_disabled
=
true
;
}
else
{
children
=
staticTypeFormat
(
e
.
children
);
is_disabled
=
false
;
}
return
{
...
e
,
children
:
children
,
disabled
:
is_disabled
,
};
});
return
arr
;
};
const
getStaticTypeOptions
=
()
=>
{
const
getStaticTypeOptions
=
()
=>
{
axios
.
get
(
"
/v1/api/alert_class/tree
"
).
then
(
async
(
res
)
=>
{
axios
.
get
(
"
/v1/api/alert_class/tree
"
).
then
(
async
(
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
staticTypeOptions
.
value
=
res
.
data
.
data
;
staticTypeOptions
.
value
=
staticTypeFormat
(
res
.
data
.
data
)
;
}
else
{
}
else
{
ElMessage
.
error
(
res
.
data
.
msg
);
ElMessage
.
error
(
res
.
data
.
msg
);
}
}
...
@@ -249,7 +289,8 @@ const warningIndexOptions = ref({});
...
@@ -249,7 +289,8 @@ const warningIndexOptions = ref({});
const
cascader_ref
=
ref
(
null
);
const
cascader_ref
=
ref
(
null
);
const
changeWarnStaticType
=
async
()
=>
{
const
changeWarnStaticType
=
async
()
=>
{
let
class_id
=
state
.
form
.
warn_type
[
1
];
let
class_id
=
state
.
form
.
warn_type
[
1
];
let
params
=
{
page
:
1
,
page_size
:
10000000000000
,
class_id
};
if
(
!
class_id
)
return
;
let
params
=
{
page
:
1
,
page_size
:
10000000000000
,
class_id
,
is_enabled
:
1
};
getWarningIndicator
(
params
);
getWarningIndicator
(
params
);
};
};
const
getWarningIndicator
=
(
params
,
cb
)
=>
{
const
getWarningIndicator
=
(
params
,
cb
)
=>
{
...
@@ -293,16 +334,6 @@ const ruleHeaders = [
...
@@ -293,16 +334,6 @@ const ruleHeaders = [
},
},
];
];
const
rule_rows
=
computed
(()
=>
props
.
form
?.
ruleRows
||
[]);
const
rule_rows
=
computed
(()
=>
props
.
form
?.
ruleRows
||
[]);
const
info
=
()
=>
{
state
.
form
.
warn_type
=
props
.
form
.
warn_target
&&
props
.
form
.
warn_type
?
[
props
.
form
.
warn_target
,
props
.
form
.
warn_type
]
:
[];
state
.
form
.
warn_indicator
=
props
.
form
.
warn_indicator
;
alert_rule_type
.
value
=
props
.
form
.
rule_type
||
"
1
"
;
let
params
=
{
page
:
1
,
page_size
:
10000000000000
,
class_id
:
props
.
form
.
warn_type
};
getWarningIndicator
(
params
,
()
=>
{
state
.
form
.
warning_scpoe_form
=
props
.
form
?.
warning_scpoe_form
||
[];
});
};
onMounted
(()
=>
{
onMounted
(()
=>
{
getStaticTypeOptions
();
getStaticTypeOptions
();
getRuleTypeOptions
();
getRuleTypeOptions
();
...
...
yarn.lock
View file @
821117a6
This diff is collapsed.
Click to expand it.
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