*/ | */ | ||||
import { onLoad, onShow, onUnload } from "@dcloudio/uni-app"; | import { onLoad, onShow, onUnload } from "@dcloudio/uni-app"; | ||||
import { reactive, ref } from 'vue'; | import { reactive, ref } from 'vue'; | ||||
import { hasLogin, msg } from "@/utils/utils"; | |||||
import { msg } from "@/utils/utils"; | |||||
import { orderList } from "@/utils/network/api.js"; | import { orderList } from "@/utils/network/api.js"; | ||||
import useOrderSkip from "@/composables/order/useOrderSkip"; | import useOrderSkip from "@/composables/order/useOrderSkip"; | ||||
//办理订单按钮跳转业务逻辑 | //办理订单按钮跳转业务逻辑 |
"navigationBarTitleText": "签署用户协议" | "navigationBarTitleText": "签署用户协议" | ||||
} | } | ||||
}, | }, | ||||
{ | |||||
"path": "webView", | |||||
"style": { | |||||
"navigationBarTitleText": "签署用户协议", | |||||
"navigationStyle": "custom" | |||||
} | |||||
}, | |||||
{ | { | ||||
"path": "payment/payment", | "path": "payment/payment", | ||||
"style": { | "style": { |
data: { | data: { | ||||
orderId: state.orderId, | orderId: state.orderId, | ||||
wxOpenId: openidData.openid, | wxOpenId: openidData.openid, | ||||
payType: val.payType | |||||
payType: val.payType, | |||||
longitude:state.longitude, //经度 | |||||
latitude:state.latitude //纬度 | |||||
}, | }, | ||||
method: "POST", | method: "POST", | ||||
showLoading: true, | showLoading: true, | ||||
if (data.paymentStatus == 'ALLSUCCESS') { | if (data.paymentStatus == 'ALLSUCCESS') { | ||||
// isValueCard 1 储值卡 2 记账卡 | // isValueCard 1 储值卡 2 记账卡 | ||||
if (state.isValueCard == 1) { | if (state.isValueCard == 1) { | ||||
uni.switchTab({ | |||||
url: "/pages/order/order" | |||||
}) | |||||
if(state.orderQuery == '1'){ | |||||
uni.navigateBack() | |||||
}else{ | |||||
uni.switchTab({ | |||||
url: "/pages/order/order" | |||||
}) | |||||
} | |||||
} else { | } else { | ||||
navTo( | navTo( | ||||
`/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`, | `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`, | ||||
} | } | ||||
console.log("state.dataArray", state.dataArray) | console.log("state.dataArray", state.dataArray) | ||||
}); | }); | ||||
uni.getLocation({ | |||||
type: 'wgs84', | |||||
success: function (res) { | |||||
console.log("经纬福",res) | |||||
state.longitude = res.longitude; | |||||
state.latitude = res.latitude; | |||||
}, | |||||
}) | |||||
}); | }); | ||||
//解析URL获取参数 | //解析URL获取参数 | ||||
const getRequest = (urlStr) => { | const getRequest = (urlStr) => { | ||||
// isValueCard 1 储值卡 2 记账卡 | // isValueCard 1 储值卡 2 记账卡 | ||||
const gotoEditUserOrUnitInfo = () => { | const gotoEditUserOrUnitInfo = () => { | ||||
if (state.isValueCard == 1) { | if (state.isValueCard == 1) { | ||||
uni.switchTab({ | |||||
url: "/pages/index/index" | |||||
}) | |||||
if(state.orderQuery == '1'){ | |||||
uni.navigateBack() | |||||
}else{ | |||||
uni.switchTab({ | |||||
url: "/pages/order/order" | |||||
}) | |||||
} | |||||
} else { | } else { | ||||
navTo( | navTo( | ||||
`/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`, | `/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=${state.orderQuery}`, | ||||
openid: "", | openid: "", | ||||
isclick: true,//防止重复点击 | isclick: true,//防止重复点击 | ||||
vehicleId: "", | vehicleId: "", | ||||
orderQuery:"0" | |||||
orderQuery:"0", | |||||
longitude:"", | |||||
latitude:"" | |||||
}); | }); | ||||
</script> | </script> | ||||
showLoading: true, | showLoading: true, | ||||
}; | }; | ||||
requestNew(accountSign, options).then((res) => { | requestNew(accountSign, options).then((res) => { | ||||
navTo(`/subpackage/orders/webView?url=${res.shortUrl}`) | |||||
console.log("去签署协议", res.shortUrl) | |||||
uni.navigateToMiniProgram({ | |||||
appId: 'wxeee4ac6e61915479', | |||||
path: `/pages/externel/view/view?random=${res.random}&envType=product`, | |||||
envVersion: 'release', | |||||
fail:(error)=>{ | |||||
console.log(error); | |||||
} | |||||
}) | |||||
console.log("去签署协议", res) | |||||
}); | }); | ||||
} | } | ||||
// 查询是否签署协议 | // 查询是否签署协议 |
<view><text>车主姓名</text><text class="car">{{state.details['ownerName']}}</text></view> | <view><text>车主姓名</text><text class="car">{{state.details['ownerName']}}</text></view> | ||||
<view v-if="state.details['handlerName']"><text>办理人</text><text class="car">{{state.details['handlerName']}}</text></view> | <view v-if="state.details['handlerName']"><text>办理人</text><text class="car">{{state.details['handlerName']}}</text></view> | ||||
<view><text>产品名称</text><text class="car">{{state.details['productName']}}</text></view> | <view><text>产品名称</text><text class="car">{{state.details['productName']}}</text></view> | ||||
<view><text>权益说明</text><text class="car">{{state.details['rightsDesc']}}</text></view> | |||||
<view><text style="width:60%;">权益说明</text><text class="car">{{state.details['rightsDesc']}}</text></view> | |||||
<view><text>产品金额</text><text class="car">¥{{state.details['productAmount']*0.01}}</text></view> | <view><text>产品金额</text><text class="car">¥{{state.details['productAmount']*0.01}}</text></view> | ||||
<view><text>应付金额</text><text class="car">¥{{state.details['productAmount']*0.01}}</text></view> | <view><text>应付金额</text><text class="car">¥{{state.details['productAmount']*0.01}}</text></view> | ||||
<view class="noborder other-free">无其他费用</view> | <view class="noborder other-free">无其他费用</view> | ||||
import { | import { | ||||
navTo,hasLogin | navTo,hasLogin | ||||
} from "@/utils/utils" | } from "@/utils/utils" | ||||
import {agreementInSertOrder,contractQuery,orderQuery,accountSign,agreeOrderProdcut,envs} from "@/utils/network/api.js"; | |||||
import {agreementInSertOrder,contractQuery,orderQuery,accountSign,agreeOrderProdcut,envs,queryKey} from "@/utils/network/api.js"; | |||||
import { | import { | ||||
getItem, | getItem, | ||||
StorageKeys, | StorageKeys, | ||||
if(state.orderId){ | if(state.orderId){ | ||||
contractRequest() | contractRequest() | ||||
} | } | ||||
}) | |||||
onLoad(() => { | |||||
// 没登录情况 | |||||
if (!hasLogin()) { | |||||
quanKeyAction() | |||||
navTo( `/login/login?back=1`) | |||||
} | |||||
if(getItem('key')){ | |||||
let getColor = getItem('key')['VEHICLE_COLOR_TYPE']; | let getColor = getItem('key')['VEHICLE_COLOR_TYPE']; | ||||
for (var k = 0; k < getColor.length; k++) { | for (var k = 0; k < getColor.length; k++) { | ||||
let obj = {}; | let obj = {}; | ||||
obj['text'] = getColor[k]['name'] | obj['text'] = getColor[k]['name'] | ||||
state.colorRange.push(obj) | state.colorRange.push(obj) | ||||
} | } | ||||
// 没登录情况 | |||||
if (!hasLogin()) { | |||||
navTo( `/login/login?back=1`) | |||||
} | |||||
} | |||||
}) | |||||
const quanKeyAction = () => { | |||||
var data = {}; | |||||
const options = { | |||||
type: 2, | |||||
data: data, | |||||
method: "POST", | |||||
}; | |||||
requestNew(queryKey, options).then((res) => { | |||||
const data =res | |||||
console.log("枚举", data) | |||||
setItem('key', data.dictTypeAndItem) | |||||
}) | |||||
.catch((err) => { | |||||
console.log(err); | |||||
}); | |||||
} | |||||
onLoad(() => { | |||||
}) | }) | ||||
const query=()=>{ | const query=()=>{ | ||||
}) | }) | ||||
}else if(state.details['orderStep'] == OrderStatus['已支付/待签约']){ | }else if(state.details['orderStep'] == OrderStatus['已支付/待签约']){ | ||||
// 去签约 | // 去签约 | ||||
navTo(`/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=1`); | |||||
if(state.details['qtSign']==0){ | |||||
// 不需要在我们这边签约提示 | |||||
uni.showModal({ | |||||
title: '提示', | |||||
content: '请在渠道工具完成签约', | |||||
success: function (res) { | |||||
if (res.confirm) { | |||||
console.log('用户点击确定'); | |||||
} else if (res.cancel) { | |||||
console.log('用户点击取消'); | |||||
} | |||||
} | |||||
}); | |||||
}else{ | |||||
navTo(`/subpackage/orders/release-products?orderId=${state.orderId}&orderQuery=1`); | |||||
} | |||||
}else if(state.details['orderStep'] == OrderStatus['待激活']){ | }else if(state.details['orderStep'] == OrderStatus['待激活']){ | ||||
// 待激活 | // 待激活 | ||||
gotoActiveOrder(state.details) | gotoActiveOrder(state.details) | ||||
showLoading: true, | showLoading: true, | ||||
}; | }; | ||||
requestNew(accountSign, options).then((res) => { | requestNew(accountSign, options).then((res) => { | ||||
navTo(`/subpackage/orders/webView?url=${res.shortUrl}`) | |||||
console.log("去签署协议", res.shortUrl) | |||||
uni.navigateToMiniProgram({ | |||||
appId: 'wxeee4ac6e61915479', | |||||
path: `/pages/externel/view/view?random=${res.random}&envType=product`, | |||||
envVersion: 'release', | |||||
fail:(error)=>{ | |||||
console.log(error); | |||||
} | |||||
}) | |||||
console.log("去签署协议", res) | |||||
}); | }); | ||||
} | } | ||||
const changeColor = (e) => { | const changeColor = (e) => { | ||||
margin-top: 30rpx; | margin-top: 30rpx; | ||||
view{ | view{ | ||||
border-bottom: 1rpx solid #ccc; | border-bottom: 1rpx solid #ccc; | ||||
height: 62rpx; | |||||
// height: 62rpx; | |||||
line-height: 62rpx; | line-height: 62rpx; | ||||
display: flex; | display: flex; | ||||
justify-content: space-between; | justify-content: space-between; |
<template> | |||||
<web-view :src="state.url"> | |||||
<!-- <cover-view class="custom-nav" @click="closeWebView"> | |||||
<cover-image class="close-icon" src="/static/image/icon-back.png" ></cover-image> | |||||
<cover-view>返回</cover-view> | |||||
</cover-view> --> | |||||
</web-view> | |||||
</template> | |||||
<script setup> | |||||
import {onLoad} from "@dcloudio/uni-app"; | |||||
import {reactive} from "vue"; | |||||
const state = reactive({ | |||||
url:"", | |||||
visitCount:0 | |||||
}) | |||||
onLoad((option) => { | |||||
console.log("option",option) | |||||
state.url=option.url | |||||
state.visitCount++ | |||||
}); | |||||
const closeWebView=()=>{ | |||||
uni.navigateBack({ | |||||
delta:state.visitCount | |||||
}) | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
.custom-nav { | |||||
position: fixed; | |||||
top: 0; | |||||
width: 100%; | |||||
height: 44px; | |||||
background-color: #fff; | |||||
display: flex; | |||||
justify-content: flex-start; | |||||
align-items: center; | |||||
z-index: 999; | |||||
box-sizing: border-box; | |||||
padding: 0 10rpx; | |||||
} | |||||
.close-icon{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
transform:rotateX(180deg); | |||||
} | |||||
</style> |