@10yun/cv-mobile-ui 0.5.9 → 0.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/extend/permission.js +1 -2
  2. package/package.json +1 -1
  3. package/plugins/uni-richText.js +1 -1
  4. package/plugins/uni-socket.js +6 -8
  5. package/ui-cv/cv-geo-local/cv-geo-local.vue +0 -1
  6. package/ui-cv/cv-layout-topbar/cv-layout-topbar.vue +238 -0
  7. package/ui-cv/cv-markdown-show/lib/highlight/uni-highlight.min.js +9001 -5133
  8. package/ui-sdks/sdk-app-update/img/logo.png +0 -0
  9. package/ui-sdks/sdk-app-update/img/update_bg.png +0 -0
  10. package/ui-sdks/sdk-app-update/img/update_bg_top.png +0 -0
  11. package/{ui-cv/cv-update-app/cv-update-app.vue → ui-sdks/sdk-app-update/sdk-app-update.vue} +2 -2
  12. package/ui-sdks/sdk-app-update/xxxx +62 -0
  13. package/ui-sdks/sdk-privacy-policy/sdk-privacy-policy.vue +113 -0
  14. package/ui-sdks/sdk-u-charts/app-echarts.min.js +23 -0
  15. package/ui-sdks/sdk-u-charts/config-echarts.js +420 -0
  16. package/ui-sdks/sdk-u-charts/config-ucharts.js +630 -0
  17. package/ui-sdks/sdk-u-charts/h5-echarts.min.js +23 -0
  18. package/ui-sdks/sdk-u-charts/u-charts.js +7398 -0
  19. package/ui-sdks/sdk-u-charts/u-charts.min.js +1 -0
  20. package/ui-sdks/sdk-webview-main/WebViewMain.vue +1 -0
  21. package/ui-sdks/sdk-webview-main/main.js +0 -0
  22. package/ui-sdks/sdk-webview-main/mixin.js +0 -0
  23. package/ui-uni/uParse/src/components/wxParseAudio.vue +26 -0
  24. package/ui-uni/uParse/src/components/wxParseImg.vue +94 -0
  25. package/ui-uni/uParse/src/components/wxParseTable.vue +55 -0
  26. package/ui-uni/uParse/src/components/wxParseTemplate0.vue +103 -0
  27. package/ui-uni/uParse/src/components/wxParseTemplate1.vue +88 -0
  28. package/ui-uni/uParse/src/components/wxParseTemplate10.vue +88 -0
  29. package/ui-uni/uParse/src/components/wxParseTemplate11.vue +86 -0
  30. package/ui-uni/uParse/src/components/wxParseTemplate2.vue +88 -0
  31. package/ui-uni/uParse/src/components/wxParseTemplate3.vue +88 -0
  32. package/ui-uni/uParse/src/components/wxParseTemplate4.vue +88 -0
  33. package/ui-uni/uParse/src/components/wxParseTemplate5.vue +88 -0
  34. package/ui-uni/uParse/src/components/wxParseTemplate6.vue +88 -0
  35. package/ui-uni/uParse/src/components/wxParseTemplate7.vue +88 -0
  36. package/ui-uni/uParse/src/components/wxParseTemplate8.vue +88 -0
  37. package/ui-uni/uParse/src/components/wxParseTemplate9.vue +88 -0
  38. package/ui-uni/uParse/src/components/wxParseVideo.vue +15 -0
  39. package/ui-uni/uParse/src/editor.css +495 -0
  40. package/ui-uni/uParse/src/libs/html2json.js +261 -0
  41. package/ui-uni/uParse/src/libs/htmlparser.js +156 -0
  42. package/ui-uni/uParse/src/libs/wxDiscode.js +195 -0
  43. package/ui-uni/uParse/src/wxParse.css +270 -0
  44. package/ui-uni/uParse/src/wxParse.vue +206 -0
@@ -0,0 +1,86 @@
1
+ <template>
2
+ <!--判断是否是标签节点-->
3
+ <block v-if="node.node == 'element'">
4
+ <!--button类型-->
5
+ <button v-if="node.tag == 'button'" type="default" size="mini" :class="node.classStr" :style="node.styleStr">
6
+ <rich-text :nodes="node" :class="node.classStr" :style="'user-select:' + parseSelect"></rich-text>
7
+ </button>
8
+
9
+ <!--a类型-->
10
+ <view v-else-if="node.tag == 'a'" @click="wxParseATap(node.attr,$event)" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
11
+ <block v-for="(node, index) of node.nodes" :key="index">
12
+ <rich-text :nodes="node" :class="node.classStr" :style="'user-select:' + parseSelect"></rich-text>
13
+ </block>
14
+ </view>
15
+
16
+ <!--li类型-->
17
+ <view v-else-if="node.tag == 'li'" :class="node.classStr" :style="node.styleStr">
18
+ <block v-for="(node, index) of node.nodes" :key="index">
19
+ <rich-text :nodes="node" :class="node.classStr" :style="'user-select:' + parseSelect"></rich-text>
20
+ </block>
21
+ </view>
22
+
23
+ <!--table类型-->
24
+ <wx-parse-table v-else-if="node.tag == 'table'" :class="node.classStr" :style="node.styleStr" :node="node" />
25
+
26
+ <!--br类型-->
27
+ <!-- #ifndef H5 -->
28
+ <text v-else-if="node.tag == 'br'">\n</text>
29
+ <!-- #endif -->
30
+ <!-- #ifdef H5 -->
31
+ <br v-else-if="node.tag == 'br'">
32
+ <!-- #endif -->
33
+
34
+ <!--video类型-->
35
+ <wx-parse-video :node="node" v-else-if="node.tag == 'video'"/>
36
+
37
+ <!--audio类型-->
38
+ <wx-parse-audio :node="node" v-else-if="node.tag == 'audio'"/>
39
+
40
+ <!--img类型-->
41
+ <wx-parse-img :node="node" v-else-if="node.tag == 'img'"/>
42
+
43
+ <!--其他标签-->
44
+ <view v-else :class="node.classStr" :style="node.styleStr">
45
+ <block v-for="(node, index) of node.nodes" :key="index">
46
+ <rich-text :nodes="node" :class="node.classStr" :style="'user-select:' + parseSelect"></rich-text>
47
+ </block>
48
+ </view>
49
+ </block>
50
+
51
+ <!--判断是否是文本节点-->
52
+ <block v-else-if="node.node == 'text' ">{{node.text}}</block>
53
+ </template>
54
+
55
+ <script>
56
+ import wxParseImg from './wxParseImg';
57
+ import wxParseVideo from './wxParseVideo';
58
+ import wxParseAudio from './wxParseAudio';
59
+ import wxParseTable from './wxParseTable';
60
+
61
+ export default {
62
+ name: 'wxParseTemplate11',
63
+ props: {
64
+ node: {},
65
+ },
66
+ components: {
67
+ wxParseImg,
68
+ wxParseVideo,
69
+ wxParseAudio,
70
+ wxParseTable
71
+ },
72
+ methods: {
73
+ wxParseATap(attr,e) {
74
+ const {
75
+ href
76
+ } = e.currentTarget.dataset;
77
+ if (!href) return;
78
+ let parent = this.$parent;
79
+ while(!parent.preview || typeof parent.preview !== 'function') {
80
+ parent = parent.$parent;
81
+ }
82
+ parent.navigate(href, e, attr);
83
+ }
84
+ }
85
+ };
86
+ </script>
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <!--判断是否是标签节点-->
3
+ <block v-if="node.node == 'element'">
4
+ <!--button类型-->
5
+ <button v-if="node.tag == 'button'" type="default" size="mini" :class="node.classStr" :style="node.styleStr">
6
+ <wx-parse-template :node="node" />
7
+ </button>
8
+
9
+ <!--a类型-->
10
+ <view v-else-if="node.tag == 'a'" @click="wxParseATap(node.attr,$event)" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
11
+ <block v-for="(node, index) of node.nodes" :key="index">
12
+ <wx-parse-template :node="node" />
13
+ </block>
14
+ </view>
15
+
16
+ <!--li类型-->
17
+ <view v-else-if="node.tag == 'li'" :class="node.classStr" :style="node.styleStr">
18
+ <block v-for="(node, index) of node.nodes" :key="index">
19
+ <wx-parse-template :node="node" />
20
+ </block>
21
+ </view>
22
+
23
+ <!--table类型-->
24
+ <wx-parse-table v-else-if="node.tag == 'table'" :class="node.classStr" :style="node.styleStr" :node="node" />
25
+
26
+ <!--br类型-->
27
+ <!-- #ifndef H5 -->
28
+ <text v-else-if="node.tag == 'br'">\n</text>
29
+ <!-- #endif -->
30
+ <!-- #ifdef H5 -->
31
+ <br v-else-if="node.tag == 'br'">
32
+ <!-- #endif -->
33
+
34
+ <!--video类型-->
35
+ <wx-parse-video :node="node" v-else-if="node.tag == 'video'"/>
36
+
37
+ <!--audio类型-->
38
+ <wx-parse-audio :node="node" v-else-if="node.tag == 'audio'"/>
39
+
40
+ <!--img类型-->
41
+ <wx-parse-img :node="node" v-else-if="node.tag == 'img'" :style="node.styleStr"/>
42
+
43
+ <!--其他标签-->
44
+ <view v-else :class="node.classStr" :style="node.styleStr">
45
+ <block v-for="(node, index) of node.nodes" :key="index">
46
+ <wx-parse-template :node="node" />
47
+ </block>
48
+ </view>
49
+ </block>
50
+
51
+ <!--判断是否是文本节点-->
52
+ <block v-else-if="node.node == 'text'">{{node.text}}</block>
53
+ </template>
54
+
55
+ <script>
56
+ import wxParseTemplate from './wxParseTemplate3';
57
+ import wxParseImg from './wxParseImg';
58
+ import wxParseVideo from './wxParseVideo';
59
+ import wxParseAudio from './wxParseAudio';
60
+ import wxParseTable from './wxParseTable';
61
+
62
+ export default {
63
+ name: 'wxParseTemplate2',
64
+ props: {
65
+ node: {},
66
+ },
67
+ components: {
68
+ wxParseTemplate,
69
+ wxParseImg,
70
+ wxParseVideo,
71
+ wxParseAudio,
72
+ wxParseTable
73
+ },
74
+ methods: {
75
+ wxParseATap(attr,e) {
76
+ const {
77
+ href
78
+ } = e.currentTarget.dataset;
79
+ if (!href) return;
80
+ let parent = this.$parent;
81
+ while(!parent.preview || typeof parent.preview !== 'function') {
82
+ parent = parent.$parent;
83
+ }
84
+ parent.navigate(href, e, attr);
85
+ }
86
+ }
87
+ };
88
+ </script>
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <!--判断是否是标签节点-->
3
+ <block v-if="node.node == 'element'">
4
+ <!--button类型-->
5
+ <button v-if="node.tag == 'button'" type="default" size="mini" :class="node.classStr" :style="node.styleStr">
6
+ <wx-parse-template :node="node" />
7
+ </button>
8
+
9
+ <!--a类型-->
10
+ <view v-else-if="node.tag == 'a'" @click="wxParseATap(node.attr,$event)" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
11
+ <block v-for="(node, index) of node.nodes" :key="index">
12
+ <wx-parse-template :node="node" />
13
+ </block>
14
+ </view>
15
+
16
+ <!--li类型-->
17
+ <view v-else-if="node.tag == 'li'" :class="node.classStr" :style="node.styleStr">
18
+ <block v-for="(node, index) of node.nodes" :key="index">
19
+ <wx-parse-template :node="node" />
20
+ </block>
21
+ </view>
22
+
23
+ <!--table类型-->
24
+ <wx-parse-table v-else-if="node.tag == 'table'" :class="node.classStr" :style="node.styleStr" :node="node" />
25
+
26
+ <!--br类型-->
27
+ <!-- #ifndef H5 -->
28
+ <text v-else-if="node.tag == 'br'">\n</text>
29
+ <!-- #endif -->
30
+ <!-- #ifdef H5 -->
31
+ <br v-else-if="node.tag == 'br'">
32
+ <!-- #endif -->
33
+
34
+ <!--video类型-->
35
+ <wx-parse-video :node="node" v-else-if="node.tag == 'video'"/>
36
+
37
+ <!--audio类型-->
38
+ <wx-parse-audio :node="node" v-else-if="node.tag == 'audio'"/>
39
+
40
+ <!--img类型-->
41
+ <wx-parse-img :node="node" v-else-if="node.tag == 'img'" :style="node.styleStr"/>
42
+
43
+ <!--其他标签-->
44
+ <view v-else :class="node.classStr" :style="node.styleStr">
45
+ <block v-for="(node, index) of node.nodes" :key="index">
46
+ <wx-parse-template :node="node" />
47
+ </block>
48
+ </view>
49
+ </block>
50
+
51
+ <!--判断是否是文本节点-->
52
+ <block v-else-if="node.node == 'text' ">{{node.text}}</block>
53
+ </template>
54
+
55
+ <script>
56
+ import wxParseTemplate from './wxParseTemplate4';
57
+ import wxParseImg from './wxParseImg';
58
+ import wxParseVideo from './wxParseVideo';
59
+ import wxParseAudio from './wxParseAudio';
60
+ import wxParseTable from './wxParseTable';
61
+
62
+ export default {
63
+ name: 'wxParseTemplate3',
64
+ props: {
65
+ node: {},
66
+ },
67
+ components: {
68
+ wxParseTemplate,
69
+ wxParseImg,
70
+ wxParseVideo,
71
+ wxParseAudio,
72
+ wxParseTable
73
+ },
74
+ methods: {
75
+ wxParseATap(attr,e) {
76
+ const {
77
+ href
78
+ } = e.currentTarget.dataset;
79
+ if (!href) return;
80
+ let parent = this.$parent;
81
+ while(!parent.preview || typeof parent.preview !== 'function') {
82
+ parent = parent.$parent;
83
+ }
84
+ parent.navigate(href, e, attr);
85
+ }
86
+ }
87
+ };
88
+ </script>
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <!--判断是否是标签节点-->
3
+ <block v-if="node.node == 'element'">
4
+ <!--button类型-->
5
+ <button v-if="node.tag == 'button'" type="default" size="mini" :class="node.classStr" :style="node.styleStr">
6
+ <wx-parse-template :node="node" />
7
+ </button>
8
+
9
+ <!--a类型-->
10
+ <view v-else-if="node.tag == 'a'" @click="wxParseATap(node.attr,$event)" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
11
+ <block v-for="(node, index) of node.nodes" :key="index">
12
+ <wx-parse-template :node="node" />
13
+ </block>
14
+ </view>
15
+
16
+ <!--li类型-->
17
+ <view v-else-if="node.tag == 'li'" :class="node.classStr" :style="node.styleStr">
18
+ <block v-for="(node, index) of node.nodes" :key="index">
19
+ <wx-parse-template :node="node" />
20
+ </block>
21
+ </view>
22
+
23
+ <!--table类型-->
24
+ <wx-parse-table v-else-if="node.tag == 'table'" :class="node.classStr" :style="node.styleStr" :node="node" />
25
+
26
+ <!--br类型-->
27
+ <!-- #ifndef H5 -->
28
+ <text v-else-if="node.tag == 'br'">\n</text>
29
+ <!-- #endif -->
30
+ <!-- #ifdef H5 -->
31
+ <br v-else-if="node.tag == 'br'">
32
+ <!-- #endif -->
33
+
34
+ <!--video类型-->
35
+ <wx-parse-video :node="node" v-else-if="node.tag == 'video'"/>
36
+
37
+ <!--audio类型-->
38
+ <wx-parse-audio :node="node" v-else-if="node.tag == 'audio'"/>
39
+
40
+ <!--img类型-->
41
+ <wx-parse-img :node="node" v-else-if="node.tag == 'img'" :style="node.styleStr"/>
42
+
43
+ <!--其他标签-->
44
+ <view v-else :class="node.classStr" :style="node.styleStr">
45
+ <block v-for="(node, index) of node.nodes" :key="index">
46
+ <wx-parse-template :node="node" />
47
+ </block>
48
+ </view>
49
+ </block>
50
+
51
+ <!--判断是否是文本节点-->
52
+ <block v-else-if="node.node == 'text' ">{{node.text}}</block>
53
+ </template>
54
+
55
+ <script>
56
+ import wxParseTemplate from './wxParseTemplate5';
57
+ import wxParseImg from './wxParseImg';
58
+ import wxParseVideo from './wxParseVideo';
59
+ import wxParseAudio from './wxParseAudio';
60
+ import wxParseTable from './wxParseTable';
61
+
62
+ export default {
63
+ name: 'wxParseTemplate4',
64
+ props: {
65
+ node: {},
66
+ },
67
+ components: {
68
+ wxParseTemplate,
69
+ wxParseImg,
70
+ wxParseVideo,
71
+ wxParseAudio,
72
+ wxParseTable
73
+ },
74
+ methods: {
75
+ wxParseATap(attr,e) {
76
+ const {
77
+ href
78
+ } = e.currentTarget.dataset;
79
+ if (!href) return;
80
+ let parent = this.$parent;
81
+ while(!parent.preview || typeof parent.preview !== 'function') {
82
+ parent = parent.$parent;
83
+ }
84
+ parent.navigate(href, e, attr);
85
+ }
86
+ }
87
+ };
88
+ </script>
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <!--判断是否是标签节点-->
3
+ <block v-if="node.node == 'element'">
4
+ <!--button类型-->
5
+ <button v-if="node.tag == 'button'" type="default" size="mini" :class="node.classStr" :style="node.styleStr">
6
+ <wx-parse-template :node="node" />
7
+ </button>
8
+
9
+ <!--a类型-->
10
+ <view v-else-if="node.tag == 'a'" @click="wxParseATap(node.attr,$event)" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
11
+ <block v-for="(node, index) of node.nodes" :key="index">
12
+ <wx-parse-template :node="node" />
13
+ </block>
14
+ </view>
15
+
16
+ <!--li类型-->
17
+ <view v-else-if="node.tag == 'li'" :class="node.classStr" :style="node.styleStr">
18
+ <block v-for="(node, index) of node.nodes" :key="index">
19
+ <wx-parse-template :node="node" />
20
+ </block>
21
+ </view>
22
+
23
+ <!--table类型-->
24
+ <wx-parse-table v-else-if="node.tag == 'table'" :class="node.classStr" :style="node.styleStr" :node="node" />
25
+
26
+ <!--br类型-->
27
+ <!-- #ifndef H5 -->
28
+ <text v-else-if="node.tag == 'br'">\n</text>
29
+ <!-- #endif -->
30
+ <!-- #ifdef H5 -->
31
+ <br v-else-if="node.tag == 'br'">
32
+ <!-- #endif -->
33
+
34
+ <!--video类型-->
35
+ <wx-parse-video :node="node" v-else-if="node.tag == 'video'"/>
36
+
37
+ <!--audio类型-->
38
+ <wx-parse-audio :node="node" v-else-if="node.tag == 'audio'"/>
39
+
40
+ <!--img类型-->
41
+ <wx-parse-img :node="node" v-else-if="node.tag == 'img'" :style="node.styleStr"/>
42
+
43
+ <!--其他标签-->
44
+ <view v-else :class="node.classStr" :style="node.styleStr">
45
+ <block v-for="(node, index) of node.nodes" :key="index">
46
+ <wx-parse-template :node="node" />
47
+ </block>
48
+ </view>
49
+ </block>
50
+
51
+ <!--判断是否是文本节点-->
52
+ <block v-else-if="node.node == 'text' ">{{node.text}}</block>
53
+ </template>
54
+
55
+ <script>
56
+ import wxParseTemplate from './wxParseTemplate6';
57
+ import wxParseImg from './wxParseImg';
58
+ import wxParseVideo from './wxParseVideo';
59
+ import wxParseAudio from './wxParseAudio';
60
+ import wxParseTable from './wxParseTable';
61
+
62
+ export default {
63
+ name: 'wxParseTemplate5',
64
+ props: {
65
+ node: {},
66
+ },
67
+ components: {
68
+ wxParseTemplate,
69
+ wxParseImg,
70
+ wxParseVideo,
71
+ wxParseAudio,
72
+ wxParseTable
73
+ },
74
+ methods: {
75
+ wxParseATap(attr,e) {
76
+ const {
77
+ href
78
+ } = e.currentTarget.dataset;
79
+ if (!href) return;
80
+ let parent = this.$parent;
81
+ while(!parent.preview || typeof parent.preview !== 'function') {
82
+ parent = parent.$parent;
83
+ }
84
+ parent.navigate(href, e, attr);
85
+ }
86
+ }
87
+ };
88
+ </script>
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <!--判断是否是标签节点-->
3
+ <block v-if="node.node == 'element'">
4
+ <!--button类型-->
5
+ <button v-if="node.tag == 'button'" type="default" size="mini" :class="node.classStr" :style="node.styleStr">
6
+ <wx-parse-template :node="node" />
7
+ </button>
8
+
9
+ <!--a类型-->
10
+ <view v-else-if="node.tag == 'a'" @click="wxParseATap(node.attr,$event)" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
11
+ <block v-for="(node, index) of node.nodes" :key="index">
12
+ <wx-parse-template :node="node" />
13
+ </block>
14
+ </view>
15
+
16
+ <!--li类型-->
17
+ <view v-else-if="node.tag == 'li'" :class="node.classStr" :style="node.styleStr">
18
+ <block v-for="(node, index) of node.nodes" :key="index">
19
+ <wx-parse-template :node="node" />
20
+ </block>
21
+ </view>
22
+
23
+ <!--table类型-->
24
+ <wx-parse-table v-else-if="node.tag == 'table'" :class="node.classStr" :style="node.styleStr" :node="node" />
25
+
26
+ <!--br类型-->
27
+ <!-- #ifndef H5 -->
28
+ <text v-else-if="node.tag == 'br'">\n</text>
29
+ <!-- #endif -->
30
+ <!-- #ifdef H5 -->
31
+ <br v-else-if="node.tag == 'br'">
32
+ <!-- #endif -->
33
+
34
+ <!--video类型-->
35
+ <wx-parse-video :node="node" v-else-if="node.tag == 'video'"/>
36
+
37
+ <!--audio类型-->
38
+ <wx-parse-audio :node="node" v-else-if="node.tag == 'audio'"/>
39
+
40
+ <!--img类型-->
41
+ <wx-parse-img :node="node" v-else-if="node.tag == 'img'" :style="node.styleStr"/>
42
+
43
+ <!--其他标签-->
44
+ <view v-else :class="node.classStr" :style="node.styleStr">
45
+ <block v-for="(node, index) of node.nodes" :key="index">
46
+ <wx-parse-template :node="node" />
47
+ </block>
48
+ </view>
49
+ </block>
50
+
51
+ <!--判断是否是文本节点-->
52
+ <block v-else-if="node.node == 'text' ">{{node.text}}</block>
53
+ </template>
54
+
55
+ <script>
56
+ import wxParseTemplate from './wxParseTemplate7';
57
+ import wxParseImg from './wxParseImg';
58
+ import wxParseVideo from './wxParseVideo';
59
+ import wxParseAudio from './wxParseAudio';
60
+ import wxParseTable from './wxParseTable';
61
+
62
+ export default {
63
+ name: 'wxParseTemplate6',
64
+ props: {
65
+ node: {},
66
+ },
67
+ components: {
68
+ wxParseTemplate,
69
+ wxParseImg,
70
+ wxParseVideo,
71
+ wxParseAudio,
72
+ wxParseTable
73
+ },
74
+ methods: {
75
+ wxParseATap(attr,e) {
76
+ const {
77
+ href
78
+ } = e.currentTarget.dataset;
79
+ if (!href) return;
80
+ let parent = this.$parent;
81
+ while(!parent.preview || typeof parent.preview !== 'function') {
82
+ parent = parent.$parent;
83
+ }
84
+ parent.navigate(href, e, attr);
85
+ }
86
+ }
87
+ };
88
+ </script>
@@ -0,0 +1,88 @@
1
+ <template>
2
+ <!--判断是否是标签节点-->
3
+ <block v-if="node.node == 'element'">
4
+ <!--button类型-->
5
+ <button v-if="node.tag == 'button'" type="default" size="mini" :class="node.classStr" :style="node.styleStr">
6
+ <wx-parse-template :node="node" />
7
+ </button>
8
+
9
+ <!--a类型-->
10
+ <view v-else-if="node.tag == 'a'" @click="wxParseATap(node.attr,$event)" :class="node.classStr" :data-href="node.attr.href" :style="node.styleStr">
11
+ <block v-for="(node, index) of node.nodes" :key="index">
12
+ <wx-parse-template :node="node" />
13
+ </block>
14
+ </view>
15
+
16
+ <!--li类型-->
17
+ <view v-else-if="node.tag == 'li'" :class="node.classStr" :style="node.styleStr">
18
+ <block v-for="(node, index) of node.nodes" :key="index">
19
+ <wx-parse-template :node="node" />
20
+ </block>
21
+ </view>
22
+
23
+ <!--table类型-->
24
+ <wx-parse-table v-else-if="node.tag == 'table'" :class="node.classStr" :style="node.styleStr" :node="node" />
25
+
26
+ <!--br类型-->
27
+ <!-- #ifndef H5 -->
28
+ <text v-else-if="node.tag == 'br'">\n</text>
29
+ <!-- #endif -->
30
+ <!-- #ifdef H5 -->
31
+ <br v-else-if="node.tag == 'br'">
32
+ <!-- #endif -->
33
+
34
+ <!--video类型-->
35
+ <wx-parse-video :node="node" v-else-if="node.tag == 'video'"/>
36
+
37
+ <!--audio类型-->
38
+ <wx-parse-audio :node="node" v-else-if="node.tag == 'audio'"/>
39
+
40
+ <!--img类型-->
41
+ <wx-parse-img :node="node" v-else-if="node.tag == 'img'" :style="node.styleStr"/>
42
+
43
+ <!--其他标签-->
44
+ <view v-else :class="node.classStr" :style="node.styleStr">
45
+ <block v-for="(node, index) of node.nodes" :key="index">
46
+ <wx-parse-template :node="node" />
47
+ </block>
48
+ </view>
49
+ </block>
50
+
51
+ <!--判断是否是文本节点-->
52
+ <block v-else-if="node.node == 'text' ">{{node.text}}</block>
53
+ </template>
54
+
55
+ <script>
56
+ import wxParseTemplate from './wxParseTemplate8';
57
+ import wxParseImg from './wxParseImg';
58
+ import wxParseVideo from './wxParseVideo';
59
+ import wxParseAudio from './wxParseAudio';
60
+ import wxParseTable from './wxParseTable';
61
+
62
+ export default {
63
+ name: 'wxParseTemplate7',
64
+ props: {
65
+ node: {},
66
+ },
67
+ components: {
68
+ wxParseTemplate,
69
+ wxParseImg,
70
+ wxParseVideo,
71
+ wxParseAudio,
72
+ wxParseTable
73
+ },
74
+ methods: {
75
+ wxParseATap(attr,e) {
76
+ const {
77
+ href
78
+ } = e.currentTarget.dataset;
79
+ if (!href) return;
80
+ let parent = this.$parent;
81
+ while(!parent.preview || typeof parent.preview !== 'function') {
82
+ parent = parent.$parent;
83
+ }
84
+ parent.navigate(href, e, attr);
85
+ }
86
+ }
87
+ };
88
+ </script>