vear:地区改为多选

This commit is contained in:
2026-07-15 20:36:23 +08:00
parent c7be2d1dcb
commit de94f2d998

View File

@@ -98,22 +98,21 @@
</radio-group> </radio-group>
</view> </view>
<!-- 地区 --> <!-- 地区多选 -->
<view v-if="activeTab === 'area'" class="content-section"> <view v-if="activeTab === 'area'" class="content-section">
<radio-group @change="(e) => handleSelect('area', e)"> <label
<label v-for="option in areaOptions"
v-for="option in areaOptions" :key="option.value"
:key="option.value" class="radio-item"
class="radio-item" :class="{ checked: selectedAreaValues.includes(String(option.value)) }"
:class="{ checked: selectedValues['area'] === String(option.value) }" @click="toggleArea(String(option.value))"
> >
<radio <checkbox
:value="String(option.value)" :value="String(option.value)"
:checked="selectedValues['area'] === String(option.value)" :checked="selectedAreaValues.includes(String(option.value))"
/> />
<text class="option-label">{{ option.label }}</text> <text class="option-label">{{ option.label }}</text>
</label> </label>
</radio-group>
</view> </view>
<!-- 底部按钮 --> <!-- 底部按钮 -->
<view class="filter-footer"> <view class="filter-footer">
@@ -169,6 +168,9 @@ const selectedValues = reactive({
area: '' area: ''
}); });
// 地区多选值(数组)
const selectedAreaValues = ref([]);
// 从字典获取的选项数据 // 从字典获取的选项数据
const educationOptions = ref([]); const educationOptions = ref([]);
const experienceOptions = ref([]); const experienceOptions = ref([]);
@@ -202,17 +204,30 @@ const handleSelect = (key, e) => {
selectedValues[key] = e.detail.value; selectedValues[key] = e.detail.value;
}; };
// 切换地区多选
const toggleArea = (value) => {
const index = selectedAreaValues.value.indexOf(value);
if (index === -1) {
selectedAreaValues.value.push(value);
} else {
selectedAreaValues.value.splice(index, 1);
}
};
// 清除所有选择 // 清除所有选择
const handleClear = () => { const handleClear = () => {
Object.keys(selectedValues).forEach((key) => { Object.keys(selectedValues).forEach((key) => {
selectedValues[key] = ''; selectedValues[key] = '';
}); });
selectedAreaValues.value = [];
}; };
// 确认筛选 // 确认筛选
const handleConfirm = () => { const handleConfirm = () => {
console.log('selectedValues:', selectedValues); const result = { ...selectedValues };
emit('confirm', selectedValues); result.area = selectedAreaValues.value.join(',');
console.log('selectedValues:', result);
emit('confirm', result);
handleClose(); handleClose();
}; };