UNPKG

vuejs-datepicker-mobile

Version:

A Vue.js datepick mobile project

1,374 lines (1,150 loc) 42.7 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "fb15"); /******/ }) /************************************************************************/ /******/ ({ /***/ "24fb": /***/ (function(module, exports, __webpack_require__) { "use strict"; /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader // eslint-disable-next-line func-names module.exports = function (useSourceMap) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item, useSourceMap); if (item[2]) { return "@media ".concat(item[2], "{").concat(content, "}"); } return content; }).join(''); }; // import a list of modules into the list // eslint-disable-next-line func-names list.i = function (modules, mediaQuery) { if (typeof modules === 'string') { // eslint-disable-next-line no-param-reassign modules = [[null, modules, '']]; } var alreadyImportedModules = {}; for (var i = 0; i < this.length; i++) { // eslint-disable-next-line prefer-destructuring var id = this[i][0]; if (id != null) { alreadyImportedModules[id] = true; } } for (var _i = 0; _i < modules.length; _i++) { var item = modules[_i]; // skip already imported module // this implementation is not 100% perfect for weird media query combinations // when a module is imported multiple times with different media queries. // I hope this will never occur (Hey this way we have smaller bundles) if (item[0] == null || !alreadyImportedModules[item[0]]) { if (mediaQuery && !item[2]) { item[2] = mediaQuery; } else if (mediaQuery) { item[2] = "(".concat(item[2], ") and (").concat(mediaQuery, ")"); } list.push(item); } } }; return list; }; function cssWithMappingToString(item, useSourceMap) { var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring var cssMapping = item[3]; if (!cssMapping) { return content; } if (useSourceMap && typeof btoa === 'function') { var sourceMapping = toComment(cssMapping); var sourceURLs = cssMapping.sources.map(function (source) { return "/*# sourceURL=".concat(cssMapping.sourceRoot).concat(source, " */"); }); return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); } return [content].join('\n'); } // Adapted from convert-source-map (MIT) function toComment(sourceMap) { // eslint-disable-next-line no-undef var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); return "/*# ".concat(data, " */"); } /***/ }), /***/ "320c": /***/ (function(module, exports, __webpack_require__) { "use strict"; /* object-assign (c) Sindre Sorhus @license MIT */ /* eslint-disable no-unused-vars */ var getOwnPropertySymbols = Object.getOwnPropertySymbols; var hasOwnProperty = Object.prototype.hasOwnProperty; var propIsEnumerable = Object.prototype.propertyIsEnumerable; function toObject(val) { if (val === null || val === undefined) { throw new TypeError('Object.assign cannot be called with null or undefined'); } return Object(val); } function shouldUseNative() { try { if (!Object.assign) { return false; } // Detect buggy property enumeration order in older V8 versions. // https://bugs.chromium.org/p/v8/issues/detail?id=4118 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers test1[5] = 'de'; if (Object.getOwnPropertyNames(test1)[0] === '5') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test2 = {}; for (var i = 0; i < 10; i++) { test2['_' + String.fromCharCode(i)] = i; } var order2 = Object.getOwnPropertyNames(test2).map(function (n) { return test2[n]; }); if (order2.join('') !== '0123456789') { return false; } // https://bugs.chromium.org/p/v8/issues/detail?id=3056 var test3 = {}; 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { test3[letter] = letter; }); if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') { return false; } return true; } catch (err) { // We don't expect any of the above to throw, but better to be safe. return false; } } module.exports = shouldUseNative() ? Object.assign : function (target, source) { var from; var to = toObject(target); var symbols; for (var s = 1; s < arguments.length; s++) { from = Object(arguments[s]); for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } if (getOwnPropertySymbols) { symbols = getOwnPropertySymbols(from); for (var i = 0; i < symbols.length; i++) { if (propIsEnumerable.call(from, symbols[i])) { to[symbols[i]] = from[symbols[i]]; } } } } return to; }; /***/ }), /***/ "3a54": /***/ (function(module, exports, __webpack_require__) { exports = module.exports = __webpack_require__("24fb")(false); // Module exports.push([module.i, ".m-picker{font-size:4.26667vw;color:#666;position:fixed;width:100vw;height:100vh;top:0;left:0;z-index:1000}.m-picker .m-picker-item-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;overflow:hidden}.m-picker .m-picker-mark{position:absolute;z-index:99;background:#000;opacity:.6;width:100%;height:100%}.m-picker .m-picker-header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;height:10.66667vw;line-height:10.66667vw;border-bottom:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 5.33333vw;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.m-picker .m-picker-header span:last-of-type{color:#41b883}.m-picker .m-picker-box{position:absolute;z-index:100;bottom:0;background:#fff;width:100%;height:94.66667vw}.m-picker-item{height:84vw;overflow:hidden}.m-picker-item,.m-picker-item .m-scroller-item-box{position:relative;width:100%}.m-picker-item .m-scroller-item{text-align:center;font-size:4.8vw;height:9.33333vw;line-height:9.33333vw}.m-picker-item .m-scroller-mask{top:0;height:100%;margin:0 auto;z-index:3;background-image:-webkit-gradient(linear,left top,left bottom,from(hsla(0,0%,100%,.95)),to(hsla(0,0%,100%,.6))),-webkit-gradient(linear,left bottom,left top,from(hsla(0,0%,100%,.95)),to(hsla(0,0%,100%,.6)));background-image:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-size:100% 37.33333vw}.m-picker-item .m-scroller-indicator,.m-picker-item .m-scroller-mask{position:absolute;left:0;width:100%;background-position:top,bottom;background-repeat:no-repeat}.m-picker-item .m-scroller-indicator{height:9.33333vw;top:37.33333vw;z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box;background-image:-webkit-gradient(linear,left top,left bottom,from(#d0d0d0),color-stop(#d0d0d0),color-stop(transparent),to(transparent)),-webkit-gradient(linear,left bottom,left top,from(#d0d0d0),color-stop(#d0d0d0),color-stop(transparent),to(transparent));background-image:linear-gradient(180deg,#d0d0d0,#d0d0d0,transparent,transparent),linear-gradient(0deg,#d0d0d0,#d0d0d0,transparent,transparent);background-size:100% 2px}.fade-enter-active,.fade-leave-active{transition:opacity .3s;-webkit-transition:opacity .3s;opacity:1}.fade-enter,.fade-leave-to{opacity:0}", ""]); /***/ }), /***/ "499e": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/listToStyles.js /** * Translates the list format produced by css-loader into something * easier to manipulate. */ function listToStyles (parentId, list) { var styles = [] var newStyles = {} for (var i = 0; i < list.length; i++) { var item = list[i] var id = item[0] var css = item[1] var media = item[2] var sourceMap = item[3] var part = { id: parentId + ':' + i, css: css, media: media, sourceMap: sourceMap } if (!newStyles[id]) { styles.push(newStyles[id] = { id: id, parts: [part] }) } else { newStyles[id].parts.push(part) } } return styles } // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/addStylesClient.js /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return addStylesClient; }); /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra Modified by Evan You @yyx990803 */ var hasDocument = typeof document !== 'undefined' if (typeof DEBUG !== 'undefined' && DEBUG) { if (!hasDocument) { throw new Error( 'vue-style-loader cannot be used in a non-browser environment. ' + "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment." ) } } /* type StyleObject = { id: number; parts: Array<StyleObjectPart> } type StyleObjectPart = { css: string; media: string; sourceMap: ?string } */ var stylesInDom = {/* [id: number]: { id: number, refs: number, parts: Array<(obj?: StyleObjectPart) => void> } */} var head = hasDocument && (document.head || document.getElementsByTagName('head')[0]) var singletonElement = null var singletonCounter = 0 var isProduction = false var noop = function () {} var options = null var ssrIdKey = 'data-vue-ssr-id' // Force single-tag solution on IE6-9, which has a hard limit on the # of <style> // tags it will allow on a page var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase()) function addStylesClient (parentId, list, _isProduction, _options) { isProduction = _isProduction options = _options || {} var styles = listToStyles(parentId, list) addStylesToDom(styles) return function update (newList) { var mayRemove = [] for (var i = 0; i < styles.length; i++) { var item = styles[i] var domStyle = stylesInDom[item.id] domStyle.refs-- mayRemove.push(domStyle) } if (newList) { styles = listToStyles(parentId, newList) addStylesToDom(styles) } else { styles = [] } for (var i = 0; i < mayRemove.length; i++) { var domStyle = mayRemove[i] if (domStyle.refs === 0) { for (var j = 0; j < domStyle.parts.length; j++) { domStyle.parts[j]() } delete stylesInDom[domStyle.id] } } } } function addStylesToDom (styles /* Array<StyleObject> */) { for (var i = 0; i < styles.length; i++) { var item = styles[i] var domStyle = stylesInDom[item.id] if (domStyle) { domStyle.refs++ for (var j = 0; j < domStyle.parts.length; j++) { domStyle.parts[j](item.parts[j]) } for (; j < item.parts.length; j++) { domStyle.parts.push(addStyle(item.parts[j])) } if (domStyle.parts.length > item.parts.length) { domStyle.parts.length = item.parts.length } } else { var parts = [] for (var j = 0; j < item.parts.length; j++) { parts.push(addStyle(item.parts[j])) } stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts } } } } function createStyleElement () { var styleElement = document.createElement('style') styleElement.type = 'text/css' head.appendChild(styleElement) return styleElement } function addStyle (obj /* StyleObjectPart */) { var update, remove var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]') if (styleElement) { if (isProduction) { // has SSR styles and in production mode. // simply do nothing. return noop } else { // has SSR styles but in dev mode. // for some reason Chrome can't handle source map in server-rendered // style tags - source maps in <style> only works if the style tag is // created and inserted dynamically. So we remove the server rendered // styles and inject new ones. styleElement.parentNode.removeChild(styleElement) } } if (isOldIE) { // use singleton mode for IE9. var styleIndex = singletonCounter++ styleElement = singletonElement || (singletonElement = createStyleElement()) update = applyToSingletonTag.bind(null, styleElement, styleIndex, false) remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true) } else { // use multi-style-tag mode in all other cases styleElement = createStyleElement() update = applyToTag.bind(null, styleElement) remove = function () { styleElement.parentNode.removeChild(styleElement) } } update(obj) return function updateStyle (newObj /* StyleObjectPart */) { if (newObj) { if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { return } update(obj = newObj) } else { remove() } } } var replaceText = (function () { var textStore = [] return function (index, replacement) { textStore[index] = replacement return textStore.filter(Boolean).join('\n') } })() function applyToSingletonTag (styleElement, index, remove, obj) { var css = remove ? '' : obj.css if (styleElement.styleSheet) { styleElement.styleSheet.cssText = replaceText(index, css) } else { var cssNode = document.createTextNode(css) var childNodes = styleElement.childNodes if (childNodes[index]) styleElement.removeChild(childNodes[index]) if (childNodes.length) { styleElement.insertBefore(cssNode, childNodes[index]) } else { styleElement.appendChild(cssNode) } } } function applyToTag (styleElement, obj) { var css = obj.css var media = obj.media var sourceMap = obj.sourceMap if (media) { styleElement.setAttribute('media', media) } if (options.ssrId) { styleElement.setAttribute(ssrIdKey, obj.id) } if (sourceMap) { // https://developer.chrome.com/devtools/docs/javascript-debugging // this makes source maps inside style tags work properly in Chrome css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */' // http://stackoverflow.com/a/26603875 css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */' } if (styleElement.styleSheet) { styleElement.styleSheet.cssText = css } else { while (styleElement.firstChild) { styleElement.removeChild(styleElement.firstChild) } styleElement.appendChild(document.createTextNode(css)) } } /***/ }), /***/ "cb43": /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__("3a54"); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var add = __webpack_require__("499e").default var update = add("6e92bf31", content, true, {"sourceMap":false,"shadowMode":false}); /***/ }), /***/ "f6fd": /***/ (function(module, exports) { // document.currentScript polyfill by Adam Miller // MIT license (function(document){ var currentScript = "currentScript", scripts = document.getElementsByTagName('script'); // Live NodeList collection // If browser needs currentScript polyfill, add get currentScript() to the document object if (!(currentScript in document)) { Object.defineProperty(document, currentScript, { get: function(){ // IE 6-10 supports script readyState // IE 10+ support stack trace try { throw new Error(); } catch (err) { // Find the second match for the "at" string to get file src url from stack. // Specifically works with the format of stack traces in IE. var i, res = ((/.*at [^\(]*\((.*):.+:.+\)$/ig).exec(err.stack) || [false])[1]; // For all scripts on the page, if src matches or if ready state is interactive, return the script tag for(i in scripts){ if(scripts[i].src == res || scripts[i].readyState == "interactive"){ return scripts[i]; } } // If no match, return null return null; } } }); } })(document); /***/ }), /***/ "fb15": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js // This file is imported into lib/wc client bundles. if (typeof window !== 'undefined') { if (true) { __webpack_require__("f6fd") } var setPublicPath_i if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))) { __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line } } // Indicate to webpack that this file can be concatenated /* harmony default export */ var setPublicPath = (null); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"941cbcf2-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Picker.vue?vue&type=template&id=fa1a4190& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:"m-picker"},[_c('div',{staticClass:"m-picker-mark",on:{"click":_vm.cal}}),_c('div',{staticClass:"m-picker-box"},[_c('div',{staticClass:"m-picker-header"},[_c('span',{on:{"click":_vm.cal}},[_vm._v("取消")]),_c('span',{on:{"click":_vm.sel}},[_vm._v("确定")])]),_c('div',{staticClass:"m-picker-content"},[(_vm.type==='picker')?_c('div',{staticClass:"m-picker-item-box"},[_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[0],"selType":'year',"val":_vm.year},on:{"update:val":function($event){_vm.year=$event}}}),_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[1],"selType":'month',"val":_vm.month},on:{"update:val":function($event){_vm.month=$event}}}),_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[2],"selType":'day',"val":_vm.day},on:{"update:val":function($event){_vm.day=$event}}})],1):_c('div',{staticClass:"m-picker-item-box"},[_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[0],"selType":'year',"val":_vm.year},on:{"update:val":function($event){_vm.year=$event}}}),_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[1],"selType":'month',"val":_vm.month},on:{"update:val":function($event){_vm.month=$event}}}),_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[2],"selType":'day',"val":_vm.day},on:{"update:val":function($event){_vm.day=$event}}}),_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[3],"selType":'hour',"val":_vm.hour},on:{"update:val":function($event){_vm.hour=$event}}}),_c('PickerItem',{attrs:{"change":_vm.change,"d":_vm.dateList[4],"selType":'minute',"val":_vm.minute},on:{"update:val":function($event){_vm.minute=$event}}})],1)])])]):_vm._e()} var staticRenderFns = [] // CONCATENATED MODULE: ./src/components/Picker.vue?vue&type=template&id=fa1a4190& // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"941cbcf2-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/PickerItem.vue?vue&type=template&id=2152cfe4& var PickerItemvue_type_template_id_2152cfe4_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"m-picker-item"},[_c('div',{staticClass:"m-scroller-indicator"}),_c('div',{staticClass:"m-scroller-mask",on:{"touchend":_vm.end,"touchmove":_vm.move,"touchstart":_vm.start}}),_c('div',{staticClass:"m-scroller-item-box",style:(_vm.domStyle)},_vm._l((_vm.d),function(i,k){return _c('div',{key:k,staticClass:"m-scroller-item"},[_vm._v(_vm._s(i))])}),0)])} var PickerItemvue_type_template_id_2152cfe4_staticRenderFns = [] // CONCATENATED MODULE: ./src/components/PickerItem.vue?vue&type=template&id=2152cfe4& // EXTERNAL MODULE: ./node_modules/object-assign/index.js var object_assign = __webpack_require__("320c"); var object_assign_default = /*#__PURE__*/__webpack_require__.n(object_assign); // CONCATENATED MODULE: ./src/modules/util.js var util_mergeOptions = function mergeOptions($vm, options) { var defaults = {}; for (var i in $vm.$options.props) { if (i !== 'value') { defaults[i] = $vm.$options.props[i].default; } } var _options = object_assign_default()({}, defaults, options); for (var _i in _options) { $vm[_i] = _options[_i]; } }; function add(a, b) { var c, d, e; try { c = a.toString().split('.')[1].length; } catch (f) { c = 0; } try { d = b.toString().split('.')[1].length; } catch (f) { d = 0; } return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e; } function sub(a, b) { var c, d, e; try { c = a.toString().split('.')[1].length; } catch (f) { c = 0; } try { d = b.toString().split('.')[1].length; } catch (f) { d = 0; } return e = Math.pow(10, Math.max(c, d)), (mul(a, e) - mul(b, e)) / e; } function mul(a, b) { var c = 0; var d = a.toString(); var e = b.toString(); try { c += d.split('.')[1].length; } catch (f) {} try { c += e.split('.')[1].length; } catch (f) {} return Number(d.replace('.', '')) * Number(e.replace('.', '')) / Math.pow(10, c); } function div(a, b) { var c, d; var e = 0; var f = 0; try { e = a.toString().split('.')[1].length; } catch (g) {} try { f = b.toString().split('.')[1].length; } catch (g) {} return c = Number(a.toString().replace('.', '')), d = Number(b.toString().replace('.', '')), mul(c / d, Math.pow(10, f - e)); } // 取余 function rem(a, b) { return sub(a, mul(parseInt(div(a, b)), b)); } function getDate(date) { if (date === undefined) return false; var arr = date.toString().split('-'); arr[1] = arr[1].length === 1 && arr[1] < 10 ? '0' + arr[1] : arr[1]; arr[2] = arr[2].length === 1 && arr[2] < 10 ? '0' + arr[2] : arr[2]; // arr[3] = arr[3].length === 1 && arr[3] < 10 ? '0' + arr[3] : arr[3] // arr[4] = arr[4].length === 1 && arr[4] < 10 ? '0' + arr[4] : arr[4] return "".concat(arr[0], "-").concat(arr[1], "-").concat(arr[2]); } // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/PickerItem.vue?vue&type=script&lang=js& // // // // // // // // // // /* harmony default export */ var PickerItemvue_type_script_lang_js_ = ({ props: { change: {}, val: {}, selType: {}, d: { default: function _default() { return []; } } }, data: function data() { return { startY: '', // touch start Y endY: '', // touch end Y lastPoint: [], value: '', dY: 0, itemKey: 0, // 第几个值 changeY: '', // sY - eY domStyle: { transform: 'translate3d(0, 0, 0)' } }; }, computed: { itemHeight: function itemHeight() { return (+window.getComputedStyle(document.querySelector('.m-scroller-item')).height.replace('px', '')).toFixed(2); }, // 选项长度 itemLen: function itemLen() { return this.d.length; } }, watch: { d: function d(fut) { var _this = this; // if (this.itemKey + 1 > fut.length) this.itemKey = fut.length fut.map(function (v, k) { if (v.match(/\d*/g)[0] === _this.val) { _this.itemKey = k; } }); // 动画效果 this.dY = mul(4 - this.itemKey, this.itemHeight); this.scroll(this.dY, 0.4); } }, mounted: function mounted() { // 初始化,定位第一个 if (this.val) { this.moveTo(this.val); } else { this.dY = mul(this.itemHeight, 4); this.domStyle = this.style = { transform: "translate3d(0px, ".concat(this.dY, "px, 0px)") }; } }, methods: { scroll: function scroll(y, t) { // 根据选项高度判断定在哪个位置 // y = y - y % this.itemHeight + (y % this.itemHeight > this.itemHeight / 2 ? this.itemHeight : 0) var cTop = rem(y, this.itemHeight) > div(this.itemHeight, 2) ? this.itemHeight : 0; y = add(sub(y, rem(y, this.itemHeight)), cTop); // 最大最小情况的判断 if (y > mul(this.itemHeight, 4)) { y = mul(this.itemHeight, 4); } var sT = mul(5 - this.itemLen, this.itemHeight); if (y < sT) { y = sT; } this.dY = y; // 记录现在的位置 this.itemKey = div(sub(mul(this.itemHeight, 4), y), this.itemHeight); // 第几个值 this.domStyle = this.style = { transform: "translate3d(0px, ".concat(y, "px, 0px)"), transition: "all ".concat(t, "s cubic-bezier(0.1, 0.85, 0.25, 1) 0s") }; // 停止后的回调 this.change(this.d[this.itemKey], this.itemKey, this.selType); }, start: function start(e) { this.startY = e.touches[0].pageY; this.domStyle = this.style = { transform: "translate3d(0px, ".concat(this.dY, "px, 0px)"), transition: 'none' }; }, end: function end(e) { this.endY = e.changedTouches[0].pageY; // 非线性衰减 var t = parseInt(Math.sqrt(Math.abs(this.endY - this.startY))) / 10; this.scroll(this.dY + this.endY - this.startY, t); }, move: function move(e) { e.preventDefault(); var dY = e.touches[0].pageY - this.startY; // 差值 // 反映差值 this.domStyle = { transform: "translate3d(0px, ".concat(dY, "px, 0px)") }; }, moveTo: function moveTo(val) { var _this2 = this; if (this.selType === 'year') { this.itemKey = 0; this.d.map(function (v, k) { if (Number(v.match(/\d*/g)[0]) === val) { _this2.itemKey = k; } }); } else if (this.selType === 'month' || this.selType === 'day') { // this.itemKey = +this.val - 1 this.itemKey = 0; this.d.map(function (v, k) { if (Number(v.match(/\d*/g)[0]) === val) { _this2.itemKey = k; } }); } else { // 日期外的 如果后面需要做成其他类型 this.itemKey = 0; this.d.map(function (v, k) { if (Number(v.match(/\d*/g)[0]) === val) { _this2.itemKey = k; } }); } this.dY = mul(4 - this.itemKey, this.itemHeight); this.scroll(this.dY, 0); } } }); // CONCATENATED MODULE: ./src/components/PickerItem.vue?vue&type=script&lang=js& /* harmony default export */ var components_PickerItemvue_type_script_lang_js_ = (PickerItemvue_type_script_lang_js_); // CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functioal component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } // CONCATENATED MODULE: ./src/components/PickerItem.vue /* normalize component */ var component = normalizeComponent( components_PickerItemvue_type_script_lang_js_, PickerItemvue_type_template_id_2152cfe4_render, PickerItemvue_type_template_id_2152cfe4_staticRenderFns, false, null, null, null ) /* harmony default export */ var PickerItem = (component.exports); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/Picker.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // import '../css/style.scss' /* harmony default export */ var Pickervue_type_script_lang_js_ = ({ name: 'datePicker', components: { PickerItem: PickerItem }, data: function data() { return { show: false, type: 'picker', dateList: [], year: 1, month: 1, day: 1, hour: 1, minute: 1, endTime: '', startTime: '', succeed: function succeed(e) {}, cancel: function cancel() {} }; }, computed: { isR: function isR() { return this.year % 4 === 0 ? true : false; }, startTimeArr: function startTimeArr() { if (this.startTime) { return this.startTime.split('-'); } else { return []; } }, endTimeArr: function endTimeArr() { if (this.endTime) { return this.endTime.split('-'); } else { return []; } } }, mounted: function mounted() { this.setMonth(); }, methods: { sel: function sel() { this.show = false; if (this.month < 10) this.month = "0".concat(this.month); if (this.day < 10) this.day = "0".concat(this.day); if (this.hour < 10) this.hour = "0".concat(this.hour); if (this.minute < 10) this.minute = "0".concat(this.minute); if (this.type === 'moment') return this.succeed("".concat(this.year, "-").concat(this.month, "-").concat(this.day, " ").concat(this.hour, ":").concat(this.minute)); this.succeed("".concat(this.year, "-").concat(this.month, "-").concat(this.day)); }, /** * 设置月日 的确切时间 */ setMonth: function setMonth() { var c2 = this.month === 2; var c1 = [1, 3, 5, 7, 8, 10, 12].join().indexOf(parseInt(this.month)); var newM = []; // month var m1 = [1, 12]; var newD = []; // day var m2 = ''; var newH = []; // hour var m3 = [0, 23]; var newMI = []; // minute var m4 = [0, 59]; if (this.endTimeArr) { if (this.year === +this.endTimeArr[0]) { m1[1] = +this.endTimeArr[1]; if (this.month === +this.endTimeArr[1]) { m2[1] = +this.endTimeArr[2]; } } } if (c2) { if (this.isR) { m2 = [1, 29]; } else { m2 = [1, 28]; } } else if (c1 < 0) { m2 = [1, 30]; } else { m2 = [1, 31]; } if (this.startTimeArr) { if (this.year === +this.startTimeArr[0]) { m1[0] = +this.startTimeArr[1]; if (this.month === +this.startTimeArr[1]) { m2[0] = +this.startTimeArr[2]; } } } for (var i = m1[0]; i <= m1[1]; i++) { newM.push(i + '月'); } for (var _i = m2[0]; _i <= m2[1]; _i++) { newD.push(_i + '日'); } for (var _i2 = m3[0]; _i2 <= m3[1]; _i2++) { newH.push(_i2 + '时'); } for (var _i3 = m4[0]; _i3 <= m4[1]; _i3++) { newMI.push(_i3 + '分'); } this.dateList[1] = newM; this.dateList[2] = newD; this.dateList[3] = newH; this.dateList[4] = newMI; }, /** 设置月日 的确切时间 * @param { val } - String */ change: function change(val, key) { var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; if (type === 'year') { this.year = val.match(/\d*/g)[0]; this.setMonth(); } else if (type === 'month') { this.month = val.match(/\d*/g)[0]; this.setMonth(); } else if (type === 'day') { this.day = val.match(/\d*/g)[0]; } else if (type === 'hour') { this.hour = val.match(/\d*/g)[0]; } else if (type === 'minute') { this.minute = val.match(/\d*/g)[0]; } }, cal: function cal() { this.show = false; this.cancel(); } } }); // CONCATENATED MODULE: ./src/components/Picker.vue?vue&type=script&lang=js& /* harmony default export */ var components_Pickervue_type_script_lang_js_ = (Pickervue_type_script_lang_js_); // CONCATENATED MODULE: ./src/components/Picker.vue /* normalize component */ var Picker_component = normalizeComponent( components_Pickervue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* harmony default export */ var Picker = (Picker_component.exports); // EXTERNAL MODULE: ./src/css/style.scss var style = __webpack_require__("cb43"); // CONCATENATED MODULE: ./src/modules/index.js var modules_Picker = {}; modules_Picker.install = function (Vue) { // let t = new Date() Vue.prototype.$picker = {}; var CalendarMainCom = Vue.extend(Picker); var instance = new CalendarMainCom({ el: document.createElement('div') }); document.body.appendChild(instance.$el); Vue.prototype.$picker.show = function () { var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var date = new Date(); instance = Object.assign(instance, { show: true, type: 'picker', // 默认选择器 data: [], year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate(), hour: date.getHours(), minute: date.getMinutes(), startTime: '', endTime: '', date: '', succeed: function succeed(e) {}, cancel: function cancel() {} }); // 如果是日期模式 var years = [1949, 2099]; // 有设置开始时间 if (settings.startTime) { var startY = new Date(getDate(settings.startTime)).getFullYear(); years[0] = startY; } // 有设置结束时间 if (settings.endTime) { var endY = new Date(getDate(settings.endTime)).getFullYear(); years[1] = endY; } // 两个都设置了 if (settings.startTime && settings.endTime) { if (new Date(getDate(settings.startTime)).getTime() >= new Date(getDate(settings.endTime)).getTime()) { years[0] = 1949; settings.startTime = '1949-01-01'; } } if (settings.date) { var setDate = new Date(getDate(settings.date)); var end = new Date(getDate(settings.endTime) || '2099-12-31').getTime(); var start = new Date(getDate(settings.startTime) || '1949-01-01').getTime(); // 验证输入的年的范围是否正确 if (setDate.getTime() >= start && setDate.getTime() <= end) { settings.year = setDate.getFullYear(); settings.month = setDate.getMonth() + 1; settings.day = setDate.getDate(); settings.hour = setDate.getHours(); settings.minute = setDate.getMinutes(); } else { settings.date = ''; } } var months = [1, 12]; var days = [1, 30]; var hour = [0, 23]; var minute = [0, 59]; var yearsList = []; var monthsList = []; var daysList = []; var hourList = []; var minuteList = []; for (; years[0] <= years[1]; years[0]++) { yearsList.push(years[0] + '年'); } for (; months[0] <= months[1]; months[0]++) { monthsList.push(months[0] + '月'); } for (; days[0] <= days[1]; days[0]++) { daysList.push(days[0] + '日'); } for (; hour[0] <= hour[1]; hour[0]++) { hourList.push(hour[0] + '时'); } for (; minute[0] <= minute[1]; minute[0]++) { minuteList.push(minute[0] + '分'); } settings.dateList = [yearsList, monthsList, daysList, hourList, minuteList]; util_mergeOptions(instance, settings); }; Vue.prototype.$picker.hide = function () { instance.show = false; }; }; /* harmony default export */ var modules = (modules_Picker); // CONCATENATED MODULE: ./src/index.js /* harmony default export */ var src = (modules); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js /* harmony default export */ var entry_lib = __webpack_exports__["default"] = (src); /***/ }) /******/ });