Files
jiapu/dist/public/js/lay-module/numinput/numinput.js
T

2 lines
6.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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})}})});