|
|
@@ -3,50 +3,74 @@
|
|
|
<view class="detail-bg"></view>
|
|
|
<nav-bar title="面试详情"></nav-bar>
|
|
|
<view class="detail-index">
|
|
|
- <view class="detail-title">已面试08月27日</view>
|
|
|
+ <view class="detail-title">
|
|
|
+ <block v-if="info.status==2">
|
|
|
+ <block v-if="currentStep === 1&&info.restHour>3">
|
|
|
+ {{info.statusText}} {{info.interviewDate}}
|
|
|
+ </block>
|
|
|
+ <block v-else-if="currentStep === 1&&info.restHour<=3&&info.restHour>0">
|
|
|
+ {{info.restHour*60}}分钟后面试
|
|
|
+ </block>
|
|
|
+ <block v-else-if="currentStep === 1&&info.restHour==0">
|
|
|
+ 面试已开始,待签到
|
|
|
+ </block>
|
|
|
+ <block v-else-if="currentStep === 2">
|
|
|
+ 面试已签到
|
|
|
+ </block>
|
|
|
+ <block v-else-if="currentStep === 3">
|
|
|
+ 面试中
|
|
|
+ </block>
|
|
|
+ <block v-else-if="currentStep === 4">
|
|
|
+ 面试已完成
|
|
|
+ </block>
|
|
|
+ </block>
|
|
|
+ <block v-else-if="info.status==3">
|
|
|
+ 面试已取消
|
|
|
+ </block>
|
|
|
+ </view>
|
|
|
<view class="detail-item">
|
|
|
<view class="user-title">
|
|
|
<view class="user-img">
|
|
|
- <image src="@/static/images/geren.png" mode="aspectFill" />
|
|
|
+ <image :src="info.company&&info.company.companyLogo||'../../static/images/geren.png'" mode="aspectFill" />
|
|
|
</view>
|
|
|
<view class="user-name-box">
|
|
|
- <view class="user-name-com">深圳市世迪贸易科技有限公司</view>
|
|
|
+ <view class="user-name-com">{{info.company&&info.company.companyName||'匿名公司'}}</view>
|
|
|
<view class="user-info-img">
|
|
|
- <image src="@/static/images/geren.png" mode="aspectFill" />
|
|
|
- <view class="user-name">孙先生·人事经理</view>
|
|
|
+ <image :src="info.hr&&info.hr.hrImg||'../../static/images/geren.png'" mode="aspectFill" />
|
|
|
+ <view class="user-name">{{info.userEntity&&info.userEntity.userName||'匿名'}}·{{info.hr&&info.hr.hrPosition||'匿名职务'}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="msg-box">
|
|
|
<view class="msg-item">
|
|
|
<view class="msg-label">时间</view>
|
|
|
- <view class="msg-value">2025-09-19 20:00:00</view>
|
|
|
+ <view class="msg-value">{{info.interviewDateTime}}</view>
|
|
|
</view>
|
|
|
<view class="msg-item">
|
|
|
<view class="msg-label">职位</view>
|
|
|
- <view class="msg-value">资深产品经理 15-25K</view>
|
|
|
+ <view class="msg-value">{{info.postPush&&info.postPush.ruleClassifyName}} {{info.postPush&&info.postPush.salaryRange}}</view>
|
|
|
</view>
|
|
|
<view class="msg-item">
|
|
|
<view class="msg-label">联系人</view>
|
|
|
- <view class="msg-value">熊女士</view>
|
|
|
+ <view class="msg-value">{{info.hrName}}</view>
|
|
|
</view>
|
|
|
<view class="msg-item">
|
|
|
<view class="msg-label">备注</view>
|
|
|
- <view class="msg-value">请携带一份最新的简历</view>
|
|
|
+ <view class="msg-value">{{info.remarks}}</view>
|
|
|
</view>
|
|
|
<view class="msg-item">
|
|
|
<view class="msg-label">地址</view>
|
|
|
- <view class="msg-value">光谷软件园F21602栋</view>
|
|
|
+ <view class="msg-value">{{info.address}} {{info.detailedAddress}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="map-box">
|
|
|
- <map name="map" class="map"></map>
|
|
|
+ <map v-if="info.lng" name="map" class="map" :longitude="parseFloat(info.lng)" :latitude="parseFloat(info.lat)" :markers="covers"></map>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="detail-item">
|
|
|
+ <view class="detail-item" v-if="info&&info.status==2">
|
|
|
<view class="process-top">
|
|
|
<view class="process-title">面试进度</view>
|
|
|
- <view class="process-status">爽约说明</view>
|
|
|
+ <view hidden class="process-status">爽约说明</view>
|
|
|
</view>
|
|
|
<view class="process-index">
|
|
|
<view class="interview-process">
|
|
|
@@ -64,8 +88,8 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="step-content">
|
|
|
- <view class="step-title">面试时间到</view>
|
|
|
- <view class="step-desc">面试一开始,此时不能取消面试</view>
|
|
|
+ <view class="step-title">{{info.expired?'面试时间到':'接受面试'}}</view>
|
|
|
+ <view class="step-desc">{{info.expired?'面试已开始,此时不能取消面试':'离面试开始3小时内,不可以取消面试'}}</view>
|
|
|
</view>
|
|
|
<view class="step-line"></view>
|
|
|
</view>
|
|
|
@@ -84,6 +108,7 @@
|
|
|
<view class="step-content">
|
|
|
<view class="step-title">面试签到</view>
|
|
|
<view class="step-desc">到场后请及时签到,可体验面试全流程服务</view>
|
|
|
+ <u-tag :text="currentStep<2?(info.expired?'签到超时':'请签到'):'已签到'" type="primary" :mode="currentStep<2&&!info.expired?'plain':'light'" size="mini"/>
|
|
|
</view>
|
|
|
<view class="step-line"></view>
|
|
|
</view>
|
|
|
@@ -120,12 +145,15 @@
|
|
|
<view class="step-content">
|
|
|
<view class="step-title">面试结果</view>
|
|
|
<view class="step-desc">面试完后30天内可向招聘方获取面试结果</view>
|
|
|
+ <u-tag v-if="currentStep>=4&&info.interviewResultType==null" text="等待面试结果" type="primary" mode="plain" size="mini"/>
|
|
|
+ <u-tag v-if="currentStep>=4&&info.interviewResultType!=null" :text="info.interviewResultType==0?'面试通过':(info.interviewResultType==1?info.interviewResultMsg||'面试未通过':'结果待定')" :type="info.interviewResultType==0?'primary':'error'" mode="light" size="mini"/>
|
|
|
+ <u-tag v-if="currentStep==3" text="获取面试结果" type="info" mode="light" size="mini"/>
|
|
|
</view>
|
|
|
<view class="step-line"></view>
|
|
|
</view>
|
|
|
|
|
|
<!-- 步骤5: 获取面试结果 -->
|
|
|
- <view
|
|
|
+ <!-- <view
|
|
|
class="step-item"
|
|
|
:class="{ active: currentStep >= 5, completed: currentStep > 5 }"
|
|
|
>
|
|
|
@@ -139,40 +167,45 @@
|
|
|
<view class="step-title">获取面试结果</view>
|
|
|
<view class="step-desc"></view>
|
|
|
</view>
|
|
|
- </view>
|
|
|
+ </view> -->
|
|
|
</view>
|
|
|
|
|
|
- <!-- 操作按钮 -->
|
|
|
- <view class="process-actions" v-if="showActions">
|
|
|
- <button class="action-btn" v-if="currentStep === 2" @click="handleSignIn">
|
|
|
- 立即签到
|
|
|
- </button>
|
|
|
- <button
|
|
|
- class="action-btn"
|
|
|
- v-if="currentStep === 3"
|
|
|
- @click="handleStartInterview"
|
|
|
- >
|
|
|
- 开始面试
|
|
|
- </button>
|
|
|
- <button
|
|
|
- class="action-btn"
|
|
|
- v-if="currentStep === 4"
|
|
|
- @click="handleGetResult"
|
|
|
- >
|
|
|
- 获取结果
|
|
|
- </button>
|
|
|
- <button
|
|
|
- class="action-btn complaint-btn"
|
|
|
- v-if="currentStep === 3"
|
|
|
- @click="handleComplaint"
|
|
|
- >
|
|
|
- 投诉
|
|
|
- </button>
|
|
|
- </view>
|
|
|
+
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <!-- 操作按钮 -->
|
|
|
+ <view class="process-actions" v-if="info&&info.status==2">
|
|
|
+ <button class="action-btn" v-if="currentStep === 1&&info.restHour>3" @click="updateRecord(1,3)">
|
|
|
+ 取消面试
|
|
|
+ </button>
|
|
|
+ <button class="action-btn" v-if="currentStep === 1&&info.restHour<=3" @click="updateRecord(2,2)">
|
|
|
+ 签到
|
|
|
+ </button>
|
|
|
+ <button
|
|
|
+ class="action-btn"
|
|
|
+ v-if="currentStep === 2"
|
|
|
+ @click="updateRecord(3,2)"
|
|
|
+ >
|
|
|
+ 开始面试
|
|
|
+ </button>
|
|
|
+ <button
|
|
|
+ class="action-btn"
|
|
|
+ v-if="currentStep === 4"
|
|
|
+ @click="handleGetResult"
|
|
|
+ >
|
|
|
+ 获取结果
|
|
|
+ </button>
|
|
|
+ <!-- <button
|
|
|
+ class="action-btn complaint-btn"
|
|
|
+ v-if="currentStep === 3"
|
|
|
+ @click="handleComplaint"
|
|
|
+ >
|
|
|
+ 投诉
|
|
|
+ </button> -->
|
|
|
+ </view>
|
|
|
</view>
|
|
|
+
|
|
|
</view>
|
|
|
</template>
|
|
|
<script>
|
|
|
@@ -181,10 +214,10 @@ import navBar from "@/components/nav-bar/index.vue";
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- currentStep: 3,
|
|
|
- showActions: true,
|
|
|
+ currentStep: 1,
|
|
|
recordId:'',
|
|
|
- info:{}
|
|
|
+ info:{},
|
|
|
+ covers: []
|
|
|
};
|
|
|
},
|
|
|
components: {
|
|
|
@@ -199,7 +232,33 @@ export default {
|
|
|
var that=this
|
|
|
this.$Request.getT("/app/interviewRecord/getInterviewInfo", {recordId:this.recordId}).then((res) => {
|
|
|
if (res.code == 0) {
|
|
|
+ let statusArr=['','待接受','已同意','已拒绝','已过期']
|
|
|
+ res.data.statusText=statusArr[res.data.status]
|
|
|
+ var expired=that.$queue.isDateExpired(res.data.interviewDateTime)
|
|
|
+ res.data.expired=expired[0]
|
|
|
+ res.data.restHour=expired[1]
|
|
|
+ res.data.interviewDate=res.data.interviewDateTime.slice(0, 10)
|
|
|
that.info=res.data
|
|
|
+ console.log(that.info)
|
|
|
+ that.currentStep=res.data.interviewProcesses==0?res.data.interviewProcesses+1:res.data.interviewProcesses
|
|
|
+ that.covers.push({
|
|
|
+ id:1,
|
|
|
+ latitude: res.data.lat,
|
|
|
+ longitude: res.data.lng,
|
|
|
+ iconPath:'../../static/images/mapMarker.png',
|
|
|
+ alpha:0.5,
|
|
|
+ width:20,
|
|
|
+ height:20,
|
|
|
+ callout: {
|
|
|
+ content: res.data.detailedAddress,
|
|
|
+ color: '#000', //文字颜色
|
|
|
+ fontSize: 10, //文本大小
|
|
|
+ padding: 5, //附近留白
|
|
|
+ borderRadius: 24, //边框圆角
|
|
|
+ bgColor: '#FFFFFF', //背景颜色
|
|
|
+ display: 'ALWAYS', //常显
|
|
|
+ }
|
|
|
+ })
|
|
|
} else {
|
|
|
uni.showToast({
|
|
|
title: res.msg,
|
|
|
@@ -221,6 +280,14 @@ export default {
|
|
|
},
|
|
|
|
|
|
handleGetResult() {
|
|
|
+ if(this.info.interviewResultType==null)
|
|
|
+ return this.$queue.showToast('还未出结果,请耐心等待')
|
|
|
+ uni.showModal({
|
|
|
+ title: "面试"+(this.info.interviewResultType==0?'已通过':(this.info.interviewResultType==1?'未通过':'结果待定')),
|
|
|
+ content: this.info.interviewResultMsg||'祝您生活愉快',
|
|
|
+ editable: false,
|
|
|
+ showCancel:false
|
|
|
+ });
|
|
|
this.$emit("get-result");
|
|
|
},
|
|
|
handleComplaint() {
|
|
|
@@ -240,6 +307,25 @@ export default {
|
|
|
},
|
|
|
});
|
|
|
},
|
|
|
+ updateRecord(interviewProcesses,status=2){
|
|
|
+ var that=this
|
|
|
+ that.$Request.postJson("/app/interviewRecord/saveInterview", {
|
|
|
+ recordId:that.recordId,
|
|
|
+ status:status,
|
|
|
+ interviewProcesses:interviewProcesses
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ that.info.interviewProcesses=interviewProcesses
|
|
|
+ that.info.status=status
|
|
|
+ that.currentStep=interviewProcesses
|
|
|
+ } else {
|
|
|
+ uni.showToast({
|
|
|
+ title: res.msg,
|
|
|
+ icon: "none"
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
@@ -445,6 +531,7 @@ export default {
|
|
|
font-size: 20rpx;
|
|
|
font-weight: 400;
|
|
|
line-height: 26rpx;
|
|
|
+ margin-bottom: 10rpx;
|
|
|
}
|
|
|
|
|
|
.step-line {
|