|
|
|
|
|
<template>
|
|
|
|
|
|
<view class="p-home-inedx g_w_all g_bg_f_5 g_kuaishou" :class="computeCode == -1 ? 'g_flex_column_center' : ''">
|
|
|
|
|
|
<view v-show="computeCode == -1" class="g_flex_column_center">
|
|
|
|
|
|
<rh-loading marginBottom="g_mb_130" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view v-show="computeCode > -1">
|
|
|
|
|
|
<!-- #ifdef APP-PLUS || H5 || MP-KUAISHOU -->
|
|
|
|
|
|
<u-navbar v-if="false" :is-back="false" :title="globalData.title" :background="background" title-size="36" title-color="#ffffff" :title-bold="false">
|
|
|
|
|
|
<!-- #ifdef APP-PLUS -->
|
|
|
|
|
|
<view class="slot-wrap g_flex_column_center g_position_rela" style="padding-left: 16px; padding-top: 10rpx" @click="handleOpenCamera">
|
|
|
|
|
|
<i class="iconfont icon-saoyisao-hui g_c_3" style="font-size: 40rpx"></i>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- #endif -->
|
|
|
|
|
|
</u-navbar>
|
|
|
|
|
|
<!-- #endif -->
|
|
|
|
|
|
<!-- 搜索区 -->
|
|
|
|
|
|
<view class="sticky g_bg_f">
|
|
|
|
|
|
<view class="g_position_rela g_flex_row_center g_pt_10 g_pb_10" @touchmove.stop.prevent>
|
|
|
|
|
|
<!-- <view class="g_text_c g_c_c g_fs_12" style="width: 100vw; position: absolute; top: -32px; z-index: 9999999">{{ "最近更新" + (jobNum || "-") + "条信息" }}</view> -->
|
|
|
|
|
|
<view class="the_city g_flex_column_center" style hover-class="thover" @click="goCity">
|
|
|
|
|
|
<view class="g_flex_row_center">
|
|
|
|
|
|
<view class="g_fs_16 g_fw_600 g_ml_10" style="min-width: 36px; display: inline-block">{{ selectedCity }} </view>
|
|
|
|
|
|
<view class="g_flex_column_center">
|
|
|
|
|
|
<view class="iconfont icon-zhankai g_fs_12" style="display: inline-block"></view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="m-search g_p_10 g_pt_8 g_position_abso bg_shawdoc g_flex_1" style="top: 0" id="searchInputBox">
|
|
|
|
|
|
<u-search v-model="query.keys" class="g_flex_1" placeholder="搜索职位名称" bg-color="#f5f5f5" :show-action="false" placeholder-class="g_c_c" :input-style="{ fontSize: '16px' }" height="80" search-icon-color="#999999" :maxlength="20" @clear="searchJob" @search="searchJob"></u-search>
|
|
|
|
|
|
<!-- <view class="g_w_all g_h_40 g_position_abso" style="left: 0; z-index: 9999" @click.stop="goSearch"> </view> -->
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<view class="g_bg_f g_flex_row_between flex_center" @touchmove.stop.prevent style="box-shadow: 0px 2px 3px 0px rgba(214, 214, 214, 0.3)" id="tttop">
|
|
|
|
|
|
<view class="g_flex_1">
|
|
|
|
|
|
<u-tabs bg-color="transparent" from="index" :list="tabInfo.list" :is-scroll="true" :current="tabInfo.active" :active-color="globalData.themeColor" bar-width="64" bar-height="6" @change="handleUpdateTab" font-size="34" duration="0.05" height="76"></u-tabs>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- <view v-if="true || (isMember && hasPermission)" class="g_mr_8" @click="goShare" > 批量分享 </view> -->
|
|
|
|
|
|
|
|
|
|
|
|
<view class="csbf" @click="chooseNl('sort')">
|
|
|
|
|
|
{{ sortList.list[sortList.active].showName }}
|
|
|
|
|
|
<span class="iconfont icon-shouqi g_fs_12 g_c_9 fst g_ml_4" v-if="whichOneShow == 'sort'"></span>
|
|
|
|
|
|
<span class="iconfont icon-zhankai g_fs_12 g_c_9 fst g_ml_4" v-if="whichOneShow != 'sort'"></span>
|
|
|
|
|
|
<view class="sortMask" v-if="whichOneShow == 'sort'">
|
|
|
|
|
|
<view class="sortContainer" style="overflow: hidden" @click.stop>
|
|
|
|
|
|
<view v-for="(item, index) in sortList.list" @click="sortJob(index)" :key="index" :class="sortList.active == index ? 'g_border_main g_c_main' : 'g_border_f'" class="g_fs_16 g_fw_600 g_mt_16 g_bg_f" style="border-radius: 30px; padding: 8px 16px">{{ item.name }}</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="csbf" style="z-index: 99999999" @click="chooseNl('special')" data-type="special">
|
|
|
|
|
|
筛选
|
|
|
|
|
|
<span class="iconfont icon-shouqi g_fs_12 g_c_9 fst g_ml_4" v-if="whichOneShow == 'special'"></span>
|
|
|
|
|
|
<span class="iconfont icon-zhankai g_fs_12 g_c_9 fst g_ml_4" v-if="whichOneShow != 'special'"></span>
|
|
|
|
|
|
<g-filter :show="whichOneShow" ref="filterChild" top="103px" :getFilterDataNew="getFilterData" @filterObj="receiveFromChild"></g-filter>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<scroll-view class="filterTag bt1" v-if="getFilterData.jobCategoryLabelObjects.length > 0 || getFilterData.jobSpecialLabelObjects.length > 0 || getFilterData.sex != '-1' || (getFilterData.ageRangeStr && getFilterData.ageRangeStr != '16-60')" :scroll-x="true" :scroll-y="false" scroll-top="0" scroll-left="0" scroll-into-view scroll-with-animation="false" enable-flex enable-back-to-top="false">
|
|
|
|
|
|
<div class="g_flex_row_between flex_center flex_nw g_w_all">
|
|
|
|
|
|
<div class="g_flex_row_start flex_nw" style="line-height: 44px">
|
|
|
|
|
|
<div class="tc genderTag f14 por" style="min-width: 60px" v-if="getFilterData.ageRangeStr != '' && getFilterData.ageRangeStr != '16-60'">
|
|
|
|
|
|
<div class="por" @click.stop="deleteAge">
|
|
|
|
|
|
{{ getFilterData.ageRangeStr }}
|
|
|
|
|
|
<div class="clear_icon iconfont icon-dianji"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="tc genderTag f14 por" style="min-width: 60px" v-if="getFilterData.sex != '-1'">
|
|
|
|
|
|
<div class="por" @click.stop="deleteSex">
|
|
|
|
|
|
{{ getFilterData.sex == 1 ? "收男工" : getFilterData.sex == 2 ? "收女工" : getFilterData.sex == 3 ? "男女都收" : "" }}
|
|
|
|
|
|
<!-- {{getFilterData.jobCategoryLabelObjects.length > 0}} {{getFilterData.jobSpecialLabelObjects.length > 0}} -->
|
|
|
|
|
|
<div class="clear_icon iconfont icon-dianji"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="brandTag ml8" v-if="getFilterData.jobCategoryLabelObjects.length > 0">
|
|
|
|
|
|
<block v-for="(item, index) in getFilterData.jobCategoryLabelObjects" :key="index">
|
|
|
|
|
|
<div class="por" @click.stop="deleteJobCategoryLabel(item.id)">
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
<div class="clear_icon iconfont icon-dianji"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</block>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="specialTag ml8">
|
|
|
|
|
|
<block v-for="(item, index) in getFilterData.jobSpecialLabelObjects" :key="index">
|
|
|
|
|
|
<div class="por" @click.stop="deleteJobSpecialLabel(item.id)">
|
|
|
|
|
|
{{ item.name }}
|
|
|
|
|
|
<div class="clear_icon iconfont icon-dianji"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</block>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<!-- <div class="specialTag" wx:if="{{selectJobList.length > 0}}">
|
|
|
|
|
|
<block wx:for="{{selectJobList}}" wx:key="index">
|
|
|
|
|
|
<div class="por" catchtap="deleteMark" data-item="{{item}}">
|
|
|
|
|
|
{{item.name}}
|
|
|
|
|
|
<div class="clear_icon iconfont icon-qingchu"></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</block>
|
|
|
|
|
|
</div> -->
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="clear" @click.stop="clearFilter1" data-type="outerClear">
|
|
|
|
|
|
<span class="iconfont icon-shanchu f14"></span>
|
|
|
|
|
|
清除
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- 列表区 -->
|
|
|
|
|
|
<scroll-view class="m-list" id="listBox" refresher-default-style="none" refresher-background="#ededed" :refresher-enabled="true" :refresher-triggered="isTrigger" @refresherrefresh="refreshJobList" :scroll-top="resetScroll" :scroll-into-view="scrollTo" style="" :style="{ height: `calc(100vh - ${103}px)` }" :scroll-y="true" @scrolltolower="reachBottom" @scroll="() => (resetScroll != 0 ? (resetScroll = 0) : '')">
|
|
|
|
|
|
<!-- {{ platform }} -->
|
|
|
|
|
|
<view class="">
|
|
|
|
|
|
<!-- 金刚轮播区 -->
|
|
|
|
|
|
|
|
|
|
|
|
<view class="g_position_rela">
|
|
|
|
|
|
<!-- :isuse="tabInfo.active == 1 ? 'fujin' : 'rijie'" -->
|
|
|
|
|
|
<view class="g_h_8"> </view>
|
|
|
|
|
|
<g-yi-list-job :pt="tabInfo.active == 0 ? 0 : 120" from="home" class="g_h_all" :list="query.list" @clickCard="goDetail" @successLogin="successLogin" :loading="loading" :speed="speed" :reload="reload" :query="query" :isShowLoginBtn="isLogin ? false : true" :emptyText="isLogin ? '没有符合条件的职位' : '您还没有登录,请登录后查看所有职位'" />
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
import filter from "../../pages/home/child/filter.vue";
|
|
|
|
|
|
import gYiListJob from "@/components/list/job.vue";
|
|
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
|
components: {
|
|
|
|
|
|
filter,
|
|
|
|
|
|
"g-yi-list-job": gYiListJob,
|
|
|
|
|
|
},
|
|
|
|
|
|
onReady() {
|
|
|
|
|
|
this.G.setNavStyle("home");
|
|
|
|
|
|
},
|
|
|
|
|
|
onShareAppMessage() {
|
|
|
|
|
|
return this.G.shareFun();
|
|
|
|
|
|
},
|
|
|
|
|
|
onLoad(options) {
|
|
|
|
|
|
// console.log("options", options);
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
that.formpage = "";
|
|
|
|
|
|
that.navInfo = that.G.getNavInfo();
|
|
|
|
|
|
|
|
|
|
|
|
uni.setNavigationBarTitle({
|
|
|
|
|
|
title: that.globalData.title,
|
|
|
|
|
|
});
|
|
|
|
|
|
if (options.userId) {
|
|
|
|
|
|
this.userId = options.userId;
|
|
|
|
|
|
uni.setStorageSync("AGENCY_USER_ID", this.userId);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (options.scene) {
|
|
|
|
|
|
// console.log("XXXXXXXXXXXX");
|
|
|
|
|
|
//扫小程序码携带参数
|
|
|
|
|
|
var sceneStr = decodeURIComponent(options.scene);
|
|
|
|
|
|
var sceneJson = this.G.sceneToJson(sceneStr);
|
|
|
|
|
|
// console.log("sceneJson===", sceneJson);
|
|
|
|
|
|
this.userId = sceneJson.i.split("_")[0];
|
|
|
|
|
|
uni.setStorageSync("AGENCY_USER_ID", this.userId);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (options.active) {
|
|
|
|
|
|
this.tabInfo.active = options.active;
|
|
|
|
|
|
this.query.picked = this.tabInfo.list[options.active].picked;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (options.sortInd) {
|
|
|
|
|
|
this.sortList.active = options.sortInd;
|
|
|
|
|
|
this.query.sortTag = this.sortList.list[this.sortList.active].key;
|
|
|
|
|
|
}
|
|
|
|
|
|
that.query.page = 1;
|
|
|
|
|
|
this.isLogin = uni.getStorageSync("apply-userinfo") ? true : false;
|
|
|
|
|
|
this.query.size = this.isLogin ? 50 : 20;
|
|
|
|
|
|
this.istype = options.manage ? "manage" : "";
|
|
|
|
|
|
this.jobType = options.jobtype ? options.jobtype : "";
|
|
|
|
|
|
this.shareJobIds = options.shareJobIds ? options.shareJobIds : "";
|
|
|
|
|
|
this.sortTag = options.sortTag ? options.sortTag : "";
|
|
|
|
|
|
if (options.params) {
|
|
|
|
|
|
// console.log("options.params", options.params);
|
|
|
|
|
|
let params = JSON.parse(options.params);
|
|
|
|
|
|
if (params.keys != "附近热招") {
|
|
|
|
|
|
this.query = { ...this.query, ...params };
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 点击附近热招的逻辑
|
|
|
|
|
|
that.sortList.active = 2;
|
|
|
|
|
|
this.query.sortTag = 2;
|
|
|
|
|
|
this.getLocation("setCity").then(() => {
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
} else if (options.jobparams) {
|
|
|
|
|
|
// 从ai过来的职位不主动请求职位接口,等触发watch自动请求
|
|
|
|
|
|
that.formpage = "hotjob";
|
|
|
|
|
|
let params = JSON.parse(options.jobparams);
|
|
|
|
|
|
// console.log("获取推荐职位参数 修改前:", params);
|
|
|
|
|
|
this.query = { ...this.query, ...params };
|
|
|
|
|
|
that.getFilterData = { ...that.getFilterData, ...params };
|
|
|
|
|
|
that.selectedCity = params["cityName"];
|
|
|
|
|
|
// console.log("获取推荐职位参数 修改后:", this.query, " == ", that.getFilterData);
|
|
|
|
|
|
} else if (options.manage) {
|
|
|
|
|
|
this.istype = "manage";
|
|
|
|
|
|
// setTimeout(() => {S
|
|
|
|
|
|
if (options.manage && JSON.parse(options.manage)) {
|
|
|
|
|
|
let _data = JSON.parse(options.manage);
|
|
|
|
|
|
// console.log("_data", _data);
|
|
|
|
|
|
if (_data.city_id == "-1") {
|
|
|
|
|
|
// 附近
|
|
|
|
|
|
this.sortList.active = 2;
|
|
|
|
|
|
this.query.sortTag = 2;
|
|
|
|
|
|
this.jLabelIds = _data.keys_id;
|
|
|
|
|
|
this.getLocation("setCity").then(() => {
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 具体城市
|
|
|
|
|
|
that.selectedCity = _data.city_name;
|
|
|
|
|
|
this.jLabelIds = _data.keys_id;
|
|
|
|
|
|
that.getList();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
let jobFilter = this.$refs.filterChild.filterData.jobFilter;
|
|
|
|
|
|
// console.log("this.jLabelIds", this.jLabelIds);
|
|
|
|
|
|
// console.log("this.jLabelIds", JSON.parse(JSON.stringify(jobFilter)));
|
|
|
|
|
|
let getJobFilter = function () {
|
|
|
|
|
|
if (jobFilter["tagArray0"].length > 0) {
|
|
|
|
|
|
let middleList = [];
|
|
|
|
|
|
for (const k in jobFilter) {
|
|
|
|
|
|
jobFilter[k].forEach((item) => {
|
|
|
|
|
|
if (item.id == that.jLabelIds) {
|
|
|
|
|
|
item.active = that.jLabelIds;
|
|
|
|
|
|
middleList.push(item);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
that.getFilterData.jobSpecialLabelObjects = JSON.parse(JSON.stringify(middleList));
|
|
|
|
|
|
} else {
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
getJobFilter();
|
|
|
|
|
|
}, 100);
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
getJobFilter();
|
|
|
|
|
|
} else if (options.jobtype) {
|
|
|
|
|
|
that.jobType = 2;
|
|
|
|
|
|
that.getList();
|
|
|
|
|
|
} else if (options.shareJobIds) {
|
|
|
|
|
|
that.shareJobIds = options.shareJobIds;
|
|
|
|
|
|
that.getList();
|
|
|
|
|
|
} else if (options.sortTag || options.sortTag == 0) {
|
|
|
|
|
|
that.sortTag = options.sortTag;
|
|
|
|
|
|
that.sortList.list.forEach((item, index) => {
|
|
|
|
|
|
if (item.key == that.sortTag) {
|
|
|
|
|
|
that.sortList.active = index;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
if (options.sortTag == 1) {
|
|
|
|
|
|
that.sortList.active = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
// console.log("sortTagsortTagsortTagsortTag", options.sortTag, that.sortList.active);
|
|
|
|
|
|
that.getList();
|
|
|
|
|
|
} else if (options.istop == 1) {
|
|
|
|
|
|
that.topRecommend = 1;
|
|
|
|
|
|
that.sortList.active = 1;
|
|
|
|
|
|
that.getList();
|
|
|
|
|
|
} else {
|
|
|
|
|
|
that.getList();
|
|
|
|
|
|
}
|
|
|
|
|
|
that.getJobNum();
|
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
|
this.searchAnimate();
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
},
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
topRecommend: "",
|
|
|
|
|
|
sortTag: "",
|
|
|
|
|
|
shareJobIds: "",
|
|
|
|
|
|
jobType: "",
|
|
|
|
|
|
jLabelIds: "",
|
|
|
|
|
|
istype: "",
|
|
|
|
|
|
formpage: "",
|
|
|
|
|
|
globalData: getApp().globalData,
|
|
|
|
|
|
pageTitle: getApp().globalData.title,
|
|
|
|
|
|
platform: uni.getSystemInfoSync().platform,
|
|
|
|
|
|
userinfo: uni.getStorageSync("apply-userinfo"),
|
|
|
|
|
|
resetScroll: 0, // 回到顶部
|
|
|
|
|
|
isTrigger: false,
|
|
|
|
|
|
selectedCity: "全国",
|
|
|
|
|
|
envVersion: uni.getStorageSync("ENV_VERSION"), // 小程序环境判断
|
|
|
|
|
|
isMember: uni.getStorageSync("IS_MINIAPP_MEMBER"), // 登陆者是否当前小程序成员的判断
|
|
|
|
|
|
hasPermission: uni.getStorageSync("HAS_PERMISSION") == 1 ? true : false, // 登陆者是否有权限查看
|
|
|
|
|
|
getFilterData: {
|
|
|
|
|
|
sex: "-1",
|
|
|
|
|
|
ageRangeStr: "",
|
|
|
|
|
|
jobCategoryLabelIds: "",
|
|
|
|
|
|
jobRequestLabelIds: "",
|
|
|
|
|
|
jobSpecialLabelObjects: [],
|
|
|
|
|
|
jobCategoryLabelObjects: [],
|
|
|
|
|
|
},
|
|
|
|
|
|
scrollTo: "",
|
|
|
|
|
|
whichOneShow: "",
|
|
|
|
|
|
background: {
|
|
|
|
|
|
backgroundColor: "#3578f6",
|
|
|
|
|
|
},
|
|
|
|
|
|
isShowTab: false,
|
|
|
|
|
|
showPop: false, // 显示关注邀请弹窗显示
|
|
|
|
|
|
attentionList: [], // 关注列表
|
|
|
|
|
|
subAttentionList: [],
|
|
|
|
|
|
attentionConfig: {
|
|
|
|
|
|
num: 1,
|
|
|
|
|
|
size: 12,
|
|
|
|
|
|
},
|
|
|
|
|
|
checkAll: false, // 全选
|
|
|
|
|
|
upInfo: {
|
|
|
|
|
|
num: 0,
|
|
|
|
|
|
list: [],
|
|
|
|
|
|
},
|
|
|
|
|
|
computeCode: 1,
|
|
|
|
|
|
reload: 0, // 触发组件中数据的更新
|
|
|
|
|
|
isLogin: true,
|
|
|
|
|
|
navInfo: {},
|
|
|
|
|
|
cdnBaseImg: this.G.store().cdnBaseImg,
|
|
|
|
|
|
localBaseImg: this.G.store().localBaseImg,
|
|
|
|
|
|
loading: true,
|
|
|
|
|
|
speed: -1,
|
|
|
|
|
|
query: {
|
|
|
|
|
|
page: 1,
|
|
|
|
|
|
size: 50,
|
|
|
|
|
|
list: [],
|
|
|
|
|
|
keys: "",
|
|
|
|
|
|
isFinish: -1,
|
|
|
|
|
|
ucj: 0, // 0 全部 1收藏
|
|
|
|
|
|
sortTag: 2,
|
|
|
|
|
|
picked: "",
|
|
|
|
|
|
},
|
|
|
|
|
|
keyword: "",
|
|
|
|
|
|
tabInfo: {
|
|
|
|
|
|
list: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "全部",
|
|
|
|
|
|
key: "0",
|
|
|
|
|
|
picked: "",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
active: 0,
|
|
|
|
|
|
},
|
|
|
|
|
|
sortList: {
|
|
|
|
|
|
list: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "按工价",
|
|
|
|
|
|
key: 1,
|
|
|
|
|
|
showName: "按工价",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "按时间",
|
|
|
|
|
|
key: 0,
|
|
|
|
|
|
showName: "按时间",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "按距离",
|
|
|
|
|
|
key: 2,
|
|
|
|
|
|
showName: "按距离",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
active: 1,
|
|
|
|
|
|
},
|
|
|
|
|
|
// "在这里,使用世界前沿的人工智能技术,为用户甄选海量的高清美图,用更流畅,更快捷,更精准的搜索体验,带你去发现多彩的世界。"
|
|
|
|
|
|
userId: 0,
|
|
|
|
|
|
currentInfo: {},
|
|
|
|
|
|
appInfo: uni.getStorageSync("miniApp-info"),
|
|
|
|
|
|
jobNum: 0, // 48小时更新职位数
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
// console.log("mountedmountedmountedmountedmountedmounted");
|
|
|
|
|
|
const query = uni.createSelectorQuery().in(this);
|
|
|
|
|
|
// console.log("query", query);
|
|
|
|
|
|
// 选择指定的 DOM 元素
|
|
|
|
|
|
},
|
|
|
|
|
|
onShow() {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
// console.log("=========", that);
|
|
|
|
|
|
|
|
|
|
|
|
that.loadSelectedCityFromCache();
|
|
|
|
|
|
|
|
|
|
|
|
that.isShowTab = true;
|
|
|
|
|
|
that.reload++;
|
|
|
|
|
|
|
|
|
|
|
|
if (that.topRecommend == 1) {
|
|
|
|
|
|
that.tabInfo = {
|
|
|
|
|
|
list: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "主推",
|
|
|
|
|
|
key: "0",
|
|
|
|
|
|
picked: "",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
active: 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (that.globalData.appId == "wxb0c590fd696b79be") {
|
|
|
|
|
|
that.tabInfo = {
|
|
|
|
|
|
list: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "全部",
|
|
|
|
|
|
key: "0",
|
|
|
|
|
|
picked: "",
|
|
|
|
|
|
},
|
|
|
|
|
|
// {
|
|
|
|
|
|
// name: "甄选",
|
|
|
|
|
|
// key: "1",
|
|
|
|
|
|
// picked: "1",
|
|
|
|
|
|
// },
|
|
|
|
|
|
// {
|
|
|
|
|
|
// name: "三方",
|
|
|
|
|
|
// key: "2",
|
|
|
|
|
|
// picked: "0",
|
|
|
|
|
|
// },
|
|
|
|
|
|
],
|
|
|
|
|
|
active: 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
} else {
|
|
|
|
|
|
that.tabInfo = {
|
|
|
|
|
|
list: [
|
|
|
|
|
|
{
|
|
|
|
|
|
name: "全部",
|
|
|
|
|
|
key: "0",
|
|
|
|
|
|
picked: "",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
active: 0,
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
onReachBottom() {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
if ((!uni.getStorageSync("apply-token") && that.tabInfo.active == 1) || that.shareJobIds) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (that.query.isFinish == -1 || that.query.isFinish == that.query.size) {
|
|
|
|
|
|
that.query.page++;
|
|
|
|
|
|
that.getList("concat");
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
// 获取48小时内职位更新数
|
|
|
|
|
|
getJobNum() {
|
|
|
|
|
|
// let url = this.data.choiceCollect ==
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
that.G.Get(that.api.get_jobList_num, {}, (res) => {
|
|
|
|
|
|
// console.log("res", res);
|
|
|
|
|
|
that.jobNum = res;
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
loadSelectedCityFromCache() {
|
|
|
|
|
|
// 假设缓存中的键名为 'selectedCity'
|
|
|
|
|
|
const cachedCity = wx.getStorageSync("selectedCity");
|
|
|
|
|
|
if (cachedCity) {
|
|
|
|
|
|
if (this.selectedCity != cachedCity) {
|
|
|
|
|
|
this.selectedCity = cachedCity;
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
deleteSex() {
|
|
|
|
|
|
// console.log("deleteSex");
|
|
|
|
|
|
this.getFilterData.sex = -1;
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
},
|
|
|
|
|
|
deleteAge() {
|
|
|
|
|
|
// console.log("deleteAge");
|
|
|
|
|
|
this.getFilterData.ageRangeStr = "";
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
deleteJobCategoryLabel(id) {
|
|
|
|
|
|
// console.log(id);
|
|
|
|
|
|
this.getFilterData.jobCategoryLabelObjects = this.getFilterData.jobCategoryLabelObjects.filter((obj) => obj.id != id);
|
|
|
|
|
|
|
|
|
|
|
|
const idsArray = this.getFilterData.jobCategoryLabelObjects.map((obj) => obj.id);
|
|
|
|
|
|
// 将数组转换为字符串
|
|
|
|
|
|
this.getFilterData.jobCategoryLabelIds = idsArray.join(",");
|
|
|
|
|
|
// console.log("deleteJobCategoryLabel", this.getFilterData);
|
|
|
|
|
|
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
},
|
|
|
|
|
|
deleteJobSpecialLabel(id) {
|
|
|
|
|
|
this.query.page = 1;
|
|
|
|
|
|
this.getFilterData.jobSpecialLabelObjects = JSON.parse(JSON.stringify(this.getFilterData.jobSpecialLabelObjects.filter((obj) => obj.id != id)));
|
|
|
|
|
|
const idsArray = this.getFilterData.jobSpecialLabelObjects.map((obj) => obj.id);
|
|
|
|
|
|
// 将数组转换为字符串
|
|
|
|
|
|
this.getFilterData.jobRequestLabelIds = idsArray.join(",");
|
|
|
|
|
|
this.jLabelIds = id;
|
|
|
|
|
|
// console.log("deleteJobSpecialLabel", this.getFilterData);
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
},
|
|
|
|
|
|
clearFilter1() {
|
|
|
|
|
|
var that = this;
|
|
|
|
|
|
this.query.page = 1;
|
|
|
|
|
|
this.getFilterData.jobCategoryLabelIds = "";
|
|
|
|
|
|
this.getFilterData.jobRequestLabelIds = "";
|
|
|
|
|
|
that.jLabelIds = "";
|
|
|
|
|
|
this.getFilterData.jobCategoryLabelObjects = [];
|
|
|
|
|
|
this.getFilterData.jobSpecialLabelObjects = [];
|
|
|
|
|
|
this.scrollTo = "";
|
|
|
|
|
|
this.getFilterData.sex = -1;
|
|
|
|
|
|
this.getFilterData.ageRangeStr = "";
|
|
|
|
|
|
// console.log("this.getFilterData", this.getFilterData);
|
|
|
|
|
|
this.$refs.filterChild.clearFilter();
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
that.scrollTo = "listBox";
|
|
|
|
|
|
// console.log("aaaaaaaaa");
|
|
|
|
|
|
}, 1);
|
|
|
|
|
|
},
|
|
|
|
|
|
receiveFromChild(data) {
|
|
|
|
|
|
// console.log(data);
|
|
|
|
|
|
this.whichOneShow = "";
|
|
|
|
|
|
this.getFilterData = JSON.parse(JSON.stringify(data));
|
|
|
|
|
|
// console.log("getFilterData in receiveFromChild", this.getFilterData);
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
// this.messageFromChild = data.message;
|
|
|
|
|
|
},
|
|
|
|
|
|
chooseNl(type) {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
that.scrollTo = "";
|
|
|
|
|
|
that.whichOneShow = that.whichOneShow == type ? "" : type;
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
that.scrollTo = "tttop";
|
|
|
|
|
|
}, 1);
|
|
|
|
|
|
},
|
|
|
|
|
|
handleOpenCamera() {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
that.G.handleScanCode();
|
|
|
|
|
|
},
|
|
|
|
|
|
goPage($path) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: $path,
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
reachBottom() {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
// console.log('that.speed ',that.speed );
|
|
|
|
|
|
// console.log('that.query.list.length ',that.query.list.length );
|
|
|
|
|
|
if ((!uni.getStorageSync("apply-token") && that.tabInfo.active == 1) || !this.isLogin || that.speed <= that.query.list.length) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
that.query.page++;
|
|
|
|
|
|
that.getList("concat");
|
|
|
|
|
|
},
|
|
|
|
|
|
searchJob() {
|
|
|
|
|
|
this.query.list = [];
|
|
|
|
|
|
this.query.page = 1;
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
},
|
|
|
|
|
|
refreshJobList() {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
this.query.page = 1;
|
|
|
|
|
|
this.isTrigger = true;
|
|
|
|
|
|
this.getList().then(() => {
|
|
|
|
|
|
// console.log("that.isTrigger", that.isTrigger);
|
|
|
|
|
|
that.isTrigger = false;
|
|
|
|
|
|
that.getJobNum();
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
getList($type = "init") {
|
|
|
|
|
|
let that = this,
|
|
|
|
|
|
params = {};
|
|
|
|
|
|
// uni.showLoading({
|
|
|
|
|
|
// title: "加载中...",
|
|
|
|
|
|
// });
|
|
|
|
|
|
if ($type != "concat") {
|
|
|
|
|
|
that.speed = -1;
|
|
|
|
|
|
}
|
|
|
|
|
|
params = {
|
|
|
|
|
|
...that.getFilterData,
|
|
|
|
|
|
pageNum: that.query.page,
|
|
|
|
|
|
pageSize: that.query.size,
|
|
|
|
|
|
keys: that.query.keys,
|
|
|
|
|
|
sortTag: that.query.sortTag,
|
|
|
|
|
|
picked: that.query.picked,
|
|
|
|
|
|
recruitment: 1,
|
|
|
|
|
|
classify: 1,
|
|
|
|
|
|
workTypeStr: "",
|
|
|
|
|
|
jobClassify: "",
|
|
|
|
|
|
cityName: that.selectedCity == "全国" ? "" : that.selectedCity,
|
|
|
|
|
|
brandIds: "",
|
|
|
|
|
|
};
|
|
|
|
|
|
// console.log("查看更多筛选that.istype:", that.istype, " jLabelIds:", that.jLabelIds, " params", params);
|
|
|
|
|
|
if (that.istype == "manage") {
|
|
|
|
|
|
params.jobRequestLabelIds = that.jLabelIds;
|
|
|
|
|
|
that.istype = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!params.jobRequestLabelIds) {
|
|
|
|
|
|
params.jobRequestLabelIds = that.jLabelIds;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (that.query.sortTag !== 2) {
|
|
|
|
|
|
params.lat = "";
|
|
|
|
|
|
params.lng = "";
|
|
|
|
|
|
} else {
|
|
|
|
|
|
params.lat = that.currentInfo.latitude ? that.currentInfo.latitude : "";
|
|
|
|
|
|
params.lng = that.currentInfo.longitude ? that.currentInfo.longitude : "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// if (that.jobType == 2) {
|
|
|
|
|
|
// params.jobType = 2;
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
if (that.shareJobIds) {
|
|
|
|
|
|
params.shareJobIds = that.shareJobIds;
|
|
|
|
|
|
// that.shareJobIds = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (that.sortTag) {
|
|
|
|
|
|
params.sortTag = that.sortTag;
|
|
|
|
|
|
// that.sortTag = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (that.sortTag == -1) {
|
|
|
|
|
|
params.sortTag = -1;
|
|
|
|
|
|
params.topRecommend = -1;
|
|
|
|
|
|
// that.sortTag = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (that.topRecommend == 1) {
|
|
|
|
|
|
params.topRecommend = 1;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
|
let _url = that.api.yi_job_list;
|
|
|
|
|
|
|
|
|
|
|
|
if (that.jobType == 2) {
|
|
|
|
|
|
_url = that.api.job_share;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
_url = that.api.yi_job_list;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// console.log("_url", _url);
|
|
|
|
|
|
that.G.Post(_url, params, (res) => {
|
|
|
|
|
|
// console.log("一才职位列表:", res);
|
|
|
|
|
|
that.computeCode = 1;
|
|
|
|
|
|
let resData = {};
|
|
|
|
|
|
resData = res.pageBean;
|
|
|
|
|
|
// uni.hideLoading();
|
|
|
|
|
|
if (resData.recordCount == 0) {
|
|
|
|
|
|
that.loading = false;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
that.loading = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
that.speed = resData.recordCount;
|
|
|
|
|
|
that.query.isFinish = resData.recordList.length;
|
|
|
|
|
|
new Promise((reso) => {
|
|
|
|
|
|
// console.log("resData.recordList123123", resData.recordList);
|
|
|
|
|
|
try {
|
|
|
|
|
|
// console.log("resData.recordList", resData.recordList);
|
|
|
|
|
|
if (resData.recordList && resData.recordList.length > 0) {
|
|
|
|
|
|
// console.log("resData.recordList7786787", resData.recordList);
|
|
|
|
|
|
if (that.tabInfo.active == 1) {
|
|
|
|
|
|
// 根据 distance 进行从小到大排序
|
|
|
|
|
|
resData.recordList.sort((a, b) => a.distance - b.distance);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resData.recordList = that.G.toGetAddressv3(resData.recordList);
|
|
|
|
|
|
resData.recordList = that.G.toGetAge(resData.recordList);
|
|
|
|
|
|
that.G.Post("/yishoudan/labels/type/app/80", {}, (res) => {
|
|
|
|
|
|
// console.log("els/type/app/80", res);
|
|
|
|
|
|
uni.setStorageSync("JOB_REQUIRE_LIST", { data: res.labels, time: Date.now() });
|
|
|
|
|
|
resData.recordList = that.G.yijobCopy(resData.recordList);
|
|
|
|
|
|
reso();
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// console.log("resData.recordList123090890123", resData.recordList);
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
// console.log("error", error);
|
|
|
|
|
|
}
|
|
|
|
|
|
}).then((res) => {
|
|
|
|
|
|
// console.log("res123123", res);
|
|
|
|
|
|
if ($type == "init") {
|
|
|
|
|
|
that.query.list = [];
|
|
|
|
|
|
uni.setStorageSync("lin-liu", 0);
|
|
|
|
|
|
uni.setStorageSync("lin-bao", 0);
|
|
|
|
|
|
that.query.list = resData.recordList.map((item, index) => {
|
|
|
|
|
|
item.liuNum = uni.getStorageSync("lin-liu") ? uni.getStorageSync("lin-liu") : Math.floor(Math.random() * 1000);
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
...item,
|
|
|
|
|
|
liuNum: item.liuNum,
|
|
|
|
|
|
baoNum: uni.getStorageSync("lin-bao") ? uni.getStorageSync("lin-bao") / 10 : Math.ceil(item.liuNum / 10),
|
|
|
|
|
|
collected: item.collected ? true : false,
|
|
|
|
|
|
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
|
|
|
|
|
|
gender: that.G.getGenderByMinAge(item),
|
|
|
|
|
|
fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
|
|
|
|
|
|
};
|
|
|
|
|
|
});
|
|
|
|
|
|
// console.log("that.query.list", that.query.list);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
that.query.list = that.query.list.concat(
|
|
|
|
|
|
resData.recordList.map((item, index) => {
|
|
|
|
|
|
return {
|
|
|
|
|
|
...item,
|
|
|
|
|
|
liuNum: item.liuNum,
|
|
|
|
|
|
baoNum: uni.getStorageSync("lin-bao") ? uni.getStorageSync("lin-bao") / 10 : Math.ceil(item.liuNum / 10),
|
|
|
|
|
|
collected: item.collected ? true : false,
|
|
|
|
|
|
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
|
|
|
|
|
|
gender: that.G.getGenderByMinAge(item),
|
|
|
|
|
|
fuWuFei: that.G.setReturnFee(item.returnFee, item.returnFeeType),
|
|
|
|
|
|
};
|
|
|
|
|
|
})
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
// console.log("that.query.list", that.query.list);
|
|
|
|
|
|
resolve();
|
|
|
|
|
|
});
|
|
|
|
|
|
// console.log("resData.recordList1111111", resData.recordList);
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
goDetail($item) {
|
|
|
|
|
|
// console.log("前往详情页", $item);
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/root/detail/job?id=" + $item.id,
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 搜索框的滚动监听变化
|
|
|
|
|
|
*/
|
|
|
|
|
|
searchAnimate() {
|
|
|
|
|
|
return;
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
uni
|
|
|
|
|
|
.createSelectorQuery()
|
|
|
|
|
|
.select("#listBox")
|
|
|
|
|
|
.fields(
|
|
|
|
|
|
{
|
|
|
|
|
|
scrollOffset: true,
|
|
|
|
|
|
size: true,
|
|
|
|
|
|
},
|
|
|
|
|
|
(res) => {
|
|
|
|
|
|
that.$mp.page.animate(
|
|
|
|
|
|
"#searchInputBox",
|
|
|
|
|
|
[
|
|
|
|
|
|
{
|
|
|
|
|
|
top: "10px",
|
|
|
|
|
|
width: "100%",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
top: "-48px",
|
|
|
|
|
|
width: "70%",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
800,
|
|
|
|
|
|
{
|
|
|
|
|
|
scrollSource: "#listBox",
|
|
|
|
|
|
timeRange: 1000,
|
|
|
|
|
|
startScrollOffset: 0,
|
|
|
|
|
|
endScrollOffset: 60,
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
that.$mp.page.animate(
|
|
|
|
|
|
".the_city",
|
|
|
|
|
|
[
|
|
|
|
|
|
{
|
|
|
|
|
|
color: "#333",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
color: "#fff",
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
500,
|
|
|
|
|
|
{
|
|
|
|
|
|
scrollSource: "#listBox",
|
|
|
|
|
|
timeRange: 1000,
|
|
|
|
|
|
startScrollOffset: 0,
|
|
|
|
|
|
endScrollOffset: 90,
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
)
|
|
|
|
|
|
.exec();
|
|
|
|
|
|
},
|
|
|
|
|
|
shareJob(e) {
|
|
|
|
|
|
// console.log(e);
|
|
|
|
|
|
this.currentJob = e;
|
|
|
|
|
|
},
|
|
|
|
|
|
goSearch() {
|
|
|
|
|
|
// this.G.isLogin();
|
|
|
|
|
|
// if (this.G.isLogin()) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/root/other/search?from=home",
|
|
|
|
|
|
});
|
|
|
|
|
|
// }
|
|
|
|
|
|
},
|
|
|
|
|
|
goCity() {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/root/other/city",
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
getLocation(type) {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
|
uni.authorize({
|
|
|
|
|
|
// 检测是否授权位置信息
|
|
|
|
|
|
scope: "scope.userLocation",
|
|
|
|
|
|
success() {
|
|
|
|
|
|
// console.log("用户成功授权位置信息");
|
|
|
|
|
|
uni.getLocation({
|
|
|
|
|
|
type: "wgs84",
|
|
|
|
|
|
success(res) {
|
|
|
|
|
|
that.currentInfo = {
|
|
|
|
|
|
latitude: res.latitude,
|
|
|
|
|
|
longitude: res.longitude,
|
|
|
|
|
|
};
|
|
|
|
|
|
// console.log("type", type);
|
|
|
|
|
|
if (type == "setCity") {
|
|
|
|
|
|
that.getCity().then((res) => {
|
|
|
|
|
|
// console.log("res", res);
|
|
|
|
|
|
resolve();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail(err) {
|
|
|
|
|
|
// console.log(err);
|
|
|
|
|
|
},
|
|
|
|
|
|
complete() {
|
|
|
|
|
|
resolve();
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
fail(err) {
|
|
|
|
|
|
// console.log(err);
|
|
|
|
|
|
// console.log("用户拒绝授权位置信息,再次提示用户授权");
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: "请在右上角设置中开启定位权限以显示距职位距离",
|
|
|
|
|
|
icon: "none",
|
|
|
|
|
|
});
|
|
|
|
|
|
resolve();
|
|
|
|
|
|
// that.showRefuseLocationPermission();
|
|
|
|
|
|
},
|
|
|
|
|
|
complete() {
|
|
|
|
|
|
// console.log();
|
|
|
|
|
|
// resolve();
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
getCity() {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
return new Promise((reso) => {
|
|
|
|
|
|
this.G.Get(this.api.getCityNameByLatLng, { lng: this.currentInfo.longitude, lat: this.currentInfo.latitude }, (res) => {
|
|
|
|
|
|
if (res) {
|
|
|
|
|
|
that.selectedCity = res.replace("市", "");
|
|
|
|
|
|
reso();
|
|
|
|
|
|
}
|
|
|
|
|
|
// console.log("res");
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
handleUpdateTab(e) {
|
|
|
|
|
|
// console.log("获取tab数据:", e);
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
that.loading = true;
|
|
|
|
|
|
that.speed = -1;
|
|
|
|
|
|
that.tabInfo.active = e;
|
|
|
|
|
|
switch (that.tabInfo.active) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
that.query.picked = "";
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
that.query.picked = 1;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
that.query.picked = 0;
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.resetScroll = 1;
|
|
|
|
|
|
this.query.page = 1;
|
|
|
|
|
|
that.getList();
|
|
|
|
|
|
/* 如需登录:
|
|
|
|
|
|
this.tabInfo.active = e;
|
|
|
|
|
|
this.query.ucj = e;
|
|
|
|
|
|
this.speed = 0;
|
|
|
|
|
|
this.query.page = 1;
|
|
|
|
|
|
this.query.isFinish = 0;
|
|
|
|
|
|
this.loading = false;
|
|
|
|
|
|
this.query.list = [];
|
|
|
|
|
|
*/
|
|
|
|
|
|
},
|
|
|
|
|
|
// 打开弹窗
|
|
|
|
|
|
openPop() {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/root/detail/select",
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 批量分享
|
|
|
|
|
|
goShare() {
|
|
|
|
|
|
if (this.isLogin) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/root/detail/shareJob",
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.showModal({
|
|
|
|
|
|
title: "登录提示",
|
|
|
|
|
|
content: "该页面需要登录才能查看,是否登录",
|
|
|
|
|
|
success(res) {
|
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/login/index",
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
successLogin() {
|
|
|
|
|
|
uni.reLaunch({
|
|
|
|
|
|
url: "/pages/home/index",
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
sortJob(ind) {
|
|
|
|
|
|
let that = this;
|
|
|
|
|
|
this.sortList.active = ind;
|
|
|
|
|
|
this.query.sortTag = this.sortList.list[ind].key;
|
|
|
|
|
|
this.whichOneShow = "";
|
|
|
|
|
|
if (this.query.sortTag === 2) {
|
|
|
|
|
|
// 60 * 60 * 24
|
|
|
|
|
|
if (that.currentInfo.latitude && new Date().getTime() - that.currentInfo.timestamp < 1000 * 10) {
|
|
|
|
|
|
// console.log("inTime");
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// console.log("outTime");
|
|
|
|
|
|
this.getLocation().then(() => {
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
};
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
|
.ml8 {
|
|
|
|
|
|
margin-left: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.por {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.csbf {
|
|
|
|
|
|
padding: 0px 8px;
|
|
|
|
|
|
height: 28px;
|
|
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
|
|
border-radius: 16px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
|
color: #333333;
|
|
|
|
|
|
line-height: 28px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
// margin-top: 6px;
|
|
|
|
|
|
margin-right: 12px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.p-home-inedx {
|
|
|
|
|
|
min-height: 100%;
|
|
|
|
|
|
|
|
|
|
|
|
.m-more {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
left: 12rpx;
|
|
|
|
|
|
bottom: -44rpx;
|
|
|
|
|
|
width: 154px;
|
|
|
|
|
|
background-color: #696969;
|
|
|
|
|
|
box-shadow: 0px 2px 19px 0px rgba(179, 179, 179, 0.5);
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.suffix {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 20rpx;
|
|
|
|
|
|
top: 10px;
|
|
|
|
|
|
z-index: 1;
|
|
|
|
|
|
border-top-right-radius: 110rpx;
|
|
|
|
|
|
border-bottom-right-radius: 110rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.u-border {
|
|
|
|
|
|
border-color: #fff !important;
|
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.navigatorBar .tabs {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
left: 50%;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.sticky {
|
|
|
|
|
|
position: sticky;
|
|
|
|
|
|
top: 0px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
z-index: 100;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#searchInputBox {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
padding: 0 10px;
|
|
|
|
|
|
top: 10px;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
z-index: 9999;
|
|
|
|
|
|
width: 100vw;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.specialnum {
|
|
|
|
|
|
height: 16px;
|
|
|
|
|
|
min-width: 16px !important;
|
|
|
|
|
|
line-height: 16px;
|
|
|
|
|
|
padding: 0px;
|
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
border-radius: 999px;
|
|
|
|
|
|
background-color: #3578f6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.quickapply {
|
|
|
|
|
|
/* position: relative; */
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
height: 80px;
|
|
|
|
|
|
margin: 0 10px 0;
|
|
|
|
|
|
padding-top: 10px;
|
|
|
|
|
|
margin-bottom: 0;
|
|
|
|
|
|
/* background-color: #fff; */
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.quickapply button {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
margin: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.sticky {
|
|
|
|
|
|
position: sticky;
|
|
|
|
|
|
top: 0px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
z-index: 999;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.quickapply button > view {
|
|
|
|
|
|
position: relative;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
width: 50%;
|
|
|
|
|
|
padding: 20px 24px;
|
|
|
|
|
|
border-radius: 8px;
|
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.quickapply button > view:last-child {
|
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.display-flex {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* .quickapply button > view:first-child::after {
|
|
|
|
|
|
content: "";
|
|
|
|
|
|
width: 1px;
|
|
|
|
|
|
height: 20px;
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
right: 0;
|
|
|
|
|
|
top: 50%;
|
|
|
|
|
|
transform: translateY(-50%);
|
|
|
|
|
|
background-color: #eee;
|
|
|
|
|
|
} */
|
|
|
|
|
|
.quickapply button > view .t-icon {
|
|
|
|
|
|
width: 38px;
|
|
|
|
|
|
height: 38px;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.quickapply button > view .info > view {
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
line-height: 1.6;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.clear {
|
|
|
|
|
|
position: sticky;
|
|
|
|
|
|
right: 0px;
|
|
|
|
|
|
top: 0px;
|
|
|
|
|
|
height: 44px;
|
|
|
|
|
|
min-width: 60px;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
line-height: 44px;
|
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
|
background: linear-gradient(180deg, #f5f5f5, #ffffff 23%, #ffffff 79%, #f5f5f5);
|
|
|
|
|
|
box-shadow: -12px 0px 8px -4px rgba(206, 206, 206, 0.6);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.clear_icon {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
width: 12px;
|
|
|
|
|
|
height: 12px;
|
|
|
|
|
|
line-height: 10px;
|
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
|
right: -2px;
|
|
|
|
|
|
top: -2px;
|
|
|
|
|
|
color: #aaa;
|
|
|
|
|
|
/* font-size: 12px; */
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.u-notice-box {
|
|
|
|
|
|
margin-left: 0 !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
.sortMask {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 43px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 100vw;
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
z-index: 999999;
|
|
|
|
|
|
background-color: rgba(0, 0, 0, 0.8);
|
|
|
|
|
|
}
|
|
|
|
|
|
.sortContainer {
|
|
|
|
|
|
padding: 0 24px;
|
|
|
|
|
|
animation: filterBox 0.35s;
|
|
|
|
|
|
animation-fill-mode: forwards;
|
|
|
|
|
|
animation-timing-function: ease-in;
|
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
background-color: #f5f5f5;
|
|
|
|
|
|
padding-bottom: 4px;
|
|
|
|
|
|
border-radius: 0 0 8px 8px;
|
|
|
|
|
|
height: 40% !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
@keyframes filterBox {
|
|
|
|
|
|
0% {
|
|
|
|
|
|
height: 0;
|
|
|
|
|
|
/* opacity: 0; */
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
.gjFixed {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 43px;
|
|
|
|
|
|
// top: 0px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 100vw;
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
/* right:0;
|
|
|
|
|
|
bottom:0; */
|
|
|
|
|
|
z-index: 99999999;
|
|
|
|
|
|
background-color: rgba(0, 0, 0, 0.8);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.sortMask {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: 103px;
|
|
|
|
|
|
left: 0;
|
|
|
|
|
|
width: 100vw;
|
|
|
|
|
|
height: 100vh;
|
|
|
|
|
|
z-index: 999999;
|
|
|
|
|
|
background-color: rgba(0, 0, 0, 0.8);
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|