diff --git a/web/src/views/app/TemplateDeployModal.vue b/web/src/views/app/TemplateDeployModal.vue index 4e36af2d..8f5ebffb 100644 --- a/web/src/views/app/TemplateDeployModal.vue +++ b/web/src/views/app/TemplateDeployModal.vue @@ -73,6 +73,8 @@ const getSelectOptions = (env: TemplateEnvironment) => { const formRules = computed(() => { const rules: FormRules = {} props.template?.environments?.forEach((env) => { + const isRequired = env.default == null || env.default === '' + if (env.type === 'url') { rules[`envs.${env.name}`] = { trigger: ['input', 'blur'], @@ -87,6 +89,18 @@ const formRules = computed(() => { } } } + } else if (isRequired) { + // 为必填字段添加校验规则 + rules[`envs.${env.name}`] = { + required: true, + trigger: ['input', 'blur'], + validator(_rule: FormItemRule, value: any) { + if (value === null || value === undefined || value === '') { + return new Error($gettext('This field is required')) + } + return true + } + } } }) return rules