`
zhangkehbg
  • 浏览: 10887 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

AngularJs版web网页Pos机练习总结

阅读更多

1,项目介绍:  

先对这个练习项目做一个大概的介绍:商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)和商店和正在进行的优惠活动(Promotion)进行结算和打印购物清单。已知该商店正在对部分商品进行"买二赠一"的优惠活动。我们需要实现一个名为printInventory函数,该函数能够将指定格式的数据作为参数输入,然后在浏览器的控制台中输出结算清单的文本。web版具体项目需求请看卡片:

https://trello.com/b/GnmBAyPK/pos.

2,时间计划:       

内容 计划时间(小时) 实际时间(小时)
搭建项目框架 0.5 0.5
界面设计 0.5 0.5
逻辑设计 2 2.5
走查 1 1
bug时间

由于之前的party_bid练习有用到AngularJs,对它有一定的了解,并且刚刚做了一个jQuery版本的pos机,所以能节省很多时间.我也大致在计划时间内完成了这个练习.

3,用AngularJs编写webpos:

(1,搭建项目框架:

依然使用yeoman创建项目,打开终端在目标文件夹下输入:

yo angular

 会提示选择一些包,根据项目我选择了bootstrap.

 

(2,界面设计:

依然使用的bootstrap的样式.项目生成的时候就生成了bootsrap模块,所以这里就可以直接根据需要直接在标签中使用css选择器引用需要的样式.

我的pos机主要使用了Navbars导航条的样式:

 <div class="navbar navbar-inverse">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Let's Go</a>
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li class="active"><a href="#">Home</a></li>
                <li ng-click='product()'><a href="">商品列表</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li ng-click="shopping_cart()"><a ><span class="glyphicon glyphicon-shopping-cart" ></span>购物车({{num}})</a></li>
            </ul>
        </div><!--/.nav-collapse -->
    </div>
</div>

 导航条中给每个导航绑定了相应的点击事件,购物车的数量通过AngularJs的表达是"{{}}"与控制器中的数据进行绑定.


(3,逻辑设计:

 

页面跳转:先写app.js,通过路由实现各个页面之间的跳转。

控制器:编写每一个页面的控制器。

模型:编写页面的数据处理函数。

商品列表:

首先定义一个类,有商品的各种属性:

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)
    ];
}

再定义了一个Product类,并写了一个实例方法list()

function Product (){
};
Product.prototype.list = function(){
    return loadAllItems();
}

最后在控制器中new一个Product类,调用它的方法list返回商品的所有信息,并用$scope绑定在到界面上显示。

$scope.products = new Product().list();

 购物车:

 

var bought_list = function(){
      var list = JSON.parse(localStorage['list'] || '[]');
      var allItems = new Product().list();
      allItems = _(allItems).each(function(item){

         try{
         	item.num=  _(list).findWhere({'name':item.name}).num
         }catch(err){
        	item.num=0;
        } ;
    });
    allItems = _(allItems).filter(function(num){
                return num.num !=0;
    });

      return allItems;
};

 定义一个bought_list函数,根据localStorage中购买商品的数量,将已经点击了“添加到购物车”的商品找出来,return 这些商品。然后在控制器中调用这个函数,将得到的信息显示到购物车界面上。

 

购物车中的商品数量加一:

 

var add = function(name){
	var list = JSON.parse(localStorage['list'] || '[]');
	list = _(list).each(function(item){
		if(item.name == name){
			item.num +=1;
		}
	});
	 localStorage['list']  = JSON.stringify(list);
}

 判断商品是否打折:

<td><span ng-show='{{num >=3 &&check_cut(name)}} ' class="ng-hide">{{(num-filters(num/3))*(price)}}(原价:{{(lnum)*(price)}})</span><span  ng-show='{{num <3||!check_cut(lname)}}' class="ng-hide">{{(lnum)*(price)}}</span></td>

 使用了AngularJs 的ng-show和ng-hide方法。通过判断当前商品是不是促销商品(check_cut())和并且数量大于二。如果满足二者,二显示打折后的价格和原价,反之只显示原价.

 

总结:

这个练习巩固了一下之前所学习的AngularJs,我也自我提高了对时间的管理,比上一个jQuery练习好很多,相对与第一个AngularJs 练习项目——party_bid更是有了比较大的进步。

不足之处,界面的样式还不是很会调,有时会因为一个元素的样式而浪费一些时间。接下来会多一点去了解css

 

 

项目GitHub地址:

https://github.com/zhangkehbg/web_pos_angularJs
分享到:
评论

相关推荐

    网页版POS机小票打印

    在网页版POS机小票打印中,Socket被用来建立Web服务器和POS机之间的连接。通过这个连接,网页上的指令可以被传输到POS机,控制其进行打印操作。同时,POS机的状态和反馈信息也可以通过Socket返回到网页端,确保整个...

    javaPos机项目练习

    JavaPOS机项目练习是一个非常适合Java初学者的C/S(客户端/服务器)应用程序,它利用了Java的Swing库来构建用户界面,并通过JDBC(Java Database Connectivity)与数据库进行交互。这个项目旨在帮助学习者掌握Java ...

    pos机对接SDK

    POS机对接SDK是一种软件开发工具包,主要用于帮助开发者在C#环境下实现与POS(销售点)设备的交互。8583是金融行业的标准报文格式,全称为ISO 8583,用于电子支付系统中的数据交换。在这个场景中,8583报文被用来...

    POS机陆续都到了,拆开芯片型号整理下

    POS 机芯片型号整理 POS 机是指点售机,是一种电子支付终端,能够为用户提供便捷的支付服务。随着科技的发展,POS 机的芯片型号也在不断更新换代。下面,我们将对 POS 机的芯片型号进行整理和分析。 1. 主控芯片 ...

    web打印POS小票机代码

    总结来说,Web打印POS小票机的核心在于利用LODOP插件,通过JavaScript编写代码,结合HTML和CSS来设计布局,实现对POS小票机的控制。这不仅降低了成本,也提高了效率,是现代零售业中一个实用的技术解决方案。

    基于posinf.dll 与POS机通讯程序,C#对接POS机

    本项目聚焦于使用C#编程语言与POS机进行通信,借助posinf.dll动态链接库实现这一功能。下面将详细阐述相关知识点。 1. **C#编程语言**:C#是由微软开发的一种面向对象的编程语言,广泛应用于Windows平台的软件开发...

    联迪pos机 驱动

    联迪pos机驱动联迪E550移动pos机 - 移动pos机,银联pos机,

    java串口连接pos机输入输出.zip_java接pos机_poss机对接开发_pos机串口对接_串口jar包_串口pos机

    在IT行业中,尤其是在支付系统和零售业,与POS(Point of Sale)机的通信是至关重要的。本项目涉及的是使用Java进行串口通信,以便与银联POS机进行交互。以下将详细介绍这个过程中的关键知识点。 1. **Java串口通信...

    Android代码-安卓版本pos机

    【Android代码-安卓版本pos机】项目主要涵盖了在Android平台上开发的一款移动支付终端应用,它允许用户通过智能手机或平板电脑进行类似于传统POS机的交易操作。这个项目的核心目标是将传统的零售支付体验移植到移动...

    POS机行业2022年发展概况分析及未来十年POS机行业数据趋势预测.docx

    POS机行业2022年发展概况分析及未来十年POS机行业数据趋势预测.docx

    pos机java调用程序demo(基于dll调用)

    在本文中,我们将深入探讨如何使用Java调用DLL库,特别是在银联POS机接口的集成应用上。这个项目是基于JDK1.8开发的,它利用了Maven作为项目管理工具,使得开发者能够更方便地引用和管理DLL库。对于那些在IT行业,...

    pos机万能驱动

    pos机驱动,万能的POS机驱动,方便好用。

    POS机销售网站PHP

    POS机销售网站PHP是一个基于PHP语言开发的网页应用,主要用于在线销售POS(Point of Sale)设备。这个项目设计为宽屏页面,具有高端、大气、上档次的视觉效果,为用户提供了良好的浏览和购物体验。从提供的文件列表...

    POS机案例关于怎样实现POS机得UML图

    "POS机UML图实现" 在POS机系统中,UML图是非常重要的一部分,能够帮助开发人员和业务人员更好地理解和描述系统的架构和行为。在本文中,我们将通过对POS机系统的分析,生成相关的知识点,并将其组织成一份详细的UML...

    拆解某POS机LCD12864液晶的使用说明

    在本文中,我们将深入探讨如何使用从废弃POS机中拆解出的LCD12864液晶屏。LCD12864是一种常见的图形液晶显示器,具有128x64像素的分辨率,广泛应用于各种电子设备中。通过理解其管脚定义、连接方式以及编写合适的...

    pbootcms响应式刷卡机POS机网站模板 无线支付设备网站源码

    《PBootCMS响应式刷卡机POS机网站模板与支付设备网站源码详解》 在数字化支付日益普及的今天,POS机作为商家与消费者之间的重要桥梁,其在线展示平台也日益受到重视。PBootCMS响应式刷卡机POS机网站模板正是为满足...

    POS机代码

    POS机,全称为Point of Sale,即销售点终端,是一种用于商业交易的设备,常见于零售店、餐馆等场所。POS机代码通常指的是用于控制POS机运行的软件程序,包括了处理交易、管理库存、顾客服务等多个方面的功能。在本文...

    C语言简单POS机

    在本项目中,"C语言简单POS机"是一个用C语言编写的简易销售点(Point of Sale, POS)系统。这个项目旨在帮助学习C语言的初学者理解和实践编程概念,同时也为那些想了解POS系统工作原理的人提供了一个基础的平台。 ...

    POS机使用方法

    POS机使用

Global site tag (gtag.js) - Google Analytics