refactor(system/storage): 修改存储配置时,保持Secret Key为空将不更改

This commit is contained in:
2025-08-28 21:55:38 +08:00
parent 09775d69b9
commit f0b24cc18a
3 changed files with 20 additions and 5 deletions

View File

@@ -199,9 +199,17 @@ const updateValue = (value: any, field: string) => {
emit('update:modelValue', Object.assign(props.modelValue, { [field]: value }))
}
/** 必填项 */
const isRequired = (item: ColumnItem) => {
if (typeof item.required === 'boolean') return item.required
if (typeof item.required === 'function') {
return item.required(props.modelValue)
}
}
/** 表单项校验规则 */
const getFormItemRules = (item: ColumnItem) => {
if (item.required) {
if (isRequired(item)) {
const defaultProps = getComponentBindProps(item)
return [{ required: true, message: defaultProps.placeholder || `请输入${item.label}` }, ...(Array.isArray(item.rules) ? item.rules : [])]
}

View File

@@ -203,8 +203,8 @@ export interface ColumnItem<F = any> {
props?: ColumnItemProps
gridItemProps?: A.GridItemProps
formItemProps?: Omit<A.FormItemInstance['$props'], 'label' | 'field'> // a-form-item的props
required?: boolean // 是否必填
rules?: A.FormItemInstance['$props']['rules'] // 表单校验规则
required?: ColumnItemHide<F> // 是否必填
hide?: ColumnItemHide<F> // 是否隐藏
show?: ColumnItemShow<F> // 是否显示优先级比hide高
disabled?: ColumnItemDisabled<F> // 是否禁用

View File

@@ -8,7 +8,14 @@
@before-ok="save"
@close="reset"
>
<GiForm ref="formRef" v-model="form" :columns="columns" />
<GiForm ref="formRef" v-model="form" :columns="columns">
<template #secretKey>
<a-input
v-model="form.secretKey"
:placeholder="isUpdate ? '保持 Secret Key 为空将不更改' : '请输入 Secret Key'"
/>
</template>
</GiForm>
</a-modal>
</template>
@@ -77,7 +84,7 @@ const columns: ColumnItem[] = reactive([
field: 'secretKey',
type: 'input',
span: 24,
required: true,
required: () => !isUpdate.value,
show: () => form.type === 2,
},
{
@@ -165,7 +172,7 @@ const save = async () => {
if (isUpdate.value) {
await updateStorage({
...form,
secretKey: form.type === 2 && !form.secretKey.includes('*') ? encryptByRsa(form.secretKey) || '' : null,
secretKey: form.type === 2 && form.secretKey ? encryptByRsa(form.secretKey) || '' : null,
}, dataId.value)
Message.success('修改成功')
} else {