diff --git a/components/new-filter-page/new-filter-page.vue b/components/new-filter-page/new-filter-page.vue
index 2694d2f..f47565e 100644
--- a/components/new-filter-page/new-filter-page.vue
+++ b/components/new-filter-page/new-filter-page.vue
@@ -53,6 +53,24 @@
+
+
+ handleSelect('salary', e)">
+
+
+
+
handleSelect('scale', e)">
@@ -143,6 +161,7 @@ const getJobTypeData = () => {
const tabs = [
{ key: 'education', label: '学历要求' },
{ key: 'experience', label: '工作经验' },
+ { key: 'salary', label: '薪资' },
{ key: 'scale', label: '公司规模' },
{ key: 'jobType', label: '岗位类型' },
{ key: 'area', label: '地区' }
@@ -155,6 +174,7 @@ const activeTab = ref('education');
const selectedValues = reactive({
education: '',
experience: '',
+ salary: '',
scale: '',
area: '',
jobType: ''
@@ -167,6 +187,16 @@ const scaleOptions = ref([]);
const areaOptions = ref([]);
const jobTypeOptions = ref([]);
+// 薪资区间数据(单位:元/月),min/max 为空表示该侧不设限
+const salaryOptions = ref([
+ { label: '3K以下', value: '0-3000', min: '', max: 3000 },
+ { label: '3-5K', value: '3000-5000', min: 3000, max: 5000 },
+ { label: '5-10K', value: '5000-10000', min: 5000, max: 10000 },
+ { label: '10-20K', value: '10000-20000', min: 10000, max: 20000 },
+ { label: '20-50K', value: '20000-50000', min: 20000, max: 50000 },
+ { label: '50K以上', value: '50000-0', min: 50000, max: '' },
+]);
+
// 加载状态
const loading = ref(true);
@@ -202,8 +232,23 @@ const handleClear = () => {
// 确认筛选
const handleConfirm = () => {
- console.log('selectedValues:', selectedValues);
- emit('confirm', selectedValues);
+ const payload = { ...selectedValues };
+ // 将选中的薪资区间转换为 minSalary / maxSalary 参数
+ // 始终带上 minSalary / maxSalary(含空值),便于父组件在清除时移除旧值
+ let minSalary = '';
+ let maxSalary = '';
+ if (payload.salary) {
+ const selected = salaryOptions.value.find((item) => item.value === payload.salary);
+ if (selected) {
+ minSalary = selected.min;
+ maxSalary = selected.max;
+ }
+ }
+ payload.minSalary = minSalary;
+ payload.maxSalary = maxSalary;
+ delete payload.salary;
+ console.log('selectedValues:', payload);
+ emit('confirm', payload);
handleClose();
};