<template>
|
<view class="content">
|
|
<BottomTabBar active="progress" />
|
<web-view v-if="url" :src="url"></web-view>
|
</view>
|
</template>
|
|
<script>
|
import BottomTabBar from '@/components/BottomTabBar.vue'
|
import LogTimeLine from '@/components/log-time-line.vue'
|
import config from '@/utils/config.js'
|
export default {
|
name: 'TaskProcess',
|
components: { BottomTabBar, LogTimeLine },
|
data() {
|
return {
|
url:'',
|
}
|
},
|
onLoad(query) {
|
// 封装解码工具函数
|
const decodeValue = (value) => {
|
if (typeof value !== 'string' || value === '') return '';
|
try {
|
return decodeURIComponent(value);
|
} catch (e) {
|
console.error('参数解码失败:', e, '原始值:', value);
|
return value;
|
}
|
};
|
// 需要拼接必要的参数 来通过验证
|
let token = uni.getStorageSync('token') || '';
|
const isView = query.isView === 'true' || query.isView === true;
|
const pageName = isView ? 'web-view-entry' : 'web-view-send';
|
|
let deployId = 'deployId=' + decodeValue(query.deployId)
|
let taskId = 'taskId=' + decodeValue(query.taskId)
|
let procInsId = 'procInsId=' + decodeValue(query.procInsId)
|
let projectName = 'projectName=' + decodeValue(query.projectName)
|
let flowName = 'flowName=' + decodeValue(query.flowName)
|
let processName = 'processName=' + decodeValue(query.processName)
|
|
console.log(deployId, taskId, procInsId, projectName, flowName, processName)
|
|
// 一次性构建完整的 URL,避免多次触发 web-view 加载
|
const fullUrl = `${config.webViewUrl}${pageName}?token=${token}&${deployId}&${taskId}&${procInsId}&${projectName}&${flowName}&${processName}`;
|
|
console.log('Final WebView URL:', fullUrl)
|
|
// 延迟一小段时间赋值,确保页面渲染完成后再加载 web-view,解决第一次加载不出来的问题
|
setTimeout(() => {
|
this.url = fullUrl;
|
}, 100);
|
},
|
methods: {
|
|
/**
|
* 返回上一页
|
*/
|
handleBack() {
|
uni.navigateBack();
|
}
|
}
|
}
|
</script>
|
|
<style scoped>
|
.content {
|
width: 100%;
|
min-height: 100vh;
|
background-color: #f5f7fa;
|
padding-bottom: 120rpx;
|
}
|
|
|
</style>
|