|
- <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 './wxParseTemplate2';
- import wxParseImg from './wxParseImg';
- import wxParseVideo from './wxParseVideo';
- import wxParseAudio from './wxParseAudio';
- import wxParseTable from './wxParseTable';
-
- export default {
- name: 'wxParseTemplate1',
- 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>
|