@10yun/cv-mobile-ui 0.5.50 → 0.5.52

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 (114) hide show
  1. package/build/common_func.js +3 -1
  2. package/build/parse-create.js +17 -8
  3. package/build/parse-pages-pkg.js +10 -4
  4. package/empty-devtools.js +3 -0
  5. package/libs/aes.js +50 -0
  6. package/libs/bledefine/bledefine.js +51 -0
  7. package/libs/bledefine/ios-ble-statuscode.js +97 -0
  8. package/libs/nfc/hexiii-nfc.js +236 -0
  9. package/libs/nfc.js +179 -0
  10. package/libs/sdk/html2canvas.js +8 -0
  11. package/libs/sdk/sdk-h5.js +585 -0
  12. package/{plugins → libs}/storage2.js +0 -5
  13. package/{plugins → libs}/storage3.js +0 -4
  14. package/libs/validators/index.js +438 -0
  15. package/libs/weapp-qrcode.js +1108 -0
  16. package/package.json +2 -3
  17. package/ui-cv/components/cv-dialog-share/tui-share.vue +16 -16
  18. package/ui-cv/components/cv-mask-png/cv-mask-png.vue +27 -0
  19. package/ui-cv/components/cv-mask-svg/cv-mask-svg.vue +22 -0
  20. package/ui-cv/components/cv-mask-svg/mixins.js +131 -0
  21. package/ui-fireui/components/{fui-actionsheet/fui-actionsheet.vue → u-action-sheet/u-action-sheet.vue} +21 -21
  22. package/ui-fireui/components/{fui-alert/fui-alert.vue → u-alert/u-alert.vue} +13 -13
  23. package/ui-fireui/components/{fui-badge/fui-badge.vue → u-badge/u-badge.vue} +16 -16
  24. package/ui-fireui/components/{fui-bottom-navigation/fui-bottom-navigation.vue → u-bottom-navigation/u-bottom-navigation.vue} +47 -46
  25. package/ui-fireui/components/{fui-bottom-popup/fui-bottom-popup.vue → u-bottom-popup/u-bottom-popup.vue} +9 -8
  26. package/ui-fireui/components/{fui-bubble-popup/fui-bubble-popup.vue → u-bubble-popup/u-bubble-popup.vue} +19 -15
  27. package/ui-fireui/components/{fui-button/fui-button.vue → u-button/u-button.vue} +69 -69
  28. package/ui-fireui/components/u-button/u-button2.vue +553 -0
  29. package/ui-fireui/components/{fui-calendar/fui-calendar.vue → u-calendar/u-calendar.vue} +78 -78
  30. package/ui-fireui/components/u-calendar/u-calendar2.vue +801 -0
  31. package/ui-fireui/components/{fui-card/fui-card.vue → u-card/u-card.vue} +24 -24
  32. package/ui-fireui/components/{fui-cascade-selection/fui-cascade-selection.vue → u-cascade-selection/u-cascade-selection.vue} +32 -32
  33. package/ui-fireui/components/{fui-circular-progress/fui-circular-progress.vue → u-circular-progress/u-circular-progress.vue} +14 -6
  34. package/ui-fireui/components/{fui-collapse/fui-collapse.vue → u-collapse/u-collapse.vue} +19 -19
  35. package/ui-fireui/components/{fui-countdown/fui-countdown.vue → u-countdown/u-countdown.vue} +28 -28
  36. package/ui-fireui/components/{fui-datetime/fui-datetime.vue → u-datetime/u-datetime.vue} +51 -51
  37. package/ui-fireui/components/{fui-divider/fui-divider.vue → u-divider/u-divider.vue} +6 -6
  38. package/ui-fireui/components/{fui-drawer/fui-drawer.vue → u-drawer/u-drawer.vue} +11 -11
  39. package/ui-fireui/components/{fui-dropdown-list/fui-dropdown-list.vue → u-dropdown-list/u-dropdown-list.vue} +11 -6
  40. package/ui-fireui/components/{fui-fab/fui-fab.vue → u-fab/u-fab.vue} +30 -30
  41. package/ui-fireui/components/{fui-footer/fui-footer.vue → u-footer/u-footer.vue} +19 -15
  42. package/ui-fireui/components/{fui-grid/fui-grid.vue → u-grid/u-grid.vue} +13 -5
  43. package/ui-fireui/components/{fui-grid-item/fui-grid-item.vue → u-grid-item/u-grid-item.vue} +19 -19
  44. package/ui-fireui/components/{fui-icon/fui-icon.vue → u-icon/u-icon.vue} +191 -191
  45. package/ui-fireui/components/{fui-image-cropper/fui-image-cropper.vue → u-image-cropper/u-image-cropper.vue} +44 -44
  46. package/ui-fireui/components/{fui-image-group/fui-image-group.vue → u-image-group/u-image-group.vue} +7 -7
  47. package/ui-fireui/components/{fui-keyboard/fui-keyboard.vue → u-keyboard/u-keyboard.vue} +29 -32
  48. package/ui-fireui/components/{fui-keyboard-input/fui-keyboard-input.vue → u-keyboard-input/u-keyboard-input.vue} +9 -9
  49. package/ui-fireui/components/{fui-list-cell/fui-list-cell.vue → u-list-cell/u-list-cell.vue} +23 -23
  50. package/ui-fireui/components/{fui-list-view/fui-list-view.vue → u-list-view/u-list-view.vue} +11 -11
  51. package/ui-fireui/components/{fui-loading/fui-loading.vue → u-loading/u-loading.vue} +6 -6
  52. package/ui-fireui/components/{fui-loadmore/fui-loadmore.vue → u-loadmore/u-loadmore.vue} +15 -15
  53. package/ui-fireui/components/{fui-modal/fui-modal.vue → u-modal/u-modal.vue} +58 -58
  54. package/ui-fireui/components/{fui-navigation-bar/fui-navigation-bar.vue → u-navigation-bar/u-navigation-bar.vue} +11 -10
  55. package/ui-fireui/components/{fui-no-data/fui-no-data.vue → u-no-data/u-no-data.vue} +11 -11
  56. package/ui-fireui/components/{fui-nomore/fui-nomore.vue → u-nomore/u-nomore.vue} +10 -10
  57. package/ui-fireui/components/{fui-numberbox/fui-numberbox.vue → u-numberbox/u-numberbox.vue} +12 -12
  58. package/ui-fireui/components/{fui-numberbox-border/fui-numberbox-border.vue → u-numberbox-border/u-numberbox-border.vue} +10 -10
  59. package/ui-fireui/components/{fui-picture-cropper/fui-picture-cropper.vue → u-picture-cropper/u-picture-cropper.vue} +42 -42
  60. package/ui-fireui/components/u-picture-cropper/u-picture-cropper.wxs +582 -0
  61. package/ui-fireui/components/{fui-round-progress/fui-round-progress.vue → u-round-progress/u-round-progress.vue} +2 -2
  62. package/ui-fireui/components/{fui-scroll-top/fui-scroll-top.vue → u-scroll-top/u-scroll-top.vue} +21 -21
  63. package/ui-fireui/components/{fui-sharemodel/fui-sharemodel.vue → u-share-model/u-share-model.vue} +24 -24
  64. package/ui-fireui/components/{fui-skeleton/fui-skeleton.vue → u-skeleton/u-skeleton.vue} +22 -22
  65. package/ui-fireui/components/{fui-steps/fui-steps.vue → u-steps/u-steps.vue} +27 -27
  66. package/ui-fireui/components/{fui-sticky/fui-sticky.vue → u-sticky/u-sticky.vue} +4 -4
  67. package/ui-fireui/components/{fui-sticky-wxs/fui-sticky-wxs.vue → u-sticky-wxs/u-sticky-wxs.vue} +7 -7
  68. package/ui-fireui/components/u-sticky-wxs/u-sticky.wxs +46 -0
  69. package/ui-fireui/components/{fui-swipe-action/fui-swipe-action.vue → u-swipe-action/u-swipe-action.vue} +11 -11
  70. package/ui-fireui/components/{fui-tabbar/fui-tabbar.vue → u-tabbar/u-tabbar.vue} +26 -30
  71. package/ui-fireui/components/{fui-tabs/fui-tabs.vue → u-tabs/u-tabs.vue} +17 -17
  72. package/ui-fireui/components/{fui-tabs2/fui-tabs2.vue → u-tabs2/u-tabs2.vue} +17 -17
  73. package/ui-fireui/components/{fui-tag/fui-tag.vue → u-tag/u-tag.vue} +362 -374
  74. package/ui-fireui/components/{fui-time-axis/fui-time-axis.vue → u-time-axis/u-time-axis.vue} +3 -3
  75. package/ui-fireui/components/{fui-timeaxis-item/fui-timeaxis-item.vue → u-timeaxis-item/u-timeaxis-item.vue} +4 -4
  76. package/ui-fireui/components/{fui-tips/fui-tips.vue → u-tips/u-tips.vue} +20 -20
  77. package/ui-fireui/components/{fui-toast/fui-toast.vue → u-toast/u-toast.vue} +13 -13
  78. package/ui-fireui/components/{fui-top-dropdown/fui-top-dropdown.vue → u-top-dropdown/u-top-dropdown.vue} +8 -8
  79. package/ui-fireui/components/{fui-upload/fui-upload.vue → u-upload/u-upload.vue} +30 -30
  80. package/ui-fireui/components/u-upload2/u-upload.vue +464 -0
  81. package/ui-fireui/components/{fui-uploadsamll/fui-uploadsamll.vue → u-uploadsamll/u-uploadsamll.vue} +34 -34
  82. package/ui-fireui/css/thorui.css +589 -0
  83. package/ui-fireui/{fireui.css → index.css} +306 -268
  84. package/ui-fireui/nvue/u-circular-progress/gcanvas/bridge/bridge-weex.js +241 -0
  85. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-2d/FillStyleLinearGradient.js +18 -0
  86. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-2d/FillStylePattern.js +8 -0
  87. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-2d/FillStyleRadialGradient.js +17 -0
  88. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-2d/RenderingContext.js +666 -0
  89. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/ActiveInfo.js +11 -0
  90. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/Buffer.js +21 -0
  91. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/Framebuffer.js +21 -0
  92. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/GLenum.js +298 -0
  93. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/GLmethod.js +142 -0
  94. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/GLtype.js +23 -0
  95. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/Program.js +21 -0
  96. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/Renderbuffer.js +21 -0
  97. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/RenderingContext.js +1191 -0
  98. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/Shader.js +22 -0
  99. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/ShaderPrecisionFormat.js +11 -0
  100. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/Texture.js +22 -0
  101. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/UniformLocation.js +22 -0
  102. package/ui-fireui/nvue/u-circular-progress/gcanvas/context-webgl/classUtils.js +3 -0
  103. package/ui-fireui/nvue/u-circular-progress/gcanvas/env/canvas.js +74 -0
  104. package/ui-fireui/nvue/u-circular-progress/gcanvas/env/image.js +96 -0
  105. package/ui-fireui/nvue/u-circular-progress/gcanvas/env/tool.js +24 -0
  106. package/ui-fireui/nvue/u-circular-progress/gcanvas/index.js +47 -0
  107. package/ui-fireui/nvue/u-circular-progress/u-circular-progress.nvue +203 -0
  108. package/ui-fireui/nvue/u-icon/icons.js +188 -0
  109. package/ui-fireui/nvue/u-icon/u-icon.vue +78 -0
  110. package/uview-plus/components/u-grid/u-grid.vue +23 -1
  111. package/ui-fireui/components/fui-picture-cropper/fui-picture-cropper.wxs +0 -560
  112. package/ui-fireui/components/fui-rate/fui-rate.vue +0 -167
  113. package/ui-fireui/components/fui-sticky-wxs/fui-sticky.wxs +0 -44
  114. /package/ui-fireui/components/{fui-calendar/fui-calendar.js → u-calendar/u-calendar.js} +0 -0
@@ -1,560 +0,0 @@
1
- var cropper = {
2
- CUT_START: null,
3
- cutX: 0, //画布x轴起点
4
- cutY: 0, //画布y轴起点0
5
- touchRelative: [{
6
- x: 0,
7
- y: 0
8
- }], //手指或鼠标和图片中心的相对位置
9
- flagCutTouch: false, //是否是拖动裁剪框
10
- hypotenuseLength: 0, //双指触摸时斜边长度
11
- flagEndTouch: false, //是否结束触摸
12
- canvasWidth: 0,
13
- canvasHeight: 0,
14
- imgWidth: 0, //图片宽度
15
- imgHeight: 0, //图片高度
16
- scale: 1, //图片缩放比
17
- angle: 0, //图片旋转角度
18
- imgTop: 0, //图片上边距
19
- imgLeft: 0, //图片左边距
20
- //是否限制移动范围(剪裁框只能在图片内,为true不可触摸转动图片)
21
- limitMove: true,
22
- minHeight: 0,
23
- maxHeight: 0,
24
- minWidth: 0,
25
- maxWidth: 0,
26
- windowHeight: 0,
27
- windowWidth: 0,
28
- init: true
29
- }
30
-
31
- function bool(str) {
32
- return str === 'true' || str == true ? true : false
33
- }
34
-
35
- function touchstart(e, ins) {
36
- //var instance = e.instance;
37
- // var state = instance.getState();
38
- var touch = e.touches || e.changedTouches;
39
- cropper.flagEndTouch = false;
40
- if (touch.length == 1) {
41
- cropper.touchRelative[0] = {
42
- x: touch[0].pageX - cropper.imgLeft,
43
- y: touch[0].pageY - cropper.imgTop
44
- };
45
- } else {
46
- var width = Math.abs(touch[0].pageX - touch[1].pageX);
47
- var height = Math.abs(touch[0].pageY - touch[1].pageY);
48
- cropper.touchRelative = [{
49
- x: touch[0].pageX - cropper.imgLeft,
50
- y: touch[0].pageY - cropper.imgTop
51
- },
52
- {
53
- x: touch[1].pageX - cropper.imgLeft,
54
- y: touch[1].pageY - cropper.imgTop
55
- }
56
- ];
57
- cropper.hypotenuseLength = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
58
- }
59
-
60
- }
61
-
62
- function moveDuring(ins) {
63
- if (!ins) return;
64
- ins.callMethod('moveDuring')
65
- }
66
-
67
- function moveStop(ins) {
68
- if (!ins) return;
69
- ins.callMethod('moveStop')
70
- };
71
-
72
- function setCutCenter(ins) {
73
- var cutY = (cropper.windowHeight - cropper.canvasHeight) * 0.5;
74
- var cutX = (cropper.windowWidth - cropper.canvasWidth) * 0.5;
75
- //顺序不能变
76
- cropper.imgTop = cropper.imgTop - cropper.cutY + cutY;
77
- cropper.cutY = cutY; //截取的框上边距
78
- cropper.imgLeft = cropper.imgLeft - cropper.cutX + cutX;
79
- cropper.cutX = cutX; //截取的框左边距
80
- styleUpdate(ins)
81
- cutDetectionPosition(ins)
82
- imgTransform(ins)
83
- updateData(ins)
84
- }
85
-
86
- function touchmove(e, ins) {
87
- var touch = e.touches || e.changedTouches;
88
- if (cropper.flagEndTouch) return;
89
- moveDuring(ins);
90
- if (e.touches.length == 1) {
91
- var left = touch[0].pageX - cropper.touchRelative[0].x,
92
- top = touch[0].pageY - cropper.touchRelative[0].y;
93
- cropper.imgLeft = left;
94
- cropper.imgTop = top;
95
- imgTransform(ins);
96
- imgMarginDetectionPosition(ins);
97
- } else {
98
- var res = e.instance.getDataset();
99
- var minScale = +res.minscale;
100
- var maxScale = +res.maxscale;
101
- var disableRotate = bool(res.disablerotate)
102
- var width = Math.abs(touch[0].pageX - touch[1].pageX),
103
- height = Math.abs(touch[0].pageY - touch[1].pageY),
104
- hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)),
105
- scale = cropper.scale * (hypotenuse / cropper.hypotenuseLength),
106
- current_deg = 0;
107
- scale = scale <= minScale ? minScale : scale;
108
- scale = scale >= maxScale ? maxScale : scale;
109
- cropper.scale = scale;
110
- imgMarginDetectionScale(ins, true);
111
- var touchRelative = [{
112
- x: touch[0].pageX - cropper.imgLeft,
113
- y: touch[0].pageY - cropper.imgTop
114
- },
115
- {
116
- x: touch[1].pageX - cropper.imgLeft,
117
- y: touch[1].pageY - cropper.imgTop
118
- }
119
- ];
120
- if (!disableRotate) {
121
- var first_atan = (180 / Math.PI) * Math.atan2(touchRelative[0].y, touchRelative[0].x);
122
- var first_atan_old = (180 / Math.PI) * Math.atan2(cropper.touchRelative[0].y, cropper.touchRelative[0].x);
123
- var second_atan = (180 / Math.PI) * Math.atan2(touchRelative[1].y, touchRelative[1].x);
124
- var second_atan_old = (180 / Math.PI) * Math.atan2(cropper.touchRelative[1].y, cropper.touchRelative[1].x);
125
- var first_deg = first_atan - first_atan_old,
126
- second_deg = second_atan - second_atan_old;
127
- if (first_deg != 0) {
128
- current_deg = first_deg;
129
- } else if (second_deg != 0) {
130
- current_deg = second_deg;
131
- }
132
- }
133
- cropper.touchRelative = touchRelative;
134
- cropper.hypotenuseLength = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
135
- //更新视图
136
- cropper.angle = cropper.angle + current_deg;
137
- imgTransform(ins);
138
- }
139
- }
140
-
141
- function touchend(e, ins) {
142
- cropper.flagEndTouch = true;
143
- moveStop(ins);
144
- updateData(ins)
145
- }
146
-
147
-
148
- function cutTouchStart(e, ins) {
149
- var touch = e.touches || e.changedTouches;
150
- var currentX = touch[0].pageX;
151
- var currentY = touch[0].pageY;
152
-
153
- /*
154
- * (右下-1 右上-2 左上-3 左下-4)
155
- * left_x [3,4]
156
- * top_y [2,3]
157
- * right_x [1,2]
158
- * bottom_y [1,4]
159
- */
160
- var left_x1 = cropper.cutX - 30;
161
- var left_x2 = cropper.cutX + 30;
162
-
163
- var top_y1 = cropper.cutY - 30;
164
- var top_y2 = cropper.cutY + 30;
165
-
166
- var right_x1 = cropper.cutX + cropper.canvasWidth - 30;
167
- var right_x2 = cropper.cutX + cropper.canvasWidth + 30;
168
-
169
- var bottom_y1 = cropper.cutY + cropper.canvasHeight - 30;
170
- var bottom_y2 = cropper.cutY + cropper.canvasHeight + 30;
171
-
172
- if (currentX > right_x1 && currentX < right_x2 && currentY > bottom_y1 && currentY < bottom_y2) {
173
- moveDuring();
174
- cropper.flagCutTouch = true;
175
- cropper.flagEndTouch = true;
176
- cropper.CUT_START = {
177
- width: cropper.canvasWidth,
178
- height: cropper.canvasHeight,
179
- x: currentX,
180
- y: currentY,
181
- corner: 1
182
- };
183
- } else if (currentX > right_x1 && currentX < right_x2 && currentY > top_y1 && currentY < top_y2) {
184
- moveDuring();
185
- cropper.flagCutTouch = true;
186
- cropper.flagEndTouch = true;
187
- cropper.CUT_START = {
188
- width: cropper.canvasWidth,
189
- height: cropper.canvasHeight,
190
- x: currentX,
191
- y: currentY,
192
- cutY: cropper.cutY,
193
- cutX: cropper.cutX,
194
- corner: 2
195
- };
196
- } else if (currentX > left_x1 && currentX < left_x2 && currentY > top_y1 && currentY < top_y2) {
197
- moveDuring();
198
- cropper.flagCutTouch = true;
199
- cropper.flagEndTouch = true;
200
- cropper.CUT_START = {
201
- width: cropper.canvasWidth,
202
- height: cropper.canvasHeight,
203
- cutY: cropper.cutY,
204
- cutX: cropper.cutX,
205
- x: currentX,
206
- y: currentY,
207
- corner: 3
208
- };
209
- } else if (currentX > left_x1 && currentX < left_x2 && currentY > bottom_y1 && currentY < bottom_y2) {
210
- moveDuring();
211
- cropper.flagCutTouch = true;
212
- cropper.flagEndTouch = true;
213
- cropper.CUT_START = {
214
- width: cropper.canvasWidth,
215
- height: cropper.canvasHeight,
216
- cutY: cropper.cutY,
217
- cutX: cropper.cutX,
218
- x: currentX,
219
- y: currentY,
220
- corner: 4
221
- };
222
- }
223
- }
224
-
225
- function cutTouchMove(e, ins) {
226
- if (!cropper.CUT_START || cropper.CUT_START === 'null') return;
227
- if (cropper.flagCutTouch) {
228
- var touch = e.touches || e.changedTouches;
229
- var res = e.instance.getDataset();
230
- var lockRatio = bool(res.lockratio);
231
- var lockWidth = bool(res.lockwidth);
232
- var lockHeight = bool(res.lockheight);
233
- if (lockRatio && (lockWidth || lockHeight)) return;
234
- var width = cropper.canvasWidth,
235
- height = cropper.canvasHeight,
236
- cutY = cropper.cutY,
237
- cutX = cropper.cutX;
238
-
239
- function size_correct() {
240
- width = width <= cropper.maxWidth ? (width >= cropper.minWidth ? width : cropper.minWidth) : cropper.maxWidth;
241
- height = height <= cropper.maxHeight ? (height >= cropper.minHeight ? height : cropper.minHeight) : cropper.maxHeight;
242
- }
243
-
244
- function size_inspect() {
245
- if ((width > cropper.maxWidth || width < cropper.minWidth || height > cropper.maxHeight || height < cropper.minHeight) &&
246
- lockRatio) {
247
- size_correct();
248
- return false;
249
- } else {
250
- size_correct();
251
- return true;
252
- }
253
- };
254
- height = cropper.CUT_START.height + (cropper.CUT_START.corner > 1 && cropper.CUT_START.corner < 4 ? 1 : -1) * (
255
- cropper.CUT_START.y - touch[0].pageY);
256
- switch (cropper.CUT_START.corner) {
257
- case 1:
258
- width = cropper.CUT_START.width - cropper.CUT_START.x + touch[0].pageX;
259
- if (lockRatio) {
260
- height = width / (cropper.canvasWidth / cropper.canvasHeight);
261
- }
262
- if (!size_inspect()) return;
263
- break;
264
- case 2:
265
- width = cropper.CUT_START.width - cropper.CUT_START.x + touch[0].pageX;
266
- if (lockRatio) {
267
- height = width / (cropper.canvasWidth / cropper.canvasHeight);
268
- }
269
- if (!size_inspect()) return;
270
- cutY = cropper.CUT_START.cutY - (height - cropper.CUT_START.height);
271
- break;
272
- case 3:
273
- width = cropper.CUT_START.width + cropper.CUT_START.x - touch[0].pageX;
274
- if (lockRatio) {
275
- height = width / (cropper.canvasWidth / cropper.canvasHeight);
276
- }
277
- if (!size_inspect()) return;
278
- cutY = cropper.CUT_START.cutY - (height - cropper.CUT_START.height);
279
- cutX = cropper.CUT_START.cutX - (width - cropper.CUT_START.width);
280
- break;
281
- case 4:
282
- width = cropper.CUT_START.width + cropper.CUT_START.x - touch[0].pageX;
283
- if (lockRatio) {
284
- height = width / (cropper.canvasWidth / cropper.canvasHeight);
285
- }
286
- if (!size_inspect()) return;
287
- cutX = cropper.CUT_START.cutX - (width - cropper.CUT_START.width);
288
- break;
289
- default:
290
- break;
291
- }
292
- if (!lockWidth && !lockHeight) {
293
- cropper.canvasWidth = width;
294
- cropper.cutX = cutX;
295
- cropper.canvasHeight = height;
296
- cropper.cutY = cutY;
297
- canvasHeight(ins);
298
- canvasWidth(ins);
299
- } else if (!lockWidth) {
300
- cropper.canvasWidth = width;
301
- cropper.cutX = cutX;
302
- canvasWidth(ins);
303
- } else if (!lockHeight) {
304
- cropper.canvasHeight = height;
305
- cropper.cutY = cutY;
306
- canvasHeight(ins);
307
- }
308
- styleUpdate(ins)
309
- imgMarginDetectionScale(ins);
310
- }
311
- }
312
-
313
- //检测剪裁框位置是否在允许的范围内(屏幕内)
314
- function cutDetectionPosition(ins) {
315
- var windowHeight = cropper.windowHeight,
316
- windowWidth = cropper.windowWidth;
317
-
318
- function cutDetectionPositionTop() {
319
- //检测上边距是否在范围内
320
- if (cropper.cutY < 0) {
321
- cropper.cutY = 0;
322
- }
323
- if (cropper.cutY > windowHeight - cropper.canvasHeight) {
324
- cropper.cutY = windowHeight - cropper.canvasHeight;
325
- }
326
- }
327
-
328
- function cutDetectionPositionLeft() {
329
- //检测左边距是否在范围内
330
- if (cropper.cutX < 0) {
331
- cropper.cutX = 0;
332
- }
333
- if (cropper.cutX > windowWidth - cropper.canvasWidth) {
334
- cropper.cutX = windowWidth - cropper.canvasWidth;
335
- }
336
- }
337
- //裁剪框坐标处理(如果只写一个参数则另一个默认为0,都不写默认居中)
338
- if (cropper.cutY == null && cropper.cutX == null) {
339
- var cutY = (windowHeight - cropper.canvasHeight) * 0.5;
340
- var cutX = (windowWidth - cropper.canvasWidth) * 0.5;
341
- cropper.cutY = cutY; //截取的框上边距
342
- cropper.cutX = cutX; //截取的框左边距
343
- } else if (cropper.cutY != null && cropper.cutX != null) {
344
- cutDetectionPositionTop();
345
- cutDetectionPositionLeft();
346
- } else if (cropper.cutY != null && cropper.cutX == null) {
347
- cutDetectionPositionTop();
348
- cropper.cutX = (windowWidth - cropper.canvasWidth) / 2;
349
- } else if (cropper.cutY == null && cropper.cutX != null) {
350
- cutDetectionPositionLeft();
351
- cropper.cutY = (windowHeight - cropper.canvasHeight) / 2;
352
- }
353
-
354
- styleUpdate(ins)
355
- }
356
-
357
- /**
358
- * 图片边缘检测-缩放
359
- */
360
- function imgMarginDetectionScale(ins, delay) {
361
- if (!cropper.limitMove) return;
362
- var scale = cropper.scale;
363
- var imgWidth = cropper.imgWidth;
364
- var imgHeight = cropper.imgHeight;
365
- if ((cropper.angle / 90) % 2) {
366
- imgWidth = cropper.imgHeight;
367
- imgHeight = cropper.imgWidth;
368
- }
369
- if (imgWidth * scale < cropper.canvasWidth) {
370
- scale = cropper.canvasWidth / imgWidth;
371
- }
372
- if (imgHeight * scale < cropper.canvasHeight) {
373
- scale = Math.max(scale, cropper.canvasHeight / imgHeight);
374
- }
375
- imgMarginDetectionPosition(ins, scale, delay);
376
- }
377
- /**
378
- * 图片边缘检测-位置
379
- */
380
- function imgMarginDetectionPosition(ins, scale, delay) {
381
- if (!cropper.limitMove) return;
382
- var left = cropper.imgLeft;
383
- var top = cropper.imgTop;
384
- scale = scale || cropper.scale;
385
- var imgWidth = cropper.imgWidth;
386
- var imgHeight = cropper.imgHeight;
387
- if ((cropper.angle / 90) % 2) {
388
- imgWidth = cropper.imgHeight;
389
- imgHeight = cropper.imgWidth;
390
- }
391
- left = cropper.cutX + (imgWidth * scale) / 2 >= left ? left : cropper.cutX + (imgWidth * scale) / 2;
392
- left = cropper.cutX + cropper.canvasWidth - (imgWidth * scale) / 2 <= left ? left : cropper.cutX + cropper.canvasWidth -
393
- (imgWidth * scale) / 2;
394
- top = cropper.cutY + (imgHeight * scale) / 2 >= top ? top : cropper.cutY + (imgHeight * scale) / 2;
395
- top = cropper.cutY + cropper.canvasHeight - (imgHeight * scale) / 2 <= top ? top : cropper.cutY + cropper.canvasHeight -
396
- (imgHeight * scale) / 2;
397
-
398
- cropper.imgLeft = left;
399
- cropper.imgTop = top;
400
- cropper.scale = scale;
401
- styleUpdate(ins)
402
- if (!delay || delay === 'null') {
403
- imgTransform(ins);
404
- }
405
- }
406
-
407
-
408
- function cutTouchEnd(e, ins) {
409
- moveStop(ins);
410
- cropper.flagCutTouch = false;
411
- updateData(ins)
412
- }
413
-
414
-
415
- //改变截取框大小
416
- function computeCutSize(ins) {
417
- if (cropper.canvasWidth > cropper.windowWidth) {
418
- cropper.canvasWidth = cropper.windowWidth;
419
- // canvasWidth(ins)
420
- } else if (cropper.canvasWidth + cropper.cutX > cropper.windowWidth) {
421
- cropper.cutX = cropper.windowWidth - cropper.cutX;
422
- }
423
- if (cropper.canvasHeight > cropper.windowHeight) {
424
- cropper.canvasHeight = cropper.windowHeight;
425
- // canvasHeight(ins)
426
- } else if (cropper.canvasHeight + cropper.cutY > cropper.windowHeight) {
427
- cropper.cutY = cropper.windowHeight - cropper.cutY;
428
- }
429
- // styleUpdate(ins)
430
- }
431
-
432
- function styleUpdate(ins) {
433
- if (!ins) return;
434
- ins.selectComponent('.fui-cropper-box').setStyle({
435
- 'width': cropper.canvasWidth + 'px',
436
- 'height': cropper.canvasHeight + 'px'
437
- })
438
- ins.selectComponent('.fui-content-middle').setStyle({
439
- 'height': cropper.canvasHeight + 'px'
440
- })
441
- ins.selectComponent('.fui-content-top').setStyle({
442
- 'height': cropper.cutY + 'px'
443
- })
444
- ins.selectComponent('.fui-wxs-bg').setStyle({
445
- 'width': cropper.cutX + 'px'
446
- })
447
-
448
- }
449
-
450
- function imgTransform(ins) {
451
- var owner = ins.selectComponent('.fui-cropper-image')
452
- if (!owner) return
453
- var x = cropper.imgLeft - cropper.imgWidth / 2;
454
- var y = cropper.imgTop - cropper.imgHeight / 2;
455
- owner.setStyle({
456
- 'transform': 'translate3d(' + x + 'px,' + y + 'px,0) scale(' + cropper.scale + ') rotate(' + cropper.angle + 'deg)'
457
- })
458
- }
459
-
460
- function imageReset(ins) {
461
- cropper.scale = 1;
462
- cropper.angle = 0;
463
- imgTransform(ins);
464
- }
465
- //监听截取框宽高变化
466
- function canvasWidth(ins) {
467
- if (cropper.canvasWidth < cropper.minWidth) {
468
- cropper.canvasWidth = cropper.minWidth;
469
- }
470
- if (!ins) return;
471
- computeCutSize(ins);
472
- }
473
-
474
- function canvasHeight(ins) {
475
- if (cropper.canvasHeight < cropper.minHeight) {
476
- cropper.canvasHeight = cropper.minHeight;
477
- }
478
- if (!ins) return;
479
- computeCutSize(ins);
480
- }
481
-
482
- function updateData(ins) {
483
- if (!ins) return;
484
- ins.callMethod('change', {
485
- cutX: cropper.cutX,
486
- cutY: cropper.cutY,
487
- canvasWidth: cropper.canvasWidth,
488
- canvasHeight: cropper.canvasHeight,
489
- imgWidth: cropper.imgWidth,
490
- imgHeight: cropper.imgHeight,
491
- scale: cropper.scale,
492
- angle: cropper.angle,
493
- imgTop: cropper.imgTop,
494
- imgLeft: cropper.imgLeft
495
- })
496
- }
497
-
498
- function propsChange(prop, oldProp, ownerInstance, ins) {
499
- if (prop && prop !== 'null') {
500
- var params = prop.split(',')
501
- var type = +params[0]
502
- var dataset = ins.getDataset();
503
- if (cropper.init || type == 4) {
504
- cropper.maxHeight = +dataset.maxheight;
505
- cropper.minHeight = +dataset.minheight;
506
- cropper.maxWidth = +dataset.maxwidth;
507
- cropper.minWidth = +dataset.minwidth;
508
- cropper.canvasWidth = +dataset.width;
509
- cropper.canvasHeight = +dataset.height;
510
- cropper.imgTop = dataset.windowheight / 2;
511
- cropper.imgLeft = dataset.windowwidth / 2;
512
- cropper.imgWidth = +dataset.imgwidth;
513
- cropper.imgHeight = +dataset.imgheight;
514
- cropper.windowHeight = +dataset.windowheight;
515
- cropper.windowWidth = +dataset.windowwidth;
516
- cropper.init = false
517
- } else if (type == 2) {
518
- cropper.imgWidth = +dataset.imgwidth;
519
- cropper.imgHeight = +dataset.imgheight;
520
- }
521
- cropper.limitMove = bool(dataset.limitmove);
522
- cropper.angle = +dataset.angle;
523
- if (type == 3) {
524
- imgTransform(ownerInstance);
525
- }
526
- switch (type) {
527
- case 1:
528
- setCutCenter(ownerInstance);
529
- //设置裁剪框大小>设置图片尺寸>绘制canvas
530
- computeCutSize(ownerInstance);
531
- //检查裁剪框是否在范围内
532
- cutDetectionPosition(ownerInstance);
533
- break;
534
- case 2:
535
- setCutCenter(ownerInstance);
536
- break;
537
- case 3:
538
- imgMarginDetectionScale(ownerInstance)
539
- break;
540
- case 4:
541
- imageReset(ownerInstance);
542
- break;
543
- case 5:
544
- setCutCenter(ownerInstance);
545
- break;
546
- default:
547
- break;
548
- }
549
- }
550
- }
551
-
552
- export default {
553
- touchstart: touchstart,
554
- touchmove: touchmove,
555
- touchend: touchend,
556
- cutTouchStart: cutTouchStart,
557
- cutTouchMove: cutTouchMove,
558
- cutTouchEnd: cutTouchEnd,
559
- propsChange: propsChange
560
- }