NEZ-1167 fix:Endpoint 名称校验相关问题

This commit is contained in:
zhangyu
2021-11-04 14:24:42 +08:00
parent 219e71f7e0
commit dc407816ce
6 changed files with 20 additions and 16 deletions

View File

@@ -344,7 +344,7 @@
<script> <script>
import chartDataFormat from '../../charts/chartDataFormat' import chartDataFormat from '../../charts/chartDataFormat'
import promqlInput from '../../page/dashboard/explore/promqlInput' import promqlInput from '../../page/dashboard/explore/promqlInput'
import { nzNumber } from '../js/validate' import { noSpecialChar, nzNumber } from '../js/validate'
import editRigthBox from '../mixin/editRigthBox' import editRigthBox from '../mixin/editRigthBox'
import richTextEditor from '@/components/charts/richTextEditor' import richTextEditor from '@/components/charts/richTextEditor'
import promqlInputMixin from '@/components/common/mixin/promqlInput' import promqlInputMixin from '@/components/common/mixin/promqlInput'
@@ -406,7 +406,8 @@ export default {
editAlertRule: {}, editAlertRule: {},
rules: { rules: {
name: [ name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } { required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ validator: noSpecialChar, trigger: 'change' }
], ],
expr: [ expr: [
{ required: true, message: this.$t('validate.required'), trigger: 'change' }, { required: true, message: this.$t('validate.required'), trigger: 'change' },

View File

@@ -296,7 +296,7 @@
</template> </template>
<script> <script>
import { host, port, checkAssetAge } from '@/components/common/js/validate' import { host, port, noSpecialChar } from '@/components/common/js/validate'
import { asset as assetConstants } from '@/components/common/js/constants' import { asset as assetConstants } from '@/components/common/js/constants'
import selectAssetType from '@/components/common/popBox/selectAssetType' import selectAssetType from '@/components/common/popBox/selectAssetType'
import locationCascader from '@/components/common/rightBox/locationCascader' import locationCascader from '@/components/common/rightBox/locationCascader'
@@ -345,7 +345,7 @@ export default {
rules: { rules: {
name: [ name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }, { required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ validator: checkAssetAge, trigger: 'blur' } { validator: noSpecialChar, trigger: 'blur' }
], ],
pid: [ pid: [
{ required: true, message: this.$t('validate.required'), trigger: 'change' } { required: true, message: this.$t('validate.required'), trigger: 'change' }

View File

@@ -160,7 +160,7 @@ export default {
groupData: [], groupData: [],
rules: { rules: {
name: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }], name: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }],
metaKey: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }, { pattern: /\w/, message: this.$t('validate.onlyWord'), trigger: 'change' }], metaKey: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }, { pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: this.$t('validate.onlyWord'), trigger: 'change' }],
groupId: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }], groupId: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }],
type: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }] type: [{ required: true, message: this.$t('validate.required'), trigger: 'change' }]
}, },

View File

@@ -66,6 +66,7 @@
<script> <script>
import latlngPicker from '../latlngPicker' import latlngPicker from '../latlngPicker'
import editRigthBox from '../mixin/editRigthBox' import editRigthBox from '../mixin/editRigthBox'
import { noSpecialChar } from '@/components/common/js/validate'
const regNum = /^[0-9]+.?[0-9]*/ const regNum = /^[0-9]+.?[0-9]*/
@@ -84,7 +85,8 @@ export default {
editDc: {}, editDc: {},
rules: { rules: {
name: [ name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } { required: true, message: this.$t('validate.required'), trigger: 'blur' },
{ validator: noSpecialChar, trigger: 'change' }
] ]
// state: [ // state: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' } // { required: true, message: this.$t('validate.required'), trigger: 'blur' }

View File

@@ -196,7 +196,7 @@
<el-tab-pane :label="$t('project.endpoint.parameter')" name="Parameter"> <el-tab-pane :label="$t('project.endpoint.parameter')" name="Parameter">
<div id="module-box-params" ref="labelBoxScrollbar" style="height: 100%; overflow: auto;"> <div id="module-box-params" ref="labelBoxScrollbar" style="height: 100%; overflow: auto;">
<div v-for="(item, index) in editEndpoint.paramObj" :key="index" class="param-box-row"> <div v-for="(item, index) in editEndpoint.paramObj" :key="index" class="param-box-row">
<el-form-item :prop="'paramObj.' + index + '.key'" class="param-box-row-key"> <el-form-item :prop="'paramObj.' + index + '.key'" class="param-box-row-key" :rules="[{ pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: $t('validate.key') ,trigger: 'blur'}]">
<el-input v-model="item.key" placeholder="key" size="mini" ></el-input> <el-input v-model="item.key" placeholder="key" size="mini" ></el-input>
</el-form-item> </el-form-item>
<span class="param-box-row-eq">=</span> <span class="param-box-row-eq">=</span>
@@ -221,7 +221,7 @@
<el-tab-pane :label="$t('project.endpoint.labels2')" name="Labels"> <el-tab-pane :label="$t('project.endpoint.labels2')" name="Labels">
<div id="module-box-labels" ref="labelBoxScrollbar" style="height: 100%; overflow: auto;"> <div id="module-box-labels" ref="labelBoxScrollbar" style="height: 100%; overflow: auto;">
<div v-for="(item, index) in editEndpoint.labelModule" :key="index" class="param-box-row"> <div v-for="(item, index) in editEndpoint.labelModule" :key="index" class="param-box-row">
<el-form-item :prop="'labelModule.' + index + '.key'" :rules="[{ pattern: /[a-zA-Z_:][a-zA-Z0-9_:]*/, message: $t('validate.key') ,trigger: 'blur'}]" class="param-box-row-key"> <el-form-item :prop="'labelModule.' + index + '.key'" :rules="[{ pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: $t('validate.key') ,trigger: 'blur'}]" class="param-box-row-key">
<el-input v-model="item.key" placeholder="key" size="mini"></el-input> <el-input v-model="item.key" placeholder="key" size="mini"></el-input>
</el-form-item> </el-form-item>
<span class="param-box-row-eq">=</span> <span class="param-box-row-eq">=</span>
@@ -276,7 +276,7 @@
class="half-form-item" :label="'Target label'" class="half-form-item" :label="'Target label'"
:rules="[ :rules="[
{ required: item.action === 'replace', message: $t('validate.required'), trigger: 'blur' }, { required: item.action === 'replace', message: $t('validate.required'), trigger: 'blur' },
{ pattern: /[a-zA-Z_:][a-zA-Z0-9_:]*/, message: $t('validate.key') ,trigger: 'blur'}]" { pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: $t('validate.key') ,trigger: 'blur'}]"
> >
<el-input id="module-box-input-target_label" v-model="item.target_label" placeholder='' size="small"></el-input> <el-input id="module-box-input-target_label" v-model="item.target_label" placeholder='' size="small"></el-input>
</el-form-item> </el-form-item>
@@ -396,12 +396,12 @@
<el-tab-pane :label="$t('project.endpoint.labels2')" name="Labels"> <el-tab-pane :label="$t('project.endpoint.labels2')" name="Labels">
<div id="module-box-logs-labels" ref="labelBoxScrollbar" style="height: 100%; overflow: auto;"> <div id="module-box-logs-labels" ref="labelBoxScrollbar" style="height: 100%; overflow: auto;">
<div v-for="(item1, i) in item.labelModule" :key="i" class="param-box-row"> <div v-for="(item1, i) in item.labelModule" :key="i" class="param-box-row">
<el-form-item :prop="'configs.1.config.'+ index +'.labelModule.' + i + '.key'" :rules="[{ pattern: /[a-zA-Z_:][a-zA-Z0-9_:]*/, message: $t('validate.key') ,trigger: 'blur'}]" class="param-box-row-key"> <el-form-item :prop="'configs.1.config.'+ index +'.labelModule.' + i + '.key'" :rules="[{ pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: $t('validate.key') ,trigger: 'blur'}]" class="param-box-row-key">
<el-input v-model="item1.key" placeholder="key" size="mini"></el-input> <el-input v-model="item1.key" placeholder="key" size="mini" @input="$forceUpdate()"></el-input>
</el-form-item> </el-form-item>
<span class="param-box-row-eq">=</span> <span class="param-box-row-eq">=</span>
<el-form-item class="param-box-row-value"> <el-form-item class="param-box-row-value">
<el-input v-model="item1.value" placeholder="value" size="mini"></el-input> <el-input v-model="item1.value" placeholder="value" size="mini" @input="$forceUpdate()"></el-input>
</el-form-item> </el-form-item>
<span :id="'moduel-remove-label-'+i" class="param-box-row-symbol" @click="removeLogsLabel(index, i)"><i class="nz-icon nz-icon-shanchu1" style="color:#666;"></i></span> <span :id="'moduel-remove-label-'+i" class="param-box-row-symbol" @click="removeLogsLabel(index, i)"><i class="nz-icon nz-icon-shanchu1" style="color:#666;"></i></span>
</div> </div>
@@ -442,7 +442,7 @@
<div v-for="(expressions, eindex) in item2.expressions" :key="eindex" style="display: flex;justify-content: space-around;align-items: center;margin-bottom: 16px"> <div v-for="(expressions, eindex) in item2.expressions" :key="eindex" style="display: flex;justify-content: space-around;align-items: center;margin-bottom: 16px">
<el-form-item <el-form-item
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.expressions.'+eindex+'.key'" :prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.expressions.'+eindex+'.key'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]" :rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' },{ pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: $t('validate.key') ,trigger: 'blur'}]"
style="width: 45%;margin: 0" style="width: 45%;margin: 0"
> >
<el-input v-model="item2.expressions[eindex].key" placeholder="key" size="mini" ></el-input> <el-input v-model="item2.expressions[eindex].key" placeholder="key" size="mini" ></el-input>
@@ -506,7 +506,7 @@
<div v-for="(expressions, eindex) in item2.labels" :key="eindex" style="display: flex;justify-content: space-around;align-items: center;margin-bottom: 16px"> <div v-for="(expressions, eindex) in item2.labels" :key="eindex" style="display: flex;justify-content: space-around;align-items: center;margin-bottom: 16px">
<el-form-item <el-form-item
:prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.labels.'+eindex+'.key'" :prop="'configs.1.config.'+ index +'.pipeline.' + index2 + '.labels.'+eindex+'.key'"
:rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' }]" :rules="[{ required: true, message: $t('validate.required'), trigger: 'blur' },{ pattern: /[a-zA-Z_][a-zA-Z0-9_]*/, message: $t('validate.key') ,trigger: 'blur'}]"
style="width: 45%;margin: 0" style="width: 45%;margin: 0"
> >
<el-input v-model="item2.labels[eindex].key" placeholder="key" size="mini" ></el-input> <el-input v-model="item2.labels[eindex].key" placeholder="key" size="mini" ></el-input>
@@ -1164,7 +1164,7 @@ export default {
this.editEndpoint.paramObj[index].value = newTags.map(item => item.text) this.editEndpoint.paramObj[index].value = newTags.map(item => item.text)
}, },
beforeAddingTag (tag) { beforeAddingTag (tag) {
const regx = /[a-zA-Z_:][a-zA-Z0-9_:]*/ const regx = /[a-zA-Z_][a-zA-Z0-9_]*/
if (regx.test(tag.tag.text)) { if (regx.test(tag.tag.text)) {
tag.addTag() tag.addTag()
} else { } else {
@@ -1300,6 +1300,7 @@ export default {
}, },
addLogsLabel (index) { addLogsLabel (index) {
this.editEndpoint.configs[1].config[index].labelModule.push({ key: '', value: '' }) this.editEndpoint.configs[1].config[index].labelModule.push({ key: '', value: '' })
this.$forceUpdate()
}, },
removeLogsLabel (logsIndex, i) { removeLogsLabel (logsIndex, i) {
if (this.editEndpoint.configs[1].config[logsIndex].labelModule.length === 1) { if (this.editEndpoint.configs[1].config[logsIndex].labelModule.length === 1) {

View File

@@ -16,7 +16,7 @@
<el-input id="project-box-input-name" v-model="editProject.name" maxlength="64" show-word-limit size="small"></el-input> <el-input id="project-box-input-name" v-model="editProject.name" maxlength="64" show-word-limit size="small"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label='$t("overall.remark")'> <el-form-item :label='$t("overall.remark")'>
<el-input id="project-box-input-name" v-model="editProject.remark" maxlength="256" show-word-limit type="textarea"></el-input> <el-input id="project-box-input-remark" v-model="editProject.remark" maxlength="256" show-word-limit type="textarea"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>