504 lines
12 KiB
Vue
504 lines
12 KiB
Vue
|
<template>
|
|||
|
<view class="content">
|
|||
|
<view class="mb">
|
|||
|
<view class="filter_container">
|
|||
|
<view class="search_container" @click="toSearch()">
|
|||
|
<uni-icons
|
|||
|
class="search_icon"
|
|||
|
type="search"
|
|||
|
size="20"
|
|||
|
v-model="advertisePositionName"
|
|||
|
color="#bdbdbd"
|
|||
|
></uni-icons>
|
|||
|
<input
|
|||
|
style="text1"
|
|||
|
class="input-"
|
|||
|
size="20"
|
|||
|
placeholder="招聘岗位(模糊查询)"
|
|||
|
v-model="advertisePositionName"
|
|||
|
/>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="otherFixed">
|
|||
|
<!-- <view class="text " @click="showSinglePicker">{{deptResult.name}}</view> -->
|
|||
|
<view class="text" @click="filterDate">{{
|
|||
|
timeData.begin == ""
|
|||
|
? "日期范围"
|
|||
|
: timeData.begin + "~" + timeData.end
|
|||
|
}}</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="mybox" v-if="listCards.length > 0">
|
|||
|
<view
|
|||
|
v-for="(item, index) in listCards"
|
|||
|
:key="index"
|
|||
|
class="example-box"
|
|||
|
style="position: relative"
|
|||
|
@click="clickDetail(item)"
|
|||
|
>
|
|||
|
<dev-block
|
|||
|
:title="item.title"
|
|||
|
:titleNumber="item.titleNumber"
|
|||
|
:note="item.note"
|
|||
|
:extra="item.extra"
|
|||
|
:tagType="item.tagType"
|
|||
|
:contentList="item.contentList"
|
|||
|
></dev-block>
|
|||
|
</view>
|
|||
|
<uni-load-more :status="loading_status"></uni-load-more>
|
|||
|
</view>
|
|||
|
<view class="mybox" v-else>
|
|||
|
<no-record></no-record>
|
|||
|
</view>
|
|||
|
<view class="goHome" @click="goMain('workInfo')">
|
|||
|
<img src="../../static/img/gohome.png" />
|
|||
|
</view>
|
|||
|
<uni-calendar
|
|||
|
ref="calendar"
|
|||
|
:lunar="false"
|
|||
|
:range="true"
|
|||
|
@confirm="confirmDate"
|
|||
|
@cancel="cancleData"
|
|||
|
/>
|
|||
|
<lb-picker
|
|||
|
ref="picker"
|
|||
|
mode="multiSelector"
|
|||
|
:level="level"
|
|||
|
:pickerValueDefault="[0, 0]"
|
|||
|
@confirm="pickerConfirm"
|
|||
|
:props="myProps"
|
|||
|
:list="deptArray"
|
|||
|
></lb-picker>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import LbPicker from "@/components/lb-picker";
|
|||
|
import mpvuePicker from "@/components/mpvue-picker/mpvuePicker.vue";
|
|||
|
import devBlock from "@/components/xinsoft-dev-block/xinsoft-dev-block.vue";
|
|||
|
import uniLoadMore from "@/components/uni-load-more/uni-load-more.vue";
|
|||
|
import noRecord from "@/components/xinsoft-no-record/xinsoft-no-record";
|
|||
|
import uniBadge from "@/components/uni-badge/uni-badge.vue";
|
|||
|
import uniCalendar from "@/components/uni-calendar/uni-calendar.vue";
|
|||
|
|
|||
|
export default {
|
|||
|
components: {
|
|||
|
LbPicker,
|
|||
|
devBlock,
|
|||
|
uniLoadMore,
|
|||
|
noRecord,
|
|||
|
uniBadge,
|
|||
|
uniCalendar,
|
|||
|
mpvuePicker,
|
|||
|
},
|
|||
|
data() {
|
|||
|
return {
|
|||
|
current_num: 2,
|
|||
|
deptArray: [],
|
|||
|
level: 4,
|
|||
|
advertisePositionName: "",
|
|||
|
myProps: {
|
|||
|
label: "text",
|
|||
|
value: "id",
|
|||
|
children: "children",
|
|||
|
},
|
|||
|
listCards: [],
|
|||
|
//上拉刷新,下拉加载
|
|||
|
loading_status: "more", //more(loading前)、loading(loading中)、noMore(没有更多了)
|
|||
|
pageSize: 5,
|
|||
|
page: 1,
|
|||
|
filter: {},
|
|||
|
//日历变量。
|
|||
|
timeData: {
|
|||
|
begin: "",
|
|||
|
end: "",
|
|||
|
},
|
|||
|
deptResult: {
|
|||
|
value: "",
|
|||
|
name: "部门",
|
|||
|
},
|
|||
|
userInfo: {},
|
|||
|
};
|
|||
|
},
|
|||
|
onLoad() {
|
|||
|
var _this = this;
|
|||
|
this.userInfo = uni.getStorageSync("userInfo");
|
|||
|
this.filter = {
|
|||
|
approveUserId: this.userInfo.userId,
|
|||
|
};
|
|||
|
|
|||
|
// this.getDept('');
|
|||
|
// this.getDept(this.userInfo.deptId);
|
|||
|
|
|||
|
//初始化当前列表。
|
|||
|
this.dataList();
|
|||
|
},
|
|||
|
onReachBottom: function () {
|
|||
|
//下拉刷新的时候请求一次数据
|
|||
|
if (this.loading_status == "noMore") {
|
|||
|
return false;
|
|||
|
}
|
|||
|
this.page++;
|
|||
|
this.dataList();
|
|||
|
},
|
|||
|
onPullDownRefresh: function () {
|
|||
|
this.listCards = [];
|
|||
|
this.page = 1;
|
|||
|
this.loading_status = "more";
|
|||
|
//触底的时候请求数据,即为上拉加载更多
|
|||
|
this.dataList();
|
|||
|
},
|
|||
|
methods: {
|
|||
|
// 按招聘岗位查询
|
|||
|
toSearch() {
|
|||
|
this.dataList(1);
|
|||
|
},
|
|||
|
|
|||
|
filterConfirm(f) {
|
|||
|
//筛选成功。
|
|||
|
var num = f.num;
|
|||
|
if (num == 1 || num == "") {
|
|||
|
this.filter = {
|
|||
|
userId: this.userInfo.userId,
|
|||
|
};
|
|||
|
} else if (num == 2) {
|
|||
|
this.filter = {
|
|||
|
approveUserId: this.userInfo.userId,
|
|||
|
};
|
|||
|
} else if (num == 3) {
|
|||
|
this.filter = {
|
|||
|
deptId: this.userInfo.deptId,
|
|||
|
};
|
|||
|
}
|
|||
|
this.current_num = num;
|
|||
|
this.filter.userName = f.userName;
|
|||
|
this.listCards = [];
|
|||
|
this.page = 1;
|
|||
|
this.loading_status = "more";
|
|||
|
this.dataList();
|
|||
|
},
|
|||
|
dataList(n) {
|
|||
|
if (n == 1) {
|
|||
|
this.page = 1;
|
|||
|
this.listCards = [];
|
|||
|
}
|
|||
|
this.loading_status = "loading";
|
|||
|
|
|||
|
var filterRes = this.filter;
|
|||
|
filterRes.pageno = this.page;
|
|||
|
filterRes.pagesize = this.pageSize;
|
|||
|
filterRes.startTime = this.timeData.begin;
|
|||
|
filterRes.endTime = this.timeData.end;
|
|||
|
filterRes.advertisePositionName = this.advertisePositionName;
|
|||
|
this.$http
|
|||
|
.request({
|
|||
|
url: "/apis/interviewRecord/myselfPlan",
|
|||
|
method: "post",
|
|||
|
paramsBody: filterRes,
|
|||
|
})
|
|||
|
.then((res) => {
|
|||
|
uni.stopPullDownRefresh();
|
|||
|
if (!res.data.data) {
|
|||
|
this.loading_status = "noMore";
|
|||
|
} else if (res.data.data.datas.length < this.pagesize) {
|
|||
|
this.loading_status = "noMore";
|
|||
|
} else {
|
|||
|
this.loading_status = "more";
|
|||
|
}
|
|||
|
if (res.data.code == 0) {
|
|||
|
if (res.data.data.datas.length > 0) {
|
|||
|
this.listCards = this.listCards.concat(
|
|||
|
this.formaterData(res.data.data.datas)
|
|||
|
);
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
.catch((err) => {
|
|||
|
this.loading_status = "noMore";
|
|||
|
});
|
|||
|
},
|
|||
|
clickDetail(item) {
|
|||
|
//点击详情
|
|||
|
uni.navigateTo({
|
|||
|
url: "interviewManagement_addRecord?interviewId=" + item.id,
|
|||
|
});
|
|||
|
},
|
|||
|
showSinglePicker() {
|
|||
|
//关闭之前filter。
|
|||
|
// document.getElementById("popupRef").style.display="none";
|
|||
|
this.$refs.picker.show();
|
|||
|
},
|
|||
|
pickerConfirm(e) {
|
|||
|
var value = e.value;
|
|||
|
console.log(value);
|
|||
|
var name = "";
|
|||
|
this.filter.deptId = "";
|
|||
|
if (value[1] == "-") {
|
|||
|
name = e.item[0].text;
|
|||
|
this.deptResult.value = value[0];
|
|||
|
} else {
|
|||
|
this.deptResult.value = value[2] ? value[2] : value[1];
|
|||
|
if (value[2]) {
|
|||
|
// name = name.substring(0,name.length-2);
|
|||
|
name = e.item[0].text + "/" + e.item[1].text + "/" + e.item[2].text;
|
|||
|
} else {
|
|||
|
name = e.item[0].text + "/" + e.item[1].text;
|
|||
|
}
|
|||
|
}
|
|||
|
console.log(this.deptResult.value);
|
|||
|
this.deptResult.name = name;
|
|||
|
this.listCards = [];
|
|||
|
this.page = 1;
|
|||
|
this.loading_status = "more";
|
|||
|
this.dataList();
|
|||
|
},
|
|||
|
// showSinglePicker() {
|
|||
|
// //关闭之前filter。
|
|||
|
// // document.getElementById("popupRef").style.display="none";
|
|||
|
// this.$refs.mpvuePicker.show()
|
|||
|
// },
|
|||
|
// pickerConfirm(e){
|
|||
|
// var value = e.value;
|
|||
|
// this.deptResult.value = value[1]?value[1]:value[0];
|
|||
|
// var name = e.label;
|
|||
|
// if(!value[1]){
|
|||
|
// name = name.substring(0,name.length-2);
|
|||
|
// }
|
|||
|
// this.deptResult.name = name;
|
|||
|
// this.listCards=[];
|
|||
|
// this.page=1;
|
|||
|
// this.loading_status="more";
|
|||
|
// this.dataList();
|
|||
|
// },
|
|||
|
formaterData(data) {
|
|||
|
var resData = [];
|
|||
|
data.forEach((vals, index) => {
|
|||
|
var combineJSON = {
|
|||
|
id: vals.recordId,
|
|||
|
title: "招聘岗位" + ":" + vals.postName,
|
|||
|
contentList: [
|
|||
|
{
|
|||
|
id: 1,
|
|||
|
isDouble: false,
|
|||
|
labelName: "应聘人",
|
|||
|
labelContent: vals.candidateName,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 2,
|
|||
|
isDouble: false,
|
|||
|
labelName: "性别",
|
|||
|
labelContent: vals.genderName,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 3,
|
|||
|
isDouble: false,
|
|||
|
labelName: "最高学历",
|
|||
|
labelContent: vals.highestEducationName,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 4,
|
|||
|
isDouble: false,
|
|||
|
labelName: "所学专业",
|
|||
|
labelContent: vals.major,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 5,
|
|||
|
isDouble: false,
|
|||
|
labelName: "毕业学校",
|
|||
|
labelContent: vals.graduateSchool,
|
|||
|
},
|
|||
|
{
|
|||
|
id: 6,
|
|||
|
isDouble: false,
|
|||
|
labelName: "面试时间",
|
|||
|
labelContent: vals.interviewDate,
|
|||
|
},
|
|||
|
],
|
|||
|
note: "查看详情",
|
|||
|
// extra: vals.approveStateName,
|
|||
|
// tagType:this.setTag(vals.approveStateName),
|
|||
|
};
|
|||
|
resData.push(combineJSON);
|
|||
|
});
|
|||
|
return resData;
|
|||
|
},
|
|||
|
filterDate() {
|
|||
|
//关闭之前filter。
|
|||
|
// document.getElementById("popupRef").style.display="none";
|
|||
|
this.$refs.calendar.open();
|
|||
|
},
|
|||
|
confirmDate(e) {
|
|||
|
if (e.range.begin && e.range.end) {
|
|||
|
this.timeData = {
|
|||
|
begin: e.range.begin + " 00:00:00",
|
|||
|
end: e.range.end + " 00:00:00",
|
|||
|
};
|
|||
|
this.listCards = [];
|
|||
|
this.page = 1;
|
|||
|
this.loading_status = "more";
|
|||
|
this.dataList();
|
|||
|
}
|
|||
|
},
|
|||
|
},
|
|||
|
onNavigationBarButtonTap(obj) {
|
|||
|
//重置下
|
|||
|
uni.removeStorageSync("workInfo");
|
|||
|
uni.navigateTo({
|
|||
|
url: "addWorkApply",
|
|||
|
});
|
|||
|
},
|
|||
|
onBackPress(options) {
|
|||
|
//取消默认的返回事件.
|
|||
|
uni.switchTab({
|
|||
|
url: "../main/main",
|
|||
|
});
|
|||
|
return true;
|
|||
|
},
|
|||
|
};
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped>
|
|||
|
uni-input {
|
|||
|
position: relative;
|
|||
|
top: 4px;
|
|||
|
color: rgb(102, 102, 102);
|
|||
|
display: block;
|
|||
|
font-size: 13px;
|
|||
|
line-height: 1.4em;
|
|||
|
height: 1.4em;
|
|||
|
min-height: 1.4em;
|
|||
|
overflow: hidden;
|
|||
|
}
|
|||
|
.content {
|
|||
|
position: relative;
|
|||
|
}
|
|||
|
.filter_container {
|
|||
|
position: fixed;
|
|||
|
width: 50%;
|
|||
|
top: var(--window-top);
|
|||
|
background-color: #fff;
|
|||
|
height: 40px;
|
|||
|
z-index: 2;
|
|||
|
padding-top: 7px;
|
|||
|
box-sizing: border-box;
|
|||
|
}
|
|||
|
>>> .doubleList:nth-of-type(1) {
|
|||
|
width: 60%;
|
|||
|
}
|
|||
|
|
|||
|
>>> .doubleList:nth-of-type(2) {
|
|||
|
width: 40%;
|
|||
|
}
|
|||
|
|
|||
|
>>> .doubleList:nth-of-type(3) {
|
|||
|
width: 60%;
|
|||
|
}
|
|||
|
>>> .doubleList:nth-of-type(4) {
|
|||
|
width: 40%;
|
|||
|
}
|
|||
|
>>> .dev-label {
|
|||
|
white-space: nowrap;
|
|||
|
}
|
|||
|
>>> .select-tab-fixed-top {
|
|||
|
right: 0;
|
|||
|
width: 50%;
|
|||
|
z-index: 2;
|
|||
|
top: var(--window-top);
|
|||
|
white-space: nowrap;
|
|||
|
}
|
|||
|
>>> .popup-layer {
|
|||
|
position: fixed;
|
|||
|
top: var(--window-top);
|
|||
|
margin-top: 40px;
|
|||
|
}
|
|||
|
>>> .filter-content-detail {
|
|||
|
/* position: relative;
|
|||
|
height: 90px;
|
|||
|
overflow: scroll; */
|
|||
|
}
|
|||
|
.search_container {
|
|||
|
position: relative;
|
|||
|
padding-left: 30px;
|
|||
|
box-sizing: border-box;
|
|||
|
color: #bdbdbd;
|
|||
|
margin: auto;
|
|||
|
width: 80%;
|
|||
|
height: 26px;
|
|||
|
background-color: #f6f6f6;
|
|||
|
border-radius: 26px;
|
|||
|
font-size: 14px;
|
|||
|
line-height: 26px;
|
|||
|
}
|
|||
|
.search_icon {
|
|||
|
position: absolute;
|
|||
|
left: 5px;
|
|||
|
top: 3px;
|
|||
|
}
|
|||
|
.fliter_content {
|
|||
|
position: absolute;
|
|||
|
right: 15px;
|
|||
|
left: 85px;
|
|||
|
height: 100%;
|
|||
|
z-index: 2;
|
|||
|
}
|
|||
|
.arrowright {
|
|||
|
position: absolute;
|
|||
|
right: 30upx;
|
|||
|
bottom: 30upx;
|
|||
|
font-size: 40upx !important;
|
|||
|
}
|
|||
|
>>> .dev-block__content {
|
|||
|
padding-right: 36upx;
|
|||
|
}
|
|||
|
>>> .dev-block__header-title-text {
|
|||
|
overflow: auto;
|
|||
|
white-space: pre-wrap !important;
|
|||
|
}
|
|||
|
|
|||
|
/* >>>.select-tab >>>.select-tab-item[data-v-fe683d44],
|
|||
|
>>>.select-tab-fixed-top >>>.select-tab-item[data-v-fe683d44] {
|
|||
|
width: 100% !important;
|
|||
|
} */
|
|||
|
.arrowright {
|
|||
|
position: absolute;
|
|||
|
right: 30upx;
|
|||
|
bottom: 30upx;
|
|||
|
font-size: 40upx !important;
|
|||
|
}
|
|||
|
>>> .dev-block__content {
|
|||
|
padding-right: 36upx;
|
|||
|
}
|
|||
|
>>> .popup-layer {
|
|||
|
position: fixed;
|
|||
|
top: var(--window-top);
|
|||
|
margin-top: 40px;
|
|||
|
}
|
|||
|
.otherFixed {
|
|||
|
background: #fff;
|
|||
|
width: 50%;
|
|||
|
text-align: center;
|
|||
|
color: #666;
|
|||
|
position: fixed;
|
|||
|
top: 45px;
|
|||
|
z-index: 2;
|
|||
|
height: 40px;
|
|||
|
right: 0px;
|
|||
|
}
|
|||
|
.mb {
|
|||
|
margin-bottom: 50px;
|
|||
|
}
|
|||
|
.otherFixed .text {
|
|||
|
margin: 5px 3%;
|
|||
|
background: #f6f6f6;
|
|||
|
border-radius: 40px;
|
|||
|
float: left;
|
|||
|
width: 90%;
|
|||
|
line-height: 30px;
|
|||
|
overflow: hidden;
|
|||
|
text-overflow: ellipsis;
|
|||
|
white-space: nowrap;
|
|||
|
font-size: 13px;
|
|||
|
}
|
|||
|
</style>
|