diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c6259b2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules +unpackage +.hbuilder +.vite \ No newline at end of file diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..8c2b732 --- /dev/null +++ b/App.vue @@ -0,0 +1,17 @@ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..c3ff205 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..c1caf36 --- /dev/null +++ b/main.js @@ -0,0 +1,22 @@ +import App from './App' + +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor' +Vue.config.productionTip = false +App.mpType = 'app' +const app = new Vue({ + ...App +}) +app.$mount() +// #endif + +// #ifdef VUE3 +import { createSSRApp } from 'vue' +export function createApp() { + const app = createSSRApp(App) + return { + app + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..52e8e34 --- /dev/null +++ b/manifest.json @@ -0,0 +1,72 @@ +{ + "name" : "足球人", + "appid" : "__UNI__9C758F7", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "3" +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..869105d --- /dev/null +++ b/pages.json @@ -0,0 +1,17 @@ +{ + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "uni-app" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + }, + "uniIdRouter": {} +} diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..ec0ec26 --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/static/logo.png b/static/logo.png new file mode 100644 index 0000000..b5771e2 Binary files /dev/null and b/static/logo.png differ diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js new file mode 100644 index 0000000..47fbce1 --- /dev/null +++ b/uni.promisify.adaptor.js @@ -0,0 +1,10 @@ +uni.addInterceptor({ + returnValue (res) { + if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) { + return res; + } + return new Promise((resolve, reject) => { + res.then((res) => res[0] ? reject(res[0]) : resolve(res[1])); + }); + }, +}); \ No newline at end of file diff --git a/uni_modules/uview-plus/LICENSE b/uni_modules/uview-plus/LICENSE new file mode 100644 index 0000000..8e39ead --- /dev/null +++ b/uni_modules/uview-plus/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 www.uviewui.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/uni_modules/uview-plus/README.md b/uni_modules/uview-plus/README.md new file mode 100644 index 0000000..427a3ee --- /dev/null +++ b/uni_modules/uview-plus/README.md @@ -0,0 +1,64 @@ +

+ logo +

+

uview-plus 3.0

+

多平台快速开发的UI框架

+ +[![stars](https://img.shields.io/github/stars/ijry/uview-plus?style=flat-square&logo=GitHub)](https://github.com/ijry/uview-plus) +[![forks](https://img.shields.io/github/forks/ijry/uview-plus?style=flat-square&logo=GitHub)](https://github.com/ijry/uview-plus) +[![issues](https://img.shields.io/github/issues/ijry/uview-plus?style=flat-square&logo=GitHub)](https://github.com/ijry/uview-plus/issues) +[![release](https://img.shields.io/github/v/release/ijry/uview-plus?style=flat-square)](https://gitee.com/jry/uview-plus/releases) +[![license](https://img.shields.io/github/license/ijry/uview-plus?style=flat-square)](https://en.wikipedia.org/wiki/MIT_License) + +## 说明 + +uview-plus,是uni-app全面兼容vue3/nvue的uni-app生态框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水。uview-plus是基于uView2.x移植的支持vue3的版本,感谢uView。 + +## [官方文档:https://uview-plus.jiangruyi.com](https://uview-plus.jiangruyi.com) + + +## 预览 + +您可以通过**微信**扫码,查看最佳的演示效果。 +
+
+ + +## 链接 + +- [官方文档](https://uview-plus.jiangruyi.com) +- [更新日志](https://uview-plus.jiangruyi.com/components/changelog.html) +- [升级指南](https://uview-plus.jiangruyi.com/components/changeGuide.html) +- [关于我们](https://uview-plus.jiangruyi.com/cooperation/about.html) + +## 交流反馈 + +欢迎加入我们的QQ群交流反馈:[点此跳转](https://uview-plus.jiangruyi.com/components/addQQGroup.html) + +## 关于PR + +> 我们非常乐意接受各位的优质PR,但在此之前我希望您了解uview-plus是一个需要兼容多个平台的(小程序、h5、ios app、android app)包括nvue页面、vue页面。 +> 所以希望在您修复bug并提交之前尽可能的去这些平台测试一下兼容性。最好能携带测试截图以方便审核。非常感谢! + +## 安装 + +#### **uni-app插件市场链接** —— [https://ext.dcloud.net.cn/plugin?name=uview-plus](https://ext.dcloud.net.cn/plugin?name=uview-plus) + +请通过[官网安装文档](https://uview-plus.jiangruyi.com/components/install.html)了解更详细的内容 + +## 快速上手 + +请通过[快速上手](https://uview-plus.jiangruyi.com/components/quickstart.html)了解更详细的内容 + +## 使用方法 +配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。 + +```html + +``` + +## 版权信息 +uview-plus遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uview-plus应用到您的产品中。 + diff --git a/uni_modules/uview-plus/changelog.md b/uni_modules/uview-plus/changelog.md new file mode 100644 index 0000000..19accd5 --- /dev/null +++ b/uni_modules/uview-plus/changelog.md @@ -0,0 +1,145 @@ +## 3.2.10(2024-04-17) +完善input清空事件App端失效的兼容性 + +修复日历组件二次打开后当前月份显示不正确 + +## 3.2.9(2024-04-16) +组件内uni.$u用法改为import引入 + +规范化及兼容性增强 + +## 3.2.8(2024-04-15) +修复up-tag语法错 +## 3.2.7(2024-04-15) +修复下拉菜单背景色在支付宝小程序无效 + +setConfig改为浅拷贝解决无法用import导入代替uni.$u.props设置 + +## 3.2.6(2024-04-14) +修复某些情况下滑动单元格默认右侧按钮是展开的问题 +## 3.2.5(2024-04-13) +调整分段器尺寸及修复窗口大小改变时重新计算尺寸 + +多个组件支持cursor-pointer增强PC端体验 + +## 3.2.4(2024-04-12) +初步支持typescript +## 3.2.3(2024-04-12) +fix: 修复square属性在小程序下无效问题 + +fix:修复lastIndex异常导致的column异常问题 + +fix: alipayapp picker style + +feat(button): 添加用户同意隐私协议事件回调 + +fix: input switch password + +fix: 修复u-code组件keepRuning失效问题 + +feat: form-item添加labelPosition属性 + +新增dropdown组件 + +分段器支持内部current值 + +优化cell和action-sheet视觉大小 + +修复tabs文字换行 + +## 3.2.2(2024-04-11) +修复换行符问题 +## 3.2.1(2024-04-11) +修复演示H5二维码 + +fix: #270 ReadMore 展开阅读更多内容变化兼容 + +fix: #238Calendar组件maxDate修改为不能小于minDate + +checkbox支持独立使用 + +修复popup中在微信小程序中真机调试滚动失效 + +## 3.2.0(2024-04-10) +修复轮播图在nvue显示 +修复疑似u-slider名称被占用导致slider在App下不显示 +解决微信小程序提示 Some selectors are not allowed in component wxss +示例中u-前缀统一为up- +增加瀑布流与图片懒加载组件 +fix: #308修复tag组件缺失iconColor参数 +fix: #297使用grid布局解决目前编译为抖音小程序无法开启virtualHost +## 3.1.52(2024-04-07) +工具类方法调用import化改造 +新增up-copy复制组件 +## 3.1.51(2024-04-07) +优化时间选择器自带输入框格式化显示 +防止按钮文字换行 +修复订单列表模板滑动 +增加u-qrcode二维码组件 +## 3.1.49(2024-03-27) +日期时间组件支持自带输入框 +fix: popup弹窗滚动穿透问题 +fix: 修复小程序numberbox bug +## 3.1.48(2024-03-18) +fix:[plugin:uni:pre-css] Unbalanced delimiter found in string +## 3.1.47(2024-03-18) +fix: setConfig设置组件默认参数无效问题 +fix: 修复自定义图标无效问题 +feat: 增加u-form-item单独设置规则变量 +fix:#293小程序是自定义导航栏的时候即传了customNavHeight的时候会出现跳转偏移的情况 + +## 3.1.46(2024-01-29) +beforeUnmount +## 3.1.45(2024-01-24) +fix: #262ext组件为超链接的情况下size属性不生效 +fix: #263最新版本3.1.42中微信小程序u-swipe-action-item报错 +fix: #224最新版本3.1.42中微信小程序u-swipe-action-item报错 +fix: #263支持支付宝小程序 +fix: #261u-input在直接修改v-model的绑定值时,每隔一次会无法出发change事件 +优化折叠面板兼容微信小程序 +## 3.1.42(2024-01-15) +修复u-number-box默认值0时在小程序不显示值 +优化u-code的timer判断 +优化支付宝小程序下textarea字数统计兼容 +优化u-calendar +## 3.1.41(2023-11-18) +#215优化u-cell图标容器间距问题 +## 3.1.40(2023-11-16) +修复u-slider双向绑定 +## 3.1.39(2023-11-10) +修复头条小程序不支持env(safe-area-inset-bottom) +优化#201u-grid 指定列数导致闪烁 +#193IndexList 索引列表 高度错误 +其他优化 +## 3.1.38(2023-10-08) +修复u-slider +## 3.1.37(2023-09-13) +完善emits定义及修复code-input双向数据绑定 +## 3.1.36(2023-08-08) +修复富文本事件名称大小写 +## 3.1.35(2023-08-02) +修复编译到支付宝小程序u-form报错 +## 3.1.34(2023-07-27) +修复App打包uni.$u.mpMixin方式sdk暂时不支持导致报错 +## 3.1.33(2023-07-13) +修复弹窗进入动画、模板页面样式等 +## 3.1.31(2023-07-11) +修复dayjs引用 +## 3.0.8(2022-07-12) +修复u-tag默认宽度撑满容器 +## 3.0.7(2022-07-12) +修复u-navbar自定义插槽演示示例 +## 3.0.6(2022-07-11) +修复u-image缺少emits申明 +## 3.0.5(2022-07-11) +修复u-upload缺少emits申明 +## 3.0.4(2022-07-10) +修复u-textarea/u-input/u-datetime-picker/u-number-box/u-radio-group/u-switch/u-rate在vue3下数据绑定 +## 3.0.3(2022-07-09) +启用自建演示二维码 +## 3.0.2(2022-07-09) +修复dayjs/clipboard等导致打包报错 +## 3.0.1(2022-07-09) +增加插件市场地址 +## 3.0.0(2022-07-09) +# uview-plus(vue3)初步发布 diff --git a/uni_modules/uview-plus/components/u--form/u--form.vue b/uni_modules/uview-plus/components/u--form/u--form.vue new file mode 100644 index 0000000..9279e62 --- /dev/null +++ b/uni_modules/uview-plus/components/u--form/u--form.vue @@ -0,0 +1,80 @@ + + + diff --git a/uni_modules/uview-plus/components/u--image/u--image.vue b/uni_modules/uview-plus/components/u--image/u--image.vue new file mode 100644 index 0000000..ba8d6ca --- /dev/null +++ b/uni_modules/uview-plus/components/u--image/u--image.vue @@ -0,0 +1,50 @@ + + + \ No newline at end of file diff --git a/uni_modules/uview-plus/components/u--input/u--input.vue b/uni_modules/uview-plus/components/u--input/u--input.vue new file mode 100644 index 0000000..6b6f73b --- /dev/null +++ b/uni_modules/uview-plus/components/u--input/u--input.vue @@ -0,0 +1,74 @@ + + + \ No newline at end of file diff --git a/uni_modules/uview-plus/components/u--text/u--text.vue b/uni_modules/uview-plus/components/u--text/u--text.vue new file mode 100644 index 0000000..bf40e18 --- /dev/null +++ b/uni_modules/uview-plus/components/u--text/u--text.vue @@ -0,0 +1,45 @@ + + + diff --git a/uni_modules/uview-plus/components/u--textarea/u--textarea.vue b/uni_modules/uview-plus/components/u--textarea/u--textarea.vue new file mode 100644 index 0000000..096644e --- /dev/null +++ b/uni_modules/uview-plus/components/u--textarea/u--textarea.vue @@ -0,0 +1,47 @@ + + + diff --git a/uni_modules/uview-plus/components/u-action-sheet/props.js b/uni_modules/uview-plus/components/u-action-sheet/props.js new file mode 100644 index 0000000..d278dac --- /dev/null +++ b/uni_modules/uview-plus/components/u-action-sheet/props.js @@ -0,0 +1,55 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 操作菜单是否展示 (默认false) + show: { + type: Boolean, + default: () => defProps.actionSheet.show + }, + // 标题 + title: { + type: String, + default: () => defProps.actionSheet.title + }, + // 选项上方的描述信息 + description: { + type: String, + default: () => defProps.actionSheet.description + }, + // 数据 + actions: { + type: Array, + default: () => defProps.actionSheet.actions + }, + // 取消按钮的文字,不为空时显示按钮 + cancelText: { + type: String, + default: () => defProps.actionSheet.cancelText + }, + // 点击某个菜单项时是否关闭弹窗 + closeOnClickAction: { + type: Boolean, + default: () => defProps.actionSheet.closeOnClickAction + }, + // 处理底部安全区(默认true) + safeAreaInsetBottom: { + type: Boolean, + default: () => defProps.actionSheet.safeAreaInsetBottom + }, + // 小程序的打开方式 + openType: { + type: String, + default: () => defProps.actionSheet.openType + }, + // 点击遮罩是否允许关闭 (默认true) + closeOnClickOverlay: { + type: Boolean, + default: () => defProps.actionSheet.closeOnClickOverlay + }, + // 圆角值 + round: { + type: [Boolean, String, Number], + default: () => defProps.actionSheet.round + } + } +} diff --git a/uni_modules/uview-plus/components/u-action-sheet/u-action-sheet.vue b/uni_modules/uview-plus/components/u-action-sheet/u-action-sheet.vue new file mode 100644 index 0000000..91c7eb3 --- /dev/null +++ b/uni_modules/uview-plus/components/u-action-sheet/u-action-sheet.vue @@ -0,0 +1,281 @@ + + + + + + diff --git a/uni_modules/uview-plus/components/u-album/props.js b/uni_modules/uview-plus/components/u-album/props.js new file mode 100644 index 0000000..f092a34 --- /dev/null +++ b/uni_modules/uview-plus/components/u-album/props.js @@ -0,0 +1,60 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 图片地址,Array|Array形式 + urls: { + type: Array, + default: () => defProps.album.urls + }, + // 指定从数组的对象元素中读取哪个属性作为图片地址 + keyName: { + type: String, + default: () => defProps.album.keyName + }, + // 单图时,图片长边的长度 + singleSize: { + type: [String, Number], + default: () => defProps.album.singleSize + }, + // 多图时,图片边长 + multipleSize: { + type: [String, Number], + default: () => defProps.album.multipleSize + }, + // 多图时,图片水平和垂直之间的间隔 + space: { + type: [String, Number], + default: () => defProps.album.space + }, + // 单图时,图片缩放裁剪的模式 + singleMode: { + type: String, + default: () => defProps.album.singleMode + }, + // 多图时,图片缩放裁剪的模式 + multipleMode: { + type: String, + default: () => defProps.album.multipleMode + }, + // 最多展示的图片数量,超出时最后一个位置将会显示剩余图片数量 + maxCount: { + type: [String, Number], + default: () => defProps.album.maxCount + }, + // 是否可以预览图片 + previewFullImage: { + type: Boolean, + default: () => defProps.album.previewFullImage + }, + // 每行展示图片数量,如设置,singleSize和multipleSize将会无效 + rowCount: { + type: [String, Number], + default: () => defProps.album.rowCount + }, + // 超出maxCount时是否显示查看更多的提示 + showMore: { + type: Boolean, + default: () => defProps.album.showMore + } + } +} diff --git a/uni_modules/uview-plus/components/u-album/u-album.vue b/uni_modules/uview-plus/components/u-album/u-album.vue new file mode 100644 index 0000000..e3f2493 --- /dev/null +++ b/uni_modules/uview-plus/components/u-album/u-album.vue @@ -0,0 +1,264 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/uview-plus/components/u-alert/props.js b/uni_modules/uview-plus/components/u-alert/props.js new file mode 100644 index 0000000..f3846e4 --- /dev/null +++ b/uni_modules/uview-plus/components/u-alert/props.js @@ -0,0 +1,45 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 显示文字 + title: { + type: String, + default: () => defProps.alert.title + }, + // 主题,success/warning/info/error + type: { + type: String, + default: () => defProps.alert.type + }, + // 辅助性文字 + description: { + type: String, + default: () => defProps.alert.description + }, + // 是否可关闭 + closable: { + type: Boolean, + default: () => defProps.alert.closable + }, + // 是否显示图标 + showIcon: { + type: Boolean, + default: () => defProps.alert.showIcon + }, + // 浅或深色调,light-浅色,dark-深色 + effect: { + type: String, + default: () => defProps.alert.effect + }, + // 文字是否居中 + center: { + type: Boolean, + default: () => defProps.alert.center + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: () => defProps.alert.fontSize + } + } +} diff --git a/uni_modules/uview-plus/components/u-alert/u-alert.vue b/uni_modules/uview-plus/components/u-alert/u-alert.vue new file mode 100644 index 0000000..e2d9456 --- /dev/null +++ b/uni_modules/uview-plus/components/u-alert/u-alert.vue @@ -0,0 +1,249 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-avatar-group/props.js b/uni_modules/uview-plus/components/u-avatar-group/props.js new file mode 100644 index 0000000..1f429ea --- /dev/null +++ b/uni_modules/uview-plus/components/u-avatar-group/props.js @@ -0,0 +1,53 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 头像图片组 + urls: { + type: Array, + default: () => defProps.avatarGroup.urls + }, + // 最多展示的头像数量 + maxCount: { + type: [String, Number], + default: () => defProps.avatarGroup.maxCount + }, + // 头像形状 + shape: { + type: String, + default: () => defProps.avatarGroup.shape + }, + // 图片裁剪模式 + mode: { + type: String, + default: () => defProps.avatarGroup.mode + }, + // 超出maxCount时是否显示查看更多的提示 + showMore: { + type: Boolean, + default: () => defProps.avatarGroup.showMore + }, + // 头像大小 + size: { + type: [String, Number], + default: () => defProps.avatarGroup.size + }, + // 指定从数组的对象元素中读取哪个属性作为图片地址 + keyName: { + type: String, + default: () => defProps.avatarGroup.keyName + }, + // 头像之间的遮挡比例 + gap: { + type: [String, Number], + validator(value) { + return value >= 0 && value <= 1 + }, + default: () => defProps.avatarGroup.gap + }, + // 需额外显示的值 + extraValue: { + type: [Number, String], + default: () => defProps.avatarGroup.extraValue + } + } +} diff --git a/uni_modules/uview-plus/components/u-avatar-group/u-avatar-group.vue b/uni_modules/uview-plus/components/u-avatar-group/u-avatar-group.vue new file mode 100644 index 0000000..6570df3 --- /dev/null +++ b/uni_modules/uview-plus/components/u-avatar-group/u-avatar-group.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-avatar/props.js b/uni_modules/uview-plus/components/u-avatar/props.js new file mode 100644 index 0000000..c0212e8 --- /dev/null +++ b/uni_modules/uview-plus/components/u-avatar/props.js @@ -0,0 +1,80 @@ +import defProps from '../../libs/config/props.js'; +import test from '../../libs/function/test'; +export default { + props: { + // 头像图片路径(不能为相对路径) + src: { + type: String, + default: () => defProps.avatar.src + }, + // 头像形状,circle-圆形,square-方形 + shape: { + type: String, + default: () => defProps.avatar.shape + }, + // 头像尺寸 + size: { + type: [String, Number], + default: () => defProps.avatar.size + }, + // 裁剪模式 + mode: { + type: String, + default: () => defProps.avatar.mode + }, + // 显示的文字 + text: { + type: String, + default: () => defProps.avatar.text + }, + // 背景色 + bgColor: { + type: String, + default: () => defProps.avatar.bgColor + }, + // 文字颜色 + color: { + type: String, + default: () => defProps.avatar.color + }, + // 文字大小 + fontSize: { + type: [String, Number], + default: () => defProps.avatar.fontSize + }, + // 显示的图标 + icon: { + type: String, + default: () => defProps.avatar.icon + }, + // 显示小程序头像,只对百度,微信,QQ小程序有效 + mpAvatar: { + type: Boolean, + default: () => defProps.avatar.mpAvatar + }, + // 是否使用随机背景色 + randomBgColor: { + type: Boolean, + default: () => defProps.avatar.randomBgColor + }, + // 加载失败的默认头像(组件有内置默认图片) + defaultUrl: { + type: String, + default: () => defProps.avatar.defaultUrl + }, + // 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间 + colorIndex: { + type: [String, Number], + // 校验参数规则,索引在0-19之间 + validator(n) { + return test.range(n, [0, 19]) || n === '' + }, + default: () => defProps.avatar.colorIndex + }, + // 组件标识符 + name: { + type: String, + default: () => defProps.avatar.name + } + } +} diff --git a/uni_modules/uview-plus/components/u-avatar/u-avatar.vue b/uni_modules/uview-plus/components/u-avatar/u-avatar.vue new file mode 100644 index 0000000..e2e257c --- /dev/null +++ b/uni_modules/uview-plus/components/u-avatar/u-avatar.vue @@ -0,0 +1,180 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-back-top/props.js b/uni_modules/uview-plus/components/u-back-top/props.js new file mode 100644 index 0000000..1fca83f --- /dev/null +++ b/uni_modules/uview-plus/components/u-back-top/props.js @@ -0,0 +1,55 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 返回顶部的形状,circle-圆形,square-方形 + mode: { + type: String, + default: () => defProps.backtop.mode + }, + // 自定义图标 + icon: { + type: String, + default: () => defProps.backtop.icon + }, + // 提示文字 + text: { + type: String, + default: () => defProps.backtop.text + }, + // 返回顶部滚动时间 + duration: { + type: [String, Number], + default: () => defProps.backtop.duration + }, + // 滚动距离 + scrollTop: { + type: [String, Number], + default: () => defProps.backtop.scrollTop + }, + // 距离顶部多少距离显示,单位px + top: { + type: [String, Number], + default: () => defProps.backtop.top + }, + // 返回顶部按钮到底部的距离,单位px + bottom: { + type: [String, Number], + default: () => defProps.backtop.bottom + }, + // 返回顶部按钮到右边的距离,单位px + right: { + type: [String, Number], + default: () => defProps.backtop.right + }, + // 层级 + zIndex: { + type: [String, Number], + default: () => defProps.backtop.zIndex + }, + // 图标的样式,对象形式 + iconStyle: { + type: Object, + default: () => defProps.backtop.iconStyle + } + } +} diff --git a/uni_modules/uview-plus/components/u-back-top/u-back-top.vue b/uni_modules/uview-plus/components/u-back-top/u-back-top.vue new file mode 100644 index 0000000..af287d3 --- /dev/null +++ b/uni_modules/uview-plus/components/u-back-top/u-back-top.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-badge/props.js b/uni_modules/uview-plus/components/u-badge/props.js new file mode 100644 index 0000000..25a968a --- /dev/null +++ b/uni_modules/uview-plus/components/u-badge/props.js @@ -0,0 +1,78 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否显示圆点 + isDot: { + type: Boolean, + default: () => defProps.badge.isDot + }, + // 显示的内容 + value: { + type: [Number, String], + default: () => defProps.badge.value + }, + // 显示的内容 + modelValue: { + type: [Number, String], + default: () => defProps.badge.modelValue + }, + // 是否显示 + show: { + type: Boolean, + default: () => defProps.badge.show + }, + // 最大值,超过最大值会显示 '{max}+' + max: { + type: [Number, String], + default: () => defProps.badge.max + }, + // 主题类型,error|warning|success|primary + type: { + type: String, + default: () => defProps.badge.type + }, + // 当数值为 0 时,是否展示 Badge + showZero: { + type: Boolean, + default: () => defProps.badge.showZero + }, + // 背景颜色,优先级比type高,如设置,type参数会失效 + bgColor: { + type: [String, null], + default: () => defProps.badge.bgColor + }, + // 字体颜色 + color: { + type: [String, null], + default: () => defProps.badge.color + }, + // 徽标形状,circle-四角均为圆角,horn-左下角为直角 + shape: { + type: String, + default: () => defProps.badge.shape + }, + // 设置数字的显示方式,overflow|ellipsis|limit + // overflow会根据max字段判断,超出显示`${max}+` + // ellipsis会根据max判断,超出显示`${max}...` + // limit会依据1000作为判断条件,超出1000,显示`${value/1000}K`,比如2.2k、3.34w,最多保留2位小数 + numberType: { + type: String, + default: () => defProps.badge.numberType + }, + // 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,absolute为true时有效 + offset: { + type: Array, + default: () => defProps.badge.offset + }, + // 是否反转背景和字体颜色 + inverted: { + type: Boolean, + default: () => defProps.badge.inverted + }, + // 是否绝对定位 + absolute: { + type: Boolean, + default: () => defProps.badge.absolute + } + } +} diff --git a/uni_modules/uview-plus/components/u-badge/u-badge.vue b/uni_modules/uview-plus/components/u-badge/u-badge.vue new file mode 100644 index 0000000..060f3ad --- /dev/null +++ b/uni_modules/uview-plus/components/u-badge/u-badge.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-button/nvue.scss b/uni_modules/uview-plus/components/u-button/nvue.scss new file mode 100644 index 0000000..490db7d --- /dev/null +++ b/uni_modules/uview-plus/components/u-button/nvue.scss @@ -0,0 +1,46 @@ +$u-button-active-opacity:0.75 !default; +$u-button-loading-text-margin-left:4px !default; +$u-button-text-color: #FFFFFF !default; +$u-button-text-plain-error-color:$u-error !default; +$u-button-text-plain-warning-color:$u-warning !default; +$u-button-text-plain-success-color:$u-success !default; +$u-button-text-plain-info-color:$u-info !default; +$u-button-text-plain-primary-color:$u-primary !default; +.u-button { + &--active { + opacity: $u-button-active-opacity; + } + + &--active--plain { + background-color: rgb(217, 217, 217); + } + + &__loading-text { + margin-left:$u-button-loading-text-margin-left; + } + + &__text, + &__loading-text { + color:$u-button-text-color; + } + + &__text--plain--error { + color:$u-button-text-plain-error-color; + } + + &__text--plain--warning { + color:$u-button-text-plain-warning-color; + } + + &__text--plain--success{ + color:$u-button-text-plain-success-color; + } + + &__text--plain--info { + color:$u-button-text-plain-info-color; + } + + &__text--plain--primary { + color:$u-button-text-plain-primary-color; + } +} \ No newline at end of file diff --git a/uni_modules/uview-plus/components/u-button/props.js b/uni_modules/uview-plus/components/u-button/props.js new file mode 100644 index 0000000..c5e7743 --- /dev/null +++ b/uni_modules/uview-plus/components/u-button/props.js @@ -0,0 +1,153 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否细边框 + hairline: { + type: Boolean, + default: () => defProps.button.hairline + }, + // 按钮的预置样式,info,primary,error,warning,success + type: { + type: String, + default: () => defProps.button.type + }, + // 按钮尺寸,large,normal,small,mini + size: { + type: String, + default: () => defProps.button.size + }, + // 按钮形状,circle(两边为半圆),square(带圆角) + shape: { + type: String, + default: () => defProps.button.shape + }, + // 按钮是否镂空 + plain: { + type: Boolean, + default: () => defProps.button.plain + }, + // 是否禁止状态 + disabled: { + type: Boolean, + default: () => defProps.button.disabled + }, + // 是否加载中 + loading: { + type: Boolean, + default: () => defProps.button.loading + }, + // 加载中提示文字 + loadingText: { + type: [String, Number], + default: () => defProps.button.loadingText + }, + // 加载状态图标类型 + loadingMode: { + type: String, + default: () => defProps.button.loadingMode + }, + // 加载图标大小 + loadingSize: { + type: [String, Number], + default: () => defProps.button.loadingSize + }, + // 开放能力,具体请看uniapp稳定关于button组件部分说明 + // https://uniapp.dcloud.io/component/button + openType: { + type: String, + default: () => defProps.button.openType + }, + // 用于
组件,点击分别会触发 组件的 submit/reset 事件 + // 取值为submit(提交表单),reset(重置表单) + formType: { + type: String, + default: () => defProps.button.formType + }, + // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 + // 只微信小程序、QQ小程序有效 + appParameter: { + type: String, + default: () => defProps.button.appParameter + }, + // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效 + hoverStopPropagation: { + type: Boolean, + default: () => defProps.button.hoverStopPropagation + }, + // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效 + lang: { + type: String, + default: () => defProps.button.lang + }, + // 会话来源,open-type="contact"时有效。只微信小程序有效 + sessionFrom: { + type: String, + default: () => defProps.button.sessionFrom + }, + // 会话内消息卡片标题,open-type="contact"时有效 + // 默认当前标题,只微信小程序有效 + sendMessageTitle: { + type: String, + default: () => defProps.button.sendMessageTitle + }, + // 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 + // 默认当前分享路径,只微信小程序有效 + sendMessagePath: { + type: String, + default: () => defProps.button.sendMessagePath + }, + // 会话内消息卡片图片,open-type="contact"时有效 + // 默认当前页面截图,只微信小程序有效 + sendMessageImg: { + type: String, + default: () => defProps.button.sendMessageImg + }, + // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示, + // 用户点击后可以快速发送小程序消息,open-type="contact"时有效 + showMessageCard: { + type: Boolean, + default: () => defProps.button.showMessageCard + }, + // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取 + dataName: { + type: String, + default: () => defProps.button.dataName + }, + // 节流,一定时间内只能触发一次 + throttleTime: { + type: [String, Number], + default: () => defProps.button.throttleTime + }, + // 按住后多久出现点击态,单位毫秒 + hoverStartTime: { + type: [String, Number], + default: () => defProps.button.hoverStartTime + }, + // 手指松开后点击态保留时间,单位毫秒 + hoverStayTime: { + type: [String, Number], + default: () => defProps.button.hoverStayTime + }, + // 按钮文字,之所以通过props传入,是因为slot传入的话 + // nvue中无法控制文字的样式 + text: { + type: [String, Number], + default: () => defProps.button.text + }, + // 按钮图标 + icon: { + type: String, + default: () => defProps.button.icon + }, + // 按钮图标 + iconColor: { + type: String, + default: () => defProps.button.icon + }, + // 按钮颜色,支持传入linear-gradient渐变色 + color: { + type: String, + default: () => defProps.button.color + } + } +} diff --git a/uni_modules/uview-plus/components/u-button/u-button.vue b/uni_modules/uview-plus/components/u-button/u-button.vue new file mode 100644 index 0000000..1f403f7 --- /dev/null +++ b/uni_modules/uview-plus/components/u-button/u-button.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-button/vue.scss b/uni_modules/uview-plus/components/u-button/vue.scss new file mode 100644 index 0000000..ceb6cea --- /dev/null +++ b/uni_modules/uview-plus/components/u-button/vue.scss @@ -0,0 +1,81 @@ +// nvue下hover-class无效 +$u-button-before-top:50% !default; +$u-button-before-left:50% !default; +$u-button-before-width:100% !default; +$u-button-before-height:100% !default; +$u-button-before-transform:translate(-50%, -50%) !default; +$u-button-before-opacity:0 !default; +$u-button-before-background-color:#000 !default; +$u-button-before-border-color:#000 !default; +$u-button-active-before-opacity:.15 !default; +$u-button-icon-margin-left:4px !default; +$u-button-plain-u-button-info-color:$u-info; +$u-button-plain-u-button-success-color:$u-success; +$u-button-plain-u-button-error-color:$u-error; +$u-button-plain-u-button-warning-color:$u-error; + +.u-button { + width: 100%; + white-space: nowrap; + + &__text { + white-space: nowrap; + line-height: 1; + } + + &:before { + position: absolute; + top:$u-button-before-top; + left:$u-button-before-left; + width:$u-button-before-width; + height:$u-button-before-height; + border: inherit; + border-radius: inherit; + transform:$u-button-before-transform; + opacity:$u-button-before-opacity; + content: " "; + background-color:$u-button-before-background-color; + border-color:$u-button-before-border-color; + } + + &--active { + &:before { + opacity: .15 + } + } + + &__icon+&__text:not(:empty), + &__loading-text { + margin-left:$u-button-icon-margin-left; + } + + &--plain { + &.u-button--primary { + color: $u-primary; + } + } + + &--plain { + &.u-button--info { + color:$u-button-plain-u-button-info-color; + } + } + + &--plain { + &.u-button--success { + color:$u-button-plain-u-button-success-color; + } + } + + &--plain { + &.u-button--error { + color:$u-button-plain-u-button-error-color; + } + } + + &--plain { + &.u-button--warning { + color:$u-button-plain-u-button-warning-color; + } + } +} diff --git a/uni_modules/uview-plus/components/u-calendar/header.vue b/uni_modules/uview-plus/components/u-calendar/header.vue new file mode 100644 index 0000000..e29695c --- /dev/null +++ b/uni_modules/uview-plus/components/u-calendar/header.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-calendar/month.vue b/uni_modules/uview-plus/components/u-calendar/month.vue new file mode 100644 index 0000000..df959f6 --- /dev/null +++ b/uni_modules/uview-plus/components/u-calendar/month.vue @@ -0,0 +1,585 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-calendar/props.js b/uni_modules/uview-plus/components/u-calendar/props.js new file mode 100644 index 0000000..03ff044 --- /dev/null +++ b/uni_modules/uview-plus/components/u-calendar/props.js @@ -0,0 +1,145 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 日历顶部标题 + title: { + type: String, + default: () => defProps.calendar.title + }, + // 是否显示标题 + showTitle: { + type: Boolean, + default: () => defProps.calendar.showTitle + }, + // 是否显示副标题 + showSubtitle: { + type: Boolean, + default: () => defProps.calendar.showSubtitle + }, + // 日期类型选择,single-选择单个日期,multiple-可以选择多个日期,range-选择日期范围 + mode: { + type: String, + default: () => defProps.calendar.mode + }, + // mode=range时,第一个日期底部的提示文字 + startText: { + type: String, + default: () => defProps.calendar.startText + }, + // mode=range时,最后一个日期底部的提示文字 + endText: { + type: String, + default: () => defProps.calendar.endText + }, + // 自定义列表 + customList: { + type: Array, + default: () => defProps.calendar.customList + }, + // 主题色,对底部按钮和选中日期有效 + color: { + type: String, + default: () => defProps.calendar.color + }, + // 最小的可选日期 + minDate: { + type: [String, Number], + default: () => defProps.calendar.minDate + }, + // 最大可选日期 + maxDate: { + type: [String, Number], + default: () => defProps.calendar.maxDate + }, + // 默认选中的日期,mode为multiple或range是必须为数组格式 + defaultDate: { + type: [Array, String, Date, null], + default: () => defProps.calendar.defaultDate + }, + // mode=multiple时,最多可选多少个日期 + maxCount: { + type: [String, Number], + default: () => defProps.calendar.maxCount + }, + // 日期行高 + rowHeight: { + type: [String, Number], + default: () => defProps.calendar.rowHeight + }, + // 日期格式化函数 + formatter: { + type: [Function, null], + default: () => defProps.calendar.formatter + }, + // 是否显示农历 + showLunar: { + type: Boolean, + default: () => defProps.calendar.showLunar + }, + // 是否显示月份背景色 + showMark: { + type: Boolean, + default: () => defProps.calendar.showMark + }, + // 确定按钮的文字 + confirmText: { + type: String, + default: () => defProps.calendar.confirmText + }, + // 确认按钮处于禁用状态时的文字 + confirmDisabledText: { + type: String, + default: () => defProps.calendar.confirmDisabledText + }, + // 是否显示日历弹窗 + show: { + type: Boolean, + default: () => defProps.calendar.show + }, + // 是否允许点击遮罩关闭日历 + closeOnClickOverlay: { + type: Boolean, + default: () => defProps.calendar.closeOnClickOverlay + }, + // 是否为只读状态,只读状态下禁止选择日期 + readonly: { + type: Boolean, + default: () => defProps.calendar.readonly + }, + // 是否展示确认按钮 + showConfirm: { + type: Boolean, + default: () => defProps.calendar.showConfirm + }, + // 日期区间最多可选天数,默认无限制,mode = range时有效 + maxRange: { + type: [Number, String], + default: () => defProps.calendar.maxRange + }, + // 范围选择超过最多可选天数时的提示文案,mode = range时有效 + rangePrompt: { + type: String, + default: () => defProps.calendar.rangePrompt + }, + // 范围选择超过最多可选天数时,是否展示提示文案,mode = range时有效 + showRangePrompt: { + type: Boolean, + default: () => defProps.calendar.showRangePrompt + }, + // 是否允许日期范围的起止时间为同一天,mode = range时有效 + allowSameDay: { + type: Boolean, + default: () => defProps.calendar.allowSameDay + }, + // 圆角值 + round: { + type: [Boolean, String, Number], + default: () => defProps.calendar.round + }, + // 最多展示月份数量 + monthNum: { + type: [Number, String], + default: 3 + } + } +} diff --git a/uni_modules/uview-plus/components/u-calendar/u-calendar.vue b/uni_modules/uview-plus/components/u-calendar/u-calendar.vue new file mode 100644 index 0000000..aa31422 --- /dev/null +++ b/uni_modules/uview-plus/components/u-calendar/u-calendar.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-calendar/util.js b/uni_modules/uview-plus/components/u-calendar/util.js new file mode 100644 index 0000000..18762c1 --- /dev/null +++ b/uni_modules/uview-plus/components/u-calendar/util.js @@ -0,0 +1,86 @@ +import dayjs from 'dayjs/esm/index' +export default { + methods: { + // 设置月份数据 + setMonth() { + // 月初是周几 + const day = dayjs(this.date).date(1).day() + const start = day == 0 ? 6 : day - 1 + + // 本月天数 + const days = dayjs(this.date).endOf('month').format('D') + + // 上个月天数 + const prevDays = dayjs(this.date).endOf('month').subtract(1, 'month').format('D') + + // 日期数据 + const arr = [] + // 清空表格 + this.month = [] + + // 添加上月数据 + arr.push( + ...new Array(start).fill(1).map((e, i) => { + const day = prevDays - start + i + 1 + + return { + value: day, + disabled: true, + date: dayjs(this.date).subtract(1, 'month').date(day).format('YYYY-MM-DD') + } + }) + ) + + // 添加本月数据 + arr.push( + ...new Array(days - 0).fill(1).map((e, i) => { + const day = i + 1 + + return { + value: day, + date: dayjs(this.date).date(day).format('YYYY-MM-DD') + } + }) + ) + + // 添加下个月 + arr.push( + ...new Array(42 - days - start).fill(1).map((e, i) => { + const day = i + 1 + + return { + value: day, + disabled: true, + date: dayjs(this.date).add(1, 'month').date(day).format('YYYY-MM-DD') + } + }) + ) + + // 分割数组 + for (let n = 0; n < arr.length; n += 7) { + this.month.push( + arr.slice(n, n + 7).map((e, i) => { + e.index = i + n + + // 自定义信息 + const custom = this.customList.find((c) => c.date == e.date) + + // 农历 + if (this.lunar) { + const { + IDayCn, + IMonthCn + } = this.getLunar(e.date) + e.lunar = IDayCn == '初一' ? IMonthCn : IDayCn + } + + return { + ...e, + ...custom + } + }) + ) + } + } + } +} diff --git a/uni_modules/uview-plus/components/u-car-keyboard/props.js b/uni_modules/uview-plus/components/u-car-keyboard/props.js new file mode 100644 index 0000000..5d1f9c1 --- /dev/null +++ b/uni_modules/uview-plus/components/u-car-keyboard/props.js @@ -0,0 +1,15 @@ +// import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: false + }, + // 输入一个中文后,是否自动切换到英文 + autoChange: { + type: Boolean, + default: false + } + } +} diff --git a/uni_modules/uview-plus/components/u-car-keyboard/u-car-keyboard.vue b/uni_modules/uview-plus/components/u-car-keyboard/u-car-keyboard.vue new file mode 100644 index 0000000..eb66244 --- /dev/null +++ b/uni_modules/uview-plus/components/u-car-keyboard/u-car-keyboard.vue @@ -0,0 +1,315 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-cell-group/props.js b/uni_modules/uview-plus/components/u-cell-group/props.js new file mode 100644 index 0000000..605fbd5 --- /dev/null +++ b/uni_modules/uview-plus/components/u-cell-group/props.js @@ -0,0 +1,15 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 分组标题 + title: { + type: String, + default: () => defProps.cellGroup.title + }, + // 是否显示外边框 + border: { + type: Boolean, + default: () => defProps.cellGroup.border + } + } +} diff --git a/uni_modules/uview-plus/components/u-cell-group/u-cell-group.vue b/uni_modules/uview-plus/components/u-cell-group/u-cell-group.vue new file mode 100644 index 0000000..ce70dbc --- /dev/null +++ b/uni_modules/uview-plus/components/u-cell-group/u-cell-group.vue @@ -0,0 +1,67 @@ + + + + + + diff --git a/uni_modules/uview-plus/components/u-cell/props.js b/uni_modules/uview-plus/components/u-cell/props.js new file mode 100644 index 0000000..b9fe857 --- /dev/null +++ b/uni_modules/uview-plus/components/u-cell/props.js @@ -0,0 +1,111 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 标题 + title: { + type: [String, Number], + default: () => defProps.cell.title + }, + // 标题下方的描述信息 + label: { + type: [String, Number], + default: () => defProps.cell.label + }, + // 右侧的内容 + value: { + type: [String, Number], + default: () => defProps.cell.value + }, + // 左侧图标名称,或者图片链接(本地文件建议使用绝对地址) + icon: { + type: String, + default: () => defProps.cell.icon + }, + // 是否禁用cell + disabled: { + type: Boolean, + default: () => defProps.cell.disabled + }, + // 是否显示下边框 + border: { + type: Boolean, + default: () => defProps.cell.border + }, + // 内容是否垂直居中(主要是针对右侧的value部分) + center: { + type: Boolean, + default: () => defProps.cell.center + }, + // 点击后跳转的URL地址 + url: { + type: String, + default: () => defProps.cell.url + }, + // 链接跳转的方式,内部使用的是uView封装的route方法,可能会进行拦截操作 + linkType: { + type: String, + default: () => defProps.cell.linkType + }, + // 是否开启点击反馈(表现为点击时加上灰色背景) + clickable: { + type: Boolean, + default: () => defProps.cell.clickable + }, + // 是否展示右侧箭头并开启点击反馈 + isLink: { + type: Boolean, + default: () => defProps.cell.isLink + }, + // 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件) + required: { + type: Boolean, + default: () => defProps.cell.required + }, + // 右侧的图标箭头 + rightIcon: { + type: String, + default: () => defProps.cell.rightIcon + }, + // 右侧箭头的方向,可选值为:left,up,down + arrowDirection: { + type: String, + default: () => defProps.cell.arrowDirection + }, + // 左侧图标样式 + iconStyle: { + type: [Object, String], + default: () => { + return defProps.cell.iconStyle + } + }, + // 右侧箭头图标的样式 + rightIconStyle: { + type: [Object, String], + default: () => { + return defProps.cell.rightIconStyle + } + }, + // 标题的样式 + titleStyle: { + type: [Object, String], + default: () => { + return defProps.cell.titleStyle + } + }, + // 单位元的大小,可选值为large + size: { + type: String, + default: () => defProps.cell.size + }, + // 点击cell是否阻止事件传播 + stop: { + type: Boolean, + default: () => defProps.cell.stop + }, + // 标识符,cell被点击时返回 + name: { + type: [Number, String], + default: () => defProps.cell.name + } + } +} diff --git a/uni_modules/uview-plus/components/u-cell/u-cell.vue b/uni_modules/uview-plus/components/u-cell/u-cell.vue new file mode 100644 index 0000000..6ee4d3c --- /dev/null +++ b/uni_modules/uview-plus/components/u-cell/u-cell.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-checkbox-group/props.js b/uni_modules/uview-plus/components/u-checkbox-group/props.js new file mode 100644 index 0000000..f81c966 --- /dev/null +++ b/uni_modules/uview-plus/components/u-checkbox-group/props.js @@ -0,0 +1,92 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 标识符 + name: { + type: String, + default: () => defProps.checkboxGroup.name + }, + // #ifdef VUE3 + // 绑定的值 + modelValue: { + type: Array, + default: () => defProps.checkboxGroup.value + }, + // #endif + // #ifdef VUE2 + // 绑定的值 + value: { + type: Array, + default: () => defProps.checkboxGroup.value + }, + // #endif + // 形状,circle-圆形,square-方形 + shape: { + type: String, + default: () => defProps.checkboxGroup.shape + }, + // 是否禁用全部checkbox + disabled: { + type: Boolean, + default: () => defProps.checkboxGroup.disabled + }, + + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: () => defProps.checkboxGroup.activeColor + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: () => defProps.checkboxGroup.inactiveColor + }, + + // 整个组件的尺寸,默认px + size: { + type: [String, Number], + default: () => defProps.checkboxGroup.size + }, + // 布局方式,row-横向,column-纵向 + placement: { + type: String, + default: () => defProps.checkboxGroup.placement + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: () => defProps.checkboxGroup.labelSize + }, + // label的字体颜色 + labelColor: { + type: [String], + default: () => defProps.checkboxGroup.labelColor + }, + // 是否禁止点击文本操作 + labelDisabled: { + type: Boolean, + default: () => defProps.checkboxGroup.labelDisabled + }, + // 图标颜色 + iconColor: { + type: String, + default: () => defProps.checkboxGroup.iconColor + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: () => defProps.checkboxGroup.iconSize + }, + // 勾选图标的对齐方式,left-左边,right-右边 + iconPlacement: { + type: String, + default: () => defProps.checkboxGroup.iconPlacement + }, + // 竖向配列时,是否显示下划线 + borderBottom: { + type: Boolean, + default: () => defProps.checkboxGroup.borderBottom + } + + } +} diff --git a/uni_modules/uview-plus/components/u-checkbox-group/u-checkbox-group.vue b/uni_modules/uview-plus/components/u-checkbox-group/u-checkbox-group.vue new file mode 100644 index 0000000..a99cc40 --- /dev/null +++ b/uni_modules/uview-plus/components/u-checkbox-group/u-checkbox-group.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-checkbox/props.js b/uni_modules/uview-plus/components/u-checkbox/props.js new file mode 100644 index 0000000..7825824 --- /dev/null +++ b/uni_modules/uview-plus/components/u-checkbox/props.js @@ -0,0 +1,75 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // checkbox的名称 + name: { + type: [String, Number, Boolean], + default: () => defProps.checkbox.name + }, + // 形状,square为方形,circle为圆型 + shape: { + type: String, + default: () => defProps.checkbox.shape + }, + // 整体的大小 + size: { + type: [String, Number], + default: () => defProps.checkbox.size + }, + // 是否默认选中 + checked: { + type: Boolean, + default: () => defProps.checkbox.checked + }, + // 是否禁用 + disabled: { + type: [String, Boolean], + default: () => defProps.checkbox.disabled + }, + // 选中状态下的颜色,如设置此值,将会覆盖parent的activeColor值 + activeColor: { + type: String, + default: () => defProps.checkbox.activeColor + }, + // 未选中的颜色 + inactiveColor: { + type: String, + default: () => defProps.checkbox.inactiveColor + }, + // 图标的大小,单位px + iconSize: { + type: [String, Number], + default: () => defProps.checkbox.iconSize + }, + // 图标颜色 + iconColor: { + type: String, + default: () => defProps.checkbox.iconColor + }, + // label提示文字,因为nvue下,直接slot进来的文字,由于特殊的结构,无法修改样式 + label: { + type: [String, Number], + default: () => defProps.checkbox.label + }, + // label的字体大小,px单位 + labelSize: { + type: [String, Number], + default: () => defProps.checkbox.labelSize + }, + // label的颜色 + labelColor: { + type: String, + default: () => defProps.checkbox.labelColor + }, + // 是否禁止点击提示语选中复选框 + labelDisabled: { + type: [String, Boolean], + default: () => defProps.checkbox.labelDisabled + }, + // 是否独立使用 + usedAlone: { + type: [Boolean], + default: () => false + } + } +} diff --git a/uni_modules/uview-plus/components/u-checkbox/u-checkbox.vue b/uni_modules/uview-plus/components/u-checkbox/u-checkbox.vue new file mode 100644 index 0000000..f055d6d --- /dev/null +++ b/uni_modules/uview-plus/components/u-checkbox/u-checkbox.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-circle-progress/props.js b/uni_modules/uview-plus/components/u-circle-progress/props.js new file mode 100644 index 0000000..b07e6e2 --- /dev/null +++ b/uni_modules/uview-plus/components/u-circle-progress/props.js @@ -0,0 +1,9 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + percentage: { + type: [String, Number], + default: () => defProps.circleProgress.percentage + } + } +} diff --git a/uni_modules/uview-plus/components/u-circle-progress/u-circle-progress.vue b/uni_modules/uview-plus/components/u-circle-progress/u-circle-progress.vue new file mode 100644 index 0000000..77b79af --- /dev/null +++ b/uni_modules/uview-plus/components/u-circle-progress/u-circle-progress.vue @@ -0,0 +1,201 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-code-input/props.js b/uni_modules/uview-plus/components/u-code-input/props.js new file mode 100644 index 0000000..1a0893c --- /dev/null +++ b/uni_modules/uview-plus/components/u-code-input/props.js @@ -0,0 +1,89 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: () => defProps.codeInput.adjustPosition + }, + // 最大输入长度 + maxlength: { + type: [String, Number], + default: () => defProps.codeInput.maxlength + }, + // 是否用圆点填充 + dot: { + type: Boolean, + default: () => defProps.codeInput.dot + }, + // 显示模式,box-盒子模式,line-底部横线模式 + mode: { + type: String, + default: () => defProps.codeInput.mode + }, + // 是否细边框 + hairline: { + type: Boolean, + default: () => defProps.codeInput.hairline + }, + // 字符间的距离 + space: { + type: [String, Number], + default: () => defProps.codeInput.space + }, + // #ifdef VUE3 + // 预置值 + modelValue: { + type: [String, Number], + default: () => defProps.codeInput.value + }, + // #endif + // #ifdef VUE2 + // 预置值 + value: { + type: [String, Number], + default: () => defProps.codeInput.value + }, + // #endif + // 是否自动获取焦点 + focus: { + type: Boolean, + default: () => defProps.codeInput.focus + }, + // 字体是否加粗 + bold: { + type: Boolean, + default: () => defProps.codeInput.bold + }, + // 字体颜色 + color: { + type: String, + default: () => defProps.codeInput.color + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: () => defProps.codeInput.fontSize + }, + // 输入框的大小,宽等于高 + size: { + type: [String, Number], + default: () => defProps.codeInput.size + }, + // 是否隐藏原生键盘,如果想用自定义键盘的话,需设置此参数为true + disabledKeyboard: { + type: Boolean, + default: () => defProps.codeInput.disabledKeyboard + }, + // 边框和线条颜色 + borderColor: { + type: String, + default: () => defProps.codeInput.borderColor + }, + // 是否禁止输入"."符号 + disabledDot: { + type: Boolean, + default: () => defProps.codeInput.disabledDot + } + } +} diff --git a/uni_modules/uview-plus/components/u-code-input/u-code-input.vue b/uni_modules/uview-plus/components/u-code-input/u-code-input.vue new file mode 100644 index 0000000..9cf1564 --- /dev/null +++ b/uni_modules/uview-plus/components/u-code-input/u-code-input.vue @@ -0,0 +1,266 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-code/props.js b/uni_modules/uview-plus/components/u-code/props.js new file mode 100644 index 0000000..b564045 --- /dev/null +++ b/uni_modules/uview-plus/components/u-code/props.js @@ -0,0 +1,35 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 倒计时总秒数 + seconds: { + type: [String, Number], + default: () => defProps.code.seconds + }, + // 尚未开始时提示 + startText: { + type: String, + default: () => defProps.code.startText + }, + // 正在倒计时中的提示 + changeText: { + type: String, + default: () => defProps.code.changeText + }, + // 倒计时结束时的提示 + endText: { + type: String, + default: () => defProps.code.endText + }, + // 是否在H5刷新或各端返回再进入时继续倒计时 + keepRunning: { + type: Boolean, + default: () => defProps.code.keepRunning + }, + // 为了区分多个页面,或者一个页面多个倒计时组件本地存储的继续倒计时变了 + uniqueKey: { + type: String, + default: () => defProps.code.uniqueKey + } + } +} diff --git a/uni_modules/uview-plus/components/u-code/u-code.vue b/uni_modules/uview-plus/components/u-code/u-code.vue new file mode 100644 index 0000000..a55d777 --- /dev/null +++ b/uni_modules/uview-plus/components/u-code/u-code.vue @@ -0,0 +1,137 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-col/props.js b/uni_modules/uview-plus/components/u-col/props.js new file mode 100644 index 0000000..858f472 --- /dev/null +++ b/uni_modules/uview-plus/components/u-col/props.js @@ -0,0 +1,30 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 占父容器宽度的多少等分,总分为12份 + span: { + type: [String, Number], + default: () => defProps.col.span + }, + // 指定栅格左侧的间隔数(总12栏) + offset: { + type: [String, Number], + default: () => defProps.col.offset + }, + // 水平排列方式,可选值为`start`(或`flex-start`)、`end`(或`flex-end`)、`center`、`around`(或`space-around`)、`between`(或`space-between`) + justify: { + type: String, + default: () => defProps.col.justify + }, + // 垂直对齐方式,可选值为top、center、bottom、stretch + align: { + type: String, + default: () => defProps.col.align + }, + // 文字对齐方式 + textAlign: { + type: String, + default: () => defProps.col.textAlign + } + } +} diff --git a/uni_modules/uview-plus/components/u-col/u-col.vue b/uni_modules/uview-plus/components/u-col/u-col.vue new file mode 100644 index 0000000..7a1acce --- /dev/null +++ b/uni_modules/uview-plus/components/u-col/u-col.vue @@ -0,0 +1,170 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-collapse-item/props.js b/uni_modules/uview-plus/components/u-collapse-item/props.js new file mode 100644 index 0000000..77c926e --- /dev/null +++ b/uni_modules/uview-plus/components/u-collapse-item/props.js @@ -0,0 +1,60 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 标题 + title: { + type: String, + default: () => defProps.collapseItem.title + }, + // 标题右侧内容 + value: { + type: String, + default: () => defProps.collapseItem.value + }, + // 标题下方的描述信息 + label: { + type: String, + default: () => defProps.collapseItem.label + }, + // 是否禁用折叠面板 + disabled: { + type: Boolean, + default: () => defProps.collapseItem.disabled + }, + // 是否展示右侧箭头并开启点击反馈 + isLink: { + type: Boolean, + default: () => defProps.collapseItem.isLink + }, + // 是否开启点击反馈 + clickable: { + type: Boolean, + default: () => defProps.collapseItem.clickable + }, + // 是否显示内边框 + border: { + type: Boolean, + default: () => defProps.collapseItem.border + }, + // 标题的对齐方式 + align: { + type: String, + default: () => defProps.collapseItem.align + }, + // 唯一标识符 + name: { + type: [String, Number], + default: () => defProps.collapseItem.name + }, + // 标题左侧图片,可为绝对路径的图片或内置图标 + icon: { + type: String, + default: () => defProps.collapseItem.icon + }, + // 面板展开收起的过渡时间,单位ms + duration: { + type: Number, + default: () => defProps.collapseItem.duration + } + } +} diff --git a/uni_modules/uview-plus/components/u-collapse-item/u-collapse-item.vue b/uni_modules/uview-plus/components/u-collapse-item/u-collapse-item.vue new file mode 100644 index 0000000..11631a8 --- /dev/null +++ b/uni_modules/uview-plus/components/u-collapse-item/u-collapse-item.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-collapse/props.js b/uni_modules/uview-plus/components/u-collapse/props.js new file mode 100644 index 0000000..c9c1ec9 --- /dev/null +++ b/uni_modules/uview-plus/components/u-collapse/props.js @@ -0,0 +1,20 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 当前展开面板的name,非手风琴模式:[],手风琴模式:string | number + value: { + type: [String, Number, Array, null], + default: () => defProps.collapse.value + }, + // 是否手风琴模式 + accordion: { + type: Boolean, + default: () => defProps.collapse.accordion + }, + // 是否显示外边框 + border: { + type: Boolean, + default: () => defProps.collapse.border + } + } +} diff --git a/uni_modules/uview-plus/components/u-collapse/u-collapse.vue b/uni_modules/uview-plus/components/u-collapse/u-collapse.vue new file mode 100644 index 0000000..f566a29 --- /dev/null +++ b/uni_modules/uview-plus/components/u-collapse/u-collapse.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-column-notice/props.js b/uni_modules/uview-plus/components/u-column-notice/props.js new file mode 100644 index 0000000..dc3a5a7 --- /dev/null +++ b/uni_modules/uview-plus/components/u-column-notice/props.js @@ -0,0 +1,56 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 显示的内容,字符串 + text: { + type: [Array], + default: () => defProps.columnNotice.text + }, + // 是否显示左侧的音量图标 + icon: { + type: String, + default: () => defProps.columnNotice.icon + }, + // 通告模式,link-显示右箭头,closable-显示右侧关闭图标 + mode: { + type: String, + default: () => defProps.columnNotice.mode + }, + // 文字颜色,各图标也会使用文字颜色 + color: { + type: String, + default: () => defProps.columnNotice.color + }, + // 背景颜色 + bgColor: { + type: String, + default: () => defProps.columnNotice.bgColor + }, + // 字体大小,单位px + fontSize: { + type: [String, Number], + default: () => defProps.columnNotice.fontSize + }, + // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度 + speed: { + type: [String, Number], + default: () => defProps.columnNotice.speed + }, + // direction = row时,是否使用步进形式滚动 + step: { + type: Boolean, + default: () => defProps.columnNotice.step + }, + // 滚动一个周期的时间长,单位ms + duration: { + type: [String, Number], + default: () => defProps.columnNotice.duration + }, + // 是否禁止用手滑动切换 + // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 + disableTouch: { + type: Boolean, + default: () => defProps.columnNotice.disableTouch + } + } +} diff --git a/uni_modules/uview-plus/components/u-column-notice/u-column-notice.vue b/uni_modules/uview-plus/components/u-column-notice/u-column-notice.vue new file mode 100644 index 0000000..a575a51 --- /dev/null +++ b/uni_modules/uview-plus/components/u-column-notice/u-column-notice.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-copy/u-copy.vue b/uni_modules/uview-plus/components/u-copy/u-copy.vue new file mode 100644 index 0000000..7e63ded --- /dev/null +++ b/uni_modules/uview-plus/components/u-copy/u-copy.vue @@ -0,0 +1,70 @@ + + + + diff --git a/uni_modules/uview-plus/components/u-count-down/props.js b/uni_modules/uview-plus/components/u-count-down/props.js new file mode 100644 index 0000000..ae87960 --- /dev/null +++ b/uni_modules/uview-plus/components/u-count-down/props.js @@ -0,0 +1,25 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 倒计时时长,单位ms + time: { + type: [String, Number], + default: () => defProps.countDown.time + }, + // 时间格式,DD-日,HH-时,mm-分,ss-秒,SSS-毫秒 + format: { + type: String, + default: () => defProps.countDown.format + }, + // 是否自动开始倒计时 + autoStart: { + type: Boolean, + default: () => defProps.countDown.autoStart + }, + // 是否展示毫秒倒计时 + millisecond: { + type: Boolean, + default: () => defProps.countDown.millisecond + } + } +} diff --git a/uni_modules/uview-plus/components/u-count-down/u-count-down.vue b/uni_modules/uview-plus/components/u-count-down/u-count-down.vue new file mode 100644 index 0000000..5eb1622 --- /dev/null +++ b/uni_modules/uview-plus/components/u-count-down/u-count-down.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-count-down/utils.js b/uni_modules/uview-plus/components/u-count-down/utils.js new file mode 100644 index 0000000..8c75005 --- /dev/null +++ b/uni_modules/uview-plus/components/u-count-down/utils.js @@ -0,0 +1,62 @@ +// 补0,如1 -> 01 +function padZero(num, targetLength = 2) { + let str = `${num}` + while (str.length < targetLength) { + str = `0${str}` + } + return str +} +const SECOND = 1000 +const MINUTE = 60 * SECOND +const HOUR = 60 * MINUTE +const DAY = 24 * HOUR +export function parseTimeData(time) { + const days = Math.floor(time / DAY) + const hours = Math.floor((time % DAY) / HOUR) + const minutes = Math.floor((time % HOUR) / MINUTE) + const seconds = Math.floor((time % MINUTE) / SECOND) + const milliseconds = Math.floor(time % SECOND) + return { + days, + hours, + minutes, + seconds, + milliseconds + } +} +export function parseFormat(format, timeData) { + let { + days, + hours, + minutes, + seconds, + milliseconds + } = timeData + // 如果格式化字符串中不存在DD(天),则将天的时间转为小时中去 + if (format.indexOf('DD') === -1) { + hours += days * 24 + } else { + // 对天补0 + format = format.replace('DD', padZero(days)) + } + // 其他同理于DD的格式化处理方式 + if (format.indexOf('HH') === -1) { + minutes += hours * 60 + } else { + format = format.replace('HH', padZero(hours)) + } + if (format.indexOf('mm') === -1) { + seconds += minutes * 60 + } else { + format = format.replace('mm', padZero(minutes)) + } + if (format.indexOf('ss') === -1) { + milliseconds += seconds * 1000 + } else { + format = format.replace('ss', padZero(seconds)) + } + return format.replace('SSS', padZero(milliseconds, 3)) +} +export function isSameSecond(time1, time2) { + return Math.floor(time1 / 1000) === Math.floor(time2 / 1000) +} diff --git a/uni_modules/uview-plus/components/u-count-to/props.js b/uni_modules/uview-plus/components/u-count-to/props.js new file mode 100644 index 0000000..b24607e --- /dev/null +++ b/uni_modules/uview-plus/components/u-count-to/props.js @@ -0,0 +1,60 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 开始的数值,默认从0增长到某一个数 + startVal: { + type: [String, Number], + default: () => defProps.countTo.startVal + }, + // 要滚动的目标数值,必须 + endVal: { + type: [String, Number], + default: () => defProps.countTo.endVal + }, + // 滚动到目标数值的动画持续时间,单位为毫秒(ms) + duration: { + type: [String, Number], + default: () => defProps.countTo.duration + }, + // 设置数值后是否自动开始滚动 + autoplay: { + type: Boolean, + default: () => defProps.countTo.autoplay + }, + // 要显示的小数位数 + decimals: { + type: [String, Number], + default: () => defProps.countTo.decimals + }, + // 是否在即将到达目标数值的时候,使用缓慢滚动的效果 + useEasing: { + type: Boolean, + default: () => defProps.countTo.useEasing + }, + // 十进制分割 + decimal: { + type: [String, Number], + default: () => defProps.countTo.decimal + }, + // 字体颜色 + color: { + type: String, + default: () => defProps.countTo.color + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: () => defProps.countTo.fontSize + }, + // 是否加粗字体 + bold: { + type: Boolean, + default: () => defProps.countTo.bold + }, + // 千位分隔符,类似金额的分割(¥23,321.05中的",") + separator: { + type: String, + default: () => defProps.countTo.separator + } + } +} diff --git a/uni_modules/uview-plus/components/u-count-to/u-count-to.vue b/uni_modules/uview-plus/components/u-count-to/u-count-to.vue new file mode 100644 index 0000000..207ad6f --- /dev/null +++ b/uni_modules/uview-plus/components/u-count-to/u-count-to.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-datetime-picker/props.js b/uni_modules/uview-plus/components/u-datetime-picker/props.js new file mode 100644 index 0000000..47f7937 --- /dev/null +++ b/uni_modules/uview-plus/components/u-datetime-picker/props.js @@ -0,0 +1,144 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否显示input + hasInput: { + type: Boolean, + default: () => false + }, + placeholder: { + type: String, + default: () => '请选择' + }, + format: { + type: String, + default: () => '' + }, + // 是否打开组件 + show: { + type: Boolean, + default: () => defProps.datetimePicker.show + }, + // 弹出的方向,可选值为 top bottom right left center + popupMode: { + type: String, + default: () => defProps.picker.popupMode + }, + // 是否展示顶部的操作栏 + showToolbar: { + type: Boolean, + default: () => defProps.datetimePicker.showToolbar + }, + // #ifdef VUE2 + // 绑定值 + value: { + type: [String, Number], + default: () => defProps.datetimePicker.value + }, + // #endif + // #ifdef VUE3 + // 绑定值 + modelValue: { + type: [String, Number], + default: () => defProps.datetimePicker.value + }, + // #endif + // 顶部标题 + title: { + type: String, + default: () => defProps.datetimePicker.title + }, + // 展示格式,mode=date为日期选择,mode=time为时间选择,mode=year-month为年月选择,mode=datetime为日期时间选择 + mode: { + type: String, + default: () => defProps.datetimePicker.mode + }, + // 可选的最大时间 + maxDate: { + type: Number, + // 最大默认值为后10年 + default: () => defProps.datetimePicker.maxDate + }, + // 可选的最小时间 + minDate: { + type: Number, + // 最小默认值为前10年 + default: () => defProps.datetimePicker.minDate + }, + // 可选的最小小时,仅mode=time有效 + minHour: { + type: Number, + default: () => defProps.datetimePicker.minHour + }, + // 可选的最大小时,仅mode=time有效 + maxHour: { + type: Number, + default: () => defProps.datetimePicker.maxHour + }, + // 可选的最小分钟,仅mode=time有效 + minMinute: { + type: Number, + default: () => defProps.datetimePicker.minMinute + }, + // 可选的最大分钟,仅mode=time有效 + maxMinute: { + type: Number, + default: () => defProps.datetimePicker.maxMinute + }, + // 选项过滤函数 + filter: { + type: [Function, null], + default: () => defProps.datetimePicker.filter + }, + // 选项格式化函数 + formatter: { + type: [Function, null], + default: () => defProps.datetimePicker.formatter + }, + // 是否显示加载中状态 + loading: { + type: Boolean, + default: () => defProps.datetimePicker.loading + }, + // 各列中,单个选项的高度 + itemHeight: { + type: [String, Number], + default: () => defProps.datetimePicker.itemHeight + }, + // 取消按钮的文字 + cancelText: { + type: String, + default: () => defProps.datetimePicker.cancelText + }, + // 确认按钮的文字 + confirmText: { + type: String, + default: () => defProps.datetimePicker.confirmText + }, + // 取消按钮的颜色 + cancelColor: { + type: String, + default: () => defProps.datetimePicker.cancelColor + }, + // 确认按钮的颜色 + confirmColor: { + type: String, + default: () => defProps.datetimePicker.confirmColor + }, + // 每列中可见选项的数量 + visibleItemCount: { + type: [String, Number], + default: () => defProps.datetimePicker.visibleItemCount + }, + // 是否允许点击遮罩关闭选择器 + closeOnClickOverlay: { + type: Boolean, + default: () => defProps.datetimePicker.closeOnClickOverlay + }, + // 各列的默认索引 + defaultIndex: { + type: Array, + default: () => defProps.datetimePicker.defaultIndex + } + } +} diff --git a/uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.vue b/uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.vue new file mode 100644 index 0000000..343fed2 --- /dev/null +++ b/uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.vue @@ -0,0 +1,448 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-divider/props.js b/uni_modules/uview-plus/components/u-divider/props.js new file mode 100644 index 0000000..ce481c2 --- /dev/null +++ b/uni_modules/uview-plus/components/u-divider/props.js @@ -0,0 +1,45 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否虚线 + dashed: { + type: Boolean, + default: () => defProps.divider.dashed + }, + // 是否细线 + hairline: { + type: Boolean, + default: () => defProps.divider.hairline + }, + // 是否以点替代文字,优先于text字段起作用 + dot: { + type: Boolean, + default: () => defProps.divider.dot + }, + // 内容文本的位置,left-左边,center-中间,right-右边 + textPosition: { + type: String, + default: () => defProps.divider.textPosition + }, + // 文本内容 + text: { + type: [String, Number], + default: () => defProps.divider.text + }, + // 文本大小 + textSize: { + type: [String, Number], + default: () => defProps.divider.textSize + }, + // 文本颜色 + textColor: { + type: String, + default: () => defProps.divider.textColor + }, + // 线条颜色 + lineColor: { + type: String, + default: () => defProps.divider.lineColor + } + } +} diff --git a/uni_modules/uview-plus/components/u-divider/u-divider.vue b/uni_modules/uview-plus/components/u-divider/u-divider.vue new file mode 100644 index 0000000..fef953a --- /dev/null +++ b/uni_modules/uview-plus/components/u-divider/u-divider.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-dropdown-item/props.js b/uni_modules/uview-plus/components/u-dropdown-item/props.js new file mode 100644 index 0000000..433dced --- /dev/null +++ b/uni_modules/uview-plus/components/u-dropdown-item/props.js @@ -0,0 +1,46 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // #ifdef VUE3 + // 当前选中项的value值 + modelValue: { + type: [Number, String, Array], + default: '' + }, + // #endif + // #ifdef VUE2 + // 当前选中项的value值 + value: { + type: [Number, String, Array], + default: '' + }, + // #endif + // 菜单项标题 + title: { + type: [String, Number], + default: '' + }, + // 选项数据,如果传入了默认slot,此参数无效 + options: { + type: Array, + default() { + return [] + } + }, + // 是否禁用此菜单项 + disabled: { + type: Boolean, + default: false + }, + // 下拉弹窗的高度 + height: { + type: [Number, String], + default: 'auto' + }, + // 点击遮罩是否可以收起弹窗 + closeOnClickOverlay: { + type: Boolean, + default: true + } + } +} diff --git a/uni_modules/uview-plus/components/u-dropdown-item/u-dropdown-item.vue b/uni_modules/uview-plus/components/u-dropdown-item/u-dropdown-item.vue new file mode 100644 index 0000000..acc3224 --- /dev/null +++ b/uni_modules/uview-plus/components/u-dropdown-item/u-dropdown-item.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-dropdown/props.js b/uni_modules/uview-plus/components/u-dropdown/props.js new file mode 100644 index 0000000..f81dc4b --- /dev/null +++ b/uni_modules/uview-plus/components/u-dropdown/props.js @@ -0,0 +1,60 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 菜单标题和选项的激活态颜色 + activeColor: { + type: String, + default: '#2979ff' + }, + // 菜单标题和选项的未激活态颜色 + inactiveColor: { + type: String, + default: '#606266' + }, + // 点击遮罩是否关闭菜单 + closeOnClickMask: { + type: Boolean, + default: true + }, + // 点击当前激活项标题是否关闭菜单 + closeOnClickSelf: { + type: Boolean, + default: true + }, + // 过渡时间 + duration: { + type: [Number, String], + default: 300 + }, + // 标题菜单的高度 + height: { + type: [Number, String], + default: 40 + }, + // 是否显示下边框 + borderBottom: { + type: Boolean, + default: false + }, + // 标题的字体大小 + titleSize: { + type: [Number, String], + default: 14 + }, + // 下拉出来的内容部分的圆角值 + borderRadius: { + type: [Number, String], + default: 0 + }, + // 菜单右侧的icon图标 + menuIcon: { + type: String, + default: 'arrow-down' + }, + // 菜单右侧图标的大小 + menuIconSize: { + type: [Number, String], + default: 14 + } + } +} diff --git a/uni_modules/uview-plus/components/u-dropdown/u-dropdown.vue b/uni_modules/uview-plus/components/u-dropdown/u-dropdown.vue new file mode 100644 index 0000000..651dd84 --- /dev/null +++ b/uni_modules/uview-plus/components/u-dropdown/u-dropdown.vue @@ -0,0 +1,254 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-empty/props.js b/uni_modules/uview-plus/components/u-empty/props.js new file mode 100644 index 0000000..f0e16b8 --- /dev/null +++ b/uni_modules/uview-plus/components/u-empty/props.js @@ -0,0 +1,60 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 内置图标名称,或图片路径,建议绝对路径 + icon: { + type: String, + default: () => defProps.empty.icon + }, + // 提示文字 + text: { + type: String, + default: () => defProps.empty.text + }, + // 文字颜色 + textColor: { + type: String, + default: () => defProps.empty.textColor + }, + // 文字大小 + textSize: { + type: [String, Number], + default: () => defProps.empty.textSize + }, + // 图标的颜色 + iconColor: { + type: String, + default: () => defProps.empty.iconColor + }, + // 图标的大小 + iconSize: { + type: [String, Number], + default: () => defProps.empty.iconSize + }, + // 选择预置的图标类型 + mode: { + type: String, + default: () => defProps.empty.mode + }, + // 图标宽度,单位px + width: { + type: [String, Number], + default: () => defProps.empty.width + }, + // 图标高度,单位px + height: { + type: [String, Number], + default: () => defProps.empty.height + }, + // 是否显示组件 + show: { + type: Boolean, + default: () => defProps.empty.show + }, + // 组件距离上一个元素之间的距离,默认px单位 + marginTop: { + type: [String, Number], + default: () => defProps.empty.marginTop + } + } +} diff --git a/uni_modules/uview-plus/components/u-empty/u-empty.vue b/uni_modules/uview-plus/components/u-empty/u-empty.vue new file mode 100644 index 0000000..cc58c44 --- /dev/null +++ b/uni_modules/uview-plus/components/u-empty/u-empty.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-form-item/props.js b/uni_modules/uview-plus/components/u-form-item/props.js new file mode 100644 index 0000000..02637a9 --- /dev/null +++ b/uni_modules/uview-plus/components/u-form-item/props.js @@ -0,0 +1,54 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // input的label提示语 + label: { + type: String, + default: () => defProps.formItem.label + }, + // 绑定的值 + prop: { + type: String, + default: () => defProps.formItem.prop + }, + // 绑定的规则 + rule: { + type: String, + default: () => defProps.formItem.rule + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: [String, Boolean], + default: () => defProps.formItem.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: () => defProps.formItem.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: () => defProps.formItem.labelWidth + }, + // 右侧图标 + rightIcon: { + type: String, + default: () => defProps.formItem.rightIcon + }, + // 左侧图标 + leftIcon: { + type: String, + default: () => defProps.formItem.leftIcon + }, + // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置 + required: { + type: Boolean, + default: () => defProps.formItem.required + }, + leftIconStyle: { + type: [String, Object], + default: () => defProps.formItem.leftIconStyle, + } + } +} diff --git a/uni_modules/uview-plus/components/u-form-item/u-form-item.vue b/uni_modules/uview-plus/components/u-form-item/u-form-item.vue new file mode 100644 index 0000000..33112fa --- /dev/null +++ b/uni_modules/uview-plus/components/u-form-item/u-form-item.vue @@ -0,0 +1,245 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-form/props.js b/uni_modules/uview-plus/components/u-form/props.js new file mode 100644 index 0000000..1390ca3 --- /dev/null +++ b/uni_modules/uview-plus/components/u-form/props.js @@ -0,0 +1,46 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 当前form的需要验证字段的集合 + model: { + type: Object, + default: () => defProps.form.model + }, + // 验证规则 + rules: { + type: [Object, Function, Array], + default: () => defProps.form.rules + }, + // 有错误时的提示方式,message-提示信息,toast-进行toast提示 + // border-bottom-下边框呈现红色,none-无提示 + errorType: { + type: String, + default: () => defProps.form.errorType + }, + // 是否显示表单域的下划线边框 + borderBottom: { + type: Boolean, + default: () => defProps.form.borderBottom + }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: () => defProps.form.labelPosition + }, + // label的宽度,单位px + labelWidth: { + type: [String, Number], + default: () => defProps.form.labelWidth + }, + // lable字体的对齐方式 + labelAlign: { + type: String, + default: () => defProps.form.labelAlign + }, + // lable的样式,对象形式 + labelStyle: { + type: Object, + default: () => defProps.form.labelStyle + } + } +} diff --git a/uni_modules/uview-plus/components/u-form/u-form.vue b/uni_modules/uview-plus/components/u-form/u-form.vue new file mode 100644 index 0000000..ded118e --- /dev/null +++ b/uni_modules/uview-plus/components/u-form/u-form.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-gap/props.js b/uni_modules/uview-plus/components/u-gap/props.js new file mode 100644 index 0000000..cc5bac4 --- /dev/null +++ b/uni_modules/uview-plus/components/u-gap/props.js @@ -0,0 +1,25 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 背景颜色(默认transparent) + bgColor: { + type: String, + default: () => defProps.gap.bgColor + }, + // 分割槽高度,单位px(默认30) + height: { + type: [String, Number], + default: () => defProps.gap.height + }, + // 与上一个组件的距离 + marginTop: { + type: [String, Number], + default: () => defProps.gap.marginTop + }, + // 与下一个组件的距离 + marginBottom: { + type: [String, Number], + default: () => defProps.gap.marginBottom + } + } +} diff --git a/uni_modules/uview-plus/components/u-gap/u-gap.vue b/uni_modules/uview-plus/components/u-gap/u-gap.vue new file mode 100644 index 0000000..9a2e32d --- /dev/null +++ b/uni_modules/uview-plus/components/u-gap/u-gap.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-grid-item/props.js b/uni_modules/uview-plus/components/u-grid-item/props.js new file mode 100644 index 0000000..a3a628d --- /dev/null +++ b/uni_modules/uview-plus/components/u-grid-item/props.js @@ -0,0 +1,15 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 宫格的name + name: { + type: [String, Number, null], + default: () => defProps.gridItem.name + }, + // 背景颜色 + bgColor: { + type: String, + default: () => defProps.gridItem.bgColor + } + } +} diff --git a/uni_modules/uview-plus/components/u-grid-item/u-grid-item.vue b/uni_modules/uview-plus/components/u-grid-item/u-grid-item.vue new file mode 100644 index 0000000..b0dc0ed --- /dev/null +++ b/uni_modules/uview-plus/components/u-grid-item/u-grid-item.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-grid/props.js b/uni_modules/uview-plus/components/u-grid/props.js new file mode 100644 index 0000000..3dd4a12 --- /dev/null +++ b/uni_modules/uview-plus/components/u-grid/props.js @@ -0,0 +1,20 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 分成几列 + col: { + type: [String, Number], + default: () => defProps.grid.col + }, + // 是否显示边框 + border: { + type: Boolean, + default: () => defProps.grid.border + }, + // 宫格对齐方式,表现为数量少的时候,靠左,居中,还是靠右 + align: { + type: String, + default: () => defProps.grid.align + } + } +} diff --git a/uni_modules/uview-plus/components/u-grid/u-grid.vue b/uni_modules/uview-plus/components/u-grid/u-grid.vue new file mode 100644 index 0000000..ed273b5 --- /dev/null +++ b/uni_modules/uview-plus/components/u-grid/u-grid.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-icon/icons.js b/uni_modules/uview-plus/components/u-icon/icons.js new file mode 100644 index 0000000..f4d0fe2 --- /dev/null +++ b/uni_modules/uview-plus/components/u-icon/icons.js @@ -0,0 +1,214 @@ +export default { + 'uicon-level': '\ue693', + 'uicon-column-line': '\ue68e', + 'uicon-checkbox-mark': '\ue807', + 'uicon-folder': '\ue7f5', + 'uicon-movie': '\ue7f6', + 'uicon-star-fill': '\ue669', + 'uicon-star': '\ue65f', + 'uicon-phone-fill': '\ue64f', + 'uicon-phone': '\ue622', + 'uicon-apple-fill': '\ue881', + 'uicon-chrome-circle-fill': '\ue885', + 'uicon-backspace': '\ue67b', + 'uicon-attach': '\ue632', + 'uicon-cut': '\ue948', + 'uicon-empty-car': '\ue602', + 'uicon-empty-coupon': '\ue682', + 'uicon-empty-address': '\ue646', + 'uicon-empty-favor': '\ue67c', + 'uicon-empty-permission': '\ue686', + 'uicon-empty-news': '\ue687', + 'uicon-empty-search': '\ue664', + 'uicon-github-circle-fill': '\ue887', + 'uicon-rmb': '\ue608', + 'uicon-person-delete-fill': '\ue66a', + 'uicon-reload': '\ue788', + 'uicon-order': '\ue68f', + 'uicon-server-man': '\ue6bc', + 'uicon-search': '\ue62a', + 'uicon-fingerprint': '\ue955', + 'uicon-more-dot-fill': '\ue630', + 'uicon-scan': '\ue662', + 'uicon-share-square': '\ue60b', + 'uicon-map': '\ue61d', + 'uicon-map-fill': '\ue64e', + 'uicon-tags': '\ue629', + 'uicon-tags-fill': '\ue651', + 'uicon-bookmark-fill': '\ue63b', + 'uicon-bookmark': '\ue60a', + 'uicon-eye': '\ue613', + 'uicon-eye-fill': '\ue641', + 'uicon-mic': '\ue64a', + 'uicon-mic-off': '\ue649', + 'uicon-calendar': '\ue66e', + 'uicon-calendar-fill': '\ue634', + 'uicon-trash': '\ue623', + 'uicon-trash-fill': '\ue658', + 'uicon-play-left': '\ue66d', + 'uicon-play-right': '\ue610', + 'uicon-minus': '\ue618', + 'uicon-plus': '\ue62d', + 'uicon-info': '\ue653', + 'uicon-info-circle': '\ue7d2', + 'uicon-info-circle-fill': '\ue64b', + 'uicon-question': '\ue715', + 'uicon-error': '\ue6d3', + 'uicon-close': '\ue685', + 'uicon-checkmark': '\ue6a8', + 'uicon-android-circle-fill': '\ue67e', + 'uicon-android-fill': '\ue67d', + 'uicon-ie': '\ue87b', + 'uicon-IE-circle-fill': '\ue889', + 'uicon-google': '\ue87a', + 'uicon-google-circle-fill': '\ue88a', + 'uicon-setting-fill': '\ue872', + 'uicon-setting': '\ue61f', + 'uicon-minus-square-fill': '\ue855', + 'uicon-plus-square-fill': '\ue856', + 'uicon-heart': '\ue7df', + 'uicon-heart-fill': '\ue851', + 'uicon-camera': '\ue7d7', + 'uicon-camera-fill': '\ue870', + 'uicon-more-circle': '\ue63e', + 'uicon-more-circle-fill': '\ue645', + 'uicon-chat': '\ue620', + 'uicon-chat-fill': '\ue61e', + 'uicon-bag-fill': '\ue617', + 'uicon-bag': '\ue619', + 'uicon-error-circle-fill': '\ue62c', + 'uicon-error-circle': '\ue624', + 'uicon-close-circle': '\ue63f', + 'uicon-close-circle-fill': '\ue637', + 'uicon-checkmark-circle': '\ue63d', + 'uicon-checkmark-circle-fill': '\ue635', + 'uicon-question-circle-fill': '\ue666', + 'uicon-question-circle': '\ue625', + 'uicon-share': '\ue631', + 'uicon-share-fill': '\ue65e', + 'uicon-shopping-cart': '\ue621', + 'uicon-shopping-cart-fill': '\ue65d', + 'uicon-bell': '\ue609', + 'uicon-bell-fill': '\ue640', + 'uicon-list': '\ue650', + 'uicon-list-dot': '\ue616', + 'uicon-zhihu': '\ue6ba', + 'uicon-zhihu-circle-fill': '\ue709', + 'uicon-zhifubao': '\ue6b9', + 'uicon-zhifubao-circle-fill': '\ue6b8', + 'uicon-weixin-circle-fill': '\ue6b1', + 'uicon-weixin-fill': '\ue6b2', + 'uicon-twitter-circle-fill': '\ue6ab', + 'uicon-twitter': '\ue6aa', + 'uicon-taobao-circle-fill': '\ue6a7', + 'uicon-taobao': '\ue6a6', + 'uicon-weibo-circle-fill': '\ue6a5', + 'uicon-weibo': '\ue6a4', + 'uicon-qq-fill': '\ue6a1', + 'uicon-qq-circle-fill': '\ue6a0', + 'uicon-moments-circel-fill': '\ue69a', + 'uicon-moments': '\ue69b', + 'uicon-qzone': '\ue695', + 'uicon-qzone-circle-fill': '\ue696', + 'uicon-baidu-circle-fill': '\ue680', + 'uicon-baidu': '\ue681', + 'uicon-facebook-circle-fill': '\ue68a', + 'uicon-facebook': '\ue689', + 'uicon-car': '\ue60c', + 'uicon-car-fill': '\ue636', + 'uicon-warning-fill': '\ue64d', + 'uicon-warning': '\ue694', + 'uicon-clock-fill': '\ue638', + 'uicon-clock': '\ue60f', + 'uicon-edit-pen': '\ue612', + 'uicon-edit-pen-fill': '\ue66b', + 'uicon-email': '\ue611', + 'uicon-email-fill': '\ue642', + 'uicon-minus-circle': '\ue61b', + 'uicon-minus-circle-fill': '\ue652', + 'uicon-plus-circle': '\ue62e', + 'uicon-plus-circle-fill': '\ue661', + 'uicon-file-text': '\ue663', + 'uicon-file-text-fill': '\ue665', + 'uicon-pushpin': '\ue7e3', + 'uicon-pushpin-fill': '\ue86e', + 'uicon-grid': '\ue673', + 'uicon-grid-fill': '\ue678', + 'uicon-play-circle': '\ue647', + 'uicon-play-circle-fill': '\ue655', + 'uicon-pause-circle-fill': '\ue654', + 'uicon-pause': '\ue8fa', + 'uicon-pause-circle': '\ue643', + 'uicon-eye-off': '\ue648', + 'uicon-eye-off-outline': '\ue62b', + 'uicon-gift-fill': '\ue65c', + 'uicon-gift': '\ue65b', + 'uicon-rmb-circle-fill': '\ue657', + 'uicon-rmb-circle': '\ue677', + 'uicon-kefu-ermai': '\ue656', + 'uicon-server-fill': '\ue751', + 'uicon-coupon-fill': '\ue8c4', + 'uicon-coupon': '\ue8ae', + 'uicon-integral': '\ue704', + 'uicon-integral-fill': '\ue703', + 'uicon-home-fill': '\ue964', + 'uicon-home': '\ue965', + 'uicon-hourglass-half-fill': '\ue966', + 'uicon-hourglass': '\ue967', + 'uicon-account': '\ue628', + 'uicon-plus-people-fill': '\ue626', + 'uicon-minus-people-fill': '\ue615', + 'uicon-account-fill': '\ue614', + 'uicon-thumb-down-fill': '\ue726', + 'uicon-thumb-down': '\ue727', + 'uicon-thumb-up': '\ue733', + 'uicon-thumb-up-fill': '\ue72f', + 'uicon-lock-fill': '\ue979', + 'uicon-lock-open': '\ue973', + 'uicon-lock-opened-fill': '\ue974', + 'uicon-lock': '\ue97a', + 'uicon-red-packet-fill': '\ue690', + 'uicon-photo-fill': '\ue98b', + 'uicon-photo': '\ue98d', + 'uicon-volume-off-fill': '\ue659', + 'uicon-volume-off': '\ue644', + 'uicon-volume-fill': '\ue670', + 'uicon-volume': '\ue633', + 'uicon-red-packet': '\ue691', + 'uicon-download': '\ue63c', + 'uicon-arrow-up-fill': '\ue6b0', + 'uicon-arrow-down-fill': '\ue600', + 'uicon-play-left-fill': '\ue675', + 'uicon-play-right-fill': '\ue676', + 'uicon-rewind-left-fill': '\ue679', + 'uicon-rewind-right-fill': '\ue67a', + 'uicon-arrow-downward': '\ue604', + 'uicon-arrow-leftward': '\ue601', + 'uicon-arrow-rightward': '\ue603', + 'uicon-arrow-upward': '\ue607', + 'uicon-arrow-down': '\ue60d', + 'uicon-arrow-right': '\ue605', + 'uicon-arrow-left': '\ue60e', + 'uicon-arrow-up': '\ue606', + 'uicon-skip-back-left': '\ue674', + 'uicon-skip-forward-right': '\ue672', + 'uicon-rewind-right': '\ue66f', + 'uicon-rewind-left': '\ue671', + 'uicon-arrow-right-double': '\ue68d', + 'uicon-arrow-left-double': '\ue68c', + 'uicon-wifi-off': '\ue668', + 'uicon-wifi': '\ue667', + 'uicon-empty-data': '\ue62f', + 'uicon-empty-history': '\ue684', + 'uicon-empty-list': '\ue68b', + 'uicon-empty-page': '\ue627', + 'uicon-empty-order': '\ue639', + 'uicon-man': '\ue697', + 'uicon-woman': '\ue69c', + 'uicon-man-add': '\ue61c', + 'uicon-man-add-fill': '\ue64c', + 'uicon-man-delete': '\ue61a', + 'uicon-man-delete-fill': '\ue66a', + 'uicon-zh': '\ue70a', + 'uicon-en': '\ue692' +} diff --git a/uni_modules/uview-plus/components/u-icon/props.js b/uni_modules/uview-plus/components/u-icon/props.js new file mode 100644 index 0000000..09c63a3 --- /dev/null +++ b/uni_modules/uview-plus/components/u-icon/props.js @@ -0,0 +1,90 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 图标类名 + name: { + type: String, + default: () => defProps.icon.name + }, + // 图标颜色,可接受主题色 + color: { + type: String, + default: () => defProps.icon.color + }, + // 字体大小,单位px + size: { + type: [String, Number], + default: () => defProps.icon.size + }, + // 是否显示粗体 + bold: { + type: Boolean, + default: () => defProps.icon.bold + }, + // 点击图标的时候传递事件出去的index(用于区分点击了哪一个) + index: { + type: [String, Number], + default: () => defProps.icon.index + }, + // 触摸图标时的类名 + hoverClass: { + type: String, + default: () => defProps.icon.hoverClass + }, + // 自定义扩展前缀,方便用户扩展自己的图标库 + customPrefix: { + type: String, + default: () => defProps.icon.customPrefix + }, + // 图标右边或者下面的文字 + label: { + type: [String, Number], + default: () => defProps.icon.label + }, + // label的位置,只能右边或者下边 + labelPos: { + type: String, + default: () => defProps.icon.labelPos + }, + // label的大小 + labelSize: { + type: [String, Number], + default: () => defProps.icon.labelSize + }, + // label的颜色 + labelColor: { + type: String, + default: () => defProps.icon.labelColor + }, + // label与图标的距离 + space: { + type: [String, Number], + default: () => defProps.icon.space + }, + // 图片的mode + imgMode: { + type: String, + default: () => defProps.icon.imgMode + }, + // 用于显示图片小图标时,图片的宽度 + width: { + type: [String, Number], + default: () => defProps.icon.width + }, + // 用于显示图片小图标时,图片的高度 + height: { + type: [String, Number], + default: () => defProps.icon.height + }, + // 用于解决某些情况下,让图标垂直居中的用途 + top: { + type: [String, Number], + default: () => defProps.icon.top + }, + // 是否阻止事件传播 + stop: { + type: Boolean, + default: () => defProps.icon.stop + } + } +} diff --git a/uni_modules/uview-plus/components/u-icon/u-icon.vue b/uni_modules/uview-plus/components/u-icon/u-icon.vue new file mode 100644 index 0000000..61fdc18 --- /dev/null +++ b/uni_modules/uview-plus/components/u-icon/u-icon.vue @@ -0,0 +1,242 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-image/props.js b/uni_modules/uview-plus/components/u-image/props.js new file mode 100644 index 0000000..31a6f4e --- /dev/null +++ b/uni_modules/uview-plus/components/u-image/props.js @@ -0,0 +1,85 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 图片地址 + src: { + type: String, + default: () => defProps.image.src + }, + // 裁剪模式 + mode: { + type: String, + default: () => defProps.image.mode + }, + // 宽度,单位任意 + width: { + type: [String, Number], + default: () => defProps.image.width + }, + // 高度,单位任意 + height: { + type: [String, Number], + default: () => defProps.image.height + }, + // 图片形状,circle-圆形,square-方形 + shape: { + type: String, + default: () => defProps.image.shape + }, + // 圆角,单位任意 + radius: { + type: [String, Number], + default: () => defProps.image.radius + }, + // 是否懒加载,微信小程序、App、百度小程序、字节跳动小程序 + lazyLoad: { + type: Boolean, + default: () => defProps.image.lazyLoad + }, + // 开启长按图片显示识别微信小程序码菜单 + showMenuByLongpress: { + type: Boolean, + default: () => defProps.image.showMenuByLongpress + }, + // 加载中的图标,或者小图片 + loadingIcon: { + type: String, + default: () => defProps.image.loadingIcon + }, + // 加载失败的图标,或者小图片 + errorIcon: { + type: String, + default: () => defProps.image.errorIcon + }, + // 是否显示加载中的图标或者自定义的slot + showLoading: { + type: Boolean, + default: () => defProps.image.showLoading + }, + // 是否显示加载错误的图标或者自定义的slot + showError: { + type: Boolean, + default: () => defProps.image.showError + }, + // 是否需要淡入效果 + fade: { + type: Boolean, + default: () => defProps.image.fade + }, + // 只支持网络资源,只对微信小程序有效 + webp: { + type: Boolean, + default: () => defProps.image.webp + }, + // 过渡时间,单位ms + duration: { + type: [String, Number], + default: () => defProps.image.duration + }, + // 背景颜色,用于深色页面加载图片时,为了和背景色融合 + bgColor: { + type: String, + default: () => defProps.image.bgColor + } + } +} diff --git a/uni_modules/uview-plus/components/u-image/u-image.vue b/uni_modules/uview-plus/components/u-image/u-image.vue new file mode 100644 index 0000000..2c2f052 --- /dev/null +++ b/uni_modules/uview-plus/components/u-image/u-image.vue @@ -0,0 +1,237 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-index-anchor/props.js b/uni_modules/uview-plus/components/u-index-anchor/props.js new file mode 100644 index 0000000..bbcd8d7 --- /dev/null +++ b/uni_modules/uview-plus/components/u-index-anchor/props.js @@ -0,0 +1,30 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 列表锚点文本内容 + text: { + type: [String, Number], + default: () => defProps.indexAnchor.text + }, + // 列表锚点文字颜色 + color: { + type: String, + default: () => defProps.indexAnchor.color + }, + // 列表锚点文字大小,单位默认px + size: { + type: [String, Number], + default: () => defProps.indexAnchor.size + }, + // 列表锚点背景颜色 + bgColor: { + type: String, + default: () => defProps.indexAnchor.bgColor + }, + // 列表锚点高度,单位默认px + height: { + type: [String, Number], + default: () => defProps.indexAnchor.height + } + } +} diff --git a/uni_modules/uview-plus/components/u-index-anchor/u-index-anchor.vue b/uni_modules/uview-plus/components/u-index-anchor/u-index-anchor.vue new file mode 100644 index 0000000..b56d634 --- /dev/null +++ b/uni_modules/uview-plus/components/u-index-anchor/u-index-anchor.vue @@ -0,0 +1,95 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-index-item/props.js b/uni_modules/uview-plus/components/u-index-item/props.js new file mode 100644 index 0000000..662c38e --- /dev/null +++ b/uni_modules/uview-plus/components/u-index-item/props.js @@ -0,0 +1,6 @@ +// import defProps from '../../libs/config/props.js'; +export default { + props: { + + } +} diff --git a/uni_modules/uview-plus/components/u-index-item/u-index-item.vue b/uni_modules/uview-plus/components/u-index-item/u-index-item.vue new file mode 100644 index 0000000..fe2f750 --- /dev/null +++ b/uni_modules/uview-plus/components/u-index-item/u-index-item.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-index-list/props.js b/uni_modules/uview-plus/components/u-index-list/props.js new file mode 100644 index 0000000..2dfb24a --- /dev/null +++ b/uni_modules/uview-plus/components/u-index-list/props.js @@ -0,0 +1,30 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 右边锚点非激活的颜色 + inactiveColor: { + type: String, + default: () => defProps.indexList.inactiveColor + }, + // 右边锚点激活的颜色 + activeColor: { + type: String, + default: () => defProps.indexList.activeColor + }, + // 索引字符列表,数组形式 + indexList: { + type: Array, + default: () => defProps.indexList.indexList + }, + // 是否开启锚点自动吸顶 + sticky: { + type: Boolean, + default: () => defProps.indexList.sticky + }, + // 自定义导航栏的高度 + customNavHeight: { + type: [String, Number], + default: () => defProps.indexList.customNavHeight + } + } +} diff --git a/uni_modules/uview-plus/components/u-index-list/u-index-list.vue b/uni_modules/uview-plus/components/u-index-list/u-index-list.vue new file mode 100644 index 0000000..6a029a6 --- /dev/null +++ b/uni_modules/uview-plus/components/u-index-list/u-index-list.vue @@ -0,0 +1,446 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-input/props.js b/uni_modules/uview-plus/components/u-input/props.js new file mode 100644 index 0000000..0303f0f --- /dev/null +++ b/uni_modules/uview-plus/components/u-input/props.js @@ -0,0 +1,196 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // #ifdef VUE3 + // 绑定的值 + modelValue: { + type: [String, Number], + default: () => defProps.input.value + }, + // #endif + // #ifdef VUE2 + // 绑定的值 + value: { + type: [String, Number], + default: () => defProps.input.value + }, + // #endif + // number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数 + // idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序 + // digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序 + // text-文本输入键盘 + type: { + type: String, + default: () => defProps.input.type + }, + // 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true, + // 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序 + fixed: { + type: Boolean, + default: () => defProps.input.fixed + }, + // 是否禁用输入框 + disabled: { + type: Boolean, + default: () => defProps.input.disabled + }, + // 禁用状态时的背景色 + disabledColor: { + type: String, + default: () => defProps.input.disabledColor + }, + // 是否显示清除控件 + clearable: { + type: Boolean, + default: () => defProps.input.clearable + }, + // 是否密码类型 + password: { + type: Boolean, + default: () => defProps.input.password + }, + // 最大输入长度,设置为 -1 的时候不限制最大长度 + maxlength: { + type: [String, Number], + default: () => defProps.input.maxlength + }, + // 输入框为空时的占位符 + placeholder: { + type: String, + default: () => defProps.input.placeholder + }, + // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ + placeholderClass: { + type: String, + default: () => defProps.input.placeholderClass + }, + // 指定placeholder的样式 + placeholderStyle: { + type: [String, Object], + default: () => defProps.input.placeholderStyle + }, + // 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效 + showWordLimit: { + type: Boolean, + default: () => defProps.input.showWordLimit + }, + // 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档 + // https://uniapp.dcloud.io/component/input + // https://uniapp.dcloud.io/component/textarea + confirmType: { + type: String, + default: () => defProps.input.confirmType + }, + // 点击键盘右下角按钮时是否保持键盘不收起,H5无效 + confirmHold: { + type: Boolean, + default: () => defProps.input.confirmHold + }, + // focus时,点击页面的时候不收起键盘,微信小程序有效 + holdKeyboard: { + type: Boolean, + default: () => defProps.input.holdKeyboard + }, + // 自动获取焦点 + // 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点 + focus: { + type: Boolean, + default: () => defProps.input.focus + }, + // 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效 + autoBlur: { + type: Boolean, + default: () => defProps.input.autoBlur + }, + // 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效 + disableDefaultPadding: { + type: Boolean, + default: () => defProps.input.disableDefaultPadding + }, + // 指定focus时光标的位置 + cursor: { + type: [String, Number], + default: () => defProps.input.cursor + }, + // 输入框聚焦时底部与键盘的距离 + cursorSpacing: { + type: [String, Number], + default: () => defProps.input.cursorSpacing + }, + // 光标起始位置,自动聚集时有效,需与selection-end搭配使用 + selectionStart: { + type: [String, Number], + default: () => defProps.input.selectionStart + }, + // 光标结束位置,自动聚集时有效,需与selection-start搭配使用 + selectionEnd: { + type: [String, Number], + default: () => defProps.input.selectionEnd + }, + // 键盘弹起时,是否自动上推页面 + adjustPosition: { + type: Boolean, + default: () => defProps.input.adjustPosition + }, + // 输入框内容对齐方式,可选值为:left|center|right + inputAlign: { + type: String, + default: () => defProps.input.inputAlign + }, + // 输入框字体的大小 + fontSize: { + type: [String, Number], + default: () => defProps.input.fontSize + }, + // 输入框字体颜色 + color: { + type: String, + default: () => defProps.input.color + }, + // 输入框前置图标 + prefixIcon: { + type: String, + default: () => defProps.input.prefixIcon + }, + // 前置图标样式,对象或字符串 + prefixIconStyle: { + type: [String, Object], + default: () => defProps.input.prefixIconStyle + }, + // 输入框后置图标 + suffixIcon: { + type: String, + default: () => defProps.input.suffixIcon + }, + // 后置图标样式,对象或字符串 + suffixIconStyle: { + type: [String, Object], + default: () => defProps.input.suffixIconStyle + }, + // 边框类型,surround-四周边框,bottom-底部边框,none-无边框 + border: { + type: String, + default: () => defProps.input.border + }, + // 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 + readonly: { + type: Boolean, + default: () => defProps.input.readonly + }, + // 输入框形状,circle-圆形,square-方形 + shape: { + type: String, + default: () => defProps.input.shape + }, + // 用于处理或者过滤输入框内容的方法 + formatter: { + type: [Function, null], + default: () => defProps.input.formatter + }, + // 是否忽略组件内对文本合成系统事件的处理 + ignoreCompositionEvent: { + type: Boolean, + default: true + } + } +} diff --git a/uni_modules/uview-plus/components/u-input/u-input.vue b/uni_modules/uview-plus/components/u-input/u-input.vue new file mode 100644 index 0000000..0550f1c --- /dev/null +++ b/uni_modules/uview-plus/components/u-input/u-input.vue @@ -0,0 +1,400 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-keyboard/props.js b/uni_modules/uview-plus/components/u-keyboard/props.js new file mode 100644 index 0000000..d0c058e --- /dev/null +++ b/uni_modules/uview-plus/components/u-keyboard/props.js @@ -0,0 +1,85 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 键盘的类型,number-数字键盘,card-身份证键盘,car-车牌号键盘 + mode: { + type: String, + default: () => defProps.keyboard.mode + }, + // 是否显示键盘的"."符号 + dotDisabled: { + type: Boolean, + default: () => defProps.keyboard.dotDisabled + }, + // 是否显示顶部工具条 + tooltip: { + type: Boolean, + default: () => defProps.keyboard.tooltip + }, + // 是否显示工具条中间的提示 + showTips: { + type: Boolean, + default: () => defProps.keyboard.showTips + }, + // 工具条中间的提示文字 + tips: { + type: String, + default: () => defProps.keyboard.tips + }, + // 是否显示工具条左边的"取消"按钮 + showCancel: { + type: Boolean, + default: () => defProps.keyboard.showCancel + }, + // 是否显示工具条右边的"完成"按钮 + showConfirm: { + type: Boolean, + default: () => defProps.keyboard.showConfirm + }, + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: () => defProps.keyboard.random + }, + // 是否开启底部安全区适配,开启的话,会在iPhoneX机型底部添加一定的内边距 + safeAreaInsetBottom: { + type: Boolean, + default: () => defProps.keyboard.safeAreaInsetBottom + }, + // 是否允许通过点击遮罩关闭键盘 + closeOnClickOverlay: { + type: Boolean, + default: () => defProps.keyboard.closeOnClickOverlay + }, + // 控制键盘的弹出与收起 + show: { + type: Boolean, + default: () => defProps.keyboard.show + }, + // 是否显示遮罩,某些时候数字键盘时,用户希望看到自己的数值,所以可能不想要遮罩 + overlay: { + type: Boolean, + default: () => defProps.keyboard.overlay + }, + // z-index值 + zIndex: { + type: [String, Number], + default: () => defProps.keyboard.zIndex + }, + // 取消按钮的文字 + cancelText: { + type: String, + default: () => defProps.keyboard.cancelText + }, + // 确认按钮的文字 + confirmText: { + type: String, + default: () => defProps.keyboard.confirmText + }, + // 输入一个中文后,是否自动切换到英文 + autoChange: { + type: Boolean, + default: () => defProps.keyboard.autoChange + } + } +} diff --git a/uni_modules/uview-plus/components/u-keyboard/u-keyboard.vue b/uni_modules/uview-plus/components/u-keyboard/u-keyboard.vue new file mode 100644 index 0000000..4495ef0 --- /dev/null +++ b/uni_modules/uview-plus/components/u-keyboard/u-keyboard.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-lazy-load/u-lazy-load.vue b/uni_modules/uview-plus/components/u-lazy-load/u-lazy-load.vue new file mode 100644 index 0000000..5e60f9a --- /dev/null +++ b/uni_modules/uview-plus/components/u-lazy-load/u-lazy-load.vue @@ -0,0 +1,251 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/uview-plus/components/u-line-progress/props.js b/uni_modules/uview-plus/components/u-line-progress/props.js new file mode 100644 index 0000000..b051f5a --- /dev/null +++ b/uni_modules/uview-plus/components/u-line-progress/props.js @@ -0,0 +1,29 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 激活部分的颜色 + activeColor: { + type: String, + default: () => defProps.lineProgress.activeColor + }, + inactiveColor: { + type: String, + default: () => defProps.lineProgress.color + }, + // 进度百分比,数值 + percentage: { + type: [String, Number], + default: () => defProps.lineProgress.inactiveColor + }, + // 是否在进度条内部显示百分比的值 + showText: { + type: Boolean, + default: () => defProps.lineProgress.showText + }, + // 进度条的高度,单位px + height: { + type: [String, Number], + default: () => defProps.lineProgress.height + } + } +} diff --git a/uni_modules/uview-plus/components/u-line-progress/u-line-progress.vue b/uni_modules/uview-plus/components/u-line-progress/u-line-progress.vue new file mode 100644 index 0000000..bc6c520 --- /dev/null +++ b/uni_modules/uview-plus/components/u-line-progress/u-line-progress.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-line/props.js b/uni_modules/uview-plus/components/u-line/props.js new file mode 100644 index 0000000..6ca15d9 --- /dev/null +++ b/uni_modules/uview-plus/components/u-line/props.js @@ -0,0 +1,34 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + color: { + type: String, + default: () => defProps.line.color + }, + // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等 + length: { + type: [String, Number], + default: () => defProps.line.length + }, + // 线条方向,col-竖向,row-横向 + direction: { + type: String, + default: () => defProps.line.direction + }, + // 是否显示细边框 + hairline: { + type: Boolean, + default: () => defProps.line.hairline + }, + // 线条与上下左右元素的间距,字符串形式,如"30px"、"20px 30px" + margin: { + type: [String, Number], + default: () => defProps.line.margin + }, + // 是否虚线,true-虚线,false-实线 + dashed: { + type: Boolean, + default: () => defProps.line.dashed + } + } +} diff --git a/uni_modules/uview-plus/components/u-line/u-line.vue b/uni_modules/uview-plus/components/u-line/u-line.vue new file mode 100644 index 0000000..228242b --- /dev/null +++ b/uni_modules/uview-plus/components/u-line/u-line.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-link/props.js b/uni_modules/uview-plus/components/u-link/props.js new file mode 100644 index 0000000..908c888 --- /dev/null +++ b/uni_modules/uview-plus/components/u-link/props.js @@ -0,0 +1,40 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 文字颜色 + color: { + type: String, + default: () => defProps.link.color + }, + // 字体大小,单位px + fontSize: { + type: [String, Number], + default: () => defProps.link.fontSize + }, + // 是否显示下划线 + underLine: { + type: Boolean, + default: () => defProps.link.underLine + }, + // 要跳转的链接 + href: { + type: String, + default: () => defProps.link.href + }, + // 小程序中复制到粘贴板的提示语 + mpTips: { + type: String, + default: () => defProps.link.mpTips + }, + // 下划线颜色 + lineColor: { + type: String, + default: () => defProps.link.lineColor + }, + // 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色 + text: { + type: String, + default: () => defProps.link.text + } + } +} diff --git a/uni_modules/uview-plus/components/u-link/u-link.vue b/uni_modules/uview-plus/components/u-link/u-link.vue new file mode 100644 index 0000000..0f2871d --- /dev/null +++ b/uni_modules/uview-plus/components/u-link/u-link.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-list-item/props.js b/uni_modules/uview-plus/components/u-list-item/props.js new file mode 100644 index 0000000..61ed302 --- /dev/null +++ b/uni_modules/uview-plus/components/u-list-item/props.js @@ -0,0 +1,10 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 用于滚动到指定item + anchor: { + type: [String, Number], + default: () => defProps.listItem.anchor + } + } +} diff --git a/uni_modules/uview-plus/components/u-list-item/u-list-item.vue b/uni_modules/uview-plus/components/u-list-item/u-list-item.vue new file mode 100644 index 0000000..7eada94 --- /dev/null +++ b/uni_modules/uview-plus/components/u-list-item/u-list-item.vue @@ -0,0 +1,119 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-list/props.js b/uni_modules/uview-plus/components/u-list/props.js new file mode 100644 index 0000000..2270dd1 --- /dev/null +++ b/uni_modules/uview-plus/components/u-list/props.js @@ -0,0 +1,77 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 控制是否出现滚动条,仅nvue有效 + showScrollbar: { + type: Boolean, + default: () => defProps.list.showScrollbar + }, + // 距底部多少时触发scrolltolower事件 + lowerThreshold: { + type: [String, Number], + default: () => defProps.list.lowerThreshold + }, + // 距顶部多少时触发scrolltoupper事件,非nvue有效 + upperThreshold: { + type: [String, Number], + default: () => defProps.list.upperThreshold + }, + // 设置竖向滚动条位置 + scrollTop: { + type: [String, Number], + default: () => defProps.list.scrollTop + }, + // 控制 onscroll 事件触发的频率,仅nvue有效 + offsetAccuracy: { + type: [String, Number], + default: () => defProps.list.offsetAccuracy + }, + // 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效 + enableFlex: { + type: Boolean, + default: () => defProps.list.enableFlex + }, + // 是否按分页模式显示List,默认值false + pagingEnabled: { + type: Boolean, + default: () => defProps.list.pagingEnabled + }, + // 是否允许List滚动 + scrollable: { + type: Boolean, + default: () => defProps.list.scrollable + }, + // 值应为某子元素id(id不能以数字开头) + scrollIntoView: { + type: String, + default: () => defProps.list.scrollIntoView + }, + // 在设置滚动条位置时使用动画过渡 + scrollWithAnimation: { + type: Boolean, + default: () => defProps.list.scrollWithAnimation + }, + // iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效 + enableBackToTop: { + type: Boolean, + default: () => defProps.list.enableBackToTop + }, + // 列表的高度 + height: { + type: [String, Number], + default: () => defProps.list.height + }, + // 列表宽度 + width: { + type: [String, Number], + default: () => defProps.list.width + }, + // 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度 + preLoadScreen: { + type: [String, Number], + default: () => defProps.list.preLoadScreen + } + // vue下,是否开启虚拟列表 + + } +} diff --git a/uni_modules/uview-plus/components/u-list/u-list.vue b/uni_modules/uview-plus/components/u-list/u-list.vue new file mode 100644 index 0000000..dd40cea --- /dev/null +++ b/uni_modules/uview-plus/components/u-list/u-list.vue @@ -0,0 +1,160 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-loading-icon/props.js b/uni_modules/uview-plus/components/u-loading-icon/props.js new file mode 100644 index 0000000..825452e --- /dev/null +++ b/uni_modules/uview-plus/components/u-loading-icon/props.js @@ -0,0 +1,60 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否显示组件 + show: { + type: Boolean, + default: () => defProps.loadingIcon.show + }, + // 颜色 + color: { + type: String, + default: () => defProps.loadingIcon.color + }, + // 提示文字颜色 + textColor: { + type: String, + default: () => defProps.loadingIcon.textColor + }, + // 文字和图标是否垂直排列 + vertical: { + type: Boolean, + default: () => defProps.loadingIcon.vertical + }, + // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形 + mode: { + type: String, + default: () => defProps.loadingIcon.mode + }, + // 图标大小,单位默认px + size: { + type: [String, Number], + default: () => defProps.loadingIcon.size + }, + // 文字大小 + textSize: { + type: [String, Number], + default: () => defProps.loadingIcon.textSize + }, + // 文字内容 + text: { + type: [String, Number], + default: () => defProps.loadingIcon.text + }, + // 动画模式 + timingFunction: { + type: String, + default: () => defProps.loadingIcon.timingFunction + }, + // 动画执行周期时间 + duration: { + type: [String, Number], + default: () => defProps.loadingIcon.duration + }, + // mode=circle时的暗边颜色 + inactiveColor: { + type: String, + default: () => defProps.loadingIcon.inactiveColor + } + } +} diff --git a/uni_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue b/uni_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue new file mode 100644 index 0000000..baa4a2a --- /dev/null +++ b/uni_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue @@ -0,0 +1,349 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-loading-page/props.js b/uni_modules/uview-plus/components/u-loading-page/props.js new file mode 100644 index 0000000..aa2d50c --- /dev/null +++ b/uni_modules/uview-plus/components/u-loading-page/props.js @@ -0,0 +1,50 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 提示内容 + loadingText: { + type: [String, Number], + default: () => defProps.loadingPage.loadingText + }, + // 文字上方用于替换loading动画的图片 + image: { + type: String, + default: () => defProps.loadingPage.image + }, + // 加载动画的模式,circle-圆形,spinner-花朵形,semicircle-半圆形 + loadingMode: { + type: String, + default: () => defProps.loadingPage.loadingMode + }, + // 是否加载中 + loading: { + type: Boolean, + default: () => defProps.loadingPage.loading + }, + // 背景色 + bgColor: { + type: String, + default: () => defProps.loadingPage.bgColor + }, + // 文字颜色 + color: { + type: String, + default: () => defProps.loadingPage.color + }, + // 文字大小 + fontSize: { + type: [String, Number], + default: () => defProps.loadingPage.fontSize + }, + // 图标大小 + iconSize: { + type: [String, Number], + default: () => defProps.loadingPage.fontSize + }, + // 加载中图标的颜色,只能rgb或者十六进制颜色值 + loadingColor: { + type: String, + default: () => defProps.loadingPage.loadingColor + } + } +} diff --git a/uni_modules/uview-plus/components/u-loading-page/u-loading-page.vue b/uni_modules/uview-plus/components/u-loading-page/u-loading-page.vue new file mode 100644 index 0000000..0044a0c --- /dev/null +++ b/uni_modules/uview-plus/components/u-loading-page/u-loading-page.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-loadmore/props.js b/uni_modules/uview-plus/components/u-loadmore/props.js new file mode 100644 index 0000000..927574a --- /dev/null +++ b/uni_modules/uview-plus/components/u-loadmore/props.js @@ -0,0 +1,95 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 组件状态,loadmore-加载前的状态,loading-加载中的状态,nomore-没有更多的状态 + status: { + type: String, + default: () => defProps.loadmore.status + }, + // 组件背景色 + bgColor: { + type: String, + default: () => defProps.loadmore.bgColor + }, + // 是否显示加载中的图标 + icon: { + type: Boolean, + default: () => defProps.loadmore.icon + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: () => defProps.loadmore.fontSize + }, + // 图标大小 + iconSize: { + type: [String, Number], + default: () => defProps.loadmore.iconSize + }, + // 字体颜色 + color: { + type: String, + default: () => defProps.loadmore.color + }, + // 加载中状态的图标,spinner-花朵状图标,circle-圆圈状,semicircle-半圆 + loadingIcon: { + type: String, + default: () => defProps.loadmore.loadingIcon + }, + // 加载前的提示语 + loadmoreText: { + type: String, + default: () => defProps.loadmore.loadmoreText + }, + // 加载中提示语 + loadingText: { + type: String, + default: () => defProps.loadmore.loadingText + }, + // 没有更多的提示语 + nomoreText: { + type: String, + default: () => defProps.loadmore.nomoreText + }, + // 在“没有更多”状态下,是否显示粗点 + isDot: { + type: Boolean, + default: () => defProps.loadmore.isDot + }, + // 加载中图标的颜色 + iconColor: { + type: String, + default: () => defProps.loadmore.iconColor + }, + // 上边距 + marginTop: { + type: [String, Number], + default: () => defProps.loadmore.marginTop + }, + // 下边距 + marginBottom: { + type: [String, Number], + default: () => defProps.loadmore.marginBottom + }, + // 高度,单位px + height: { + type: [String, Number], + default: () => defProps.loadmore.height + }, + // 是否显示左边分割线 + line: { + type: Boolean, + default: () => defProps.loadmore.line + }, + // 线条颜色 + lineColor: { + type: String, + default: () => defProps.loadmore.lineColor + }, + // 是否虚线,true-虚线,false-实线 + dashed: { + type: Boolean, + default: () => defProps.loadmore.dashed + } + } +} diff --git a/uni_modules/uview-plus/components/u-loadmore/u-loadmore.vue b/uni_modules/uview-plus/components/u-loadmore/u-loadmore.vue new file mode 100644 index 0000000..e5654d5 --- /dev/null +++ b/uni_modules/uview-plus/components/u-loadmore/u-loadmore.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-message-input/u-message-input.vue b/uni_modules/uview-plus/components/u-message-input/u-message-input.vue new file mode 100644 index 0000000..0da5f1c --- /dev/null +++ b/uni_modules/uview-plus/components/u-message-input/u-message-input.vue @@ -0,0 +1,318 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-modal/props.js b/uni_modules/uview-plus/components/u-modal/props.js new file mode 100644 index 0000000..b4bb168 --- /dev/null +++ b/uni_modules/uview-plus/components/u-modal/props.js @@ -0,0 +1,85 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否展示modal + show: { + type: Boolean, + default: () => defProps.modal.show + }, + // 标题 + title: { + type: [String], + default: () => defProps.modal.title + }, + // 弹窗内容 + content: { + type: String, + default: () => defProps.modal.content + }, + // 确认文案 + confirmText: { + type: String, + default: () => defProps.modal.confirmText + }, + // 取消文案 + cancelText: { + type: String, + default: () => defProps.modal.cancelText + }, + // 是否显示确认按钮 + showConfirmButton: { + type: Boolean, + default: () => defProps.modal.showConfirmButton + }, + // 是否显示取消按钮 + showCancelButton: { + type: Boolean, + default: () => defProps.modal.showCancelButton + }, + // 确认按钮颜色 + confirmColor: { + type: String, + default: () => defProps.modal.confirmColor + }, + // 取消文字颜色 + cancelColor: { + type: String, + default: () => defProps.modal.cancelColor + }, + // 对调确认和取消的位置 + buttonReverse: { + type: Boolean, + default: () => defProps.modal.buttonReverse + }, + // 是否开启缩放效果 + zoom: { + type: Boolean, + default: () => defProps.modal.zoom + }, + // 是否异步关闭,只对确定按钮有效 + asyncClose: { + type: Boolean, + default: () => defProps.modal.asyncClose + }, + // 是否允许点击遮罩关闭modal + closeOnClickOverlay: { + type: Boolean, + default: () => defProps.modal.closeOnClickOverlay + }, + // 给一个负的margin-top,往上偏移,避免和键盘重合的情况 + negativeTop: { + type: [String, Number], + default: () => defProps.modal.negativeTop + }, + // modal宽度,不支持百分比,可以数值,px,rpx单位 + width: { + type: [String, Number], + default: () => defProps.modal.width + }, + // 确认按钮的样式,circle-圆形,square-方形,如设置,将不会显示取消按钮 + confirmButtonShape: { + type: String, + default: () => defProps.modal.confirmButtonShape + } + } +} diff --git a/uni_modules/uview-plus/components/u-modal/u-modal.vue b/uni_modules/uview-plus/components/u-modal/u-modal.vue new file mode 100644 index 0000000..f3714eb --- /dev/null +++ b/uni_modules/uview-plus/components/u-modal/u-modal.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-navbar/props.js b/uni_modules/uview-plus/components/u-navbar/props.js new file mode 100644 index 0000000..87ba882 --- /dev/null +++ b/uni_modules/uview-plus/components/u-navbar/props.js @@ -0,0 +1,85 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否开启顶部安全区适配 + safeAreaInsetTop: { + type: Boolean, + default: () => defProps.navbar.safeAreaInsetTop + }, + // 固定在顶部时,是否生成一个等高元素,以防止塌陷 + placeholder: { + type: Boolean, + default: () => defProps.navbar.placeholder + }, + // 是否固定在顶部 + fixed: { + type: Boolean, + default: () => defProps.navbar.fixed + }, + // 是否显示下边框 + border: { + type: Boolean, + default: () => defProps.navbar.border + }, + // 左边的图标 + leftIcon: { + type: String, + default: () => defProps.navbar.leftIcon + }, + // 左边的提示文字 + leftText: { + type: String, + default: () => defProps.navbar.leftText + }, + // 左右的提示文字 + rightText: { + type: String, + default: () => defProps.navbar.rightText + }, + // 右边的图标 + rightIcon: { + type: String, + default: () => defProps.navbar.rightIcon + }, + // 标题 + title: { + type: [String, Number], + default: () => defProps.navbar.title + }, + // 背景颜色 + bgColor: { + type: String, + default: () => defProps.navbar.bgColor + }, + // 标题的宽度 + titleWidth: { + type: [String, Number], + default: () => defProps.navbar.titleWidth + }, + // 导航栏高度 + height: { + type: [String, Number], + default: () => defProps.navbar.height + }, + // 左侧返回图标的大小 + leftIconSize: { + type: [String, Number], + default: () => defProps.navbar.leftIconSize + }, + // 左侧返回图标的颜色 + leftIconColor: { + type: String, + default: () => defProps.navbar.leftIconColor + }, + // 点击左侧区域(返回图标),是否自动返回上一页 + autoBack: { + type: Boolean, + default: () => defProps.navbar.autoBack + }, + // 标题的样式,对象或字符串 + titleStyle: { + type: [String, Object], + default: () => defProps.navbar.titleStyle + } + } +} diff --git a/uni_modules/uview-plus/components/u-navbar/u-navbar.vue b/uni_modules/uview-plus/components/u-navbar/u-navbar.vue new file mode 100644 index 0000000..8d10eb9 --- /dev/null +++ b/uni_modules/uview-plus/components/u-navbar/u-navbar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-no-network/props.js b/uni_modules/uview-plus/components/u-no-network/props.js new file mode 100644 index 0000000..d465f98 --- /dev/null +++ b/uni_modules/uview-plus/components/u-no-network/props.js @@ -0,0 +1,20 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 页面文字提示 + tips: { + type: String, + default: () => defProps.noNetwork.tips + }, + // 一个z-index值,用于设置没有网络这个组件的层次,因为页面可能会有其他定位的元素层级过高,导致此组件被覆盖 + zIndex: { + type: [String, Number], + default: () => defProps.noNetwork.zIndex + }, + // image 没有网络的图片提示 + image: { + type: String, + default: () => defProps.noNetwork.image + } + } +} diff --git a/uni_modules/uview-plus/components/u-no-network/u-no-network.vue b/uni_modules/uview-plus/components/u-no-network/u-no-network.vue new file mode 100644 index 0000000..3d77ac0 --- /dev/null +++ b/uni_modules/uview-plus/components/u-no-network/u-no-network.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-notice-bar/props.js b/uni_modules/uview-plus/components/u-notice-bar/props.js new file mode 100644 index 0000000..9a3298e --- /dev/null +++ b/uni_modules/uview-plus/components/u-notice-bar/props.js @@ -0,0 +1,71 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 显示的内容,数组 + text: { + type: [Array, String], + default: () => defProps.noticeBar.text + }, + // 通告滚动模式,row-横向滚动,column-竖向滚动 + direction: { + type: String, + default: () => defProps.noticeBar.direction + }, + // direction = row时,是否使用步进形式滚动 + step: { + type: Boolean, + default: () => defProps.noticeBar.step + }, + // 是否显示左侧的音量图标 + icon: { + type: String, + default: () => defProps.noticeBar.icon + }, + // 通告模式,link-显示右箭头,closable-显示右侧关闭图标 + mode: { + type: String, + default: () => defProps.noticeBar.mode + }, + // 文字颜色,各图标也会使用文字颜色 + color: { + type: String, + default: () => defProps.noticeBar.color + }, + // 背景颜色 + bgColor: { + type: String, + default: () => defProps.noticeBar.bgColor + }, + // 水平滚动时的滚动速度,即每秒滚动多少px(px),这有利于控制文字无论多少时,都能有一个恒定的速度 + speed: { + type: [String, Number], + default: () => defProps.noticeBar.speed + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: () => defProps.noticeBar.fontSize + }, + // 滚动一个周期的时间长,单位ms + duration: { + type: [String, Number], + default: () => defProps.noticeBar.duration + }, + // 是否禁止用手滑动切换 + // 目前HX2.6.11,只支持App 2.5.5+、H5 2.5.5+、支付宝小程序、字节跳动小程序 + disableTouch: { + type: Boolean, + default: () => defProps.noticeBar.disableTouch + }, + // 跳转的页面路径 + url: { + type: String, + default: () => defProps.noticeBar.url + }, + // 页面跳转的类型 + linkType: { + type: String, + default: () => defProps.noticeBar.linkType + } + } +} diff --git a/uni_modules/uview-plus/components/u-notice-bar/u-notice-bar.vue b/uni_modules/uview-plus/components/u-notice-bar/u-notice-bar.vue new file mode 100644 index 0000000..373f619 --- /dev/null +++ b/uni_modules/uview-plus/components/u-notice-bar/u-notice-bar.vue @@ -0,0 +1,105 @@ + + + + diff --git a/uni_modules/uview-plus/components/u-notify/props.js b/uni_modules/uview-plus/components/u-notify/props.js new file mode 100644 index 0000000..5f28a93 --- /dev/null +++ b/uni_modules/uview-plus/components/u-notify/props.js @@ -0,0 +1,50 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 到顶部的距离 + top: { + type: [String, Number], + default: () => defProps.notify.top + }, + // 是否展示组件 + // show: { + // type: Boolean, + // default: () => defProps.notify.show + // }, + // type主题,primary,success,warning,error + type: { + type: String, + default: () => defProps.notify.type + }, + // 字体颜色 + color: { + type: String, + default: () => defProps.notify.color + }, + // 背景颜色 + bgColor: { + type: String, + default: () => defProps.notify.bgColor + }, + // 展示的文字内容 + message: { + type: String, + default: () => defProps.notify.message + }, + // 展示时长,为0时不消失,单位ms + duration: { + type: [String, Number], + default: () => defProps.notify.duration + }, + // 字体大小 + fontSize: { + type: [String, Number], + default: () => defProps.notify.fontSize + }, + // 是否留出顶部安全距离(状态栏高度) + safeAreaInsetTop: { + type: Boolean, + default: () => defProps.notify.safeAreaInsetTop + } + } +} diff --git a/uni_modules/uview-plus/components/u-notify/u-notify.vue b/uni_modules/uview-plus/components/u-notify/u-notify.vue new file mode 100644 index 0000000..c40df01 --- /dev/null +++ b/uni_modules/uview-plus/components/u-notify/u-notify.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-number-box/props.js b/uni_modules/uview-plus/components/u-number-box/props.js new file mode 100644 index 0000000..2b289ea --- /dev/null +++ b/uni_modules/uview-plus/components/u-number-box/props.js @@ -0,0 +1,119 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 步进器标识符,在change回调返回 + name: { + type: [String, Number], + default: () => defProps.numberBox.name + }, + // #ifdef VUE2 + // 用于双向绑定的值,初始化时设置设为默认min值(最小值) + value: { + type: [String, Number], + default: () => defProps.numberBox.value + }, + // #endif + // #ifdef VUE3 + // 用于双向绑定的值,初始化时设置设为默认min值(最小值) + modelValue: { + type: [String, Number], + default: () => defProps.numberBox.value + }, + // #endif + // 最小值 + min: { + type: [String, Number], + default: () => defProps.numberBox.min + }, + // 最大值 + max: { + type: [String, Number], + default: () => defProps.numberBox.max + }, + // 加减的步长,可为小数 + step: { + type: [String, Number], + default: () => defProps.numberBox.step + }, + // 是否只允许输入整数 + integer: { + type: Boolean, + default: () => defProps.numberBox.integer + }, + // 是否禁用,包括输入框,加减按钮 + disabled: { + type: Boolean, + default: () => defProps.numberBox.disabled + }, + // 是否禁用输入框 + disabledInput: { + type: Boolean, + default: () => defProps.numberBox.disabledInput + }, + // 是否开启异步变更,开启后需要手动控制输入值 + asyncChange: { + type: Boolean, + default: () => defProps.numberBox.asyncChange + }, + // 输入框宽度,单位为px + inputWidth: { + type: [String, Number], + default: () => defProps.numberBox.inputWidth + }, + // 是否显示减少按钮 + showMinus: { + type: Boolean, + default: () => defProps.numberBox.showMinus + }, + // 是否显示增加按钮 + showPlus: { + type: Boolean, + default: () => defProps.numberBox.showPlus + }, + // 显示的小数位数 + decimalLength: { + type: [String, Number, null], + default: () => defProps.numberBox.decimalLength + }, + // 是否开启长按加减手势 + longPress: { + type: Boolean, + default: () => defProps.numberBox.longPress + }, + // 输入框文字和加减按钮图标的颜色 + color: { + type: String, + default: () => defProps.numberBox.color + }, + // 按钮大小,宽高等于此值,单位px,输入框高度和此值保持一致 + buttonSize: { + type: [String, Number], + default: () => defProps.numberBox.buttonSize + }, + // 输入框和按钮的背景颜色 + bgColor: { + type: String, + default: () => defProps.numberBox.bgColor + }, + // 指定光标于键盘的距离,避免键盘遮挡输入框,单位px + cursorSpacing: { + type: [String, Number], + default: () => defProps.numberBox.cursorSpacing + }, + // 是否禁用增加按钮 + disablePlus: { + type: Boolean, + default: () => defProps.numberBox.disablePlus + }, + // 是否禁用减少按钮 + disableMinus: { + type: Boolean, + default: () => defProps.numberBox.disableMinus + }, + // 加减按钮图标的样式 + iconStyle: { + type: [Object, String], + default: () => defProps.numberBox.iconStyle + } + } +} diff --git a/uni_modules/uview-plus/components/u-number-box/u-number-box.vue b/uni_modules/uview-plus/components/u-number-box/u-number-box.vue new file mode 100644 index 0000000..fd67e4e --- /dev/null +++ b/uni_modules/uview-plus/components/u-number-box/u-number-box.vue @@ -0,0 +1,465 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-number-keyboard/props.js b/uni_modules/uview-plus/components/u-number-keyboard/props.js new file mode 100644 index 0000000..90ad3e1 --- /dev/null +++ b/uni_modules/uview-plus/components/u-number-keyboard/props.js @@ -0,0 +1,20 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 键盘的类型,number-数字键盘,card-身份证键盘 + mode: { + type: String, + default: () => defProps.numberKeyboard.value + }, + // 是否显示键盘的"."符号 + dotDisabled: { + type: Boolean, + default: () => defProps.numberKeyboard.dotDisabled + }, + // 是否打乱键盘按键的顺序 + random: { + type: Boolean, + default: () => defProps.numberKeyboard.random + } + } +} diff --git a/uni_modules/uview-plus/components/u-number-keyboard/u-number-keyboard.vue b/uni_modules/uview-plus/components/u-number-keyboard/u-number-keyboard.vue new file mode 100644 index 0000000..8df3b91 --- /dev/null +++ b/uni_modules/uview-plus/components/u-number-keyboard/u-number-keyboard.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-overlay/props.js b/uni_modules/uview-plus/components/u-overlay/props.js new file mode 100644 index 0000000..55eb7cb --- /dev/null +++ b/uni_modules/uview-plus/components/u-overlay/props.js @@ -0,0 +1,25 @@ +import defProps from '../../libs/config/props.js'; +export default { + props: { + // 是否显示遮罩 + show: { + type: Boolean, + default: () => defProps.overlay.show + }, + // 层级z-index + zIndex: { + type: [String, Number], + default: () => defProps.overlay.zIndex + }, + // 遮罩的过渡时间,单位为ms + duration: { + type: [String, Number], + default: () => defProps.overlay.duration + }, + // 不透明度值,当做rgba的第四个参数 + opacity: { + type: [String, Number], + default: () => defProps.overlay.opacity + } + } +} diff --git a/uni_modules/uview-plus/components/u-overlay/u-overlay.vue b/uni_modules/uview-plus/components/u-overlay/u-overlay.vue new file mode 100644 index 0000000..b7dd7f3 --- /dev/null +++ b/uni_modules/uview-plus/components/u-overlay/u-overlay.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/uni_modules/uview-plus/components/u-parse/node/node.vue b/uni_modules/uview-plus/components/u-parse/node/node.vue new file mode 100644 index 0000000..06035de --- /dev/null +++ b/uni_modules/uview-plus/components/u-parse/node/node.vue @@ -0,0 +1,576 @@ +