<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="detail.employJob.image || detail.jobHeadImg" mode="">
|
|
</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">{{ detail.title }}</view>
|
|
<view class="se-fs-24 se-c-text-third se-display-ib">所属行业:{{ detail.categoryOne }}</view>
|
|
<view class="se-fs-24 se-c-text-third se-display-ib">所属工种:{{ detail.categoryTwo }}</view>
|
|
<!-- <view class="se-fs-24 se-c-text-third se-display-ib">工作时间:3h</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=""></image>
|
|
<text class="se-c-black se-fs-32 se-ml-20">{{ detail.workUser }}</text>
|
|
<text class="se-c-black se-fs-32 se-ml-20">{{ detail.workPhone }}</text>
|
|
</view>
|
|
<view class="se-mt-30 se-py-20 se-px-30 se-bs se-bgc-white se-br-20">
|
|
<view class="se-flex se-flex-h-sb se-pb-20 se-b-b">
|
|
<view class="se-flex se-flex-h-fs">
|
|
<image class="se-w-30 se-h-40" src="@/static/image/47961.png" mode=""></image>
|
|
<text class="se-c-black se-fs-32 se-ml-20">{{ detail.workUser }}</text>
|
|
</view>
|
|
<view>
|
|
<text class="se-c-orange se-fs-32 se-ml-20">$ {{ detail.payMoney }}</text>
|
|
</view>
|
|
</view>
|
|
<!-- 新增保险费明细,仅 type==1 时显示 -->
|
|
<template v-if="detail.type == 1">
|
|
<view class="se-flex se-flex-h-sb se-pt-20">
|
|
<view class="se-flex se-flex-h-fs">
|
|
<image class="se-w-30 se-h-40" src="@/static/image/46524.png" mode=""></image>
|
|
<text class="se-c-black se-fs-32 se-ml-20">保险费</text>
|
|
</view>
|
|
<view>
|
|
<text class="se-c-orange se-fs-32 se-ml-20">¥{{ detail.premium }}</text>
|
|
</view>
|
|
</view>
|
|
<view class="se-flex se-flex-h-sb se-pt-20"
|
|
v-if="detail.employSeek">
|
|
<view class="se-flex se-flex-h-fs">
|
|
<image class="se-w-30 se-h-40" src="@/static/image/47961.png" mode=""></image>
|
|
<text class="se-c-black se-fs-32 se-ml-20">师傅试工交通费用</text>
|
|
</view>
|
|
<view class="se-flex se-flex-ai-c">
|
|
<view class="se-bgc-orange se-display-ib se-br-10 se-py-5 se-px-20 se-c-white se-fs-20">
|
|
{{ detail.employSeek.selectGo }}
|
|
</view>
|
|
<text class="se-c-orange se-fs-32 se-ml-20">$ {{ fare }}</text>
|
|
</view>
|
|
</view>
|
|
<view class="se-c-black se-p-20 se-fs-24 se-flex se-flex-ai-c se-mt-20"
|
|
style="background-color:rgba(255,164,113,0.48);">
|
|
<view class="se-w-10 se-h-10 se-br-5 se-bgc-orange se-mr-10"></view>
|
|
<text>全程共</text>
|
|
<text class="se-c-orange se-px-5 se-fw-6">{{ distance }}</text>
|
|
<text>公里</text>
|
|
</view>
|
|
<view class="se-p-20 se-fs-24 se-flex se-flex-ai-c" style="background-color:rgba(255,164,113,0.18);">
|
|
从师傅出发地到用工目的地总全程为5公里,{{ distance }}公里x¥{{ farePerKm }}=¥{{ fare }}
|
|
</view>
|
|
<view class="se-fs-22 se-lh-50 se-flex se-flex-v se-mt-10">
|
|
<text>1.公交/地铁出行费用:每公里¥{{ trafficPrice.bus }}</text>
|
|
<text>2.出租车出行费用:每公里¥{{ trafficPrice.taxi }}</text>
|
|
<text>3.网约车出行费用:每公里¥{{ trafficPrice.online }}</text>
|
|
</view>
|
|
</template>
|
|
</view>
|
|
<view class="se-mt-30 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="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=""></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">(余额:¥{{ amount }})</text>
|
|
</view>
|
|
</u-radio>
|
|
<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=""></image>
|
|
<text class="se-c-black se-fs-30 se-ml-15">微信支付</text>
|
|
</view>
|
|
</u-radio>
|
|
</view>
|
|
</u-radio-group>
|
|
</view>
|
|
<view class="se-mt-10 se-py-10 se-br-20"
|
|
style="display: flex;flex-direction: column;align-items: center;">
|
|
<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 :checked="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">
|
|
<text class="se-fs-24">合计</text>
|
|
<text class="se-c-orange">¥{{price}}元</text>
|
|
</view>
|
|
<view @click="payOrderCompany"
|
|
class="se-mr-30 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>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
orderDetail,
|
|
deleteOrder,
|
|
confirmOrder,
|
|
payOrderCompany,
|
|
userInfo,
|
|
} from "@/common/api.js"
|
|
import position from "@/utils/position.js"
|
|
export default {
|
|
data() {
|
|
return {
|
|
amount: 0,
|
|
payRadio: "1",
|
|
orderId : 0,
|
|
checked : 0,
|
|
detail : {},
|
|
|
|
// type 0企业发布招聘,企业不需要支付保险、交通费,由个人承担
|
|
// type 1个人发布求职,企业承担保险费、交通费用
|
|
|
|
// 出行价格定义
|
|
trafficPrice: {
|
|
bus: 2, // 公交/地铁单价
|
|
taxi: 3, // 出租车每公里单价
|
|
online: 2.5 // 网约车每公里单价
|
|
},
|
|
fare : 0,//出行费
|
|
distance : 0,//距离
|
|
farePerKm : 2,//每公里单价
|
|
}
|
|
},
|
|
computed : {
|
|
price(){
|
|
// type 0企业发布招聘,企业不需要支付保险、交通费,由个人承担
|
|
// type 1个人发布求职,企业承担保险费、交通费用
|
|
let basePrice = Number(this.detail.payMoney) || 0;
|
|
let premiumFee = Number(this.detail.premium) || 0;
|
|
let trafficFee = Number(this.fare) || 0;
|
|
|
|
if (this.detail.type == 1) {
|
|
// 个人发布求职,企业承担保险费、交通费用
|
|
return basePrice + premiumFee + trafficFee;
|
|
} else {
|
|
// 企业发布招聘,企业不需要支付保险、交通费,由个人承担
|
|
return basePrice;
|
|
}
|
|
},
|
|
},
|
|
onLoad(options) {
|
|
this.orderId = options.orderId
|
|
},
|
|
onShow() {
|
|
this.onOrderDetail()
|
|
this.onUserInfo()
|
|
},
|
|
methods: {
|
|
onUserInfo(){
|
|
let params={}
|
|
userInfo(params).then(response=>{
|
|
this.amount=response.result.amount?response.result.amount:0
|
|
}).catch(error=>{
|
|
|
|
})
|
|
},
|
|
onOrderDetail() {
|
|
let that = this
|
|
let params = {
|
|
orderId: that.orderId
|
|
}
|
|
orderDetail(params).then(response => {
|
|
that.detail = response.result
|
|
|
|
that.calcDistance()
|
|
that.calcFare()
|
|
|
|
}).catch(error => {
|
|
console.log(error)
|
|
})
|
|
},
|
|
//计算距离
|
|
calcDistance(){
|
|
console.log('calcDistance-计算距离')
|
|
let distance = 0;
|
|
if (this.detail.type == 1) {
|
|
let seek = this.detail.employSeek
|
|
let company = this.detail.employAuthenticationCompany
|
|
distance = position.calculateDistance(seek.latitude, seek.longitude, company.latitude, company.longitude)
|
|
}
|
|
this.distance = distance;
|
|
},
|
|
//计算路费
|
|
calcFare(){
|
|
console.log('calcFare-计算费用')
|
|
let fare = 0;
|
|
if (this.detail.type == 1) {
|
|
// 个人发布求职,企业承担保险费、交通费用
|
|
let seek = this.detail.employSeek
|
|
|
|
if(!seek) return
|
|
|
|
// console.log(this.$store.state.data.configList);
|
|
|
|
let configList = this.$store.state.data.configList
|
|
|
|
// if(seek.selectGo.includes('出租车')){
|
|
// this.farePerKm = this.trafficPrice.taxi
|
|
// }else if(seek.selectGo.includes('网约车')){
|
|
// this.farePerKm = this.trafficPrice.online
|
|
// }else if(seek.selectGo.includes('公交')){
|
|
// this.farePerKm = this.trafficPrice.bus
|
|
// }
|
|
|
|
if(seek.selectGo.includes('出租车')){
|
|
this.farePerKm = configList.taxi_price
|
|
}else if(seek.selectGo.includes('网约车')){
|
|
this.farePerKm = configList.online_price
|
|
}else if(seek.selectGo.includes('公交')){
|
|
this.farePerKm = configList.bus_price
|
|
}
|
|
|
|
fare = this.farePerKm * this.distance;
|
|
|
|
}
|
|
this.fare = fare;
|
|
},
|
|
onDetail() {
|
|
uni.navigateTo({
|
|
url: "/pages_subpack/order-detail/index"
|
|
})
|
|
},
|
|
payOrderCompany() {
|
|
|
|
let that = this
|
|
|
|
if(that.checked.length==0){
|
|
return uni.showToast({
|
|
icon: "none",
|
|
title: "请勾选隐私协议"
|
|
})
|
|
}
|
|
|
|
let data = {
|
|
orderId: this.orderId,
|
|
payType: this.payRadio,
|
|
fare : this.fare || 0,//出行费
|
|
}
|
|
|
|
payOrderCompany(data)
|
|
.then(res => {
|
|
if (res.code == 200) {
|
|
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) {
|
|
uni.navigateBack(-1)
|
|
},
|
|
fail: function(err) {
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: "支付失败"
|
|
})
|
|
}
|
|
});
|
|
} else if (res.code == 200) {
|
|
uni.navigateBack(-1)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
</style>
|