Authored by 郭成尧

banner-resource

1 const _ = require('lodash'); 1 const _ = require('lodash');
  2 +const co = Promise.coroutine;
2 const RegService = require('../models/reg-service'); 3 const RegService = require('../models/reg-service');
  4 +const LoginNewModel = require('../models/login-new');
3 5
4 class Login { 6 class Login {
5 /** 7 /**
6 * 登录页面 8 * 登录页面
7 */ 9 */
8 - loginPage(req, res) { 10 + loginPage(req, res, next) {
9 // 是否关闭账号登录 11 // 是否关闭账号登录
10 let closePassword = _.get(req.app.locals.wap, 'close.passwordLogin', false); 12 let closePassword = _.get(req.app.locals.wap, 'close.passwordLogin', false);
11 13
@@ -15,10 +17,16 @@ class Login { @@ -15,10 +17,16 @@ class Login {
15 if (req.session.captchaValidCount == null) { // eslint-disable-line 17 if (req.session.captchaValidCount == null) { // eslint-disable-line
16 req.session.captchaValidCount = 5; 18 req.session.captchaValidCount = 5;
17 } 19 }
  20 +
  21 + co(function* () {
  22 + let bannerData = yield req.ctx(LoginNewModel).getTopBanner();
  23 + let banner = _.get(bannerData, 'result.data[0].data.list[0]', '');
  24 +
18 res.render('login/login-new', { 25 res.render('login/login-new', {
19 module: 'passport', 26 module: 'passport',
20 page: 'login-new', 27 page: 'login-new',
21 width750: true, 28 width750: true,
  29 + banner: banner,
22 captchaShow: req.yoho.captchaShow, 30 captchaShow: req.yoho.captchaShow,
23 backUrl: 'javascript:history.go(-1)', // eslint-disable-line 31 backUrl: 'javascript:history.go(-1)', // eslint-disable-line
24 smsLoginUrl: '/passport/sms_login', 32 smsLoginUrl: '/passport/sms_login',
@@ -31,6 +39,7 @@ class Login { @@ -31,6 +39,7 @@ class Login {
31 phoneRetriveUrl: '/passport/back/mobile', // 通过手机号找回密码的URL链接 39 phoneRetriveUrl: '/passport/back/mobile', // 通过手机号找回密码的URL链接
32 emailRetriveUrl: '/passport/back/email', // 通过邮箱找回密码的URL链接 40 emailRetriveUrl: '/passport/back/email', // 通过邮箱找回密码的URL链接
33 }); 41 });
  42 + })().catch(next);
34 } 43 }
35 44
36 /** 45 /**
  1 +const serviceApi = global.yoho.ServiceAPI;
  2 +const resources = {
  3 + yohobuy: 'b7a510c2ece17d205a8f17b06ee8d2af',
  4 + yohomars: '',
  5 + yohocoffee: ''
  6 +};
  7 +
1 class LoginNewModel extends global.yoho.BaseModel { 8 class LoginNewModel extends global.yoho.BaseModel {
  9 + constructor(ctx) {
  10 + super(ctx);
  11 + }
  12 +
  13 + /**
  14 + * 调用接口获取登录页顶部的 Banner
  15 + */
  16 + getTopBanner(which) {
  17 + let resource = resources.yohobuy;
  18 +
  19 + if (which) {
  20 + resource = resources[which];
  21 + }
2 22
  23 + return serviceApi.get('operations/api/v5/resource/get', {
  24 + content_code: resource
  25 + });
  26 + }
3 } 27 }
4 28
5 module.exports = LoginNewModel; 29 module.exports = LoginNewModel;
1 <div class="login-new-page"> 1 <div class="login-new-page">
2 <div class="banner-box"> 2 <div class="banner-box">
3 - <img src="http:////7xnswo.com1.z0.glb.clouddn.com/uploads/2016-12-17/355de419d7a926a460e10dc652625b5e.jpg  
4 -?imageView2/1/w/750/h/400" alt=""> 3 + <img src="{{banner}}">
5 <div class="banner-info"> 4 <div class="banner-info">
6 <div class="top-operation-bar"> 5 <div class="top-operation-bar">
7 <button class="close iconfont">&#xe72d;</button> 6 <button class="close iconfont">&#xe72d;</button>
@@ -13,10 +12,12 @@ @@ -13,10 +12,12 @@
13 </div> 12 </div>
14 <div class="login-form"> 13 <div class="login-form">
15 <div class="form-group username"> 14 <div class="form-group username">
16 - <label for="username" class="iconfont">&#xe727;</label><input type="text" name="username" placeholder="请输入手机号/邮箱"><i id="clearUsrname" class="iconfont clear">&#xe72a;</i> 15 + <label for="username" class="iconfont">&#xe727;</label><input type="text" name="username" placeholder="请输入手机号/邮箱">
  16 + <i id="clearUsrname" class="iconfont clear">&#xe72a;</i>
17 </div> 17 </div>
18 <div class="form-group password"> 18 <div class="form-group password">
19 - <label for="password" class="iconfont">&#xe723;</label><input type="password" name="password" placeholder="请输入密码"><span id="passwordEyeIcon" class="eye"><i class="iconfont eye-close">&#xe716;</i><i class="iconfont eye-open hide">&#xe714;</i></span> 19 + <label for="password" class="iconfont">&#xe723;</label><input type="password" name="password" placeholder="请输入密码">
  20 + <span id="passwordEyeIcon" class="eye"><i class="iconfont eye-close">&#xe716;</i><i class="iconfont eye-open hide">&#xe714;</i></span>
20 </div> 21 </div>
21 <div class="other-info"> 22 <div class="other-info">
22 <a href="{{internationalUrl}}">海外账号</a> 23 <a href="{{internationalUrl}}">海外账号</a>