@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.
- package/package.json +1 -1
- package/plugins/luch-request/adapters/index.js +131 -0
- package/plugins/luch-request/core/InterceptorManager.js +50 -0
- package/plugins/luch-request/core/Request.js +199 -0
- package/plugins/luch-request/core/buildFullPath.js +20 -0
- package/plugins/luch-request/core/defaults.js +32 -0
- package/plugins/luch-request/core/dispatchRequest.js +5 -0
- package/plugins/luch-request/core/mergeConfig.js +125 -0
- package/plugins/luch-request/core/settle.js +16 -0
- package/plugins/luch-request/helpers/buildURL.js +71 -0
- package/plugins/luch-request/helpers/combineURLs.js +12 -0
- package/plugins/luch-request/helpers/isAbsoluteURL.js +14 -0
- package/plugins/luch-request/index.d.ts +197 -0
- package/plugins/luch-request/index.js +2 -0
- package/plugins/luch-request/readme.md +3 -0
- package/plugins/luch-request/utils/clone.js +264 -0
- package/plugins/luch-request/utils.js +131 -0
- package/plugins/request.js +2 -2
- package/ui-cv/components/cv-form-item/cv-form-item.vue +1 -1
- package/ui-fireui/fui-actionsheet/fui-actionsheet.vue +202 -0
- package/ui-fireui/fui-alert/fui-alert.vue +141 -0
- package/ui-fireui/fui-badge/fui-badge.vue +158 -0
- package/ui-fireui/fui-bottom-navigation/fui-bottom-navigation.vue +390 -0
- package/ui-fireui/fui-bottom-popup/fui-bottom-popup.vue +100 -0
- package/ui-fireui/fui-bubble-popup/fui-bubble-popup.vue +236 -0
- package/ui-fireui/fui-button/fui-button.vue +424 -0
- package/ui-fireui/fui-calendar/fui-calendar.js +915 -0
- package/ui-fireui/fui-calendar/fui-calendar.vue +868 -0
- package/ui-fireui/fui-card/fui-card.vue +231 -0
- package/ui-fireui/fui-cascade-selection/fui-cascade-selection.vue +538 -0
- package/ui-fireui/fui-circular-progress/fui-circular-progress.vue +261 -0
- package/ui-fireui/fui-collapse/fui-collapse.vue +179 -0
- package/ui-fireui/fui-countdown/fui-countdown.vue +301 -0
- package/ui-fireui/fui-datetime/fui-datetime.vue +570 -0
- package/ui-fireui/fui-divider/fui-divider.vue +118 -0
- package/ui-fireui/fui-drawer/fui-drawer.vue +103 -0
- package/ui-fireui/fui-dropdown-list/fui-dropdown-list.vue +70 -0
- package/ui-fireui/fui-fab/fui-fab.vue +284 -0
- package/ui-fireui/fui-footer/fui-footer.vue +131 -0
- package/ui-fireui/fui-grid/fui-grid.vue +42 -0
- package/ui-fireui/fui-grid-item/fui-grid-item.vue +142 -0
- package/ui-fireui/fui-icon/fui-icon.vue +820 -0
- package/ui-fireui/fui-image-cropper/fui-image-cropper.vue +1058 -0
- package/ui-fireui/fui-image-group/fui-image-group.vue +149 -0
- package/ui-fireui/fui-keyboard/fui-keyboard.vue +254 -0
- package/ui-fireui/fui-keyboard-input/fui-keyboard-input.vue +78 -0
- package/ui-fireui/fui-list-cell/fui-list-cell.vue +178 -0
- package/ui-fireui/fui-list-view/fui-list-view.vue +87 -0
- package/ui-fireui/fui-loading/fui-loading.vue +78 -0
- package/ui-fireui/fui-loadmore/fui-loadmore.vue +163 -0
- package/ui-fireui/fui-modal/fui-modal.vue +392 -0
- package/ui-fireui/fui-navigation-bar/fui-navigation-bar.vue +180 -0
- package/ui-fireui/fui-no-data/fui-no-data.vue +116 -0
- package/ui-fireui/fui-nomore/fui-nomore.vue +116 -0
- package/ui-fireui/fui-numberbox/fui-numberbox.vue +234 -0
- package/ui-fireui/fui-numberbox-border/fui-numberbox-border.vue +232 -0
- package/ui-fireui/fui-picture-cropper/fui-picture-cropper.vue +682 -0
- package/ui-fireui/fui-picture-cropper/fui-picture-cropper.wxs +560 -0
- package/ui-fireui/fui-rate/fui-rate.vue +167 -0
- package/ui-fireui/fui-round-progress/fui-round-progress.vue +306 -0
- package/ui-fireui/fui-scroll-top/fui-scroll-top.vue +189 -0
- package/ui-fireui/fui-sharemodel/fui-sharemodel.vue +181 -0
- package/ui-fireui/fui-skeleton/fui-skeleton.vue +248 -0
- package/ui-fireui/fui-steps/fui-steps.vue +214 -0
- package/ui-fireui/fui-sticky/fui-sticky.vue +155 -0
- package/ui-fireui/fui-sticky-wxs/fui-sticky-wxs.vue +133 -0
- package/ui-fireui/fui-sticky-wxs/fui-sticky.wxs +44 -0
- package/ui-fireui/fui-swipe-action/fui-swipe-action.vue +301 -0
- package/ui-fireui/fui-tabbar/fui-tabbar.vue +283 -0
- package/ui-fireui/fui-tabs/fui-tabs.vue +284 -0
- package/ui-fireui/fui-tabs2/fui-tabs2.vue +284 -0
- package/ui-fireui/fui-tag/fui-tag.vue +374 -0
- package/ui-fireui/fui-time-axis/fui-time-axis.vue +36 -0
- package/ui-fireui/fui-timeaxis-item/fui-timeaxis-item.vue +48 -0
- package/ui-fireui/fui-tips/fui-tips.vue +161 -0
- package/ui-fireui/fui-toast/fui-toast.vue +117 -0
- package/ui-fireui/fui-top-dropdown/fui-top-dropdown.vue +129 -0
- package/ui-fireui/fui-upload/fui-upload.vue +446 -0
- package/ui-fireui/fui-uploadsamll/fui-uploadsamll.vue +472 -0
- package/uview-plus/README.md +1 -1
- package/uview-plus/changelog-wu-tool.md +21 -0
- package/uview-plus/changelog-wu.md +91 -0
- package/uview-plus/components/u-action-sheet/_doc/changelog.md +12 -0
- package/uview-plus/components/u-action-sheet/_doc/package.json +92 -0
- package/uview-plus/components/u-action-sheet/_doc/readme.md +16 -0
- package/uview-plus/components/u-app-update/_doc/changelog.md +26 -0
- package/uview-plus/components/u-app-update/_doc/package.json +89 -0
- package/uview-plus/components/u-app-update/_doc/readme.md +16 -0
- package/uview-plus/components/u-app-update/config.js +120 -0
- package/uview-plus/components/u-app-update/img/act.png +0 -0
- package/uview-plus/components/u-app-update/img/appUploadAlertBoxBg.png +0 -0
- package/uview-plus/components/u-app-update/img/close.png +0 -0
- package/uview-plus/components/u-app-update/js-sdk/checkVersion.js +81 -0
- package/uview-plus/components/u-app-update/js-sdk/silentlyAppUpdate.js +41 -0
- package/uview-plus/components/u-app-update/pages/index.vue +8 -0
- package/uview-plus/components/u-app-update/u-app-update.vue +583 -0
- package/uview-plus/components/u-button-wu/_doc/changelog.md +6 -0
- package/uview-plus/components/u-button-wu/_doc/package.json +89 -0
- package/uview-plus/components/u-button-wu/_doc/readme.md +16 -0
- package/uview-plus/components/u-button-wu/u-button-wu.vue +522 -0
- package/uview-plus/components/u-button-wu/vue.scss +81 -0
- package/uview-plus/components/u-calendar-wu/_doc/changelog.md +145 -0
- package/uview-plus/components/u-calendar-wu/_doc/package.json +90 -0
- package/uview-plus/components/u-calendar-wu/_doc/readme.md +16 -0
- package/uview-plus/components/u-calendar-wu/calendar.js +664 -0
- package/uview-plus/components/u-calendar-wu/i18n/en.json +14 -0
- package/uview-plus/components/u-calendar-wu/i18n/index.js +8 -0
- package/uview-plus/components/u-calendar-wu/i18n/zh-Hans.json +14 -0
- package/uview-plus/components/u-calendar-wu/i18n/zh-Hant.json +14 -0
- package/uview-plus/components/u-calendar-wu/props.js +166 -0
- package/uview-plus/components/u-calendar-wu/style.css +196 -0
- package/uview-plus/components/u-calendar-wu/u-calendar-wu.vue +921 -0
- package/uview-plus/components/u-calendar-wu/util.js +552 -0
- package/uview-plus/components/u-calendar-wu/wu-calendar-block/props.js +73 -0
- package/uview-plus/components/u-calendar-wu/wu-calendar-block/wu-calendar-block.vue +122 -0
- package/uview-plus/components/u-calendar-wu/wu-calendar-item/props.js +55 -0
- package/uview-plus/components/u-calendar-wu/wu-calendar-item/wu-calendar-item.vue +293 -0
- package/uview-plus/components/u-cell/_doc/changelog.md +6 -0
- package/uview-plus/components/u-cell/_doc/package.json +89 -0
- package/uview-plus/components/u-cell/_doc/readme.md +25 -0
- package/uview-plus/components/u-checkbox/_doc/changelog.md +8 -0
- package/uview-plus/components/u-checkbox/_doc/package.json +88 -0
- package/uview-plus/components/u-checkbox/_doc/readme.md +25 -0
- package/uview-plus/components/u-code/_doc/changelog.md +6 -0
- package/uview-plus/components/u-code/_doc/package.json +86 -0
- package/uview-plus/components/u-code/_doc/readme.md +16 -0
- package/uview-plus/components/u-drag-sort/_doc/changelog.md +0 -0
- package/uview-plus/components/u-drag-sort/_doc/package.json +85 -0
- package/uview-plus/components/u-drag-sort/_doc/readme.md +16 -0
- package/uview-plus/components/u-drag-sort/u-drag-sort.vue +3 -0
- package/uview-plus/components/u-empty/u-empty.vue +27 -1
- package/uview-plus/components/u-gap/_doc/changelog.md +4 -0
- package/uview-plus/components/u-gap/_doc/package.json +86 -0
- package/uview-plus/components/u-gap/_doc/readme.md +22 -0
- package/uview-plus/components/u-icon/_doc/changelog.md +10 -0
- package/uview-plus/components/u-icon/_doc/package.json +85 -0
- package/uview-plus/components/u-icon/_doc/readme.md +10 -0
- package/uview-plus/components/u-icon/icon.js +23 -25
- package/uview-plus/components/u-icon/icons.js +213 -213
- package/uview-plus/components/u-icon/style.css +3 -3
- package/uview-plus/components/u-icon/u-icon2.vue +149 -0
- package/uview-plus/components/u-image-wu/_doc/changelog.md +21 -0
- package/uview-plus/components/u-image-wu/_doc/package.json +88 -0
- package/uview-plus/components/u-image-wu/_doc/readme.md +11 -0
- package/uview-plus/components/u-image-wu/props.js +94 -0
- package/uview-plus/components/u-image-wu/u-image-wu.vue +243 -0
- package/uview-plus/components/u-input/_doc/changelog.md +6 -0
- package/uview-plus/components/u-input/_doc/package.json +88 -0
- package/uview-plus/components/u-input/_doc/readme.md +16 -0
- package/uview-plus/components/u-line/_doc/changelog.md +8 -0
- package/uview-plus/components/u-line/_doc/package.json +86 -0
- package/uview-plus/components/u-line/_doc/readme.md +16 -0
- package/uview-plus/components/u-link/_doc/changelog.md +8 -0
- package/uview-plus/components/u-link/_doc/package.json +86 -0
- package/uview-plus/components/u-link/_doc/readme.md +20 -0
- package/uview-plus/components/u-loading-icon/_doc/changelog.md +12 -0
- package/uview-plus/components/u-loading-icon/_doc/package.json +86 -0
- package/uview-plus/components/u-loading-icon/_doc/readme.md +16 -0
- package/uview-plus/components/u-loading-icon/props.js +1 -1
- package/uview-plus/components/u-navbar/_doc/changelog.md +6 -0
- package/uview-plus/components/u-navbar/_doc/package.json +89 -0
- package/uview-plus/components/u-navbar/_doc/readme.md +16 -0
- package/uview-plus/components/u-navbar-wu/props.js +102 -0
- package/uview-plus/components/u-navbar-wu/u-navbar-wu.vue +196 -0
- package/uview-plus/components/u-number-box/_doc/changelog.md +19 -0
- package/uview-plus/components/u-number-box/_doc/package.json +88 -0
- package/uview-plus/components/u-number-box/_doc/readme.md +16 -0
- package/uview-plus/components/u-overlay/_doc/changelog.md +4 -0
- package/uview-plus/components/u-overlay/_doc/package.json +88 -0
- package/uview-plus/components/u-overlay/_doc/readme.md +16 -0
- package/uview-plus/components/u-popup/_doc/changelog.md +4 -0
- package/uview-plus/components/u-popup/_doc/package.json +92 -0
- package/uview-plus/components/u-popup/_doc/readme.md +16 -0
- package/uview-plus/components/u-popup-wu/keypress.js +45 -0
- package/uview-plus/components/u-popup-wu/u-popup-wu.vue +519 -0
- package/uview-plus/components/u-radio/_doc/changelog.md +6 -0
- package/uview-plus/components/u-radio/_doc/package.json +88 -0
- package/uview-plus/components/u-radio/_doc/readme.md +25 -0
- package/uview-plus/components/u-row/_doc/changelog.md +8 -0
- package/uview-plus/components/u-row/_doc/package.json +86 -0
- package/uview-plus/components/u-row/_doc/readme.md +16 -0
- package/uview-plus/components/u-safe-bottom/_doc/changelog.md +6 -0
- package/uview-plus/components/u-safe-bottom/_doc/package.json +86 -0
- package/uview-plus/components/u-safe-bottom/_doc/readme.md +16 -0
- package/uview-plus/components/u-sku-wu/_doc/changelog.md +27 -0
- package/uview-plus/components/u-sku-wu/_doc/package.json +93 -0
- package/uview-plus/components/u-sku-wu/_doc/readme.md +16 -0
- package/uview-plus/components/u-sku-wu/props.js +86 -0
- package/uview-plus/components/u-sku-wu/style.css +271 -0
- package/uview-plus/components/u-sku-wu/u-sku-wu.vue +864 -0
- package/uview-plus/components/u-status-bar/_doc/changelog.md +4 -0
- package/uview-plus/components/u-status-bar/_doc/package.json +86 -0
- package/uview-plus/components/u-status-bar/_doc/readme.md +16 -0
- package/uview-plus/components/u-text/_doc/changelog.md +10 -0
- package/uview-plus/components/u-text/_doc/package.json +89 -0
- package/uview-plus/components/u-text/_doc/readme.md +20 -0
- package/uview-plus/components/u-textarea/_doc/changelog.md +6 -0
- package/uview-plus/components/u-textarea/_doc/package.json +86 -0
- package/uview-plus/components/u-textarea/_doc/readme.md +25 -0
- package/uview-plus/components/u-transition/_doc/changelog.md +14 -0
- package/uview-plus/components/u-transition/_doc/package.json +86 -0
- package/uview-plus/components/u-transition/_doc/readme.md +16 -0
- package/uview-plus/components/u-transition-wu/createAnimation.js +148 -0
- package/uview-plus/components/u-transition-wu/props.js +32 -0
- package/uview-plus/components/u-transition-wu/u-transition.vue +300 -0
- package/uview-plus/components/u-verification-code/u-verification-code.vue +161 -0
- package/uview-plus/index.js +107 -94
- package/uview-plus/libs/config/config.js +46 -48
- package/uview-plus/libs/css/color.scss +32 -311
- package/uview-plus/libs/css/components-wu.scss +30 -0
- package/uview-plus/libs/css/vue.scss +10 -10
- package/uview-plus/libs/function/calc.js +61 -55
- package/uview-plus/libs/function/cc.js +66 -0
- package/uview-plus/libs/function/color/color-convert/CHANGELOG.md +54 -0
- package/uview-plus/libs/function/color/color-convert/LICENSE +21 -0
- package/uview-plus/libs/function/color/color-convert/README.md +68 -0
- package/uview-plus/libs/function/color/color-convert/conversions.js +839 -0
- package/uview-plus/libs/function/color/color-convert/index.js +81 -0
- package/uview-plus/libs/function/color/color-convert/package.json +48 -0
- package/uview-plus/libs/function/color/color-convert/route.js +97 -0
- package/uview-plus/libs/function/color/color-name/LICENSE +8 -0
- package/uview-plus/libs/function/color/color-name/README.md +11 -0
- package/uview-plus/libs/function/color/color-name/index.js +152 -0
- package/uview-plus/libs/function/color/color-name/package.json +28 -0
- package/uview-plus/libs/function/color/color-string/LICENSE +21 -0
- package/uview-plus/libs/function/color/color-string/README.md +62 -0
- package/uview-plus/libs/function/color/color-string/index.js +244 -0
- package/uview-plus/libs/function/color/color-string/package.json +39 -0
- package/uview-plus/libs/function/color/color.js +496 -0
- package/uview-plus/libs/function/color/index.js +158 -0
- package/uview-plus/libs/function/color/is-arrayish/LICENSE +21 -0
- package/uview-plus/libs/function/color/is-arrayish/README.md +16 -0
- package/uview-plus/libs/function/color/is-arrayish/index.js +9 -0
- package/uview-plus/libs/function/color/is-arrayish/package.json +45 -0
- package/uview-plus/libs/function/color/is-arrayish/yarn-error.log +1443 -0
- package/uview-plus/libs/function/color/simple-swizzle/LICENSE +21 -0
- package/uview-plus/libs/function/color/simple-swizzle/README.md +39 -0
- package/uview-plus/libs/function/color/simple-swizzle/index.js +29 -0
- package/uview-plus/libs/function/color/simple-swizzle/package.json +36 -0
- package/uview-plus/libs/function/colorGradient.js +108 -106
- package/uview-plus/libs/function/debounce.js +17 -17
- package/uview-plus/libs/function/digit.js +1 -3
- package/uview-plus/libs/function/http.js +3 -3
- package/uview-plus/libs/function/index-wu.js +231 -0
- package/uview-plus/libs/function/index.js +579 -566
- package/uview-plus/libs/function/platform.js +18 -18
- package/uview-plus/libs/function/test.js +135 -137
- package/uview-plus/libs/function/throttle.js +17 -17
- package/uview-plus/libs/luch-request/core/Request.js +199 -199
- package/uview-plus/libs/mixin/mpMixin.js +1 -0
- package/uview-plus/libs/mixin/openType.js +33 -0
- package/uview-plus/libs/util/async-validator.js +1343 -1343
- package/uview-plus/libs/util/dayjs.js +404 -0
- package/uview-plus/libs/util/route.js +101 -105
- package/uview-plus/package-wu-tool.json +84 -0
- package/uview-plus/package-wu.json +112 -0
- package/uview-plus/package.json +106 -95
- package/uview-plus/readme-wu.md +148 -0
- package/uview-ui/index.js +51 -52
- package/plugins/uni-upgrade.js +0 -294
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<view class="fui-circular-container" :style="{ width: diam + 'px', height: (height || diam) + 'px' }">
|
|
3
|
+
<canvas
|
|
4
|
+
class="fui-circular-default"
|
|
5
|
+
:canvas-id="defaultCanvasId"
|
|
6
|
+
:id="defaultCanvasId"
|
|
7
|
+
:style="{ width: diam + 'px', height: (height || diam) + 'px' }"
|
|
8
|
+
v-if="defaultShow"
|
|
9
|
+
></canvas>
|
|
10
|
+
<canvas
|
|
11
|
+
class="fui-circular-progress"
|
|
12
|
+
:canvas-id="progressCanvasId"
|
|
13
|
+
:id="progressCanvasId"
|
|
14
|
+
:style="{ width: diam + 'px', height: (height || diam) + 'px' }"
|
|
15
|
+
></canvas>
|
|
16
|
+
<slot />
|
|
17
|
+
</view>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
export default {
|
|
22
|
+
name: 'fuiCircularProgress',
|
|
23
|
+
props: {
|
|
24
|
+
/*
|
|
25
|
+
传值需使用rpx进行转换保证各终端兼容
|
|
26
|
+
px = rpx / 750 * wx.getSystemInfoSync().windowWidth
|
|
27
|
+
圆形进度条(画布)宽度,直径 [px]
|
|
28
|
+
*/
|
|
29
|
+
diam: {
|
|
30
|
+
type: Number,
|
|
31
|
+
default: 60
|
|
32
|
+
},
|
|
33
|
+
//圆形进度条(画布)高度,默认取diam值[当画半弧时传值,height有值时则取height]
|
|
34
|
+
height: {
|
|
35
|
+
type: Number,
|
|
36
|
+
default: 0
|
|
37
|
+
},
|
|
38
|
+
//进度条线条宽度[px]
|
|
39
|
+
lineWidth: {
|
|
40
|
+
type: Number,
|
|
41
|
+
default: 4
|
|
42
|
+
},
|
|
43
|
+
/*
|
|
44
|
+
线条的端点样式
|
|
45
|
+
butt:向线条的每个末端添加平直的边缘
|
|
46
|
+
round 向线条的每个末端添加圆形线帽
|
|
47
|
+
square 向线条的每个末端添加正方形线帽
|
|
48
|
+
*/
|
|
49
|
+
lineCap: {
|
|
50
|
+
type: String,
|
|
51
|
+
default: 'round'
|
|
52
|
+
},
|
|
53
|
+
//圆环进度字体大小 [px]
|
|
54
|
+
fontSize: {
|
|
55
|
+
type: Number,
|
|
56
|
+
default: 12
|
|
57
|
+
},
|
|
58
|
+
//圆环进度字体颜色
|
|
59
|
+
fontColor: {
|
|
60
|
+
type: String,
|
|
61
|
+
default: '#5677fc'
|
|
62
|
+
},
|
|
63
|
+
//是否显示进度文字
|
|
64
|
+
fontShow: {
|
|
65
|
+
type: Boolean,
|
|
66
|
+
default: true
|
|
67
|
+
},
|
|
68
|
+
/*
|
|
69
|
+
自定义显示文字[默认为空,显示百分比,fontShow=true时生效]
|
|
70
|
+
可以使用 slot自定义显示内容
|
|
71
|
+
*/
|
|
72
|
+
percentText: {
|
|
73
|
+
type: String,
|
|
74
|
+
default: ''
|
|
75
|
+
},
|
|
76
|
+
//是否显示默认(背景)进度条
|
|
77
|
+
defaultShow: {
|
|
78
|
+
type: Boolean,
|
|
79
|
+
default: true
|
|
80
|
+
},
|
|
81
|
+
//默认进度条颜色
|
|
82
|
+
defaultColor: {
|
|
83
|
+
type: String,
|
|
84
|
+
default: '#CCC'
|
|
85
|
+
},
|
|
86
|
+
//进度条颜色
|
|
87
|
+
progressColor: {
|
|
88
|
+
type: String,
|
|
89
|
+
default: '#5677fc'
|
|
90
|
+
},
|
|
91
|
+
//进度条渐变颜色[结合progressColor使用,默认为空]
|
|
92
|
+
gradualColor: {
|
|
93
|
+
type: String,
|
|
94
|
+
default: ''
|
|
95
|
+
},
|
|
96
|
+
//起始弧度,单位弧度
|
|
97
|
+
sAngle: {
|
|
98
|
+
type: Number,
|
|
99
|
+
default: -Math.PI / 2
|
|
100
|
+
},
|
|
101
|
+
//指定弧度的方向是逆时针还是顺时针。默认是false,即顺时针
|
|
102
|
+
counterclockwise: {
|
|
103
|
+
type: Boolean,
|
|
104
|
+
default: false
|
|
105
|
+
},
|
|
106
|
+
//进度百分比 [10% 传值 10]
|
|
107
|
+
percentage: {
|
|
108
|
+
type: Number,
|
|
109
|
+
default: 0
|
|
110
|
+
},
|
|
111
|
+
//进度百分比缩放倍数[使用半弧为100%时,则可传2]
|
|
112
|
+
multiple: {
|
|
113
|
+
type: Number,
|
|
114
|
+
default: 1
|
|
115
|
+
},
|
|
116
|
+
//动画执行时间[单位毫秒,低于50无动画]
|
|
117
|
+
duration: {
|
|
118
|
+
type: Number,
|
|
119
|
+
default: 800
|
|
120
|
+
},
|
|
121
|
+
//backwards: 动画从头播;forwards:动画从上次结束点接着播
|
|
122
|
+
activeMode: {
|
|
123
|
+
type: String,
|
|
124
|
+
default: 'backwards'
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
watch: {
|
|
128
|
+
percentage(val) {
|
|
129
|
+
this.initDraw();
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
data() {
|
|
133
|
+
return {
|
|
134
|
+
// #ifdef MP-WEIXIN
|
|
135
|
+
progressCanvasId: 'progressCanvasId',
|
|
136
|
+
defaultCanvasId: 'defaultCanvasId',
|
|
137
|
+
// #endif
|
|
138
|
+
// #ifndef MP-WEIXIN
|
|
139
|
+
progressCanvasId: this.getCanvasId(),
|
|
140
|
+
defaultCanvasId: this.getCanvasId(),
|
|
141
|
+
// #endif
|
|
142
|
+
progressContext: null,
|
|
143
|
+
linearGradient: null,
|
|
144
|
+
//起始百分比
|
|
145
|
+
startPercentage: 0
|
|
146
|
+
// dpi
|
|
147
|
+
//pixelRatio: uni.getSystemInfoSync().pixelRatio
|
|
148
|
+
};
|
|
149
|
+
},
|
|
150
|
+
mounted() {
|
|
151
|
+
this.initDraw(true);
|
|
152
|
+
},
|
|
153
|
+
methods: {
|
|
154
|
+
//初始化绘制
|
|
155
|
+
initDraw(init) {
|
|
156
|
+
let start = this.activeMode === 'backwards' ? 0 : this.startPercentage;
|
|
157
|
+
if (this.defaultShow && init) {
|
|
158
|
+
this.drawDefaultCircular();
|
|
159
|
+
}
|
|
160
|
+
this.drawProgressCircular(start);
|
|
161
|
+
},
|
|
162
|
+
//默认(背景)圆环
|
|
163
|
+
drawDefaultCircular() {
|
|
164
|
+
let ctx = uni.createCanvasContext(this.defaultCanvasId, this);
|
|
165
|
+
ctx.setLineWidth(this.lineWidth);
|
|
166
|
+
ctx.setStrokeStyle(this.defaultColor);
|
|
167
|
+
//终止弧度
|
|
168
|
+
let eAngle = Math.PI * (this.height ? 1 : 2) + this.sAngle;
|
|
169
|
+
this.drawArc(ctx, eAngle);
|
|
170
|
+
},
|
|
171
|
+
//进度圆环
|
|
172
|
+
drawProgressCircular(startPercentage) {
|
|
173
|
+
let ctx = this.progressContext;
|
|
174
|
+
let gradient = this.linearGradient;
|
|
175
|
+
if (!ctx) {
|
|
176
|
+
ctx = uni.createCanvasContext(this.progressCanvasId, this);
|
|
177
|
+
//创建一个线性的渐变颜色 CanvasGradient对象
|
|
178
|
+
gradient = ctx.createLinearGradient(0, 0, this.diam, 0);
|
|
179
|
+
gradient.addColorStop('0', this.progressColor);
|
|
180
|
+
if (this.gradualColor) {
|
|
181
|
+
gradient.addColorStop('1', this.gradualColor);
|
|
182
|
+
}
|
|
183
|
+
this.progressContext = ctx;
|
|
184
|
+
this.linearGradient = gradient;
|
|
185
|
+
}
|
|
186
|
+
ctx.setLineWidth(this.lineWidth);
|
|
187
|
+
ctx.setStrokeStyle(gradient);
|
|
188
|
+
let time = this.duration / this.percentage;
|
|
189
|
+
if (this.percentage > 0 || !this.fontShow) {
|
|
190
|
+
startPercentage = this.duration < 50 ? this.percentage - 1 : startPercentage;
|
|
191
|
+
startPercentage++;
|
|
192
|
+
if (startPercentage > this.percentage) {
|
|
193
|
+
this.$emit('end', {
|
|
194
|
+
canvasId: this.progressCanvasId
|
|
195
|
+
});
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (this.fontShow) {
|
|
200
|
+
ctx.setFontSize(this.fontSize);
|
|
201
|
+
ctx.setFillStyle(this.fontColor);
|
|
202
|
+
ctx.setTextAlign('center');
|
|
203
|
+
ctx.setTextBaseline('middle');
|
|
204
|
+
let percentage = this.percentText;
|
|
205
|
+
if (!percentage) {
|
|
206
|
+
percentage = this.counterclockwise ? 100 - startPercentage * this.multiple : startPercentage * this.multiple;
|
|
207
|
+
percentage = `${percentage}%`;
|
|
208
|
+
}
|
|
209
|
+
let radius = this.diam / 2;
|
|
210
|
+
ctx.fillText(percentage, radius, radius);
|
|
211
|
+
if (this.percentage === 0 || (this.counterclockwise && startPercentage === 100)) {
|
|
212
|
+
ctx.draw();
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
let eAngle = ((2 * Math.PI) / 100) * startPercentage + this.sAngle;
|
|
217
|
+
this.drawArc(ctx, eAngle);
|
|
218
|
+
setTimeout(() => {
|
|
219
|
+
this.startPercentage = startPercentage;
|
|
220
|
+
this.drawProgressCircular(startPercentage);
|
|
221
|
+
this.$emit('change', {
|
|
222
|
+
percentage: startPercentage
|
|
223
|
+
});
|
|
224
|
+
}, time);
|
|
225
|
+
// #ifdef H5
|
|
226
|
+
// requestAnimationFrame(()=>{})
|
|
227
|
+
// #endif
|
|
228
|
+
},
|
|
229
|
+
//创建弧线
|
|
230
|
+
drawArc(ctx, eAngle) {
|
|
231
|
+
ctx.setLineCap(this.lineCap);
|
|
232
|
+
ctx.beginPath();
|
|
233
|
+
let radius = this.diam / 2; //x=y
|
|
234
|
+
ctx.arc(radius, radius, radius - this.lineWidth, this.sAngle, eAngle, this.counterclockwise);
|
|
235
|
+
ctx.stroke();
|
|
236
|
+
ctx.draw();
|
|
237
|
+
},
|
|
238
|
+
//生成canvasId
|
|
239
|
+
getCanvasId() {
|
|
240
|
+
let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
241
|
+
return (c === 'x' ? (Math.random() * 16) | 0 : 'r&0x3' | '0x8').toString(16);
|
|
242
|
+
});
|
|
243
|
+
return uuid;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
</script>
|
|
248
|
+
|
|
249
|
+
<style scoped>
|
|
250
|
+
.fui-circular-container,
|
|
251
|
+
.fui-circular-default {
|
|
252
|
+
position: relative;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.fui-circular-progress {
|
|
256
|
+
position: absolute;
|
|
257
|
+
left: 0;
|
|
258
|
+
top: 0;
|
|
259
|
+
z-index: 10;
|
|
260
|
+
}
|
|
261
|
+
</style>
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<view
|
|
3
|
+
class="fui-collapse"
|
|
4
|
+
style="margin-left: 20upx; margin-right: 20upx; border-radius: 11upx"
|
|
5
|
+
:style="{ backgroundColor: bgColor }"
|
|
6
|
+
>
|
|
7
|
+
<view class="fui-collapse-head" :style="{ backgroundColor: hdBgColor }" @tap.stop="handleClick">
|
|
8
|
+
<view class="fui-header" :class="{ 'fui-opacity': disabled }">
|
|
9
|
+
<slot name="title"></slot>
|
|
10
|
+
<view
|
|
11
|
+
class="fui-collapse-icon fui-icon-arrow"
|
|
12
|
+
:class="{ 'fui-icon-active': isOpen }"
|
|
13
|
+
:style="{ color: arrowColor }"
|
|
14
|
+
v-if="arrow"
|
|
15
|
+
></view>
|
|
16
|
+
</view>
|
|
17
|
+
</view>
|
|
18
|
+
<view class="fui-collapse-body_box" :style="{ backgroundColor: bdBgColor, height: isOpen ? height : '0rpx' }">
|
|
19
|
+
<view
|
|
20
|
+
class="fui-collapse-body"
|
|
21
|
+
:class="{ 'fui-collapse-transform': height == 'auto', 'fui-collapse-body_show': isOpen && height == 'auto' }"
|
|
22
|
+
>
|
|
23
|
+
<slot name="content"></slot>
|
|
24
|
+
</view>
|
|
25
|
+
</view>
|
|
26
|
+
</view>
|
|
27
|
+
</template>
|
|
28
|
+
|
|
29
|
+
<script>
|
|
30
|
+
export default {
|
|
31
|
+
name: 'fuiCollapse',
|
|
32
|
+
props: {
|
|
33
|
+
//collapse背景颜色
|
|
34
|
+
bgColor: {
|
|
35
|
+
type: String,
|
|
36
|
+
default: 'transparent'
|
|
37
|
+
},
|
|
38
|
+
//collapse-head 背景颜色
|
|
39
|
+
hdBgColor: {
|
|
40
|
+
type: String,
|
|
41
|
+
default: '#fff'
|
|
42
|
+
},
|
|
43
|
+
//collapse-body 背景颜色
|
|
44
|
+
bdBgColor: {
|
|
45
|
+
type: String,
|
|
46
|
+
default: 'transparent'
|
|
47
|
+
},
|
|
48
|
+
//collapse-body实际高度 open时使用
|
|
49
|
+
height: {
|
|
50
|
+
type: String,
|
|
51
|
+
default: 'auto'
|
|
52
|
+
},
|
|
53
|
+
//索引
|
|
54
|
+
index: {
|
|
55
|
+
type: Number,
|
|
56
|
+
default: 0
|
|
57
|
+
},
|
|
58
|
+
//当前索引,index==current时展开
|
|
59
|
+
current: {
|
|
60
|
+
type: Number,
|
|
61
|
+
default: -1
|
|
62
|
+
},
|
|
63
|
+
// 是否禁用
|
|
64
|
+
disabled: {
|
|
65
|
+
type: [Boolean, String],
|
|
66
|
+
default: false
|
|
67
|
+
},
|
|
68
|
+
//是否带箭头
|
|
69
|
+
arrow: {
|
|
70
|
+
type: [Boolean, String],
|
|
71
|
+
default: true
|
|
72
|
+
},
|
|
73
|
+
//箭头颜色
|
|
74
|
+
arrowColor: {
|
|
75
|
+
type: String,
|
|
76
|
+
default: '#333'
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
watch: {
|
|
80
|
+
current() {
|
|
81
|
+
this.updateCurrentChange();
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
created() {
|
|
85
|
+
this.updateCurrentChange();
|
|
86
|
+
},
|
|
87
|
+
data() {
|
|
88
|
+
return {
|
|
89
|
+
isOpen: false
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
methods: {
|
|
93
|
+
updateCurrentChange() {
|
|
94
|
+
this.isOpen = this.index == this.current;
|
|
95
|
+
},
|
|
96
|
+
handleClick() {
|
|
97
|
+
if (this.disabled) return;
|
|
98
|
+
this.$emit('click', {
|
|
99
|
+
index: Number(this.index)
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
</script>
|
|
105
|
+
|
|
106
|
+
<style scoped>
|
|
107
|
+
@font-face {
|
|
108
|
+
font-family: 'fuiCollapse';
|
|
109
|
+
src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAQ4AA0AAAAABlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEHAAAABoAAAAciRx3B0dERUYAAAP8AAAAHgAAAB4AKQAKT1MvMgAAAaAAAABCAAAAVjxuR/JjbWFwAAAB9AAAAD4AAAFCAA/pq2dhc3AAAAP0AAAACAAAAAj//wADZ2x5ZgAAAkAAAABEAAAARCs1U/toZWFkAAABMAAAADAAAAA2FpaT+mhoZWEAAAFgAAAAHQAAACQHngOFaG10eAAAAeQAAAAPAAAAEAwAAEBsb2NhAAACNAAAAAoAAAAKACIAAG1heHAAAAGAAAAAHwAAACABDwAdbmFtZQAAAoQAAAFJAAACiCnmEVVwb3N0AAAD0AAAACMAAAA1DunpUnjaY2BkYGAAYja/oO54fpuvDNwsDCBwc4/6fzjtwNDNfICpBMjlYGACiQIAGVAKZnjaY2BkYGBu+N/AEMPCAALMBxgYGVABCwBVNgMsAAAAeNpjYGRgYGBhEGQA0QwMTEDMBYQMDP/BfAYACnYBLQB42mNgZGFgnMDAysDA1Ml0hoGBoR9CM75mMGLkAIoysDIzYAUBaa4pDA7PGJ4xMDf8b2CIYW5gaAAKM4LkANq9C9sAAHjaY2GAABYIdgAAAMAATQB42mNgYGBmgGAZBkYGELAB8hjBfBYGBSDNAoRA/jOG//8hpBQzVCUDIxsDjMnAyAQkmBhQASPDsAcAMCAGoQAAAAAAAAAAAAAAIgAAAAEAQACLA8ACdAAQAAAlASYiBhQXARYyNwE2NCYiBwIA/oYNIBkMAZcNIA0BlwwZIA3uAXoMGSAN/mkMDAGXDSAZDAB42n2QPU4DMRCFn/MHJBJCIKhdUQDa/JQpEyn0CKWjSDbekGjXXnmdSDkBLRUHoOUYHIAbINFyCl6WSZMia+3o85uZ57EBnOMbCv/fJe6EFY7xKFzBETLhKvUX4Rr5XbiOFj6FG9R/hJu4VQPhFi7UGx1U7YS7m9JtywpnGAhXcIon4Sr1lXCN/CpcxxU+hBvUv4SbGONXuIVrZakM4WEwQWCcQWOKDeMCMRwskjIG1qE59GYSzExPN3oRO5s4GyjvV2KXAx5oOeeAKe09t2a+Sif+YMuB1JhuHgVLtimNLiJ0KBtfLJzV3ahzsP2e7ba02L9rgTXH7FENbNT8Pdsz0khsDK+QkjXyMrekElOPaGus8btnKdbzXgiJTrzL9IjHmjR1OvduaeLA4ufyjBx9tLmSPfeoHD5jWQh5v91OxCCKXYY/k9hxGQAAAHjaY2BigAAuMMnIgA5YwKJMjExciUVF+eW6KfnleQAZ0wQyAAAAAAH//wACAAEAAAAMAAAAFgAAAAIAAQADAAMAAQAEAAAAAgAAAAB42mNgYGBkAIKrS9Q5QPTNPer/YTQAQ+0HIAAA)
|
|
110
|
+
format('woff');
|
|
111
|
+
font-weight: normal;
|
|
112
|
+
font-style: normal;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.fui-collapse-icon {
|
|
116
|
+
font-family: 'fuiCollapse' !important;
|
|
117
|
+
font-style: normal;
|
|
118
|
+
-webkit-font-smoothing: antialiased;
|
|
119
|
+
-moz-osx-font-smoothing: grayscale;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.fui-icon-arrow:before {
|
|
123
|
+
content: '\e600';
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.fui-icon-arrow {
|
|
127
|
+
font-size: 32rpx;
|
|
128
|
+
transform: rotate(0);
|
|
129
|
+
transform-origin: center center;
|
|
130
|
+
transition: all 0.3s;
|
|
131
|
+
position: absolute;
|
|
132
|
+
top: 50%;
|
|
133
|
+
margin-top: -8px;
|
|
134
|
+
right: 30rpx;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.fui-arrow-padding {
|
|
138
|
+
padding-right: 62rpx;
|
|
139
|
+
box-sizing: border-box;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.fui-icon-active {
|
|
143
|
+
transform: rotate(180deg);
|
|
144
|
+
transform-origin: center center;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.fui-header {
|
|
148
|
+
position: relative;
|
|
149
|
+
z-index: 2;
|
|
150
|
+
}
|
|
151
|
+
.fui-collapse-body_box {
|
|
152
|
+
transition: all 0.25s;
|
|
153
|
+
overflow: hidden;
|
|
154
|
+
}
|
|
155
|
+
.fui-collapse-body {
|
|
156
|
+
transition: all 0.25s;
|
|
157
|
+
overflow: hidden;
|
|
158
|
+
position: relative;
|
|
159
|
+
z-index: 1;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.fui-collapse-transform {
|
|
163
|
+
opacity: 0;
|
|
164
|
+
visibility: hidden;
|
|
165
|
+
-webkit-transform: translateY(-40%);
|
|
166
|
+
transform: translateY(-40%);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.fui-collapse-body_show {
|
|
170
|
+
opacity: 1;
|
|
171
|
+
visibility: visible;
|
|
172
|
+
-webkit-transform: translateY(0);
|
|
173
|
+
transform: translateY(0);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.fui-opacity {
|
|
177
|
+
opacity: 0.6;
|
|
178
|
+
}
|
|
179
|
+
</style>
|