Browse Source

fix(render): 修复了代码片段不能在app上显示的问题

重构了render.vue;目前IOS模拟器上测试正常;安卓模拟器有布局错乱的问题,判断与render无关,需要排查插件的样式问题
test2
wally 4 years ago
parent
commit
fe54729fc7
  1. 1
      CHANGELOG.md
  2. 2
      components/Plugin/Plugin.vue
  3. 27
      components/Render/Render.vue

1
CHANGELOG.md

@ -187,6 +187,7 @@
- | 重构project init 部分 | [c7bf2df](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/c7bf2df) - | 重构project init 部分 | [c7bf2df](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/c7bf2df)
- | 重构render.vue | [fdd668f](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/fdd668f) - | 重构render.vue | [fdd668f](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/fdd668f)
api | 调整mock api放入mock.js下;main中加入环境变量的判断 | [053ac31](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/053ac31) api | 调整mock api放入mock.js下;main中加入环境变量的判断 | [053ac31](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/053ac31)
- | APP注释了Render Component; render.vue换成vue2语法 | [3a89de1](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/3a89de1)
- | deliver检查人重构;更新真实数据的检查人 | [ce808c4](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/ce808c4) - | deliver检查人重构;更新真实数据的检查人 | [ce808c4](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/ce808c4)
- | project init 重构 | [2457a87](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/2457a87) - | project init 重构 | [2457a87](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/2457a87)

2
components/Plugin/Plugin.vue

@ -28,7 +28,6 @@
<p-domain-source-manage v-else-if="pluginId === '20'" class="p-2" /> <p-domain-source-manage v-else-if="pluginId === '20'" class="p-2" />
<p-project-version-management v-else-if="pluginId === '21'" class="p-2" /> <p-project-version-management v-else-if="pluginId === '21'" class="p-2" />
<!-- #ifdef H5 -->
<Render <Render
v-else v-else
:task="task" :task="task"
@ -38,6 +37,7 @@
:businessPluginId="businessPluginId" :businessPluginId="businessPluginId"
:param="param" :param="param"
/> />
<!-- #ifdef H5 -->
<!-- #endif --> <!-- #endif -->
</view> </view>
</template> </template>

27
components/Render/Render.vue

@ -1,6 +1,7 @@
<template> <template>
<view class="render-box shadow-lg" v-if="pluginInfo"> <view class="render-box shadow-lg">
<view <view
class="render-content"
:id="`render-${pluginTaskId}`" :id="`render-${pluginTaskId}`"
:data-did="task.detailId" :data-did="task.detailId"
:data-param="param" :data-param="param"
@ -16,6 +17,8 @@
:data-uid="userId" :data-uid="userId"
:pluginInfo="pluginInfo" :pluginInfo="pluginInfo"
:change:pluginInfo="project.renderDom" :change:pluginInfo="project.renderDom"
:pluginTaskId="pluginTaskId"
:change:pluginTaskId="project.initPluginTaskId"
></view> ></view>
</view> </view>
</template> </template>
@ -82,19 +85,21 @@ export default {
<script module="project" lang="renderjs"> <script module="project" lang="renderjs">
// TODO: 使 // TODO: 使
let pluginTaskId = '';
export default { export default {
methods: { methods: {
/** /**
* 渲染dom * 渲染dom
* @param {object|null} res 插件详情 监听的pluginInfo * @param {object|null} res 插件详情 监听的pluginInfo
* @param {*} b
* @param {object} instance 实例对象
*/ */
renderDom(res, b, instance) { renderDom(res) {
console.log('res,b,instance: ', res,b,instance);
if (!res) return; if (!res) return;
this.$nextTick(() => {
if (res.html) { if (res.html) {
const content = window.document.getElementById(`render-${this.pluginTaskId}`); // : 2022130 this.pluginTaskIdAPP
// bug
const content = window.document.getElementById(`render-${pluginTaskId}`);
content.innerHTML = res.html; content.innerHTML = res.html;
} }
@ -103,7 +108,17 @@ export default {
script.innerHTML = res.js; script.innerHTML = res.js;
window.document.body.appendChild(script); window.document.body.appendChild(script);
} }
})
}, },
/**
* 从prop data中拿到pluginTaskId, 存入变量中
* 因为目前这里没办法通过this拿到prop data下的数据
* @param {string} propsPluginTaskId
*/
initPluginTaskId(propsPluginTaskId) {
pluginTaskId = propsPluginTaskId;
}
}, },
}; };
</script> </script>

Loading…
Cancel
Save