| <template> | |
| 	<view class="se-p-40"> | |
| 		<view class="se-fs-36 se-c-black se-fw-6 se-py-20"> | |
| 			{{items.title}} | |
| 		</view> | |
| 		<!-- <view class="se-fs-26 se-c-orange se-fw-6 "> | |
| 			{{items.salaryMin}} - {{items.salaryMax}}元/月 | |
| 		</view> --> | |
| 		<!-- 添加日薪月薪展示 --> | |
| 		<view class="se-flex se-flex-h-sb se-py-20 se-b-b"> | |
| 			<view class="se-flex se-flex-v-c"> | |
| 				<text class="se-fs-32 se-c-text-sub">试工日薪:</text> | |
| 				<text class="se-fs-40 se-c-orange se-fw-6">{{ items.salaryDay }}元</text> | |
| 			</view> | |
| 			<view class="se-flex se-flex-v-c"> | |
| 				<text class="se-fs-32 se-c-text-sub">月薪:</text> | |
| 				<text class="se-fs-40 se-c-orange se-fw-6">{{items.salaryMin}} - {{items.salaryMax}}元</text> | |
| 			</view> | |
| 		</view> | |
| 		<!-- 添加试工时间显示 --> | |
| 		<view class="se-py-20 se-b-b" v-if="items.startTime && items.endTime"> | |
| 			<view class="se-fs-32 se-c-black se-fw-6 se-pb-10"> | |
| 				试工时间 | |
| 			</view> | |
| 			<view class="se-flex se-flex-v"> | |
| 				<view class="se-fs-28 se-c-text-sub se-pb-5"> | |
| 					<text>开始时间:</text> | |
| 					<text class="se-c-black">{{ formatTime(items.startTime) }}</text> | |
| 				</view> | |
| 				<view class="se-fs-28 se-c-text-sub"> | |
| 					<text>结束时间:</text> | |
| 					<text class="se-c-black">{{ formatTime(items.endTime) }}</text> | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-flex se-flex-v se-py-20"> | |
| 			<view class="se-fs-24 se-c-text"> | |
| 				<text>{{items.address}}</text> | |
| 				<!-- <text class="se-ml-20">不限</text> --> | |
| 			</view> | |
| 			<view class="se-fs-24 se-c-99 se-pt-20"> | |
| 				该职位位于{{items.createTime}}发布 | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-flex se-flex-h-sb se-py-40 se-b-b"> | |
| 			<view class="se-flex"> | |
| 				<view> | |
| 					<image class="se-a-80 se-br-p-50 se-bgc-f5" :src="items.employAuthenticationPerson.image" mode=""></image> | |
| 				</view> | |
| 				<view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs"> | |
| 					<text class="se-fw-6 se-c-black se-fs-30">{{items.employAuthenticationCompany.name}}</text> | |
| 					<text class="se-fs-24 se-c-text-third">{{items.employAuthenticationCompany.company}}</text> | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-py-40 se-b-b"> | |
| 			<view class="se-fs-36 se-c-black"> | |
| 				工作地址 | |
| 			</view> | |
| 			<view class="se-fs-24 se-c-66 se-pt-10 se-flex se-flex-h" @click="openAddress()"> | |
| 				<text>{{items.address}}</text> | |
| 				<u-icon name="arrow-right"></u-icon> | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-py-40 se-b-b"> | |
| 			<view class="se-fs-36 se-c-black"> | |
| 				职位详情 | |
| 			</view> | |
| 			<view class="se-pt-20"> | |
| 				<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.payType != null && items.payType != undefined"> | |
| 					<template v-if="items.payType == 0">提前支付</template> | |
| 					<template v-else>先试用后支付</template> | |
| 				</text> | |
| 				<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryOne">{{items.categoryOne}}</text> | |
| 				<text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5" v-if="items.categoryTwo">{{items.categoryTwo}}</text> | |
| 				<!-- <text class="se-c-text-sub se-fs-22 se-mr-10 se-py-5 se-px-20 se-br-5 se-bgc-f5">水泥搬运</text> --> | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-fs-24 se-pt-20 se-pb-20 se-lh-40"> | |
| 			<text class="se-fs-24 se-c-text-third">岗位要求</text> | |
| 			<u-parse :content="items.details"></u-parse> | |
| 		</view> | |
| 		<view class="se-px-20 se-pt-20"> | |
| 			<view class="se-px-20 se-pb-80 se-fs-20 se-flex"> | |
| 				<view @click="onPayment" | |
| 					class="se-mx-10 se-flex-1 se-br-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-28 se-c-white se-bgc-orange"> | |
| 					<text>立即应聘</text> | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 	</view> | |
| </template> | |
| <script> | |
| 	import { | |
| 		getTaskById,orderTask,addOrderWork | |
| 	} from "@/common/api.js" | |
| 	export default{ | |
| 		data(){ | |
| 			return{ | |
| 				id:"", | |
| 				items:{}, | |
| 			} | |
| 		}, | |
| 		onLoad(options) { | |
| 			console.info(options) | |
| 			this.id = options.id | |
| 			this.onTask() | |
| 		}, | |
| 		methods:{ | |
| 			onTask(){ | |
| 				let that = this | |
| 				getTaskById({id:that.id}).then(response=>{ | |
| 					console.info('getTaskById',response); | |
| 					that.items = response.result | |
| 				}).catch(error=>{ | |
| 					 | |
| 				}) | |
| 			}, | |
| 			formatTime(timeStr) { | |
| 				if (!timeStr) return ''; | |
| 				// 将时间字符串转换为更友好的格式 | |
| 				const date = new Date(timeStr); | |
| 				const year = date.getFullYear(); | |
| 				const month = String(date.getMonth() + 1).padStart(2, '0'); | |
| 				const day = String(date.getDate()).padStart(2, '0'); | |
| 				const hours = String(date.getHours()).padStart(2, '0'); | |
| 				const minutes = String(date.getMinutes()).padStart(2, '0'); | |
| 				 | |
| 				return `${year}-${month}-${day} ${hours}:${minutes}`; | |
| 			}, | |
| 			onPayment(){ | |
| 				uni.showLoading({ | |
| 					title: '加载中' | |
| 				}) | |
| 				// 检查个人认证状态 | |
| 				this.$store.dispatch('onPersonalAuth', { | |
| 					success: (person) => { | |
| 						// 个人认证通过,继续检查简历状态 | |
| 						this.$store.dispatch('onResumeComplete', { | |
| 							success: (resume) => { | |
| 								this.addOrderWork() | |
| 							}, | |
| 							fail: (resume) => { | |
| 								uni.hideLoading() | |
| 								// 简历未完成 | |
| 								uni.showModal({ | |
| 									title: '提示', | |
| 									content: '请先完成简历信息,才能接单', | |
| 									showCancel: false, | |
| 									confirmText: '去完善', | |
| 									success: (res) => { | |
| 										if (res.confirm) { | |
| 											uni.navigateTo({ | |
| 												url: '/pages_subpack/resume/index' | |
| 											}) | |
| 										} | |
| 									} | |
| 								}) | |
| 							} | |
| 						}) | |
| 					}, | |
| 					fail: (person) => { | |
| 						uni.hideLoading() | |
| 						// 个人认证未通过 | |
| 						uni.showModal({ | |
| 							title: '提示', | |
| 							content: '请先完成个人认证,审核通过后才能接单', | |
| 							showCancel: false, | |
| 							confirmText: '去认证', | |
| 							success: (res) => { | |
| 								if (res.confirm) { | |
| 									uni.navigateTo({ | |
| 										url: '/pages_subpack/person/index' | |
| 									}) | |
| 								} | |
| 							} | |
| 						}) | |
| 					} | |
| 				}) | |
| 			}, | |
|             addOrderWork(){ | |
|                 // 简历已完成,执行接单操作 | |
|                 addOrderWork({id:this.id}).then(response=>{ | |
|                     uni.hideLoading() | |
|                     console.log("下单成功"); | |
|                     // 根据订单状态决定是否跳转到支付页面 | |
|                     if (response.result) { | |
|                         // uni.navigateTo({ | |
|                         //     url:"/pages_subpack/payment/index?id="+response.result.id | |
|                         // }) | |
|                         uni.navigateTo({ | |
|                             url:"/pages_subpack/order-detail/index?orderId="+response.result.id | |
|                         }) | |
|                     } else { | |
|                         // 状态不为0时不跳转,可以显示提示信息 | |
|                         uni.showToast({ | |
|                             title: '操作完成', | |
|                             icon: 'success' | |
|                         }) | |
|                     } | |
|                 }).catch(error=>{ | |
|                     console.log(error); | |
|                     uni.hideLoading() | |
|                     // 处理错误情况 | |
|                     if (error.result && error.result.id) { | |
|                         // 根据订单状态决定跳转 | |
|                         // if (error.result.status == 0) { | |
|                             setTimeout(()=>{ | |
|                                 // if(error.result.orderStatusSeek == 'Y'){ | |
|                                     uni.navigateTo({  | |
|                                         url:"/pages_subpack/order-detail/index?orderId="+error.result.id | |
|                                     }) | |
|                                 // }else{ | |
|                                     // uni.navigateTo({  | |
|                                     //     url:"/pages_subpack/payment/index?id="+error.result.id | |
|                                     // }) | |
|                                 // } | |
|                             }, 800); | |
|                         // } else { | |
|                         //     // 显示错误信息 | |
|                         //     uni.showToast({ | |
|                         //         title: error.message || '操作失败', | |
|                         //         icon: 'none' | |
|                         //     }) | |
|                         // } | |
|                     } else { | |
|                         uni.showToast({ | |
|                             title: error.message || '操作失败', | |
|                             icon: 'none' | |
|                         }) | |
|                     } | |
|                 }) | |
|             }, | |
| 			openAddress(){ | |
| 				let that = this | |
| 				console.info(that.items.latitude) | |
| 				console.info(that.items.longitude) | |
| 				wx.openLocation({ | |
| 					latitude: Number(that.items.latitude), | |
| 					longitude: Number(that.items.longitude), | |
| 					name: that.items.title,  | |
| 					address: that.items.address, | |
| 					scale: 12, | |
| 					    success: function(res) { | |
| 					        console.log(JSON.stringify(res)); | |
| 					    }, | |
| 					    fail: function(res) { | |
| 					        console.log(`openLocation fail:${JSON.stringify(res)}`); | |
| 					    } | |
| 				}) | |
| 				// uni.openLocation({ | |
| 				//     latitude: 30.492121, | |
| 				//     longitude: 114.410324, | |
| 				//     name: "保利国际中心", | |
| 				//     address: "武汉市洪山区关山大道", | |
| 				//     scale: 12, | |
| 				//     success: function(res) { | |
| 				//         console.log(JSON.stringify(res)); | |
| 				//     }, | |
| 				//     fail: function(res) { | |
| 				//         console.log(`openLocation fail:${JSON.stringify(res)}`); | |
| 				//     } | |
| 				// }) | |
| 			} | |
| 		} | |
| 	} | |
| </script> | |
| 
 | |
| <style> | |
| 	page{ | |
| 		background-color: #ffffff; | |
| 	} | |
| </style> |