Skip to content

Commit f0b24cc

Browse files
committed
refactor(system/storage): 修改存储配置时,保持Secret Key为空将不更改
1 parent 09775d6 commit f0b24cc

3 files changed

Lines changed: 20 additions & 5 deletions

File tree

‎src/components/GiForm/src/GiForm.vue‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,17 @@ const updateValue = (value: any, field: string) => {
199199
emit('update:modelValue', Object.assign(props.modelValue, { [field]: value }))
200200
}
201201
202+
/** 必填项 */
203+
const isRequired = (item: ColumnItem) => {
204+
if (typeof item.required === 'boolean') return item.required
205+
if (typeof item.required === 'function') {
206+
return item.required(props.modelValue)
207+
}
208+
}
209+
202210
/** 表单项校验规则 */
203211
const getFormItemRules = (item: ColumnItem) => {
204-
if (item.required) {
212+
if (isRequired(item)) {
205213
const defaultProps = getComponentBindProps(item)
206214
return [{ required: true, message: defaultProps.placeholder || `请输入${item.label}` }, ...(Array.isArray(item.rules) ? item.rules : [])]
207215
}

‎src/components/GiForm/src/type.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,8 +203,8 @@ export interface ColumnItem<F = any> {
203203
props?: ColumnItemProps
204204
gridItemProps?: A.GridItemProps
205205
formItemProps?: Omit<A.FormItemInstance['$props'], 'label' | 'field'> // a-form-item的props
206-
required?: boolean // 是否必填
207206
rules?: A.FormItemInstance['$props']['rules'] // 表单校验规则
207+
required?: ColumnItemHide<F> // 是否必填
208208
hide?: ColumnItemHide<F> // 是否隐藏
209209
show?: ColumnItemShow<F> // 是否显示(优先级比hide高)
210210
disabled?: ColumnItemDisabled<F> // 是否禁用

‎src/views/system/config/storage/AddModal.vue‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@
88
@before-ok="save"
99
@close="reset"
1010
>
11-
<GiForm ref="formRef" v-model="form" :columns="columns" />
11+
<GiForm ref="formRef" v-model="form" :columns="columns">
12+
<template #secretKey>
13+
<a-input
14+
v-model="form.secretKey"
15+
:placeholder="isUpdate ? '保持 Secret Key 为空将不更改' : '请输入 Secret Key'"
16+
/>
17+
</template>
18+
</GiForm>
1219
</a-modal>
1320
</template>
1421

@@ -77,7 +84,7 @@ const columns: ColumnItem[] = reactive([
7784
field: 'secretKey',
7885
type: 'input',
7986
span: 24,
80-
required: true,
87+
required: () => !isUpdate.value,
8188
show: () => form.type === 2,
8289
},
8390
{
@@ -165,7 +172,7 @@ const save = async () => {
165172
if (isUpdate.value) {
166173
await updateStorage({
167174
...form,
168-
secretKey: form.type === 2 && !form.secretKey.includes('*') ? encryptByRsa(form.secretKey) || '' : null,
175+
secretKey: form.type === 2 && form.secretKey ? encryptByRsa(form.secretKey) || '' : null,
169176
}, dataId.value)
170177
Message.success('修改成功')
171178
} else {

0 commit comments

Comments
 (0)