@10yun/cv-mobile-ui 0.5.29 → 0.5.30

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 (260) hide show
  1. package/package.json +1 -1
  2. package/plugins/luch-request/adapters/index.js +131 -0
  3. package/plugins/luch-request/core/InterceptorManager.js +50 -0
  4. package/plugins/luch-request/core/Request.js +199 -0
  5. package/plugins/luch-request/core/buildFullPath.js +20 -0
  6. package/plugins/luch-request/core/defaults.js +32 -0
  7. package/plugins/luch-request/core/dispatchRequest.js +5 -0
  8. package/plugins/luch-request/core/mergeConfig.js +125 -0
  9. package/plugins/luch-request/core/settle.js +16 -0
  10. package/plugins/luch-request/helpers/buildURL.js +71 -0
  11. package/plugins/luch-request/helpers/combineURLs.js +12 -0
  12. package/plugins/luch-request/helpers/isAbsoluteURL.js +14 -0
  13. package/plugins/luch-request/index.d.ts +197 -0
  14. package/plugins/luch-request/index.js +2 -0
  15. package/plugins/luch-request/readme.md +3 -0
  16. package/plugins/luch-request/utils/clone.js +264 -0
  17. package/plugins/luch-request/utils.js +131 -0
  18. package/plugins/request.js +2 -2
  19. package/ui-cv/components/cv-form-item/cv-form-item.vue +1 -1
  20. package/ui-fireui/fui-actionsheet/fui-actionsheet.vue +202 -0
  21. package/ui-fireui/fui-alert/fui-alert.vue +141 -0
  22. package/ui-fireui/fui-badge/fui-badge.vue +158 -0
  23. package/ui-fireui/fui-bottom-navigation/fui-bottom-navigation.vue +390 -0
  24. package/ui-fireui/fui-bottom-popup/fui-bottom-popup.vue +100 -0
  25. package/ui-fireui/fui-bubble-popup/fui-bubble-popup.vue +236 -0
  26. package/ui-fireui/fui-button/fui-button.vue +424 -0
  27. package/ui-fireui/fui-calendar/fui-calendar.js +915 -0
  28. package/ui-fireui/fui-calendar/fui-calendar.vue +868 -0
  29. package/ui-fireui/fui-card/fui-card.vue +231 -0
  30. package/ui-fireui/fui-cascade-selection/fui-cascade-selection.vue +538 -0
  31. package/ui-fireui/fui-circular-progress/fui-circular-progress.vue +261 -0
  32. package/ui-fireui/fui-collapse/fui-collapse.vue +179 -0
  33. package/ui-fireui/fui-countdown/fui-countdown.vue +301 -0
  34. package/ui-fireui/fui-datetime/fui-datetime.vue +570 -0
  35. package/ui-fireui/fui-divider/fui-divider.vue +118 -0
  36. package/ui-fireui/fui-drawer/fui-drawer.vue +103 -0
  37. package/ui-fireui/fui-dropdown-list/fui-dropdown-list.vue +70 -0
  38. package/ui-fireui/fui-fab/fui-fab.vue +284 -0
  39. package/ui-fireui/fui-footer/fui-footer.vue +131 -0
  40. package/ui-fireui/fui-grid/fui-grid.vue +42 -0
  41. package/ui-fireui/fui-grid-item/fui-grid-item.vue +142 -0
  42. package/ui-fireui/fui-icon/fui-icon.vue +820 -0
  43. package/ui-fireui/fui-image-cropper/fui-image-cropper.vue +1058 -0
  44. package/ui-fireui/fui-image-group/fui-image-group.vue +149 -0
  45. package/ui-fireui/fui-keyboard/fui-keyboard.vue +254 -0
  46. package/ui-fireui/fui-keyboard-input/fui-keyboard-input.vue +78 -0
  47. package/ui-fireui/fui-list-cell/fui-list-cell.vue +178 -0
  48. package/ui-fireui/fui-list-view/fui-list-view.vue +87 -0
  49. package/ui-fireui/fui-loading/fui-loading.vue +78 -0
  50. package/ui-fireui/fui-loadmore/fui-loadmore.vue +163 -0
  51. package/ui-fireui/fui-modal/fui-modal.vue +392 -0
  52. package/ui-fireui/fui-navigation-bar/fui-navigation-bar.vue +180 -0
  53. package/ui-fireui/fui-no-data/fui-no-data.vue +116 -0
  54. package/ui-fireui/fui-nomore/fui-nomore.vue +116 -0
  55. package/ui-fireui/fui-numberbox/fui-numberbox.vue +234 -0
  56. package/ui-fireui/fui-numberbox-border/fui-numberbox-border.vue +232 -0
  57. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.vue +682 -0
  58. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.wxs +560 -0
  59. package/ui-fireui/fui-rate/fui-rate.vue +167 -0
  60. package/ui-fireui/fui-round-progress/fui-round-progress.vue +306 -0
  61. package/ui-fireui/fui-scroll-top/fui-scroll-top.vue +189 -0
  62. package/ui-fireui/fui-sharemodel/fui-sharemodel.vue +181 -0
  63. package/ui-fireui/fui-skeleton/fui-skeleton.vue +248 -0
  64. package/ui-fireui/fui-steps/fui-steps.vue +214 -0
  65. package/ui-fireui/fui-sticky/fui-sticky.vue +155 -0
  66. package/ui-fireui/fui-sticky-wxs/fui-sticky-wxs.vue +133 -0
  67. package/ui-fireui/fui-sticky-wxs/fui-sticky.wxs +44 -0
  68. package/ui-fireui/fui-swipe-action/fui-swipe-action.vue +301 -0
  69. package/ui-fireui/fui-tabbar/fui-tabbar.vue +283 -0
  70. package/ui-fireui/fui-tabs/fui-tabs.vue +284 -0
  71. package/ui-fireui/fui-tabs2/fui-tabs2.vue +284 -0
  72. package/ui-fireui/fui-tag/fui-tag.vue +374 -0
  73. package/ui-fireui/fui-time-axis/fui-time-axis.vue +36 -0
  74. package/ui-fireui/fui-timeaxis-item/fui-timeaxis-item.vue +48 -0
  75. package/ui-fireui/fui-tips/fui-tips.vue +161 -0
  76. package/ui-fireui/fui-toast/fui-toast.vue +117 -0
  77. package/ui-fireui/fui-top-dropdown/fui-top-dropdown.vue +129 -0
  78. package/ui-fireui/fui-upload/fui-upload.vue +446 -0
  79. package/ui-fireui/fui-uploadsamll/fui-uploadsamll.vue +472 -0
  80. package/uview-plus/README.md +1 -1
  81. package/uview-plus/changelog-wu-tool.md +21 -0
  82. package/uview-plus/changelog-wu.md +91 -0
  83. package/uview-plus/components/u-action-sheet/_doc/changelog.md +12 -0
  84. package/uview-plus/components/u-action-sheet/_doc/package.json +92 -0
  85. package/uview-plus/components/u-action-sheet/_doc/readme.md +16 -0
  86. package/uview-plus/components/u-app-update/_doc/changelog.md +26 -0
  87. package/uview-plus/components/u-app-update/_doc/package.json +89 -0
  88. package/uview-plus/components/u-app-update/_doc/readme.md +16 -0
  89. package/uview-plus/components/u-app-update/config.js +120 -0
  90. package/uview-plus/components/u-app-update/img/act.png +0 -0
  91. package/uview-plus/components/u-app-update/img/appUploadAlertBoxBg.png +0 -0
  92. package/uview-plus/components/u-app-update/img/close.png +0 -0
  93. package/uview-plus/components/u-app-update/js-sdk/checkVersion.js +81 -0
  94. package/uview-plus/components/u-app-update/js-sdk/silentlyAppUpdate.js +41 -0
  95. package/uview-plus/components/u-app-update/pages/index.vue +8 -0
  96. package/uview-plus/components/u-app-update/u-app-update.vue +583 -0
  97. package/uview-plus/components/u-button-wu/_doc/changelog.md +6 -0
  98. package/uview-plus/components/u-button-wu/_doc/package.json +89 -0
  99. package/uview-plus/components/u-button-wu/_doc/readme.md +16 -0
  100. package/uview-plus/components/u-button-wu/u-button-wu.vue +522 -0
  101. package/uview-plus/components/u-button-wu/vue.scss +81 -0
  102. package/uview-plus/components/u-calendar-wu/_doc/changelog.md +145 -0
  103. package/uview-plus/components/u-calendar-wu/_doc/package.json +90 -0
  104. package/uview-plus/components/u-calendar-wu/_doc/readme.md +16 -0
  105. package/uview-plus/components/u-calendar-wu/calendar.js +664 -0
  106. package/uview-plus/components/u-calendar-wu/i18n/en.json +14 -0
  107. package/uview-plus/components/u-calendar-wu/i18n/index.js +8 -0
  108. package/uview-plus/components/u-calendar-wu/i18n/zh-Hans.json +14 -0
  109. package/uview-plus/components/u-calendar-wu/i18n/zh-Hant.json +14 -0
  110. package/uview-plus/components/u-calendar-wu/props.js +166 -0
  111. package/uview-plus/components/u-calendar-wu/style.css +196 -0
  112. package/uview-plus/components/u-calendar-wu/u-calendar-wu.vue +921 -0
  113. package/uview-plus/components/u-calendar-wu/util.js +552 -0
  114. package/uview-plus/components/u-calendar-wu/wu-calendar-block/props.js +73 -0
  115. package/uview-plus/components/u-calendar-wu/wu-calendar-block/wu-calendar-block.vue +122 -0
  116. package/uview-plus/components/u-calendar-wu/wu-calendar-item/props.js +55 -0
  117. package/uview-plus/components/u-calendar-wu/wu-calendar-item/wu-calendar-item.vue +293 -0
  118. package/uview-plus/components/u-cell/_doc/changelog.md +6 -0
  119. package/uview-plus/components/u-cell/_doc/package.json +89 -0
  120. package/uview-plus/components/u-cell/_doc/readme.md +25 -0
  121. package/uview-plus/components/u-checkbox/_doc/changelog.md +8 -0
  122. package/uview-plus/components/u-checkbox/_doc/package.json +88 -0
  123. package/uview-plus/components/u-checkbox/_doc/readme.md +25 -0
  124. package/uview-plus/components/u-code/_doc/changelog.md +6 -0
  125. package/uview-plus/components/u-code/_doc/package.json +86 -0
  126. package/uview-plus/components/u-code/_doc/readme.md +16 -0
  127. package/uview-plus/components/u-drag-sort/_doc/changelog.md +0 -0
  128. package/uview-plus/components/u-drag-sort/_doc/package.json +85 -0
  129. package/uview-plus/components/u-drag-sort/_doc/readme.md +16 -0
  130. package/uview-plus/components/u-drag-sort/u-drag-sort.vue +3 -0
  131. package/uview-plus/components/u-empty/u-empty.vue +27 -1
  132. package/uview-plus/components/u-gap/_doc/changelog.md +4 -0
  133. package/uview-plus/components/u-gap/_doc/package.json +86 -0
  134. package/uview-plus/components/u-gap/_doc/readme.md +22 -0
  135. package/uview-plus/components/u-icon/_doc/changelog.md +10 -0
  136. package/uview-plus/components/u-icon/_doc/package.json +85 -0
  137. package/uview-plus/components/u-icon/_doc/readme.md +10 -0
  138. package/uview-plus/components/u-icon/icon.js +23 -25
  139. package/uview-plus/components/u-icon/icons.js +213 -213
  140. package/uview-plus/components/u-icon/style.css +3 -3
  141. package/uview-plus/components/u-icon/u-icon2.vue +149 -0
  142. package/uview-plus/components/u-image-wu/_doc/changelog.md +21 -0
  143. package/uview-plus/components/u-image-wu/_doc/package.json +88 -0
  144. package/uview-plus/components/u-image-wu/_doc/readme.md +11 -0
  145. package/uview-plus/components/u-image-wu/props.js +94 -0
  146. package/uview-plus/components/u-image-wu/u-image-wu.vue +243 -0
  147. package/uview-plus/components/u-input/_doc/changelog.md +6 -0
  148. package/uview-plus/components/u-input/_doc/package.json +88 -0
  149. package/uview-plus/components/u-input/_doc/readme.md +16 -0
  150. package/uview-plus/components/u-line/_doc/changelog.md +8 -0
  151. package/uview-plus/components/u-line/_doc/package.json +86 -0
  152. package/uview-plus/components/u-line/_doc/readme.md +16 -0
  153. package/uview-plus/components/u-link/_doc/changelog.md +8 -0
  154. package/uview-plus/components/u-link/_doc/package.json +86 -0
  155. package/uview-plus/components/u-link/_doc/readme.md +20 -0
  156. package/uview-plus/components/u-loading-icon/_doc/changelog.md +12 -0
  157. package/uview-plus/components/u-loading-icon/_doc/package.json +86 -0
  158. package/uview-plus/components/u-loading-icon/_doc/readme.md +16 -0
  159. package/uview-plus/components/u-loading-icon/props.js +1 -1
  160. package/uview-plus/components/u-navbar/_doc/changelog.md +6 -0
  161. package/uview-plus/components/u-navbar/_doc/package.json +89 -0
  162. package/uview-plus/components/u-navbar/_doc/readme.md +16 -0
  163. package/uview-plus/components/u-navbar-wu/props.js +102 -0
  164. package/uview-plus/components/u-navbar-wu/u-navbar-wu.vue +196 -0
  165. package/uview-plus/components/u-number-box/_doc/changelog.md +19 -0
  166. package/uview-plus/components/u-number-box/_doc/package.json +88 -0
  167. package/uview-plus/components/u-number-box/_doc/readme.md +16 -0
  168. package/uview-plus/components/u-overlay/_doc/changelog.md +4 -0
  169. package/uview-plus/components/u-overlay/_doc/package.json +88 -0
  170. package/uview-plus/components/u-overlay/_doc/readme.md +16 -0
  171. package/uview-plus/components/u-popup/_doc/changelog.md +4 -0
  172. package/uview-plus/components/u-popup/_doc/package.json +92 -0
  173. package/uview-plus/components/u-popup/_doc/readme.md +16 -0
  174. package/uview-plus/components/u-popup-wu/keypress.js +45 -0
  175. package/uview-plus/components/u-popup-wu/u-popup-wu.vue +519 -0
  176. package/uview-plus/components/u-radio/_doc/changelog.md +6 -0
  177. package/uview-plus/components/u-radio/_doc/package.json +88 -0
  178. package/uview-plus/components/u-radio/_doc/readme.md +25 -0
  179. package/uview-plus/components/u-row/_doc/changelog.md +8 -0
  180. package/uview-plus/components/u-row/_doc/package.json +86 -0
  181. package/uview-plus/components/u-row/_doc/readme.md +16 -0
  182. package/uview-plus/components/u-safe-bottom/_doc/changelog.md +6 -0
  183. package/uview-plus/components/u-safe-bottom/_doc/package.json +86 -0
  184. package/uview-plus/components/u-safe-bottom/_doc/readme.md +16 -0
  185. package/uview-plus/components/u-sku-wu/_doc/changelog.md +27 -0
  186. package/uview-plus/components/u-sku-wu/_doc/package.json +93 -0
  187. package/uview-plus/components/u-sku-wu/_doc/readme.md +16 -0
  188. package/uview-plus/components/u-sku-wu/props.js +86 -0
  189. package/uview-plus/components/u-sku-wu/style.css +271 -0
  190. package/uview-plus/components/u-sku-wu/u-sku-wu.vue +864 -0
  191. package/uview-plus/components/u-status-bar/_doc/changelog.md +4 -0
  192. package/uview-plus/components/u-status-bar/_doc/package.json +86 -0
  193. package/uview-plus/components/u-status-bar/_doc/readme.md +16 -0
  194. package/uview-plus/components/u-text/_doc/changelog.md +10 -0
  195. package/uview-plus/components/u-text/_doc/package.json +89 -0
  196. package/uview-plus/components/u-text/_doc/readme.md +20 -0
  197. package/uview-plus/components/u-textarea/_doc/changelog.md +6 -0
  198. package/uview-plus/components/u-textarea/_doc/package.json +86 -0
  199. package/uview-plus/components/u-textarea/_doc/readme.md +25 -0
  200. package/uview-plus/components/u-transition/_doc/changelog.md +14 -0
  201. package/uview-plus/components/u-transition/_doc/package.json +86 -0
  202. package/uview-plus/components/u-transition/_doc/readme.md +16 -0
  203. package/uview-plus/components/u-transition-wu/createAnimation.js +148 -0
  204. package/uview-plus/components/u-transition-wu/props.js +32 -0
  205. package/uview-plus/components/u-transition-wu/u-transition.vue +300 -0
  206. package/uview-plus/components/u-verification-code/u-verification-code.vue +161 -0
  207. package/uview-plus/index.js +107 -94
  208. package/uview-plus/libs/config/config.js +46 -48
  209. package/uview-plus/libs/css/color.scss +32 -311
  210. package/uview-plus/libs/css/components-wu.scss +30 -0
  211. package/uview-plus/libs/css/vue.scss +10 -10
  212. package/uview-plus/libs/function/calc.js +61 -55
  213. package/uview-plus/libs/function/cc.js +66 -0
  214. package/uview-plus/libs/function/color/color-convert/CHANGELOG.md +54 -0
  215. package/uview-plus/libs/function/color/color-convert/LICENSE +21 -0
  216. package/uview-plus/libs/function/color/color-convert/README.md +68 -0
  217. package/uview-plus/libs/function/color/color-convert/conversions.js +839 -0
  218. package/uview-plus/libs/function/color/color-convert/index.js +81 -0
  219. package/uview-plus/libs/function/color/color-convert/package.json +48 -0
  220. package/uview-plus/libs/function/color/color-convert/route.js +97 -0
  221. package/uview-plus/libs/function/color/color-name/LICENSE +8 -0
  222. package/uview-plus/libs/function/color/color-name/README.md +11 -0
  223. package/uview-plus/libs/function/color/color-name/index.js +152 -0
  224. package/uview-plus/libs/function/color/color-name/package.json +28 -0
  225. package/uview-plus/libs/function/color/color-string/LICENSE +21 -0
  226. package/uview-plus/libs/function/color/color-string/README.md +62 -0
  227. package/uview-plus/libs/function/color/color-string/index.js +244 -0
  228. package/uview-plus/libs/function/color/color-string/package.json +39 -0
  229. package/uview-plus/libs/function/color/color.js +496 -0
  230. package/uview-plus/libs/function/color/index.js +158 -0
  231. package/uview-plus/libs/function/color/is-arrayish/LICENSE +21 -0
  232. package/uview-plus/libs/function/color/is-arrayish/README.md +16 -0
  233. package/uview-plus/libs/function/color/is-arrayish/index.js +9 -0
  234. package/uview-plus/libs/function/color/is-arrayish/package.json +45 -0
  235. package/uview-plus/libs/function/color/is-arrayish/yarn-error.log +1443 -0
  236. package/uview-plus/libs/function/color/simple-swizzle/LICENSE +21 -0
  237. package/uview-plus/libs/function/color/simple-swizzle/README.md +39 -0
  238. package/uview-plus/libs/function/color/simple-swizzle/index.js +29 -0
  239. package/uview-plus/libs/function/color/simple-swizzle/package.json +36 -0
  240. package/uview-plus/libs/function/colorGradient.js +108 -106
  241. package/uview-plus/libs/function/debounce.js +17 -17
  242. package/uview-plus/libs/function/digit.js +1 -3
  243. package/uview-plus/libs/function/http.js +3 -3
  244. package/uview-plus/libs/function/index-wu.js +231 -0
  245. package/uview-plus/libs/function/index.js +579 -566
  246. package/uview-plus/libs/function/platform.js +18 -18
  247. package/uview-plus/libs/function/test.js +135 -137
  248. package/uview-plus/libs/function/throttle.js +17 -17
  249. package/uview-plus/libs/luch-request/core/Request.js +199 -199
  250. package/uview-plus/libs/mixin/mpMixin.js +1 -0
  251. package/uview-plus/libs/mixin/openType.js +33 -0
  252. package/uview-plus/libs/util/async-validator.js +1343 -1343
  253. package/uview-plus/libs/util/dayjs.js +404 -0
  254. package/uview-plus/libs/util/route.js +101 -105
  255. package/uview-plus/package-wu-tool.json +84 -0
  256. package/uview-plus/package-wu.json +112 -0
  257. package/uview-plus/package.json +106 -95
  258. package/uview-plus/readme-wu.md +148 -0
  259. package/uview-ui/index.js +51 -52
  260. package/plugins/uni-upgrade.js +0 -294
@@ -0,0 +1,446 @@
1
+ <template>
2
+ <view class="fui-container">
3
+ <view class="fui-upload-box">
4
+ <view class="fui-image-item" v-for="(item, index) in imageList" :key="index">
5
+ <image :src="item" class="fui-item-img" @tap.stop="previewImage(index)" mode="aspectFill"></image>
6
+ <view v-if="!forbidDel" class="fui-img-del" @tap.stop="delImage(index)">
7
+ <image class="del-img" src="/static/images/share/icon_del.png" mode="widthFix"></image>
8
+ </view>
9
+ <view v-if="statusArr[index] != 1" class="fui-upload-mask">
10
+ <view class="fui-upload-loading" v-if="statusArr[index] == 2"></view>
11
+ <text class="fui-tips">{{ statusArr[index] == 2 ? '上传中...' : '上传失败' }}</text>
12
+ <view
13
+ class="fui-mask-btn"
14
+ v-if="statusArr[index] == 3"
15
+ @tap.stop="reUpLoad(index)"
16
+ hover-class="fui-btn-hover"
17
+ :hover-stay-time="150"
18
+ >
19
+ 重新上传
20
+ </view>
21
+ </view>
22
+ </view>
23
+ <view v-if="isShowAdd" class="fui-upload-add" @tap="chooseImage">
24
+ <uni-icons type="camera" size="30" color="#00AFC7"></uni-icons>
25
+ <view class="" style="font-size: 24rpx; margin-top: 20rpx">添加</view>
26
+ <!-- <image class="add-img" src="/static/images/share/ad.png" mode="widthFix"></image> -->
27
+ <!-- <view class="fui-upload-icon fui-icon-plus"></view> -->
28
+ </view>
29
+ </view>
30
+ </view>
31
+ </template>
32
+ <script>
33
+ export default {
34
+ name: 'fuiUpload',
35
+ props: {
36
+ //初始化图片路径
37
+ value: {
38
+ type: Array,
39
+ default() {
40
+ return [];
41
+ }
42
+ },
43
+ //禁用删除
44
+ forbidDel: {
45
+ type: Boolean,
46
+ default: false
47
+ },
48
+ //禁用添加
49
+ forbidAdd: {
50
+ type: Boolean,
51
+ default: false
52
+ },
53
+ //服务器地址
54
+ serverUrl: {
55
+ type: String,
56
+ default: ''
57
+ },
58
+ //限制数
59
+ limit: {
60
+ type: Number,
61
+ default: 9
62
+ },
63
+ //original 原图,compressed 压缩图,默认二者都有
64
+ sizeType: {
65
+ type: Array,
66
+ default() {
67
+ return ['original', 'compressed'];
68
+ }
69
+ },
70
+ //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
71
+ sourceType: {
72
+ type: Array,
73
+ default() {
74
+ return ['album', 'camera'];
75
+ }
76
+ },
77
+ //可上传图片类型,默认为空,不限制 Array<String> ['jpg','png','gif']
78
+ imageFormat: {
79
+ type: Array,
80
+ default() {
81
+ return [];
82
+ }
83
+ },
84
+ //单张图片大小限制 MB
85
+ size: {
86
+ type: Number,
87
+ default: 4
88
+ },
89
+ //项目名,默认为 file
90
+ fileKeyName: {
91
+ type: String,
92
+ default: 'file'
93
+ },
94
+ //HTTP 请求 Header, header 中不能设置 Referer。
95
+ header: {
96
+ type: Object,
97
+ default() {
98
+ return {};
99
+ }
100
+ },
101
+ //HTTP 请求中其他额外的 form data
102
+ formData: {
103
+ type: Object,
104
+ default() {
105
+ return {};
106
+ }
107
+ }
108
+ },
109
+ data() {
110
+ return {
111
+ //图片地址
112
+ imageList: [],
113
+ //上传状态:1-上传成功 2-上传中 3-上传失败
114
+ statusArr: []
115
+ };
116
+ },
117
+ created() {
118
+ this.initImages();
119
+ },
120
+ watch: {
121
+ value(val) {
122
+ console.log('监听', val);
123
+ if (val) {
124
+ this.initImages();
125
+ }
126
+ }
127
+ },
128
+ computed: {
129
+ isShowAdd() {
130
+ let isShow = true;
131
+ if (this.forbidAdd || (this.limit && this.imageList.length >= this.limit)) {
132
+ isShow = false;
133
+ }
134
+ return isShow;
135
+ }
136
+ },
137
+ methods: {
138
+ initImages() {
139
+ this.imageList = [...this.value];
140
+ for (let item of this.imageList) {
141
+ this.statusArr.push('1');
142
+ }
143
+ },
144
+ // 重新上传
145
+ reUpLoad(index) {
146
+ this.statusArr[index] = '2';
147
+ this.change();
148
+ this.uploadImage(index, this.imageList[index])
149
+ .then(() => {
150
+ this.change();
151
+ })
152
+ .catch(() => {
153
+ this.change();
154
+ });
155
+ },
156
+ change() {
157
+ let status = ~this.statusArr.indexOf('2') ? 2 : 1;
158
+ if (status != 2 && ~this.statusArr.indexOf('3')) {
159
+ // 上传失败
160
+ status = 3;
161
+ }
162
+ this.$emit('complete', {
163
+ status: status,
164
+ imgArr: this.imageList
165
+ });
166
+ },
167
+ chooseImage() {
168
+ uni.chooseImage({
169
+ count: this.limit - this.imageList.length,
170
+ sizeType: this.sizeType,
171
+ sourceType: this.sourceType,
172
+ success: (e) => {
173
+ let imageArr = [];
174
+ for (let i = 0; i < e.tempFiles.length; i++) {
175
+ let len = this.imageList.length;
176
+ if (len >= this.limit) {
177
+ this.showToast(`最多可上传${this.limit}张图片`);
178
+ break;
179
+ }
180
+ //过滤图片类型
181
+ let path = e.tempFiles[i].path;
182
+
183
+ if (this.imageFormat.length > 0) {
184
+ let format = '';
185
+ // #ifdef H5
186
+ let type = e.tempFiles[i].type;
187
+ format = type.split('/')[1];
188
+ // #endif
189
+
190
+ // #ifndef H5
191
+ format = path.split('.')[path.split('.').length - 1];
192
+ // #endif
193
+
194
+ if (this.imageFormat.indexOf(format) == -1) {
195
+ let text = `只能上传 ${this.imageFormat.join(',')} 格式图片!`;
196
+ this.showToast(text);
197
+ continue;
198
+ }
199
+ }
200
+
201
+ //过滤超出大小限制图片
202
+ let size = e.tempFiles[i].size;
203
+
204
+ if (this.size * 1024 * 1024 < size) {
205
+ let err = `单张图片大小不能超过:${this.size}MB`;
206
+ this.showToast(err);
207
+ continue;
208
+ }
209
+ imageArr.push(path);
210
+ this.imageList.push(path);
211
+ this.statusArr.push('2');
212
+ }
213
+ // this.change();
214
+
215
+ let start = this.imageList.length - imageArr.length;
216
+ for (let j = 0; j < imageArr.length; j++) {
217
+ let index = start + j;
218
+ //服务器地址
219
+ if (this.serverUrl) {
220
+ this.uploadImage(index, imageArr[j])
221
+ .then(() => {
222
+ this.change();
223
+ })
224
+ .catch(() => {
225
+ this.change();
226
+ });
227
+ } else {
228
+ //无服务器地址则直接返回成功
229
+ this.statusArr[index] = '1';
230
+ this.change();
231
+ }
232
+ }
233
+ }
234
+ });
235
+ },
236
+ // return httpObj.flagPost('API_FILE_FILE_UPLOAD', data)
237
+ uploadImage(index, url) {
238
+ return new Promise((resolve, reject) => {
239
+ uni.uploadFile({
240
+ url: this.serverUrl,
241
+ name: this.fileKeyName,
242
+ header: this.header,
243
+ formData: this.formData,
244
+ filePath: url,
245
+ success: (res) => {
246
+ console.log('上传后处理数据', res);
247
+ if (res.statusCode == 200) {
248
+ //返回结果 此处需要按接口实际返回进行修改
249
+ let d = JSON.parse(res.data.replace(/\ufeff/g, '') || '{}');
250
+ //判断code,以实际接口规范判断
251
+ if (d.code % 100 === 0) {
252
+ // 上传成功 d.url 为上传后图片地址,以实际接口返回为准
253
+ d.url && (this.imageList[index] = d.url);
254
+ this.statusArr[index] = d.url ? '1' : '3';
255
+ } else {
256
+ // 上传失败
257
+ this.statusArr[index] = '3';
258
+ }
259
+ resolve(index);
260
+ } else {
261
+ this.statusArr[index] = '3';
262
+
263
+ reject(index);
264
+ }
265
+ },
266
+ fail: (res) => {
267
+ this.statusArr[index] = '3';
268
+ reject(index);
269
+ }
270
+ });
271
+ });
272
+ },
273
+ delImage(index) {
274
+ this.imageList.splice(index, 1);
275
+ this.statusArr.splice(index, 1);
276
+ this.$emit('remove', {
277
+ index: index
278
+ });
279
+ this.change();
280
+ },
281
+ previewImage(index) {
282
+ if (!this.imageList.length) return;
283
+ uni.previewImage({
284
+ current: this.imageList[index],
285
+ loop: true,
286
+ urls: this.imageList
287
+ });
288
+ }
289
+ }
290
+ };
291
+ </script>
292
+
293
+ <style scoped>
294
+ @font-face {
295
+ font-family: 'fuiUpload';
296
+ src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAATcAA0AAAAAByQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEwAAAABoAAAAciR52BUdERUYAAASgAAAAHgAAAB4AKQALT1MvMgAAAaAAAABCAAAAVjxvR/tjbWFwAAAB+AAAAEUAAAFK5ibpuGdhc3AAAASYAAAACAAAAAj//wADZ2x5ZgAAAkwAAADXAAABAAmNjcZoZWFkAAABMAAAAC8AAAA2FpiS+WhoZWEAAAFgAAAAHQAAACQH3QOFaG10eAAAAeQAAAARAAAAEgwAACBsb2NhAAACQAAAAAwAAAAMAEoAgG1heHAAAAGAAAAAHwAAACABEgA2bmFtZQAAAyQAAAFJAAACiCnmEVVwb3N0AAAEcAAAACgAAAA6OMUs4HjaY2BkYGAAYo3boY/i+W2+MnCzMIDAzb3qdQj6fwPzf+YGIJeDgQkkCgA/KAtvAHjaY2BkYGBu+N/AEMPCAALM/xkYGVABCwBZ4wNrAAAAeNpjYGRgYGBl0GJgZgABJiDmAkIGhv9gPgMADTABSQB42mNgZGFgnMDAysDA1Ml0hoGBoR9CM75mMGLkAIoysDIzYAUBaa4pDA7PGJ9xMjf8b2CIYW5gaAAKM4LkANt9C+UAAHjaY2GAABYIVmBgAAAA+gAtAAAAeNpjYGBgZoBgGQZGBhBwAfIYwXwWBg0gzQakGRmYnjE+4/z/n4EBQksxSf6GqgcCRjYGOIeRCUgwMaACRoZhDwCiLwmoAAAAAAAAAAAAAAAASgCAeNpdjkFKw0AARf/vkIR0BkPayWRKQZtYY90ohJju2kOIbtz0KD1HVm50UfEmWXoAr9ADOHFARHHzeY//Fx8Ci+FJfIgdJFa4AhgiMshbrCuIsLxhFJZVs+Vl1bT1GddtbXTC3OhohN4dg4BJ3zMJAnccyfm468ZzHXddrH9ZKbHzdf9n/vkY/xv9sPQXgGEvBrHHwst5kTbXLE+YpYVPkxepPmW94W16UbdNJd6f3SAzo5W7m1jaKd+8ZZIvk5nlKw9SK6Wle7BLS3f/bTzQLmfAF2T1NsQAeNp9kD1OAzEQhZ/zByQSQiCoXVEA2vyUKRMp9Ailo0g23pBo1155nUg5AS0VB6DlGByAGyDRcgpelkmTImvt6PObmeexAZzjGwr/3yXuhBWO8ShcwREy4Sr1F+Ea+V24jhY+hRvUf4SbuFUD4RYu1BsdVO2Eu5vSbcsKZxgIV3CKJ+Eq9ZVwjfwqXMcVPoQb1L+EmxjjV7iFa2WpDOFhMEFgnEFjig3jAjEcLJIyBtahOfRmEsxMTzd6ETubOBso71dilwMeaDnngCntPbdmvkon/mDLgdSYbh4FS7YpjS4idCgbXyyc1d2oc7D9nu22tNi/a4E1x+xRDWzU/D3bM9JIbAyvkJI18jK3pBJTj2hrrPG7ZynW814IiU68y/SIx5o0dTr3bmniwOLn8owcfbS5kj33qBw+Y1kIeb/dTsQgil2GP5PYcRkAAAB42mNgYoAALjDJyIAOWMGiTIxMjMxsKak5qSWpbFmZiRmJ+QAmgAUIAAAAAf//AAIAAQAAAAwAAAAWAAAAAgABAAMABAABAAQAAAACAAAAAHjaY2BgYGQAgqtL1DlA9M296nUwGgA+8QYgAAA=)
297
+ format('woff');
298
+ font-weight: normal;
299
+ font-style: normal;
300
+ }
301
+
302
+ .fui-upload-icon {
303
+ font-family: 'fuiUpload' !important;
304
+ font-style: normal;
305
+ -webkit-font-smoothing: antialiased;
306
+ -moz-osx-font-smoothing: grayscale;
307
+ padding: 10rpx;
308
+ }
309
+
310
+ .fui-icon-delete:before {
311
+ content: '\e601';
312
+ }
313
+
314
+ .fui-icon-plus:before {
315
+ content: '\e609';
316
+ }
317
+
318
+ .fui-upload-box {
319
+ width: 100%;
320
+ display: flex;
321
+ flex-wrap: wrap;
322
+ }
323
+
324
+ .fui-upload-add {
325
+ /* width: 240rpx;
326
+ height: 240rpx; */
327
+ width: 178rpx;
328
+ height: 178rpx;
329
+ font-size: 68rpx;
330
+ font-weight: 100;
331
+ color: #888;
332
+ /* background-color: #fff; */
333
+ display: flex;
334
+ flex-direction: column;
335
+ align-items: center;
336
+ justify-content: center;
337
+ padding: 0;
338
+ border-radius: 18rpx;
339
+ }
340
+ .add-img {
341
+ width: 60rpx;
342
+ height: 140rpx;
343
+ }
344
+ .del-img {
345
+ width: 36rpx;
346
+ height: 36rpx;
347
+ }
348
+ .fui-image-item {
349
+ width: 178rpx;
350
+ height: 178rpx;
351
+ position: relative;
352
+ /* margin-right: 20rpx; */
353
+ margin-right: 10rpx;
354
+ margin-bottom: 20rpx;
355
+ border-radius: 18rpx;
356
+ }
357
+
358
+ .fui-image-item:nth-of-type(3n) {
359
+ margin-right: 0;
360
+ }
361
+
362
+ .fui-item-img {
363
+ width: 178rpx;
364
+ height: 178rpx;
365
+ display: block;
366
+ border-radius: 18rpx;
367
+ }
368
+
369
+ .fui-img-del {
370
+ width: 36rpx;
371
+ height: 36rpx;
372
+ position: absolute;
373
+ right: -12rpx;
374
+ top: -12rpx;
375
+ /* background-color: #333333; */
376
+ border-radius: 50%;
377
+ color: white;
378
+ font-size: 34rpx;
379
+ z-index: 999;
380
+ }
381
+
382
+ /* .fui-img-del::before {
383
+ content: '';
384
+ width: 16rpx;
385
+ height: 1px;
386
+ position: absolute;
387
+ left: 10rpx;
388
+ top: 18rpx;
389
+ background-color: #fff;
390
+ } */
391
+
392
+ .fui-upload-mask {
393
+ width: 100%;
394
+ height: 100%;
395
+ position: absolute;
396
+ left: 0;
397
+ top: 0;
398
+ display: flex;
399
+ flex-direction: column;
400
+ align-items: center;
401
+ justify-content: space-around;
402
+ padding: 40rpx 0;
403
+ box-sizing: border-box;
404
+ background-color: rgba(0, 0, 0, 0.6);
405
+ }
406
+
407
+ .fui-upload-loading {
408
+ width: 28rpx;
409
+ height: 28rpx;
410
+ border-radius: 50%;
411
+ border: 2px solid;
412
+ border-color: #b2b2b2 #b2b2b2 #b2b2b2 #fff;
413
+ animation: fui-rotate 0.7s linear infinite;
414
+ }
415
+
416
+ @keyframes fui-rotate {
417
+ 0% {
418
+ transform: rotate(0);
419
+ }
420
+
421
+ 100% {
422
+ transform: rotate(360deg);
423
+ }
424
+ }
425
+
426
+ .fui-tips {
427
+ font-size: 26rpx;
428
+ color: #fff;
429
+ }
430
+
431
+ .fui-mask-btn {
432
+ padding: 4rpx 16rpx;
433
+ border-radius: 40rpx;
434
+ text-align: center;
435
+ font-size: 24rpx;
436
+ color: #fff;
437
+ border: 1rpx solid #fff;
438
+ display: flex;
439
+ align-items: center;
440
+ justify-content: center;
441
+ }
442
+
443
+ .fui-btn-hover {
444
+ opacity: 0.8;
445
+ }
446
+ </style>