Initial commit
This commit is contained in:
111
components/gaoyia-parse/components/wxParseTemplate7.vue
Normal file
111
components/gaoyia-parse/components/wxParseTemplate7.vue
Normal file
@@ -0,0 +1,111 @@
|
||||
<template>
|
||||
<!--判断是否是标签节点-->
|
||||
<block v-if="node.node == 'element'">
|
||||
<!--button类型-->
|
||||
<button
|
||||
v-if="node.tag == 'button'"
|
||||
type="default"
|
||||
size="mini"
|
||||
:class="node.classStr"
|
||||
:style="node.styleStr"
|
||||
>
|
||||
<wx-parse-template :node="node" />
|
||||
</button>
|
||||
|
||||
<!--a类型-->
|
||||
<view
|
||||
v-else-if="node.tag == 'a'"
|
||||
@click="wxParseATap(node.attr, $event)"
|
||||
: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>
|
||||
|
||||
<!--li类型-->
|
||||
<view
|
||||
v-else-if="node.tag == 'li'"
|
||||
:class="node.classStr"
|
||||
:style="node.styleStr"
|
||||
>
|
||||
<block v-for="(node, index) of node.nodes" :key="index">
|
||||
<wx-parse-template :node="node" />
|
||||
</block>
|
||||
</view>
|
||||
|
||||
<!--table类型-->
|
||||
<wx-parse-table
|
||||
v-else-if="node.tag == 'table'"
|
||||
:class="node.classStr"
|
||||
:style="node.styleStr"
|
||||
:node="node"
|
||||
/>
|
||||
|
||||
<!--br类型-->
|
||||
<!-- #ifndef H5 -->
|
||||
<text v-else-if="node.tag == 'br'">\n</text>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef H5 -->
|
||||
<br v-else-if="node.tag == 'br'" />
|
||||
<!-- #endif -->
|
||||
|
||||
<!--video类型-->
|
||||
<wx-parse-video :node="node" v-else-if="node.tag == 'video'" />
|
||||
|
||||
<!--audio类型-->
|
||||
<wx-parse-audio :node="node" v-else-if="node.tag == 'audio'" />
|
||||
|
||||
<!--img类型-->
|
||||
<wx-parse-img
|
||||
:node="node"
|
||||
v-else-if="node.tag == 'img'"
|
||||
:style="node.styleStr"
|
||||
/>
|
||||
|
||||
<!--其他标签-->
|
||||
<view v-else :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 v-else-if="node.node == 'text'">{{ node.text }}</block>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import wxParseTemplate from "./wxParseTemplate8";
|
||||
import wxParseImg from "./wxParseImg";
|
||||
import wxParseVideo from "./wxParseVideo";
|
||||
import wxParseAudio from "./wxParseAudio";
|
||||
import wxParseTable from "./wxParseTable";
|
||||
|
||||
export default {
|
||||
name: "wxParseTemplate7",
|
||||
props: {
|
||||
node: {},
|
||||
},
|
||||
components: {
|
||||
wxParseTemplate,
|
||||
wxParseImg,
|
||||
wxParseVideo,
|
||||
wxParseAudio,
|
||||
wxParseTable,
|
||||
},
|
||||
methods: {
|
||||
wxParseATap(attr, 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, attr);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
Reference in New Issue
Block a user