2 lines
6.5 KiB
JavaScript
2 lines
6.5 KiB
JavaScript
layui.define(["jquery"],function(y){var n=layui.$;n("head link:last")[0]&&n("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>')||n("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>'),y("numinput",{options:{topBtns:123,rightBtns:!0,listening:!0,defaultPrec:""},init:function(a){var d=this;d.options=n.extend(d.options,a),n(".layui-input-number").attr({readonly:"readonly"}).on("focus",function(){d.showKeyboard(d,n(this))})},showKeyboard:function(a,d){var s=d.next(".layui-keyboard-number");if(s[0])s.show();else{var i=a.options.rightBtns?"xs3":"xs4",o=a.options.rightBtns?"xs6":"xs4",t=['<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="49 97">1</div>',"</div>","</div>",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="50 98">2</div>',"</div>","</div>",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="51 99">3</div>',"</div>","</div>"].join(""),e=['<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="55 103">7</div>',"</div>","</div>",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="56 104">8</div>',"</div>","</div>",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="57 105">9</div>',"</div>","</div>"].join(""),l=['<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="8" lay-tips="退格">','<i class="layui-icon layui-icon-return"></i>',"</div>","</div>","</div>"].join(""),r=['<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="38 39" lay-tips="增加">','<i class="layui-icon layui-icon-up"></i>',"</div>","</div>","</div>"].join(""),u=['<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="37 40" lay-tips="减小">','<i class="layui-icon layui-icon-down"></i>',"</div>","</div>","</div>"].join(""),v=['<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="-1" lay-tips="清空">','<i class="layui-icon layui-icon-refresh-1"></i>',"</div>","</div>","</div>"].join("");d.after(['<div tabindex="0" hidefocus="true" class="',"layui-keyboard-number",' layui-unselect" ','style="width:',d.width()+10,'px;">','<div class="layui-row layui-col-space1">',a.options.topBtns==789?e:t,a.options.rightBtns?l:"",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="52 100">4</div>',"</div>","</div>",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="53 101">5</div>',"</div>","</div>",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="54 102">6</div>',"</div>","</div>",a.options.rightBtns?r:"",a.options.topBtns==789?t:e,a.options.rightBtns?u:"",a.options.rightBtns?"":l,'<div class="layui-col-',o,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="48 96">0</div>',"</div>","</div>",'<div class="layui-col-',i,'">','<div class="layui-card">','<div class="layui-card-body" data-keycode="110 190">.</div>',"</div>","</div>",a.options.rightBtns?v:"","</div>","</div>"].join("")),s=d.next(".layui-keyboard-number"),s.on("touchstart click",".layui-card-body",function(c){return a.setValue(a,d,n(this)),layui.stope(c),!1}),s.on("blur",function(){var c=d.val();d.val(a.toFixedPrec(a,d,c)),s.remove()}),a.options.listening&&a.initKeyListening(a,d,s)}s.focus()},initKeyListening:function(a,d,s){var i,o;s.on("keydown",function(t){o=t.keyCode;var e=parseInt(d.val())||0;return o===107||t.shiftKey&&o===187?0>e&&a.setValueRange(a,d,Math.abs(e)):o===109||t.shiftKey&&o===189?0<e&&a.setValueRange(a,d,"-"+e):(i=s.find(".layui-card-body[data-keycode~="+o+"]"),i[0]&&i.trigger("click").css("background-color","#f2f2f2"),s.off("keyup").on("keyup",function(){n(".layui-card-body[data-keycode]").css("background-color","#ffffff")})),!1})},toFixedPrec:function(a,d,s,i){var o,t,e,l=d.data("prec")||a.options.defaultPrec;try{l=isNaN(l)?s.toString().split(".")[1].length:l}catch(r){console.warn(r)}try{i=i||0,l=Math.max(l,-1<i.toString().indexOf(".")?i.toString().split(".")[1].length:0)}catch(r){console.warn(r)}for(o=Math.pow(10,l),t=((s*o+i*o)/o).toString(),e=t.indexOf("."),0>e&&(e=t.length,t+=".");t.length<=e+l;)t+="0";return t},setValueRange:function(a,d,s){var i=d.attr("min")||-9223372036854776e3,o=d.attr("max")||9223372036854776e3;i=typeof i=="string"&&-1<i.indexOf("0")?parseFloat(i):parseInt(i),o=typeof o=="string"&&-1<o.indexOf("0")?parseFloat(o):parseInt(o),s<i&&(s=i,a.tips(d,"最小值为 "+i+"!")),s>o&&(s=o,a.tips(d,"最大值为 "+o+"!")),s=s<i?i:s>o?o:s,d.val(s)},setValue:function(a,d,s){var i=n.trim(d.val()),o=n.trim(s.text()),t=d.data("prec")||a.options.defaultPrec,e=-1<i.indexOf(".");if(-1<n.inArray(o,["0","1","2","3","4","5","6","7","8","9","."])){if(o==="."&&(i===""||e)||o==="0"&&i.indexOf("0")===0&&!e)return;if(-1<i.indexOf(".")&&i.split(".")[1].length>=t)return void a.tips(d,"精确度为保留小数点后 "+t+" 位!");i=(o!=="."&&i==="0"?"":i)+o,a.setValueRange(a,d,i)}else{var l=i===""?0:i,r=d.attr("step");switch(e?(r=parseFloat(r)||.1,l=parseFloat(l)):(r=parseInt(r,10)||1,l=parseInt(l,10)),s.data("keycode")){case"38 39":l=a.toFixedPrec(a,d,l,r);break;case"37 40":l=a.toFixedPrec(a,d,l,-r);break;case 8:var u=i.length;return void(u&&d.val(i.substring(0,u-1)));case-1:return void d.val("")}a.setValueRange(a,d,l)}},tips:function(a,d){return layer.tips(d,a,{tips:1,time:2e3,anim:6,zIndex:20190403})}})});
|