vislite 1.3.0 → 1.4.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 (191) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +12 -5
  3. package/LICENSE +20 -20
  4. package/README.md +284 -284
  5. package/lib/BarLayout/index.es.d.ts +3 -0
  6. package/lib/BarLayout/index.es.js +467 -0
  7. package/lib/BarLayout/index.es.min.d.ts +3 -0
  8. package/lib/BarLayout/index.es.min.js +10 -0
  9. package/lib/Buffer/index.es.js +1 -1
  10. package/lib/Buffer/index.es.min.js +1 -1
  11. package/lib/Canvas/index.es.js +2 -2
  12. package/lib/Canvas/index.es.min.js +1 -1
  13. package/lib/Cardinal/index.es.js +1 -1
  14. package/lib/Cardinal/index.es.min.js +1 -1
  15. package/lib/Eoap/index.es.js +1 -1
  16. package/lib/Eoap/index.es.min.js +1 -1
  17. package/lib/Hermite/index.es.js +1 -1
  18. package/lib/Hermite/index.es.min.js +1 -1
  19. package/lib/MapCoordinate/index.es.js +1 -1
  20. package/lib/MapCoordinate/index.es.min.js +1 -1
  21. package/lib/Matrix4/index.es.js +1 -1
  22. package/lib/Matrix4/index.es.min.js +1 -1
  23. package/lib/Mercator/index.es.js +1 -1
  24. package/lib/Mercator/index.es.min.js +1 -1
  25. package/lib/PieLayout/index.es.d.ts +3 -0
  26. package/lib/PieLayout/index.es.js +234 -0
  27. package/lib/PieLayout/index.es.min.d.ts +3 -0
  28. package/lib/PieLayout/index.es.min.js +9 -0
  29. package/lib/RawCanvas/index.es.js +2 -2
  30. package/lib/RawCanvas/index.es.min.js +1 -1
  31. package/lib/SVG/index.es.js +29 -6
  32. package/lib/SVG/index.es.min.js +2 -2
  33. package/lib/Shader/index.es.js +1 -1
  34. package/lib/Shader/index.es.min.js +1 -1
  35. package/lib/Texture/index.es.js +1 -1
  36. package/lib/Texture/index.es.min.js +1 -1
  37. package/lib/TreeLayout/index.es.js +109 -102
  38. package/lib/TreeLayout/index.es.min.js +6 -2
  39. package/lib/animation/index.es.js +114 -103
  40. package/lib/animation/index.es.min.js +6 -2
  41. package/lib/assemble/index.es.js +1 -1
  42. package/lib/assemble/index.es.min.js +1 -1
  43. package/lib/getLoopColors/index.es.js +1 -1
  44. package/lib/getLoopColors/index.es.min.js +1 -1
  45. package/lib/getWebGLContext/index.es.js +1 -1
  46. package/lib/getWebGLContext/index.es.min.js +1 -1
  47. package/lib/index.umd.js +510 -158
  48. package/lib/index.umd.min.js +12 -2
  49. package/lib/initOption/index.es.js +1 -1
  50. package/lib/initOption/index.es.min.js +1 -1
  51. package/lib/mergeOption/index.es.js +1 -1
  52. package/lib/mergeOption/index.es.min.js +1 -1
  53. package/lib/move/index.es.js +1 -1
  54. package/lib/move/index.es.min.js +1 -1
  55. package/lib/rotate/index.es.js +1 -1
  56. package/lib/rotate/index.es.min.js +1 -1
  57. package/lib/ruler/index.es.js +1 -1
  58. package/lib/ruler/index.es.min.js +1 -1
  59. package/lib/scale/index.es.js +1 -1
  60. package/lib/scale/index.es.min.js +1 -1
  61. package/lib/throttle/index.es.js +55 -50
  62. package/lib/throttle/index.es.min.js +5 -1
  63. package/minialipay/ui-canvas/drawImage.js +35 -35
  64. package/minialipay/ui-canvas/index.acss +4 -4
  65. package/minialipay/ui-canvas/index.axml +3 -3
  66. package/minialipay/ui-canvas/index.d.ts +1 -1
  67. package/minialipay/ui-canvas/index.js +100 -100
  68. package/minialipay/ui-canvas/index.json +6 -6
  69. package/miniprogram/ui-canvas/drawImage.js +35 -35
  70. package/miniprogram/ui-canvas/index.js +117 -117
  71. package/miniprogram/ui-canvas/index.json +4 -4
  72. package/miniprogram/ui-canvas/index.wxml +4 -4
  73. package/miniprogram/ui-canvas/index.wxss +5 -5
  74. package/package/BarLayout/index.ts +3 -0
  75. package/package/Buffer/index.ts +2 -2
  76. package/package/Canvas/index.ts +2 -2
  77. package/package/Cardinal/index.ts +2 -2
  78. package/package/Eoap/index.ts +2 -2
  79. package/package/Hermite/index.ts +2 -2
  80. package/package/MapCoordinate/index.ts +2 -2
  81. package/package/Matrix4/index.ts +2 -2
  82. package/package/Mercator/index.ts +2 -2
  83. package/package/PieLayout/index.ts +3 -0
  84. package/package/RawCanvas/index.ts +2 -2
  85. package/package/SVG/index.ts +2 -2
  86. package/package/Shader/index.ts +2 -2
  87. package/package/Texture/index.ts +2 -2
  88. package/package/TreeLayout/index.ts +2 -2
  89. package/package/animation/index.ts +5 -2
  90. package/package/assemble/index.ts +2 -2
  91. package/package/getLoopColors/index.ts +2 -2
  92. package/package/getWebGLContext/index.ts +40 -40
  93. package/package/index.ts +4 -0
  94. package/package/initOption/index.ts +2 -2
  95. package/package/mergeOption/index.ts +2 -2
  96. package/package/move/index.ts +2 -2
  97. package/package/rotate/index.ts +2 -2
  98. package/package/ruler/index.ts +2 -2
  99. package/package/scale/index.ts +2 -2
  100. package/package/throttle/index.ts +1 -1
  101. package/package.json +3 -3
  102. package/src/Canvas.ts +84 -84
  103. package/src/Eoap.ts +66 -66
  104. package/src/Matrix4/index.ts +84 -84
  105. package/src/Matrix4/move.ts +12 -12
  106. package/src/Matrix4/rotate.ts +15 -15
  107. package/src/Matrix4/scale.ts +11 -11
  108. package/src/Matrix4/transform.ts +64 -64
  109. package/src/Mercator.ts +27 -27
  110. package/src/SVG.ts +31 -0
  111. package/src/common/assemble.ts +22 -22
  112. package/src/common/canvas/arc.ts +51 -51
  113. package/src/common/canvas/config.ts +176 -176
  114. package/src/common/canvas/default.ts +64 -64
  115. package/src/common/canvas/gradient.ts +1 -1
  116. package/src/common/canvas/index.ts +188 -188
  117. package/src/common/canvas/painter.ts +443 -443
  118. package/src/common/canvas/texts.ts +18 -18
  119. package/src/common/map/getBoundary.ts +15 -15
  120. package/src/common/map/tool.ts +29 -29
  121. package/src/common/option.ts +29 -29
  122. package/src/common/setStyle.ts +5 -5
  123. package/src/common/svg/config.ts +213 -213
  124. package/src/common/svg/default.ts +2 -2
  125. package/src/common/svg/gradient.ts +2 -2
  126. package/src/common/svg/index.ts +1 -1
  127. package/src/common/svg/tool.ts +51 -51
  128. package/src/common/tree/index.ts +25 -25
  129. package/src/common/tree/toInnerTree.ts +61 -61
  130. package/src/common/tree/toPlainTree.ts +3 -0
  131. package/src/common/type.ts +26 -26
  132. package/src/common/webgl/buffer.ts +79 -79
  133. package/src/common/webgl/getWebGLContext.ts +45 -45
  134. package/src/common/webgl/shader.ts +75 -75
  135. package/src/common/webgl/texture.ts +1 -0
  136. package/src/coordinate/MapCoordinate.ts +80 -80
  137. package/src/getLoopColors.ts +42 -42
  138. package/src/interpolation/Cardinal.ts +110 -110
  139. package/src/interpolation/Hermite.ts +65 -65
  140. package/src/layout/BarLayout.ts +249 -0
  141. package/src/layout/PieLayout.ts +142 -0
  142. package/src/layout/TreeLayout.ts +4 -1
  143. package/src/move.ts +7 -7
  144. package/src/rotate.ts +7 -7
  145. package/src/ruler.ts +209 -209
  146. package/src/scale.ts +6 -6
  147. package/types/Bar.d.ts +92 -0
  148. package/types/BarConfig.d.ts +5 -0
  149. package/types/BarLayout.d.ts +49 -0
  150. package/types/BarOption.d.ts +32 -0
  151. package/types/Buffer.d.ts +23 -23
  152. package/types/Canvas.d.ts +352 -352
  153. package/types/CanvasConfig.d.ts +88 -88
  154. package/types/CanvasOption.d.ts +8 -8
  155. package/types/CanvasOpts.d.ts +9 -9
  156. package/types/Cardinal.d.ts +13 -13
  157. package/types/Gradient.d.ts +14 -14
  158. package/types/Hermite.d.ts +18 -18
  159. package/types/Map.d.ts +9 -9
  160. package/types/MapConfig.d.ts +27 -27
  161. package/types/MapCoordinate.d.ts +22 -22
  162. package/types/Matrix4.d.ts +47 -47
  163. package/types/Pie.d.ts +74 -0
  164. package/types/PieConfig.d.ts +27 -0
  165. package/types/PieLayout.d.ts +41 -0
  166. package/types/PieOption.d.ts +22 -0
  167. package/types/SVG.d.ts +4 -0
  168. package/types/SVGConfig.d.ts +71 -71
  169. package/types/Shader.d.ts +16 -16
  170. package/types/Texture.d.ts +16 -16
  171. package/types/Tree.d.ts +74 -74
  172. package/types/TreeConfig.d.ts +36 -36
  173. package/types/TreeLayout.d.ts +59 -59
  174. package/types/TreeOption.d.ts +48 -48
  175. package/types/animation.d.ts +7 -1
  176. package/types/assemble.d.ts +5 -5
  177. package/types/getLoopColors.d.ts +5 -5
  178. package/types/getWebGLContext.d.ts +7 -7
  179. package/types/index.d.ts +16 -0
  180. package/types/move.d.ts +5 -5
  181. package/types/option.d.ts +12 -12
  182. package/types/painterConfig.d.ts +4 -4
  183. package/types/rotate.d.ts +5 -5
  184. package/types/ruler.d.ts +10 -10
  185. package/types/scale.d.ts +5 -5
  186. package/types/throttle.d.ts +1 -1
  187. package/types/throttleOption.d.ts +1 -1
  188. package/types/ui-canvas.d.ts +4 -4
  189. package/types/uni-canvas.d.ts +3 -3
  190. package/uni-app/drawImage.js +19 -19
  191. package/uni-app/ui-canvas.vue +284 -284
@@ -1,284 +1,284 @@
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, this);
135
- if (this.region)
136
- region = uni.createCanvasContext("region-" + this.uniqueid, this);
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
- resolveUrl(e.tempFilePath);
227
- },
228
- },
229
- // #ifndef MP-ALIPAY
230
- this
231
- // #endif
232
- );
233
- });
234
- };
235
-
236
- this.help.instance.drawImage = drawImage(
237
- this.help.instance,
238
- this.help.instance.drawImage
239
- );
240
-
241
- resolve(this.help.instance);
242
- });
243
- },
244
- doit(event) {
245
- let doRun = (x, y) => {
246
- this.help.instance.getRegion(x, y).then((regionName) => {
247
- this.$emit("dotouchstart", {
248
- name: regionName,
249
- x: x,
250
- y: y,
251
- });
252
- });
253
- };
254
-
255
- if (this.cover || this.isH5) {
256
- let x = event.touches[0].x;
257
- let y = event.touches[0].y;
258
- doRun(x, y);
259
- } else {
260
- uni
261
- .createSelectorQuery()
262
- .selectViewport()
263
- .scrollOffset()
264
- .exec((ret) => {
265
- uni
266
- .createSelectorQuery()
267
- .in(this)
268
- .select(".view-" + this.uniqueid)
269
- .boundingClientRect((data) => {
270
- doRun(
271
- event.touches[0].pageX - data.left - ret[0].scrollLeft,
272
- event.touches[0].pageY - data.top - ret[0].scrollTop
273
- );
274
- })
275
- .exec();
276
- });
277
- }
278
- },
279
- doitstart(event) {
280
- this.doit(event);
281
- },
282
- },
283
- };
284
- </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, this);
135
+ if (this.region)
136
+ region = uni.createCanvasContext("region-" + this.uniqueid, this);
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
+ resolveUrl(e.tempFilePath);
227
+ },
228
+ },
229
+ // #ifndef MP-ALIPAY
230
+ this
231
+ // #endif
232
+ );
233
+ });
234
+ };
235
+
236
+ this.help.instance.drawImage = drawImage(
237
+ this.help.instance,
238
+ this.help.instance.drawImage
239
+ );
240
+
241
+ resolve(this.help.instance);
242
+ });
243
+ },
244
+ doit(event) {
245
+ let doRun = (x, y) => {
246
+ this.help.instance.getRegion(x, y).then((regionName) => {
247
+ this.$emit("dotouchstart", {
248
+ name: regionName,
249
+ x: x,
250
+ y: y,
251
+ });
252
+ });
253
+ };
254
+
255
+ if (this.cover || this.isH5) {
256
+ let x = event.touches[0].x;
257
+ let y = event.touches[0].y;
258
+ doRun(x, y);
259
+ } else {
260
+ uni
261
+ .createSelectorQuery()
262
+ .selectViewport()
263
+ .scrollOffset()
264
+ .exec((ret) => {
265
+ uni
266
+ .createSelectorQuery()
267
+ .in(this)
268
+ .select(".view-" + this.uniqueid)
269
+ .boundingClientRect((data) => {
270
+ doRun(
271
+ event.touches[0].pageX - data.left - ret[0].scrollLeft,
272
+ event.touches[0].pageY - data.top - ret[0].scrollTop
273
+ );
274
+ })
275
+ .exec();
276
+ });
277
+ }
278
+ },
279
+ doitstart(event) {
280
+ this.doit(event);
281
+ },
282
+ },
283
+ };
284
+ </script>