From 0439d9197406a07a31bf2e13fa2987a94348ef0c Mon Sep 17 00:00:00 2001 From: tangxinyue <524779910@qq.com> Date: Wed, 14 Jan 2026 18:56:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E9=A6=96=E9=A1=B580?= =?UTF-8?q?%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 176 ++++- components/balance-list/balance-list.vue | 77 +- package-lock.json | 8 +- package.json | 3 +- pages.json | 14 +- pages/balance/index.vue | 9 +- pages/bill/add-bill/add-bill.vue | 15 +- pages/bill/bill-detail/bill-detail.vue | 14 +- pages/bill/bill-list/bill-list.vue | 30 +- pages/index/index.nvue | 395 ++++++++++ pages/index/index.vue | 3 - static/image/index/alipay-year-bill.png | Bin 0 -> 37268 bytes static/image/index/hot-icon.png | Bin 0 -> 2554 bytes static/image/index/index-bg.png | Bin 0 -> 170534 bytes static/image/index/lifetime-vip-bg.png | Bin 0 -> 42385 bytes static/image/index/menu-icon/huabei.png | Bin 0 -> 11380 bytes static/image/index/menu-icon/licaiheika.png | Bin 0 -> 10151 bytes static/image/index/menu-icon/yuemoni.png | Bin 0 -> 11770 bytes .../index/menu-icon/zhangdanshencheng.png | Bin 0 -> 10602 bytes static/image/index/menu-name/huabei.png | Bin 0 -> 2672 bytes static/image/index/menu-name/licaiheika.png | Bin 0 -> 3730 bytes static/image/index/menu-name/yuemoni.png | Bin 0 -> 5965 bytes .../index/menu-name/zhangdanshencheng.png | Bin 0 -> 4751 bytes static/image/index/monixiaobao.png | Bin 0 -> 5379 bytes static/image/index/no-vip-bg.png | Bin 0 -> 15749 bytes static/image/index/open-vip-btn.png | Bin 0 -> 3000 bytes static/image/index/shipingjiaocheng.png | Bin 0 -> 6112 bytes static/image/index/vip-bg.png | Bin 0 -> 74864 bytes static/image/index/vip-btn.png | Bin 0 -> 6362 bytes static/image/index/vip-logo.png | Bin 0 -> 2519 bytes uni_modules/uv-ui-tools/changelog.md | 76 ++ .../components/uv-ui-tools/uv-ui-tools.vue | 6 + uni_modules/uv-ui-tools/index.js | 79 ++ uni_modules/uv-ui-tools/index.scss | 7 + uni_modules/uv-ui-tools/libs/config/config.js | 34 + uni_modules/uv-ui-tools/libs/css/color.scss | 32 + uni_modules/uv-ui-tools/libs/css/common.scss | 100 +++ .../uv-ui-tools/libs/css/components.scss | 23 + .../uv-ui-tools/libs/css/variable.scss | 111 +++ uni_modules/uv-ui-tools/libs/css/vue.scss | 40 + .../libs/function/colorGradient.js | 134 ++++ .../uv-ui-tools/libs/function/debounce.js | 29 + .../uv-ui-tools/libs/function/digit.js | 167 ++++ .../uv-ui-tools/libs/function/index.js | 734 ++++++++++++++++++ .../uv-ui-tools/libs/function/platform.js | 75 ++ uni_modules/uv-ui-tools/libs/function/test.js | 287 +++++++ .../uv-ui-tools/libs/function/throttle.js | 30 + .../libs/luch-request/adapters/index.js | 132 ++++ .../luch-request/core/InterceptorManager.js | 51 ++ .../libs/luch-request/core/Request.js | 201 +++++ .../libs/luch-request/core/buildFullPath.js | 20 + .../libs/luch-request/core/defaults.js | 33 + .../libs/luch-request/core/dispatchRequest.js | 6 + .../libs/luch-request/core/mergeConfig.js | 126 +++ .../libs/luch-request/core/settle.js | 16 + .../libs/luch-request/helpers/buildURL.js | 64 ++ .../libs/luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + .../uv-ui-tools/libs/luch-request/index.d.ts | 197 +++++ .../uv-ui-tools/libs/luch-request/index.js | 2 + .../uv-ui-tools/libs/luch-request/utils.js | 135 ++++ .../libs/luch-request/utils/clone.js | 264 +++++++ uni_modules/uv-ui-tools/libs/mixin/button.js | 13 + uni_modules/uv-ui-tools/libs/mixin/mixin.js | 172 ++++ uni_modules/uv-ui-tools/libs/mixin/mpMixin.js | 8 + uni_modules/uv-ui-tools/libs/mixin/mpShare.js | 13 + .../uv-ui-tools/libs/mixin/openType.js | 47 ++ uni_modules/uv-ui-tools/libs/mixin/touch.js | 59 ++ uni_modules/uv-ui-tools/libs/util/dayjs.js | 216 ++++++ uni_modules/uv-ui-tools/libs/util/route.js | 126 +++ uni_modules/uv-ui-tools/package.json | 81 ++ uni_modules/uv-ui-tools/readme.md | 23 + uni_modules/uv-ui-tools/theme.scss | 43 + utils/common.js | 52 +- utils/requests.js | 434 +++++++++++ vite.config.js | 32 + 76 files changed, 5245 insertions(+), 57 deletions(-) create mode 100644 pages/index/index.nvue delete mode 100644 pages/index/index.vue create mode 100644 static/image/index/alipay-year-bill.png create mode 100644 static/image/index/hot-icon.png create mode 100644 static/image/index/index-bg.png create mode 100644 static/image/index/lifetime-vip-bg.png create mode 100644 static/image/index/menu-icon/huabei.png create mode 100644 static/image/index/menu-icon/licaiheika.png create mode 100644 static/image/index/menu-icon/yuemoni.png create mode 100644 static/image/index/menu-icon/zhangdanshencheng.png create mode 100644 static/image/index/menu-name/huabei.png create mode 100644 static/image/index/menu-name/licaiheika.png create mode 100644 static/image/index/menu-name/yuemoni.png create mode 100644 static/image/index/menu-name/zhangdanshencheng.png create mode 100644 static/image/index/monixiaobao.png create mode 100644 static/image/index/no-vip-bg.png create mode 100644 static/image/index/open-vip-btn.png create mode 100644 static/image/index/shipingjiaocheng.png create mode 100644 static/image/index/vip-bg.png create mode 100644 static/image/index/vip-btn.png create mode 100644 static/image/index/vip-logo.png create mode 100644 uni_modules/uv-ui-tools/changelog.md create mode 100644 uni_modules/uv-ui-tools/components/uv-ui-tools/uv-ui-tools.vue create mode 100644 uni_modules/uv-ui-tools/index.js create mode 100644 uni_modules/uv-ui-tools/index.scss create mode 100644 uni_modules/uv-ui-tools/libs/config/config.js create mode 100644 uni_modules/uv-ui-tools/libs/css/color.scss create mode 100644 uni_modules/uv-ui-tools/libs/css/common.scss create mode 100644 uni_modules/uv-ui-tools/libs/css/components.scss create mode 100644 uni_modules/uv-ui-tools/libs/css/variable.scss create mode 100644 uni_modules/uv-ui-tools/libs/css/vue.scss create mode 100644 uni_modules/uv-ui-tools/libs/function/colorGradient.js create mode 100644 uni_modules/uv-ui-tools/libs/function/debounce.js create mode 100644 uni_modules/uv-ui-tools/libs/function/digit.js create mode 100644 uni_modules/uv-ui-tools/libs/function/index.js create mode 100644 uni_modules/uv-ui-tools/libs/function/platform.js create mode 100644 uni_modules/uv-ui-tools/libs/function/test.js create mode 100644 uni_modules/uv-ui-tools/libs/function/throttle.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/core/Request.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/core/settle.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/index.d.ts create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/index.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/utils.js create mode 100644 uni_modules/uv-ui-tools/libs/luch-request/utils/clone.js create mode 100644 uni_modules/uv-ui-tools/libs/mixin/button.js create mode 100644 uni_modules/uv-ui-tools/libs/mixin/mixin.js create mode 100644 uni_modules/uv-ui-tools/libs/mixin/mpMixin.js create mode 100644 uni_modules/uv-ui-tools/libs/mixin/mpShare.js create mode 100644 uni_modules/uv-ui-tools/libs/mixin/openType.js create mode 100644 uni_modules/uv-ui-tools/libs/mixin/touch.js create mode 100644 uni_modules/uv-ui-tools/libs/util/dayjs.js create mode 100644 uni_modules/uv-ui-tools/libs/util/route.js create mode 100644 uni_modules/uv-ui-tools/package.json create mode 100644 uni_modules/uv-ui-tools/readme.md create mode 100644 uni_modules/uv-ui-tools/theme.scss create mode 100644 utils/requests.js create mode 100644 vite.config.js diff --git a/App.vue b/App.vue index 8eb6334..0fba810 100644 --- a/App.vue +++ b/App.vue @@ -1,13 +1,185 @@ diff --git a/components/balance-list/balance-list.vue b/components/balance-list/balance-list.vue index 26bb53d..de701d2 100644 --- a/components/balance-list/balance-list.vue +++ b/components/balance-list/balance-list.vue @@ -6,23 +6,44 @@ @touchstart="handleTouchStart($event, item)" @touchmove="handleTouchMove" @touchend="handleTouchEnd"> - + {{ item.name }} - {{ item.classification }} - {{ item.time }} - - {{ item.isAdd ? '+' : '-' }}{{ Number(item.money).toFixed(2) }} - 已全额退款 - 余额 {{ + + + + + + {{ item.classification }} + + + {{ tag }} + + ... + + + + {{ item.time }} + + + + 已全额退款 + 余额 + {{ Number(item.balance).toFixed(2) - }} + }}元 + + + @@ -119,6 +140,7 @@ onMounted(() => { }) .balance-item-text-container { flex: 1; display: flex; + flex-direction: column; justify-content: space-between; margin-left: 12px; position: relative; @@ -147,8 +169,8 @@ onMounted(() => { }) .balance-item-text { display: flex; - flex-direction: column; - // justify-content: space-between; + justify-content: space-between; + text-align: left; .name { font-size: 28rpx; @@ -163,8 +185,6 @@ onMounted(() => { }) .secondary { color: var(--text-secondary); font-size: 24rpx; - margin-top: 14rpx; - } .money { @@ -189,6 +209,26 @@ onMounted(() => { }) .balance-text { margin-right: 2px; } + + .bill-classify { + text-align: left; + } + + .item-box { + margin-top: 14rpx; + } + + .tag-container { + display: flex; + align-items: flex-end; + + .text-omit { + color: #969696; + font-size: 24rpx; + } + } + + } @@ -199,7 +239,16 @@ onMounted(() => { }) } .text-right { - align-items: flex-end; + align-items: flex-start; + } + + .tag-item { + background-color: #E6F2FF; + color: #2788D1; + font-size: 22rpx; + padding: 4rpx 8rpx; + border-radius: 4rpx; + margin-right: 8rpx; } } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 27e3257..423c194 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,8 @@ "dependencies": { "@dcloudio/uni-app": "^2.0.2-4080720251210002", "@dcloudio/uni-cli-shared": "^2.0.2-4080720251210002", - "@dcloudio/uni-ui": "^1.5.11" + "@dcloudio/uni-ui": "^1.5.11", + "crypto-js": "^4.2.0" }, "devDependencies": { "less": "^4.5.1", @@ -116,6 +117,11 @@ "url": "https://github.com/sponsors/mesqueeb" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", diff --git a/package.json b/package.json index da78e11..37e992e 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "dependencies": { "@dcloudio/uni-app": "^2.0.2-4080720251210002", "@dcloudio/uni-cli-shared": "^2.0.2-4080720251210002", - "@dcloudio/uni-ui": "^1.5.11" + "@dcloudio/uni-ui": "^1.5.11", + "crypto-js": "^4.2.0" } } diff --git a/pages.json b/pages.json index 0e6bfeb..ed8b450 100644 --- a/pages.json +++ b/pages.json @@ -1,6 +1,13 @@ { "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "uni-app", + "navigationStyle": "custom" + } + }, { "path": "pages/balance/index", "style": { @@ -9,13 +16,6 @@ "navigationBarTextStyle": "white" } }, - { - "path": "pages/index/index", - "style": { - "navigationBarTitleText": "uni-app", - "navigationStyle": "custom" - } - }, { "path": "pages/bill/bill-list/bill-list", "style": { diff --git a/pages/balance/index.vue b/pages/balance/index.vue index 0acafea..1711c0e 100644 --- a/pages/balance/index.vue +++ b/pages/balance/index.vue @@ -4,7 +4,7 @@ + \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue deleted file mode 100644 index 3652aa2..0000000 --- a/pages/index/index.vue +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/static/image/index/alipay-year-bill.png b/static/image/index/alipay-year-bill.png new file mode 100644 index 0000000000000000000000000000000000000000..28520c7b73aec9beb75bb814fbdb24defba60019 GIT binary patch literal 37268 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 LNkvXXu0mjfo_eb^ literal 0 HcmV?d00001 diff --git a/static/image/index/hot-icon.png b/static/image/index/hot-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..51cb93b2bc877669a0bf2ab662339e196cc9f729 GIT binary patch literal 2554 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 Q(EtDd07*qoM6N<$g5luGEC2ui literal 0 HcmV?d00001 diff --git a/static/image/index/index-bg.png b/static/image/index/index-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..85f9c5598b50aaf21d810a6a8913988dbada1dd1 GIT binary patch literal 170534 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

ab2-g-IXEge7EC6oV%3ja%u3$Tp9 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%0AX9 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 literal 0 HcmV?d00001 diff --git a/static/image/index/menu-icon/zhangdanshencheng.png b/static/image/index/menu-icon/zhangdanshencheng.png new file mode 100644 index 0000000000000000000000000000000000000000..752d1da16a5e236133968db9df453fba9c02f79d GIT binary patch literal 10602 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 Ef{^`sSO5S3 literal 0 HcmV?d00001 diff --git a/static/image/index/menu-name/huabei.png b/static/image/index/menu-name/huabei.png new file mode 100644 index 0000000000000000000000000000000000000000..13976661cb267fd5da0a80eb2f32a072fd8ad2a1 GIT binary patch literal 2672 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 A3jhEB literal 0 HcmV?d00001 diff --git a/static/image/index/menu-name/yuemoni.png b/static/image/index/menu-name/yuemoni.png new file mode 100644 index 0000000000000000000000000000000000000000..b7116d8a460f1c286a15259d598f17d994154913 GIT binary patch literal 5965 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 aE|w)WWSsbUH1nIB#mvYWTx;O*`2PSR_ldIr literal 0 HcmV?d00001 diff --git a/static/image/index/menu-name/zhangdanshencheng.png b/static/image/index/menu-name/zhangdanshencheng.png new file mode 100644 index 0000000000000000000000000000000000000000..ab6d35ca746b5dabae4c605886b584c8a38070a3 GIT binary patch literal 4751 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 WA)0Gi-pQls)GdTLyhiWgi~j*6v~t$~ literal 0 HcmV?d00001 diff --git a/static/image/index/monixiaobao.png b/static/image/index/monixiaobao.png new file mode 100644 index 0000000000000000000000000000000000000000..d07bcd654afac893ee8fb4935b4a7e4a8d4868fc GIT binary patch literal 5379 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 literal 0 HcmV?d00001 diff --git a/static/image/index/open-vip-btn.png b/static/image/index/open-vip-btn.png new file mode 100644 index 0000000000000000000000000000000000000000..812ace8cb17ad845c744666dd758f7da6e931c6f GIT binary patch literal 3000 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 m|Hz*+^8f$<21!IgR09AEH_{CdFZ|;G0000P literal 0 HcmV?d00001 diff --git a/static/image/index/vip-bg.png b/static/image/index/vip-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..5d8b9adcc62fe257d347b3cb92732debf410b526 GIT binary patch literal 74864 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 JPDHLkV1gP`m@fbT literal 0 HcmV?d00001 diff --git a/static/image/index/vip-btn.png b/static/image/index/vip-btn.png new file mode 100644 index 0000000000000000000000000000000000000000..67f3160f8e24c2a2edb7df7ae1ea656327e1bd85 GIT binary patch literal 6362 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 + + + diff --git a/uni_modules/uv-ui-tools/index.js b/uni_modules/uv-ui-tools/index.js new file mode 100644 index 0000000..71a8b66 --- /dev/null +++ b/uni_modules/uv-ui-tools/index.js @@ -0,0 +1,79 @@ +// 全局挂载引入http相关请求拦截插件 +import Request from './libs/luch-request' + +// 引入全局mixin +import mixin from './libs/mixin/mixin.js' +// 小程序特有的mixin +import mpMixin from './libs/mixin/mpMixin.js' +// #ifdef MP +import mpShare from './libs/mixin/mpShare.js' +// #endif + +// 路由封装 +import route from './libs/util/route.js' +// 公共工具函数 +import * as index from './libs/function/index.js' +// 防抖方法 +import debounce from './libs/function/debounce.js' +// 节流方法 +import throttle from './libs/function/throttle.js' +// 规则检验 +import * as test from './libs/function/test.js' + +// 颜色渐变相关,colorGradient-颜色渐变,hexToRgb-十六进制颜色转rgb颜色,rgbToHex-rgb转十六进制 +import * as colorGradient from './libs/function/colorGradient.js' + +// 配置信息 +import config from './libs/config/config.js' +// 平台 +import platform from './libs/function/platform' + +const $uv = { + route, + config, + test, + date: index.timeFormat, // 另名date + ...index, + colorGradient: colorGradient.colorGradient, + hexToRgb: colorGradient.hexToRgb, + rgbToHex: colorGradient.rgbToHex, + colorToRgba: colorGradient.colorToRgba, + http: new Request(), + debounce, + throttle, + platform, + mixin, + mpMixin +} +uni.$uv = $uv; +const install = (Vue,options={}) => { + // #ifndef APP-NVUE + const cloneMixin = index.deepClone(mixin); + delete cloneMixin?.props?.customClass; + delete cloneMixin?.props?.customStyle; + Vue.mixin(cloneMixin); + // #ifdef MP + if(options.mpShare){ + Vue.mixin(mpShare); + } + // #endif + // #endif + // #ifdef VUE2 + // 时间格式化,同时两个名称,date和timeFormat + Vue.filter('timeFormat', (timestamp, format) => uni.$uv.timeFormat(timestamp, format)); + Vue.filter('date', (timestamp, format) => uni.$uv.timeFormat(timestamp, format)); + // 将多久以前的方法,注入到全局过滤器 + Vue.filter('timeFrom', (timestamp, format) => uni.$uv.timeFrom(timestamp, format)); + // 同时挂载到uni和Vue.prototype中 + // #ifndef APP-NVUE + // 只有vue,挂载到Vue.prototype才有意义,因为nvue中全局Vue.prototype和Vue.mixin是无效的 + Vue.prototype.$uv = $uv; + // #endif + // #endif + // #ifdef VUE3 + Vue.config.globalProperties.$uv = $uv; + // #endif +} +export default { + install +} \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/index.scss b/uni_modules/uv-ui-tools/index.scss new file mode 100644 index 0000000..8d05b8d --- /dev/null +++ b/uni_modules/uv-ui-tools/index.scss @@ -0,0 +1,7 @@ +// 引入公共基础类 +@import "./libs/css/common.scss"; + +// 非nvue的样式 +/* #ifndef APP-NVUE */ +@import "./libs/css/vue.scss"; +/* #endif */ \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/libs/config/config.js b/uni_modules/uv-ui-tools/libs/config/config.js new file mode 100644 index 0000000..f18ae74 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/config/config.js @@ -0,0 +1,34 @@ +// 此版本发布于2024-01-20 +const version = '1.1.20' + +// 开发环境才提示,生产环境不会提示 +if (process.env.NODE_ENV === 'development') { + console.log(`\n %c uvui V${version} https://www.uvui.cn/ \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px;'); +} + +export default { + v: version, + version, + // 主题名称 + type: [ + 'primary', + 'success', + 'info', + 'error', + 'warning' + ], + // 颜色部分,本来可以通过scss的:export导出供js使用,但是奈何nvue不支持 + color: { + 'uv-primary': '#2979ff', + 'uv-warning': '#ff9900', + 'uv-success': '#19be6b', + 'uv-error': '#fa3534', + 'uv-info': '#909399', + 'uv-main-color': '#303133', + 'uv-content-color': '#606266', + 'uv-tips-color': '#909399', + 'uv-light-color': '#c0c4cc' + }, + // 默认单位,可以通过配置为rpx,那么在用于传入组件大小参数为数值时,就默认为rpx + unit: 'px' +} diff --git a/uni_modules/uv-ui-tools/libs/css/color.scss b/uni_modules/uv-ui-tools/libs/css/color.scss new file mode 100644 index 0000000..ce65743 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/css/color.scss @@ -0,0 +1,32 @@ +$uv-main-color: #303133 !default; +$uv-content-color: #606266 !default; +$uv-tips-color: #909193 !default; +$uv-light-color: #c0c4cc !default; +$uv-border-color: #dadbde !default; +$uv-bg-color: #f3f4f6 !default; +$uv-disabled-color: #c8c9cc !default; + +$uv-primary: #3c9cff !default; +$uv-primary-dark: #398ade !default; +$uv-primary-disabled: #9acafc !default; +$uv-primary-light: #ecf5ff !default; + +$uv-warning: #f9ae3d !default; +$uv-warning-dark: #f1a532 !default; +$uv-warning-disabled: #f9d39b !default; +$uv-warning-light: #fdf6ec !default; + +$uv-success: #5ac725 !default; +$uv-success-dark: #53c21d !default; +$uv-success-disabled: #a9e08f !default; +$uv-success-light: #f5fff0; + +$uv-error: #f56c6c !default; +$uv-error-dark: #e45656 !default; +$uv-error-disabled: #f7b2b2 !default; +$uv-error-light: #fef0f0 !default; + +$uv-info: #909399 !default; +$uv-info-dark: #767a82 !default; +$uv-info-disabled: #c4c6c9 !default; +$uv-info-light: #f4f4f5 !default; diff --git a/uni_modules/uv-ui-tools/libs/css/common.scss b/uni_modules/uv-ui-tools/libs/css/common.scss new file mode 100644 index 0000000..7ab99f8 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/css/common.scss @@ -0,0 +1,100 @@ +// 超出行数,自动显示行尾省略号,最多5行 +// 来自uvui的温馨提示:当您在控制台看到此报错,说明需要在App.vue的style标签加上【lang="scss"】 +@for $i from 1 through 5 { + .uv-line-#{$i} { + /* #ifdef APP-NVUE */ + // nvue下,可以直接使用lines属性,这是weex特有样式 + lines: $i; + text-overflow: ellipsis; + overflow: hidden; + flex: 1; + /* #endif */ + + /* #ifndef APP-NVUE */ + // vue下,单行和多行显示省略号需要单独处理 + @if $i == '1' { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } @else { + display: -webkit-box!important; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + -webkit-line-clamp: $i; + -webkit-box-orient: vertical!important; + } + /* #endif */ + } +} +$uv-bordercolor: #dadbde; +@if variable-exists(uv-border-color) { + $uv-bordercolor: $uv-border-color; +} + +// 此处加上!important并非随意乱用,而是因为目前*.nvue页面编译到H5时, +// App.vue的样式会被uni-app的view元素的自带border属性覆盖,导致无效 +// 综上,这是uni-app的缺陷导致我们为了多端兼容,而必须要加上!important +// 移动端兼容性较好,直接使用0.5px去实现细边框,不使用伪元素形式实现 +.uv-border { + border-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-style: solid; +} + +.uv-border-top { + border-top-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-top-style: solid; +} + +.uv-border-left { + border-left-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-left-style: solid; +} + +.uv-border-right { + border-right-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-right-style: solid; +} + +.uv-border-bottom { + border-bottom-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-bottom-style: solid; +} + +.uv-border-top-bottom { + border-top-width: 0.5px!important; + border-bottom-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-top-style: solid; + border-bottom-style: solid; +} + +// 去除button的所有默认样式,让其表现跟普通的view、text元素一样 +.uv-reset-button { + padding: 0; + background-color: transparent; + /* #ifndef APP-PLUS */ + font-size: inherit; + line-height: inherit; + color: inherit; + /* #endif */ + /* #ifdef APP-NVUE */ + border-width: 0; + /* #endif */ +} + +/* #ifndef APP-NVUE */ +.uv-reset-button::after { + border: none; +} +/* #endif */ + +.uv-hover-class { + opacity: 0.7; +} + diff --git a/uni_modules/uv-ui-tools/libs/css/components.scss b/uni_modules/uv-ui-tools/libs/css/components.scss new file mode 100644 index 0000000..81ce15d --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/css/components.scss @@ -0,0 +1,23 @@ +@mixin flex($direction: row) { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: $direction; +} + +/* #ifndef APP-NVUE */ +// 由于uvui是基于nvue环境进行开发的,此环境中普通元素默认为flex-direction: column; +// 所以在非nvue中,需要对元素进行重置为flex-direction: column; 否则可能会表现异常 +$uvui-nvue-style: true !default; +@if $uvui-nvue-style == true { + view, scroll-view, swiper-item { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; + } +} +/* #endif */ diff --git a/uni_modules/uv-ui-tools/libs/css/variable.scss b/uni_modules/uv-ui-tools/libs/css/variable.scss new file mode 100644 index 0000000..63903c9 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/css/variable.scss @@ -0,0 +1,111 @@ +// 超出行数,自动显示行尾省略号,最多5行 +// 来自uvui的温馨提示:当您在控制台看到此报错,说明需要在App.vue的style标签加上【lang="scss"】 +@if variable-exists(show-lines) { + @for $i from 1 through 5 { + .uv-line-#{$i} { + /* #ifdef APP-NVUE */ + // nvue下,可以直接使用lines属性,这是weex特有样式 + lines: $i; + text-overflow: ellipsis; + overflow: hidden; + flex: 1; + /* #endif */ + + /* #ifndef APP-NVUE */ + // vue下,单行和多行显示省略号需要单独处理 + @if $i == '1' { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } @else { + display: -webkit-box!important; + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + -webkit-line-clamp: $i; + -webkit-box-orient: vertical!important; + } + /* #endif */ + } + } +} +@if variable-exists(show-border) { + $uv-bordercolor: #dadbde; + @if variable-exists(uv-border-color) { + $uv-bordercolor: $uv-border-color; + } + // 此处加上!important并非随意乱用,而是因为目前*.nvue页面编译到H5时, + // App.vue的样式会被uni-app的view元素的自带border属性覆盖,导致无效 + // 综上,这是uni-app的缺陷导致我们为了多端兼容,而必须要加上!important + // 移动端兼容性较好,直接使用0.5px去实现细边框,不使用伪元素形式实现 + @if variable-exists(show-border-surround) { + .uv-border { + border-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-style: solid; + } + } + @if variable-exists(show-border-top) { + .uv-border-top { + border-top-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-top-style: solid; + } + } + @if variable-exists(show-border-left) { + .uv-border-left { + border-left-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-left-style: solid; + } + } + @if variable-exists(show-border-right) { + .uv-border-right { + border-right-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-right-style: solid; + } + } + @if variable-exists(show-border-bottom) { + .uv-border-bottom { + border-bottom-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-bottom-style: solid; + } + } + @if variable-exists(show-border-top-bottom) { + .uv-border-top-bottom { + border-top-width: 0.5px!important; + border-bottom-width: 0.5px!important; + border-color: $uv-bordercolor!important; + border-top-style: solid; + border-bottom-style: solid; + } + } +} +@if variable-exists(show-reset-button) { + // 去除button的所有默认样式,让其表现跟普通的view、text元素一样 + .uv-reset-button { + padding: 0; + background-color: transparent; + /* #ifndef APP-PLUS */ + font-size: inherit; + line-height: inherit; + color: inherit; + /* #endif */ + /* #ifdef APP-NVUE */ + border-width: 0; + /* #endif */ + } + + /* #ifndef APP-NVUE */ + .uv-reset-button::after { + border: none; + } + /* #endif */ +} +@if variable-exists(show-hover) { + .uv-hover-class { + opacity: 0.7; + } +} diff --git a/uni_modules/uv-ui-tools/libs/css/vue.scss b/uni_modules/uv-ui-tools/libs/css/vue.scss new file mode 100644 index 0000000..bdbefdd --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/css/vue.scss @@ -0,0 +1,40 @@ +// 历遍生成4个方向的底部安全区 +@each $d in top, right, bottom, left { + .uv-safe-area-inset-#{$d} { + padding-#{$d}: 0; + padding-#{$d}: constant(safe-area-inset-#{$d}); + padding-#{$d}: env(safe-area-inset-#{$d}); + } +} + +//提升H5端uni.toast()的层级,避免被uvui的modal等遮盖 +/* #ifdef H5 */ +uni-toast { + z-index: 10090; +} +uni-toast .uni-toast { + z-index: 10090; +} +/* #endif */ + +// 隐藏scroll-view的滚动条 +::-webkit-scrollbar { + display: none; + width: 0 !important; + height: 0 !important; + -webkit-appearance: none; + background: transparent; +} + +$uvui-nvue-style: true !default; +@if $uvui-nvue-style == false { + view, scroll-view, swiper-item { + display: flex; + flex-direction: column; + flex-shrink: 0; + flex-grow: 0; + flex-basis: auto; + align-items: stretch; + align-content: flex-start; + } +} diff --git a/uni_modules/uv-ui-tools/libs/function/colorGradient.js b/uni_modules/uv-ui-tools/libs/function/colorGradient.js new file mode 100644 index 0000000..55c188f --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/function/colorGradient.js @@ -0,0 +1,134 @@ +/** + * 求两个颜色之间的渐变值 + * @param {string} startColor 开始的颜色 + * @param {string} endColor 结束的颜色 + * @param {number} step 颜色等分的份额 + * */ +function colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) { + const startRGB = hexToRgb(startColor, false) // 转换为rgb数组模式 + const startR = startRGB[0] + const startG = startRGB[1] + const startB = startRGB[2] + + const endRGB = hexToRgb(endColor, false) + const endR = endRGB[0] + const endG = endRGB[1] + const endB = endRGB[2] + + const sR = (endR - startR) / step // 总差值 + const sG = (endG - startG) / step + const sB = (endB - startB) / step + const colorArr = [] + for (let i = 0; i < step; i++) { + // 计算每一步的hex值 + let hex = rgbToHex(`rgb(${Math.round((sR * i + startR))},${Math.round((sG * i + startG))},${Math.round((sB + * i + startB))})`) + // 确保第一个颜色值为startColor的值 + if (i === 0) hex = rgbToHex(startColor) + // 确保最后一个颜色值为endColor的值 + if (i === step - 1) hex = rgbToHex(endColor) + colorArr.push(hex) + } + return colorArr +} + +// 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式) +function hexToRgb(sColor, str = true) { + const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/ + sColor = String(sColor).toLowerCase() + if (sColor && reg.test(sColor)) { + if (sColor.length === 4) { + let sColorNew = '#' + for (let i = 1; i < 4; i += 1) { + sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)) + } + sColor = sColorNew + } + // 处理六位的颜色值 + const sColorChange = [] + for (let i = 1; i < 7; i += 2) { + sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`)) + } + if (!str) { + return sColorChange + } + return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})` + } if (/^(rgb|RGB)/.test(sColor)) { + const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',') + return arr.map((val) => Number(val)) + } + return sColor +} + +// 将rgb表示方式转换为hex表示方式 +function rgbToHex(rgb) { + const _this = rgb + const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/ + if (/^(rgb|RGB)/.test(_this)) { + const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',') + let strHex = '#' + for (let i = 0; i < aColor.length; i++) { + let hex = Number(aColor[i]).toString(16) + hex = String(hex).length == 1 ? `${0}${hex}` : hex // 保证每个rgb的值为2位 + if (hex === '0') { + hex += hex + } + strHex += hex + } + if (strHex.length !== 7) { + strHex = _this + } + return strHex + } if (reg.test(_this)) { + const aNum = _this.replace(/#/, '').split('') + if (aNum.length === 6) { + return _this + } if (aNum.length === 3) { + let numHex = '#' + for (let i = 0; i < aNum.length; i += 1) { + numHex += (aNum[i] + aNum[i]) + } + return numHex + } + } else { + return _this + } +} + +/** +* JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串 +* sHex为传入的十六进制的色值 +* alpha为rgba的透明度 +*/ +function colorToRgba(color, alpha) { + color = rgbToHex(color) + // 十六进制颜色值的正则表达式 + const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/ + /* 16进制颜色转为RGB格式 */ + let sColor = String(color).toLowerCase() + if (sColor && reg.test(sColor)) { + if (sColor.length === 4) { + let sColorNew = '#' + for (let i = 1; i < 4; i += 1) { + sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)) + } + sColor = sColorNew + } + // 处理六位的颜色值 + const sColorChange = [] + for (let i = 1; i < 7; i += 2) { + sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`)) + } + // return sColorChange.join(',') + return `rgba(${sColorChange.join(',')},${alpha})` + } + + return sColor +} + +export { + colorGradient, + hexToRgb, + rgbToHex, + colorToRgba +} diff --git a/uni_modules/uv-ui-tools/libs/function/debounce.js b/uni_modules/uv-ui-tools/libs/function/debounce.js new file mode 100644 index 0000000..ad3996b --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/function/debounce.js @@ -0,0 +1,29 @@ +let timeout = null + +/** + * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数 + * + * @param {Function} func 要执行的回调函数 + * @param {Number} wait 延时的时间 + * @param {Boolean} immediate 是否立即执行 + * @return null + */ +function debounce(func, wait = 500, immediate = false) { + // 清除定时器 + if (timeout !== null) clearTimeout(timeout) + // 立即执行,此类情况一般用不到 + if (immediate) { + const callNow = !timeout + timeout = setTimeout(() => { + timeout = null + }, wait) + if (callNow) typeof func === 'function' && func() + } else { + // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法 + timeout = setTimeout(() => { + typeof func === 'function' && func() + }, wait) + } +} + +export default debounce diff --git a/uni_modules/uv-ui-tools/libs/function/digit.js b/uni_modules/uv-ui-tools/libs/function/digit.js new file mode 100644 index 0000000..c8260a0 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/function/digit.js @@ -0,0 +1,167 @@ +let _boundaryCheckingState = true; // 是否进行越界检查的全局开关 + +/** + * 把错误的数据转正 + * @private + * @example strip(0.09999999999999998)=0.1 + */ +function strip(num, precision = 15) { + return +parseFloat(Number(num).toPrecision(precision)); +} + +/** + * Return digits length of a number + * @private + * @param {*number} num Input number + */ +function digitLength(num) { + // Get digit length of e + const eSplit = num.toString().split(/[eE]/); + const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0); + return len > 0 ? len : 0; +} + +/** + * 把小数转成整数,如果是小数则放大成整数 + * @private + * @param {*number} num 输入数 + */ +function float2Fixed(num) { + if (num.toString().indexOf('e') === -1) { + return Number(num.toString().replace('.', '')); + } + const dLen = digitLength(num); + return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num); +} + +/** + * 检测数字是否越界,如果越界给出提示 + * @private + * @param {*number} num 输入数 + */ +function checkBoundary(num) { + if (_boundaryCheckingState) { + if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) { + console.warn(`${num} 超出了精度限制,结果可能不正确`); + } + } +} + +/** + * 把递归操作扁平迭代化 + * @param {number[]} arr 要操作的数字数组 + * @param {function} operation 迭代操作 + * @private + */ +function iteratorOperation(arr, operation) { + const [num1, num2, ...others] = arr; + let res = operation(num1, num2); + + others.forEach((num) => { + res = operation(res, num); + }); + + return res; +} + +/** + * 高精度乘法 + * @export + */ +export function times(...nums) { + if (nums.length > 2) { + return iteratorOperation(nums, times); + } + + const [num1, num2] = nums; + const num1Changed = float2Fixed(num1); + const num2Changed = float2Fixed(num2); + const baseNum = digitLength(num1) + digitLength(num2); + const leftValue = num1Changed * num2Changed; + + checkBoundary(leftValue); + + return leftValue / Math.pow(10, baseNum); +} + +/** + * 高精度加法 + * @export + */ +export function plus(...nums) { + if (nums.length > 2) { + return iteratorOperation(nums, plus); + } + + const [num1, num2] = nums; + // 取最大的小数位 + const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2))); + // 把小数都转为整数然后再计算 + return (times(num1, baseNum) + times(num2, baseNum)) / baseNum; +} + +/** + * 高精度减法 + * @export + */ +export function minus(...nums) { + if (nums.length > 2) { + return iteratorOperation(nums, minus); + } + + const [num1, num2] = nums; + const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2))); + return (times(num1, baseNum) - times(num2, baseNum)) / baseNum; +} + +/** + * 高精度除法 + * @export + */ +export function divide(...nums) { + if (nums.length > 2) { + return iteratorOperation(nums, divide); + } + + const [num1, num2] = nums; + const num1Changed = float2Fixed(num1); + const num2Changed = float2Fixed(num2); + checkBoundary(num1Changed); + checkBoundary(num2Changed); + // 重要,这里必须用strip进行修正 + return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1)))); +} + +/** + * 四舍五入 + * @export + */ +export function round(num, ratio) { + const base = Math.pow(10, ratio); + let result = divide(Math.round(Math.abs(times(num, base))), base); + if (num < 0 && result !== 0) { + result = times(result, -1); + } + // 位数不足则补0 + return result; +} + +/** + * 是否进行边界检查,默认开启 + * @param flag 标记开关,true 为开启,false 为关闭,默认为 true + * @export + */ +export function enableBoundaryChecking(flag = true) { + _boundaryCheckingState = flag; +} + + +export default { + times, + plus, + minus, + divide, + round, + enableBoundaryChecking, +}; + diff --git a/uni_modules/uv-ui-tools/libs/function/index.js b/uni_modules/uv-ui-tools/libs/function/index.js new file mode 100644 index 0000000..b35e0ab --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/function/index.js @@ -0,0 +1,734 @@ +import { number, empty } from './test.js' +import { round } from './digit.js' +/** + * @description 如果value小于min,取min;如果value大于max,取max + * @param {number} min + * @param {number} max + * @param {number} value + */ +function range(min = 0, max = 0, value = 0) { + return Math.max(min, Math.min(max, Number(value))) +} + +/** + * @description 用于获取用户传递值的px值 如果用户传递了"xxpx"或者"xxrpx",取出其数值部分,如果是"xxxrpx"还需要用过uni.upx2px进行转换 + * @param {number|string} value 用户传递值的px值 + * @param {boolean} unit + * @returns {number|string} + */ +function getPx(value, unit = false) { + if (number(value)) { + return unit ? `${value}px` : Number(value) + } + // 如果带有rpx,先取出其数值部分,再转为px值 + if (/(rpx|upx)$/.test(value)) { + return unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value))) + } + return unit ? `${parseInt(value)}px` : parseInt(value) +} + +/** + * @description 进行延时,以达到可以简写代码的目的 比如: await uni.$uv.sleep(20)将会阻塞20ms + * @param {number} value 堵塞时间 单位ms 毫秒 + * @returns {Promise} 返回promise + */ +function sleep(value = 30) { + return new Promise((resolve) => { + setTimeout(() => { + resolve() + }, value) + }) +} +/** + * @description 运行期判断平台 + * @returns {string} 返回所在平台(小写) + * @link 运行期判断平台 https://uniapp.dcloud.io/frame?id=判断平台 + */ +function os() { + return uni.getSystemInfoSync().platform.toLowerCase() +} +/** + * @description 获取系统信息同步接口 + * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync + */ +function sys() { + return uni.getSystemInfoSync() +} + +/** + * @description 取一个区间数 + * @param {Number} min 最小值 + * @param {Number} max 最大值 + */ +function random(min, max) { + if (min >= 0 && max > 0 && max >= min) { + const gab = max - min + 1 + return Math.floor(Math.random() * gab + min) + } + return 0 +} + +/** + * @param {Number} len uuid的长度 + * @param {Boolean} firstU 将返回的首字母置为"u" + * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制 + */ +function guid(len = 32, firstU = true, radix = null) { + const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('') + const uuid = [] + radix = radix || chars.length + + if (len) { + // 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位 + for (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix] + } else { + let r + // rfc4122标准要求返回的uuid中,某些位为固定的字符 + uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-' + uuid[14] = '4' + + for (let i = 0; i < 36; i++) { + if (!uuid[i]) { + r = 0 | Math.random() * 16 + uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r] + } + } + } + // 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class + if (firstU) { + uuid.shift() + return `u${uuid.join('')}` + } + return uuid.join('') +} + +/** +* @description 获取父组件的参数,因为支付宝小程序不支持provide/inject的写法 + this.$parent在非H5中,可以准确获取到父组件,但是在H5中,需要多次this.$parent.$parent.xxx + 这里默认值等于undefined有它的含义,因为最顶层元素(组件)的$parent就是undefined,意味着不传name + 值(默认为undefined),就是查找最顶层的$parent +* @param {string|undefined} name 父组件的参数名 +*/ +function $parent(name = undefined) { + let parent = this.$parent + // 通过while历遍,这里主要是为了H5需要多层解析的问题 + while (parent) { + // 父组件 + if (parent.$options && parent.$options.name !== name) { + // 如果组件的name不相等,继续上一级寻找 + parent = parent.$parent + } else { + return parent + } + } + return false +} + +/** + * @description 样式转换 + * 对象转字符串,或者字符串转对象 + * @param {object | string} customStyle 需要转换的目标 + * @param {String} target 转换的目的,object-转为对象,string-转为字符串 + * @returns {object|string} + */ +function addStyle(customStyle, target = 'object') { + // 字符串转字符串,对象转对象情形,直接返回 + if (empty(customStyle) || typeof(customStyle) === 'object' && target === 'object' || target === 'string' && + typeof(customStyle) === 'string') { + return customStyle + } + // 字符串转对象 + if (target === 'object') { + // 去除字符串样式中的两端空格(中间的空格不能去掉,比如padding: 20px 0如果去掉了就错了),空格是无用的 + customStyle = trim(customStyle) + // 根据";"将字符串转为数组形式 + const styleArray = customStyle.split(';') + const style = {} + // 历遍数组,拼接成对象 + for (let i = 0; i < styleArray.length; i++) { + // 'font-size:20px;color:red;',如此最后字符串有";"的话,会导致styleArray最后一个元素为空字符串,这里需要过滤 + if (styleArray[i]) { + const item = styleArray[i].split(':') + style[trim(item[0])] = trim(item[1]) + } + } + return style + } + // 这里为对象转字符串形式 + let string = '' + for (const i in customStyle) { + // 驼峰转为中划线的形式,否则css内联样式,无法识别驼峰样式属性名 + const key = i.replace(/([A-Z])/g, '-$1').toLowerCase() + string += `${key}:${customStyle[i]};` + } + // 去除两端空格 + return trim(string) +} + +/** + * @description 添加单位,如果有rpx,upx,%,px等单位结尾或者值为auto,直接返回,否则加上px单位结尾 + * @param {string|number} value 需要添加单位的值 + * @param {string} unit 添加的单位名 比如px + */ +function addUnit(value = 'auto', unit = uni?.$uv?.config?.unit ? uni?.$uv?.config?.unit : 'px') { + value = String(value) + // 用uvui内置验证规则中的number判断是否为数值 + return number(value) ? `${value}${unit}` : value +} + +/** + * @description 深度克隆 + * @param {object} obj 需要深度克隆的对象 + * @param cache 缓存 + * @returns {*} 克隆后的对象或者原值(不是对象) + */ +function deepClone(obj, cache = new WeakMap()) { + if (obj === null || typeof obj !== 'object') return obj; + if (cache.has(obj)) return cache.get(obj); + let clone; + if (obj instanceof Date) { + clone = new Date(obj.getTime()); + } else if (obj instanceof RegExp) { + clone = new RegExp(obj); + } else if (obj instanceof Map) { + clone = new Map(Array.from(obj, ([key, value]) => [key, deepClone(value, cache)])); + } else if (obj instanceof Set) { + clone = new Set(Array.from(obj, value => deepClone(value, cache))); + } else if (Array.isArray(obj)) { + clone = obj.map(value => deepClone(value, cache)); + } else if (Object.prototype.toString.call(obj) === '[object Object]') { + clone = Object.create(Object.getPrototypeOf(obj)); + cache.set(obj, clone); + for (const [key, value] of Object.entries(obj)) { + clone[key] = deepClone(value, cache); + } + } else { + clone = Object.assign({}, obj); + } + cache.set(obj, clone); + return clone; +} + +/** + * @description JS对象深度合并 + * @param {object} target 需要拷贝的对象 + * @param {object} source 拷贝的来源对象 + * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象) + */ +function deepMerge(target = {}, source = {}) { + target = deepClone(target) + if (typeof target !== 'object' || target === null || typeof source !== 'object' || source === null) return target; + const merged = Array.isArray(target) ? target.slice() : Object.assign({}, target); + for (const prop in source) { + if (!source.hasOwnProperty(prop)) continue; + const sourceValue = source[prop]; + const targetValue = merged[prop]; + if (sourceValue instanceof Date) { + merged[prop] = new Date(sourceValue); + } else if (sourceValue instanceof RegExp) { + merged[prop] = new RegExp(sourceValue); + } else if (sourceValue instanceof Map) { + merged[prop] = new Map(sourceValue); + } else if (sourceValue instanceof Set) { + merged[prop] = new Set(sourceValue); + } else if (typeof sourceValue === 'object' && sourceValue !== null) { + merged[prop] = deepMerge(targetValue, sourceValue); + } else { + merged[prop] = sourceValue; + } + } + return merged; +} + +/** + * @description error提示 + * @param {*} err 错误内容 + */ +function error(err) { + // 开发环境才提示,生产环境不会提示 + if (process.env.NODE_ENV === 'development') { + console.error(`uvui提示:${err}`) + } +} + +/** + * @description 打乱数组 + * @param {array} array 需要打乱的数组 + * @returns {array} 打乱后的数组 + */ +function randomArray(array = []) { + // 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0 + return array.sort(() => Math.random() - 0.5) +} + +// padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序 +// 所以这里做一个兼容polyfill的兼容处理 +if (!String.prototype.padStart) { + // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解 + String.prototype.padStart = function(maxLength, fillString = ' ') { + if (Object.prototype.toString.call(fillString) !== '[object String]') { + throw new TypeError( + 'fillString must be String' + ) + } + const str = this + // 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉 + if (str.length >= maxLength) return String(str) + + const fillLength = maxLength - str.length + let times = Math.ceil(fillLength / fillString.length) + while (times >>= 1) { + fillString += fillString + if (times === 1) { + fillString += fillString + } + } + return fillString.slice(0, fillLength) + str + } +} + +/** + * @description 格式化时间 + * @param {String|Number} dateTime 需要格式化的时间戳 + * @param {String} fmt 格式化规则 yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合 默认yyyy-mm-dd + * @returns {string} 返回格式化后的字符串 + */ +function timeFormat(dateTime = null, formatStr = 'yyyy-mm-dd') { + let date + // 若传入时间为假值,则取当前时间 + if (!dateTime) { + date = new Date() + } + // 若为unix秒时间戳,则转为毫秒时间戳(逻辑有点奇怪,但不敢改,以保证历史兼容) + else if (/^\d{10}$/.test(dateTime?.toString().trim())) { + date = new Date(dateTime * 1000) + } + // 若用户传入字符串格式时间戳,new Date无法解析,需做兼容 + else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) { + date = new Date(Number(dateTime)) + } + // 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间 + // 处理 '2022-07-10 01:02:03',跳过 '2022-07-10T01:02:03' + else if (typeof dateTime === 'string' && dateTime.includes('-') && !dateTime.includes('T')) { + date = new Date(dateTime.replace(/-/g, '/')) + } + // 其他都认为符合 RFC 2822 规范 + else { + date = new Date(dateTime) + } + + const timeSource = { + 'y': date.getFullYear().toString(), // 年 + 'm': (date.getMonth() + 1).toString().padStart(2, '0'), // 月 + 'd': date.getDate().toString().padStart(2, '0'), // 日 + 'h': date.getHours().toString().padStart(2, '0'), // 时 + 'M': date.getMinutes().toString().padStart(2, '0'), // 分 + 's': date.getSeconds().toString().padStart(2, '0') // 秒 + // 有其他格式化字符需求可以继续添加,必须转化成字符串 + } + + for (const key in timeSource) { + const [ret] = new RegExp(`${key}+`).exec(formatStr) || [] + if (ret) { + // 年可能只需展示两位 + const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0 + formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex)) + } + } + + return formatStr +} + +/** + * @description 时间戳转为多久之前 + * @param {String|Number} timestamp 时间戳 + * @param {String|Boolean} format + * 格式化规则如果为时间格式字符串,超出一定时间范围,返回固定的时间格式; + * 如果为布尔值false,无论什么时间,都返回多久以前的格式 + * @returns {string} 转化后的内容 + */ +function timeFrom(timestamp = null, format = 'yyyy-mm-dd') { + if (timestamp == null) timestamp = Number(new Date()) + timestamp = parseInt(timestamp) + // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位) + if (timestamp.toString().length == 10) timestamp *= 1000 + let timer = (new Date()).getTime() - timestamp + timer = parseInt(timer / 1000) + // 如果小于5分钟,则返回"刚刚",其他以此类推 + let tips = '' + switch (true) { + case timer < 300: + tips = '刚刚' + break + case timer >= 300 && timer < 3600: + tips = `${parseInt(timer / 60)}分钟前` + break + case timer >= 3600 && timer < 86400: + tips = `${parseInt(timer / 3600)}小时前` + break + case timer >= 86400 && timer < 2592000: + tips = `${parseInt(timer / 86400)}天前` + break + default: + // 如果format为false,则无论什么时间戳,都显示xx之前 + if (format === false) { + if (timer >= 2592000 && timer < 365 * 86400) { + tips = `${parseInt(timer / (86400 * 30))}个月前` + } else { + tips = `${parseInt(timer / (86400 * 365))}年前` + } + } else { + tips = timeFormat(timestamp, format) + } + } + return tips +} + +/** + * @description 去除空格 + * @param String str 需要去除空格的字符串 + * @param String pos both(左右)|left|right|all 默认both + */ +function trim(str, pos = 'both') { + str = String(str) + if (pos == 'both') { + return str.replace(/^\s+|\s+$/g, '') + } + if (pos == 'left') { + return str.replace(/^\s*/, '') + } + if (pos == 'right') { + return str.replace(/(\s*$)/g, '') + } + if (pos == 'all') { + return str.replace(/\s+/g, '') + } + return str +} + +/** + * @description 对象转url参数 + * @param {object} data,对象 + * @param {Boolean} isPrefix,是否自动加上"?" + * @param {string} arrayFormat 规则 indices|brackets|repeat|comma + */ +function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') { + const prefix = isPrefix ? '?' : '' + const _result = [] + if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets' + for (const key in data) { + const value = data[key] + // 去掉为空的参数 + if (['', undefined, null].indexOf(value) >= 0) { + continue + } + // 如果值为数组,另行处理 + if (value.constructor === Array) { + // e.g. {ids: [1, 2, 3]} + switch (arrayFormat) { + case 'indices': + // 结果: ids[0]=1&ids[1]=2&ids[2]=3 + for (let i = 0; i < value.length; i++) { + _result.push(`${key}[${i}]=${value[i]}`) + } + break + case 'brackets': + // 结果: ids[]=1&ids[]=2&ids[]=3 + value.forEach((_value) => { + _result.push(`${key}[]=${_value}`) + }) + break + case 'repeat': + // 结果: ids=1&ids=2&ids=3 + value.forEach((_value) => { + _result.push(`${key}=${_value}`) + }) + break + case 'comma': + // 结果: ids=1,2,3 + let commaStr = '' + value.forEach((_value) => { + commaStr += (commaStr ? ',' : '') + _value + }) + _result.push(`${key}=${commaStr}`) + break + default: + value.forEach((_value) => { + _result.push(`${key}[]=${_value}`) + }) + } + } else { + _result.push(`${key}=${value}`) + } + } + return _result.length ? prefix + _result.join('&') : '' +} + +/** + * 显示消息提示框 + * @param {String} title 提示的内容,长度与 icon 取值有关。 + * @param {Number} duration 提示的延迟时间,单位毫秒,默认:2000 + */ +function toast(title, duration = 2000) { + uni.showToast({ + title: String(title), + icon: 'none', + duration + }) +} + +/** + * @description 根据主题type值,获取对应的图标 + * @param {String} type 主题名称,primary|info|error|warning|success + * @param {boolean} fill 是否使用fill填充实体的图标 + */ +function type2icon(type = 'success', fill = false) { + // 如果非预置值,默认为success + if (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success' + let iconName = '' + // 目前(2019-12-12),info和primary使用同一个图标 + switch (type) { + case 'primary': + iconName = 'info-circle' + break + case 'info': + iconName = 'info-circle' + break + case 'error': + iconName = 'close-circle' + break + case 'warning': + iconName = 'error-circle' + break + case 'success': + iconName = 'checkmark-circle' + break + default: + iconName = 'checkmark-circle' + } + // 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的 + if (fill) iconName += '-fill' + return iconName +} + +/** + * @description 数字格式化 + * @param {number|string} number 要格式化的数字 + * @param {number} decimals 保留几位小数 + * @param {string} decimalPoint 小数点符号 + * @param {string} thousandsSeparator 千分位符号 + * @returns {string} 格式化后的数字 + */ +function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') { + number = (`${number}`).replace(/[^0-9+-Ee.]/g, '') + const n = !isFinite(+number) ? 0 : +number + const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals) + const sep = (typeof thousandsSeparator === 'undefined') ? ',' : thousandsSeparator + const dec = (typeof decimalPoint === 'undefined') ? '.' : decimalPoint + let s = '' + + s = (prec ? round(n, prec) + '' : `${Math.round(n)}`).split('.') + const re = /(-?\d+)(\d{3})/ + while (re.test(s[0])) { + s[0] = s[0].replace(re, `$1${sep}$2`) + } + + if ((s[1] || '').length < prec) { + s[1] = s[1] || '' + s[1] += new Array(prec - s[1].length + 1).join('0') + } + return s.join(dec) +} + +/** + * @description 获取duration值 + * 如果带有ms或者s直接返回,如果大于一定值,认为是ms单位,小于一定值,认为是s单位 + * 比如以30位阈值,那么300大于30,可以理解为用户想要的是300ms,而不是想花300s去执行一个动画 + * @param {String|number} value 比如: "1s"|"100ms"|1|100 + * @param {boolean} unit 提示: 如果是false 默认返回number + * @return {string|number} + */ +function getDuration(value, unit = true) { + const valueNum = parseInt(value) + if (unit) { + if (/s$/.test(value)) return value + return value > 30 ? `${value}ms` : `${value}s` + } + if (/ms$/.test(value)) return valueNum + if (/s$/.test(value)) return valueNum > 30 ? valueNum : valueNum * 1000 + return valueNum +} + +/** + * @description 日期的月或日补零操作 + * @param {String} value 需要补零的值 + */ +function padZero(value) { + return `00${value}`.slice(-2) +} + +/** + * @description 在uv-form的子组件内容发生变化,或者失去焦点时,尝试通知uv-form执行校验方法 + * @param {*} instance + * @param {*} event + */ +function formValidate(instance, event) { + const formItem = $parent.call(instance, 'uv-form-item') + const form = $parent.call(instance, 'uv-form') + // 如果发生变化的input或者textarea等,其父组件中有uv-form-item或者uv-form等,就执行form的validate方法 + // 同时将form-item的pros传递给form,让其进行精确对象验证 + if (formItem && form) { + form.validateField(formItem.prop, () => {}, event) + } +} + +/** + * @description 获取某个对象下的属性,用于通过类似'a.b.c'的形式去获取一个对象的的属性的形式 + * @param {object} obj 对象 + * @param {string} key 需要获取的属性字段 + * @returns {*} + */ +function getProperty(obj, key) { + if (!obj) { + return + } + if (typeof key !== 'string' || key === '') { + return '' + } + if (key.indexOf('.') !== -1) { + const keys = key.split('.') + let firstObj = obj[keys[0]] || {} + + for (let i = 1; i < keys.length; i++) { + if (firstObj) { + firstObj = firstObj[keys[i]] + } + } + return firstObj + } + return obj[key] +} + +/** + * @description 设置对象的属性值,如果'a.b.c'的形式进行设置 + * @param {object} obj 对象 + * @param {string} key 需要设置的属性 + * @param {string} value 设置的值 + */ +function setProperty(obj, key, value) { + if (!obj) { + return + } + // 递归赋值 + const inFn = function(_obj, keys, v) { + // 最后一个属性key + if (keys.length === 1) { + _obj[keys[0]] = v + return + } + // 0~length-1个key + while (keys.length > 1) { + const k = keys[0] + if (!_obj[k] || (typeof _obj[k] !== 'object')) { + _obj[k] = {} + } + const key = keys.shift() + // 自调用判断是否存在属性,不存在则自动创建对象 + inFn(_obj[k], keys, v) + } + } + + if (typeof key !== 'string' || key === '') { + + } else if (key.indexOf('.') !== -1) { // 支持多层级赋值操作 + const keys = key.split('.') + inFn(obj, keys, value) + } else { + obj[key] = value + } +} + +/** + * @description 获取当前页面路径 + */ +function page() { + const pages = getCurrentPages(); + const route = pages[pages.length - 1]?.route; + // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组 + return `/${route ? route : ''}` +} + +/** + * @description 获取当前路由栈实例数组 + */ +function pages() { + const pages = getCurrentPages() + return pages +} + +/** + * 获取页面历史栈指定层实例 + * @param back {number} [0] - 0或者负数,表示获取历史栈的哪一层,0表示获取当前页面实例,-1 表示获取上一个页面实例。默认0。 + */ +function getHistoryPage(back = 0) { + const pages = getCurrentPages() + const len = pages.length + return pages[len - 1 + back] +} + + + +/** + * @description 修改uvui内置属性值 + * @param {object} props 修改内置props属性 + * @param {object} config 修改内置config属性 + * @param {object} color 修改内置color属性 + * @param {object} zIndex 修改内置zIndex属性 + */ +function setConfig({ + props = {}, + config = {}, + color = {}, + zIndex = {} +}) { + const { + deepMerge, + } = uni.$uv + uni.$uv.config = deepMerge(uni.$uv.config, config) + uni.$uv.props = deepMerge(uni.$uv.props, props) + uni.$uv.color = deepMerge(uni.$uv.color, color) + uni.$uv.zIndex = deepMerge(uni.$uv.zIndex, zIndex) +} + +export { + range, + getPx, + sleep, + os, + sys, + random, + guid, + $parent, + addStyle, + addUnit, + deepClone, + deepMerge, + error, + randomArray, + timeFormat, + timeFrom, + trim, + queryParams, + toast, + type2icon, + priceFormat, + getDuration, + padZero, + formValidate, + getProperty, + setProperty, + page, + pages, + getHistoryPage, + setConfig +} \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/libs/function/platform.js b/uni_modules/uv-ui-tools/libs/function/platform.js new file mode 100644 index 0000000..d6b926e --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/function/platform.js @@ -0,0 +1,75 @@ +/** + * 注意: + * 此部分内容,在vue-cli模式下,需要在vue.config.js加入如下内容才有效: + * module.exports = { + * transpileDependencies: ['uview-v2'] + * } + */ + +let platform = 'none' + +// #ifdef VUE3 +platform = 'vue3' +// #endif + +// #ifdef VUE2 +platform = 'vue2' +// #endif + +// #ifdef APP-PLUS +platform = 'plus' +// #endif + +// #ifdef APP-NVUE +platform = 'nvue' +// #endif + +// #ifdef H5 +platform = 'h5' +// #endif + +// #ifdef MP-WEIXIN +platform = 'weixin' +// #endif + +// #ifdef MP-ALIPAY +platform = 'alipay' +// #endif + +// #ifdef MP-BAIDU +platform = 'baidu' +// #endif + +// #ifdef MP-TOUTIAO +platform = 'toutiao' +// #endif + +// #ifdef MP-QQ +platform = 'qq' +// #endif + +// #ifdef MP-KUAISHOU +platform = 'kuaishou' +// #endif + +// #ifdef MP-360 +platform = '360' +// #endif + +// #ifdef MP +platform = 'mp' +// #endif + +// #ifdef QUICKAPP-WEBVIEW +platform = 'quickapp-webview' +// #endif + +// #ifdef QUICKAPP-WEBVIEW-HUAWEI +platform = 'quickapp-webview-huawei' +// #endif + +// #ifdef QUICKAPP-WEBVIEW-UNION +platform = 'quckapp-webview-union' +// #endif + +export default platform diff --git a/uni_modules/uv-ui-tools/libs/function/test.js b/uni_modules/uv-ui-tools/libs/function/test.js new file mode 100644 index 0000000..7c8b747 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/function/test.js @@ -0,0 +1,287 @@ +/** + * 验证电子邮箱格式 + */ +function email(value) { + return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value) +} + +/** + * 验证手机格式 + */ +function mobile(value) { + return /^1([3589]\d|4[5-9]|6[1-2,4-7]|7[0-8])\d{8}$/.test(value) +} + +/** + * 验证URL格式 + */ +function url(value) { + return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/ + .test(value) +} + +/** + * 验证日期格式 + */ +function date(value) { + if (!value) return false + // 判断是否数值或者字符串数值(意味着为时间戳),转为数值,否则new Date无法识别字符串时间戳 + if (number(value)) value = +value + return !/Invalid|NaN/.test(new Date(value).toString()) +} + +/** + * 验证ISO类型的日期格式 + */ +function dateISO(value) { + return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value) +} + +/** + * 验证十进制数字 + */ +function number(value) { + return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value) +} + +/** + * 验证字符串 + */ +function string(value) { + return typeof value === 'string' +} + +/** + * 验证整数 + */ +function digits(value) { + return /^\d+$/.test(value) +} + +/** + * 验证身份证号码 + */ +function idCard(value) { + return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test( + value + ) +} + +/** + * 是否车牌号 + */ +function carNo(value) { + // 新能源车牌 + const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/ + // 旧车牌 + const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/ + if (value.length === 7) { + return creg.test(value) + } if (value.length === 8) { + return xreg.test(value) + } + return false +} + +/** + * 金额,只允许2位小数 + */ +function amount(value) { + // 金额,只允许保留两位小数 + return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value) +} + +/** + * 中文 + */ +function chinese(value) { + const reg = /^[\u4e00-\u9fa5]+$/gi + return reg.test(value) +} + +/** + * 只能输入字母 + */ +function letter(value) { + return /^[a-zA-Z]*$/.test(value) +} + +/** + * 只能是字母或者数字 + */ +function enOrNum(value) { + // 英文或者数字 + const reg = /^[0-9a-zA-Z]*$/g + return reg.test(value) +} + +/** + * 验证是否包含某个值 + */ +function contains(value, param) { + return value.indexOf(param) >= 0 +} + +/** + * 验证一个值范围[min, max] + */ +function range(value, param) { + return value >= param[0] && value <= param[1] +} + +/** + * 验证一个长度范围[min, max] + */ +function rangeLength(value, param) { + return value.length >= param[0] && value.length <= param[1] +} + +/** + * 是否固定电话 + */ +function landline(value) { + const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/ + return reg.test(value) +} + +/** + * 判断是否为空 + */ +function empty(value) { + switch (typeof value) { + case 'undefined': + return true + case 'string': + if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true + break + case 'boolean': + if (!value) return true + break + case 'number': + if (value === 0 || isNaN(value)) return true + break + case 'object': + if (value === null || value.length === 0) return true + for (const i in value) { + return false + } + return true + } + return false +} + +/** + * 是否json字符串 + */ +function jsonString(value) { + if (typeof value === 'string') { + try { + const obj = JSON.parse(value) + if (typeof obj === 'object' && obj) { + return true + } + return false + } catch (e) { + return false + } + } + return false +} + +/** + * 是否数组 + */ +function array(value) { + if (typeof Array.isArray === 'function') { + return Array.isArray(value) + } + return Object.prototype.toString.call(value) === '[object Array]' +} + +/** + * 是否对象 + */ +function object(value) { + return Object.prototype.toString.call(value) === '[object Object]' +} + +/** + * 是否短信验证码 + */ +function code(value, len = 6) { + return new RegExp(`^\\d{${len}}$`).test(value) +} + +/** + * 是否函数方法 + * @param {Object} value + */ +function func(value) { + return typeof value === 'function' +} + +/** + * 是否promise对象 + * @param {Object} value + */ +function promise(value) { + return object(value) && func(value.then) && func(value.catch) +} + +/** 是否图片格式 + * @param {Object} value + */ +function image(value) { + const newValue = value.split('?')[0] + const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i + return IMAGE_REGEXP.test(newValue) +} + +/** + * 是否视频格式 + * @param {Object} value + */ +function video(value) { + const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i + return VIDEO_REGEXP.test(value) +} + +/** + * 是否为正则对象 + * @param {Object} + * @return {Boolean} + */ +function regExp(o) { + return o && Object.prototype.toString.call(o) === '[object RegExp]' +} + +export { + email, + mobile, + url, + date, + dateISO, + number, + digits, + idCard, + carNo, + amount, + chinese, + letter, + enOrNum, + contains, + range, + rangeLength, + empty, + jsonString, + landline, + object, + array, + code, + func, + promise, + video, + image, + regExp, + string +} diff --git a/uni_modules/uv-ui-tools/libs/function/throttle.js b/uni_modules/uv-ui-tools/libs/function/throttle.js new file mode 100644 index 0000000..2f33611 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/function/throttle.js @@ -0,0 +1,30 @@ +let timer; let + flag +/** + * 节流原理:在一定时间内,只能触发一次 + * + * @param {Function} func 要执行的回调函数 + * @param {Number} wait 延时的时间 + * @param {Boolean} immediate 是否立即执行 + * @return null + */ +function throttle(func, wait = 500, immediate = true) { + if (immediate) { + if (!flag) { + flag = true + // 如果是立即执行,则在wait毫秒内开始时执行 + typeof func === 'function' && func() + timer = setTimeout(() => { + flag = false + }, wait) + } + } else if (!flag) { + flag = true + // 如果是非立即执行,则在wait毫秒内的结束处执行 + timer = setTimeout(() => { + flag = false + typeof func === 'function' && func() + }, wait) + } +} +export default throttle diff --git a/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js b/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js new file mode 100644 index 0000000..31a5cfc --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/adapters/index.js @@ -0,0 +1,132 @@ +import buildURL from '../helpers/buildURL' +import buildFullPath from '../core/buildFullPath' +import settle from '../core/settle' +import {isUndefined} from "../utils" + +/** + * 返回可选值存在的配置 + * @param {Array} keys - 可选值数组 + * @param {Object} config2 - 配置 + * @return {{}} - 存在的配置项 + */ +const mergeKeys = (keys, config2) => { + let config = {} + keys.forEach(prop => { + if (!isUndefined(config2[prop])) { + config[prop] = config2[prop] + } + }) + return config +} +export default (config) => { + return new Promise((resolve, reject) => { + let fullPath = buildURL(buildFullPath(config.baseURL, config.url), config.params, config.paramsSerializer) + const _config = { + url: fullPath, + header: config.header, + complete: (response) => { + config.fullPath = fullPath + response.config = config + response.rawData = response.data + try { + let jsonParseHandle = false + const forcedJSONParsingType = typeof config.forcedJSONParsing + if (forcedJSONParsingType === 'boolean') { + jsonParseHandle = config.forcedJSONParsing + } else if (forcedJSONParsingType === 'object') { + const includesMethod = config.forcedJSONParsing.include || [] + jsonParseHandle = includesMethod.includes(config.method) + } + + // 对可能字符串不是json 的情况容错 + if (jsonParseHandle && typeof response.data === 'string') { + response.data = JSON.parse(response.data) + } + // eslint-disable-next-line no-empty + } catch (e) { + } + settle(resolve, reject, response) + } + } + let requestTask + if (config.method === 'UPLOAD') { + delete _config.header['content-type'] + delete _config.header['Content-Type'] + let otherConfig = { + // #ifdef MP-ALIPAY + fileType: config.fileType, + // #endif + filePath: config.filePath, + name: config.name + } + const optionalKeys = [ + // #ifdef APP-PLUS || H5 + 'files', + // #endif + // #ifdef H5 + 'file', + // #endif + // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU + 'timeout', + // #endif + 'formData' + ] + requestTask = uni.uploadFile({..._config, ...otherConfig, ...mergeKeys(optionalKeys, config)}) + } else if (config.method === 'DOWNLOAD') { + const optionalKeys = [ + // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU + 'timeout', + // #endif + // #ifdef MP + 'filePath', + // #endif + ] + requestTask = uni.downloadFile({..._config, ...mergeKeys(optionalKeys, config)}) + } else { + const optionalKeys = [ + 'data', + 'method', + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN + 'timeout', + // #endif + 'dataType', + // #ifndef MP-ALIPAY + 'responseType', + // #endif + // #ifdef APP-PLUS + 'sslVerify', + // #endif + // #ifdef H5 + 'withCredentials', + // #endif + // #ifdef APP-PLUS + 'firstIpv4', + // #endif + // #ifdef MP-WEIXIN + 'enableHttp2', + 'enableQuic', + // #endif + // #ifdef MP-TOUTIAO || MP-WEIXIN + 'enableCache', + // #endif + // #ifdef MP-WEIXIN + 'enableHttpDNS', + 'httpDNSServiceId', + 'enableChunked', + 'forceCellularNetwork', + // #endif + // #ifdef MP-ALIPAY + 'enableCookie', + // #endif + // #ifdef MP-BAIDU + 'cloudCache', + 'defer' + // #endif + ] + requestTask = uni.request({..._config, ...mergeKeys(optionalKeys, config)}) + } + if (config.getTask) { + config.getTask(requestTask, config) + } + }) +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js b/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js new file mode 100644 index 0000000..3ea0d5e --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/core/InterceptorManager.js @@ -0,0 +1,51 @@ +'use strict' + + +function InterceptorManager() { + this.handlers = [] +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }) + return this.handlers.length - 1 +} + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null + } +} + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + this.handlers.forEach(h => { + if (h !== null) { + fn(h) + } + }) +} + +export default InterceptorManager diff --git a/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js b/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js new file mode 100644 index 0000000..96c89a8 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/core/Request.js @@ -0,0 +1,201 @@ +/** + * @Class Request + * @description luch-request http请求插件 + * @Author lu-ch + * @Email webwork.s@qq.com + * 文档: https://www.quanzhan.co/luch-request/ + * github: https://github.com/lei-mu/luch-request + * DCloud: http://ext.dcloud.net.cn/plugin?id=392 + */ + + +import dispatchRequest from './dispatchRequest' +import InterceptorManager from './InterceptorManager' +import mergeConfig from './mergeConfig' +import defaults from './defaults' +import { isPlainObject } from '../utils' +import clone from '../utils/clone' + +export default class Request { + /** + * @param {Object} arg - 全局配置 + * @param {String} arg.baseURL - 全局根路径 + * @param {Object} arg.header - 全局header + * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式 + * @param {String} arg.dataType = [json] - 全局默认的dataType + * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持 + * @param {Object} arg.custom - 全局默认的自定义参数 + * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序 + * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+) + * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+) + * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+) + * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300 + */ + constructor(arg = {}) { + if (!isPlainObject(arg)) { + arg = {} + console.warn('设置全局参数必须接收一个Object') + } + this.config = clone({...defaults, ...arg}) + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + } + } + + /** + * @Function + * @param {Request~setConfigCallback} f - 设置全局默认配置 + */ + setConfig(f) { + this.config = f(this.config) + } + + middleware(config) { + config = mergeConfig(this.config, config) + let chain = [dispatchRequest, undefined] + let promise = Promise.resolve(config) + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected) + }) + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected) + }) + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()) + } + + return promise + } + + /** + * @Function + * @param {Object} config - 请求配置项 + * @prop {String} options.url - 请求路径 + * @prop {Object} options.data - 请求参数 + * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型 + * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse + * @prop {Object} [options.header = config.header] - 请求header + * @prop {Object} [options.method = config.method] - 请求方法 + * @returns {Promise} + */ + request(config = {}) { + return this.middleware(config) + } + + get(url, options = {}) { + return this.middleware({ + url, + method: 'GET', + ...options + }) + } + + post(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'POST', + ...options + }) + } + + // #ifndef MP-ALIPAY || MP-KUAISHOU || MP-JD + put(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'PUT', + ...options + }) + } + + // #endif + + // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU + delete(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'DELETE', + ...options + }) + } + + // #endif + + // #ifdef H5 || MP-WEIXIN + connect(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'CONNECT', + ...options + }) + } + + // #endif + + // #ifdef H5 || MP-WEIXIN || MP-BAIDU + head(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'HEAD', + ...options + }) + } + + // #endif + + // #ifdef APP-PLUS || H5 || MP-WEIXIN || MP-BAIDU + options(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'OPTIONS', + ...options + }) + } + + // #endif + + // #ifdef H5 || MP-WEIXIN + trace(url, data, options = {}) { + return this.middleware({ + url, + data, + method: 'TRACE', + ...options + }) + } + + // #endif + + upload(url, config = {}) { + config.url = url + config.method = 'UPLOAD' + return this.middleware(config) + } + + download(url, config = {}) { + config.url = url + config.method = 'DOWNLOAD' + return this.middleware(config) + } + + get version () { + return '3.1.0' + } +} + + +/** + * setConfig回调 + * @return {Object} - 返回操作后的config + * @callback Request~setConfigCallback + * @param {Object} config - 全局默认config + */ diff --git a/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js b/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js new file mode 100644 index 0000000..f2852f4 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/core/buildFullPath.js @@ -0,0 +1,20 @@ +'use strict' + +import isAbsoluteURL from '../helpers/isAbsoluteURL' +import combineURLs from '../helpers/combineURLs' + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +export default function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL) + } + return requestedURL +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js b/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js new file mode 100644 index 0000000..db74609 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/core/defaults.js @@ -0,0 +1,33 @@ +/** + * 默认的全局配置 + */ + + +export default { + baseURL: '', + header: {}, + method: 'GET', + dataType: 'json', + paramsSerializer: null, + // #ifndef MP-ALIPAY + responseType: 'text', + // #endif + custom: {}, + // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU + timeout: 60000, + // #endif + // #ifdef APP-PLUS + sslVerify: true, + // #endif + // #ifdef H5 + withCredentials: false, + // #endif + // #ifdef APP-PLUS + firstIpv4: false, + // #endif + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300 + }, + // 是否尝试将响应数据json化 + forcedJSONParsing: true +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js b/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js new file mode 100644 index 0000000..c5f2c85 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/core/dispatchRequest.js @@ -0,0 +1,6 @@ +import adapter from '../adapters/index' + + +export default (config) => { + return adapter(config) +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js b/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js new file mode 100644 index 0000000..99c8ecd --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/core/mergeConfig.js @@ -0,0 +1,126 @@ +import {deepMerge, isUndefined} from '../utils' + +/** + * 合并局部配置优先的配置,如果局部有该配置项则用局部,如果全局有该配置项则用全局 + * @param {Array} keys - 配置项 + * @param {Object} globalsConfig - 当前的全局配置 + * @param {Object} config2 - 局部配置 + * @return {{}} + */ +const mergeKeys = (keys, globalsConfig, config2) => { + let config = {} + keys.forEach(prop => { + if (!isUndefined(config2[prop])) { + config[prop] = config2[prop] + } else if (!isUndefined(globalsConfig[prop])) { + config[prop] = globalsConfig[prop] + } + }) + return config +} +/** + * + * @param globalsConfig - 当前实例的全局配置 + * @param config2 - 当前的局部配置 + * @return - 合并后的配置 + */ +export default (globalsConfig, config2 = {}) => { + const method = config2.method || globalsConfig.method || 'GET' + let config = { + baseURL: config2.baseURL || globalsConfig.baseURL || '', + method: method, + url: config2.url || '', + params: config2.params || {}, + custom: {...(globalsConfig.custom || {}), ...(config2.custom || {})}, + header: deepMerge(globalsConfig.header || {}, config2.header || {}) + } + const defaultToConfig2Keys = ['getTask', 'validateStatus', 'paramsSerializer', 'forcedJSONParsing'] + config = {...config, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2)} + + // eslint-disable-next-line no-empty + if (method === 'DOWNLOAD') { + const downloadKeys = [ + // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU + 'timeout', + // #endif + // #ifdef MP + 'filePath', + // #endif + ] + config = {...config, ...mergeKeys(downloadKeys, globalsConfig, config2)} + } else if (method === 'UPLOAD') { + delete config.header['content-type'] + delete config.header['Content-Type'] + const uploadKeys = [ + // #ifdef APP-PLUS || H5 + 'files', + // #endif + // #ifdef MP-ALIPAY + 'fileType', + // #endif + // #ifdef H5 + 'file', + // #endif + 'filePath', + 'name', + // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU + 'timeout', + // #endif + 'formData', + ] + uploadKeys.forEach(prop => { + if (!isUndefined(config2[prop])) { + config[prop] = config2[prop] + } + }) + // #ifdef H5 || APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-TOUTIAO || MP-KUAISHOU + if (isUndefined(config.timeout) && !isUndefined(globalsConfig.timeout)) { + config['timeout'] = globalsConfig['timeout'] + } + // #endif + } else { + const defaultsKeys = [ + 'data', + // #ifdef H5 || APP-PLUS || MP-ALIPAY || MP-WEIXIN + 'timeout', + // #endif + 'dataType', + // #ifndef MP-ALIPAY + 'responseType', + // #endif + // #ifdef APP-PLUS + 'sslVerify', + // #endif + // #ifdef H5 + 'withCredentials', + // #endif + // #ifdef APP-PLUS + 'firstIpv4', + // #endif + // #ifdef MP-WEIXIN + 'enableHttp2', + 'enableQuic', + // #endif + // #ifdef MP-TOUTIAO || MP-WEIXIN + 'enableCache', + // #endif + // #ifdef MP-WEIXIN + 'enableHttpDNS', + 'httpDNSServiceId', + 'enableChunked', + 'forceCellularNetwork', + // #endif + // #ifdef MP-ALIPAY + 'enableCookie', + // #endif + // #ifdef MP-BAIDU + 'cloudCache', + 'defer' + // #endif + + ] + config = {...config, ...mergeKeys(defaultsKeys, globalsConfig, config2)} + } + + return config +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js b/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js new file mode 100644 index 0000000..b2f1659 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/core/settle.js @@ -0,0 +1,16 @@ +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +export default function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus + const status = response.statusCode + if (status && (!validateStatus || validateStatus(status))) { + resolve(response) + } else { + reject(response) + } +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js b/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js new file mode 100644 index 0000000..e90b908 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/helpers/buildURL.js @@ -0,0 +1,64 @@ +'use strict' + +import * as utils from './../utils' + +function encode(val) { + return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']') +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +export default function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url + } + + var serializedParams + if (paramsSerializer) { + serializedParams = paramsSerializer(params) + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString() + } else { + var parts = [] + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return + } + + if (utils.isArray(val)) { + key = key + '[]' + } else { + val = [val] + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString() + } else if (utils.isObject(v)) { + v = JSON.stringify(v) + } + parts.push(encode(key) + '=' + encode(v)) + }) + }) + + serializedParams = parts.join('&') + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#') + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex) + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams + } + + return url +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js b/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js new file mode 100644 index 0000000..7b9d1ef --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/helpers/combineURLs.js @@ -0,0 +1,14 @@ +'use strict' + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +export default function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js b/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js new file mode 100644 index 0000000..2a82517 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/helpers/isAbsoluteURL.js @@ -0,0 +1,14 @@ +'use strict' + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +export default function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url) +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts b/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts new file mode 100644 index 0000000..62d3fb9 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/index.d.ts @@ -0,0 +1,197 @@ +export type HttpTask = UniApp.RequestTask | UniApp.UploadTask | UniApp.DownloadTask; + +export type HttpRequestTask = UniApp.RequestTask; + +export type HttpUploadTask = UniApp.UploadTask; + +export type HttpDownloadTask = UniApp.DownloadTask; + +export type HttpMethod = + "GET" + | "POST" + | "PUT" + | "DELETE" + | "CONNECT" + | "HEAD" + | "OPTIONS" + | "TRACE" + | "UPLOAD" + | "DOWNLOAD"; + +export type HttpRequestHeader = Record; + +export type HttpParams = Record; + +export type HttpData = Record; + +export type HttpResponseType = 'arraybuffer' | 'text'; + +export type HttpCustom = Record; + +export type HttpFileType = 'image' | 'video' | 'audio'; + +export type HttpFormData = Record; + +export type HttpResponseHeader = Record & { + "set-cookie"?: string[] +}; + +export interface HttpRequestConfig { + /** @desc 请求服务器接口地址 */ + url?: string; + /** @desc 请求方式,默认为 GET */ + method?: HttpMethod; + /** @desc 请求基地址 */ + baseURL?: string; + /** @desc 请求头信息,不能设置 Referer,App、H5 端会自动带上 cookie,且 H5 端不可手动修改 */ + header?: HttpRequestHeader; + /** @desc 请求查询参数,自动拼接为查询字符串 */ + params?: HttpParams; + /** @desc 请求体参数 */ + data?: HttpData; + /** @desc 超时时间,单位 ms,默认为 60000,仅 H5 (HBuilderX 2.9.9+)、APP (HBuilderX 2.9.9+)、微信小程序 (2.10.0)、支付宝小程序支持 */ + timeout?: number; + /** @desc 跨域请求时是否携带凭证 (cookies),默认为 false,仅 H5 (HBuilderX 2.6.15+) 支持 */ + withCredentials?: boolean; + /** @desc 设置响应的数据类型,支付宝小程序不支持 */ + responseType?: HttpResponseType; + /** @desc 全局自定义验证器 */ + validateStatus?: ((statusCode: number) => boolean) | null; + + + /** params 参数自定义处理 */ + paramsSerializer?: (params: AnyObject) => string | void; + + /** @desc 默认为 json,如果设为 json,会尝试对返回的数据做一次 JSON.parse */ + dataType?: string; + /** @desc DNS 解析时是否优先使用 ipv4,默认为 false,仅 App-Android (HBuilderX 2.8.0+) 支持 */ + firstIpv4?: boolean; + /** @desc 是否验证 SSL 证书,默认为 true,仅 App-Android (HBuilderX 2.3.3+) 支持 */ + sslVerify?: boolean; + + /** @desc 开启 http2;微信小程序 */ + enableHttp2?: boolean; + + /** @desc 开启 quic;微信小程序 */ + enableQuic?: boolean; + /** @desc 开启 cache;微信小程序、字节跳动小程序 2.31.0+ */ + enableCache?: boolean; + /** @desc 开启 httpDNS;微信小程序 */ + enableHttpDNS?: boolean; + /** @desc httpDNS 服务商;微信小程序 */ + httpDNSServiceId?: string; + /** @desc 开启 transfer-encoding chunked;微信小程序 */ + enableChunked?: boolean; + /** @desc wifi下使用移动网络发送请求;微信小程序 */ + forceCellularNetwork?: boolean; + /** @desc 开启后可在headers中编辑cookie;支付宝小程序 10.2.33+ */ + enableCookie?: boolean; + /** @desc 是否开启云加速;百度小程序 3.310.11+ */ + cloudCache?: boolean | object; + /** @desc 控制当前请求是否延时至首屏内容渲染后发送;百度小程序 3.310.11+ */ + defer?: boolean; + + /** @desc 自定义参数 */ + custom?: HttpCustom; + + /** @desc 返回当前请求的 task 和 options,不要在这里修改 options */ + getTask?: (task: T, options: HttpRequestConfig) => void; + + /** @desc 需要上传的文件列表,使用 files 时,filePath 和 name 不生效,仅支持 App、H5 (2.6.15+) */ + files?: { name?: string; file?: File; uri: string; }[]; + /** @desc 文件类型,仅支付宝小程序支持且为必填项 */ + fileType?: HttpFileType; + /** @desc 要上传的文件对象,仅 H5 (2.6.15+) 支持 */ + file?: File; + /** @desc 要上传文件资源的路径,使用 files 时,filePath 和 name 不生效 */ + filePath?: string; + /** @desc 文件对应的 key,开发者在服务器端通过这个 key 可以获取到文件二进制内容,使用 files 时,filePath 和 name 不生效 */ + name?: string; + /** @desc 请求中其他额外的 form data */ + formData?: HttpFormData; +} + +export interface HttpResponse { + data: T; + statusCode: number; + header: HttpResponseHeader; + config: HttpRequestConfig; + cookies: string[]; + errMsg: string; + rawData: any; +} + +export interface HttpUploadResponse { + data: T; + statusCode: number; + config: HttpRequestConfig; + errMsg: string; + rawData: any; +} + +export interface HttpDownloadResponse extends HttpResponse { + tempFilePath: string; + apFilePath?: string; + filePath?: string; + fileContent?: string; +} + +export interface HttpError { + data?: T; + statusCode?: number; + header?: HttpResponseHeader; + config: HttpRequestConfig; + cookies?: string[]; + errMsg: string; +} + +export interface HttpPromise extends Promise> { +} + +export interface HttpInterceptorManager { + use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: E) => T | Promise): void; + + eject(id: number): void; +} + +export abstract class HttpRequestAbstract { + constructor(config?: HttpRequestConfig); + + interceptors: { + request: HttpInterceptorManager; + response: HttpInterceptorManager; + } + + request, D = HttpRequestTask>(config: HttpRequestConfig): Promise; + + get, D = HttpRequestTask>(url: string, config?: HttpRequestConfig): Promise; + + delete, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise; + + head, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise; + + options, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise; + + post, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise; + + put, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise; + + config: HttpRequestConfig; + + setConfig(onSend: (config: HttpRequestConfig) => HttpRequestConfig): void; + + connect, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise; + + trace, D = HttpRequestTask>(url: string, data?: HttpData, config?: HttpRequestConfig): Promise; + + upload, D = HttpUploadTask>(url: string, config?: HttpRequestConfig): Promise; + + download, D = HttpDownloadTask>(url: string, config?: HttpRequestConfig): Promise; + + middleware, D = HttpTask>(config: HttpRequestConfig): Promise; +} + +declare class HttpRequest extends HttpRequestAbstract { +} + +export default HttpRequest; diff --git a/uni_modules/uv-ui-tools/libs/luch-request/index.js b/uni_modules/uv-ui-tools/libs/luch-request/index.js new file mode 100644 index 0000000..d8fe348 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/index.js @@ -0,0 +1,2 @@ +import Request from './core/Request' +export default Request diff --git a/uni_modules/uv-ui-tools/libs/luch-request/utils.js b/uni_modules/uv-ui-tools/libs/luch-request/utils.js new file mode 100644 index 0000000..0b5bf21 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/utils.js @@ -0,0 +1,135 @@ +'use strict' + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +export function isArray (val) { + return toString.call(val) === '[object Array]' +} + + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +export function isObject (val) { + return val !== null && typeof val === 'object' +} + +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +export function isDate (val) { + return toString.call(val) === '[object Date]' +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +export function isURLSearchParams (val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams +} + + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +export function forEach (obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj] + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj) + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj) + } + } + } +} + +/** + * 是否为boolean 值 + * @param val + * @returns {boolean} + */ +export function isBoolean(val) { + return typeof val === 'boolean' +} + +/** + * 是否为真正的对象{} new Object + * @param {any} obj - 检测的对象 + * @returns {boolean} + */ +export function isPlainObject(obj) { + return Object.prototype.toString.call(obj) === '[object Object]' +} + + + +/** + * Function equal to merge with the difference being that no reference + * to original objects is kept. + * + * @see merge + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +export function deepMerge(/* obj1, obj2, obj3, ... */) { + let result = {} + function assignValue(val, key) { + if (typeof result[key] === 'object' && typeof val === 'object') { + result[key] = deepMerge(result[key], val) + } else if (typeof val === 'object') { + result[key] = deepMerge({}, val) + } else { + result[key] = val + } + } + for (let i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue) + } + return result +} + +export function isUndefined (val) { + return typeof val === 'undefined' +} diff --git a/uni_modules/uv-ui-tools/libs/luch-request/utils/clone.js b/uni_modules/uv-ui-tools/libs/luch-request/utils/clone.js new file mode 100644 index 0000000..2fee704 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/luch-request/utils/clone.js @@ -0,0 +1,264 @@ +/* eslint-disable */ +var clone = (function() { + 'use strict'; + + function _instanceof(obj, type) { + return type != null && obj instanceof type; + } + + var nativeMap; + try { + nativeMap = Map; + } catch(_) { + // maybe a reference error because no `Map`. Give it a dummy value that no + // value will ever be an instanceof. + nativeMap = function() {}; + } + + var nativeSet; + try { + nativeSet = Set; + } catch(_) { + nativeSet = function() {}; + } + + var nativePromise; + try { + nativePromise = Promise; + } catch(_) { + nativePromise = function() {}; + } + + /** + * Clones (copies) an Object using deep copying. + * + * This function supports circular references by default, but if you are certain + * there are no circular references in your object, you can save some CPU time + * by calling clone(obj, false). + * + * Caution: if `circular` is false and `parent` contains circular references, + * your program may enter an infinite loop and crash. + * + * @param `parent` - the object to be cloned + * @param `circular` - set to true if the object to be cloned may contain + * circular references. (optional - true by default) + * @param `depth` - set to a number if the object is only to be cloned to + * a particular depth. (optional - defaults to Infinity) + * @param `prototype` - sets the prototype to be used when cloning an object. + * (optional - defaults to parent prototype). + * @param `includeNonEnumerable` - set to true if the non-enumerable properties + * should be cloned as well. Non-enumerable properties on the prototype + * chain will be ignored. (optional - false by default) + */ + function clone(parent, circular, depth, prototype, includeNonEnumerable) { + if (typeof circular === 'object') { + depth = circular.depth; + prototype = circular.prototype; + includeNonEnumerable = circular.includeNonEnumerable; + circular = circular.circular; + } + // maintain two arrays for circular references, where corresponding parents + // and children have the same index + var allParents = []; + var allChildren = []; + + var useBuffer = typeof Buffer != 'undefined'; + + if (typeof circular == 'undefined') + circular = true; + + if (typeof depth == 'undefined') + depth = Infinity; + + // recurse this function so we don't reset allParents and allChildren + function _clone(parent, depth) { + // cloning null always returns null + if (parent === null) + return null; + + if (depth === 0) + return parent; + + var child; + var proto; + if (typeof parent != 'object') { + return parent; + } + + if (_instanceof(parent, nativeMap)) { + child = new nativeMap(); + } else if (_instanceof(parent, nativeSet)) { + child = new nativeSet(); + } else if (_instanceof(parent, nativePromise)) { + child = new nativePromise(function (resolve, reject) { + parent.then(function(value) { + resolve(_clone(value, depth - 1)); + }, function(err) { + reject(_clone(err, depth - 1)); + }); + }); + } else if (clone.__isArray(parent)) { + child = []; + } else if (clone.__isRegExp(parent)) { + child = new RegExp(parent.source, __getRegExpFlags(parent)); + if (parent.lastIndex) child.lastIndex = parent.lastIndex; + } else if (clone.__isDate(parent)) { + child = new Date(parent.getTime()); + } else if (useBuffer && Buffer.isBuffer(parent)) { + if (Buffer.from) { + // Node.js >= 5.10.0 + child = Buffer.from(parent); + } else { + // Older Node.js versions + child = new Buffer(parent.length); + parent.copy(child); + } + return child; + } else if (_instanceof(parent, Error)) { + child = Object.create(parent); + } else { + if (typeof prototype == 'undefined') { + proto = Object.getPrototypeOf(parent); + child = Object.create(proto); + } + else { + child = Object.create(prototype); + proto = prototype; + } + } + + if (circular) { + var index = allParents.indexOf(parent); + + if (index != -1) { + return allChildren[index]; + } + allParents.push(parent); + allChildren.push(child); + } + + if (_instanceof(parent, nativeMap)) { + parent.forEach(function(value, key) { + var keyChild = _clone(key, depth - 1); + var valueChild = _clone(value, depth - 1); + child.set(keyChild, valueChild); + }); + } + if (_instanceof(parent, nativeSet)) { + parent.forEach(function(value) { + var entryChild = _clone(value, depth - 1); + child.add(entryChild); + }); + } + + for (var i in parent) { + var attrs = Object.getOwnPropertyDescriptor(parent, i); + if (attrs) { + child[i] = _clone(parent[i], depth - 1); + } + + try { + var objProperty = Object.getOwnPropertyDescriptor(parent, i); + if (objProperty.set === 'undefined') { + // no setter defined. Skip cloning this property + continue; + } + child[i] = _clone(parent[i], depth - 1); + } catch(e){ + if (e instanceof TypeError) { + // when in strict mode, TypeError will be thrown if child[i] property only has a getter + // we can't do anything about this, other than inform the user that this property cannot be set. + continue + } else if (e instanceof ReferenceError) { + //this may happen in non strict mode + continue + } + } + + } + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(parent); + for (var i = 0; i < symbols.length; i++) { + // Don't need to worry about cloning a symbol because it is a primitive, + // like a number or string. + var symbol = symbols[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, symbol); + if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { + continue; + } + child[symbol] = _clone(parent[symbol], depth - 1); + Object.defineProperty(child, symbol, descriptor); + } + } + + if (includeNonEnumerable) { + var allPropertyNames = Object.getOwnPropertyNames(parent); + for (var i = 0; i < allPropertyNames.length; i++) { + var propertyName = allPropertyNames[i]; + var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName); + if (descriptor && descriptor.enumerable) { + continue; + } + child[propertyName] = _clone(parent[propertyName], depth - 1); + Object.defineProperty(child, propertyName, descriptor); + } + } + + return child; + } + + return _clone(parent, depth); + } + + /** + * Simple flat clone using prototype, accepts only objects, usefull for property + * override on FLAT configuration object (no nested props). + * + * USE WITH CAUTION! This may not behave as you wish if you do not know how this + * works. + */ + clone.clonePrototype = function clonePrototype(parent) { + if (parent === null) + return null; + + var c = function () {}; + c.prototype = parent; + return new c(); + }; + +// private utility functions + + function __objToStr(o) { + return Object.prototype.toString.call(o); + } + clone.__objToStr = __objToStr; + + function __isDate(o) { + return typeof o === 'object' && __objToStr(o) === '[object Date]'; + } + clone.__isDate = __isDate; + + function __isArray(o) { + return typeof o === 'object' && __objToStr(o) === '[object Array]'; + } + clone.__isArray = __isArray; + + function __isRegExp(o) { + return typeof o === 'object' && __objToStr(o) === '[object RegExp]'; + } + clone.__isRegExp = __isRegExp; + + function __getRegExpFlags(re) { + var flags = ''; + if (re.global) flags += 'g'; + if (re.ignoreCase) flags += 'i'; + if (re.multiline) flags += 'm'; + return flags; + } + clone.__getRegExpFlags = __getRegExpFlags; + + return clone; +})(); + +export default clone diff --git a/uni_modules/uv-ui-tools/libs/mixin/button.js b/uni_modules/uv-ui-tools/libs/mixin/button.js new file mode 100644 index 0000000..0c019c2 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/mixin/button.js @@ -0,0 +1,13 @@ +export default { + props: { + lang: String, + sessionFrom: String, + sendMessageTitle: String, + sendMessagePath: String, + sendMessageImg: String, + showMessageCard: Boolean, + appParameter: String, + formType: String, + openType: String + } +} diff --git a/uni_modules/uv-ui-tools/libs/mixin/mixin.js b/uni_modules/uv-ui-tools/libs/mixin/mixin.js new file mode 100644 index 0000000..0dd3b03 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/mixin/mixin.js @@ -0,0 +1,172 @@ +import * as index from '../function/index.js'; +import * as test from '../function/test.js'; +import route from '../util/route.js'; +import debounce from '../function/debounce.js'; +import throttle from '../function/throttle.js'; +export default { + // 定义每个组件都可能需要用到的外部样式以及类名 + props: { + // 每个组件都有的父组件传递的样式,可以为字符串或者对象形式 + customStyle: { + type: [Object, String], + default: () => ({}) + }, + customClass: { + type: String, + default: '' + }, + // 跳转的页面路径 + url: { + type: String, + default: '' + }, + // 页面跳转的类型 + linkType: { + type: String, + default: 'navigateTo' + } + }, + data() { + return {} + }, + onLoad() { + // getRect挂载到$uv上,因为这方法需要使用in(this),所以无法把它独立成一个单独的文件导出 + this.$uv.getRect = this.$uvGetRect + }, + created() { + // 组件当中,只有created声明周期,为了能在组件使用,故也在created中将方法挂载到$uv + this.$uv.getRect = this.$uvGetRect + }, + computed: { + $uv() { + return { + ...index, + test, + route, + debounce, + throttle, + unit: uni?.$uv?.config?.unit + } + }, + /** + * 生成bem规则类名 + * 由于微信小程序,H5,nvue之间绑定class的差异,无法通过:class="[bem()]"的形式进行同用 + * 故采用如下折中做法,最后返回的是数组(一般平台)或字符串(支付宝和字节跳动平台),类似['a', 'b', 'c']或'a b c'的形式 + * @param {String} name 组件名称 + * @param {Array} fixed 一直会存在的类名 + * @param {Array} change 会根据变量值为true或者false而出现或者隐藏的类名 + * @returns {Array|string} + */ + bem() { + return function(name, fixed, change) { + // 类名前缀 + const prefix = `uv-${name}--` + const classes = {} + if (fixed) { + fixed.map((item) => { + // 这里的类名,会一直存在 + classes[prefix + this[item]] = true + }) + } + if (change) { + change.map((item) => { + // 这里的类名,会根据this[item]的值为true或者false,而进行添加或者移除某一个类 + this[item] ? (classes[prefix + item] = this[item]) : (delete classes[prefix + item]) + }) + } + return Object.keys(classes) + // 支付宝,头条小程序无法动态绑定一个数组类名,否则解析出来的结果会带有",",而导致失效 + // #ifdef MP-ALIPAY || MP-TOUTIAO || MP-LARK || MP-BAIDU + .join(' ') + // #endif + } + } + }, + methods: { + // 跳转某一个页面 + openPage(urlKey = 'url') { + const url = this[urlKey] + if (url) { + // 执行类似uni.navigateTo的方法 + uni[this.linkType]({ + url + }) + } + }, + // 查询节点信息 + // 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21) + // 解决办法为在组件根部再套一个没有任何作用的view元素 + $uvGetRect(selector, all) { + return new Promise((resolve) => { + uni.createSelectorQuery() + .in(this)[all ? 'selectAll' : 'select'](selector) + .boundingClientRect((rect) => { + if (all && Array.isArray(rect) && rect.length) { + resolve(rect) + } + if (!all && rect) { + resolve(rect) + } + }) + .exec() + }) + }, + getParentData(parentName = '') { + // 避免在created中去定义parent变量 + if (!this.parent) this.parent = {} + // 这里的本质原理是,通过获取父组件实例(也即类似uv-radio的父组件uv-radio-group的this) + // 将父组件this中对应的参数,赋值给本组件(uv-radio的this)的parentData对象中对应的属性 + // 之所以需要这么做,是因为所有端中,头条小程序不支持通过this.parent.xxx去监听父组件参数的变化 + // 此处并不会自动更新子组件的数据,而是依赖父组件uv-radio-group去监听data的变化,手动调用更新子组件的方法去重新获取 + this.parent = this.$uv.$parent.call(this, parentName) + if (this.parent.children) { + // 如果父组件的children不存在本组件的实例,才将本实例添加到父组件的children中 + this.parent.children.indexOf(this) === -1 && this.parent.children.push(this) + } + if (this.parent && this.parentData) { + // 历遍parentData中的属性,将parent中的同名属性赋值给parentData + Object.keys(this.parentData).map((key) => { + this.parentData[key] = this.parent[key] + }) + } + }, + // 阻止事件冒泡 + preventEvent(e) { + e && typeof(e.stopPropagation) === 'function' && e.stopPropagation() + }, + // 空操作 + noop(e) { + this.preventEvent(e) + } + }, + onReachBottom() { + uni.$emit('uvOnReachBottom') + }, + beforeDestroy() { + // 判断当前页面是否存在parent和chldren,一般在checkbox和checkbox-group父子联动的场景会有此情况 + // 组件销毁时,移除子组件在父组件children数组中的实例,释放资源,避免数据混乱 + if (this.parent && test.array(this.parent.children)) { + // 组件销毁时,移除父组件中的children数组中对应的实例 + const childrenList = this.parent.children + childrenList.map((child, index) => { + // 如果相等,则移除 + if (child === this) { + childrenList.splice(index, 1) + } + }) + } + }, + // 兼容vue3 + unmounted() { + if (this.parent && test.array(this.parent.children)) { + // 组件销毁时,移除父组件中的children数组中对应的实例 + const childrenList = this.parent.children + childrenList.map((child, index) => { + // 如果相等,则移除 + if (child === this) { + childrenList.splice(index, 1) + } + }) + } + } +} \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js b/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js new file mode 100644 index 0000000..90b6903 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/mixin/mpMixin.js @@ -0,0 +1,8 @@ +export default { + // #ifdef MP-WEIXIN + // 将自定义节点设置成虚拟的(去掉自定义组件包裹层),更加接近Vue组件的表现,能更好的使用flex属性 + options: { + virtualHost: true + } + // #endif +} \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/libs/mixin/mpShare.js b/uni_modules/uv-ui-tools/libs/mixin/mpShare.js new file mode 100644 index 0000000..c9695a0 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/mixin/mpShare.js @@ -0,0 +1,13 @@ +export default { + onLoad() { + // 设置默认的转发参数 + uni.$uv.mpShare = { + title: '', // 默认为小程序名称 + path: '', // 默认为当前页面路径 + imageUrl: '' // 默认为当前页面的截图 + } + }, + onShareAppMessage() { + return uni.$uv.mpShare + } +} \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/libs/mixin/openType.js b/uni_modules/uv-ui-tools/libs/mixin/openType.js new file mode 100644 index 0000000..1b94b7e --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/mixin/openType.js @@ -0,0 +1,47 @@ +export default { + props: { + openType: String + }, + emits: ['getphonenumber','getuserinfo','error','opensetting','launchapp','contact','chooseavatar','addgroupapp','chooseaddress','subscribe','login','im'], + methods: { + onGetPhoneNumber(event) { + this.$emit('getphonenumber', event.detail) + }, + onGetUserInfo(event) { + this.$emit('getuserinfo', event.detail) + }, + onError(event) { + this.$emit('error', event.detail) + }, + onOpenSetting(event) { + this.$emit('opensetting', event.detail) + }, + onLaunchApp(event) { + this.$emit('launchapp', event.detail) + }, + onContact(event) { + this.$emit('contact', event.detail) + }, + onChooseavatar(event) { + this.$emit('chooseavatar', event.detail) + }, + onAgreeprivacyauthorization(event) { + this.$emit('agreeprivacyauthorization', event.detail) + }, + onAddgroupapp(event) { + this.$emit('addgroupapp', event.detail) + }, + onChooseaddress(event) { + this.$emit('chooseaddress', event.detail) + }, + onSubscribe(event) { + this.$emit('subscribe', event.detail) + }, + onLogin(event) { + this.$emit('login', event.detail) + }, + onIm(event) { + this.$emit('im', event.detail) + } + } +} diff --git a/uni_modules/uv-ui-tools/libs/mixin/touch.js b/uni_modules/uv-ui-tools/libs/mixin/touch.js new file mode 100644 index 0000000..0ecbd88 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/mixin/touch.js @@ -0,0 +1,59 @@ +const MIN_DISTANCE = 10 + +function getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal' + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical' + } + return '' +} + +export default { + methods: { + getTouchPoint(e) { + if (!e) { + return { + x: 0, + y: 0 + } + } if (e.touches && e.touches[0]) { + return { + x: e.touches[0].pageX, + y: e.touches[0].pageY + } + } if (e.changedTouches && e.changedTouches[0]) { + return { + x: e.changedTouches[0].pageX, + y: e.changedTouches[0].pageY + } + } + return { + x: e.clientX || 0, + y: e.clientY || 0 + } + }, + resetTouchStatus() { + this.direction = '' + this.deltaX = 0 + this.deltaY = 0 + this.offsetX = 0 + this.offsetY = 0 + }, + touchStart(event) { + this.resetTouchStatus() + const touch = this.getTouchPoint(event) + this.startX = touch.x + this.startY = touch.y + }, + touchMove(event) { + const touch = this.getTouchPoint(event) + this.deltaX = touch.x - this.startX + this.deltaY = touch.y - this.startY + this.offsetX = Math.abs(this.deltaX) + this.offsetY = Math.abs(this.deltaY) + this.direction = this.direction || getDirection(this.offsetX, this.offsetY) + } + } +} diff --git a/uni_modules/uv-ui-tools/libs/util/dayjs.js b/uni_modules/uv-ui-tools/libs/util/dayjs.js new file mode 100644 index 0000000..c84ab68 --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/util/dayjs.js @@ -0,0 +1,216 @@ +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +var require_dayjs_min = __commonJS({ + "uvuidayjs"(exports, module) { + !function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e(); + }(exports, function() { + "use strict"; + var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", f = "month", h = "quarter", c = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) { + var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100; + return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]"; + } }, m = function(t2, e2, n2) { + var r2 = String(t2); + return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2; + }, v = { s: m, z: function(t2) { + var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60; + return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0"); + }, m: function t2(e2, n2) { + if (e2.date() < n2.date()) + return -t2(n2, e2); + var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, f), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), f); + return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0); + }, a: function(t2) { + return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2); + }, p: function(t2) { + return { M: f, y: c, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: h }[t2] || String(t2 || "").toLowerCase().replace(/s$/, ""); + }, u: function(t2) { + return void 0 === t2; + } }, g = "en", D = {}; + D[g] = M; + var p = function(t2) { + return t2 instanceof _; + }, S = function t2(e2, n2, r2) { + var i2; + if (!e2) + return g; + if ("string" == typeof e2) { + var s2 = e2.toLowerCase(); + D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2); + var u2 = e2.split("-"); + if (!i2 && u2.length > 1) + return t2(u2[0]); + } else { + var a2 = e2.name; + D[a2] = e2, i2 = a2; + } + return !r2 && i2 && (g = i2), i2 || !r2 && g; + }, w = function(t2, e2) { + if (p(t2)) + return t2.clone(); + var n2 = "object" == typeof e2 ? e2 : {}; + return n2.date = t2, n2.args = arguments, new _(n2); + }, O = v; + O.l = S, O.i = p, O.w = function(t2, e2) { + return w(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset }); + }; + var _ = function() { + function M2(t2) { + this.$L = S(t2.locale, null, true), this.parse(t2); + } + var m2 = M2.prototype; + return m2.parse = function(t2) { + this.$d = function(t3) { + var e2 = t3.date, n2 = t3.utc; + if (null === e2) + return new Date(NaN); + if (O.u(e2)) + return new Date(); + if (e2 instanceof Date) + return new Date(e2); + if ("string" == typeof e2 && !/Z$/i.test(e2)) { + var r2 = e2.match($); + if (r2) { + var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3); + return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2); + } + } + return new Date(e2); + }(t2), this.$x = t2.x || {}, this.init(); + }, m2.init = function() { + var t2 = this.$d; + this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds(); + }, m2.$utils = function() { + return O; + }, m2.isValid = function() { + return !(this.$d.toString() === l); + }, m2.isSame = function(t2, e2) { + var n2 = w(t2); + return this.startOf(e2) <= n2 && n2 <= this.endOf(e2); + }, m2.isAfter = function(t2, e2) { + return w(t2) < this.startOf(e2); + }, m2.isBefore = function(t2, e2) { + return this.endOf(e2) < w(t2); + }, m2.$g = function(t2, e2, n2) { + return O.u(t2) ? this[e2] : this.set(n2, t2); + }, m2.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, m2.valueOf = function() { + return this.$d.getTime(); + }, m2.startOf = function(t2, e2) { + var n2 = this, r2 = !!O.u(e2) || e2, h2 = O.p(t2), l2 = function(t3, e3) { + var i2 = O.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2); + return r2 ? i2 : i2.endOf(a); + }, $2 = function(t3, e3) { + return O.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2); + }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : ""); + switch (h2) { + case c: + return r2 ? l2(1, 0) : l2(31, 11); + case f: + return r2 ? l2(1, M3) : l2(0, M3 + 1); + case o: + var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2; + return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3); + case a: + case d: + return $2(v2 + "Hours", 0); + case u: + return $2(v2 + "Minutes", 1); + case s: + return $2(v2 + "Seconds", 2); + case i: + return $2(v2 + "Milliseconds", 3); + default: + return this.clone(); + } + }, m2.endOf = function(t2) { + return this.startOf(t2, false); + }, m2.$set = function(t2, e2) { + var n2, o2 = O.p(t2), h2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = h2 + "Date", n2[d] = h2 + "Date", n2[f] = h2 + "Month", n2[c] = h2 + "FullYear", n2[u] = h2 + "Hours", n2[s] = h2 + "Minutes", n2[i] = h2 + "Seconds", n2[r] = h2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2; + if (o2 === f || o2 === c) { + var y2 = this.clone().set(d, 1); + y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d; + } else + l2 && this.$d[l2]($2); + return this.init(), this; + }, m2.set = function(t2, e2) { + return this.clone().$set(t2, e2); + }, m2.get = function(t2) { + return this[O.p(t2)](); + }, m2.add = function(r2, h2) { + var d2, l2 = this; + r2 = Number(r2); + var $2 = O.p(h2), y2 = function(t2) { + var e2 = w(l2); + return O.w(e2.date(e2.date() + Math.round(t2 * r2)), l2); + }; + if ($2 === f) + return this.set(f, this.$M + r2); + if ($2 === c) + return this.set(c, this.$y + r2); + if ($2 === a) + return y2(1); + if ($2 === o) + return y2(7); + var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3; + return O.w(m3, this); + }, m2.subtract = function(t2, e2) { + return this.add(-1 * t2, e2); + }, m2.format = function(t2) { + var e2 = this, n2 = this.$locale(); + if (!this.isValid()) + return n2.invalidDate || l; + var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = O.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, f2 = n2.months, h2 = function(t3, n3, i3, s3) { + return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3); + }, c2 = function(t3) { + return O.s(s2 % 12 || 12, t3, "0"); + }, d2 = n2.meridiem || function(t3, e3, n3) { + var r3 = t3 < 12 ? "AM" : "PM"; + return n3 ? r3.toLowerCase() : r3; + }, $2 = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: a2 + 1, MM: O.s(a2 + 1, 2, "0"), MMM: h2(n2.monthsShort, a2, f2, 3), MMMM: h2(f2, a2), D: this.$D, DD: O.s(this.$D, 2, "0"), d: String(this.$W), dd: h2(n2.weekdaysMin, this.$W, o2, 2), ddd: h2(n2.weekdaysShort, this.$W, o2, 3), dddd: o2[this.$W], H: String(s2), HH: O.s(s2, 2, "0"), h: c2(1), hh: c2(2), a: d2(s2, u2, true), A: d2(s2, u2, false), m: String(u2), mm: O.s(u2, 2, "0"), s: String(this.$s), ss: O.s(this.$s, 2, "0"), SSS: O.s(this.$ms, 3, "0"), Z: i2 }; + return r2.replace(y, function(t3, e3) { + return e3 || $2[t3] || i2.replace(":", ""); + }); + }, m2.utcOffset = function() { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, m2.diff = function(r2, d2, l2) { + var $2, y2 = O.p(d2), M3 = w(r2), m3 = (M3.utcOffset() - this.utcOffset()) * e, v2 = this - M3, g2 = O.m(this, M3); + return g2 = ($2 = {}, $2[c] = g2 / 12, $2[f] = g2, $2[h] = g2 / 3, $2[o] = (v2 - m3) / 6048e5, $2[a] = (v2 - m3) / 864e5, $2[u] = v2 / n, $2[s] = v2 / e, $2[i] = v2 / t, $2)[y2] || v2, l2 ? g2 : O.a(g2); + }, m2.daysInMonth = function() { + return this.endOf(f).$D; + }, m2.$locale = function() { + return D[this.$L]; + }, m2.locale = function(t2, e2) { + if (!t2) + return this.$L; + var n2 = this.clone(), r2 = S(t2, e2, true); + return r2 && (n2.$L = r2), n2; + }, m2.clone = function() { + return O.w(this.$d, this); + }, m2.toDate = function() { + return new Date(this.valueOf()); + }, m2.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, m2.toISOString = function() { + return this.$d.toISOString(); + }, m2.toString = function() { + return this.$d.toUTCString(); + }, M2; + }(), T = _.prototype; + return w.prototype = T, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", f], ["$y", c], ["$D", d]].forEach(function(t2) { + T[t2[1]] = function(e2) { + return this.$g(e2, t2[0], t2[1]); + }; + }), w.extend = function(t2, e2) { + return t2.$i || (t2(e2, _, w), t2.$i = true), w; + }, w.locale = S, w.isDayjs = p, w.unix = function(t2) { + return w(1e3 * t2); + }, w.en = D[g], w.Ls = D, w.p = {}, w; + }); + } +}); +export default require_dayjs_min(); diff --git a/uni_modules/uv-ui-tools/libs/util/route.js b/uni_modules/uv-ui-tools/libs/util/route.js new file mode 100644 index 0000000..80c0afd --- /dev/null +++ b/uni_modules/uv-ui-tools/libs/util/route.js @@ -0,0 +1,126 @@ +/** + * 路由跳转方法,该方法相对于直接使用uni.xxx的好处是使用更加简单快捷 + * 并且带有路由拦截功能 + */ +import { queryParams, deepMerge, page } from '@/uni_modules/uv-ui-tools/libs/function/index.js' +class Router { + constructor() { + // 原始属性定义 + this.config = { + type: 'navigateTo', + url: '', + delta: 1, // navigateBack页面后退时,回退的层数 + params: {}, // 传递的参数 + animationType: 'pop-in', // 窗口动画,只在APP有效 + animationDuration: 300, // 窗口动画持续时间,单位毫秒,只在APP有效 + intercept: false ,// 是否需要拦截 + events: {} // 页面间通信接口,用于监听被打开页面发送到当前页面的数据。hbuilderx 2.8.9+ 开始支持。 + } + // 因为route方法是需要对外赋值给另外的对象使用,同时route内部有使用this,会导致route失去上下文 + // 这里在构造函数中进行this绑定 + this.route = this.route.bind(this) + } + + // 判断url前面是否有"/",如果没有则加上,否则无法跳转 + addRootPath(url) { + return url[0] === '/' ? url : `/${url}` + } + + // 整合路由参数 + mixinParam(url, params) { + url = url && this.addRootPath(url) + + // 使用正则匹配,主要依据是判断是否有"/","?","="等,如“/page/index/index?name=mary" + // 如果有url中有get参数,转换后无需带上"?" + let query = '' + if (/.*\/.*\?.*=.*/.test(url)) { + // object对象转为get类型的参数 + query = queryParams(params, false) + // 因为已有get参数,所以后面拼接的参数需要带上"&"隔开 + return url += `&${query}` + } + // 直接拼接参数,因为此处url中没有后面的query参数,也就没有"?/&"之类的符号 + query = queryParams(params) + return url += query + } + + // 对外的方法名称 + async route(options = {}, params = {}) { + // 合并用户的配置和内部的默认配置 + let mergeConfig = {} + + if (typeof options === 'string') { + // 如果options为字符串,则为route(url, params)的形式 + mergeConfig.url = this.mixinParam(options, params) + mergeConfig.type = 'navigateTo' + } else { + mergeConfig = deepMerge(this.config, options) + // 否则正常使用mergeConfig中的url和params进行拼接 + mergeConfig.url = this.mixinParam(options.url, options.params) + } + // 如果本次跳转的路径和本页面路径一致,不执行跳转,防止用户快速点击跳转按钮,造成多次跳转同一个页面的问题 + if (mergeConfig.url === page()) return + + if (params.intercept) { + mergeConfig.intercept = params.intercept + } + // params参数也带给拦截器 + mergeConfig.params = params + // 合并内外部参数 + mergeConfig = deepMerge(this.config, mergeConfig) + // 判断用户是否定义了拦截器 + if (typeof mergeConfig.intercept === 'function') { + // 定一个promise,根据用户执行resolve(true)或者resolve(false)来决定是否进行路由跳转 + const isNext = await new Promise((resolve, reject) => { + mergeConfig.intercept(mergeConfig, resolve) + }) + // 如果isNext为true,则执行路由跳转 + isNext && this.openPage(mergeConfig) + } else { + this.openPage(mergeConfig) + } + } + + // 执行路由跳转 + openPage(config) { + // 解构参数 + const { + url, + type, + delta, + animationType, + animationDuration, + events + } = config + if (config.type == 'navigateTo' || config.type == 'to') { + uni.navigateTo({ + url, + animationType, + animationDuration, + events + }) + } + if (config.type == 'redirectTo' || config.type == 'redirect') { + uni.redirectTo({ + url + }) + } + if (config.type == 'switchTab' || config.type == 'tab') { + uni.switchTab({ + url + }) + } + if (config.type == 'reLaunch' || config.type == 'launch') { + uni.reLaunch({ + url + }) + } + if (config.type == 'navigateBack' || config.type == 'back') { + uni.navigateBack({ + delta + }) + } + } +} + +export default (new Router()).route \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/package.json b/uni_modules/uv-ui-tools/package.json new file mode 100644 index 0000000..2d940f6 --- /dev/null +++ b/uni_modules/uv-ui-tools/package.json @@ -0,0 +1,81 @@ +{ + "id": "uv-ui-tools", + "displayName": "uv-ui-tools 工具集 全面兼容vue3+2、app、h5、小程序等多端", + "version": "1.1.25", + "description": "uv-ui-tools,集成工具库,强大的Http请求封装,清晰的文档说明,开箱即用。方便使用,可以全局使用", + "keywords": [ + "uv-ui-tools,uv-ui组件库,工具集,uvui,uView2.x" +], + "repository": "", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "type": "component-vue", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "插件不采集任何数据", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y", + "钉钉": "y", + "快手": "y", + "飞书": "y", + "京东": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/readme.md b/uni_modules/uv-ui-tools/readme.md new file mode 100644 index 0000000..79a7df5 --- /dev/null +++ b/uni_modules/uv-ui-tools/readme.md @@ -0,0 +1,23 @@ +## uv-ui-tools 工具集 + +> **组件名:uv-ui-tools** + +uv-ui工具集成,包括网络Http请求、便捷工具、节流防抖、对象操作、时间格式化、路由跳转、全局唯一标识符、规则校验等等。 + +该组件推荐配合[uv-ui组件库](https://www.uvui.cn/components/intro.html)使用,单独下载也可以在自己项目中使用,需要做相应的配置,可查看文档。强烈推荐使用[uv-ui组件库](https://www.uvui.cn/components/intro.html),导入组件都会自动导入`uv-ui-tools`。需要在自己的项目中使用请参考[扩展配置](https://www.uvui.cn/components/setting.html)。 + +uv-ui破釜沉舟之兼容vue3+2、app、h5、多端小程序的uni-app生态框架,大部分组件基于uView2.x,在经过改进后全面支持vue3,部分组件做了进一步的优化,修复大量BUG,支持单独导入,方便开发者选择导入需要的组件。开箱即用,灵活配置。 + +# 查看文档 + +## [下载完整示例项目](https://ext.dcloud.net.cn/plugin?name=uv-ui) (请不要 下载插件ZIP) + +### [更多插件,请关注uv-ui组件库](https://ext.dcloud.net.cn/plugin?name=uv-ui) + + + +![image](https://mp-a667b617-c5f1-4a2d-9a54-683a67cff588.cdn.bspapp.com/uv-ui/banner.png) + + + +#### 如使用过程中有任何问题反馈,或者您对uv-ui有一些好的建议,欢迎加入uv-ui官方交流群:官方QQ群 \ No newline at end of file diff --git a/uni_modules/uv-ui-tools/theme.scss b/uni_modules/uv-ui-tools/theme.scss new file mode 100644 index 0000000..cfaae92 --- /dev/null +++ b/uni_modules/uv-ui-tools/theme.scss @@ -0,0 +1,43 @@ +// 此文件为uvUI的主题变量,这些变量目前只能通过uni.scss引入才有效,另外由于 +// uni.scss中引入的样式会同时混入到全局样式文件和单独每一个页面的样式中,造成微信程序包太大, +// 故uni.scss只建议放scss变量名相关样式,其他的样式可以通过main.js或者App.vue引入 + +$uv-main-color: #303133; +$uv-content-color: #606266; +$uv-tips-color: #909193; +$uv-light-color: #c0c4cc; +$uv-border-color: #dadbde; +$uv-bg-color: #f3f4f6; +$uv-disabled-color: #c8c9cc; + +$uv-primary: #3c9cff; +$uv-primary-dark: #398ade; +$uv-primary-disabled: #9acafc; +$uv-primary-light: #ecf5ff; + +$uv-warning: #f9ae3d; +$uv-warning-dark: #f1a532; +$uv-warning-disabled: #f9d39b; +$uv-warning-light: #fdf6ec; + +$uv-success: #5ac725; +$uv-success-dark: #53c21d; +$uv-success-disabled: #a9e08f; +$uv-success-light: #f5fff0; + +$uv-error: #f56c6c; +$uv-error-dark: #e45656; +$uv-error-disabled: #f7b2b2; +$uv-error-light: #fef0f0; + +$uv-info: #909399; +$uv-info-dark: #767a82; +$uv-info-disabled: #c4c6c9; +$uv-info-light: #f4f4f5; + +@mixin flex($direction: row) { + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: $direction; +} \ No newline at end of file diff --git a/utils/common.js b/utils/common.js index 648b0df..55a7094 100644 --- a/utils/common.js +++ b/utils/common.js @@ -67,6 +67,43 @@ export const dateUtil = { if (days < 30) return `${days}天前`; return this.format(date, 'YYYY-MM-DD'); + }, + + /** + * 智能时间格式化 + * 今天 HH:mm + * 昨天 HH:mm + * 其他 MM-DD HH:mm + * @param {Date|string|number} date - 日期对象或时间戳 + * @returns {string} 格式化后的时间字符串 + */ + smart(date) { + if (!date) return ''; + + if (typeof date === 'string' || typeof date === 'number') { + date = new Date(date); + } + + const now = new Date(); + const today = new Date(now.getFullYear(), now.getMonth(), now.getDate()); + const yesterday = new Date(today); + yesterday.setDate(yesterday.getDate() - 1); + + const target = new Date(date.getFullYear(), date.getMonth(), date.getDate()); + + const hours = String(date.getHours()).padStart(2, '0'); + const minutes = String(date.getMinutes()).padStart(2, '0'); + const timeStr = `${hours}:${minutes}`; + + if (target.getTime() === today.getTime()) { + return `今天 ${timeStr}`; + } else if (target.getTime() === yesterday.getTime()) { + return `昨天 ${timeStr}`; + } else { + const month = String(date.getMonth() + 1).padStart(2, '0'); + const day = String(date.getDate()).padStart(2, '0'); + return `${month}-${day} ${timeStr}`; + } } }; @@ -329,18 +366,18 @@ export const util = { * @param {string} backgroundColor - 颜色值 * @returns {void} */ - setAndroidSystemBarColor(backgroundColor) { + setAndroidSystemBarColor(backgroundColor, frontColor = "#000000") { if (deviceUtil.isAndroid()) { try { // #ifndef APP-IOS if (plus.os.name === 'Android') { - console.log("1212333"); let color = plus.android.newObject("android.graphics.Color"); let activity = plus.android.runtimeMainActivity(); let colorInt = plus.android.invoke(color, "parseColor", backgroundColor); let window = plus.android.invoke(activity, "getWindow"); plus.android.invoke(window, "setNavigationBarColor", colorInt); uni.setNavigationBarColor({ + frontColor: frontColor, animation: { // 动画效果 duration: 100, timingFunc: 'easeIn' @@ -349,7 +386,7 @@ export const util = { console.log("状态栏设置完毕!"); setTimeout(function () { uni.setNavigationBarColor({ - backgroundColor: backgroundColor, + frontColor: frontColor, animation: { // 动画效果 duration: 100, timingFunc: 'easeIn' @@ -361,6 +398,7 @@ export const util = { } catch (err) { console.log("状态栏修改失败", err); uni.setNavigationBarColor({ + frontColor: frontColor, animation: { // 动画效果 duration: 100, timingFunc: 'easeIn' @@ -381,6 +419,14 @@ export const util = { }, + /** + * 返回 + */ + goBack() { + uni.navigateBack(); + }, + + /** * 点击标题弹出按钮 * @param e diff --git a/utils/requests.js b/utils/requests.js new file mode 100644 index 0000000..92d84fb --- /dev/null +++ b/utils/requests.js @@ -0,0 +1,434 @@ +// import InnerApp from "./InnerApp.js"; +import { + deepClone +} from "../uni_modules/uv-ui-tools/libs/function/index.js"; +import CryptoJS from "crypto-js"; + +// import pageData from "@/static/json/page.json" + +async function apiUserEvent(type, adminData, uniData) { + let orderData = uni.getStorageSync("UserEventOrder") + let uni_version = uni.getStorageSync("uni_version") + let AppUser = uni.getStorageSync('AppUser') + if (type != 'uni') { + await postJson('a', 'api/user/event', { + type: adminData.type, + key: adminData.type + ".uni." + adminData.key, + value: adminData.value, + extra: JSON.stringify({ + uni_version: uni_version, + ...adminData.extra + }), + }) + } + if (type != 'admin') { + // 公共 + let ggData = { + app_id: AppUser.app_id, + user_name: AppUser.name, //宿主用户id + uni_version: uni_version, //uni版本号 + app_version: plus.runtime.version, //宿主版本号 + } + uni.report(uniData.type, { + ...ggData, + ...uniData.data, + ...orderData + }) + } +} +// 辅助函数:参数编码 +function encodeParam(data) { + let params = deepClone(data); + let url = ''; + let keys = Object.keys(params); + keys.forEach(res => { + if ((params[res] && params[res] != "") || params[res] === 0) { + if (typeof (params[res]) != 'string' && typeof (params[res]) != 'number') { + params[res] = 'Object'; + } + url += "&"; + url += res; + url += "="; + url += encodeURIComponent(params[res]); + } + }); + url = url ? url.substring(1) : ''; + return url; +} + +// 辅助函数:参数解码 +function decodeParam(zipStr) { + var route = ''; + for (var i = 0; i < zipStr.length; i += 1) { + var chr = zipStr.charAt(i); + if (chr === '+') { + route += ' '; + } else if (chr === '%') { + var asc = zipStr.substring(i + 1, i + 3); + if (parseInt('0x' + asc) > 0x7f) { + route += decodeURI('%' + asc.toString() + zipStr.substring(i + 3, i + 9).toString()); + i += 8; + } else { + route += String.fromCharCode(parseInt('0x' + asc)); + i += 2; + } + } else { + route += chr; + } + } + let data = route.split('?'); + let params = {}; + let data2; + try { + if (data.length >= 2) { + data2 = data[1].split('&'); + } else if (data.length == 1) { + data2 = data[0].split('&'); + } else { + return {}; + } + } catch (e) { + return {}; + } + data2.forEach(res => { + let parts = res.split('='); + if (parts.length >= 2) { + params[parts[0]] = decodeURIComponent(parts.slice(1).join('=')); + } + }); + return params; +} + +// AES解密函数 +const deCode = (str) => { + try { + var key = CryptoJS.enc.Utf8.parse(uni.getStorageSync('decrypt')); + let iv = key.clone(); + iv.sigBytes = 16; + iv.clamp(); + let res = CryptoJS.AES.decrypt(str, key, { + iv, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7, + }).toString(CryptoJS.enc.Utf8); + return JSON.parse(res); + } catch (error) { + console.error('Decryption error:', error); + throw new Error('Failed to decrypt data'); + } +}; + +// 生成UUID +function generateUUID() { + var d = new Date().getTime(); + var uuid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace( + /[xy]/g, + function (c) { + var r = (d + Math.random() * 16) % 16 | 0; + d = Math.floor(d / 16); + return (c === "x" ? r : (r & 0x3) | 0x8).toString(16); + } + ); + return uuid; +} + +// 主请求函数 +const request = (method = 'GET', serverUrl, domainUrl, params, dataType = "json") => { + let currentUrl + // try { + // let pages = getCurrentPages(); + // let currentPage = pages[pages.length - 2]; + // currentUrl = currentPage.route; + // currentUrl = pageData[currentUrl] + // } catch (e) { + + // } + let q = serverUrl + // 头部header + let header = uni.getStorageSync('header') || {}; + // 请求地址 + serverUrl = uni.getStorageSync('host') || serverUrl; + if (q == 'test') { + serverUrl = "http://10.3.0.24:9209/" + header['x-token'] = "bdf87a98-eef0-47df-9faf-41d547b0457e" + } + let url = domianUrl(serverUrl, domainUrl); + if (q != 'test') { + params = deepClone(params); + } + + var key = uni.getStorageSync('encrypt') || "default_encrypt_key"; + let data = {}; + console.log("传参", method === "GET" || method === "DELETE" || q == 'q') + if (method === "GET" || method === "DELETE" || q == 'q') { + params.timestamp = Math.floor(new Date().getTime() / 1000); + params.nonce = generateUUID(); + let keys = Object.keys(params); + keys.sort(); + for (let i in keys) { + keys[i] = keys[i] + "=" + encodeURIComponent(params[keys[i]]); + } + let temp = keys.join("&") + "&" + CryptoJS.MD5(key).toString(); + params.signature = CryptoJS.MD5(temp).toString(); + data = { + url: url + "?" + encodeParam(params), + method, + header: header // setheader(dataType, header), + }; + } else if (method === "POST" || method === "PUT") { + let temp = decodeParam(url); + temp.timestamp = Math.floor(new Date().getTime() / 1000); + temp.nonce = generateUUID(); + let keys = Object.keys(temp); + keys.sort(); + for (let i in keys) { + keys[i] = keys[i] + "=" + encodeURIComponent(temp[keys[i]]); + } + let s = keys.join("&"); + s += "&" + JSON.stringify(params); + s += "&" + CryptoJS.MD5(key).toString(); + temp.signature = CryptoJS.MD5(s).toString(); + url = url.split("?")[0] + "?" + encodeParam(temp); + + data = { + url, + method, + header: header, + data: params, + }; + } + + console.log("传参详情", data) + return new Promise((resolve, reject) => { + uni.request(data).then(res => { + if (res.statusCode == 200) { + if (res.data.encrypt) { + if (q != 'test') { + res.data = deCode(res.data.data); + } else { + res.data = res.data.data + } + + } + if (res.data.code == 1001003 || res.data.code == 1001004 || res.data.code == 1001005) { + uni.hideLoading(); + uni.showToast({ + icon: 'none', + title: '登录失效,请重新登录' + }) + return reject(res); + } else if (res.data.code != 0) { + if (data.method == 'POST' && domainUrl == 'api/order') { + + apiUserEvent('all', { + type: "event", + key: "order_fail", + value: "下单失败", + extra: { + from: currentUrl, + data: data, + res: res + } + }, { + type: 'order_fail', + data: { + from: currentUrl, + res: res + } + }) + } + + uni.hideLoading(); + uni.showToast({ + icon: 'none', + title: res.data.message + }) + return reject(res); + } + + if (data.method == 'POST' && domainUrl == 'api/order') { + apiUserEvent('all', { + type: "event", + key: "order_success", + value: "下单成功", + extra: { + from: currentUrl, + data: data, + res: res + } + }, { + type: 'order_success', + data: { + from: currentUrl + } + }) + } + + resolve(res.data); + } else { + // InnerApp.addRequestLog(url, data, res) + reject(res); + } + }).catch(err => { + if (err.errMsg == 'request:fail timeout') { + uniToast('请求超时,请重试!'); + } else if (err.errMsg == 'request:fail') { + uniToast('无网络!'); + } else { + apiUserEvent('uni', { + type: "event", + key: "err", + value: "下单成功", + extra: {} + }, { + type: 'request_err', + data: { + err: JSON.stringify(err) + } + }) + // uni.showModal({ + // title: '提示', + // content: JSON.stringify(err), + // success: function (res) { + // if (res.confirm) { + // console.log('用户点击确定'); + // } else if (res.cancel) { + // console.log('用户点击取消'); + // } + // } + // }); + // uniToast('服务器繁忙'); + } + // InnerApp.addRequestLog(url, data, err) + reject(err); + }); + }); +}; + +/** + * 处理请求头 + * @param dataType 是否json格式 + * @param baseHeader 基础header + */ +const setheader = (dataType, baseHeader = {}) => { + let header = { + ...baseHeader + }; + if (dataType == 'json') { + header['Content-Type'] = 'application/json;charset=UTF-8'; + } else { + header['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; + } + + // 获取系统信息 - 需要实际实现 + var systeminfo = { + appChannel: "wx-mp", + brand: "", + model: "", + deviceId: "", + platform: "wx-mp" + }; + + header['x-version'] = "2.3.0"; + header['x-channel'] = systeminfo.appChannel || "wx-mp"; + header['x-mobile-brand'] = systeminfo.brand || ""; + header['x-mobile-model'] = systeminfo.model || ""; + header['x-device-id'] = systeminfo.deviceId || ""; + header['x-base-version'] = "2.3.0"; + header['x-platform'] = systeminfo.platform || "wx-mp"; + + // 以下需要实际实现 + // const shop = InnerApp.getShop(); + // if (shop) { + // header['x-member-store'] = shop; + // } + // header['x-package'] = InnerApp.packageName; + // var token = InnerApp.getToken(); + // if (token) { + // header['x-token'] = token; + // } + + return header; +}; + +/** + * 处理接口URL + * @param serveUrl 请求服务器地址 + * @param domainUrl 接口路径 + */ +const domianUrl = (serveUrl, domainUrl) => { + // #ifdef H5 + // H5环境下使用相对路径,走 vite 代理,避免 CORS 跨域问题 + const finalUrl = domainUrl.startsWith('/') ? domainUrl : '/' + domainUrl; + console.log('[H5代理] 原始URL:', domainUrl, '→ 代理URL:', finalUrl); + return finalUrl; + // #endif + + // #ifndef H5 + // 非H5环境(APP、小程序等)使用完整URL + let finalUrl; + if (serveUrl.endsWith('/') && domainUrl.startsWith('/')) { + finalUrl = serveUrl + domainUrl.substring(1); + } else if (!serveUrl.endsWith('/') && !domainUrl.startsWith('/')) { + finalUrl = serveUrl + '/' + domainUrl; + } else { + finalUrl = serveUrl + domainUrl; + } + console.log('[非H5] 完整URL:', finalUrl); + return finalUrl; + // #endif +}; + +/** + * 处理吐司 + * @param msg 吐司内容 + * @param duration 吐司时间 + */ +const uniToast = (msg, duration = 2000) => { + uni.showToast({ + title: msg, + duration: duration, + icon: 'none' + }); +}; + +// HTTP方法封装 +const get = (serverUrl, url, params = {}) => { + return request('GET', serverUrl, url, params); +}; + +const post = (serverUrl, url, params = {}) => { + return request('POST', serverUrl, url, params); +}; + +const postJson = (serverUrl, url, params = {}) => { + return request('POST', serverUrl, url, params, 'json'); +}; + +const put = (serverUrl, url, params = {}) => { + return request('PUT', serverUrl, url, params); +}; + +const putJson = (serverUrl, url, params = {}) => { + return request('PUT', serverUrl, url, params, 'json'); +}; + +const del = (serverUrl, url, params = {}) => { + return request('DELETE', serverUrl, url, params); +}; + +const delJson = (serverUrl, url, params = {}) => { + return request('DELETE', serverUrl, url, params, 'json'); +}; + +export { + get, + post, + postJson, + put, + putJson, + del, + delJson, + encodeParam, + decodeParam +}; \ No newline at end of file diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..f1b52c9 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,32 @@ +import { defineConfig } from 'vite' +import uni from '@dcloudio/vite-plugin-uni' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [uni()], + server: { + // 配置开发服务器 + port: 5173, + host: '0.0.0.0', + // 配置代理解决 H5 端跨域问题 + proxy: { + '/api': { + target: 'https://flaunt.batiao8.com', + changeOrigin: true, + secure: false, + ws: true, + configure: (proxy, options) => { + proxy.on('proxyReq', (proxyReq, req, res) => { + console.log('[Vite Proxy] 请求:', req.method, req.url, '→', options.target + req.url); + }); + proxy.on('proxyRes', (proxyRes, req, res) => { + console.log('[Vite Proxy] 响应:', proxyRes.statusCode, req.url); + }); + proxy.on('error', (err, req, res) => { + console.error('[Vite Proxy] 代理错误:', err.message); + }); + } + } + } + } +})

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 literal 0 HcmV?d00001 diff --git a/static/image/index/lifetime-vip-bg.png b/static/image/index/lifetime-vip-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..880d3bc4491d9c7de1a237b43ad97f05f8b5c1d7 GIT binary patch literal 42385 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