Compare commits
No commits in common. "ee731a4892c42c522487c5e618e3b31b63ba647b" and "ede9287ad932df4b71adeb21a321e717579ddb1e" have entirely different histories.
ee731a4892
...
ede9287ad9
52
components/five-mul-commentlist/╩╣╙├╦╡├≈.md
Normal file
52
components/five-mul-commentlist/╩╣╙├╦╡├≈.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#### **1. 使用方法:**
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
<!--
|
||||||
|
@param: commentList展示的评论列表数据
|
||||||
|
@method: clickPraise 点赞评论
|
||||||
|
@method: clickDelete 删除父级评论
|
||||||
|
@method: clickRecommentChild 点赞子评论
|
||||||
|
@method: clickDeleteChild 删除子评论
|
||||||
|
-->
|
||||||
|
<five-mul-commentlist
|
||||||
|
:commentList="commentList"
|
||||||
|
@clickPraise="clickPraiseComment"
|
||||||
|
@clickDelete="clickDeleteComment"
|
||||||
|
@clickDeleteChild="clickDeleteCommentChild"
|
||||||
|
@clickRecomment="clickRecomment"
|
||||||
|
@clickRecommentChild="clickRecommentChild"
|
||||||
|
></five-mul-commentlist>
|
||||||
|
|
||||||
|
```
|
||||||
|
#### **2. commentList数据格式参照如下:**
|
||||||
|
|
||||||
|
```json
|
||||||
|
[{
|
||||||
|
{
|
||||||
|
"COMMENT_TIME": "",
|
||||||
|
"FIRSTNICKNAME": "",
|
||||||
|
"IS_PRAISE": null,
|
||||||
|
"COMMENT": "",
|
||||||
|
"PRAISE_NUM": 0,
|
||||||
|
"CANDELETE": 0,
|
||||||
|
"HEADIMGURL": "",
|
||||||
|
"PARENTID": "",
|
||||||
|
"SECONDNICKNAME": null,
|
||||||
|
"CHILD_ANWSER_LIST": [{
|
||||||
|
"COMMENT_TIME": "",
|
||||||
|
"FIRSTNICKNAME": "",
|
||||||
|
"IS_PRAISE": null,
|
||||||
|
"COMMENT": "",
|
||||||
|
"PRAISE_NUM": 0,
|
||||||
|
"CANDELETE": 1,
|
||||||
|
"HEADIMGURL": ",
|
||||||
|
"SECONDNICKNAME": ""
|
||||||
|
}]
|
||||||
|
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -105,9 +105,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// @import "../../styles/_variables";
|
@import "../../styles/_variables";
|
||||||
|
|
||||||
// @import '../../styles/layout.scss';
|
@import '../../styles/layout.scss';
|
||||||
// @import '../../styles/store_themes.scss';
|
@import '../../styles/store_themes.scss';
|
||||||
// @import '../../styles/store_tpl.scss';
|
@import '../../styles/store_tpl.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -109,10 +109,10 @@
|
|||||||
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// @import "../../styles/_variables";
|
@import "../../styles/_variables";
|
||||||
|
|
||||||
// @import '../../styles/layout.scss';
|
@import '../../styles/layout.scss';
|
||||||
// @import '../../styles/store_themes.scss';
|
@import '../../styles/store_themes.scss';
|
||||||
// @import '../../styles/store_tpl.scss';
|
@import '../../styles/store_tpl.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@ -83,9 +83,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// @import "../../styles/_variables";
|
@import "../../styles/_variables";
|
||||||
|
|
||||||
// @import '../../styles/layout.scss';
|
@import '../../styles/layout.scss';
|
||||||
// @import '../../styles/store_themes.scss';
|
@import '../../styles/store_themes.scss';
|
||||||
// @import '../../styles/store_tpl.scss';
|
@import '../../styles/store_tpl.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -98,9 +98,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// @import "../../styles/_variables";
|
@import "../../styles/_variables";
|
||||||
|
|
||||||
// @import '../../styles/layout.scss';
|
@import '../../styles/layout.scss';
|
||||||
// @import '../../styles/store_themes.scss';
|
@import '../../styles/store_themes.scss';
|
||||||
// @import '../../styles/store_tpl.scss';
|
@import '../../styles/store_tpl.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -60,9 +60,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// @import "../../styles/_variables";
|
@import "../../styles/_variables";
|
||||||
|
|
||||||
// @import '../../styles/layout.scss';
|
@import '../../styles/layout.scss';
|
||||||
// @import '../../styles/store_themes.scss';
|
@import '../../styles/store_themes.scss';
|
||||||
// @import '../../styles/store_tpl.scss';
|
@import '../../styles/store_tpl.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1139,10 +1139,10 @@
|
|||||||
|
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// @import "../../styles/_variables";
|
@import "../../styles/_variables";
|
||||||
|
|
||||||
// @import '../../styles/layout.scss';
|
@import '../../styles/layout.scss';
|
||||||
// @import '../../styles/store_themes.scss';
|
@import '../../styles/store_themes.scss';
|
||||||
// @import '../../styles/store_tpl.scss';
|
@import '../../styles/store_tpl.scss';
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@ -74,6 +74,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate1';
|
||||||
import wxParseImg from './wxParseImg';
|
import wxParseImg from './wxParseImg';
|
||||||
import wxParseVideo from './wxParseVideo';
|
import wxParseVideo from './wxParseVideo';
|
||||||
import wxParseAudio from './wxParseAudio';
|
import wxParseAudio from './wxParseAudio';
|
||||||
@ -84,6 +85,7 @@
|
|||||||
node: {},
|
node: {},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
wxParseImg,
|
wxParseImg,
|
||||||
wxParseVideo,
|
wxParseVideo,
|
||||||
wxParseAudio,
|
wxParseAudio,
|
||||||
|
|||||||
99
components/u-parse/components/wxParseTemplate1.vue
Normal file
99
components/u-parse/components/wxParseTemplate1.vue
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
<template>
|
||||||
|
<view :class="(node.tag == 'li' ? node.classStr : (node.node==='text'?'text':''))">
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<!-- <view :class="node.classStr" :style="node.styleStr"> -->
|
||||||
|
<view :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate2';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate1',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
97
components/u-parse/components/wxParseTemplate10.vue
Normal file
97
components/u-parse/components/wxParseTemplate10.vue
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate11';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate10',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
87
components/u-parse/components/wxParseTemplate11.vue
Normal file
87
components/u-parse/components/wxParseTemplate11.vue
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<!--button类型-->
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
{{node.text}}
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
{{node.text}}
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
{{node.text}}
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate11',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate2.vue
Normal file
98
components/u-parse/components/wxParseTemplate2.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate3';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate2',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate3.vue
Normal file
98
components/u-parse/components/wxParseTemplate3.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate4';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate3',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate4.vue
Normal file
98
components/u-parse/components/wxParseTemplate4.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate5';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate4',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate5.vue
Normal file
98
components/u-parse/components/wxParseTemplate5.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate6';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate5',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate6.vue
Normal file
98
components/u-parse/components/wxParseTemplate6.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate7';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate6',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate7.vue
Normal file
98
components/u-parse/components/wxParseTemplate7.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate8';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate7',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate8.vue
Normal file
98
components/u-parse/components/wxParseTemplate8.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate9';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate8',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
98
components/u-parse/components/wxParseTemplate9.vue
Normal file
98
components/u-parse/components/wxParseTemplate9.vue
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!--判断是否是标签节点-->
|
||||||
|
<block v-if="node.node == 'element'">
|
||||||
|
<block v-if="node.tag == 'button'">
|
||||||
|
<button type="default" size="mini">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</button>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--li类型-->
|
||||||
|
<block v-else-if="node.tag == 'li'">
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--video类型-->
|
||||||
|
<block v-else-if="node.tag == 'video'">
|
||||||
|
<wx-parse-video :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--audio类型-->
|
||||||
|
<block v-else-if="node.tag == 'audio'">
|
||||||
|
<wx-parse-audio :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--img类型-->
|
||||||
|
<block v-else-if="node.tag == 'img'">
|
||||||
|
<wx-parse-img :node="node" />
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--a类型-->
|
||||||
|
<block v-else-if="node.tag == 'a'">
|
||||||
|
<view @click="wxParseATap" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--br类型-->
|
||||||
|
<block v-else-if="node.tag == 'br'">
|
||||||
|
<text>\n</text>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--其他标签-->
|
||||||
|
<block v-else>
|
||||||
|
<view :class="node.classStr" :style="node.styleStr">
|
||||||
|
<block v-for="(node, index) of node.nodes" :key="index">
|
||||||
|
<wx-parse-template :node="node" />
|
||||||
|
</block>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
|
||||||
|
</block>
|
||||||
|
|
||||||
|
<!--判断是否是文本节点-->
|
||||||
|
<block v-else-if="node.node == 'text'">{{node.text}}</block>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import wxParseTemplate from './wxParseTemplate10';
|
||||||
|
import wxParseImg from './wxParseImg';
|
||||||
|
import wxParseVideo from './wxParseVideo';
|
||||||
|
import wxParseAudio from './wxParseAudio';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'wxParseTemplate9',
|
||||||
|
props: {
|
||||||
|
node: {},
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
wxParseTemplate,
|
||||||
|
wxParseImg,
|
||||||
|
wxParseVideo,
|
||||||
|
wxParseAudio,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
wxParseATap(e) {
|
||||||
|
const {
|
||||||
|
href
|
||||||
|
} = e.currentTarget.dataset;
|
||||||
|
if (!href) return;
|
||||||
|
let parent = this.$parent;
|
||||||
|
while(!parent.preview || typeof parent.preview !== 'function') {
|
||||||
|
parent = parent.$parent;
|
||||||
|
}
|
||||||
|
parent.navigate(href, e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
@ -1280,6 +1280,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import guessYouLike from "@/components/product-list.vue";
|
import guessYouLike from "@/components/product-list.vue";
|
||||||
import uParse from "@/components/u-parse/u-parse.vue";
|
import uParse from "@/components/u-parse/u-parse.vue";
|
||||||
|
import statusBar from "../../components/status-bar.vue";
|
||||||
import uniBadge from "@/components/uni-badge.vue";
|
import uniBadge from "@/components/uni-badge.vue";
|
||||||
import diy from "@/components/themes/diy.vue";
|
import diy from "@/components/themes/diy.vue";
|
||||||
import loginPopup from "@/components/loginPopup.vue";
|
import loginPopup from "@/components/loginPopup.vue";
|
||||||
@ -1372,6 +1373,7 @@ export default {
|
|||||||
components: {
|
components: {
|
||||||
guessYouLike,
|
guessYouLike,
|
||||||
uParse,
|
uParse,
|
||||||
|
statusBar,
|
||||||
uniBadge,
|
uniBadge,
|
||||||
diy,
|
diy,
|
||||||
loginPopup,
|
loginPopup,
|
||||||
@ -1830,7 +1832,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
// @import "../../styles/_variables.scss";
|
@import "../../styles/_variables.scss";
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
margin-bottom: var(--window-bottom);
|
margin-bottom: var(--window-bottom);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user