Authored by weiqingting

update

@@ -6,21 +6,29 @@ @@ -6,21 +6,29 @@
6 6
7 'use strict'; 7 'use strict';
8 8
9 -const _ = require('lodash');  
10 const QRcodeModel = require('../models/QRcode'); 9 const QRcodeModel = require('../models/QRcode');
11 const helpers = global.yoho.helpers; 10 const helpers = global.yoho.helpers;
12 11
13 -exports.QRcode = (req, res) => {  
14 - let id = req.params.id || 0;  
15 - QRcodeModel.getQRcodeData(id).then((result)=>{  
16 - let vm={  
17 - path:[{href:helpers.urlFormat("/"),name:"YOHO!BUY 有货首页"},{name:"个人中心"},{name:"查看二维码"}],  
18 - qrcodeData:{},  
19 - code:id,  
20 - returnOrder:helpers.urlFormat("/home/orders?type=1")  
21 - };  
22 - res.render('QRcode',vm);  
23 - }).catch((err) => {  
24 - res.send(err);  
25 - }); 12 +exports.QRcode = (req, res, next) => {
  13 + let id = req.params.id || 0;
  14 +
  15 + QRcodeModel.getQRcodeData(id).then((result)=>{
  16 + if (result) {
  17 + result.ticks = result.ticks.map(item=>{
  18 + if (+item.ticket_type === 2) {
  19 + item.isgroup = true;
  20 + }
  21 + return item;
  22 + });
  23 + }
  24 +
  25 + let vm = {
  26 + path: [{href: helpers.urlFormat('/'), name: 'YOHO!BUY 有货首页'}, {name: '个人中心'}, {name: '查看二维码'}],
  27 + qrcodeData: result,
  28 + code: id,
  29 + returnOrder: helpers.urlFormat('/home/orders?type=1')
  30 + };
  31 +
  32 + res.render('QRcode', vm);
  33 + }).catch(next);
26 }; 34 };
@@ -6,13 +6,10 @@ @@ -6,13 +6,10 @@
6 'use strict'; 6 'use strict';
7 7
8 const logger = global.yoho.logger; 8 const logger = global.yoho.logger;
9 -const headerModel = require('../../../doraemon/models/header');  
10 -  
11 -var api = global.yoho.ServiceAPI; 9 +var api = global.yoho.API;
12 10
13 exports.getQRcodeData = (id) => { 11 exports.getQRcodeData = (id) => {
14 return api.get('', { 12 return api.get('', {
15 - order_code:id,  
16 method: 'app.SpaceOrders.getQrByOrderCode' 13 method: 'app.SpaceOrders.getQrByOrderCode'
17 }, { 14 }, {
18 cache: true 15 cache: true
@@ -20,9 +17,8 @@ exports.getQRcodeData = (id) => { @@ -20,9 +17,8 @@ exports.getQRcodeData = (id) => {
20 if (result && result.code === 200) { 17 if (result && result.code === 200) {
21 return result.data; 18 return result.data;
22 } else { 19 } else {
23 - logger.error(`获取电子票列表ID: ${id} 接口返回数据错误`);  
24 - return {}; 20 + logger.error(`查看二维码ID: ${id} 接口返回数据错误`);
  21 + return false;
25 } 22 }
26 }); 23 });
27 }; 24 };
28 -  
@@ -14,69 +14,75 @@ const config = global.yoho.config; @@ -14,69 +14,75 @@ const config = global.yoho.config;
14 14
15 const personalController = require(`${cRoot}/QRcode`); 15 const personalController = require(`${cRoot}/QRcode`);
16 16
17 -const homeNav=[  
18 - {  
19 - title:"交易管理",  
20 - subNav:[  
21 - {name:"我的订单",href:helpers.urlFormat("/home/orders"),active:true},  
22 - {name:"我的收藏",href:helpers.urlFormat("/home/favorite")},  
23 - {name:"我的YOHO币",href:helpers.urlFormat("/home/currency")},  
24 - {name:"我的红包",href:helpers.urlFormat("/home/redenvelopes")},  
25 - {name:"我的优惠券",href:helpers.urlFormat("/home/coupons")},  
26 - {name:"我的VIP",href:helpers.urlFormat("/home/vip")}  
27 - ]  
28 - },  
29 - {  
30 - title:"服务中心",  
31 - subNav:[  
32 - {name:"我的退/换货",href:helpers.urlFormat("/home/returns")},  
33 - {name:"我的咨询",href:helpers.urlFormat("/home/consult")},  
34 - {name:"我的评论",href:helpers.urlFormat("/home/comment")},  
35 - {name:"我的投诉",href:helpers.urlFormat("/home/complaints")},  
36 - {name:"我的信息",href:helpers.urlFormat("/home/message"),count:0},  
37 - {name:"在线客服",href:"http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=",isBlank:true}  
38 - ]  
39 - },  
40 - {  
41 - title:"个人信息管理",  
42 - subNav:[  
43 - {name:"编辑个人资料",href:helpers.urlFormat("/home/user")},  
44 - {name:"账号安全",href:helpers.urlFormat("/home/account")},  
45 - {name:"地址管理",href:helpers.urlFormat("/home/address")},  
46 - {name:"兑换礼品卡",href:helpers.urlFormat("/home/gift")}  
47 - ]  
48 - }  
49 - ]; 17 +const homeNav = [
  18 + {
  19 + title: '交易管理',
  20 + subNav: [
  21 + {name: '我的订单', href: helpers.urlFormat('/home/orders'), active: true},
  22 + {name: '我的收藏', href: helpers.urlFormat('/home/favorite')},
  23 + {name: '我的YOHO币', href: helpers.urlFormat('/home/currency')},
  24 + {name: '我的红包', href: helpers.urlFormat('/home/redenvelopes')},
  25 + {name: '我的优惠券', href: helpers.urlFormat('/home/coupons')},
  26 + {name: '我的VIP', href: helpers.urlFormat('/home/vip')}
  27 + ]
  28 + },
  29 + {
  30 + title: '服务中心',
  31 + subNav: [
  32 + {name: '我的退/换货', href: helpers.urlFormat('/home/returns')},
  33 + {name: '我的咨询', href: helpers.urlFormat('/home/consult')},
  34 + {name: '我的评论', href: helpers.urlFormat('/home/comment')},
  35 + {name: '我的投诉', href: helpers.urlFormat('/home/complaints')},
  36 + {name: '我的信息', href: helpers.urlFormat('/home/message'), count: 0},
  37 + {name: '在线客服', href: 'http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=', isBlank: true}
  38 + ]
  39 + },
  40 + {
  41 + title: '个人信息管理',
  42 + subNav: [
  43 + {name: '编辑个人资料', href: helpers.urlFormat('/home/user')},
  44 + {name: '账号安全', href: helpers.urlFormat('/home/account')},
  45 + {name: '地址管理', href: helpers.urlFormat('/home/address')},
  46 + {name: '兑换礼品卡', href: helpers.urlFormat('/home/gift')}
  47 + ]
  48 + }
  49 +];
50 50
51 const getHomeNav = (req, res, next) => { 51 const getHomeNav = (req, res, next) => {
52 - res.locals.homeNav=homeNav;  
53 - res.locals.userThumb='//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100';  
54 - next();  
55 -}  
56 -const getCommonHeader= (req, res, next) => {  
57 - let channel = req.query.channel ? req.query.channel : 'boys';  
58 - headerModel.requestHeaderData(channel).then((result)=>{  
59 - res.locals.headerData=result;  
60 - next();  
61 - });  
62 -}  
63 -const sessionEffective= (req, res, next) => {  
64 - if(req.user.uid){  
65 - next();  
66 - }  
67 - let refer = req.cookies.refer; 52 + res.locals.homeNav = homeNav;
  53 + res.locals.userThumb = `//img10.static.yhbimg.com/headimg/
  54 + 2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100`;
  55 + next();
  56 +};
  57 +const getCommonHeader = (req, res, next) => {
  58 + let channel = req.query.channel ? req.query.channel : 'boys';
  59 +
  60 + headerModel.requestHeaderData(channel).then((result)=>{
  61 + res.locals.headerData = result;
  62 + next();
  63 + });
  64 +};
  65 +const sessionEffective = (req, res, next) => {
  66 + let refer = req.cookies.refer;
  67 +
  68 + if (req.user.uid) {
  69 + next();
  70 + return;
  71 + }
  72 +
  73 + if (refer) {
  74 + refer = decodeURI(req.cookies.refer);
  75 + } else {
  76 + refer = config.siteUrl;
  77 + }
  78 +
  79 + // res.redirect(helpers.urlFormat('/signin.html', {
  80 + // refer: refer
  81 + // }));
  82 + next();
  83 +};
68 84
69 - if (refer) {  
70 - refer = decodeURI(req.cookies.refer);  
71 - } else {  
72 - refer = config.siteUrl;  
73 - }  
74 - // res.redirect(helpers.urlFormat('/signin.html', {  
75 - // refer: refer  
76 - // }));  
77 - next();  
78 -}  
79 // 查看二维码 85 // 查看二维码
80 -router.get('/QRcode/:id',sessionEffective,[getCommonHeader,getHomeNav],personalController.QRcode); 86 +router.get('/QRcode/:id', sessionEffective, [getCommonHeader, getHomeNav], personalController.QRcode);
81 87
82 module.exports = router; 88 module.exports = router;
@@ -26,7 +26,9 @@ @@ -26,7 +26,9 @@
26 <li> 26 <li>
27 <img src> 27 <img src>
28 <p><label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号:</label>{{ticket_code}}</p> 28 <p><label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号:</label>{{ticket_code}}</p>
  29 + {{#if isgroup}}
29 <p><label>&nbsp;&nbsp;&nbsp;&nbsp;号:</label>{{seat_no}}</p> 30 <p><label>&nbsp;&nbsp;&nbsp;&nbsp;号:</label>{{seat_no}}</p>
  31 + {{/if}}
30 <p><label>进场时间:</label>{{entrance_time}}</p> 32 <p><label>进场时间:</label>{{entrance_time}}</p>
31 </li> 33 </li>
32 {{/each}} 34 {{/each}}
1 'use strict'; 1 'use strict';
2 2
3 const sign = global.yoho.sign; 3 const sign = global.yoho.sign;
4 -const api = global.yoho.API; 4 +const api = global.yoho.API;
5 5
6 class Auth { 6 class Auth {
7 7
8 static signinByOpenID(nickname, openId, sourceType, shoppingKey) { 8 static signinByOpenID(nickname, openId, sourceType, shoppingKey) {
9 let param = { 9 let param = {
10 - nickname : nickname,  
11 - openId : openId, 10 + nickname: nickname,
  11 + openId: openId,
12 source_type: sourceType, 12 source_type: sourceType,
13 - method : 'app.passport.signinByOpenID' 13 + method: 'app.passport.signinByOpenID'
14 }; 14 };
15 15
16 if (shoppingKey) { 16 if (shoppingKey) {
@@ -22,11 +22,11 @@ class Auth { @@ -22,11 +22,11 @@ class Auth {
22 22
23 static signinByWechat(nickname, openId, unionId, sourceType, shoppingKey) { 23 static signinByWechat(nickname, openId, unionId, sourceType, shoppingKey) {
24 let param = { 24 let param = {
25 - nickname : nickname,  
26 - openId : openId,  
27 - unionId : unionId, 25 + nickname: nickname,
  26 + openId: openId,
  27 + unionId: unionId,
28 source_type: sourceType, 28 source_type: sourceType,
29 - method : 'app.passport.signinByWechat' 29 + method: 'app.passport.signinByWechat'
30 }; 30 };
31 31
32 if (shoppingKey) { 32 if (shoppingKey) {
@@ -38,7 +38,7 @@ class Auth { @@ -38,7 +38,7 @@ class Auth {
38 38
39 static profile(uid) { 39 static profile(uid) {
40 let param = { 40 let param = {
41 - uid : uid, 41 + uid: uid,
42 method: 'app.passport.profile' 42 method: 'app.passport.profile'
43 }; 43 };
44 44
@@ -48,19 +48,19 @@ class Auth { @@ -48,19 +48,19 @@ class Auth {
48 static syncUserSession(uid, req, res) { 48 static syncUserSession(uid, req, res) {
49 return Auth.profile(uid).then((userInfo) => { 49 return Auth.profile(uid).then((userInfo) => {
50 let token = sign.makeToken(uid); 50 let token = sign.makeToken(uid);
51 - let data = userInfo.data; 51 + let data = userInfo.data;
52 52
53 if (data) { 53 if (data) {
54 let uidCookie = `${data.profile_name}::${data.uid}::${data.vip_info.title}::${token}`; 54 let uidCookie = `${data.profile_name}::${data.uid}::${data.vip_info.title}::${token}`;
55 55
56 - req.session._TOKEN = token; 56 + req.session._TOKEN = token;
57 req.session._LOGIN_UID = uid; 57 req.session._LOGIN_UID = uid;
58 58
59 res.cookie('_UID', uidCookie, { 59 res.cookie('_UID', uidCookie, {
60 domain: 'yohobuy.com' 60 domain: 'yohobuy.com'
61 }); 61 });
62 } 62 }
63 - req.session._TOKEN = token; // esline-disable-line 63 + req.session._TOKEN = token; // esline-disable-line
64 req.session._LOGIN_UID = uid; // esline-disable-line 64 req.session._LOGIN_UID = uid; // esline-disable-line
65 res.cookie('_TOKEN', token, { 65 res.cookie('_TOKEN', token, {
66 domain: 'yohobuy.com' 66 domain: 'yohobuy.com'
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 4
5 'use strict'; 5 'use strict';
6 6
7 -const api = global.yoho.API; 7 +const api = global.yoho.API;
8 const YOHOBUY_URL = 'http://www.yohobuy.com/'; 8 const YOHOBUY_URL = 'http://www.yohobuy.com/';
9 9
10 /** 10 /**
@@ -39,7 +39,7 @@ const getAreaDataAsync = () => { @@ -39,7 +39,7 @@ const getAreaDataAsync = () => {
39 const sendCodeToEmailAsync = (email) => { 39 const sendCodeToEmailAsync = (email) => {
40 return api.get('', { 40 return api.get('', {
41 method: 'app.register.backpwdByEmail', 41 method: 'app.register.backpwdByEmail',
42 - email : email 42 + email: email
43 }); 43 });
44 }; 44 };
45 45
@@ -51,11 +51,11 @@ const sendCodeToEmailAsync = (email) => { @@ -51,11 +51,11 @@ const sendCodeToEmailAsync = (email) => {
51 */ 51 */
52 const modifyPasswordByEmailAsync = (pwd, code) => { 52 const modifyPasswordByEmailAsync = (pwd, code) => {
53 const options = { 53 const options = {
54 - url : `${YOHOBUY_URL}passport/back/update`,  
55 - form : {  
56 - pwd : pwd, 54 + url: `${YOHOBUY_URL}passport/back/update`,
  55 + form: {
  56 + pwd: pwd,
57 're-input': pwd, 57 're-input': pwd,
58 - code : code 58 + code: code
59 }, 59 },
60 timeout: 3000 60 timeout: 3000
61 }; 61 };
@@ -74,7 +74,7 @@ const sendCodeToMobileAsync = (mobile, area) => { @@ -74,7 +74,7 @@ const sendCodeToMobileAsync = (mobile, area) => {
74 74
75 return api.get('', { 75 return api.get('', {
76 mobile: mobile, 76 mobile: mobile,
77 - area : area, 77 + area: area,
78 method: 'app.register.sendBackpwdCodeToMobile' 78 method: 'app.register.sendBackpwdCodeToMobile'
79 }); 79 });
80 }; 80 };
@@ -90,8 +90,8 @@ const validateMobileCodeAsync = (mobile, code, area) => { @@ -90,8 +90,8 @@ const validateMobileCodeAsync = (mobile, code, area) => {
90 area = area || 86; 90 area = area || 86;
91 return api.get('', { 91 return api.get('', {
92 mobile: mobile, 92 mobile: mobile,
93 - code : code,  
94 - area : area, 93 + code: code,
  94 + area: area,
95 method: 'app.register.validBackpwdCode' 95 method: 'app.register.validBackpwdCode'
96 }); 96 });
97 }; 97 };
@@ -107,9 +107,9 @@ const modifyPasswordByMobileAsync = (mobile, token, newpwd, area)=> { @@ -107,9 +107,9 @@ const modifyPasswordByMobileAsync = (mobile, token, newpwd, area)=> {
107 area = area || 86; 107 area = area || 86;
108 return api.get('', { 108 return api.get('', {
109 mobile: mobile, 109 mobile: mobile,
110 - token : token, 110 + token: token,
111 newpwd: newpwd, 111 newpwd: newpwd,
112 - area : area, 112 + area: area,
113 method: 'app.register.changepwdByMobileCode' 113 method: 'app.register.changepwdByMobileCode'
114 }); 114 });
115 }; 115 };
@@ -119,7 +119,7 @@ const modifyPasswordByMobileAsync = (mobile, token, newpwd, area)=> { @@ -119,7 +119,7 @@ const modifyPasswordByMobileAsync = (mobile, token, newpwd, area)=> {
119 */ 119 */
120 const checkEmailCodeAsync = (code) => { 120 const checkEmailCodeAsync = (code) => {
121 return api.get('', { 121 return api.get('', {
122 - code : code, 122 + code: code,
123 method: 'web.passport.checkCodeValid' 123 method: 'web.passport.checkCodeValid'
124 }); 124 });
125 }; 125 };
@@ -129,7 +129,7 @@ const checkEmailCodeAsync = (code) => { @@ -129,7 +129,7 @@ const checkEmailCodeAsync = (code) => {
129 */ 129 */
130 const modifyPasswordByEmailCodeAsync = (code, password) => { 130 const modifyPasswordByEmailCodeAsync = (code, password) => {
131 return api.get('', { 131 return api.get('', {
132 - code : code, 132 + code: code,
133 newPwd: password, 133 newPwd: password,
134 method: 'app.register.resetPwdByCode' 134 method: 'app.register.resetPwdByCode'
135 }); 135 });
@@ -2,39 +2,39 @@ var $ = require('yoho-jquery'); @@ -2,39 +2,39 @@ var $ = require('yoho-jquery');
2 var Slide = require('../plugins/yohoui/YH.slide'); 2 var Slide = require('../plugins/yohoui/YH.slide');
3 3
4 4
5 -var $item=$("li",".qrctxt");  
6 -var len=$item.length; 5 +var $item = $('li', '.qrctxt');
  6 +var len = $item.length, slide;
7 7
8 8
9 function slideDo(to) { 9 function slideDo(to) {
10 $item.each(function(index) { 10 $item.each(function(index) {
11 - index == to?$(this).stop().animate({  
12 - opacity: 1,  
13 - zIndex:1  
14 - }, 400):$(this).stop().animate({  
15 - opacity: 0,  
16 - zIndex:0  
17 - }, 400);  
18 - to===0?$(".prev").addClass("gray"):$(".prev").removeClass("gray");  
19 - to===len-1?$(".next").addClass("gray"):$(".next").removeClass("gray"); 11 + index === to ? $(this).stop().animate({
  12 + opacity: 1,
  13 + zIndex: 1
  14 + }, 400) : $(this).stop().animate({
  15 + opacity: 0,
  16 + zIndex: 0
  17 + }, 400);
  18 + to === 0 ? $('.prev').addClass('gray') : $('.prev').removeClass('gray');
  19 + to === len - 1 ? $('.next').addClass('gray') : $('.next').removeClass('gray');
20 }); 20 });
21 } 21 }
22 22
23 slideDo(0); 23 slideDo(0);
24 24
25 -var slide = new Slide({  
26 - length:len, 25 +slide = new Slide({
  26 + length: len,
27 loop: false, 27 loop: false,
28 auto: false, 28 auto: false,
29 timeout: 2, 29 timeout: 2,
30 index: 0 30 index: 0
31 }); 31 });
32 slide.on('change', function(data) { 32 slide.on('change', function(data) {
33 - slideDo(data.to); 33 + slideDo(data.to);
34 }); 34 });
35 -$(".prev",".qrcmain-switch").click(function(){  
36 - slide.prev(); 35 +$('.prev', '.qrcmain-switch').click(function() {
  36 + slide.prev();
  37 +});
  38 +$('.next', '.qrcmain-switch').click(function() {
  39 + slide.next();
37 }); 40 });
38 -$(".next",".qrcmain-switch").click(function(){  
39 - slide.next();  
40 -});  
1 -/**  
2 - * 邮箱自动补全  
3 - * @author:xuqi<qi.xu@yoho.cn>  
4 - * @date: 2016/2/22  
5 - */  
6 -var $ = require('yoho-jquery');  
7 -  
8 -var mailPostfix = {  
9 - num: ['qq.com', '163.com', '126.com', 'sina.com', 'gmail.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'],  
10 - other: ['gmail.com', 'qq.com', '163.com', '126.com', 'sina.com', 'sohu.com', 'hotmail.com', '139.com', '189.com']  
11 -};  
12 -  
13 -var emailAcTime;  
14 -  
15 -/**  
16 - * @param $input 需要自动完成的$对象  
17 - * @param cb 鼠标移开/点击自动完成项后需要执行的操作(验证等)  
18 - */  
19 -module.exports = function($input, cb) {  
20 - var ulHtml = '<ul id="email-autocomplete" class="email-autocomplete hide"></ul>';  
21 -  
22 - var $emailAutoComplete;  
23 -  
24 - $input.parent().append(ulHtml);  
25 -  
26 - $emailAutoComplete = $('#email-autocomplete');  
27 -  
28 - $input.on('keyup', function() {  
29 - var account = $.trim($(this).val()),  
30 - html = '',  
31 - accountMatch,  
32 - matchStr,  
33 - postfix,  
34 - i;  
35 -  
36 - //输入@时自动补全邮箱后缀  
37 - //此处>0非错误,用于避免输入的第一个字符为@被识别为邮箱  
38 - if (account.indexOf('@') > 0) {  
39 - accountMatch = account.match(/^[0-9]+@(.*)/);  
40 - if (accountMatch) {  
41 -  
42 - //数字邮箱补全  
43 - postfix = mailPostfix.num;  
44 - matchStr = accountMatch[1];  
45 - } else {  
46 - postfix = mailPostfix.other;  
47 - matchStr = account.match(/@(.*)/)[1];  
48 - }  
49 -  
50 - for (i = 0; i < postfix.length; i++) {  
51 - if (postfix[i].indexOf(matchStr) > -1) {  
52 - html += '<li>' + account.slice(0, account.indexOf('@')) + '@' + postfix[i] + '</li>';  
53 - }  
54 - }  
55 -  
56 - if (html !== '' && /.com$/.test(account) === false) {  
57 - $emailAutoComplete.html(html).removeClass('hide');  
58 - } else {  
59 -  
60 - //隐藏autocomplete  
61 - $emailAutoComplete.html('').addClass('hide');  
62 - }  
63 - }  
64 - }).on('blur', function() {  
65 - emailAcTime = setTimeout(function() {  
66 -  
67 - //未点击自动完成项  
68 - $emailAutoComplete.addClass('hide');  
69 -  
70 - cb && cb();  
71 - }, 200);  
72 - });  
73 -  
74 - //邮箱自动完成列表项点击  
75 - $emailAutoComplete.on('click', 'li', function() {  
76 - clearTimeout(emailAcTime); //清空默认关闭  
77 -  
78 - //点击自动完成项后进行验证  
79 - $input.val($(this).text()).focus();  
80 -  
81 - $emailAutoComplete.addClass('hide');  
82 -  
83 - cb && cb();  
84 - });  
85 -}; 1 +/**
  2 + * 邮箱自动补全
  3 + * @author:xuqi<qi.xu@yoho.cn>
  4 + * @date: 2016/2/22
  5 + */
  6 +var $ = require('yoho-jquery');
  7 +
  8 +var mailPostfix = {
  9 + num: ['qq.com', '163.com', '126.com', 'sina.com', 'gmail.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'],
  10 + other: ['gmail.com', 'qq.com', '163.com', '126.com', 'sina.com', 'sohu.com', 'hotmail.com', '139.com', '189.com']
  11 +};
  12 +
  13 +var emailAcTime;
  14 +
  15 +/**
  16 + * @param $input 需要自动完成的$对象
  17 + * @param cb 鼠标移开/点击自动完成项后需要执行的操作(验证等)
  18 + */
  19 +module.exports = function($input, cb) {
  20 + var ulHtml = '<ul id="email-autocomplete" class="email-autocomplete hide"></ul>';
  21 +
  22 + var $emailAutoComplete;
  23 +
  24 + $input.parent().append(ulHtml);
  25 +
  26 + $emailAutoComplete = $('#email-autocomplete');
  27 +
  28 + $input.on('keyup', function() {
  29 + var account = $.trim($(this).val()),
  30 + html = '',
  31 + accountMatch,
  32 + matchStr,
  33 + postfix,
  34 + i;
  35 +
  36 + // 输入@时自动补全邮箱后缀
  37 + // 此处>0非错误,用于避免输入的第一个字符为@被识别为邮箱
  38 + if (account.indexOf('@') > 0) {
  39 + accountMatch = account.match(/^[0-9]+@(.*)/);
  40 + if (accountMatch) {
  41 +
  42 + // 数字邮箱补全
  43 + postfix = mailPostfix.num;
  44 + matchStr = accountMatch[1];
  45 + } else {
  46 + postfix = mailPostfix.other;
  47 + matchStr = account.match(/@(.*)/)[1];
  48 + }
  49 +
  50 + for (i = 0; i < postfix.length; i++) {
  51 + if (postfix[i].indexOf(matchStr) > -1) {
  52 + html += '<li>' + account.slice(0, account.indexOf('@')) + '@' + postfix[i] + '</li>';
  53 + }
  54 + }
  55 +
  56 + if (html !== '' && /.com$/.test(account) === false) {
  57 + $emailAutoComplete.html(html).removeClass('hide');
  58 + } else {
  59 +
  60 + // 隐藏autocomplete
  61 + $emailAutoComplete.html('').addClass('hide');
  62 + }
  63 + }
  64 + }).on('blur', function() {
  65 + emailAcTime = setTimeout(function() {
  66 +
  67 + // 未点击自动完成项
  68 + $emailAutoComplete.addClass('hide');
  69 +
  70 + cb && cb();
  71 + }, 200);
  72 + });
  73 +
  74 + // 邮箱自动完成列表项点击
  75 + $emailAutoComplete.on('click', 'li', function() {
  76 + clearTimeout(emailAcTime); // 清空默认关闭
  77 +
  78 + // 点击自动完成项后进行验证
  79 + $input.val($(this).text()).focus();
  80 +
  81 + $emailAutoComplete.addClass('hide');
  82 +
  83 + cb && cb();
  84 + });
  85 +};
1 -/**  
2 - * 找回密码  
3 - * @author: xuqi<qi.xu@yoho.cn>  
4 - * @date: 2015/12/14  
5 - */  
6 -  
7 -var $ = require('yoho-jquery'),  
8 - regx = require('./mail-phone-regx'),  
9 - emailReg = regx.emailRegx,  
10 - phoneRegx = regx.phoneRegx;  
11 -  
12 -var emailAc = require('./ac-email'); //邮箱自动完成  
13 -  
14 -var $cr = $('#country-code-hide'),  
15 - $phoneNum = $('#phone-num'),  
16 - $ca = $('#captcha'),  
17 - $ccList = $('#country-code-list'),  
18 - $cc = $('#country-code'),  
19 - $btn = $('#find-btn'),  
20 - $accErr = $('#account-err'),  
21 - $caErr = $('#captcha-err'),  
22 - caCount = 4, //验证码位数  
23 - hasPh = false,  
24 - hasCa = false;  
25 -  
26 -  
27 -require('yoho-jquery-placeholder');  
28 -  
29 -function imgcode() {  
30 - var time = new Date(),  
31 - $captchaImg = $('#captcha-img'),  
32 - captchaImgSrc = $captchaImg.attr('src').split('?')[0];  
33 -  
34 - $('#captcha-img').attr('src', captchaImgSrc + '?t=' + time.getTime());  
35 -}  
36 -  
37 -function enableBtn() {  
38 - if (hasPh && hasCa) {  
39 - $btn.removeClass('disable').prop('disabled', false);  
40 - } else {  
41 - $btn.addClass('disable').prop('disabled', true);  
42 - }  
43 -}  
44 -  
45 -function authcode() {  
46 - if (!hasPh || !hasCa) {  
47 - enableBtn();  
48 - return;  
49 - }  
50 -  
51 - $.ajax({  
52 - type: 'POST',  
53 - url: '/passport/back/authcode',  
54 - data: {  
55 - verifyCode: $.trim($ca.val()),  
56 - phoneNum: $phoneNum.val(),  
57 - area: $cr.val()  
58 - }  
59 -  
60 - }).then(function(data) {  
61 - if (data.code === 200) {  
62 - hasCa = true;  
63 - } else if (data.code === 402) {  
64 - hasPh = false;  
65 - hasCa = true;  
66 - $accErr.removeClass('hide').find('em').text('该账号不存在');  
67 - $phoneNum.addClass('error');  
68 - } else if (data.code === 400) {  
69 - hasCa = false;  
70 - imgcode();  
71 - }  
72 - enableBtn();  
73 - });  
74 -}  
75 -  
76 -function vaPn(v) {  
77 - var pass = true,  
78 - errTxt = '';  
79 -  
80 - v = $.trim(v);  
81 - if (v !== '') {  
82 - if (/^[0-9]+$/.test(v)) {  
83 - if (phoneRegx[$cr.val()].test(v)) {  
84 - pass = true;  
85 - } else {  
86 - errTxt = '手机号码格式不正确, 请重新输入';  
87 - pass = false;  
88 - }  
89 - } else {  
90 - if (emailReg.test(v)) {  
91 - pass = true;  
92 - } else {  
93 - errTxt = '邮箱格式不正确, 请重新输入';  
94 - pass = false;  
95 - }  
96 - }  
97 - } else {  
98 - errTxt = '账户名不能为空';  
99 - pass = false;  
100 - }  
101 - hasPh = pass;  
102 - authcode();  
103 -  
104 - return {  
105 - pass: pass,  
106 - errTxt: errTxt  
107 - };  
108 -}  
109 -  
110 -function vaCa() {  
111 - var v = $.trim($ca.val());  
112 -  
113 - if (v === '' || v.length < caCount) {  
114 - hasCa = false;  
115 - enableBtn();  
116 - return;  
117 - }  
118 -  
119 - hasCa = true;  
120 -  
121 - authcode();  
122 -}  
123 -  
124 -emailAc($phoneNum, function() {  
125 - var pnVa = vaPn($phoneNum.val());  
126 -  
127 - if (pnVa.pass) {  
128 - $accErr.addClass('hide');  
129 - $phoneNum.removeClass('error');  
130 - } else {  
131 - $accErr.removeClass('hide').find('em').text(pnVa.errTxt);  
132 - $phoneNum.addClass('error');  
133 - }  
134 - }  
135 -);  
136 -  
137 -$ca.attr('maxlength', caCount);  
138 -  
139 -//IE8 placeholder  
140 -$('input').placeholder();  
141 -  
142 -$('#change-captcha, #captcha-img').on('click', function() {  
143 - imgcode();  
144 -});  
145 -  
146 -$cc.on('click', function(e) {  
147 - e.stopPropagation();  
148 - if ($ccList.css('style') === 'block') {  
149 - $ccList.slideUp('fast');  
150 - } else {  
151 - $ccList.slideDown('fast');  
152 - }  
153 -});  
154 -  
155 -$ccList.delegate('li', 'click', function(e) {  
156 - var $cur = $(this),  
157 - code = $cur.data('cc'),  
158 - pnVa;  
159 -  
160 - e.stopPropagation();  
161 - $cr.val(code);  
162 - $cc.find('em').html($cur.text());  
163 -  
164 - //切换后验证手机号码  
165 - if ($.trim($phoneNum.val()) !== '') {  
166 - pnVa = vaPn($phoneNum.val());  
167 - enableBtn();  
168 - if (hasPh) {  
169 - $accErr.addClass('hide');  
170 - $phoneNum.removeClass('error');  
171 - } else {  
172 - $accErr.removeClass('hide').text(pnVa.errTxt);  
173 - $phoneNum.addClass('error');  
174 - }  
175 - }  
176 - $ccList.slideUp('fast');  
177 -});  
178 -  
179 -$(document).click(function() {  
180 - if ($ccList.css('display') === 'block') {  
181 - $ccList.slideUp();  
182 - }  
183 -});  
184 -  
185 -$phoneNum.keyup(function() {  
186 - vaPn($.trim($(this).val()));  
187 -}).focus(function() {  
188 - $(this).removeClass('error');  
189 -  
190 - //focus隐藏错误提示  
191 - $accErr.addClass('hide');  
192 -});  
193 -  
194 -//验证码在鼠标移开后验证, keyup时不再验证  
195 -$ca.blur(function() {  
196 - var errTxt = $.trim($ca.val()) === '' ? '验证码不能为空' : '验证码不正确';  
197 -  
198 - if (hasCa) {  
199 - $caErr.addClass('hide');  
200 - $ca.removeClass('error');  
201 - } else {  
202 - $caErr.removeClass('hide').find('em').text(errTxt);  
203 - $ca.addClass('error');  
204 -  
205 - //验证码错误则刷新验证码  
206 - if ($ca.val() < caCount) {  
207 -  
208 - //防止重复刷新验证码  
209 - imgcode();  
210 - }  
211 - }  
212 -}).focus(function() {  
213 - $(this).removeClass('error');  
214 -  
215 - //focus隐藏错误提示  
216 - $caErr.addClass('hide');  
217 -}).keyup(function() {  
218 - vaCa();  
219 -});  
220 -  
221 -$('#find-btn').click(function(e) {  
222 -  
223 - if (/^[0-9]+$/.test($.trim($phoneNum.val()))) {  
224 - $('#find-form').attr('action', '/passport/back/mobile');  
225 - }  
226 - if ($(this).hasClass('disable')) {  
227 - return;  
228 - }  
229 - if (!hasCa || !hasPh) {  
230 - e.preventDefault();  
231 - return true;  
232 - }  
233 -}); 1 +/**
  2 + * 找回密码
  3 + * @author: xuqi<qi.xu@yoho.cn>
  4 + * @date: 2015/12/14
  5 + */
  6 +
  7 +var $ = require('yoho-jquery'),
  8 + regx = require('./mail-phone-regx'),
  9 + emailReg = regx.emailRegx,
  10 + phoneRegx = regx.phoneRegx;
  11 +
  12 +var emailAc = require('./ac-email'); // 邮箱自动完成
  13 +
  14 +var $cr = $('#country-code-hide'),
  15 + $phoneNum = $('#phone-num'),
  16 + $ca = $('#captcha'),
  17 + $ccList = $('#country-code-list'),
  18 + $cc = $('#country-code'),
  19 + $btn = $('#find-btn'),
  20 + $accErr = $('#account-err'),
  21 + $caErr = $('#captcha-err'),
  22 + caCount = 4, // 验证码位数
  23 + hasPh = false,
  24 + hasCa = false;
  25 +
  26 +
  27 +require('yoho-jquery-placeholder');
  28 +
  29 +function imgcode() {
  30 + var time = new Date(),
  31 + $captchaImg = $('#captcha-img'),
  32 + captchaImgSrc = $captchaImg.attr('src').split('?')[0];
  33 +
  34 + $('#captcha-img').attr('src', captchaImgSrc + '?t=' + time.getTime());
  35 +}
  36 +
  37 +function enableBtn() {
  38 + if (hasPh && hasCa) {
  39 + $btn.removeClass('disable').prop('disabled', false);
  40 + } else {
  41 + $btn.addClass('disable').prop('disabled', true);
  42 + }
  43 +}
  44 +
  45 +function authcode() {
  46 + if (!hasPh || !hasCa) {
  47 + enableBtn();
  48 + return;
  49 + }
  50 +
  51 + $.ajax({
  52 + type: 'POST',
  53 + url: '/passport/back/authcode',
  54 + data: {
  55 + verifyCode: $.trim($ca.val()),
  56 + phoneNum: $phoneNum.val(),
  57 + area: $cr.val()
  58 + }
  59 +
  60 + }).then(function(data) {
  61 + if (data.code === 200) {
  62 + hasCa = true;
  63 + } else if (data.code === 402) {
  64 + hasPh = false;
  65 + hasCa = true;
  66 + $accErr.removeClass('hide').find('em').text('该账号不存在');
  67 + $phoneNum.addClass('error');
  68 + } else if (data.code === 400) {
  69 + hasCa = false;
  70 + imgcode();
  71 + }
  72 + enableBtn();
  73 + });
  74 +}
  75 +
  76 +function vaPn(v) {
  77 + var pass = true,
  78 + errTxt = '';
  79 +
  80 + v = $.trim(v);
  81 + if (v !== '') {
  82 + if (/^[0-9]+$/.test(v)) {
  83 + if (phoneRegx[$cr.val()].test(v)) {
  84 + pass = true;
  85 + } else {
  86 + errTxt = '手机号码格式不正确, 请重新输入';
  87 + pass = false;
  88 + }
  89 + } else {
  90 + if (emailReg.test(v)) {
  91 + pass = true;
  92 + } else {
  93 + errTxt = '邮箱格式不正确, 请重新输入';
  94 + pass = false;
  95 + }
  96 + }
  97 + } else {
  98 + errTxt = '账户名不能为空';
  99 + pass = false;
  100 + }
  101 + hasPh = pass;
  102 + authcode();
  103 +
  104 + return {
  105 + pass: pass,
  106 + errTxt: errTxt
  107 + };
  108 +}
  109 +
  110 +function vaCa() {
  111 + var v = $.trim($ca.val());
  112 +
  113 + if (v === '' || v.length < caCount) {
  114 + hasCa = false;
  115 + enableBtn();
  116 + return;
  117 + }
  118 +
  119 + hasCa = true;
  120 +
  121 + authcode();
  122 +}
  123 +
  124 +emailAc($phoneNum, function() {
  125 + var pnVa = vaPn($phoneNum.val());
  126 +
  127 + if (pnVa.pass) {
  128 + $accErr.addClass('hide');
  129 + $phoneNum.removeClass('error');
  130 + } else {
  131 + $accErr.removeClass('hide').find('em').text(pnVa.errTxt);
  132 + $phoneNum.addClass('error');
  133 + }
  134 +}
  135 +);
  136 +
  137 +$ca.attr('maxlength', caCount);
  138 +
  139 +// IE8 placeholder
  140 +$('input').placeholder();
  141 +
  142 +$('#change-captcha, #captcha-img').on('click', function() {
  143 + imgcode();
  144 +});
  145 +
  146 +$cc.on('click', function(e) {
  147 + e.stopPropagation();
  148 + if ($ccList.css('style') === 'block') {
  149 + $ccList.slideUp('fast');
  150 + } else {
  151 + $ccList.slideDown('fast');
  152 + }
  153 +});
  154 +
  155 +$ccList.delegate('li', 'click', function(e) {
  156 + var $cur = $(this),
  157 + code = $cur.data('cc'),
  158 + pnVa;
  159 +
  160 + e.stopPropagation();
  161 + $cr.val(code);
  162 + $cc.find('em').html($cur.text());
  163 +
  164 + // 切换后验证手机号码
  165 + if ($.trim($phoneNum.val()) !== '') {
  166 + pnVa = vaPn($phoneNum.val());
  167 + enableBtn();
  168 + if (hasPh) {
  169 + $accErr.addClass('hide');
  170 + $phoneNum.removeClass('error');
  171 + } else {
  172 + $accErr.removeClass('hide').text(pnVa.errTxt);
  173 + $phoneNum.addClass('error');
  174 + }
  175 + }
  176 + $ccList.slideUp('fast');
  177 +});
  178 +
  179 +$(document).click(function() {
  180 + if ($ccList.css('display') === 'block') {
  181 + $ccList.slideUp();
  182 + }
  183 +});
  184 +
  185 +$phoneNum.keyup(function() {
  186 + vaPn($.trim($(this).val()));
  187 +}).focus(function() {
  188 + $(this).removeClass('error');
  189 +
  190 + // focus隐藏错误提示
  191 + $accErr.addClass('hide');
  192 +});
  193 +
  194 +// 验证码在鼠标移开后验证, keyup时不再验证
  195 +$ca.blur(function() {
  196 + var errTxt = $.trim($ca.val()) === '' ? '验证码不能为空' : '验证码不正确';
  197 +
  198 + if (hasCa) {
  199 + $caErr.addClass('hide');
  200 + $ca.removeClass('error');
  201 + } else {
  202 + $caErr.removeClass('hide').find('em').text(errTxt);
  203 + $ca.addClass('error');
  204 +
  205 + // 验证码错误则刷新验证码
  206 + if ($ca.val() < caCount) {
  207 +
  208 + // 防止重复刷新验证码
  209 + imgcode();
  210 + }
  211 + }
  212 +}).focus(function() {
  213 + $(this).removeClass('error');
  214 +
  215 + // focus隐藏错误提示
  216 + $caErr.addClass('hide');
  217 +}).keyup(function() {
  218 + vaCa();
  219 +});
  220 +
  221 +$('#find-btn').click(function(e) {
  222 +
  223 + if (/^[0-9]+$/.test($.trim($phoneNum.val()))) {
  224 + $('#find-form').attr('action', '/passport/back/mobile');
  225 + }
  226 + if ($(this).hasClass('disable')) {
  227 + return;
  228 + }
  229 + if (!hasCa || !hasPh) {
  230 + e.preventDefault();
  231 + return true;
  232 + }
  233 +});
1 -/**  
2 - * 国家区号Map手机号码以及邮箱验证正则  
3 - * @author: xuqi<qi.xu@yoho.cn>  
4 - * @date: 2015/12/11  
5 - */  
6 -  
7 -var countryPhoneRegx = {  
8 - '+86': /^1[35847]{1}[0-9]{9}$/,  
9 - '+852': /^[965]{1}[0-9]{7}$/,  
10 - '+853': /^[0-9]{8}$/,  
11 - '+886': /^[0-9]{10}$/,  
12 - '+65': /^[98]{1}[0-9]{7}$/,  
13 - '+60': /^1[1234679]{1}[0-9]{8}$/,  
14 - '+1': /^[0-9]{10}$/,  
15 - '+82': /^01[0-9]{9}$/,  
16 - '+44': /^7[789]{1}[0-9]{8}$/,  
17 - '+81': /^0[9|8|7][0-9]{9}$/,  
18 - '+61': /^[0-9]{11}$/  
19 -};  
20 -  
21 -var emailRegx = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/;  
22 -  
23 -var pwdValidateRegx = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;  
24 -  
25 -exports.phoneRegx = countryPhoneRegx;  
26 -  
27 -exports.emailRegx = emailRegx;  
28 -  
29 -exports.pwdValidateRegx = pwdValidateRegx;  
  1 +/**
  2 + * 国家区号Map手机号码以及邮箱验证正则
  3 + * @author: xuqi<qi.xu@yoho.cn>
  4 + * @date: 2015/12/11
  5 + */
  6 +
  7 +var countryPhoneRegx = {
  8 + '+86': /^1[35847]{1}[0-9]{9}$/,
  9 + '+852': /^[965]{1}[0-9]{7}$/,
  10 + '+853': /^[0-9]{8}$/,
  11 + '+886': /^[0-9]{10}$/,
  12 + '+65': /^[98]{1}[0-9]{7}$/,
  13 + '+60': /^1[1234679]{1}[0-9]{8}$/,
  14 + '+1': /^[0-9]{10}$/,
  15 + '+82': /^01[0-9]{9}$/,
  16 + '+44': /^7[789]{1}[0-9]{8}$/,
  17 + '+81': /^0[9|8|7][0-9]{9}$/,
  18 + '+61': /^[0-9]{11}$/
  19 +};
  20 +
  21 +var emailRegx = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/;
  22 +
  23 +var pwdValidateRegx = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
  24 +
  25 +exports.phoneRegx = countryPhoneRegx;
  26 +
  27 +exports.emailRegx = emailRegx;
  28 +
  29 +exports.pwdValidateRegx = pwdValidateRegx;
@@ -64,4 +64,4 @@ function computeComplex(password) { @@ -64,4 +64,4 @@ function computeComplex(password) {
64 return complex; 64 return complex;
65 } 65 }
66 66
67 -module.exports = computeComplex;  
  67 +module.exports = computeComplex;
@@ -95,7 +95,7 @@ function pwdKeyupEvt() { @@ -95,7 +95,7 @@ function pwdKeyupEvt() {
95 pwdStrength = computeComplex(pwd), 95 pwdStrength = computeComplex(pwd),
96 level = 0; 96 level = 0;
97 97
98 - //TODO:自定义密码强度规则,需要修正 98 + // TODO:自定义密码强度规则,需要修正
99 if (pwdStrength === 0) { 99 if (pwdStrength === 0) {
100 level = 0; 100 level = 0;
101 } else if (pwdStrength <= 10) { 101 } else if (pwdStrength <= 10) {
@@ -126,7 +126,7 @@ function pwdKeyupEvt() { @@ -126,7 +126,7 @@ function pwdKeyupEvt() {
126 break; 126 break;
127 } 127 }
128 128
129 - //提示框 129 + // 提示框
130 if (pwd === '') { 130 if (pwd === '') {
131 $pwdTip1.removeClass('red yes no').addClass('default'); 131 $pwdTip1.removeClass('red yes no').addClass('default');
132 } else if (pwd.length < 6 || pwd.length > 20) { 132 } else if (pwd.length < 6 || pwd.length > 20) {
@@ -142,7 +142,7 @@ function pwdKeyupEvt() { @@ -142,7 +142,7 @@ function pwdKeyupEvt() {
142 } 142 }
143 } 143 }
144 144
145 -//IE8 placeholder 145 +// IE8 placeholder
146 $('input').placeholder(); 146 $('input').placeholder();
147 147
148 $('.va').keyup(function() { 148 $('.va').keyup(function() {
@@ -208,7 +208,7 @@ $('.va').keyup(function() { @@ -208,7 +208,7 @@ $('.va').keyup(function() {
208 }).focus(function() { 208 }).focus(function() {
209 $(this).removeClass('error'); 209 $(this).removeClass('error');
210 210
211 - //focus后错误提示隐藏 211 + // focus后错误提示隐藏
212 if ($(this).hasClass('pwd')) { 212 if ($(this).hasClass('pwd')) {
213 $pwdErr.addClass('hide'); 213 $pwdErr.addClass('hide');
214 } else { 214 } else {
@@ -226,7 +226,7 @@ $pwd.focus(function() { @@ -226,7 +226,7 @@ $pwd.focus(function() {
226 $('#pwd, #repwd').keydown(function(e) { 226 $('#pwd, #repwd').keydown(function(e) {
227 var code = e.keyCode || e.which; 227 var code = e.keyCode || e.which;
228 228
229 - //空格输入过滤 229 + // 空格输入过滤
230 if (code === 32) { 230 if (code === 32) {
231 e.preventDefault(); 231 e.preventDefault();
232 return; 232 return;
@@ -195,5 +195,5 @@ $('.slide-container').slider({ @@ -195,5 +195,5 @@ $('.slide-container').slider({
195 extraInfo(); 195 extraInfo();
196 196
197 lazyLoad($('img.lazy'), { 197 lazyLoad($('img.lazy'), {
198 - failure_limit: 20 198 + failure_limit: 20
199 }); 199 });
@@ -19,7 +19,8 @@ @@ -19,7 +19,8 @@
19 margin-top: 11px; 19 margin-top: 11px;
20 } 20 }
21 21
22 - a, span { 22 + a,
  23 + span {
23 color: #666; 24 color: #666;
24 } 25 }
25 26
@@ -46,7 +47,6 @@ @@ -46,7 +47,6 @@
46 background-repeat: no-repeat; 47 background-repeat: no-repeat;
47 } 48 }
48 49
49 -  
50 .user-thumb { 50 .user-thumb {
51 text-align: center; 51 text-align: center;
52 padding: 20px 0; 52 padding: 20px 0;
@@ -109,7 +109,7 @@ @@ -109,7 +109,7 @@
109 } 109 }
110 110
111 span { 111 span {
112 - color: #E0012B; 112 + color: #e0012b;
113 font-weight: bold; 113 font-weight: bold;
114 } 114 }
115 } 115 }
@@ -288,7 +288,6 @@ @@ -288,7 +288,6 @@
288 background: #333; 288 background: #333;
289 } 289 }
290 } 290 }
291 -  
292 @import "default"; 291 @import "default";
293 @import "order-block"; 292 @import "order-block";
294 @import "orders"; 293 @import "orders";
@@ -309,4 +308,4 @@ @@ -309,4 +308,4 @@
309 @import "complaints"; 308 @import "complaints";
310 @import "message"; 309 @import "message";
311 @import "message-content"; 310 @import "message-content";
312 -@import "my-vip"; */  
  311 +@import "my-vip"; */
@@ -6,7 +6,6 @@ @@ -6,7 +6,6 @@
6 } 6 }
7 7
8 .order-table-header { 8 .order-table-header {
9 -  
10 .info { 9 .info {
11 width: 330px; 10 width: 330px;
12 text-align: left; 11 text-align: left;
@@ -21,7 +20,9 @@ @@ -21,7 +20,9 @@
21 width: 60px; 20 width: 60px;
22 } 21 }
23 22
24 - .pay, .order-status, .operation { 23 + .pay,
  24 + .order-status,
  25 + .operation {
25 width: 100px; 26 width: 100px;
26 } 27 }
27 } 28 }
@@ -111,7 +112,7 @@ @@ -111,7 +112,7 @@
111 color: #468fa2; 112 color: #468fa2;
112 max-width: 245px; 113 max-width: 245px;
113 114
114 - @mixin ellipsis; 115 + @mixin ellipsis ;
115 } 116 }
116 117
117 .had-refund { 118 .had-refund {
@@ -146,7 +147,9 @@ @@ -146,7 +147,9 @@
146 width: 50px; 147 width: 50px;
147 } 148 }
148 149
149 - .pay, .order-status, .operation { 150 + .pay,
  151 + .order-status,
  152 + .operation {
150 width: 90px; 153 width: 90px;
151 border-left: 1px solid #e6e6e6; 154 border-left: 1px solid #e6e6e6;
152 padding: 5px; 155 padding: 5px;
@@ -173,7 +176,8 @@ @@ -173,7 +176,8 @@
173 } 176 }
174 } 177 }
175 178
176 - .no-pay, .paid { 179 + .no-pay,
  180 + .paid {
177 color: #e8044f; 181 color: #e8044f;
178 } 182 }
179 183
@@ -230,7 +234,7 @@ @@ -230,7 +234,7 @@
230 margin-top: 1px; 234 margin-top: 1px;
231 border-top: 5px solid transparent; 235 border-top: 5px solid transparent;
232 border-bottom: 5px solid transparent; 236 border-bottom: 5px solid transparent;
233 - border-left: 6px solid #FFF; 237 + border-left: 6px solid #fff;
234 } 238 }
235 239
236 &.bottom { 240 &.bottom {
@@ -285,6 +289,7 @@ @@ -285,6 +289,7 @@
285 width: 600px; 289 width: 600px;
286 background: #fff; 290 background: #fff;
287 padding: 20px 30px 35px 30px; 291 padding: 20px 30px 35px 30px;
  292 +
288 header { 293 header {
289 font-size: 18px; 294 font-size: 18px;
290 padding-bottom: 20px; 295 padding-bottom: 20px;
@@ -292,13 +297,16 @@ @@ -292,13 +297,16 @@
292 color: #000; 297 color: #000;
293 text-align: left; 298 text-align: left;
294 } 299 }
295 - .close{ 300 +
  301 + .close {
296 top: 15px; 302 top: 15px;
297 right: 30px; 303 right: 30px;
298 - .iconfont{ 304 +
  305 + .iconfont {
299 font-size: 30px; 306 font-size: 30px;
300 } 307 }
301 } 308 }
  309 +
302 .cancel-reason { 310 .cancel-reason {
303 text-align: left; 311 text-align: left;
304 312
@@ -354,27 +362,32 @@ @@ -354,27 +362,32 @@
354 width: 126px; 362 width: 126px;
355 } 363 }
356 } 364 }
357 - .tip{  
358 - margin: 20px 0 ; 365 +
  366 + .tip {
  367 + margin: 20px 0;
359 font-size: 12px; 368 font-size: 12px;
360 text-align: left; 369 text-align: left;
361 color: #db3d50; 370 color: #db3d50;
362 } 371 }
363 - .reminder{ 372 +
  373 + .reminder {
364 margin: 20px 0 10px; 374 margin: 20px 0 10px;
365 } 375 }
366 - .info-prompt{  
367 - ul{ 376 +
  377 + .info-prompt {
  378 + ul {
368 margin-top: -10px; 379 margin-top: -10px;
369 } 380 }
370 - li{ 381 +
  382 + li {
371 margin: 10px 0; 383 margin: 10px 0;
372 font-size: 14px; 384 font-size: 14px;
373 line-height: 16px; 385 line-height: 16px;
374 text-align: left; 386 text-align: left;
375 } 387 }
376 - i{  
377 - color: #d70400; 388 +
  389 + i {
  390 + color: #d70400;
378 font-family: SimSun; 391 font-family: SimSun;
379 font-size: 16px; 392 font-size: 16px;
380 margin-right: 10px; 393 margin-right: 10px;
@@ -382,23 +395,27 @@ @@ -382,23 +395,27 @@
382 } 395 }
383 } 396 }
384 } 397 }
385 -.message-dialog{ 398 +
  399 +.message-dialog {
386 width: 350px; 400 width: 350px;
387 background: #fff; 401 background: #fff;
388 padding: 20px 30px 35px 30px; 402 padding: 20px 30px 35px 30px;
389 - .message-title{ 403 +
  404 + .message-title {
390 margin-top: 40px; 405 margin-top: 40px;
391 margin-bottom: 27px; 406 margin-bottom: 27px;
392 font-size: 24px; 407 font-size: 24px;
393 font-weight: 700; 408 font-weight: 700;
394 } 409 }
395 - .message-summary{ 410 +
  411 + .message-summary {
396 width: 250px; 412 width: 250px;
397 margin: 0 auto 22px; 413 margin: 0 auto 22px;
398 font-size: 14px; 414 font-size: 14px;
399 word-wrap: break-word; 415 word-wrap: break-word;
400 line-height: 20px; 416 line-height: 20px;
401 } 417 }
  418 +
402 .btns { 419 .btns {
403 padding: 15px 30px 0; 420 padding: 15px 30px 0;
404 text-align: center; 421 text-align: center;
@@ -416,18 +433,22 @@ @@ -416,18 +433,22 @@
416 border: none; 433 border: none;
417 } 434 }
418 } 435 }
419 - .close{ 436 +
  437 + .close {
420 top: 15px; 438 top: 15px;
421 right: 15px; 439 right: 15px;
422 - .iconfont{ 440 +
  441 + .iconfont {
423 font-size: 30px; 442 font-size: 30px;
424 } 443 }
425 } 444 }
426 } 445 }
  446 +
427 .edit-order-dialog { 447 .edit-order-dialog {
428 width: 600px; 448 width: 600px;
429 background: #fff; 449 background: #fff;
430 padding: 20px 30px 35px 30px; 450 padding: 20px 30px 35px 30px;
  451 +
431 header { 452 header {
432 font-size: 18px; 453 font-size: 18px;
433 padding-bottom: 20px; 454 padding-bottom: 20px;
@@ -435,76 +456,89 @@ @@ -435,76 +456,89 @@
435 color: #000; 456 color: #000;
436 text-align: left; 457 text-align: left;
437 } 458 }
438 - .close{ 459 +
  460 + .close {
439 top: 15px; 461 top: 15px;
440 right: 30px; 462 right: 30px;
441 - .iconfont{ 463 +
  464 + .iconfont {
442 font-size: 30px; 465 font-size: 30px;
443 } 466 }
444 } 467 }
  468 +
445 .edit-order-info { 469 .edit-order-info {
446 text-align: left; 470 text-align: left;
447 471
448 li { 472 li {
449 height: 26px; 473 height: 26px;
450 - margin:20px 0; 474 + margin: 20px 0;
451 line-height: 26px; 475 line-height: 26px;
452 font-size: 14px; 476 font-size: 14px;
453 white-space: nowrap; 477 white-space: nowrap;
454 } 478 }
455 - .form-required{  
456 - color: #d70400; 479 +
  480 + .form-required {
  481 + color: #d70400;
457 font-family: SimSun; 482 font-family: SimSun;
458 font-size: 16px; 483 font-size: 16px;
459 margin-right: 10px; 484 margin-right: 10px;
460 vertical-align: -6px; 485 vertical-align: -6px;
461 } 486 }
  487 +
462 label { 488 label {
463 - display:inline-block;  
464 - width:90px;  
465 - text-align:right; 489 + display: inline-block;
  490 + width: 90px;
  491 + text-align: right;
466 } 492 }
467 493
468 - .inp{  
469 - width:188px; 494 + .inp {
  495 + width: 188px;
470 height: 18px; 496 height: 18px;
471 - line-height:18px;  
472 - padding:3px 0;  
473 - border:1px solid #e8e8e8; 497 + line-height: 18px;
  498 + padding: 3px 0;
  499 + border: 1px solid #e8e8e8;
474 margin-left: 10px; 500 margin-left: 10px;
475 text-indent: 5px; 501 text-indent: 5px;
476 box-sizing: content-box; 502 box-sizing: content-box;
477 } 503 }
478 - .w271{  
479 - width:271px; 504 +
  505 + .w271 {
  506 + width: 271px;
480 } 507 }
481 - .w40{  
482 - width:40px; 508 +
  509 + .w40 {
  510 + width: 40px;
483 } 511 }
484 - .inp[name='tel']{ 512 +
  513 + .inp[name='tel'] {
485 margin-left: 0; 514 margin-left: 0;
486 } 515 }
487 } 516 }
488 - .ml10{  
489 - margin-left:10px; 517 +
  518 + .ml10 {
  519 + margin-left: 10px;
490 } 520 }
491 - select{ 521 +
  522 + select {
492 height: 25px; 523 height: 25px;
493 line-height: 25px; 524 line-height: 25px;
494 width: 100px; 525 width: 100px;
495 padding: 0; 526 padding: 0;
496 border: 1px solid #ccc; 527 border: 1px solid #ccc;
497 } 528 }
498 - .error{ 529 +
  530 + .error {
499 display: none; 531 display: none;
500 - margin-left:10px;  
501 - color:#db3d50;  
502 - font-size:12px;  
503 - .icon-error{ 532 + margin-left: 10px;
  533 + color: #db3d50;
  534 + font-size: 12px;
  535 +
  536 + .icon-error {
504 margin-right: 8px; 537 margin-right: 8px;
505 - vertical-align:text-bottom; 538 + vertical-align: text-bottom;
506 } 539 }
507 } 540 }
  541 +
508 .btns { 542 .btns {
509 padding: 15px 30px 0; 543 padding: 15px 30px 0;
510 text-align: center; 544 text-align: center;
@@ -530,48 +564,56 @@ @@ -530,48 +564,56 @@
530 width: 126px; 564 width: 126px;
531 } 565 }
532 } 566 }
533 - .tip{  
534 - margin: 20px 0 ; 567 +
  568 + .tip {
  569 + margin: 20px 0;
535 font-size: 12px; 570 font-size: 12px;
536 text-align: left; 571 text-align: left;
537 color: #db3d50; 572 color: #db3d50;
538 } 573 }
539 } 574 }
540 -.order-icon{ 575 +
  576 +.order-icon {
541 display: inline-block; 577 display: inline-block;
542 vertical-align: middle; 578 vertical-align: middle;
543 margin-right: 10px; 579 margin-right: 10px;
544 - background: resolve(img/home/order-sprite.png);; 580 + background: resolve(img/home/order-sprite.png);
545 } 581 }
546 -.icon-success{ 582 +
  583 +.icon-success {
547 width: 30px; 584 width: 30px;
548 height: 30px; 585 height: 30px;
549 vertical-align: -6px; 586 vertical-align: -6px;
550 background-position: 0 0; 587 background-position: 0 0;
551 } 588 }
552 -.icon-waiting{ 589 +
  590 +.icon-waiting {
553 width: 30px; 591 width: 30px;
554 height: 30px; 592 height: 30px;
555 vertical-align: -6px; 593 vertical-align: -6px;
556 - background-position: -32px 0 ; 594 + background-position: -32px 0;
557 } 595 }
558 -.icon-arrow{ 596 +
  597 +.icon-arrow {
559 width: 11px; 598 width: 11px;
560 height: 7px; 599 height: 7px;
561 background-position: -36px -33px; 600 background-position: -36px -33px;
562 } 601 }
563 -.icon-error{ 602 +
  603 +.icon-error {
564 width: 15px; 604 width: 15px;
565 height: 15px; 605 height: 15px;
566 - background-position:0 -33px; 606 + background-position: 0 -33px;
567 } 607 }
568 -.icon-right{  
569 - width:15px;  
570 - height:15px; 608 +
  609 +.icon-right {
  610 + width: 15px;
  611 + height: 15px;
571 background-position: -50px -33px; 612 background-position: -50px -33px;
572 } 613 }
573 -.icon-recycle{ 614 +
  615 +.icon-recycle {
574 width: 15px; 616 width: 15px;
575 height: 17px; 617 height: 17px;
576 background-position: -18px -33px; 618 background-position: -18px -33px;
577 -}  
  619 +}
@@ -23,25 +23,29 @@ @@ -23,25 +23,29 @@
23 .complete-tip { 23 .complete-tip {
24 color: #999; 24 color: #999;
25 } 25 }
26 - .cancel-order{  
27 - float:right; 26 +
  27 + .cancel-order {
  28 + float: right;
28 margin-right: 20px; 29 margin-right: 20px;
29 background: #ebebeb; 30 background: #ebebeb;
30 border: 1px solid #c1c1c1; 31 border: 1px solid #c1c1c1;
31 color: #000; 32 color: #000;
32 } 33 }
33 - .edit-order{  
34 - float:right; 34 +
  35 + .edit-order {
  36 + float: right;
35 background: #ebebeb; 37 background: #ebebeb;
36 border: 1px solid #c1c1c1; 38 border: 1px solid #c1c1c1;
37 color: #000; 39 color: #000;
38 } 40 }
39 - .edit-order-active{ 41 +
  42 + .edit-order-active {
40 background: #444; 43 background: #444;
41 border: 1px solid #444; 44 border: 1px solid #444;
42 color: #fff; 45 color: #fff;
43 } 46 }
44 - .go-pay{ 47 +
  48 + .go-pay {
45 margin-left: 60px; 49 margin-left: 60px;
46 } 50 }
47 } 51 }
@@ -165,137 +169,153 @@ @@ -165,137 +169,153 @@
165 .trace-order th { 169 .trace-order th {
166 line-height: 18px; 170 line-height: 18px;
167 } 171 }
168 - .differentOrder{ 172 +
  173 + .differentOrder {
169 position: relative; 174 position: relative;
170 width: 100%; 175 width: 100%;
171 margin-top: 10px; 176 margin-top: 10px;
172 - .warn{ 177 +
  178 + .warn {
173 text-align: center; 179 text-align: center;
174 - background: #FEFBD5; 180 + background: #fefbd5;
175 font: initial; 181 font: initial;
176 height: 40px; 182 height: 40px;
177 line-height: 40px; 183 line-height: 40px;
178 font-size: 16px; 184 font-size: 16px;
179 - .red{  
180 - color:red; 185 +
  186 + .red {
  187 + color: red;
181 } 188 }
182 - .why{ 189 +
  190 + .why {
183 background: url(img/order/why.png) no-repeat; 191 background: url(img/order/why.png) no-repeat;
184 width: 26px; 192 width: 26px;
185 height: 20px; 193 height: 20px;
186 display: inline-block; 194 display: inline-block;
187 vertical-align: middle; 195 vertical-align: middle;
188 - }  
189 - .why:hover{  
190 - cursor: pointer;  
191 - }  
192 - }  
193 - .differentBag:before{  
194 - content: "";  
195 - position: absolute;  
196 - width: 0;  
197 - height: 0;  
198 - border-bottom:10px solid #000000;  
199 - border-left: 10px solid transparent;  
200 - border-right:10px solid transparent;  
201 - top:-10px;  
202 - right:113px ;  
203 - }  
204 - .differentBag{  
205 - display: none;  
206 - position: absolute;  
207 - right: -10px;  
208 - top:40px;  
209 - width: 510px;  
210 - padding:0px 50px;  
211 - background:#FFFFFF ;  
212 - z-index: 1;  
213 - border: solid 1px #000000;  
214 - font-size: 14px;  
215 -  
216 - }  
217 - .bag{  
218 - position: relative;  
219 - border-bottom: solid 1px #E0E0E0;  
220 - margin-top: 10px;  
221 - padding: 20px 0px;  
222 - h3{  
223 - height: 30px;  
224 - line-height: 30px;  
225 - font-weight:bold ;  
226 - margin-left: 15px;  
227 - }  
228 - .pre{  
229 - position: absolute;  
230 - background: url(img/order/pre.png) no-repeat;  
231 - width: 30px;  
232 - height: 50px;  
233 - left: -30px;  
234 - top:70px;  
235 - display: none; 196 + }
  197 +
  198 + .why:hover {
236 cursor: pointer; 199 cursor: pointer;
237 - }  
238 - .next{  
239 - position: absolute;  
240 - background: url(img/order/next.png) no-repeat;  
241 - width: 30px;  
242 - height: 50px;  
243 - right:-30px;  
244 - top:70px;  
245 - display: none; 200 + }
  201 + }
  202 +
  203 + .differentBag:before {
  204 + content: "";
  205 + position: absolute;
  206 + width: 0;
  207 + height: 0;
  208 + border-bottom: 10px solid #000000;
  209 + border-left: 10px solid transparent;
  210 + border-right: 10px solid transparent;
  211 + top: -10px;
  212 + right: 113px;
  213 + }
  214 +
  215 + .differentBag {
  216 + display: none;
  217 + position: absolute;
  218 + right: -10px;
  219 + top: 40px;
  220 + width: 510px;
  221 + padding: 0px 50px;
  222 + background: #ffffff;
  223 + z-index: 1;
  224 + border: solid 1px #000000;
  225 + font-size: 14px;
  226 + }
  227 +
  228 + .bag {
  229 + position: relative;
  230 + border-bottom: solid 1px #e0e0e0;
  231 + margin-top: 10px;
  232 + padding: 20px 0px;
  233 +
  234 + h3 {
  235 + height: 30px;
  236 + line-height: 30px;
  237 + font-weight: bold;
  238 + margin-left: 15px;
  239 + }
  240 +
  241 + .pre {
  242 + position: absolute;
  243 + background: url(img/order/pre.png) no-repeat;
  244 + width: 30px;
  245 + height: 50px;
  246 + left: -30px;
  247 + top: 70px;
  248 + display: none;
  249 + cursor: pointer;
  250 + }
  251 +
  252 + .next {
  253 + position: absolute;
  254 + background: url(img/order/next.png) no-repeat;
  255 + width: 30px;
  256 + height: 50px;
  257 + right: -30px;
  258 + top: 70px;
  259 + display: none;
246 cursor: pointer; 260 cursor: pointer;
247 - }  
248 - p{  
249 - color: #767676;  
250 - margin-left:15px;  
251 -  
252 - }  
253 -  
254 - }  
255 - .bagDetil{  
256 - position: relative;  
257 - height: 90px;  
258 - width: 510px;  
259 - overflow:hidden;  
260 - margin-bottom: 20px;  
261 - ul{  
262 - list-style: none;  
263 - position: absolute;  
264 - left: 0;  
265 - clear: both;  
266 - height: 90px;  
267 - li{  
268 - float: left;  
269 - width: 102px;  
270 - height: 90px;  
271 - line-height: 90px;  
272 - text-align: center;  
273 - position: relative;  
274 - img{  
275 - width: 90px;  
276 - height: 90px;  
277 - }  
278 - p{  
279 - position: absolute;  
280 - bottom:0;  
281 - background: #9c3;  
282 - width: 90px;  
283 - height: 1rem;  
284 - line-height:1rem;  
285 - color: #FFFFFF;  
286 - margin-left: 7px;  
287 - } 261 + }
  262 +
  263 + p {
  264 + color: #767676;
  265 + margin-left: 15px;
  266 + }
  267 + }
  268 +
  269 + .bagDetil {
  270 + position: relative;
  271 + height: 90px;
  272 + width: 510px;
  273 + overflow: hidden;
  274 + margin-bottom: 20px;
  275 +
  276 + ul {
  277 + list-style: none;
  278 + position: absolute;
  279 + left: 0;
  280 + clear: both;
  281 + height: 90px;
  282 +
  283 + li {
  284 + float: left;
  285 + width: 102px;
  286 + height: 90px;
  287 + line-height: 90px;
  288 + text-align: center;
  289 + position: relative;
  290 +
  291 + img {
  292 + width: 90px;
  293 + height: 90px;
  294 + }
  295 +
  296 + p {
  297 + position: absolute;
  298 + bottom: 0;
  299 + background: #9c3;
  300 + width: 90px;
  301 + height: 1rem;
  302 + line-height: 1rem;
  303 + color: #ffffff;
  304 + margin-left: 7px;
  305 + }
288 306
289 a { 307 a {
290 cursor: default; 308 cursor: default;
291 } 309 }
  310 +
292 a:hover { 311 a:hover {
293 cursor: default; 312 cursor: default;
294 } 313 }
295 - }  
296 - } 314 + }
  315 + }
297 } 316 }
298 } 317 }
  318 +
299 .good-list { 319 .good-list {
300 table { 320 table {
301 border-collapse: collapse; 321 border-collapse: collapse;
@@ -346,7 +366,6 @@ @@ -346,7 +366,6 @@
346 height: height($img); 366 height: height($img);
347 background: url($img); 367 background: url($img);
348 vertical-align: text-top; 368 vertical-align: text-top;
349 -  
350 } 369 }
351 } 370 }
352 371
@@ -377,7 +396,7 @@ @@ -377,7 +396,7 @@
377 text-align: left; 396 text-align: left;
378 max-width: 230px; 397 max-width: 230px;
379 398
380 - @mixin ellipsis; 399 + @mixin ellipsis ;
381 } 400 }
382 } 401 }
383 402
@@ -458,16 +477,20 @@ @@ -458,16 +477,20 @@
458 color: #000; 477 color: #000;
459 } 478 }
460 } 479 }
461 - .freebie-tag{  
462 - background:#9c3; 480 +
  481 + .freebie-tag {
  482 + background: #9c3;
463 } 483 }
464 - .advance-buy-tag{  
465 - background: #fc1264; 484 +
  485 + .advance-buy-tag {
  486 + background: #fc1264;
466 } 487 }
467 - .virtual-good-tag{  
468 - background: red; 488 +
  489 + .virtual-good-tag {
  490 + background: red;
469 } 491 }
470 - .presall-tag{  
471 - background: blue; 492 +
  493 + .presall-tag {
  494 + background: blue;
472 } 495 }
473 } 496 }
@@ -73,4 +73,4 @@ @@ -73,4 +73,4 @@
73 background-position: 0 -23px; 73 background-position: 0 -23px;
74 } 74 }
75 } 75 }
76 -}  
  76 +}
1 .orders-me-page { 1 .orders-me-page {
2 -  
3 .orders .title { 2 .orders .title {
4 padding-left: 130px; 3 padding-left: 130px;
5 line-height: 40px; 4 line-height: 40px;
@@ -13,4 +12,4 @@ @@ -13,4 +12,4 @@
13 margin: 0 10px; 12 margin: 0 10px;
14 border: 1px #e6e6e6 solid; 13 border: 1px #e6e6e6 solid;
15 } 14 }
16 -}  
  15 +}
1 -.qrcode{  
2 - font-size: 12px;  
3 - .subtitle{  
4 - margin: 20px 10px 0 10px;  
5 - font-weight: 400;  
6 - border: 1px solid #e6e6e6;  
7 - height: 21px;  
8 - line-height: 21px;  
9 - padding-left: 23px;  
10 - background: resolve(img/home/complaint-icon.png?v155a619c678) no-repeat 5px 5px #efefef;  
11 - h2{  
12 - float:left;  
13 - color: #333;  
14 - }  
15 - .pad20{  
16 - padding:0 20px;  
17 - }  
18 - .r-go{  
19 - color:#3f919f;  
20 - float:right;  
21 - padding-right:20px;  
22 - }  
23 - }  
24 - .question{  
25 - line-height:20px;  
26 - .main-info{  
27 - padding: 20px 10px 10px;  
28 - p.tro{  
29 - padding-left:20px ;  
30 - }  
31 - }  
32 - .p1{  
33 - padding-bottom: 10px;  
34 - font-weight: 700;  
35 - padding-left: 25px;  
36 - background: resolve(img/home/qr-tip.png) no-repeat -22px 3px;  
37 - }  
38 - .gray{  
39 - color:#8e8e8e;  
40 - padding-left: 25px;  
41 - background: resolve(img/home/qr-tip.png) no-repeat 3px -24px;  
42 - }  
43 - }  
44 - .qrcmain{  
45 - width:500px;  
46 - margin:0 auto;  
47 - margin-top:40px;  
48 - position:relative;  
49 - .qrcim{  
50 - width:153px;  
51 - margin:0 auto;  
52 - img{  
53 - display:block;  
54 - width:100%;  
55 - height:153px;  
56 - margin-bottom:20px;  
57 - }  
58 - }  
59 - .qrctxt{  
60 - height:233px;  
61 - overflow:hidden;  
62 - position:relative;  
63 - label{  
64 - width:60px;  
65 - display:inline-block;  
66 - }  
67 - li{  
68 - float:left;  
69 - line-height: 20px;  
70 - width:100%;  
71 - position: absolute;  
72 - }  
73 - }  
74 - .btn-qcode{  
75 - font-size:18px;  
76 - line-height:32px;  
77 - width:148px;  
78 - height:32px;  
79 - display:block;  
80 - text-align:center;  
81 - color:#fff;  
82 - background-color:#e30038;  
83 - margin:0 auto;  
84 - margin-top:20px;  
85 - margin-bottom:20px;  
86 - border:1px solid #e90150;  
87 - border-radius:2px;  
88 - }  
89 -  
90 - .qrcmain-switch a {  
91 - position: absolute;  
92 - top: 50%;  
93 - margin: -20px 0 0;  
94 - width: 40px;  
95 - height: 40px;  
96 - line-height: 40px;  
97 - text-align: center;  
98 - z-index: 2;  
99 - color: #fff;  
100 - background: #000;  
101 - }  
102 - .qrcmain-switch a.prev{  
103 - left: 0;  
104 - },  
105 - .qrcmain-switch a.next{  
106 - right: 0;  
107 - }  
108 - .qrcmain-switch a.gray{  
109 - opacity:0.55;  
110 - }  
111 - }  
112 -}  
  1 +.qrcode {
  2 + font-size: 12px;
  3 +
  4 + .subtitle {
  5 + margin: 20px 10px 0 10px;
  6 + font-weight: 400;
  7 + border: 1px solid #e6e6e6;
  8 + height: 21px;
  9 + line-height: 21px;
  10 + padding-left: 23px;
  11 + background: resolve(img/home/complaint-icon.png?v155a619c678) no-repeat 5px 5px #efefef;
  12 +
  13 + h2 {
  14 + float: left;
  15 + color: #333;
  16 + }
  17 +
  18 + .pad20 {
  19 + padding: 0 20px;
  20 + }
  21 +
  22 + .r-go {
  23 + color: #3f919f;
  24 + float: right;
  25 + padding-right: 20px;
  26 + }
  27 + }
  28 +
  29 + .question {
  30 + line-height: 20px;
  31 +
  32 + .main-info {
  33 + padding: 20px 10px 10px;
  34 +
  35 + p.tro {
  36 + padding-left: 20px;
  37 + }
  38 + }
  39 +
  40 + .p1 {
  41 + padding-bottom: 10px;
  42 + font-weight: 700;
  43 + padding-left: 25px;
  44 + background: resolve(img/home/qr-tip.png) no-repeat -22px 3px;
  45 + }
  46 +
  47 + .gray {
  48 + color: #8e8e8e;
  49 + padding-left: 25px;
  50 + background: resolve(img/home/qr-tip.png) no-repeat 3px -24px;
  51 + }
  52 + }
  53 +
  54 + .qrcmain {
  55 + width: 500px;
  56 + margin: 0 auto;
  57 + margin-top: 40px;
  58 + position: relative;
  59 +
  60 + .qrcim {
  61 + width: 153px;
  62 + margin: 0 auto;
  63 +
  64 + img {
  65 + display: block;
  66 + width: 100%;
  67 + height: 153px;
  68 + margin-bottom: 20px;
  69 + }
  70 + }
  71 +
  72 + .qrctxt {
  73 + height: 233px;
  74 + overflow: hidden;
  75 + position: relative;
  76 +
  77 + label {
  78 + width: 60px;
  79 + display: inline-block;
  80 + }
  81 +
  82 + li {
  83 + float: left;
  84 + line-height: 20px;
  85 + width: 100%;
  86 + position: absolute;
  87 + }
  88 + }
  89 +
  90 + .btn-qcode {
  91 + font-size: 18px;
  92 + line-height: 32px;
  93 + width: 148px;
  94 + height: 32px;
  95 + display: block;
  96 + text-align: center;
  97 + color: #fff;
  98 + background-color: #e30038;
  99 + margin: 0 auto;
  100 + margin-top: 20px;
  101 + margin-bottom: 20px;
  102 + border: 1px solid #e90150;
  103 + border-radius: 2px;
  104 + }
  105 +
  106 + .qrcmain-switch a {
  107 + position: absolute;
  108 + top: 50%;
  109 + margin: -20px 0 0;
  110 + width: 40px;
  111 + height: 40px;
  112 + line-height: 40px;
  113 + text-align: center;
  114 + z-index: 2;
  115 + color: #fff;
  116 + background: #000;
  117 + }
  118 +
  119 + .qrcmain-switch a.prev {
  120 + left: 0;
  121 + }
  122 +
  123 + .qrcmain-switch a.next {
  124 + right: 0;
  125 + }
  126 +
  127 + .qrcmain-switch a.gray {
  128 + opacity: 0.55;
  129 + }
  130 + }
  131 +}