Authored by lijing

合并feature/usercenter分支,修改个人中心地址数,为你优选不显示

... ... @@ -62,10 +62,10 @@ app.use(session({
domain: 'yohobuy.com',
httpOnly: false
},
// store: new MemcachedStore({
// hosts: config.memcache.session,
// prefix: 'yohobuy_session:'
// })
store: new MemcachedStore({
hosts: config.memcache.session,
prefix: 'yohobuy_session:'
})
}));
app.use((req, res, next) => {
... ...
... ... @@ -9,7 +9,6 @@
const mRoot = '../models';
const headerModel = require('../../../doraemon/models/header'); // 头部model
const addressModel = require(`${mRoot}/address`); // 地址管理 MODEL
const helpers = global.yoho.helpers;
/**
* 地址管理页面
... ... @@ -43,7 +42,7 @@ exports.address = (req, res, next) => {
*/
exports.addressAct = (req, res, next) => {
addressModel.address({
id: req.params.id,
id: decodeURIComponent(req.params.id),
uid: req.user.uid
}).then(result => {
let responseData = {
... ... @@ -68,8 +67,8 @@ exports.addressAct = (req, res, next) => {
exports.saveAddress = (req, res, next) => {
/* 没有用户,返回 */
if (!req.body.uid) {
res.json({
if (!req.user.uid) {
return res.json({
code: 400,
message: '用户不可用'
});
... ... @@ -77,7 +76,7 @@ exports.saveAddress = (req, res, next) => {
/* 没有地址信息,返回 */
if (!req.body.address) {
res.json({
return res.json({
code: 401,
message: '请输入可用的地址信息'
});
... ... @@ -85,7 +84,7 @@ exports.saveAddress = (req, res, next) => {
/* 没有地区码,返回 */
if (!req.body.area_code) {
res.json({
return res.json({
code: 402,
message: '地区码不可用'
});
... ... @@ -93,19 +92,19 @@ exports.saveAddress = (req, res, next) => {
/* 没有收件人姓名,返回 */
if (!req.body.consignee) {
res.json({
return res.json({
code: 403,
message: '请输入收件人姓名'
});
}
/* 邮箱地址校验不通过,返回 */
if (!req.body.email || !helpers.verifyEmail(req.body.email)) {
res.json({
code: 404,
message: '输入的邮箱地址格式不正确'
});
}
// if (!req.body.email || !helpers.verifyEmail(req.body.email)) {
// return res.json({
// code: 404,
// message: '输入的邮箱地址格式不正确'
// });
// }
addressModel.saveAddress({
uid: req.user.uid,
... ... @@ -164,7 +163,7 @@ exports.addressModify = (req, res, next) => {
pageHeader: headerModel.setNav({
navTitle: '选择地址'
}),
title: '选择地址'
title: '选择地址',
};
addressModel.address({
... ... @@ -188,6 +187,6 @@ exports.locationList = (req, res, next) => {
addressModel.locationList({
uid: req.user.uid
}).then(result => {
res.render('address/location-list', result);
res.render('address/location-list', Object.assign(result, {layout: false}));
}).catch(next);
};
... ...
... ... @@ -10,6 +10,7 @@ const favoriteModel = require('../models/favorite');
const headerModel = require('../../../doraemon/models/header'); // 头部model
const favorite = (req, res) => {
let tab = req.query.tab || '';
res.render('favorite', {
module: 'home',
... ... @@ -20,19 +21,19 @@ const favorite = (req, res) => {
title: '我的收藏',
pageFooter: true,
favorite: {
productUrl: 'm.yohobuy.com',
brandUrl: 'm.yohobuy.com'
productUrl: '//m.yohobuy.com/product/new',
brandUrl: '//m.yohobuy.com/product/new',
brandTab: tab === 'brand' ? true : false // 是否为品牌收藏页
}
});
};
let favProduct = (req, res, next) => {
let uid = req.user.uid;
let uid = req.user.uid || 12696231;
let page = req.query.page || 1;
let limit = 10;
favoriteModel.favProduct(uid, page, limit).then((result) => {
if (typeof(result.total) === 'undefined' && typeof(result.more) === 'undefined') {
res.render('favorite/favorite-product', {
layout: false,
... ... @@ -45,7 +46,7 @@ let favProduct = (req, res, next) => {
};
let favfavBrand = (req, res, next) => {
let uid = req.user.uid;
let uid = req.user.uid || 12696231;
let page = req.query.page || 1;
let limit = 10;
... ... @@ -64,7 +65,7 @@ let favfavBrand = (req, res, next) => {
};
let favoriteDelete = (req, res, next) => {
let uid = req.user.uid;
let uid = req.user.uid || 12696231;
let type = 'product';
let favId = req.body.id;
... ...
... ... @@ -18,20 +18,13 @@ const indexModel = require('../models/index');
exports.index = (req, res, next) => {
let params = {
uid: req.user.uid,
channel: req.query.channel || 1
channel: req.query.channel || 1,
udid: require('md5')(req.ip)
};
let refer = req.get('Referer') || `${global.yoho.config.siteUrl}/${req.cookies._Channel || ''}`;
let reqPath = req.baseUrl + req.path;
let backUrl = refer.indexOf(reqPath) === -1 ? refer : '';
backUrl && res.cookie('saleRefer', backUrl, {
domain: 'm.yohobuy.com'
});
backUrl = backUrl || req.cookies.saleRefer;
let headerData = headerModel.setNav({
navTitle: '个人中心',
backUrl: backUrl,
backUrl: '//m.yohobuy.com/?go=1',
});
indexModel.index(params).then(result => {
... ... @@ -140,10 +133,13 @@ exports.recordContent = (req, res, next) => {
exports.delRecord = (req, res, next) => {
let uid = req.user.uid;
let skn = req.user.skn || 0;
let skn = req.query.skn || 0;
indexModel.delRecord(uid, skn).then((result) => {
res.json(result);
res.json({
code: result.code,
message: result.message,
});
}).catch(next);
};
... ...
... ... @@ -19,7 +19,10 @@ const orderDetailData = (req, res, next) => {
module: 'home',
page: 'order-detail',
pageHeader: headerModel.setNav({
navTitle: '订单详情'
navTitle: '订单详情',
navBtn: false,
orderDetail: true,
serviceUrl: 'http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=',
}),
title: '订单详情',
pageFooter: true,
... ... @@ -41,7 +44,7 @@ const delOrder = (req, res, next) => {
// 再次购买
const readdData = (req, res, next) => {
let orderCode = req.query.order_code;
let orderCode = req.query.orderCode;
let uid = req.user.uid;
orderDetailModel.readdData(orderCode, uid).then((result) => {
... ... @@ -51,11 +54,14 @@ const readdData = (req, res, next) => {
// 取消订单
const cancelOrder = (req, res, next) => {
let orderCode = req.query.order_code;
let orderCode = req.query.id;
let uid = req.user.uid;
let reasonId = 1;
let reasonId = req.query.reasonId || 1;
let gender = req.query.gender || '1,3';
let channel = req.query.channel || 1;
let reason = req.query.reason;
orderDetailModel.cancelOrder(orderCode, uid, reasonId).then((result) => {
orderDetailModel.cancelOrder(orderCode, uid, reasonId, gender, channel, reason).then((result) => {
res.json(result);
}).catch(next);
};
... ...
... ... @@ -51,7 +51,7 @@ const favProduct = (uid, page, limit) => {
if (val.goodsId && val.cnAlphabet) {
obj = _.assign(obj, {
link: config.siteUrl + '/product/list/pro_' +
link: config.siteUrl + '/product/pro_' +
val.productId + '_' + val.goodsId + '/' +
val.cnAlphabet + '.html'
});
... ... @@ -73,13 +73,13 @@ const favProduct = (uid, page, limit) => {
if (val.marketPrice - val.salesPrice > 0) {
obj = _.assign(obj, {
discountPrice: val.salesPrice
discountPrice: '¥' + Number(val.salesPrice).toFixed(2),
});
}
if (val.priceDown > 0) {
obj = _.assign(obj, {
savePrice: '¥' + val.priceDown
savePrice: '¥' + Number(val.priceDown).toFixed(2),
});
} else {
obj = _.assign(obj, {
... ... @@ -96,7 +96,7 @@ const favProduct = (uid, page, limit) => {
obj = _.assign(obj, {
favId: val.productId,
title: val.productName,
price: '¥' + val.marketPrice,
price: '¥' + Number(val.marketPrice).toFixed(2),
invalidGoods: val.status === 0
});
... ... @@ -166,7 +166,8 @@ const favfavBrand = (uid, page, limit) => {
brandName: val.brandName,
updata: val.newProductNum,
discount: val.productDiscountNum,
brandImg: val.brandIco
brandImg: val.brandIco,
update: val.newProductNum
});
_.forEach(val.newProduct, function(data) {
... ... @@ -174,14 +175,9 @@ const favfavBrand = (uid, page, limit) => {
link: '/product/pro_' + data.productId + '_' +
data.goods[0].id + '/' + data.cnAlphabet + '.html',
imgUrl: data.defaultImages,
price: '¥' + data.marketPrice
price: '¥' + Number(data.marketPrice).toFixed(2),
discount: data.marketPrice > data.salesPrice ? '¥' + Number(data.salesPrice).toFixed(2) : false,
});
if (data.marketPrice > data.salesPrice) {
obj.productList.push({
discount: '¥' + data.salesPrice
});
}
});
resu.hasFavBrand.push(obj);
... ...
... ... @@ -10,8 +10,8 @@
const api = global.yoho.API;
const singleAPI = global.yoho.SingleAPI;
const helpers = global.yoho.helpers;
const camelCase = global.yoho.camelCase;
const _ = require('lodash');
const crypto = global.yoho.crypto;
/**
* 个人详情数据
... ... @@ -126,6 +126,12 @@ const index = (params) => {
});
}
if (result[2] && result[2].data) {
Object.assign(finalResult, {
productFavoriteTotal: result[2].data.product_favorite_total
});
}
if (result[3] && result[3].data) {
Object.assign(finalResult, {
sendCargoNum: result[3].data.send_cargo_num,
... ... @@ -134,7 +140,6 @@ const index = (params) => {
yohoCoinNum: result[3].data.yoho_coin_num,
inboxTotal: result[3].data.inbox_total,
couponNum: result[3].data.coupon_num,
productFavoriteTotal: result[3].data.product_favorite_total,
brandFavoriteTotal: result[3].data.brand_favorite_total,
productBrowse: result[3].data.product_browse
});
... ... @@ -146,7 +151,7 @@ const index = (params) => {
});
}
return camelCase(finalResult);
return finalResult;
});
};
... ... @@ -162,9 +167,16 @@ const myDetails = (uid) => {
}, {
code: 200
}).then((result) => {
result = camelCase(result);
if (result.data) {
result.data.gender = (result.data.gender === '1' ? '男' : '女');
result.data.qrcodeLink = helpers.urlFormat('/home/user/qrcode', {
token: _.get(result, 'data.uid', null) ?
crypto.encryption('yoho9646yoho9646', _.get(result, 'data.uid', null) + '') : '',
icon: _.get(result, 'data.head_ico', ''),
uname: _.get(result, 'data.nickname', ''),
vip: _.get(result, 'data.vip_info.cur_level')
});
return result.data;
// {
... ... @@ -345,7 +357,7 @@ const getGrade = (param) => {
obj = _.assign(obj, {
costOfThisYear: result[0].data.current_year_cost,
sumCost: result[0].data.current_total_cost,
allUrl: helpers.urlFormat('/home/preferential'),
allUrl: helpers.urlFormat('/home/privilege'),
costGap: upg
});
... ... @@ -386,12 +398,12 @@ const getGrade = (param) => {
* @param params
*/
const getPreferential = (uid, channel) => {
const getPreferential = (params) => {
return api.get('', {
method: 'app.passport.getPrivilege',
uid: uid,
channel: channel || 1
uid: params.uid,
channel: params.channel || 1
}, {
code: 200
}).then((result) => {
... ...
... ... @@ -14,12 +14,9 @@ const closeReasons = () => {
return api.get('', {
method: 'app.SpaceOrders.closeReasons'
}).then((result) => {
// console.log(result)
if (result && result.code === 200) {
// console.log(result)
return result.data;
} else {
// console.log('bushi 200');
return {};
}
});
... ... @@ -164,7 +161,7 @@ const orderDetailData = (uid, orderCode) => {
uid: uid,
order_code: orderCode
}).then((result) => {
// console.log(result)
if (result && result.code === 200) {
let orderDetail = camelCase(result.data);
let goods = [];
... ... @@ -197,7 +194,7 @@ const orderDetailData = (uid, orderCode) => {
}
_.forEach(orderDetail.orderGoods, function(data) {
// console.log(data);
let obj = {};
let count = +data.buyNumber;
... ... @@ -289,7 +286,6 @@ const orderDetailData = (uid, orderCode) => {
cancelReason: resons
});
// console.log(orderDetail);
return orderDetail;
});
... ... @@ -317,16 +313,32 @@ const readdData = (orderCode, uid) => {
method: 'app.Shopping.readd',
uid: uid,
order_code: orderCode
}).then((result) => {
if (result && result.code === 200) {
result.message = '商品已重新加入购物车';
} else if (result.code === '400') {
result.message = '缺失参数';
} else {
result.message = '商品加入购物车失败';
result.datat = {};
}
return result;
});
};
// 取消订单
const cancelOrder = (orderCode, uid, reasonId) => {
const cancelOrder = (orderCode, uid, reasonId, gender, channel, reason) => {
return api.get('', {
method: 'app.SpaceOrders.close',
uid: uid,
order_code: orderCode,
reasonId: reasonId
reasonId: reasonId,
reasons: reason,
gender: gender,
yh_channel: channel
});
};
... ...
... ... @@ -6,7 +6,7 @@
</p>
<p class="info">
<span class="dollar"></span>
YOHO
有货
</p>
<a href="/home/currencyDetail" class="more">查看明细</a>
{{#if notice}}
... ...
... ... @@ -2,27 +2,27 @@
{{# yohoCoin}}
<p class="coin-num">
<em>{{coinNum}}</em>
YOHO
有货
</p>
<section>
<p class="title">YOHO</p>
<p class="title">有货</p>
<hr>
<p>
<span class="sub-title">YOHO币是什么,有什么用?</span>
YOHO币是有货商城的虚拟货币,与现金比例1:1,没有任何使用期限,YOHO币可直接用于有货线上购物使用,不可转让他人,不可兑换为现金。使用YOHO币支付的金额不可计入消费金额。
<span class="sub-title">有货币是什么,有什么用?</span>
有货币是有货商城的虚拟货币,与现金比例1:1,没有任何使用期限,有货币可直接用于有货线上购物使用,不可转让他人,不可兑换为现金。使用有货币支付的金额不可计入消费金额。
</p>
<p>
<span class="sub-title">如何查看自己的YOHO币?</span>
<span class="path">登录 > 个人中心 > 我的YOHO币</span>
<span class="sub-title">如何查看自己的有货币?</span>
<span class="path">登录 > 个人中心 > 我的有货币</span>
</p>
<p>
<span class="sub-title">YOHO币如何购买支付?</span>
在购买支付页面输入您要使用的YOHO币金额即可完成支付
<span class="sub-title">有货币如何购买支付?</span>
在购买支付页面输入您要使用的有货币金额即可完成支付
<div class="remark">
<span></span>
如果超过了我们约定的期限的非正常退货,我们将会于您的退款金额中直接扣除赠送YOHO币等值的金额。赠送给您的YOHO币还将保留在您的账户中,敬请谅解。
如果超过了我们约定的期限的非正常退货,我们将会于您的退款金额中直接扣除赠送有货币等值的金额。赠送给您的有货币还将保留在您的账户中,敬请谅解。
</div>
</p>
</section>
... ...
... ... @@ -5,7 +5,7 @@
<span class="user-avatar" data-avatar="{{image headIco 128 128}}"></span>
<span class="username">{{profileName}}</span>
{{#vipInfo}}
<span class="vip-icon vip-{{curLevel}}"></span>
<span class="vip-icon vip-{{cur_level}}"></span>
{{/vipInfo}}
<div class="iconfont more-icon tap-hightlight">&#xe604;</div>
</a>
... ... @@ -90,7 +90,7 @@
</a>
<a class="list-item" href="/home/mycurrency">
<span class="iconfont icon">&#xe635;</span>
YOHO
有货
<span class="iconfont num">{{yohoCoinNum}} &#xe604;</span>
</a>
</div>
... ... @@ -125,5 +125,5 @@
{{> common/suspend-cart}}
</div>
{{> download_app}}
{{> download-app}}
... ...
<div class="massage-page yoho-page">
{{#info}}
<div class="massage-main">
<h6>{{title}}</h6>
<h6>{{title}}Yoho!Buy有货 | 潮流购物逛不停</h6>
<span>{{sender}} 发送于{{time}}</span>
</div>
{{#if text}}
... ...
... ... @@ -56,7 +56,7 @@
<section class="goods block">
{{#if isJit}}
{{> me/order/jit-more}}
{{> jit-more}}
{{/if}}
{{# goods}}
{{> order/good}}
... ...
<div class="personal-details yoho-page">
<ul>
<li><span>头像</span><span><i class="head-portrait user-avatar" data-avatar="{{image headIco 128 128}}"></i></span></li>
<li><span>头像</span><span><i class="head-portrait user-avatar" data-avatar="{{image head_ico 128 128}}"></i></span></li>
<li><span>昵称</span><span>{{ nickname }}</span></li>
<li><span>性别</span><span>{{ gender }}</span></li>
<li><span>生日</span><span>{{ birthday }}</span></li>
<li class="tap-hightlight"><span>会员等级</span>
<span>
<a href="grade" class="grade">
{{# vipInfo}}
<i class="vip-icon vip-{{ curLevel}}"></i>
{{/ vipInfo}}
{{# vip_info}}
<i class="vip-icon vip-{{cur_level}}"></i>
{{/ vip_info}}
<span class="iconfont">&#xe604;</span>
</a>
</span>
</li>
<li>
<span>我的二维码</span>
<span>
<a href="{{qrcodeLink}}" class="grade">
<span class="iconfont">&#xe64d;</span>
<span class="iconfont">&#xe604;</span>
</a>
</span>
... ...
<section class="block more-jit">
<a href="{{jitDetailUrl}}">
<div class="more-jit">
<span>商品需要分仓调拨</span>
<span class="iconfont icon-right-arrow">&#xe614;</span>
</div>
</a>
</section>
... ...
'use strict';
const mRoot = '../models';
const headerModel = require('../../../doraemon/models/header'); // 头部model
// const mRoot = '../models';
// const headerModel = require('../../../doraemon/models/header'); // 头部model
const mayLikeModel = require('../models/recom');
let genders = {
boys: '1,3',
girl: '2,3'
};
let channels = {
boys: 1,
girl: 2,
kids: 3,
lifestyle: 4
};
/**
* 你可能喜欢的BOYS或GIRLS的商品列表
* 你可能喜欢的BOYS或GIRLS或创意生活的商品列表
*/
const mayLike = (req, res, next) => {
let uid = req.user.uid || 8039759;
let uid = req.user.uid;
let page = req.query.page || 1;
let limit = 50;
let gender = req.query.gender || '2,3';
let gender = req.query.gender || req.cookies._Channel && genders[req.cookies._Channel] || '1,3';
let udid = req.sessionID || 'yoho';
let recPos = 100009;
let channel = req.query.channel || 1;
let channel = req.query.channel || req.cookies._Channel && channels[req.cookies._Channel] || 1;
if (channel === 1 || channel === 2) {
mayLikeModel.mayLike(uid, page, limit, gender, udid, recPos, channel).then((result) => {
res.render('recom/goods', Object.assign({
layout: false
}, result));
res.render('recom/goods', {
layout: false,
list: result
});
}).catch(next);
} else if (channel === 4) {
recPos = 100001;
gender = '1,3';
mayLikeModel.mayLike(uid, page, limit, gender, udid, recPos, channel).then((result) => {
res.render('recom/goods', Object.assign({
layout: false
}, result));
res.render('recom/goods', {
layout: false,
list: result
});
}).catch(next);
}
};
... ... @@ -41,13 +58,14 @@ const mayLike = (req, res, next) => {
const mayLikeKids = (req, res, next) => {
let page = req.body.page || 1;
let limit = 50;
let channel = req.query.channel || 3;
let channel = req.query.channel || req.cookies._Channel && channels[req.cookies._Channel] || 3;
mayLikeModel.mayLikeKids(page, limit, channel).then((result) => {
res.render('recom/goods', Object.assign({
layout: false
}, result));
res.render('recom/goods', {
layout: false,
list: result
});
}).catch(next);
};
... ...
... ... @@ -17,6 +17,9 @@ const formatProduct = (list) => {
val.isSoonSoldOut = val.isSoonSoldOut === 'Y';
}
val.url = '/product/pro_' + val.productId + '_' + val.goodsList[0].goodsId +
'/' + val.cnAlphabet + '.html';
tag.push({
isNew: val.isNew === 'Y',
isDiscount: val.isDiscount === 'Y',
... ... @@ -25,7 +28,6 @@ const formatProduct = (list) => {
isAdvance: val.isAdvance === 'Y'
});
_.forEach(tag, function(data) {
if (data.isDiscount === true && val.isSoonSoldOut === true) {
... ... @@ -53,20 +55,24 @@ const mayLike = (uid, page, limit, gender, udid, recPos, channel) => {
limit: limit,
udid: udid,
rec_pos: recPos,
yh_channel: channel
yh_channel: channel,
gender: gender
}).then((result) => {
if (result && result.code === 200) {
if (page > result.data.page_total) {
return;
}
if (result.data.product_list) {
if (result.data.page_total && page <= result.data.page_total) {
if (result.data.product_list) {
return formatProduct(result.data.product_list);
return formatProduct(result.data.product_list);
} else {
return false;
}
} else {
return false;
}
} else {
logger.error('mayLike cood 不是 200');
}
... ...
... ... @@ -41,7 +41,6 @@ router.get('/detail/comments', detail.comments); // 商品评价
router.post('/detail/consultsubmit', auth, detail.consultsubmit); // 商品咨询提交接口
router.get('/recom/maylike', recom.mayLike);// 你可能喜欢
router.get('/recom/maylikekids', recom.mayLikeKids); // 潮童你可能喜欢
// router.get('/recom/maylikelife', recom.mayLikeLifestyle); // 创意生活你可能喜欢
router.post('/detail/consultupvote', detail.consultUpvoteOrUseful); // 商品咨询提交接口
router.post('/detail/consultuseful', detail.consultUpvoteOrUseful); // 商品咨询提交接口
... ...
{{#if this}} {{!-- 剔除值为false的项 --}}
{{#each this}}
{{#if list}} {{!-- 剔除值为false的项 --}}
{{!-- {{log this}} --}}
{{#list}}
<div class="good-info {{#if @root.saleViplogin}}sale-vip{{/if}}" data-id="{{productSkn}}" data-bp-id="guang_goodList_{{productName}}_false">
<div class="tag-container clearfix">
{{#each tags}}
... ... @@ -61,5 +62,5 @@
{{/if}}
</div>
</div>
{{/each}}
{{/list}}
{{/if}}
... ...
{{#showDownloadApp}}
<div class="float-layer hide" id="float-layer-app">
<div class="float-layer" id="float-layer-app">
<div class="float-layer-left">
<span class="yoho-icon iconfont">&#xe60d;</span>
<p>新用户送惊喜礼包</p>
... ... @@ -8,7 +8,7 @@
<i class="close-icon iconfont">&#xe623;</i>
<div class="circle-rightbottom"></div>
</a>
<a href="javascript:void(0);" id="float-layer-btn">
<a href="http://a.app.qq.com/o/simple.jsp?pkgname=com.yoho" id="float-layer-btn">
立即下载
</a>
</div>
... ...
... ... @@ -33,6 +33,9 @@
{{channel}} <span class="iconfont">&#xe616;</span>
</span>
{{/saleNav}}
{{#orderDetail}}
<a href="{{serviceUrl}}" target="_blank" class="iconfont nav-home">&#xe63c;</a>
{{/orderDetail}}
</header>
{{#if saleNav.list}}
<div class="sale-nav-select">
... ...
No preview for this file type
... ... @@ -2,7 +2,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Wed Jun 29 15:45:02 2016
Created by FontForge 20120731 at Tue Sep 27 17:51:00 2016
By admin
</metadata>
<defs>
... ... @@ -19,7 +19,7 @@ Created by FontForge 20120731 at Wed Jun 29 15:45:02 2016
bbox="-0.75 -128 3943 896.75"
underline-thickness="50"
underline-position="-100"
unicode-range="U+0078-E64C"
unicode-range="U+0078-E64D"
/>
<missing-glyph horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
... ... @@ -283,5 +283,8 @@ q3 -7 7.5 -12.5t8 -10t8.5 -10t7.5 -8t8 -7t7.5 -6.5t7.5 -6.5t6.5 -4.5q11 -9 16.5
d="M911 725h-242v123q0 21 -13.5 34.5t-34.5 13.5h-246q-20 0 -33.5 -13.5t-13.5 -34.5v-123h-246q-21 0 -34.5 -13.5t-13.5 -34t13.5 -34t34.5 -13.5h293h243h293q21 0 34.5 13.5t13.5 34t-13.5 34t-34.5 13.5zM423 725v72h147v-72h-147zM765 579q-21 0 -34.5 -14
t-13.5 -34v-560h-441v560q0 20 -13.5 34t-34 14t-34 -14t-13.5 -34v-611q0 -21 13.5 -34.5t34.5 -13.5h536q20 0 33.5 13.5t13.5 34.5v611q3 20 -11.5 34t-35.5 14zM447 67v389q0 20 -13.5 33.5t-34 13.5t-34 -13.5t-13.5 -33.5v-389q0 -21 13.5 -34.5t34 -13.5t34 13.5
t13.5 34.5zM645 67v389q0 20 -13.5 33.5t-34.5 13.5q-20 0 -35.5 -13.5t-15.5 -33.5v-389q0 -21 13.5 -34.5t34.5 -13.5t36 13.5t15 34.5z" />
<glyph glyph-name="uniE64D" unicode="&#xe64d;"
d="M562 224h109v-111h-109v111zM889 224h109v-111h-109v111zM562 113h109v-110h-109v110zM438 458h-438v438h438v-438zM111 569h216v216h-216v-216zM1000 458h-438v438h438v-438zM673 569h216v216h-216v-216zM438 -106h-438v438h438v-438zM111 5h216v216h-216v-216zM561 335
h222v-111h-222v111zM889 334h109v-111h-109v111zM780 113h109v-111h-109v111zM562 2h218v-110h-218v110zM889 2h109v-110h-109v110z" />
</font>
</defs></svg>
... ...
No preview for this file type
No preview for this file type
... ... @@ -187,7 +187,7 @@ gulp.task('webpack-dev-server', () => {
new WebpackDevServer(webpack(devConfig), {
contentBase: '.',
publicPath: '//localhost:5001/',
publicPath: 'http://localhost:5001/',
hot: true,
stats: {
colors: true
... ...
... ... @@ -125,8 +125,10 @@ module.exports = function(specificGender) {
page: page + 1
},
success: function(data) {
// console.log(data)
var PRDID = [];
if (data === ' ') {
console.log(data);
searching = false;
loading.hideLoadingMask();
... ...
/**
* 底部JS
* @author: liangzhifeng<zhifeng.liang@yoho.cn>
* @date: 2015/10/26
*/
var $ = require('yoho-jquery'),
Hammer = require('yoho-hammer');
var floatLayerBtnHammer;
require('../common');
/**
* 获取url参数
*/
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return window.unescape(r[2]);
}
return null;
}
function downLoadApp() {
var appUrl = 'http://www.yohoshow.com/about/index/yohobuyqr/';
var clickedAt = new Date();
setTimeout(function() {
var mkt = getQueryString('mkt_code');
if ((new Date()) - clickedAt < 2000) {
if (mkt) {
appUrl += '?union_type=' + mkt;
}
window.location = appUrl;
}
}, 500);
}
$('#float-layer-close').on('touchend', function(e) {
$('#float-layer-app').hide();
window.setCookie('_float-layer-app', 'id490655927',
{
domain: '.yohobuy.com'
});
window.setCookie('_float-layer-app-close', 1,
{
domain: '.yohobuy.com',
expires: 1
});
return false;
});
if ($('#float-layer-btn') && $('#float-layer-btn')[0]) {
floatLayerBtnHammer = new Hammer($('#float-layer-btn')[0]);
floatLayerBtnHammer.on('tap', function(e) {
downLoadApp('bottom');
e.srcEvent.stopPropagation();
});
// if (typeof window.cookie === 'function' && !window.cookie('_float-layer-app')) {
// $('#float-layer-app').show();
// } else {
// $('#float-layer-app').hide();
// }
}
... ...
require('./recommend-for-you-user-center');
require('../common/footer');
/**
* 个人中心首页
* @author: bikai<kai.bi@yoho.cn>
... ...
... ... @@ -53,3 +53,76 @@
width: 100%;
}
}
.float-layer {
height: 128px;
background: rgba(68, 68, 68, 0.95);
position: fixed;
width: 100%;
bottom: 0;
left: 0;
z-index: 9999;
padding: 20px 0;
.float-layer-left {
padding-left: 44px;
overflow: hidden;
float: left;
img {
height: 44px;
float: left;
margin-right: 20px;
}
p {
float: left;
font-size: 32px;
height: 88px;
line-height: 88px;
color: white;
}
.yoho-icon {
float: left;
margin-right: 10px;
font-size: 44px;
line-height: 88px;
width: 88px;
height: 88px;
text-align: center;
color: #fff;
border-radius: 20px;
background-image: linear-gradient(#323232, #0f0f0f);
}
}
}
#float-layer-close {
position: absolute;
left: 0;
top: 0;
width: 100px;
height: 100px;
.close-icon {
position: absolute;
left: 0;
top: 0;
color: #C0C0C0;
z-index: 2;
}
}
#float-layer-btn {
position: absolute;
top: 50%;
right: 15px;
font-size: 32px;
padding: 0 10px;
height: 54px;
line-height: 54px;
background: white;
border-radius: 5px;
margin-top: -26px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0.5);
&:link,
&:visited,
&:hover,
&:actived {
color: #000;
}
}
\ No newline at end of file
... ...