Browse Source

refactor: 删除多余的技术验证界面

develop
wally 4 years ago
parent
commit
542ae5b508
  1. 1
      CHANGELOG.md
  2. 49
      src/pages/pinch/pinch.vue
  3. 62
      src/pages/plugin-test/plugin-test.vue
  4. 73
      src/pages/rich-text/rich-text.vue

1
CHANGELOG.md

@ -85,6 +85,7 @@
范围|描述|commitId
--|--|--
- | project 代码健壮性完善 | a3202c5
store/home | 删除store/home | db8a3b4
template | eslint prettier sass uview tailwindcss | 9c966a1
- | 下滑时间轴添加备注 | 4fd20e3
- | 界面样式调整 | 4367249

49
src/pages/pinch/pinch.vue

@ -1,49 +0,0 @@
<template>
<view class="container flex flex-row items-center justify-center">
<image
class="w-1/2"
mode="aspectFit"
src="https://lupic.cdn.bcebos.com/20200412/3026529107_14_800_566.jpg"
v-finger:pinch="handlePinch"
v-finger:multipoint-start="handlePinchStart"
:style="{ transform: `scale(${scale})` }"
id="image"
></image>
</view>
</template>
<script>
export default {
data() {
return {
initScale: 1,
scale: 1,
element: null,
};
},
mounted() {
this.element = document.getElementById('image');
},
methods: {
handlePinchStart() {
console.log(this.element.style.transform);
// eslint-disable-next-line no-useless-escape
const reg = /scale\(([0-9]*[\.]?[0-9]*)\)/gi;
const scale = this.element.style.transform;
if (reg.test(scale)) {
this.initScale = RegExp.$1;
console.log(this.initScale);
}
// this.scale = this.element.scaleX;
},
handlePinch(event) {
console.log(typeof event.zoom, typeof this.initScale, this.initScale);
this.scale = this.initScale * event.zoom;
console.log('this.scale:', this.scale);
},
},
};
</script>

62
src/pages/plugin-test/plugin-test.vue

@ -1,62 +0,0 @@
<template>
<view>
<view v-for="(item, index) in iframes" :key="index" style="height: 500rpx" class="p-1">
<!-- <web-view :src="item"></web-view> -->
<iframe :src="item" frameborder="0" class="block w-full h-full" :id="`iframe${index}`"></iframe>
</view>
</view>
</template>
<script>
/* eslint-disable max-len */
const iframes = [
'https://uniapp.dcloud.io/static/web-view.html',
'https://baidu.com',
'https://uland.taobao.com/semm/tbsearch?refpid=mm_26632258_3504122_32554087&keyword=%E5%A5%B3%E8%A3%85&clk1=ad91ec4906f3ffe8328566a1bf604aef&upsId=ad91ec4906f3ffe8328566a1bf604aef',
'https://m.jd.com/',
'https://www.ccsens.com',
'https://www.tall.wiki/wl/1',
'https://h5.m.jd.com/active/yard-channel/index.html?themeId=24883&babelChannel=356440&innerLink=%5B%7B%22matId%22%3A%223203085%22%7D%2C%7B%22matId%22%3A%223205226%22%7D%5D&themeStyle=0&innerIndex=1',
'https://mitem.jd.hk/product/3205226.html?pdtk=ZenDw7dK%2FC8XmpuZbhgbkp%2BSbyLL5R0S14AvHWdeeAL2Z36jPKDzWg%2BYBNa0HgvE&_fd=jdm&sid=null',
'https://shop.m.jd.com/shopv2/mzpage?shopId=1000015205&venderId=1000015205&skuId=3205226&categoryId=1319_1523_7052&sceneval=2&jxsid=16243458685744852366&_fd=jdm&_fd=jdm',
'https://www.tall.wiki/wl/2',
'https://www.tall.wiki/wl/3',
'https://www.tall.wiki/wl/4',
'https://www.tall.wiki/wl/5',
'https://www.tall.wiki/wl/7',
'https://www.tall.wiki/wl/6',
];
/* eslint-enable max-len */
export default {
data() {
return { iframes, createdTime: 0, mountedTime: 0 };
},
created() {
this.createdTime = Date.now();
console.error('created:', new Date().toLocaleString());
},
mounted() {
this.mountedTime = Date.now();
console.error('mounted:', new Date().toLocaleString());
this.$nextTick(this.init);
},
methods: {
init() {
this.iframes.forEach((item, index) => {
const element = document.getElementById(`iframe${index}`);
element.addEventListener(
'load',
() => {
const now = Date.now();
console.error(`${index} ${item} 加载结束`, new Date().toLocaleString(), now - this.createdTime, now - this.mountedTime);
},
false,
);
});
},
},
};
</script>

73
src/pages/rich-text/rich-text.vue

@ -1,73 +0,0 @@
<template>
<view class="p-2">
<!-- <view v-if="!plugins">加载中...</view>
<template v-else>-->
<view class="my-3" id="container"></view>
<!-- </template> -->
</view>
</template>
<script>
export default {
data() {
return { plugins: null };
},
mounted() {
// window.openModal = function () {
// const modal = document.getElementById('modal');
// modal.style.display = 'block';
// alert('modal');
// };
this.getData();
},
methods: {
async getData() {
try {
const data = await this.$u.get('/tasks');
console.log(data);
this.plugins = [...data.plugins] || null;
this.renderDOM(this.plugins); // DOM
} catch (error) {
console.log('🚀 ~ file: rich-text.vue ~ line 33 ~ getData ~ error', error);
this.plugins = null;
}
},
/**
* 渲染DOM
* @param {Array | null} plugins 拿到的内置插件数据
*
* FIXME: 只处理了1个script标签的情况
* FIXME: 插件命名空间 作用域未处理
* FIXME: 插件关闭退出时, 应该移除相关的script代码
*/
renderDOM(plugins) {
if (!plugins || !plugins.length) return;
const element = document.getElementById('container');
// eslint-disable-next-line no-useless-escape
const reg = /<script\b[^>]*>([\s\S]*)<\/script>/gim;
let str = element.innerHTML;
for (let item of plugins) {
// console.log(reg.test(item), item.match(reg), RegExp.$1);
if (reg.test(item)) {
// code snippets script
const scriptElement = document.createElement('script');
const text = RegExp.$1;
try {
scriptElement.appendChild(document.createTextNode(text));
} catch (error) {
scriptElement.text = text;
}
document.body.appendChild(scriptElement); // script
str += item.replace(reg, ''); // script
} else {
str += `<div>${item}</div>`;
}
}
element.innerHTML = str;
},
},
};
</script>
Loading…
Cancel
Save