vislite 1.12.0 → 2.0.0-next.0

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 (180) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +414 -403
  3. package/LICENSE +20 -20
  4. package/README-en.md +245 -245
  5. package/README.md +245 -245
  6. package/bin/formatArgv.js +30 -30
  7. package/bin/help.js +21 -17
  8. package/bin/minialipay.js +27 -0
  9. package/bin/run +25 -21
  10. package/bin/skills.js +26 -26
  11. package/lib/BarLayout/index.es.js +348 -348
  12. package/lib/Buffer/index.es.js +34 -34
  13. package/lib/Canvas/index.es.js +804 -804
  14. package/lib/Cardinal/index.es.js +89 -89
  15. package/lib/Eoap/index.es.js +32 -32
  16. package/lib/Hermite/index.es.js +34 -34
  17. package/lib/MapCoordinate/index.es.js +199 -199
  18. package/lib/Matrix4/index.es.js +123 -123
  19. package/lib/Mercator/index.es.js +18 -18
  20. package/lib/PieLayout/index.es.js +115 -115
  21. package/lib/RawCanvas/index.es.js +736 -736
  22. package/lib/SVG/index.es.js +626 -626
  23. package/lib/Shader/index.es.js +34 -34
  24. package/lib/Texture/index.es.js +52 -52
  25. package/lib/TreeLayout/index.es.js +301 -301
  26. package/lib/animation/index.es.js +2 -2
  27. package/lib/assemble/index.es.js +19 -19
  28. package/lib/getLoopColors/index.es.js +34 -34
  29. package/lib/getWebGLContext/index.es.js +61 -61
  30. package/lib/index.umd.js +2797 -2797
  31. package/lib/index.umd.min.js +1 -1
  32. package/lib/initOption/index.es.js +5 -5
  33. package/lib/mergeOption/index.es.js +34 -34
  34. package/lib/move/index.es.js +6 -6
  35. package/lib/rotate/index.es.js +6 -6
  36. package/lib/ruler/index.es.js +136 -136
  37. package/lib/scale/index.es.js +5 -5
  38. package/minialipay/ui-canvas/drawImage.js +35 -35
  39. package/minialipay/ui-canvas/index.acss +4 -4
  40. package/minialipay/ui-canvas/index.axml +3 -3
  41. package/minialipay/ui-canvas/index.d.ts +1 -1
  42. package/minialipay/ui-canvas/index.js +100 -100
  43. package/minialipay/ui-canvas/index.json +6 -6
  44. package/miniprogram/ui-canvas/drawImage.js +35 -35
  45. package/miniprogram/ui-canvas/index.js +125 -125
  46. package/miniprogram/ui-canvas/index.json +4 -4
  47. package/miniprogram/ui-canvas/index.wxml +4 -4
  48. package/miniprogram/ui-canvas/index.wxss +5 -5
  49. package/package/BarLayout/index.ts +2 -2
  50. package/package/Buffer/index.ts +2 -2
  51. package/package/Canvas/index.ts +2 -2
  52. package/package/Cardinal/index.ts +2 -2
  53. package/package/Eoap/index.ts +2 -2
  54. package/package/Hermite/index.ts +2 -2
  55. package/package/MapCoordinate/index.ts +2 -2
  56. package/package/Matrix4/index.ts +2 -2
  57. package/package/Mercator/index.ts +2 -2
  58. package/package/PieLayout/index.ts +2 -2
  59. package/package/RawCanvas/index.ts +2 -2
  60. package/package/SVG/index.ts +2 -2
  61. package/package/Shader/index.ts +2 -2
  62. package/package/Texture/index.ts +2 -2
  63. package/package/TreeLayout/index.ts +2 -2
  64. package/package/animation/index.ts +5 -5
  65. package/package/assemble/index.ts +2 -2
  66. package/package/getLoopColors/index.ts +2 -2
  67. package/package/getWebGLContext/index.ts +40 -40
  68. package/package/index.ts +84 -84
  69. package/package/initOption/index.ts +2 -2
  70. package/package/mergeOption/index.ts +2 -2
  71. package/package/move/index.ts +2 -2
  72. package/package/rotate/index.ts +2 -2
  73. package/package/ruler/index.ts +2 -2
  74. package/package/scale/index.ts +2 -2
  75. package/package/throttle/index.ts +2 -2
  76. package/package.json +103 -79
  77. package/skills/vislite-lib/BarLayout.md +117 -117
  78. package/skills/vislite-lib/Canvas.md +183 -183
  79. package/skills/vislite-lib/Interpolation.md +129 -129
  80. package/skills/vislite-lib/Matrix.md +174 -174
  81. package/skills/vislite-lib/PieLayout.md +131 -131
  82. package/skills/vislite-lib/Projections.md +158 -158
  83. package/skills/vislite-lib/SKILL.md +179 -179
  84. package/skills/vislite-lib/SVG.md +137 -137
  85. package/skills/vislite-lib/TreeLayout.md +176 -176
  86. package/skills/vislite-lib/Utilities.md +261 -261
  87. package/skills/vislite-lib/WebGL.md +106 -106
  88. package/skills/vislite-lib/minialipay/ui-canvas.md +95 -95
  89. package/skills/vislite-lib/miniprogram/ui-canvas.md +98 -98
  90. package/skills/vislite-lib/uniapp/ui-canvas.md +113 -113
  91. package/src/Canvas.ts +89 -89
  92. package/src/Eoap.ts +66 -66
  93. package/src/Matrix4/index.ts +84 -84
  94. package/src/Matrix4/move.ts +12 -12
  95. package/src/Matrix4/rotate.ts +15 -15
  96. package/src/Matrix4/scale.ts +11 -11
  97. package/src/Matrix4/transform.ts +64 -64
  98. package/src/Mercator.ts +27 -27
  99. package/src/SVG.ts +86 -86
  100. package/src/common/assemble.ts +30 -30
  101. package/src/common/canvas/arc.ts +51 -51
  102. package/src/common/canvas/config.ts +176 -176
  103. package/src/common/canvas/default.ts +64 -64
  104. package/src/common/canvas/gradient.ts +31 -31
  105. package/src/common/canvas/index.ts +189 -189
  106. package/src/common/canvas/painter.ts +475 -475
  107. package/src/common/canvas/texts.ts +18 -18
  108. package/src/common/map/getBoundary.ts +15 -15
  109. package/src/common/map/tool.ts +29 -29
  110. package/src/common/option.ts +31 -31
  111. package/src/common/setStyle.ts +5 -5
  112. package/src/common/svg/config.ts +213 -213
  113. package/src/common/svg/default.ts +29 -29
  114. package/src/common/svg/gradient.ts +53 -53
  115. package/src/common/svg/index.ts +420 -420
  116. package/src/common/svg/tool.ts +51 -51
  117. package/src/common/tree/index.ts +25 -25
  118. package/src/common/tree/toInnerTree.ts +61 -61
  119. package/src/common/tree/toPlainTree.ts +135 -135
  120. package/src/common/type.ts +26 -26
  121. package/src/common/webgl/buffer.ts +79 -79
  122. package/src/common/webgl/getWebGLContext.ts +45 -45
  123. package/src/common/webgl/shader.ts +75 -75
  124. package/src/common/webgl/texture.ts +98 -98
  125. package/src/coordinate/MapCoordinate.ts +80 -80
  126. package/src/getLoopColors.ts +42 -42
  127. package/src/interpolation/Cardinal.ts +110 -110
  128. package/src/interpolation/Hermite.ts +65 -65
  129. package/src/layout/BarLayout.ts +249 -249
  130. package/src/layout/PieLayout.ts +146 -146
  131. package/src/layout/TreeLayout.ts +200 -200
  132. package/src/move.ts +7 -7
  133. package/src/rotate.ts +7 -7
  134. package/src/ruler.ts +209 -209
  135. package/src/scale.ts +6 -6
  136. package/types/Bar.d.ts +91 -91
  137. package/types/BarConfig.d.ts +4 -4
  138. package/types/BarLayout.d.ts +48 -48
  139. package/types/BarOption.d.ts +31 -31
  140. package/types/Buffer.d.ts +30 -30
  141. package/types/Canvas.d.ts +379 -379
  142. package/types/CanvasConfig.d.ts +61 -61
  143. package/types/CanvasOption.d.ts +13 -13
  144. package/types/CanvasOpts.d.ts +9 -9
  145. package/types/Cardinal.d.ts +20 -20
  146. package/types/Gradient.d.ts +20 -20
  147. package/types/Hermite.d.ts +25 -25
  148. package/types/Map.d.ts +9 -9
  149. package/types/MapConfig.d.ts +27 -27
  150. package/types/MapCoordinate.d.ts +22 -22
  151. package/types/Matrix4.d.ts +79 -79
  152. package/types/Pie.d.ts +73 -73
  153. package/types/PieConfig.d.ts +26 -26
  154. package/types/PieLayout.d.ts +40 -40
  155. package/types/PieOption.d.ts +21 -21
  156. package/types/SVG.d.ts +282 -282
  157. package/types/SVGConfig.d.ts +54 -54
  158. package/types/Shader.d.ts +22 -22
  159. package/types/Texture.d.ts +22 -22
  160. package/types/Tree.d.ts +74 -74
  161. package/types/TreeConfig.d.ts +52 -52
  162. package/types/TreeLayout.d.ts +71 -71
  163. package/types/TreeOption.d.ts +48 -48
  164. package/types/animation.d.ts +26 -26
  165. package/types/assemble.d.ts +14 -14
  166. package/types/getLoopColors.d.ts +13 -13
  167. package/types/getWebGLContext.d.ts +7 -7
  168. package/types/index.d.ts +220 -220
  169. package/types/module.d.ts +110 -110
  170. package/types/move.d.ts +15 -15
  171. package/types/option.d.ts +12 -12
  172. package/types/painterConfig.d.ts +14 -14
  173. package/types/rotate.d.ts +15 -15
  174. package/types/ruler.d.ts +24 -24
  175. package/types/scale.d.ts +15 -15
  176. package/types/throttle.d.ts +6 -6
  177. package/types/ui-canvas.d.ts +4 -4
  178. package/types/uni-canvas.d.ts +3 -3
  179. package/uni-app/drawImage.js +19 -19
  180. package/uni-app/ui-canvas.vue +295 -295
@@ -1,295 +1,295 @@
1
- <template>
2
- <view
3
- :class="cover || isH5 ? 'cover-view' : 'normal-view'"
4
- :style="{ display: 'inline-block' }"
5
- >
6
- <view
7
- v-if="!cover && !isH5"
8
- :class="'view-img view-' + uniqueid"
9
- @touchstart="doitstart"
10
- >
11
- <image
12
- :style="{ width: width + 'px', height: height + 'px' }"
13
- :src="viewImg"
14
- ></image>
15
- </view>
16
-
17
- <!-- #ifdef MP-ALIPAY -->
18
- <canvas
19
- :width="2 * width + 'px'"
20
- :height="2 * height + 'px'"
21
- class="painter"
22
- :id="'painter-' + uniqueid"
23
- @touchstart="doitstart"
24
- :style="[
25
- { width: width + 'px', height: height + 'px' },
26
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
27
- ]"
28
- ></canvas>
29
- <canvas
30
- v-if="region"
31
- class="region"
32
- :id="'region-' + uniqueid"
33
- :style="{
34
- width: width + 'px',
35
- height: height + 'px',
36
- position: 'fixed',
37
- left: '50000px',
38
- }"
39
- ></canvas>
40
- <!-- #endif -->
41
- <!-- #ifdef MP-WEIXIN -->
42
- <canvas
43
- class="painter"
44
- canvas-id="painter"
45
- @touchstart="doitstart"
46
- :style="[
47
- { width: width + 'px', height: height + 'px' },
48
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
49
- ]"
50
- ></canvas>
51
- <canvas
52
- v-if="region"
53
- class="region"
54
- canvas-id="region"
55
- :style="{
56
- width: width + 'px',
57
- height: height + 'px',
58
- position: 'fixed',
59
- left: '50000px',
60
- }"
61
- ></canvas>
62
- <!-- #endif -->
63
- <!-- #ifndef MP-WEIXIN||MP-ALIPAY -->
64
- <canvas
65
- class="painter"
66
- :canvas-id="'painter-' + uniqueid"
67
- @touchstart="doitstart"
68
- :style="[
69
- { width: width + 'px', height: height + 'px' },
70
- cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
71
- ]"
72
- ></canvas>
73
- <canvas
74
- v-if="region"
75
- class="region"
76
- :canvas-id="'region-' + uniqueid"
77
- :style="{
78
- width: width + 'px',
79
- height: height + 'px',
80
- position: 'fixed',
81
- left: '50000px',
82
- }"
83
- ></canvas>
84
- <!-- #endif -->
85
- </view>
86
- </template>
87
- <script>
88
- import RawCanvas from "../lib/RawCanvas/index.es.min.js";
89
- import drawImage from "./drawImage.js";
90
-
91
- export default {
92
- data() {
93
- return {
94
- uniqueid: (Math.random() * 10000).toFixed(0),
95
- help: {},
96
- viewImg: "",
97
- // #ifdef H5
98
- isH5: true,
99
- // #endif
100
- // #ifndef H5
101
- isH5: false,
102
- // #endif
103
- hadFetch:false
104
- };
105
- },
106
- props: {
107
- width: {
108
- type: Number,
109
- default: 300,
110
- },
111
- height: {
112
- type: Number,
113
- default: 150,
114
- },
115
- cover: {
116
- type: Boolean,
117
- default: true,
118
- },
119
- region: {
120
- type: Boolean,
121
- default: true,
122
- },
123
- },
124
- methods: {
125
- fetch() {
126
- let painter, region, painterid, regionid;
127
- // #ifdef MP-WEIXIN
128
- painter = uni.createCanvasContext("painter", this);
129
- if (this.region) region = uni.createCanvasContext("region", this);
130
- painterid = "painter";
131
- regionid = "region";
132
- // #endif
133
- // #ifndef MP-WEIXIN
134
- painter = uni.createCanvasContext("painter-" + this.uniqueid);
135
- if (this.region)
136
- region = uni.createCanvasContext("region-" + this.uniqueid);
137
- painterid = "painter-" + this.uniqueid;
138
- regionid = "region-" + this.uniqueid;
139
- // #endif
140
-
141
- // #ifdef MP-ALIPAY
142
- if(!this.hadFetch) painter.scale(2, 2);
143
- // #endif
144
-
145
- let scaleSize = 1;
146
-
147
- // #ifdef MP-ALIPAY
148
- scaleSize = 2;
149
- // #endif
150
-
151
- let _this = this;
152
- this.help.instance = new RawCanvas(
153
- {
154
- getContext() {
155
- return painter;
156
- },
157
- },
158
- _this.region
159
- ? {
160
- getContext() {
161
- // #ifdef MP-ALIPAY
162
- let getImageData = region.getImageData;
163
- // #endif
164
- region.getImageData = (x, y, width, height) => {
165
- return new Promise((resolve, reject) => {
166
- let options = {
167
- x,
168
- y,
169
- width,
170
- height,
171
- canvasId: regionid,
172
- success: function success(res) {
173
- resolve(res.data);
174
- },
175
- fail: function fail(error) {
176
- reject(error);
177
- },
178
- };
179
-
180
- // #ifdef MP-ALIPAY
181
- getImageData(options);
182
- // #endif
183
- // #ifndef MP-ALIPAY
184
- uni.canvasGetImageData(options, _this);
185
- // #endif
186
- });
187
- };
188
- return region;
189
- },
190
- }
191
- : null,
192
- scaleSize
193
- );
194
- this.help.instance.draw = (reserve = false, callback = () => {}) => {
195
- painter.draw(reserve, () => {
196
- // 如果不使用原生渲染
197
- if (!this.cover && !this.isH5) {
198
- uni.canvasToTempFilePath(
199
- {
200
- canvasId: painterid,
201
- success: (e) => {
202
- this.viewImg = e.tempFilePath;
203
- if (_this.region) region.draw(reserve);
204
- callback();
205
- },
206
- },
207
- // #ifndef MP-ALIPAY
208
- this
209
- // #endif
210
- );
211
- } else {
212
- if (_this.region) region.draw(reserve);
213
- callback();
214
- }
215
- });
216
- };
217
-
218
- this.hadFetch = true;
219
- return new Promise((resolve, reject) => {
220
- this.help.instance.toDataURL = () => {
221
- return new Promise((resolveUrl) => {
222
- uni.canvasToTempFilePath(
223
- {
224
- canvasId: painterid,
225
- success: function (e) {
226
- // #ifdef MP-WEIXIN
227
- wx.getFileSystemManager().readFile({
228
- filePath: e.tempFilePath,
229
- encoding: 'base64',
230
- success: function (res) {
231
- resolveUrl('data:image/png;base64,' + res.data);
232
- }
233
- });
234
- // #endif
235
- // #ifndef MP-WEIXIN
236
- resolveUrl(e.tempFilePath);
237
- // #endif
238
- },
239
- },
240
- // #ifndef MP-ALIPAY
241
- this
242
- // #endif
243
- );
244
- });
245
- };
246
-
247
- this.help.instance.drawImage = drawImage(
248
- this.help.instance,
249
- this.help.instance.drawImage
250
- );
251
-
252
- resolve(this.help.instance);
253
- });
254
- },
255
- doit(event) {
256
- let doRun = (x, y) => {
257
- this.help.instance.getRegion(x, y).then((regionName) => {
258
- this.$emit("dotouchstart", {
259
- name: regionName,
260
- x: x,
261
- y: y,
262
- });
263
- });
264
- };
265
-
266
- if (this.cover || this.isH5) {
267
- let x = event.touches[0].x;
268
- let y = event.touches[0].y;
269
- doRun(x, y);
270
- } else {
271
- uni
272
- .createSelectorQuery()
273
- .selectViewport()
274
- .scrollOffset()
275
- .exec((ret) => {
276
- uni
277
- .createSelectorQuery()
278
- .in(this)
279
- .select(".view-" + this.uniqueid)
280
- .boundingClientRect((data) => {
281
- doRun(
282
- event.touches[0].pageX - data.left - ret[0].scrollLeft,
283
- event.touches[0].pageY - data.top - ret[0].scrollTop
284
- );
285
- })
286
- .exec();
287
- });
288
- }
289
- },
290
- doitstart(event) {
291
- this.doit(event);
292
- },
293
- },
294
- };
295
- </script>
1
+ <template>
2
+ <view
3
+ :class="cover || isH5 ? 'cover-view' : 'normal-view'"
4
+ :style="{ display: 'inline-block' }"
5
+ >
6
+ <view
7
+ v-if="!cover && !isH5"
8
+ :class="'view-img view-' + uniqueid"
9
+ @touchstart="doitstart"
10
+ >
11
+ <image
12
+ :style="{ width: width + 'px', height: height + 'px' }"
13
+ :src="viewImg"
14
+ ></image>
15
+ </view>
16
+
17
+ <!-- #ifdef MP-ALIPAY -->
18
+ <canvas
19
+ :width="2 * width + 'px'"
20
+ :height="2 * height + 'px'"
21
+ class="painter"
22
+ :id="'painter-' + uniqueid"
23
+ @touchstart="doitstart"
24
+ :style="[
25
+ { width: width + 'px', height: height + 'px' },
26
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
27
+ ]"
28
+ ></canvas>
29
+ <canvas
30
+ v-if="region"
31
+ class="region"
32
+ :id="'region-' + uniqueid"
33
+ :style="{
34
+ width: width + 'px',
35
+ height: height + 'px',
36
+ position: 'fixed',
37
+ left: '50000px',
38
+ }"
39
+ ></canvas>
40
+ <!-- #endif -->
41
+ <!-- #ifdef MP-WEIXIN -->
42
+ <canvas
43
+ class="painter"
44
+ canvas-id="painter"
45
+ @touchstart="doitstart"
46
+ :style="[
47
+ { width: width + 'px', height: height + 'px' },
48
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
49
+ ]"
50
+ ></canvas>
51
+ <canvas
52
+ v-if="region"
53
+ class="region"
54
+ canvas-id="region"
55
+ :style="{
56
+ width: width + 'px',
57
+ height: height + 'px',
58
+ position: 'fixed',
59
+ left: '50000px',
60
+ }"
61
+ ></canvas>
62
+ <!-- #endif -->
63
+ <!-- #ifndef MP-WEIXIN||MP-ALIPAY -->
64
+ <canvas
65
+ class="painter"
66
+ :canvas-id="'painter-' + uniqueid"
67
+ @touchstart="doitstart"
68
+ :style="[
69
+ { width: width + 'px', height: height + 'px' },
70
+ cover || isH5 ? {} : { position: 'fixed', left: '50000px' },
71
+ ]"
72
+ ></canvas>
73
+ <canvas
74
+ v-if="region"
75
+ class="region"
76
+ :canvas-id="'region-' + uniqueid"
77
+ :style="{
78
+ width: width + 'px',
79
+ height: height + 'px',
80
+ position: 'fixed',
81
+ left: '50000px',
82
+ }"
83
+ ></canvas>
84
+ <!-- #endif -->
85
+ </view>
86
+ </template>
87
+ <script>
88
+ import RawCanvas from "../lib/RawCanvas/index.es.min.js";
89
+ import drawImage from "./drawImage.js";
90
+
91
+ export default {
92
+ data() {
93
+ return {
94
+ uniqueid: (Math.random() * 10000).toFixed(0),
95
+ help: {},
96
+ viewImg: "",
97
+ // #ifdef H5
98
+ isH5: true,
99
+ // #endif
100
+ // #ifndef H5
101
+ isH5: false,
102
+ // #endif
103
+ hadFetch:false
104
+ };
105
+ },
106
+ props: {
107
+ width: {
108
+ type: Number,
109
+ default: 300,
110
+ },
111
+ height: {
112
+ type: Number,
113
+ default: 150,
114
+ },
115
+ cover: {
116
+ type: Boolean,
117
+ default: true,
118
+ },
119
+ region: {
120
+ type: Boolean,
121
+ default: true,
122
+ },
123
+ },
124
+ methods: {
125
+ fetch() {
126
+ let painter, region, painterid, regionid;
127
+ // #ifdef MP-WEIXIN
128
+ painter = uni.createCanvasContext("painter", this);
129
+ if (this.region) region = uni.createCanvasContext("region", this);
130
+ painterid = "painter";
131
+ regionid = "region";
132
+ // #endif
133
+ // #ifndef MP-WEIXIN
134
+ painter = uni.createCanvasContext("painter-" + this.uniqueid);
135
+ if (this.region)
136
+ region = uni.createCanvasContext("region-" + this.uniqueid);
137
+ painterid = "painter-" + this.uniqueid;
138
+ regionid = "region-" + this.uniqueid;
139
+ // #endif
140
+
141
+ // #ifdef MP-ALIPAY
142
+ if(!this.hadFetch) painter.scale(2, 2);
143
+ // #endif
144
+
145
+ let scaleSize = 1;
146
+
147
+ // #ifdef MP-ALIPAY
148
+ scaleSize = 2;
149
+ // #endif
150
+
151
+ let _this = this;
152
+ this.help.instance = new RawCanvas(
153
+ {
154
+ getContext() {
155
+ return painter;
156
+ },
157
+ },
158
+ _this.region
159
+ ? {
160
+ getContext() {
161
+ // #ifdef MP-ALIPAY
162
+ let getImageData = region.getImageData;
163
+ // #endif
164
+ region.getImageData = (x, y, width, height) => {
165
+ return new Promise((resolve, reject) => {
166
+ let options = {
167
+ x,
168
+ y,
169
+ width,
170
+ height,
171
+ canvasId: regionid,
172
+ success: function success(res) {
173
+ resolve(res.data);
174
+ },
175
+ fail: function fail(error) {
176
+ reject(error);
177
+ },
178
+ };
179
+
180
+ // #ifdef MP-ALIPAY
181
+ getImageData(options);
182
+ // #endif
183
+ // #ifndef MP-ALIPAY
184
+ uni.canvasGetImageData(options, _this);
185
+ // #endif
186
+ });
187
+ };
188
+ return region;
189
+ },
190
+ }
191
+ : null,
192
+ scaleSize
193
+ );
194
+ this.help.instance.draw = (reserve = false, callback = () => {}) => {
195
+ painter.draw(reserve, () => {
196
+ // 如果不使用原生渲染
197
+ if (!this.cover && !this.isH5) {
198
+ uni.canvasToTempFilePath(
199
+ {
200
+ canvasId: painterid,
201
+ success: (e) => {
202
+ this.viewImg = e.tempFilePath;
203
+ if (_this.region) region.draw(reserve);
204
+ callback();
205
+ },
206
+ },
207
+ // #ifndef MP-ALIPAY
208
+ this
209
+ // #endif
210
+ );
211
+ } else {
212
+ if (_this.region) region.draw(reserve);
213
+ callback();
214
+ }
215
+ });
216
+ };
217
+
218
+ this.hadFetch = true;
219
+ return new Promise((resolve, reject) => {
220
+ this.help.instance.toDataURL = () => {
221
+ return new Promise((resolveUrl) => {
222
+ uni.canvasToTempFilePath(
223
+ {
224
+ canvasId: painterid,
225
+ success: function (e) {
226
+ // #ifdef MP-WEIXIN
227
+ wx.getFileSystemManager().readFile({
228
+ filePath: e.tempFilePath,
229
+ encoding: 'base64',
230
+ success: function (res) {
231
+ resolveUrl('data:image/png;base64,' + res.data);
232
+ }
233
+ });
234
+ // #endif
235
+ // #ifndef MP-WEIXIN
236
+ resolveUrl(e.tempFilePath);
237
+ // #endif
238
+ },
239
+ },
240
+ // #ifndef MP-ALIPAY
241
+ this
242
+ // #endif
243
+ );
244
+ });
245
+ };
246
+
247
+ this.help.instance.drawImage = drawImage(
248
+ this.help.instance,
249
+ this.help.instance.drawImage
250
+ );
251
+
252
+ resolve(this.help.instance);
253
+ });
254
+ },
255
+ doit(event) {
256
+ let doRun = (x, y) => {
257
+ this.help.instance.getRegion(x, y).then((regionName) => {
258
+ this.$emit("dotouchstart", {
259
+ name: regionName,
260
+ x: x,
261
+ y: y,
262
+ });
263
+ });
264
+ };
265
+
266
+ if (this.cover || this.isH5) {
267
+ let x = event.touches[0].x;
268
+ let y = event.touches[0].y;
269
+ doRun(x, y);
270
+ } else {
271
+ uni
272
+ .createSelectorQuery()
273
+ .selectViewport()
274
+ .scrollOffset()
275
+ .exec((ret) => {
276
+ uni
277
+ .createSelectorQuery()
278
+ .in(this)
279
+ .select(".view-" + this.uniqueid)
280
+ .boundingClientRect((data) => {
281
+ doRun(
282
+ event.touches[0].pageX - data.left - ret[0].scrollLeft,
283
+ event.touches[0].pageY - data.top - ret[0].scrollTop
284
+ );
285
+ })
286
+ .exec();
287
+ });
288
+ }
289
+ },
290
+ doitstart(event) {
291
+ this.doit(event);
292
+ },
293
+ },
294
+ };
295
+ </script>