diff --git a/nezha-fronted/src/assets/css/components/common/rightBox/chartRightBox/chartRightBox.scss b/nezha-fronted/src/assets/css/components/common/rightBox/chartRightBox/chartRightBox.scss index 9bf37ab4d..134c4171c 100644 --- a/nezha-fronted/src/assets/css/components/common/rightBox/chartRightBox/chartRightBox.scss +++ b/nezha-fronted/src/assets/css/components/common/rightBox/chartRightBox/chartRightBox.scss @@ -70,6 +70,7 @@ margin-bottom: 10px; box-sizing: border-box; height: 32px; + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); .chart-title-content{ flex: 1; display: flex; diff --git a/nezha-fronted/src/assets/css/components/common/rightBox/panelBox.scss b/nezha-fronted/src/assets/css/components/common/rightBox/panelBox.scss index 2efc9576b..a19df1a8f 100644 --- a/nezha-fronted/src/assets/css/components/common/rightBox/panelBox.scss +++ b/nezha-fronted/src/assets/css/components/common/rightBox/panelBox.scss @@ -173,6 +173,7 @@ justify-content: space-between; box-sizing: border-box; height: 32px; + transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); .variable-title-left{ width: 450px; text-overflow: ellipsis; @@ -199,6 +200,9 @@ font-size: 17px; } } + .is-item-box-error .variable-title { + border-color: #F56C6C + } .add-variable{ border: 1px solid $--border-color-light; border-radius: 2px; diff --git a/nezha-fronted/src/components/common/rightBox/panelBox.vue b/nezha-fronted/src/components/common/rightBox/panelBox.vue index 1e0099141..625104b43 100644 --- a/nezha-fronted/src/components/common/rightBox/panelBox.vue +++ b/nezha-fronted/src/components/common/rightBox/panelBox.vue @@ -104,6 +104,7 @@ v-for="(item,index) of editPanel.param.variables" :key="item.uid" style="margin-top: 10px" + :class="item.error? 'is-item-box-error' : ''" >
@@ -130,7 +131,7 @@
-
+
- + @@ -175,7 +176,7 @@
- + @@ -183,7 +184,7 @@ - + @@ -607,6 +608,39 @@ export default { this.esc(false) }, + showError () { + this.$refs.form.validate((blooen, object) => { + Object.keys(object).forEach(item => { + const keyArr = item.split('.') + if (keyArr.length >= 4) { + this.editPanel[keyArr[0]][keyArr[1]][keyArr[2]].error = true + } + }) + if (!blooen) { + this.$forceUpdate() + } + }) + }, + hideError (key, index) { + if (!this.editPanel.param[key] || !this.editPanel.param[key].length) { + return + } + this.$refs.form.validate((blooen, object) => { + console.log(Object.keys(object)) + let flag = true + Object.keys(object).forEach(item => { + console.log(`param.${key}.${index}.`) + if (item.startsWith(`param.${key}.${index}.`)) { + flag = false + } + }) + if (flag) { + this.editPanel.param[key][index].error = false + this.$forceUpdate() + } + }) + }, + /* 保存 */ save () { // 保存时把无用属性删除 再传入后台 @@ -614,6 +648,7 @@ export default { const temp = JSON.parse(JSON.stringify(item)) delete temp.collapse delete temp.uid + delete temp.error return temp }) const params = { @@ -674,6 +709,7 @@ export default { }) } } else { + this.showError() this.prevent_opt.save = false return false }