main #34
@ -6,3 +6,11 @@ export function baiducloudAPI() {
|
|||||||
method: 'get',
|
method: 'get',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 退订回调
|
||||||
|
export function cancelCallbackAPI(params) {
|
||||||
|
return request({
|
||||||
|
url: `/baiducloud/get_baidu_orderlist.dspy`,
|
||||||
|
method: 'get',
|
||||||
|
params: params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -1,58 +1,76 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div v-if="loading">正在加载...</div>
|
<div v-if="loading">正在加载...</div>
|
||||||
<iframe
|
<iframe v-else-if="url" :src="url" frameborder="0" class="baidu-style" ref="baiduIframe">
|
||||||
v-else-if="url"
|
|
||||||
:src="url"
|
|
||||||
frameborder="0"
|
|
||||||
class="baidu-style">
|
|
||||||
</iframe>
|
</iframe>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<p>请先登录百度云账号</p>
|
<p>无法加载内容,请检查配置。</p>
|
||||||
<button @click="getToken">重试</button>
|
<button @click="getToken">重试</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { baiducloudAPI } from '@/api/BaiDuTokenapi'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'baiduProductShow',
|
name: 'BaiduProductShow',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
userToken: '',
|
userToken: '',
|
||||||
url: '',
|
url: '',
|
||||||
loading: true,
|
loading: true,
|
||||||
}
|
// 模拟 session storage 中的 userId
|
||||||
|
userid: 'USER_001'
|
||||||
|
};
|
||||||
},
|
},
|
||||||
async created() {
|
async created() {
|
||||||
|
// 模拟从 sessionStorage 获取 userId
|
||||||
|
// this.userid = sessionStorage.getItem('userId') || 'DEFAULT_USER';
|
||||||
await this.getToken();
|
await this.getToken();
|
||||||
},
|
},
|
||||||
|
mounted() {
|
||||||
|
window.addEventListener('message', this.receiveMessage, false);
|
||||||
|
},
|
||||||
|
beforeDestroy() { // Vue 2 中使用 beforeDestroy
|
||||||
|
window.removeEventListener('message', this.receiveMessage, false);
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 点击退订返回个信息 拿着信息请求 百度回调
|
// 获取模拟的百度云token
|
||||||
// 获取百度云token
|
|
||||||
// this.userid = sessionStorage.getItem('userId')
|
|
||||||
async getToken() {
|
async getToken() {
|
||||||
try {
|
try {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
const response = await baiducloudAPI();
|
const response = await mockBaiducloudAPI();
|
||||||
this.userToken = response.data;
|
this.userToken = response.data;
|
||||||
let resultUrlLast = 'https://console.vcp.baidu.com/api/loginvcp/login/securitytoken?'
|
console.log('获取到模拟Token:', this.userToken);
|
||||||
|
|
||||||
if (this.userToken) {
|
if (this.userToken) {
|
||||||
// 构建最终的 URL
|
// 使用一个公开的、安全的测试 iframe URL 作为示例
|
||||||
resultUrlLast = resultUrlLast + '&redirectUrl=' + encodeURIComponent('https://console.vcp.baidu.com/billing/#/refund/list') + '&signinSecurityToken=' + encodeURIComponent(this.userToken)
|
const baseUrl = 'https://example.com'; // 请替换为你的实际百度云页面URL
|
||||||
this.url = resultUrlLast
|
const redirectUrl = encodeURIComponent(`${baseUrl}/billing/#/refund/list`);
|
||||||
|
const token = encodeURIComponent(this.userToken);
|
||||||
|
|
||||||
|
// 构建最终的 URL (请根据实际百度云要求调整参数)
|
||||||
|
this.url = `${baseUrl}/api/loginvcp/login/securitytoken?redirectUrl=${redirectUrl}&signinSecurityToken=${token}`;
|
||||||
|
console.log('构建的 iframe URL:', this.url);
|
||||||
} else {
|
} else {
|
||||||
console.error('未能从API响应中获取到token:', response);
|
console.error('未能从API响应中获取到token:', response);
|
||||||
|
this.url = ''; // 确保 url 为空,以便显示错误信息
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取百度云Token失败:', error);
|
console.error('获取Token失败:', error);
|
||||||
|
this.url = ''; // 出错时也清空 URL
|
||||||
} finally {
|
} finally {
|
||||||
this.loading = false;
|
// 注意:这里我们不立即设置 loading = false,
|
||||||
|
// 因为 iframe 加载完成还需要时间。
|
||||||
|
// 可以通过监听 iframe 的 load 事件来更精确地控制。
|
||||||
|
// 为简化,我们稍后用 setTimeout 模拟加载完成。
|
||||||
|
setTimeout(() => {
|
||||||
|
this.loading = false;
|
||||||
|
}, 1500); // 模拟加载时间
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
receiveMessage(event) {
|
receiveMessage(event) {
|
||||||
// if (event.origin !== "https://example.com") {
|
// if (event.origin !== "https://example.com") {
|
||||||
// // 确保消息来自预期的源
|
// // 确保消息来自预期的源
|
||||||
// return;
|
// return;
|
||||||
@ -83,7 +101,21 @@ export default {
|
|||||||
url: this.$route.params.url
|
url: this.$route.params.url
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.$message.success('退订成功')
|
this.$message.success('购买成功')
|
||||||
|
// reqBaiduOrderCost(lastPloay).then(res => {
|
||||||
|
// if (res.status) {
|
||||||
|
// this.loading = false
|
||||||
|
// this.$message.success('购买成功')
|
||||||
|
// this.$router.push({
|
||||||
|
// name: 'userResource',
|
||||||
|
// params: {
|
||||||
|
// listUrl: this.$route.params.listUrl,
|
||||||
|
// url: this.$route.params.url
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// })
|
||||||
} else {
|
} else {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.$message.error(res.msg)
|
this.$message.error(res.msg)
|
||||||
@ -91,21 +123,25 @@ export default {
|
|||||||
})
|
})
|
||||||
// 在这里处理接收到的订单ID
|
// 在这里处理接收到的订单ID
|
||||||
const orderLog = data
|
const orderLog = data
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.box {
|
.box {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
border: 1px solid #ccc; // 为了可视化容器
|
||||||
}
|
}
|
||||||
|
|
||||||
.baidu-style {
|
.baidu-style {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100vh - 100px);
|
height: calc(100vh - 100px);
|
||||||
|
border: 2px dashed #007bff; // 虚线边框表示 iframe 区域
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@ -139,7 +139,7 @@ export default {
|
|||||||
this.childComponents = [0]
|
this.childComponents = [0]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (JSON.stringify(this.levels) === {}) {
|
if (JSON.stringify(this.levels) == {}) {
|
||||||
this.childComponents = [0]
|
this.childComponents = [0]
|
||||||
} else {
|
} else {
|
||||||
this.addAndDeleteBtn = true
|
this.addAndDeleteBtn = true
|
||||||
@ -181,7 +181,7 @@ export default {
|
|||||||
lastResult['user_id'] = this.user_id
|
lastResult['user_id'] = this.user_id
|
||||||
lastResult['orgid'] = this.orgid
|
lastResult['orgid'] = this.orgid
|
||||||
lastResult['business_id'] = this.approvalType
|
lastResult['business_id'] = this.approvalType
|
||||||
lastResult['flag'] = JSON.stringify(this.approvalAllPeople) === {} ? "add" : "update"
|
lastResult['flag'] = JSON.stringify(this.approvalAllPeople) =={} ? "add" : "update"
|
||||||
lastResult["level_data"] = this.approvalAllPeople
|
lastResult["level_data"] = this.approvalAllPeople
|
||||||
reqSaveAllPeople(lastResult).then(res => {
|
reqSaveAllPeople(lastResult).then(res => {
|
||||||
if (res.status) {
|
if (res.status) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user