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 })) 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) => { const getFormItemRules = (item: ColumnItem) => {
if (item.required) { if (isRequired(item)) {
const defaultProps = getComponentBindProps(item) const defaultProps = getComponentBindProps(item)
return [{ required: true, message: defaultProps.placeholder || `请输入${item.label}` }, ...(Array.isArray(item.rules) ? item.rules : [])] 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 props?: ColumnItemProps
gridItemProps?: A.GridItemProps gridItemProps?: A.GridItemProps
formItemProps?: Omit<A.FormItemInstance['$props'], 'label' | 'field'> // a-form-item的props formItemProps?: Omit<A.FormItemInstance['$props'], 'label' | 'field'> // a-form-item的props
required?: boolean // 是否必填
rules?: A.FormItemInstance['$props']['rules'] // 表单校验规则 rules?: A.FormItemInstance['$props']['rules'] // 表单校验规则
required?: ColumnItemHide<F> // 是否必填
hide?: ColumnItemHide<F> // 是否隐藏 hide?: ColumnItemHide<F> // 是否隐藏
show?: ColumnItemShow<F> // 是否显示优先级比hide高 show?: ColumnItemShow<F> // 是否显示优先级比hide高
disabled?: ColumnItemDisabled<F> // 是否禁用 disabled?: ColumnItemDisabled<F> // 是否禁用

View File

@@ -8,7 +8,14 @@
@before-ok="save" @before-ok="save"
@close="reset" @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> </a-modal>
</template> </template>
@@ -77,7 +84,7 @@ const columns: ColumnItem[] = reactive([
field: 'secretKey', field: 'secretKey',
type: 'input', type: 'input',
span: 24, span: 24,
required: true, required: () => !isUpdate.value,
show: () => form.type === 2, show: () => form.type === 2,
}, },
{ {
@@ -165,7 +172,7 @@ const save = async () => {
if (isUpdate.value) { if (isUpdate.value) {
await updateStorage({ await updateStorage({
...form, ...form,
secretKey: form.type === 2 && !form.secretKey.includes('*') ? encryptByRsa(form.secretKey) || '' : null, secretKey: form.type === 2 && form.secretKey ? encryptByRsa(form.secretKey) || '' : null,
}, dataId.value) }, dataId.value)
Message.success('修改成功') Message.success('修改成功')
} else { } else {