| <template> | |
| 	<view class="se-p-40 se-bgc-f5"> | |
| 		<view class="se-flex se-flex-v-sa se-flex-ai-fs se-py-20 se-px-30 se-bs se-bgc-white se-br-20"> | |
| 			<view class="se-flex"> | |
| 				<view class="se-w-160 se-h-160"> | |
| 					<image class="se-w-160 se-h-160 se-br-10" :src=" | |
|                         items.employJob &&  | |
|                         items.employJob.image || items.workHeadImg || items.jobHeadImg || '@/static/image/user.png'" mode="aspectFill"></image> | |
| 				</view> | |
| 				<view class="se-ml-20 se-flex se-flex-v-sa se-flex-ai-fs"> | |
| 					<view class="se-fw-6 se-c-black se-fs-30 se-display-ib">{{items.title}}</view> | |
| 					<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{items.categoryOne}}</view> | |
| 					<!-- <view class="se-fs-24 se-c-text-third se-display-ib">所属工种:中午搬运</view> --> | |
| 					<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{items.categoryTwo}}</view> | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-flex se-flex-h-fs se-mt-30 se-py-20 se-px-30 se-bs se-bgc-white se-br-20"> | |
| 			<image class="se-a-30" src="@/static/image/46502.png" mode="" onerror="this.src='@/static/image/user.png'"></image> | |
| 			<text class="se-c-black se-fs-32 se-ml-20">{{items.workName}}</text> | |
| 			<text class="se-c-black se-fs-32 se-ml-20">{{items.workPhone}}</text> | |
| 		</view> | |
| 		<view class="se-flex se-flex-h-fs se-mt-30 se-py-20 se-px-30 se-bs se-bgc-white se-br-20"> | |
| 			<text class="se-c-black se-fs-28">联系地址:{{items.workAddress}}</text> | |
| 		</view> | |
| 		<view class="se-py-20 se-mt-10"> | |
| 			<view class="se-flex se-flex-ai-c se-pb-10"> | |
| 				<view class="line-orange"></view> | |
| 				<view class="se-ml-10 se-fs-30 se-c-black se-fw-5"> | |
| 					购买保险(可选) | |
| 				</view> | |
| 				<view class="se-ml-auto se-fs-28 se-c-orange se-fw-6" v-if="items.premium"> | |
| 					¥{{items.premium}}元 | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-mt-10 se-py-30 se-px-30 se-bs se-bgc-white se-br-20"> | |
| 			<u-radio-group  | |
| 				size="18" | |
| 			    v-model="payRadio" | |
| 			    iconPlacement="right"> | |
| 				<view class="se-flex-v-sb se-w-p-100" style="align-items: unset;"> | |
| 					<u-radio name="2" activeColor="#ff7a31"> | |
| 						<view class="se-flex se-flex-ai-c se-pt-20"> | |
| 							<image class="se-w-35 se-h-30 se-mt-5" src="@/static/image/46662.png" mode="" onerror="this.src='@/static/image/wechat.png'"></image> | |
| 							<text class="se-c-black se-fs-30 se-ml-15">微信支付</text> | |
| 						</view> | |
| 					</u-radio> | |
| 					<u-radio name="1" activeColor="#ff7a31"> | |
| 						<view class="se-flex se-flex-ai-c se-pb-20"> | |
| 							<image class="se-w-30 se-h-25 se-mt-5" src="@/static/image/46518.png" mode="" onerror="this.src='@/static/image/user.png'"></image> | |
| 							<text class="se-c-black se-fs-30 se-ml-15">账户余额</text> | |
| 							<text class="se-c-text-third se-fs-28 se-ml-15">(余额:¥{{myMoney}})</text> | |
| 						</view> | |
| 					</u-radio> | |
| 				</view> | |
| 			</u-radio-group> | |
| 		</view> | |
| 		<view class="se-mt-10 se-py-10   se-br-20"> | |
| 			<text class="se-c-66 se-fs-22">温馨提示,下单前请仔细查看下单需知</text> | |
| 			<view class="se-flex-h-fs se-br-40 se-mt-20 se-flex-ai-fs se-h-80 se-lh-80 se-ta-c se-fs-24 se-c-33" style="align-items: unset;"> | |
| 				<u-checkbox-group @change="checkboxChange" v-model="checked"> | |
| 					<u-checkbox name="true" activeColor="#ff7a31" label-size="12" shape="circle" label="阅读并同意"></u-checkbox> | |
| 				</u-checkbox-group> | |
| 				<!-- <u-checkbox v-model="checked" activeColor="#ff7a31" label-size="12" shape="circle" label="阅读并同意"></u-checkbox> --> | |
| 				<text class="se-c-orange" @click="show=true">《用户使用协议》</text> | |
| 			</view> | |
| 		</view> | |
| 		<view class="se-pos-fixed se-pos-lb se-bs-t se-flex se-flex-h-sb se-pb-60 se-pt-20 se-bgc-white se-w-vw-100"> | |
| 			<view class="se-fs-32 se-c-black se-ml-30" @click="onDetail()"> | |
| 				<text class="se-fs-24">合计</text> | |
| 				<text class="se-c-orange">¥{{totalAmount}}元</text> | |
| 			</view> | |
| 			<view class="se-flex se-mr-30"> | |
| 				<view @click="onReject()" class="se-mr-20 se-w-120 se-h-80 se-lh-80 se-ta-c se-c-orange se-fs-28 se-br-40 se-b se-bc-orange"> | |
| 					拒绝 | |
| 				</view> | |
| 				<view @click="onPay()" class="se-w-240 se-h-80 se-lh-80 se-ta-c se-c-white se-fs-32 se-br-40 se-bgc-orange"> | |
| 					立即支付 | |
| 				</view> | |
| 			</view> | |
| 		</view> | |
| 		<u-popup :show="show" :custom-style="{alignItems:'center'}" mode="center" bg-color="transparent"> | |
| 			<view class="se-w-600  se-bgc-white se-br-40 se-p-40"> | |
| 				<view class="se-flex se-flex-h-c se-fs-34 se-fw-6 se-c-black se-mt-0"> | |
| 					用户使用协议 | |
| 				</view> | |
| 				<view class="se-lh-40 se-mt-40 se-fs-24 se-c-99"> | |
| 					<u-parse :content="getValueByName('yhsyxx')"></u-parse> | |
| 				</view> | |
| 				<view class="se-flex se-flex-h-sb se-mt-40"> | |
| 					<view @click="show=false" class="se-br-20 se-flex-1 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-32 se-c-white se-bgc-orange"> | |
| 						<text>确认</text> | |
| 					</view> | |
| 				</view> | |
| 			</view> | |
| 		</u-popup> | |
| 		 | |
| 		<!-- 免责声明组件 --> | |
| 		<disclaimer-modal ref="disclaimerModal" @cancel="onDisclaimerCancel" @confirm="onDisclaimerConfirm"></disclaimer-modal> | |
| 	</view> | |
| </template> | |
| 
 | |
| <script> | |
| 	import { | |
| 		getTaskById,orderTask,orderDetail,userInfo,payOrder | |
| 	} from "@/common/api.js" | |
| 	import DisclaimerModal from "@/components/disclaimer/index.vue" | |
| 	export default{ | |
| 		components: { | |
| 			DisclaimerModal | |
| 		}, | |
| 		data(){ | |
| 				return{ | |
| 					show:false, | |
| 					id:"", | |
| 					checked:[], | |
| 					insuranceChecked:[], // 保险选择状态 | |
| 					myMoney:"",//账户余额 | |
| 					items:{}, | |
| 					amount:"9.9", | |
| 					payRadio:"2", | |
| 					sysList:[] | |
| 				} | |
| 			}, | |
| 			computed: { | |
| 				// 计算总金额(只显示保险费用,因为这是保险支付页面) | |
| 				totalAmount() { | |
| 					return this.items.premium; | |
| 				} | |
| 			}, | |
| 			onLoad(options) { | |
| 			// this.sysList = uni.getStorageSync('sysList') | |
| 			console.info(options) | |
| 			this.id = options.id | |
| 			this.getOrderDetail() | |
| 		}, | |
| 		onShow() { | |
| 			this.onUserInfo() | |
| 		}, | |
| 		methods:{ | |
| 			getValueByName(name) { | |
| 				const item = this.sysList.find((item) => item.name == name); | |
| 				return item ? item.value : ""; | |
| 			}, | |
| 			onUserInfo(){ | |
| 				let params={} | |
| 				userInfo(params).then(response=>{ | |
| 					console.info("userInfo",response) | |
| 					this.myMoney=response.result.amount?response.result.amount:0 | |
| 				}).catch(error=>{ | |
| 					 | |
| 				}) | |
| 			}, | |
| 			checkboxChange(n) { | |
| 				console.log('change', n); | |
| 			}, | |
| 			insuranceCheckboxChange(n) { | |
| 				console.log('insurance change', n); | |
| 			}, | |
| 			getOrderDetail(){ | |
| 				orderDetail({orderId:this.id}).then(response=>{ | |
| 					console.info('orderDetail',response) | |
| 					this.items = response.result | |
| 				}).catch(error=>{ | |
| 					 | |
| 				}) | |
| 			}, | |
| 			onPay(){ | |
| 				// 根据用户的保险选择来决定是否购买保险 | |
| 				const buyInsurance = true | |
| 				// const buyInsurance = this.insuranceChecked.includes('true'); | |
| 				this.payWithInsurance(buyInsurance); | |
| 			}, | |
| 			onReject(){ | |
| 				this.$refs.disclaimerModal.open(); | |
| 			}, | |
| 			onDisclaimerCancel(){ | |
| 				// 取消免责声明,不执行任何操作 | |
| 			}, | |
| 			onDisclaimerConfirm(){ | |
| 				// 确认免责声明,继续不购买保险的支付流程 | |
| 				this.payWithInsurance(false); | |
| 			}, | |
| 			payWithInsurance(buyInsurance){ | |
| 				let that = this | |
| 				console.info(that.checked) | |
| 				if(that.checked.length==0){ | |
| 					return uni.showToast({ | |
| 						icon: "none", | |
| 						title: "请勾选隐私协议" | |
| 					}) | |
| 				} | |
| 				 | |
| 				let data = { | |
| 					orderId : that.id, | |
| 					payType : that.payRadio, | |
| 					buyInsurance: buyInsurance // 新增参数,表示是否购买保险 | |
| 				} | |
| 				 | |
| 				payOrder(data).then(res=>{ | |
| 					 | |
| 					if(data.payType == '2'){ | |
| 						uni.requestPayment({ | |
| 							provider: 'wxpay', // 服务提提供商 | |
| 							timeStamp: res.result.timeStamp, // 时间戳 | |
| 							nonceStr: res.result.nonceStr, // 随机字符串 | |
| 							package: res.result.packageValue, | |
| 							signType: res.result.signType, // 签名算法 | |
| 							paySign: res.result.paySign, // 签名 | |
| 							success: function (res) { | |
| 								that.onDetail(); | |
| 							}, | |
| 							fail: function (err) { | |
| 								uni.showToast({ | |
| 									icon:'none', | |
| 									title:"支付失败" | |
| 								}) | |
| 							} | |
| 						}); | |
| 					}else if(res.code == 200){ | |
| 						that.onDetail(); | |
| 					} | |
| 					 | |
| 				}).catch(error=>{ | |
| 					 | |
| 				}) | |
| 			}, | |
| 			onDetail(){ | |
| 				// uni.redirectTo({ | |
| 				// 	url:"/pages_subpack/order-detail/index?orderId="+this.id | |
| 				// }) | |
|                 uni.navigateBack(-1) | |
| 			} | |
| 		} | |
| 	} | |
| </script> | |
| 
 | |
| <style> | |
| 	page{ | |
| 		background-color: #f5f5f5; | |
| 	} | |
| </style> |