Showing
19 changed files
with
878 additions
and
784 deletions
@@ -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>编 号:</label>{{ticket_code}}</p> | 28 | <p><label>编 号:</label>{{ticket_code}}</p> |
29 | + {{#if isgroup}} | ||
29 | <p><label>座 位 号:</label>{{seat_no}}</p> | 30 | <p><label>座 位 号:</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; |
@@ -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; |
@@ -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 | } |
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 | +} |
-
Please register or login to post a comment