Files
jiapu/public/js/lay-module/numinput/numinput.js
T
2026-07-09 17:30:10 +08:00

1 line
6.8 KiB
JavaScript

layui.define(["jquery"],function(a){var b=layui.$;b("head link:last")[0]&&b("head link:last").after("<style type=\"text/css\">.layui-input-number + .layui-keyboard-number { position: absolute; z-index: 20190402; background-color: #f2f2f2; display: block; outline: none; border-radius: 2px; border-style: solid; border-color: #e6e6e6; border-width: 0 1px 1px 1px; }.layui-keyboard-number .layui-card-body { font-family: Consolas; font-size: 17px; font-weight: 600; text-align: center; background-color: #ffffff; cursor: pointer; }.layui-keyboard-number .layui-card-body:active { background-color: #f2f2f2; }</style>")||b("head").append("<style type=\"text/css\">.layui-input-number + .layui-keyboard-number { position: absolute; z-index: 20190402; background-color: #f2f2f2; display: block; outline: none; border-radius: 2px; border-style: solid; border-color: #e6e6e6; border-width: 0 1px 1px 1px; }.layui-keyboard-number .layui-card-body { font-family: Consolas; font-size: 17px; font-weight: 600; text-align: center; background-color: #ffffff; cursor: pointer; }.layui-keyboard-number .layui-card-body:active { background-color: #f2f2f2; }</style>");a("numinput",{options:{topBtns:123,rightBtns:!0,listening:!0,defaultPrec:""},init:function(a){var c=this;c.options=b.extend(c.options,a),b(".layui-input-number").attr({readonly:"readonly"}).on("focus",function(){c.showKeyboard(c,b(this))})},showKeyboard:function(a,c){var d=c.next(".layui-keyboard-number");if(d[0])d.show();else{var e=a.options.rightBtns?"xs3":"xs4",f=a.options.rightBtns?"xs6":"xs4",g=["<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"49 97\">1</div>","</div>","</div>","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"50 98\">2</div>","</div>","</div>","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"51 99\">3</div>","</div>","</div>"].join(""),h=["<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"55 103\">7</div>","</div>","</div>","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"56 104\">8</div>","</div>","</div>","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"57 105\">9</div>","</div>","</div>"].join(""),i=["<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"8\" lay-tips=\"\u9000\u683C\">","<i class=\"layui-icon layui-icon-return\"></i>","</div>","</div>","</div>"].join(""),j=["<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"38 39\" lay-tips=\"\u589E\u52A0\">","<i class=\"layui-icon layui-icon-up\"></i>","</div>","</div>","</div>"].join(""),k=["<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"37 40\" lay-tips=\"\u51CF\u5C0F\">","<i class=\"layui-icon layui-icon-down\"></i>","</div>","</div>","</div>"].join(""),l=["<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"-1\" lay-tips=\"\u6E05\u7A7A\">","<i class=\"layui-icon layui-icon-refresh-1\"></i>","</div>","</div>","</div>"].join("");c.after(["<div tabindex=\"0\" hidefocus=\"true\" class=\"","layui-keyboard-number"," layui-unselect\" ","style=\"width:",c.width()+10,"px;\">","<div class=\"layui-row layui-col-space1\">",789==a.options.topBtns?h:g,a.options.rightBtns?i:"","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"52 100\">4</div>","</div>","</div>","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"53 101\">5</div>","</div>","</div>","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"54 102\">6</div>","</div>","</div>",a.options.rightBtns?j:"",789==a.options.topBtns?g:h,a.options.rightBtns?k:"",a.options.rightBtns?"":i,"<div class=\"layui-col-",f,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"48 96\">0</div>","</div>","</div>","<div class=\"layui-col-",e,"\">","<div class=\"layui-card\">","<div class=\"layui-card-body\" data-keycode=\"110 190\">.</div>","</div>","</div>",a.options.rightBtns?l:"","</div>","</div>"].join("")),d=c.next(".layui-keyboard-number"),d.on("touchstart click",".layui-card-body",function(d){return a.setValue(a,c,b(this)),layui.stope(d),!1}),d.on("blur",function(){var b=c.val();c.val(a.toFixedPrec(a,c,b)),d.remove()}),a.options.listening&&a.initKeyListening(a,c,d)}d.focus()},initKeyListening:function(a,c,d){var f,g;d.on("keydown",function(h){g=h.keyCode;var e=parseInt(c.val())||0;return 107===g||h.shiftKey&&187===g?0>e&&a.setValueRange(a,c,Math.abs(e)):109===g||h.shiftKey&&189===g?0<e&&a.setValueRange(a,c,"-"+e):(f=d.find(".layui-card-body[data-keycode~="+g+"]"),f[0]&&f.trigger("click").css("background-color","#f2f2f2"),d.off("keyup").on("keyup",function(){b(".layui-card-body[data-keycode]").css("background-color","#ffffff")})),!1})},toFixedPrec:function(a,b,c,d){var e,f,g,h=b.data("prec")||a.options.defaultPrec;try{h=isNaN(h)?c.toString().split(".")[1].length:h}catch(a){console.warn(a)}try{d=d||0,h=Math.max(h,-1<d.toString().indexOf(".")?d.toString().split(".")[1].length:0)}catch(a){console.warn(a)}for(e=Math.pow(10,h),f=((c*e+d*e)/e).toString(),g=f.indexOf("."),0>g&&(g=f.length,f+=".");f.length<=g+h;)f+="0";return f},setValueRange:function(a,b,c){var d=b.attr("min")||-9223372036854776000,e=b.attr("max")||9223372036854776000;d="string"==typeof d&&-1<d.indexOf("0")?parseFloat(d):parseInt(d),e="string"==typeof e&&-1<e.indexOf("0")?parseFloat(e):parseInt(e),c<d&&(c=d,a.tips(b,"\u6700\u5C0F\u503C\u4E3A "+d+"\uFF01")),c>e&&(c=e,a.tips(b,"\u6700\u5927\u503C\u4E3A "+e+"\uFF01")),c=c<d?d:c>e?e:c,b.val(c)},setValue:function(a,c,d){var e=b.trim(c.val()),f=b.trim(d.text()),g=c.data("prec")||a.options.defaultPrec,h=-1<e.indexOf(".");if(-1<b.inArray(f,["0","1","2","3","4","5","6","7","8","9","."])){if("."===f&&(""===e||h))return;if("0"===f&&0===e.indexOf("0")&&!h)return;if(-1<e.indexOf(".")&&e.split(".")[1].length>=g)return void a.tips(c,"\u7CBE\u786E\u5EA6\u4E3A\u4FDD\u7559\u5C0F\u6570\u70B9\u540E "+g+" \u4F4D\uFF01");e=("."!==f&&"0"===e?"":e)+f,a.setValueRange(a,c,e)}else{var i=""===e?0:e,j=c.attr("step");switch(h?(j=parseFloat(j)||.1,i=parseFloat(i)):(j=parseInt(j,10)||1,i=parseInt(i,10)),d.data("keycode")){case"38 39":i=a.toFixedPrec(a,c,i,j);break;case"37 40":i=a.toFixedPrec(a,c,i,-j);break;case 8:var k=e.length;return void(k&&c.val(e.substring(0,k-1)));case-1:return void c.val("");}a.setValueRange(a,c,i)}},tips:function(a,b){return layer.tips(b,a,{tips:1,time:2e3,anim:6,zIndex:20190403})}})});