refactor: Supports configuring whether required fields are displayed

--story=1017498 --user=刘瑞斌 【高级编排应用】用户输入参数默认值增加显示设置优化 https://www.tapd.cn/57709429/s/1635457
This commit is contained in:
CaptainB 2024-12-23 13:57:58 +08:00
parent 8666973519
commit 25b6acb0db
9 changed files with 65 additions and 8 deletions

View File

@ -100,6 +100,7 @@ const getData = () => {
required: form_data.value.required,
field: form_data.value.field,
default_value: form_data.value.default_value,
show_default_value: form_data.value.show_default_value,
...componentFormRef.value.getData()
}
}

View File

@ -26,11 +26,16 @@
</el-select>
</el-form-item>
<el-form-item
label="默认值"
:required="formValue.required"
prop="default_value"
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
>
<template #label>
<div class="flex-between">
默认值
<el-checkbox v-model="formValue.show_default_value" label="显示默认值" />
</div>
</template>
<el-date-picker
v-model="formValue.default_value"
:type="formValue.type"
@ -91,19 +96,22 @@ const getData = () => {
format: formValue.value.format,
'value-format': formValue.value.format
},
default_value: formValue.value.default_value
default_value: formValue.value.default_value,
show_default_value: formValue.value.show_default_value,
}
}
const rander = (form_data: any) => {
formValue.value.type = form_data.attrs.type
formValue.value.format = form_data.attrs?.format
formValue.value.default_value = form_data.default_value || ''
formValue.value.show_default_value = form_data.show_default_value
}
defineExpose({ getData, rander })
onBeforeMount(() => {
formValue.value.type = 'datetime'
formValue.value.format = 'YYYY-MM-DD HH:mm:ss'
formValue.value.default_value = ''
formValue.value.show_default_value = true
})
</script>
<style lang="scss"></style>

View File

@ -1,10 +1,15 @@
<template>
<el-form-item
label="默认值"
:required="formValue.required"
prop="default_value"
:rules="[default_value_rule]"
>
<template #label>
<div class="flex-between">
默认值
<el-checkbox v-model="formValue.show_default_value" label="显示默认值" />
</div>
</template>
<JsonInput ref="jsonInputRef" v-model="formValue.default_value"> </JsonInput>
</el-form-item>
</template>
@ -40,7 +45,8 @@ const getData = () => {
}
]
},
default_value: formValue.value.default_value
default_value: formValue.value.default_value,
show_default_value: formValue.value.show_default_value,
}
}
@ -55,10 +61,12 @@ const default_value_rule = {
const rander = (form_data: any) => {
formValue.value.default_value = form_data.default_value
formValue.value.show_default_value = form_data.show_default_value
}
defineExpose({ getData, rander })
onMounted(() => {
formValue.value.default_value = {}
formValue.value.show_default_value = true
})
</script>
<style lang="scss"></style>

View File

@ -46,11 +46,16 @@
</el-row>
</el-form-item>
<el-form-item
label="默认值"
:required="formValue.required"
prop="default_value"
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
>
<template #label>
<div class="flex-between">
默认值
<el-checkbox v-model="formValue.show_default_value" label="显示默认值" />
</div>
</template>
<el-select
class="m-2"
multiple
@ -103,6 +108,7 @@ const getData = () => {
input_type: 'MultiSelect',
attrs: {},
default_value: formValue.value.default_value,
show_default_value: formValue.value.show_default_value,
text_field: 'label',
value_field: 'value',
option_list: formValue.value.option_list
@ -111,12 +117,14 @@ const getData = () => {
const rander = (form_data: any) => {
formValue.value.option_list = form_data.option_list || []
formValue.value.default_value = form_data.default_value
formValue.value.show_default_value = form_data.show_default_value
}
defineExpose({ getData, rander })
onMounted(() => {
formValue.value.option_list = []
formValue.value.default_value = ''
formValue.value.show_default_value = true
addOption()
})

View File

@ -47,11 +47,16 @@
</el-row>
</el-form-item>
<el-form-item
label="默认值"
:required="formValue.required"
prop="default_value"
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
>
<template #label>
<div class="flex-between">
默认值
<el-checkbox v-model="formValue.show_default_value" label="显示默认值" />
</div>
</template>
<RadioCard
:form-field="formField"
v-model="formValue.default_value"
@ -96,6 +101,7 @@ const getData = () => {
input_type: 'RadioCard',
attrs: {},
default_value: formValue.value.default_value,
show_default_value: formValue.value.show_default_value,
text_field: 'label',
value_field: 'value',
option_list: formValue.value.option_list
@ -104,12 +110,14 @@ const getData = () => {
const rander = (form_data: any) => {
formValue.value.option_list = form_data.option_list || []
formValue.value.default_value = form_data.default_value
formValue.value.show_default_value = form_data.show_default_value
}
defineExpose({ getData, rander })
onMounted(() => {
formValue.value.option_list = []
formValue.value.default_value = ''
formValue.value.show_default_value = true
addOption()
})

View File

@ -47,11 +47,16 @@
</el-row>
</el-form-item>
<el-form-item
label="默认值"
:required="formValue.required"
prop="default_value"
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
>
<template #label>
<div class="flex-between">
默认值
<el-checkbox v-model="formValue.show_default_value" label="显示默认值" />
</div>
</template>
<el-select v-model="formValue.default_value" :teleported="false" popper-class="default-select">
<el-option
v-for="(option, index) in formValue.option_list"
@ -95,6 +100,7 @@ const getData = () => {
input_type: 'SingleSelect',
attrs: {},
default_value: formValue.value.default_value,
show_default_value: formValue.value.show_default_value,
text_field: 'label',
value_field: 'value',
option_list: formValue.value.option_list
@ -109,6 +115,7 @@ defineExpose({ getData, rander })
onMounted(() => {
formValue.value.option_list = []
formValue.value.default_value = ''
formValue.value.show_default_value = true
addOption()
})

View File

@ -47,13 +47,18 @@
</el-form-item>
<el-form-item
label="默认值"
:required="formValue.required"
prop="default_value"
:rules="
formValue.required ? [{ required: true, message: '默认值 为必填属性' }, ...rules] : rules
"
>
<template #label>
<div class="flex-between">
默认值
<el-checkbox v-model="formValue.show_default_value" label="显示默认值" />
</div>
</template>
<el-input
v-model="formValue.default_value"
:maxlength="formValue.maxlength"
@ -96,6 +101,7 @@ const getData = () => {
'show-word-limit': true
},
default_value: formValue.value.default_value,
show_default_value: formValue.value.show_default_value,
props_info: {
rules: formValue.value.required
? [
@ -153,6 +159,7 @@ onMounted(() => {
formValue.value.minlength = 0
formValue.value.maxlength = 20
formValue.value.default_value = ''
formValue.value.show_default_value = true
})
</script>
<style lang="scss"></style>

View File

@ -151,6 +151,12 @@ const initDefaultData = (formField: FormField) => {
) {
formValue.value[formField.field] = formField.default_value
}
// ,undefined
if (formField.show_default_value === false) {
formValue.value[formField.field] = undefined
console.log(formField.show_default_value, formValue.value[formField.field])
}
}
onBeforeMount(() => {

View File

@ -126,6 +126,10 @@ interface FormField {
*
*/
default_value?: any
/**
*
*/
show_default_value?: boolean
/**
* {field:field_value_list} field有值 ,field_value_list中才显示
*/