平板收银系统、国产系统,鸿蒙系统,小键盘的封装与应用—仙盟创梦IDE ...

打印 上一主题 下一主题

主题 1862|帖子 1862|积分 5586


数字小键盘封装

数组小键盘封装是指将与数组小键盘相干的功能、操纵、数据等进行整合,形成一个独立的、可复用的模块。封装数组小键盘具有以下几方面重要意义:
提高代码可维护性



  • 低落复杂度:数组小键盘在实际应用中,大概涉及到按键事件处理、按键状态管理、输入数据验证等一系列操纵。若不进行封装,这些代码会分散在整个项目中,导致代码结构混乱,难以理解和维护。而封装后,这些代码被集中在一个模块里,代码结构变得清晰,维护起来更加容易。
  • 便于修改:当小键盘的功能需要调整时,比如修改按键布局、添加新的按键功能,只需在封装模块内部进行修改,不会对项目标其他部分产生影响。例如,原本小键盘只能输入数字,如今要添加小数点输入功能,在封装模块里添加相应的按键处理逻辑即可。
加强代码复用性



  • 跨项目使用:封装好的数组小键盘模块可以在多个项目中重复使用。比如,在开发多个需要数字输入的移动应用时,只需将封装好的小键盘模块引入到不同项目中,就可以快速实现小键盘功能,避免了重复编写相同代码的工作,提高了开发效率。
  • 项目内复用:在同一个项目中,不同的界面大概都需要用到数组小键盘,如登录界面输入验证码、设置界面输入暗码等。通过封装,只需在需要的地方调用这个模块,就可以轻松实现小键盘功能,淘汰了代码冗余。
提升代码安全性



  • 隐蔽内部实现细节:封装可以将小键盘的内部实现细节隐蔽起来,只对外提供必要的接口。外部代码只能通过这些接口与小键盘模块进行交互,如许可以防止外部代码对小键盘内部数据和逻辑的非法访问和修改,提高了代码的安全性。
  • 数据验证和过滤:在封装模块内部可以对用户输入的数据进行验证和过滤,防止非法数据进入系统。例如,在小键盘输入暗码时,可以在模块内部验证暗码长度、字符类型等,确保输入的暗码符合安全要求。
便于团队协作



  • 分工明确:封装后的数组小键盘模块可以由专门的开发职员负责开发和维护,其他开发职员只需按照接口文档使用该模块即可。如许可以实现开发任务的分工,提高团队开发效率。
  • 淘汰冲突:不同开发职员在开发项目时,大概会对同一部分代码进行修改,从而产生冲突。封装后的模块可以淘汰这种冲突的发生,因为其他开发职员不需要相识模块内部的具体实现,只需要关注接口的使用。
 数字小键盘匿名关联事件优点



  • 淘汰定名冲突:匿名函数无需定名,这能避免因函数定名引发的冲突标题。在一个大型项目中,代码里会存在大量的函数和变量,若为每个事件处理函数都赋予一个唯一的名称,不但耗费时间,还大概出现定名重复的状态。采用匿名关联事件,就无需操心定名的标题,低落了定名冲突的大概性。
  • 代码紧凑:匿名关联事件可以直接在事件绑定的地方界说事件处理逻辑,让代码更加紧凑。以 JavaScript 为示例,在绑定命字小键盘按键点击事件时,使用匿名函数可以让代码看起来更加简便

代码 

  1. /*
  2. 仙盟 创梦 数字键盘
  3. 2024-5-8
  4. */
  5.      // 检查页面中是否存在 CyberWin_Dialog 对象
  6.         if (typeof window.CyberWin_Dialog === 'undefined') {
  7.             // 如果不存在,创建一个空的 CyberWin_Dialog 对象
  8.             window.CyberWin_Dialog = {};
  9.         } else {
  10.                         /*
  11.             // 如果存在,为其添加一个类属性
  12.             if (!CyberWin_Dialog.仙盟创梦_小键盘) {
  13.                 CyberWin_Dialog.仙盟创梦_小键盘 = {
  14.                                          
  15.                                         play: function (灵体obj) {
  16.                                                 console.log("灵体obj");
  17.                          console.log(灵体obj);
  18.                     },
  19.                     contains: function (className) {
  20.                         return !!this[className];
  21.                     }
  22.                 };
  23.             }
  24.                         */
  25.            // CyberWin_Dialog.classList.add('new-class');
  26.         }
  27.                  // 如果存在,为其添加一个类属性
  28.             if (!CyberWin_Dialog.仙盟创梦_小键盘) {
  29.                 CyberWin_Dialog.仙盟创梦_小键盘 = {
  30.                                          
  31.                     add: function (className) {
  32.                         if (!this[className]) {
  33.                             this[className] = true;
  34.                         }
  35.                     },
  36.                                          
  37.                                    // this.仙盟创梦_数字键盘_灵体obj=null,
  38.                                   
  39.                                          
  40.                                         constructor() {
  41.                                             this.仙盟创梦_cpu=this
  42.                                         },
  43.                                          
  44.                                          仙盟创梦_cpu:this,
  45.                                          仙盟创梦_数字键盘_灵体_指针obj:null,
  46.                                          仙盟创梦_数字键盘_灵体_指针id:null,
  47.                                        
  48.                                         getStyle:function(){
  49.                                                   const 仙盟样式 =`<style>.仙盟创梦_数字键盘对话框dlg{    z-index: 999999;border:0px;flex-direction:column;margin:0 !important;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-height:calc(100% - 30px);max-width:calc(100% - 30px)}.仙盟创梦_数字键盘容器{width:300px;border:1px solid #ccc;border-radius:10px;overflow:hidden}.keypad-header{background-color:#4CAF50;color:white;padding:10px;display:flex;justify-content:space-between;align-items:center}.keypad-header span{font-size:18px}.close-btn{background:none;border:none;color:white;font-size:20px;cursor:pointer}.input-display{display:flex;justify-content:space-between;align-items:center;padding:5px 10px;background-color:#f2f2f2}.input-display input{width:80%;padding:5px;border:1px solid #ccc;border-radius:3px}.keypad-body{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:5px;padding:10px}.仙盟创梦-keypad{color: #000;padding:10px;font-size:18px;border:none;border-radius:5px;background-color:#f2f2f2;cursor:pointer}.仙盟创梦_样式_键盘{padding:10px;font-size:18px;border:none;border-radius:5px;background-color:#f2f2f2;cursor:pointer}.仙盟创梦_小键盘_关闭,.仙盟创梦_小键盘_退格,.输入确定{background-color:#e0e0e0}</style>`;
  50.                                                                 return 仙盟样式;
  51.                                                 },
  52.                                         getBody:function(){
  53.                                                 const 仙盟数据 = `
  54.                                                 <dialog id="仙盟创梦_数字键盘对话框dlg" class="仙盟创梦_数字键盘对话框dlg">
  55.                                                 <div class="仙盟创梦_数字键盘容器">
  56.                                                 <div class="keypad-header">
  57.                                                   <span>请输入数量</span>
  58.                                                   <button class="仙盟创梦_小键盘_关闭">×</button>
  59.                                                 </div>
  60.                                                 <div class="input-display">
  61.                                                   <input type="text" id="仙盟创梦_数字键盘_输入数字" readonly>
  62.                                                   
  63.                                                 </div>
  64.                                                 <div class="keypad-body">
  65.                                                   <button class="仙盟创梦-keypad" data-value="7">7</button>
  66.                                                   <button class="仙盟创梦-keypad" data-value="8">8</button>
  67.                                                   <button class="仙盟创梦-keypad" data-value="9">9</button>
  68.                                                   <button class="仙盟创梦_样式_键盘 仙盟创梦_小键盘_退格" data-value="backspace">退格</button>
  69.                                                   <button class="仙盟创梦-keypad" data-value="4">4</button>
  70.                                                   <button class="仙盟创梦-keypad" data-value="5">5</button>
  71.                                                   <button class="仙盟创梦-keypad" data-value="6">6</button>
  72.                                                   <button class="仙盟创梦_样式_键盘  仙盟创梦_小键盘_清空">清空</button>
  73.                                                   <button class="仙盟创梦-keypad" data-value="1">1</button>
  74.                                                   <button class="仙盟创梦-keypad" data-value="2">2</button>
  75.                                                   <button class="仙盟创梦-keypad" data-value="3">3</button>
  76.                                                   <button class="仙盟创梦_样式_键盘 输入确定 "   >确认</button>
  77.                                                   <button class="仙盟创梦-keypad" data-value="00">00</button>
  78.                                                   <button class="仙盟创梦-keypad" data-value="0">0</button>
  79.                                                   <button class="仙盟创梦-keypad" data-value=".">.</button>
  80.                                                 </div>
  81.                                           </div></dialog>`;
  82.                                               return 仙盟数据;
  83.                                         },
  84.                                         init: function (灵体obj) {
  85.                                                 console.log("灵体obj");
  86.                          console.log(灵体obj);
  87.                                                  var 仙盟数据 = this.getBody();
  88.                                                  var 仙盟样式 = this.getStyle();
  89.                                                  //document.write(仙盟样式);
  90.                                                  
  91.                                          
  92.                                                  
  93.                                                    const 仙盟键盘容器 = document.getElementById('仙盟创梦_小键盘block');
  94.                                                    仙盟键盘容器.innerHTML=仙盟样式+仙盟数据;
  95.                                                  
  96.                                                     this.loadeventcommon();
  97.                                                   
  98.                            //const dialog = new Dialog(仙盟数据);
  99.                     },
  100.                                         play: function (灵体obj,灵体id) {
  101.                                                 console.log("灵体obj");
  102.                         // console.log(灵体obj);
  103.                            console.log("仙盟创梦_cpu==仙盟创梦_cpu");
  104.                                                   console.log(this.仙盟创梦_cpu);
  105.                                        
  106.                                                  this.仙盟创梦_数字键盘_灵体_指针obj=灵体obj;
  107.                                                  this.仙盟创梦_数字键盘_灵体_指针id =灵体id;
  108.                                                   console.log('关闭小键盘2');
  109.                                           console.log(this.仙盟创梦_数字键盘_灵体obj);
  110.                                                  
  111.                                                  var 仙盟数据 = this.getBody();
  112.                                                  // console.log(仙盟数据);
  113.                                                   var p = document.createElement('dialog');
  114.                                                p.innerHTML =仙盟数据;
  115.                                                    element.classList.add("newClass");
  116.                                                    element.setAttribute("id", "newID");
  117.                                                    document.body.append(p);
  118.                                                   p.show();
  119.                                                   
  120.                                                   this.loadevent(灵体obj,灵体id);
  121.                                                   仙盟创梦_数字键盘对话框dlg.show();
  122.                                                    var 仙盟创梦_数字键盘_输入数字 = document.getElementById('仙盟创梦_数字键盘_输入数字')
  123.                                                    仙盟创梦_数字键盘_输入数字.value=全局仙盟创梦_数字键盘_灵体obj.value;
  124.                                                   
  125.                            //const dialog = new Dialog(仙盟数据);
  126.                     },
  127.                                         loadeventcommon: function () {
  128.                                                  var buttons = document.querySelectorAll('.仙盟创梦-keypad');
  129.                                                  buttons.forEach(button => {
  130.                                          
  131.                                   button.addEventListener('click', function () {
  132.                                         const value = this.dataset.value;
  133.                                
  134.                                         if (value === 'backspace') {
  135.                                           仙盟创梦_数字键盘_输入数字.value = 仙盟创梦_数字键盘_输入数字.value.slice(0, -1);
  136.                                         } else if (value === 'cancel') {
  137.                                           仙盟创梦_数字键盘_输入数字.value = '';
  138.                                         } else if (value === 'confirm') {
  139.                                           // 这里可以添加确认后的处理逻辑,比如提交数据等
  140.                                           console.log('确认输入的数字:', 仙盟创梦_数字键盘_输入数字.value);
  141.                                         } else {
  142.                                           仙盟创梦_数字键盘_输入数字.value += value;
  143.                                         }
  144.                                   });
  145.                                 });
  146.                                         },
  147.                    loadevent: function () {
  148.                                        
  149.                                                  console.log("灵体obj");
  150.                                                            console.log('关闭小键盘2loadevent');
  151.                                  
  152.                                        
  153.                                          var 仙盟创梦_cpu = this.仙盟创梦_cpu;
  154.                                                    var 仙盟创梦_数字键盘_灵体id=this.仙盟创梦_数字键盘_灵体_指针id;
  155.                                            var 仙盟创梦_数字键盘_灵体obj = this.仙盟创梦_数字键盘_灵体_指针obj;//灵体obj;
  156.                                            var 仙盟创梦_数字键盘对话框 = document.getElementById('仙盟创梦_数字键盘对话框dlg');
  157.                                        
  158.                                            var 仙盟创梦_数字键盘_输入数字 = document.getElementById('仙盟创梦_数字键盘_输入数字');
  159.                                                 var 仙盟创梦_小键盘_关闭 = document.querySelector('.仙盟创梦_小键盘_关闭');
  160.                                                 var 仙盟创梦_小键盘_清空 = document.querySelector('.仙盟创梦_小键盘_清空');
  161.                                                   var 输入确定 = document.querySelector('.输入确定');
  162.                                                  var 仙盟创梦_小键盘_退格 = document.querySelector('.仙盟创梦_小键盘_退格');
  163.                       仙盟创梦_数字键盘_输入数字.value = 全局仙盟创梦_数字键盘_灵体obj.value;
  164.                                                 console.log("仙盟创梦_数字键盘_灵体obj",仙盟创梦_数字键盘_灵体obj);
  165.                        
  166.                  输入确定.innerHTML = 输入确定.innerHTML;
  167.                                   console.log('事件监听器已清空');
  168.                                 输入确定.addEventListener('click', function () {
  169.                                   
  170.                                   // 这里可以添加关闭小键盘的逻辑,比如隐藏元素等
  171.                                   console.log('关闭小键盘');
  172.                                   
  173.                                   
  174.                                    全局仙盟创梦_数字键盘_灵体obj.value =仙盟创梦_数字键盘_输入数字.value;
  175.                                    //仙盟创梦_数字键盘_输入数字.value = '';
  176.                                    仙盟创梦_数字键盘对话框dlg.close();
  177.                                    console.log('关闭小键盘2');
  178.                                 });
  179.                                 仙盟创梦_小键盘_清空.addEventListener('click', function () {
  180.                                   仙盟创梦_数字键盘_输入数字.value = '';
  181.                                   
  182.                                   console.log('关闭小键盘');
  183.                                 });
  184.                                 仙盟创梦_小键盘_关闭.addEventListener('click', function () {
  185.                                   仙盟创梦_数字键盘_输入数字.value = '';
  186.                                  
  187.                                   仙盟创梦_数字键盘对话框dlg.close();
  188.                                   console.log('关闭小键盘');
  189.                                 });
  190.                                 仙盟创梦_小键盘_退格.addEventListener('click', function () {
  191.          
  192.           var  text = 仙盟创梦_数字键盘_输入数字.value;//$('#'+cwpd_current_sel_id).val();
  193.                 if (text == "0" || text == "") {
  194.                         //$(this).parents('.counter').find('.text').val('');
  195.                         仙盟创梦_数字键盘_输入数字.value = '';
  196.                 } else {
  197.                         var last_value = text.substr(-2, 1);
  198.                         if (last_value == '.') {
  199.                                  
  200.                                 仙盟创梦_数字键盘_输入数字.value = text.substr(0, text.length - 2);
  201.                         } else {
  202.                          
  203.                                 仙盟创梦_数字键盘_输入数字.value = text.substr(0, text.length - 1);
  204.                         }
  205.                 }
  206.                 //$('#'+cwpd_current_sel_id).focus();
  207. });
  208.                      
  209.                                                   
  210.                            //const dialog = new Dialog(仙盟数据);
  211.                     },
  212.                     contains: function (className) {
  213.                         return !!this[className];
  214.                     }
  215.                 };
  216.             }
复制代码
调用

  1.         var 仙盟创梦_小键盘new = CyberWin_Dialog.仙盟创梦_小键盘;
  2.         //CyberWin_Dialog.仙盟创梦_小键盘.init();
  3.                 仙盟创梦_小键盘new.init();
  4. function 仙盟创梦_数字键盘_打开(灵体obj){
  5.          
  6.       全局仙盟创梦_数字键盘_灵体obj=灵体obj;
  7.           仙盟创梦_小键盘new.play(灵体obj,"");
  8.      // 仙盟创梦_数字键盘对话框.show();
  9.           
  10.       
  11. }
复制代码
平板网页移动收银

  1. onclick="仙盟创梦_数字键盘_打开(this);"
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表