fix(components): 修复动态表单字段处理和边框样式问题
修复AddTargetDialog组件中最后一个字段的边框显示问题,优化CheckinDetailPage组件中动态表单字段的处理逻辑,简化ID获取方式并使用后端提供的类型字段
Showing
2 changed files
with
6 additions
and
11 deletions
| ... | @@ -9,7 +9,7 @@ | ... | @@ -9,7 +9,7 @@ |
| 9 | @update:show="updateShow" | 9 | @update:show="updateShow" |
| 10 | > | 10 | > |
| 11 | <div class="p-4"> | 11 | <div class="p-4"> |
| 12 | - <div v-for="field in localFields" :key="field.id"> | 12 | + <div v-for="(field, index) in localFields" :key="field.id"> |
| 13 | <van-field | 13 | <van-field |
| 14 | v-model="field.value" | 14 | v-model="field.value" |
| 15 | label-width="5rem" | 15 | label-width="5rem" |
| ... | @@ -18,7 +18,7 @@ | ... | @@ -18,7 +18,7 @@ |
| 18 | :type="field.type === 'textarea' ? 'textarea' : 'text'" | 18 | :type="field.type === 'textarea' ? 'textarea' : 'text'" |
| 19 | :rows="field.type === 'textarea' ? 2 : 1" | 19 | :rows="field.type === 'textarea' ? 2 : 1" |
| 20 | :autosize="field.type === 'textarea'" | 20 | :autosize="field.type === 'textarea'" |
| 21 | - class="border-b border-gray-100" | 21 | + :class="{'border-b border-gray-100': index < localFields.length - 1}" |
| 22 | :required="field.required" | 22 | :required="field.required" |
| 23 | /> | 23 | /> |
| 24 | </div> | 24 | </div> | ... | ... |
| ... | @@ -166,8 +166,7 @@ | ... | @@ -166,8 +166,7 @@ |
| 166 | </van-popup> | 166 | </van-popup> |
| 167 | 167 | ||
| 168 | <!-- 图片预览弹窗 --> | 168 | <!-- 图片预览弹窗 --> |
| 169 | - <van-image-preview v-model:show="imageShow" :images="imageList" :start-position="imageIndex" | 169 | + <van-image-preview v-model:show="imageShow" :images="imageList" :start-position="imageIndex" :show-index="true" /> |
| 170 | - :show-index="true" /> | ||
| 171 | </div> | 170 | </div> |
| 172 | </template> | 171 | </template> |
| 173 | 172 | ||
| ... | @@ -243,16 +242,12 @@ const personType = ref('') // 动态表单字段中的person_type | ... | @@ -243,16 +242,12 @@ const personType = ref('') // 动态表单字段中的person_type |
| 243 | */ | 242 | */ |
| 244 | const updateDynamicFormFields = (option) => { | 243 | const updateDynamicFormFields = (option) => { |
| 245 | if (option.field_list && Array.isArray(option.field_list)) { | 244 | if (option.field_list && Array.isArray(option.field_list)) { |
| 245 | + // 处理动态表单字段 | ||
| 246 | dynamicFormFields.value = option.field_list.map(field => { | 246 | dynamicFormFields.value = option.field_list.map(field => { |
| 247 | - // 尝试多种方式获取ID | ||
| 248 | - const id = field.field_name || field.id || field.name || field.key || field.field | ||
| 249 | - if (!id) { | ||
| 250 | - console.warn('动态表单字段缺少ID:', field) | ||
| 251 | - } | ||
| 252 | return { | 247 | return { |
| 253 | - id: id, | 248 | + id: field.field, |
| 254 | label: field.label || '未命名', | 249 | label: field.label || '未命名', |
| 255 | - type: 'text', // 默认类型,如果后端有类型字段可替换 | 250 | + type: field.type || 'text', // 默认类型,如果后端有类型字段可替换 |
| 256 | required: true // 默认必填,如果后端有必填字段可替换 | 251 | required: true // 默认必填,如果后端有必填字段可替换 |
| 257 | } | 252 | } |
| 258 | }) | 253 | }) | ... | ... |
-
Please register or login to post a comment