vislite 1.9.0-alpha.2 → 1.9.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 (184) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +3 -2
  3. package/LICENSE +20 -20
  4. package/README.md +1 -1
  5. package/lib/BarLayout/index.es.js +121 -121
  6. package/lib/BarLayout/index.es.min.js +2 -2
  7. package/lib/Buffer/index.es.js +1 -1
  8. package/lib/Buffer/index.es.min.js +1 -1
  9. package/lib/Canvas/index.es.js +1 -1
  10. package/lib/Canvas/index.es.min.js +1 -1
  11. package/lib/Cardinal/index.es.js +1 -1
  12. package/lib/Cardinal/index.es.min.js +1 -1
  13. package/lib/Eoap/index.es.js +1 -1
  14. package/lib/Eoap/index.es.min.js +1 -1
  15. package/lib/Hermite/index.es.js +1 -1
  16. package/lib/Hermite/index.es.min.js +1 -1
  17. package/lib/MapCoordinate/index.es.js +1 -1
  18. package/lib/MapCoordinate/index.es.min.js +1 -1
  19. package/lib/Matrix4/index.es.js +1 -1
  20. package/lib/Matrix4/index.es.min.js +1 -1
  21. package/lib/Mercator/index.es.js +1 -1
  22. package/lib/Mercator/index.es.min.js +1 -1
  23. package/lib/PieLayout/index.es.js +121 -121
  24. package/lib/PieLayout/index.es.min.js +2 -2
  25. package/lib/RawCanvas/index.es.js +1 -1
  26. package/lib/RawCanvas/index.es.min.js +1 -1
  27. package/lib/SVG/index.es.js +1 -1
  28. package/lib/SVG/index.es.min.js +1 -1
  29. package/lib/Shader/index.es.js +1 -1
  30. package/lib/Shader/index.es.min.js +1 -1
  31. package/lib/Texture/index.es.js +1 -1
  32. package/lib/Texture/index.es.min.js +1 -1
  33. package/lib/TreeLayout/index.es.js +121 -121
  34. package/lib/TreeLayout/index.es.min.js +2 -2
  35. package/lib/animation/index.es.js +121 -121
  36. package/lib/animation/index.es.min.js +2 -2
  37. package/lib/assemble/index.es.js +1 -1
  38. package/lib/assemble/index.es.min.js +1 -1
  39. package/lib/getLoopColors/index.es.js +1 -1
  40. package/lib/getLoopColors/index.es.min.js +1 -1
  41. package/lib/getWebGLContext/index.es.js +1 -1
  42. package/lib/getWebGLContext/index.es.min.js +1 -1
  43. package/lib/index.umd.js +171 -171
  44. package/lib/index.umd.min.js +3 -3
  45. package/lib/initOption/index.es.js +1 -1
  46. package/lib/initOption/index.es.min.js +1 -1
  47. package/lib/mergeOption/index.es.js +1 -1
  48. package/lib/mergeOption/index.es.min.js +1 -1
  49. package/lib/move/index.es.js +1 -1
  50. package/lib/move/index.es.min.js +1 -1
  51. package/lib/rotate/index.es.js +1 -1
  52. package/lib/rotate/index.es.min.js +1 -1
  53. package/lib/ruler/index.es.js +1 -1
  54. package/lib/ruler/index.es.min.js +1 -1
  55. package/lib/scale/index.es.js +1 -1
  56. package/lib/scale/index.es.min.js +1 -1
  57. package/lib/throttle/index.es.js +51 -51
  58. package/lib/throttle/index.es.min.js +2 -2
  59. package/minialipay/ui-canvas/drawImage.js +35 -35
  60. package/minialipay/ui-canvas/index.acss +4 -4
  61. package/minialipay/ui-canvas/index.axml +3 -3
  62. package/minialipay/ui-canvas/index.d.ts +1 -1
  63. package/minialipay/ui-canvas/index.js +100 -100
  64. package/minialipay/ui-canvas/index.json +6 -6
  65. package/miniprogram/ui-canvas/drawImage.js +35 -35
  66. package/miniprogram/ui-canvas/index.js +125 -125
  67. package/miniprogram/ui-canvas/index.json +4 -4
  68. package/miniprogram/ui-canvas/index.wxml +4 -4
  69. package/miniprogram/ui-canvas/index.wxss +5 -5
  70. package/package/BarLayout/index.ts +2 -2
  71. package/package/Buffer/index.ts +2 -2
  72. package/package/Canvas/index.ts +2 -2
  73. package/package/Cardinal/index.ts +2 -2
  74. package/package/Eoap/index.ts +2 -2
  75. package/package/Hermite/index.ts +2 -2
  76. package/package/MapCoordinate/index.ts +2 -2
  77. package/package/Matrix4/index.ts +2 -2
  78. package/package/Mercator/index.ts +2 -2
  79. package/package/PieLayout/index.ts +2 -2
  80. package/package/RawCanvas/index.ts +2 -2
  81. package/package/SVG/index.ts +2 -2
  82. package/package/Shader/index.ts +2 -2
  83. package/package/Texture/index.ts +2 -2
  84. package/package/TreeLayout/index.ts +2 -2
  85. package/package/animation/index.ts +5 -5
  86. package/package/assemble/index.ts +2 -2
  87. package/package/getLoopColors/index.ts +2 -2
  88. package/package/getWebGLContext/index.ts +40 -40
  89. package/package/index.ts +84 -84
  90. package/package/initOption/index.ts +2 -2
  91. package/package/mergeOption/index.ts +2 -2
  92. package/package/move/index.ts +2 -2
  93. package/package/rotate/index.ts +2 -2
  94. package/package/ruler/index.ts +2 -2
  95. package/package/scale/index.ts +2 -2
  96. package/package/throttle/index.ts +2 -2
  97. package/package.json +75 -75
  98. package/src/Canvas.ts +89 -89
  99. package/src/Eoap.ts +66 -66
  100. package/src/Matrix4/index.ts +84 -84
  101. package/src/Matrix4/move.ts +12 -12
  102. package/src/Matrix4/rotate.ts +15 -15
  103. package/src/Matrix4/scale.ts +11 -11
  104. package/src/Matrix4/transform.ts +64 -64
  105. package/src/Mercator.ts +27 -27
  106. package/src/SVG.ts +55 -55
  107. package/src/common/assemble.ts +22 -22
  108. package/src/common/canvas/arc.ts +51 -51
  109. package/src/common/canvas/config.ts +176 -176
  110. package/src/common/canvas/default.ts +64 -64
  111. package/src/common/canvas/gradient.ts +31 -31
  112. package/src/common/canvas/index.ts +189 -189
  113. package/src/common/canvas/texts.ts +18 -18
  114. package/src/common/map/getBoundary.ts +15 -15
  115. package/src/common/map/tool.ts +29 -29
  116. package/src/common/option.ts +29 -29
  117. package/src/common/setStyle.ts +5 -5
  118. package/src/common/svg/config.ts +213 -213
  119. package/src/common/svg/default.ts +29 -29
  120. package/src/common/svg/gradient.ts +53 -53
  121. package/src/common/svg/index.ts +420 -420
  122. package/src/common/svg/tool.ts +51 -51
  123. package/src/common/tree/index.ts +25 -25
  124. package/src/common/tree/toInnerTree.ts +61 -61
  125. package/src/common/tree/toPlainTree.ts +135 -135
  126. package/src/common/type.ts +26 -26
  127. package/src/common/webgl/buffer.ts +79 -79
  128. package/src/common/webgl/getWebGLContext.ts +45 -45
  129. package/src/common/webgl/shader.ts +75 -75
  130. package/src/common/webgl/texture.ts +98 -98
  131. package/src/coordinate/MapCoordinate.ts +80 -80
  132. package/src/getLoopColors.ts +42 -42
  133. package/src/interpolation/Cardinal.ts +110 -110
  134. package/src/interpolation/Hermite.ts +65 -65
  135. package/src/layout/BarLayout.ts +249 -249
  136. package/src/layout/TreeLayout.ts +200 -200
  137. package/src/move.ts +7 -7
  138. package/src/rotate.ts +7 -7
  139. package/src/ruler.ts +209 -209
  140. package/src/scale.ts +6 -6
  141. package/types/Bar.d.ts +91 -91
  142. package/types/BarConfig.d.ts +4 -4
  143. package/types/BarLayout.d.ts +48 -48
  144. package/types/BarOption.d.ts +31 -31
  145. package/types/Buffer.d.ts +23 -23
  146. package/types/Canvas.d.ts +375 -375
  147. package/types/CanvasConfig.d.ts +88 -88
  148. package/types/CanvasOption.d.ts +13 -13
  149. package/types/CanvasOpts.d.ts +9 -9
  150. package/types/Cardinal.d.ts +13 -13
  151. package/types/Gradient.d.ts +14 -14
  152. package/types/Hermite.d.ts +18 -18
  153. package/types/Map.d.ts +9 -9
  154. package/types/MapConfig.d.ts +27 -27
  155. package/types/MapCoordinate.d.ts +22 -22
  156. package/types/Matrix4.d.ts +47 -47
  157. package/types/Pie.d.ts +73 -73
  158. package/types/PieConfig.d.ts +26 -26
  159. package/types/PieLayout.d.ts +40 -40
  160. package/types/PieOption.d.ts +21 -21
  161. package/types/SVG.d.ts +278 -278
  162. package/types/SVGConfig.d.ts +71 -71
  163. package/types/Shader.d.ts +16 -16
  164. package/types/Texture.d.ts +16 -16
  165. package/types/Tree.d.ts +74 -74
  166. package/types/TreeConfig.d.ts +36 -36
  167. package/types/TreeLayout.d.ts +59 -59
  168. package/types/TreeOption.d.ts +48 -48
  169. package/types/animation.d.ts +11 -11
  170. package/types/assemble.d.ts +5 -5
  171. package/types/getLoopColors.d.ts +5 -5
  172. package/types/getWebGLContext.d.ts +7 -7
  173. package/types/index.d.ts +196 -196
  174. package/types/move.d.ts +5 -5
  175. package/types/option.d.ts +12 -12
  176. package/types/painterConfig.d.ts +4 -4
  177. package/types/rotate.d.ts +5 -5
  178. package/types/ruler.d.ts +10 -10
  179. package/types/scale.d.ts +5 -5
  180. package/types/throttle.d.ts +5 -5
  181. package/types/ui-canvas.d.ts +4 -4
  182. package/types/uni-canvas.d.ts +3 -3
  183. package/uni-app/drawImage.js +19 -19
  184. package/uni-app/ui-canvas.vue +295 -295
@@ -1,61 +1,61 @@
1
1
  /*!
2
- * throttle of VISLite JavaScript Library v1.9.0-alpha.2
2
+ * throttle of VISLite JavaScript Library v1.9.0
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  /*!
6
- * throttle of OIPage v1.8.0-alpha.1
6
+ * throttle of OIPage v1.8.0
7
7
  * git+https://github.com/oi-contrib/OIPage.git
8
8
  */
9
9
 
10
- function throttle(callback, _option) {
11
-
12
- // 缺省值
13
- var option = {
14
- time: 200,
15
- keep: false,
16
- opportunity: "end"
17
- };
18
-
19
- // 校对
20
- if (_option) {
21
- for (var key in _option) {
22
- option[key] = _option[key];
23
- }
24
- }
25
-
26
- var hadInterval = false, hadClick = false, oneClick = false, arg;
27
- return function () {
28
- const _this = this;
29
- arg = arguments;
30
-
31
- // 如果前置任务都完成了
32
- if (!hadInterval) {
33
- if (option.opportunity != 'end') {
34
- callback.apply(_this, arg);
35
- }
36
- hadInterval = true;
37
-
38
- var interval = setInterval(() => {
39
- if (hadClick) {
40
- if (!option.keep) {
41
- callback.apply(_this, arg);
42
- }
43
- } else {
44
- if (option.opportunity != 'begin') {
45
- if (oneClick || option.opportunity == 'end') callback.apply(_this, arg);
46
- }
47
- hadInterval = false;
48
- oneClick = false;
49
- clearInterval(interval);
50
- }
51
- hadClick = false;
52
- }, option.time);
53
- } else {
54
- hadClick = true;
55
- oneClick = true;
56
- }
57
-
58
- };
10
+ function throttle(callback, _option) {
11
+
12
+ // 缺省值
13
+ var option = {
14
+ time: 200,
15
+ keep: false,
16
+ opportunity: "end"
17
+ };
18
+
19
+ // 校对
20
+ if (_option) {
21
+ for (var key in _option) {
22
+ option[key] = _option[key];
23
+ }
24
+ }
25
+
26
+ var hadInterval = false, hadClick = false, oneClick = false, arg;
27
+ return function () {
28
+ const _this = this;
29
+ arg = arguments;
30
+
31
+ // 如果前置任务都完成了
32
+ if (!hadInterval) {
33
+ if (option.opportunity != 'end') {
34
+ callback.apply(_this, arg);
35
+ }
36
+ hadInterval = true;
37
+
38
+ var interval = setInterval(() => {
39
+ if (hadClick) {
40
+ if (!option.keep) {
41
+ callback.apply(_this, arg);
42
+ }
43
+ } else {
44
+ if (option.opportunity != 'begin') {
45
+ if (oneClick || option.opportunity == 'end') callback.apply(_this, arg);
46
+ }
47
+ hadInterval = false;
48
+ oneClick = false;
49
+ clearInterval(interval);
50
+ }
51
+ hadClick = false;
52
+ }, option.time);
53
+ } else {
54
+ hadClick = true;
55
+ oneClick = true;
56
+ }
57
+
58
+ };
59
59
  }
60
60
 
61
61
  export { throttle as default };
@@ -1,9 +1,9 @@
1
1
  /*!
2
- * throttle of VISLite JavaScript Library v1.9.0-alpha.2
2
+ * throttle of VISLite JavaScript Library v1.9.0
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  */
5
5
  /*!
6
- * throttle of OIPage v1.8.0-alpha.1
6
+ * throttle of OIPage v1.8.0
7
7
  * git+https://github.com/oi-contrib/OIPage.git
8
8
  */
9
9
  function t(t,e){var n={time:200,keep:!1,opportunity:"end"};if(e)for(var p in e)n[p]=e[p];var r,i=!1,o=!1,a=!1;return function(){const e=this;if(r=arguments,i)o=!0,a=!0;else{"end"!=n.opportunity&&t.apply(e,r),i=!0;var p=setInterval((()=>{o?n.keep||t.apply(e,r):("begin"!=n.opportunity&&(a||"end"==n.opportunity)&&t.apply(e,r),i=!1,a=!1,clearInterval(p)),o=!1}),n.time)}}}export{t as default};
@@ -1,36 +1,36 @@
1
- export default function (_this, drawImage, canvas) {
2
- return function (imgUrl, x, y, w, h) {
3
- return new Promise((resolve) => {
4
-
5
- let doit = (imgsrc) => {
6
- if (canvas.createImage) {
7
- let img = canvas.createImage();
8
- img.onload = function () {
9
- drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
- resolve({});
11
- });
12
- };
13
- img.src = imgsrc;
14
- }
15
-
16
- // 低版本兼容
17
- else {
18
- drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
- resolve({});
20
- });
21
- }
22
- };
23
-
24
- if (/^http/.test(imgUrl)) {
25
- my.downloadFile({
26
- url: imgUrl,
27
- success: function (res) {
28
- doit(res.tempFilePath);
29
- },
30
- })
31
- } else {
32
- doit(imgUrl);
33
- }
34
- });
35
- };
1
+ export default function (_this, drawImage, canvas) {
2
+ return function (imgUrl, x, y, w, h) {
3
+ return new Promise((resolve) => {
4
+
5
+ let doit = (imgsrc) => {
6
+ if (canvas.createImage) {
7
+ let img = canvas.createImage();
8
+ img.onload = function () {
9
+ drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
+ resolve({});
11
+ });
12
+ };
13
+ img.src = imgsrc;
14
+ }
15
+
16
+ // 低版本兼容
17
+ else {
18
+ drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
+ resolve({});
20
+ });
21
+ }
22
+ };
23
+
24
+ if (/^http/.test(imgUrl)) {
25
+ my.downloadFile({
26
+ url: imgUrl,
27
+ success: function (res) {
28
+ doit(res.tempFilePath);
29
+ },
30
+ })
31
+ } else {
32
+ doit(imgUrl);
33
+ }
34
+ });
35
+ };
36
36
  };
@@ -1,5 +1,5 @@
1
- /* 辅助的区域不应该可以看见 */
2
- .region {
3
- position: fixed;
4
- left: 50000px;
1
+ /* 辅助的区域不应该可以看见 */
2
+ .region {
3
+ position: fixed;
4
+ left: 50000px;
5
5
  }
@@ -1,4 +1,4 @@
1
- <view>
2
- <canvas type="2d" id="{{'painter-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" width="{{2*width+'px'}}" height="{{2*height+'px'}}" onTouchStart="doitstart"></canvas>
3
- <canvas a:if="{{region}}" type="2d" id="{{'region-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" id="{{'region-'+uniqueid}}" class="region"></canvas>
1
+ <view>
2
+ <canvas type="2d" id="{{'painter-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" width="{{2*width+'px'}}" height="{{2*height+'px'}}" onTouchStart="doitstart"></canvas>
3
+ <canvas a:if="{{region}}" type="2d" id="{{'region-'+uniqueid}}" style="{{'width:'+(width+'px')+';'+('height:'+(height+'px')+';')}}" id="{{'region-'+uniqueid}}" class="region"></canvas>
4
4
  </view>
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,101 +1,101 @@
1
- import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
- import drawImage from "./drawImage.js";
3
-
4
- // https://opendocs.alipay.com/mini/framework/custom-component-overview
5
-
6
- Component({
7
- props: {
8
- width: 300,
9
- height: 150,
10
- region: true,
11
- onDoTouchstart: () => { }
12
- },
13
- data: {
14
- uniqueid: (Math.random() * 10000).toFixed(0),
15
- help: {}
16
- },
17
- methods: {
18
- fetch() {
19
- return new Promise((resolve, reject) => {
20
-
21
- let getCanvasContext = (idName, doback) => {
22
- if (idName != 'region' || this.props.region) {
23
- my.createSelectorQuery().select('#' + idName + '-' + this.data.uniqueid).node().exec((res) => {
24
- const canvas = res[0].node;
25
- const ctx = canvas.getContext('2d');
26
-
27
- if (idName != "region") {
28
- ctx.scale(2, 2);
29
- }
30
-
31
- doback(ctx, idName != 'region' ? canvas : null);
32
-
33
- })
34
- } else {
35
- doback(null);
36
- }
37
- };
38
-
39
- getCanvasContext("painter", (painter, panvas) => {
40
- getCanvasContext("region", region => {
41
-
42
- this.data.help.instance = new RawCanvas({
43
- getContext() {
44
- return painter;
45
- }
46
- }, this.props.region ? {
47
- getContext() {
48
- return region;
49
- }
50
- } : null);
51
-
52
- this.data.help.instance.toDataURL = () => {
53
- return new Promise((resolveUrl) => {
54
- if (panvas.toDataURL) {
55
- resolveUrl(panvas.toDataURL());
56
- } else {
57
- panvas.toTempFilePath({
58
- x: 0,
59
- y: 0,
60
- width: this.props.widht,
61
- height: this.props.height,
62
- success(e) {
63
- resolveUrl(e.tempFilePath);
64
- },
65
- fail(error) {
66
- console.error(error);
67
- }
68
- });
69
- }
70
- });
71
- };
72
-
73
- this.data.help.instance.drawImage = drawImage(
74
- this.data.help.instance,
75
- this.data.help.instance.drawImage,
76
- panvas
77
- );
78
-
79
- resolve(this.data.help.instance);
80
- });
81
- });
82
-
83
- });
84
- },
85
- doit(event) {
86
- let x = event.touches[0].x;
87
- let y = event.touches[0].y;
88
-
89
- this.data.help.instance.getRegion(x, y).then((regionName) => {
90
- this.props.onDoTouchstart({
91
- name: regionName,
92
- x: x,
93
- y: y
94
- });
95
- });
96
- },
97
- doitstart(event) {
98
- this.doit(event);
99
- }
100
- }
1
+ import RawCanvas from "../../lib/RawCanvas/index.es.min.js";
2
+ import drawImage from "./drawImage.js";
3
+
4
+ // https://opendocs.alipay.com/mini/framework/custom-component-overview
5
+
6
+ Component({
7
+ props: {
8
+ width: 300,
9
+ height: 150,
10
+ region: true,
11
+ onDoTouchstart: () => { }
12
+ },
13
+ data: {
14
+ uniqueid: (Math.random() * 10000).toFixed(0),
15
+ help: {}
16
+ },
17
+ methods: {
18
+ fetch() {
19
+ return new Promise((resolve, reject) => {
20
+
21
+ let getCanvasContext = (idName, doback) => {
22
+ if (idName != 'region' || this.props.region) {
23
+ my.createSelectorQuery().select('#' + idName + '-' + this.data.uniqueid).node().exec((res) => {
24
+ const canvas = res[0].node;
25
+ const ctx = canvas.getContext('2d');
26
+
27
+ if (idName != "region") {
28
+ ctx.scale(2, 2);
29
+ }
30
+
31
+ doback(ctx, idName != 'region' ? canvas : null);
32
+
33
+ })
34
+ } else {
35
+ doback(null);
36
+ }
37
+ };
38
+
39
+ getCanvasContext("painter", (painter, panvas) => {
40
+ getCanvasContext("region", region => {
41
+
42
+ this.data.help.instance = new RawCanvas({
43
+ getContext() {
44
+ return painter;
45
+ }
46
+ }, this.props.region ? {
47
+ getContext() {
48
+ return region;
49
+ }
50
+ } : null);
51
+
52
+ this.data.help.instance.toDataURL = () => {
53
+ return new Promise((resolveUrl) => {
54
+ if (panvas.toDataURL) {
55
+ resolveUrl(panvas.toDataURL());
56
+ } else {
57
+ panvas.toTempFilePath({
58
+ x: 0,
59
+ y: 0,
60
+ width: this.props.widht,
61
+ height: this.props.height,
62
+ success(e) {
63
+ resolveUrl(e.tempFilePath);
64
+ },
65
+ fail(error) {
66
+ console.error(error);
67
+ }
68
+ });
69
+ }
70
+ });
71
+ };
72
+
73
+ this.data.help.instance.drawImage = drawImage(
74
+ this.data.help.instance,
75
+ this.data.help.instance.drawImage,
76
+ panvas
77
+ );
78
+
79
+ resolve(this.data.help.instance);
80
+ });
81
+ });
82
+
83
+ });
84
+ },
85
+ doit(event) {
86
+ let x = event.touches[0].x;
87
+ let y = event.touches[0].y;
88
+
89
+ this.data.help.instance.getRegion(x, y).then((regionName) => {
90
+ this.props.onDoTouchstart({
91
+ name: regionName,
92
+ x: x,
93
+ y: y
94
+ });
95
+ });
96
+ },
97
+ doitstart(event) {
98
+ this.doit(event);
99
+ }
100
+ }
101
101
  });
@@ -1,6 +1,6 @@
1
- {
2
- "component": true,
3
- "usingComponents": {
4
-
5
- }
6
- }
1
+ {
2
+ "component": true,
3
+ "usingComponents": {
4
+
5
+ }
6
+ }
@@ -1,36 +1,36 @@
1
- export default function (_this, drawImage, canvas) {
2
- return function (imgUrl, x, y, w, h) {
3
- return new Promise((resolve) => {
4
-
5
- let doit = (imgsrc) => {
6
- if (canvas.createImage) {
7
- let img = canvas.createImage();
8
- img.onload = function () {
9
- drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
- resolve({});
11
- });
12
- };
13
- img.src = imgsrc;
14
- }
15
-
16
- // 低版本兼容
17
- else {
18
- drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
- resolve({});
20
- });
21
- }
22
- };
23
-
24
- if (/^http/.test(imgUrl)) {
25
- wx.downloadFile({
26
- url: imgUrl,
27
- success: function (res) {
28
- doit(res.tempFilePath);
29
- },
30
- })
31
- } else {
32
- doit(imgUrl);
33
- }
34
- });
35
- };
1
+ export default function (_this, drawImage, canvas) {
2
+ return function (imgUrl, x, y, w, h) {
3
+ return new Promise((resolve) => {
4
+
5
+ let doit = (imgsrc) => {
6
+ if (canvas.createImage) {
7
+ let img = canvas.createImage();
8
+ img.onload = function () {
9
+ drawImage.call(_this, img, x, y, w, h, true).then(() => {
10
+ resolve({});
11
+ });
12
+ };
13
+ img.src = imgsrc;
14
+ }
15
+
16
+ // 低版本兼容
17
+ else {
18
+ drawImage.call(_this, imgsrc, x, y, w, h, true).then(() => {
19
+ resolve({});
20
+ });
21
+ }
22
+ };
23
+
24
+ if (/^http/.test(imgUrl)) {
25
+ wx.downloadFile({
26
+ url: imgUrl,
27
+ success: function (res) {
28
+ doit(res.tempFilePath);
29
+ },
30
+ })
31
+ } else {
32
+ doit(imgUrl);
33
+ }
34
+ });
35
+ };
36
36
  };