hookehuyr

feat(form, person-picker): 完善表单翻页缓存逻辑,修复人员选择器样式与标签展示

- 为表单翻页意图添加已校验数据缓存
- 调整人员选择器弹窗高度为100vh
- 新增人员类型中文标签映射统一展示格式
<!--
* @Date: 2026-05-25 17:10:00
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-05-25 15:27:25
* @LastEditTime: 2026-05-26 10:54:47
* @FilePath: /data-table/src/components/PersonPickerField/MyComponent.vue
* @Description: 人员筛选控件内部面板
-->
......@@ -34,7 +34,7 @@
v-model:show="showPopup"
position="bottom"
:close-on-click-overlay="false"
:style="{ height: '90vh' }"
:style="{ height: '100vh' }"
>
<div class="search-bar">
<div class="search-input-row">
......@@ -223,8 +223,16 @@ const syncFieldValue = () => {
props.value = fieldValue.value;
};
/**
* 人员类型的中文展示统一收口在这里,接口和筛选值仍保持英文原值。
*/
const PERSON_TYPE_LABEL_MAP = {
volunteer: '义工',
contact: '联系人',
};
const formatPersonType = (type) => {
return type || '人员';
return PERSON_TYPE_LABEL_MAP[type] || type || '人员';
};
const formatPersonTitle = (person) => {
......@@ -261,7 +269,7 @@ const typeFilterOptions = computed(() => {
}
const allowedOptions = allowedPersonTypes.value.map((type) => ({
text: type,
text: formatPersonType(type),
value: type,
}));
......
......@@ -1192,8 +1192,9 @@ const successHandle = () => { // 表单成功提交后续操作
const onSubmit = async (values) => { // 表单提交回调
// TAG:下一页校验入口
// 当为“下一页意图”时,不进行真正提交,仅执行翻页并重置校验状态
// 当为“下一页意图”时,先缓存当前页已校验通过的数据,再执行翻页
if (navigate_next_pending?.value) {
postData.value = preValidData(values);
await afterValidatedNavigateNext()
return false
}
......