|
@@ -1,17 +1,27 @@
|
|
|
<!-- 我的面试 -->
|
|
|
+<!--
|
|
|
+ 投递状态码 status
|
|
|
+ 0 未查看
|
|
|
+ 10 已查看
|
|
|
+ 11 不合适
|
|
|
+ 20 已邀请面试
|
|
|
+ 30 已接受面试
|
|
|
+ 40 已拒绝面试
|
|
|
+ 50 面试通过
|
|
|
+ 60 不合适
|
|
|
+ 70 未参加面试
|
|
|
+ 80 已拒绝入职
|
|
|
+ 90 已入职
|
|
|
+-->
|
|
|
<template>
|
|
|
<view class="interview">
|
|
|
- <z-paging
|
|
|
- ref="paging"
|
|
|
- v-model="interviewList"
|
|
|
- @query="queryList"
|
|
|
- >
|
|
|
+ <z-paging ref="paging" v-model="interviewList" @query="queryList">
|
|
|
<view class="interview-list">
|
|
|
<view class="interview-list-item" v-for="(item, index) in interviewList" :key="index">
|
|
|
<view class="interview-list-item-title">
|
|
|
<view>{{ getDictLabel(item.status, 'deliveryStatusList') }}</view>
|
|
|
<view>
|
|
|
- <image src="../../static/img/shijian.png"/>
|
|
|
+ <image src="../../static/img/shijian.png" />
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="interview-list-item-date">{{ item.interviewTime }}</view>
|
|
@@ -19,11 +29,13 @@
|
|
|
<view class="interview-list-item-position">
|
|
|
<view class="left">
|
|
|
<view style="margin-right: 20rpx;">
|
|
|
- <u-image :src="item.companyLogoUrl" width="100" height="100" border-radius="10"/>
|
|
|
+ <u-image :src="item.companyLogoUrl" width="100" height="100" border-radius="10" />
|
|
|
</view>
|
|
|
<view class="info">
|
|
|
<view>{{ item.postName }}</view>
|
|
|
- <view>{{ `${item.provinceName} | 经验${item.workYear}年 | ${getEducationBg(item.educationBg)}` }}</view>
|
|
|
+ <view>
|
|
|
+ {{ `${item.provinceName} | 经验${item.workYear}年 | ${getEducationBg(item.educationBg)}` }}
|
|
|
+ </view>
|
|
|
<view>{{ item.companyName }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -33,17 +45,25 @@
|
|
|
<view v-else>{{ item.createTime.split(' ')[0] }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="interview-list-item-button" v-if="Number(item.status) === 20 && new Date(item.interviewTime).valueOf() < new Date().valueOf()">
|
|
|
+ <!-- 当状态为20时,拒绝面试/接受面试 -->
|
|
|
+ <view class="interview-list-item-button double" v-if="Number(item.status) === 20">
|
|
|
+ <view class="btn" @click="changeInterviewState(item, 30)">接受</view>
|
|
|
+ <view class="btn" @click="changeInterviewState(item, 40)">拒绝</view>
|
|
|
+ </view>
|
|
|
+ <!-- 当状态为30时且面试时间大于当前时间 -->
|
|
|
+ <view class="interview-list-item-button"
|
|
|
+ v-if="Number(item.status) === 30 && new Date(item.interviewTime).valueOf() < new Date().valueOf()">
|
|
|
<view class="submit btn" @click="videoInterview(item)">发起视频面试</view>
|
|
|
</view>
|
|
|
-
|
|
|
- <view class="interview-list-item-button" v-else-if="Number(item.status) === 20 && new Date(item.interviewTime).valueOf() >= new Date().valueOf()">
|
|
|
+ <!-- 当状态为30时且面试时间小于当前时间 -->
|
|
|
+ <view class="interview-list-item-button"
|
|
|
+ v-else-if="Number(item.status) === 30 && new Date(item.interviewTime).valueOf() >= new Date().valueOf()">
|
|
|
<view class="not btn">未到视频面试</view>
|
|
|
</view>
|
|
|
-
|
|
|
+ <!-- 当状态为50时,拒绝入职/接受入职 -->
|
|
|
<view class="interview-list-item-button double" v-else-if="Number(item.status) === 50">
|
|
|
- <view class="btn">接受</view>
|
|
|
- <view class="btn">拒绝</view>
|
|
|
+ <view class="btn" @click="changeInterviewState(item, 90)">接受</view>
|
|
|
+ <view class="btn" @click="changeInterviewState(item, 80)">拒绝</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -60,7 +80,9 @@
|
|
|
interviewList: [],
|
|
|
// 面试状态
|
|
|
deliveryStatusList: [],
|
|
|
- degrEducList: []
|
|
|
+ degrEducList: [],
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10
|
|
|
}
|
|
|
},
|
|
|
onLoad() {
|
|
@@ -99,8 +121,13 @@
|
|
|
* @param { Number } pageSize
|
|
|
*/
|
|
|
getInterviewList(pageNum, pageSize) {
|
|
|
- this.$u.api.interview.getInterviewList({ pageNum, pageSize }).then(res => {
|
|
|
+ this.$u.api.interview.getInterviewList({
|
|
|
+ pageNum,
|
|
|
+ pageSize
|
|
|
+ }).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
+ this.pageNum = pageNum
|
|
|
+ this.pageSize = pageSize
|
|
|
this.$refs.paging.complete(res.rows)
|
|
|
} else {
|
|
|
this.$refs.paging.complete([])
|
|
@@ -129,9 +156,11 @@
|
|
|
* @param { String } key
|
|
|
*/
|
|
|
getDict(key) {
|
|
|
- this.$u.api.getDictdataUrl({ key }).then(res => {
|
|
|
+ this.$u.api.getDictdataUrl({
|
|
|
+ key
|
|
|
+ }).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
- switch(key) {
|
|
|
+ switch (key) {
|
|
|
case 'delivery_status':
|
|
|
this.deliveryStatusList = res.data;
|
|
|
break;
|
|
@@ -153,10 +182,47 @@
|
|
|
})
|
|
|
return label;
|
|
|
},
|
|
|
- submit () {
|
|
|
+ /**
|
|
|
+ * 修改面试状态
|
|
|
+ * @param {Number} state
|
|
|
+ */
|
|
|
+ changeInterviewState(item, state) {
|
|
|
+ this.$u.api.interview.changeInterviewStateApi({ status: state, id: item.id }).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ if (res.code === 200) {
|
|
|
+ let msg;
|
|
|
+ switch(state) {
|
|
|
+ case 30:
|
|
|
+ msg = '已接受面试'
|
|
|
+ break;
|
|
|
+ case 40:
|
|
|
+ msg = '已拒绝面试'
|
|
|
+ break;
|
|
|
+ case 80:
|
|
|
+ msg = '已拒绝入职'
|
|
|
+ break;
|
|
|
+ case 90:
|
|
|
+ msg = '已接受入职'
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ msg = '更新成功'
|
|
|
+ break
|
|
|
+ }
|
|
|
+ this.$refs.uToast.show({
|
|
|
+ title: msg,
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ this.getInterviewList(this.pageNum, this.pageSize);
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 视频面试
|
|
|
+ * @param {Object} item
|
|
|
+ */
|
|
|
videoInterview(item) {
|
|
|
- let url = `https://veterhwebchat.hw.hongweisoft.com/#/?veteMemberId=${item.companyId}&inviterId=${this.vuex_user.userId}&from=veterans`
|
|
|
+ let url =
|
|
|
+ `${this.config.viewInterviewUrl}?veteMemberId=${item.companyId}&inviterId=${this.vuex_user.userId}&from=veterans`
|
|
|
this.$u.route({
|
|
|
url: '/pages/webView/webView',
|
|
|
params: {
|
|
@@ -169,5 +235,5 @@
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-@import './myInterview.scss';
|
|
|
+ @import './myInterview.scss';
|
|
|
</style>
|