From 97603febc06f95d80359aa5916f9aa146ecf8aaa Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Mon, 16 Mar 2026 11:33:45 +0800 Subject: [PATCH] fix(User Management): Users can bind system variables; the same system variable can be bound repeatedly. --- frontend/src/i18n/en.json | 1 + frontend/src/i18n/ko-KR.json | 1 + frontend/src/i18n/zh-CN.json | 1 + frontend/src/views/chat/ExecutionDetails.vue | 1 + frontend/src/views/system/user/User.vue | 9 ++++++--- frontend/src/views/system/variables/index.vue | 20 ++++++++++++++++++- 6 files changed, 29 insertions(+), 4 deletions(-) diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index bbdbcaaf..3803e0bf 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -8,6 +8,7 @@ "Details": "Details" }, "variables": { + "number_variable_error": "Please enter the correct numerical range.", "built_in": "Built-in", "normal_value": "Normal value", "​​cannot_be_empty": "Variable values ​​cannot be empty.", diff --git a/frontend/src/i18n/ko-KR.json b/frontend/src/i18n/ko-KR.json index 4cedf417..6e82bc4b 100644 --- a/frontend/src/i18n/ko-KR.json +++ b/frontend/src/i18n/ko-KR.json @@ -24,6 +24,7 @@ "return_to_view": "화면으로 돌아가기" }, "variables": { + "number_variable_error": "올바른 숫자 범위를 입력하십시오.", "built_in": "내장형", "normal_value": "정상값", "​​cannot_be_empty": "변수 값은 비어 있을 수 없습니다.", diff --git a/frontend/src/i18n/zh-CN.json b/frontend/src/i18n/zh-CN.json index f3b6e61d..a66c902e 100644 --- a/frontend/src/i18n/zh-CN.json +++ b/frontend/src/i18n/zh-CN.json @@ -24,6 +24,7 @@ "return_to_view": "返回查看" }, "variables": { + "number_variable_error": "请输入正确的数值范围", "built_in": "已内置", "normal_value": "常规值", "​​cannot_be_empty": "变量值不能为空", diff --git a/frontend/src/views/chat/ExecutionDetails.vue b/frontend/src/views/chat/ExecutionDetails.vue index a6545d5f..78dc4e63 100644 --- a/frontend/src/views/chat/ExecutionDetails.vue +++ b/frontend/src/views/chat/ExecutionDetails.vue @@ -173,6 +173,7 @@ defineExpose({ border: 1px solid #dee0e3; padding: 16px; margin-bottom: 8px; + cursor: pointer; .header { display: flex; diff --git a/frontend/src/views/system/user/User.vue b/frontend/src/views/system/user/User.vue index cf7b4419..78c3b01f 100644 --- a/frontend/src/views/system/user/User.vue +++ b/frontend/src/views/system/user/User.vue @@ -391,6 +391,9 @@ v-for="item in variables" :key="item.id" :label="item.name" + :disabled=" + state.form.system_variables.map((ele: any) => ele.variableId).includes(item.id) + " :value="item.id" >
@@ -434,7 +437,7 @@ > - { } return } - if (value.some((ele: any) => ele === '')) { + if (var_type === 'datetime') { + if (value === null) { + callback(new Error(t('datasource.please_enter') + t('common.empty') + t('variables.date'))) + } + } + if (value.some((ele: any) => ele === '' || ele === null)) { callback( new Error( t('datasource.please_enter') + @@ -237,6 +242,17 @@ const saveHandler = () => { obj.value = [...new Set(obj.value)] } + if (obj.var_type === 'number') { + const [min = 0, max = 0] = obj.value + if (min > max) { + ElMessage({ + type: 'error', + message: t('variables.number_variable_error'), + }) + return + } + } + variablesApi.save(obj).then(() => { ElMessage({ type: 'success', @@ -553,12 +569,14 @@ const handleCurrentChange = (val: number) => { v-model.number="pageForm.value[0]" :placeholder="$t('variables.please_enter_value')" clearable + max="10000000000000000" controls-position="right" />