6 changed files with 142 additions and 14 deletions
@ -0,0 +1,109 @@ |
|||||
|
<template> |
||||
|
<web-view :src="url"></web-view> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
url: '', |
||||
|
saveUrl: '', |
||||
|
} |
||||
|
}, |
||||
|
onLoad(option) { |
||||
|
if(option && option.scene) { |
||||
|
const scene = decodeURIComponent(option.scene); |
||||
|
console.log('scene', scene) |
||||
|
uni.setStorageSync("merchant_id", scene) |
||||
|
} |
||||
|
let that = this |
||||
|
this.Post({ |
||||
|
type: 'webView', |
||||
|
}, |
||||
|
'/api/public_service/getKumgangHeadImgList' |
||||
|
).then(res => { |
||||
|
let url = res.data[0].title |
||||
|
console.log(url) |
||||
|
if (url.toLowerCase().indexOf('m.cloud.sz-trip.com') >= 0) { |
||||
|
this.handleJDSZ(url) |
||||
|
setTimeout(() => { |
||||
|
that.saveUrl = url |
||||
|
}, 500) |
||||
|
} else { |
||||
|
this.url = url |
||||
|
this.saveUrl = url |
||||
|
console.log(111,this.url) |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
onShow() { |
||||
|
// 埋点 |
||||
|
this.Post({ |
||||
|
merchant_id: uni.getStorageSync("merchant_id") || '' |
||||
|
}, '/api/mini_program/recordQrCodeScan').then(res => {}) |
||||
|
console.log(this.url, this.saveUrl, 'onshow') |
||||
|
if (!this.url && this.saveUrl) { |
||||
|
let param = this.getUrlParam(this.saveUrl) |
||||
|
console.log(param) |
||||
|
this.checkIsLoginJdsz().then(res => { |
||||
|
if (res) { |
||||
|
param.token = res |
||||
|
param.platform = 'changshu' |
||||
|
let baseUrl = param.tempUrl |
||||
|
let queryString = Object.entries(param).filter(v => v[0] != 'tempUrl') |
||||
|
.map(([key, value]) => `${(key)}=${(value)}`) |
||||
|
.join('&'); |
||||
|
|
||||
|
const fullUrl = `${baseUrl}?${queryString}`; |
||||
|
console.log(fullUrl); |
||||
|
|
||||
|
this.url = fullUrl |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
handleJDSZ(url) { |
||||
|
let param = this.getUrlParam(url) |
||||
|
console.log(param) |
||||
|
this.checkIsLoginJdsz().then(res => { |
||||
|
|
||||
|
if (res) { |
||||
|
param.token = res |
||||
|
param.platform = 'changshu' |
||||
|
let baseUrl = param.tempUrl |
||||
|
let queryString = Object.entries(param).filter(v => v[0] != 'tempUrl') |
||||
|
.map(([key, value]) => `${(key)}=${(value)}`) |
||||
|
.join('&'); |
||||
|
|
||||
|
const fullUrl = `${baseUrl}?${queryString}`; |
||||
|
console.log(fullUrl); |
||||
|
this.url = fullUrl |
||||
|
} |
||||
|
}).finally(() => { |
||||
|
this.saveUrl = url |
||||
|
}) |
||||
|
|
||||
|
}, |
||||
|
getUrlParam(url) { |
||||
|
var theParam = { |
||||
|
tempUrl: url |
||||
|
}; |
||||
|
let searchStartIndex = url.indexOf("?") |
||||
|
if (searchStartIndex >= 0) { |
||||
|
theParam.tempUrl = url.substring(0, searchStartIndex); |
||||
|
var strs = url.substring(searchStartIndex + 1); |
||||
|
strs = strs.split("&"); //将获取到的字符串从&分割,输出参数数组,即输出[参数1=xx,参数2=xx,参数3=xx,...]的数组形式 |
||||
|
for (var i = 0; i < strs.length; i++) { //遍历参数数组 |
||||
|
theParam[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1]); |
||||
|
} |
||||
|
} |
||||
|
return theParam; //返回参数值 |
||||
|
} |
||||
|
}, |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
|
||||
|
</style> |
Loading…
Reference in new issue