Commit 5be71b0e authored by 李明环(东信)'s avatar 李明环(东信)

推荐简历专业筛选

parent c0642abf
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
<view class="arrow"></view> <view class="arrow"></view>
</wd-picker> </wd-picker>
</view> </view>
<view class="filter-other flex-between"> <view class="filter-other flex-between">
<wd-col-picker <wd-col-picker
label="选择地址" label="选择地址"
...@@ -36,6 +37,19 @@ ...@@ -36,6 +37,19 @@
> >
<view class="item">{{ cityText }} <view class="arrow"></view> </view> <view class="item">{{ cityText }} <view class="arrow"></view> </view>
</wd-col-picker> </wd-col-picker>
<view class="filter-opstion">
<wd-col-picker
v-model="majorValue"
:columns="majorOpstion"
value-key="name"
label-key="name"
:column-change="columnChangeMajor"
@confirm="handleConfirmMajor"
use-default-slot
>
<view class="item">{{ majorText || "全部" }} <view class="arrow"></view> </view>
</wd-col-picker>
</view>
<!-- <view class="item">默认排序<view class="arrow"></view> </view> --> <!-- <view class="item">默认排序<view class="arrow"></view> </view> -->
<view class="item" @click="showOtherFilter = true">筛选<view class="arrow"></view> </view> <view class="item" @click="showOtherFilter = true">筛选<view class="arrow"></view> </view>
</view> </view>
...@@ -75,6 +89,7 @@ import jobSeekersCard from "@/components/jobSeekersCard/index.vue"; ...@@ -75,6 +89,7 @@ import jobSeekersCard from "@/components/jobSeekersCard/index.vue";
import { getJobListApi, getApplicationListApi, getRecommendedResumeListApi, getPositionListApi } from "@/api/postion"; import { getJobListApi, getApplicationListApi, getRecommendedResumeListApi, getPositionListApi } from "@/api/postion";
import { getTreeListApi } from "@/api/common"; import { getTreeListApi } from "@/api/common";
import { getLoginUserApi, companyReviewInfo } from "@/api/user"; import { getLoginUserApi, companyReviewInfo } from "@/api/user";
import { getMajorTreeApi } from "@/api/common";
import { getEumData, getEnumText } from "@/utils/utils"; import { getEumData, getEnumText } from "@/utils/utils";
import { useAsync } from "@/hooks/useAsync"; import { useAsync } from "@/hooks/useAsync";
import _ from "lodash"; import _ from "lodash";
...@@ -140,6 +155,7 @@ const getApplicationListParams = ref({ ...@@ -140,6 +155,7 @@ const getApplicationListParams = ref({
const getResumeRecommendListParams = ref({ const getResumeRecommendListParams = ref({
recommend: true, recommend: true,
positionId: "", positionId: "",
major: "",
sex: "", sex: "",
jobType: "", jobType: "",
provinceCode: "", provinceCode: "",
...@@ -175,6 +191,7 @@ const resetParams = () => { ...@@ -175,6 +191,7 @@ const resetParams = () => {
recommend: true, recommend: true,
positionId: "", positionId: "",
sex: "", sex: "",
major: "",
jobType: "", jobType: "",
provinceCode: "", provinceCode: "",
cityCode: "", cityCode: "",
...@@ -321,6 +338,34 @@ const handleConfirmCity = ({ value, selectedItems }) => { ...@@ -321,6 +338,34 @@ const handleConfirmCity = ({ value, selectedItems }) => {
resetPageParams(); resetPageParams();
getResumeRecommendList(); getResumeRecommendList();
}; };
/* 专业筛选 */
const majorValue = ref([]);
const majorOpstion = ref([]);
const columnChangeMajor = ({ selectedItem, resolve, finish }) => {
if (selectedItem.children) {
resolve(selectedItem.children);
} else {
finish();
}
};
const handleConfirmMajor = ({ value }) => {
majorText.value = value[1];
resetPageParams();
getResumeRecommendListParams.value.recommend = false;
getResumeRecommendListParams.value.major = value[1];
getResumeRecommendList();
};
const majorText = ref("");
getMajorTreeApi().then(res => {
if (res.code === 200) {
majorOpstion.value.push(
Object.keys(res.data).map(key => ({
name: key,
children: res.data[key]
}))
);
}
});
// 显示其他筛选 // 显示其他筛选
const showOtherFilter = ref(false); const showOtherFilter = ref(false);
const filterConfirm = data => { const filterConfirm = data => {
...@@ -373,18 +418,18 @@ onLoad(() => { ...@@ -373,18 +418,18 @@ onLoad(() => {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding-bottom: 7px; padding-bottom: 14rpx;
background-color: #ffffff; background-color: #ffffff;
text { text {
width: 140px; width: 280rpx;
height: 40px; height: 80rpx;
font-size: 18px; font-size: 36rpx;
line-height: 40px; line-height: 80rpx;
color: #1b2026; color: #1b2026;
text-align: center; text-align: center;
&.active { &.active {
position: relative; position: relative;
font-size: 18px; font-size: 36rpx;
font-weight: 600; font-weight: 600;
background-image: url("https://lygsh-image.wjzpgz.com/community/communityActiveTab.png"); background-image: url("https://lygsh-image.wjzpgz.com/community/communityActiveTab.png");
background-repeat: no-repeat; background-repeat: no-repeat;
...@@ -404,56 +449,64 @@ onLoad(() => { ...@@ -404,56 +449,64 @@ onLoad(() => {
flex-grow: 1; flex-grow: 1;
.filter { .filter {
position: relative; position: relative;
padding: 0 16px 0 22px; padding: 0 32rpx 0 44rpx;
.filter-opstion { .filter-opstion {
max-width: 115px; max-width: 230rpx;
:deep(.wd-picker__field) { :deep(.wd-picker__field) {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.t1 { .t1 {
font-size: 12px; font-size: 24rpx;
font-weight: normal; font-weight: normal;
line-height: 18px; line-height: 36rpx;
color: #77818f; color: #77818f;
} }
.t2 { .t2 {
flex-grow: 1; flex-grow: 1;
width: 50px; width: 100rpx;
overflow: hidden; overflow: hidden;
font-size: 16px; font-size: 32rpx;
font-weight: 600; font-weight: 600;
line-height: 24px; line-height: 48rpx;
color: #1b2026; color: #1b2026;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
.arrow { .arrow {
width: 0; width: 0;
height: 0; height: 0;
margin-left: 10px; margin-left: 20rpx;
border-color: #c9cdd4; border-color: #c9cdd4;
border-width: 4px; border-width: 8rpx;
transform: rotateZ(45deg) translateY(-2px); transform: rotateZ(45deg) translateY(-4rpx);
} }
} }
} }
.filter-other { .filter-other {
gap: 8px; gap: 16rpx;
.item { .item {
display: flex; /* display: flex;
align-items: flex-end; align-items: flex-end; */
padding: 6px 9px; position: relative;
font-size: 12px; max-width: 120rpx;
padding: 12rpx 18rpx;
overflow: hidden;
font-size: 24rpx;
font-weight: normal; font-weight: normal;
line-height: 12px; line-height: 24rpx;
color: #1f86ff; color: #1f86ff;
text-overflow: ellipsis;
white-space: nowrap;
background: rgb(31 134 255 / 10%); background: rgb(31 134 255 / 10%);
.arrow { .arrow {
position: absolute;
right: 6rpx;
bottom: 12rpx;
width: 0; width: 0;
height: 0; height: 0;
margin-left: 2px; margin-left: 4rpx;
border-color: #1f86ff; border-color: #1f86ff;
border-width: 2px; border-width: 4rpx;
transform: rotateZ(0deg); transform: rotateZ(0deg);
} }
} }
...@@ -468,25 +521,25 @@ onLoad(() => { ...@@ -468,25 +521,25 @@ onLoad(() => {
height: 100%; height: 100%;
background-color: #00000066; background-color: #00000066;
.wrapper { .wrapper {
padding: 0.5px 20px; padding: 1rpx 40rpx;
background-color: #ffffff; background-color: #ffffff;
.other-view-item { .other-view-item {
margin-top: 12px; margin-top: 24rpx;
label { label {
font-size: 12px; font-size: 24rpx;
color: #1b2026; color: #1b2026;
} }
.select-list { .select-list {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 12px; gap: 24rpx;
margin-top: 12px; margin-top: 24rpx;
.select-item { .select-item {
padding: 6px 14px; padding: 12rpx 28rpx;
font-size: 12px; font-size: 24rpx;
color: #a3a7b3; color: #a3a7b3;
border: 1px solid #e1e2e6; border: 2rpx solid #e1e2e6;
border-radius: 4px; border-radius: 8rpx;
&.active { &.active {
color: #1f86ff; color: #1f86ff;
background: rgb(31 134 255 / 10%); background: rgb(31 134 255 / 10%);
...@@ -495,36 +548,36 @@ onLoad(() => { ...@@ -495,36 +548,36 @@ onLoad(() => {
} }
} }
:deep(.wd-slider) { :deep(.wd-slider) {
height: 18px; height: 36rpx;
padding-top: 18px; padding-top: 36rpx;
.wd-slider__button-wrapper { .wd-slider__button-wrapper {
width: 15px; width: 30rpx;
height: 15px; height: 30rpx;
.wd-slider__button { .wd-slider__button {
width: 15px; width: 30rpx;
height: 15px; height: 30rpx;
} }
.wd-slider__label { .wd-slider__label {
bottom: 18px; bottom: 36rpx;
width: 15px; width: 30rpx;
font-size: 10px; font-size: 20rpx;
} }
} }
.wd-slider__bar-wrapper { .wd-slider__bar-wrapper {
margin: 0 20px; margin: 0 40rpx;
} }
} }
} }
.button-wrap { .button-wrap {
display: flex; display: flex;
gap: 12px; gap: 24rpx;
justify-content: flex-end; justify-content: flex-end;
padding: 16px 0; padding: 32rpx 0;
div { div {
padding: 5px 12px; padding: 10rpx 24rpx;
font-size: 14px; font-size: 28rpx;
color: #1f86ff; color: #1f86ff;
border-radius: 4px; border-radius: 8rpx;
} }
.reset { .reset {
color: #ffffff; color: #ffffff;
...@@ -532,20 +585,20 @@ onLoad(() => { ...@@ -532,20 +585,20 @@ onLoad(() => {
} }
.confirm { .confirm {
color: #1f86ff; color: #1f86ff;
border: 1px solid #1f86ff; border: 2rpx solid #1f86ff;
} }
} }
} }
} }
.recommend-list { .recommend-list {
flex-grow: 1; flex-grow: 1;
height: 100px; height: 200rpx;
.item { .item {
padding: 8px 16px; padding: 16rpx 32rpx;
border-bottom: 8px solid #f3f4f8; border-bottom: 16rpx solid #f3f4f8;
} }
.wd-status-tip { .wd-status-tip {
padding-top: 140px; padding-top: 280rpx;
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment