1,项目介绍:
先对这个练习项目做一个大概的介绍:商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)和商店和正在进行的优惠活动(Promotion)进行结算和打印购物清单。已知该商店正在对部分商品进行"买二赠一"的优惠活动。我们需要实现一个名为printInventory函数,该函数能够将指定格式的数据作为参数输入,然后在浏览器的控制台中输出结算清单的文本。web版具体项目需求请看卡片:
https://trello.com/b/GnmBAyPK/pos.2,时间计划:
本次练习要求先做一个时间计划,锻炼我们的时间掌控能力.我做的计划如下:
内容 | 计划时间(小时) | 实际时间(小时) |
学习jQuery | 5 | 4 |
搭建项目和jQuery框架 | 0.5 | 1.5 |
界面设计 | 2 | 2 |
逻辑设计 | 2 | 3.5 |
走查 | 0.5 | 3 |
bug时间 | 2 |
完成这个项目的时间超出了计划时间两小时左右,虽然没有在计划时间内完成项目,但我还是中收获不少.有一种时间紧迫感很好.相信接下来的项目中我能更好的把握时间和项目进度.
3,jQuery学习总结:
学习资源:
https://www.codeschool.com/jQuery是一个javascript框架.它能轻易的操作任意DOM元素,而且兼容各种浏览器.
(1、注册事件的函数:
$(document).ready(function(){ alert("hello world!"); });
可简写为:
$(function(){});
(2、选择器:
选择器是jQuery很重要的,jQuery能够通过选择器选择DOM元素,然后对其进行操作.格式:将需要选择的元素写入函数$()中,$为jQuery()的缩写.选择器元素主要是DOM的标签元素和css元素.例:
$('div') //选择所有的div元素 $('#hello')//选择ID为hello的网页元素 $('.hello')//选择class为hello的网页元素
(3、显示和隐藏元素:
例:
$("#hide").click(function(){ $("p").hide();//显示 }); $("#show").click(function(){ $("p").show();//隐藏 });
(4、获取页面内容:
text(); //设置或返回所选元素的文本内容
html();//设置或返回所选元素的内容(包括 HTML 标记)
val();//设置或返回表单字段的值
4,用jQuery编写webPos:
(1,用yeoman搭建项目:
通过终端打开开一个目标路径,新建项目文件夹并进入.输入:
yo webapp
如果没装yo或者没装webapp generater就按我的linux环境搭建文章安装.
(2,界面设计:
因为在学习jQuery的时候发现它有显示和隐藏两个函数.所以我就将pos机的写成了一个页面,分布在几个不同的div中,通过click事件对元素实现显示和隐藏,这样会少去一些页面之间的数据操作.例:通过点击主页上的按钮进入商品列表页面:
$("#product_list").hide(); $("#shopping_car").hide(); $("#payment_page").hide(); $("#home").find("button").on('click',function(){ $("#home").hide(); $("#product_list").show(); $('#bar').find('li').removeClass("active"); $('#bar').find('li').eq(2).addClass("active"); product_list(); });
(3,生成商品列表页:
首先定义一个类,有商品的各种属性:
function Item(barcode,sort, name, unit, price) { this.barcode = barcode; this.sort = sort; this.name = name; this.unit = unit; this.price = price || 0.00; }
定义一个方法实现调用上面的类生成一组商品信息:
function loadAllItems() { return [ new Item('coke','饮料', '可口可乐', '瓶', 3.00), new Item('sprite','饮料', '雪碧', '瓶', 3.00), new Item('apple','水果', '苹果', '斤', 5.50), new Item('lychee','水果', '荔枝', '斤', 15.00), new Item('battery','生活用品', '电池', '个', 2.00), new Item('instant_noodles','食品','方便面', '袋', 4.50) ]; }
然后写了一个方法生成商品信息并添加到页面中:
var product_list = function(){ var allItems = loadAllItems(), button = '<button type="button" class="btn btn-info">加入购物车</button>'; var bar =$("#product_list").find("tr").first().html(); $("#product_list").find("table").html('<tr>'+bar+'</tr>'); _(allItems).each(function(item){ var table_row = "<tr>"+ "<td>"+item.sort+"</td>"+ "<td>"+item.name+"</td>"+ "<td>"+item.unit+"</td>"+ "<td>"+item.price+"</td>"+ "<td>"+button+"</td>"+ "</tr>"; $("#product_list").find("table").append(table_row); });
(4,加入购物车,显示购物车数量:
绑定'加入购物车'按钮函数,通过按钮遍历父元素,找到相应的商品的名字,然后把它的数量加一:
$('#product_list').find('button').on('click',function(){ var name = $(this).closest('tr').find('td').eq(1).text(); add_num(name); refresh_car_num(); });
add_num()加入购物车:
var add_num = function(item){ var lists = JSON.parse(localStorage.lists ); lists[item] = parseInt(lists[item])+1; localStorage.lists = JSON.stringify(lists); };
refresh_car_num(),刷新购物车数量;
var refresh_car_num = function(){ var lists = JSON.parse(localStorage.lists ); var num = 0; _(lists).each(function(list){ num = list+num; }); $('#bar').find('#car_number').text(num); };
(5,商品促销计算:
赠送的商品数量为:parseInt(number/3);//parseInt()为对数字取整
(6,项目GitHub地址:
https://github.com/zhangkehbg/web_pos.git总结:
这个pos机项目主要用到了jquery中的选择器查找修改和添加页面元素,页面跳转用到了jquery的hide和show函数.对jquery有了初步了解.
相关推荐
在网页版POS机小票打印中,Socket被用来建立Web服务器和POS机之间的连接。通过这个连接,网页上的指令可以被传输到POS机,控制其进行打印操作。同时,POS机的状态和反馈信息也可以通过Socket返回到网页端,确保整个...
JavaPOS机项目练习是一个非常适合Java初学者的C/S(客户端/服务器)应用程序,它利用了Java的Swing库来构建用户界面,并通过JDBC(Java Database Connectivity)与数据库进行交互。这个项目旨在帮助学习者掌握Java ...
POS机对接SDK是一种软件开发工具包,主要用于帮助开发者在C#环境下实现与POS(销售点)设备的交互。8583是金融行业的标准报文格式,全称为ISO 8583,用于电子支付系统中的数据交换。在这个场景中,8583报文被用来...
总结来说,Web打印POS小票机的核心在于利用LODOP插件,通过JavaScript编写代码,结合HTML和CSS来设计布局,实现对POS小票机的控制。这不仅降低了成本,也提高了效率,是现代零售业中一个实用的技术解决方案。
POS 机芯片型号整理 POS 机是指点售机,是一种电子支付终端,能够为用户提供便捷的支付服务。随着科技的发展,POS 机的芯片型号也在不断更新换代。下面,我们将对 POS 机的芯片型号进行整理和分析。 1. 主控芯片 ...
联迪pos机驱动联迪E550移动pos机 - 移动pos机,银联pos机,
本项目聚焦于使用C#编程语言与POS机进行通信,借助posinf.dll动态链接库实现这一功能。下面将详细阐述相关知识点。 1. **C#编程语言**:C#是由微软开发的一种面向对象的编程语言,广泛应用于Windows平台的软件开发...
在IT行业中,尤其是在支付系统和零售业,与POS(Point of Sale)机的通信是至关重要的。本项目涉及的是使用Java进行串口通信,以便与银联POS机进行交互。以下将详细介绍这个过程中的关键知识点。 1. **Java串口通信...
【Android代码-安卓版本pos机】项目主要涵盖了在Android平台上开发的一款移动支付终端应用,它允许用户通过智能手机或平板电脑进行类似于传统POS机的交易操作。这个项目的核心目标是将传统的零售支付体验移植到移动...
POS机销售网站PHP是一个基于PHP语言开发的网页应用,主要用于在线销售POS(Point of Sale)设备。这个项目设计为宽屏页面,具有高端、大气、上档次的视觉效果,为用户提供了良好的浏览和购物体验。从提供的文件列表...
POS机行业2022年发展概况分析及未来十年POS机行业数据趋势预测.docx
pos机驱动,万能的POS机驱动,方便好用。
在本文中,我们将深入探讨如何使用Java调用DLL库,特别是在银联POS机接口的集成应用上。这个项目是基于JDK1.8开发的,它利用了Maven作为项目管理工具,使得开发者能够更方便地引用和管理DLL库。对于那些在IT行业,...
POS机使用
"POS机UML图实现" 在POS机系统中,UML图是非常重要的一部分,能够帮助开发人员和业务人员更好地理解和描述系统的架构和行为。在本文中,我们将通过对POS机系统的分析,生成相关的知识点,并将其组织成一份详细的UML...
在本项目中,"C语言简单POS机"是一个用C语言编写的简易销售点(Point of Sale, POS)系统。这个项目旨在帮助学习C语言的初学者理解和实践编程概念,同时也为那些想了解POS系统工作原理的人提供了一个基础的平台。 ...
POS机,全称为Point of Sale,即销售点终端,是一种用于商业交易的设备,常见于零售店、餐馆等场所。POS机代码通常指的是用于控制POS机运行的软件程序,包括了处理交易、管理库存、顾客服务等多个方面的功能。在本文...
《PBootCMS响应式刷卡机POS机网站模板与支付设备网站源码详解》 在数字化支付日益普及的今天,POS机作为商家与消费者之间的重要桥梁,其在线展示平台也日益受到重视。PBootCMS响应式刷卡机POS机网站模板正是为满足...
POS机,全称为“销售点终端”,是商业交易中广泛使用的设备,主要用于处理各种支付交易。POS机应用规范是确保其安全、高效运作的重要指导文件。2015年发布的《销售点终端POS应用规范》(QCUP009.1-2015)是最新的...
在本文中,我们将深入探讨如何使用从废弃POS机中拆解出的LCD12864液晶屏。LCD12864是一种常见的图形液晶显示器,具有128x64像素的分辨率,广泛应用于各种电子设备中。通过理解其管脚定义、连接方式以及编写合适的...