@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
@@ -0,0 +1,582 @@
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
108
+ <= minScale ? minScale : scale;
109
+ scale = scale>= maxScale ? maxScale : scale;
110
+ cropper.scale = scale;
111
+ imgMarginDetectionScale(ins, true);
112
+ var touchRelative = [{
113
+ x: touch[0].pageX - cropper.imgLeft,
114
+ y: touch[0].pageY - cropper.imgTop
115
+ },
116
+ {
117
+ x: touch[1].pageX - cropper.imgLeft,
118
+ y: touch[1].pageY - cropper.imgTop
119
+ }
120
+ ];
121
+ if (!disableRotate) {
122
+ var first_atan = (180 / Math.PI) * Math.atan2(touchRelative[0].y, touchRelative[0].x);
123
+ var first_atan_old = (180 / Math.PI) * Math.atan2(cropper.touchRelative[0].y,
124
+ cropper.touchRelative[0].x);
125
+ var second_atan = (180 / Math.PI) * Math.atan2(touchRelative[1].y, touchRelative[1].x);
126
+ var second_atan_old = (180 / Math.PI) * Math.atan2(cropper.touchRelative[1].y,
127
+ cropper.touchRelative[1].x);
128
+ var first_deg = first_atan - first_atan_old,
129
+ second_deg = second_atan - second_atan_old;
130
+ if (first_deg != 0) {
131
+ current_deg = first_deg;
132
+ } else if (second_deg != 0) {
133
+ current_deg = second_deg;
134
+ }
135
+ }
136
+ cropper.touchRelative = touchRelative;
137
+ cropper.hypotenuseLength = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
138
+ //更新视图
139
+ cropper.angle = cropper.angle + current_deg;
140
+ imgTransform(ins);
141
+ }
142
+ }
143
+
144
+ function touchend(e, ins) {
145
+ cropper.flagEndTouch = true;
146
+ moveStop(ins);
147
+ updateData(ins)
148
+ }
149
+
150
+
151
+ function cutTouchStart(e, ins) {
152
+ var touch = e.touches || e.changedTouches;
153
+ var currentX = touch[0].pageX;
154
+ var currentY = touch[0].pageY;
155
+
156
+ /*
157
+ * (右下-1 右上-2 左上-3 左下-4)
158
+ * left_x [3,4]
159
+ * top_y [2,3]
160
+ * right_x [1,2]
161
+ * bottom_y [1,4]
162
+ */
163
+ var left_x1 = cropper.cutX - 30;
164
+ var left_x2 = cropper.cutX + 30;
165
+
166
+ var top_y1 = cropper.cutY - 30;
167
+ var top_y2 = cropper.cutY + 30;
168
+
169
+ var right_x1 = cropper.cutX + cropper.canvasWidth - 30;
170
+ var right_x2 = cropper.cutX + cropper.canvasWidth + 30;
171
+
172
+ var bottom_y1 = cropper.cutY + cropper.canvasHeight - 30;
173
+ var bottom_y2 = cropper.cutY + cropper.canvasHeight + 30;
174
+
175
+ if (currentX > right_x1 && currentX
176
+ < right_x2 && currentY> bottom_y1 && currentY
177
+ < bottom_y2 ) {
178
+ moveDuring();
179
+ cropper.flagCutTouch= true;
180
+ cropper.flagEndTouch= true;
181
+ cropper.CUT_START= {
182
+ width: cropper.canvasWidth,
183
+ height: cropper.canvasHeight,
184
+ x: currentX,
185
+ y: currentY,
186
+ corner: 1
187
+ };
188
+ } else if (currentX> right_x1 && currentX
189
+ < right_x2 && currentY> top_y1 && currentY
190
+ < top_y2 ) {
191
+ moveDuring();
192
+ cropper.flagCutTouch= true;
193
+ cropper.flagEndTouch= true;
194
+ cropper.CUT_START= {
195
+ width: cropper.canvasWidth,
196
+ height: cropper.canvasHeight,
197
+ x: currentX,
198
+ y: currentY,
199
+ cutY: cropper.cutY,
200
+ cutX: cropper.cutX,
201
+ corner: 2
202
+ };
203
+ } else if (currentX> left_x1 && currentX
204
+ < left_x2 && currentY> top_y1 && currentY
205
+ < top_y2 ) {
206
+ moveDuring();
207
+ cropper.flagCutTouch= true;
208
+ cropper.flagEndTouch= true;
209
+ cropper.CUT_START= {
210
+ width: cropper.canvasWidth,
211
+ height: cropper.canvasHeight,
212
+ cutY: cropper.cutY,
213
+ cutX: cropper.cutX,
214
+ x: currentX,
215
+ y: currentY,
216
+ corner: 3
217
+ };
218
+ } else if (currentX> left_x1 && currentX
219
+ < left_x2 && currentY> bottom_y1 && currentY
220
+ < bottom_y2 ) {
221
+ moveDuring();
222
+ cropper.flagCutTouch= true;
223
+ cropper.flagEndTouch= true;
224
+ cropper.CUT_START= {
225
+ width: cropper.canvasWidth,
226
+ height: cropper.canvasHeight,
227
+ cutY: cropper.cutY,
228
+ cutX: cropper.cutX,
229
+ x: currentX,
230
+ y: currentY,
231
+ corner: 4
232
+ };
233
+ }
234
+ }
235
+ function cutTouchMove(e, ins) {
236
+ if (!cropper.CUT_START || cropper.CUT_START=== 'null') return;
237
+ if (cropper.flagCutTouch) {
238
+ var touch = e.touches || e.changedTouches;
239
+ var res = e.instance.getDataset();
240
+ var lockRatio = bool(res.lockratio);
241
+ var lockWidth = bool(res.lockwidth);
242
+ var lockHeight = bool(res.lockheight);
243
+ if (lockRatio && (lockWidth || lockHeight)) return;
244
+ var width = cropper.canvasWidth,
245
+ height = cropper.canvasHeight,
246
+ cutY = cropper.cutY,
247
+ cutX = cropper.cutX;
248
+
249
+ function size_correct() {
250
+ width = width
251
+ <= cropper.maxWidth ? (width>= cropper.minWidth ? width : cropper.minWidth) : cropper.maxWidth;
252
+ height = height
253
+ <= cropper.maxHeight ? (height>= cropper.minHeight ? height : cropper.minHeight) : cropper.maxHeight;
254
+ }
255
+
256
+ function size_inspect() {
257
+ if ((width > cropper.maxWidth || width
258
+ < cropper.minWidth || height> cropper.maxHeight || height
259
+ < cropper.minHeight ) &&
260
+ lockRatio) {
261
+ size_correct();
262
+ return false;
263
+ } else {
264
+ size_correct();
265
+ return true;
266
+ }
267
+ };
268
+ height= cropper.CUT_START.height + (cropper.CUT_START.corner> 1 && cropper.CUT_START.corner
269
+ < 4 ? 1 : -1) * (
270
+ cropper.CUT_START.y - touch[0].pageY);
271
+ switch (cropper.CUT_START.corner) {
272
+ case 1:
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
+ break;
279
+ case 2:
280
+ width = cropper.CUT_START.width - cropper.CUT_START.x + touch[0].pageX;
281
+ if (lockRatio) {
282
+ height = width / (cropper.canvasWidth / cropper.canvasHeight);
283
+ }
284
+ if (!size_inspect()) return;
285
+ cutY = cropper.CUT_START.cutY - (height - cropper.CUT_START.height);
286
+ break;
287
+ case 3:
288
+ width = cropper.CUT_START.width + cropper.CUT_START.x - touch[0].pageX;
289
+ if (lockRatio) {
290
+ height = width / (cropper.canvasWidth / cropper.canvasHeight);
291
+ }
292
+ if (!size_inspect()) return;
293
+ cutY = cropper.CUT_START.cutY - (height - cropper.CUT_START.height);
294
+ cutX = cropper.CUT_START.cutX - (width - cropper.CUT_START.width);
295
+ break;
296
+ case 4:
297
+ width = cropper.CUT_START.width + cropper.CUT_START.x - touch[0].pageX;
298
+ if (lockRatio) {
299
+ height = width / (cropper.canvasWidth / cropper.canvasHeight);
300
+ }
301
+ if (!size_inspect()) return;
302
+ cutX = cropper.CUT_START.cutX - (width - cropper.CUT_START.width);
303
+ break;
304
+ default:
305
+ break;
306
+ }
307
+ if (!lockWidth && !lockHeight) {
308
+ cropper.canvasWidth = width;
309
+ cropper.cutX = cutX;
310
+ cropper.canvasHeight = height;
311
+ cropper.cutY = cutY;
312
+ canvasHeight(ins);
313
+ canvasWidth(ins);
314
+ } else if (!lockWidth) {
315
+ cropper.canvasWidth = width;
316
+ cropper.cutX = cutX;
317
+ canvasWidth(ins);
318
+ } else if (!lockHeight) {
319
+ cropper.canvasHeight = height;
320
+ cropper.cutY = cutY;
321
+ canvasHeight(ins);
322
+ }
323
+ styleUpdate(ins)
324
+ imgMarginDetectionScale(ins);
325
+ }
326
+ }
327
+
328
+ //检测剪裁框位置是否在允许的范围内(屏幕内)
329
+ function cutDetectionPosition(ins) {
330
+ var windowHeight = cropper.windowHeight,
331
+ windowWidth = cropper.windowWidth;
332
+
333
+ function cutDetectionPositionTop() {
334
+ //检测上边距是否在范围内
335
+ if (cropper.cutY
336
+ < 0) {
337
+ cropper.cutY = 0;
338
+ }
339
+ if (cropper.cutY> windowHeight - cropper.canvasHeight) {
340
+ cropper.cutY = windowHeight - cropper.canvasHeight;
341
+ }
342
+ }
343
+
344
+ function cutDetectionPositionLeft() {
345
+ //检测左边距是否在范围内
346
+ if (cropper.cutX
347
+ < 0) {
348
+ cropper.cutX = 0;
349
+ }
350
+ if (cropper.cutX> windowWidth - cropper.canvasWidth) {
351
+ cropper.cutX = windowWidth - cropper.canvasWidth;
352
+ }
353
+ }
354
+ //裁剪框坐标处理(如果只写一个参数则另一个默认为0,都不写默认居中)
355
+ if (cropper.cutY == null && cropper.cutX == null) {
356
+ var cutY = (windowHeight - cropper.canvasHeight) * 0.5;
357
+ var cutX = (windowWidth - cropper.canvasWidth) * 0.5;
358
+ cropper.cutY = cutY; //截取的框上边距
359
+ cropper.cutX = cutX; //截取的框左边距
360
+ } else if (cropper.cutY != null && cropper.cutX != null) {
361
+ cutDetectionPositionTop();
362
+ cutDetectionPositionLeft();
363
+ } else if (cropper.cutY != null && cropper.cutX == null) {
364
+ cutDetectionPositionTop();
365
+ cropper.cutX = (windowWidth - cropper.canvasWidth) / 2;
366
+ } else if (cropper.cutY == null && cropper.cutX != null) {
367
+ cutDetectionPositionLeft();
368
+ cropper.cutY = (windowHeight - cropper.canvasHeight) / 2;
369
+ }
370
+
371
+ styleUpdate(ins)
372
+ }
373
+
374
+ /**
375
+ * 图片边缘检测-缩放
376
+ */
377
+ function imgMarginDetectionScale(ins, delay) {
378
+ if (!cropper.limitMove) return;
379
+ var scale = cropper.scale;
380
+ var imgWidth = cropper.imgWidth;
381
+ var imgHeight = cropper.imgHeight;
382
+ if ((cropper.angle / 90) % 2) {
383
+ imgWidth = cropper.imgHeight;
384
+ imgHeight = cropper.imgWidth;
385
+ }
386
+ if (imgWidth * scale
387
+ < cropper.canvasWidth ) {
388
+ scale= cropper.canvasWidth / imgWidth;
389
+ }
390
+ if (imgHeight * scale
391
+ < cropper.canvasHeight ) {
392
+ scale= Math.max(scale, cropper.canvasHeight / imgHeight);
393
+ }
394
+ imgMarginDetectionPosition(ins, scale, delay);
395
+ }
396
+ /
397
+ **
398
+ * 图片边缘检测-位置
399
+ */
400
+ function imgMarginDetectionPosition(ins, scale, delay) {
401
+ if (!cropper.limitMove) return;
402
+ var left= cropper.imgLeft;
403
+ var top= cropper.imgTop;
404
+ scale= scale || cropper.scale;
405
+ var imgWidth= cropper.imgWidth;
406
+ var imgHeight= cropper.imgHeight;
407
+ if ((cropper.angle / 90) % 2) {
408
+ imgWidth= cropper.imgHeight;
409
+ imgHeight= cropper.imgWidth;
410
+ }
411
+ left= cropper.cutX + (imgWidth * scale) / 2>= left ? left : cropper.cutX + (imgWidth * scale) / 2;
412
+ left = cropper.cutX + cropper.canvasWidth - (imgWidth * scale) / 2
413
+ <= left ? left : cropper.cutX + cropper.canvasWidth -
414
+ (imgWidth * scale) / 2;
415
+ top = cropper.cutY + (imgHeight * scale) / 2>= top ? top : cropper.cutY + (imgHeight * scale) / 2;
416
+ top = cropper.cutY + cropper.canvasHeight - (imgHeight * scale) / 2
417
+ <= top ? top : cropper.cutY + cropper.canvasHeight -
418
+ (imgHeight * scale) / 2;
419
+
420
+ cropper.imgLeft = left;
421
+ cropper.imgTop = top;
422
+ cropper.scale = scale;
423
+ styleUpdate(ins)
424
+ if (!delay || delay === 'null') {
425
+ imgTransform(ins);
426
+ }
427
+ }
428
+
429
+
430
+ function cutTouchEnd(e, ins) {
431
+ moveStop(ins);
432
+ cropper.flagCutTouch = false;
433
+ updateData(ins)
434
+ }
435
+
436
+
437
+ //改变截取框大小
438
+ function computeCutSize(ins) {
439
+ if (cropper.canvasWidth> cropper.windowWidth) {
440
+ cropper.canvasWidth = cropper.windowWidth;
441
+ // canvasWidth(ins)
442
+ } else if (cropper.canvasWidth + cropper.cutX > cropper.windowWidth) {
443
+ cropper.cutX = cropper.windowWidth - cropper.cutX;
444
+ }
445
+ if (cropper.canvasHeight > cropper.windowHeight) {
446
+ cropper.canvasHeight = cropper.windowHeight;
447
+ // canvasHeight(ins)
448
+ } else if (cropper.canvasHeight + cropper.cutY > cropper.windowHeight) {
449
+ cropper.cutY = cropper.windowHeight - cropper.cutY;
450
+ }
451
+ // styleUpdate(ins)
452
+ }
453
+
454
+ function styleUpdate(ins) {
455
+ if (!ins) return;
456
+ ins.selectComponent('.up-cropper-box').setStyle({
457
+ 'width': cropper.canvasWidth + 'px',
458
+ 'height': cropper.canvasHeight + 'px'
459
+ })
460
+ ins.selectComponent('.up-content-middle').setStyle({
461
+ 'height': cropper.canvasHeight + 'px'
462
+ })
463
+ ins.selectComponent('.up-content-top').setStyle({
464
+ 'height': cropper.cutY + 'px'
465
+ })
466
+ ins.selectComponent('.up-wxs-bg').setStyle({
467
+ 'width': cropper.cutX + 'px'
468
+ })
469
+
470
+ }
471
+
472
+ function imgTransform(ins) {
473
+ var owner = ins.selectComponent('.up-cropper-image')
474
+ if (!owner) return
475
+ var x = cropper.imgLeft - cropper.imgWidth / 2;
476
+ var y = cropper.imgTop - cropper.imgHeight / 2;
477
+ owner.setStyle({
478
+ 'transform': 'translate3d(' + x + 'px,' + y + 'px,0) scale(' + cropper.scale + ') rotate(' +
479
+ cropper.angle + 'deg)'
480
+ })
481
+ }
482
+
483
+ function imageReset(ins) {
484
+ cropper.scale = 1;
485
+ cropper.angle = 0;
486
+ imgTransform(ins);
487
+ }
488
+ //监听截取框宽高变化
489
+ function canvasWidth(ins) {
490
+ if (cropper.canvasWidth
491
+ < cropper.minWidth ) {
492
+ cropper.canvasWidth= cropper.minWidth;
493
+ }
494
+ if (!ins) return;
495
+ computeCutSize(ins);
496
+ }
497
+ function canvasHeight(ins) {
498
+ if (cropper.canvasHeight
499
+ < cropper.minHeight ) {
500
+ cropper.canvasHeight= cropper.minHeight;
501
+ }
502
+ if (!ins) return;
503
+ computeCutSize(ins);
504
+ }
505
+ function updateData(ins) {
506
+ if (!ins) return;
507
+ ins.callMethod('change' , {
508
+ cutX: cropper.cutX,
509
+ cutY: cropper.cutY,
510
+ canvasWidth: cropper.canvasWidth,
511
+ canvasHeight: cropper.canvasHeight,
512
+ imgWidth: cropper.imgWidth,
513
+ imgHeight: cropper.imgHeight,
514
+ scale: cropper.scale,
515
+ angle: cropper.angle,
516
+ imgTop: cropper.imgTop,
517
+ imgLeft: cropper.imgLeft
518
+ })
519
+ }
520
+ function propsChange(prop, oldProp, ownerInstance, ins) {
521
+ if (prop && prop !== 'null') {
522
+ var params = prop.split(',')
523
+ var type = +params[0]
524
+ var dataset = ins.getDataset();
525
+ if (cropper.init || type == 4) {
526
+ cropper.maxHeight = +dataset.maxheight;
527
+ cropper.minHeight = +dataset.minheight;
528
+ cropper.maxWidth = +dataset.maxwidth;
529
+ cropper.minWidth = +dataset.minwidth;
530
+ cropper.canvasWidth = +dataset.width;
531
+ cropper.canvasHeight = +dataset.height;
532
+ cropper.imgTop = dataset.windowheight / 2;
533
+ cropper.imgLeft = dataset.windowwidth / 2;
534
+ cropper.imgWidth = +dataset.imgwidth;
535
+ cropper.imgHeight = +dataset.imgheight;
536
+ cropper.windowHeight = +dataset.windowheight;
537
+ cropper.windowWidth = +dataset.windowwidth;
538
+ cropper.init = false
539
+ } else if (type == 2) {
540
+ cropper.imgWidth = +dataset.imgwidth;
541
+ cropper.imgHeight = +dataset.imgheight;
542
+ }
543
+ cropper.limitMove = bool(dataset.limitmove);
544
+ cropper.angle = +dataset.angle;
545
+ if (type == 3) {
546
+ imgTransform(ownerInstance);
547
+ }
548
+ switch (type) {
549
+ case 1:
550
+ setCutCenter(ownerInstance);
551
+ //设置裁剪框大小>设置图片尺寸>绘制canvas
552
+ computeCutSize(ownerInstance);
553
+ //检查裁剪框是否在范围内
554
+ cutDetectionPosition(ownerInstance);
555
+ break;
556
+ case 2:
557
+ setCutCenter(ownerInstance);
558
+ break;
559
+ case 3:
560
+ imgMarginDetectionScale(ownerInstance)
561
+ break;
562
+ case 4:
563
+ imageReset(ownerInstance);
564
+ break;
565
+ case 5:
566
+ setCutCenter(ownerInstance);
567
+ break;
568
+ default:
569
+ break;
570
+ }
571
+ }
572
+ }
573
+
574
+ export default {
575
+ touchstart: touchstart,
576
+ touchmove: touchmove,
577
+ touchend: touchend,
578
+ cutTouchStart: cutTouchStart,
579
+ cutTouchMove: cutTouchMove,
580
+ cutTouchEnd: cutTouchEnd,
581
+ propsChange: propsChange
582
+ }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <view class="fui-circular-container" :style="{ width: diam + 'px', height: (height || diam) + 'px' }">
2
+ <view class="up-circular-container" :style="{ width: diam + 'px', height: (height || diam) + 'px' }">
3
3
  <canvas
4
4
  :start="percent"
5
5
  :change:start="parse.initDraw"
@@ -300,7 +300,7 @@ export default {
300
300
  </script>
301
301
 
302
302
  <style scoped>
303
- .fui-circular-container {
303
+ .up-circular-container {
304
304
  position: relative;
305
305
  }
306
306
  </style>
@@ -1,29 +1,29 @@
1
1
  <template>
2
2
  <view
3
- class="fui-scroll-top_box"
3
+ class="up-scroll-top_box"
4
4
  v-show="isIndex || isShare || (visible && toggle)"
5
5
  :style="{ bottom: bottom + 'rpx', right: right + 'rpx' }"
6
6
  >
7
- <view class="fui-scroll-top_item" v-if="isIndex" @tap.stop="goIndex">
8
- <image class="fui-scroll-top_img" :src="indexIcon"></image>
9
- <view class="fui-scroll-top_text">首页</view>
7
+ <view class="up-scroll-top_item" v-if="isIndex" @tap.stop="goIndex">
8
+ <image class="up-scroll-top_img" :src="indexIcon"></image>
9
+ <view class="up-scroll-top_text">首页</view>
10
10
  </view>
11
- <button open-type="share" class="fui-share-btn" v-if="isShare && !customShare">
12
- <view class="fui-scroll-top_item" :class="{ 'fui-scroll-item_top': isIndex }">
13
- <image class="fui-scroll-top_img" :src="shareIcon"></image>
11
+ <button open-type="share" class="up-share-btn" v-if="isShare && !customShare">
12
+ <view class="up-scroll-top_item" :class="{ 'up-scroll-item_top': isIndex }">
13
+ <image class="up-scroll-top_img" :src="shareIcon"></image>
14
14
  </view>
15
15
  </button>
16
- <view class="fui-scroll-top_item" :class="{ 'fui-scroll-item_top': isIndex }" v-if="isShare && customShare" @tap.stop="share">
17
- <image class="fui-scroll-top_img" :src="shareIcon"></image>
16
+ <view class="up-scroll-top_item" :class="{ 'up-scroll-item_top': isIndex }" v-if="isShare && customShare" @tap.stop="share">
17
+ <image class="up-scroll-top_img" :src="shareIcon"></image>
18
18
  </view>
19
19
  <view
20
- class="fui-scroll-top_item"
21
- :class="{ 'fui-scroll-item_top': isIndex || isShare }"
20
+ class="up-scroll-top_item"
21
+ :class="{ 'up-scroll-item_top': isIndex || isShare }"
22
22
  v-show="visible && toggle"
23
23
  @tap.stop="goTop"
24
24
  >
25
- <image class="fui-scroll-top_img" :src="topIcon"></image>
26
- <view class="fui-scroll-top_text fui-color-white">顶部</view>
25
+ <image class="up-scroll-top_img" :src="topIcon"></image>
26
+ <view class="up-scroll-top_text up-color-white">顶部</view>
27
27
  </view>
28
28
  </view>
29
29
  </template>
@@ -135,7 +135,7 @@ export default {
135
135
  </script>
136
136
 
137
137
  <style scoped>
138
- .fui-scroll-top_box {
138
+ .up-scroll-top_box {
139
139
  width: 80rpx;
140
140
  height: 270rpx;
141
141
  position: fixed;
@@ -145,23 +145,23 @@ export default {
145
145
  font-weight: 400;
146
146
  }
147
147
 
148
- .fui-scroll-top_item {
148
+ .up-scroll-top_item {
149
149
  width: 80rpx;
150
150
  height: 80rpx;
151
151
  position: relative;
152
152
  }
153
153
 
154
- .fui-scroll-item_top {
154
+ .up-scroll-item_top {
155
155
  margin-top: 30rpx;
156
156
  }
157
157
 
158
- .fui-scroll-top_img {
158
+ .up-scroll-top_img {
159
159
  width: 80rpx;
160
160
  height: 80rpx;
161
161
  display: block;
162
162
  }
163
163
 
164
- .fui-scroll-top_text {
164
+ .up-scroll-top_text {
165
165
  width: 80rpx;
166
166
  text-align: center;
167
167
  font-size: 24rpx;
@@ -173,17 +173,17 @@ export default {
173
173
  bottom: 15rpx;
174
174
  }
175
175
 
176
- .fui-color-white {
176
+ .up-color-white {
177
177
  color: #fff;
178
178
  }
179
- .fui-share-btn {
179
+ .up-share-btn {
180
180
  background: transparent !important;
181
181
  padding: 0;
182
182
  margin: 0;
183
183
  display: inline;
184
184
  border: 0;
185
185
  }
186
- .fui-share-btn::after {
186
+ .up-share-btn::after {
187
187
  border: 0;
188
188
  }
189
189
  </style>