Files
OMS/app/wap/statics/js/mobile-select-date.min.js
2026-01-04 19:08:31 +08:00

21 lines
5.4 KiB
JavaScript

/**
* Copyright 2012-2026 ShopeX (https://www.shopex.cn)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*! mobile-select-date v1.0.0
* author:tianxiangbing email:55342775@qq.com
* demo:http://www.lovewebgames.com/jsmodule/mobile-select-date.html
* git:https://github.com/tianxiangbing/mobile-select-date 2016-08-12 */
!function(a,b){"function"==typeof define&&define.amd?define(["$"],b):"object"==typeof exports?module.exports=b():a.MobileSelectDate=b(window.Zepto||window.jQuery||$)}(this,function(a){var b=function(){var a=Math.random().toString().replace(".","");this.id="scroller_"+a,this.scroller,this.data,this.index=0,this.value=[0,0,0],this.oldvalue,this.oldtext,this.text=["","",""],this.level=3,this.mtop=30,this.separator=" "};return b.prototype={init:function(b){this.settings=a.extend({},b),this.separator="/";var c=new Date;this.settings.value=this.settings.value||a(this.settings.trigger).val()||c.getFullYear()+"/"+("0"+(c.getMonth()+1)).slice(-2)+"/"+("0"+c.getDate()).slice(-2),this.settings.value=this.settings.value.replace(/\//g,","),this.settings.text=this.settings.value.split(","),void 0==this.settings.default?this.default=1:this.default=0,this.trigger=a(this.settings.trigger),this.trigger.attr("readonly","readonly"),this.value=this.settings.value&&this.settings.value.split(",")||[0,0,0],this.text=this.settings.text||this.trigger.val().split(" ")||["","",""],this.oldvalue=this.value.concat([]),this.oldtext=this.text.concat([]),this.min=new Date(this.settings.min||"1900/01/01"),this.settings.max?this.max=new Date(this.settings.max):this.max=new Date,this.getData(),this.bindEvent()},getData:function(){for(var a=[],b=this.min.getFullYear(),c=this.max.getFullYear();b<=c;b++){var d={};d.id=d.name=b,d.child=[];for(var e=1;e<=12;e++){var f={};f.id=f.name=("0"+e).slice(-2),f.child=[];for(var g=new Date(b,e,0).getDate(),h=1;h<=g;h++){var i={};i.id=i.name=("0"+h).slice(-2),e==this.max.getMonth()+1&&b==this.max.getFullYear()&&h>this.max.getDate()||f.child.push(i)}e>this.max.getMonth()+1&&b==this.max.getFullYear()||d.child.push(f)}a.push(d)}this.data=a},bindEvent:function(){var b=this;this.trigger.click(function(c){var d,e;if("bottom"==b.settings.position){d={position:"bottom",width:"100%",className:"ui-dialog-bottom",animate:!1};var e=[{no:"取消"},{yes:"确定"}]}a.confirm('<div class="ui-scroller-mask"><div id="'+b.id+'" class="ui-scroller"><div></div><div ></div><div></div><p></p></div></div>',e,function(a,c){"yes"==a&&b.submit(),"no"==a&&b.cancel(),this.dispose()},a.extend({width:320,height:215},d)),b.scroller=a("#"+b.id),b.format();var f=0,g=0;return b.scroller.children().bind("touchstart",function(a){f=(a.changedTouches||a.originalEvent.changedTouches)[0].pageY}),b.scroller.children().bind("touchmove",function(b){g=(b.changedTouches||b.originalEvent.changedTouches)[0].pageY;var c=g-f,d=a(b.target).parent();if("DL"==d[0].nodeName){var e=parseInt(d.css("top")||0)+c;return d.css("top",e),f=g,!1}}),b.scroller.children().bind("touchend",function(c){g=(c.changedTouches||c.originalEvent.changedTouches)[0].pageY;var d=g-f,e=a(c.target).parent();if("DL"==e[0].nodeName){var h=a(e.parent()).index(),i=parseInt(e.css("top")||0)+d;i>b.mtop&&(i=b.mtop),i<-a(e).height()+60&&(i=-a(e).height()+60);var j=i/b.mtop,k=Math.round(j),l=Math.abs(k)+1;1==k&&(l=0),b.value[h]=a(e.children().get(l)).attr("ref"),0==b.value[h]?b.text[h]="":b.text[h]=a(e.children().get(l)).html();for(var m=b.level-1;m>h;m--)b.value[m]=0,b.text[m]="";return a(e.children().get(l)).hasClass("focus")||b.format(),a(e.children().get(l)).addClass("focus").siblings().removeClass("focus"),e.css("top",k*b.mtop),!1}}),!1})},format:function(){var a=this;a.scroller.children();this.f(this.data)},f:function(b){var c=this,d=b;d||(d=[]);var e,f='<dl><dd ref="0">——</dd>',g=0,h=c.mtop;if(0!==c.index&&"0"==c.value[c.index-1]&&0==this.default)f='<dl><dd ref="0" class="focus">——</dd>',c.value[c.index]=0,c.text[c.index]="",g=0;else{if("0"==c.value[c.index]&&(f='<dl><dd ref="0" class="focus">——</dd>',g=0),d.length>0&&1==this.default){f="<dl>";var i=d[0].pid||0,j=d[0].id||0;g=d[0].id,e=d[0].child,c.value[this.index]||(c.value[this.index]=j,c.text[this.index]=d[0].name),f+='<dd pid="'+i+'" class="'+m+'" ref="'+j+'">'+d[0].name+"</dd>"}for(var k=c.default,l=d.length;k<l;k++){var i=d[k].pid||0,j=d[k].id||0,m="";c.value[c.index]==j&&(m="focus",g=j,e=d[k].child,h=c.mtop*-(k-c.default)),f+='<dd pid="'+i+'" class="'+m+'" ref="'+j+'">'+d[k].name+"</dd>"}}f+="</dl>";var n=a(f);n.css("top",h);var o=c.scroller.children();return a(o[c.index]).html(n),c.index++,c.index>c.level-1?void(c.index=0):void c.f(e)},submit:function(){this.oldvalue=this.value.concat([]),this.oldtext=this.text.concat([]),1==this.trigger[0].nodeType&&(this.trigger.val(this.text.join(this.separator)),this.trigger.attr("data-value",this.value.join(","))),this.trigger.next(":hidden").val(this.value.join(",")),this.settings.callback&&this.settings.callback(this.scroller)},cancel:function(){this.value=this.oldvalue.concat([]),this.text=this.oldtext.concat([])}},b});