bug:加数量的时候结算金钱出现NAN

先给一个简单粗暴的解决办法。

找到/tpl/static/dishout/js/main.js

把  65行

disPrice = parseFloat(sign + 1) * parseFloat($(this).parents('li').find('.tureunit_price').val()),

换成

disPrice = parseFloat(sign + 1) * parseFloat($(this).parents('.li').find('.unit_price').text()),

main.js的源码全部在这里

var yTotalPrice=0;
$.fn.amount = function(num, callback){
var num = typeof num === 'undefined' ? 0 : num,
callback = callback || $.noop,
isShow = num > 0 ? '' : ' style="display:none;"',
activeClass = 'active'; function add(){
var obj = $(this).prev(),
_num = obj.find('.num'),
curNum = parseInt(_num.text(), 10); var data_obj = obj.parent();
var max = data_obj.attr("max");/**控制每个菜最多可点多少份**/
if(null != max && max != "" && max != "-1" && curNum >= max)
{
return false;
} _num.text(++curNum); data_obj.next(".number").val(curNum);
if(curNum > 0){
obj.show();
$(this).addClass(activeClass);
}
return callback.call(this, '+');
} function del(){
var obj = $(this).parent(),
_num = obj.find('.num'),
_add = obj.next(),
curNum = parseInt(_num.text(), 10); _num.text(--curNum);
obj.parent().next(".number").val(curNum);
if(curNum < 1){
obj.hide();
_add.removeClass(activeClass);
}else{
_add.addClass(activeClass);
}
return callback.call(this, '-');
} return this.each(function(){
$(this).before('<span'+ isShow +'><a href="javascript:void(0);" class="btn del '+ activeClass +'"></a><span class="num">'+ num +'</span></span>').bind('click', add); $(this).prev().find('.del').bind('click', del); if(num > 0){
$(this).addClass(activeClass);
}
});
} $.amountCb = function(){
var _condition = $('#sendCondition'),
_total = $('#totalPrice'),
_cartNum = $('#cartNum'),
sendCondition = parseFloat(_condition.text()).toFixed(2);
return function(sign){
var totalPrice = parseFloat(_total.text()) || 0,
disPrice = parseFloat(sign + 1) * parseFloat($(this).parents('li').find('.unit_price').text()),
price = totalPrice + disPrice,
number = _cartNum.text() == '' ? 0 : parseInt(_cartNum.text()),
disNumber = number + parseInt(sign + 1);
yTotalPrice=yTotalPrice+disPrice;
price = parseFloat((yTotalPrice).toFixed(2));
//alert( parseFloat(sign + 1))
_total.text(price); _condition.text(parseFloat((sendCondition - price).toFixed(2)));
_cartNum.text(disNumber); if(sendCondition - price <= 0){
_condition.parent().hide().next().show();
}else{
_condition.parent().show().next().hide();
}
if(price<=0){
_condition.text(Pricing);
_condition.parent().show().next().hide();
}
if(disNumber > 0){
_cartNum.addClass('has_num');
}else{
_cartNum.removeClass('has_num').text('0');
}
return false;
}
} $(function(){
if($('#swipeNum').length){
new Swipe($('#imgSwipe')[0], {
speed: 500,
auto: 5000,
callback: function(index){
$('#swipeNum li').eq(index).addClass("on").siblings().removeClass("on");
}
});
} $('#storeList li').click(function(e){
if(e.target.tagName != 'A'){
location.href = $(this).attr('href');
}
});
});

ok! 其实看代码就能知道问题的关键应该是它原来的tureunit_price这个类的标签页面上没有了。所以就无法获得参数进行计算

所以对应的解决办法是不改js加html代码。

在选商品和结算的这两个页面上每个循环价钱标签旁加下面这段

<input type="hidden" class="tureunit_price" value="{pigcms:$dditem['price']}"/>

pigcms 微外卖下单加数量bug的更多相关文章

  1. BootstrapDialog自动加<br> BUG处理

    用惯了其他的ui框架 ,综合感觉BootstrapDialog算是最好的一个了. 因为不想在js中写过多的html代码,所以习惯的写法,把代码写在html中,js引用 实例如下: html代码 < ...

  2. Echarts柱状图顶部加数量显示

    //加在series中itemStyle: { normal: { label: { show: true, position: 'top', textStyle: { color: '#615a5a ...

  3. [转]微擎load()文件加载器

    本文转自:https://blog.csdn.net/qq_32737755/article/details/78124534 微擎中加载文件需要用到 load() 在官网找到官方对load()的解释 ...

  4. 深入Java微服务之网关系列1:什么是网关

    ​ 前言 近来,在想着重构一个新的产品.准备采用微服务的技术解决方案,来搭建基础设施框架.网关,是一个必不可少的组件.那么,网关到底是什么? 其又有什么特点或者特性,成为微服务必不可少的组件呢?今天, ...

  5. 微设计(www.weidesigner.com)介绍系列文章(一)

    1.1 什么是微设计? 微设计(www.weidesigner.com)是一个专门针对微信公众账号提供营销推广服务而打造的第三方平台.主要功能是针对微信商家公众号提供与众不同的.有针对性的营销推广服务 ...

  6. wemall app商城源码Android之ListView异步加载网络图片(优化缓存机制)

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android之L ...

  7. wemall app商城源码中基于JAVA的Android异步加载图片管理器代码

    wemall doraemon是Android客户端程序,服务端采用wemall微信商城,不对原商城做任何修改,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可随意定制修改.本文分享其中 ...

  8. 从 MVC 到微服务,技术演变的必经之路

    架构模式演进 CGI 模式 图 1 CGI 出现于 1993 年,图 1 是 CGI 模式比较简单的结构图. MVC 模式 开源电商软件等都是采用 MVC 模式,MVC 模式是做软件开发必学和必经历的 ...

  9. 看完这篇微服务架构设计思想,90%的Java程序员都收藏了

    本博客强烈推荐: Java电子书高清PDF集合免费下载 https://www.cnblogs.com/yuxiang1/p/12099324.html 微服务 软件架构是一个包含各种组织的系统组织, ...

随机推荐

  1. 距离VR时代的真正到来还有多久?

    2016年被称为是VR元年,各大VR设备商的宣传攻势铺天盖地,众VR产品看的人眼花缭乱.随着平民化进程不断推进以及渗透率的提升,VR成为近两年来最引人关注的焦点,在众多领域的共同作用下,VR时代是否即 ...

  2. python自动化开发-2

    1.python的数据类型之列表 列表是Python开发语言中最常见的数据类型之一,通过列表可以实现对数据的增删改等常用操作. 列表的定义:例子 names = ["Lucy",& ...

  3. Linux学习笔记-epoll

    #include <sys/epoll.h> epoll是Linux内核的一个系统调用,一种可扩展的I/O事件通知机制,最早在Linux内核2.5.44版本引入. 它的功能是监视多文件描述 ...

  4. 关于++i和i++

    这个东西我忘了好几次了,啊啊啊,难道是没真正理解吗<script> window.onload=function(){ var i=0; var a=++i; alert(a); }< ...

  5. Winform_devexpress开发框架主界面设计

    做了好多年的C#开发,从.Net.Winform及第三方的DevExpress.无论什么样的系统,主界面的设计及风格无疑非常重要.从客户的角度考虑,要求功能区清晰,整体美观大方,这样才会有可能从第一视 ...

  6. 【转】python删除文件里包含关键词的行

    import shutil with open('/path/to/file', 'r') as f: with open('/path/to/file.new', 'w') as g: for li ...

  7. web 服务器

    作为一个跨专业转行的我来说,对后台一团浆糊,最近在看php,学的进度比较慢 (1)ApacheApache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上.Apache ...

  8. Ajax实现页面动态加载,添加数据

    前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Products ...

  9. java中的d单例模式

    public class SimpleDemo1 { //恶汉式 //类初始化时,立即加载这个对象(没有延时加载的优势).加载类时,天然的是线程安全的 private static final Sim ...

  10. 五大科技巨头VR/AR专利报告,Magic Leap以22.6%领跑

    在十月份发布的<VR/AR专利技术深度分析报告>指出,VR.AR行业的专利多被佳能.索尼.微软.谷歌等科技巨头"包养",但是并没有对这部分进行详细分析.近日,风投公司C ...