You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

507 lines
25 KiB
Vue

<template>
<view>
<view style class="container" @touchstart="touchStart">
<view class="tc bgf" style="height: 100vh" v-if="recordList.length == 0">
<view class="t-icon t-icon-zanwu" style="width: 80px; height: 80px; margin: 80px auto 20px"></view>
<view class="tc f14 c045">暂无记录</view>
</view>
<!-- bindrefresherrefresh="onScrollRefresh" refresher-triggered="{{isTrigger}}" refresher-enabled="{{true}}" -->
<scroll-view
id="listBox"
@scrolltolower="onScrollToLower"
:scroll-top="topNum"
enhanced
@dragstart="listTouchStart"
@scroll="listTouchMove"
style="height: calc(100vh)"
enable-passive
:scroll-x="false"
:scroll-y="true"
:scroll-into-view="scrollTo"
:scroll-with-animation="false"
:enable-back-to-top="true"
>
<view class hover-class="none" :hover-stop-propagation="false">
<!-- 标准列表 -->
<view>
<view
class="standardList"
:style="
'padding-top: 0px;min-height: calc(100vh - ' +
(selectBrandList.length > 0 || selectJobList.length > 0 || activez != 'zuigao' || sexid != '-1' ? '170px' : '214px') +
')'
"
>
<view>
<view :x:if="recordList != null && recordList.length > 0" style="padding-top: 0; overflow-x: hidden">
<view class="jcenter bgf br8">
<view class="listcontainer" style="border-top: 1px solid #f3f3f3">
<view
class="jobOne"
hover-start-time="50"
hover-stay-time="0"
:data-id="item.id"
@tap="goDetail"
:hover-class="item.recruitment == '1' ? 'ahover' : ''"
:style="
'background-color:' +
(item.recruitment == '1' ? '#fff' : '#f5f5f5') +
';border-bottom: ' +
(item.recruitment == '1' ? '' : '1px solid #ddd') +
';'
"
v-for="(item, index) in recordList"
:key="index"
>
<view class="p1020 jobIn" hover-class="none">
<image
style="width: 80px; height: 80px; position: absolute; right: 100px; z-index: 99"
src="http://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/tingzhao.svg"
v-if="item.status == 1 && item.recruitment == 2"
></image>
<image
style="width: 72px; height: 72px; position: absolute; right: 100px"
src="http://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/weishangxian.svg"
v-if="item.status == 0"
></image>
<view class="display-flex">
<view class="prImg">
<view class="por" hover-class="none" :hover-stop-propagation="false">
<image
:src="item.logo || 'https://matripe.oss-cn-beijing.aliyuncs.com/default.png'"
mode="aspectFit"
class="logoClass"
alt
></image>
<image
class="pendant"
v-if="item.hotJob == 1"
src="https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/hot.png"
mode="aspectFit|aspectFill|widthFix"
></image>
</view>
<button
:class="'collect biggerSize v-center ' + (item.collected - 1 == 0 ? 'collectred' : '')"
@click.stop="collectPaste"
style="width: 52px"
:data-collected="item.collected"
:data-jobid="item.id"
hover-stop-propagation
>
<i class="iconfont icon-shoucang lh12" style="color: #888" v-if="item.collected - 2 == 0"></i>
<i class="iconfont icon-yishoucang lh12 color-f40" style v-else></i>
<text :class="'f10 ' + (item.collected - 1 == 0 ? 'color-f40' : 'c8')" style="line-height: 12px; margin-left: 2px">
{{ item.collected - 2 == 0 ? '收藏' : '已收藏' }}
</text>
</button>
</view>
<view class="flex-1 vsb">
<view class="display-flex">
<view class="storeName">{{ item.jobName || item.aliasName }}</view>
<view class="hourPay">{{ item.salaryClassifyValue }}</view>
</view>
<view class="v-center mt12 mb12">
<view class="f14s c045 flex-1 display-flex">
<view class="overflowOmit" hover-class="none" :hover-stop-propagation="false" style="max-width: 220px">
{{ item.district == '' ? '' : item.district + ' | ' }}
<block v-if="item.distance != null && item.distance != '' && storeJobListSearchForm.sortTag == 2">
{{ item.distanceKm }}
</block>
<block v-else>{{ item.age }}</block>
</view>
<!-- <view class="fr f14s fw400" style="color: var(--color-f40);">{{item.monthlyPay}}</view> -->
</view>
</view>
<view class="display-flex">
<scroll-view
:scroll-x="true"
@scroll.stop.prevent="scroll"
@tap="stoptap"
:class="'tttg ' + (item.isTagShow == true ? 'isTagShow' : '')"
>
<!-- <view class="t-icon t-icon-ziying1 " wx:if="{{item.signType == 1}}" style="background-repeat:no-repeat"></view> -->
<view class="tagsLi" v-for="(item1, index1) in item.jobSpecialLabelNameArray" :key="index1">{{ item1 }}</view>
<view class="tagsLi" v-if="item.jobSpecialLabelNameArray.length <= 0">暂无特色</view>
</scroll-view>
<block v-if="item.status == 1 && item.recruitment == 2">
<view class="miniBtn disabled" :hover-stop-propagation="false">立即报名</view>
</block>
<block v-else>
<view
class="miniBtn"
@click.stop="recordBill"
:data-job="item"
hover-class="thover"
:hover-stop-propagation="false"
>
立即报名
</view>
</block>
<!-- <view class="miniBtn" bindtap="recordBill" data-job="{{item}}" hover-class="thover" hover-stop-propagation="false">报名</view> -->
<!-- <view class="fsa bz f12 fee" wx:if="{{agencyStatus == 1 || corpUserFlag == true}}">
<view class="inner" hover-class="none" hover-stop-propagation="false">费</view>{{item.fuWuFei ? item.fuWuFei : '-' }}
</view>-->
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<block v-if="(recordList == null || recordList.length == 0) && storeJobListSearchForm.keys != null && storeJobListSearchForm.keys != ''">
<view class="tc p20 f12 c045">没有符合条件的职位</view>
</block>
<block v-else>
<view class="tc p20 f12 c045" v-if="!hasMoreData && recordList.length != 0">已经到底啦~</view>
<view class="tc p20 f12 c045" v-if="hasMoreData">上滑加载更多</view>
</block>
</view>
<view v-if="(recordList == null || recordList.length == 0) && pageShow" class="tc">
<view class="t-icon t-icon-zanwu" style="width: 80px; height: 80px; margin: 80px auto 20px"></view>
<view class="tc f14 c045"></view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
<bottom-drawer
:show="recordShow"
:info="currentInfo"
drawerType="recordShow"
:cancerShow="false"
:touchClose="true"
@hidedrawer="hidedrawershow"
class="bottomDrawer"
height="494px"
></bottom-drawer>
</view>
</template>
<script>
import bottomDrawer from '../../components/bottom-drawer/index';
const app = getApp();
const commonUtil = require('../../utils/commonUtil.js');
export default {
components: {
bottomDrawer
},
data() {
return {
recordShow: false,
toped: '1',
recordList: [],
storeJobListSearchForm: {
pageNum: 1,
pageSize: 20,
classify: 1,
sex: -1,
workTypeStr: '',
lat: '',
lng: '',
jobClassify: '',
sortTag: 0,
jobSpecialLabelIds: '',
cityName: '',
brandIds: '',
jobCategoryLabelIds: '',
ujc: 1,
keys: ''
},
loading: true,
hasMoreData: false,
//下拉是否还有更多数据
inputShowed: false,
inputVal: '搜索工作',
wxCode: '',
isCollect: false,
collectTxt: '收藏',
searchCityParamStorage: {
name: '',
shortName: ''
},
pageShow: false,
whichOneShow: '',
totalPage: '',
currPage: '',
triggered: false,
isTrigger: false,
currentJobDrawer: '',
currentInfo: '',
topNum: 0,
scrollTo: '',
selectBrandList: [],
selectJobList: [],
activez: '',
sexid: ''
};
},
onShow() {
var that = this;
that.setData({
recordList: []
});
that.getJobList();
},
methods: {
goBack() {
uni.navigateBack({
delta: -1
});
},
goDetail(e) {
console.log(e);
var that = this;
uni.navigateTo({
url: '../detail/index?storeJobId=' + e.currentTarget.dataset.id + '&wxCode=' + that.wxCode
});
},
getJobList() {
var that = this;
// debugger
that.setData({
pageShow: false
});
return new Promise(function (resolve, reject) {
uni.showLoading({
title: '加载中...'
});
console.log(that.storeJobListSearchForm);
uni.request({
url: app.globalData.ip + '/yishoudan/custom/job/listApp',
method: 'POST',
header: app.globalData.headers,
data: that.storeJobListSearchForm,
success: function (res) {
console.log('职位列表↓↓↓↓');
console.log(res);
that.setData({
totalPage: res.data.data.pageBean.pageCount,
currPage: res.data.data.pageBean.currentPage
});
setTimeout(function () {
that.setData({
triggered: false
});
}, 1000);
if (
res.data.data.pageBean.recordList == null ||
res.data.data.pageBean.recordList.length == 0 ||
res.data.data.pageBean.recordList.length < that.storeJobListSearchForm.pageSize
) {
var jobListTemp = commonUtil.disposeJobListData(res.data.data.pageBean.recordList);
that.recordList = that.recordList.concat(jobListTemp);
that.setData({
recordList: that.recordList,
hasMoreData: false,
isTrigger: false
});
} else {
var jobListTemp = commonUtil.disposeJobListData(res.data.data.pageBean.recordList);
that.recordList = that.recordList.concat(jobListTemp);
that.setData({
recordList: that.recordList,
hasMoreData: true,
isTrigger: false
});
}
uni.hideLoading({
success: (res) => {}
});
that.setData({
loading: false,
pageShow: true,
storeJobListSearchForm: that.storeJobListSearchForm
});
resolve();
// that.getTag();
that.recordList.forEach((item, index) => {
console.log(item.storeDistrict);
item['citys'] = commonUtil.setJobInfoPosition(item.storeDistrict);
// console.log(item);
if (app.globalData.isNotEmptyCheck(item.returnFeeType) || item.returnFeeType == '0' || item.returnFee == '0') {
item['fuWuFei'] = commonUtil.getReturnFeeTypeName1ById(item.returnFeeType, item.returnFee);
} else {
item['fuWuFei'] = '';
}
});
that.setData({
recordList: that.recordList,
currentJobDrawer: that.currentJobDrawer
});
console.log(that.recordList);
// if (that.data.recordList.length < res.data.data.pageBean.recordCount) {
// that.setData({
// hasMoreData: true,
// });
// } else {
// that.setData({
// hasMoreData: false,
// });
// }
}
});
});
},
collectPaste(e) {
var txt;
var that = this;
var collected = e.currentTarget.dataset.collected;
var storeJobId = e.currentTarget.dataset.jobid;
that.doCollected(collected, storeJobId);
},
doCollected(collected, storeJobId) {
var that = this;
var url = '/yishoudan/custom/job/collect/' + storeJobId;
console.log(app.globalData.headers);
//发起网络请求
uni.request({
url: app.globalData.ip + url,
data: {
storeJobId: storeJobId
},
header: app.globalData.headers,
method: 'GET',
success: function (res) {
var txt;
if (collected - 1 == 0) {
//取消收藏
for (var i = 0; i != that.recordList.length; ++i) {
if (that.recordList[i].id - storeJobId == 0) {
that.recordList[i].collected = 2;
break;
}
}
txt = '取消收藏';
if (that.choiceCollect == 1) {
that.storeJobListSearchForm.pageNum = 1;
that.setData({
recordList: [],
storeJobListSearchForm: that.storeJobListSearchForm
});
that.getJobList();
}
} else {
//收藏
for (var i = 0; i != that.recordList.length; ++i) {
if (that.recordList[i].id - storeJobId == 0) {
that.recordList[i].collected = 1;
break;
}
}
txt = '收藏成功';
}
that.setData({
recordList: that.recordList
});
uni.showToast({
icon: 'none',
title: txt
});
},
fail: function (res) {
console.log('操作失败');
}
});
},
hidedrawershow(e) {
console.log(e);
this.setData({
[e.detail.type]: false
});
uni.showTabBar({
animation: false,
success: (result) => {},
fail: () => {},
complete: () => {}
});
},
recordBill(e) {
console.log(e.currentTarget.dataset.job);
this.setData({
recordShow: true,
currentInfo: e.currentTarget.dataset.job
});
console.log(this.recordShow);
uni.hideTabBar({
animation: false,
success: (result) => {},
fail: () => {},
complete: () => {}
});
return;
if (!this.isLogin) {
uni.navigateTo({
url: '/pages/login/index'
});
return;
}
console.log(e.currentTarget.dataset.job);
console.log(123);
let middleInfo = e.currentTarget.dataset.job;
let info = JSON.stringify({
id: middleInfo.id,
jobName: middleInfo.jobName,
storeName: middleInfo.storeName,
aliasName: middleInfo.aliasName,
storeId: middleInfo.storeId
});
console.log(info);
uni.navigateTo({
url: `../newEnroll/enroll/index?applyType=1&info=${info}`
});
// wx.navigateTo({
// url: `../newEnroll/enroll/index?applyType=1&info=${info}`,
// });
},
touchStart() {
console.log('占位:函数 touchStart 未声明');
},
onScrollToLower() {
console.log('占位:函数 onScrollToLower 未声明');
},
listTouchStart() {
console.log('占位:函数 listTouchStart 未声明');
},
listTouchMove() {
console.log('占位:函数 listTouchMove 未声明');
},
scroll() {
console.log('占位:函数 scroll 未声明');
},
stoptap() {
console.log('占位:函数 stoptap 未声明');
}
}
};
</script>
<style>
@import './index.css';
</style>