fix(User Management): Users can bind system variables; the same system variable can be bound repeatedly.

This commit is contained in:
dataeaseShu
2026-03-16 11:44:09 +08:00
committed by dataeaseShu
parent 4feb553c42
commit 97603febc0
6 changed files with 29 additions and 4 deletions
+1
View File
@@ -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.",
+1
View File
@@ -24,6 +24,7 @@
"return_to_view": "화면으로 돌아가기"
},
"variables": {
"number_variable_error": "올바른 숫자 범위를 입력하십시오.",
"built_in": "내장형",
"normal_value": "정상값",
"​​cannot_be_empty": "변수 값은 비어 있을 수 없습니다.",
+1
View File
@@ -24,6 +24,7 @@
"return_to_view": "返回查看"
},
"variables": {
"number_variable_error": "请输入正确的数值范围",
"built_in": "已内置",
"normal_value": "常规值",
"​​cannot_be_empty": "变量值不能为空",
@@ -173,6 +173,7 @@ defineExpose({
border: 1px solid #dee0e3;
padding: 16px;
margin-bottom: 8px;
cursor: pointer;
.header {
display: flex;
+6 -3
View File
@@ -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"
>
<div style="width: 100%; display: flex; align-items: center">
@@ -434,7 +437,7 @@
>
</el-option>
</el-select>
<el-input
<el-input-number
v-else-if="
variableValueMap[state.form.system_variables[index].variableId].var_type ===
'number'
@@ -442,9 +445,9 @@
v-model.number="state.form.system_variables[index].variableValue"
style="width: 236px"
:placeholder="$t('variables.please_enter_value')"
autocomplete="off"
maxlength="50"
clearable
max="10000000000000000"
controls-position="right"
/>
<el-date-picker
v-else
+19 -1
View File
@@ -189,7 +189,12 @@ const validateValue = (_: any, value: any, callback: any) => {
}
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"
/>
<span class="ed-range-separator separator"></span>
<el-input-number
v-model.number="pageForm.value[1]"
:placeholder="$t('variables.please_enter_value')"
max="10000000000000000"
clearable
controls-position="right"
/>