gtsoft-snail-job-server/frontend/src/views/namespace/NamespaceForm.vue
byteblogs168 e89e418fcf refactor:2.5.0
1.优化场景重试数据到达阈值告警和优化场景重试失败数据到达阈值
2.修复查询重试数据无传入namespaceId错误
2023-12-02 20:20:26 +08:00

110 lines
2.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<a-modal :visible="visible" title="命名空间配置" @ok="handleOk" @cancel="visible = false" width="650px">
<a-form @submit="handleOk" :form="form" :body-style="{padding: '24px 32px'}" v-bind="formItemLayout" >
<a-form-item>
<a-input
hidden
v-decorator="['id']" />
</a-form-item>
<a-form-item
label="唯一标识(默认UUID)">
<a-input
placeholder="唯一标识"
:disabled="isEdit"
v-decorator="[
'uniqueId',
{rules: [{ required: false, message: '请输入空间名称', whitespace: true},{required: false, max: 64, message: '最多支持64个字符'}, {validator: validate, trigger: ['change', 'blur']}]}
]" />
</a-form-item>
<a-form-item
label="空间名称">
<a-input
placeholder="请输入空间名称"
v-decorator="[
'name',
{rules: [{ required: true, message: '请输入空间名称', whitespace: true}]}
]" />
</a-form-item>
</a-form></a-modal>
</template>
<script>
import { addNamespace, updateNamespace } from '@/api/manage'
import pick from 'lodash.pick'
export default {
name: 'NamespaceForm',
props: {
isEdit: {
type: Boolean,
default: false
}
},
data () {
return {
form: this.$form.createForm(this),
role: 0,
formType: 'create',
formItemLayout: {
labelCol: { lg: { span: 7 }, sm: { span: 7 } },
wrapperCol: { lg: { span: 10 }, sm: { span: 17 } }
},
visible: false
}
},
methods: {
isShow (record) {
this.formType = record ? 'edit' : 'create'
this.loadEditInfo(record)
this.visible = true
this.form.resetFields()
},
validate (rule, value, callback) {
const regex = /^[A-Za-z0-9_]+$/
if (!regex.test(value)) {
callback(new Error('仅支持数字字母下划线'))
}
callback()
},
handleOk (e) {
e.preventDefault()
this.form.validateFields((err, values) => {
if (!err) {
if (!this.isEdit) {
addNamespace(values).then(res => {
this.$message.success('操作成功')
this.$emit('refreshTable', 1)
this.visible = false
})
} else {
updateNamespace(values).then(res => {
this.$message.success('操作成功')
this.$emit('refreshTable', 1)
this.visible = false
})
}
this.$store.dispatch('GetInfo')
}
})
},
loadEditInfo (data) {
this.formType = 'edit'
const { form } = this
// ajax
new Promise((resolve) => {
setTimeout(resolve, 100)
}).then(() => {
const formData = pick(data, ['id', 'name', 'uniqueId'])
form.setFieldsValue(formData)
})
}
}
}
</script>
<style scoped>
</style>