正文:
竞价报名:是已经活动报名成功的人才能竞价报名成功;每个活动可以有多个竞价,一次只能有一个活动在竞价,此竞价列表底色黄色,相应的活动底色也为黄色;竞价进行时不能创建活动和活动报名;某个竞价结束只能,开始其他的竞价才能继续这个活动的竞价;虽然竞价报名列表只显示竞价人姓名和手机号,但出价也要保存起来,以便竞价分析时使用(与竞价报名类似)。
竞价分析:有两个界面,竞价结果页面以升序排序出价,出价人姓名、联系方式和具体出价,列表中出价最低的不重复价格的出价人竞价成功,用模态框显示获胜者,竞价统计页面以列表形式输出每一个价格的出价人数,依照价格升序排序。
一.竞价报名列表显示时
.wrapper.wrapper.scrollable
%ul(class="list-style-2")
%li( ng-repeat ="bid_information_list in bid_information_lists" style="height:26px")
%div(style="font-size:25px" )
.header-left
{{bid_information_list.name }}
.header-right
{{bid_information_list.phone}}
竞价报名列表显示时,使竞价人的姓名在左边,电话显示在右侧,用header-left,header-right
%ul: 无序列表
%li 标签可用在有序列表 (<ol>) 和无序列表 (<ul>) 中。
%div: 是一个块级元素。这意味着它的内容自动地开始一个新行。实际上,换行是 <div> 固有的唯一格式表现。可以通过 <div> 的 class 或 id 应用额外的样式。
%br: 可插入一个简单的换行符
height :元素的高度
front-size:字体尺寸
二.颜色控制
%li( ng-repeat ="activity in activities" class="{{activity_background(activity)}}" ng-tap="go_to_sign_up_page(activity.name)")
//class绑定的是方法,在controller中控制。在竞价列表中也是这样设置。
另外还有一种方法很简单:直接一步设置好所有的底色为黄色的情况。
%li(ng-repeat="activity in activities" class="{{activity.status}} || {{bid_yellow(activity.name)}}" )
三.模态框
之前已经写了模态框(http://kangxiaoya.iteye.com/blog/2062218)现在主要简单写一下jQuery的升级
某些插件和CSS组件依赖于其它插件。如果你是单个引入每个插件的,请确保在文档中检查插件之间的依赖关系。注意,所有插件都依赖jQuery(也就是说,jQuery必须在所有插件之前引入页面)。bower.json文件中列出了所支持的jQuery版本。http://kangxiaoya.iteye.com/blog/2062218
我的jQuery是jquery-1.8.2.min在引入模态框时没有出现问题,但时有时候jQuery的版本过低也会影响模态框的显示,模态框实时显示时控制的是模态框的背景,此时可以升级jQuery来解决此问题。
1.下载网址:http://jquery.com/
2.点击download,选择jQuery 1.9 release blog post,打开复制网址:http://code.jquery.com/jquery-1.9.0.js,改为:http://code.jquery.com/jquery-1.9.0.min.js,并搜索
3.复制里面的所有内容,代替jquery-1.8.2.min里的内容。
四.列表显示
1.竞价结果页面显示列表时价格升序排列用_.sortBy
Bid.sortBy_bid_peoples = function () { var bid_information_lists = _.sortBy(Bid.get_current_activity_bid_name().bid_peoples, function (bid_people) { return parseInt(bid_people.price); }) return bid_information_lists; }
sortBy返回一个排序后的竞价人副本,以bid_people.price为排序条件,但是为字符串形式,不会比较整个数值,所以用parseInt解析字符串换成数字。
2.竞价统计页面以以价格升序排列,并显示每个出价的个数。使用_.groupBy
Bid.groupBy_bid_peoples = function () { var groupBy_bid_peoples = _.groupBy(Bid.get_current_activity_bid_name().bid_peoples, function (people) { return parseInt(people.price); }) return groupBy_bid_peoples; }
groupBy把报名人分组,以people.price对比分组
var a = [{name:'q',price:'12'},{name:'w',price:3},{name:'e',price:'8'}] _.groupBy(a,function(s){return parseInt(s.price)}) ===》a=Object {3: Array[1], 8: Array[1], 12: Array[1]};
数组3,8,12为key,其后的分别为value,有name和price的属性
五.注意:
1.之前少了判断出价为数字:函数isNaN()判断为非数字,返回值为值,!isNaN()判断为数字。
2.之前认为是出价最低的那个如果为一人,则胜出,否则竞价失败。实际上是从价格为一人的所有人中选出价格最低的才是获胜者,如果没有则竞价失败。
更多understore:
http://www.css88.com/doc/underscore/