From 734fc9fbb0152618889ca307e01946e56641436b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=81=B0=E7=81=B0?= Date: Mon, 31 Oct 2022 14:00:54 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=8D=87=E7=BA=A7=E3=80=91=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=AE=80=E7=9F=ADUI?= =?UTF-8?q?=E6=A1=86=E6=9E=B6UView=E8=87=B32.0.34=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uni_modules/uview-ui/changelog.md | 13 + .../uview-ui/components/u--input/u--input.vue | 1 + .../components/u--textarea/u--textarea.vue | 1 + .../components/u-calendar/u-calendar.vue | 7 +- .../uview-ui/components/u-code/u-code.vue | 8 +- .../u-dropdown-item/u-dropdown-item.vue | 259 ++++++++---------- .../components/u-dropdown/u-dropdown.vue | 232 ++++++++-------- .../uview-ui/components/u-form-item/props.js | 5 + .../components/u-form-item/u-form-item.vue | 2 +- .../uview-ui/components/u-input/props.js | 5 + .../uview-ui/components/u-input/u-input.vue | 3 +- .../components/u-no-network/u-no-network.vue | 1 + .../uview-ui/components/u-radio/u-radio.vue | 20 +- .../uview-ui/components/u-rate/u-rate.vue | 6 +- .../uview-ui/components/u-textarea/props.js | 5 + .../components/u-textarea/u-textarea.vue | 2 + .../uview-ui/libs/config/config.js | 6 +- .../uview-ui/libs/config/props/formItem.js | 1 + .../uview-ui/libs/config/props/textarea.js | 2 +- .../uview-ui/libs/function/index.js | 18 +- .../uview-ui/libs/function/test.js | 2 +- .../uni_modules/uview-ui/libs/util/route.js | 2 +- .../uni_modules/uview-ui/package.json | 13 +- 23 files changed, 316 insertions(+), 298 deletions(-) diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/changelog.md b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/changelog.md index 817d4034..ca502516 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/changelog.md +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/changelog.md @@ -1,3 +1,16 @@ +## 2.0.34(2022-09-25) +# uView2.0重磅发布,利剑出鞘,一统江湖 + +1. `u-input`、`u-textarea`增加`ignoreCompositionEvent`属性 +2. 修复`route`方法调用可能报错的问题 +3. 修复`u-no-network`组件`z-index`无效的问题 +4. 修复`textarea`组件在h5上confirmType=""报错的问题 +5. `u-rate`适配`nvue` +6. 优化验证手机号码的正则表达式(根据工信部发布的《电信网编号计划(2017年版)》进行修改。) +7. `form-item`添加`labelPosition`属性 +8. `u-calendar`修复`maxDate`设置为当前日期,并且当前时间大于08:00时无法显示日期列表的问题 (#724) +9. `u-radio`增加一个默认插槽用于自定义修改label内容 (#680) +10. 修复`timeFormat`函数在safari重的兼容性问题 (#664) ## 2.0.33(2022-06-17) # uView2.0重磅发布,利剑出鞘,一统江湖 diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--input/u--input.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--input/u--input.vue index 2fc1213b..1e58b010 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--input/u--input.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--input/u--input.vue @@ -35,6 +35,7 @@ :shape="shape" :customStyle="customStyle" :formatter="formatter" + :ignoreCompositionEvent="ignoreCompositionEvent" @focus="$emit('focus')" @blur="e => $emit('blur', e)" @keyboardheightchange="$emit('keyboardheightchange')" diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--textarea/u--textarea.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--textarea/u--textarea.vue index 9dbcfbb3..f4df0b9a 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--textarea/u--textarea.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u--textarea/u--textarea.vue @@ -21,6 +21,7 @@ :border="border" :customStyle="customStyle" :formatter="formatter" + :ignoreCompositionEvent="ignoreCompositionEvent" @focus="e => $emit('focus')" @blur="e => $emit('blur')" @linechange="e => $emit('linechange', e)" diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-calendar/u-calendar.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-calendar/u-calendar.vue index ad892ffa..511f9939 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-calendar/u-calendar.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-calendar/u-calendar.vue @@ -209,12 +209,13 @@ export default { } }, init() { - // 校验maxDate,不能小于当前时间 + // 校验maxDate,不能小于minDate if ( this.innerMaxDate && - new Date(this.innerMaxDate).getTime() <= Date.now() + this.innerMinDate && + new Date(this.innerMaxDate).getTime() < new Date(this.innerMinDate).getTime() ) { - return uni.$u.error('maxDate不能小于当前时间') + return uni.$u.error('maxDate不能小于minDate') } // 滚动区域的高度 this.listHeight = this.rowHeight * 5 + 30 diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-code/u-code.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-code/u-code.vue index cdf9f825..f79a09ac 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-code/u-code.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-code/u-code.vue @@ -16,11 +16,11 @@ * @property {String} endText 倒计结束的提示语,见官网说明(默认 '重新获取' ) * @property {Boolean} keepRunning 是否在H5刷新或各端返回再进入时继续倒计时( 默认false ) * @property {String} uniqueKey 为了区分多个页面,或者一个页面多个倒计时组件本地存储的继续倒计时变了 - * + * * @event {Function} change 倒计时期间,每秒触发一次 * @event {Function} start 开始倒计时触发 * @event {Function} end 结束倒计时触发 - * @example + * @example */ export default { name: "u-code", @@ -74,7 +74,6 @@ this.canGetCode = false // 这里放这句,是为了一开始时就提示,否则要等setInterval的1秒后才会有提示 this.changeEvent(this.changeText.replace(/x|X/, this.secNum)) - this.setTimeToStorage() this.timer = setInterval(() => { if (--this.secNum) { // 用当前倒计时的秒数替换提示字符串中的"x"字母 @@ -88,7 +87,8 @@ this.canGetCode = true } }, 1000) - }, + this.setTimeToStorage() + }, // 重置,可以让用户再次获取验证码 reset() { this.canGetCode = true diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue index 07de583d..f830291a 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown-item/u-dropdown-item.vue @@ -1,146 +1,127 @@ - diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue index 9c50bfe7..f830291a 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-dropdown/u-dropdown.vue @@ -1,127 +1,127 @@ diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/props.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/props.js index 53a01915..7b166556 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/props.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/props.js @@ -15,6 +15,11 @@ export default { type: [String, Boolean], default: uni.$u.props.formItem.borderBottom }, + // label的位置,left-左边,top-上边 + labelPosition: { + type: String, + default: uni.$u.props.formItem.labelPosition + }, // label的宽度,单位px labelWidth: { type: [String, Number], diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/u-form-item.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/u-form-item.vue index 701d7cc0..6aa8d690 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/u-form-item.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-form-item/u-form-item.vue @@ -4,7 +4,7 @@ class="u-form-item__body" @tap="clickHandler" :style="[$u.addStyle(customStyle), { - flexDirection: parentData.labelPosition === 'left' ? 'row' : 'column' + flexDirection: (labelPosition || parentData.labelPosition) === 'left' ? 'row' : 'column' }]" > diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/props.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/props.js index 88917c35..2c508701 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/props.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/props.js @@ -177,6 +177,11 @@ export default { formatter: { type: [Function, null], default: uni.$u.props.input.formatter + }, + // 是否忽略组件内对文本合成系统事件的处理 + ignoreCompositionEvent: { + type: Boolean, + default: true } } } diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/u-input.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/u-input.vue index c755390a..30073eb2 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/u-input.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-input/u-input.vue @@ -38,6 +38,7 @@ :selection-end="selectionEnd" :selection-start="selectionStart" :password="password || type === 'password' || undefined" + :ignoreCompositionEvent="ignoreCompositionEvent" @input="onInput" @blur="onBlur" @focus="onFocus" @@ -114,7 +115,7 @@ import props from "./props.js"; * @property {Boolean} readonly 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 ( 默认 false ) * @property {String} shape 输入框形状,circle-圆形,square-方形 ( 默认 'square' ) * @property {Object} customStyle 定义需要用到的外部样式 - * + * @property {Boolean} ignoreCompositionEvent 是否忽略组件内对文本合成系统事件的处理。 * @example */ export default { diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-no-network/u-no-network.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-no-network/u-no-network.vue index 53db9058..9710729e 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-no-network/u-no-network.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-no-network/u-no-network.vue @@ -1,6 +1,7 @@ diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-rate/u-rate.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-rate/u-rate.vue index 5992038a..1aa5dd0f 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-rate/u-rate.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-rate/u-rate.vue @@ -35,7 +35,8 @@ : inactiveColor " :custom-style="{ - padding: `0 ${$u.addUnit(gutter / 2)}`, + 'padding-left': $u.addUnit(gutter / 2), + 'padding-right': $u.addUnit(gutter / 2) }" :size="size" > @@ -63,7 +64,8 @@ : inactiveColor " :custom-style="{ - padding: `0 ${$u.addUnit(gutter / 2)}` + 'padding-left': $u.addUnit(gutter / 2), + 'padding-right': $u.addUnit(gutter / 2) }" :size="size" > diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/props.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/props.js index fd5a4983..d0e16d53 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/props.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/props.js @@ -109,6 +109,11 @@ export default { formatter: { type: [Function, null], default: uni.$u.props.textarea.formatter + }, + // 是否忽略组件内对文本合成系统事件的处理 + ignoreCompositionEvent: { + type: Boolean, + default: true } } } diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/u-textarea.vue b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/u-textarea.vue index 0dac03ef..2cd5fdc3 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/u-textarea.vue +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/components/u-textarea/u-textarea.vue @@ -21,6 +21,7 @@ :holdKeyboard="holdKeyboard" :maxlength="maxlength" :confirmType="confirmType" + :ignoreCompositionEvent="ignoreCompositionEvent" @focus="onFocus" @blur="onBlur" @linechange="onLinechange" @@ -68,6 +69,7 @@ import props from "./props.js"; * @property {Boolean} holdKeyboard focus时,点击页面的时候不收起键盘,只微信小程序有效(默认 false ) * @property {String | Number} maxlength 最大输入长度,设置为 -1 的时候不限制最大长度(默认 140 ) * @property {String} border 边框类型,surround-四周边框,none-无边框,bottom-底部边框(默认 'surround' ) + * @property {Boolean} ignoreCompositionEvent 是否忽略组件内对文本合成系统事件的处理 * * @event {Function(e)} focus 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度 * @event {Function(e)} blur 输入框失去焦点时触发,event.detail = {value, cursor} diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/config.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/config.js index 6f3e2f36..8389666a 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/config.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/config.js @@ -1,9 +1,9 @@ -// 此版本发布于2022-06-17 -const version = '2.0.33' +// 此版本发布于2022-00-24 +const version = '2.0.34' // 开发环境才提示,生产环境不会提示 if (process.env.NODE_ENV === 'development') { - console.log(`\n %c uView V${version} %c https://www.uviewui.com/ \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0;', 'color: #3c9cff;background: #ffffff; padding:5px 0;'); + console.log(`\n %c uView V${version} %c https://uviewui.com/ \n\n`, 'color: #ffffff; background: #3c9cff; padding:5px 0; border-radius: 5px;'); } export default { diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/formItem.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/formItem.js index dc94973a..4b7c90a9 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/formItem.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/formItem.js @@ -13,6 +13,7 @@ export default { label: '', prop: '', borderBottom: '', + labelPosition: '', labelWidth: '', rightIcon: '', leftIcon: '', diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/textarea.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/textarea.js index d8036628..44519f98 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/textarea.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/config/props/textarea.js @@ -15,7 +15,7 @@ export default { placeholderClass: 'textarea-placeholder', placeholderStyle: 'color: #c0c4cc', height: 70, - confirmType: '', + confirmType: 'done', disabled: false, count: false, focus: false, diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/index.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/index.js index 5a077551..72351294 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/index.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/index.js @@ -292,15 +292,15 @@ if (!String.prototype.padStart) { else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) { date = new Date(Number(dateTime)) } - // 其他都认为符合 RFC 2822 规范 - else { - // 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间 - date = new Date( - typeof dateTime === 'string' - ? dateTime.replace(/-/g, '/') - : dateTime - ) - } + // 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间 + // 处理 '2022-07-10 01:02:03',跳过 '2022-07-10T01:02:03' + else if (typeof dateTime === 'string' && dateTime.includes('-') && !dateTime.includes('T')) { + date = new Date(dateTime.replace(/-/g, '/')) + } + // 其他都认为符合 RFC 2822 规范 + else { + date = new Date(dateTime) + } const timeSource = { 'y': date.getFullYear().toString(), // 年 diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/test.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/test.js index ae4a1b37..c7764371 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/test.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/function/test.js @@ -9,7 +9,7 @@ function email(value) { * 验证手机格式 */ function mobile(value) { - return /^1[23456789]\d{9}$/.test(value) + return /^1([3589]\d|4[5-9]|6[1-2,4-7]|7[0-8])\d{8}$/.test(value) } /** diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/util/route.js b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/util/route.js index 112f8537..70b8ca47 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/util/route.js +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/libs/util/route.js @@ -53,7 +53,7 @@ class Router { mergeConfig.url = this.mixinParam(options, params) mergeConfig.type = 'navigateTo' } else { - mergeConfig = uni.$u.deepClone(options, this.config) + mergeConfig = uni.$u.deepMerge(options, this.config) // 否则正常使用mergeConfig中的url和params进行拼接 mergeConfig.url = this.mixinParam(options.url, options.params) } diff --git a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/package.json b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/package.json index fee43721..0472b31b 100644 --- a/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/package.json +++ b/CoreCms.Net.Uni-App/CoreShop/uni_modules/uview-ui/package.json @@ -2,7 +2,7 @@ "id": "uview-ui", "name": "uview-ui", "displayName": "uView2.0重磅发布,利剑出鞘,一统江湖", - "version": "2.0.33", + "version": "2.0.34", "description": "uView UI已完美兼容nvue,全面的组件和便捷的工具会让您信手拈来,如鱼得水", "keywords": [ "uview", @@ -17,12 +17,8 @@ "engines": { "HBuilderX": "^3.1.0" }, - "dcloudext": { - "category": [ - "前端组件", - "通用组件" - ], - "sale": { + "dcloudext": { + "sale": { "regular": { "price": "0.00" }, @@ -38,7 +34,8 @@ "data": "无", "permissions": "无" }, - "npmurl": "https://www.npmjs.com/package/uview-ui" + "npmurl": "https://www.npmjs.com/package/uview-ui", + "type": "component-vue" }, "uni_modules": { "dependencies": [],