Jelajahi Sumber

Merge branch 'master' of https://git.nanodreamtech.com/Boss/yizhizan-h5

刘阳 7 bulan lalu
induk
melakukan
1410081f2f

+ 99 - 24
my/jilu/bossMianshiDetail.vue

@@ -82,7 +82,7 @@
       <view class="detail-item">
         <view class="txt-content">
           <view class="txt-desc">求职者不错?向他发起录用吧~</view>
-          <view class="txt-btn">录用邀约</view>
+          <view @click="showResult = true;resultType=0" class="txt-btn">录用邀约</view>
         </view>
       </view>
       <view class="detail-item">
@@ -90,49 +90,53 @@
           将面试结果发送给对方
         </view>
         <view class="txt-content">
-          <view class="txt-content-item">
+          <view class="txt-content-item" @click="showResult = true;resultType=0">
             <image src="@/static/images/my/mianshitongguo.svg" mode="scaleToFill" />
             <view class="txt-mianshi">通过</view>
           </view>
-          <view class="txt-content-item">
+          <view class="txt-content-item" @click="showResult = true;resultType=1">
             <image src="@/static/images/my/kaolvyixia.svg" mode="scaleToFill" />
             <view class="txt-mianshi">考虑一下</view>
           </view>
-          <view class="txt-content-item">
+          <view class="txt-content-item" @click="showResult = true;resultType=2">
             <image src="@/static/images/my/butongguo.svg" mode="scaleToFill" />
             <view class="txt-mianshi">不通过</view>
           </view>
         </view>
       </view>
-      <view class="detail-item" @click="showRecord = true">
+      <view v-if="info.interviewRecordType!=null" class="detail-item">
         <view class="user-title-second"> 面试记录 </view>
         <view class="tag-box">
-          <view class="mianshi-tag">待定</view>
+          <view v-for="item in info.interviewRecordType&&info.interviewRecordType.split(',')||[]" class="mianshi-tag">{{item}}</view>
         </view>
         <view class="mianshi-result-txt">
-          这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
-          这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
+          {{info.interviewRecordMsg}}
         </view>
       </view>
-      <view class="detail-item" @click="showResult = true">
+      <view v-if="info.interviewResultType!=null" class="detail-item">
         <view class="user-title-second">
           <text>面试结果</text>
           <view class="user-img-result">
             <image
-              src="@/static/images/my/mianshitongguo.svg"
+              :src="'@/static/images/my/'+info.interviewResultType==0?'mianshitongguo':(info.interviewResultType==1?'kaolvyixia':'butongguo')+'.svg'"
               mode="scaleToFill"
-            />面试通过
+            />{{info.interviewResultType==0?'面试通过':(info.interviewResultType==1?'考虑一下':'不通过')}}
           </view></view
         >
         <view class="mianshi-result-txt">
-          这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
-          这是一条文案这是一条文案这是一条文案这是一条文案这是一条文案
+          {{info.interviewResultMsg}}
         </view>
       </view>
     </view>
     <view class="btn-bottom">
+		<block v-if="info.restHour>3">
       <view class="btn-item" @click="cancelInterview = true">取消面试</view>
       <view class="btn-item" @click="onEdit">修改面试</view>
+	  </block>
+	  <block v-else>
+		 <view class="btn-item" @click="onEdit">重新邀约</view> 
+		 <view v-if="currentStep==4" class="btn-item" @click="showRecord=true">编辑面试记录</view> 
+	  </block>
     </view>
     <u-popup v-model="showRecord" mode="bottom" border-radius="40">
       <view class="mianshi-record">
@@ -153,7 +157,6 @@
               v-model="text"
               placeholder="请补充其他说明,不超过500个字"
               maxlength="500"
-              @input="onInput"
               class="textarea"
               style="width:100%;height:100%;"
             ></textarea>
@@ -162,23 +165,23 @@
             >
           </view>
         </view>
-        <view class="btn-mianshi">保存</view>
+        <view @click="updateRecord" class="btn-mianshi">保存</view>
       </view>
     </u-popup>
     <u-popup v-model="showResult" mode="bottom" border-radius="40">
       <view class="mianshi-record">
         <view class="mianshi-title"> 面试结果</view>
         <view class="mianshi-record-content">
-          <view class="txt-content" style="padding: 54rpx;box-sizing:border-box;">
-            <view class="txt-content-item">
+          <view class="txt-content" style="padding: 54rpx;box-sizing:border-box;justify-content: space-around;">
+            <view v-if="resultType==0" class="txt-content-item">
               <image src="@/static/images/my/mianshitongguo.svg" mode="scaleToFill" />
               <view class="txt-mianshi">通过</view>
             </view>
-            <view class="txt-content-item">
+            <view v-if="resultType==1" class="txt-content-item">
               <image src="@/static/images/my/kaolvyixia.svg" mode="scaleToFill" />
               <view class="txt-mianshi">考虑一下</view>
             </view>
-            <view class="txt-content-item">
+            <view v-if="resultType==2" class="txt-content-item">
               <image src="@/static/images/my/butongguo.svg" mode="scaleToFill" />
               <view class="txt-mianshi">不通过</view>
             </view>
@@ -188,7 +191,6 @@
               v-model="text"
               placeholder="请补充其他说明,不超过500个字"
               maxlength="500"
-              @input="onInput"
               class="textarea"
               style="width:100%;height:100%;"
             ></textarea>
@@ -197,7 +199,7 @@
             >
           </view>
         </view>
-        <view class="btn-mianshi">保存</view>
+        <view @click="submitResult()" class="btn-mianshi">保存</view>
       </view>
     </u-popup>
     <u-popup v-model="cancelInterview" mode="bottom" border-radius="40">
@@ -231,7 +233,7 @@
             >
           </view>
         </view>
-        <view class="btn-mianshi" hover-class="btn-pressed" @click="() => {cancelInterview = false;cancel = true;}">提交</view>
+        <view class="btn-mianshi" hover-class="btn-pressed" @click="quitInterview">提交</view>
       </view>
 		</u-popup>
     <u-popup v-model="cancel" mode="center" border-radius="40">
@@ -273,6 +275,8 @@ export default {
       cancel:false,
 	  info:{},
 	  recordId:'',
+	  resultType:0,
+	  isWork:false
     };
   },
   components: {
@@ -361,8 +365,8 @@ export default {
     },
     onEdit(){
       uni.navigateTo({
-        url: '/my/jilu/editInterview'
-      })
+      						url:`/pages/msg/interviewInvitation?recordId=${this.info.recordId}&postPushId=${this.info.postPush.postPushId}&resumesId=${this.info.resumesId}&interviewerId=${this.info.userEntity.userId}`
+      					})
     },
 	goTo(url){
 		uni.navigateTo({
@@ -374,6 +378,77 @@ export default {
 		uni.makePhoneCall({
 			phoneNumber: phone, //仅为示例
 		});
+	},
+	submitResult(){
+		var that=this
+		if(this.isWork)
+			return
+		this.isWork=true
+		that.$Request.postJson("/app/interviewRecord/saveInterview", {
+			recordId:that.recordId,
+			interviewResultType:that.resultType,
+			interviewResultMsg:that.text
+		}).then(res => {
+			that.isWork=false
+			that.showResult=false
+			if (res.code === 0) {
+				that.info.interviewResultMsg=that.text
+				that.info.interviewResultType=that.resultType
+			} else {
+				uni.showToast({
+					title: res.msg,
+					icon: "none"
+				})
+			}
+		})
+	},
+	updateRecord(){
+		var that=this
+		if(this.isWork)
+			return
+		this.isWork=true
+		that.$Request.postJson("/app/interviewRecord/saveInterview", {
+			recordId:that.recordId,
+			interviewRecordType:that.recordList[that.isCheck],
+			interviewRecordMsg:that.text
+		}).then(res => {
+			that.isWork=false
+			that.showRecord=false
+			if (res.code === 0) {
+				that.info.interviewRecordMsg=that.text
+				that.info.interviewRecordType=that.recordList[that.isCheck]
+			} else {
+				uni.showToast({
+					title: res.msg,
+					icon: "none"
+				})
+			}
+		})
+	},
+	quitInterview(){
+		var that=this
+		if(this.isWork)
+			return
+		this.isWork=true
+		that.$Request.postJson("/app/interviewRecord/saveInterview", {
+			recordId:that.recordId,
+			status:3,
+			interviewQuitType:that.cancelList[that.isCheck],
+			interviewQuitMsg:that.text
+		}).then(res => {
+			that.isWork=false
+			that.cancelInterview=false
+			if (res.code === 0) {
+				that.info.status=3
+				that.info.interviewQuitType=that.cancelList[that.isCheck]
+				that.info.interviewQuitMsg=that.text
+			} else {
+				uni.showToast({
+					title: res.msg,
+					icon: "none"
+				})
+			}
+		})
 	}
   },
 };

+ 13 - 13
my/jilu/jilu.vue

@@ -13,7 +13,7 @@
       </view>
 
       <view>
-        <view class="box" v-for="(item, index) in goods" :key="index">
+        <view class="box" v-for="(item, index) in goods" :key="index" @click="goNav('bossMianshiDetail?recordId='+item.recordId)">
           <view class="flex align-center justify-between padding-lr padding-tb-sm">
             <view style="color: #016bf6; font-size: 28rpx; font-weight: bold">{{
               item.statusName
@@ -23,10 +23,10 @@
           <view style="width: 100%; height: 1rpx; background: #eeeeee"></view>
           <view class="padding-lr padding-tb-sm">
             <view class="flex align-center justify-between">
-              <view class="text-bold" style="color: #1f1f1f; font-size: 38upx">
+              <view class="text-bold" style="color: #1f1f1f; font-size: 38rpx">
                 {{ item.postPush ? item.postPush.stationName : "" }}
               </view>
-              <view class="" style="color: #016bf6; font-size: 38upx"
+              <view class="" style="color: #016bf6; font-size: 38rpx"
                 ><text class="text-lg text-bold">{{
                   item.postPush ? item.postPush.salaryRange : ""
                 }}</text></view
@@ -258,7 +258,7 @@ export default {
     },
     updataServeType(item) {
 		return uni.navigateTo({
-								url:`/pages/msg/interviewInvitation?mianshiId=${item.recordId}&postPushId=${item.postPush.postPushId}&resumesId=${item.resumesId}&interviewerId=${item.userEntity.userId}`
+								url:`/pages/msg/interviewInvitation?recordId=${item.recordId}&postPushId=${item.postPush.postPushId}&resumesId=${item.resumesId}&interviewerId=${item.userEntity.userId}`
 							})
       this.miamshi = {
         interviewDateTime: item.interviewDateTime, //面试时间
@@ -551,25 +551,25 @@ page {
 
 .box {
   background: #ffffff;
-  border-radius: 24upx;
-  margin: 30upx;
+  border-radius: 24rpx;
+  margin: 30rpx;
 }
 
 .argrtn {
   background: #f6f6f6;
   color: #666666;
-  font-size: 24upx;
-  border-radius: 8upx;
-  padding: 5upx 20upx;
-  margin-right: 20upx;
-  margin-bottom: 20upx;
+  font-size: 24rpx;
+  border-radius: 8rpx;
+  padding: 5rpx 20rpx;
+  margin-right: 20rpx;
+  margin-bottom: 20rpx;
 }
 
 .btn {
   border: 1px solid #016bf6;
   border-radius: 30px;
   color: #016bf6;
-  padding: 14upx 35upx;
-  margin-left: 20upx;
+  padding: 14rpx 35rpx;
+  margin-left: 20rpx;
 }
 </style>

+ 51 - 6
pages/msg/interviewInvitation.vue

@@ -24,7 +24,7 @@
 				</view>
 				<view class="cell" v-if="radioValue == 0">
 					<view class="cell-label">面试地址</view>
-					<view class="cell-input" hover-class="cell-hover" @click="goPage('address')">
+					<view class="cell-input" hover-class="cell-hover" @click="goPage('address',{detailedAddress,address,latitude,longitude})">
 						<view class="m-ellipsis">{{selectedAddress || '请选择地址'}}</view>
 						<image class="cell-icon" src="/static/images/msg/down_arrow.svg" mode="aspectFit"></image>
 					</view>
@@ -48,7 +48,7 @@
 			<view class="card-box" style="padding: 0;">
 				<view class="note">
 					<view class="note-label note-time">面试日期</view>
-					<uni-calendar class="uni-calendar--hook" :startDate="date" :showMonth="false" @change="change"
+					<uni-calendar class="uni-calendar--hook" :selected="selectedDate" :startDate="date" :showMonth="false" @change="change"
 						@monthSwitch="monthSwitch" />
 				</view>
 			</view>
@@ -230,9 +230,9 @@
 				hrName: "",
 				signTime: "",
 				date: "",
-				time: ""
-
-
+				time: "",
+				recordId:'',
+				selectedDate:[]
 			};
 		},
 		components: {
@@ -254,11 +254,15 @@
 				this.interviewerId = option.interviewerId
 				console.log("接收到的参数interviewerId:",option.interviewerId)
 			}
+			
+			if (option&&option.recordId) {
+				this.recordId = option.recordId
+					console.log("接收到的参数resumesId:",option.resumesId)
+			}
 
 			this.PostPushDetails()
 			this.getCurrentDateTime()
 			this.selectHrPhone()
-
 		},
 
 		methods: {
@@ -290,6 +294,8 @@
 							index: 0 // 添加下标
 						}];
 						this.companyId = res.data.companyId
+						if(this.recordId!='')
+							this.getData()
 						console.log(this.jobList)
 					} else {
 						uni.hideLoading()
@@ -435,9 +441,48 @@
 				this.methodActiveIndex = i
 				this.selecteMethodText = val
 			},
+			getData(){
+				var that=this
+				this.$Request.getT("/app/interviewRecord/getInterviewInfo", {recordId:this.recordId}).then((res) => {
+				  if (res.code == 0) {
+					  this.type=res.data.type
+					  this.popRadioValue = res.data.postPush.ruleClassifyId;
+					  this.jobList.forEach(function(item){
+						  if(item.ruleClassifyId==that.popRadioValue)
+							that.selectedJob = item
+					  })
+						this.latitude=res.data.lat
+					  this.longitude=res.data.lng
+					  
+					  this.textareaValue=res.data.remarks
+					  this.interviewDateTime=res.data.interviewDateTime.substring(0,10)
+					  this.selectedDate=[{date:this.interviewDateTime,info:'已预约'}]
+					  this.address=res.data.address
+					  this.detailedAddress=res.data.detailedAddress
+					  this.selectedAddress = this.address + this.detailedAddress
+					  this.hrPhone=res.data.hrPhone
+					  this.personText=res.data.hrName
+					  
+					this.selectedTime=res.data.detailTime
+					if(this.selectedTime){
+						var timeLimit=res.data.detailTime.split(' ')
+						var hourMinute=timeLimit[0].split(':')
+						this.timeValue=[this.hours.indexOf(parseInt(hourMinute[0])),this.minutes.indexOf(parseInt(hourMinute[1])),this.meridiem.indexOf(timeLimit[1])]
+					}
+					this.selecteMethodText=res.data.onlineType||''
+					this.onlineMsg=res.data=res.data.onlineMsg||''
+				  } else {
+				    uni.showToast({
+				      title: res.msg,
+				      icon: "none",
+				    });
+				  }
+				});
+			}, 
 			confirmRules() {
 				
 				var data = {
+					recordId:this.recordId,
 					interviewDateTime: this.interviewDateTime+' 00:00:00',
 					postPushId: this.postPushId,
 					resumesId: this.resumesId,

+ 6 - 0
pages/msg/selectInterview.vue

@@ -63,6 +63,12 @@
 					this.address = data.item.hrName
 					this.floor = data.item.hrPhone
 				}
+				if (data.type === 'address' && data.item) {
+					this.latitude = data.item.latitude
+					this.longitude = data.item.longitude
+					this.address = data.item.address
+					this.floor = data.item.detailedAddress
+				}
 			})
 		},
 		computed: {

+ 4 - 4
pages/talentSearch/resumeDetail.vue

@@ -29,7 +29,7 @@
 
 			<view class="current-job">
 				<image src="../../static/images/aixin.svg" class="job-icon" mode="aspectFit"></image>
-				<text class="job-text">{{workExpList[0].position || '暂无'}}</text>
+				<text class="job-text">{{workExpList&&workExpList[0].position || '暂无'}}</text>
 			</view>
 
 			<view class="availability">
@@ -74,8 +74,8 @@
 
 				<view class="job-expectation">
 					<text
-						class="expectation-text">{{intentions[0].ruleClassifyName || '无'}},{{intentions[0].citys || '无'}}</text>
-					<text class="salary-range">{{intentions[0].salaryRange}}元</text>
+						class="expectation-text">{{intentions&&intentions[0].ruleClassifyName || '无'}},{{intentions&&intentions[0].citys || '无'}}</text>
+					<text class="salary-range">{{intentions&&intentions[0].salaryRange}}元</text>
 				</view>
 			</view>
 
@@ -166,7 +166,7 @@
 				</view>
 
 				<view class="certificates-grid">
-					<view class="certificate-tag" v-for="skll in skills || {}" :key="index">{{skll.skillName}}</view>
+					<view class="certificate-tag" v-for="(skll,index) in skills || {}" :key="index">{{skll.skillName}}</view>
 				</view>
 			</view>