Merge remote-tracking branch 'origin/release/4.9.1.0' into release/4.9.1.0
# Conflicts: # public/img/sprite.channel.png
Showing
10 changed files
with
457 additions
and
81 deletions
@@ -291,7 +291,7 @@ exports.register = (req, res, next) => { | @@ -291,7 +291,7 @@ exports.register = (req, res, next) => { | ||
291 | } | 291 | } |
292 | Promise.all([verifiedStudentTotal(), getEducationLevelList()]).then((arr) => { | 292 | Promise.all([verifiedStudentTotal(), getEducationLevelList()]).then((arr) => { |
293 | if (req.__USER__.isStudent) { | 293 | if (req.__USER__.isStudent) { |
294 | - refer = '/activity/student?uid='+req.__USER__.uid;// 所有认证过的,都跳转学生首页 | 294 | + refer = '/activity/student?uid=' + req.__USER__.uid;// 所有认证过的,都跳转学生首页 |
295 | 295 | ||
296 | 296 | ||
297 | res.redirect(helpers.urlFormat(refer)); | 297 | res.redirect(helpers.urlFormat(refer)); |
@@ -8,15 +8,19 @@ | @@ -8,15 +8,19 @@ | ||
8 | <div class="mobile-container"> | 8 | <div class="mobile-container"> |
9 | <div class="mobile-wrap yoho-page student"> | 9 | <div class="mobile-wrap yoho-page student"> |
10 | <section class='s-text'> | 10 | <section class='s-text'> |
11 | - <h6>认证资格说明</h6> | ||
12 | - <p>1、全日制大学及硕士博士研究生</p> | ||
13 | - <p>2、学校在可选范围内,有部分学校可能暂未收录,后期会尽快添加</p> | ||
14 | - <p>3、每个学号只能认证一个有货账户</p> | ||
15 | - <h6>特权详细说明</h6> | ||
16 | - <p>1、学生购买指定商品,可享受9折优惠,与vip折扣不可同时享受,但取低</p> | ||
17 | - <p>2、学生购物每一元可赠送1个yoho币</p> | ||
18 | - <p>3、学生所在学校购物金额当月累计最高,可获得3个免单名额,每月抽奖</p> | ||
19 | - <p>4、不定期学生专享活动</p> | 11 | + <h6>权益1:新品立享9折</h6> |
12 | + <p>1、学生购买原价新品时,可立即享受9折优惠,与VIP折扣不可同时享受。</p> | ||
13 | + <h6>权益2:每满100返100有货币</h6> | ||
14 | + <p>1、学生购买商品时,商品金额每满100元即可获得100有货币;</p> | ||
15 | + <p>2、有货币有效期:获得当日至次年12月31日,逾期自动作废;</p> | ||
16 | + <p>3、查看有货币:登录后,点击“个人中心”在“我的有货币”中可以查看有货币余额及明细</p> | ||
17 | + <h6>权益3:免单抽奖</h6> | ||
18 | + <p>1、每月将在累计购物金额最高的学校中,抽取3名幸运学生用户,获得免单资格;</p> | ||
19 | + <p>2、免单用户名单将在每月第1个工作日公布在有货微信公众号上,可关注【有货YOHOBUY】;</p> | ||
20 | + <p>3、免单用户将在中奖次日获得与实付金额等额的现金券,使用时间:中奖当月。</p> | ||
21 | + <h6>权益4:学生专享活动</h6> | ||
22 | + <p>1、每月不定期的开展学生专享活动,可打开有货APP推送,及时查收学生专享活动通知。</p> | ||
23 | + <h6></h6> | ||
20 | </section> | 24 | </section> |
21 | </div> | 25 | </div> |
22 | </div> | 26 | </div> |
apps/doc/code-norm/README.md
0 → 100644
1 | +# 代码规范说明文档 | ||
2 | + | ||
3 | +开发前请务必仔细阅读,遵守规范,保持团队代码风格统一 | ||
4 | + | ||
5 | +## 文件命名 | ||
6 | +* 中划线分隔小写单词 | ||
7 | +* Ex: `your-file` | ||
8 | + | ||
9 | +## 缩进 | ||
10 | +* 统一4个Space | ||
11 | +* 建议将编辑器Tab映射成4个Space | ||
12 | + | ||
13 | +## 注释 | ||
14 | +* 为每个你创建的JS文件添加注释 | ||
15 | + | ||
16 | +``` | ||
17 | +/** | ||
18 | + * 对文件实现功能的描述 | ||
19 | + * @date: 2016-11-11 | ||
20 | + * @author: name<emial@yoho.cn> | ||
21 | + */ | ||
22 | +``` | ||
23 | + | ||
24 | +* 为重要的函数添加注释 | ||
25 | + | ||
26 | +``` | ||
27 | +/** | ||
28 | + * 对函数功能的说明 | ||
29 | + * @params name paramType 参数描述 | ||
30 | + * @return name returnType 返回值描述 | ||
31 | + */ | ||
32 | +``` | ||
33 | + | ||
34 | +* 为重要的代码、逻辑复杂的代码或者有特殊处理的代码添加注释 | ||
35 | + | ||
36 | +``` | ||
37 | +// Your comments for the code | ||
38 | +``` | ||
39 | +* 减少不必要的注释 | ||
40 | + 类似于:**进入循环**、**循环结束**等垃圾话的注释请谨慎添加,大家都是程序员,不用你注释也能知道的 | ||
41 | + | ||
42 | + | ||
43 | +## html | ||
44 | +* 见名知意,不要有1,2,3这种名字出现 | ||
45 | +* class、id等属性命名为中划线分隔小写单词 | ||
46 | +* html中请不要出现不必要的嵌套以及不要将标签滥用,比如使用`a`标签作为不跳转的按钮的标签 | ||
47 | +* 属性按顺序出现:`id -> class -> name -> data-* -> src,for,type,href -> title,alt -> aria-*,role` | ||
48 | + | ||
49 | +## js | ||
50 | +[Link](doc/code-norm/js.md) | ||
51 | + | ||
52 | +## css | ||
53 | +[Link](doc/code-norm/css.md) |
apps/doc/code-norm/css.md
0 → 100644
1 | +# css代码规范 | ||
2 | + | ||
3 | +## 选择器 | ||
4 | +* 使用class进行样式匹配,而不是id和标签 | ||
5 | +* 尽量避免使用属性选择器 | ||
6 | +* 尽可能精确的元素定位 | ||
7 | + | ||
8 | +## 规则细节 | ||
9 | + | ||
10 | + .ele-header, /*规则1:每个选择器声明总是使用新的一行*/ | ||
11 | + .ele-body, | ||
12 | + .ele-footer { /*规则2:'{' 前需要添加1个空格*/ | ||
13 | + line-height: 1.2; /*规则3:样式声明以;结束,每个样式声明独占一行*/ | ||
14 | + font-weight: normal; /*规则4:属性声明的:后添加1个空格*/ | ||
15 | + margin: 0; /*规则5:属性值为0时不添加单位*/ | ||
16 | + background-color: #f3d; /*规则6:十六进制小写和缩写*/ | ||
17 | + } | ||
18 | + /*规则7:没组选择器声明之间适用一空行间隔*/ | ||
19 | + .ele2 { | ||
20 | + font-family: "open sans", arial, sans-serif; /*规则8:使用" ",而不是' '*/ | ||
21 | + padding: 0 1em 2em; /*规则9:适当缩写但不滥用*/ | ||
22 | + border-top: 1px; | ||
23 | + background-color: rgba(0,0,0,.5); /*规则10:颜色值rgba等中不需要增加空格,并且去除浮点数前面不必要的0*/ | ||
24 | + } | ||
25 | + | ||
26 | +## 声明顺序(不做强制要求,尽量实现) | ||
27 | +这是一个选择器内书写CSS属性顺序的大致轮廓,作为最佳实践,我们应该遵循以下顺序: | ||
28 | + | ||
29 | +* Position属性 (position,top,right,z-index...) | ||
30 | +* Box Model属性 (display,float,width...) | ||
31 | +* Typographic属性 (font,line-height,color,text-align...) | ||
32 | +* Visual属性 (background,border,border-radius...) | ||
33 | + | ||
34 | +因为Position属性可以是一个元素脱离正常的文本流并可以覆盖盒模型相关样式,所以Position排第一位。盒模型决定一个元素位置和大小紧跟其后。后面属性属于元素内部或不会对前两者产生影响的,排在后面。 | ||
35 | + | ||
36 | +完整属性顺序参考[Recsss](http://twitter.github.com/recess) | ||
37 | + | ||
38 | +## Sass风格 | ||
39 | +* 控制嵌套层级,禁止超过5层,尽量控制在3层以内 |
apps/doc/code-norm/js.md
0 → 100644
1 | +# JavaScript代码规范 | ||
2 | + | ||
3 | +## 行的长度 | ||
4 | +每行长度不应该超过**120**个字符,如果一行多余120个字符,应该在一个运算符后换行,下一行增加**2**级缩进,即8个空格) | ||
5 | +``` | ||
6 | +doSomething(argument1, argument2, argument3, argument4, | ||
7 | + argument5); | ||
8 | +``` | ||
9 | +## 运算符间距 | ||
10 | +二元运算符前后必须使用一个空格保持表达式的整洁,操作符包括赋值运算符和逻辑运算符 | ||
11 | +``` | ||
12 | +var name = 'xuqi'; // GOOD | ||
13 | +var name='xuqi'; // BAD | ||
14 | +``` | ||
15 | +## 括号间距 | ||
16 | +当使用括号时,紧接左括号之后和紧接右括号之前不应该有空格。 | ||
17 | +``` | ||
18 | +doSomething(arg); // GODD | ||
19 | +doSomething( arg ); // BAD | ||
20 | +``` | ||
21 | +## 变量声明 | ||
22 | +* 所有变量在使用前应该先定义 | ||
23 | +* 变量定义应该放在函数开头 | ||
24 | +* 使用var,const,let表达式定义变量,每行定义一个 | ||
25 | +* 除了首行,所有行都应该多一层缩进使变量声明对齐 | ||
26 | +* 初始化的变量放在未初始化的变量之前 | ||
27 | +* 所有的变量命名必须使用英文单词 | ||
28 | +* 浮点变量必须指明实部(即便以0.开头)和小数点后一位 | ||
29 | + | ||
30 | +``` | ||
31 | +var name = 'xuqi', | ||
32 | + age, | ||
33 | + sex, | ||
34 | + ...; | ||
35 | + | ||
36 | +const $ = require('yoho.jquery'); | ||
37 | + | ||
38 | +let i; | ||
39 | +``` | ||
40 | + | ||
41 | +另外,晦涩的变量名最好给出注释,否则别人很难读懂接下来代码的意思。 | ||
42 | + | ||
43 | +## 函数声明 | ||
44 | +* 函数在使用前应该先定义 | ||
45 | +* 函数名和开始圆括号之间无空格(包括匿名函数的function关键字与圆括号之间) | ||
46 | +* 开始圆括号和结束圆括号之间无空格 | ||
47 | +* 参数名之间应该在逗号之后保留一个空格 | ||
48 | +* 开始花括号应该同function关键字保持同一行,结束圆括号和开始花括号之间应该保留一个空格 | ||
49 | +* 函数体保持一级缩进 | ||
50 | + | ||
51 | +``` | ||
52 | +function doSomething(arg1, arg2) { | ||
53 | + doThing1(); | ||
54 | + doThing2(); | ||
55 | +} | ||
56 | + | ||
57 | +const method = function() { | ||
58 | + doSomething(); | ||
59 | +}; | ||
60 | +``` | ||
61 | +另外,IIFE的标准格式也在这里指出: | ||
62 | +``` | ||
63 | +(function(args) { | ||
64 | + // | ||
65 | +}(args)); //(args)位于外层括号内 | ||
66 | +``` | ||
67 | + | ||
68 | +## 对象直接量 | ||
69 | +* 起始左括号应该与表达式保持一行 | ||
70 | +* 每个属性的键名前保持一个缩进,第一个属性应该在左括号后另一起行 | ||
71 | +* 每个属性的键名不包含引号,其后跟一个冒号(前无空格,后有空格),然后是值 | ||
72 | +* 如果属性值为函数,函数体应该在属性名之下另起一行,并且其前后均应保留一个空行 | ||
73 | +* 一组相关属性的前后插入空行以提高代码的可读性 | ||
74 | +* 结束的右括号独占一行 | ||
75 | + | ||
76 | +``` | ||
77 | +var person = { | ||
78 | + name: 'xuqi', | ||
79 | + age: 25, | ||
80 | + | ||
81 | + groupAttr1: xx1, | ||
82 | + groupAttr2: xx2, | ||
83 | + | ||
84 | + walk: function() { | ||
85 | + //your walk fn | ||
86 | + } | ||
87 | +}; | ||
88 | +``` | ||
89 | + | ||
90 | +* 当对象字面量作为函数参数时,起始括号应该与函数名同行 | ||
91 | + | ||
92 | +``` | ||
93 | +doSomething({ | ||
94 | + //do something | ||
95 | +}); | ||
96 | +``` | ||
97 | + | ||
98 | +## 命名 | ||
99 | +### 变量: | ||
100 | +* 采用小驼峰命名格式 | ||
101 | +* 变量命名为名词(区别函数) | ||
102 | +* 变量中不使用_ | ||
103 | + | ||
104 | +### 函数: | ||
105 | +* 采用小驼峰命名格式 | ||
106 | +* 函数命名为动词(区别变量) | ||
107 | +* 函数名中不使用_ | ||
108 | + | ||
109 | +### 构造函数: | ||
110 | +* 采用大驼峰命名格式 | ||
111 | +* 命名应该是名词 | ||
112 | + | ||
113 | +### 私有成员: | ||
114 | +* 一个对象中不希望外部访问的以下划线开头(约定) | ||
115 | + | ||
116 | +## 等号运算符 | ||
117 | +使用`===`和`!==`,禁止使用`==`和`!=` | ||
118 | + | ||
119 | +## undefined | ||
120 | +禁止使用`name === undefined`判断一个变量是否定义。应该使用`typeof(name) === 'undefined'`; | ||
121 | + | ||
122 | +## 常用语句规范 | ||
123 | +### if语句 | ||
124 | +``` | ||
125 | +if (condition) { | ||
126 | + doSomething(); | ||
127 | +} else if (condition1) { | ||
128 | + doSomething2(); | ||
129 | +} else { | ||
130 | + soOtherThing(); | ||
131 | +} | ||
132 | +``` | ||
133 | +### for语句 | ||
134 | +``` | ||
135 | +// GOOD | ||
136 | +var i; | ||
137 | +for (i = 0; i < len; i++) { | ||
138 | + doSomething(); | ||
139 | +} | ||
140 | +for (i in collection) { | ||
141 | + if (collection.hasOwnProperty(i)) { | ||
142 | + doSomething(); | ||
143 | + } | ||
144 | +} | ||
145 | + | ||
146 | +// BAD | ||
147 | +for (var i = 0; i < len; i++) { | ||
148 | + doSomething(); | ||
149 | +} | ||
150 | +for (i in collection) { | ||
151 | + doSomething(); | ||
152 | +} | ||
153 | +``` | ||
154 | +### while,do语句 | ||
155 | +``` | ||
156 | +while (condition) { | ||
157 | + doSomething(); | ||
158 | +} | ||
159 | + | ||
160 | +do { | ||
161 | + doSomething(); | ||
162 | +} while (condition) | ||
163 | +``` | ||
164 | + | ||
165 | +### switch语句 | ||
166 | +* 每一个case保持一个缩进 | ||
167 | +* 每一组语句都应该以break,return等结尾,或者用一行注释表示跳过(falling through) | ||
168 | +* 无default的情况也要注释特别说明 | ||
169 | + | ||
170 | +``` | ||
171 | +switch (val) { | ||
172 | + case 1: | ||
173 | + //nothing | ||
174 | + case 2: | ||
175 | + doSomething(); | ||
176 | + break; | ||
177 | + default: | ||
178 | + doDefault(); | ||
179 | +} | ||
180 | +``` | ||
181 | + | ||
182 | +### try语句 | ||
183 | +``` | ||
184 | +try { | ||
185 | + doSomething(); | ||
186 | +} catch (err) { | ||
187 | + doSomething2(); | ||
188 | +} finally { | ||
189 | + doSomething3(); | ||
190 | +} | ||
191 | +``` | ||
192 | + | ||
193 | +## 模块化规范 | ||
194 | +* 模块开头require加载所有依赖模块 | ||
195 | + | ||
196 | +``` | ||
197 | +var $ = require('yoho.jquery'), | ||
198 | + flip = require('../plugin/flip'); //普通文件 | ||
199 | + | ||
200 | +require('../plguin/login'); | ||
201 | +``` | ||
202 | + | ||
203 | +* 模块抛出接口应该给予注释说明功能和使用方法 |
apps/doc/fake-data/h5/layout.md
0 → 100644
@@ -2,9 +2,6 @@ var $ = require('yoho-jquery'); | @@ -2,9 +2,6 @@ var $ = require('yoho-jquery'); | ||
2 | var tip = require('../plugin/tip'); | 2 | var tip = require('../plugin/tip'); |
3 | var AsideSlider = require('./aslider'); | 3 | var AsideSlider = require('./aslider'); |
4 | 4 | ||
5 | -// var yas = window._yas || { | ||
6 | -// sendCustomInfo: function() {} | ||
7 | -// }; | ||
8 | 5 | ||
9 | var STUDENTCOOKIES = 'STUDENTCOOKIES'; | 6 | var STUDENTCOOKIES = 'STUDENTCOOKIES'; |
10 | 7 | ||
@@ -407,10 +404,12 @@ $(document).on('click', '.s-submit', function() { | @@ -407,10 +404,12 @@ $(document).on('click', '.s-submit', function() { | ||
407 | if (+data.code === 200) { | 404 | if (+data.code === 200) { |
408 | if (window._yas && window._yas.sendCustomInfo) { | 405 | if (window._yas && window._yas.sendCustomInfo) { |
409 | window._yas.sendCustomInfo({ | 406 | window._yas.sendCustomInfo({ |
410 | - EVENT: 'YB_STUDENT_ATTCT_SUBMIT', | ||
411 | - C_ID: C_ID, | ||
412 | - SRC_ID: 5, | ||
413 | - SUBMIT_RES: 1 | 407 | + op: 'YB_STUDENT_ATTCT_SUBMIT', |
408 | + param: { | ||
409 | + C_ID: C_ID, | ||
410 | + SRC_ID: 5, | ||
411 | + SUBMIT_RES: 1 | ||
412 | + } | ||
414 | }, true); | 413 | }, true); |
415 | } | 414 | } |
416 | 415 | ||
@@ -431,11 +430,13 @@ $(document).on('click', '.s-submit', function() { | @@ -431,11 +430,13 @@ $(document).on('click', '.s-submit', function() { | ||
431 | } | 430 | } |
432 | if (window._yas && window._yas.sendCustomInfo) { | 431 | if (window._yas && window._yas.sendCustomInfo) { |
433 | window._yas.sendCustomInfo({ | 432 | window._yas.sendCustomInfo({ |
434 | - EVENT: 'YB_STUDENT_ATTCT_SUBMIT', | ||
435 | - C_ID: C_ID, | ||
436 | - SRC_ID: 5, | ||
437 | - SUBMIT_RES: 2, | ||
438 | - FAILURE_CAUSE: FAILURE_CAUSE | 433 | + op: 'YB_STUDENT_ATTCT_SUBMIT', |
434 | + param: { | ||
435 | + C_ID: C_ID, | ||
436 | + SRC_ID: 5, | ||
437 | + SUBMIT_RES: 2, | ||
438 | + FAILURE_CAUSE: FAILURE_CAUSE | ||
439 | + } | ||
439 | }, true); | 440 | }, true); |
440 | } | 441 | } |
441 | 442 | ||
@@ -447,25 +448,7 @@ $('#tb-is-read').change(function() { | @@ -447,25 +448,7 @@ $('#tb-is-read').change(function() { | ||
447 | changeSuccess(); | 448 | changeSuccess(); |
448 | }); | 449 | }); |
449 | 450 | ||
450 | -// $('.s-input-search').focusin(function() { | ||
451 | -// $('.s-seach-tip').hide(); | ||
452 | -// }).focusout(function() { | ||
453 | -// if (!$.trim($(this).val())) { | ||
454 | -// $('.s-seach-tip').show(); | ||
455 | -// } | ||
456 | -// }); | ||
457 | - | ||
458 | 451 | ||
459 | 452 | ||
460 | -// 埋点 学生认证-信息填写页面 | ||
461 | -setTimeout(function() { | ||
462 | - if (window._yas && window._yas.sendCustomInfo) { | ||
463 | - window._yas.sendCustomInfo({ | ||
464 | - EVENT: 'YB_STUDENT_ATTCT_INFO', | ||
465 | - C_ID: C_ID, | ||
466 | - SRC_ID: 5 | ||
467 | - }, true); | ||
468 | - } | ||
469 | -}, 2000); | ||
470 | 453 | ||
471 | 454 |
@@ -13,7 +13,7 @@ var _weChatInterface = '//m.yohobuy.com/life/getSignPackage', | @@ -13,7 +13,7 @@ var _weChatInterface = '//m.yohobuy.com/life/getSignPackage', | ||
13 | 13 | ||
14 | require('../common'); | 14 | require('../common'); |
15 | 15 | ||
16 | -getChannel = function functionName() { | 16 | +getChannel = function() { |
17 | var name = window.cookie('_Channel'); | 17 | var name = window.cookie('_Channel'); |
18 | 18 | ||
19 | return { | 19 | return { |
@@ -25,6 +25,24 @@ getChannel = function functionName() { | @@ -25,6 +25,24 @@ getChannel = function functionName() { | ||
25 | }; | 25 | }; |
26 | C_ID = getChannel(); | 26 | C_ID = getChannel(); |
27 | 27 | ||
28 | +function uuid() { | ||
29 | + var s = []; | ||
30 | + var hexDigits = '0123456789abcdef'; | ||
31 | + var id = ''; | ||
32 | + var i = 0; | ||
33 | + | ||
34 | + for (i = 0; i < 36; i++) { | ||
35 | + s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); | ||
36 | + } | ||
37 | + s[14] = '4'; // bits 12-15 of the time_hi_and_version field to 0010 | ||
38 | + s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 | ||
39 | + s[8] = s[13] = s[18] = s[23] = '-'; | ||
40 | + | ||
41 | + id = s.join(''); | ||
42 | + | ||
43 | + return id; | ||
44 | +} | ||
45 | + | ||
28 | 46 | ||
29 | fastclick.attach(document.body); | 47 | fastclick.attach(document.body); |
30 | lazyLoad($('img.lazy')); | 48 | lazyLoad($('img.lazy')); |
@@ -205,26 +223,53 @@ if (typeof wx !== 'undefined') { | @@ -205,26 +223,53 @@ if (typeof wx !== 'undefined') { | ||
205 | } | 223 | } |
206 | 224 | ||
207 | setTimeout(function() { | 225 | setTimeout(function() { |
226 | + var len = $('.good-info', '.goods-list').length; | ||
227 | + var ids = []; | ||
228 | + | ||
229 | + $('.good-info', '.goods-list').each(function() { | ||
230 | + var goodids = $(this).find('.good-thumb').attr('href').match(/"product_skn":([^}]+)/, 'g'); | ||
231 | + var goodid = goodids && goodids.length === 2 ? goodids[1] : ''; | ||
232 | + | ||
233 | + ids.push(goodid); | ||
234 | + }); | ||
235 | + | ||
236 | + if (window._yas && window._yas.sendCustomInfo) { | ||
237 | + window._yas.sendCustomInfo({ | ||
238 | + op: 'YB_STUDENT_VIP_GDS_LIST', | ||
239 | + param: { | ||
240 | + C_ID: C_ID, | ||
241 | + PRD_NUM: len, | ||
242 | + PRD_ID: ids.join(','), | ||
243 | + ACTION_ID: 0, | ||
244 | + SORT_TYPE: 4, | ||
245 | + REC_ID: uuid(40) + '0000' | ||
246 | + } | ||
247 | + }, true); | ||
248 | + } | ||
208 | if ($('.s-verify-fail').size()) { | 249 | if ($('.s-verify-fail').size()) { |
209 | if (window._yas && window._yas.sendCustomInfo) { | 250 | if (window._yas && window._yas.sendCustomInfo) { |
210 | window._yas.sendCustomInfo({ | 251 | window._yas.sendCustomInfo({ |
211 | - EVENT: 'YB_STUDENT_ATTCT_RESULT', | ||
212 | - C_ID: C_ID, | ||
213 | - SRC_ID: 5, | ||
214 | - ATTCT_RES: 1, | ||
215 | - FAILURE_CAUSE: '' | 252 | + op: 'YB_STUDENT_ATTCT_RESULT', |
253 | + param: { | ||
254 | + C_ID: C_ID, | ||
255 | + SRC_ID: 5, | ||
256 | + ATTCT_RES: 1, | ||
257 | + FAILURE_CAUSE: '' | ||
258 | + } | ||
216 | }, true); | 259 | }, true); |
217 | } | 260 | } |
218 | } else { | 261 | } else { |
219 | // 埋点 学生营销宣传首页 | 262 | // 埋点 学生营销宣传首页 |
220 | if (window._yas && window._yas.sendCustomInfo) { | 263 | if (window._yas && window._yas.sendCustomInfo) { |
221 | window._yas.sendCustomInfo({ | 264 | window._yas.sendCustomInfo({ |
222 | - EVENT: 'YB_STUDENT_HOME', | ||
223 | - C_ID: C_ID, | ||
224 | - SRC_ID: 1 | 265 | + op: 'YB_STUDENT_HOME', |
266 | + param: { | ||
267 | + C_ID: C_ID | ||
268 | + } | ||
225 | }, true); | 269 | }, true); |
226 | } | 270 | } |
227 | } | 271 | } |
272 | + | ||
228 | }, 3000); | 273 | }, 3000); |
229 | 274 | ||
230 | 275 | ||
@@ -238,13 +283,15 @@ $('.swiper-slide', '.banner-top').click(function() { | @@ -238,13 +283,15 @@ $('.swiper-slide', '.banner-top').click(function() { | ||
238 | var tid = $(this).parents('.s-section').data('template-id'); | 283 | var tid = $(this).parents('.s-section').data('template-id'); |
239 | 284 | ||
240 | options = { | 285 | options = { |
241 | - EVENT: 'YB_STUDENT_VIP_FLR', | ||
242 | - C_ID: C_ID, | ||
243 | - F_ID: tid || 1, | ||
244 | - F_NAME: '焦点图', | ||
245 | - F_URL: url, | ||
246 | - F_INDEX: 1, | ||
247 | - I_INDEX: index | 286 | + op: 'YB_STUDENT_VIP_FLR', |
287 | + param: { | ||
288 | + C_ID: C_ID, | ||
289 | + F_ID: tid || 1, | ||
290 | + F_NAME: '焦点图', | ||
291 | + F_URL: url, | ||
292 | + F_INDEX: 1, | ||
293 | + I_INDEX: index | ||
294 | + } | ||
248 | }; | 295 | }; |
249 | if (window._yas && window._yas.sendCustomInfo) { | 296 | if (window._yas && window._yas.sendCustomInfo) { |
250 | window._yas.sendCustomInfo(options, true); | 297 | window._yas.sendCustomInfo(options, true); |
@@ -259,14 +306,17 @@ $('.s-activity', '.s-section').click(function() { | @@ -259,14 +306,17 @@ $('.s-activity', '.s-section').click(function() { | ||
259 | var tid = $(this).parents('.s-section').data('template-id'); | 306 | var tid = $(this).parents('.s-section').data('template-id'); |
260 | 307 | ||
261 | options = { | 308 | options = { |
262 | - EVENT: 'YB_STUDENT_VIP_FLR', | ||
263 | - C_ID: C_ID, | ||
264 | - F_ID: tid, | ||
265 | - F_NAME: '学生专属活动', | ||
266 | - F_URL: url, | ||
267 | - F_INDEX: 3, | ||
268 | - I_INDEX: index | 309 | + op: 'YB_STUDENT_VIP_FLR', |
310 | + param: { | ||
311 | + C_ID: C_ID, | ||
312 | + F_ID: tid, | ||
313 | + F_NAME: '学生专属活动', | ||
314 | + F_URL: url, | ||
315 | + F_INDEX: 3, | ||
316 | + I_INDEX: index | ||
317 | + } | ||
269 | }; | 318 | }; |
319 | + | ||
270 | if (window._yas && window._yas.sendCustomInfo) { | 320 | if (window._yas && window._yas.sendCustomInfo) { |
271 | window._yas.sendCustomInfo(options, true); | 321 | window._yas.sendCustomInfo(options, true); |
272 | } | 322 | } |
@@ -274,24 +324,37 @@ $('.s-activity', '.s-section').click(function() { | @@ -274,24 +324,37 @@ $('.s-activity', '.s-section').click(function() { | ||
274 | $('.good-info', '.goods-list').click(function() { | 324 | $('.good-info', '.goods-list').click(function() { |
275 | var options; | 325 | var options; |
276 | 326 | ||
277 | - // var url = $(this).find('.good-detail-img').find('.good-thumb').attr('href'); | ||
278 | - // var index = $(this).index(); | ||
279 | - // var tid = $(this).parents('.s-section').data('template-id'); | ||
280 | - var index = $(this).index; | 327 | + var index = $(this).index(); |
281 | var goodids = $(this).find('.good-thumb').attr('href').match(/"product_skn":([^}]+)/, 'g'); | 328 | var goodids = $(this).find('.good-thumb').attr('href').match(/"product_skn":([^}]+)/, 'g'); |
282 | var goodid = goodids && goodids.length === 2 ? goodids[1] : ''; | 329 | var goodid = goodids && goodids.length === 2 ? goodids[1] : ''; |
283 | 330 | ||
284 | options = { | 331 | options = { |
285 | - EVENT: 'YB_STUDENT_VIP_GDS_LIST', | ||
286 | - PRD_NUM: index, | ||
287 | - PRD_ID: goodid, | ||
288 | - ACTION_ID: 0, | ||
289 | - SORT_TYPE: 4, | ||
290 | - REC_ID: Date.now() | 332 | + op: 'YB_STUDENT_VIP_GDS_LIST', |
333 | + param: { | ||
334 | + C_ID: C_ID, | ||
335 | + PRD_NUM: index, | ||
336 | + PRD_ID: goodid, | ||
337 | + ACTION_ID: 1, | ||
338 | + SORT_TYPE: 4, | ||
339 | + REC_ID: uuid(40) + '0000' | ||
340 | + } | ||
291 | }; | 341 | }; |
292 | if (window._yas && window._yas.sendCustomInfo) { | 342 | if (window._yas && window._yas.sendCustomInfo) { |
293 | window._yas.sendCustomInfo(options, true); | 343 | window._yas.sendCustomInfo(options, true); |
294 | } | 344 | } |
295 | }); | 345 | }); |
346 | +$('.s-renzhen').click(function() { | ||
347 | + var options = { | ||
348 | + op: 'YB_STUDENT_ATTCT_SUBMIT', | ||
349 | + param: { | ||
350 | + C_ID: C_ID, | ||
351 | + SRC_ID: 1 | ||
352 | + } | ||
353 | + }; | ||
354 | + | ||
355 | + if (window._yas && window._yas.sendCustomInfo) { | ||
356 | + window._yas.sendCustomInfo(options, true); | ||
357 | + } | ||
358 | +}); | ||
296 | 359 | ||
297 | 360 |
@@ -210,6 +210,8 @@ | @@ -210,6 +210,8 @@ | ||
210 | } | 210 | } |
211 | } | 211 | } |
212 | 212 | ||
213 | + | ||
214 | + | ||
213 | .student { | 215 | .student { |
214 | background-color: #fff; | 216 | background-color: #fff; |
215 | 217 | ||
@@ -276,7 +278,14 @@ | @@ -276,7 +278,14 @@ | ||
276 | 278 | ||
277 | .goods-list { | 279 | .goods-list { |
278 | background-color: #fff; | 280 | background-color: #fff; |
279 | - padding-left: 15px; | 281 | + /*padding-left: 15px;*/ |
282 | + | ||
283 | + .good-info{ | ||
284 | + /*border: 1px solid #cccccc;*/ | ||
285 | + margin: 10px 0 40px; | ||
286 | + width: 50%; | ||
287 | + padding: 0 15px; | ||
288 | + } | ||
280 | } | 289 | } |
281 | 290 | ||
282 | .s-more { | 291 | .s-more { |
@@ -356,9 +365,11 @@ | @@ -356,9 +365,11 @@ | ||
356 | text-align: center; | 365 | text-align: center; |
357 | vertical-align:middle; | 366 | vertical-align:middle; |
358 | display: block; | 367 | display: block; |
359 | - position: absolute; | ||
360 | - right: 30px; | ||
361 | - top: 15px; | 368 | + float: right; |
369 | + margin-top: 15px; | ||
370 | + /*position: absolute;*/ | ||
371 | + /*right: 30px;*/ | ||
372 | + /*top: 15px;*/ | ||
362 | } | 373 | } |
363 | } | 374 | } |
364 | .s-replace{ | 375 | .s-replace{ |
@@ -399,10 +410,7 @@ | @@ -399,10 +410,7 @@ | ||
399 | border-bottom: 1px solid #e0e0e0; | 410 | border-bottom: 1px solid #e0e0e0; |
400 | position: relative; | 411 | position: relative; |
401 | 412 | ||
402 | - input::-webkit-input-placeholder{ | ||
403 | - font-family: helvetica, Arial, "黑体"; | ||
404 | - font-weight:lighter; | ||
405 | - } | 413 | + |
406 | label { | 414 | label { |
407 | width: 174px; | 415 | width: 174px; |
408 | display: inline-block; | 416 | display: inline-block; |
@@ -413,6 +421,10 @@ | @@ -413,6 +421,10 @@ | ||
413 | padding: 12px 0; | 421 | padding: 12px 0; |
414 | height: 60px; | 422 | height: 60px; |
415 | line-height: 60px; | 423 | line-height: 60px; |
424 | + width: 320px; | ||
425 | + display: inline-block; | ||
426 | + position: relative; | ||
427 | + z-index: 100; | ||
416 | } | 428 | } |
417 | 429 | ||
418 | .s-red { | 430 | .s-red { |
-
Please register or login to post a comment