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.

654 lines
16 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="p-apply-inedx g_w_all g_h_all g_bg_f_5 g_kuaishou g-apply-tab">
<scroll-view class="m-list" :style="{ height: `calc(100vh - ${tabbarHeight}px)` }" :scroll-y="true" @scrolltolower="reachBottom">
<view class="g_h_all">
<!-- #ifdef APP-PLUS || H5 || MP-KUAISHOU || MP-WEIXIN -->
<view class="" :style="{ height: `calc(${from == 'tob' ? '58px + 50px' : '10px'})` }"></view>
<!-- #endif -->
<view class="">
<view class="m-box-fixed" :style="{ top: 0 }" v-if="isLogin && from == 'tob'">
<view style="background-color: #fff" class="">
<view class="m-select">
<view style="height: 52px" class="g_flex_row_between flex_center">
<view class="m-search g_pb_0 g_position_rela g_flex_1" style="padding-bottom: 0; padding-left: 12px; padding-right: 12px">
<u-search @btnSearch="getSearch" height="80" v-model="keyword" placeholder="搜索姓名/职位/手机号" bg-color="#f5f5f5" :show-action="false" @change="getSearch" @clear="getSearch" @custom="getSearch" @search="getSearch" search-icon-color="#999999" :maxlength="20"></u-search>
<!-- <view class="g_w_all g_h_40 g_position_abso" style="left: 0; top: 0px; z-index: 9999" @click.stop="goSearch"></view> -->
</view>
<view class="g_w_40 g_h_40 g_mr_10" @click="addResume">
<image src="https://bocai-cms.oss-cn-beijing.aliyuncs.com/web-resource/pugongying/addresume.svg" class="g_w_all g_h_all"></image>
</view>
</view>
</view>
<!-- <view class="g_h_10 g_bg_f_5"></view> -->
</view>
<view style="width: 100vw" class="g_border_e_b">
<!-- item-width="126" itemWidth="auto" -->
<!-- {{query.isFinish}} -->
<g-tabs v-if="query.isFinish != -1" :list="tabInfo" :current="menuActive" :active-color="globalData.themeColor" bar-width="60" bar-height="6" font-size="32" @change="handleUpdateMenu" :gutter="22" duration="0.1" height="84" item-width="126" itemWidth="auto"></g-tabs>
</view>
</view>
<!-- <view class="g_h_10" v-if="isLogin"> </view> -->
<!-- 面板 -->
<g-list-bill :from="from" @uploadList="getList('concat')" bg="#f5f5f5" class="g_h_all" :classify="tabInfo[menuActive].classify" :list="query.list" :active="tabInfo.active" @shareJob="shareJob" :loading="loading" :speed="speed" :query="query" :isShowLoginBtn="isLogin ? false : true" :emptyText="isLogin ? (tabInfo.active == 0 || tabInfo.active == 2 ? '嘿,这里还没有数据呢' : '嘿,这里还没有数据呢') : '您还有没有登录,请登录后查看'" :emptySubText="isLogin ? (tabInfo.active == 0 ? '关注发单号,我们会第一时间通知您新的动态' : tabInfo.active == 2 ? '快去试试发布职位吧' : '') : ''" />
<!-- <g-list-apply from="home" @uploadList="getList('concat')" bg="" class="" :tabActive="tabActive" :loading="loading" :speed="speed" :isLogin="isLogin" :query.sync="query" :navInfo="navInfo" /> -->
</view>
</view>
</scroll-view>
</view>
</template>
<script>
export default {
onReady() {
let that = this;
this.G.setNavStyle();
uni.$on("goNew", (res) => {
console.log("goNew", res);
console.log("goNewgoNewgoNewgoNew");
that.menuActive = 0;
if (res) {
that.menuActive = res;
}
that.getList();
});
},
onMounted() {
console.log('uni.getStorageSync("TABBAR_HEIGHT")', uni.getStorageSync("TABBAR_HEIGHT"));
this.tabbarHeight = uni.getStorageSync("TABBAR_HEIGHT");
},
onLoad(options) {
console.log(options);
},
props: {
from: {
type: String,
default: "tob",
},
},
// onShareAppMessage() {
// return this.G.shareFun();
// },
data() {
return {
globalData: getApp().globalData,
tabbarHeight: uni.getStorageSync("TABBAR_HEIGHT") || 90,
isHaveOrder: -1,
loading: true,
speed: -1,
query: {
page: 1,
size: 50,
list: [],
isFinish: -1,
},
GZHInfo: 0,
cdnBaseImg: this.G.store().cdnBaseImg,
keyword: "",
tabActive: 0,
tabTip: "",
tabInfo: [
{
name: "新简历",
classify: "50",
},
{
name: "推工作",
classify: "60",
},
{
name: "审核中",
classify: "40",
},
{
name: "跟面试",
classify: "70",
},
{
name: "跟入职",
classify: "80",
},
{
name: "跟在职",
classify: "90",
},
{
name: "已完成",
classify: "110",
},
// {
// name: "已放弃",
// classify: "120",
// },
],
menuActive: 0,
isLogin: false,
loginInfo: {},
navInfo: {},
};
},
onHide() {
let that = this;
},
mounted() {
let that = this;
// 导航栏高度信息
that.isLogin = uni.getStorageSync("apply-token") ? true : false;
console.log("that.isLogin", that.isLogin);
that.loginInfo = uni.getStorageSync("apply-userinfo");
if (!that.isLogin) {
that.loading = false;
that.speed = 0;
} else {
this.query.page = 1;
this.getList();
}
this.getGZHInfo();
if (that.isLogin) {
this.getNum();
}
},
methods: {
reachBottom() {
let that = this;
console.log("简历工单isfinish:", that.query.isFinish, "size:", that.query.size);
if (that.query.isFinish == -1 || that.query.isFinish == that.query.size) {
that.query.page++;
that.getList("concat");
}
},
addResume() {
uni.navigateTo({
url: "/root/detail/fellow?resumeFlag=1&type=add",
});
},
getNum() {
let that = this;
if (that.from == "tob") {
that.tabInfo = [
{
name: "新简历",
classify: "50",
},
{
name: "推工作",
classify: "60",
},
{
name: "审核中",
classify: "40",
},
{
name: "跟面试",
classify: "70",
},
{
name: "跟入职",
classify: "80",
},
{
name: "跟在职",
classify: "90",
},
{
name: "已完成",
classify: "110",
},
// {
// name: "已放弃",
// classify: "120",
// },
];
} else {
that.tabInfo = [
{
name: "已报名",
classify: "50",
},
{
name: "待审核",
classify: "60",
},
{
name: "待面试",
classify: "40",
},
{
name: "待入职",
classify: "70",
},
{
name: "已入职",
classify: "80",
},
{
name: "已离职",
classify: "90",
},
];
}
// that.tabInfo = [
// {
// name: "新简历",
// classify: "50",
// },
// {
// name: "推工作",
// classify: "60",
// },
// {
// name: "审核中",
// classify: "40",
// },
// {
// name: "跟面试",
// classify: "70",
// },
// {
// name: "跟入职",
// classify: "80",
// },
// {
// name: "跟在职",
// classify: "90",
// },
// {
// name: "已完成",
// classify: "110",
// },
// // {
// // name: "已放弃",
// // classify: "120",
// // },
// ];
that.G.Post(
that.api.status_num_list,
{
keys: that.keyword,
},
(res) => {
that.tabInfo.forEach((item) => {
for (const key in item) {
if (key == "classify") {
item.num = res.statusMap[key + item[key]];
}
}
if (that.from == "tob") {
item.name = `${item.name}(${item.num})`;
} else if (that.from == "toc") {
item.name = `${item.name}`;
}
});
that.$forceUpdate();
console.log("that.tabInfo", that.tabInfo);
},
);
},
getList($type = "init") {
let that = this;
console.log("是否登录", that.isLogin);
if (!that.isLogin) {
return false;
}
if ($type == "concat") {
that.loading = true;
}
// tob使用的数据
if (that.from == "tob") {
that.G.Post(
that.api.task_list,
{
pageNum: that.query.page,
pageSize: that.query.size,
// agencyId: that.tabInfo.active == 2 ? uni.getStorageSync("apply-agencyId") : "",
// that.tabInfo.list[that.tabActive].classify
classify: that.tabInfo[that.menuActive].classify,
// classify: that.from == "tob" ? that.tabInfo[that.menuActive].classify : 0,
keys: that.keyword,
},
(res) => {
that.computeCode = 1;
let classify = that.tabInfo[that.menuActive].classify;
// console.log('reData',reData.data)
// res = reData.data;
res.recordList.forEach((item) => {
item.status_notify = that.G.setDeadLine(item.notifyTime || new Date().getTime());
item.status_after = that.G.setDeadLine(item.willEntryTime || new Date().getTime(), "后入职");
item.intervie_Time = that.G.getPointTime(item.interviewTime || new Date().getTime(), "MM--DD HH:MM");
item.willEntry_Time = that.G.getPointTime(item.willEntryTime || new Date().getTime(), "MM--DD HH:MM");
item.update_Time = that.G.getPointTime(item.updateTime || new Date().getTime(), "YY--MM--DD HH:MM");
item.entry_Time = that.G.getPointTime(item.entryTime || new Date().getTime(), "MM--DD HH:MM");
item.status_text = that.G.setDeadLine(item.entryTime || new Date().getTime(), "在职");
// || classify == 120
if (classify == 110) {
if (item.statusFailOperateTime) {
item.statusFailOperate_Time = that.G.getPointTime(item.statusFailOperateTime || new Date().getTime(), "MM--DD HH:MM");
} else if (item.leaveTime) {
item.statusFailOperate_Time = that.G.getPointTime(item.leaveTime || new Date().getTime(), "MM--DD HH:MM");
} else {
item.statusFailOperate_Time = "";
}
}
});
if (res.recordCount == 0) {
that.loading = false;
} else {
that.loading = true;
}
that.speed = res.recordCount;
that.query.isFinish = res.recordList.length;
console.log("$type", $type);
console.log("res.recordList", res.recordList);
if ($type == "init") {
that.query.list = [];
if (res.recordList.length > 0) {
that.query.list = res.recordList;
}
} else {
that.query.list = that.query.list.concat(res.recordList);
}
console.log("首页 列表:", that.query.list);
},
);
} else if (that.from == "toc") {
that.G.Post(
that.api.yi_my_apply_list,
{
pageNum: that.query.page,
pageSize: that.query.size,
},
(res) => {
console.log("我的报名:", res);
that.computeCode = res.length;
if (res.length == 0) {
that.loading = false;
} else {
that.loading = true;
}
that.speed = res.length;
that.query.isFinish = res.length;
if (res && res.length > 0) {
res = that.G.toGetAddress(res);
res = that.G.toGetAge(res);
res = that.G.yijobCopy(res);
}
if ($type == "init") {
that.query.list = [];
that.query.list = res.map((item, index) => {
return {
...item,
createTime: that.G.getPointTime(item.createTime, "YY--MM--DD HH:MM"),
ageStr: that.setAge(item),
addresa: item.storeDistrict.split(",").join(" | "),
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
status_text: that.G.getOrderStatus().filter((itm, inx) => {
return itm.id == item.status;
})[0].name,
jobSpecialLabelNames: item.jobSpecialLabelNames ? item.jobSpecialLabelNames.split(",").filter((sub, i) => i < 3) : "",
};
});
} else {
that.query.list = that.query.list.concat(
res.map((item, index) => {
return {
...item,
createTime: that.G.getPointTime(item.createTime, "YY--MM--DD HH:MM"),
ageStr: that.setAge(item),
addresa: item.storeDistrict.split(",").join(" | "),
cus_price: item.salaryClassify != 7 ? that.G.getSalaryClassifyValueHtml(item.salaryClassify, item.salaryClassifyValue) : "月薪",
status_text: that.G.getOrderStatus().filter((itm, inx) => {
return itm.id == item.status;
})[0].name,
jobSpecialLabelNames: item.jobSpecialLabelNames ? item.jobSpecialLabelNames.split(",").filter((sub, i) => i < 3) : "",
};
}),
);
}
},
);
}
},
setAge(item) {
let str = "";
if (item.minAge && item.maxAge) {
item["age"] = item.minAge + "-" + item.maxAge + "岁";
} else if (item.minAge) {
item["age"] = item.minAge + "岁以上";
} else if (item.maxAge) {
item["age"] = item.maxAge + "岁以下";
} else {
let newArr = [item.minAgeMan, item.maxAgeMan, item.minAgeWoman, item.maxAgeWoman];
newArr.sort();
// console.log('newArr', newArr)
let minAge = newArr[0] == 0 ? newArr[2] : newArr[0];
let maxAge = newArr[3];
item["age"] = minAge + "-" + maxAge + "岁";
}
return item["age"];
},
goTel($item) {
console.log($item);
if ($item) {
uni.makePhoneCall({
phoneNumber: $item,
});
}
},
getGZHInfo() {
let that = this;
if (that.isLogin) {
that.G.Get(that.api.user_getGZHstatus, { type: "BMZS" }, (res) => {
console.log(res);
that.GZHInfo = res;
});
}
},
/**
* 跳转搜索页
*/
goSearch() {
this.G.isLogin();
if (this.G.isLogin()) {
uni.navigateTo({
url: `/root/other/search?from=task&classify=${this.tabInfo[this.menuActive].classify}`,
});
}
},
// 一级tab切换
handleUpdateTab(e) {
let that = this;
this.tabActive = e;
this.menuActive = 0;
this.speed = -1;
this.query.page = 1;
that.G.isLogin();
if (that.G.isLogin()) {
this.getList();
}
},
// 二级tab切换
handleUpdateMenu($item, $index) {
let that = this;
this.menuActive = $item;
this.speed = -1;
this.query.page = 1;
that.G.isLogin();
if (that.G.isLogin()) {
this.getList();
}
},
getSearch(e) {
console.log("搜索内容:", e);
let that = this;
that.keyword = e;
that.query.page = 1;
that.getList();
},
goDetail($item, $index) {
let that = this;
console.log("$item", $item);
// return
uni.navigateTo({
// url: "/root/detail/apply?id=" + $item.id + "&type=" + (that.tabActive + 1),
url: `/root/detail/apply?id=${$item.id}&type=${that.tabActive + 1}&relationId=${$item.relationId}`,
});
},
goLogin() {
uni.reLaunch({
url: "/root/login/index",
});
},
toMessage() {
uni.navigateTo({
url: "/root/person/message",
});
},
addResume() {
uni.navigateTo({
url: "/root/detail/fellow?resumeFlag=1&type=add",
});
},
},
onShareAppMessage: function () {
return this.G.shareFun();
},
};
</script>
<style lang="scss">
.apply-header {
position: fixed;
left: 50%;
transform: translateX(-50%);
.box {
padding: 0 2px;
width: 148px;
height: 32px;
background-color: #eeeeee;
border-radius: 4px;
.item {
width: 72px;
height: 28px;
margin-top: 2px;
border-radius: 4px;
.btn {
font-size: 14px;
color: #333;
}
}
.item-active {
background-color: #fff;
}
}
}
.p-apply-inedx {
width: 100vw;
background-color: #f5f5f5;
overflow-x: hidden;
min-height: 100%;
.bg_shawdoc {
background: linear-gradient(180deg, #caf1e0 1%, rgba(249, 249, 249, 0));
}
.suffix {
position: absolute;
right: 20rpx;
top: 10px;
z-index: 1;
border-top-right-radius: 110rpx;
border-bottom-right-radius: 110rpx;
}
.tab-fixed {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: calc(112rpx + 36px);
background-color: #fff;
z-index: 1;
}
.m-search {
.u-icon-wrap {
}
}
.m-search-active {
.u-icon-wrap {
position: inherit;
left: 0rpx;
}
}
.m-select {
.u-tab-bar {
bottom: 5px !important;
}
.link {
.item {
.doc {
bottom: 0;
left: 50%;
transform: translateX(-50%);
}
}
}
.showdoc {
// box-shadow: 0 2px 4px rgba(0, 0, 0, .04), 0 0 6px rgba(0, 0, 0, .02);
border-bottom: 1rpx solid #eee;
overflow-x: "auto";
width: 100vw;
.menu-obj {
min-width: 422px;
.menu-btn {
margin-right: 8px;
.btn {
background: rgba(204, 204, 204, 0.2);
color: #666666;
}
&:first-child {
margin-left: 12px;
}
}
.menu-active {
.btn {
background: rgba(0, 182, 102, 0.1);
color: #6a81ff;
}
}
}
}
}
.m-login-false {
height: calc(100% - 92px);
.m-panel,
.link {
height: 100%;
.m-log {
height: 100%;
}
}
}
.m-panel {
min-height: 100%;
}
.m-box-fixed {
position: fixed;
left: 0;
// top: 92px;
width: 100vw;
background-color: #fff;
z-index: 999;
}
}
</style>