11.8 1.5.1开发结束

1.5.1合并了订单和充值单。

最大的变化时创建/编辑充值单,不再关联订单,而是关联合同,也不再从订单取相关信息,改为用户自行选择。这边最让我纠结的是下单产品和下单账户的联动。

在这块研究了三四天,尤其是编辑时,带出代理商或者直客时,取到当前下单账户,并且渲染出来,而创建时是选择客户后进行联动取数据,其实没有差别,

但是编辑时获取下单账户总是慢于渲染下单账户,因此下单账户一直为空。

于是想把渲染下单账户这个函数放在获取下单账户方法里面进行,但是这样一旦选择代理商/直客就会渲染下单账户。

可是实际上,除了编辑时进入页面这一情况,只有在选择下单产品时才需要渲染下单账户。

试了好几次,最终选择给【getProductList】获取下单账户这一函数多传两个参数pCode(下单产品code),pId(该充值单产品账户id,用于默认选中该条数据),标识这是编辑,当有这个参数时,在getProductList方法中调用【showAccounts】渲染下单账户方法,对页面进行渲染。否则只是给productList这一全局变量进行赋值。

//取客户账户列表
getProductList: function(code,pCode,pId) {
    MJJS.http.post(API.productList, {customerCode: code}, function(o) {
         productList = o;
         if(pCode && pId) {
              prepaidEdit.showAccounts(pCode,pId);
         }
    }, function(err) {
         MJJS.page.dialog.alert(err.msg);
    });
},

而【showAccounts】这一函数也多加了个参数id,代表当前充值单的产品账户id,用于传递给函数dom,动态生成html时,选中该条数据。

showAccounts: function(code,id) {
    if(code) {
        var pList = [];//存放当前code的所有产品账户
        $.each(productList, function(i,v) {
            if(code === v.productCode) {
               pList.push(v);
            }
        });
        var _html = ‘‘;//存放生成的html
        //如果当前code的产品账户为0
        if(pList.length>0) {
            _html = prepaidEdit.dom(code,pList,1,id);
        }else{
            _html = ‘‘;
        }
        $(‘.accounts‘).html(_html);
     }else{
        $(‘.accounts‘).html(‘‘);
     }
},
    //动态生成下单账户
        dom: function(code,pList,type,id) {
            //code 当前下单产品code
            //pList 当前下单产品的产品账户
            //type 1-切换下单产品时渲染 2-添加下单账户后更新账户
            //id productCustId type为1 编辑选中当前下单产品
            var pLen = pList.length;
            var _pLen = _productList.length;
            var str = ‘‘;
            var _name,custName,custId;
            for(var k=0;k<_pLen;++k){
                if(code == _productList[k].val){
                    _name = _productList[k].name;
                    custName =_productList[k].custName;
                    custId =_productList[k].custId;
                }
            }
            for(var i = 0;i<pLen;i++) {
                str += ‘<div class="row"><div class="col-md-3"><label class="radio-inline">‘;
                if(type === 2){
                    str += ‘<input type="radio" name="finalProduct" value="‘+pList[i].orderProductCode+‘" checked>‘+_name+‘</label>‘;
                }else if(type == 1 && id && id == pList[i].productCustId){
                    str += ‘<input type="radio" name="finalProduct" value="‘+pList[i].orderProductCode+‘" checked>‘+_name+‘</label>‘;
                }else{
                    str += ‘<input type="radio" name="finalProduct" value="‘+pList[i].orderProductCode+‘">‘+_name+‘</label>‘;
                }
                if(code == ‘1001‘ || code == ‘1002‘ || code == ‘1003‘) {
                    str += ‘</div><div class="col-md-4 pt7">‘+custName+‘<span>‘+pList[i].productCustName+‘</span>‘+
                           ‘</div><div class="col-md-5 pt7">‘+custId+‘<span>‘+pList[i].productCustId+‘</span></div></div>‘;

                }else{
                    str += ‘</div><div class="col-md-9 pt7">‘+custName+‘<span>‘+pList[i].productCustId+‘</span></div></div>‘;
                }
            }
            return str;
        },

历时一周,充值单创建&编辑终于做好了。撒花!

第二个部分就是充值单列表,主要功能是自定义显示列,和上个版本的延期核销垫款客户标红类似,对列表进行操作。不同的是,标红针对某一行,而自定义显示列的操作维度是列。第一次接触自定义显示,本来没有思路,jf给我说了一下大概,我又想了一下,就是首先给表中的每一列加class,td-value,选中自定义的复选框时,保存选中的value,将列表中列的类名与选中的value的列hide,就可以了。充值单列表只用了半天。

基本所有时间都花在创建和编辑的页面联动上。

心累。希望充值单彻底翻篇吧,充值单一次次优化,直到此次合并,已经面目全非了QAQ

关于编辑器,我一直用的sublime text,jf用的webstorm,wd用的visio studio code,他俩都吐槽过我的编辑器Orz

现在是联调阶段,明天测试开始提测,所以这两天边修bug边看一下编辑器,webstorm比较大,对比一下,vc code更易上手。

准备换vs code啦!加油!!

时间: 2024-10-07 04:43:44

11.8 1.5.1开发结束的相关文章

javaWeb学习总结(11)- 监听器(Listener)在开发中的应用

监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听器技术来实现这个功能了. package me.gacl.web.listener; import javax.servlet.ServletContext; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.

Cocos2d-x 3.2 大富翁游戏项目开发-单机开发结束

今天找了下资源图片,把其余2个关卡地图做完了,包括夏日海滩,本来想找空中花园的地图,可是搜了半天没找到好的图片,就改成了冰天雪地的地图. 代码基本没有什么大的变化,大家一看就明白了,不再解释.(可以用beyondcompare同前期代码比对着看) 这样单机部分到此就结束了,感谢大家的支持和鼓励,后期继续编写对战版本,请关注..... 点击下载apk 点击下载代码

Simple2D-26 Simple2D 最后的工作,开发结束

开始的时候打算将 Simple2D 做成一个库的,但现在没有那个功夫了. 要渲染顶点数据,就必须将渲染函数放置到 glClear( ) 函数和 SwapBuffers( ) 函数之间,但又不希望开发时涉及 Simple2D 的内部.使用回调函数进行刷新回调和渲染回调,需要时添加相应的回调函数即可. 假设使用 Simple2D 开发一个游戏,更新操作和渲染操作都在自定义的类 GameApplication (类名是自定义的,这里使用的是 GameApplication)中完成.GameApplic

2015年11月16日 Hbuilder开发HTML5 APP之向导页制作

研究了下,向导页的制作还是比较简单的,主要使用的是mui控件中的”图片轮播“组件,组件的标签写法手册中有,中间发现个有趣的东西,如果要作全屏,可以加个样式mui-fullscreen 滑动图片时会自动激发slide事件,要想知道翻到哪页了,可使用事件参数event,event.detail.slideNumber得到 比如翻到最后一页了,让某个按钮的透明度缓慢变成1,这样就可以看到得到按钮了,点击后跳转到主页!

【cocos2dx开发技巧10】cocosStudio的集成以及c++11的新特性

转发,请保持地址:http://blog.csdn.net/stalendp/article/details/38880997 很长时间没有碰cocos2dx了,最近又用起来了,花了好几个小时重新熟悉了一下,发现很多新的特性值得用来写文章.好吧,先从最常用的开始.最近用windows,使用cocosStudio,就从这个开始吧,顺带介绍一下工程的创建,以及c++11的特性.以前开发使用cocosBuilder开发界面(相关集成见这篇文章). 准备工作 1)准备NDK.andrdoid-SDK,V

《软件测试管理公开课》2015.8.7~8 深圳 2015.8.11~12 北京 2015.8.18~19上海,欢迎报名!

课时:13小时(2天) 在软件开发流程中构筑软件质量 --软件测试管理     2015.8.7~8 深圳 2015.8.11~12 北京 2015.8.18~19上海   [课程背景] 据中国软件行业协会研究报告显示,2010年1-11月,我国软件业呈快速增长态势,同比增长30%,增速比去年同期提高8.6个百分点,软件产业已成为中国高科技发展重要支柱之一,但中国软件产品质量保证手段以及测试流程和管理的规范性,与国外同行(美国.印度等)存在较大的的差距.      在软件业较发达的国家, 软件测

手机卫士-11

手机卫士-11 课1 看门狗WatchDogService程序优化 程序锁不断打开关闭打开关闭,有时还是有界面没及时切换过来 有一瞬间还看见程序的界面,隐私还是保护得不够好 原因是看门狗里WatchDogService.java里死循环,整个死循环的周期有一定的事件,所以会产生多次打开程序锁而界面没切换过来 那是因为应用程序还不够优化 //该标志符用来控制是否不断刷新 flag = true; new Thread() { //其实该service所做的事件就是创建一个死循环,不断查看tempS

SuperMap iObject .NET开发完成后私有部署,打包安装

转载自:http://blog.csdn.net/supermapsupport/article/details/53319800 作者:皇皇 SuperMap iObjict .NET组件开发结束后,要部署在用户机器上使用,有两种部署方式,分别是共享部署和私有部署.共享部署简单,下载.NET组件,运行解压包下的Install.bat进行安装,有许可就可以使用开发的程序了.但是.NET组件包比较大,下载拷贝都不方便,并且组件文件的位置变化后程序还运行不了.私有部署就不存在这些问题,接下来我用一个

Boost程序库完全开发指南——深入C++“准”标准库(第3版)

内容简介  · · · · · · Boost 是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉. Boost 由C++标准委员会部分成员所设立的Boost 社区开发并维护,使用了许多现代C++编程技术,内容涵盖字符串处理.正则表达式.容器与数据结构.并发编程.函数式编程.泛型编程.设计模式实现等许多领域,极大地丰富了C++的功能和表现力,能够使C++软件开发更加简捷.优雅.灵活和高效. <Boost程序库完全开发指南——深入C++“准”标准库(