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
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>
|