diff --git a/nezha-fronted/src/assets/css/components/common/rightBox/recordRuleBox.css b/nezha-fronted/src/assets/css/components/common/rightBox/recordRuleBox.css
new file mode 100644
index 000000000..7b6a23e1c
--- /dev/null
+++ b/nezha-fronted/src/assets/css/components/common/rightBox/recordRuleBox.css
@@ -0,0 +1 @@
+.right-box-record-rule .metric-selector-input-box .input-box{width:100%;height:100%}.right-box-record-rule .metric-selector-input-box .input-box .not-fixed-height.no-resize.no-close{width:100%;height:100%}.right-box-record-rule .promqlInput .metric-selector-title{width:80px}.right-box-record-rule .promqlInput .metric-selector-input-box{width:calc(100% - 92px) !important}.right-box-record-rule .promqlInput .cm-editor.ͼ1.ͼ2.ͼo.cm-focused{height:100%}.right-box-record-rule .promqlInput .cm-editor.ͼ1.ͼ2.ͼo{height:100%}.right-box-record-rule .promqlInput .cm-content.cm-lineWrapping{display:flex;align-items:center}.right-box-record-rule .silence-matchers-value{width:100%}.right-box-record-rule .param-box-row-symbol{padding-left:20px}
diff --git a/nezha-fronted/src/assets/css/components/common/rightBox/recordRuleBox.scss b/nezha-fronted/src/assets/css/components/common/rightBox/recordRuleBox.scss
new file mode 100644
index 000000000..d7e4ecb45
--- /dev/null
+++ b/nezha-fronted/src/assets/css/components/common/rightBox/recordRuleBox.scss
@@ -0,0 +1,36 @@
+.right-box-record-rule {
+ .metric-selector-input-box{
+ .input-box{
+ width: 100%;
+ height: 100%;
+ .not-fixed-height.no-resize.no-close{
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+ .promqlInput{
+ .metric-selector-title{
+ width: 80px;
+ }
+ .metric-selector-input-box{
+ width: calc(100% - 92px) !important;
+ }
+ .cm-editor.ͼ1.ͼ2.ͼo.cm-focused{
+ height: 100%;
+ }
+ .cm-editor.ͼ1.ͼ2.ͼo{
+ height: 100%;
+ }
+ .cm-content.cm-lineWrapping{
+ display: flex;
+ align-items: center;
+ }
+ }
+ .silence-matchers-value{
+ width: 100%;
+ }
+ .param-box-row-symbol{
+ padding-left: 20px;
+ }
+}
diff --git a/nezha-fronted/src/components/common/rightBox/recordRuleBox.vue b/nezha-fronted/src/components/common/rightBox/recordRuleBox.vue
new file mode 100644
index 000000000..f9bbeb10c
--- /dev/null
+++ b/nezha-fronted/src/components/common/rightBox/recordRuleBox.vue
@@ -0,0 +1,282 @@
+
+
+
+
+
diff --git a/nezha-fronted/src/components/page/config/recordRule.vue b/nezha-fronted/src/components/page/config/recordRule.vue
index 0c48aa6eb..ad4073a6c 100644
--- a/nezha-fronted/src/components/page/config/recordRule.vue
+++ b/nezha-fronted/src/components/page/config/recordRule.vue
@@ -97,7 +97,7 @@ export default {
mixins: [dataListMixin, routerPathParams],
data () {
return {
- url: 'alert/silence',
+ url: 'record/rule',
tableId: 'recordRuleTable',
searchMsg: { // 给搜索框子组件传递的信息
searchLabelList: [
@@ -116,7 +116,7 @@ export default {
type: '',
expr: '',
inr: '',
- labels: [],
+ labels: [{ label: '', value: '' }],
remark: '',
state: ''
}
@@ -125,6 +125,23 @@ export default {
mounted () {
},
methods: {
+ edit (u) {
+ this.$get(`${this.url}/${u.id}`).then(response => {
+ if (response.code === 200) {
+ this.object = response.data
+ this.object.labels = this.labelsSort(response.data.labels)
+ this.rightBox.show = true
+ }
+ })
+ },
+ labelsSort (obj) {
+ const labels = this.$lodash.cloneDeep(obj)
+ const result = []
+ for (const key in labels) {
+ result.push({ label: key, value: labels[key] })
+ }
+ return result
+ }
},
created () {
}