commit c5fdd66f4bc1a01f77f7e235e5b04ddde06dbbc1 Author: yujialong <479214531@qq.com> Date: Sat May 7 15:41:56 2022 +0800 initial diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..81f13f4 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..ee288b1 --- /dev/null +++ b/App.vue @@ -0,0 +1,32 @@ + + + diff --git a/components/uni-section/uni-section.vue b/components/uni-section/uni-section.vue new file mode 100644 index 0000000..a68c7b7 --- /dev/null +++ b/components/uni-section/uni-section.vue @@ -0,0 +1,140 @@ + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..9efb733 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..cb25a2f --- /dev/null +++ b/main.js @@ -0,0 +1,25 @@ + +// #ifndef VUE3 +import Vue from 'vue' +import App from './App' + +Vue.config.productionTip = false + +App.mpType = 'app' + +const app = new Vue({ + ...App +}) +app.$mount() +// #endif + +// #ifdef VUE3 +import { createSSRApp } from 'vue' +import App from './App.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..c1f6e37 --- /dev/null +++ b/manifest.json @@ -0,0 +1,59 @@ +{ + "name" : "crm-pro", + "appid" : "__UNI__2E89BA6", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + "app-plus" : { + /* 5+App特有相关 */ + "usingComponents" : true, + "nvueCompiler" : "uni-app", + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + "modules" : {}, + /* 模块配置 */ + "distribute" : { + /* 应用发布信息 */ + "android" : { + /* android打包配置 */ + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "ios" : {}, + /* ios打包配置 */ + "sdkConfigs" : {} + } + }, + /* SDK配置 */ + "quickapp" : {}, + /* 快应用特有相关 */ + "mp-weixin" : { + /* 小程序特有相关 */ + "appid" : "wx3a64f97291b0b976", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true + }, + "vueVersion" : "2" +} diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..e4c0f8b --- /dev/null +++ b/pages.json @@ -0,0 +1,51 @@ +{ + "pages": [{ + "path" : "pages/clients/clients", + "style" : + { + "navigationBarTitleText": "客户列表", + "enablePullDownRefresh": false + } + + },{ + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "首页" + } + } + ,{ + "path" : "pages/addClient/addClient", + "style" : + { + "navigationBarTitleText": "新建客户", + "enablePullDownRefresh": false + } + + } + ,{ + "path" : "pages/clientDetail/clientDetail", + "style" : + { + "navigationBarTitleText": "客户详情", + "enablePullDownRefresh": false + } + + } + ], + "condition": { //模式配置,仅开发期间生效 + "current": 0, //当前激活的模式(list 的索引项) + "list": [{ + "name": "test", //模式名称 + "path": "pages/clients/clients" //启动页面,必选 + }] + }, + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "或然CRM系统", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#f5f5f5", + "app-plus": { + "background": "#efeff4" + } + } +} diff --git a/pages/addClient/addClient.vue b/pages/addClient/addClient.vue new file mode 100644 index 0000000..96a11e8 --- /dev/null +++ b/pages/addClient/addClient.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/pages/clientDetail/clientDetail.vue b/pages/clientDetail/clientDetail.vue new file mode 100644 index 0000000..6861fbe --- /dev/null +++ b/pages/clientDetail/clientDetail.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/pages/clients/clients.vue b/pages/clients/clients.vue new file mode 100644 index 0000000..a913cfd --- /dev/null +++ b/pages/clients/clients.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..96a11e8 --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/static/customicons.css b/static/customicons.css new file mode 100644 index 0000000..14ed5fa --- /dev/null +++ b/static/customicons.css @@ -0,0 +1,20 @@ +@font-face { + font-family: "customicons"; /* Project id 2878519 */ + src:url('/static/customicons.ttf') format('truetype'); +} + +.customicons { + font-family: "customicons" !important; +} + +.youxi:before { + content: "\e60e"; +} + +.wenjian:before { + content: "\e60f"; +} + +.zhuanfa:before { + content: "\e610"; +} diff --git a/static/customicons.ttf b/static/customicons.ttf new file mode 100644 index 0000000..a3c8ab9 Binary files /dev/null and b/static/customicons.ttf differ diff --git a/static/filter.png b/static/filter.png new file mode 100644 index 0000000..ee26aec Binary files /dev/null and b/static/filter.png differ diff --git a/styles/common.scss b/styles/common.scss new file mode 100644 index 0000000..f4aafa6 --- /dev/null +++ b/styles/common.scss @@ -0,0 +1,3 @@ +button[type=primary] { + background-color: #007eff; +} \ No newline at end of file diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..0c231ea --- /dev/null +++ b/uni.scss @@ -0,0 +1,2 @@ +@import '@/uni_modules/uni-scss/variables.scss'; +@import '@/styles/common.scss'; \ No newline at end of file diff --git a/uni_modules/uni-badge/changelog.md b/uni_modules/uni-badge/changelog.md new file mode 100644 index 0000000..544ecc1 --- /dev/null +++ b/uni_modules/uni-badge/changelog.md @@ -0,0 +1,29 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-badge](https://uniapp.dcloud.io/component/uniui/uni-badge) +## 1.1.7(2021-11-08) +- 优化 升级ui +- 修改 size 属性默认值调整为 small +- 修改 type 属性,默认值调整为 error,info 替换 default +## 1.1.6(2021-09-22) +- 修复 在字节小程序上样式不生效的 bug +## 1.1.5(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.4(2021-07-29) +- 修复 去掉 nvue 不支持css 的 align-self 属性,nvue 下不暂支持 absolute 属性 +## 1.1.3(2021-06-24) +- 优化 示例项目 +## 1.1.1(2021-05-12) +- 新增 组件示例地址 +## 1.1.0(2021-05-12) +- 新增 uni-badge 的 absolute 属性,支持定位 +- 新增 uni-badge 的 offset 属性,支持定位偏移 +- 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +## 1.0.7(2021-05-07) +- 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- 新增 uni-badge 属性 custom-style, 支持自定义样式 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-badge/components/uni-badge/uni-badge.vue b/uni_modules/uni-badge/components/uni-badge/uni-badge.vue new file mode 100644 index 0000000..fcbfe93 --- /dev/null +++ b/uni_modules/uni-badge/components/uni-badge/uni-badge.vue @@ -0,0 +1,268 @@ + + + + + diff --git a/uni_modules/uni-badge/package.json b/uni_modules/uni-badge/package.json new file mode 100644 index 0000000..4e9e631 --- /dev/null +++ b/uni_modules/uni-badge/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-badge", + "displayName": "uni-badge 数字角标", + "version": "1.2.0", + "description": "数字角标(徽章)组件,在元素周围展示消息提醒,一般用于列表、九宫格、按钮等地方。", + "keywords": [ + "", + "badge", + "uni-ui", + "uniui", + "数字角标", + "徽章" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-badge/readme.md b/uni_modules/uni-badge/readme.md new file mode 100644 index 0000000..bdf175d --- /dev/null +++ b/uni_modules/uni-badge/readme.md @@ -0,0 +1,10 @@ +## Badge 数字角标 +> **组件名:uni-badge** +> 代码块: `uBadge` + +数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景, + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-badge) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-calendar/changelog.md b/uni_modules/uni-calendar/changelog.md new file mode 100644 index 0000000..6df4493 --- /dev/null +++ b/uni_modules/uni-calendar/changelog.md @@ -0,0 +1,16 @@ +## 1.4.5(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.4(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.4.3(2021-09-22) +- 修复 startDate、 endDate 属性失效的 bug +## 1.4.2(2021-08-24) +- 新增 支持国际化 +## 1.4.1(2021-08-05) +- 修复 弹出层被 tabbar 遮盖 bug +## 1.4.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.3.16(2021-05-12) +- 新增 组件示例地址 +## 1.3.15(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-calendar/components/uni-calendar/calendar.js b/uni_modules/uni-calendar/components/uni-calendar/calendar.js new file mode 100644 index 0000000..b8d7d6f --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/calendar.js @@ -0,0 +1,546 @@ +/** +* @1900-2100区间内的公历、农历互转 +* @charset UTF-8 +* @github https://github.com/jjonline/calendar.js +* @Author Jea杨(JJonline@JJonline.Cn) +* @Time 2014-7-21 +* @Time 2016-8-13 Fixed 2033hex、Attribution Annals +* @Time 2016-9-25 Fixed lunar LeapMonth Param Bug +* @Time 2017-7-24 Fixed use getTerm Func Param Error.use solar year,NOT lunar year +* @Version 1.0.3 +* @公历转农历:calendar.solar2lunar(1987,11,01); //[you can ignore params of prefix 0] +* @农历转公历:calendar.lunar2solar(1987,09,10); //[you can ignore params of prefix 0] +*/ +/* eslint-disable */ +var calendar = { + + /** + * 农历1900-2100的润大小信息表 + * @Array Of Property + * @return Hex + */ + lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, // 1900-1909 + 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0, 0x14977, // 1910-1919 + 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, // 1920-1929 + 0x06566, 0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, // 1930-1939 + 0x0d4a0, 0x1d8a6, 0x0b550, 0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, // 1940-1949 + 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5b0, 0x14573, 0x052b0, 0x0a9a8, 0x0e950, 0x06aa0, // 1950-1959 + 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263, 0x0d950, 0x05b57, 0x056a0, // 1960-1969 + 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b6a0, 0x195a6, // 1970-1979 + 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, // 1980-1989 + 0x04af5, 0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x05ac0, 0x0ab60, 0x096d5, 0x092e0, // 1990-1999 + 0x0c960, 0x0d954, 0x0d4a0, 0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, // 2000-2009 + 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9, 0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, // 2010-2019 + 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0, 0x0d260, 0x0ea65, 0x0d530, // 2020-2029 + 0x05aa0, 0x076a3, 0x096d0, 0x04afb, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520, 0x0dd45, // 2030-2039 + 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0, // 2040-2049 + /** Add By JJonline@JJonline.Cn**/ + 0x14b63, 0x09370, 0x049f8, 0x04970, 0x064b0, 0x168a6, 0x0ea50, 0x06b20, 0x1a6c4, 0x0aae0, // 2050-2059 + 0x0a2e0, 0x0d2e3, 0x0c960, 0x0d557, 0x0d4a0, 0x0da50, 0x05d55, 0x056a0, 0x0a6d0, 0x055d4, // 2060-2069 + 0x052d0, 0x0a9b8, 0x0a950, 0x0b4a0, 0x0b6a6, 0x0ad50, 0x055a0, 0x0aba4, 0x0a5b0, 0x052b0, // 2070-2079 + 0x0b273, 0x06930, 0x07337, 0x06aa0, 0x0ad50, 0x14b55, 0x04b60, 0x0a570, 0x054e4, 0x0d160, // 2080-2089 + 0x0e968, 0x0d520, 0x0daa0, 0x16aa6, 0x056d0, 0x04ae0, 0x0a9d4, 0x0a2d0, 0x0d150, 0x0f252, // 2090-2099 + 0x0d520], // 2100 + + /** + * 公历每个月份的天数普通表 + * @Array Of Property + * @return Number + */ + solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], + + /** + * 天干地支之天干速查表 + * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] + * @return Cn string + */ + Gan: ['\u7532', '\u4e59', '\u4e19', '\u4e01', '\u620a', '\u5df1', '\u5e9a', '\u8f9b', '\u58ec', '\u7678'], + + /** + * 天干地支之地支速查表 + * @Array Of Property + * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] + * @return Cn string + */ + Zhi: ['\u5b50', '\u4e11', '\u5bc5', '\u536f', '\u8fb0', '\u5df3', '\u5348', '\u672a', '\u7533', '\u9149', '\u620c', '\u4ea5'], + + /** + * 天干地支之地支速查表<=>生肖 + * @Array Of Property + * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] + * @return Cn string + */ + Animals: ['\u9f20', '\u725b', '\u864e', '\u5154', '\u9f99', '\u86c7', '\u9a6c', '\u7f8a', '\u7334', '\u9e21', '\u72d7', '\u732a'], + + /** + * 24节气速查表 + * @Array Of Property + * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] + * @return Cn string + */ + solarTerm: ['\u5c0f\u5bd2', '\u5927\u5bd2', '\u7acb\u6625', '\u96e8\u6c34', '\u60ca\u86f0', '\u6625\u5206', '\u6e05\u660e', '\u8c37\u96e8', '\u7acb\u590f', '\u5c0f\u6ee1', '\u8292\u79cd', '\u590f\u81f3', '\u5c0f\u6691', '\u5927\u6691', '\u7acb\u79cb', '\u5904\u6691', '\u767d\u9732', '\u79cb\u5206', '\u5bd2\u9732', '\u971c\u964d', '\u7acb\u51ac', '\u5c0f\u96ea', '\u5927\u96ea', '\u51ac\u81f3'], + + /** + * 1900-2100各年的24节气日期速查表 + * @Array Of Property + * @return 0x string For splice + */ + sTermInfo: ['9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', + '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', 'b027097bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd0b06bdb0722c965ce1cfcc920f', + 'b027097bd097c36b0b6fc9274c91aa', '9778397bd19801ec9210c965cc920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd197c36c9210c9274c91aa', + '97b6b97bd19801ec95f8c965cc920e', '97bd09801d98082c95f8e1cfcc920f', '97bd097bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec95f8c965cc920e', '97bcf97c3598082c95f8e1cfcc920f', + '97bd097bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c3598082c95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', + '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf97c359801ec95f8c965cc920f', '97bd097bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf97c359801ec95f8c965cc920f', '97bd097bd07f595b0b6fc920fb0722', + '9778397bd097c36b0b6fc9210c8dc2', '9778397bd19801ec9210c9274c920e', '97b6b97bd19801ec95f8c965cc920f', + '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b97bd19801ec95f8c965cc920f', '97bd07f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36c9210c9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bd07f1487f595b0b0bc920fb0722', + '7f0e397bd097c36b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', '97bcf7f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b97bd19801ec9210c965cc920e', + '97bcf7f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b97bd19801ec9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b97bd197c36c9210c9274c920e', '97bcf7f0e47f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '9778397bd097c36c9210c9274c920e', + '97b6b7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c36b0b6fc9210c8dc2', + '9778397bd097c36b0b70c9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f595b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc920fb0722', '9778397bd097c36b0b6fc9274c91aa', '97b6b7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9274c91aa', + '97b6b7f0e47f531b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '9778397bd097c36b0b6fc9210c91aa', '97b6b7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '9778397bd097c36b0b6fc9210c8dc2', '977837f0e37f149b0723b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f5307f595b0b0bc920fb0722', '7f0e397bd097c35b0b6fc9210c8dc2', + '977837f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e37f1487f595b0b0bb0b6fb0722', + '7f0e397bd097c35b0b6fc9210c8dc2', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd097c35b0b6fc920fb0722', + '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14998082b0787b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0b0bb0b6fb0722', '7f0e397bd07f595b0b0bc920fb0722', + '977837f0e37f14998082b0723b06bd', '7f07e7f0e37f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e397bd07f595b0b0bc920fb0722', '977837f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f595b0b0bb0b6fb0722', '7f0e37f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e37f1487f531b0b0bb0b6fb0722', + '7f0e37f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e37f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e37f14898082b072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f149b0723b0787b0721', + '7f0e27f1487f531b0b0bb0b6fb0722', '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14998082b0723b06bd', + '7f07e7f0e47f149b0723b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', '7f0e37f0e366aa89801eb072297c35', + '7ec967f0e37f14998082b0723b06bd', '7f07e7f0e37f14998083b0787b0721', '7f0e27f0e47f531b0723b0b6fb0722', + '7f0e37f0e366aa89801eb072297c35', '7ec967f0e37f14898082b0723b02d5', '7f07e7f0e37f14998082b0787b0721', + '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66aa89801e9808297c35', '665f67f0e37f14898082b0723b02d5', + '7ec967f0e37f14998082b0787b0721', '7f07e7f0e47f531b0723b0b6fb0722', '7f0e36665b66a449801e9808297c35', + '665f67f0e37f14898082b0723b02d5', '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', + '7f0e36665b66a449801e9808297c35', '665f67f0e37f14898082b072297c35', '7ec967f0e37f14998082b0787b06bd', + '7f07e7f0e47f531b0723b0b6fb0721', '7f0e26665b66a449801e9808297c35', '665f67f0e37f1489801eb072297c35', + '7ec967f0e37f14998082b0787b06bd', '7f07e7f0e47f531b0723b0b6fb0721', '7f0e27f1487f531b0b0bb0b6fb0722'], + + /** + * 数字转中文速查表 + * @Array Of Property + * @trans ['日','一','二','三','四','五','六','七','八','九','十'] + * @return Cn string + */ + nStr1: ['\u65e5', '\u4e00', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341'], + + /** + * 日期转农历称呼速查表 + * @Array Of Property + * @trans ['初','十','廿','卅'] + * @return Cn string + */ + nStr2: ['\u521d', '\u5341', '\u5eff', '\u5345'], + + /** + * 月份转农历称呼速查表 + * @Array Of Property + * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] + * @return Cn string + */ + nStr3: ['\u6b63', '\u4e8c', '\u4e09', '\u56db', '\u4e94', '\u516d', '\u4e03', '\u516b', '\u4e5d', '\u5341', '\u51ac', '\u814a'], + + /** + * 返回农历y年一整年的总天数 + * @param lunar Year + * @return Number + * @eg:var count = calendar.lYearDays(1987) ;//count=387 + */ + lYearDays: function (y) { + var i; var sum = 348 + for (i = 0x8000; i > 0x8; i >>= 1) { sum += (this.lunarInfo[y - 1900] & i) ? 1 : 0 } + return (sum + this.leapDays(y)) + }, + + /** + * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 + * @param lunar Year + * @return Number (0-12) + * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 + */ + leapMonth: function (y) { // 闰字编码 \u95f0 + return (this.lunarInfo[y - 1900] & 0xf) + }, + + /** + * 返回农历y年闰月的天数 若该年没有闰月则返回0 + * @param lunar Year + * @return Number (0、29、30) + * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 + */ + leapDays: function (y) { + if (this.leapMonth(y)) { + return ((this.lunarInfo[y - 1900] & 0x10000) ? 30 : 29) + } + return (0) + }, + + /** + * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 + * @param lunar Year + * @return Number (-1、29、30) + * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 + */ + monthDays: function (y, m) { + if (m > 12 || m < 1) { return -1 }// 月份参数从1至12,参数错误返回-1 + return ((this.lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29) + }, + + /** + * 返回公历(!)y年m月的天数 + * @param solar Year + * @return Number (-1、28、29、30、31) + * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 + */ + solarDays: function (y, m) { + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var ms = m - 1 + if (ms == 1) { // 2月份的闰平规律测算后确认返回28或29 + return (((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0)) ? 29 : 28) + } else { + return (this.solarMonth[ms]) + } + }, + + /** + * 农历年份转换为干支纪年 + * @param lYear 农历年的年份数 + * @return Cn string + */ + toGanZhiYear: function (lYear) { + var ganKey = (lYear - 3) % 10 + var zhiKey = (lYear - 3) % 12 + if (ganKey == 0) ganKey = 10// 如果余数为0则为最后一个天干 + if (zhiKey == 0) zhiKey = 12// 如果余数为0则为最后一个地支 + return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1] + }, + + /** + * 公历月、日判断所属星座 + * @param cMonth [description] + * @param cDay [description] + * @return Cn string + */ + toAstro: function (cMonth, cDay) { + var s = '\u9b54\u7faf\u6c34\u74f6\u53cc\u9c7c\u767d\u7f8a\u91d1\u725b\u53cc\u5b50\u5de8\u87f9\u72ee\u5b50\u5904\u5973\u5929\u79e4\u5929\u874e\u5c04\u624b\u9b54\u7faf' + var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22] + return s.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + '\u5ea7'// 座 + }, + + /** + * 传入offset偏移量返回干支 + * @param offset 相对甲子的偏移量 + * @return Cn string + */ + toGanZhi: function (offset) { + return this.Gan[offset % 10] + this.Zhi[offset % 12] + }, + + /** + * 传入公历(!)y年获得该年第n个节气的公历日期 + * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 + * @return day Number + * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 + */ + getTerm: function (y, n) { + if (y < 1900 || y > 2100) { return -1 } + if (n < 1 || n > 24) { return -1 } + var _table = this.sTermInfo[y - 1900] + var _info = [ + parseInt('0x' + _table.substr(0, 5)).toString(), + parseInt('0x' + _table.substr(5, 5)).toString(), + parseInt('0x' + _table.substr(10, 5)).toString(), + parseInt('0x' + _table.substr(15, 5)).toString(), + parseInt('0x' + _table.substr(20, 5)).toString(), + parseInt('0x' + _table.substr(25, 5)).toString() + ] + var _calday = [ + _info[0].substr(0, 1), + _info[0].substr(1, 2), + _info[0].substr(3, 1), + _info[0].substr(4, 2), + + _info[1].substr(0, 1), + _info[1].substr(1, 2), + _info[1].substr(3, 1), + _info[1].substr(4, 2), + + _info[2].substr(0, 1), + _info[2].substr(1, 2), + _info[2].substr(3, 1), + _info[2].substr(4, 2), + + _info[3].substr(0, 1), + _info[3].substr(1, 2), + _info[3].substr(3, 1), + _info[3].substr(4, 2), + + _info[4].substr(0, 1), + _info[4].substr(1, 2), + _info[4].substr(3, 1), + _info[4].substr(4, 2), + + _info[5].substr(0, 1), + _info[5].substr(1, 2), + _info[5].substr(3, 1), + _info[5].substr(4, 2) + ] + return parseInt(_calday[n - 1]) + }, + + /** + * 传入农历数字月份返回汉语通俗表示法 + * @param lunar month + * @return Cn string + * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' + */ + toChinaMonth: function (m) { // 月 => \u6708 + if (m > 12 || m < 1) { return -1 } // 若参数错误 返回-1 + var s = this.nStr3[m - 1] + s += '\u6708'// 加上月字 + return s + }, + + /** + * 传入农历日期数字返回汉字表示法 + * @param lunar day + * @return Cn string + * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' + */ + toChinaDay: function (d) { // 日 => \u65e5 + var s + switch (d) { + case 10: + s = '\u521d\u5341'; break + case 20: + s = '\u4e8c\u5341'; break + break + case 30: + s = '\u4e09\u5341'; break + break + default : + s = this.nStr2[Math.floor(d / 10)] + s += this.nStr1[d % 10] + } + return (s) + }, + + /** + * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” + * @param y year + * @return Cn string + * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' + */ + getAnimal: function (y) { + return this.Animals[(y - 4) % 12] + }, + + /** + * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON + * @param y solar year + * @param m solar month + * @param d solar day + * @return JSON object + * @eg:console.log(calendar.solar2lunar(1987,11,01)); + */ + solar2lunar: function (y, m, d) { // 参数区间1900.1.31~2100.12.31 + // 年份限定、上限 + if (y < 1900 || y > 2100) { + return -1// undefined转换为数字变为NaN + } + // 公历传参最下限 + if (y == 1900 && m == 1 && d < 31) { + return -1 + } + // 未传参 获得当天 + if (!y) { + var objDate = new Date() + } else { + var objDate = new Date(y, parseInt(m) - 1, d) + } + var i; var leap = 0; var temp = 0 + // 修正ymd参数 + var y = objDate.getFullYear() + var m = objDate.getMonth() + 1 + var d = objDate.getDate() + var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 86400000 + for (i = 1900; i < 2101 && offset > 0; i++) { + temp = this.lYearDays(i) + offset -= temp + } + if (offset < 0) { + offset += temp; i-- + } + + // 是否今天 + var isTodayObj = new Date() + var isToday = false + if (isTodayObj.getFullYear() == y && isTodayObj.getMonth() + 1 == m && isTodayObj.getDate() == d) { + isToday = true + } + // 星期几 + var nWeek = objDate.getDay() + var cWeek = this.nStr1[nWeek] + // 数字表示周几顺应天朝周一开始的惯例 + if (nWeek == 0) { + nWeek = 7 + } + // 农历年 + var year = i + var leap = this.leapMonth(i) // 闰哪个月 + var isLeap = false + + // 效验闰月 + for (i = 1; i < 13 && offset > 0; i++) { + // 闰月 + if (leap > 0 && i == (leap + 1) && isLeap == false) { + --i + isLeap = true; temp = this.leapDays(year) // 计算农历闰月天数 + } else { + temp = this.monthDays(year, i)// 计算农历普通月天数 + } + // 解除闰月 + if (isLeap == true && i == (leap + 1)) { isLeap = false } + offset -= temp + } + // 闰月导致数组下标重叠取反 + if (offset == 0 && leap > 0 && i == leap + 1) { + if (isLeap) { + isLeap = false + } else { + isLeap = true; --i + } + } + if (offset < 0) { + offset += temp; --i + } + // 农历月 + var month = i + // 农历日 + var day = offset + 1 + // 天干地支处理 + var sm = m - 1 + var gzY = this.toGanZhiYear(year) + + // 当月的两个节气 + // bugfix-2017-7-24 11:03:38 use lunar Year Param `y` Not `year` + var firstNode = this.getTerm(y, (m * 2 - 1))// 返回当月「节」为几日开始 + var secondNode = this.getTerm(y, (m * 2))// 返回当月「节」为几日开始 + + // 依据12节气修正干支月 + var gzM = this.toGanZhi((y - 1900) * 12 + m + 11) + if (d >= firstNode) { + gzM = this.toGanZhi((y - 1900) * 12 + m + 12) + } + + // 传入的日期的节气与否 + var isTerm = false + var Term = null + if (firstNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 2] + } + if (secondNode == d) { + isTerm = true + Term = this.solarTerm[m * 2 - 1] + } + // 日柱 当月一日与 1900/1/1 相差天数 + var dayCyclical = Date.UTC(y, sm, 1, 0, 0, 0, 0) / 86400000 + 25567 + 10 + var gzD = this.toGanZhi(dayCyclical + d - 1) + // 该日期所属的星座 + var astro = this.toAstro(m, d) + + return { 'lYear': year, 'lMonth': month, 'lDay': day, 'Animal': this.getAnimal(year), 'IMonthCn': (isLeap ? '\u95f0' : '') + this.toChinaMonth(month), 'IDayCn': this.toChinaDay(day), 'cYear': y, 'cMonth': m, 'cDay': d, 'gzYear': gzY, 'gzMonth': gzM, 'gzDay': gzD, 'isToday': isToday, 'isLeap': isLeap, 'nWeek': nWeek, 'ncWeek': '\u661f\u671f' + cWeek, 'isTerm': isTerm, 'Term': Term, 'astro': astro } + }, + + /** + * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON + * @param y lunar year + * @param m lunar month + * @param d lunar day + * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] + * @return JSON object + * @eg:console.log(calendar.lunar2solar(1987,9,10)); + */ + lunar2solar: function (y, m, d, isLeapMonth) { // 参数区间1900.1.31~2100.12.1 + var isLeapMonth = !!isLeapMonth + var leapOffset = 0 + var leapMonth = this.leapMonth(y) + var leapDay = this.leapDays(y) + if (isLeapMonth && (leapMonth != m)) { return -1 }// 传参要求计算该闰月公历 但该年得出的闰月与传参的月份并不同 + if (y == 2100 && m == 12 && d > 1 || y == 1900 && m == 1 && d < 31) { return -1 }// 超出了最大极限值 + var day = this.monthDays(y, m) + var _day = day + // bugFix 2016-9-25 + // if month is leap, _day use leapDays method + if (isLeapMonth) { + _day = this.leapDays(y, m) + } + if (y < 1900 || y > 2100 || d > _day) { return -1 }// 参数合法性效验 + + // 计算农历的时间差 + var offset = 0 + for (var i = 1900; i < y; i++) { + offset += this.lYearDays(i) + } + var leap = 0; var isAdd = false + for (var i = 1; i < m; i++) { + leap = this.leapMonth(y) + if (!isAdd) { // 处理闰月 + if (leap <= i && leap > 0) { + offset += this.leapDays(y); isAdd = true + } + } + offset += this.monthDays(y, i) + } + // 转换闰月农历 需补充该年闰月的前一个月的时差 + if (isLeapMonth) { offset += day } + // 1900年农历正月一日的公历时间为1900年1月30日0时0分0秒(该时间也是本农历的最开始起始点) + var stmap = Date.UTC(1900, 1, 30, 0, 0, 0) + var calObj = new Date((offset + d - 31) * 86400000 + stmap) + var cY = calObj.getUTCFullYear() + var cM = calObj.getUTCMonth() + 1 + var cD = calObj.getUTCDate() + + return this.solar2lunar(cY, cM, cD) + } +} + +export default calendar diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json new file mode 100644 index 0000000..fcbd13c --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/en.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "ok", + "uni-calender.cancel": "cancel", + "uni-calender.today": "today", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN" +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js b/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json new file mode 100644 index 0000000..1ca43de --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hans.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "确定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json new file mode 100644 index 0000000..e0fe33b --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/i18n/zh-Hant.json @@ -0,0 +1,12 @@ +{ + "uni-calender.ok": "確定", + "uni-calender.cancel": "取消", + "uni-calender.today": "今日", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue new file mode 100644 index 0000000..0353011 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue new file mode 100644 index 0000000..a2c33d0 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue @@ -0,0 +1,554 @@ + + + + + diff --git a/uni_modules/uni-calendar/components/uni-calendar/util.js b/uni_modules/uni-calendar/components/uni-calendar/util.js new file mode 100644 index 0000000..bae9273 --- /dev/null +++ b/uni_modules/uni-calendar/components/uni-calendar/util.js @@ -0,0 +1,354 @@ +import CALENDAR from './calendar.js' + +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + lunar: this.getlunar(full.year, full.month - 1, beforeDate), + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let isinfo = false + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.dateEqual(this.multipleStatus.before, nowDate), + afterMultiple: this.dateEqual(this.multipleStatus.after, nowDate), + month: full.month, + lunar: this.getlunar(full.year, full.month, i), + disable: !(disableBefore && disableAfter), + isDay + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + lunar: this.getlunar(full.year, Number(full.month) + 1, i), + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + /** + * 计算阴历日期显示 + */ + getlunar(year, month, date) { + return CALENDAR.solar2lunar(year, month, date) + } + /** + * 设置打点 + */ + setSelectInfo(data, value) { + this.selected = value + this._getWeek(data) + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (before && after) { + this.multipleStatus.before = '' + this.multipleStatus.after = '' + this.multipleStatus.data = [] + } else { + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + } + this._getWeek(fullDate) + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + fullDate, + year, + month, + date, + day + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/uni_modules/uni-calendar/package.json b/uni_modules/uni-calendar/package.json new file mode 100644 index 0000000..40455c8 --- /dev/null +++ b/uni_modules/uni-calendar/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-calendar", + "displayName": "uni-calendar 日历", + "version": "1.4.5", + "description": "日历组件", + "keywords": [ + "uni-ui", + "uniui", + "日历", + "", + "打卡", + "日历选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-calendar/readme.md b/uni_modules/uni-calendar/readme.md new file mode 100644 index 0000000..4f3ca0e --- /dev/null +++ b/uni_modules/uni-calendar/readme.md @@ -0,0 +1,103 @@ + + +## Calendar 日历 +> **组件名:uni-calendar** +> 代码块: `uCalendar` + + +日历组件 + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 本组件农历转换使用的js是 [@1900-2100区间内的公历、农历互转](https://github.com/jjonline/calendar.js) +> - 仅支持自定义组件模式 +> - `date`属性传入的应该是一个 String ,如: 2019-06-27 ,而不是 new Date() +> - 通过 `insert` 属性来确定当前的事件是 @change 还是 @confirm 。理应合并为一个事件,但是为了区分模式,现使用两个事件,这里需要注意 +> - 弹窗模式下无法阻止后面的元素滚动,如有需要阻止,请在弹窗弹出后,手动设置滚动元素为不可滚动 + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +### 基本用法 + +在 ``template`` 中使用组件 + +```html + + + +``` + +### 通过方法打开日历 + +需要设置 `insert` 为 `false` + +```html + + + + +``` + +```javascript + +export default { + data() { + return {}; + }, + methods: { + open(){ + this.$refs.calendar.open(); + }, + confirm(e) { + console.log(e); + } + } +}; + +``` + + +## API + +### Calendar Props + +| 属性名 | 类型 | 默认值| 说明 | +| | | +| date | String |- | 自定义当前时间,默认为今天 | +| lunar | Boolean | false | 显示农历 | +| startDate | String |- | 日期选择范围-开始日期 | +| endDate | String |- | 日期选择范围-结束日期 | +| range | Boolean | false | 范围选择 | +| insert | Boolean | false | 插入模式,可选值,ture:插入模式;false:弹窗模式;默认为插入模式 | +|clearDate |Boolean |true |弹窗模式是否清空上次选择内容 | +| selected | Array |- | 打点,期待格式[{date: '2019-06-27', info: '签到', data: { custom: '自定义信息', name: '自定义消息头',xxx:xxx... }}] | +|showMonth | Boolean | true | 是否显示月份为背景 | + +### Calendar Events + +| 事件名 | 说明 |返回值| +| | | | +| open | 弹出日历组件,`insert :false` 时生效|- | + + + + + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar](https://hellouniapp.dcloud.net.cn/pages/extUI/calendar/calendar) \ No newline at end of file diff --git a/uni_modules/uni-card/changelog.md b/uni_modules/uni-card/changelog.md new file mode 100644 index 0000000..c3cd8c4 --- /dev/null +++ b/uni_modules/uni-card/changelog.md @@ -0,0 +1,26 @@ +## 1.3.1(2021-12-20) +- 修复 在vue页面下略缩图显示不正常的bug +## 1.3.0(2021-11-19) +- 重构插槽的用法 ,header 替换为 title +- 新增 actions 插槽 +- 新增 cover 封面图属性和插槽 +- 新增 padding 内容默认内边距离 +- 新增 margin 卡片默认外边距离 +- 新增 spacing 卡片默认内边距 +- 新增 shadow 卡片阴影属性 +- 取消 mode 属性,可使用组合插槽代替 +- 取消 note 属性 ,使用actions插槽代替 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-card](https://uniapp.dcloud.io/component/uniui/uni-card) +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-07-01) +- 优化 图文卡片无图片加载时,提供占位图标 +- 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- 修复 thumbnail 不存在仍然占位的 bug +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-card/components/uni-card/uni-card.vue b/uni_modules/uni-card/components/uni-card/uni-card.vue new file mode 100644 index 0000000..38cf594 --- /dev/null +++ b/uni_modules/uni-card/components/uni-card/uni-card.vue @@ -0,0 +1,270 @@ + + + + + diff --git a/uni_modules/uni-card/package.json b/uni_modules/uni-card/package.json new file mode 100644 index 0000000..f16224d --- /dev/null +++ b/uni_modules/uni-card/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-card", + "displayName": "uni-card 卡片", + "version": "1.3.1", + "description": "Card 组件,提供常见的卡片样式。", + "keywords": [ + "uni-ui", + "uniui", + "card", + "", + "卡片" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-card/readme.md b/uni_modules/uni-card/readme.md new file mode 100644 index 0000000..7434e71 --- /dev/null +++ b/uni_modules/uni-card/readme.md @@ -0,0 +1,12 @@ + + +## Card 卡片 +> **组件名:uni-card** +> 代码块: `uCard` + +卡片视图组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-collapse/changelog.md b/uni_modules/uni-collapse/changelog.md new file mode 100644 index 0000000..292e4c7 --- /dev/null +++ b/uni_modules/uni-collapse/changelog.md @@ -0,0 +1,36 @@ +## 1.4.3(2022-01-25) +- 修复 初始化的时候 ,open 属性失效的bug +## 1.4.2(2022-01-21) +- 修复 微信小程序resize后组件收起的bug +## 1.4.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-collapse](https://uniapp.dcloud.io/component/uniui/uni-collapse) +## 1.3.3(2021-08-17) +- 优化 show-arrow 属性默认为true +## 1.3.2(2021-08-17) +- 新增 show-arrow 属性,控制是否显示右侧箭头 +## 1.3.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.3.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.2(2021-07-21) +- 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +## 1.2.1(2021-07-21) +- 优化 组件示例 +## 1.2.0(2021-07-21) +- 新增 组件折叠动画 +- 新增 value\v-model 属性 ,动态修改面板折叠状态 +- 新增 title 插槽 ,可定义面板标题 +- 新增 border 属性 ,显示隐藏面板内容分隔线 +- 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- 修复 resize 方法失效的Bug +- 修复 change 事件返回参数不正确的Bug +- 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +## 1.1.7(2021-05-12) +- 新增 组件示例地址 +## 1.1.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.1.5(2021-02-05) +- 调整为uni_modules目录规范 \ No newline at end of file diff --git a/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue b/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue new file mode 100644 index 0000000..d62a6a7 --- /dev/null +++ b/uni_modules/uni-collapse/components/uni-collapse-item/uni-collapse-item.vue @@ -0,0 +1,402 @@ + + + + + diff --git a/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue b/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue new file mode 100644 index 0000000..384c39a --- /dev/null +++ b/uni_modules/uni-collapse/components/uni-collapse/uni-collapse.vue @@ -0,0 +1,147 @@ + + + diff --git a/uni_modules/uni-collapse/package.json b/uni_modules/uni-collapse/package.json new file mode 100644 index 0000000..65349cf --- /dev/null +++ b/uni_modules/uni-collapse/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-collapse", + "displayName": "uni-collapse 折叠面板", + "version": "1.4.3", + "description": "Collapse 组件,可以折叠 / 展开的内容区域。", + "keywords": [ + "uni-ui", + "折叠", + "折叠面板", + "手风琴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-collapse/readme.md b/uni_modules/uni-collapse/readme.md new file mode 100644 index 0000000..bc758eb --- /dev/null +++ b/uni_modules/uni-collapse/readme.md @@ -0,0 +1,12 @@ + + +## Collapse 折叠面板 +> **组件名:uni-collapse** +> 代码块: `uCollapse` +> 关联组件:`uni-collapse-item`、`uni-icons`。 + + +折叠面板用来折叠/显示过长的内容或者是列表。通常是在多内容分类项使用,折叠不重要的内容,显示重要内容。点击可以展开折叠部分。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-collapse) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-combox/changelog.md b/uni_modules/uni-combox/changelog.md new file mode 100644 index 0000000..23c2748 --- /dev/null +++ b/uni_modules/uni-combox/changelog.md @@ -0,0 +1,15 @@ +## 1.0.1(2021-11-23) +- 优化 label、label-width 属性 +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-combox](https://uniapp.dcloud.io/component/uniui/uni-combox) +## 0.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.6(2021-05-12) +- 新增 组件示例地址 +## 0.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 0.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-combox/components/uni-combox/uni-combox.vue b/uni_modules/uni-combox/components/uni-combox/uni-combox.vue new file mode 100644 index 0000000..500b6f8 --- /dev/null +++ b/uni_modules/uni-combox/components/uni-combox/uni-combox.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/uni_modules/uni-combox/package.json b/uni_modules/uni-combox/package.json new file mode 100644 index 0000000..4a05c3f --- /dev/null +++ b/uni_modules/uni-combox/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-combox", + "displayName": "uni-combox 组合框", + "version": "1.0.1", + "description": "可以选择也可以输入的表单项 ", + "keywords": [ + "uni-ui", + "uniui", + "combox", + "组合框", + "select" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-combox/readme.md b/uni_modules/uni-combox/readme.md new file mode 100644 index 0000000..ffa2cc8 --- /dev/null +++ b/uni_modules/uni-combox/readme.md @@ -0,0 +1,11 @@ + + +## Combox 组合框 +> **组件名:uni-combox** +> 代码块: `uCombox` + + +组合框组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-combox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-countdown/changelog.md b/uni_modules/uni-countdown/changelog.md new file mode 100644 index 0000000..f25beef --- /dev/null +++ b/uni_modules/uni-countdown/changelog.md @@ -0,0 +1,24 @@ +## 1.2.2(2022-01-19) +- 修复 在微信小程序中样式不生效的bug +## 1.2.1(2022-01-18) +- 新增 update 方法 ,在动态更新时间后,刷新组件 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-countdown](https://uniapp.dcloud.io/component/uniui/uni-countdown) +## 1.1.3(2021-10-18) +- 重构 +- 新增 font-size 支持自定义字体大小 +## 1.1.2(2021-08-24) +- 新增 支持国际化 +## 1.1.1(2021-07-30) +- 优化 vue3下小程序事件警告的问题 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-06-18) +- 修复 uni-countdown 重复赋值跳两秒的 bug +## 1.0.4(2021-05-12) +- 新增 组件示例地址 +## 1.0.3(2021-05-08) +- 修复 uni-countdown 不能控制倒计时的 bug +## 1.0.2(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json new file mode 100644 index 0000000..06309cb --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/en.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "day", + "uni-countdown.h": "h", + "uni-countdown.m": "m", + "uni-countdown.s": "s" +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js b/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json new file mode 100644 index 0000000..358cdd1 --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hans.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "时", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json new file mode 100644 index 0000000..e5a63de --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/i18n/zh-Hant.json @@ -0,0 +1,6 @@ +{ + "uni-countdown.day": "天", + "uni-countdown.h": "時", + "uni-countdown.m": "分", + "uni-countdown.s": "秒" +} diff --git a/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue b/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue new file mode 100644 index 0000000..1f8ef4e --- /dev/null +++ b/uni_modules/uni-countdown/components/uni-countdown/uni-countdown.vue @@ -0,0 +1,271 @@ + + + diff --git a/uni_modules/uni-countdown/package.json b/uni_modules/uni-countdown/package.json new file mode 100644 index 0000000..70e99ee --- /dev/null +++ b/uni_modules/uni-countdown/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-countdown", + "displayName": "uni-countdown 倒计时", + "version": "1.2.2", + "description": "CountDown 倒计时组件", + "keywords": [ + "uni-ui", + "uniui", + "countdown", + "倒计时" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-countdown/readme.md b/uni_modules/uni-countdown/readme.md new file mode 100644 index 0000000..4bcb1aa --- /dev/null +++ b/uni_modules/uni-countdown/readme.md @@ -0,0 +1,10 @@ + + +## CountDown 倒计时 +> **组件名:uni-countdown** +> 代码块: `uCountDown` + +倒计时组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-countdown) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-checkbox/changelog.md b/uni_modules/uni-data-checkbox/changelog.md new file mode 100644 index 0000000..d8f420b --- /dev/null +++ b/uni_modules/uni-data-checkbox/changelog.md @@ -0,0 +1,41 @@ +## 1.0.1(2022-02-07) +- 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-checkbox](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +## 0.2.5(2021-08-23) +- 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +## 0.2.4(2021-08-17) +- 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +## 0.2.3(2021-08-11) +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +## 0.2.2(2021-07-30) +- 优化 在uni-forms组件,与label不对齐的问题 +## 0.2.1(2021-07-27) +- 修复 单选默认值为0不能选中的Bug +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.11(2021-07-06) +- 优化 删除无用日志 +## 0.1.10(2021-07-05) +- 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +## 0.1.9(2021-07-05) +- 修复 nvue 黑框样式问题 +## 0.1.8(2021-06-28) +- 修复 selectedTextColor 属性不生效的Bug +## 0.1.7(2021-06-02) +- 新增 map 属性,可以方便映射text/value属性 +## 0.1.6(2021-05-26) +- 修复 不关联服务空间的情况下组件报错的Bug +## 0.1.5(2021-05-12) +- 新增 组件示例地址 +## 0.1.4(2021-04-09) +- 修复 nvue 下无法选中的问题 +## 0.1.3(2021-03-22) +- 新增 disabled属性 +## 0.1.2(2021-02-24) +- 优化 默认颜色显示 +## 0.1.1(2021-02-24) +- 新增 支持nvue +## 0.1.0(2021-02-18) +- “暂无数据”显示居中 diff --git a/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue b/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue new file mode 100644 index 0000000..ccea7e9 --- /dev/null +++ b/uni_modules/uni-data-checkbox/components/uni-data-checkbox/uni-data-checkbox.vue @@ -0,0 +1,817 @@ + + + + + diff --git a/uni_modules/uni-data-checkbox/package.json b/uni_modules/uni-data-checkbox/package.json new file mode 100644 index 0000000..64131e7 --- /dev/null +++ b/uni_modules/uni-data-checkbox/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-data-checkbox", + "displayName": "uni-data-checkbox 数据选择器", + "version": "1.0.1", + "description": "通过数据驱动的单选框和复选框", + "keywords": [ + "uni-ui", + "checkbox", + "单选", + "多选", + "单选多选" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.1" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-load-more","uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-data-checkbox/readme.md b/uni_modules/uni-data-checkbox/readme.md new file mode 100644 index 0000000..6eb253d --- /dev/null +++ b/uni_modules/uni-data-checkbox/readme.md @@ -0,0 +1,18 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +1. 数据绑定型组件:给本组件绑定一个data,会自动渲染一组候选内容。再以往,开发者需要编写不少代码实现类似功能 +2. 自动的表单校验:组件绑定了data,且符合[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)组件的表单校验规范,搭配使用会自动实现表单校验 +3. 本组件合并了单选多选 +4. 本组件有若干风格选择,如普通的单选多选框、并列button风格、tag风格。开发者可以快速选择需要的风格。但作为一个封装组件,样式代码虽然不用自己写了,却会牺牲一定的样式自定义性 + +在uniCloud开发中,`DB Schema`中配置了enum枚举等类型后,在web控制台的[自动生成表单](https://uniapp.dcloud.io/uniCloud/schema?id=autocode)功能中,会自动生成``uni-data-checkbox``组件并绑定好data + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-checkbox) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-data-picker/changelog.md b/uni_modules/uni-data-picker/changelog.md new file mode 100644 index 0000000..486eedc --- /dev/null +++ b/uni_modules/uni-data-picker/changelog.md @@ -0,0 +1,56 @@ +## 1.0.3(2022-02-25) +- 修复 nvue 不支持的 v-show 的 bug +## 1.0.2(2022-02-25) +- 修复 条件编译 nvue 不支持的 css 样式 +## 1.0.1(2021-11-23) +- 修复 由上个版本引发的map、v-model等属性不生效的bug +## 1.0.0(2021-11-19) +- 优化 组件 UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-data-picker](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +## 0.4.9(2021-10-28) +- 修复 VUE2 v-model 概率无效的 bug +## 0.4.8(2021-10-27) +- 修复 v-model 概率无效的 bug +## 0.4.7(2021-10-25) +- 新增 属性 spaceInfo 服务空间配置 HBuilderX 3.2.11+ +- 修复 树型 uniCloud 数据类型为 int 时报错的 bug +## 0.4.6(2021-10-19) +- 修复 非 VUE3 v-model 为 0 时无法选中的 bug +## 0.4.5(2021-09-26) +- 新增 清除已选项的功能(通过 clearIcon 属性配置是否显示按钮),同时提供 clear 方法以供调用,二者等效 +- 修复 readonly 为 true 时报错的 bug +## 0.4.4(2021-09-26) +- 修复 上一版本造成的 map 属性失效的 bug +- 新增 ellipsis 属性,支持配置 tab 选项长度过长时是否自动省略 +## 0.4.3(2021-09-24) +- 修复 某些情况下级联未触发的 bug +## 0.4.2(2021-09-23) +- 新增 提供 show 和 hide 方法,开发者可以通过 ref 调用 +- 新增 选项内容过长自动添加省略号 +## 0.4.1(2021-09-15) +- 新增 map 属性 字段映射,将 text/value 映射到数据中的其他字段 +## 0.4.0(2021-07-13) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.3.5(2021-06-04) +- 修复 无法加载云端数据的问题 +## 0.3.4(2021-05-28) +- 修复 v-model 无效问题 +- 修复 loaddata 为空数据组时加载时间过长问题 +- 修复 上个版本引出的本地数据无法选择带有 children 的 2 级节点 +## 0.3.3(2021-05-12) +- 新增 组件示例地址 +## 0.3.2(2021-04-22) +- 修复 非树形数据有 where 属性查询报错的问题 +## 0.3.1(2021-04-15) +- 修复 本地数据概率无法回显时问题 +## 0.3.0(2021-04-07) +- 新增 支持云端非树形表结构数据 +- 修复 根节点 parent_field 字段等于 null 时选择界面错乱问题 +## 0.2.0(2021-03-15) +- 修复 nodeclick、popupopened、popupclosed 事件无法触发的问题 +## 0.1.9(2021-03-09) +- 修复 微信小程序某些情况下无法选择的问题 +## 0.1.8(2021-02-05) +- 优化 部分样式在 nvue 上的兼容表现 +## 0.1.7(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js b/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js new file mode 100644 index 0000000..6ef26a2 --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-picker/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue b/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue new file mode 100644 index 0000000..a76af2e --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker.vue @@ -0,0 +1,539 @@ + + + + + diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js new file mode 100644 index 0000000..c12fd54 --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js @@ -0,0 +1,563 @@ +export default { + props: { + localdata: { + type: [Array, Object], + default () { + return [] + } + }, + spaceInfo: { + type: Object, + default () { + return {} + } + }, + collection: { + type: String, + default: '' + }, + action: { + type: String, + default: '' + }, + field: { + type: String, + default: '' + }, + orderby: { + type: String, + default: '' + }, + where: { + type: [String, Object], + default: '' + }, + pageData: { + type: String, + default: 'add' + }, + pageCurrent: { + type: Number, + default: 1 + }, + pageSize: { + type: Number, + default: 20 + }, + getcount: { + type: [Boolean, String], + default: false + }, + getone: { + type: [Boolean, String], + default: false + }, + gettree: { + type: [Boolean, String], + default: false + }, + manual: { + type: Boolean, + default: false + }, + value: { + type: [Array, String, Number], + default () { + return [] + } + }, + modelValue: { + type: [Array, String, Number], + default () { + return [] + } + }, + preload: { + type: Boolean, + default: false + }, + stepSearh: { + type: Boolean, + default: true + }, + selfField: { + type: String, + default: '' + }, + parentField: { + type: String, + default: '' + }, + multiple: { + type: Boolean, + default: false + }, + map: { + type: Object, + default() { + return { + text: "text", + value: "value" + } + } + } + }, + data() { + return { + loading: false, + errorMessage: '', + loadMore: { + contentdown: '', + contentrefresh: '', + contentnomore: '' + }, + dataList: [], + selected: [], + selectedIndex: 0, + page: { + current: this.pageCurrent, + size: this.pageSize, + count: 0 + } + } + }, + computed: { + isLocaldata() { + return !this.collection.length + }, + postField() { + let fields = [this.field]; + if (this.parentField) { + fields.push(`${this.parentField} as parent_value`); + } + return fields.join(','); + }, + dataValue() { + let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || this.modelValue !== undefined) + return isModelValue ? this.modelValue : this.value + }, + hasValue() { + if (typeof this.dataValue === 'number') { + return true + } + return (this.dataValue != null) && (this.dataValue.length > 0) + } + }, + created() { + this.$watch(() => { + var al = []; + ['pageCurrent', + 'pageSize', + 'spaceInfo', + 'value', + 'modelValue', + 'localdata', + 'collection', + 'action', + 'field', + 'orderby', + 'where', + 'getont', + 'getcount', + 'gettree' + ].forEach(key => { + al.push(this[key]) + }); + return al + }, (newValue, oldValue) => { + let needReset = false + for (let i = 2; i < newValue.length; i++) { + if (newValue[i] != oldValue[i]) { + needReset = true + break + } + } + if (newValue[0] != oldValue[0]) { + this.page.current = this.pageCurrent + } + this.page.size = this.pageSize + + this.onPropsChange() + }) + this._treeData = [] + }, + methods: { + onPropsChange() { + this._treeData = [] + }, + getCommand(options = {}) { + /* eslint-disable no-undef */ + let db = uniCloud.database(this.spaceInfo) + + const action = options.action || this.action + if (action) { + db = db.action(action) + } + + const collection = options.collection || this.collection + db = db.collection(collection) + + const where = options.where || this.where + if (!(!where || !Object.keys(where).length)) { + db = db.where(where) + } + + const field = options.field || this.field + if (field) { + db = db.field(field) + } + + const orderby = options.orderby || this.orderby + if (orderby) { + db = db.orderBy(orderby) + } + + const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current + const size = options.pageSize !== undefined ? options.pageSize : this.page.size + const getCount = options.getcount !== undefined ? options.getcount : this.getcount + const getTree = options.gettree !== undefined ? options.gettree : this.gettree + + const getOptions = { + getCount, + getTree + } + if (options.getTreePath) { + getOptions.getTreePath = options.getTreePath + } + + db = db.skip(size * (current - 1)).limit(size).get(getOptions) + + return db + }, + getNodeData(callback) { + if (this.loading) { + return + } + this.loading = true + this.getCommand({ + field: this.postField, + where: this._pathWhere() + }).then((res) => { + this.loading = false + this.selected = res.result.data + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + getTreePath(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + getTreePath: { + startWith: `${this.selfField}=='${this.dataValue}'` + } + }).then((res) => { + this.loading = false + let treePath = [] + this._extractTreePath(res.result.data, treePath) + this.selected = treePath + callback && callback() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + loadData() { + if (this.isLocaldata) { + this._processLocalData() + return + } + + if (this.dataValue != null) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + this._updateSelected() + }) + return + } + + if (this.stepSearh) { + this._loadNodeData((data) => { + this._treeData = data + this._updateBindData() + }) + } else { + this._loadAllData((data) => { + this._treeData = [] + this._extractTree(data, this._treeData, null) + this._updateBindData() + }) + } + }, + _loadAllData(callback) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + gettree: true, + startwith: `${this.selfField}=='${this.dataValue}'` + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _loadNodeData(callback, pw) { + if (this.loading) { + return + } + this.loading = true + + this.getCommand({ + field: this.postField, + where: pw || this._postWhere(), + pageSize: 500 + }).then((res) => { + this.loading = false + callback(res.result.data) + this.onDataChange() + }).catch((err) => { + this.loading = false + this.errorMessage = err + }) + }, + _pathWhere() { + let result = [] + let where_field = this._getParentNameByField(); + if (where_field) { + result.push(`${where_field} == '${this.dataValue}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _postWhere() { + let result = [] + let selected = this.selected + let parentField = this.parentField + if (parentField) { + result.push(`${parentField} == null || ${parentField} == ""`) + } + if (selected.length) { + for (var i = 0; i < selected.length - 1; i++) { + result.push(`${parentField} == '${selected[i].value}'`) + } + } + + let where = [] + if (this.where) { + where.push(`(${this.where})`) + } + if (result.length) { + where.push(`(${result.join(' || ')})`) + } + + return where.join(' && ') + }, + _nodeWhere() { + let result = [] + let selected = this.selected + if (selected.length) { + result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`) + } + + if (this.where) { + return `(${this.where}) && (${result.join(' || ')})` + } + + return result.join(' || ') + }, + _getParentNameByField() { + const fields = this.field.split(','); + let where_field = null; + for (let i = 0; i < fields.length; i++) { + const items = fields[i].split('as'); + if (items.length < 2) { + continue; + } + if (items[1].trim() === 'value') { + where_field = items[0].trim(); + break; + } + } + return where_field + }, + _isTreeView() { + return (this.parentField && this.selfField) + }, + _updateSelected() { + var dl = this.dataList + var sl = this.selected + let textField = this.map.text + let valueField = this.map.value + for (var i = 0; i < sl.length; i++) { + var value = sl[i].value + var dl2 = dl[i] + for (var j = 0; j < dl2.length; j++) { + var item2 = dl2[j] + if (item2[valueField] === value) { + sl[i].text = item2[textField] + break + } + } + } + }, + _updateBindData(node) { + const { + dataList, + hasNodes + } = this._filterData(this._treeData, this.selected) + + let isleaf = this._stepSearh === false && !hasNodes + + if (node) { + node.isleaf = isleaf + } + + this.dataList = dataList + this.selectedIndex = dataList.length - 1 + + if (!isleaf && this.selected.length < dataList.length) { + this.selected.push({ + value: null, + text: "请选择" + }) + } + + return { + isleaf, + hasNodes + } + }, + _filterData(data, paths) { + let dataList = [] + let hasNodes = true + + dataList.push(data.filter((item) => { + return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '') + })) + for (let i = 0; i < paths.length; i++) { + var value = paths[i].value + var nodes = data.filter((item) => { + return item.parent_value === value + }) + + if (nodes.length) { + dataList.push(nodes) + } else { + hasNodes = false + } + } + + return { + dataList, + hasNodes + } + }, + _extractTree(nodes, result, parent_value) { + let list = result || [] + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + if (parent_value !== null && parent_value !== undefined && parent_value !== '') { + child.parent_value = parent_value + } + result.push(child) + + let children = node.children + if (children) { + this._extractTree(children, result, node[valueField]) + } + } + }, + _extractTreePath(nodes, result) { + let list = result || [] + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + + let child = {} + for (let key in node) { + if (key !== 'children') { + child[key] = node[key] + } + } + result.push(child) + + let children = node.children + if (children) { + this._extractTreePath(children, result) + } + } + }, + _findNodePath(key, nodes, path = []) { + let textField = this.map.text + let valueField = this.map.value + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i] + let children = node.children + let text = node[textField] + let value = node[valueField] + + path.push({ + value, + text + }) + + if (value === key) { + return path + } + + if (children) { + const p = this._findNodePath(key, children, path) + if (p.length) { + return p + } + } + + path.pop() + } + return [] + }, + _processLocalData() { + this._treeData = [] + this._extractTree(this.localdata, this._treeData) + + var inputValue = this.dataValue + if (inputValue === undefined) { + return + } + + if (Array.isArray(inputValue)) { + inputValue = inputValue[inputValue.length - 1] + if (typeof inputValue === 'object' && inputValue[this.map.value]) { + inputValue = inputValue[this.map.value] + } + } + + this.selected = this._findNodePath(inputValue, this.localdata) + } + } +} diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue new file mode 100644 index 0000000..72f8b33 --- /dev/null +++ b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue @@ -0,0 +1,333 @@ + + + + diff --git a/uni_modules/uni-data-picker/package.json b/uni_modules/uni-data-picker/package.json new file mode 100644 index 0000000..d4925ef --- /dev/null +++ b/uni_modules/uni-data-picker/package.json @@ -0,0 +1,92 @@ +{ + "id": "uni-data-picker", + "displayName": "uni-data-picker 数据驱动的picker选择器", + "version": "1.0.3", + "description": "单列、多列级联选择器,常用于省市区城市选择、公司部门选择、多级分类等场景", + "keywords": [ + "uni-ui", + "uniui", + "picker", + "级联", + "省市区", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-load-more", + "uni-icons", + "uni-scss" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-data-picker/readme.md b/uni_modules/uni-data-picker/readme.md new file mode 100644 index 0000000..6cda224 --- /dev/null +++ b/uni_modules/uni-data-picker/readme.md @@ -0,0 +1,22 @@ +## DataPicker 级联选择 +> **组件名:uni-data-picker** +> 代码块: `uDataPicker` +> 关联组件:`uni-data-pickerview`、`uni-load-more`。 + + +`` 是一个选择类[datacom组件](https://uniapp.dcloud.net.cn/component/datacom)。 + +支持单列、和多列级联选择。列数没有限制,如果屏幕显示不全,顶部tab区域会左右滚动。 + +候选数据支持一次性加载完毕,也支持懒加载,比如示例图中,选择了“北京”后,动态加载北京的区县数据。 + +`` 组件尤其适用于地址选择、分类选择等选择类。 + +`` 支持本地数据、云端静态数据(json),uniCloud云数据库数据。 + +`` 可以通过JQL直连uniCloud云数据库,配套[DB Schema](https://uniapp.dcloud.net.cn/uniCloud/schema),可在schema2code中自动生成前端页面,还支持服务器端校验。 + +在uniCloud数据表中新建表“uni-id-address”和“opendb-city-china”,这2个表的schema自带foreignKey关联。在“uni-id-address”表的表结构页面使用schema2code生成前端页面,会自动生成地址管理的维护页面,自动从“opendb-city-china”表包含的中国所有省市区信息里选择地址。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-dateformat/changelog.md b/uni_modules/uni-dateformat/changelog.md new file mode 100644 index 0000000..d551d7b --- /dev/null +++ b/uni_modules/uni-dateformat/changelog.md @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-dateformat](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +## 0.0.5(2021-07-08) +- 调整 默认时间不再是当前时间,而是显示'-'字符 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-04) +- 调整为uni_modules目录规范 +- 修复 iOS 平台日期格式化出错的问题 diff --git a/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js b/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js new file mode 100644 index 0000000..e00d559 --- /dev/null +++ b/uni_modules/uni-dateformat/components/uni-dateformat/date-format.js @@ -0,0 +1,200 @@ +// yyyy-MM-dd hh:mm:ss.SSS 所有支持的类型 +function pad(str, length = 2) { + str += '' + while (str.length < length) { + str = '0' + str + } + return str.slice(-length) +} + +const parser = { + yyyy: (dateObj) => { + return pad(dateObj.year, 4) + }, + yy: (dateObj) => { + return pad(dateObj.year) + }, + MM: (dateObj) => { + return pad(dateObj.month) + }, + M: (dateObj) => { + return dateObj.month + }, + dd: (dateObj) => { + return pad(dateObj.day) + }, + d: (dateObj) => { + return dateObj.day + }, + hh: (dateObj) => { + return pad(dateObj.hour) + }, + h: (dateObj) => { + return dateObj.hour + }, + mm: (dateObj) => { + return pad(dateObj.minute) + }, + m: (dateObj) => { + return dateObj.minute + }, + ss: (dateObj) => { + return pad(dateObj.second) + }, + s: (dateObj) => { + return dateObj.second + }, + SSS: (dateObj) => { + return pad(dateObj.millisecond, 3) + }, + S: (dateObj) => { + return dateObj.millisecond + }, +} + +// 这都n年了iOS依然不认识2020-12-12,需要转换为2020/12/12 +function getDate(time) { + if (time instanceof Date) { + return time + } + switch (typeof time) { + case 'string': + { + // 2020-12-12T12:12:12.000Z、2020-12-12T12:12:12.000 + if (time.indexOf('T') > -1) { + return new Date(time) + } + return new Date(time.replace(/-/g, '/')) + } + default: + return new Date(time) + } +} + +export function formatDate(date, format = 'yyyy/MM/dd hh:mm:ss') { + if (!date && date !== 0) { + return '' + } + date = getDate(date) + const dateObj = { + year: date.getFullYear(), + month: date.getMonth() + 1, + day: date.getDate(), + hour: date.getHours(), + minute: date.getMinutes(), + second: date.getSeconds(), + millisecond: date.getMilliseconds() + } + const tokenRegExp = /yyyy|yy|MM|M|dd|d|hh|h|mm|m|ss|s|SSS|SS|S/ + let flag = true + let result = format + while (flag) { + flag = false + result = result.replace(tokenRegExp, function(matched) { + flag = true + return parser[matched](dateObj) + }) + } + return result +} + +export function friendlyDate(time, { + locale = 'zh', + threshold = [60000, 3600000], + format = 'yyyy/MM/dd hh:mm:ss' +}) { + if (time === '-') { + return time + } + if (!time && time !== 0) { + return '' + } + const localeText = { + zh: { + year: '年', + month: '月', + day: '天', + hour: '小时', + minute: '分钟', + second: '秒', + ago: '前', + later: '后', + justNow: '刚刚', + soon: '马上', + template: '{num}{unit}{suffix}' + }, + en: { + year: 'year', + month: 'month', + day: 'day', + hour: 'hour', + minute: 'minute', + second: 'second', + ago: 'ago', + later: 'later', + justNow: 'just now', + soon: 'soon', + template: '{num} {unit} {suffix}' + } + } + const text = localeText[locale] || localeText.zh + let date = getDate(time) + let ms = date.getTime() - Date.now() + let absMs = Math.abs(ms) + if (absMs < threshold[0]) { + return ms < 0 ? text.justNow : text.soon + } + if (absMs >= threshold[1]) { + return formatDate(date, format) + } + let num + let unit + let suffix = text.later + if (ms < 0) { + suffix = text.ago + ms = -ms + } + const seconds = Math.floor((ms) / 1000) + const minutes = Math.floor(seconds / 60) + const hours = Math.floor(minutes / 60) + const days = Math.floor(hours / 24) + const months = Math.floor(days / 30) + const years = Math.floor(months / 12) + switch (true) { + case years > 0: + num = years + unit = text.year + break + case months > 0: + num = months + unit = text.month + break + case days > 0: + num = days + unit = text.day + break + case hours > 0: + num = hours + unit = text.hour + break + case minutes > 0: + num = minutes + unit = text.minute + break + default: + num = seconds + unit = text.second + break + } + + if (locale === 'en') { + if (num === 1) { + num = 'a' + } else { + unit += 's' + } + } + + return text.template.replace(/{\s*num\s*}/g, num + '').replace(/{\s*unit\s*}/g, unit).replace(/{\s*suffix\s*}/g, + suffix) +} diff --git a/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue b/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue new file mode 100644 index 0000000..c5ed030 --- /dev/null +++ b/uni_modules/uni-dateformat/components/uni-dateformat/uni-dateformat.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/uni_modules/uni-dateformat/package.json b/uni_modules/uni-dateformat/package.json new file mode 100644 index 0000000..786a670 --- /dev/null +++ b/uni_modules/uni-dateformat/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-dateformat", + "displayName": "uni-dateformat 日期格式化", + "version": "1.0.0", + "description": "日期格式化组件,可以将日期格式化为1分钟前、刚刚等形式", + "keywords": [ + "uni-ui", + "uniui", + "日期格式化", + "时间格式化", + "格式化时间", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-dateformat/readme.md b/uni_modules/uni-dateformat/readme.md new file mode 100644 index 0000000..37ddb6e --- /dev/null +++ b/uni_modules/uni-dateformat/readme.md @@ -0,0 +1,11 @@ + + +### DateFormat 日期格式化 +> **组件名:uni-dateformat** +> 代码块: `uDateformat` + + +日期格式化组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-dateformat) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/changelog.md b/uni_modules/uni-datetime-picker/changelog.md new file mode 100644 index 0000000..9611a30 --- /dev/null +++ b/uni_modules/uni-datetime-picker/changelog.md @@ -0,0 +1,89 @@ +## 2.2.4(2022-03-31) +- 修复 Vue3 下动态赋值,单选类型未响应的 bug +## 2.2.3(2022-03-28) +- 修复 Vue3 下动态赋值未响应的 bug +## 2.2.2(2021-12-10) +- 修复 clear-icon 属性在小程序平台不生效的 bug +## 2.2.1(2021-12-10) +- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +## 2.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +## 2.1.5(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 2.1.4(2021-09-10) +- 修复 hide-second 在移动端的 bug +- 修复 单选赋默认值时,赋值日期未高亮的 bug +- 修复 赋默认值时,移动端未正确显示时间的 bug +## 2.1.3(2021-09-09) +- 新增 hide-second 属性,支持只使用时分,隐藏秒 +## 2.1.2(2021-09-03) +- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- 优化 调整字号大小,美化日历界面 +- 修复 因国际化导致的 placeholder 失效的 bug +## 2.1.1(2021-08-24) +- 新增 支持国际化 +- 优化 范围选择器在 pc 端过宽的问题 +## 2.1.0(2021-08-09) +- 新增 适配 vue3 +## 2.0.19(2021-08-09) +- 新增 支持作为 uni-forms 子组件相关功能 +- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +## 2.0.18(2021-08-05) +- 修复 type 属性动态赋值无效的 bug +- 修复 ‘确认’按钮被 tabbar 遮盖 bug +- 修复 组件未赋值时范围选左、右日历相同的 bug +## 2.0.17(2021-08-04) +- 修复 范围选未正确显示当前值的 bug +- 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +## 2.0.16(2021-07-21) +- 新增 return-type 属性支持返回 date 日期对象 +## 2.0.15(2021-07-14) +- 修复 单选日期类型,初始赋值后不在当前日历的 bug +- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- 优化 移动端移除显示框的清空按钮,无实际用途 +## 2.0.14(2021-07-14) +- 修复 组件赋值为空,界面未更新的 bug +- 修复 start 和 end 不能动态赋值的 bug +- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 2.0.13(2021-07-08) +- 修复 范围选择不能动态赋值的 bug +## 2.0.12(2021-07-08) +- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +## 2.0.11(2021-07-08) +- 优化 弹出层在超出视窗边缘定位不准确的问题 +## 2.0.10(2021-07-08) +- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- 优化 弹出层在超出视窗边缘被遮盖的问题 +## 2.0.9(2021-07-07) +- 新增 maskClick 事件 +- 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +## 2.0.8(2021-07-07) +- 新增 日期时间显示框支持插槽 +## 2.0.7(2021-07-01) +- 优化 添加 uni-icons 依赖 +## 2.0.6(2021-05-22) +- 修复 图标在小程序上不显示的 bug +- 优化 重命名引用组件,避免潜在组件命名冲突 +## 2.0.5(2021-05-20) +- 优化 代码目录扁平化 +## 2.0.4(2021-05-12) +- 新增 组件示例地址 +## 2.0.3(2021-05-10) +- 修复 ios 下不识别 '-' 日期格式的 bug +- 优化 pc 下弹出层添加边框和阴影 +## 2.0.2(2021-05-08) +- 修复 在 admin 中获取弹出层定位错误的bug +## 2.0.1(2021-05-08) +- 修复 type 属性向下兼容,默认值从 date 变更为 datetime +## 2.0.0(2021-04-30) +- 支持日历形式的日期+时间的范围选择 + > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker) +## 1.0.6(2021-03-18) +- 新增 hide-second 属性,时间支持仅选择时、分 +- 修复 选择跟显示的日期不一样的 bug +- 修复 chang事件触发2次的 bug +- 修复 分、秒 end 范围错误的 bug +- 优化 更好的 nvue 适配 diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue new file mode 100644 index 0000000..3d2dbea --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue new file mode 100644 index 0000000..f05adaf --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue @@ -0,0 +1,898 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json new file mode 100644 index 0000000..cc76311 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "select date", + "uni-datetime-picker.selectTime": "select time", + "uni-datetime-picker.selectDateTime": "select datetime", + "uni-datetime-picker.startDate": "start date", + "uni-datetime-picker.endDate": "end date", + "uni-datetime-picker.startTime": "start time", + "uni-datetime-picker.endTime": "end time", + "uni-datetime-picker.ok": "ok", + "uni-datetime-picker.clear": "clear", + "uni-datetime-picker.cancel": "cancel", + "uni-calender.MON": "MON", + "uni-calender.TUE": "TUE", + "uni-calender.WED": "WED", + "uni-calender.THU": "THU", + "uni-calender.FRI": "FRI", + "uni-calender.SAT": "SAT", + "uni-calender.SUN": "SUN" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json new file mode 100644 index 0000000..7bc7405 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "选择日期", + "uni-datetime-picker.selectTime": "选择时间", + "uni-datetime-picker.selectDateTime": "选择日期时间", + "uni-datetime-picker.startDate": "开始日期", + "uni-datetime-picker.endDate": "结束日期", + "uni-datetime-picker.startTime": "开始时间", + "uni-datetime-picker.endTime": "结束时间", + "uni-datetime-picker.ok": "确定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json new file mode 100644 index 0000000..7d37043 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json @@ -0,0 +1,19 @@ +{ + "uni-datetime-picker.selectDate": "選擇日期", + "uni-datetime-picker.selectTime": "選擇時間", + "uni-datetime-picker.selectDateTime": "選擇日期時間", + "uni-datetime-picker.startDate": "開始日期", + "uni-datetime-picker.endDate": "結束日期", + "uni-datetime-picker.startTime": "開始时间", + "uni-datetime-picker.endTime": "結束时间", + "uni-datetime-picker.ok": "確定", + "uni-datetime-picker.clear": "清除", + "uni-datetime-picker.cancel": "取消", + "uni-calender.SUN": "日", + "uni-calender.MON": "一", + "uni-calender.TUE": "二", + "uni-calender.WED": "三", + "uni-calender.THU": "四", + "uni-calender.FRI": "五", + "uni-calender.SAT": "六" +} diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js new file mode 100644 index 0000000..9601aba --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif \ No newline at end of file diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue new file mode 100644 index 0000000..699aa63 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue @@ -0,0 +1,927 @@ + + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue new file mode 100644 index 0000000..ea00857 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker.vue @@ -0,0 +1,997 @@ + + + + diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js new file mode 100644 index 0000000..efa5773 --- /dev/null +++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js @@ -0,0 +1,410 @@ +class Calendar { + constructor({ + date, + selected, + startDate, + endDate, + range, + // multipleStatus + } = {}) { + // 当前日期 + this.date = this.getDate(new Date()) // 当前初入日期 + // 打点信息 + this.selected = selected || []; + // 范围开始 + this.startDate = startDate + // 范围结束 + this.endDate = endDate + this.range = range + // 多选状态 + this.cleanMultipleStatus() + // 每周日期 + this.weeks = {} + // this._getWeek(this.date.fullDate) + // this.multipleStatus = multipleStatus + this.lastHover = false + } + /** + * 设置日期 + * @param {Object} date + */ + setDate(date) { + this.selectDate = this.getDate(date) + this._getWeek(this.selectDate.fullDate) + } + + /** + * 清理多选状态 + */ + cleanMultipleStatus() { + this.multipleStatus = { + before: '', + after: '', + data: [] + } + } + + /** + * 重置开始日期 + */ + resetSatrtDate(startDate) { + // 范围开始 + this.startDate = startDate + + } + + /** + * 重置结束日期 + */ + resetEndDate(endDate) { + // 范围结束 + this.endDate = endDate + } + + /** + * 获取任意时间 + */ + getDate(date, AddDayCount = 0, str = 'day') { + if (!date) { + date = new Date() + } + if (typeof date !== 'object') { + date = date.replace(/-/g, '/') + } + const dd = new Date(date) + switch (str) { + case 'day': + dd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期 + break + case 'month': + if (dd.getDate() === 31) { + dd.setDate(dd.getDate() + AddDayCount) + } else { + dd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期 + } + break + case 'year': + dd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期 + break + } + const y = dd.getFullYear() + const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 + const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 + return { + fullDate: y + '-' + m + '-' + d, + year: y, + month: m, + date: d, + day: dd.getDay() + } + } + + + /** + * 获取上月剩余天数 + */ + _getLastMonthDays(firstDay, full) { + let dateArr = [] + for (let i = firstDay; i > 0; i--) { + const beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate() + dateArr.push({ + date: beforeDate, + month: full.month - 1, + disable: true + }) + } + return dateArr + } + /** + * 获取本月天数 + */ + _currentMonthDys(dateData, full) { + let dateArr = [] + let fullDate = this.date.fullDate + for (let i = 1; i <= dateData; i++) { + let isinfo = false + let nowDate = full.year + '-' + (full.month < 10 ? + full.month : full.month) + '-' + (i < 10 ? + '0' + i : i) + // 是否今天 + let isDay = fullDate === nowDate + // 获取打点信息 + let info = this.selected && this.selected.find((item) => { + if (this.dateEqual(nowDate, item.date)) { + return item + } + }) + + // 日期禁用 + let disableBefore = true + let disableAfter = true + if (this.startDate) { + // let dateCompBefore = this.dateCompare(this.startDate, fullDate) + // disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate) + disableBefore = this.dateCompare(this.startDate, nowDate) + } + + if (this.endDate) { + // let dateCompAfter = this.dateCompare(fullDate, this.endDate) + // disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate) + disableAfter = this.dateCompare(nowDate, this.endDate) + } + let multiples = this.multipleStatus.data + let checked = false + let multiplesStatus = -1 + if (this.range) { + if (multiples) { + multiplesStatus = multiples.findIndex((item) => { + return this.dateEqual(item, nowDate) + }) + } + if (multiplesStatus !== -1) { + checked = true + } + } + let data = { + fullDate: nowDate, + year: full.year, + date: i, + multiple: this.range ? checked : false, + beforeMultiple: this.isLogicBefore(nowDate, this.multipleStatus.before, this.multipleStatus.after), + afterMultiple: this.isLogicAfter(nowDate, this.multipleStatus.before, this.multipleStatus.after), + month: full.month, + disable: !(disableBefore && disableAfter), + isDay, + userChecked: false + } + if (info) { + data.extraInfo = info + } + + dateArr.push(data) + } + return dateArr + } + /** + * 获取下月天数 + */ + _getNextMonthDays(surplus, full) { + let dateArr = [] + for (let i = 1; i < surplus + 1; i++) { + dateArr.push({ + date: i, + month: Number(full.month) + 1, + disable: true + }) + } + return dateArr + } + + /** + * 获取当前日期详情 + * @param {Object} date + */ + getInfo(date) { + if (!date) { + date = new Date() + } + const dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate) + return dateInfo + } + + /** + * 比较时间大小 + */ + dateCompare(startDate, endDate) { + // 计算截止时间 + startDate = new Date(startDate.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + endDate = new Date(endDate.replace('-', '/').replace('-', '/')) + if (startDate <= endDate) { + return true + } else { + return false + } + } + + /** + * 比较时间是否相等 + */ + dateEqual(before, after) { + // 计算截止时间 + before = new Date(before.replace('-', '/').replace('-', '/')) + // 计算详细项的截止时间 + after = new Date(after.replace('-', '/').replace('-', '/')) + if (before.getTime() - after.getTime() === 0) { + return true + } else { + return false + } + } + + /** + * 比较真实起始日期 + */ + + isLogicBefore(currentDay, before, after) { + let logicBefore = before + if (before && after) { + logicBefore = this.dateCompare(before, after) ? before : after + } + return this.dateEqual(logicBefore, currentDay) + } + + isLogicAfter(currentDay, before, after) { + let logicAfter = after + if (before && after) { + logicAfter = this.dateCompare(before, after) ? after : before + } + return this.dateEqual(logicAfter, currentDay) + } + + /** + * 获取日期范围内所有日期 + * @param {Object} begin + * @param {Object} end + */ + geDateAll(begin, end) { + var arr = [] + var ab = begin.split('-') + var ae = end.split('-') + var db = new Date() + db.setFullYear(ab[0], ab[1] - 1, ab[2]) + var de = new Date() + de.setFullYear(ae[0], ae[1] - 1, ae[2]) + var unixDb = db.getTime() - 24 * 60 * 60 * 1000 + var unixDe = de.getTime() - 24 * 60 * 60 * 1000 + for (var k = unixDb; k <= unixDe;) { + k = k + 24 * 60 * 60 * 1000 + arr.push(this.getDate(new Date(parseInt(k))).fullDate) + } + return arr + } + + /** + * 获取多选状态 + */ + setMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + if (!this.range) return + if (before && after) { + if (!this.lastHover) { + this.lastHover = true + return + } + this.multipleStatus.before = fullDate + this.multipleStatus.after = '' + this.multipleStatus.data = [] + this.multipleStatus.fulldate = '' + this.lastHover = false + } else { + if (!before) { + this.multipleStatus.before = fullDate + this.lastHover = false + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus + .after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus + .before); + } + this.lastHover = true + } + } + this._getWeek(fullDate) + } + + /** + * 鼠标 hover 更新多选状态 + */ + setHoverMultiple(fullDate) { + let { + before, + after + } = this.multipleStatus + + if (!this.range) return + if (this.lastHover) return + + if (!before) { + this.multipleStatus.before = fullDate + } else { + this.multipleStatus.after = fullDate + if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); + } else { + this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); + } + } + this._getWeek(fullDate) + } + + /** + * 更新默认值多选状态 + */ + setDefaultMultiple(before, after) { + this.multipleStatus.before = before + this.multipleStatus.after = after + if (before && after) { + if (this.dateCompare(before, after)) { + this.multipleStatus.data = this.geDateAll(before, after); + this._getWeek(after) + } else { + this.multipleStatus.data = this.geDateAll(after, before); + this._getWeek(before) + } + } + } + + /** + * 获取每周数据 + * @param {Object} dateData + */ + _getWeek(dateData) { + const { + fullDate, + year, + month, + date, + day + } = this.getDate(dateData) + let firstDay = new Date(year, month - 1, 1).getDay() + let currentDay = new Date(year, month, 0).getDate() + let dates = { + lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天 + currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数 + nextMonthDays: [], // 下个月开始几天 + weeks: [] + } + let canlender = [] + const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length) + dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)) + canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays) + let weeks = {} + // 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天 + for (let i = 0; i < canlender.length; i++) { + if (i % 7 === 0) { + weeks[parseInt(i / 7)] = new Array(7) + } + weeks[parseInt(i / 7)][i % 7] = canlender[i] + } + this.canlender = canlender + this.weeks = weeks + } + + //静态方法 + // static init(date) { + // if (!this.instance) { + // this.instance = new Calendar(date); + // } + // return this.instance; + // } +} + + +export default Calendar diff --git a/uni_modules/uni-datetime-picker/package.json b/uni_modules/uni-datetime-picker/package.json new file mode 100644 index 0000000..0e44103 --- /dev/null +++ b/uni_modules/uni-datetime-picker/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-datetime-picker", + "displayName": "uni-datetime-picker 日期选择器", + "version": "2.2.4", + "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择", + "keywords": [ + "uni-datetime-picker", + "uni-ui", + "uniui", + "日期时间选择器", + "日期时间" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-datetime-picker/readme.md b/uni_modules/uni-datetime-picker/readme.md new file mode 100644 index 0000000..162fbef --- /dev/null +++ b/uni_modules/uni-datetime-picker/readme.md @@ -0,0 +1,21 @@ + + +> `重要通知:组件升级更新 2.0.0 后,支持日期+时间范围选择,组件 ui 将使用日历选择日期,ui 变化较大,同时支持 PC 和 移动端。此版本不向后兼容,不再支持单独的时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)。若仍需使用旧版本,可在插件市场下载*非uni_modules版本*,旧版本将不再维护` + +## DatetimePicker 时间选择器 + +> **组件名:uni-datetime-picker** +> 代码块: `uDatetimePicker` + + +该组件的优势是,支持**时间戳**输入和输出(起始时间、终止时间也支持时间戳),可**同时选择**日期和时间。 + +若只是需要单独选择日期和时间,不需要时间戳输入和输出,可使用原生的 picker 组件。 + +**_点击 picker 默认值规则:_** + +- 若设置初始值 value, 会显示在 picker 显示框中 +- 若无初始值 value,则初始值 value 为当前本地时间 Date.now(), 但不会显示在 picker 显示框中 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-drawer/changelog.md b/uni_modules/uni-drawer/changelog.md new file mode 100644 index 0000000..6d2488c --- /dev/null +++ b/uni_modules/uni-drawer/changelog.md @@ -0,0 +1,13 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中个别scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-drawer](https://uniapp.dcloud.io/component/uniui/uni-drawer) +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-04) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-drawer/components/uni-drawer/keypress.js b/uni_modules/uni-drawer/components/uni-drawer/keypress.js new file mode 100644 index 0000000..62dda46 --- /dev/null +++ b/uni_modules/uni-drawer/components/uni-drawer/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue b/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue new file mode 100644 index 0000000..82331a8 --- /dev/null +++ b/uni_modules/uni-drawer/components/uni-drawer/uni-drawer.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/uni_modules/uni-drawer/package.json b/uni_modules/uni-drawer/package.json new file mode 100644 index 0000000..dd056e4 --- /dev/null +++ b/uni_modules/uni-drawer/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-drawer", + "displayName": "uni-drawer 抽屉", + "version": "1.2.1", + "description": "抽屉式导航,用于展示侧滑菜单,侧滑导航。", + "keywords": [ + "uni-ui", + "uniui", + "drawer", + "抽屉", + "侧滑导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-drawer/readme.md b/uni_modules/uni-drawer/readme.md new file mode 100644 index 0000000..dcf6e6b --- /dev/null +++ b/uni_modules/uni-drawer/readme.md @@ -0,0 +1,10 @@ + + +## Drawer 抽屉 +> **组件名:uni-drawer** +> 代码块: `uDrawer` + +抽屉侧滑菜单。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-drawer) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-easyinput/changelog.md b/uni_modules/uni-easyinput/changelog.md new file mode 100644 index 0000000..1cbe623 --- /dev/null +++ b/uni_modules/uni-easyinput/changelog.md @@ -0,0 +1,35 @@ +## 1.0.2(2022-04-12) +- 修复 默认值不生效的bug +## 1.0.1(2022-04-02) +- 修复 value不能为0的bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-easyinput](https://uniapp.dcloud.io/component/uniui/uni-easyinput) +## 0.1.4(2021-08-20) +- 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +## 0.1.3(2021-08-11) +- 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +## 0.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 0.1.1 +- 优化 errorMessage 属性支持 Boolean 类型 +## 0.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.16(2021-06-29) +- 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug +## 0.0.15(2021-06-21) +- 修复 passwordIcon 属性拼写错误的 bug +## 0.0.14(2021-06-18) +- 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 +- 修复 confirmType 属性不生效的问题 +## 0.0.13(2021-06-04) +- 修复 disabled 状态可清出内容的 bug +## 0.0.12(2021-05-12) +- 新增 组件示例地址 +## 0.0.11(2021-05-07) +- 修复 input-border 属性不生效的问题 +## 0.0.10(2021-04-30) +- 修复 ios 遮挡文字、显示一半的问题 +## 0.0.9(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 兼容 nvue 页面 diff --git a/uni_modules/uni-easyinput/components/uni-easyinput/common.js b/uni_modules/uni-easyinput/components/uni-easyinput/common.js new file mode 100644 index 0000000..df9abe1 --- /dev/null +++ b/uni_modules/uni-easyinput/components/uni-easyinput/common.js @@ -0,0 +1,56 @@ +/** + * @desc 函数防抖 + * @param func 目标函数 + * @param wait 延迟执行毫秒数 + * @param immediate true - 立即执行, false - 延迟执行 + */ +export const debounce = function(func, wait = 1000, immediate = true) { + let timer; + console.log(1); + return function() { + console.log(123); + let context = this, + args = arguments; + if (timer) clearTimeout(timer); + if (immediate) { + let callNow = !timer; + timer = setTimeout(() => { + timer = null; + }, wait); + if (callNow) func.apply(context, args); + } else { + timer = setTimeout(() => { + func.apply(context, args); + }, wait) + } + } +} +/** + * @desc 函数节流 + * @param func 函数 + * @param wait 延迟执行毫秒数 + * @param type 1 使用表时间戳,在时间段开始的时候触发 2 使用表定时器,在时间段结束的时候触发 + */ +export const throttle = (func, wait = 1000, type = 1) => { + let previous = 0; + let timeout; + return function() { + let context = this; + let args = arguments; + if (type === 1) { + let now = Date.now(); + + if (now - previous > wait) { + func.apply(context, args); + previous = now; + } + } else if (type === 2) { + if (!timeout) { + timeout = setTimeout(() => { + timeout = null; + func.apply(context, args) + }, wait) + } + } + } +} diff --git a/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue b/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue new file mode 100644 index 0000000..33f73bd --- /dev/null +++ b/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue @@ -0,0 +1,461 @@ + + + + + diff --git a/uni_modules/uni-easyinput/package.json b/uni_modules/uni-easyinput/package.json new file mode 100644 index 0000000..f1195b1 --- /dev/null +++ b/uni_modules/uni-easyinput/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-easyinput", + "displayName": "uni-easyinput 增强输入框", + "version": "1.0.2", + "description": "Easyinput 组件是对原生input组件的增强", + "keywords": [ + "uni-ui", + "uniui", + "input", + "uni-easyinput", + "输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-easyinput/readme.md b/uni_modules/uni-easyinput/readme.md new file mode 100644 index 0000000..f1faf8f --- /dev/null +++ b/uni_modules/uni-easyinput/readme.md @@ -0,0 +1,11 @@ + + +### Easyinput 增强输入框 +> **组件名:uni-easyinput** +> 代码块: `uEasyinput` + + +easyinput 组件是对原生input组件的增强 ,是专门为配合表单组件[uni-forms](https://ext.dcloud.net.cn/plugin?id=2773)而设计的,easyinput 内置了边框,图标等,同时包含 input 所有功能 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-easyinput) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-fab/changelog.md b/uni_modules/uni-fab/changelog.md new file mode 100644 index 0000000..24e26b1 --- /dev/null +++ b/uni_modules/uni-fab/changelog.md @@ -0,0 +1,17 @@ +## 1.2.2(2021-12-29) +- 更新 组件依赖 +## 1.2.1(2021-11-19) +- 修复 阴影颜色不正确的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fab](https://uniapp.dcloud.io/component/uniui/uni-fab) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 按钮背景色调整 +- 优化 兼容pc端 diff --git a/uni_modules/uni-fab/components/uni-fab/uni-fab.vue b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue new file mode 100644 index 0000000..bef97f1 --- /dev/null +++ b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue @@ -0,0 +1,475 @@ + + + + + diff --git a/uni_modules/uni-fab/package.json b/uni_modules/uni-fab/package.json new file mode 100644 index 0000000..0f27daa --- /dev/null +++ b/uni_modules/uni-fab/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-fab", + "displayName": "uni-fab 悬浮按钮", + "version": "1.2.2", + "description": "悬浮按钮 fab button ,点击可展开一个图标按钮菜单。", + "keywords": [ + "uni-ui", + "uniui", + "按钮", + "悬浮按钮", + "fab" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-fab/readme.md b/uni_modules/uni-fab/readme.md new file mode 100644 index 0000000..9a444e8 --- /dev/null +++ b/uni_modules/uni-fab/readme.md @@ -0,0 +1,9 @@ +## Fab 悬浮按钮 +> **组件名:uni-fab** +> 代码块: `uFab` + + +点击可展开一个图形按钮菜单 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fab) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-fav/changelog.md b/uni_modules/uni-fav/changelog.md new file mode 100644 index 0000000..4b3f8c2 --- /dev/null +++ b/uni_modules/uni-fav/changelog.md @@ -0,0 +1,17 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-fav](https://uniapp.dcloud.io/component/uniui/uni-fav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 组件示例地址 +## 1.0.5(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.4(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.3(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/en.json b/uni_modules/uni-fav/components/uni-fav/i18n/en.json new file mode 100644 index 0000000..9a0759e --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "collect", + "uni-fav.collected": "collected" +} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/index.js b/uni_modules/uni-fav/components/uni-fav/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json new file mode 100644 index 0000000..67c89bf --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json new file mode 100644 index 0000000..67c89bf --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-fav.collect": "收藏", + "uni-fav.collected": "已收藏" +} diff --git a/uni_modules/uni-fav/components/uni-fav/uni-fav.vue b/uni_modules/uni-fav/components/uni-fav/uni-fav.vue new file mode 100644 index 0000000..4e87bc8 --- /dev/null +++ b/uni_modules/uni-fav/components/uni-fav/uni-fav.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/uni_modules/uni-fav/package.json b/uni_modules/uni-fav/package.json new file mode 100644 index 0000000..39e4f33 --- /dev/null +++ b/uni_modules/uni-fav/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-fav", + "displayName": "uni-fav 收藏按钮", + "version": "1.2.0", + "description": " Fav 收藏组件,可自定义颜色、大小。", + "keywords": [ + "fav", + "uni-ui", + "uniui", + "收藏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-fav/readme.md b/uni_modules/uni-fav/readme.md new file mode 100644 index 0000000..4de125d --- /dev/null +++ b/uni_modules/uni-fav/readme.md @@ -0,0 +1,10 @@ + + +## Fav 收藏按钮 +> **组件名:uni-fav** +> 代码块: `uFav` + +用于收藏功能,可点击切换选中、不选中的状态。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-fav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-file-picker/changelog.md b/uni_modules/uni-file-picker/changelog.md new file mode 100644 index 0000000..840a9e6 --- /dev/null +++ b/uni_modules/uni-file-picker/changelog.md @@ -0,0 +1,61 @@ +## 1.0.1(2021-11-23) +- 修复 参数为对象的情况下,url在某些情况显示错误的bug +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-file-picker](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +## 0.2.16(2021-11-08) +- 修复 传入空对象 ,显示错误的Bug +## 0.2.15(2021-08-30) +- 修复 return-type="object" 时且存在v-model时,无法删除文件的Bug +## 0.2.14(2021-08-23) +- 新增 参数中返回 fileID 字段 +## 0.2.13(2021-08-23) +- 修复 腾讯云传入fileID 不能回显的bug +- 修复 选择图片后,不能放大的问题 +## 0.2.12(2021-08-17) +- 修复 由于 0.2.11 版本引起的不能回显图片的Bug +## 0.2.11(2021-08-16) +- 新增 clearFiles(index) 方法,可以手动删除指定文件 +- 修复 v-model 值设为 null 报错的Bug +## 0.2.10(2021-08-13) +- 修复 return-type="object" 时,无法删除文件的Bug +## 0.2.9(2021-08-03) +- 修复 auto-upload 属性失效的Bug +## 0.2.8(2021-07-31) +- 修复 fileExtname属性不指定值报错的Bug +## 0.2.7(2021-07-31) +- 修复 在某种场景下图片不回显的Bug +## 0.2.6(2021-07-30) +- 修复 return-type为object下,返回值不正确的Bug +## 0.2.5(2021-07-30) +- 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +## 0.2.3(2021-07-28) +- 优化 调整示例代码 +## 0.2.2(2021-07-27) +- 修复 vue3 下赋值错误的Bug +- 优化 h5平台下上传文件导致页面卡死的问题 +## 0.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.1.1(2021-07-02) +- 修复 sourceType 缺少默认值导致 ios 无法选择文件 +## 0.1.0(2021-06-30) +- 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +## 0.0.11(2021-06-30) +- 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +## 0.0.10(2021-06-29) +- 优化 文件上传后进度条消失时机 +## 0.0.9(2021-06-29) +- 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +## 0.0.8(2021-06-15) +- 修复 删除文件时无法触发 v-model 的Bug +## 0.0.7(2021-05-12) +- 新增 组件示例地址 +## 0.0.6(2021-04-09) +- 修复 选择的文件非 file-extname 字段指定的扩展名报错的Bug +## 0.0.5(2021-04-09) +- 优化 更新组件示例 +## 0.0.4(2021-04-09) +- 优化 file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 微信小程序不指定 fileExtname 属性选择失败的Bug diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js b/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js new file mode 100644 index 0000000..24a07f5 --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/choose-and-upload-file.js @@ -0,0 +1,224 @@ +'use strict'; + +const ERR_MSG_OK = 'chooseAndUploadFile:ok'; +const ERR_MSG_FAIL = 'chooseAndUploadFile:fail'; + +function chooseImage(opts) { + const { + count, + sizeType = ['original', 'compressed'], + sourceType = ['album', 'camera'], + extension + } = opts + return new Promise((resolve, reject) => { + uni.chooseImage({ + count, + sizeType, + sourceType, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res, 'image')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseImage:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseVideo(opts) { + const { + camera, + compressed, + maxDuration, + sourceType = ['album', 'camera'], + extension + } = opts; + return new Promise((resolve, reject) => { + uni.chooseVideo({ + camera, + compressed, + maxDuration, + sourceType, + extension, + success(res) { + const { + tempFilePath, + duration, + size, + height, + width + } = res; + resolve(normalizeChooseAndUploadFileRes({ + errMsg: 'chooseVideo:ok', + tempFilePaths: [tempFilePath], + tempFiles: [ + { + name: (res.tempFile && res.tempFile.name) || '', + path: tempFilePath, + size, + type: (res.tempFile && res.tempFile.type) || '', + width, + height, + duration, + fileType: 'video', + cloudPath: '', + }, ], + }, 'video')); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseVideo:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function chooseAll(opts) { + const { + count, + extension + } = opts; + return new Promise((resolve, reject) => { + let chooseFile = uni.chooseFile; + if (typeof wx !== 'undefined' && + typeof wx.chooseMessageFile === 'function') { + chooseFile = wx.chooseMessageFile; + } + if (typeof chooseFile !== 'function') { + return reject({ + errMsg: ERR_MSG_FAIL + ' 请指定 type 类型,该平台仅支持选择 image 或 video。', + }); + } + chooseFile({ + type: 'all', + count, + extension, + success(res) { + resolve(normalizeChooseAndUploadFileRes(res)); + }, + fail(res) { + reject({ + errMsg: res.errMsg.replace('chooseFile:fail', ERR_MSG_FAIL), + }); + }, + }); + }); +} + +function normalizeChooseAndUploadFileRes(res, fileType) { + res.tempFiles.forEach((item, index) => { + if (!item.name) { + item.name = item.path.substring(item.path.lastIndexOf('/') + 1); + } + if (fileType) { + item.fileType = fileType; + } + item.cloudPath = + Date.now() + '_' + index + item.name.substring(item.name.lastIndexOf('.')); + }); + if (!res.tempFilePaths) { + res.tempFilePaths = res.tempFiles.map((file) => file.path); + } + return res; +} + +function uploadCloudFiles(files, max = 5, onUploadProgress) { + files = JSON.parse(JSON.stringify(files)) + const len = files.length + let count = 0 + let self = this + return new Promise(resolve => { + while (count < max) { + next() + } + + function next() { + let cur = count++ + if (cur >= len) { + !files.find(item => !item.url && !item.errMsg) && resolve(files) + return + } + const fileItem = files[cur] + const index = self.files.findIndex(v => v.uuid === fileItem.uuid) + fileItem.url = '' + delete fileItem.errMsg + + uniCloud + .uploadFile({ + filePath: fileItem.path, + cloudPath: fileItem.cloudPath, + fileType: fileItem.fileType, + onUploadProgress: res => { + res.index = index + onUploadProgress && onUploadProgress(res) + } + }) + .then(res => { + fileItem.url = res.fileID + fileItem.index = index + if (cur < len) { + next() + } + }) + .catch(res => { + fileItem.errMsg = res.errMsg || res.message + fileItem.index = index + if (cur < len) { + next() + } + }) + } + }) +} + + + + + +function uploadFiles(choosePromise, { + onChooseFile, + onUploadProgress +}) { + return choosePromise + .then((res) => { + if (onChooseFile) { + const customChooseRes = onChooseFile(res); + if (typeof customChooseRes !== 'undefined') { + return Promise.resolve(customChooseRes).then((chooseRes) => typeof chooseRes === 'undefined' ? + res : chooseRes); + } + } + return res; + }) + .then((res) => { + if (res === false) { + return { + errMsg: ERR_MSG_OK, + tempFilePaths: [], + tempFiles: [], + }; + } + return res + }) +} + +function chooseAndUploadFile(opts = { + type: 'all' +}) { + if (opts.type === 'image') { + return uploadFiles(chooseImage(opts), opts); + } + else if (opts.type === 'video') { + return uploadFiles(chooseVideo(opts), opts); + } + return uploadFiles(chooseAll(opts), opts); +} + +export { + chooseAndUploadFile, + uploadCloudFiles +}; diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue b/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue new file mode 100644 index 0000000..a9d05a8 --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/uni-file-picker.vue @@ -0,0 +1,651 @@ + + + + + diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue b/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue new file mode 100644 index 0000000..625d92e --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/upload-file.vue @@ -0,0 +1,325 @@ + + + + + diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue b/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue new file mode 100644 index 0000000..2a29bc2 --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/upload-image.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/uni_modules/uni-file-picker/components/uni-file-picker/utils.js b/uni_modules/uni-file-picker/components/uni-file-picker/utils.js new file mode 100644 index 0000000..60aaa3e --- /dev/null +++ b/uni_modules/uni-file-picker/components/uni-file-picker/utils.js @@ -0,0 +1,109 @@ +/** + * 获取文件名和后缀 + * @param {String} name + */ +export const get_file_ext = (name) => { + const last_len = name.lastIndexOf('.') + const len = name.length + return { + name: name.substring(0, last_len), + ext: name.substring(last_len + 1, len) + } +} + +/** + * 获取扩展名 + * @param {Array} fileExtname + */ +export const get_extname = (fileExtname) => { + if (!Array.isArray(fileExtname)) { + let extname = fileExtname.replace(/(\[|\])/g, '') + return extname.split(',') + } else { + return fileExtname + } + return [] +} + +/** + * 获取文件和检测是否可选 + */ +export const get_files_and_is_max = (res, _extname) => { + let filePaths = [] + let files = [] + if(!_extname || _extname.length === 0){ + return { + filePaths, + files + } + } + res.tempFiles.forEach(v => { + let fileFullName = get_file_ext(v.name) + const extname = fileFullName.ext.toLowerCase() + if (_extname.indexOf(extname) !== -1) { + files.push(v) + filePaths.push(v.path) + } + }) + if (files.length !== res.tempFiles.length) { + uni.showToast({ + title: `当前选择了${res.tempFiles.length}个文件 ,${res.tempFiles.length - files.length} 个文件格式不正确`, + icon: 'none', + duration: 5000 + }) + } + + return { + filePaths, + files + } +} + + +/** + * 获取图片信息 + * @param {Object} filepath + */ +export const get_file_info = (filepath) => { + return new Promise((resolve, reject) => { + uni.getImageInfo({ + src: filepath, + success(res) { + resolve(res) + }, + fail(err) { + reject(err) + } + }) + }) +} +/** + * 获取封装数据 + */ +export const get_file_data = async (files, type = 'image') => { + // 最终需要上传数据库的数据 + let fileFullName = get_file_ext(files.name) + const extname = fileFullName.ext.toLowerCase() + let filedata = { + name: files.name, + uuid: files.uuid, + extname: extname || '', + cloudPath: files.cloudPath, + fileType: files.fileType, + url: files.path || files.path, + size: files.size, //单位是字节 + image: {}, + path: files.path, + video: {} + } + if (type === 'image') { + const imageinfo = await get_file_info(files.path) + delete filedata.video + filedata.image.width = imageinfo.width + filedata.image.height = imageinfo.height + filedata.image.location = imageinfo.path + } else { + delete filedata.image + } + return filedata +} diff --git a/uni_modules/uni-file-picker/package.json b/uni_modules/uni-file-picker/package.json new file mode 100644 index 0000000..d659bb5 --- /dev/null +++ b/uni_modules/uni-file-picker/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-file-picker", + "displayName": "uni-file-picker 文件选择上传", + "version": "1.0.1", + "description": "文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间", + "keywords": [ + "uni-ui", + "uniui", + "图片上传", + "文件上传" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-file-picker/readme.md b/uni_modules/uni-file-picker/readme.md new file mode 100644 index 0000000..c8399a5 --- /dev/null +++ b/uni_modules/uni-file-picker/readme.md @@ -0,0 +1,11 @@ + +## FilePicker 文件选择上传 + +> **组件名:uni-file-picker** +> 代码块: `uFilePicker` + + +文件选择上传组件,可以选择图片、视频等任意文件并上传到当前绑定的服务空间 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-file-picker) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-forms/changelog.md b/uni_modules/uni-forms/changelog.md new file mode 100644 index 0000000..26e120b --- /dev/null +++ b/uni_modules/uni-forms/changelog.md @@ -0,0 +1,60 @@ +## 1.3.2(2021-12-09) +- +## 1.3.1(2021-11-19) +- 修复 label 插槽不生效的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-forms](https://uniapp.dcloud.io/component/uniui/uni-forms) +## 1.2.7(2021-08-13) +- 修复 没有添加校验规则的字段依然报错的Bug +## 1.2.6(2021-08-11) +- 修复 重置表单错误信息无法清除的问题 +## 1.2.5(2021-08-11) +- 优化 组件文档 +## 1.2.4(2021-08-11) +- 修复 表单验证只生效一次的问题 +## 1.2.3(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.2(2021-07-26) +- 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- 修复 1.2.1 引起的示例在小程序平台报错的Bug +## 1.2.1(2021-07-22) +- 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- 修复 不指定name属性时,运行报错的Bug +- 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- 优化 组件示例,新增动态校验示例代码 +- 优化 组件文档,使用方式更清晰 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-06-25) +- 修复 pattern 属性在微信小程序平台无效的问题 +## 1.1.1(2021-06-22) +- 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +## 1.1.0(2021-06-22) +- 修复 只写setRules方法而导致校验不生效的Bug +- 修复 由上个办法引发的错误提示文字错位的Bug +## 1.0.48(2021-06-21) +- 修复 不设置 label 属性 ,无法设置label插槽的问题 +## 1.0.47(2021-06-21) +- 修复 不设置label属性,label-width属性不生效的bug +- 修复 setRules 方法与rules属性冲突的问题 +## 1.0.46(2021-06-04) +- 修复 动态删减数据导致报错的问题 +## 1.0.45(2021-06-04) +- 新增 modelValue 属性 ,value 即将废弃 +## 1.0.44(2021-06-02) +- 新增 uni-forms-item 可以设置单独的 rules +- 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- 优化 submit 事件重命名为 validate +## 1.0.43(2021-05-12) +- 新增 组件示例地址 +## 1.0.42(2021-04-30) +- 修复 自定义检验器失效的问题 +## 1.0.41(2021-03-05) +- 更新 校验器 +- 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug +## 1.0.40(2021-03-04) +- 修复 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +## 1.0.39(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 校验器传入 int 等类型 ,返回String类型的Bug diff --git a/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue b/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue new file mode 100644 index 0000000..a5ae8ab --- /dev/null +++ b/uni_modules/uni-forms/components/uni-forms-item/uni-forms-item.vue @@ -0,0 +1,509 @@ + + + + + diff --git a/uni_modules/uni-forms/components/uni-forms/uni-forms.vue b/uni_modules/uni-forms/components/uni-forms/uni-forms.vue new file mode 100644 index 0000000..d8b4e66 --- /dev/null +++ b/uni_modules/uni-forms/components/uni-forms/uni-forms.vue @@ -0,0 +1,472 @@ + + + + + diff --git a/uni_modules/uni-forms/components/uni-forms/validate.js b/uni_modules/uni-forms/components/uni-forms/validate.js new file mode 100644 index 0000000..1834c6c --- /dev/null +++ b/uni_modules/uni-forms/components/uni-forms/validate.js @@ -0,0 +1,486 @@ +var pattern = { + email: /^\S+?@\S+?\.\S+?$/, + idcard: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, + url: new RegExp( + "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", + 'i') +}; + +const FORMAT_MAPPING = { + "int": 'integer', + "bool": 'boolean', + "double": 'number', + "long": 'number', + "password": 'string' + // "fileurls": 'array' +} + +function formatMessage(args, resources = '') { + var defaultMessage = ['label'] + defaultMessage.forEach((item) => { + if (args[item] === undefined) { + args[item] = '' + } + }) + + let str = resources + for (let key in args) { + let reg = new RegExp('{' + key + '}') + str = str.replace(reg, args[key]) + } + return str +} + +function isEmptyValue(value, type) { + if (value === undefined || value === null) { + return true; + } + + if (typeof value === 'string' && !value) { + return true; + } + + if (Array.isArray(value) && !value.length) { + return true; + } + + if (type === 'object' && !Object.keys(value).length) { + return true; + } + + return false; +} + +const types = { + integer(value) { + return types.number(value) && parseInt(value, 10) === value; + }, + string(value) { + return typeof value === 'string'; + }, + number(value) { + if (isNaN(value)) { + return false; + } + return typeof value === 'number'; + }, + "boolean": function(value) { + return typeof value === 'boolean'; + }, + "float": function(value) { + return types.number(value) && !types.integer(value); + }, + array(value) { + return Array.isArray(value); + }, + object(value) { + return typeof value === 'object' && !types.array(value); + }, + date(value) { + return value instanceof Date; + }, + timestamp(value) { + if (!this.integer(value) || Math.abs(value).toString().length > 16) { + return false + } + return true; + }, + file(value) { + return typeof value.url === 'string'; + }, + email(value) { + return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255; + }, + url(value) { + return typeof value === 'string' && !!value.match(pattern.url); + }, + pattern(reg, value) { + try { + return new RegExp(reg).test(value); + } catch (e) { + return false; + } + }, + method(value) { + return typeof value === 'function'; + }, + idcard(value) { + return typeof value === 'string' && !!value.match(pattern.idcard); + }, + 'url-https'(value) { + return this.url(value) && value.startsWith('https://'); + }, + 'url-scheme'(value) { + return value.startsWith('://'); + }, + 'url-web'(value) { + return false; + } +} + +class RuleValidator { + + constructor(message) { + this._message = message + } + + async validateRule(fieldKey, fieldValue, value, data, allData) { + var result = null + + let rules = fieldValue.rules + + let hasRequired = rules.findIndex((item) => { + return item.required + }) + if (hasRequired < 0) { + if (value === null || value === undefined) { + return result + } + if (typeof value === 'string' && !value.length) { + return result + } + } + + var message = this._message + + if (rules === undefined) { + return message['default'] + } + + for (var i = 0; i < rules.length; i++) { + let rule = rules[i] + let vt = this._getValidateType(rule) + + Object.assign(rule, { + label: fieldValue.label || `["${fieldKey}"]` + }) + + if (RuleValidatorHelper[vt]) { + result = RuleValidatorHelper[vt](rule, value, message) + if (result != null) { + break + } + } + + if (rule.validateExpr) { + let now = Date.now() + let resultExpr = rule.validateExpr(value, allData, now) + if (resultExpr === false) { + result = this._getMessage(rule, rule.errorMessage || this._message['default']) + break + } + } + + if (rule.validateFunction) { + result = await this.validateFunction(rule, value, data, allData, vt) + if (result !== null) { + break + } + } + } + + if (result !== null) { + result = message.TAG + result + } + + return result + } + + async validateFunction(rule, value, data, allData, vt) { + let result = null + try { + let callbackMessage = null + const res = await rule.validateFunction(rule, value, allData || data, (message) => { + callbackMessage = message + }) + if (callbackMessage || (typeof res === 'string' && res) || res === false) { + result = this._getMessage(rule, callbackMessage || res, vt) + } + } catch (e) { + result = this._getMessage(rule, e.message, vt) + } + return result + } + + _getMessage(rule, message, vt) { + return formatMessage(rule, message || rule.errorMessage || this._message[vt] || message['default']) + } + + _getValidateType(rule) { + var result = '' + if (rule.required) { + result = 'required' + } else if (rule.format) { + result = 'format' + } else if (rule.arrayType) { + result = 'arrayTypeFormat' + } else if (rule.range) { + result = 'range' + } else if (rule.maximum !== undefined || rule.minimum !== undefined) { + result = 'rangeNumber' + } else if (rule.maxLength !== undefined || rule.minLength !== undefined) { + result = 'rangeLength' + } else if (rule.pattern) { + result = 'pattern' + } else if (rule.validateFunction) { + result = 'validateFunction' + } + return result + } +} + +const RuleValidatorHelper = { + required(rule, value, message) { + if (rule.required && isEmptyValue(value, rule.format || typeof value)) { + return formatMessage(rule, rule.errorMessage || message.required); + } + + return null + }, + + range(rule, value, message) { + const { + range, + errorMessage + } = rule; + + let list = new Array(range.length); + for (let i = 0; i < range.length; i++) { + const item = range[i]; + if (types.object(item) && item.value !== undefined) { + list[i] = item.value; + } else { + list[i] = item; + } + } + + let result = false + if (Array.isArray(value)) { + result = (new Set(value.concat(list)).size === list.length); + } else { + if (list.indexOf(value) > -1) { + result = true; + } + } + + if (!result) { + return formatMessage(rule, errorMessage || message['enum']); + } + + return null + }, + + rangeNumber(rule, value, message) { + if (!types.number(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let { + minimum, + maximum, + exclusiveMinimum, + exclusiveMaximum + } = rule; + let min = exclusiveMinimum ? value <= minimum : value < minimum; + let max = exclusiveMaximum ? value >= maximum : value > maximum; + + if (minimum !== undefined && min) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMinimum ? + 'exclusiveMinimum' : 'minimum' + ]) + } else if (maximum !== undefined && max) { + return formatMessage(rule, rule.errorMessage || message['number'][exclusiveMaximum ? + 'exclusiveMaximum' : 'maximum' + ]) + } else if (minimum !== undefined && maximum !== undefined && (min || max)) { + return formatMessage(rule, rule.errorMessage || message['number'].range) + } + + return null + }, + + rangeLength(rule, value, message) { + if (!types.string(value) && !types.array(value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + let min = rule.minLength; + let max = rule.maxLength; + let val = value.length; + + if (min !== undefined && val < min) { + return formatMessage(rule, rule.errorMessage || message['length'].minLength) + } else if (max !== undefined && val > max) { + return formatMessage(rule, rule.errorMessage || message['length'].maxLength) + } else if (min !== undefined && max !== undefined && (val < min || val > max)) { + return formatMessage(rule, rule.errorMessage || message['length'].range) + } + + return null + }, + + pattern(rule, value, message) { + if (!types['pattern'](rule.pattern, value)) { + return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); + } + + return null + }, + + format(rule, value, message) { + var customTypes = Object.keys(types); + var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : (rule.format || rule.arrayType); + + if (customTypes.indexOf(format) > -1) { + if (!types[format](value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + } + + return null + }, + + arrayTypeFormat(rule, value, message) { + if (!Array.isArray(value)) { + return formatMessage(rule, rule.errorMessage || message.typeError); + } + + for (let i = 0; i < value.length; i++) { + const element = value[i]; + let formatResult = this.format(rule, element, message) + if (formatResult !== null) { + return formatResult + } + } + + return null + } +} + +class SchemaValidator extends RuleValidator { + + constructor(schema, options) { + super(SchemaValidator.message); + + this._schema = schema + this._options = options || null + } + + updateSchema(schema) { + this._schema = schema + } + + async validate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, false, allData) + } + return result.length ? result[0] : null + } + + async validateAll(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidate(data, true, allData) + } + return result + } + + async validateUpdate(data, allData) { + let result = this._checkFieldInSchema(data) + if (!result) { + result = await this.invokeValidateUpdate(data, false, allData) + } + return result.length ? result[0] : null + } + + async invokeValidate(data, all, allData) { + let result = [] + let schema = this._schema + for (let key in schema) { + let value = schema[key] + let errorMessage = await this.validateRule(key, value, data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + async invokeValidateUpdate(data, all, allData) { + let result = [] + for (let key in data) { + let errorMessage = await this.validateRule(key, this._schema[key], data[key], data, allData) + if (errorMessage != null) { + result.push({ + key, + errorMessage + }) + if (!all) break + } + } + return result + } + + _checkFieldInSchema(data) { + var keys = Object.keys(data) + var keys2 = Object.keys(this._schema) + if (new Set(keys.concat(keys2)).size === keys2.length) { + return '' + } + + var noExistFields = keys.filter((key) => { + return keys2.indexOf(key) < 0; + }) + var errorMessage = formatMessage({ + field: JSON.stringify(noExistFields) + }, SchemaValidator.message.TAG + SchemaValidator.message['defaultInvalid']) + return [{ + key: 'invalid', + errorMessage + }] + } +} + +function Message() { + return { + TAG: "", + default: '验证错误', + defaultInvalid: '提交的字段{field}在数据库中并不存在', + validateFunction: '验证无效', + required: '{label}必填', + 'enum': '{label}超出范围', + timestamp: '{label}格式无效', + whitespace: '{label}不能为空', + typeError: '{label}类型无效', + date: { + format: '{label}日期{value}格式无效', + parse: '{label}日期无法解析,{value}无效', + invalid: '{label}日期{value}无效' + }, + length: { + minLength: '{label}长度不能少于{minLength}', + maxLength: '{label}长度不能超过{maxLength}', + range: '{label}必须介于{minLength}和{maxLength}之间' + }, + number: { + minimum: '{label}不能小于{minimum}', + maximum: '{label}不能大于{maximum}', + exclusiveMinimum: '{label}不能小于等于{minimum}', + exclusiveMaximum: '{label}不能大于等于{maximum}', + range: '{label}必须介于{minimum}and{maximum}之间' + }, + pattern: { + mismatch: '{label}格式不匹配' + } + }; +} + + +SchemaValidator.message = new Message(); + +export default SchemaValidator diff --git a/uni_modules/uni-forms/package.json b/uni_modules/uni-forms/package.json new file mode 100644 index 0000000..dfa7af4 --- /dev/null +++ b/uni_modules/uni-forms/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-forms", + "displayName": "uni-forms 表单", + "version": "1.3.2", + "description": "由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据", + "keywords": [ + "uni-ui", + "表单", + "校验", + "表单校验", + "表单验证" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-forms/readme.md b/uni_modules/uni-forms/readme.md new file mode 100644 index 0000000..63d5a04 --- /dev/null +++ b/uni_modules/uni-forms/readme.md @@ -0,0 +1,23 @@ + + +## Forms 表单 + +> **组件名:uni-forms** +> 代码块: `uForms`、`uni-forms-item` +> 关联组件:`uni-forms-item`、`uni-easyinput`、`uni-data-checkbox`、`uni-group`。 + + +uni-app的内置组件已经有了 `
`组件,用于提交表单内容。 + +然而几乎每个表单都需要做表单验证,为了方便做表单验证,减少重复开发,`uni ui` 又基于 ``组件封装了 ``组件,内置了表单验证功能。 + +`` 提供了 `rules`属性来描述校验规则、``子组件来包裹具体的表单项,以及给原生或三方组件提供了 `binddata()` 来设置表单值。 + +每个要校验的表单项,不管input还是checkbox,都必须放在``组件中,且一个``组件只能放置一个表单项。 + +``组件内部预留了显示error message的区域,默认是在表单项的底部。 + +另外,``组件下面的各个表单项,可以通过``包裹为不同的分组。同一``下的不同表单项目将聚拢在一起,同其他group保持垂直间距。``仅影响视觉效果。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-forms) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-goods-nav/changelog.md b/uni_modules/uni-goods-nav/changelog.md new file mode 100644 index 0000000..d970649 --- /dev/null +++ b/uni_modules/uni-goods-nav/changelog.md @@ -0,0 +1,16 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-goods-nav](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json new file mode 100644 index 0000000..dcdba41 --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/en.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "shop", + "uni-goods-nav.options.cart": "cart", + "uni-goods-nav.buttonGroup.addToCart": "add to cart", + "uni-goods-nav.buttonGroup.buyNow": "buy now" +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json new file mode 100644 index 0000000..48ee344 --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hans.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "店铺", + "uni-goods-nav.options.cart": "购物车", + "uni-goods-nav.buttonGroup.addToCart": "加入购物车", + "uni-goods-nav.buttonGroup.buyNow": "立即购买" +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json new file mode 100644 index 0000000..d0a0255 --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/i18n/zh-Hant.json @@ -0,0 +1,6 @@ +{ + "uni-goods-nav.options.shop": "店鋪", + "uni-goods-nav.options.cart": "購物車", + "uni-goods-nav.buttonGroup.addToCart": "加入購物車", + "uni-goods-nav.buttonGroup.buyNow": "立即購買" +} diff --git a/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue b/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue new file mode 100644 index 0000000..8a246c5 --- /dev/null +++ b/uni_modules/uni-goods-nav/components/uni-goods-nav/uni-goods-nav.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/uni_modules/uni-goods-nav/package.json b/uni_modules/uni-goods-nav/package.json new file mode 100644 index 0000000..99cd567 --- /dev/null +++ b/uni_modules/uni-goods-nav/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-goods-nav", + "displayName": "uni-goods-nav 商品导航", + "version": "1.2.0", + "description": "商品导航组件主要用于电商类应用底部导航,可自定义加入购物车,购买等操作", + "keywords": [ + "uni-ui", + "uniui", + "商品导航" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-goods-nav/readme.md b/uni_modules/uni-goods-nav/readme.md new file mode 100644 index 0000000..07df93f --- /dev/null +++ b/uni_modules/uni-goods-nav/readme.md @@ -0,0 +1,10 @@ + + +## GoodsNav 商品导航 +> **组件名:uni-goods-nav** +> 代码块: `uGoodsNav` + +商品加入购物车,立即购买等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-goods-nav) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-grid/changelog.md b/uni_modules/uni-grid/changelog.md new file mode 100644 index 0000000..d301166 --- /dev/null +++ b/uni_modules/uni-grid/changelog.md @@ -0,0 +1,13 @@ +## 1.4.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-grid](https://uniapp.dcloud.io/component/uniui/uni-grid) +## 1.3.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.3.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.3.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.2.4(2021-05-12) +- 新增 组件示例地址 +## 1.2.3(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue b/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue new file mode 100644 index 0000000..20fd54e --- /dev/null +++ b/uni_modules/uni-grid/components/uni-grid-item/uni-grid-item.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/uni_modules/uni-grid/components/uni-grid/uni-grid.vue b/uni_modules/uni-grid/components/uni-grid/uni-grid.vue new file mode 100644 index 0000000..96a412f --- /dev/null +++ b/uni_modules/uni-grid/components/uni-grid/uni-grid.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/uni_modules/uni-grid/package.json b/uni_modules/uni-grid/package.json new file mode 100644 index 0000000..ccb2c91 --- /dev/null +++ b/uni_modules/uni-grid/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-grid", + "displayName": "uni-grid 宫格", + "version": "1.4.0", + "description": "Grid 宫格组件,提供移动端常见的宫格布局,如九宫格。", + "keywords": [ + "uni-ui", + "uniui", + "九宫格", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-grid/readme.md b/uni_modules/uni-grid/readme.md new file mode 100644 index 0000000..0aa44cc --- /dev/null +++ b/uni_modules/uni-grid/readme.md @@ -0,0 +1,11 @@ + + +## Grid 宫格 +> **组件名:uni-grid** +> 代码块: `uGrid` + + +宫格组件。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-grid) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-group/changelog.md b/uni_modules/uni-group/changelog.md new file mode 100644 index 0000000..5bb3559 --- /dev/null +++ b/uni_modules/uni-group/changelog.md @@ -0,0 +1,14 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-group](https://uniapp.dcloud.io/component/uniui/uni-group) +## 1.1.7(2021-11-08) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 优化 组件文档 +## 1.0.3(2021-05-12) +- 新增 组件示例地址 +## 1.0.2(2021-02-05) +- 调整为uni_modules目录规范 +- 优化 兼容 nvue 页面 diff --git a/uni_modules/uni-group/components/uni-group/uni-group.vue b/uni_modules/uni-group/components/uni-group/uni-group.vue new file mode 100644 index 0000000..3e4c806 --- /dev/null +++ b/uni_modules/uni-group/components/uni-group/uni-group.vue @@ -0,0 +1,130 @@ + + + + diff --git a/uni_modules/uni-group/package.json b/uni_modules/uni-group/package.json new file mode 100644 index 0000000..532dd15 --- /dev/null +++ b/uni_modules/uni-group/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-group", + "displayName": "uni-group 分组", + "version": "1.2.1", + "description": "分组组件可用于将组件用于分组,添加间隔,以产生明显的区块", + "keywords": [ + "uni-ui", + "uniui", + "group", + "分组", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-group/readme.md b/uni_modules/uni-group/readme.md new file mode 100644 index 0000000..bae67f4 --- /dev/null +++ b/uni_modules/uni-group/readme.md @@ -0,0 +1,9 @@ + +## Group 分组 +> **组件名:uni-group** +> 代码块: `uGroup` + +分组组件可用于将组件分组,添加间隔,以产生明显的区块。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-group) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-icons/components/uni-icons/icons.js b/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..86e7444 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.css b/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000..835f33b Binary files /dev/null and b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf differ diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-icons/readme.md b/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-indexed-list/changelog.md b/uni_modules/uni-indexed-list/changelog.md new file mode 100644 index 0000000..08fa71c --- /dev/null +++ b/uni_modules/uni-indexed-list/changelog.md @@ -0,0 +1,17 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-indexed-list](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 diff --git a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue new file mode 100644 index 0000000..2f13bae --- /dev/null +++ b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list-item.vue @@ -0,0 +1,144 @@ + + + + + diff --git a/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue new file mode 100644 index 0000000..35e168c --- /dev/null +++ b/uni_modules/uni-indexed-list/components/uni-indexed-list/uni-indexed-list.vue @@ -0,0 +1,367 @@ + + + diff --git a/uni_modules/uni-indexed-list/package.json b/uni_modules/uni-indexed-list/package.json new file mode 100644 index 0000000..125c0e7 --- /dev/null +++ b/uni_modules/uni-indexed-list/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-indexed-list", + "displayName": "uni-indexed-list 索引列表", + "version": "1.2.1", + "description": "索引列表组件,右侧带索引的列表,方便快速定位到具体内容,通常用于城市/机场选择等场景", + "keywords": [ + "uni-ui", + "索引列表", + "索引", + "列表" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-indexed-list/readme.md b/uni_modules/uni-indexed-list/readme.md new file mode 100644 index 0000000..44ad84b --- /dev/null +++ b/uni_modules/uni-indexed-list/readme.md @@ -0,0 +1,11 @@ + + +## IndexedList 索引列表 +> **组件名:uni-indexed-list** +> 代码块: `uIndexedList` + + +用于展示索引列表。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-indexed-list) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-link/changelog.md b/uni_modules/uni-link/changelog.md new file mode 100644 index 0000000..2cfbf59 --- /dev/null +++ b/uni_modules/uni-link/changelog.md @@ -0,0 +1,17 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-link](https://uniapp.dcloud.io/component/uniui/uni-link) +## 1.1.7(2021-11-08) +## 0.0.7(2021-09-03) +- 修复 在 nvue 下不显示的 bug +## 0.0.6(2021-07-30) +- 新增 支持自定义插槽 +## 0.0.5(2021-06-21) +- 新增 download 属性,H5平台下载文件名 +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-03-09) +- 新增 href 属性支持 tel:|mailto: + +## 0.0.2(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-link/components/uni-link/uni-link.vue b/uni_modules/uni-link/components/uni-link/uni-link.vue new file mode 100644 index 0000000..27c5468 --- /dev/null +++ b/uni_modules/uni-link/components/uni-link/uni-link.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/uni_modules/uni-link/package.json b/uni_modules/uni-link/package.json new file mode 100644 index 0000000..77b1986 --- /dev/null +++ b/uni_modules/uni-link/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-link", + "displayName": "uni-link 超链接", + "version": "1.0.0", + "description": "uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打", + "keywords": [ + "uni-ui", + "uniui", + "link", + "超链接", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-link/readme.md b/uni_modules/uni-link/readme.md new file mode 100644 index 0000000..7f09e94 --- /dev/null +++ b/uni_modules/uni-link/readme.md @@ -0,0 +1,11 @@ + + +## Link 链接 +> **组件名:uni-link** +> 代码块: `uLink` + + +uni-link是一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-link) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-list/changelog.md b/uni_modules/uni-list/changelog.md new file mode 100644 index 0000000..6aa6e4e --- /dev/null +++ b/uni_modules/uni-list/changelog.md @@ -0,0 +1,20 @@ +## 1.2.1(2022-03-30) +- 删除无用文件 +## 1.2.0(2021-11-23) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-list](https://uniapp.dcloud.io/component/uniui/uni-list) +## 1.1.3(2021-08-30) +- 修复 在vue3中to属性在发行应用的时候报错的bug +## 1.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.1(2021-07-21) +- 修复 与其他组件嵌套使用时,点击失效的Bug +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.17(2021-05-12) +- 新增 组件示例地址 +## 1.0.16(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.15(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 uni-list-chat 角标显示不正常的问题 diff --git a/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue b/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue new file mode 100644 index 0000000..b9349c2 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss new file mode 100644 index 0000000..311f8d9 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss @@ -0,0 +1,58 @@ +/** + * 这里是 uni-list 组件内置的常用样式变量 + * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 + * + */ + +// 背景色 +$background-color : #fff; +// 分割线颜色 +$divide-line-color : #e5e5e5; + +// 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 +// nvue 页面不支持修改头像大小 +$avatar-width : 45px ; + +// 头像边框 +$avatar-border-radius: 5px; +$avatar-border-color: #eee; +$avatar-border-width: 1px; + +// 标题文字样式 +$title-size : 16px; +$title-color : #3b4144; +$title-weight : normal; + +// 描述文字样式 +$note-size : 12px; +$note-color : #999; +$note-weight : normal; + +// 右侧额外内容默认样式 +$right-text-size : 12px; +$right-text-color : #999; +$right-text-weight : normal; + +// 角标样式 +// nvue 页面不支持修改圆点位置以及大小 +// 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 +$badge-left: 0px; +$badge-top: 0px; + +// 显示圆点时,圆点大小 +$dot-width: 10px; +$dot-height: 10px; + +// 显示角标时,角标大小和字体大小 +$badge-size : 18px; +$badge-font : 12px; +// 显示角标时,角标前景色 +$badge-color : #fff; +// 显示角标时,角标背景色 +$badge-background-color : #ff5a5f; +// 显示角标时,角标左右间距 +$badge-space : 6px; + +// 状态样式 +// 选中颜色 +$hover : #f5f5f5; diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue new file mode 100644 index 0000000..2b31008 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue @@ -0,0 +1,538 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue b/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue new file mode 100644 index 0000000..2c7d9ea --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue @@ -0,0 +1,454 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-list.vue b/uni_modules/uni-list/components/uni-list/uni-list.vue new file mode 100644 index 0000000..ecda676 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-list.vue @@ -0,0 +1,108 @@ + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.vue b/uni_modules/uni-list/components/uni-list/uni-refresh.vue new file mode 100644 index 0000000..3b4c5a2 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-refresh.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.wxs b/uni_modules/uni-list/components/uni-list/uni-refresh.wxs new file mode 100644 index 0000000..818a6b7 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-refresh.wxs @@ -0,0 +1,87 @@ +var pullDown = { + threshold: 95, + maxHeight: 200, + callRefresh: 'onrefresh', + callPullingDown: 'onpullingdown', + refreshSelector: '.uni-refresh' +}; + +function ready(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.canPullDown = newValue; + // console.log(newValue); +} + +function touchStart(e, instance) { + var state = instance.getState(); + state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); + state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); + if (!state.canPullDown) { + return + } + + // console.log("touchStart"); + + state.height = 0; + state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; + state.refreshInstance.setStyle({ + 'height': 0 + }); + state.refreshInstance.callMethod("onchange", true); +} + +function touchMove(e, ownerInstance) { + var instance = e.instance; + var state = instance.getState(); + if (!state.canPullDown) { + return + } + + var oldHeight = state.height; + var endY = e.touches[0].pageY || e.changedTouches[0].pageY; + var height = endY - state.touchStartY; + if (height > pullDown.maxHeight) { + return; + } + + var refreshInstance = state.refreshInstance; + refreshInstance.setStyle({ + 'height': height + 'px' + }); + + height = height < pullDown.maxHeight ? height : pullDown.maxHeight; + state.height = height; + refreshInstance.callMethod(pullDown.callPullingDown, { + height: height + }); +} + +function touchEnd(e, ownerInstance) { + var state = e.instance.getState(); + if (!state.canPullDown) { + return + } + + state.refreshInstance.callMethod("onchange", false); + + var refreshInstance = state.refreshInstance; + if (state.height > pullDown.threshold) { + refreshInstance.callMethod(pullDown.callRefresh); + return; + } + + refreshInstance.setStyle({ + 'height': 0 + }); +} + +function propObserver(newValue, oldValue, instance) { + pullDown = newValue; +} + +module.exports = { + touchmove: touchMove, + touchstart: touchStart, + touchend: touchEnd, + propObserver: propObserver +} diff --git a/uni_modules/uni-list/package.json b/uni_modules/uni-list/package.json new file mode 100644 index 0000000..66e8bef --- /dev/null +++ b/uni_modules/uni-list/package.json @@ -0,0 +1,91 @@ +{ + "id": "uni-list", + "displayName": "uni-list 列表", + "version": "1.2.1", + "description": "List 组件 ,帮助使用者快速构建列表。", + "keywords": [ + "", + "uni-ui", + "uniui", + "列表", + "", + "list" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-list/readme.md b/uni_modules/uni-list/readme.md new file mode 100644 index 0000000..32c2865 --- /dev/null +++ b/uni_modules/uni-list/readme.md @@ -0,0 +1,346 @@ +## List 列表 +> **组件名:uni-list** +> 代码块: `uList`、`uListItem` +> 关联组件:`uni-list-item`、`uni-badge`、`uni-icons`、`uni-list-chat`、`uni-list-ad` + + +List 列表组件,包含基本列表样式、可扩展插槽机制、长列表性能优化、多端兼容。 + +在vue页面里,它默认使用页面级滚动。在app-nvue页面里,它默认使用原生list组件滚动。这样的长列表,在滚动出屏幕外后,系统会回收不可见区域的渲染内存资源,不会造成滚动越长手机越卡的问题。 + +uni-list组件是父容器,里面的核心是uni-list-item子组件,它代表列表中的一个可重复行,子组件可以无限循环。 + +uni-list-item有很多风格,uni-list-item组件通过内置的属性,满足一些常用的场景。当内置属性不满足需求时,可以通过扩展插槽来自定义列表内容。 + +内置属性可以覆盖的场景包括:导航列表、设置列表、小图标列表、通信录列表、聊天记录列表。 + +涉及很多大图或丰富内容的列表,比如类今日头条的新闻列表、类淘宝的电商列表,需要通过扩展插槽实现。 + +下文均有样例给出。 + +uni-list不包含下拉刷新和上拉翻页。上拉翻页另见组件:[uni-load-more](https://ext.dcloud.net.cn/plugin?id=29) + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 组件需要依赖 `sass` 插件 ,请自行手动安装 +> - 组件内部依赖 `'uni-icons'` 、`uni-badge` 组件 +> - `uni-list` 和 `uni-list-item` 需要配套使用,暂不支持单独使用 `uni-list-item` +> - 只有开启点击反馈后,会有点击选中效果 +> - 使用插槽时,可以完全自定义内容 +> - note 、rightText 属性暂时没做限制,不支持文字溢出隐藏,使用时应该控制长度显示或通过默认插槽自行扩展 +> - 支付宝小程序平台需要在支付宝小程序开发者工具里开启 component2 编译模式,开启方式: 详情 --> 项目配置 --> 启用 component2 编译 +> - 如果需要修改 `switch`、`badge` 样式,请使用插槽自定义 +> - 在 `HBuilderX` 低版本中,可能会出现组件显示 `undefined` 的问题,请升级最新的 `HBuilderX` 或者 `cli` +> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + +### 基本用法 + +- 设置 `title` 属性,可以显示列表标题 +- 设置 `disabled` 属性,可以禁用当前项 + +```html + + + + + +``` + +### 多行内容显示 + +- 设置 `note` 属性 ,可以在第二行显示描述文本信息 + +```html + + + + + +``` + +### 右侧显示角标、switch + +- 设置 `show-badge` 属性 ,可以显示角标内容 +- 设置 `show-switch` 属性,可以显示 switch 开关 + +```html + + + + + +``` + +### 左侧显示略缩图、图标 + +- 设置 `thumb` 属性 ,可以在列表左侧显示略缩图 +- 设置 `show-extra-icon` 属性,并指定 `extra-icon` 可以在左侧显示图标 + +```html + + + + +``` + +### 开启点击反馈和右侧箭头 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,并给列表右侧添加一个箭头 +- 设置 `to` 属性,可以跳转页面,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` + +```html + + + + + + + +``` + + +### 聊天列表示例 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` +- 设置 `to` 属性,可以跳转页面 +- `time` 属性,通常会设置成时间显示,但是这个属性不仅仅可以设置时间,你可以传入任何文本,注意文本长度可能会影响显示 +- `avatar` 和 `avatarList` 属性同时只会有一个生效,同时设置的话,`avatarList` 属性的长度大于1 ,`avatar` 属性将失效 +- 可以通过默认插槽自定义列表右侧内容 + +```html + + + + + + + + + + + + + + + + + 刚刚 + + + + + + + +``` + +```javascript + +export default { + components: {}, + data() { + return { + avatarList: [{ + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }] + } + } +} + +``` + + +```css + +.chat-custom-right { + flex: 1; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} + +.chat-custom-text { + font-size: 12px; + color: #999; +} + +``` + +## API + +### List Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +border |Boolean |true | 是否显示边框 + + +### ListItem Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +ellipsis |Number |0 | title 是否溢出隐藏,可选值,0:默认; 1:显示一行; 2:显示两行;【nvue 暂不支持】 +thumb |String |- | 左侧缩略图,若thumb有值,则不会显示扩展图标 +thumbSize |String |medium | 略缩图尺寸,可选值,lg:大图; medium:一般; sm:小图; +showBadge |Boolean |false | 是否显示数字角标 +badgeText |String |- | 数字角标内容 +badgeType |String |- | 数字角标类型,参考[uni-icons](https://ext.dcloud.net.cn/plugin?id=21) +badgeStyle |Object |- | 数字角标样式,使用uni-badge的custom-style参数 +rightText |String |- | 右侧文字内容 +disabled |Boolean |false | 是否禁用 +showArrow |Boolean |true | 是否显示箭头图标 +link |String |navigateTo | 新页面跳转方式,可选值见下表 +to |String |- | 新页面跳转地址,如填写此属性,click 会返回页面是否跳转成功 +clickable |Boolean |false | 是否开启点击反馈 +showSwitch |Boolean |false | 是否显示Switch +switchChecked |Boolean |false | Switch是否被选中 +showExtraIcon |Boolean |false | 左侧是否显示扩展图标 +extraIcon |Object |- | 扩展图标参数,格式为 ``{color: '#4cd964',size: '22',type: 'spinner'}``,参考 [uni-icons](https://ext.dcloud.net.cn/plugin?id=28) +direction | String |row | 排版方向,可选值,row:水平排列; column:垂直排列; 3个插槽是水平排还是垂直排,也受此属性控制 + + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItem Events + +事件称名 |说明 |返回参数 +:-: |:-: |:-: +click |点击 uniListItem 触发事件,需开启点击反馈 |- +switchChange |点击切换 Switch 时触发,需显示 switch |e={value:checked} + + + +### ListItem Slots + +名称 | 说明 +:-: | :-: +header | 左/上内容插槽,可完全自定义默认显示 +body | 中间内容插槽,可完全自定义中间内容 +footer | 右/下内容插槽,可完全自定义右侧内容 + + +> **通过插槽扩展** +> 需要注意的是当使用插槽时,内置样式将会失效,只保留排版样式,此时的样式需要开发者自己实现 +> 如果 `uni-list-item` 组件内置属性样式无法满足需求,可以使用插槽来自定义uni-list-item里的内容。 +> uni-list-item提供了3个可扩展的插槽:`header`、`body`、`footer` +> - 当 `direction` 属性为 `row` 时表示水平排列,此时 `header` 表示列表的左边部分,`body` 表示列表的中间部分,`footer` 表示列表的右边部分 +> - 当 `direction` 属性为 `column` 时表示垂直排列,此时 `header` 表示列表的上边部分,`body` 表示列表的中间部分,`footer` 表示列表的下边部分 +> 开发者可以只用1个插槽,也可以3个一起使用。在插槽中可自主编写view标签,实现自己所需的效果。 + + +**示例** + +```html + + + + + + + + + 自定义插槽 + + + + +``` + + + + + +### ListItemChat Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +clickable |Boolean |false | 是否开启点击反馈 +badgeText |String |- | 数字角标内容,设置为 `dot` 将显示圆点 +badgePositon |String |right | 角标位置 +link |String |navigateTo | 是否展示右侧箭头并开启点击反馈,可选值见下表 +clickable |Boolean |false | 是否开启点击反馈 +to |String |- | 跳转页面地址,如填写此属性,click 会返回页面是否跳转成功 +time |String |- | 右侧时间显示 +avatarCircle |Boolean |false | 是否显示圆形头像 +avatar |String |- | 头像地址,avatarCircle 不填时生效 +avatarList |Array |- | 头像组,格式为 [{url:''}] + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItemChat Slots + +名称 | 说明 +:- | :- +default | 自定义列表右侧内容(包括时间和角标显示) + +### ListItemChat Events +事件称名 | 说明 | 返回参数 +:-: | :-: | :-: +@click | 点击 uniListChat 触发事件 | {data:{}} ,如有 to 属性,会返回页面跳转信息 + + + + + + +## 基于uni-list扩展的页面模板 + +通过扩展插槽,可实现多种常见样式的列表 + +**新闻列表类** + +1. 云端一体混合布局:[https://ext.dcloud.net.cn/plugin?id=2546](https://ext.dcloud.net.cn/plugin?id=2546) +2. 云端一体垂直布局,大图模式:[https://ext.dcloud.net.cn/plugin?id=2583](https://ext.dcloud.net.cn/plugin?id=2583) +3. 云端一体垂直布局,多行图文混排:[https://ext.dcloud.net.cn/plugin?id=2584](https://ext.dcloud.net.cn/plugin?id=2584) +4. 云端一体垂直布局,多图模式:[https://ext.dcloud.net.cn/plugin?id=2585](https://ext.dcloud.net.cn/plugin?id=2585) +5. 云端一体水平布局,左图右文:[https://ext.dcloud.net.cn/plugin?id=2586](https://ext.dcloud.net.cn/plugin?id=2586) +6. 云端一体水平布局,左文右图:[https://ext.dcloud.net.cn/plugin?id=2587](https://ext.dcloud.net.cn/plugin?id=2587) +7. 云端一体垂直布局,无图模式,主标题+副标题:[https://ext.dcloud.net.cn/plugin?id=2588](https://ext.dcloud.net.cn/plugin?id=2588) + +**商品列表类** + +1. 云端一体列表/宫格视图互切:[https://ext.dcloud.net.cn/plugin?id=2651](https://ext.dcloud.net.cn/plugin?id=2651) +2. 云端一体列表(宫格模式):[https://ext.dcloud.net.cn/plugin?id=2671](https://ext.dcloud.net.cn/plugin?id=2671) +3. 云端一体列表(列表模式):[https://ext.dcloud.net.cn/plugin?id=2672](https://ext.dcloud.net.cn/plugin?id=2672) + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/list/list](https://hellouniapp.dcloud.net.cn/pages/extUI/list/list) \ No newline at end of file diff --git a/uni_modules/uni-load-more/changelog.md b/uni_modules/uni-load-more/changelog.md new file mode 100644 index 0000000..8f03f1d --- /dev/null +++ b/uni_modules/uni-load-more/changelog.md @@ -0,0 +1,19 @@ +## 1.3.3(2022-01-20) +- 新增 showText属性 ,是否显示文本 +## 1.3.2(2022-01-19) +- 修复 nvue 平台下不显示文本的bug +## 1.3.1(2022-01-19) +- 修复 微信小程序平台样式选择器报警告的问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more) +## 1.2.1(2021-08-24) +- 新增 支持国际化 +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.8(2021-05-12) +- 新增 组件示例地址 +## 1.1.7(2021-03-30) +- 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +## 1.1.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json new file mode 100644 index 0000000..a4f14a5 --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/en.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "Pull up to show more", + "uni-load-more.contentrefresh": "loading...", + "uni-load-more.contentnomore": "No more data" +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js b/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json new file mode 100644 index 0000000..f15d510 --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉显示更多", + "uni-load-more.contentrefresh": "正在加载...", + "uni-load-more.contentnomore": "没有更多数据了" +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json new file mode 100644 index 0000000..a255c6d --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json @@ -0,0 +1,5 @@ +{ + "uni-load-more.contentdown": "上拉顯示更多", + "uni-load-more.contentrefresh": "正在加載...", + "uni-load-more.contentnomore": "沒有更多數據了" +} diff --git a/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue b/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue new file mode 100644 index 0000000..e5eff4d --- /dev/null +++ b/uni_modules/uni-load-more/components/uni-load-more/uni-load-more.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/uni_modules/uni-load-more/package.json b/uni_modules/uni-load-more/package.json new file mode 100644 index 0000000..2fa6f04 --- /dev/null +++ b/uni_modules/uni-load-more/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-load-more", + "displayName": "uni-load-more 加载更多", + "version": "1.3.3", + "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。", + "keywords": [ + "uni-ui", + "uniui", + "加载更多", + "load-more" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-load-more/readme.md b/uni_modules/uni-load-more/readme.md new file mode 100644 index 0000000..54dc1fa --- /dev/null +++ b/uni_modules/uni-load-more/readme.md @@ -0,0 +1,14 @@ + + +### LoadMore 加载更多 +> **组件名:uni-load-more** +> 代码块: `uLoadMore` + + +用于列表中,做滚动加载使用,展示 loading 的各种状态。 + + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-nav-bar/changelog.md b/uni_modules/uni-nav-bar/changelog.md new file mode 100644 index 0000000..fbacca4 --- /dev/null +++ b/uni_modules/uni-nav-bar/changelog.md @@ -0,0 +1,37 @@ +## 1.3.4(2022-01-24) +- 更新 组件示例 +## 1.3.3(2022-01-24) +- 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +## 1.3.2(2022-01-18) +- 修复 在vue下,标题不垂直居中的bug +## 1.3.1(2022-01-18) +- 修复 height 属性类型错误 +## 1.3.0(2022-01-18) +- 新增 height 属性,可修改组件高度 +- 新增 dark 属性可可开启暗黑模式 +- 优化 标题字数过多显示省略号 +- 优化 插槽,插入内容可完全覆盖 +## 1.2.1(2022-01-10) +- 修复 color 属性不生效的bug +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-nav-bar](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.11(2021-05-12) +- 新增 组件示例地址 +## 1.0.10(2021-04-30) +- 修复 在nvue下fixed为true,宽度不能撑满的Bug +## 1.0.9(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.8(2021-04-14) +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug + +## 1.0.7(2021-02-25) +- 修复 easycom 下,找不到 uni-status-bar 的bug + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue new file mode 100644 index 0000000..08712ab --- /dev/null +++ b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.vue @@ -0,0 +1,343 @@ + + + + + diff --git a/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue new file mode 100644 index 0000000..6a68874 --- /dev/null +++ b/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-status-bar.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/uni_modules/uni-nav-bar/package.json b/uni_modules/uni-nav-bar/package.json new file mode 100644 index 0000000..e1473ca --- /dev/null +++ b/uni_modules/uni-nav-bar/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-nav-bar", + "displayName": "uni-nav-bar 自定义导航栏", + "version": "1.3.4", + "description": "自定义导航栏组件,主要用于头部导航。", + "keywords": [ + "uni-ui", + "导航", + "导航栏", + "自定义导航栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-nav-bar/readme.md b/uni_modules/uni-nav-bar/readme.md new file mode 100644 index 0000000..3934b32 --- /dev/null +++ b/uni_modules/uni-nav-bar/readme.md @@ -0,0 +1,15 @@ + + +## NavBar 导航栏 +> **组件名:uni-nav-bar** +> 代码块: `uNavBar` + +导航栏组件,主要用于头部导航。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-nav-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/uni_modules/uni-notice-bar/changelog.md b/uni_modules/uni-notice-bar/changelog.md new file mode 100644 index 0000000..9ee75a0 --- /dev/null +++ b/uni_modules/uni-notice-bar/changelog.md @@ -0,0 +1,16 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-notice-bar](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +## 1.1.1(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 组件示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.6(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue b/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue new file mode 100644 index 0000000..1d2ac1d --- /dev/null +++ b/uni_modules/uni-notice-bar/components/uni-notice-bar/uni-notice-bar.vue @@ -0,0 +1,395 @@ + + + + + diff --git a/uni_modules/uni-notice-bar/package.json b/uni_modules/uni-notice-bar/package.json new file mode 100644 index 0000000..97719a0 --- /dev/null +++ b/uni_modules/uni-notice-bar/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-notice-bar", + "displayName": "uni-notice-bar 通告栏", + "version": "1.2.0", + "description": "NoticeBar 通告栏组件,常用于展示公告信息,可设为滚动公告", + "keywords": [ + "uni-ui", + "uniui", + "通告栏", + "公告", + "跑马灯" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-notice-bar/readme.md b/uni_modules/uni-notice-bar/readme.md new file mode 100644 index 0000000..fb2ede2 --- /dev/null +++ b/uni_modules/uni-notice-bar/readme.md @@ -0,0 +1,13 @@ + + +## NoticeBar 通告栏 +> **组件名:uni-notice-bar** +> 代码块: `uNoticeBar` + + +通告栏组件 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-notice-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-number-box/changelog.md b/uni_modules/uni-number-box/changelog.md new file mode 100644 index 0000000..5925c32 --- /dev/null +++ b/uni_modules/uni-number-box/changelog.md @@ -0,0 +1,25 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-number-box](https://uniapp.dcloud.io/component/uniui/uni-number-box) +## 1.1.2(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +## 1.1.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-20) +- 修复 uni-number-box 浮点数运算不精确的 bug +- 修复 uni-number-box change 事件触发不正确的 bug +- 新增 uni-number-box v-model 双向绑定 +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 + +## 1.0.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 v-model +- 新增 支持 focus、blur 事件 +- 新增 支持 PC 端 diff --git a/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue b/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue new file mode 100644 index 0000000..e91c032 --- /dev/null +++ b/uni_modules/uni-number-box/components/uni-number-box/uni-number-box.vue @@ -0,0 +1,221 @@ + + + diff --git a/uni_modules/uni-number-box/package.json b/uni_modules/uni-number-box/package.json new file mode 100644 index 0000000..ad82336 --- /dev/null +++ b/uni_modules/uni-number-box/package.json @@ -0,0 +1,85 @@ +{ + "id": "uni-number-box", + "displayName": "uni-number-box 数字输入框", + "version": "1.2.1", + "description": "NumberBox 带加减按钮的数字输入框组件,用户可以控制每次点击增加的数值,支持小数。", + "keywords": [ + "uni-ui", + "uniui", + "数字输入框" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-number-box/readme.md b/uni_modules/uni-number-box/readme.md new file mode 100644 index 0000000..affc56f --- /dev/null +++ b/uni_modules/uni-number-box/readme.md @@ -0,0 +1,13 @@ + + +## NumberBox 数字输入框 +> **组件名:uni-number-box** +> 代码块: `uNumberBox` + + +带加减按钮的数字输入框。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-number-box) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-pagination/changelog.md b/uni_modules/uni-pagination/changelog.md new file mode 100644 index 0000000..336c2ba --- /dev/null +++ b/uni_modules/uni-pagination/changelog.md @@ -0,0 +1,20 @@ +## 1.2.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-pagination](https://uniapp.dcloud.io/component/uniui/uni-pagination) +## 1.1.2(2021-10-08) +- 修复 current 、value 属性未监听,导致高亮样式失效的 bug +## 1.1.1(2021-08-20) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-05-12) +- 新增 组件示例地址 +## 1.0.6(2021-04-12) +- 新增 PC 和 移动端适配不同的 ui +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json new file mode 100644 index 0000000..a57becd --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "prev", + "uni-pagination.nextText": "next" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json new file mode 100644 index 0000000..ccbba2f --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/es.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "anterior", + "uni-pagination.nextText": "próxima" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json new file mode 100644 index 0000000..9b5f2d9 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/fr.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "précédente", + "uni-pagination.nextText": "suivante" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js b/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json new file mode 100644 index 0000000..fedbe82 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一页", + "uni-pagination.nextText": "下一页" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json new file mode 100644 index 0000000..133b340 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-pagination.prevText": "上一頁", + "uni-pagination.nextText": "下一頁" +} diff --git a/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue b/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue new file mode 100644 index 0000000..79db4b8 --- /dev/null +++ b/uni_modules/uni-pagination/components/uni-pagination/uni-pagination.vue @@ -0,0 +1,409 @@ + + + + + diff --git a/uni_modules/uni-pagination/package.json b/uni_modules/uni-pagination/package.json new file mode 100644 index 0000000..adce670 --- /dev/null +++ b/uni_modules/uni-pagination/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-pagination", + "displayName": "uni-pagination 分页器", + "version": "1.2.1", + "description": "Pagination 分页器组件,用于展示页码、请求数据等。", + "keywords": [ + "uni-ui", + "uniui", + "分页器", + "页码" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-icons"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-pagination/readme.md b/uni_modules/uni-pagination/readme.md new file mode 100644 index 0000000..eefa263 --- /dev/null +++ b/uni_modules/uni-pagination/readme.md @@ -0,0 +1,13 @@ + + +## Pagination 分页器 +> **组件名:uni-pagination** +> 代码块: `uPagination` + + +分页器组件,用于展示页码、请求数据等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-pagination) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-popup/changelog.md b/uni_modules/uni-popup/changelog.md new file mode 100644 index 0000000..a9e2d66 --- /dev/null +++ b/uni_modules/uni-popup/changelog.md @@ -0,0 +1,60 @@ +## 1.7.9(2022-04-02) +- 修复 弹出层内部无法滚动的bug +## 1.7.8(2022-03-28) +- 修复 小程序中高度错误的bug +## 1.7.7(2022-03-17) +- 修复 快速调用open出现问题的Bug +## 1.7.6(2022-02-14) +- 修复 safeArea 属性不能设置为false的bug +## 1.7.5(2022-01-19) +- 修复 isMaskClick 失效的bug +## 1.7.4(2022-01-19) +- 新增 cancelText \ confirmText 属性 ,可自定义文本 +- 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 +## 1.7.3(2022-01-13) +- 修复 设置 safeArea 属性不生效的bug +## 1.7.2(2021-11-26) +- 优化 组件示例 +## 1.7.1(2021-11-26) +- 修复 vuedoc 文字错误 +## 1.7.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup) +## 1.6.2(2021-08-24) +- 新增 支持国际化 +## 1.6.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.6.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.5.0(2021-06-23) +- 新增 mask-click 遮罩层点击事件 +## 1.4.5(2021-06-22) +- 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.4(2021-06-18) +- 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +## 1.4.3(2021-06-08) +- 修复 错误的 watch 字段 +- 修复 safeArea 属性不生效的问题 +- 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.4.2(2021-05-12) +- 新增 组件示例地址 +## 1.4.1(2021-04-29) +- 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +## 1.4.0 (2021-04-29) +- 新增 type 属性的 left\right 值,支持左右弹出 +- 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- 新增 safeArea 属性,是否适配底部安全区 +- 修复 App\h5\微信小程序底部安全区占位不对的Bug +- 修复 App 端弹出等待的Bug +- 优化 提升低配设备性能,优化动画卡顿问题 +- 优化 更简单的组件自定义方式 +## 1.2.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.2.8(2021-02-05) +- 调整为uni_modules目录规范 +## 1.2.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持 PC 端 +- 新增 uni-popup-message 、uni-popup-dialog扩展组件支持 PC 端 diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js new file mode 100644 index 0000000..6ef26a2 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-dialog/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + this.$once('hook:beforeDestroy', () => { + document.removeEventListener('keyup', listener) + }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue new file mode 100644 index 0000000..a5d0f2a --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-dialog/uni-popup-dialog.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue new file mode 100644 index 0000000..91370a8 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-message/uni-popup-message.vue @@ -0,0 +1,143 @@ + + + + diff --git a/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue new file mode 100644 index 0000000..5be7624 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup-share/uni-popup-share.vue @@ -0,0 +1,187 @@ + + + + diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/en.json b/uni_modules/uni-popup/components/uni-popup/i18n/en.json new file mode 100644 index 0000000..7f1bd06 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/en.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "cancel", + "uni-popup.ok": "ok", + "uni-popup.placeholder": "pleace enter", + "uni-popup.title": "Hint", + "uni-popup.shareTitle": "Share to" +} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/index.js b/uni_modules/uni-popup/components/uni-popup/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json new file mode 100644 index 0000000..5e3003c --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hans.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "确定", + "uni-popup.placeholder": "请输入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json new file mode 100644 index 0000000..13e39eb --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/i18n/zh-Hant.json @@ -0,0 +1,7 @@ +{ + "uni-popup.cancel": "取消", + "uni-popup.ok": "確定", + "uni-popup.placeholder": "請輸入", + "uni-popup.title": "提示", + "uni-popup.shareTitle": "分享到" +} diff --git a/uni_modules/uni-popup/components/uni-popup/keypress.js b/uni_modules/uni-popup/components/uni-popup/keypress.js new file mode 100644 index 0000000..62dda46 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/keypress.js @@ -0,0 +1,45 @@ +// #ifdef H5 +export default { + name: 'Keypress', + props: { + disable: { + type: Boolean, + default: false + } + }, + mounted () { + const keyNames = { + esc: ['Esc', 'Escape'], + tab: 'Tab', + enter: 'Enter', + space: [' ', 'Spacebar'], + up: ['Up', 'ArrowUp'], + left: ['Left', 'ArrowLeft'], + right: ['Right', 'ArrowRight'], + down: ['Down', 'ArrowDown'], + delete: ['Backspace', 'Delete', 'Del'] + } + const listener = ($event) => { + if (this.disable) { + return + } + const keyName = Object.keys(keyNames).find(key => { + const keyName = $event.key + const value = keyNames[key] + return value === keyName || (Array.isArray(value) && value.includes(keyName)) + }) + if (keyName) { + // 避免和其他按键事件冲突 + setTimeout(() => { + this.$emit(keyName, {}) + }, 0) + } + } + document.addEventListener('keyup', listener) + // this.$once('hook:beforeDestroy', () => { + // document.removeEventListener('keyup', listener) + // }) + }, + render: () => {} +} +// #endif diff --git a/uni_modules/uni-popup/components/uni-popup/popup.js b/uni_modules/uni-popup/components/uni-popup/popup.js new file mode 100644 index 0000000..c4e5781 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/popup.js @@ -0,0 +1,26 @@ + +export default { + data() { + return { + + } + }, + created(){ + this.popup = this.getParent() + }, + methods:{ + /** + * 获取父元素实例 + */ + getParent(name = 'uniPopup') { + let parent = this.$parent; + let parentName = parent.$options.name; + while (parentName !== name) { + parent = parent.$parent; + if (!parent) return false + parentName = parent.$options.name; + } + return parent; + }, + } +} diff --git a/uni_modules/uni-popup/components/uni-popup/uni-popup.vue b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue new file mode 100644 index 0000000..db90c59 --- /dev/null +++ b/uni_modules/uni-popup/components/uni-popup/uni-popup.vue @@ -0,0 +1,474 @@ + + + + diff --git a/uni_modules/uni-popup/package.json b/uni_modules/uni-popup/package.json new file mode 100644 index 0000000..069e9ce --- /dev/null +++ b/uni_modules/uni-popup/package.json @@ -0,0 +1,90 @@ +{ + "id": "uni-popup", + "displayName": "uni-popup 弹出层", + "version": "1.7.9", + "description": " Popup 组件,提供常用的弹层", + "keywords": [ + "uni-ui", + "弹出层", + "弹窗", + "popup", + "弹框" + ], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-popup/readme.md b/uni_modules/uni-popup/readme.md new file mode 100644 index 0000000..fdad4b3 --- /dev/null +++ b/uni_modules/uni-popup/readme.md @@ -0,0 +1,17 @@ + + +## Popup 弹出层 +> **组件名:uni-popup** +> 代码块: `uPopup` +> 关联组件:`uni-transition` + + +弹出层组件,在应用中弹出一个消息提示窗口、提示框等 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-popup) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + + diff --git a/uni_modules/uni-rate/changelog.md b/uni_modules/uni-rate/changelog.md new file mode 100644 index 0000000..8a98a61 --- /dev/null +++ b/uni_modules/uni-rate/changelog.md @@ -0,0 +1,25 @@ +## 1.3.1(2022-02-25) +- 修复 条件判断 `NaN` 错误的 bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-rate](https://uniapp.dcloud.io/component/uniui/uni-rate) +## 1.2.2(2021-09-10) +- 优化 默认值修改为 0 颗星 +## 1.2.1(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.2.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.2(2021-05-12) +- 新增 组件示例地址 +## 1.1.1(2021-04-21) +- 修复 布局变化后 uni-rate 星星计算不准确的 bug +- 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +## 1.1.0(2021-04-16) +- 修复 uni-rate 属性 margin 值为 string 组件失效的 bug + +## 1.0.9(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.8(2021-02-05) +- 调整为uni_modules目录规范 +- 支持 pc 端 diff --git a/uni_modules/uni-rate/components/uni-rate/uni-rate.vue b/uni_modules/uni-rate/components/uni-rate/uni-rate.vue new file mode 100644 index 0000000..857f5f9 --- /dev/null +++ b/uni_modules/uni-rate/components/uni-rate/uni-rate.vue @@ -0,0 +1,361 @@ + + + + + diff --git a/uni_modules/uni-rate/package.json b/uni_modules/uni-rate/package.json new file mode 100644 index 0000000..64e8e33 --- /dev/null +++ b/uni_modules/uni-rate/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-rate", + "displayName": "uni-rate 评分", + "version": "1.3.1", + "description": "Rate 评分组件,可自定义评分星星图标的大小、间隔、评分数。", + "keywords": [ + "uni-ui", + "uniui", + "评分" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-rate/readme.md b/uni_modules/uni-rate/readme.md new file mode 100644 index 0000000..eae7b5c --- /dev/null +++ b/uni_modules/uni-rate/readme.md @@ -0,0 +1,12 @@ + + +## Rate 评分 +> **组件名:uni-rate** +> 代码块: `uRate` +> 关联组件:`uni-icons` + + +评分组件,多用于购买商品后,对商品进行评价等场景 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-rate) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-row/changelog.md b/uni_modules/uni-row/changelog.md new file mode 100644 index 0000000..5b465bc --- /dev/null +++ b/uni_modules/uni-row/changelog.md @@ -0,0 +1,10 @@ +## 1.0.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-row](https://uniapp.dcloud.io/component/uniui/uni-row) +## 0.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 0.0.4(2021-05-12) +- 新增 组件示例地址 +## 0.0.3(2021-02-05) +- 调整为uni_modules目录规范 +- 新增uni-row组件 diff --git a/uni_modules/uni-row/components/uni-col/uni-col.vue b/uni_modules/uni-row/components/uni-col/uni-col.vue new file mode 100644 index 0000000..d5f3728 --- /dev/null +++ b/uni_modules/uni-row/components/uni-col/uni-col.vue @@ -0,0 +1,317 @@ + + + + + diff --git a/uni_modules/uni-row/components/uni-row/uni-row.vue b/uni_modules/uni-row/components/uni-row/uni-row.vue new file mode 100644 index 0000000..c7d9370 --- /dev/null +++ b/uni_modules/uni-row/components/uni-row/uni-row.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/uni_modules/uni-row/package.json b/uni_modules/uni-row/package.json new file mode 100644 index 0000000..3f52fa6 --- /dev/null +++ b/uni_modules/uni-row/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-row", + "displayName": "uni-row 布局-行", + "version": "1.0.0", + "description": "流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。", + "keywords": [ + "uni-ui", + "uniui", + "栅格", + "布局", + "layout" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "u" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-row/readme.md b/uni_modules/uni-row/readme.md new file mode 100644 index 0000000..3c9c8b9 --- /dev/null +++ b/uni_modules/uni-row/readme.md @@ -0,0 +1,10 @@ +## Layout 布局 + +> **组件名 uni-row、uni-col** +> 代码块: `uRow`、`uCol` + + +流式栅格系统,随着屏幕或视口分为 24 份,可以迅速简便地创建布局。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-row) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..a369497 --- /dev/null +++ b/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #007eff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/uni_modules/uni-search-bar/changelog.md b/uni_modules/uni-search-bar/changelog.md new file mode 100644 index 0000000..0cd8972 --- /dev/null +++ b/uni_modules/uni-search-bar/changelog.md @@ -0,0 +1,27 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-search-bar](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +## 1.1.2(2021-08-30) +- 修复 value 属性与 modelValue 属性不兼容的Bug +## 1.1.1(2021-08-24) +- 新增 支持国际化 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.9(2021-05-12) +- 新增 项目示例地址 +## 1.0.8(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.7(2021-04-15) +- uni-ui 新增 uni-search-bar 的 focus 事件 + +## 1.0.6(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 支持双向绑定 +- 更改 input 事件的返回值,e={value:Number} --> e=value +- 新增 支持图标插槽 +- 新增 支持 clear、blur 事件 +- 新增 支持 focus 属性 +- 去掉组件背景色 diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json new file mode 100644 index 0000000..dd083a5 --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/en.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "Search enter content" +} \ No newline at end of file diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js new file mode 100644 index 0000000..de7509c --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js @@ -0,0 +1,8 @@ +import en from './en.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json new file mode 100644 index 0000000..d4e5c12 --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hans.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "请输入搜索内容" +} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json new file mode 100644 index 0000000..318b6ef --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/i18n/zh-Hant.json @@ -0,0 +1,4 @@ +{ + "uni-search-bar.cancel": "cancel", + "uni-search-bar.placeholder": "請輸入搜索內容" +} diff --git a/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue b/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue new file mode 100644 index 0000000..2bf4a74 --- /dev/null +++ b/uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar.vue @@ -0,0 +1,287 @@ +s + + + + diff --git a/uni_modules/uni-search-bar/package.json b/uni_modules/uni-search-bar/package.json new file mode 100644 index 0000000..d76d8b3 --- /dev/null +++ b/uni_modules/uni-search-bar/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-search-bar", + "displayName": "uni-search-bar 搜索栏", + "version": "1.2.0", + "description": "搜索栏组件,通常用于搜索商品、文章等", + "keywords": [ + "uni-ui", + "uniui", + "搜索框", + "搜索栏" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-search-bar/readme.md b/uni_modules/uni-search-bar/readme.md new file mode 100644 index 0000000..253092f --- /dev/null +++ b/uni_modules/uni-search-bar/readme.md @@ -0,0 +1,14 @@ + + +## SearchBar 搜索栏 + +> **组件名:uni-search-bar** +> 代码块: `uSearchBar` + + +搜索栏组件 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-search-bar) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-segmented-control/changelog.md b/uni_modules/uni-segmented-control/changelog.md new file mode 100644 index 0000000..a44385d --- /dev/null +++ b/uni_modules/uni-segmented-control/changelog.md @@ -0,0 +1,9 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-segmented-control](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.5(2021-05-12) +- 新增 项目示例地址 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue b/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue new file mode 100644 index 0000000..ddbcf88 --- /dev/null +++ b/uni_modules/uni-segmented-control/components/uni-segmented-control/uni-segmented-control.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/uni_modules/uni-segmented-control/package.json b/uni_modules/uni-segmented-control/package.json new file mode 100644 index 0000000..6cae41d --- /dev/null +++ b/uni_modules/uni-segmented-control/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-segmented-control", + "displayName": "uni-segmented-control 分段器", + "version": "1.2.0", + "description": "分段器由至少 2 个分段控件组成,用作不同视图的显示", + "keywords": [ + "uni-ui", + "uniui", + "分段器", + "segement", + "顶部选择" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-segmented-control/readme.md b/uni_modules/uni-segmented-control/readme.md new file mode 100644 index 0000000..3527b03 --- /dev/null +++ b/uni_modules/uni-segmented-control/readme.md @@ -0,0 +1,13 @@ + + +## SegmentedControl 分段器 +> **组件名:uni-segmented-control** +> 代码块: `uSegmentedControl` + + +用作不同视图的显示 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-segmented-control) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-steps/changelog.md b/uni_modules/uni-steps/changelog.md new file mode 100644 index 0000000..cb9d367 --- /dev/null +++ b/uni_modules/uni-steps/changelog.md @@ -0,0 +1,16 @@ +## 1.1.1(2021-11-22) +- 修复 vue3中某些scss变量无法找到的问题 +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-steps](https://uniapp.dcloud.io/component/uniui/uni-steps) +## 1.0.8(2021-05-12) +- 新增 项目示例地址 +## 1.0.7(2021-05-06) +- 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +## 1.0.6(2021-04-21) +- 优化 添加依赖 uni-icons, 导入后自动下载依赖 +## 1.0.5(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 + +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-steps/components/uni-steps/uni-steps.vue b/uni_modules/uni-steps/components/uni-steps/uni-steps.vue new file mode 100644 index 0000000..a6c8f28 --- /dev/null +++ b/uni_modules/uni-steps/components/uni-steps/uni-steps.vue @@ -0,0 +1,269 @@ + + + + + diff --git a/uni_modules/uni-steps/package.json b/uni_modules/uni-steps/package.json new file mode 100644 index 0000000..c687b40 --- /dev/null +++ b/uni_modules/uni-steps/package.json @@ -0,0 +1,89 @@ +{ + "id": "uni-steps", + "displayName": "uni-steps 步骤条", + "version": "1.1.1", + "description": "步骤条组件,提供横向和纵向两种布局格式。", + "keywords": [ + "uni-ui", + "uniui", + "步骤条", + "时间轴" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-scss", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-steps/readme.md b/uni_modules/uni-steps/readme.md new file mode 100644 index 0000000..da7a4bf --- /dev/null +++ b/uni_modules/uni-steps/readme.md @@ -0,0 +1,13 @@ + + +## Steps 步骤条 +> **组件名:uni-steps** +> 代码块: `uSteps` + + +步骤条,常用于显示进度 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-steps) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-swipe-action/changelog.md b/uni_modules/uni-swipe-action/changelog.md new file mode 100644 index 0000000..0ab2085 --- /dev/null +++ b/uni_modules/uni-swipe-action/changelog.md @@ -0,0 +1,33 @@ +## 1.3.3(2022-03-31) +- 修复 按钮字体大小不能设置的bug +## 1.3.2(2022-03-16) +- 修复 h5和app端下报el错误的bug +## 1.3.1(2022-03-07) +- 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swipe-action](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +## 1.2.4(2021-08-20) +- 优化 close-all 方法 +## 1.2.3(2021-08-20) +- 新增 close-all 方法,关闭所有已打开的组件 +## 1.2.2(2021-08-17) +- 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.2.1(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.1.10(2021-06-17) +- 修复 按钮点击执行两次的bug +## 1.1.9(2021-05-12) +- 新增 项目示例地址 +## 1.1.8(2021-03-26) +- 修复 微信小程序 nv_navigator is not defined 报错的bug +## 1.1.7(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 左侧滑动 +- 新增 插槽使用方式 +- 新增 threshold 属性,可以控制滑动缺省值 +- 优化 长列表滚动性能 +- 修复 滚动页面时触发组件滑动的Bug diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js new file mode 100644 index 0000000..5b15f7f --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/bindingx.js @@ -0,0 +1,300 @@ +let bindIngXMixins = {} + +// #ifdef APP-NVUE +const BindingX = uni.requireNativePlugin('bindingx'); +const dom = uni.requireNativePlugin('dom'); +const animation = uni.requireNativePlugin('animation'); + +bindIngXMixins = { + data() { + return {} + }, + + watch: { + show(newVal) { + if (this.autoClose) return + if (this.stop) return + this.stop = true + if (newVal) { + this.open(newVal) + } else { + this.close() + } + }, + leftOptions() { + this.getSelectorQuery() + this.init() + }, + rightOptions(newVal) { + this.init() + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.box = this.getEl(this.$refs['selector-box--hock']) + this.selector = this.getEl(this.$refs['selector-content--hock']); + this.leftButton = this.getEl(this.$refs['selector-left-button--hock']); + this.rightButton = this.getEl(this.$refs['selector-right-button--hock']); + this.init() + }, + // beforeDestroy() { + // this.swipeaction.children.forEach((item, index) => { + // if (item === this) { + // this.swipeaction.children.splice(index, 1) + // } + // }) + // }, + methods: { + init() { + this.$nextTick(() => { + this.x = 0 + this.button = { + show: false + } + setTimeout(() => { + this.getSelectorQuery() + }, 200) + }) + }, + onClick(index, item, position) { + this.$emit('click', { + content: item, + index, + position + }) + }, + touchstart(e) { + // 每次只触发一次,避免多次监听造成闪烁 + if (this.stop) return + this.stop = true + if (this.autoClose) { + this.swipeaction.closeOther(this) + } + + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + let expression = this.range(this.x, -rightWidth, leftWidth) + let leftExpression = this.range(this.x - leftWidth, -leftWidth, 0) + let rightExpression = this.range(this.x + rightWidth, 0, rightWidth) + + this.eventpan = BindingX.bind({ + anchor: this.box, + eventType: 'pan', + props: [{ + element: this.selector, + property: 'transform.translateX', + expression + }, { + element: this.leftButton, + property: 'transform.translateX', + expression: leftExpression + }, { + element: this.rightButton, + property: 'transform.translateX', + expression: rightExpression + }, ] + }, (e) => { + // nope + if (e.state === 'end') { + this.x = e.deltaX + this.x; + this.isclick = true + this.bindTiming(e.deltaX) + } + }); + }, + touchend(e) { + if (this.isopen !== 'none' && !this.isclick) { + this.open('none') + } + }, + bindTiming(x) { + const left = this.x + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + const threshold = this.threshold + if (!this.isopen || this.isopen === 'none') { + if (left > threshold) { + this.open('left') + } else if (left < -threshold) { + this.open('right') + } else { + this.open('none') + } + } else { + if ((x > -leftWidth && x < 0) || x > rightWidth) { + if ((x > -threshold && x < 0) || (x - rightWidth > threshold)) { + this.open('left') + } else { + this.open('none') + } + } else { + if ((x < threshold && x > 0) || (x + leftWidth < -threshold)) { + this.open('right') + } else { + this.open('none') + } + } + } + }, + + /** + * 移动范围 + * @param {Object} num + * @param {Object} mix + * @param {Object} max + */ + range(num, mix, max) { + return `min(max(x+${num}, ${mix}), ${max})` + }, + + /** + * 开启swipe + */ + open(type) { + this.animation(type) + }, + + /** + * 关闭swipe + */ + close() { + this.animation('none') + }, + + /** + * 开启关闭动画 + * @param {Object} type + */ + animation(type) { + const time = 300 + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + if (this.eventpan && this.eventpan.token) { + BindingX.unbind({ + token: this.eventpan.token, + eventType: 'pan' + }) + } + + switch (type) { + case 'left': + Promise.all([ + this.move(this.selector, leftWidth), + this.move(this.leftButton, 0), + this.move(this.rightButton, rightWidth * 2) + ]).then(() => { + this.setEmit(leftWidth, type) + }) + break + case 'right': + Promise.all([ + this.move(this.selector, -rightWidth), + this.move(this.leftButton, -leftWidth * 2), + this.move(this.rightButton, 0) + ]).then(() => { + this.setEmit(-rightWidth, type) + }) + break + default: + Promise.all([ + this.move(this.selector, 0), + this.move(this.leftButton, -leftWidth), + this.move(this.rightButton, rightWidth) + ]).then(() => { + this.setEmit(0, type) + }) + + } + }, + setEmit(x, type) { + const leftWidth = this.button.left.width + const rightWidth = this.button.right.width + this.isopen = this.isopen || 'none' + this.stop = false + this.isclick = false + // 只有状态不一致才会返回结果 + if (this.isopen !== type && this.x !== x) { + if (type === 'left' && leftWidth > 0) { + this.$emit('change', 'left') + } + if (type === 'right' && rightWidth > 0) { + this.$emit('change', 'right') + } + if (type === 'none') { + this.$emit('change', 'none') + } + } + this.x = x + this.isopen = type + }, + move(ref, value) { + return new Promise((resolve, reject) => { + animation.transition(ref, { + styles: { + transform: `translateX(${value})`, + }, + duration: 150, //ms + timingFunction: 'linear', + needLayout: false, + delay: 0 //ms + }, function(res) { + resolve(res) + }) + }) + + }, + + /** + * 获取ref + * @param {Object} el + */ + getEl(el) { + return el.ref + }, + /** + * 获取节点信息 + */ + getSelectorQuery() { + Promise.all([ + this.getDom('left'), + this.getDom('right'), + ]).then((data) => { + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + + if (show === 'none') { + // this.close() + } else { + this.open(show) + } + + }) + + }, + getDom(str) { + return new Promise((resolve, reject) => { + dom.getComponentRect(this.$refs[`selector-${str}-button--hock`], (data) => { + if (data) { + this.button[str] = data.size + resolve(data) + } else { + reject() + } + }) + }) + } + } +} + +// #endif + +export default bindIngXMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js new file mode 100644 index 0000000..9a10ece --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/isPC.js @@ -0,0 +1,12 @@ +export function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (let v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} \ No newline at end of file diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js new file mode 100644 index 0000000..1a68ef8 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpalipay.js @@ -0,0 +1,193 @@ +export default { + data() { + return { + x: 0, + transition: false, + width: 0, + viewWidth: 0, + swipeShow: 0 + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + if (newVal && newVal !== 'none' ) { + this.transition = true + this.open(newVal) + } else { + this.close() + } + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.isopen = false + setTimeout(() => { + this.getQuerySelect() + }, 50) + }, + methods: { + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + /** + * 移动触发 + * @param {Object} e + */ + onChange(e) { + this.moveX = e.detail.x + this.isclose = false + }, + touchstart(e) { + this.transition = false + this.isclose = true + this.autoClose && this.swipeaction.closeOther(this) + }, + touchmove(e) {}, + touchend(e) { + // 0的位置什么都不执行 + if (this.isclose && this.isopen === 'none') return + if (this.isclose && this.isopen !== 'none') { + this.transition = true + this.close() + } else { + this.move(this.moveX + this.leftWidth) + } + }, + + /** + * 移动 + * @param {Object} moveX + */ + move(moveX) { + // 打开关闭的处理逻辑不太一样 + this.transition = true + // 未打开状态 + if (!this.isopen || this.isopen === 'none') { + if (moveX > this.threshold) { + this.open('left') + } else if (moveX < -this.threshold) { + this.open('right') + } else { + this.close() + } + } else { + if (moveX < 0 && moveX < this.rightWidth) { + const rightX = this.rightWidth + moveX + if (rightX < this.threshold) { + this.open('right') + } else { + this.close() + } + } else if (moveX > 0 && moveX < this.leftWidth) { + const leftX = this.leftWidth - moveX + if (leftX < this.threshold) { + this.open('left') + } else { + this.close() + } + } + + } + + }, + + /** + * 打开 + */ + open(type) { + this.x = this.moveX + this.animation(type) + }, + + /** + * 关闭 + */ + close() { + this.x = this.moveX + // TODO 解决 x 值不更新的问题,所以会多触发一次 nextTick ,待优化 + this.$nextTick(() => { + this.x = -this.leftWidth + if(this.isopen!=='none'){ + this.$emit('change', 'none') + } + this.isopen = 'none' + }) + }, + + /** + * 执行结束动画 + * @param {Object} type + */ + animation(type) { + this.$nextTick(() => { + if (type === 'left') { + this.x = 0 + } else { + this.x = -this.rightWidth - this.leftWidth + } + + if(this.isopen!==type){ + this.$emit('change', type) + } + this.isopen = type + }) + + }, + getSlide(x) {}, + getQuerySelect() { + const query = uni.createSelectorQuery().in(this); + query.selectAll('.movable-view--hock').boundingClientRect(data => { + this.leftWidth = data[1].width + this.rightWidth = data[2].width + this.width = data[0].width + this.viewWidth = this.width + this.rightWidth + this.leftWidth + if (this.leftWidth === 0) { + // TODO 疑似bug ,初始化的时候如果x 是0,会导致移动位置错误,所以让元素超出一点 + this.x = -0.1 + } else { + this.x = -this.leftWidth + } + this.moveX = this.x + this.$nextTick(() => { + this.swipeShow = 1 + }) + + if (!this.buttonWidth) { + this.disabledView = true + } + + if (this.autoClose) return + if (this.show !== 'none') { + this.transition = true + this.open(this.shows) + } + }).exec(); + + } + } +} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js new file mode 100644 index 0000000..c44adfd --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpother.js @@ -0,0 +1,257 @@ +let otherMixins = {} + +// #ifndef APP-PLUS|| MP-WEIXIN || H5 +const MIN_DISTANCE = 10; +otherMixins = { + data() { + // TODO 随机生生元素ID,解决百度小程序获取同一个元素位置信息的bug + const elClass = `Uni_${Math.ceil(Math.random() * 10e5).toString(36)}` + return { + uniShow: false, + left: 0, + buttonShow: 'none', + ani: false, + moveLeft:'', + elClass + } + }, + watch: { + show(newVal) { + if (this.autoClose) return + this.openState(newVal) + }, + left(){ + this.moveLeft = `translateX(${this.left}px)` + }, + buttonShow(newVal){ + if (this.autoClose) return + this.openState(newVal) + }, + leftOptions() { + this.init() + }, + rightOptions() { + this.init() + } + }, + mounted() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + this.init() + }, + methods: { + init(){ + clearTimeout(this.timer) + this.timer = setTimeout(() => { + this.getSelectorQuery() + }, 100) + // 移动距离 + this.left = 0 + this.x = 0 + }, + + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + appTouchStart(e) { + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + touchstart(e) { + if (this.disabled) return + this.ani = false + this.x = this.left || 0 + this.stopTouchStart(e) + this.autoClose && this.closeSwipe() + }, + touchmove(e) { + if (this.disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e); + if (this.direction !== 'horizontal') { + return; + } + this.move(this.x + this.deltaX) + return false + }, + touchend() { + if (this.disabled) return + this.moveDirection(this.left) + }, + /** + * 设置移动距离 + * @param {Object} value + */ + move(value) { + value = value || 0 + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + // 获取可滑动范围 + this.left = this.range(value, -rightWidth, leftWidth); + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + */ + moveDirection(left) { + const threshold = this.threshold + const isopen = this.isopen || 'none' + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + if (this.deltaX === 0) { + this.openState('none') + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && rightWidth + + left < threshold)) { + // right + this.openState('right') + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + this.openState('left') + } else { + // default + this.openState('none') + } + }, + + /** + * 开启状态 + * @param {Boolean} type + */ + openState(type) { + const leftWidth = this.leftWidth + const rightWidth = this.rightWidth + let left = '' + this.isopen = this.isopen ? this.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + + if (this.isopen !== type) { + this.throttle = true + this.$emit('change', type) + } + + this.isopen = type + // 添加动画类 + this.ani = true + this.$nextTick(() => { + this.move(left) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 + }, + close() { + this.openState('none') + }, + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus() { + this.direction = ''; + this.deltaX = 0; + this.deltaY = 0; + this.offsetX = 0; + this.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event) { + this.resetTouchStatus(); + const touch = event.touches[0]; + this.startX = touch.clientX; + this.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event) { + const touch = event.touches[0]; + this.deltaX = touch.clientX - this.startX; + this.deltaY = touch.clientY - this.startY; + this.offsetX = Math.abs(this.deltaX); + this.offsetY = Math.abs(this.deltaY); + this.direction = this.direction || this.getDirection(this.offsetX, this.offsetY); + }, + + getSelectorQuery() { + const views = uni.createSelectorQuery().in(this) + views + .selectAll('.'+this.elClass) + .boundingClientRect(data => { + if(data.length === 0) return + let show = 'none' + if (this.autoClose) { + show = 'none' + } else { + show = this.show + } + this.leftWidth = data[0].width || 0 + this.rightWidth = data[1].width || 0 + this.buttonShow = show + }) + .exec() + } + } +} + +// #endif + +export default otherMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js new file mode 100644 index 0000000..e5e30bb --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/mpwxs.js @@ -0,0 +1,82 @@ +let mpMixins = {} +// #ifdef APP-VUE|| MP-WEIXIN || H5 +import { + isPC +} from "./isPC" +mpMixins = { + data() { + return { + is_show: 'none' + } + }, + watch: { + show(newVal) { + this.is_show = this.show + } + }, + created() { + this.swipeaction = this.getSwipeAction() + if (this.swipeaction.children !== undefined) { + this.swipeaction.children.push(this) + } + }, + mounted() { + this.is_show = this.show + }, + methods: { + // wxs 中调用 + closeSwipe(e) { + if (!this.autoClose) return + this.swipeaction.closeOther(this) + }, + + change(e) { + this.$emit('change', e.open) + if (this.is_show !== e.open) { + this.is_show = e.open + } + }, + + appTouchStart(e) { + // #ifdef H5 + if (isPC()) return + // #endif + const { + clientX + } = e.changedTouches[0] + this.clientX = clientX + this.timestamp = new Date().getTime() + }, + appTouchEnd(e, index, item, position) { + // #ifdef H5 + if (isPC()) return + // #endif + const { + clientX + } = e.changedTouches[0] + // fixed by xxxx 模拟点击事件,解决 ios 13 点击区域错位的问题 + let diff = Math.abs(this.clientX - clientX) + let time = (new Date().getTime()) - this.timestamp + if (diff < 40 && time < 300) { + this.$emit('click', { + content: item, + index, + position + }) + } + }, + onClickForPC(index, item, position) { + // #ifdef H5 + if (!isPC()) return + this.$emit('click', { + content: item, + index, + position + }) + // #endif + } + } +} + +// #endif +export default mpMixins diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js new file mode 100644 index 0000000..ed42f1b --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/render.js @@ -0,0 +1,270 @@ +const MIN_DISTANCE = 10; +export default { + showWatch(newVal, oldVal, ownerInstance, instance,self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + if(!$el) return + this.getDom(instance, ownerInstance,self) + if (newVal && newVal !== 'none') { + this.openState(newVal, instance, ownerInstance,self) + return + } + + if (state.left) { + this.openState('none', instance, ownerInstance,self) + } + this.resetTouchStatus(instance,self) + }, + + /** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ + touchstart(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state; + this.getDom(instance, ownerInstance, self) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + this.stopTouchStart(e, ownerInstance, self) + }, + + /** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchmove(e, ownerInstance, self) { + let instance = e.instance; + // 删除之后已经那不到实例了 + if(!instance) return; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + if (disabled) return + // 是否可以滑动页面 + this.stopTouchMove(e, self); + if (state.direction !== 'horizontal') { + return; + } + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + let x = state.x + state.deltaX + this.move(x, instance, ownerInstance, self) + }, + + /** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ + touchend(e, ownerInstance, self) { + let instance = e.instance; + let disabled = instance.getDataset().disabled + let state = self.state + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = this.getDisabledType(disabled) + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + this.moveDirection(state.left, instance, ownerInstance, self) + + }, + + /** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ + move(value, instance, ownerInstance, self) { + value = value || 0 + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = this.range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + + }, + + /** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ + getDom(instance, ownerInstance, self) { + var state = self.state + var $el = ownerInstance.$el || ownerInstance.$vm && ownerInstance.$vm.$el + var leftDom = $el.querySelector('.button-group--left') + var rightDom = $el.querySelector('.button-group--right') + + state.leftWidth = leftDom.offsetWidth || 0 + state.rightWidth = rightDom.offsetWidth || 0 + state.threshold = instance.getDataset().threshold + }, + + getDisabledType(value) { + return (typeof(value) === 'string' ? JSON.parse(value) : value) || false; + }, + + /** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ + range(num, min, max) { + return Math.min(Math.max(num, min), max); + }, + + + /** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ + moveDirection(left, ins, ownerInstance, self) { + var state = self.state + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + this.openState('none', ins, ownerInstance, self) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + this.openState('right', ins, ownerInstance, self) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + this.openState('left', ins, ownerInstance, self) + } else { + // default + this.openState('none', ins, ownerInstance, self) + } + }, + + + /** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ + openState(type, ins, ownerInstance, self) { + let state = self.state + let leftWidth = state.leftWidth + let rightWidth = state.rightWidth + let left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(()=> { + ins.addClass('ani'); + this.move(left, ins, ownerInstance, self) + }) + }, + + + getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; + }, + + /** + * 重置滑动状态 + * @param {Object} event + */ + resetTouchStatus(instance, self) { + let state = self.state; + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; + }, + + /** + * 设置滑动开始位置 + * @param {Object} event + */ + stopTouchStart(event, ownerInstance, self) { + let instance = event.instance; + let state = self.state + this.resetTouchStatus(instance, self); + var touch = event.touches[0]; + state.startX = touch.clientX; + state.startY = touch.clientY; + }, + + /** + * 滑动中,是否禁止打开 + * @param {Object} event + */ + stopTouchMove(event, self) { + let instance = event.instance; + let state = self.state; + let touch = event.touches[0]; + + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || this.getDirection(state.offsetX, state.offsetY); + } +} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue new file mode 100644 index 0000000..f633c9c --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/uni-swipe-action-item.vue @@ -0,0 +1,344 @@ + + + + + + diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs new file mode 100644 index 0000000..b394244 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action-item/wx.wxs @@ -0,0 +1,341 @@ +var MIN_DISTANCE = 10; + +/** + * 判断当前是否为H5、app-vue + */ +var IS_HTML5 = false +if (typeof window === 'object') IS_HTML5 = true + +/** + * 监听页面内值的变化,主要用于动态开关swipe-action + * @param {Object} newValue + * @param {Object} oldValue + * @param {Object} ownerInstance + * @param {Object} instance + */ +function showWatch(newVal, oldVal, ownerInstance, instance) { + var state = instance.getState() + getDom(instance, ownerInstance) + if (newVal && newVal !== 'none') { + openState(newVal, instance, ownerInstance) + return + } + + if (state.left) { + openState('none', instance, ownerInstance) + } + resetTouchStatus(instance) +} + +/** + * 开始触摸操作 + * @param {Object} e + * @param {Object} ins + */ +function touchstart(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState(); + getDom(instance, ownerInstance) + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 开始触摸时移除动画类 + instance.requestAnimationFrame(function() { + instance.removeClass('ani'); + ownerInstance.callMethod('closeSwipe'); + }) + + // 记录上次的位置 + state.x = state.left || 0 + // 计算滑动开始位置 + stopTouchStart(e, ownerInstance) +} + +/** + * 开始滑动操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchmove(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + if (disabled) return + // 是否可以滑动页面 + stopTouchMove(e); + if (state.direction !== 'horizontal') { + return; + } + + if (e.preventDefault) { + // 阻止页面滚动 + e.preventDefault() + } + + move(state.x + state.deltaX, instance, ownerInstance) +} + +/** + * 结束触摸操作 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchend(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 兼容 app-vue 获取dataset为字符串 , h5 获取 为 undefined 的问题,待框架修复 + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return + // 滑动过程中触摸结束,通过阙值判断是开启还是关闭 + // fixed by mehaotian 定时器解决点击按钮,touchend 触发比 click 事件时机早的问题 ,主要是 ios13 + moveDirection(state.left, instance, ownerInstance) + +} + +/** + * 设置移动距离 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function move(value, instance, ownerInstance) { + value = value || 0 + var state = instance.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + // 获取可滑动范围 + state.left = range(value, -rightWidth, leftWidth); + instance.requestAnimationFrame(function() { + instance.setStyle({ + transform: 'translateX(' + state.left + 'px)', + '-webkit-transform': 'translateX(' + state.left + 'px)' + }) + }) + +} + +/** + * 获取元素信息 + * @param {Object} instance + * @param {Object} ownerInstance + */ +function getDom(instance, ownerInstance) { + var state = instance.getState() + var leftDom = ownerInstance.selectComponent('.button-group--left') + var rightDom = ownerInstance.selectComponent('.button-group--right') + var leftStyles = { + width: 0 + } + var rightStyles = { + width: 0 + } + leftStyles = leftDom.getBoundingClientRect() + rightStyles = rightDom.getBoundingClientRect() + + state.leftWidth = leftStyles.width || 0 + state.rightWidth = rightStyles.width || 0 + state.threshold = instance.getDataset().threshold +} + +/** + * 获取范围 + * @param {Object} num + * @param {Object} min + * @param {Object} max + */ +function range(num, min, max) { + return Math.min(Math.max(num, min), max); +} + + +/** + * 移动方向判断 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ +function moveDirection(left, ins, ownerInstance) { + var state = ins.getState() + var threshold = state.threshold + var position = state.position + var isopen = state.isopen || 'none' + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + if (state.deltaX === 0) { + openState('none', ins, ownerInstance) + return + } + if ((isopen === 'none' && rightWidth > 0 && -left > threshold) || (isopen !== 'none' && rightWidth > 0 && + rightWidth + + left < threshold)) { + // right + openState('right', ins, ownerInstance) + } else if ((isopen === 'none' && leftWidth > 0 && left > threshold) || (isopen !== 'none' && leftWidth > 0 && + leftWidth - left < threshold)) { + // left + openState('left', ins, ownerInstance) + } else { + // default + openState('none', ins, ownerInstance) + } +} + + +/** + * 开启状态 + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ +function openState(type, ins, ownerInstance) { + var state = ins.getState() + var leftWidth = state.leftWidth + var rightWidth = state.rightWidth + var left = '' + state.isopen = state.isopen ? state.isopen : 'none' + switch (type) { + case "left": + left = leftWidth + break + case "right": + left = -rightWidth + break + default: + left = 0 + } + + // && !state.throttle + + if (state.isopen !== type) { + state.throttle = true + ownerInstance.callMethod('change', { + open: type + }) + + } + + state.isopen = type + // 添加动画类 + ins.requestAnimationFrame(function() { + ins.addClass('ani'); + move(left, ins, ownerInstance) + }) + // 设置最终移动位置,理论上只要进入到这个函数,肯定是要打开的 +} + + +function getDirection(x, y) { + if (x > y && x > MIN_DISTANCE) { + return 'horizontal'; + } + if (y > x && y > MIN_DISTANCE) { + return 'vertical'; + } + return ''; +} + +/** + * 重置滑动状态 + * @param {Object} event + */ +function resetTouchStatus(instance) { + var state = instance.getState(); + state.direction = ''; + state.deltaX = 0; + state.deltaY = 0; + state.offsetX = 0; + state.offsetY = 0; +} + +/** + * 设置滑动开始位置 + * @param {Object} event + */ +function stopTouchStart(event) { + var instance = event.instance; + var state = instance.getState(); + resetTouchStatus(instance); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.startX = touch.clientX; + state.startY = touch.clientY; +} + +/** + * 滑动中,是否禁止打开 + * @param {Object} event + */ +function stopTouchMove(event) { + var instance = event.instance; + var state = instance.getState(); + var touch = event.touches[0]; + if (IS_HTML5 && isPC()) { + touch = event; + } + state.deltaX = touch.clientX - state.startX; + state.deltaY = touch.clientY - state.startY; + state.offsetY = Math.abs(state.deltaY); + state.offsetX = Math.abs(state.deltaX); + state.direction = state.direction || getDirection(state.offsetX, state.offsetY); +} + +function isPC() { + var userAgentInfo = navigator.userAgent; + var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"]; + var flag = true; + for (var v = 0; v < Agents.length - 1; v++) { + if (userAgentInfo.indexOf(Agents[v]) > 0) { + flag = false; + break; + } + } + return flag; +} + +var movable = false + +function mousedown(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchstart(e, ins) + movable = true +} + +function mousemove(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + if (!movable) return + touchmove(e, ins) +} + +function mouseup(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + touchend(e, ins) + movable = false +} + +function mouseleave(e, ins) { + if (!IS_HTML5) return + if (!isPC()) return + movable = false +} + +module.exports = { + showWatch: showWatch, + touchstart: touchstart, + touchmove: touchmove, + touchend: touchend, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseleave: mouseleave +} diff --git a/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue b/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue new file mode 100644 index 0000000..4971782 --- /dev/null +++ b/uni_modules/uni-swipe-action/components/uni-swipe-action/uni-swipe-action.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/uni_modules/uni-swipe-action/package.json b/uni_modules/uni-swipe-action/package.json new file mode 100644 index 0000000..7938097 --- /dev/null +++ b/uni_modules/uni-swipe-action/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-swipe-action", + "displayName": "uni-swipe-action 滑动操作", + "version": "1.3.3", + "description": "SwipeAction 滑动操作操作组件", + "keywords": [ + "", + "uni-ui", + "uniui", + "滑动删除", + "侧滑删除" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-swipe-action/readme.md b/uni_modules/uni-swipe-action/readme.md new file mode 100644 index 0000000..93a5cac --- /dev/null +++ b/uni_modules/uni-swipe-action/readme.md @@ -0,0 +1,11 @@ + + +## SwipeAction 滑动操作 +> **组件名:uni-swipe-action** +> 代码块: `uSwipeAction`、`uSwipeActionItem` + + +通过滑动触发选项的容器 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swipe-action) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-swiper-dot/changelog.md b/uni_modules/uni-swiper-dot/changelog.md new file mode 100644 index 0000000..85cf54d --- /dev/null +++ b/uni_modules/uni-swiper-dot/changelog.md @@ -0,0 +1,12 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swiper-dot](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.6(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.5(2021-02-05) +- 调整为uni_modules目录规范 +- 新增 clickItem 事件,支持指示点控制轮播 +- 新增 支持 pc 可用 diff --git a/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue b/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue new file mode 100644 index 0000000..46eb8c1 --- /dev/null +++ b/uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue @@ -0,0 +1,218 @@ + + + + + diff --git a/uni_modules/uni-swiper-dot/package.json b/uni_modules/uni-swiper-dot/package.json new file mode 100644 index 0000000..f2dd8d2 --- /dev/null +++ b/uni_modules/uni-swiper-dot/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-swiper-dot", + "displayName": "uni-swiper-dot 轮播图指示点", + "version": "1.2.0", + "description": "自定义轮播图指示点组件", + "keywords": [ + "uni-ui", + "uniui", + "轮播图指示点", + "dot", + "swiper" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-swiper-dot/readme.md b/uni_modules/uni-swiper-dot/readme.md new file mode 100644 index 0000000..7d397e2 --- /dev/null +++ b/uni_modules/uni-swiper-dot/readme.md @@ -0,0 +1,11 @@ + + +## SwiperDot 轮播图指示点 +> **组件名:uni-swiper-dot** +> 代码块: `uSwiperDot` + + +自定义轮播图指示点 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-table/changelog.md b/uni_modules/uni-table/changelog.md new file mode 100644 index 0000000..b7aada3 --- /dev/null +++ b/uni_modules/uni-table/changelog.md @@ -0,0 +1,21 @@ +## 1.2.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-table](https://uniapp.dcloud.io/component/uniui/uni-table) +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-07-08) +- 新增 uni-th 支持 date 日期筛选范围 +## 1.0.6(2021-07-05) +- 新增 uni-th 支持 range 筛选范围 +## 1.0.5(2021-06-28) +- 新增 uni-th 筛选功能 +## 1.0.4(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.3(2021-04-16) +- 新增 sortable 属性,是否开启单列排序 +- 优化 表格多选逻辑 +## 1.0.2(2021-03-22) +- uni-tr 添加 disabled 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-table/components/uni-table/uni-table.vue b/uni_modules/uni-table/components/uni-table/uni-table.vue new file mode 100644 index 0000000..91b74fa --- /dev/null +++ b/uni_modules/uni-table/components/uni-table/uni-table.vue @@ -0,0 +1,455 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue new file mode 100644 index 0000000..fbe1bdc --- /dev/null +++ b/uni_modules/uni-table/components/uni-tbody/uni-tbody.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-td/uni-td.vue b/uni_modules/uni-table/components/uni-td/uni-td.vue new file mode 100644 index 0000000..9ce93e9 --- /dev/null +++ b/uni_modules/uni-table/components/uni-td/uni-td.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/filter-dropdown.vue b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue new file mode 100644 index 0000000..bc9a0e3 --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/filter-dropdown.vue @@ -0,0 +1,503 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-th/uni-th.vue b/uni_modules/uni-table/components/uni-th/uni-th.vue new file mode 100644 index 0000000..65856c5 --- /dev/null +++ b/uni_modules/uni-table/components/uni-th/uni-th.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-thead/uni-thead.vue b/uni_modules/uni-table/components/uni-thead/uni-thead.vue new file mode 100644 index 0000000..0dd18cd --- /dev/null +++ b/uni_modules/uni-table/components/uni-thead/uni-thead.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/table-checkbox.vue b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue new file mode 100644 index 0000000..158f3ff --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/table-checkbox.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/uni_modules/uni-table/components/uni-tr/uni-tr.vue b/uni_modules/uni-table/components/uni-tr/uni-tr.vue new file mode 100644 index 0000000..f9b9671 --- /dev/null +++ b/uni_modules/uni-table/components/uni-tr/uni-tr.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/uni_modules/uni-table/i18n/en.json b/uni_modules/uni-table/i18n/en.json new file mode 100644 index 0000000..e32023c --- /dev/null +++ b/uni_modules/uni-table/i18n/en.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reset", + "filter-dropdown.search": "Search", + "filter-dropdown.submit": "Submit", + "filter-dropdown.filter": "Filter", + "filter-dropdown.gt": "Greater or equal to", + "filter-dropdown.lt": "Less than or equal to", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/es.json b/uni_modules/uni-table/i18n/es.json new file mode 100644 index 0000000..9afd04b --- /dev/null +++ b/uni_modules/uni-table/i18n/es.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Reiniciar", + "filter-dropdown.search": "Búsqueda", + "filter-dropdown.submit": "Entregar", + "filter-dropdown.filter": "Filtrar", + "filter-dropdown.gt": "Mayor o igual a", + "filter-dropdown.lt": "Menos que o igual a", + "filter-dropdown.date": "Fecha" +} diff --git a/uni_modules/uni-table/i18n/fr.json b/uni_modules/uni-table/i18n/fr.json new file mode 100644 index 0000000..b006237 --- /dev/null +++ b/uni_modules/uni-table/i18n/fr.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "Réinitialiser", + "filter-dropdown.search": "Chercher", + "filter-dropdown.submit": "Soumettre", + "filter-dropdown.filter": "Filtre", + "filter-dropdown.gt": "Supérieur ou égal à", + "filter-dropdown.lt": "Inférieur ou égal à", + "filter-dropdown.date": "Date" +} diff --git a/uni_modules/uni-table/i18n/index.js b/uni_modules/uni-table/i18n/index.js new file mode 100644 index 0000000..2469dd0 --- /dev/null +++ b/uni_modules/uni-table/i18n/index.js @@ -0,0 +1,12 @@ +import en from './en.json' +import es from './es.json' +import fr from './fr.json' +import zhHans from './zh-Hans.json' +import zhHant from './zh-Hant.json' +export default { + en, + es, + fr, + 'zh-Hans': zhHans, + 'zh-Hant': zhHant +} diff --git a/uni_modules/uni-table/i18n/zh-Hans.json b/uni_modules/uni-table/i18n/zh-Hans.json new file mode 100644 index 0000000..862af17 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hans.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "确定", + "filter-dropdown.filter": "筛选", + "filter-dropdown.gt": "大于等于", + "filter-dropdown.lt": "小于等于", + "filter-dropdown.date": "日期范围" +} diff --git a/uni_modules/uni-table/i18n/zh-Hant.json b/uni_modules/uni-table/i18n/zh-Hant.json new file mode 100644 index 0000000..64f8061 --- /dev/null +++ b/uni_modules/uni-table/i18n/zh-Hant.json @@ -0,0 +1,9 @@ +{ + "filter-dropdown.reset": "重置", + "filter-dropdown.search": "搜索", + "filter-dropdown.submit": "確定", + "filter-dropdown.filter": "篩選", + "filter-dropdown.gt": "大於等於", + "filter-dropdown.lt": "小於等於", + "filter-dropdown.date": "日期範圍" +} diff --git a/uni_modules/uni-table/package.json b/uni_modules/uni-table/package.json new file mode 100644 index 0000000..754e753 --- /dev/null +++ b/uni_modules/uni-table/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-table", + "displayName": "uni-table 表格", + "version": "1.2.0", + "description": "表格组件,多用于展示多条结构类似的数据,如", + "keywords": [ + "uni-ui", + "uniui", + "table", + "表格" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss","uni-datetime-picker"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "n", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-table/readme.md b/uni_modules/uni-table/readme.md new file mode 100644 index 0000000..bb08c79 --- /dev/null +++ b/uni_modules/uni-table/readme.md @@ -0,0 +1,13 @@ + + +## Table 表单 +> 组件名:``uni-table``,代码块: `uTable`。 + +用于展示多条结构类似的数据 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-table) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + + diff --git a/uni_modules/uni-tag/changelog.md b/uni_modules/uni-tag/changelog.md new file mode 100644 index 0000000..c0c5839 --- /dev/null +++ b/uni_modules/uni-tag/changelog.md @@ -0,0 +1,21 @@ +## 2.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-tag](https://uniapp.dcloud.io/component/uniui/uni-tag) +## 2.0.0(2021-11-09) +- 新增 提供组件设计资源,组件样式调整 +- 移除 插槽 +- 移除 type 属性的 royal 选项 +## 1.1.1(2021-08-11) +- type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.1.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.7(2021-06-18) +- 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.0.6(2021-06-04) +- 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.0.5(2021-05-10) +- 修复 royal 类型无效的bug +- 修复 uni-tag 宽度不自适应的bug +- 新增 uni-tag 支持属性 custom-style 自定义样式 +## 1.0.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-tag/components/uni-tag/uni-tag.vue b/uni_modules/uni-tag/components/uni-tag/uni-tag.vue new file mode 100644 index 0000000..6378a0b --- /dev/null +++ b/uni_modules/uni-tag/components/uni-tag/uni-tag.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/uni_modules/uni-tag/package.json b/uni_modules/uni-tag/package.json new file mode 100644 index 0000000..1878088 --- /dev/null +++ b/uni_modules/uni-tag/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-tag", + "displayName": "uni-tag 标签", + "version": "2.1.0", + "description": "Tag 组件,用于展示1个或多个文字标签,可点击切换选中、不选中的状态。", + "keywords": [ + "uni-ui", + "uniui", + "", + "tag", + "标签" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-tag/readme.md b/uni_modules/uni-tag/readme.md new file mode 100644 index 0000000..6e78ff5 --- /dev/null +++ b/uni_modules/uni-tag/readme.md @@ -0,0 +1,13 @@ + + +## Tag 标签 +> **组件名:uni-tag** +> 代码块: `uTag` + + +用于展示1个或多个文字标签,可点击切换选中、不选中的状态 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tag) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + diff --git a/uni_modules/uni-test/changelog.md b/uni_modules/uni-test/changelog.md new file mode 100644 index 0000000..2f3b102 --- /dev/null +++ b/uni_modules/uni-test/changelog.md @@ -0,0 +1,39 @@ +## 2.0.13(2021-11-18) +邱 +## 2.0.12(2021-11-18) +123123 +## 2.0.11(2021-11-18) +0000 +## 2.0.10(2021-11-18) +111234 +## 2.0.9(2021-11-18) +3333 +## 2.0.8(2021-11-18) +=== +## 2.0.7(2021-11-18) +111 +## 2.0.6(2021-05-26) +- test +## 0.0.37(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.36(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.35(2021-03-23) +- uni-forms 更新 校验器 +- uni-forms 修复 表单规则设置类型为 number 的情况下,值为0校验失败的Bug + + +## 0.0.34(2021-03-23) +- 测试新同步插件 +## 0.0.33(2021-03-09) +- test +## 0.0.32(2021-02-24) +- 更新 read 2 +## 0.0.31(2021-02-24) +- 同步 readme.md diff --git a/uni_modules/uni-test/components/uni-test/uni-test.vue b/uni_modules/uni-test/components/uni-test/uni-test.vue new file mode 100644 index 0000000..9ea8aaf --- /dev/null +++ b/uni_modules/uni-test/components/uni-test/uni-test.vue @@ -0,0 +1,26 @@ + + + + + diff --git a/uni_modules/uni-test/package.json b/uni_modules/uni-test/package.json new file mode 100644 index 0000000..9a3c4c4 --- /dev/null +++ b/uni_modules/uni-test/package.json @@ -0,0 +1,83 @@ +{ + "id": "uni-test", + "displayName": "Test 测试插件", + "version": "2.0.13", + "description": "测试插件 ", + "keywords": [ + "test" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.3" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "y", + "联盟": "y" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-test/readme.md b/uni_modules/uni-test/readme.md new file mode 100644 index 0000000..ddb24c6 --- /dev/null +++ b/uni_modules/uni-test/readme.md @@ -0,0 +1,10 @@ + + +## DataCheckbox 数据驱动的单选复选框 +> **组件名:uni-data-checkbox** +> 代码块: `uDataCheckbox` + + +本组件是基于uni-app基础组件checkbox的封装。本组件要解决问题包括: + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-card) \ No newline at end of file diff --git a/uni_modules/uni-title/changelog.md b/uni_modules/uni-title/changelog.md new file mode 100644 index 0000000..f0f1d67 --- /dev/null +++ b/uni_modules/uni-title/changelog.md @@ -0,0 +1,8 @@ +## 1.1.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-title](https://uniapp.dcloud.io/component/uniui/uni-title) +## 1.0.2(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的Bug +## 1.0.1(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-title/components/uni-title/uni-title.vue b/uni_modules/uni-title/components/uni-title/uni-title.vue new file mode 100644 index 0000000..1f3a91a --- /dev/null +++ b/uni_modules/uni-title/components/uni-title/uni-title.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/uni_modules/uni-title/package.json b/uni_modules/uni-title/package.json new file mode 100644 index 0000000..3b37082 --- /dev/null +++ b/uni_modules/uni-title/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-title", + "displayName": "uni-title 章节标题", + "version": "1.1.0", + "description": "章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题", + "keywords": [ + "uni-ui", + "uniui", + "标题", + "章节", + "章节标题", + "" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-title/readme.md b/uni_modules/uni-title/readme.md new file mode 100644 index 0000000..ad1b4bf --- /dev/null +++ b/uni_modules/uni-title/readme.md @@ -0,0 +1,14 @@ + + +## Title 章节标题 +> **组件名:uni-title** +> 代码块: `uTitle` + + +章节标题,通常用于记录页面标题,使用当前组件,uni-app 如果开启统计,将会自动统计页面标题 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-title) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + + diff --git a/uni_modules/uni-transition/changelog.md b/uni_modules/uni-transition/changelog.md new file mode 100644 index 0000000..b1a824b --- /dev/null +++ b/uni_modules/uni-transition/changelog.md @@ -0,0 +1,20 @@ +## 1.3.1(2021-11-23) +- 修复 init 方法初始化问题 +## 1.3.0(2021-11-19) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) +## 1.2.1(2021-09-27) +- 修复 init 方法不生效的 Bug +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建 vue3 项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.1(2021-05-12) +- 新增 示例地址 +- 修复 示例项目缺少组件的 Bug +## 1.1.0(2021-04-22) +- 新增 通过方法自定义动画 +- 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- 优化 动画触发逻辑,使动画更流畅 +- 优化 支持单独的动画类型 +- 优化 文档示例 +## 1.0.2(2021-02-05) +- 调整为 uni_modules 目录规范 diff --git a/uni_modules/uni-transition/components/uni-transition/createAnimation.js b/uni_modules/uni-transition/components/uni-transition/createAnimation.js new file mode 100644 index 0000000..5f54365 --- /dev/null +++ b/uni_modules/uni-transition/components/uni-transition/createAnimation.js @@ -0,0 +1,128 @@ +// const defaultOption = { +// duration: 300, +// timingFunction: 'linear', +// delay: 0, +// transformOrigin: '50% 50% 0' +// } +// #ifdef APP-NVUE +const nvueAnimation = uni.requireNativePlugin('animation') +// #endif +class MPAnimation { + constructor(options, _this) { + this.options = options + this.animation = uni.createAnimation(options) + this.currentStepAnimates = {} + this.next = 0 + this.$ = _this + + } + + _nvuePushAnimates(type, args) { + let aniObj = this.currentStepAnimates[this.next] + let styles = {} + if (!aniObj) { + styles = { + styles: {}, + config: {} + } + } else { + styles = aniObj + } + if (animateTypes1.includes(type)) { + if (!styles.styles.transform) { + styles.styles.transform = '' + } + let unit = '' + if(type === 'rotate'){ + unit = 'deg' + } + styles.styles.transform += `${type}(${args+unit}) ` + } else { + styles.styles[type] = `${args}` + } + this.currentStepAnimates[this.next] = styles + } + _animateRun(styles = {}, config = {}) { + let ref = this.$.$refs['ani'].ref + if (!ref) return + return new Promise((resolve, reject) => { + nvueAnimation.transition(ref, { + styles, + ...config + }, res => { + resolve() + }) + }) + } + + _nvueNextAnimate(animates, step = 0, fn) { + let obj = animates[step] + if (obj) { + let { + styles, + config + } = obj + this._animateRun(styles, config).then(() => { + step += 1 + this._nvueNextAnimate(animates, step, fn) + }) + } else { + this.currentStepAnimates = {} + typeof fn === 'function' && fn() + this.isEnd = true + } + } + + step(config = {}) { + // #ifndef APP-NVUE + this.animation.step(config) + // #endif + // #ifdef APP-NVUE + this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) + this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin + this.next++ + // #endif + return this + } + + run(fn) { + // #ifndef APP-NVUE + this.$.animationData = this.animation.export() + this.$.timer = setTimeout(() => { + typeof fn === 'function' && fn() + }, this.$.durationTime) + // #endif + // #ifdef APP-NVUE + this.isEnd = false + let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref + if(!ref) return + this._nvueNextAnimate(this.currentStepAnimates, 0, fn) + this.next = 0 + // #endif + } +} + + +const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', + 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', + 'translateZ' +] +const animateTypes2 = ['opacity', 'backgroundColor'] +const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] +animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { + MPAnimation.prototype[type] = function(...args) { + // #ifndef APP-NVUE + this.animation[type](...args) + // #endif + // #ifdef APP-NVUE + this._nvuePushAnimates(type, args) + // #endif + return this + } +}) + +export function createAnimation(option, _this) { + if(!_this) return + clearTimeout(_this.timer) + return new MPAnimation(option, _this) +} diff --git a/uni_modules/uni-transition/components/uni-transition/uni-transition.vue b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue new file mode 100644 index 0000000..0d739bd --- /dev/null +++ b/uni_modules/uni-transition/components/uni-transition/uni-transition.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/uni_modules/uni-transition/package.json b/uni_modules/uni-transition/package.json new file mode 100644 index 0000000..d15fdf0 --- /dev/null +++ b/uni_modules/uni-transition/package.json @@ -0,0 +1,87 @@ +{ + "id": "uni-transition", + "displayName": "uni-transition 过渡动画", + "version": "1.3.1", + "description": "元素的简单过渡动画", + "keywords": [ + "uni-ui", + "uniui", + "动画", + "过渡", + "过渡动画" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-transition/readme.md b/uni_modules/uni-transition/readme.md new file mode 100644 index 0000000..2f8a77e --- /dev/null +++ b/uni_modules/uni-transition/readme.md @@ -0,0 +1,11 @@ + + +## Transition 过渡动画 +> **组件名:uni-transition** +> 代码块: `uTransition` + + +元素过渡动画 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-transition) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-ui/changelog.md b/uni_modules/uni-ui/changelog.md new file mode 100644 index 0000000..1446368 --- /dev/null +++ b/uni_modules/uni-ui/changelog.md @@ -0,0 +1,383 @@ +## 1.4.14(2022-04-18) +- uni-datetime-picker 修复 Vue3 下动态赋值,单选类型未响应的 bug +- uni-easyinput 修复 默认值不生效的bug +## 1.4.13(2022-04-02) +- uni-calendar 修复 条件编译 nvue 不支持的 css 样式 +- uni-calendar 修复 startDate、 endDate 属性失效的 bug +- uni-data-picker 修复 nvue 不支持的 v-show 的 bug +- uni-data-picker 修复 条件编译 nvue 不支持的 css 样式 +- uni-datetime-picker 修复 Vue3 下动态赋值未响应的 bug +- uni-easyinput 修复 value不能为0的bug +- uni-popup 修复 弹出层内部无法滚动的bug +- uni-popup 修复 小程序中高度错误的bug +- uni-popup 修复 快速调用open出现问题的Bug +- uni-rate 修复 条件判断 `NaN` 错误的 bug +- uni-swipe-action 修复 按钮字体大小不能设置的bug +- uni-swipe-action 修复 h5和app端下报el错误的bug +- uni-swipe-action 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug +## 1.4.12(2022-02-19) +- uni-collapse 修复 初始化的时候 ,open 属性失效的bug +- uni-data-checkbox 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug +- uni-icons 优化 size 属性可以传入不带单位的字符串数值 +- uni-icons 优化 size 支持其他单位 +- uni-nav-bar 新增 left-width/right-width属性 ,可修改左右两侧的宽度 +- uni-popup 修复 safeArea 属性不能设置为false的bug +## 1.4.11(2022-01-21) +- uni-collapse 修复 微信小程序resize后组件收起的bug +- uni-countdown 修复 在微信小程序中样式不生效的bug +- uni-countdown 新增 update 方法 ,在动态更新时间后,刷新组件 +- uni-load-more 新增 showText属性 ,是否显示文本 +- uni-load-more 修复 nvue 平台下不显示文本的bug +- uni-load-more 修复 微信小程序平台样式选择器报警告的问题 +- uni-nav-bar 修复 在vue下,标题不垂直居中的bug +- uni-nav-bar 修复 height 属性类型错误 +- uni-nav-bar 新增 height 属性,可修改组件高度 +- uni-nav-bar 新增 dark 属性可可开启暗黑模式 +- uni-nav-bar 优化 标题字数过多显示省略号 +- uni-nav-bar 优化 插槽,插入内容可完全覆盖 +- uni-popup 修复 isMaskClick 失效的bug +- uni-popup 新增 cancelText \ confirmText 属性 ,可自定义文本 +- uni-popup 新增 maskBackgroundColor 属性 ,可以修改蒙版颜色 +- uni-popup 优化 maskClick属性 更新为 isMaskClick ,解决微信小程序警告的问题 + +## 1.4.10(2022-01-17) +- uni-card 修复 在vue页面下略缩图显示不正常的bug +- uni-datetime-picker 修复 clear-icon 属性在小程序平台不生效的 bug +- uni-datetime-picker 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug +- uni-fab 更新 组件依赖 +- +- uni-icons 修复 nvue 有些图标不显示的bug,兼容老版本图标 +- uni-icons 优化 示例可复制图标名称 +- uni-nav-bar 修复 color 属性不生效的bug +- uni-popup 修复 设置 safeArea 属性不生效的bug +- uni-popup 优化 组件示例 +- uni-popup 修复 vuedoc 文字错误 +## 1.4.9(2021-11-23) +- uni-ui 修复 vue3中某些scss变量无法找到的问题 +- uni-combox 优化 label、label-width 属性 +- uni-data-picker 修复 由上个版本引发的map、v-model等属性不生效的bug +- uni-file-picker 修复 参数为对象的情况下,url在某些情况显示错误的bug +- uni-icons 优化 兼容旧组件 type 值 +- uni-list 修复 在vue3中to属性在发行应用的时候报错的bug +- uni-scss 修复 vue3中scss语法兼容问题 +- uni-transition 修复 init 方法初始化问题 +## 1.4.8(2021-11-19) +- uni-fab 修复 阴影颜色不正确的bug +## 1.4.7(2021-11-19) +- uni-ui 新增 支持国际化 +- uni-ui 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- uni-ui 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) +- uni-badge 修改 size 属性默认值调整为 small +- uni-badge 修改 type 属性,默认值调整为 error,info 替换 default +- uni-badge 修复 在字节小程序上样式不生效的 bug +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-card 重构插槽的用法 ,header 替换为 title +- uni-card 新增 actions 插槽 +- uni-card 新增 cover 封面图属性和插槽 +- uni-card 新增 padding 内容默认内边距离 +- uni-card 新增 margin 卡片默认外边距离 +- uni-card 新增 spacing 卡片默认内边距 +- uni-card 新增 shadow 卡片阴影属性 +- uni-card 取消 mode 属性,可使用组合插槽代替 +- uni-card 取消 note 属性 ,使用actions插槽代替 +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-countdown 新增 font-size 支持自定义字体大小 +- uni-data-checkbox 修复 在uni-forms中 modelValue 中不存在当前字段,当前字段必填写也不参与校验的问题 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 优化 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 修复 hide-second 在移动端的 bug +- uni-datetime-picker 修复 单选赋默认值时,赋值日期未高亮的 bug +- uni-datetime-picker 修复 赋默认值时,移动端未正确显示时间的 bug +- uni-datetime-picker 新增 hide-second 属性,支持只使用时分,隐藏秒 +- uni-datetime-picker 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次 +- uni-datetime-picker 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法 +- uni-datetime-picker 优化 调整字号大小,美化日历界面 +- uni-datetime-picker 优化 范围选择器在 pc 端过宽的问题 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 新增 参数中返回 fileID 字段 +- uni-file-picker 修复 腾讯云传入fileID 不能回显的bug +- uni-file-picker 修复 选择图片后,不能放大的问题 +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 label 插槽不生效的bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-icons 新增 更多图标 +- uni-icons 优化 自定义图标使用方式 +- uni-link 修复 在 nvue 下不显示的 bug +- uni-pagination 修复 current 、value 属性未监听,导致高亮样式失效的 bug +- uni-rate 优化 默认值修改为 0 颗星 +- uni-search-bar 修复 value 属性与 modelValue 属性不兼容的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +- uni-tag 新增 提供组件设计资源,组件样式调整 +- uni-tag 移除 插槽 +- uni-tag 移除 type 属性的 royal 选项 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.4.2(2021-08-20) +- 新增 uni-ui 组件支持国际化 i18n +- uni-collapse 优化 show-arrow 属性默认为true +- uni-collapse 新增 show-arrow 属性,控制是否显示右侧箭头 +- uni-data-checkbox 修复 单选 list 模式下 ,icon 为 left 时,选中图标不显示的问题 +- uni-easyinput 修复 在 uni-forms 的动态表单中默认值校验不通过的 bug +- uni-file-picker 修复 由于 0.2.11 版本引起的不能回显图片的Bug +- uni-file-picker 新增 clearFiles(index) 方法,可以手动删除指定文件 +- uni-file-picker 修复 v-model 值设为 null 报错的Bug +- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件 +- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件 +- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题 +- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题 +## 1.4.0(2021-08-13) +- uni-calendar 修复 弹出层被 tabbar 遮盖 bug +- uni-data-checkbox 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-dateformat 调整 默认时间不再是当前时间,而是显示'-'字符 +- uni-datetime-picker 新增 适配 vue3 +- uni-datetime-picker 新增 支持作为 uni-forms 子组件相关功能 +- uni-datetime-picker 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug +- uni-datetime-picker 修复 type 属性动态赋值无效的 bug +- uni-datetime-picker 修复 ‘确认’按钮被 tabbar 遮盖 bug +- uni-datetime-picker 修复 组件未赋值时范围选左、右日历相同的 bug +- uni-datetime-picker 修复 范围选未正确显示当前值的 bug +- uni-datetime-picker 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug +- uni-easyinput 修复 在 uni-forms 中重置表单,错误信息无法清除的问题 +- uni-file-picker 修复 return-type="object" 时,无法删除文件的Bug +- uni-file-picker 修复 auto-upload 属性失效的Bug +- uni-forms 修复 没有添加校验规则的字段依然报错的Bug +- uni-forms 修复 重置表单错误信息无法清除的问题 +- uni-forms 优化 组件文档 +- uni-forms 修复 表单验证只生效一次的问题 +- uni-tag type 不是 default 时,size 为 small 字体大小显示不正确 +## 1.3.9(2021-08-02) +- uni-datetime-picker 新增 return-type 属性支持返回 date 日期对象 +- uni-file-picker 修复 fileExtname属性不指定值报错的Bug +- uni-file-picker 修复 在某种场景下图片不回显的Bug +- uni-link 支持自定义插槽 +## 1.3.8(2021-07-31) +- uni-ui 组件兼容 vue3 +- uni-collapse 修复 由1.2.0版本引起的 change 事件返回 undefined 的Bug +- uni-collapse 优化 组件示例 +- uni-collapse 新增 组件折叠动画 +- uni-collapse 新增 value\v-model 属性 ,动态修改面板折叠状态 +- uni-collapse 新增 title 插槽 ,可定义面板标题 +- uni-collapse 新增 border 属性 ,显示隐藏面板内容分隔线 +- uni-collapse 新增 title-border 属性 ,显示隐藏面板标题分隔线 +- uni-collapse 修复 resize 方法失效的Bug +- uni-collapse 修复 change 事件返回参数不正确的Bug +- uni-collapse 优化 H5、App 平台自动更具内容更新高度,无需调用 reszie() 方法 +- uni-data-checkbox 优化 在uni-forms组件,与label不对齐的问题 +- uni-data-checkbox 修复 单选默认值为0不能选中的Bug +- uni-easyinput 优化 errorMessage 属性支持 Boolean 类型 +- uni-file-picker 修复 return-type为object下,返回值不正确的Bug +- uni-file-picker 修复(重要) H5 平台下如果和uni-forms组件一同使用导致页面卡死的问题 +- uni-file-picker 优化 h5平台下上传文件导致页面卡死的问题 +- uni-forms 修复 vue2 下条件编译导致destroyed生命周期失效的Bug +- uni-forms 修复 1.2.1 引起的示例在小程序平台报错的Bug +- uni-forms 修复 动态校验表单,默认值为空的情况下校验失效的Bug +- uni-forms 修复 不指定name属性时,运行报错的Bug +- uni-forms 优化 label默认宽度从65调整至70,使required为true且四字时不换行 +- uni-forms 优化 组件示例,新增动态校验示例代码 +- uni-forms 优化 组件文档,使用方式更清晰 +- uni-list 修复 与其他组件嵌套使用时,点击失效的Bug +- uni-swipe-action 修复 跨页面修改组件数据 ,导致不能滑动的问题 +## 1.3.7(2021-07-16) +- uni-ui 兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +- uni-datetime-picker 修复 单选日期类型,初始赋值后不在当前日历的 bug +- uni-datetime-picker 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效) +- uni-datetime-picker 优化 移动端移除显示框的清空按钮,无实际用途 +- uni-datetime-picker 修复 组件赋值为空,界面未更新的 bug +- uni-datetime-picker 修复 start 和 end 不能动态赋值的 bug +- uni-datetime-picker 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug +## 1.3.6(2021-07-09) +- uni-data-checkbox 优化 删除无用日志 +- uni-data-checkbox 修复 由 0.1.9 引起的非 nvue 端图标不显示的问题 +- uni-data-checkbox 修复 nvue 黑框样式问题 +- uni-datetime-picker 修复 范围选择不能动态赋值的 bug +- uni-datetime-picker 修复 范围选择的初始时间在一个月内时,造成无法选择的bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘定位不准确的问题 +- uni-datetime-picker 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug +- uni-datetime-picker 优化 弹出层在超出视窗边缘被遮盖的问题 +- uni-datetime-picker 新增 maskClick 事件 +- uni-datetime-picker 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px +- uni-datetime-picker 修复 范围选择时清空返回值不合理的bug,['', ''] -> [] +- uni-datetime-picker 新增 日期时间显示框支持插槽 +- uni-file-picker 修复 sourceType 缺少默认值导致 ios 无法选择文件 +- uni-file-picker 优化 解耦与uniCloud的强绑定关系 ,如不绑定服务空间,默认autoUpload为false且不可更改 +- uni-table 新增 uni-th 支持 date 日期筛选范围 +- uni-table 新增 uni-th 支持 range 筛选范围 +- uni-table 新增 uni-th 筛选功能 +## 1.3.5(2021-07-02) +- uni-card 优化 图文卡片无图片加载时,提供占位图标 +- uni-card 新增 header 插槽,自定义卡片头部( 图文卡片 mode="style" 时,不支持) +- uni-card 修复 thumbnail 不存在仍然占位的 bug +- uni-data-checkbox 修复 selectedTextColor 属性不生效的Bug +- uni-datetime-picker 优化 添加 uni-icons 依赖 +- uni-easyinput 修复 confirmType 属性(仅 type="text" 生效)导致多行文本框无法换行的 bug +- uni-file-picker 修复 由 0.0.10 版本引发的 returnType 属性失效的问题 +- uni-file-picker 优化 文件上传后进度条消失时机 +- uni-file-picker 修复 在uni-forms 中,删除文件 ,获取的值不对的Bug +- uni-forms 修复 pattern 属性在微信小程序平台无效的问题 +## 1.3.4(2021-06-25) +- uni-badge 优化 示例项目 +- uni-countdown 修复 uni-countdown 重复赋值跳两秒的 bug +- uni-easyinput 修复 passwordIcon 属性拼写错误的 bug +- uni-forms 修复 validate-trigger属性为submit且err-show-type属性为toast时不能弹出的Bug +- uni-forms 修复 只写setRules方法而导致校验不生效的Bug +- uni-forms 修复 由上个办法引发的错误提示文字错位的Bug +- uni-forms 修复 不设置 label 属性 ,无法设置label插槽的问题 +- uni-forms 修复 不设置label属性,label-width属性不生效的bug +- uni-forms 修复 setRules 方法与rules属性冲突的问题 +- uni-link 新增 download 属性,H5平台下载文件名 +- uni-popup 新增 mask-click 遮罩层点击事件 +- uni-popup 修复 nvue 平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-tag 修复 uni-tag 在字节跳动小程序上 css 类名编译错误的 bug +## 1.3.3(2021-06-18) +- uni-easyinput 新增 passwordIcon 属性,当type=password时是否显示小眼睛图标 +- uni-easyinput 修复 confirmType 属性不生效的问题 +- uni-easyinput 修复 disabled 状态可清出内容的 bug +- uni-file-picker 修复 删除文件时无法触发 v-model 的Bug +- uni-popup 修复 H5平台中间弹出后,点击内容,再点击遮罩无法关闭的Bug +- uni-popup 修复 错误的 watch 字段 +- uni-popup 修复 safeArea 属性不生效的问题 +- uni-popup 修复 点击内容,再点击遮罩无法关闭的Bug +## 1.3.2(2021-06-04) +- uni-data-checkbox 新增 map 属性,可以方便映射text/value属性 +- uni-data-checkbox 修复 不关联服务空间的情况下组件报错的Bug +- uni-data-picker 修复 上个版本引出的本地数据无法选择带有children的2级节点 +- uni-forms 修复 动态删减数据导致报错的问题 +- uni-forms 新增 modelValue 属性 ,value 即将废弃 +- uni-forms 新增 uni-forms-item 可以设置单独的 rules +- uni-forms 新增 validate 事件增加 keepitem 参数,可以选择那些字段不过滤 +- uni-forms 优化 submit 事件重命名为 validate +- uni-data-picker 修复 无法加载云端数据的问题 +- uni-data-picker 修复 v-model无效问题 +- uni-data-picker 修复 loaddata 为空数据组时加载时间过长问题 +- uni-datetime-picker 修复 图标在小程序上不显示的 bug +- uni-datetime-picker 优化 重命名引用组件,避免潜在组件命名冲突 +- uni-datetime-picker 优化 代码目录扁平化 +- uni-tag 修复 未定义 sass 变量 "$uni-color-royal" 的bug +## 1.3.1(2021-05-14) +- uni-badge 新增 uni-badge 的 absolute 属性,支持定位 +- uni-badge 新增 uni-badge 的 offset 属性,支持定位偏移 +- uni-badge 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点 +- uni-badge 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+ +- uni-badge 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式 +- uni-badge 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug +- uni-badge 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug +- uni-badge 新增 uni-badge 属性 custom-style, 支持自定义样式 +- uni-datetime-picker 修复 ios 下不识别 '-' 日期格式的 bug +- uni-datetime-picker 优化 pc 下弹出层添加边框和阴影 +- uni-datetime-picker 修复 在 admin 中获取弹出层定位错误的bug +- uni-datetime-picker 修复 type 属性向下兼容,默认值从 date 变更为 datetime +- uni-datetime-picker 支持日历形式的日期+时间的范围选择 +- uni-steps 修复 uni-steps 横向布局时,多行文字高度不合理的 bug +- uni-countdown 修复 uni-countdown 不能控制倒计时的 bug +- uni-tag 修复 royal 类型无效的bug +- uni-tag 修复 uni-tag 宽度不自适应的bug +- uni-tag 新增 uni-tag 支持属性 custom-style 自定义样式 +- uni-link 新增 href 属性支持 tel:|mailto: +- uni-popup 修复 组件内放置 input 、textarea 组件,无法聚焦的问题 +- uni-popup 新增 type 属性的 left\right 值,支持左右弹出 +- uni-popup 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗 +- uni-popup 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色 +- uni-popup 新增 safeArea 属性,是否适配底部安全区 +- uni-popup 修复 App\h5\微信小程序底部安全区占位不对的Bug +- uni-popup 修复 App 端弹出等待的Bug +- uni-popup 优化 提升低配设备性能,优化动画卡顿问题 +- uni-popup 优化 更简单的组件自定义方式 +- uni-table 修复 示例项目缺少组件的Bug +- uni-forms 修复 自定义检验器失效的问题 +- uni-title 修复 示例项目缺少组件的Bug +- uni-transition 修复 示例项目缺少组件的Bug +- uni-swiper-dot 修复 示例项目缺少组件的Bug +- uni-ui 新增 组件示例地址 +## 1.3.0(2021-04-23) +- uni-combox 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-data-picker 修复 非树形数据有 where 属性查询报错的问题 +- uni-fav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-goods-nav 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-nav-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-notice-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-number-box 修复 uni-number-box 浮点数运算不精确的 bug +- uni-number-box 修复 uni-number-box change 事件触发不正确的 bug +- uni-number-box 新增 uni-number-box v-model 双向绑定 +- uni-rate 修复 布局变化后 uni-rate 星星计算不准确的 bug +- uni-rate 优化 添加依赖 uni-icons, 导入 uni-rate 自动下载依赖 +- uni-search-bar 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-steps 优化 添加依赖 uni-icons, 导入后自动下载依赖 +- uni-transition 新增 通过方法自定义动画 +- uni-transition 新增 custom-class 非 NVUE 平台支持自定义 class 定制样式 +- uni-transition 优化 动画触发逻辑,使动画更流畅 +- uni-transition 优化 支持单独的动画类型 +- uni-transition 优化 文档示例 +## 1.2.13(2021-04-16) +- uni-ui 新增 uni-data-picker 支持云端非树形表结构数据 +- uni-ui 修复 uni-data-checkbox nvue 下无法选中的问题 +- uni-ui 修复 uni-data-picker 根节点 parent_field 字段等于null时选择界面错乱问题 +- uni-ui 修复 uni-file-picker 选择的文件非 file-extname 字段指定的扩展名报错的Bug +- uni-ui 修复 uni-swipe-action 报错 nv_navigator is not defined 的bug +- uni-ui 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug +- uni-ui 优化 uni-file-picker file-extname 字段支持字符串写法,多个扩展名需要用逗号分隔 +- uni-ui 优化 uni-pagination PC 和 移动端适配不同的 ui +- uni-ui 更新 uni-file-picker 组件示例 +- uni-ui 修复 uni-nav-bar 当 fixed 属性为 true 时铺不满屏幕的 bug +- uni-ui 新增 uni-search-bar 的 focus 事件 +- uni-ui 修复 uni-rate 属性 margin 值为 string 组件失效的 bug +- uni-data-picker 修复 本地数据概率无法回显时问题 +- uni-table 新增 sortable 属性,是否开启单列排序 +- uni-table 优化 表格多选逻辑 +## 1.2.12(2021-03-23) +- uni-ui 新增 uni-datetime-picker 的 hide-second 属性、border 属性; +- uni-ui 修复 uni-datetime-picker 选择跟显示的日期不一样的 bug, +- uni-ui 修复 uni-datetime-picker change事件触发2次的 bug +- uni-ui 修复 uni-datetime-picker 分、秒 end 范围错误的 bug +- uni-ui 新增 uni-tr selectable 属性,用于 type=selection 时,设置某行是否可由全选按钮控制 +- uni-ui 新增 uni-data-checkbox 新增 disabled属性,支持nvue +- uni-ui 优化 uni-data-checkbox 无选项时提示“暂无数据” +- uni-ui 优化 uni-data-checkbox 默认颜色显示 +- uni-ui 新增 uni-link href 属性支持 tel:|mailto: +- uni-ui 新增 uni-table 示例demo +- uni-ui 修复 uni-data-picker 微信小程序某些情况下无法选择的问题,事件无法触发的问题 +- uni-ui 修复 uni-nav-bar easycom 下,找不到 uni-status-bar 的bug +- uni-ui 修复 uni-easyinput 示例在 qq 小程序上的bug +- uni-ui 修复 uni-forms 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug +- uni-ui 调整 cli 项目 建议使用 easycom 方式引用组件,如使用按需引用,需手动维护组件内部引用 + +## 1.2.11(2021-02-24) +- 调整为uni_modules目录规范 +- uni-data-picker 新增 数据驱动的picker选择器 +- uni-file-picker 新增 文件选择上传 +- uni-row 新增 栅格系统 +- uni-data-checkbox 优化 支持 nvue +- uni-forms 修复 偶发性获取表单值错误的Bug +- uni-forms 修复 校验 uni-data-picker value 为 0 时,返回值错误的Bug +- uni-forms 修复 uni-forms-item 组件隐藏时依然触发校验的bug +- uni-forms 优化 实时校验 +- uni-forms 优化 兼容nvue页面 +- uni-easyinput 优化 兼容nvue页面 +- uni-group 优化 兼容nvue页面 +- uni-popup 优化 组件适配 PC +- uni-fab 优化 适配 PC +- uni-swiper-dot 优化 适配 PC +- uni-rate 优化 适配 PC +- uni-notice-bar 优化 适配 PC +- uni-indexed-list 优化 适配 PC +- uni-combox 优化 适配 PC +- uni-transition 优化 适配 PC +- uni-nav-bar 优化 适配 PC +- uni-swipe-action 优化 适配 PC diff --git a/uni_modules/uni-ui/components/uni-ui/uni-ui.vue b/uni_modules/uni-ui/components/uni-ui/uni-ui.vue new file mode 100644 index 0000000..0970892 --- /dev/null +++ b/uni_modules/uni-ui/components/uni-ui/uni-ui.vue @@ -0,0 +1,7 @@ + + + diff --git a/uni_modules/uni-ui/package.json b/uni_modules/uni-ui/package.json new file mode 100644 index 0000000..e860d58 --- /dev/null +++ b/uni_modules/uni-ui/package.json @@ -0,0 +1,128 @@ +{ + "id": "uni-ui", + "displayName": "uni-ui", + "version": "1.4.14", + "description": "uni-ui 是基于uni-app的、全端兼容的、高性能UI框架", + "keywords": [ + "uni-ui", + "uniui", + "UI组件库", + "ui框架", + "ui库" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.10" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-calendar", + "uni-card", + "uni-collapse", + "uni-combox", + "uni-countdown", + "uni-data-checkbox", + "uni-data-picker", + "uni-dateformat", + "uni-datetime-picker", + "uni-drawer", + "uni-easyinput", + "uni-fab", + "uni-fav", + "uni-file-picker", + "uni-forms", + "uni-goods-nav", + "uni-grid", + "uni-group", + "uni-icons", + "uni-indexed-list", + "uni-link", + "uni-list", + "uni-load-more", + "uni-nav-bar", + "uni-notice-bar", + "uni-number-box", + "uni-pagination", + "uni-popup", + "uni-rate", + "uni-row", + "uni-search-bar", + "uni-segmented-control", + "uni-steps", + "uni-swipe-action", + "uni-swiper-dot", + "uni-table", + "uni-tag", + "uni-title", + "uni-transition" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-ui/readme.md b/uni_modules/uni-ui/readme.md new file mode 100644 index 0000000..5541b22 --- /dev/null +++ b/uni_modules/uni-ui/readme.md @@ -0,0 +1,248 @@ +> 当前插件不包含示例页面 ,如需示例请在 HBuiderX 中新建 `hello uni-app > 扩展组件` 中查看 +> +> 代码示例地址 :[https://ext.dcloud.net.cn/plugin?id=4941](https://ext.dcloud.net.cn/plugin?id=4941) +> +> 组件演示地址:[https://hellouniapp.dcloud.net.cn](https://hellouniapp.dcloud.net.cn/pages/extUI/badge/badge) +> +> 组件文档地址:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui) + +# uni-ui 介绍 + +## uni-ui产品特点 + +### 1. 高性能 + +目前为止,在小程序和混合app领域,暂时还没有比 `uni-ui` 更高性能的框架。 +- 自动差量更新数据 + +虽然uni-app支持小程序自定义组件,所有小程序的ui库都可以用。但小程序自定义组件的ui库都需要使用setData手动更新数据,在大数据量时、或高频更新数据时,很容易产生性能问题。 + +而 `uni-ui` 属于vue组件,uni-app引擎底层自动diff更新数据。当然其实插件市场里众多vue组件都具备这个特点。 +- 优化逻辑层和视图层通讯折损 + +非H5,不管是小程序还是App,不管是app的webview渲染还是原生渲染,全都是逻辑层和视图层分离的。这里就有一个逻辑层和视图层通讯的折损问题。 +比如在视图层拖动一个可跟手的组件,由于通讯的损耗,用js监听很难做到实时跟手。 + +这时就需要使用css动画以及平台底层提供的wxs、bindingx等技术。不过这些技术都比较复杂,所以 `uni-ui` 里做了封装,在需要跟手式操作的ui组件,比如swiperaction列表项左滑菜单,就在底层使用了这些技术,实现了高性能的交互体验 +- 背景停止 + +很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Android的webview版本为chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。 + +而 `uni-ui` 的组件,会自动判断自己的显示状态,在组件不再可见时,不会再消耗硬件资源。 + +### 2. 全端 + + `uni-ui` 的组件都是多端自适应的,底层会抹平很多小程序平台的差异或bug。 + +比如导航栏navbar组件,会自动处理不同端的状态栏。 +比如swiperaction组件,在app和微信小程序上会使用交互体验更好的wxs技术,但在不支持wxs的其他小程序端会使用js模拟类似效果。 + + `uni-ui` 还支持nvue原生渲染,[详见](https://github.com/dcloudio/uni-ui/tree/nvue-uni-ui) + +未来 `uni-ui` 还会支持pc等大屏设备。 + +### 3. 与uni统计自动集成实现免打点 + +uni统计是优秀的多端统计平台,见[tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)。 + +除了一张报表看全端,它的另一个重要特点是免打点。 +比如使用 `uni-ui` 的navbar标题栏、收藏、购物车等组件,均可实现自动打点,统计页面标题等各种行为数据。 +当然你也可以关闭uni统计,这不是强制的。 + +### 4. 主题扩展 + + `uni-ui` 支持[uni.scss](https://uniapp.dcloud.io/collocation/uni-scss),可以方便的切换App的风格。 + +ui是一种需求非常发散的产品,DCloud官方也无意用 `uni-ui` 压制第三方ui插件的空间,但官方有义务在性能和多端方面提供一个开源的标杆给大家。 + +我们欢迎更多优秀的ui组件出现,也欢迎更多人贡献 `uni-ui` 的主题风格,满足更多用户的需求。 + + +## 快速开始 + +uni-ui支持 HBuilderX直接新建项目模板、npm安装和单独导入个别组件等多种使用方式 + +### 在HBuilderX 新建uni-app项目的模板中,选择uni-ui模板 +![HBuilderX内创建uni-ui项目](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/create-uni-ui-project.jpg) + +由于uni-app独特的[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)技术,可以免引用、注册,直接使用各种符合规则的vue组件。 + +在代码区键入`u`,拉出各种内置或uni-ui的组件列表,选择其中一个,即可使用该组件。 + +光标放在组件名称上,按F1,可以查阅组件的文档。 + +![uni-ui代码块](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/uni-ui-snippet.jpg) + +### 通过 uni_modules 单独安装组件 +如果你没有创建uni-ui项目模板,也可以在你的工程里,通过 uni_modules 单独安装需要的某个组件。下表为uni-ui的扩展组件清单,点击每个组件在详情页面可以导入组件到项目下,导入后直接使用即可,无需import和注册。 + +|组件名|组件说明| +|---|---| +|uni-badge|[数字角标](https://ext.dcloud.net.cn/plugin?name=uni-badge)| +|uni-calendar|[日历](https://ext.dcloud.net.cn/plugin?name=uni-calendar)| +|uni-card|[卡片](https://ext.dcloud.net.cn/plugin?name=uni-card)| +|uni-collapse|[折叠面板](https://ext.dcloud.net.cn/plugin?name=uni-collapse)| +|uni-combox|[组合框](https://ext.dcloud.net.cn/plugin?name=uni-combox)| +|uni-countdown|[倒计时](https://ext.dcloud.net.cn/plugin?name=uni-countdown)| +|uni-data-checkbox|[数据选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-checkbox)| +|uni-data-picker|[数据驱动的picker选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-picker)| +|uni-dateformat|[日期格式化](https://ext.dcloud.net.cn/plugin?name=uni-dateformat)| +|uni-datetime-picker|[日期选择器](https://ext.dcloud.net.cn/plugin?name=uni-datetime-picker)| +|uni-drawer|[抽屉](https://ext.dcloud.net.cn/plugin?name=uni-drawer)| +|uni-easyinput|[增强输入框](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)| +|uni-fab|[悬浮按钮](https://ext.dcloud.net.cn/plugin?name=uni-fab)| +|uni-fav|[收藏按钮](https://ext.dcloud.net.cn/plugin?name=uni-fav)| +|uni-file-picker|[文件选择上传](https://ext.dcloud.net.cn/plugin?name=uni-file-picker)| +|uni-forms|[表单](https://ext.dcloud.net.cn/plugin?name=uni-forms)| +|uni-goods-nav|[商品导航](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)| +|uni-grid|[宫格](https://ext.dcloud.net.cn/plugin?name=uni-grid)| +|uni-group|[分组](https://ext.dcloud.net.cn/plugin?name=uni-group)| +|uni-icons|[图标](https://ext.dcloud.net.cn/plugin?name=uni-icons)| +|uni-indexed-list|[索引列表](https://ext.dcloud.net.cn/plugin?name=uni-indexed-list)| +|uni-link|[超链接](https://ext.dcloud.net.cn/plugin?name=uni-link)| +|uni-list|[列表](https://ext.dcloud.net.cn/plugin?name=uni-list)| +|uni-load-more|[加载更多](https://ext.dcloud.net.cn/plugin?name=uni-load-more)| +|uni-nav-bar|[自定义导航栏](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)| +|uni-notice-bar|[通告栏](https://ext.dcloud.net.cn/plugin?name=uni-notice-bar)| +|uni-number-box|[数字输入框](https://ext.dcloud.net.cn/plugin?name=uni-number-box)| +|uni-pagination|[分页器](https://ext.dcloud.net.cn/plugin?name=uni-pagination)| +|uni-popup|[弹出层](https://ext.dcloud.net.cn/plugin?name=uni-popup)| +|uni-rate|[评分](https://ext.dcloud.net.cn/plugin?name=uni-rate)| +|uni-row|[布局-行](https://ext.dcloud.net.cn/plugin?name=uni-row)| +|uni-search-bar|[搜索栏](https://ext.dcloud.net.cn/plugin?name=uni-search-bar)| +|Section|[标题栏](https://ext.dcloud.net.cn/plugin?name=uni-section)| +|uni-segmented-control|[分段器](https://ext.dcloud.net.cn/plugin?name=uni-segmented-control)| +|uni-steps|[步骤条](https://ext.dcloud.net.cn/plugin?name=uni-steps)| +|uni-swipe-action|[滑动操作](https://ext.dcloud.net.cn/plugin?name=uni-swipe-action)| +|uni-swiper-dot|[轮播图指示点](https://ext.dcloud.net.cn/plugin?name=uni-swiper-dot)| +|uni-table|[表格](https://ext.dcloud.net.cn/plugin?name=uni-table)| +|uni-tag|[标签](https://ext.dcloud.net.cn/plugin?name=uni-tag)| +|uni-title|[章节标题](https://ext.dcloud.net.cn/plugin?name=uni-title)| +|uni-transition|[过渡动画](https://ext.dcloud.net.cn/plugin?name=uni-transition)| + + +使用 `uni_modules` 方式安装组件库,可以直接通过插件市场导入,通过右键菜单快速更新组件,不需要引用、注册,直接在页面中使用 `uni-ui` 组件。[点击安装 uni-ui 组件库](https://ext.dcloud.net.cn/plugin?id=55) + +**注意:下载最新的组件目前仅支持 uni_modules ,非 uni_modules 版本最高支持到组件的1.2.10版本** + +如不能升级到 `uni_modules` 版本,可以使用 `uni_modules` 安装好对应组件,将组件拷贝到对应目录。 + +例如需更新 `uni-list`和`uni-badge` ,将 `uni_modules>uni-list>components`和`uni_modules>uni-badege>components`下所有目录拷贝到如下目录即可: + + +**目录示例** + +```json +┌─components 组件目录 +│ ├─uni-list list 列表目录 +│ │ └─uni-list.vue list 组件文件 +│ ├─uni-list-item list-item 列表目录 +│ │ └─uni-list-item.vue list 组件文件 +│ ├─uni-badge badge 角标目录 +│ │ └─uni-badge.vue badge 组件文件 +│ └─ //.... 更多组件文件 +├─pages 业务页面文件存放的目录 +│ ├─index +│ │ └─index.vue index示例页面 +├─main.js Vue初始化入口文件 +├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期 +├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见 +└─pages.json 配置页 + +``` + +### 通过 `uni_modules` 导入全部组件 +如果想一次把所有uni-ui组件导入到项目中,只需要导入一个 `uni-ui` 组件即可 [点击去导入](https://ext.dcloud.net.cn/plugin?id=55)。 + +如果没有自动导入其他组件,可以在 uni-ui 组件目录上右键选择 `安装三方插件依赖` 即可。 + + + +### npm安装 +在 `vue-cli` 项目中可以使用 `npm` 安装 `uni-ui` 库 ,或者直接在 `HBuilderX` 项目中使用 `npm` 。 + +> **注意** +> cli 项目默认是不编译 `node_modules` 下的组件的,导致条件编译等功能失效 ,导致组件异常 +> 需要在根目录创建 `vue.config.js` 文件 ,增加 `@dcloudio/uni-ui` 包的编译即可正常 +> ```javascript +> // vue.config.js +> module.exports = { +> transpileDependencies:['@dcloudio/uni-ui'] +> } +> ``` + + + +**准备 sass** + +`vue-cli` 项目请先安装 sass 及 sass-loader,如在 HBuliderX 中使用,可跳过此步。 + +- 安装 sass +``` + npm i sass -D 或 yarn add sass -D +``` + +- 安装 sass-loader +``` +npm i sass-loader@10.1.1 -D 或 yarn add sass-loader@10.1.1 -D +``` + +> 如果 `node` 版本小于 16 ,sass-loader 请使用低于 @11.0.0 的版本,[sass-loader@11.0.0 不支持 vue@2.6.12 ](https://stackoverflow.com/questions/66082397/typeerror-this-getoptions-is-not-a-function) +> 如果 `node` 版本大于 16 , `sass-loader` 建议使用 `v8.x` 版本 + +**安装 uni-ui** + +``` +npm i @dcloudio/uni-ui 或 yarn add @dcloudio/uni-ui +``` + + + +**配置easycom** + +使用 `npm` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom` + +打开项目根目录下的 `pages.json` 并添加 `easycom` 节点: + +```javascript +// pages.json +{ + "easycom": { + "autoscan": true, + "custom": { + // uni-ui 规则如下配置 + "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue" + } + }, + + // 其他内容 + pages:[ + // ... + ] +} + +``` + +在 ``template`` 中使用组件: + +```html + + + +``` + + **注意** + - uni-ui 现在只推荐使用 `easycom` ,如自己引用组件,可能会出现组件找不到的问题 + - 使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 `vue.config.js` 解决: + ```javascript + // 在根目录创建 vue.config.js 文件,并配置如下 + module.exports = { + transpileDependencies: ['@dcloudio/uni-ui'] + } + ``` + - uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。 + - `uni-ui` 不支持使用 `Vue.use()` 的方式安装 + + +### 贡献代码 +在使用 `uni-ui` 中,如遇到无法解决的问题,请提 [Issues](https://github.com/dcloudio/uni-ui/issues) 给我们,假如您有更好的点子或更好的实现方式,也欢迎给我们提交 [PR](https://github.com/dcloudio/uni-ui/pulls) \ No newline at end of file diff --git a/unpackage/dist/dev/.automator/mp-weixin/.automator.json b/unpackage/dist/dev/.automator/mp-weixin/.automator.json new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map new file mode 100644 index 0000000..25faf12 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni-app:///main.js",null,"webpack:///E:/FE/crm-pro/App.vue?d9e1","uni-app:///App.vue","webpack:///E:/FE/crm-pro/App.vue?c1c6","webpack:///E:/FE/crm-pro/App.vue?72e1"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","Vue","config","productionTip","App","mpType","app","$mount"],"mappings":";;;;;;;;;iDAAA;;AAEA;AACA,uE,wnCAHmBA,EAAE,CAACC,iCAAH,GAAuCC,mBAAvC;;AAKnBC,aAAIC,MAAJ,CAAWC,aAAX,GAA2B,KAA3B;;AAEAC,aAAIC,MAAJ,GAAa,KAAb;;AAEA,IAAMC,GAAG,GAAG,IAAIL,YAAJ;AACLG,YADK,EAAZ;;AAGA,UAAAE,GAAG,EAACC,MAAJ,G;;;;;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACc;;;AAGhE;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAA6lB,CAAgB,unBAAG,EAAC,C;;;;;;;;;;;;ACCjnB;AACA;AACA;AACA;AACA,GAJA;AAKA;AACA;AACA,GAPA;AAQA;AACA;AACA,GAVA,E;;;;;;;;;;;ACDA;AAAA;AAAA;AAAA;AAAwoC,CAAgB,8mCAAG,EAAC,C;;;;;;;;;;ACA5pC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\r\n\r\nimport Vue from 'vue'\r\nimport App from './App'\r\n\r\nVue.config.productionTip = false\r\n\r\nApp.mpType = 'app'\r\n\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--12-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=script&lang=js&\"","\r\n\r\n\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--8-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--8-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\sass-loader\\\\dist\\\\cjs.js??ref--8-oneOf-1-4!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--8-oneOf-1-5!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./App.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1651905942640\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map new file mode 100644 index 0000000..a3c2686 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni-app:///D:/HBuilderX/plugins/uniapp-cli/webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,uBAAuB,s8DAAs8D;QAC79D;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar\":1,\"uni_modules/uni-card/components/uni-card/uni-card\":1,\"uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker\":1,\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker\":1,\"uni_modules/uni-forms/components/uni-forms-item/uni-forms-item\":1,\"uni_modules/uni-forms/components/uni-forms/uni-forms\":1,\"components/uni-section/uni-section\":1,\"uni_modules/uni-combox/components/uni-combox/uni-combox\":1,\"uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput\":1,\"uni_modules/uni-icons/components/uni-icons/uni-icons\":1,\"uni_modules/uni-load-more/components/uni-load-more/uni-load-more\":1,\"uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview\":1,\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar\":1,\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker\":1,\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar\":\"uni_modules/uni-search-bar/components/uni-search-bar/uni-search-bar\",\"uni_modules/uni-card/components/uni-card/uni-card\":\"uni_modules/uni-card/components/uni-card/uni-card\",\"uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker\":\"uni_modules/uni-data-picker/components/uni-data-picker/uni-data-picker\",\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker\":\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/uni-datetime-picker\",\"uni_modules/uni-forms/components/uni-forms-item/uni-forms-item\":\"uni_modules/uni-forms/components/uni-forms-item/uni-forms-item\",\"uni_modules/uni-forms/components/uni-forms/uni-forms\":\"uni_modules/uni-forms/components/uni-forms/uni-forms\",\"components/uni-section/uni-section\":\"components/uni-section/uni-section\",\"uni_modules/uni-combox/components/uni-combox/uni-combox\":\"uni_modules/uni-combox/components/uni-combox/uni-combox\",\"uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput\":\"uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput\",\"uni_modules/uni-icons/components/uni-icons/uni-icons\":\"uni_modules/uni-icons/components/uni-icons/uni-icons\",\"uni_modules/uni-load-more/components/uni-load-more/uni-load-more\":\"uni_modules/uni-load-more/components/uni-load-more/uni-load-more\",\"uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview\":\"uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview\",\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar\":\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar\",\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker\":\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker\",\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item\":\"uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item\"}[chunkId]||chunkId) + \".wxss\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map new file mode 100644 index 0000000..f7b5c2f --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-mp-weixin/dist/index.js","uni-app:///uni_modules/uni-load-more/components/uni-load-more/i18n/index.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js","uni-app:///uni_modules/uni-datetime-picker/components/uni-datetime-picker/util.js","uni-app:///uni_modules/uni-search-bar/components/uni-search-bar/i18n/index.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/webpack/buildin/global.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/@babel/runtime/regenerator/index.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime-module.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/regenerator-runtime/runtime.js","uni-app:///uni_modules/uni-forms/components/uni-forms/validate.js","uni-app:///uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js","uni-app:///D:/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/uni-cloud/dist/index.js","uni-app:///pages.json","uni-app:///uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/index.js","uni-app:///uni_modules/uni-icons/components/uni-icons/icons.js"],"names":["realAtob","b64","b64re","atob","str","String","replace","test","Error","slice","length","bitmap","result","r1","r2","i","indexOf","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","join","getCurrentUserInfo","token","wx","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","Object","hasOwnProperty","isFn","fn","isStr","isPlainObject","obj","call","hasOwn","key","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","keys","forEach","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","params","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","getLocale","app","getApp","allowDefault","$vm","$locale","language","setLocale","locale","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","deviceId","addUuid","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","windowHeight","getSystemInfo","showActionSheet","alertText","title","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","arguments","$off","$once","$emit","eventApi","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","mpInstance","oldTriggerEvent","triggerEvent","newTriggerEvent","event","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","vm","mocks","$mp","mpType","mock","hasHook","vueOptions","default","extendOptions","super","mixins","find","mixin","initHooks","mpOptions","__call_hook","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vueId","_$vuePid","initData","context","methods","e","process","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","initBehavior","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","type","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","generic","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","target","detail","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","extraObj","__args__","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","dataset","comType","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","$scope","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","once","messages","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","t","i18nMixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$$t","values","setLocale$1","getLocale$1","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","eventChannels","eventChannelStack","getEventChannel","id","eventChannel","shift","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","$hasScopedSlotsParams","has","$getScopedSlotsParams","object","$setScopedSlotsParams","propsData","destroyed","parseBaseApp","initRefs","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","findVmByVueId","vuePid","$children","childVm","parentVm","Behavior","isPage","route","initRelation","selectAllComponents","selector","$refs","components","component","ref","vueGeneric","scopedComponent","forComponents","handleLink","parent","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","undefined","val2","x","parseBaseComponent","vueComponentOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","is","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","getLaunchOptionsSync","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","en","zhHans","zhHant","Calendar","date","selected","startDate","endDate","range","getDate","cleanMultipleStatus","weeks","lastHover","selectDate","_getWeek","fullDate","multipleStatus","before","AddDayCount","dd","setDate","setMonth","getMonth","setFullYear","getFullYear","y","m","d","year","month","day","getDay","firstDay","full","dateArr","beforeDate","disable","dateData","isinfo","nowDate","isDay","info","dateEqual","disableBefore","disableAfter","dateCompare","multiples","checked","multiplesStatus","findIndex","multiple","beforeMultiple","isLogicBefore","afterMultiple","isLogicAfter","userChecked","extraInfo","surplus","dateInfo","canlender","getTime","currentDay","logicBefore","logicAfter","begin","end","ab","ae","db","de","unixDb","unixDe","k","fulldate","geDateAll","dates","lastMonthDays","_getLastMonthDays","currentMonthDys","_currentMonthDys","nextMonthDays","_getNextMonthDays","isObject","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","defaultFormatter","include","parts","part","startsWith","normalizeLocale","trim","toLowerCase","lang","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","initVueI18n","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","module","exports","require","pattern","email","idcard","RegExp","FORMAT_MAPPING","formatMessage","resources","defaultMessage","reg","isEmptyValue","types","integer","string","array","timestamp","abs","match","RuleValidator","_message","fieldKey","fieldValue","allData","rules","hasRequired","required","rule","vt","_getValidateType","label","RuleValidatorHelper","validateExpr","resultExpr","_getMessage","errorMessage","validateFunction","TAG","callbackMessage","arrayType","maximum","minimum","maxLength","minLength","list","Set","rangeNumber","mismatch","exclusiveMinimum","exclusiveMaximum","min","max","rangeLength","customTypes","typeError","arrayTypeFormat","formatResult","SchemaValidator","schema","_schema","_options","_checkFieldInSchema","invokeValidate","invokeValidateUpdate","all","validateRule","keys2","noExistFields","field","Message","defaultInvalid","whitespace","invalid","localdata","spaceInfo","collection","action","orderby","where","pageData","pageCurrent","pageSize","getcount","getone","gettree","manual","modelValue","preload","stepSearh","selfField","parentField","loading","loadMore","contentdown","contentrefresh","contentnomore","dataList","selectedIndex","count","computed","isLocaldata","postField","fields","dataValue","isModelValue","hasValue","created","al","newValue","oldValue","needReset","onPropsChange","_treeData","getCommand","uniCloud","database","orderBy","getCount","getTree","getOptions","getTreePath","skip","limit","getNodeData","_pathWhere","startWith","treePath","_extractTreePath","loadData","_processLocalData","_loadNodeData","_updateBindData","_updateSelected","_loadAllData","_extractTree","startwith","onDataChange","pw","_postWhere","where_field","_getParentNameByField","_nodeWhere","items","_isTreeView","dl","sl","textField","valueField","dl2","j","item2","node","_filterData","hasNodes","isleaf","_stepSearh","paths","parent_value","nodes","child","children","_findNodePath","path","p","inputValue","globalThis","window","self","__esModule","n","s","r","lib","o","Base","mixIn","init","$super","clone","WordArray","words","sigBytes","clamp","ceil","a","enc","Hex","u","Latin1","h","Utf8","escape","unescape","l","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","_minBufferSize","_doProcessBlock","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","sin","MD5","_hash","g","w","S","T","A","P","I","b","O","E","C","HmacMD5","_hasher","_oKey","_iKey","appid","_globalUniCloudObj","reduce","isReady","initUniCloud","errCode","code","requestId","defineProperties","LOCALE","PLATFORM","OS","APPID","DEVICEID","CLIENT_SDK_VERSION","sign","sort","wrappedRequest","header","statusCode","request","uploadFile","setStorageSync","removeStorageSync","clearStorageSync","U","fr","es","ja","D","param","config","endpoint","requestUrl","envType","accessTokenKey","spaceId","adapter","_getAccessTokenPromise","_getAccessTokenPromiseStatus","accessToken","requestWrapped","hasAccessToken","getAccessToken","rebuildRequest","clientSecret","dataType","requestAuth","setupRequest","setAccessToken","functionTarget","functionArgs","formData","filePath","fileType","onUploadProgress","onProgressUpdate","loaded","totalBytesSent","total","totalBytesExpectedToSend","cloudPath","getOSSUploadOptionsFromPath","env","filename","cdnDomain","ossPath","host","OSSAccessKeyId","accessKeyId","Signature","signature","policy","success_action_status","fileName","uploadFileToOSS","reportOSSUpload","fileID","fileList","tempFileURL","q","signInAnonymously","authorize","getLoginState","auth","customAuth","R","location","L","local","none","session","F","N","$","M","B","isMatch","genAdapter","runtime","WEB","WX_MP","K","H","W","root","tcbObject","z","localStorage","sessionStorage","J","_storage","_persistence","primaryStorage","persistence","accessTokenExpireKey","refreshTokenKey","anonymousUuidKey","loginTypeKey","userInfoKey","includes","getItem","setItem","removeItem","version","content","V","Y","X","G","Q","Z","_listeners","_listens","ee","on","te","fire","ne","off","se","re","oe","ie","ce","ANONYMOUS","WECHAT","WECHAT_PUBLIC","WECHAT_OPEN","EMAIL","USERNAME","NULL","ue","he","le","headers","append","seqId","fe","_reqClass","reqClass","timeout","timeoutMsg","restrictedMethods","_cache","_localCache","post","upload","download","_refreshAccessTokenPromise","_refreshAccessToken","_shouldRefreshAccessTokenHook","removeStore","getStore","refresh_token","send","anonymous_uuid","setRefreshToken","access_token","setStore","access_token_expire","accessTokenExpire","refreshAccessToken","dataVersion","FormData","inQuery","search","status","pe","ge","me","_request","setLocalUserInfo","ye","_envId","setUserInfo","ticket","signInWithRedirect","oldPassword","newPassword","newEmail","username","users","wxOpenId","wxPublicId","hasPrimaryUid","nickName","gender","avatarUrl","province","country","city","_e","credential","refreshToken","user","loginType","we","updatePersistence","uuid","_setAnonymousUUID","refresh","_clearAnonymousUUID","ke","refreshUserInfo","Se","password","ve","Te","_onAnonymousConverted","bind","_onLoginTypeChanged","signIn","_anonymousAuthProvider","linkAndRetrieveDataWithTicket","hasLoginState","isRegistered","Ae","authorization","fileId","cosFileId","Pe","Ie","fileid_list","delete_list","be","fileid","max_age","maxAge","file_list","download_list","Oe","download_url","encodeURI","Ee","function_name","request_data","response_data","Ce","Ue","xe","authObj","requestClient","De","qe","Re","Le","clear","Fe","useAdapters","Ne","$e","je","Me","Be","Ke","fileUrl","He","We","clientInfo","uniIdToken","ze","localAddress","localPort","aliyun","tencent","_originCallFunction","Je","Ve","Ye","source","Xe","Ge","functionName","logPvd","useDebugFunction","log","Qe","callFunction","formatter","debugInfo","forceRemote","Ze","Symbol","et","_internalType","__ob__","tt","nt","st","rt","$regexp","flags","$date","toISOString","ot","prevStage","udb","_database","$db","reverse","$method","$param","toJSON","_send","from","getAction","_callCloudFunction","command","useAggregate","it","at","$newDb","ct","multiCommand","queryList","setResult","_uniClient","systemInfo","level","_callback","_callbackAuth","affectedDocs","uniClient","_authCallBacks","_dbCallBacks","isDefault","$env","Geo","serverDate","ut","ht","lt","dt","ft","pt","tempFiles","substring","lastIndexOf","tempFilePaths","onChooseFile","tempFile","tempFilePath","initChooseAndUploadFile","sizeType","sourceType","extension","chooseImage","camera","compressed","maxDuration","chooseVideo","duration","height","width","chooseFile","chooseMessageFile","gt","mt","gettreepath","limitlevel","groupby","groupField","distinct","foreignKey","loadtime","mixinDatacomLoading","mixinDatacomHasMore","mixinDatacomResData","mixinDatacomErrorMessage","mixinDatacomPage","onMixinDatacomPropsChange","mixinDatacomEasyGet","mixinDatacomGet","groupBy","limitLevel","yt","customUI","loadingOptions","errorOptions","mask","retry","showLoading","hideLoading","showToast","icon","showCancel","cancelText","confirmText","showModal","confirm","cancel","_t","wt","initUniCloudStatus","setTimeout","address","servePort","port","initialLaunchType","kt","debugFunction","navigator","userAgent","reInit","chooseAndUploadFile","mixinDatacom","importObject","St"],"mappings":"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F,IAAD,CAAT,CAAd,CAArB;AACD;AACF,GAJD;AAKD;;AAEDlF,EAAE,CAACwc,SAAH,GAAeA,SAAf;AACAxc,EAAE,CAACqf,UAAH,GAAgBA,UAAhB;AACArf,EAAE,CAACsf,eAAH,GAAqBA,eAArB;AACAtf,EAAE,CAACuf,mBAAH,GAAyBA,mBAAzB;AACAvf,EAAE,CAAC6f,YAAH,GAAkBA,YAAlB;;AAEA,IAAIK,KAAK,GAAGF,GAAZ,C;;AAEeE,K;;;;;;;;;;;;;uFCviEf;AACA;AACA,qF;AACe;AACdC,IAAE,EAAFA,WADc;AAEd,aAAWC,eAFG;AAGd,aAAWC,eAHG,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHf;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;wvBClHMC,Q;AACL;;;;;;;AAOQ,kFAAJ,EAAI,CANPC,IAMO,QANPA,IAMO,CALPC,QAKO,QALPA,QAKO,CAJPC,SAIO,QAJPA,SAIO,CAHPC,OAGO,QAHPA,OAGO,CAFPC,KAEO,QAFPA,KAEO;AACP;AACA,SAAKJ,IAAL,GAAY,KAAKK,OAAL,CAAa,IAAItf,IAAJ,EAAb,CAAZ,CAFO,CAE8B;AACrC;AACA,SAAKkf,QAAL,GAAgBA,QAAQ,IAAI,EAA5B;AACA;AACA,SAAKC,SAAL,GAAiBA,SAAjB;AACA;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKC,KAAL,GAAaA,KAAb;AACA;AACA,SAAKE,mBAAL;AACA;AACA,SAAKC,KAAL,GAAa,EAAb;AACA;AACA;AACA,SAAKC,SAAL,GAAiB,KAAjB;AACA;AACD;;;;AAIQR,Q,EAAM;AACb,WAAKS,UAAL,GAAkB,KAAKJ,OAAL,CAAaL,IAAb,CAAlB;AACA,WAAKU,QAAL,CAAc,KAAKD,UAAL,CAAgBE,QAA9B;AACA;;AAED;;;AAGsB;AACrB,WAAKC,cAAL,GAAsB;AACrBC,cAAM,EAAE,EADa;AAErBxR,aAAK,EAAE,EAFc;AAGrBpL,YAAI,EAAE,EAHe,EAAtB;;AAKA;;AAED;;;AAGeic,a,EAAW;AACzB;AACA,WAAKA,SAAL,GAAiBA,SAAjB;;AAEA;;AAED;;;AAGaC,W,EAAS;AACrB;AACA,WAAKA,OAAL,GAAeA,OAAf;AACA;;AAED;;;AAGQH,Q,EAAoC,KAA9Bc,WAA8B,uEAAhB,CAAgB,KAAb9iB,GAAa,uEAAP,KAAO;AAC3C,UAAI,CAACgiB,IAAL,EAAW;AACVA,YAAI,GAAG,IAAIjf,IAAJ,EAAP;AACA;AACD,UAAI,OAAOif,IAAP,KAAgB,QAApB,EAA8B;AAC7BA,YAAI,GAAGA,IAAI,CAAC9hB,OAAL,CAAa,IAAb,EAAmB,GAAnB,CAAP;AACA;AACD,UAAM6iB,EAAE,GAAG,IAAIhgB,IAAJ,CAASif,IAAT,CAAX;AACA,cAAQhiB,GAAR;AACC,aAAK,KAAL;AACC+iB,YAAE,CAACC,OAAH,CAAWD,EAAE,CAACV,OAAH,KAAeS,WAA1B,EADD,CACwC;AACvC;AACD,aAAK,OAAL;AACC,cAAIC,EAAE,CAACV,OAAH,OAAiB,EAArB,EAAyB;AACxBU,cAAE,CAACC,OAAH,CAAWD,EAAE,CAACV,OAAH,KAAeS,WAA1B;AACA,WAFD,MAEO;AACNC,cAAE,CAACE,QAAH,CAAYF,EAAE,CAACG,QAAH,KAAgBJ,WAA5B,EADM,CACmC;AACzC;AACD;AACD,aAAK,MAAL;AACCC,YAAE,CAACI,WAAH,CAAeJ,EAAE,CAACK,WAAH,KAAmBN,WAAlC,EADD,CACgD;AAC/C,gBAbF;;AAeA,UAAMO,CAAC,GAAGN,EAAE,CAACK,WAAH,EAAV;AACA,UAAME,CAAC,GAAGP,EAAE,CAACG,QAAH,KAAgB,CAAhB,GAAoB,EAApB,GAAyB,OAAOH,EAAE,CAACG,QAAH,KAAgB,CAAvB,CAAzB,GAAqDH,EAAE,CAACG,QAAH,KAAgB,CAA/E,CAxB2C,CAwBsC;AACjF,UAAMK,CAAC,GAAGR,EAAE,CAACV,OAAH,KAAe,EAAf,GAAoB,MAAMU,EAAE,CAACV,OAAH,EAA1B,GAAyCU,EAAE,CAACV,OAAH,EAAnD,CAzB2C,CAyBqB;AAChE,aAAO;AACNM,gBAAQ,EAAEU,CAAC,GAAG,GAAJ,GAAUC,CAAV,GAAc,GAAd,GAAoBC,CADxB;AAENC,YAAI,EAAEH,CAFA;AAGNI,aAAK,EAAEH,CAHD;AAINtB,YAAI,EAAEuB,CAJA;AAKNG,WAAG,EAAEX,EAAE,CAACY,MAAH,EALC,EAAP;;AAOA;;;AAGD;;;AAGkBC,Y,EAAUC,I,EAAM;AACjC,UAAIC,OAAO,GAAG,EAAd;AACA,WAAK,IAAInjB,CAAC,GAAGijB,QAAb,EAAuBjjB,CAAC,GAAG,CAA3B,EAA8BA,CAAC,EAA/B,EAAmC;AAClC,YAAMojB,UAAU,GAAG,IAAIhhB,IAAJ,CAAS8gB,IAAI,CAACL,IAAd,EAAoBK,IAAI,CAACJ,KAAL,GAAa,CAAjC,EAAoC,CAAC9iB,CAAD,GAAK,CAAzC,EAA4C0hB,OAA5C,EAAnB;AACAyB,eAAO,CAAC5e,IAAR,CAAa;AACZ8c,cAAI,EAAE+B,UADM;AAEZN,eAAK,EAAEI,IAAI,CAACJ,KAAL,GAAa,CAFR;AAGZO,iBAAO,EAAE,IAHG,EAAb;;AAKA;AACD,aAAOF,OAAP;AACA;AACD;;;AAGiBG,Y,EAAUJ,I,EAAM;AAChC,UAAIC,OAAO,GAAG,EAAd;AACA,UAAInB,QAAQ,GAAG,KAAKX,IAAL,CAAUW,QAAzB,CAFgC;AAGvBhiB,OAHuB;AAI/B,YAAIujB,MAAM,GAAG,KAAb;AACA,YAAIC,OAAO,GAAGN,IAAI,CAACL,IAAL,GAAY,GAAZ,IAAmBK,IAAI,CAACJ,KAAL,GAAa,EAAb;AAChCI,YAAI,CAACJ,KAD2B,GACnBI,IAAI,CAACJ,KADL,IACc,GADd,IACqB9iB,CAAC,GAAG,EAAJ;AAClC,cAAMA,CAD4B,GACxBA,CAFG,CAAd;AAGA;AACA,YAAIyjB,KAAK,GAAGzB,QAAQ,KAAKwB,OAAzB;AACA;AACA,YAAIE,IAAI,GAAG,KAAI,CAACpC,QAAL,IAAiB,KAAI,CAACA,QAAL,CAAc9P,IAAd,CAAmB,UAAC9F,IAAD,EAAU;AACxD,cAAI,KAAI,CAACiY,SAAL,CAAeH,OAAf,EAAwB9X,IAAI,CAAC2V,IAA7B,CAAJ,EAAwC;AACvC,mBAAO3V,IAAP;AACA;AACD,SAJ2B,CAA5B;;AAMA;AACA,YAAIkY,aAAa,GAAG,IAApB;AACA,YAAIC,YAAY,GAAG,IAAnB;AACA,YAAI,KAAI,CAACtC,SAAT,EAAoB;AACnB;AACA;AACAqC,uBAAa,GAAG,KAAI,CAACE,WAAL,CAAiB,KAAI,CAACvC,SAAtB,EAAiCiC,OAAjC,CAAhB;AACA;;AAED,YAAI,KAAI,CAAChC,OAAT,EAAkB;AACjB;AACA;AACAqC,sBAAY,GAAG,KAAI,CAACC,WAAL,CAAiBN,OAAjB,EAA0B,KAAI,CAAChC,OAA/B,CAAf;AACA;AACD,YAAIuC,SAAS,GAAG,KAAI,CAAC9B,cAAL,CAAoB3c,IAApC;AACA,YAAI0e,OAAO,GAAG,KAAd;AACA,YAAIC,eAAe,GAAG,CAAC,CAAvB;AACA,YAAI,KAAI,CAACxC,KAAT,EAAgB;AACf,cAAIsC,SAAJ,EAAe;AACdE,2BAAe,GAAGF,SAAS,CAACG,SAAV,CAAoB,UAACxY,IAAD,EAAU;AAC/C,qBAAO,KAAI,CAACiY,SAAL,CAAejY,IAAf,EAAqB8X,OAArB,CAAP;AACA,aAFiB,CAAlB;AAGA;AACD,cAAIS,eAAe,KAAK,CAAC,CAAzB,EAA4B;AAC3BD,mBAAO,GAAG,IAAV;AACA;AACD;AACD,YAAI1e,IAAI,GAAG;AACV0c,kBAAQ,EAAEwB,OADA;AAEVX,cAAI,EAAEK,IAAI,CAACL,IAFD;AAGVxB,cAAI,EAAErhB,CAHI;AAIVmkB,kBAAQ,EAAE,KAAI,CAAC1C,KAAL,GAAauC,OAAb,GAAuB,KAJvB;AAKVI,wBAAc,EAAE,KAAI,CAACC,aAAL,CAAmBb,OAAnB,EAA4B,KAAI,CAACvB,cAAL,CAAoBC,MAAhD,EAAwD,KAAI,CAACD,cAAL,CAAoBvR,KAA5E,CALN;AAMV4T,uBAAa,EAAE,KAAI,CAACC,YAAL,CAAkBf,OAAlB,EAA2B,KAAI,CAACvB,cAAL,CAAoBC,MAA/C,EAAuD,KAAI,CAACD,cAAL,CAAoBvR,KAA3E,CANL;AAOVoS,eAAK,EAAEI,IAAI,CAACJ,KAPF;AAQVO,iBAAO,EAAE,EAAEO,aAAa,IAAIC,YAAnB,CARC;AASVJ,eAAK,EAALA,KATU;AAUVe,qBAAW,EAAE,KAVH,EAAX;;AAYA,YAAId,IAAJ,EAAU;AACTpe,cAAI,CAACmf,SAAL,GAAiBf,IAAjB;AACA;;AAEDP,eAAO,CAAC5e,IAAR,CAAae,IAAb,EA5D+B,EAGhC,KAAK,IAAItF,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAIsjB,QAArB,EAA+BtjB,CAAC,EAAhC,EAAoC,OAA3BA,CAA2B;AA0DnC;AACD,aAAOmjB,OAAP;AACA;AACD;;;AAGkBuB,W,EAASxB,I,EAAM;AAChC,UAAIC,OAAO,GAAG,EAAd;AACA,WAAK,IAAInjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0kB,OAAO,GAAG,CAA9B,EAAiC1kB,CAAC,EAAlC,EAAsC;AACrCmjB,eAAO,CAAC5e,IAAR,CAAa;AACZ8c,cAAI,EAAErhB,CADM;AAEZ8iB,eAAK,EAAE7Z,MAAM,CAACia,IAAI,CAACJ,KAAN,CAAN,GAAqB,CAFhB;AAGZO,iBAAO,EAAE,IAHG,EAAb;;AAKA;AACD,aAAOF,OAAP;AACA;;AAED;;;;AAIQ9B,Q,EAAM;AACb,UAAI,CAACA,IAAL,EAAW;AACVA,YAAI,GAAG,IAAIjf,IAAJ,EAAP;AACA;AACD,UAAMuiB,QAAQ,GAAG,KAAKC,SAAL,CAAepT,IAAf,CAAoB,UAAA9F,IAAI,UAAIA,IAAI,CAACsW,QAAL,KAAkB,MAAI,CAACN,OAAL,CAAaL,IAAb,EAAmBW,QAAzC,EAAxB,CAAjB;AACA,aAAO2C,QAAP;AACA;;AAED;;;AAGYpD,a,EAAWC,O,EAAS;AAC/B;AACAD,eAAS,GAAG,IAAInf,IAAJ,CAASmf,SAAS,CAAChiB,OAAV,CAAkB,GAAlB,EAAuB,GAAvB,EAA4BA,OAA5B,CAAoC,GAApC,EAAyC,GAAzC,CAAT,CAAZ;AACA;AACAiiB,aAAO,GAAG,IAAIpf,IAAJ,CAASof,OAAO,CAACjiB,OAAR,CAAgB,GAAhB,EAAqB,GAArB,EAA0BA,OAA1B,CAAkC,GAAlC,EAAuC,GAAvC,CAAT,CAAV;AACA,UAAIgiB,SAAS,IAAIC,OAAjB,EAA0B;AACzB,eAAO,IAAP;AACA,OAFD,MAEO;AACN,eAAO,KAAP;AACA;AACD;;AAED;;;AAGUU,U,EAAQxR,K,EAAO;AACxB;AACAwR,YAAM,GAAG,IAAI9f,IAAJ,CAAS8f,MAAM,CAAC3iB,OAAP,CAAe,GAAf,EAAoB,GAApB,EAAyBA,OAAzB,CAAiC,GAAjC,EAAsC,GAAtC,CAAT,CAAT;AACA;AACAmR,WAAK,GAAG,IAAItO,IAAJ,CAASsO,KAAK,CAACnR,OAAN,CAAc,GAAd,EAAmB,GAAnB,EAAwBA,OAAxB,CAAgC,GAAhC,EAAqC,GAArC,CAAT,CAAR;AACA,UAAI2iB,MAAM,CAAC2C,OAAP,KAAmBnU,KAAK,CAACmU,OAAN,EAAnB,KAAuC,CAA3C,EAA8C;AAC7C,eAAO,IAAP;AACA,OAFD,MAEO;AACN,eAAO,KAAP;AACA;AACD;;AAED;;;;AAIcC,c,EAAY5C,M,EAAQxR,K,EAAO;AACxC,UAAIqU,WAAW,GAAG7C,MAAlB;AACA,UAAIA,MAAM,IAAIxR,KAAd,EAAqB;AACpBqU,mBAAW,GAAG,KAAKjB,WAAL,CAAiB5B,MAAjB,EAAyBxR,KAAzB,IAAkCwR,MAAlC,GAA2CxR,KAAzD;AACA;AACD,aAAO,KAAKiT,SAAL,CAAeoB,WAAf,EAA4BD,UAA5B,CAAP;AACA,K;;AAEYA,c,EAAY5C,M,EAAQxR,K,EAAO;AACvC,UAAIsU,UAAU,GAAGtU,KAAjB;AACA,UAAIwR,MAAM,IAAIxR,KAAd,EAAqB;AACpBsU,kBAAU,GAAG,KAAKlB,WAAL,CAAiB5B,MAAjB,EAAyBxR,KAAzB,IAAkCA,KAAlC,GAA0CwR,MAAvD;AACA;AACD,aAAO,KAAKyB,SAAL,CAAeqB,UAAf,EAA2BF,UAA3B,CAAP;AACA;;AAED;;;;;AAKUG,S,EAAOC,G,EAAK;AACrB,UAAI5O,GAAG,GAAG,EAAV;AACA,UAAI6O,EAAE,GAAGF,KAAK,CAAC3kB,KAAN,CAAY,GAAZ,CAAT;AACA,UAAI8kB,EAAE,GAAGF,GAAG,CAAC5kB,KAAJ,CAAU,GAAV,CAAT;AACA,UAAI+kB,EAAE,GAAG,IAAIjjB,IAAJ,EAAT;AACAijB,QAAE,CAAC7C,WAAH,CAAe2C,EAAE,CAAC,CAAD,CAAjB,EAAsBA,EAAE,CAAC,CAAD,CAAF,GAAQ,CAA9B,EAAiCA,EAAE,CAAC,CAAD,CAAnC;AACA,UAAIG,EAAE,GAAG,IAAIljB,IAAJ,EAAT;AACAkjB,QAAE,CAAC9C,WAAH,CAAe4C,EAAE,CAAC,CAAD,CAAjB,EAAsBA,EAAE,CAAC,CAAD,CAAF,GAAQ,CAA9B,EAAiCA,EAAE,CAAC,CAAD,CAAnC;AACA,UAAIG,MAAM,GAAGF,EAAE,CAACR,OAAH,KAAe,KAAK,EAAL,GAAU,EAAV,GAAe,IAA3C;AACA,UAAIW,MAAM,GAAGF,EAAE,CAACT,OAAH,KAAe,KAAK,EAAL,GAAU,EAAV,GAAe,IAA3C;AACA,WAAK,IAAIY,CAAC,GAAGF,MAAb,EAAqBE,CAAC,IAAID,MAA1B,GAAmC;AAClCC,SAAC,GAAGA,CAAC,GAAG,KAAK,EAAL,GAAU,EAAV,GAAe,IAAvB;AACAnP,WAAG,CAAC/R,IAAJ,CAAS,KAAKmd,OAAL,CAAa,IAAItf,IAAJ,CAASiJ,QAAQ,CAACoa,CAAD,CAAjB,CAAb,EAAoCzD,QAA7C;AACA;AACD,aAAO1L,GAAP;AACA;;AAED;;;AAGY0L,Y,EAAU;;;;AAIjB,WAAKC,cAJY,CAEpBC,MAFoB,wBAEpBA,MAFoB,CAGpBxR,KAHoB,wBAGpBA,KAHoB;AAKrB,UAAI,CAAC,KAAK+Q,KAAV,EAAiB;AACjB,UAAIS,MAAM,IAAIxR,KAAd,EAAqB;AACpB,YAAI,CAAC,KAAKmR,SAAV,EAAqB;AACpB,eAAKA,SAAL,GAAiB,IAAjB;AACA;AACA;AACD,aAAKI,cAAL,CAAoBC,MAApB,GAA6BF,QAA7B;AACA,aAAKC,cAAL,CAAoBvR,KAApB,GAA4B,EAA5B;AACA,aAAKuR,cAAL,CAAoB3c,IAApB,GAA2B,EAA3B;AACA,aAAK2c,cAAL,CAAoByD,QAApB,GAA+B,EAA/B;AACA,aAAK7D,SAAL,GAAiB,KAAjB;AACA,OAVD,MAUO;AACN,YAAI,CAACK,MAAL,EAAa;AACZ,eAAKD,cAAL,CAAoBC,MAApB,GAA6BF,QAA7B;AACA,eAAKH,SAAL,GAAiB,KAAjB;AACA,SAHD,MAGO;AACN,eAAKI,cAAL,CAAoBvR,KAApB,GAA4BsR,QAA5B;AACA,cAAI,KAAK8B,WAAL,CAAiB,KAAK7B,cAAL,CAAoBC,MAArC,EAA6C,KAAKD,cAAL,CAAoBvR,KAAjE,CAAJ,EAA6E;AAC5E,iBAAKuR,cAAL,CAAoB3c,IAApB,GAA2B,KAAKqgB,SAAL,CAAe,KAAK1D,cAAL,CAAoBC,MAAnC,EAA2C,KAAKD,cAAL;AACpEvR,iBADyB,CAA3B;AAEA,WAHD,MAGO;AACN,iBAAKuR,cAAL,CAAoB3c,IAApB,GAA2B,KAAKqgB,SAAL,CAAe,KAAK1D,cAAL,CAAoBvR,KAAnC,EAA0C,KAAKuR,cAAL;AACnEC,kBADyB,CAA3B;AAEA;AACD,eAAKL,SAAL,GAAiB,IAAjB;AACA;AACD;AACD,WAAKE,QAAL,CAAcC,QAAd;AACA;;AAED;;;AAGiBA,Y,EAAU;;;;AAItB,WAAKC,cAJiB,CAEzBC,MAFyB,yBAEzBA,MAFyB,CAGzBxR,KAHyB,yBAGzBA,KAHyB;;AAM1B,UAAI,CAAC,KAAK+Q,KAAV,EAAiB;AACjB,UAAI,KAAKI,SAAT,EAAoB;;AAEpB,UAAI,CAACK,MAAL,EAAa;AACZ,aAAKD,cAAL,CAAoBC,MAApB,GAA6BF,QAA7B;AACA,OAFD,MAEO;AACN,aAAKC,cAAL,CAAoBvR,KAApB,GAA4BsR,QAA5B;AACA,YAAI,KAAK8B,WAAL,CAAiB,KAAK7B,cAAL,CAAoBC,MAArC,EAA6C,KAAKD,cAAL,CAAoBvR,KAAjE,CAAJ,EAA6E;AAC5E,eAAKuR,cAAL,CAAoB3c,IAApB,GAA2B,KAAKqgB,SAAL,CAAe,KAAK1D,cAAL,CAAoBC,MAAnC,EAA2C,KAAKD,cAAL,CAAoBvR,KAA/D,CAA3B;AACA,SAFD,MAEO;AACN,eAAKuR,cAAL,CAAoB3c,IAApB,GAA2B,KAAKqgB,SAAL,CAAe,KAAK1D,cAAL,CAAoBvR,KAAnC,EAA0C,KAAKuR,cAAL,CAAoBC,MAA9D,CAA3B;AACA;AACD;AACD,WAAKH,QAAL,CAAcC,QAAd;AACA;;AAED;;;AAGmBE,U,EAAQxR,K,EAAO;AACjC,WAAKuR,cAAL,CAAoBC,MAApB,GAA6BA,MAA7B;AACA,WAAKD,cAAL,CAAoBvR,KAApB,GAA4BA,KAA5B;AACA,UAAIwR,MAAM,IAAIxR,KAAd,EAAqB;AACpB,YAAI,KAAKoT,WAAL,CAAiB5B,MAAjB,EAAyBxR,KAAzB,CAAJ,EAAqC;AACpC,eAAKuR,cAAL,CAAoB3c,IAApB,GAA2B,KAAKqgB,SAAL,CAAezD,MAAf,EAAuBxR,KAAvB,CAA3B;AACA,eAAKqR,QAAL,CAAcrR,KAAd;AACA,SAHD,MAGO;AACN,eAAKuR,cAAL,CAAoB3c,IAApB,GAA2B,KAAKqgB,SAAL,CAAejV,KAAf,EAAsBwR,MAAtB,CAA3B;AACA,eAAKH,QAAL,CAAcG,MAAd;AACA;AACD;AACD;;AAED;;;;AAISoB,Y,EAAU;;;;;;;AAOd,WAAK5B,OAAL,CAAa4B,QAAb,CAPc,CAEjBtB,QAFiB,iBAEjBA,QAFiB,CAGjBa,IAHiB,iBAGjBA,IAHiB,CAIjBC,KAJiB,iBAIjBA,KAJiB,CAKjBzB,IALiB,iBAKjBA,IALiB,CAMjB0B,GANiB,iBAMjBA,GANiB;AAQlB,UAAIE,QAAQ,GAAG,IAAI7gB,IAAJ,CAASygB,IAAT,EAAeC,KAAK,GAAG,CAAvB,EAA0B,CAA1B,EAA6BE,MAA7B,EAAf;AACA,UAAI8B,UAAU,GAAG,IAAI1iB,IAAJ,CAASygB,IAAT,EAAeC,KAAf,EAAsB,CAAtB,EAAyBpB,OAAzB,EAAjB;AACA,UAAIkE,KAAK,GAAG;AACXC,qBAAa,EAAE,KAAKC,iBAAL,CAAuB7C,QAAvB,EAAiC,KAAKvB,OAAL,CAAa4B,QAAb,CAAjC,CADJ,EAC8D;AACzEyC,uBAAe,EAAE,KAAKC,gBAAL,CAAsBlB,UAAtB,EAAkC,KAAKpD,OAAL,CAAa4B,QAAb,CAAlC,CAFN,EAEiE;AAC5E2C,qBAAa,EAAE,EAHJ,EAGQ;AACnBrE,aAAK,EAAE,EAJI,EAAZ;;AAMA,UAAIgD,SAAS,GAAG,EAAhB;AACA,UAAMF,OAAO,GAAG,MAAMkB,KAAK,CAACC,aAAN,CAAoBlmB,MAApB,GAA6BimB,KAAK,CAACG,eAAN,CAAsBpmB,MAAzD,CAAhB;AACAimB,WAAK,CAACK,aAAN,GAAsB,KAAKC,iBAAL,CAAuBxB,OAAvB,EAAgC,KAAKhD,OAAL,CAAa4B,QAAb,CAAhC,CAAtB;AACAsB,eAAS,GAAGA,SAAS,CAAC1gB,MAAV,CAAiB0hB,KAAK,CAACC,aAAvB,EAAsCD,KAAK,CAACG,eAA5C,EAA6DH,KAAK,CAACK,aAAnE,CAAZ;AACA,UAAIrE,KAAK,GAAG,EAAZ;AACA;AACA,WAAK,IAAI5hB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4kB,SAAS,CAACjlB,MAA9B,EAAsCK,CAAC,EAAvC,EAA2C;AAC1C,YAAIA,CAAC,GAAG,CAAJ,KAAU,CAAd,EAAiB;AAChB4hB,eAAK,CAACvW,QAAQ,CAACrL,CAAC,GAAG,CAAL,CAAT,CAAL,GAAyB,IAAImE,KAAJ,CAAU,CAAV,CAAzB;AACA;AACDyd,aAAK,CAACvW,QAAQ,CAACrL,CAAC,GAAG,CAAL,CAAT,CAAL,CAAuBA,CAAC,GAAG,CAA3B,IAAgC4kB,SAAS,CAAC5kB,CAAD,CAAzC;AACA;AACD,WAAK4kB,SAAL,GAAiBA,SAAjB;AACA,WAAKhD,KAAL,GAAaA,KAAb;AACA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIcR,Q;;;;;;;;;;;;uFCzZf;AACA;AACA,qF;AACe;AACdH,IAAE,EAAFA,WADc;AAEd,aAAWC,eAFG;AAGd,aAAWC,eAHG,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHf;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;ACnBA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,yGAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,yGAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,yGAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,yGAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;;4nFC95LnB,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,MAAd,EAAsB;AAClB0qB,SAAK,CAAC9lB,IAAN,CAAWiiB,MAAM,CAAC7lB,IAAP,CAAY,GAAZ,CAAX;AACA6lB,UAAM,CAAC8D,GAAP;AACH;AACD,SAAOD,KAAP;AACH,C;;;;;;;;;;;;ACncDE,MAAM,CAACC,OAAP,GAAiBC,mBAAO,CAAC,6BAAD,CAAxB,C;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,mBAAW;;AAEpC;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,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","file":"common/vendor.js","sourcesContent":["import Vue from 'vue';\r\nimport { initVueI18n } from '@dcloudio/uni-i18n';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () {}\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook) {\r\n return function (data) {\r\n return hook(data) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook));\r\n } else {\r\n const res = hook(data);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nfunction getLocale () {\r\n // 优先使用 $locale\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n return wx.getSystemInfoSync().language || 'zh-Hans'\r\n}\r\n\r\nfunction setLocale (locale) {\r\n const app = getApp();\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale,\r\n setLocale: setLocale,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction addUuid (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.windowHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n addUuid(result);\r\n addSafeAreaInsets(result);\r\n }\r\n};\r\n\r\nvar showActionSheet = {\r\n args (fromArgs) {\r\n if (typeof fromArgs === 'object') {\r\n fromArgs.alertText = fromArgs.title;\r\n }\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst protocols = {\r\n redirectTo,\r\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n showActionSheet\r\n};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null\r\n});\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n return oldTriggerEvent.apply(mpInstance, [customize(event), ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n if (!oldHook) {\r\n options[name] = function () {\r\n initTriggerEvent(this);\r\n };\r\n } else {\r\n options[name] = function (...args) {\r\n initTriggerEvent(this);\r\n return oldHook.apply(this, args)\r\n };\r\n }\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) {}\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '') {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n // 用于字节跳动小程序模拟抽象节点\r\n properties.generic = {\r\n type: Object,\r\n value: null\r\n };\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) {}\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n if (event.detail && event.detail.__args__) {\r\n extraObj['$' + index] = event.detail.__args__;\r\n } else {\r\n extraObj['$' + index] = [event];\r\n }\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return event.detail.__args__ || event.detail\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(event.detail.__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n throw new Error(` _vm.${methodName} is not a function`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = wx.getSystemInfoSync().language;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale$1 = i18n.setLocale;\r\nconst getLocale$1 = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nconst eventChannels = {};\r\n\r\nconst eventChannelStack = [];\r\n\r\nfunction getEventChannel (id) {\r\n if (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n }\r\n return eventChannelStack.shift()\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n Vue.prototype.$hasScopedSlotsParams = function (vueId) {\r\n const has = center[vueId];\r\n if (!has) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return has\r\n };\r\n\r\n Vue.prototype.$getScopedSlotsParams = function (vueId, name, key) {\r\n const data = center[vueId];\r\n if (data) {\r\n const object = data[name] || {};\r\n return key ? object[key] : object\r\n } else {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n };\r\n\r\n Vue.prototype.$setScopedSlotsParams = function (name, value) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n const object = center[vueId] = center[vueId] || {};\r\n object[name] = value;\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n }\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, wx.getSystemInfoSync().language || 'zh-Hans');\r\n\r\n initHooks(appOptions, hooks);\r\n\r\n return appOptions\r\n}\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector);\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || component;\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for');\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || component);\r\n });\r\n return $refs\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions, {\r\n isPage,\r\n initRelation\r\n}) {\r\n const pageOptions = parseComponent(vuePageOptions);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vuePageOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions, {\r\n isPage,\r\n initRelation\r\n })\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n if (!hasOwn(wx, name) && !hasOwn(protocols, name)) {\r\n return\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","import en from './en.json'\r\nimport zhHans from './zh-Hans.json'\r\nimport zhHant from './zh-Hant.json'\r\nexport default {\r\n\ten,\r\n\t'zh-Hans': zhHans,\r\n\t'zh-Hant': zhHant\r\n}\r\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode, /* vue-cli only */\n components, // fixed by xxxxxx auto components\n renderjs // fixed by xxxxxx renderjs\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // fixed by xxxxxx auto components\n if (components) {\n if (!options.components) {\n options.components = {}\n }\n var hasOwn = Object.prototype.hasOwnProperty\n for (var name in components) {\n if (hasOwn.call(components, name) && !hasOwn.call(options.components, name)) {\n options.components[name] = components[name]\n }\n }\n }\n // fixed by xxxxxx renderjs\n if (renderjs) {\n (renderjs.beforeCreate || (renderjs.beforeCreate = [])).unshift(function() {\n this[renderjs.__module] = this\n });\n (options.mixins || (options.mixins = [])).push(renderjs)\n }\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","class Calendar {\r\n\tconstructor({\r\n\t\tdate,\r\n\t\tselected,\r\n\t\tstartDate,\r\n\t\tendDate,\r\n\t\trange,\r\n\t\t// multipleStatus\r\n\t} = {}) {\r\n\t\t// 当前日期\r\n\t\tthis.date = this.getDate(new Date()) // 当前初入日期\r\n\t\t// 打点信息\r\n\t\tthis.selected = selected || [];\r\n\t\t// 范围开始\r\n\t\tthis.startDate = startDate\r\n\t\t// 范围结束\r\n\t\tthis.endDate = endDate\r\n\t\tthis.range = range\r\n\t\t// 多选状态\r\n\t\tthis.cleanMultipleStatus()\r\n\t\t// 每周日期\r\n\t\tthis.weeks = {}\r\n\t\t// this._getWeek(this.date.fullDate)\r\n\t\t// this.multipleStatus = multipleStatus\r\n\t\tthis.lastHover = false\r\n\t}\r\n\t/**\r\n\t * 设置日期\r\n\t * @param {Object} date\r\n\t */\r\n\tsetDate(date) {\r\n\t\tthis.selectDate = this.getDate(date)\r\n\t\tthis._getWeek(this.selectDate.fullDate)\r\n\t}\r\n\r\n\t/**\r\n\t * 清理多选状态\r\n\t */\r\n\tcleanMultipleStatus() {\r\n\t\tthis.multipleStatus = {\r\n\t\t\tbefore: '',\r\n\t\t\tafter: '',\r\n\t\t\tdata: []\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * 重置开始日期\r\n\t */\r\n\tresetSatrtDate(startDate) {\r\n\t\t// 范围开始\r\n\t\tthis.startDate = startDate\r\n\r\n\t}\r\n\r\n\t/**\r\n\t * 重置结束日期\r\n\t */\r\n\tresetEndDate(endDate) {\r\n\t\t// 范围结束\r\n\t\tthis.endDate = endDate\r\n\t}\r\n\r\n\t/**\r\n\t * 获取任意时间\r\n\t */\r\n\tgetDate(date, AddDayCount = 0, str = 'day') {\r\n\t\tif (!date) {\r\n\t\t\tdate = new Date()\r\n\t\t}\r\n\t\tif (typeof date !== 'object') {\r\n\t\t\tdate = date.replace(/-/g, '/')\r\n\t\t}\r\n\t\tconst dd = new Date(date)\r\n\t\tswitch (str) {\r\n\t\t\tcase 'day':\r\n\t\t\t\tdd.setDate(dd.getDate() + AddDayCount) // 获取AddDayCount天后的日期\r\n\t\t\t\tbreak\r\n\t\t\tcase 'month':\r\n\t\t\t\tif (dd.getDate() === 31) {\r\n\t\t\t\t\tdd.setDate(dd.getDate() + AddDayCount)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdd.setMonth(dd.getMonth() + AddDayCount) // 获取AddDayCount天后的日期\r\n\t\t\t\t}\r\n\t\t\t\tbreak\r\n\t\t\tcase 'year':\r\n\t\t\t\tdd.setFullYear(dd.getFullYear() + AddDayCount) // 获取AddDayCount天后的日期\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t\tconst y = dd.getFullYear()\r\n\t\tconst m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0\r\n\t\tconst d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0\r\n\t\treturn {\r\n\t\t\tfullDate: y + '-' + m + '-' + d,\r\n\t\t\tyear: y,\r\n\t\t\tmonth: m,\r\n\t\t\tdate: d,\r\n\t\t\tday: dd.getDay()\r\n\t\t}\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * 获取上月剩余天数\r\n\t */\r\n\t_getLastMonthDays(firstDay, full) {\r\n\t\tlet dateArr = []\r\n\t\tfor (let i = firstDay; i > 0; i--) {\r\n\t\t\tconst beforeDate = new Date(full.year, full.month - 1, -i + 1).getDate()\r\n\t\t\tdateArr.push({\r\n\t\t\t\tdate: beforeDate,\r\n\t\t\t\tmonth: full.month - 1,\r\n\t\t\t\tdisable: true\r\n\t\t\t})\r\n\t\t}\r\n\t\treturn dateArr\r\n\t}\r\n\t/**\r\n\t * 获取本月天数\r\n\t */\r\n\t_currentMonthDys(dateData, full) {\r\n\t\tlet dateArr = []\r\n\t\tlet fullDate = this.date.fullDate\r\n\t\tfor (let i = 1; i <= dateData; i++) {\r\n\t\t\tlet isinfo = false\r\n\t\t\tlet nowDate = full.year + '-' + (full.month < 10 ?\r\n\t\t\t\tfull.month : full.month) + '-' + (i < 10 ?\r\n\t\t\t\t'0' + i : i)\r\n\t\t\t// 是否今天\r\n\t\t\tlet isDay = fullDate === nowDate\r\n\t\t\t// 获取打点信息\r\n\t\t\tlet info = this.selected && this.selected.find((item) => {\r\n\t\t\t\tif (this.dateEqual(nowDate, item.date)) {\r\n\t\t\t\t\treturn item\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\t// 日期禁用\r\n\t\t\tlet disableBefore = true\r\n\t\t\tlet disableAfter = true\r\n\t\t\tif (this.startDate) {\r\n\t\t\t\t// let dateCompBefore = this.dateCompare(this.startDate, fullDate)\r\n\t\t\t\t// disableBefore = this.dateCompare(dateCompBefore ? this.startDate : fullDate, nowDate)\r\n\t\t\t\tdisableBefore = this.dateCompare(this.startDate, nowDate)\r\n\t\t\t}\r\n\r\n\t\t\tif (this.endDate) {\r\n\t\t\t\t// let dateCompAfter = this.dateCompare(fullDate, this.endDate)\r\n\t\t\t\t// disableAfter = this.dateCompare(nowDate, dateCompAfter ? this.endDate : fullDate)\r\n\t\t\t\tdisableAfter = this.dateCompare(nowDate, this.endDate)\r\n\t\t\t}\r\n\t\t\tlet multiples = this.multipleStatus.data\r\n\t\t\tlet checked = false\r\n\t\t\tlet multiplesStatus = -1\r\n\t\t\tif (this.range) {\r\n\t\t\t\tif (multiples) {\r\n\t\t\t\t\tmultiplesStatus = multiples.findIndex((item) => {\r\n\t\t\t\t\t\treturn this.dateEqual(item, nowDate)\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t\tif (multiplesStatus !== -1) {\r\n\t\t\t\t\tchecked = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet data = {\r\n\t\t\t\tfullDate: nowDate,\r\n\t\t\t\tyear: full.year,\r\n\t\t\t\tdate: i,\r\n\t\t\t\tmultiple: this.range ? checked : false,\r\n\t\t\t\tbeforeMultiple: this.isLogicBefore(nowDate, this.multipleStatus.before, this.multipleStatus.after),\r\n\t\t\t\tafterMultiple: this.isLogicAfter(nowDate, this.multipleStatus.before, this.multipleStatus.after),\r\n\t\t\t\tmonth: full.month,\r\n\t\t\t\tdisable: !(disableBefore && disableAfter),\r\n\t\t\t\tisDay,\r\n\t\t\t\tuserChecked: false\r\n\t\t\t}\r\n\t\t\tif (info) {\r\n\t\t\t\tdata.extraInfo = info\r\n\t\t\t}\r\n\r\n\t\t\tdateArr.push(data)\r\n\t\t}\r\n\t\treturn dateArr\r\n\t}\r\n\t/**\r\n\t * 获取下月天数\r\n\t */\r\n\t_getNextMonthDays(surplus, full) {\r\n\t\tlet dateArr = []\r\n\t\tfor (let i = 1; i < surplus + 1; i++) {\r\n\t\t\tdateArr.push({\r\n\t\t\t\tdate: i,\r\n\t\t\t\tmonth: Number(full.month) + 1,\r\n\t\t\t\tdisable: true\r\n\t\t\t})\r\n\t\t}\r\n\t\treturn dateArr\r\n\t}\r\n\r\n\t/**\r\n\t * 获取当前日期详情\r\n\t * @param {Object} date\r\n\t */\r\n\tgetInfo(date) {\r\n\t\tif (!date) {\r\n\t\t\tdate = new Date()\r\n\t\t}\r\n\t\tconst dateInfo = this.canlender.find(item => item.fullDate === this.getDate(date).fullDate)\r\n\t\treturn dateInfo\r\n\t}\r\n\r\n\t/**\r\n\t * 比较时间大小\r\n\t */\r\n\tdateCompare(startDate, endDate) {\r\n\t\t// 计算截止时间\r\n\t\tstartDate = new Date(startDate.replace('-', '/').replace('-', '/'))\r\n\t\t// 计算详细项的截止时间\r\n\t\tendDate = new Date(endDate.replace('-', '/').replace('-', '/'))\r\n\t\tif (startDate <= endDate) {\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * 比较时间是否相等\r\n\t */\r\n\tdateEqual(before, after) {\r\n\t\t// 计算截止时间\r\n\t\tbefore = new Date(before.replace('-', '/').replace('-', '/'))\r\n\t\t// 计算详细项的截止时间\r\n\t\tafter = new Date(after.replace('-', '/').replace('-', '/'))\r\n\t\tif (before.getTime() - after.getTime() === 0) {\r\n\t\t\treturn true\r\n\t\t} else {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * 比较真实起始日期\r\n\t */\r\n\r\n\tisLogicBefore(currentDay, before, after) {\r\n\t\tlet logicBefore = before\r\n\t\tif (before && after) {\r\n\t\t\tlogicBefore = this.dateCompare(before, after) ? before : after\r\n\t\t}\r\n\t\treturn this.dateEqual(logicBefore, currentDay)\r\n\t}\r\n\r\n\tisLogicAfter(currentDay, before, after) {\r\n\t\tlet logicAfter = after\r\n\t\tif (before && after) {\r\n\t\t\tlogicAfter = this.dateCompare(before, after) ? after : before\r\n\t\t}\r\n\t\treturn this.dateEqual(logicAfter, currentDay)\r\n\t}\r\n\r\n\t/**\r\n\t * 获取日期范围内所有日期\r\n\t * @param {Object} begin\r\n\t * @param {Object} end\r\n\t */\r\n\tgeDateAll(begin, end) {\r\n\t\tvar arr = []\r\n\t\tvar ab = begin.split('-')\r\n\t\tvar ae = end.split('-')\r\n\t\tvar db = new Date()\r\n\t\tdb.setFullYear(ab[0], ab[1] - 1, ab[2])\r\n\t\tvar de = new Date()\r\n\t\tde.setFullYear(ae[0], ae[1] - 1, ae[2])\r\n\t\tvar unixDb = db.getTime() - 24 * 60 * 60 * 1000\r\n\t\tvar unixDe = de.getTime() - 24 * 60 * 60 * 1000\r\n\t\tfor (var k = unixDb; k <= unixDe;) {\r\n\t\t\tk = k + 24 * 60 * 60 * 1000\r\n\t\t\tarr.push(this.getDate(new Date(parseInt(k))).fullDate)\r\n\t\t}\r\n\t\treturn arr\r\n\t}\r\n\r\n\t/**\r\n\t * 获取多选状态\r\n\t */\r\n\tsetMultiple(fullDate) {\r\n\t\tlet {\r\n\t\t\tbefore,\r\n\t\t\tafter\r\n\t\t} = this.multipleStatus\r\n\t\tif (!this.range) return\r\n\t\tif (before && after) {\r\n\t\t\tif (!this.lastHover) {\r\n\t\t\t\tthis.lastHover = true\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tthis.multipleStatus.before = fullDate\r\n\t\t\tthis.multipleStatus.after = ''\r\n\t\t\tthis.multipleStatus.data = []\r\n\t\t\tthis.multipleStatus.fulldate = ''\r\n\t\t\tthis.lastHover = false\r\n\t\t} else {\r\n\t\t\tif (!before) {\r\n\t\t\t\tthis.multipleStatus.before = fullDate\r\n\t\t\t\tthis.lastHover = false\r\n\t\t\t} else {\r\n\t\t\t\tthis.multipleStatus.after = fullDate\r\n\t\t\t\tif (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) {\r\n\t\t\t\t\tthis.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus\r\n\t\t\t\t\t\t.after);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus\r\n\t\t\t\t\t\t.before);\r\n\t\t\t\t}\r\n\t\t\t\tthis.lastHover = true\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._getWeek(fullDate)\r\n\t}\r\n\r\n\t/**\r\n\t * 鼠标 hover 更新多选状态\r\n\t */\r\n\tsetHoverMultiple(fullDate) {\r\n\t\tlet {\r\n\t\t\tbefore,\r\n\t\t\tafter\r\n\t\t} = this.multipleStatus\r\n\r\n\t\tif (!this.range) return\r\n\t\tif (this.lastHover) return\r\n\r\n\t\tif (!before) {\r\n\t\t\tthis.multipleStatus.before = fullDate\r\n\t\t} else {\r\n\t\t\tthis.multipleStatus.after = fullDate\r\n\t\t\tif (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) {\r\n\t\t\t\tthis.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after);\r\n\t\t\t} else {\r\n\t\t\t\tthis.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._getWeek(fullDate)\r\n\t}\r\n\r\n\t/**\r\n\t * 更新默认值多选状态\r\n\t */\r\n\tsetDefaultMultiple(before, after) {\r\n\t\tthis.multipleStatus.before = before\r\n\t\tthis.multipleStatus.after = after\r\n\t\tif (before && after) {\r\n\t\t\tif (this.dateCompare(before, after)) {\r\n\t\t\t\tthis.multipleStatus.data = this.geDateAll(before, after);\r\n\t\t\t\tthis._getWeek(after)\r\n\t\t\t} else {\r\n\t\t\t\tthis.multipleStatus.data = this.geDateAll(after, before);\r\n\t\t\t\tthis._getWeek(before)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * 获取每周数据\r\n\t * @param {Object} dateData\r\n\t */\r\n\t_getWeek(dateData) {\r\n\t\tconst {\r\n\t\t\tfullDate,\r\n\t\t\tyear,\r\n\t\t\tmonth,\r\n\t\t\tdate,\r\n\t\t\tday\r\n\t\t} = this.getDate(dateData)\r\n\t\tlet firstDay = new Date(year, month - 1, 1).getDay()\r\n\t\tlet currentDay = new Date(year, month, 0).getDate()\r\n\t\tlet dates = {\r\n\t\t\tlastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), // 上个月末尾几天\r\n\t\t\tcurrentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), // 本月天数\r\n\t\t\tnextMonthDays: [], // 下个月开始几天\r\n\t\t\tweeks: []\r\n\t\t}\r\n\t\tlet canlender = []\r\n\t\tconst surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length)\r\n\t\tdates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData))\r\n\t\tcanlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays)\r\n\t\tlet weeks = {}\r\n\t\t// 拼接数组 上个月开始几天 + 本月天数+ 下个月开始几天\r\n\t\tfor (let i = 0; i < canlender.length; i++) {\r\n\t\t\tif (i % 7 === 0) {\r\n\t\t\t\tweeks[parseInt(i / 7)] = new Array(7)\r\n\t\t\t}\r\n\t\t\tweeks[parseInt(i / 7)][i % 7] = canlender[i]\r\n\t\t}\r\n\t\tthis.canlender = canlender\r\n\t\tthis.weeks = weeks\r\n\t}\r\n\r\n\t//静态方法\r\n\t// static init(date) {\r\n\t// \tif (!this.instance) {\r\n\t// \t\tthis.instance = new Calendar(date);\r\n\t// \t}\r\n\t// \treturn this.instance;\r\n\t// }\r\n}\r\n\r\n\r\nexport default Calendar\r\n","import en from './en.json'\r\nimport zhHans from './zh-Hans.json'\r\nimport zhHant from './zh-Hant.json'\r\nexport default {\r\n\ten,\r\n\t'zh-Hans': zhHans,\r\n\t'zh-Hant': zhHant\r\n}\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\n if (isUndef(propOptions)) {\n return res\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\n }\n }\n return res\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.