洛阳学员端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

133 lines
3.4 KiB

<template>
<view class="pageBg">
<!-- <topNavbar title="签约合同"></topNavbar> -->
<view class="page-inner">
<web-view :src="webViewUrl" :webview-styles="webviewStyles" :update-title="false"></web-view>
</view>
</view>
</template>
<script>
import {
getContractStatus,
getSignContract
} from '@/config/api.js'
export default {
data() {
return {
webViewUrl: '',
schoolId: '',
webviewStyles: {
progress: {
color: '#00a3ff'
}
}
}
},
onReady() {
// let wv;
// // #ifdef APP-PLUS
// let boxHeight = 0
// uni.getSystemInfo({
// success: res => boxHeight = res.windowHeight // 屏幕可用高度
// })
// var currentWebview = this.$scope.$getAppWebview() //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效
// setTimeout(function() {
// wv = currentWebview.children()[0]
// wv.setStyle({top:statusBar,height: boxHeight})
// }, 2000); //如果是页面初始化调用时,需要延时一下
// // #endif
// let statusBar = uni.getWindowInfo().statusBarHeight
},
onLoad(options) {
this.schoolId = options.schoolId ? options.schoolId : this.vuex_userInfo.schoolId
this.trainingApplyId = options.trainingApplyId ? options.trainingApplyId : ''
// this.timer = setInterval(() => {
// this.getContractStatusFn()
// }, 3000)
this.getSignContractFn()
// #ifdef APP-PLUS
this.shang()
// #endif
},
methods: {
shang() {
let _this = this
var currentWebview = this.$scope.$getAppWebview();
setTimeout(() => {
console.log('currentWebview')
console.log(currentWebview)
let wv = currentWebview.children()[0]
wv.addEventListener('loaded', async function() {
let webVeiwUrl = wv.getURL()
console.log(webVeiwUrl)
var reg = RegExp(/wait/i); //signaturecallback
if (reg.test(webVeiwUrl)) {
console.log('匹配成功了————————————————————————')
_this.getContractStatusFn()
}
console.log('监听到了————————————————————')
}, false);
}, 500)
},
async getSignContractFn() {
uni.showLoading({
title: '正在加载合同...'
})
let info = this.vuex_userInfo
let obj = {
schoolId: this.schoolId,
studentId: this.studentId,
}
if (this.trainingApplyId) obj.trainingApplyId = this.trainingApplyId
const {
data: res
} = await getSignContract(obj)
uni.hideLoading()
this.webViewUrl = res.url
console.log('===============webview地址==================')
console.log(this.webViewUrl)
},
// 查询签约状态
async getContractStatusFn() {
uni.showLoading({
title: '正在查询签约状态...'
})
const {
data: res
} = await getContractStatus({
studentId: this.studentId,
trainingApplyId: this.trainingApplyId
})
uni.hideLoading()
console.log(res)
if (res.flowStatus == 2) {
uni.navigateTo({
url: '/pages/indexEntry/enroll/payment/payment?trainingApplyId='+res.trainingApplyId
})
if (res.flowStatus > 2) {
this.$u.toast('合同已撤销或过期')
}
}else {
this.$u.toast('签约状态没返回')
}
}
}
}
</script>
<style>
.pageBg {
flex: 1;
width: 100%;
flex-direction: column;
/* background-color: red; */
}
.page-inner {
flex: 1;
}
</style>