UNPKG

@beeapi/nutui

Version:

一套轻量级移动端Vue组件库

7 lines 15.5 kB
/*! * @beeapi/nutui v2.2.10 - picker.js, 451ed2404bee284b891e, Sat Dec 19 2020 12:06:10 GMT+0800 (中国标准时间) * (c) 2017-2020 JDC * Released under the MIT License. */ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("vue")):"function"==typeof define&&define.amd?define("picker",["vue"],e):"object"==typeof exports?exports.picker=e(require("vue")):t.picker=e(t.Vue)}("undefined"!=typeof self?self:this,(function(t){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(i,a,function(e){return t[e]}.bind(null,a));return i},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="./",n(n.s=92)}({0:function(t,e,n){"use strict";function i(t,e,n,i,a,s,o,r){var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),i&&(l.functional=!0),s&&(l._scopeId="data-v-"+s),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):a&&(c=r?function(){a.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:a),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,e){return c.call(e),u(t,e)}}else{var h=l.beforeCreate;l.beforeCreate=h?[].concat(h,c):[c]}return{exports:t,options:l}}n.d(e,"a",(function(){return i}))},1:function(e,n){e.exports=t},10:function(t,e,n){"use strict";n(8);var i=n(2),a=n.n(i),s=n(1),o=n.n(s);o.a.config.lang="zn-CH";var r={lang:{okBtnTxt:"确 定",cancelBtnTxt:"取 消",calendar:{loadPrevMonth:"加载上一个月",noMoreMonth:"没有更早月份~",start:"开始",end:"结束",title:"选择日期",week:"日,一,二,三,四,五,六",monthTitle:"{year}年{month}月"},menu:{resetBtnTxt:"重置"},searchbar:{placeText:"请输入内容...",textInfo:"搜索"},shortpassword:{tip1:"输入数字密码",tip2:"忘记密码"},steps:{step:"步骤",stepDesc:"步骤描述"},uploader:{xmlError:"对不起,您的浏览器不支持本组件!",typeError:"不支持上传该类型文件",limitError:"文件大小超过限制"}}},c={},l=!1,u=function(){var t=Object.getPrototypeOf(this||o.a).$t;if("function"==typeof t&&o.a.locale)return l||(l=!0,o.a.locale(o.a.config.lang,a()("zn-CH"===o.a.config.lang?r:{},o.a.locale(o.a.config.lang)||{},c))),t.apply(this,arguments)};function h(t,e){var n=u.apply(this,arguments);if(null!=n)return n;var i=a()({},"zn-CH"===o.a.config.lang?r:{},c),s=t&&t.split(".")||[],l=null;if(s.length)for(var h=0;h<s.length;h++){var d=s[h];if(!d||!i[d]){l=null;break}l=i=i[d]}return f(l,e)}function f(t,e){var n=t&&t.match(/{.+?}/g);return n&&e&&(n=n.map((function(t){return t.replace(/\{\s*(\w+|\d+).*?\}/,"$1")}))).forEach((function(n,i){var a=new RegExp("{\\s*"+n+"\\s*(?:=\\s*(\\S*?))?\\s*?}","g");t=t.replace(a,(function(t,i){return"function"==(a=e[n],Object.prototype.toString.call(a).toLowerCase().match(/\s(\w+)/)[1])?e[n]():void 0!==e[n]?e[n]:i||t;var a}))})),t}e.a={methods:{nutTranslate:function(){return h.apply(this,arguments)}}}},2:function(t,e){function n(){return t.exports=n=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},n.apply(this,arguments)}t.exports=n},3:function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},4:function(t,e,n){var i=n(46),a=n(47),s=n(45),o=n(48);t.exports=function(t){return i(t)||a(t)||s(t)||o()}},45:function(t,e,n){var i=n(9);t.exports=function(t,e){if(t){if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(t,e):void 0}}},46:function(t,e,n){var i=n(9);t.exports=function(t){if(Array.isArray(t))return i(t)}},47:function(t,e){t.exports=function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}},48:function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},49:function(t,e,n){"use strict";var i={name:"nut-actionsheet",props:{isAnimation:{type:Boolean,default:!0},isLockBgScroll:{type:Boolean,default:!1},isVisible:{type:Boolean,default:!1},isShowMask:{type:Boolean,default:!0},isClickChooseClose:{type:Boolean,default:!0},isClickCloseMask:{type:Boolean,default:!0},cancelTxt:{type:String,default:""},optionTag:{type:String,default:"name"},chooseTagValue:{type:String,default:""},menuItems:{type:Array,default:function(){return[]}}},data:function(){return{}},watch:{isVisible:function(t){t&&this.$emit("open"),this.isLockBgScroll&&(t?document.body.classList.add("nut-overflow-hidden"):this.removeLockScrool())}},deactivated:function(){this.removeLockScroll()},destroyed:function(){this.removeLockScroll()},methods:{removeLockScroll:function(){document.body.classList.remove("nut-overflow-hidden")},isHighlight:function(t){return this.chooseTagValue&&this.chooseTagValue==t[this.optionTag]||0===this.chooseTagValue},closeActionSheet:function(){this.$emit("close")},cancelActionSheet:function(){this.closeActionSheet(),this.$emit("cancel")},clickActionSheetMask:function(){this.isClickCloseMask&&this.closeActionSheet()},chooseItem:function(t,e){t.disable||(this.isClickChooseClose&&this.closeActionSheet(),this.$emit("choose",t,e))}}},a=n(0),s=Object(a.a)(i,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"nut-actionsheet"},[t.isShowMask?n("transition",{attrs:{name:t.isAnimation?"nutFade":""}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isVisible,expression:"isVisible"}],staticClass:"nut-actionsheet-mask",on:{click:t.clickActionSheetMask}})]):t._e(),t._v(" "),n("transition",{attrs:{name:t.isAnimation?"nutSlideUp":""}},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.isVisible,expression:"isVisible"}],staticClass:"nut-actionsheet-panel"},[n("div",{staticClass:"nut-actionsheet-custom"},[t._t("custom")],2),t._v(" "),t.$slots.title||t.$slots.subTitle?n("dl",{staticClass:"nut-actionsheet-modal"},[n("dt",{staticClass:"nut-actionsheet-title"},[t._t("title")],2),t._v(" "),n("dd",{staticClass:"nut-actionsheet-sub-title"},[t._t("sub-title")],2)]):t._e(),t._v(" "),n("ul",{staticClass:"nut-actionsheet-menu"},t._l(t.menuItems,(function(e,i){return n("li",{key:i,staticClass:"nut-actionsheet-item",class:{"nut-actionsheet-item-active":t.isHighlight(e),"nut-actionsheet-item-disabled":e.disable},on:{click:function(n){return t.chooseItem(e,i)}}},[t._v(t._s(e[t.optionTag]))])})),0),t._v(" "),t.cancelTxt?n("div",{staticClass:"nut-actionsheet-cancel",on:{click:t.cancelActionSheet}},[t._v(t._s(t.cancelTxt))]):t._e()])])],1)}),[],!1,null,null,null);e.a=s.exports},55:function(t,e,n){"use strict";var i,a=n(4),s=n.n(a),o=n(3),r=n.n(o),c=n(49),l=(n(62),{name:"nut-picker-slot",props:{listData:{type:Array,required:!0},defaultValue:{type:String|Number},keyIndex:{type:Number,default:0},isUpdate:{type:Boolean,default:!1}},data:function(){return{touchParams:{startY:0,endY:0,startTime:0,endTime:0},currIndex:1,transformY:0,scrollDistance:0,lineSpacing:36,rotation:20,timer:null}},watch:{isUpdate:function(){this.transformY=0,this.modifyStatus()},defaultValue:function(){this.transformY=0,this.modifyStatus()}},methods:{updateTransform:function(t){var e=this;t&&(this.transformY=0,this.timer=setTimeout((function(){e.modifyStatus(null,t)}),10))},setRollerStyle:function(t){return"transform: rotate3d(1, 0, 0, ".concat(-this.rotation*t,"deg) translate3d(0px, 0px, 104px)")},isHidden:function(t){return t>=this.currIndex+8||t<=this.currIndex-8},setTransform:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,i=arguments.length>3?arguments[3]:void 0;"end"===e?(this.$refs.list.style.webkitTransition="transform ".concat(n,"ms cubic-bezier(0.19, 1, 0.22, 1)"),this.$refs.roller.style.webkitTransition="transform ".concat(n,"ms cubic-bezier(0.19, 1, 0.22, 1)")):(this.$refs.list.style.webkitTransition="",this.$refs.roller.style.webkitTransition=""),this.$refs.list.style.webkitTransform="translate3d(0, ".concat(t,"px, 0)"),this.$refs.roller.style.webkitTransform="rotate3d(1, 0, 0, ".concat(i,")"),this.scrollDistance=t},setMove:function(t,e,n){var i=this,a=t+this.transformY;if("end"===e){a>0&&(a=0),a<-(this.listData.length-1)*this.lineSpacing&&(a=-(this.listData.length-1)*this.lineSpacing);var s=Math.round(a/this.lineSpacing)*this.lineSpacing,o="".concat((Math.abs(Math.round(s/this.lineSpacing))+1)*this.rotation,"deg");this.setTransform(s,e,n,o),this.timer=setTimeout((function(){i.setChooseValue(s)}),n/2),this.currIndex=Math.abs(Math.round(s/this.lineSpacing))+1}else{var r="0deg";r="".concat(a<0?(Math.abs(a/this.lineSpacing)+1)*this.rotation:(-a/this.lineSpacing+1)*this.rotation,"deg"),this.setTransform(a,null,null,r),this.currIndex=Math.abs(Math.round(a/this.lineSpacing))+1}},setChooseValue:function(t){this.$emit("chooseItem",this.listData[Math.round(-t/this.lineSpacing)],this.keyIndex)},touchStart:function(t){t.preventDefault();var e=t.changedTouches[0];this.touchParams.startY=e.pageY,this.touchParams.startTime=t.timestamp||Date.now(),this.transformY=this.scrollDistance},touchMove:function(t){t.preventDefault();var e=t.changedTouches[0];this.touchParams.lastY=e.pageY,this.touchParams.lastTime=t.timestamp||Date.now();var n=this.touchParams.lastY-this.touchParams.startY;this.setMove(n)},touchEnd:function(t){t.preventDefault();var e=t.changedTouches[0];this.touchParams.lastY=e.pageY,this.touchParams.lastTime=t.timestamp||Date.now();var n=this.touchParams.lastY-this.touchParams.startY,i=this.touchParams.lastTime-this.touchParams.startTime;i<=300?(n*=2,i+=1e3,this.setMove(n,"end",i)):this.setMove(n,"end")},modifyStatus:function(t,e){e=e||this.defaultValue;var n=-1;e&&e.value?this.listData.some((function(t,i){if(t.value==e.value)return n=i,!0})):n=this.listData.indexOf(e),this.currIndex=-1===n?1:n+1;var i=-1===n?0:n*this.lineSpacing;t&&this.setChooseValue(-i),this.setMove(-i)}},mounted:function(){var t=this;this.$nextTick((function(){t.modifyStatus(!0),t.$el.addEventListener("touchstart",t.touchStart),t.$el.addEventListener("touchmove",t.touchMove),t.$el.addEventListener("touchend",t.touchEnd)}))},beforeDestroy:function(){this.$el.removeEventListener("touchstart",this.touchStart),this.$el.removeEventListener("touchmove",this.touchMove),this.$el.removeEventListener("touchend",this.touchEnd),clearTimeout(this.timer)}}),u=n(0),h=Object(u.a)(l,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"nut-picker-list"},[n("div",{ref:"roller",staticClass:"nut-picker-roller"},t._l(t.listData,(function(e,i){return n("div",{key:e.label?e.label:i,staticClass:"nut-picker-roller-item",class:{"nut-picker-roller-item-hidden":t.isHidden(i+1)},style:t.setRollerStyle(i+1)},[t._v("\n "+t._s(e.value?e.value:e)+"\n ")])})),0),t._v(" "),n("div",{staticClass:"nut-picker-content"},[n("div",{ref:"list",staticClass:"nut-picker-list-panel"},[t._l(t.listData,(function(e,i){return n("div",{key:e.label?e.label:i,staticClass:"nut-picker-item"},[t._v(t._s(e.value?e.value:e)+"\n ")])})),t._v(" "),t.listData&&1===t.listData.length?n("div",{staticClass:"nut-picker-placeholder"}):t._e()],2)]),t._v(" "),n("div",{staticClass:"nut-picker-mask"}),t._v(" "),n("div",{staticClass:"nut-picker-indicator"})])}),[],!1,null,null,null).exports,f={name:"nut-picker",mixins:[n(10).a],props:{isVisible:{type:Boolean,default:!1},customClassName:{type:String,default:null},title:{type:String,default:" "},listData:{type:Array,default:function(){return[]}},defaultValueData:{type:Array,default:function(){return[]}}},components:(i={},r()(i,c.a.name,c.a),r()(i,h.name,h),i),data:function(){return{chooseValueData:[],cacheValueData:[],isUpdate:!1}},watch:{defaultValueData:function(){this.chooseValueData=s()(this.defaultValueData),this.cacheValueData=s()(this.defaultValueData),this.$emit("confirm",this.cacheValueData)}},methods:{updateChooseValue:function(t,e,n){t.cacheValueData.splice(e,1,n);var i="picer-slot-".concat(e);t.$refs[i]&&t.$refs[i][0].updateTransform(n)},closeActionSheet:function(){this.isUpdate=!this.isUpdate,this.cacheValueData=s()(this.chooseValueData),this.$emit("close"),this.$emit("close-update",this,this.chooseValueData)},confirm:function(){this.$emit("confirm",this.cacheValueData),this.chooseValueData=s()(this.cacheValueData),this.$emit("close")},chooseItem:function(t,e){this.cacheValueData[e]!==t&&(this.cacheValueData[e]=t,this.$emit("choose",this,e,t,this.cacheValueData))}},created:function(){if(this.defaultValueData&&this.defaultValueData.length)this.chooseValueData=s()(this.defaultValueData);else{var t=[];this.listData.map((function(e,n){t.push(e[0])})),this.chooseValueData=[].concat(t)}}},d=Object(u.a)(f,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("nut-actionsheet",{attrs:{"is-visible":t.isVisible},on:{close:t.closeActionSheet}},[n("div",{staticClass:"nut-picker",class:t.customClassName?t.customClassName:null,attrs:{slot:"custom"},slot:"custom"},[n("div",{staticClass:"nut-picker-control"},[n("span",{staticClass:"nut-picker-cancel-btn",on:{click:t.closeActionSheet}},[t._v(t._s(t.nutTranslate("lang.cancelBtnTxt")))]),t._v(" "),n("div",{staticClass:"nut-picker-title"},[t._v(t._s(t.title?t.title:""))]),t._v(" "),n("span",{staticClass:"nut-picker-confirm-btn",on:{click:t.confirm}},[t._v(t._s(t.nutTranslate("lang.okBtnTxt")))])]),t._v(" "),n("div",{staticClass:"nut-picker-panel"},[t._l(t.listData,(function(e,i){return[n("nut-picker-slot",{key:i,ref:"picer-slot-"+i,refInFor:!0,attrs:{"default-value":t.chooseValueData[i],"is-update":t.isUpdate,"list-data":e,"key-index":i},on:{chooseItem:t.chooseItem}})]}))],2)])])}),[],!1,null,null,null);e.a=d.exports},62:function(t,e,n){},66:function(t,e,n){},8:function(t,e){function n(e){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=n=function(t){return typeof t}:t.exports=n=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(e)}t.exports=n},9:function(t,e){t.exports=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,i=new Array(e);n<e;n++)i[n]=t[n];return i}},92:function(t,e,n){"use strict";n.r(e);var i=n(55);n(66);i.a.install=function(t){t.component(i.a.name,i.a)},e.default=i.a}})})); //# sourceMappingURL=picker.js.map