|
|
@@ -9,13 +9,7 @@
|
|
|
:style="isFixed ? { paddingTop: 12 + statusBarHeight + 'px' } : {}" -->
|
|
|
<view class="search-bar">
|
|
|
<u-icon name="search" color="#999999" size="32" class="search-icon"></u-icon>
|
|
|
- <input
|
|
|
- type="text"
|
|
|
- placeholder="搜索职位"
|
|
|
- class="search-input"
|
|
|
- v-model="searchKeyword"
|
|
|
- @click="handleSearch"
|
|
|
- />
|
|
|
+ <input type="text" placeholder="搜索职位" class="search-input" v-model="searchKeyword" @click="handleSearch" />
|
|
|
</view>
|
|
|
<text class="search-btn" @click="handleSearch">搜索</text>
|
|
|
</view>
|
|
|
@@ -27,25 +21,14 @@
|
|
|
<!-- 第一行:tabs -->
|
|
|
<view class="topbg-type-box-row flex justify-between align-center">
|
|
|
<view class="topbg-type-box-l flex align-center">
|
|
|
- <view
|
|
|
- class="topbg-type-box-l-i"
|
|
|
- :class="current == index ? 'active' : ''"
|
|
|
- @tap="current = index"
|
|
|
- v-for="(item, index) in typeList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
+ <view class="topbg-type-box-l-i" :class="current == index ? 'active' : ''" @tap="current = index"
|
|
|
+ v-for="(item, index) in typeList" :key="index">
|
|
|
{{ item.label }}
|
|
|
</view>
|
|
|
</view>
|
|
|
<!-- 添加求职意向 -->
|
|
|
- <view
|
|
|
- class="topbg-yx-box-r flex align-center"
|
|
|
- @click="goNav('/package/jobIntention/tagManage')"
|
|
|
- >
|
|
|
- <image
|
|
|
- src="../../../static/images/index/Attachment.svg"
|
|
|
- class="attachment-icon"
|
|
|
- />
|
|
|
+ <view class="topbg-yx-box-r flex align-center" @click="goNav('/package/jobIntention/tagManage')">
|
|
|
+ <image src="../../../static/images/index/Attachment.svg" class="attachment-icon" />
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
@@ -53,13 +36,8 @@
|
|
|
<view class="topbg-sx-box flex justify-between align-center">
|
|
|
<!-- 分类 -->
|
|
|
<view class="topbg-sx-box-l flex align-center">
|
|
|
- <view
|
|
|
- class="topbg-sx-box-l-i"
|
|
|
- :class="currentSx == index ? 'active3' : ''"
|
|
|
- @click="currentSx = index"
|
|
|
- v-for="(item, index) in sxTypeList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
+ <view class="topbg-sx-box-l-i" :class="currentSx == index ? 'active3' : ''" @click="currentSx = index"
|
|
|
+ v-for="(item, index) in sxTypeList" :key="index">
|
|
|
{{ item.name }}
|
|
|
</view>
|
|
|
</view>
|
|
|
@@ -67,27 +45,16 @@
|
|
|
<view class="topbg-sx-box-r flex align-center">
|
|
|
<!-- 城市 -->
|
|
|
<view class="topbg-sx-box-r-i flex align-center" style="" @click="getLocation">
|
|
|
- <text style="margin-right: 10rpx">{{county?county:city?city:'选择城市'}}</text>
|
|
|
- <u-icon
|
|
|
- name="arrow-down"
|
|
|
- color="#016bf6"
|
|
|
- size="16"
|
|
|
- ></u-icon>
|
|
|
+ <text style="margin-right: 10rpx">{{ county ? county : city ? city : '选择城市' }}</text>
|
|
|
+ <u-icon name="arrow-down" color="#016bf6" size="16"></u-icon>
|
|
|
</view>
|
|
|
|
|
|
<!-- 筛选 -->
|
|
|
<view class="topbg-sx-box-filter flex align-center" :class="{ activeColor: filledFieldsCount }">
|
|
|
- <text
|
|
|
- style="margin-right: 10rpx"
|
|
|
- @click="goNavs('/package/screen/screen')"
|
|
|
- >筛选{{filledFieldsCount}}</text
|
|
|
- >
|
|
|
- <u-icon
|
|
|
- name="arrow-down"
|
|
|
- :color="filledFieldsCount?'#016bf6':'#999999'"
|
|
|
- size="16"
|
|
|
- @click="goNavs('/package/screen/screen')"
|
|
|
- ></u-icon>
|
|
|
+ <text style="margin-right: 10rpx"
|
|
|
+ @click="goNavs('/package/screen/screen')">筛选{{ filledFieldsCount }}</text>
|
|
|
+ <u-icon name="arrow-down" :color="filledFieldsCount ? '#016bf6' : '#999999'" size="16"
|
|
|
+ @click="goNavs('/package/screen/screen')"></u-icon>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
@@ -100,29 +67,16 @@
|
|
|
<text class="job-list-title">亿职赞急聘推荐</text>
|
|
|
<view class="refresh-btn" @click="refreshJobList">
|
|
|
<text>换一批推荐</text>
|
|
|
- <image
|
|
|
- src="../../../static/images/index/shuaxin.svg"
|
|
|
- class="refresh-icon"
|
|
|
- ></image>
|
|
|
+ <image src="../../../static/images/index/shuaxin.svg" class="refresh-icon"></image>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
<view class="job-list" v-if="dataList.length > 0">
|
|
|
- <view
|
|
|
- class="job-item"
|
|
|
- @click="gotoInfo(item.postPushId)"
|
|
|
- v-for="(item, index) in dataList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
+ <view class="job-item" @click="gotoInfo(item.postPushId)" v-for="(item, index) in dataList" :key="index">
|
|
|
<view class="job-item-content">
|
|
|
<!-- 公司logo -->
|
|
|
- <image
|
|
|
- :src="
|
|
|
- item.company ? item.company.companyLogo : '../../../static/logo.png'
|
|
|
- "
|
|
|
- class="company-logo"
|
|
|
- mode="aspectFill"
|
|
|
- ></image>
|
|
|
+ <image :src="item.company ? item.company.companyLogo : '../../../static/logo.png'
|
|
|
+ " class="company-logo" mode="aspectFill"></image>
|
|
|
|
|
|
<view class="job-info">
|
|
|
<!-- 公司名称 -->
|
|
|
@@ -161,18 +115,11 @@
|
|
|
<!-- 求职列表 -->
|
|
|
<view class="job-search-section">
|
|
|
<view class="job-search-list" v-if="jobSearchList.length > 0">
|
|
|
- <view
|
|
|
- class="job-search-item"
|
|
|
- @click="gotoInfo(item.postPushId)"
|
|
|
- v-for="(item, index) in jobSearchList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
+ <view class="job-search-item" @click="gotoInfo(item.postPushId)" v-for="(item, index) in jobSearchList"
|
|
|
+ :key="index">
|
|
|
<!-- 急聘标签 -->
|
|
|
- <view v-if="item.isDue==1" class="urgent-tag">
|
|
|
- <image
|
|
|
- src="../../../static/images/index/jijiji.svg"
|
|
|
- class="urgent-icon"
|
|
|
- ></image>
|
|
|
+ <view v-if="item.isDue == 1" class="urgent-tag">
|
|
|
+ <image src="../../../static/images/index/jijiji.svg" class="urgent-icon"></image>
|
|
|
</view>
|
|
|
|
|
|
<view class="job-search-content">
|
|
|
@@ -196,60 +143,42 @@
|
|
|
<text>¥{{ item.salaryRange }}/月</text>
|
|
|
<text>
|
|
|
<text class="bonus-tag">奖</text>
|
|
|
- <text class="bonus-xin">{{item.salaryTimes}}薪</text>
|
|
|
+ <text class="bonus-xin">{{ item.salaryTimes }}</text>
|
|
|
</text>
|
|
|
</view>
|
|
|
|
|
|
<!-- 职位要求标签 -->
|
|
|
- <view
|
|
|
- class="job-requirements"
|
|
|
- v-if="item.experience || item.education || item.welfareTag"
|
|
|
- >
|
|
|
+ <view class="job-requirements" v-if="item.experience || item.education || item.welfareTag">
|
|
|
<text class="requirement-tag" v-if="item.experience">{{
|
|
|
item.experience
|
|
|
}}</text>
|
|
|
<text class="requirement-tag" v-if="item.education">{{
|
|
|
item.education
|
|
|
}}</text>
|
|
|
- <text
|
|
|
- class="requirement-tag"
|
|
|
- v-for="(welfare, idx) in item.welfareTag"
|
|
|
- :key="idx"
|
|
|
- >{{ welfare }}</text
|
|
|
- >
|
|
|
+ <text class="requirement-tag" v-for="(welfare, idx) in item.welfareTag" :key="idx">{{ welfare }}</text>
|
|
|
</view>
|
|
|
|
|
|
<!-- 联系人信息 -->
|
|
|
<view class="contact-info">
|
|
|
- <image
|
|
|
- :src="
|
|
|
- item.hr&&item.hr.hrImg?item.hr.hrImg:'../../../static/logo.png'
|
|
|
- "
|
|
|
- style="
|
|
|
+ <image :src="item.hr && item.hr.hrImg ? item.hr.hrImg : '../../../static/logo.png'
|
|
|
+ " style="
|
|
|
width: 58rpx;
|
|
|
height: 58rpx;
|
|
|
border-radius: 50%;
|
|
|
margin-right: 20rpx;
|
|
|
- "
|
|
|
- mode=""
|
|
|
- ></image>
|
|
|
+ " mode=""></image>
|
|
|
<view class="company-info-text">
|
|
|
- {{item.user.userName?item.user.userName:'未知'}}·{{item.hr.hrPosition?item.hr.hrPosition:'未知'}}
|
|
|
+ {{ item.user.userName ? item.user.userName : '未知' }}·{{ item.hr.hrPosition ? item.hr.hrPosition : '未知' }}
|
|
|
</view>
|
|
|
- <view v-if="item.respondTime" class="reply-time">{{item.respondTime}}</view>
|
|
|
+ <view v-if="item.respondTime" class="reply-time">{{ item.respondTime }}</view>
|
|
|
</view>
|
|
|
|
|
|
<!-- 地址和距离 -->
|
|
|
<view class="location-info">
|
|
|
<u-icon name="map" color="#999999" size="16"></u-icon>
|
|
|
- <text class="address"
|
|
|
- >{{ item.province || "" }}{{ item.city || "" }}{{ item.county || ""
|
|
|
- }}{{ item.address || "" }}</text
|
|
|
- >
|
|
|
- <image
|
|
|
- src="../../../static/images/index/navigation.svg"
|
|
|
- class="distance-icon"
|
|
|
- ></image>
|
|
|
+ <text class="address">{{ item.province || "" }}{{ item.city || "" }}{{ item.county || ""
|
|
|
+ }}{{ item.address || "" }}</text>
|
|
|
+ <image src="../../../static/images/index/navigation.svg" class="distance-icon"></image>
|
|
|
<text class="distance">{{ item.distance || "--km" }}</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
@@ -262,11 +191,11 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <u-popup mode="top" ref="permission">
|
|
|
- <view class="popup-content">
|
|
|
- <view class="popup-text-permission">获取位置需要定位权限,用于推荐同城的求职岗位或牛人</view>
|
|
|
- </view>
|
|
|
- </u-popup>
|
|
|
+ <u-popup mode="top" ref="permission">
|
|
|
+ <view class="popup-content">
|
|
|
+ <view class="popup-text-permission">获取位置需要定位权限,用于推荐同城的求职岗位或牛人</view>
|
|
|
+ </view>
|
|
|
+ </u-popup>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
@@ -288,12 +217,12 @@ export default {
|
|
|
id: 2,
|
|
|
name: "最新",
|
|
|
},
|
|
|
- {
|
|
|
- id: 3,
|
|
|
- name: '附近',
|
|
|
- }
|
|
|
+ {
|
|
|
+ id: 3,
|
|
|
+ name: '附近',
|
|
|
+ }
|
|
|
],
|
|
|
- county: '', //区
|
|
|
+ county: '', //区
|
|
|
city: "",
|
|
|
searchKeyword: "", // 搜索关键词
|
|
|
dataList: [], // 职位列表
|
|
|
@@ -304,114 +233,114 @@ export default {
|
|
|
searchLimit: 10,
|
|
|
latitude: "",
|
|
|
longitude: "",
|
|
|
- industry:'',
|
|
|
+ industry: '',
|
|
|
isFixed: false, // 是否固定
|
|
|
fixedThreshold: 300, // 固定阈值
|
|
|
- education : '' ,//学历
|
|
|
- experience : '' ,//经验
|
|
|
- salaryRange : '' ,//薪资
|
|
|
- companyPeople : '' //公司规模
|
|
|
+ education: '',//学历
|
|
|
+ experience: '',//经验
|
|
|
+ salaryRange: '',//薪资
|
|
|
+ companyPeople: '' //公司规模
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
- filledFieldsCount() {
|
|
|
- const fields = [this.education, this.experience, this.industry, this.salaryRange, this.companyPeople];
|
|
|
- const count = fields.filter(item => item).length;
|
|
|
- return count > 0 ? '·' + count : '';
|
|
|
- }
|
|
|
- },
|
|
|
+ filledFieldsCount() {
|
|
|
+ const fields = [this.education, this.experience, this.industry, this.salaryRange, this.companyPeople];
|
|
|
+ const count = fields.filter(item => item).length;
|
|
|
+ return count > 0 ? '·' + count : '';
|
|
|
+ }
|
|
|
+ },
|
|
|
onLoad() {
|
|
|
// 获取状态栏高度
|
|
|
let systemInfo = uni.getSystemInfoSync();
|
|
|
this.statusBarHeight = systemInfo.statusBarHeight || 0;
|
|
|
- let that = this;
|
|
|
- // 更换城市调用getJobSearchList
|
|
|
- // uni.$on('city', data => {
|
|
|
- // that.city = data.city
|
|
|
- // uni.setStorageSync('city', that.city);
|
|
|
- // this.searchPage = 1
|
|
|
- // this.getJobSearchList();
|
|
|
- // })
|
|
|
- uni.$on('filterCity', data => {
|
|
|
- that.city = data.city
|
|
|
- that.county = data.county;
|
|
|
- uni.setStorageSync('city', that.city);
|
|
|
- this.searchPage = 1
|
|
|
- this.getJobSearchList();
|
|
|
- })
|
|
|
- // 监听筛选条件触发getJobSearchList
|
|
|
- uni.$on('updateScreenFilterRecord', () => {
|
|
|
- const condition=this.$queue.getFilterData()
|
|
|
- this.education = condition.education //学历
|
|
|
- this.experience = condition.experience //经验
|
|
|
- this.industry = condition.industry //行业
|
|
|
- this.salaryRange = condition.salaryRange //薪资
|
|
|
- this.companyPeople = condition.companyPeople //公司规模
|
|
|
- this.searchPage = 1
|
|
|
- this.getJobSearchList();
|
|
|
- })
|
|
|
- // 监听工作性质变化
|
|
|
- uni.$on('updatePosition', () => {
|
|
|
- this.searchPage = 1;
|
|
|
- this.page = 1;
|
|
|
- this.getTypeList();
|
|
|
- })
|
|
|
- if (uni.getStorageSync('city')) {
|
|
|
- this.city = uni.getStorageSync('city')
|
|
|
- } else {
|
|
|
- this.city = ''
|
|
|
- }
|
|
|
- const condition=this.$queue.getFilterData()
|
|
|
- this.education = condition.education //学历
|
|
|
- this.experience = condition.experience //经验
|
|
|
- this.industry = condition.industry //行业
|
|
|
- this.salaryRange = condition.salaryRange //薪资
|
|
|
- this.companyPeople = condition.companyPeople //公司规模
|
|
|
- this.getTypeList();
|
|
|
+ let that = this;
|
|
|
+ // 更换城市调用getJobSearchList
|
|
|
+ // uni.$on('city', data => {
|
|
|
+ // that.city = data.city
|
|
|
+ // uni.setStorageSync('city', that.city);
|
|
|
+ // this.searchPage = 1
|
|
|
+ // this.getJobSearchList();
|
|
|
+ // })
|
|
|
+ uni.$on('filterCity', data => {
|
|
|
+ that.city = data.city
|
|
|
+ that.county = data.county;
|
|
|
+ uni.setStorageSync('city', that.city);
|
|
|
+ this.searchPage = 1
|
|
|
+ this.getJobSearchList();
|
|
|
+ })
|
|
|
+ // 监听筛选条件触发getJobSearchList
|
|
|
+ uni.$on('updateScreenFilterRecord', () => {
|
|
|
+ const condition = this.$queue.getFilterData()
|
|
|
+ this.education = condition.education //学历
|
|
|
+ this.experience = condition.experience //经验
|
|
|
+ this.industry = condition.industry //行业
|
|
|
+ this.salaryRange = condition.salaryRange //薪资
|
|
|
+ this.companyPeople = condition.companyPeople //公司规模
|
|
|
+ this.searchPage = 1
|
|
|
+ this.getJobSearchList();
|
|
|
+ })
|
|
|
+ // 监听工作性质变化
|
|
|
+ uni.$on('updatePosition', () => {
|
|
|
+ this.searchPage = 1;
|
|
|
+ this.page = 1;
|
|
|
+ this.getTypeList();
|
|
|
+ })
|
|
|
+ if (uni.getStorageSync('city')) {
|
|
|
+ this.city = uni.getStorageSync('city')
|
|
|
+ } else {
|
|
|
+ this.city = ''
|
|
|
+ }
|
|
|
+ const condition = this.$queue.getFilterData()
|
|
|
+ this.education = condition.education //学历
|
|
|
+ this.experience = condition.experience //经验
|
|
|
+ this.industry = condition.industry //行业
|
|
|
+ this.salaryRange = condition.salaryRange //薪资
|
|
|
+ this.companyPeople = condition.companyPeople //公司规模
|
|
|
+ this.getTypeList();
|
|
|
},
|
|
|
- onUnload(){
|
|
|
- uni.$off('filterCity');
|
|
|
- // uni.$off('city');
|
|
|
- uni.$off('updateScreenFilterRecord');
|
|
|
- uni.$off('updatePosition')
|
|
|
+ onUnload() {
|
|
|
+ uni.$off('filterCity');
|
|
|
+ // uni.$off('city');
|
|
|
+ uni.$off('updateScreenFilterRecord');
|
|
|
+ uni.$off('updatePosition')
|
|
|
},
|
|
|
watch: {
|
|
|
- current(newData, oldData) {
|
|
|
- console.log(this.current)
|
|
|
- uni.showLoading({
|
|
|
- title: '加载中'
|
|
|
- })
|
|
|
- this.searchPage = 1
|
|
|
- this.getJobSearchList();
|
|
|
- },
|
|
|
- currentSx(newData, oldData) {
|
|
|
- uni.showLoading({
|
|
|
- title: '加载中'
|
|
|
- })
|
|
|
- this.searchPage = 1
|
|
|
- this.getJobSearchList();
|
|
|
- },
|
|
|
- // currentjob(newData, oldData) {
|
|
|
- // uni.showLoading({
|
|
|
- // title: '加载中'
|
|
|
- // })
|
|
|
- // this.page = 1
|
|
|
- // this.getJobSearchList();
|
|
|
- // },
|
|
|
- // currentJobSx(newData, oldData) {
|
|
|
- // uni.showLoading({
|
|
|
- // title: '加载中'
|
|
|
- // })
|
|
|
- // this.page = 1
|
|
|
- // this.getJobSearchList();
|
|
|
- // },
|
|
|
- // currentJobSxs(newData, oldData) {
|
|
|
- // uni.showLoading({
|
|
|
- // title: '加载中'
|
|
|
- // })
|
|
|
- // this.page = 1
|
|
|
- // this.getJobSearchList();
|
|
|
- // },
|
|
|
+ current(newData, oldData) {
|
|
|
+ console.log(this.current)
|
|
|
+ uni.showLoading({
|
|
|
+ title: '加载中'
|
|
|
+ })
|
|
|
+ this.searchPage = 1
|
|
|
+ this.getJobSearchList();
|
|
|
+ },
|
|
|
+ currentSx(newData, oldData) {
|
|
|
+ uni.showLoading({
|
|
|
+ title: '加载中'
|
|
|
+ })
|
|
|
+ this.searchPage = 1
|
|
|
+ this.getJobSearchList();
|
|
|
+ },
|
|
|
+ // currentjob(newData, oldData) {
|
|
|
+ // uni.showLoading({
|
|
|
+ // title: '加载中'
|
|
|
+ // })
|
|
|
+ // this.page = 1
|
|
|
+ // this.getJobSearchList();
|
|
|
+ // },
|
|
|
+ // currentJobSx(newData, oldData) {
|
|
|
+ // uni.showLoading({
|
|
|
+ // title: '加载中'
|
|
|
+ // })
|
|
|
+ // this.page = 1
|
|
|
+ // this.getJobSearchList();
|
|
|
+ // },
|
|
|
+ // currentJobSxs(newData, oldData) {
|
|
|
+ // uni.showLoading({
|
|
|
+ // title: '加载中'
|
|
|
+ // })
|
|
|
+ // this.page = 1
|
|
|
+ // this.getJobSearchList();
|
|
|
+ // },
|
|
|
},
|
|
|
onPageScroll(e) {
|
|
|
// 监听页面滚动
|
|
|
@@ -425,54 +354,54 @@ export default {
|
|
|
methods: {
|
|
|
// 获取工作性质列表
|
|
|
getTypeList() {
|
|
|
- var that=this
|
|
|
- //行业期望
|
|
|
- this.$Request.get('/app/intention/getIntentionList', {}).then(res => {
|
|
|
- if (res.code == 0) {
|
|
|
- let arr = res.data
|
|
|
- let classRule=[]
|
|
|
- let industry=[{id:'不限',name:'不限'}]
|
|
|
- var industryArr=this.industry==''?[]:this.industry.split(',')
|
|
|
- industryArr.forEach(function(item){
|
|
|
- if(that.$queue.array_column(that.directionList,'name').indexOf(item)<0)
|
|
|
- industry.push({id:item,name:item})
|
|
|
- })
|
|
|
-
|
|
|
- arr.forEach(function(item){
|
|
|
- var tmp={}
|
|
|
- tmp.id=item.ruleClassifyId
|
|
|
- tmp.name=item.ruleClassifyName
|
|
|
- tmp.label=item.ruleClassifyName
|
|
|
- classRule.push(tmp)
|
|
|
- var indus=!item.industry?[]:item.industry.split('/')
|
|
|
- indus.forEach(function(ind){
|
|
|
- var tm={}
|
|
|
- tm.name=ind
|
|
|
- tm.id=ind
|
|
|
- if(that.$queue.array_column(industry,'name').indexOf(tm.name)<0)
|
|
|
- industry.push(tm)
|
|
|
- })
|
|
|
- })
|
|
|
- this.typeList = classRule
|
|
|
- this.directionList=industry
|
|
|
- that.getJobSearchList();
|
|
|
- that.getJobList();
|
|
|
- }
|
|
|
- })
|
|
|
- // this.$Request
|
|
|
- // .getT("/app/dict/list", {
|
|
|
- // type: "工作性质",
|
|
|
- // })
|
|
|
- // .then((res) => {
|
|
|
- // if (res.code == 0) {
|
|
|
- // this.typeList = res.data.map((item) => ({
|
|
|
- // label: item.value,
|
|
|
- // value: item.code,
|
|
|
- // }));
|
|
|
- // // 获取到tabs数据后调用职位列表
|
|
|
- // this.getJobList();
|
|
|
- // }
|
|
|
- // });
|
|
|
+ var that = this
|
|
|
+ //行业期望
|
|
|
+ this.$Request.get('/app/intention/getIntentionList', {}).then(res => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ let arr = res.data
|
|
|
+ let classRule = []
|
|
|
+ let industry = [{ id: '不限', name: '不限' }]
|
|
|
+ var industryArr = this.industry == '' ? [] : this.industry.split(',')
|
|
|
+ industryArr.forEach(function (item) {
|
|
|
+ if (that.$queue.array_column(that.directionList, 'name').indexOf(item) < 0)
|
|
|
+ industry.push({ id: item, name: item })
|
|
|
+ })
|
|
|
+
|
|
|
+ arr.forEach(function (item) {
|
|
|
+ var tmp = {}
|
|
|
+ tmp.id = item.ruleClassifyId
|
|
|
+ tmp.name = item.ruleClassifyName
|
|
|
+ tmp.label = item.ruleClassifyName
|
|
|
+ classRule.push(tmp)
|
|
|
+ var indus = !item.industry ? [] : item.industry.split('/')
|
|
|
+ indus.forEach(function (ind) {
|
|
|
+ var tm = {}
|
|
|
+ tm.name = ind
|
|
|
+ tm.id = ind
|
|
|
+ if (that.$queue.array_column(industry, 'name').indexOf(tm.name) < 0)
|
|
|
+ industry.push(tm)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ this.typeList = classRule
|
|
|
+ this.directionList = industry
|
|
|
+ that.getJobSearchList();
|
|
|
+ that.getJobList();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // this.$Request
|
|
|
+ // .getT("/app/dict/list", {
|
|
|
+ // type: "工作性质",
|
|
|
+ // })
|
|
|
+ // .then((res) => {
|
|
|
+ // if (res.code == 0) {
|
|
|
+ // this.typeList = res.data.map((item) => ({
|
|
|
+ // label: item.value,
|
|
|
+ // value: item.code,
|
|
|
+ // }));
|
|
|
+ // // 获取到tabs数据后调用职位列表
|
|
|
+ // this.getJobList();
|
|
|
+ // }
|
|
|
+ // });
|
|
|
},
|
|
|
// 跳转到搜索页面
|
|
|
goNavs(url) {
|
|
|
@@ -488,7 +417,7 @@ export default {
|
|
|
},
|
|
|
// 处理搜索
|
|
|
handleSearch() {
|
|
|
- if (this.searchKeyword.trim()||true) {
|
|
|
+ if (this.searchKeyword.trim() || true) {
|
|
|
uni.navigateTo({
|
|
|
url: "/package/search/search?keyword=" + encodeURIComponent(this.searchKeyword),
|
|
|
});
|
|
|
@@ -502,56 +431,57 @@ export default {
|
|
|
// 获取位置信息
|
|
|
async getLocation() {
|
|
|
let that = this;
|
|
|
- // #ifdef APP
|
|
|
- const hasPermission = await this.$queue.checkPermission(
|
|
|
- 'location', // 固定传 'location',双端通用
|
|
|
- '获取您的位置用于推荐附近的求职岗位或牛人', // 提示文案也无需区分系统(统一表述即可)
|
|
|
- this
|
|
|
- );
|
|
|
-
|
|
|
- if (!hasPermission) {
|
|
|
- return that.goNav('/package/screen/city?city='+that.city+'&county='+that.county);
|
|
|
- }
|
|
|
- // #endif
|
|
|
-
|
|
|
-
|
|
|
+ // #ifdef APP
|
|
|
+ const hasPermission = await this.$queue.checkPermission(
|
|
|
+ 'location', // 固定传 'location',双端通用
|
|
|
+ '获取您的位置用于推荐附近的求职岗位或牛人', // 提示文案也无需区分系统(统一表述即可)
|
|
|
+ this
|
|
|
+ );
|
|
|
+
|
|
|
+ if (!hasPermission) {
|
|
|
+ return that.goNav('/package/screen/city?city=' + that.city + '&county=' + that.county);
|
|
|
+ }
|
|
|
+ // #endif
|
|
|
+
|
|
|
+
|
|
|
uni.getLocation({
|
|
|
type: "wgs84",
|
|
|
success: function (res) {
|
|
|
that.latitude = res.latitude;
|
|
|
that.longitude = res.longitude;
|
|
|
- that.getSelectCity(res.longitude,res.latitude)
|
|
|
- that.goNav('/package/screen/city?city='+that.city+'&county='+that.county+'&type='+'search')
|
|
|
+ that.getSelectCity(res.longitude, res.latitude)
|
|
|
+ that.goNav('/package/screen/city?city=' + that.city + '&county=' + that.county + '&type=' + 'search')
|
|
|
},
|
|
|
fail: function () {
|
|
|
- that.getTypeList();
|
|
|
- that.goNav('/package/screen/city?city='+that.city+'&county='+that.county+'&type='+'search')
|
|
|
+ that.getTypeList();
|
|
|
+ that.goNav('/package/screen/city?city=' + that.city + '&county=' + that.county + '&type=' + 'search')
|
|
|
},
|
|
|
});
|
|
|
},
|
|
|
- getSelectCity(longitude, latitude) {
|
|
|
- let that = this;
|
|
|
- this.$Request.get('/app/Login/selectCity?lat=' + latitude + '&lng=' + longitude).then(res => {
|
|
|
- if (res.code == 0) {
|
|
|
- // console.log(res, '获取地址信息')
|
|
|
- that.city = res.data.city ? res.data.city : '区域'
|
|
|
- uni.setStorageSync('city', res.data.city)
|
|
|
- that.getTypeList();
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
+ getSelectCity(longitude, latitude) {
|
|
|
+ let that = this;
|
|
|
+ this.$Request.get('/app/Login/selectCity?lat=' + latitude + '&lng=' + longitude).then(res => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ // console.log(res, '获取地址信息')
|
|
|
+ that.city = res.data.city ? res.data.city : '区域'
|
|
|
+ uni.setStorageSync('city', res.data.city)
|
|
|
+ that.getTypeList();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
// 获取职位列表
|
|
|
getJobList() {
|
|
|
let data = {
|
|
|
page: this.page,
|
|
|
limit: this.limit,
|
|
|
- postType: this.typeList.length > 0 ? this.typeList[this.current].name : "",
|
|
|
- ruleClassifyName: this.typeList.length > 0 ? this.typeList[this.current].name : "", //岗位名称
|
|
|
+ // postType: this.typeList.length > 0 ? this.typeList[this.current].name : "",
|
|
|
+
|
|
|
+ ruleClassifyName: this.typeList.length > 0 ? this.typeList[this.current].name : "", //岗位名称
|
|
|
screen: +this.currentSx + 1, //1推荐 2最新
|
|
|
- city: this.city == "区域" || this.city == "全国"? "" : this.city,
|
|
|
+ city: this.city == "区域" || this.city == "全国" ? "" : this.city,
|
|
|
lng: this.longitude,
|
|
|
lat: this.latitude,
|
|
|
- isDue:1,
|
|
|
+ isDue: 1,
|
|
|
userId: uni.getStorageSync("userId") ? uni.getStorageSync("userId") : "",
|
|
|
};
|
|
|
this.$Request.get("/app/postPush/userGetPostPushList", data).then((res) => {
|
|
|
@@ -605,21 +535,22 @@ export default {
|
|
|
let data = {
|
|
|
page: this.searchPage,
|
|
|
limit: this.searchLimit,
|
|
|
- postType: this.typeList.length > 0 ? this.typeList[this.current].name : "",
|
|
|
+ // postType: this.typeList.length > 0 ? this.typeList[this.current].name : "",
|
|
|
+ ruleClassifyName: this.typeList.length > 0 ? this.typeList[this.current].name : "", //岗位名称
|
|
|
screen: +this.currentSx + 1, //1推荐 2最新
|
|
|
- city: this.city == "区域" || this.city == "全国"? "" : this.city,
|
|
|
+ city: this.city == "区域" || this.city == "全国" ? "" : this.city,
|
|
|
lng: this.longitude,
|
|
|
lat: this.latitude,
|
|
|
- isDue:1,
|
|
|
+ isDue: 1,
|
|
|
userId: uni.getStorageSync("userId") ? uni.getStorageSync("userId") : "",
|
|
|
- education:this.education || '',//学历
|
|
|
- experience:this.experience || '',//经验
|
|
|
- industry:this.industry || '',//行业
|
|
|
- salaryRange:this.salaryRange || '',//薪资
|
|
|
- companyPeople:this.companyPeople || ''//公司规模
|
|
|
+ education: this.education || '',//学历
|
|
|
+ experience: this.experience || '',//经验
|
|
|
+ industry: this.industry || '',//行业
|
|
|
+ salaryRange: this.salaryRange || '',//薪资
|
|
|
+ companyPeople: this.companyPeople || ''//公司规模
|
|
|
};
|
|
|
this.$Request.get("/app/postPush/userGetPostPushList", data).then((res) => {
|
|
|
- uni.hideLoading()
|
|
|
+ uni.hideLoading()
|
|
|
if (res.code == 0) {
|
|
|
res.data.records.map((item) => {
|
|
|
if (item.welfareTag) {
|
|
|
@@ -663,6 +594,7 @@ page {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
overflow: hidden;
|
|
|
+
|
|
|
.page-bg {
|
|
|
position: absolute;
|
|
|
top: 0;
|
|
|
@@ -671,20 +603,20 @@ page {
|
|
|
height: 40vh;
|
|
|
background: linear-gradient(90deg, rgba(13, 39, 247, 1), rgba(19, 193, 234, 1) 100%);
|
|
|
z-index: -1;
|
|
|
+
|
|
|
.page-bottom {
|
|
|
height: 20vh;
|
|
|
position: absolute;
|
|
|
bottom: 0;
|
|
|
left: 0;
|
|
|
right: 0;
|
|
|
- background: linear-gradient(
|
|
|
- to top,
|
|
|
- rgba(244, 243, 243, 1),
|
|
|
- rgba(255, 255, 255, 0.5) 46%,
|
|
|
- rgba(255, 255, 255, 0) 100%
|
|
|
- );
|
|
|
+ background: linear-gradient(to top,
|
|
|
+ rgba(244, 243, 243, 1),
|
|
|
+ rgba(255, 255, 255, 0.5) 46%,
|
|
|
+ rgba(255, 255, 255, 0) 100%);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.page-content {
|
|
|
flex: 1;
|
|
|
width: 100%;
|
|
|
@@ -791,11 +723,9 @@ page {
|
|
|
margin-right: 14rpx;
|
|
|
|
|
|
&.active {
|
|
|
- background: linear-gradient(
|
|
|
- 90deg,
|
|
|
- rgba(13, 39, 247, 1),
|
|
|
- rgba(19, 193, 234, 1) 100%
|
|
|
- );
|
|
|
+ background: linear-gradient(90deg,
|
|
|
+ rgba(13, 39, 247, 1),
|
|
|
+ rgba(19, 193, 234, 1) 100%);
|
|
|
-webkit-background-clip: text;
|
|
|
-webkit-text-fill-color: transparent;
|
|
|
background-clip: text;
|
|
|
@@ -989,6 +919,7 @@ page {
|
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
|
width: 450rpx;
|
|
|
+
|
|
|
.text {
|
|
|
color: rgba(153, 153, 153, 1);
|
|
|
font-family: DM Sans;
|
|
|
@@ -1223,9 +1154,10 @@ page {
|
|
|
background: rgba(255, 255, 255, 0.95);
|
|
|
backdrop-filter: blur(10rpx);
|
|
|
}
|
|
|
-.activeColor{
|
|
|
- color: #016bf6 !important;
|
|
|
- border:1rpx solid #016bf6;
|
|
|
- background: #fce9dc !important;
|
|
|
+
|
|
|
+.activeColor {
|
|
|
+ color: #016bf6 !important;
|
|
|
+ border: 1rpx solid #016bf6;
|
|
|
+ background: #fce9dc !important;
|
|
|
}
|
|
|
</style>
|