Authored by htoooth

remove backemail

Showing 97 changed files with 633 additions and 1737 deletions
... ... @@ -7,11 +7,11 @@
<li>
<a data-key="{{key}}" href="{{brandDomain}}" target="_blank">
<img class="lazy" data-original="{{image brandIco 270 190}}">
<span>{{brandNameEn}}</span>
<span>{{#if brandName}}{{brandName}}{{else}}{{brandNameEn}}{{/if}}</span>
</a>
</li>
{{/each}}
</ul>
</dd>
</dl>
{{/each}}
\ No newline at end of file
{{/each}}
... ...
{{# classicBrands}}
<div class="brand-img-box {{#if right}}right{{/if}} {{#if bottomSpace}}mb10{{/if}}">
<a href="{{url}}" target="_blank">
{{# big}}
<img class="big-img" src="{{image src 565 340}}" alt="big-img">
<a href="{{url}}" target="_blank">
<img class="big-img" src="{{image src 565 340}}">
</a>
{{/ big}}
{{# small}}
<img class="small-img {{#if @first}}first{{/if}}" src="{{image src 281 285}}" alt="big-img">
{{/ small}}
<a href="{{url}}" target="_blank">
<img class="small-img {{#if @first}}first{{/if}}" src="{{image src 281 285}}">
</a>
{{/ small}}
</div>
{{/ classicBrands}}
... ...
... ... @@ -247,6 +247,8 @@ const _processContentData = (list) => {
list = list || [];
list = camelCase(list);
// console.log(list)
let contentData = {
contents: []
};
... ... @@ -284,12 +286,12 @@ const _processContentData = (list) => {
let idList = '';
let recoLength = '';
let related = {
relatedReco: [],
relatedGroup: []
};
_.forEach(contentData.contents, function(value) {
if (value.goods) {
... ... @@ -319,7 +321,6 @@ const _processContentData = (list) => {
return _getRelatedData(idList).then((result) => {
if (related.relatedReco) {
_.forEach(related.relatedReco, function(data, key) {
... ... @@ -362,11 +363,16 @@ const _processContentData = (list) => {
});
}
return related;
if (related.relatedReco.length === 0 && related.relatedGroup.length === 0) {
return null;
} else {
return related;
}
}).then((result) => {
}).then(() => {
contentData.contents.push({
related: related
related: result
});
return contentData;
... ...
... ... @@ -10,7 +10,7 @@
<div class="article-author">
<div class="author-avatar">
<a href="{{authorUrl}}" target="_blank">
<img src="{{avatar}}">
<img class="lazy" data-original="{{avatar}}">
</a>
</div>
</div>
... ... @@ -30,14 +30,14 @@
{{# singleImage}}
<span class="article-pic">
{{# data}}
<img src="{{image src 930 660 1}}">
<img class="lazy" data-original="{{image src 930 660 1}}">
{{/ data}}
</span>
{{/ singleImage}}
{{# smallPic}}
<span class="article-pictwo">
{{# data}}
<img src="{{image src 460 660 1}}">
{{# data}}
<img class="lazy" data-original="{{image src 460 660 1}}">
{{/ data}}
</span>
{{/ smallPic}}
... ... @@ -49,8 +49,9 @@
</div>
{{/ text}}
{{# related}}
<div class="related-reco related-collo">
{{# related}}
<div class="related-reco related-collo">
<div class="article-title">
<div class="title-line"></div>
<div class="text-center">
... ... @@ -66,7 +67,7 @@
{{/ relatedReco}}
</div>
</div>
<div class="related-reco related-group">
<div class="article-title">
<div class="title-line"></div>
... ... @@ -76,7 +77,7 @@
</div>
</div>
</div>
<div class="related-groups">
<div class="related-goods goods">
{{# relatedGroup}}
... ... @@ -84,8 +85,8 @@
{{/ relatedGroup}}
</div>
</div>
<span class="btn-left iconfont hide">&#xe62c;</span>
<span class="btn-right iconfont">&#xe629;</span>
<span class="btn-left iconfont hide">&#xe64e;</span>
<span class="btn-right iconfont">&#xe64c;</span>
</div>
{{/ related}}
{{/ content}}
... ... @@ -100,7 +101,7 @@
</div>
</div>
</div>
<div class="brands">
{{# brands}}
<div class="brand">
... ... @@ -150,22 +151,22 @@
</div>
<div class="chapter">
<p class="chapter-right">
<span>下一篇</span><br>
{{# nextArticle}}
<a href="{{href}}">{{nextChapter}}</a>
{{/ nextArticle}}
</p>
<p class="chapter-left">
<span>上一篇</span><br>
{{# perArticle}}
<a href="{{href}}">{{lastChapter}}</a>
{{/ perArticle}}
</p>
</div>
<div id="comment-area" class="comment-area">
... ...
... ... @@ -6,6 +6,8 @@
'use strict';
const mcHandler = require('../models/menu-crumb-handler');
const addressModel = require('../models/address');
const crypto = global.yoho.crypto;
const config = global.yoho.config;
const _ = require('lodash');
... ... @@ -31,6 +33,7 @@ const index = (req, res, next) => {
for (let i = 0; i < length; i++) {
resultData[i].default = resultData[i].is_default === 'Y';
resultData[i].mobile = resultData[i].mobile.replace(reg, '$1****$2');
resultData[i].id = crypto.encryption(config.crypto.common, resultData[i].address_id + '');
}
resultData.leftLength = 7 - length;
resultData.length = length;
... ... @@ -56,6 +59,10 @@ const getAddressList = (req, res, next) => {
if (result.data) {
let defaultAd = _.find(result.data, o => o.is_default === 'Y');
_.each(result.data, (d) => {
d.address_id = crypto.encryption(config.crypto.common, d.address_id + '');
});
defaultAd && (defaultAd.focus = true);
}
res.send(result);
... ... @@ -76,6 +83,10 @@ const addAddressData = (req, res, next) => {
let isInit = req.body.init && req.body.init === 'true'; // 是否是初始地址
addressModel.addAddressData(uid, address, areaCode, consignee, mobile, phone, isInit).then(result => {
if (result.data && result.data.address_id) {
result.data.aid = crypto.encryption(config.crypto.common, result.data.address_id + '');
}
res.send(result);
}).catch(next);
};
... ... @@ -84,7 +95,7 @@ const addAddressData = (req, res, next) => {
* 修改地址
*/
const updateAddressData = (req, res, next) => {
let id = req.body.id;
let id = crypto.decrypt(config.crypto.common, req.body.id);
let uid = req.user.uid;
let address = req.body.address;
let areaCode = req.body.area_code;
... ... @@ -101,7 +112,7 @@ const updateAddressData = (req, res, next) => {
* 删除地址
*/
const delAddressData = (req, res, next) => {
let id = req.body.id;
let id = crypto.decrypt(config.crypto.common, req.body.id);
let uid = req.user.uid;
addressModel.delAddressData(id, uid).then(result => {
... ... @@ -113,7 +124,7 @@ const delAddressData = (req, res, next) => {
* 设置默认地址
*/
const setDefaultAddress = (req, res) => {
let id = req.body.id;
let id = crypto.decrypt(config.crypto.common, req.body.id);
let uid = req.user.uid;
_setDefault(id, uid).then(result => {
... ...
/**
* [个人中心]yoho
* [个人中心]有货
* @author: jiangmin
* @date: 2016/07/11
*/
... ... @@ -36,7 +36,7 @@ const getDate = (time)=> {
};
/**
* yoho币页面加载
* 有货币页面加载
*/
const index = (req, res, next) => {
let uid = req.user.uid;
... ... @@ -67,12 +67,12 @@ const index = (req, res, next) => {
page: 'currency',
isMe: true,
content: {
nav: mcHandler.getMeCrumb('我的YOHO币'),
navigation: mcHandler.getSideMenu('我的YOHO币'),
nav: mcHandler.getMeCrumb('我的有货币'),
navigation: mcHandler.getSideMenu('我的有货币'),
banner: thumb,
currency: true,
tabs: result[0].list.tabs,
title: '我的YOHO币',
title: '我的有货币',
currentYear: new Date().getFullYear(),
data: result[0].list.coinList,
paginationOpts: result[0].list.paginationOpts,
... ...
/**
* [个人中心]YOHO
* [个人中心]有货
* @author: jiangmin
* @date: 2016/07/11
*/
... ... @@ -10,7 +10,7 @@ const api = global.yoho.API;
const camelCase = global.yoho.camelCase;
/**
* yoho币列表数据
* 有货币列表数据
* @param uid
* @param page
* @param queryType
... ... @@ -87,7 +87,7 @@ const yohoCoinList = (uid, page, queryType, beginTime) => {
};
/**
* yoho币总数
* 有货币总数
* @returns {*}
*/
const yohoCoinTotal = (uid)=> {
... ... @@ -96,12 +96,16 @@ const yohoCoinTotal = (uid)=> {
method: 'app.yoho.yohocoin',
uid: uid
}).then(result => {
if (!result.data.yohocoin_num || result.data.yohocoin_num === '') {
result.data.yohocoin_num = 0;
}
return result;
});
};
/**
* 获取yoho币相关数据
* 获取有货币相关数据
* @param uid
* @param page
* @param queryType
... ...
... ... @@ -57,7 +57,7 @@ const navigation = [
},
{
link: url('/me/currency'),
name: '我的YOHO币'
name: '我的有货币'
},
{
link: url('/me/setting'),
... ...
... ... @@ -345,7 +345,7 @@ const _setRefundDetailData = (data) => {
mode: data.return_amount_mode_name,
account: data.return_amount_mode_name,
amount: data.return_amount_total,
coin: data.use_yoho_coin_num
coin: parseInt(data.return_yoho_coin * 100, 10)
};
break;
case 91:
... ... @@ -669,7 +669,7 @@ const _setExchangeDetailData = (data) => {
list.reminder = true;
list.inDoor = true;
list.auditSuccess = true;
list.view = `//www.yohoblk.com/me/order/detail/?orderCode=${data.orderCode}`;
list.view = `/me/order/detail/?orderCode=${data.orderCode}`;
}
break;
... ... @@ -677,7 +677,7 @@ const _setExchangeDetailData = (data) => {
if (data.deliveryTpyeName === '寄回换货') {
list.takeGoods = true;
list.auditSuccess = true;
list.view = `//www.yohoblk.com/me/order/detail/?orderCode=${data.orderCode}`;
list.view = `/me/order/detail/?orderCode=${data.orderCode}`;
} else {
list.takeGoods = true;
}
... ... @@ -687,14 +687,14 @@ const _setExchangeDetailData = (data) => {
send: true,
doubt: true,
auditSuccess: true,
view: `//www.yohoblk.com/me/order/detail/?orderCode=${data.orderCode}`
view: `/me/order/detail/?orderCode=${data.orderCode}`
});
break;
case 40:
Object.assign(list, {
finish: true,
auditSuccess: true,
view: `//www.yohoblk.com/me/order/detail/?orderCode=${data.orderCode}`
view: `/me/order/detail/?orderCode=${data.orderCode}`
});
break;
case 91:
... ...
... ... @@ -56,7 +56,7 @@ router.post('/address/default', auth, address.setDefaultAddress);
router.get('/address/list', address.getAddressList); // 获取地址列表
router.get('/address/areas/:areaId', address.getAddressData);
// 个人中心首页/YOHO
// 个人中心首页/有货
router.get('/currency', auth, currency.index);
// 个人中心首页/个人设置
... ...
... ... @@ -15,9 +15,11 @@
{{/each}}
</ul>
{{#banner}}
<a href="{{url}}">
{{#if banner}}
<a href="{{url}}" target="_blank">
<img class="banner-img" data-original="{{image banner 150 120}}">
</a>
{{/if}}
{{/banner}}
</div>
... ... @@ -58,7 +60,7 @@
{{> message}}
{{/if}}
{{!-- 我的YOHO币 --}}
{{!-- 我的有货币 --}}
{{#if currency}}
{{> currency}}
{{/if}}
... ...
... ... @@ -11,7 +11,7 @@
</tr>
{{#each data}}
<tr class="table-body ">
<input type="hidden" id="tr_{{address_id}}" value="{{address_id}}">
<input type="hidden" id="tr_{{address_id}}" value="{{address_id}}" data-addressid="{{id}}" data-default="{{default}}">
<input type="hidden" id="tr_{{area_code}}" value="{{area_code}}">
<td class="width-name">{{consignee}}</td>
<td class="width-address">{{area}}</td>
... ... @@ -21,15 +21,15 @@
<td class="width-opearte">
<div>
<span class="blue opreation update-address" data-id="{{address_id}}">修改</span>
<em class="op-sep {{#if default}}hide{{/if}}">|</em>
<span class="blue opreation del-address {{#if default}}hide{{/if}}" data-id="{{address_id}}">删除</span>
<span class="blue opreation del-address {{#if default}}hide{{/if}}" data-id="{{id}}">删除</span>
{{#if default}}
<span class="btn set-default opreation current-default" data-id={{address_id}}>默认地址</span>
<span class="btn set-default opreation current-default" data-id={{id}}>默认地址</span>
{{else}}
<span class="btn set-default opreation set" data-id={{address_id}}>设为默认</span>
<span class="btn set-default opreation set" data-id={{id}}>设为默认</span>
{{/if}}
</div>
</td>
</tr>
... ...
... ... @@ -26,15 +26,15 @@
<div class="brand-products slide-container">
{{#if noNewProduct}}
<p class="no-product-info">
暂无新品, 去<a href="/{{siteUrl}}/brand" target="_blank">名牌频道</a>看看吧
暂无新品, 去<a href="/product/shop/{{brandDomain}}{{#if shopId}}?shopId={{shopId}}{{/if}}" target="_blank">名牌频道</a>看看吧
</p>
{{^}}
<div class="slide-switch">
<a class="prev" href="javascript:;">
<span class="iconfont">&#xe62c;</span>
<span class="iconfont">&#xe64e;</span>
</a>
<a class="next" href="javascript:;">
<span class="iconfont">&#xe629;</span>
<span class="iconfont">&#xe64c;</span>
</a>
</div>
<div class="slide-wrap">
... ...
... ... @@ -26,8 +26,8 @@
{{/stateText}}
</div>
<div class="desc">
<div class="brand-name">{{brandName}}</div>
<div class="product-name">{{productName}}</div>
<div class="brand-name"><a href="{{url}}" target="_blank">{{brandName}}</a></div>
<div class="product-name"><a href="{{url}}" target="_blank">{{productName}}</a></div>
<p class="price">¥{{round salesPrice 2}}</p>
</div>
... ...
... ... @@ -5,7 +5,7 @@
</div>
<div class="inline-block total-yohocoin">
<div class="current-yohocoin">目前可用YOHO币:<span class="blue">{{num.yohocoin_num}}</span></div>
<div class="current-yohocoin">目前可用有货币:<span class="blue">{{num.yohocoin_num}}</span></div>
<div class="left-yohocoin">{{currentYear}}年12月31日即将过期:<span class="blue">{{num.nearExpCoinNum}}</span></div>
</div>
</div>
... ...
... ... @@ -152,6 +152,7 @@
<p class="subtext">color: {{newColorName}}<br>size: {{newSizeName}}</p>
</div>
</div>
{{#if evidenceImages}}
<div class="reason-info">
<span>问题描述:{{remark}}</span>
<div class="reason-img">照片凭证:
... ... @@ -164,6 +165,7 @@
</div>
</div>
</div>
{{/if}}
{{/ goodsList}}
</div>
</div>
... ...
... ... @@ -20,13 +20,13 @@
</div>
<div class="common-column special-border operation">
{{#if showPayButton}}
<div class="pay-operation">
<div class="pay-operation {{#unless showLeftTime}}marginhack{{/unless}}">
{{#if isOnlinePaid}}
{{#if showLeftTime}}
<span class="iconfont hide-when-invalid">&#xe606;</span><p class="left-time" data-left="{{payLefttime}}"></p>
{{/if}}
<a href="{{payUrl}}">
<span class="btn red hide-when-invalid">立即付款</span>
<span class="btn red hide-when-invalid ">立即付款</span>
</a>
{{/if}}
<p class="subtext cancel">取消订单</p>
... ... @@ -46,7 +46,7 @@
<p class="subtext express">物流进度</p>
{{/if}}
<div class="buy-operation{{#unless showBuyBtn}} hide{{/unless}}">
<div class="buy-operation{{#unless showBuyBtn}} hide{{/unless}}{{#unless showPayButton}} marginhack{{/unless}}">
<span class="btn black buy">再次购买</span>
<p class="subtext delete">删除订单</p>
</div>
... ...
... ... @@ -54,7 +54,7 @@
<p>退款方式:{{mode}}<em>由于银行内部处理流程的差异,储蓄卡需要3-7个工作日到账,信用卡需要7-15个工作日到账</em></p>
<p class="tip-pad-top">退款账户:{{account}}</p>
<p class="tip-pad-top">金额:¥{{amount}}</p>
<p class="tip-pad-top">有货币:{{coin}}</p>
<p class="tip-pad-top">有货币:{{coin}}</p>
</div>
{{/ refundSure}}
... ...
... ... @@ -13,7 +13,7 @@
<span class="red">*</span>上传凭证:
</div>
<div class="left right-content">
<div class="img-upload">
<div class="img-upload" data-good-index="{{@index}}">
<span class="iconfont">&#xe61f;</span>
</div>
<span class="img-up-tip">0/4</span>
... ...
... ... @@ -4,7 +4,7 @@
<div class="progress-text">
<span>验证身份</span>
<span class="gray-text">{{proTitle}}</span>
<span class="gray-text">完成</span>
<span class="gray-text pad66">完成</span>
</div>
{{#if isShowMobile}}
<div class="operate1">
... ...
... ... @@ -41,16 +41,16 @@
<a class="blue operation" href="{{stepUrl}}/bindMobile">绑定</a>
{{/if}}
</div>
<div class="form-group">
<label class="label-name">邮箱:</label>
{{#if info.verify_email}}
<input class="input no-edit" value="{{info.mobile}}">
{{!-- <a class="blue operation" href="{{stepUrl}}/modifyEmail">修改</a> --}}
{{else}}
<input class="input" type="text" placeholder="请绑定邮箱" disabled>
{{!-- <a class="blue operation" href="{{stepUrl}}/bindEmail">立即绑定</a> --}}
{{/if}}
</div>
<!--<div class="form-group">-->
<!--<label class="label-name">邮箱:</label>-->
<!--{{#if info.verify_email}}-->
<!--<input class="input no-edit" value="{{info.email}}">-->
<!--{{!-- <a class="blue operation" href="{{stepUrl}}/modifyEmail">修改</a> --}}-->
<!--{{else}}-->
<!--<input class="input" type="text" placeholder="请绑定邮箱" disabled>-->
<!--{{!-- <a class="blue operation" href="{{stepUrl}}/bindEmail">立即绑定</a> --}}-->
<!--{{/if}}-->
<!--</div>-->
<div class="form-group">
<label class="label-name">出生日期:</label>
{{#date}}
... ...
{{> sign-header}}
<div class="login-page passport-page">
{{# passport}}
<form method='post' onsubmit='return false;'>
<ul>
<li class="clearfix">
<div class="title">登录 SIGN IN</div>
... ... @@ -51,8 +52,7 @@
<span class="iconfont">&#xe61d;</span>
<em></em>
</span>
<a id="login-btn" class="btn login-btn">登录</a>
<input type="submit" id="login-btn" class="btn login-btn" value='登录'/>
</li>
<li class="clearfix">
... ... @@ -93,5 +93,6 @@
</li>
</ul>
<input id="country-code-hide" name="countryCode" type="hidden" value="{{countryCode}}">
</form>
{{/ passport}}
</div>
... ...
... ... @@ -21,6 +21,7 @@ const shop = {
let domain = req.params.domain;
let uid = req.user.uid;
let shopId = req.query.shopId;
let channel = req.query._Channel || req.cookies._Channel || 'men';
let data = {
module: 'product',
page: 'shop',
... ... @@ -30,7 +31,7 @@ const shop = {
ShopData.getShopHeadData(domain, shopId, uid).then(result => {
if (result.shopId) {
let nav = [DataHelper.getChannelNav()];
let nav = [DataHelper.getChannelNav(channel)];
nav.push({
name: result.name
... ... @@ -39,6 +40,7 @@ const shop = {
nav: nav
};
data.banner = result;
data.title = result.name;
data.shopId = result.shopId;
data.mores = {};
result.menus.forEach(m => {
... ... @@ -104,11 +106,12 @@ const shop = {
q.order = q.order || 's_n_desc';
q.page = parseInt(q.page || 1, 10);
q.yh_channel = channel;
// q.yh_channel = channel;
ShopData.getShopHeadData(domain, shopId, uid).then(result => {
data.banner = result;
data.title = result.name;
if (data.banner.banner) {
data.banner.banner = data.banner.banner.split('?')[0];
}
... ...
... ... @@ -441,7 +441,7 @@ const helpers = {
goodsId = goodsList[0].goodsId;
goodsList.forEach(o => {
o.url = `${config.siteUrl}/product/pro_${g.productId}_${o.goodsId}/${o.cnAlphabet}.html`;
o.url = `${config.siteUrl}/product/pro_${g.productId}_${o.goodsId}/${g.cnAlphabet}.html`;
if (q && q.color && q.color === o.colorId) {
defaultImages = o.imagesUrl;
}
... ...
... ... @@ -184,7 +184,7 @@ const setSeoInfo = (goodInfo, nav) => {
* @return { Object } 面包屑导航数据
*/
const setPathNav = (data, name, channel) => {
let resData = {};
let navs = [];
let link = channel,
gender;
... ... @@ -203,16 +203,16 @@ const setPathNav = (data, name, channel) => {
break;
}
navs.push({
link: helpers.urlFormat(`/${link}`),
name: `${_.toUpper(channel)}首页`
});
if (!_.isEmpty(data)) {
let navs = [{
link: helpers.urlFormat(`/${link}`),
name: `${_.toUpper(channel)}首页`
}];
let sort = _.get(data, 'sort[0]', {});
if (!_.isEmpty(sort)) {
navs.push({
link: helpers.urlFormat('/list', {
link: helpers.urlFormat('/product/list', {
msort: sort.sort_id,
gender: gender
}),
... ... @@ -222,27 +222,27 @@ const setPathNav = (data, name, channel) => {
// 二级分类
if (!_.isEmpty(sort.sub)) {
let subSort = sort.sub[0];
navs.push({
link: helpers.urlFormat('/list', {
link: helpers.urlFormat('/product/list', {
msort: sort.sort_id,
misort: sort.sub.sort_id,
misort: subSort.sort_id,
gender: gender
}),
name: sort.sub[0].sort_name,
pathTitle: sort.sub[0].sort_name
name: subSort.sort_name,
pathTitle: subSort.sort_name
});
}
}
navs.push({
name: name,
pathTitle: name
});
resData.nav = navs;
}
return resData;
navs.push({
name: name,
pathTitle: name
});
return {nav: navs};
};
/**
... ... @@ -379,6 +379,11 @@ const setProductData = base => {
// 默认第一张图片
if (!_.has(resData, 'img')) {
resData.img = value.colorImage;
// 只有一张图时不显示左右切换箭头
if (thumbs.length < 2) {
resData.btnsHide = true;
}
}
// 商品尺码列表
... ...
... ... @@ -123,6 +123,7 @@ const ShopService = {
getShopHeadData(domain, shopId, uid) {
return co(function*() {
let info = {};
let favType = 'brand';
if (shopId) {
info.shopId = shopId;
... ... @@ -157,6 +158,7 @@ const ShopService = {
}
info.resources = resources;
info.menus = shopMenu(domain, resources.navigationBar);
favType = 'shop';
}
if (info.brandId) {
let brandInfo = yield BrandService.getBrandInfo(info.brandId, uid);
... ... @@ -165,9 +167,13 @@ const ShopService = {
// info.info = brandInfo.brandIntro;
info.btnName = '品牌介绍';
if (!info.isFavorite && brandInfo.isFavorite === 'Y') {
favType = 'brand';
}
info.isFavorite = info.isFavorite || (brandInfo.isFavorite === 'Y');
info.banner = info.banner || info.brandBanner;
}
info.favType = favType;
return info;
})();
}
... ...
... ... @@ -11,9 +11,9 @@
<div class="thumbs left clearfix">
<div class="thumb-show right">
<img id="main-thumb" src="{{image img 482 643}}" style="display: block;">
<div class="check-btns">
<span class="iconfont pre-thumb">&#xe62c;</span>
<span class="iconfont next-thumb">&#xe629;</span>
<div class="check-btns{{#if btnsHide}} hide{{/if}}">
<span class="iconfont pre-thumb">&#xe64e;</span>
<span class="iconfont next-thumb">&#xe64c;</span>
</div>
</div>
<div class="thumb-list hide">
... ... @@ -167,8 +167,8 @@
<div class="info-block">
<div class="block-title">
<label class="title-wrapper">
<span class="en">{{titleEn}}</span><br>
<span class="cn">{{titleCn}}</span>
<div class="en">{{titleEn}}</div>
<div class="cn">{{titleCn}}</div>
</label>
</div>
<div class="intro-block">
... ... @@ -193,8 +193,8 @@
<div class="info-block">
<div class="block-title">
<label class="title-wrapper">
<span class="en">{{titleEn}}</span><br>
<span class="cn">{{titleCn}}</span>
<div class="en">{{titleEn}}</div>
<div class="cn">{{titleCn}}</div>
</label>
</div>
<div class="des-wrapper">
... ... @@ -202,7 +202,7 @@
{{# basic}}
<li>
<label class="title">{{key}}<span></span></label>
: {{value}}
<span class="info">{{value}}</span>
</li>
{{/ basic}}
</ul>
... ... @@ -211,7 +211,7 @@
{{# comfort}}
<li>
<label class="title">{{name}}<span></span></label>
: <span class="min-des">{{minDes}}</span>
<span class="min-des info">{{minDes}}</span>
{{# blocks}}
<span class="comfort-block{{#if cur}} cur{{/if}}"></span>
{{/ blocks}}
... ... @@ -228,8 +228,8 @@
<div class="info-block">
<div class="block-title">
<label class="title-wrapper">
<span class="en">{{titleEn}}</span><br>
<span class="cn">{{titleCn}}</span>
<div class="en">{{titleEn}}</div>
<div class="cn">{{titleCn}}</div>
</label>
</div>
{{#if detail}}
... ... @@ -266,8 +266,8 @@
<div class="info-block">
<div class="block-title">
<label class="title-wrapper">
<span class="en">{{titleEn}}</span><br>
<span class="cn">{{titleCn}}</span>
<div class="en">{{titleEn}}</div>
<div class="cn">{{titleCn}}</div>
</label>
</div>
<div class="size-info" data-img="{{sizeImage}}">
... ... @@ -293,8 +293,8 @@
<div class="info-block">
<div class="block-title">
<label class="title-wrapper">
<span class="en">{{titleEn}}</span><br>
<span class="cn">{{titleCn}}</span>
<div class="en">{{titleEn}}</div>
<div class="cn">{{titleCn}}</div>
</label>
</div>
<div class="detail-content">{{{content}}}</div>
... ... @@ -303,4 +303,4 @@
</div>
</div>
{{/ content}}
</div>
\ No newline at end of file
</div>
... ...
... ... @@ -115,8 +115,8 @@
{{#each editorial}}
<div class="editorial-info">
<a href="{{url}}" target="_blank">
<img class="lazy thumb" alt="{{title}}" data-original="{{image src 368 340}}" width="368"
height="340" style="display: block;">
<img class="lazy thumb" alt="{{title}}" data-original="{{image src 368 240 2}}" width="368"
height="240" style="display: block;">
</a>
<div class="desc">
<a class="name" href="{{url}}" target="_blank">{{title}}</a>
... ...
{{# banner}}
<div class="brand-banner" data-brand="{{brandId}}" data-shop="{{shopId}}">
<div class="brand-banner" data-brand="{{brandId}}" data-shop="{{shopId}}" data-type="{{favType}}">
<div class="brand-img" style="height:150px; background: url('{{image banner 1150 150}}')"></div>
{{#if showShopName}}
... ... @@ -8,7 +8,7 @@
<p class="opts">
<a id="brand-info">
<i class="iconfont">&#xe631;</i>
<i class="iconfont">&#xe64f;</i>
{{btnName}}
</a>
... ...
<div class="yoho-list-empty">
<div class="tip-search">
<span class="iconfont">&#xe647;</span>
<div class="tip-search-img"></div>
</div>
<p class="tip-cn">抱歉! 未找到{{#if query}}与"<span>{{query}}</span>"{{/if}}相关商品</p>
... ...
... ... @@ -11,6 +11,8 @@ const orderModel = require('../models/order');
const _ = require('lodash');
const helper = global.yoho.helpers;
const crypto = global.yoho.crypto;
const config = global.yoho.config;
// 结算页面
const index = (req, res, next) => {
... ... @@ -21,10 +23,7 @@ const index = (req, res, next) => {
// 设置头部路径索引focus
data.bcNavFocus = 2;
// 构造诡异的配送方式数据【显示普通快递的文字,确用顺丰发货和顺丰的快递费】
data.delivery_way = _.concat(_.assign(_.find(data.delivery_way, {delivery_way_id: 2}), {
delivery_way_name: '普通快递'
}));
data.delivery_way = _.concat(_.find(data.delivery_way, {delivery_way_id: 1}));
// 发票抬头
data.invoices.invoiceTitle = [
... ... @@ -93,6 +92,8 @@ const orderSub = (req, res, next) => {
message: '配送地址不能为空'
});
return;
} else {
other.address_id = crypto.decrypt(config.crypto.common, other.address_id);
}
orderModel.submit(req.user.uid, other).then(result => {
... ...
... ... @@ -88,7 +88,7 @@ const index = uid => {
* @param number uid user id
* @param number $deliveryWay 配送方式,1表示普通快递,2表示顺丰速运
* @param int $paymentType 支付方式,1表示在线支付,2表示货到付款
* @param number $yohoCoin 使用的YOHO币数量
* @param number $yohoCoin 使用的有货币数量
* */
const _computeApi = (uid, deliveryWay, paymentType, yohoCoin) => api.get('', {
method: 'app.Shopping.compute',
... ... @@ -105,12 +105,12 @@ const _computeApi = (uid, deliveryWay, paymentType, yohoCoin) => api.get('', {
*/
const compute = (uid, yohoCoin) => {
// 目前仅支持普通快递和在线支付
let deliveryWay = 2;
let deliveryWay = 1;
let paymentType = 1;
let coin;
// YOHO币稀释
// 有货币稀释
if (yohoCoin) {
coin = yohoCoin / 100;
}
... ... @@ -166,7 +166,7 @@ const submit = (uid, other) => {
Object.assign(theOther, other, {
delivery_time: 2, // 平时和周末都送货
delivery_way: 2, // blk统一为顺丰
delivery_way: 1, // blk统一为普通垮堤
payment_id: 1, // 支付宝
payment_type: 1, // 在线支付
use_yoho_coin: other.use_yoho_coin / 100 // 有货币稀释
... ...
<div class="fregit-remark">
<span>免运费</span>
满399免运费
</div>
<div class="cart-statement">
<div class="actions">
<div class="action">
... ...
... ... @@ -8,7 +8,6 @@
const isProduction = process.env.NODE_ENV === 'production';
const isTest = process.env.NODE_ENV === 'test';
const isUseOneapm = process.env.USE_ONEAPM === 'true';
module.exports = {
app: 'web',
... ... @@ -23,10 +22,10 @@ module.exports = {
},
cookieDomain: 'yohoblk.com',
domains: {
singleApi: 'http://192.168.102.31:8092/brower',
api: 'http://api-test1.yohops.com:9999/',
service: 'http://service-test1.yohops.com:9999/',
search: 'http://192.168.102.216:8080/yohosearch/'
singleApi: 'http://single.yoho.cn/',
api: 'http://api.yoho.yohoops.org/',
service: 'http://service.yoho.yohoops.org/',
search: 'http://search.yohoops.org/yohosearch/'
},
useOneapm: false,
useCache: false,
... ... @@ -37,6 +36,17 @@ module.exports = {
timeout: 1000,
retries: 0
},
interfaceShunt: {
useInterfaceShunt: false,
tencentServers: {
api: ['123.206.1.98', '123.206.2.80'],
service: ['123.206.1.98', '123.206.2.80']
},
awsServers: {
api: 'app-java-168863769.cn-north-1.elb.amazonaws.com.cn',
service: 'service-yoho-579825100.cn-north-1.elb.amazonaws.com.cn'
}
},
loggers: {
infoFile: {
name: 'info',
... ... @@ -48,8 +58,7 @@ module.exports = {
name: 'error',
level: 'error',
filename: 'logs/error.log',
handleExceptions: true,
maxFiles: 7
handleExceptions: true
},
udp: { // send by udp
measurement: 'yohoblk_pc_log',
... ... @@ -101,20 +110,31 @@ if (isProduction) {
session: ['memcache1.yohoops.org:12111', 'memcache2.yohoops.org:12111', 'memcache3.yohoops.org:12111'],
timeout: 3000
},
useOneapm: isUseOneapm,
useOneapm: true,
useCache: true,
pay: {
serviceNotify: 'http://service.yoho.cn/'
},
interfaceShunt: {
useInterfaceShunt: false,
tencentServers: {
api: ['123.206.1.98', '123.206.2.80'],
service: ['123.206.1.98', '123.206.2.80']
},
awsServers: {
api: 'app-java-168863769.cn-north-1.elb.amazonaws.com.cn',
service: 'service-yoho-579825100.cn-north-1.elb.amazonaws.com.cn'
}
}
});
} else if (isTest) {
Object.assign(module.exports, {
appName: 'www.yohoblk.com for test',
domains: {
singleApi: process.env.TEST_SINGLEAPI || 'http://192.168.102.31:8092/brower',
api: process.env.TEST_API || 'http://testapi.yoho.cn:28078/',
service: process.env.TEST_SERVICE || 'http://testservice.yoho.cn:28077/',
search: process.env.TEST_SEARCH || 'http://192.168.102.216:8080/yohosearch/'
singleApi: 'http://192.168.102.31:8092/',
api: 'http://testapi.yoho.cn:28078/',
service: 'http://testservice.yoho.cn:28077/',
search: 'http://192.168.102.216:8080/yohosearch/'
},
useOneapm: true,
useCache: true,
... ...
... ... @@ -47,7 +47,7 @@ exports.createPagination = function(pagination, options) {
var template;
if (!pagination) {
if (!pagination || pagination.pageTotal === 1) {
return '';
}
... ...
... ... @@ -20,7 +20,7 @@
<a href="{{../siteUrl}}/me">{{userName}}</a>
<a href="{{../siteUrl}}/passport/logout">[退出]</a>
{{^}}
<a href="{{../siteUrl}}/passport/login">登录</a> |
<a href="{{../siteUrl}}/passport/login">登录</a> |
<a href="{{../siteUrl}}/passport/reg">注册</a>
{{/if}}
</li>
... ... @@ -46,7 +46,7 @@
</a>
<div class="mini-bag-box sub-wrapper bag-empty">
<div class="bag-goods">
<dl class="mini-goods-list"></dl>
<div class="mini-goods-list-wrap nano"><div class="nano-content"><dl class="mini-goods-list"></dl></div></div>
<div class="go-bag-btn">
<a href="{{../siteUrl}}/shopping/cart">去购物车结算</a>
</div>
... ...
... ... @@ -35,14 +35,14 @@
<dt>
<a href="{{link}}">{{name}}</a>
{{#if hot}}
<span class="hot"></span>
<span class="hot iconfont">&#xe650;</span>
{{/if}}
</dt>
{{^}}
<dd>
<a href="{{link}}">{{name}}</a>
{{#if hot}}
<span class="hot"></span>
<span class="hot iconfont">&#xe650;</span>
{{/if}}
</dd>
{{/if}}
... ...
No preview for this file type
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 Aug 17 17:32:05 2016
Created by FontForge 20120731 at Tue Aug 23 17:49:33 2016
By admin
</metadata>
<defs>
... ... @@ -16,10 +16,10 @@ Created by FontForge 20120731 at Wed Aug 17 17:32:05 2016
ascent="896"
descent="-128"
x-height="792"
bbox="0 -224 1303 896.303"
bbox="0 -224 1506 896.303"
underline-thickness="50"
underline-position="-100"
unicode-range="U+0078-E64D"
unicode-range="U+0078-E650"
/>
<missing-glyph horiz-adv-x="374"
d="M34 0v682h272v-682h-272zM68 34h204v614h-204v-614z" />
... ... @@ -108,9 +108,9 @@ q0 56 -31 105h363q-30 -49 -30 -105q0 -82 58 -140t140 -58t140 58t58 140q0 56 -31
t74 -31t31 -74z" />
<glyph glyph-name="uniE61B" unicode="&#xe61b;"
d="M0 -128v1024h1024v-1024h-1024zM512 704q-133 0 -226.5 -93.5t-93.5 -226.5t93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5t-93.5 226.5t-226.5 93.5z" />
<glyph glyph-name="uniE61C" unicode="&#xe61c;" horiz-adv-x="1093"
d="M1092 225v171q0 101 -39.5 193.5t-106.5 159.5t-160 107t-194 40h-92q-101 0 -193.5 -40t-159.5 -107t-107 -159.5t-40 -193.5v-173v-317q0 -14 10 -24t24 -10h175q15 0 24.5 10t9.5 24v317q0 15 -9.5 24.5t-24.5 9.5h-128v116q0 88 34 168t92 137.5t138 92t168 34.5h67
q87 0 167 -34.5t138 -92t92 -137.5t34 -168v-113h-129q-15 0 -24.5 -10t-9.5 -25v-317q0 -14 9.5 -24t24.5 -10h175q14 0 24 10t10 24z" />
<glyph glyph-name="uniE61C" unicode="&#xe61c;" horiz-adv-x="1092"
d="M1092 226v170q0 101 -40 193.5t-107 159.5t-159.5 107t-193.5 40h-92q-101 0 -193.5 -40t-159.5 -107t-107 -159.5t-40 -193.5v-173v-317q0 -14 10 -24t24 -10h176q14 0 24 10t10 24v317q0 14 -10 24t-24 10h-130v116q0 87 34.5 167t92.5 138t138 92.5t167 34.5h67
q88 0 168 -34.5t138 -92.5t92 -138t34 -167v-113h-129q-14 0 -24 -10t-10 -24v-317q0 -14 10 -24t24 -10h176q14 0 24 10t10 24v317z" />
<glyph glyph-name="uniE61D" unicode="&#xe61d;"
d="M783 526l-45 45l-226 -226l-226 226l-45 -45l226 -226l-226 -226l45 -46l226 227l226 -227l45 46l-226 226z" />
<glyph glyph-name="uniE61E" unicode="&#xe61e;"
... ... @@ -254,9 +254,19 @@ d="M1028 -36l-93 -92l-204 203q-123 -92 -273 -92q-93 0 -178 36.5t-146 97.5t-97.5
t119 -118.5t164 -43.5t164.5 43.5t119 118.5t43.5 163.5t-43.5 163.5t-119 119t-164.5 44v0z" />
<glyph glyph-name="uniE64B" unicode="&#xe64b;"
d="M812 568l-137 328h-326l-137 -328h-206l79 -696h854l79 696h-206zM418 786h189l91 -218h-371z" />
<glyph glyph-name="uniE64C" unicode="&#xe64c;"
d="M327 -128q16 0 24 12l376 500l-373 500q-7 9 -20 11t-22 -5q-11 -6 -12.5 -19.5t6.5 -22.5l346 -464l-349 -464q-7 -9 -5 -22t11 -20q6 -6 18 -6z" />
<glyph glyph-name="uniE64D" unicode="&#xe64d;"
d="M512 886q-102 0 -195 -39.5t-160.5 -107t-107 -160.5t-39.5 -195t39.5 -195t107 -160.5t160.5 -107t195 -39.5t195 39.5t160.5 107t107 160.5t39.5 195t-39.5 195t-107 160.5t-160.5 107t-195 39.5zM521 -15q-34 0 -58.5 24t-24.5 58.5t24.5 58.5t58.5 24t58 -24t24 -58
q1 -34 -23.5 -58.5t-58.5 -24.5zM738 477q-17 -34 -67 -83q-45 -43 -60 -61q-12 -16 -17 -35q-6 -22 -6 -61l1 -31h-142v30q0 56 9 90q11 38 30 64q17 23 62 71q43 44 52 60q8 13 8 44q0 28 -20 51q-20 21 -61 21q-29 0 -48.5 -9.5t-28.5 -27.5t-12.5 -36t-3.5 -43v-30h-142
l1 31q2 72 18 111q16 40 52 73q34 31 78 46q41 14 88 14q96 0 160 -56q66 -59 66 -154q0 -43 -17 -79z" />
<glyph glyph-name="uniE64E" unicode="&#xe64e;"
d="M697 -128q-16 0 -24 12l-376 500l373 500q7 9 20 11t22 -5t11 -20t-5 -22l-346 -464l349 -467q7 -9 5 -22t-11 -20q-6 -3 -18 -3z" />
<glyph glyph-name="uniE64F" unicode="&#xe64f;"
d="M799 456l127 128v312h-51h-77h-574h-128v-445v-162v-2l421 -412l409 404v181l-415 -401l-287 283v426h574v-312h1zM671 519l-107 21l-53 101l-53 -101l-107 -21l75 -84l-14 -113l99 48l99 -48l-14 113z" />
<glyph glyph-name="uniE650" unicode="&#xe650;" horiz-adv-x="1506"
d="M885 540q-13 14 -31 22t-40 8t-39.5 -8t-30.5 -22t-20 -33t-7 -41q0 -23 7 -43t20 -33.5t30.5 -21.5t39.5 -8t39.5 8t30.5 21.5t20.5 33.5t7.5 43q0 22 -7.5 41t-19.5 33v0zM1084 896h-663q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -212v-602l261 181h823q115 0 212 56.5
t153.5 153.5t56.5 211.5t-56.5 211.5t-153.5 153.5t-212 56.5v0zM574 294h-82v142h-133v-142h-83v341h83v-129h133v129h82v-341v0zM986 392q-14 -34 -39 -57.5t-59 -37t-74 -13.5t-74 13t-59 37t-39 57.5t-14 74.5t14 74t39 56t59 35.5t74 12.5t74 -12.5t59 -35.5t39 -56
t14 -74t-14 -74zM1283 564h-97v-270h-82v270h-96v71h275v-71z" />
</font>
</defs></svg>
... ...
No preview for this file type
No preview for this file type
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 243.422 102.159" enable-background="new 0 0 243.422 102.159" xml:space="preserve">
<g id="XMLID_16_">
<path id="XMLID_2_" fill="#3B95C8" d="M56.974,1.928v70.768h18.478V76H56.974v24.231h-3.359V76H0v-3.442l53.194-70.63H56.974z
M3.92,72.695h49.694V7.298h-0.42L3.92,72.695z"/>
<path id="XMLID_5_" fill="#040000" d="M148.238,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.768-2.1,25.058-6.019,33.594
c-5.459,11.564-14.278,17.485-26.597,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.594
c0-14.044,1.959-25.196,5.879-33.595C100.364,5.783,109.323,0,121.641,0C133.96,0,142.779,5.783,148.238,17.485z M98.124,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.82,24.094,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.478-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
c-5.04-10.464-12.878-15.695-23.518-15.695C110.862,3.305,103.023,8.536,98.124,19z"/>
<path id="XMLID_8_" fill="#3B95C8" d="M224.944,1.928v70.768h18.478V76h-18.478v24.231h-3.359V76h-53.614v-3.442l53.194-70.63
H224.944z M171.891,72.695h49.694V7.298h-0.42L171.891,72.695z"/>
</g>
</svg>
... ...
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 232.923 102.159" enable-background="new 0 0 232.923 102.159" xml:space="preserve">
<g id="XMLID_27_">
<path id="XMLID_2_" fill="#3B95C8" d="M61.593,1.928v3.305H11.059L7,47.638h0.56c2.799-3.718,6.439-6.608,11.199-8.674
c4.339-1.928,8.959-2.892,13.718-2.892c9.519,0,17.218,2.754,23.097,8.398c6.16,5.921,9.239,14.181,9.239,24.783
c0,9.361-3.08,17.21-9.239,23.543c-6.159,6.195-13.998,9.362-23.657,9.362c-8.399,0-15.398-2.341-21.138-6.746
C4.34,90.456,0.7,83.572,0,74.898h3.5c0.56,7.572,3.779,13.63,9.519,18.036c5.18,3.992,11.479,6.058,18.898,6.058
c8.679,0,15.678-2.892,21.278-8.536c5.459-5.782,8.259-12.804,8.259-21.202c0-9.638-2.8-17.21-8.259-22.442
c-5.319-5.094-12.179-7.572-20.718-7.572c-5.459,0-10.499,1.377-15.258,4.13c-4.759,2.754-8.399,6.472-10.639,11.152h-3.5
L7.839,1.928H61.593z"/>
<path id="XMLID_4_" fill="#040000" d="M142.919,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.767-2.1,25.057-6.019,33.593
c-5.459,11.564-14.278,17.485-26.597,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.593
c0-14.044,1.959-25.196,5.879-33.595C95.044,5.783,104.003,0,116.322,0C128.641,0,137.459,5.783,142.919,17.485z M92.805,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.82,24.093,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.478-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
C134.8,8.536,126.961,3.305,116.322,3.305C105.543,3.305,97.704,8.536,92.805,19z"/>
<path id="XMLID_7_" fill="#040000" d="M226.904,17.485c3.919,8.536,6.019,19.688,6.019,33.595c0,13.767-2.1,25.057-6.019,33.593
c-5.46,11.564-14.278,17.485-26.598,17.485c-12.318,0-21.277-5.921-26.597-17.485c-3.92-8.536-5.879-19.688-5.879-33.593
c0-14.044,1.959-25.196,5.879-33.595C179.029,5.783,187.988,0,200.307,0C212.626,0,221.444,5.783,226.904,17.485z M176.79,19
c-3.78,7.985-5.6,18.587-5.6,32.08c0,13.354,1.819,24.093,5.6,32.079c4.899,10.464,12.738,15.695,23.517,15.695
c10.639,0,18.479-5.231,23.518-15.695c3.779-8.123,5.739-18.862,5.739-32.079c0-13.355-1.96-24.095-5.739-32.08
c-5.039-10.464-12.879-15.695-23.518-15.695C189.528,3.305,181.689,8.536,176.79,19z"/>
</g>
</svg>
... ...
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="1371.6796875" height="200" viewBox="0 0 1371.6796875 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"><![CDATA[
@font-face { font-family: ifont; src: url("//at.alicdn.com/t/font_1442373896_4754455.eot?#iefix") format("embedded-opentype"), url("//at.alicdn.com/t/font_1442373896_4754455.woff") format("woff"), url("//at.alicdn.com/t/font_1442373896_4754455.ttf") format("truetype"), url("//at.alicdn.com/t/font_1442373896_4754455.svg#ifont") format("svg"); }
]]></style></defs><g class="transform-group"><g transform="scale(0.1953125, 0.1953125)"><path d="M1346.600908 0.01535c-257.761441 0-466.72443 208.955313-466.72443 466.72443s208.955313 466.72443 466.72443 466.72443 466.72443-208.955313 466.72443-466.72443S1604.36235 0.01535 1346.600908 0.01535zM1346.600908 753.643676c-158.452982 0-286.903896-128.450914-286.903896-286.903896s128.450914-286.903896 286.903896-286.903896 286.903896 128.450914 286.903896 286.903896S1505.053891 753.643676 1346.600908 753.643676zM3515.530198 0.01535c-257.761441 0-466.72443 208.955313-466.72443 466.72443s208.955313 466.72443 466.72443 466.72443 466.72443-208.955313 466.72443-466.72443S3773.29164 0.01535 3515.530198 0.01535zM3515.530198 753.643676c-158.452982 0-286.903896-128.450914-286.903896-286.903896s128.450914-286.903896 286.903896-286.903896c158.452982 0 286.903896 128.450914 286.903896 286.903896S3673.983181 753.643676 3515.530198 753.643676zM4216.476457 0.01535l179.812859 0 0 735.683881-179.812859 0 0-735.683881ZM4396.289316 801.29086 4216.476457 801.29086 4327.320631 1024 4457.222144 1024ZM586.824806 0.01535 396.635177 331.488705 206.998156 0.01535 0 0.01535 306.414067 533.214049 306.414067 933.456535 486.234601 933.456535 486.234601 533.237074 793.884363 0.01535ZM2611.02424 347.215038 2251.122217 347.215038 2251.122217 0.01535 2071.301683 0.01535 2071.301683 933.456535 2251.122217 933.456535 2251.122217 527.027897 2611.02424 527.027897 2611.02424 933.456535 2790.837098 933.456535 2790.837098 0.01535 2611.02424 0.01535ZM5228.78724 424.672413c37.232038-43.525641 56.051447-94.979688 56.051447-153.379724 0-37.922799-8.17401-75.853273-24.2841-112.571077-15.818435-36.579652-37.615794-67.648563-65.00832-92.562023-27.215998-24.215023-60.794675-41.576159-99.707566-51.615224-36.963408-9.655309-86.690551-14.536689-147.807582-14.536689l-156.296272 0 0 933.44886 225.848266 0c62.345051 0 115.257372-5.894497 158.038526-17.721867 40.163936-12.564182 76.789639-35.167429 108.626062-66.980827 53.403529-52.175509 80.489049-116.869148 80.489049-192.31564 0-57.394594-15.304202-108.580012-45.321621-151.975176C5296.036697 469.878907 5265.658547 443.154117 5228.78724 424.672413zM5084.272287 354.398957c-18.635207 17.744892-50.179976 26.72479-93.705617 26.72479l-19.018963 0 0-212.209567 24.191998 0c39.112444 0 68.730756 8.918497 88.018348 26.479186 18.949887 17.269034 28.160038 42.83488 28.160038 78.178836C5111.918092 310.297681 5102.869118 336.730816 5084.272287 354.398957zM4971.547707 539.100871l44.891814 0c65.768157 0 111.043727 10.92938 134.62939 32.596261 23.946394 21.682232 35.57421 47.71626 35.57421 79.568034 0 32.749764-12.049948 59.029396-36.602677 80.128319-24.01547 20.093481-63.933802 30.286048-118.657453 30.286048l-59.835285 0L4971.547707 539.100871zM5805.941387 0.01535 5626.128528 0.01535 5626.128528 933.456535 6066.918707 933.456535 6066.918707 761.687209 5805.941387 761.687209ZM7022.778935 0.01535 6779.001574 0.01535 6466.148076 320.689802 6466.148076 0.01535 6286.327542 0.01535 6286.327542 933.456535 6466.148076 933.456535 6466.148076 552.678169 6468.987873 549.830698 6779.469757 933.456535 7018.657393 933.456535 6597.239233 426.176738Z" fill="#272636"></path></g></g></svg>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 173 196.5" style="enable-background:new 0 0 173 196.5;" xml:space="preserve">
<style type="text/css">
.st0{fill:#B0B0B0;}
</style>
<path id="XMLID_3_" class="st0" d="M173,196.5H0V51.6h173V196.5z M4,192.5h165V55.6H4V192.5z"/>
<path id="XMLID_2_" class="st0" d="M132.5,52.4h-4V46c0-23.2-18.9-42-42-42c-23.2,0-42,18.9-42,42v6.3h-4V46c0-25.4,20.6-46,46-46
c25.4,0,46,20.6,46,46V52.4z"/>
</svg>
... ...
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 181.9 181.9" style="enable-background:new 0 0 181.9 181.9;" xml:space="preserve">
<style type="text/css">
.st0{fill:#B0B0B0;}
</style>
<g id="XMLID_691_">
<path id="XMLID_3_" class="st0" d="M76.4,152.8C34.3,152.8,0,118.5,0,76.4C0,34.3,34.3,0,76.4,0s76.4,34.3,76.4,76.4
C152.8,118.5,118.5,152.8,76.4,152.8z M76.4,4C36.5,4,4,36.5,4,76.4c0,39.9,32.5,72.4,72.4,72.4c39.9,0,72.4-32.5,72.4-72.4
C148.8,36.5,116.3,4,76.4,4z"/>
<rect id="XMLID_2_" x="118.9" y="153" transform="matrix(0.7071 0.7071 -0.7071 0.7071 155 -64.2031)" class="st0" width="72.1" height="4"/>
</g>
</svg>
... ...
... ... @@ -15,6 +15,9 @@ var $searchWrap = $('.search-wrapper'),
var goodsTpl = require('../../tpl/common/bag-goods.hbs');
require('yoho-jquery-nanoscroller');
var delayer;
function handelProduct(data) {
... ... @@ -63,6 +66,7 @@ function refreshBag() {
$bagGoodsList.empty();
$miniBag.addClass('bag-empty');
}
$('.nano').nanoScroller({disableResize: true});
}
}
... ...
... ... @@ -6,6 +6,8 @@
var $ = require('yoho-jquery'),
dialog = require('../plugins/dialog');
var lazyLoad = require('yoho-jquery-lazyload');
var $commentArea = $('#comment-area'),
articleId = $('.detail-body').data('id');
... ... @@ -26,6 +28,8 @@ var $commentList = $commentArea.find('.comments-wrap'),
require('../plugins/share');
require('../common/header');
lazyLoad($('img'));
// require('yoho-unslider');
$('#prise-btn').click(function() {
... ... @@ -255,7 +259,6 @@ if ($('.chapter-right').find('a').text() === '') {
$('.comments-list').find('li:last').css('border-bottom', 'none');
// $('.good-info').find('.price')
$('.good-info').each(function() {
var $this = $(this).find('.price');
... ... @@ -263,3 +266,9 @@ $('.good-info').each(function() {
$this.html($this.text() + '.00');
}
});
$('.good-info').each(function(i, ele) {
if (i % 4 === 3) {
$(ele).css('margin-right', '0');
}
});
... ...
... ... @@ -38,3 +38,5 @@ if (!$cate.hasClass('big-category')) {
$('.parentId-' + parentID).show();
$('.cateId-' + parentID).find('.plus').css('background-image', 'url(\'../img/help/minus.png\')');
}
$('.center-content').css('border-top-color', '#fff');
... ...
... ... @@ -37,10 +37,12 @@ $(function() {
return {
id: $addressId.val(),
aid: $('#tr_' + $addressId.val()).data('addressid'),
consignee: $consignee.val(),
address: $address.val(),
mobile: $mobile.val(),
phone: $phone.val()
phone: $phone.val(),
default: $('#tr_' + $addressId.val()).data('default') === 'true'
};
},
... ... @@ -87,16 +89,20 @@ $(function() {
getHtml: function(info) {
var html = '<tr class="table-body">';
html += '<input type="hidden" id="tr_' + info.address_id + '" value="' + info.address_id + '">' +
html += '<input type="hidden" id="tr_' + info.address_id + '" value="' + info.address_id +
'" data-addressid="' + info.aid + '">' +
'<input type="hidden" id="tr_' + info.area_code + '" value="' + info.area_code + '">' +
'<td class=\'width-name\'>' + info.consignee + '</td>' +
'<td class=\'width-address\'>' + info.area + '</td>' +
'<td class=\'width-fulladdress\'>' + info.address + '</td>' +
'<td class=\'width-mobile\'><p>' + info.mobile + '</p><p>' + info.phone + '</p></td>' +
'<td class=\'width-opearte\'><div><span class=\'blue opreation update-address\' data-id=\'' +
info.address_id + '\'>修改</span>\n<em class="op-sep">|</em>\n' +
'<span class=\'blue opreation del-address\' data-id=\'' + info.address_id + '\'>删除</span>\n' +
'<span class=\'btn set-default opreation set\' data-id=\'' + info.address_id + '\'>设为默认</span>' +
info.address_id + '\'>修改</span>\n<em class="op-sep">|</em>\n';
if (!info.default) {
html += '<span class=\'blue opreation del-address\' data-id=\'' + info.aid + '\'>删除</span>\n';
}
html += '<span class=\'btn set-default opreation set\' data-id=\'' + info.aid + '\'>设为默认</span>' +
'</div></td>';
html += '</tr>';
return html;
... ... @@ -123,7 +129,7 @@ $(function() {
$(document).on('click', '#save-address', function() {
var info,
area,
areaInfo;
areaInfo, info2;
info = Bll.getInfo();
area = address.getAreaIds();
... ... @@ -132,8 +138,14 @@ $(function() {
info.area_code = area.split(',')[2];
info.area = areaInfo.split(',').join(' ');
info2 = $.extend({}, info);
info2.id = info.aid;
delete info2.aid;
if (Bll.check(info) === true) {
console.log(info.id);
// 新增
if (info.id === '') {
if (currentLength >= 7) {
... ... @@ -146,16 +158,8 @@ $(function() {
dataType: 'json',
data: info,
success: function(data) {
var html;
if (data.code === 200) {
html = Bll.getHtml(data.data);
currentLength++;
leftLength--;
$('tbody').append(html);
Bll.setTableTile();
Bll.clearInput();
location.reload();
} else {
new _alert(data.message).show();
}
... ... @@ -168,14 +172,10 @@ $(function() {
type: 'POST',
url: '/me/address/update',
dataType: 'json',
data: info,
data: info2,
success: function(data) {
if (data.code === 200) {
info.mobile = info.mobile.substring(0, 3) + '****' + info.mobile.substring(7, 11);
info.address_id = info.id;
$('#tr_' + info.id).parents('tr').before(Bll.getHtml(info)).remove();
Bll.clearInput();
$('.tip em').html('新增地址');
location.reload();
} else {
new _alert(data.message).show();
}
... ... @@ -187,14 +187,10 @@ $(function() {
type: 'POST',
url: '/me/address/update',
dataType: 'json',
data: info,
data: info2,
success: function(data) {
if (data.code === 200) {
info.mobile = info.mobile.substring(0, 3) + '****' + info.mobile.substring(7, 11);
info.address_id = info.id;
$('#tr_' + info.id).parents('tr').before(Bll.getHtml(info)).remove();
Bll.clearInput();
$('.tip em').html('新增地址');
location.reload();
} else {
new _alert(data.message).show();
}
... ... @@ -206,8 +202,6 @@ $(function() {
}
}
$('#address_id').val('');
});
// 修改收货地址
... ...
/**
* [个人中心]YOHO
* [个人中心]有货
* @author: jiangmin
* @date: 2016/07/11
*/
... ... @@ -66,4 +66,3 @@ $('#begin-time').on('change', function() {
beginTime = Bll.getTime(new Date(), months);
Bll.getDataList(type, page, beginTime);
});
... ...
... ... @@ -17,6 +17,8 @@ var validate = require('./order/validation');
var imgBoxTpl = require('../../tpl/me/thumbnail.hbs');
var changeTypeTpl = require('../../tpl/me/change-type.hbs');
var upload = require('../plugins/upload');
var validateMap = {
user: {
sl: '#user',
... ... @@ -57,6 +59,7 @@ function setActive($item) {
var $colorList = $item.find('.color-list');
var $sizeList = $item.find('.size-list');
var activeIndex = 0;
$colorList.find('.img-box').each(function(i, box) {
var $box = $(box);
... ... @@ -64,10 +67,14 @@ function setActive($item) {
if ($box.find('img').data('color') === color) {
$colorList.find('.img-box').eq(i).addClass('active');
activeIndex = i;
return false;
}
});
$sizeList = $sizeList.eq(activeIndex).removeClass('hide');
$sizeList.find('span').each(function(i, s) {
var $size = $(s);
... ... @@ -276,7 +283,6 @@ function bindConfirmEvent() {
var $changeGood = $('.change-info-box.will-change');
var changeGoodsList = [];
var changeData = {};
var $specialReason = $changeGood.find('.special-reason');
var $imgs;
var imgs = [];
... ... @@ -288,12 +294,15 @@ function bindConfirmEvent() {
return false;
}
$changeGood.each(function(index, good) {
var goodObj = {};
var $good = $(good);
var $c = $good.find('.goods-container');
var $f = $good.find('.form');
var $specialReason = $good.find('.special-reason');
$imgs = null;
imgs = [];
goodObj.product_skn = $c.data('skn');
goodObj.product_skc = $c.data('skc');
... ... @@ -310,11 +319,13 @@ function bindConfirmEvent() {
$imgs = $specialReason.find('.right-content').find('.thumb-box');
$imgs.each(function(idx, img) {
imgs.push($(img).data('img'));
});
if ($imgs.length) {
$imgs.each(function(idx, img) {
imgs.push($(img).data('img'));
});
goodObj.evidence_images = imgs;
goodObj.evidence_images = imgs;
}
}
changeGoodsList.push(goodObj);
});
... ... @@ -366,51 +377,64 @@ function bindImgDeleteEvent() {
});
}
function bindUploadEvent() {
var $tip = $('.img-up-tip');
function doUpload(count, goodIndex) {
var $el = $('*[data-good-index=' + goodIndex + ']');
$tip.text('0/4');
if (count < 4) {
upload.up({
callback: function(result) {
var img;
var $t;
var o;
var n;
$('.img-upload').on('click', function() {
var upload = require('../plugins/upload');
var that = this;
var n = parseInt($(that).siblings('.thumb-box').length, 10);
if (result.code === 200) {
n = parseInt($el.siblings('.thumb-box').length, 10);
o = {src: result.data};
if (result.imgs && result.imgs.length) {
o.url = result.imgs[0];
}
if (n < 4) {
upload.up({
callback: function(result) {
var img;
var $t;
var o;
img = imgBoxTpl(o);
$t = $el.next('.img-up-tip');
$el.before(img);
if (result.code === 200) {
n = parseInt($(that).siblings('.thumb-box').length, 10);
o = {src: result.data};
n += 1;
$t.text(n + '/4');
bindImgDeleteEvent();
if (result.imgs && result.imgs.length) {
o.url = result.imgs[0];
}
if (n >= 4) {
$el.hide();
}
img = imgBoxTpl(o);
$t = $(that).next('.img-up-tip');
$(that).before(img);
} else {
new _alert(result.message).show();
}
}
});
}
n += 1;
$t.text(n + '/4');
bindImgDeleteEvent();
}
if (n >= 4) {
$(that).hide();
}
function bindUploadEvent() {
var $tip = $('.img-up-tip');
} else {
new _alert(result.message).show();
}
}
});
}
$tip.text('0/4');
$('.img-upload').each(function(index, uploadBtn) {
$(uploadBtn).on('click', function() {
var that = this;
var n = parseInt($(that).siblings('.thumb-box').length, 10);
var goodIndex = $(that).data('good-index');
if (n > 4) {
return false;
}
doUpload(n, goodIndex);
});
});
}
... ...
... ... @@ -32,6 +32,14 @@ function doCancel(ids) {
});
}
function goodsChoose() {
if ($(this).parent('.goods-info', $root).hasClass('choose')) {
$(this).parent('.goods-info', $root).removeClass('choose');
} else {
$(this).parent('.goods-info', $root).addClass('choose');
}
}
function eventBind() {
$('.check-all', $root).check({
... ... @@ -45,14 +53,8 @@ function eventBind() {
}
});
$('.goods-img', $root).click(function() {
if ($(this).parent('.goods-info', $root).hasClass('choose')) {
$(this).parent('.goods-info', $root).removeClass('choose');
} else {
$(this).parent('.goods-info', $root).addClass('choose');
}
});
$('.choose-icon', $root).click(goodsChoose);
$('.goods-img', $root).click(goodsChoose);
$('.btn.cancel', $root).click(function() {
var id = $(this).parents('.goods-info').data('id');
... ...
... ... @@ -19,7 +19,7 @@ var $applyBtn = $('#apply-btn');
var orderCode = $('#order-code').val() || 0,
specialReason = $refundTable.data() || {},
payInfo = { // 退款信息
type: $refundType.find('.type-item.cur').data('id') // 1--原卡返回 2--银行卡 3--支付宝 4--yoho
type: $refundType.find('.type-item.cur').data('id') // 1--原卡返回 2--银行卡 3--支付宝 4--有货
};
var imgBoxTpl = require('../../tpl/me/thumbnail.hbs');
... ...
... ... @@ -8,8 +8,6 @@ var $ = require('yoho-jquery'),
regx = require('../common/mail-phone-regx'),
EventProxy = require('yoho-eventproxy');
var emailAc = require('../common/ac-email'); // 邮箱自动完成
var $regionCodeText = $('#country-code'),
$phoneNumInput = $('.phone-num'),
$imgCaptchaInput = $('#verifyCode'),
... ...
... ... @@ -45,8 +45,8 @@ var $ = require('yoho-jquery'),
_createOrient: function() {
var orientHtml = '<div class="slide-switch">' +
'<a class="prev" href="javascript:;"><span class="iconfont">&#xe635;</span></a>' +
'<a class="next" href="javascript:;"><span class="iconfont">&#xe636;</span></a>' +
'<a class="prev" href="javascript:;"><span class="iconfont">&#xe64e;</span></a>' +
'<a class="next" href="javascript:;"><span class="iconfont">&#xe64c;</span></a>' +
'</div>';
if (this.$element.find('.slide-switch').length > 0) {
... ...
... ... @@ -16,6 +16,8 @@ var $result,
$upload,
$filename;
var uping;
var num,
inter,
callback;
... ... @@ -27,8 +29,12 @@ $upload = $('#yoho-upload');
$filename = $upload.find('.file-name');
function up(opt) {
if (uping) {
return;
}
$filename.click();
if (opt) {
if (opt && typeof opt.callback === 'function') {
callback = opt.callback;
} else {
callback = '';
... ... @@ -40,24 +46,29 @@ function getResponse(cb) {
inter = setInterval(function() {
var res = $result[0].contentDocument.body.innerText || '';
if (num > 20 || res) {
uping = false;
$filename.val('');
clearInterval(inter);
}
num++;
if (res) {
$result[0].contentDocument.body.innerText = '';
if (cb) {
return cb($.parseJSON(res));
}
}
if (num > 20 || res) {
clearInterval(inter);
}
num++;
}, 500);
}
$filename.change(function() {
$upload.submit();
getResponse(callback);
if ($(this).val()) {
uping = true;
$upload.submit();
getResponse(callback);
}
});
exports.up = up;
... ...
... ... @@ -62,7 +62,7 @@ function changeThumb($dom) {
}
function chooseDefaultSize() {
var $item = $sizeList.not('.hide').children();
var $item = $sizeList.not('.hide').children().not('.disable');
if ($colorItem && $colorItem.length === 1 &&
$item && $item.length === 1) {
... ...
... ... @@ -28,11 +28,14 @@ $('#brand-fav').click(function() {
var $banner = $(this).parents('.brand-banner');
var shopId = $banner.data('shop');
var brandId = $banner.data('brand');
var type = $banner.data('type');
var isAdd = $(this).hasClass('coled');
if (shopId) {
if (type === 'shop') {
_favShop(shopId, isAdd);
} else if (brandId) {
} else if (type === 'brand') {
_favBrand(brandId, isAdd);
} else {
_favBrand(brandId, isAdd);
}
});
... ...
... ... @@ -245,8 +245,8 @@ a {
.body-mask {
position: fixed;
z-index: 100;
background: #1d1d1d;
opacity: 0.3;
background: #000;
opacity: 0.4;
top: 0;
left: 0;
}
... ... @@ -325,3 +325,7 @@ a {
border: 1px solid #f0f0f0;
text-indent: 5px;
}
.mr15 {
margin-right: 15px;
}
... ...
... ... @@ -78,15 +78,16 @@
text-align: center;
color: #222;
cursor: pointer;
font-size: 14px;
}
}
.brands-list {
dt {
height: 70px;
line-height: 70px;
height: 58px;
line-height: 58px;
font-weight: bold;
font-size: 24px;
font-size: 16px;
}
dd {
... ... @@ -102,10 +103,6 @@
margin-top: 20px;
}
/* li:nth-child(4n) {
margin-right: 0;
}*/
li:nth-child(-n+4) {
margin-top: 0;
}
... ... @@ -126,7 +123,7 @@
height: 60px;
line-height: 60px;
text-align: center;
font-size: 16px;
font-size: 14px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
... ...
... ... @@ -11,8 +11,8 @@
position: relative;
h4 {
height: 18px;
line-height: 18px;
height: 40px;
line-height: 40px;
padding-right: 20px;
display: -webkit-box;
font-size: 16px;
... ... @@ -20,6 +20,7 @@
overflow: hidden;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
color: #1b1b1b;
}
p {
... ... @@ -28,11 +29,11 @@
margin: 25px 0;
padding-right: 20px;
font-size: $size;
line-height: $line-height;
line-height: 24px;
overflow: hidden;
-webkit-line-clamp: $lines-to-show;
-webkit-box-orient: vertical;
color: #505050;
color: #1b1b1b;
}
button {
... ... @@ -42,9 +43,10 @@
bottom: 50px;
background-color: white;
outline: none;
border: 2px solid black;
border: 1px solid black;
font-size: 14px;
font-weight: bold;
cursor: pointer;
color: #1b1b1b;
}
}
... ...
... ... @@ -30,7 +30,8 @@
.editorial-title {
width: 100%;
min-height: 50px;
min-height: 70px;
line-height: 1.4;
padding: $space;
position: absolute;
bottom: 0;
... ...
... ... @@ -68,7 +68,6 @@
.slide-container-placeholder {
height: $sliderHeight;
width: 100%;
}
.slide-thumb-container-placeholder {
... ... @@ -270,7 +269,7 @@
}
.floor-header {
height: 90px;
height: 74px;
line-height: 1.4;
font-size: 16px;
}
... ...
... ... @@ -5,9 +5,9 @@
left: 50%;
min-height: 130px;
min-width: 420px;
background: #f8f8f8;
background: #ffffff;
z-index: 1001;
border: 1px solid #8f8f8f;
/*border: 1px solid #8f8f8f;*/
.close {
padding: 5px;
... ...
... ... @@ -5,7 +5,7 @@
.err-404-img {
width: 244px;
height: 105px;
background: resolve('layout/404.png') no-repeat center center;
background: resolve("layout/404.svg") no-repeat center center;
margin: 0 auto;
}
... ... @@ -39,7 +39,7 @@
.err-500-img {
width: 244px;
height: 105px;
background: resolve('layout/500.png') no-repeat center center;
background: resolve("layout/500.svg") no-repeat center center;
margin: 0 auto;
}
}
... ...
... ... @@ -3,12 +3,15 @@
line-height: 27px;
text-align: center;
font-weight: bold;
color: #1b1b1b;
}
.en-size {
font-size: 24px;
font-size: 18px;
line-height: 18px;
}
.zh-size {
font-size: 18px;
font-size: 14px;
line-height: 24px;
}
... ...
.goods-info {
width: 274px;
margin-right: 18px;
.thumb {
width: 100%;
height: 366px;
}
.desc {
text-align: center;
}
.name {
font-size: 14px;
line-height: 50px;
}
.price {
font-size: 16px;
font-weight: bold;
}
}
.goods-info {
width: 274px;
margin-right: 18px;
.thumb {
width: 100%;
height: 366px;
}
.desc {
text-align: center;
}
.name {
font-size: 14px;
line-height: 50px;
display: block;
margin-top: -2px;
}
.price {
font-size: 16px;
font-weight: bold;
display: block;
margin-top: -2px;
}
}
... ...
... ... @@ -55,7 +55,6 @@
a:hover {
color: #9a9a9a;
}
}
}
... ... @@ -74,7 +73,6 @@
.tag-bag {
padding-right: 6px;
margin-right: 8px;
font-weight: normal;
position: relative;
&:hover {
... ... @@ -115,6 +113,7 @@
width: 230px;
color: #1b1b1b;
font-size: 14px;
font-weight: normal;
padding: 20px 0;
margin-left: -86px;
line-height: 1.5;
... ... @@ -129,7 +128,7 @@
display: inline-block;
width: 138px;
height: 138px;
background-image: resolve('layout/qr.png');
background-image: resolve("layout/qr.png");
}
p {
... ... @@ -145,6 +144,7 @@
width: 370px;
padding: 18px;
border: 1px solid #eee;
font-weight: normal;
background: #fff;
position: absolute;
z-index: 50;
... ... @@ -157,7 +157,8 @@
padding: 280px 0 130px;
text-align: center;
color: #1b1b1b;
background: resolve('layout/empty-bag.png') no-repeat center center;
background: resolve("layout/empty-bag.svg") no-repeat center 30%;
background-size: 115px 130px;
display: none;
}
... ... @@ -171,7 +172,7 @@
background: #fff;
}
.mini-goods-list {
.mini-goods-list-wrap {
width: 340px;
max-height: 350px;
display: block;
... ... @@ -181,7 +182,7 @@
.go-bag-btn {
font-size: 20px;
line-height: 1;
padding-top: 24px;
padding-top: 20px;
border-top: 1px solid #ddd;
text-align: center;
}
... ... @@ -195,7 +196,6 @@
.bag-content {
display: block;
}
}
.goods-item {
... ... @@ -234,6 +234,10 @@
.del-good-btn {
cursor: pointer;
color: #999;
&:hover{
color: #1b1b1b;
}
}
}
}
... ... @@ -270,13 +274,14 @@
}
.main-logo {
width: 264px;
height: 40px;
width: 200px;
height: 30px;
left: 50%;
position: absolute;
margin-left: -132px;
margin-top: 20px;
background: resolve('layout/blk-logo.png') no-repeat center center;
background: resolve("layout/blk-logo.svg") no-repeat center center;
background-size: 100%;
a {
display: block;
... ... @@ -433,11 +438,9 @@
}
.hot {
width: 26px;
height: 12px;
display: inline-block;
background: url('/layout/hot.png');
margin-left: 4px;
color: #fc0d1b;
font-size: 16px;
margin-left: 10px;
}
.show-detail {
... ...
... ... @@ -8,8 +8,9 @@
.main-logo {
width: 200px;
height: 80px;
background: resolve('layout/sign-logo.png') no-repeat center center;
background: resolve("layout/blk-logo.svg") no-repeat center center;
display: inline-block;
background-size: 100%;
> a {
display: inline-block;
... ...
... ... @@ -79,7 +79,7 @@
margin: 0 auto;
}
.article-pict {
.article-pic {
max-width: 930px;
margin: 0 auto;
overflow: hidden;
... ... @@ -231,7 +231,7 @@
}
.brands {
width: 960px;
width: 975px;
padding: 30px 0 0 30px;
overflow: hidden;
}
... ...
... ... @@ -13,6 +13,7 @@
text-align: center;
background: #fff;
}
.nav {
li {
cursor: pointer;
... ... @@ -26,8 +27,10 @@
height: 14px;
width: 14px;
background-repeat: no-repeat;
background-image: resolve('help/plus.png');
background-image: resolve("help/plus.png");
background-size: 14px 14px;
position: relative;
top: 3px;
}
.mult {
... ... @@ -51,6 +54,7 @@
width: 990px;
padding: 35px 30px;
background-color: #fff;
font-size: 14px;
.normal-data,
.step-data {
... ... @@ -61,13 +65,14 @@
.big-title {
font-size: 20px;
}
.step-title {
font-weight: bolder;
padding-bottom: 5px;
}
.step {
list-style: disc;
}
}
}
... ...
... ... @@ -123,23 +123,18 @@
padding: 8px 0 8px 10px;
}
.select-row {
border: solid 2px black;
height: 54px;
}
.width-name {
width: 60px;
width: 70px;
word-break: break-all;
}
.width-address {
width: 145px;
width: 165px;
word-break: break-all;
}
.width-fulladdress {
width: 240px;
width: 260px;
word-break: break-all;
}
... ...
... ... @@ -46,7 +46,7 @@
.cancel {
display: block;
width: 220px;
width: 240px;
height: 50px;
line-height: 50px;
font-size: 12px;
... ... @@ -244,7 +244,6 @@
width: 70px;
height: 70px;
margin-right: 10px;
}
span {
... ...
... ... @@ -212,7 +212,7 @@
.btn {
display: inline-block;
margin-bottom: 14px;
margin-bottom: 18px;
cursor: pointer;
&.black {
... ... @@ -220,6 +220,14 @@
}
}
.marginhack{
margin-top: -4px;
.black{
margin-top: 0;
}
}
p {
margin-bottom: $space;
line-height: 20px;
... ...
... ... @@ -40,7 +40,7 @@
.number {
position: relative;
top: -17px;
top: -19px;
}
.act .state-bg {
... ...
... ... @@ -22,13 +22,17 @@
background-repeat: no-repeat;
}
.progress-text {
margin-left: 48px;
margin-left: 62px;
span {
padding: 0 50px;
}
.gray-text {
color: #d3d3d3;
padding: 0 38px;
}
.pad66{
padding-left: 66px;
}
}
.operate1,
... ...
... ... @@ -6,6 +6,7 @@
clear: both;
margin-bottom: 20px;
}
select {
width: 60px;
}
... ... @@ -45,6 +46,7 @@
.input-radio {
line-height: 26px;
padding-right: 10px;
.iconfont {
font-size: 14px;
}
... ... @@ -62,7 +64,6 @@
margin-right: 5px;
}
}
}
.user-icon {
... ... @@ -82,7 +83,8 @@
width: 120px;
background-image: resolve('me/setting/default-head.png');
background-repeat: no-repeat;
background-size: 120px 120px;
background-size: 110px 110px;
background: #fff;
}
.edit-ico {
... ...
... ... @@ -3,8 +3,10 @@
hr {
color: #f0f0f0;
margin-bottom: 20px;
}
p {
padding-bottom: 20px;
font-size: 14px;
}
}
... ...
... ... @@ -176,7 +176,6 @@
}
.reset-pwd-page {
.blank {
height: 20px;
}
... ... @@ -227,6 +226,7 @@ $step-line: calc(($item-width - 3 * $step-circle) / 2);
.indicator {
.draw {
width: $item-width;
.step {
color: $captcha-btn-fg;
font-weight: bold;
... ... @@ -242,7 +242,6 @@ $step-line: calc(($item-width - 3 * $step-circle) / 2);
}
margin-top: calc(($step-height - 2px) / 2);
}
.circle {
... ... @@ -250,6 +249,7 @@ $step-line: calc(($item-width - 3 * $step-circle) / 2);
height: @width;
background: $theme-color;
border-radius: calc(@width / 2);
&.ring {
border: 2px solid $theme-color;
background-color: white;
... ... @@ -287,5 +287,4 @@ $step-line: calc(($item-width - 3 * $step-circle) / 2);
}
}
}
}
... ...
... ... @@ -46,7 +46,6 @@ $option-color: #f8f8f8;
width: 50px;
height: $item-height;
line-height: $item-height;
text-align: center;
white-space: nowrap;
font-size: 16px;
... ...
... ... @@ -55,6 +55,7 @@
height: $item-height;
width: $item-width;
line-height: @height;
border: none;
}
.captcha-component {
... ...
... ... @@ -58,9 +58,15 @@
text-align: center;
}
.trade-wrapper{
text-align: center;
}
.brand-name {
font-size: 24px;
font-weight: bold;
margin: 0 40px;
line-height: 1.3;
}
.name {
... ... @@ -88,32 +94,38 @@
}
.option-content {
width: 226px;
/*width: 226px;*/
margin: 0 auto;
padding: 40px 0 20px;
display: inline-block;
> p {
line-height: 50px;
text-align: left;
}
.title {
color: #c1c1c1;
}
}
.color-list {
width: 246px;
min-width: 226px;
max-width: 300px;
.color-item {
float: left;
margin-right: 20px;
margin-bottom: 10px;
&:last-child{
margin-right: 0;
}
}
}
.size-list {
width: 236px;
min-width: 226px;
max-width: 300px;
li {
height: 34px;
... ... @@ -126,6 +138,9 @@
border: 1px solid #f0f0f0;
font-weight: bold;
cursor: pointer;
&:last-child{
margin-right: 0;
}
}
.disable {
... ... @@ -169,7 +184,7 @@
.lc-arrow {
width: 12px;
height: 7px;
background: url('/product/code-horn.png') no-repeat;
background: url("/product/code-horn.png") no-repeat;
position: absolute;
top: -7px;
left: 85px;
... ... @@ -204,7 +219,6 @@
.iconfont {
font-size: 14px;
}
}
.collected {
... ... @@ -237,6 +251,10 @@
width: 304px;
padding-left: 15px;
margin: 0 auto;
.weixin-share-box {
left: 6px;
}
}
.balance-wrapper {
... ... @@ -289,6 +307,10 @@
padding-left: 100%;
}
}
.info {
margin-left: 4px;
}
}
.des-basic {
... ... @@ -315,6 +337,9 @@
height: 12px;
border: 1px solid #1d1d1d;
display: inline-block;
margin: 0 3px;
position: relative;
top: 1px;
}
.comfort-block.cur {
... ... @@ -423,7 +448,7 @@
}
img {
margin-top: -7px;
margin-top: -5px;
display: inline-block;
border: 1px solid #fff;
border-radius: 50%;
... ... @@ -461,7 +486,7 @@
text-align: center;
display: block;
position: relative;
top: -66px;
top: -58px;
.title-wrapper {
line-height: 1.3;
... ... @@ -471,7 +496,13 @@
}
.cn {
font-size: 16px;
font-size: 14px;
line-height: 24px;
}
.en {
font-size: 18px;
line-height: 18px;
}
}
}
... ...
... ... @@ -353,6 +353,11 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
a {
line-height: 17px;
font-size: 12px;
}
}
.goods-price {
... ... @@ -424,12 +429,14 @@
height: 800px;
.tip-search {
margin-top: 100px;
padding-top: 100px;
text-align: center;
.iconfont {
font-size: 100px;
color: #666;
.tip-search-img {
height: 100px;
background-image: resolve("product/search.svg");
background-repeat: no-repeat;
background-position-x: 50%;
}
}
... ...
.yoho-product-list,
.yoho-shop-index {
.yoho-product-list-content {
margin-top: 30px;
}
.brand-banner {
width: 100%;
height: 150px;
background-size: 100% 100%;
position: relative;
.shop-name {
display: block;
position: absolute;
left: 20px;
bottom: 15px;
font-size: 35px;
color: #fff;
}
p.opts {
display: block;
position: absolute;
right: 20px;
bottom: 30px;
font-size: 14px;
a,
.brand-fav {
color: #fff;
border: 1px solid #fff;
padding: 10px;
margin-left: 10px;
cursor: pointer;
.iconfont {
font-size: 14px;
}
}
.brand-fav.coled .iconfont {
color: #fc0d1b;
}
}
}
.shop-menu {
border-bottom: 1px solid #eee;
li {
display: inline-block;
margin: 10px 30px;
a {
font-size: 12px;
}
.iconfont {
font-size: 14px;
}
}
}
.brand-info-wrapper {
display: none;
}
}
.yoho-shop-index {
font-size: 14px;
@import "order-area";
.slide-warp {
margin-bottom: 80px;
.slide-left {
float: left;
width: 375px;
height: 400px;
margin-right: 20px;
}
.slide-right {
float: right;
width: 360px;
height: 400px;
a {
display: block;
img {
width: 100%;
height: 190px;
}
}
a:first-child {
margin-bottom: 20px;
}
}
}
.new-arrival-warp,
.hot-product-warp,
.all-product-warp {
margin-bottom: 75px;
}
.new-arrival-warp,
.all-product-warp {
.goods-wrap {
margin: 0 -10px;
.goods-info {
float: left;
width: 272px;
margin: 25px 10px;
border-width: 1px;
.desc {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
}
.hot-product-warp {
.goods-wrap {
margin: 30px -10px 0;
.goods-info {
position: relative;
display: inline-block;
width: 369px;
height: 495px;
margin: 10px 9px;
border-width: 1px;
img {
height: 495px;
}
.desc-cover {
position: absolute;
bottom: 0;
width: 100%;
background-color: #000;
opacity: 0.2;
height: 100px;
z-index: 1;
}
.desc {
position: absolute;
bottom: 0;
width: 100%;
padding: 17px 0;
color: #fff;
z-index: 2;
}
}
}
.desc {
.name {
color: #fff;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.editorial-wrap {
margin: 0 -10px;
.editorial-info {
position: relative;
float: left;
width: 368px;
margin: 25px 10px;
border-width: 1px;
.desc {
margin-top: 10px;
text-align: center;
overflow: hidden;
line-height: 25px;
}
.name,
.intro {
padding: 10px 0;
}
}
}
.floor-header {
position: relative;
.floor-more {
position: absolute;
right: 0;
bottom: 0;
font-size: 14px;
font-weight: 700;
}
}
.shop-sort {
margin: 30px 0;
height: 30px;
vertical-align: middle;
font-size: 14px;
.all {
color: #f31a2a;
height: 30px;
line-height: 30px;
float: left;
border-right: 1px solid #bbb;
padding-right: 15px;
font-weight: 700;
}
.more {
height: 30px;
line-height: 30px;
float: right;
font-weight: 700;
}
.sort-list {
float: left;
height: 30px;
line-height: 30px;
width: 1000px;
overflow: hidden;
div {
float: left;
margin: 0 5px;
padding: 0 10px;
height: 30px;
}
div:hover {
background-color: #000;
a {
color: #fff !important;
}
}
}
}
}
.yoho-dialog.brand-info-dialog {
width: 900px;
height: 600px;
.brand-info {
height: 520px;
width: 100%;
padding: 0 20px;
.nano-content {
width: 100%;
}
.brand-info-title {
text-align: left;
margin: 20px 0 50px;
h2 {
font-size: 18px;
font-weight: 700;
padding: 10px 0;
}
}
.brand-info-content {
text-align: left;
font-size: 12px;
line-height: 20px;
p {
font-size: 12px;
line-height: 20px;
text-align: left;
img {
margin: 20px 0;
}
}
}
}
}
... ... @@ -4,10 +4,11 @@
}
.cart-header {
margin: 10px auto;
margin: 12px auto 48px;
width: 100%;
padding: 30px;
border-bottom: 1px solid #eee;
padding-bottom: 20px;
.titles {
position: relative;
... ...
... ... @@ -2,9 +2,6 @@ $hoverColor: #379ed6;
.blk-cart-page {
.pros-group {
margin-bottom: 30px;
border-top: 1px solid #eee;
&:first-child {
border-top: none;
}
... ... @@ -22,9 +19,10 @@ $hoverColor: #379ed6;
font-weight: normal !important;
display: inline-block !important;
}
&:hover {
cursor: pointer;
border: 1px dashed #e92601;
border: 1px dashed #3ca1db;
}
}
}
... ... @@ -75,6 +73,7 @@ $hoverColor: #379ed6;
.checked {
display: inline-block;
}
.not-checked {
display: none;
}
... ... @@ -96,7 +95,6 @@ $hoverColor: #379ed6;
font-size: 18px;
font-weight: bold;
line-height: 50px;
overflow: hidden;
text-overflow: ellipsis !important;
white-space: nowrap !important;
... ... @@ -175,18 +173,21 @@ $hoverColor: #379ed6;
.editable {
padding: 5px 0;
width: 200px;
width: 180px;
position: relative;
.iconfont {
display: none;
}
.sizes-list {
width: 195px;
}
.colors-list {
width: 195px;
}
.size-item {
height: 20px;
border: 1px solid #e8e8e8;
... ... @@ -220,22 +221,26 @@ $hoverColor: #379ed6;
}
}
}
.mr20 {
margin-right: 20px;
}
.mr10 {
margin-right: 10px;
}
.mb10 {
margin-bottom: 10px;
}
.mb20 {
margin-bottom: 20px;
}
.mb30 {
margin-bottom: 30px;
}
}
.invalid-pros {
... ...
.blk-cart-page {
.edit-color-size {
position: absolute;
left: 180px;
left: 190px;
width: 354px;
border: 2px solid #bbb;
top: -113px;
... ...
.blk-cart-page {
.empty-cart {
width: 400px;
margin: 100px auto 200px;
text-align: center;
.empty-cart-bg {
background: resolve('layout/bag-bg.png') no-repeat center center;
width: 163px;
height: 198px;
margin: 0 auto;
}
.empty-cart-info {
font-size: 20px;
color: #1b1b1b;
text-align: center;
margin-bottom: 20px;
}
.go-to-shop {
text-align: center;
display: inline-block;
span {
width: 130px;
height: 40px;
color: #1b1b1b;
font-size: 14px;
padding: 12px 0;
line-height: 14px;
}
}
}
}
.shopping-order-page {
.order-block {
border-bottom: 1px solid #eee;
padding-bottom: 30px;
}
.radio {
font-size: 16px;
}
.address-info {
padding-bottom: 15px;
ul {
width: 1173px;
&.shrink {
height: 195px;
overflow: hidden;
}
}
.new-address {
cursor: pointer;
height: 52px;
}
}
.address {
cursor: pointer;
.address-chosed {
display: none;
}
&.focus .address-chosed {
display: block;
}
}
.new-address .iconfont {
font-size: 12px;
}
.address-header {
height: 11px;
background: #eee url(/shopping/address-tag.png);
}
.new-address-block {
float: left;
width: 270px;
height: 180px;
margin-right: 23px;
border: 1px solid #eee;
margin-bottom: 15px;
height: 180px;
text-align: center;
color: #999;
cursor: pointer;
.iconfont {
display: block;
color: #eee;
font-size: 60px;
line-height: 80px;
margin-top: 30px;
}
}
.address {
position: relative;
float: left;
width: 270px;
height: 180px;
margin-right: 23px;
border: 1px solid #eee;
margin-bottom: 15px;
&.focus {
border-color: #000;
.address-header {
background-image: url(/shopping/address-tag-chosed.png);
}
}
.default-or-not {
text-align: right;
font-size: 12px;
height: 40px;
line-height: 40px;
}
&.default .default-or-not {
line-height: normal;
.set-default {
display: none;
}
.default-tag {
display: inline-block;
}
}
&.default .delete {
display: none;
}
.set-default {
display: inline-block;
color: #ccc;
cursor: pointer;
&:hover {
color: #379ed6;
}
}
.default-tag {
display: none;
border: 1px solid #ccc;
color: #000;
padding: 5px;
margin-top: 8px;
}
}
.address-chosed {
position: absolute;
bottom: 0;
bottom: -1px\9; /* stylelint-disable-line */
right: 0;
}
.address-content {
padding: 0 15px;
}
.address-area {
line-height: 40px;
border-top: 1px solid #ccc;
margin-top: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.address-detail {
line-height: 15px;
height: 30px;
}
.address-detail,
.address-opration {
font-size: 12px;
color: #999;
}
.address-opration {
cursor: pointer;
line-height: 30px;
text-align: right;
> span:hover {
color: #379ed6;
}
}
.address-all {
font-size: 12px;
color: #7e7e7e;
cursor: pointer;
.iconfont {
font-size: 12px;
}
}
.payment-type,
.dispatch-type {
padding-bottom: 10px;
}
.title {
line-height: 52px;
}
.chose-row {
color: #ccc;
line-height: 40px;
&.focus {
color: #000;
.chose-block {
border-color: #000;
}
}
}
.chose-block {
float: left;
display: block;
height: 40px;
margin-right: 20px;
text-align: center;
border: 1px solid #ccc;
cursor: pointer;
}
.payment-type .chose-block {
width: 160px;
}
.dispatch-type .chose-block {
width: 200px;
}
ul.content > li {
margin-bottom: 20px;
}
.dispatch-call {
margin-top: 30px;
}
.call-before-dispatch-tip {
color: #ccc;
margin-left: 75px;
}
.go-cart-link:hover {
color: #379ed6;
.iconfont {
color: #379ed6;
}
}
.go-cart-link .iconfont {
font-size: 16px;
}
.order-info {
margin-top: 50px;
}
.order-inner {
border: 1px solid #ccc;
.title {
padding: 0 15px;
border-bottom: 1px solid #eee;
overflow: hidden;
}
.block {
margin: 0 15px;
}
.info {
width: 548px;
}
/* [表格内容]商品图片 */
.goods-img {
position: relative;
width: 180px;
padding: 0 40px;
img {
width: 100px;
height: 148px;
}
.gift-tag {
position: absolute;
bottom: 0;
left: 40px;
right: 40px;
height: 25px;
color: #fff;
background: #379ed6;
font-size: 12px;
text-align: center;
line-height: 25px;
}
}
/* [表格内容]品牌和商品名称 */
.brand-and-name {
width: 368px;
text-align: left;
padding-right: 30px;
> a:hover {
color: #379ed6;
}
}
.color-size {
width: 190px;
}
.price {
width: 190px;
}
.number {
width: 190px;
}
}
.multi-package-row {
position: relative;
height: 40px;
font-size: 14px;
line-height: 40px;
border-bottom: 1px solid #eee;
text-align: center;
background: #f4fbff;
.show-package {
font-size: 16px;
cursor: pointer;
}
.package-up-icon {
position: absolute;
width: 10px;
height: 7px;
background: url(/shopping/package-up.png);
top: -7px;
left: 282px;
+ .package-item .package-title {
border-top: none;
}
}
.package-item {
position: relative;
.toggle-icon {
position: absolute;
font-size: 34px;
top: 106px;
cursor: pointer;
}
.left-icon {
left: -24px;
}
.right-icon {
right: -24px;
}
}
.package-goods-wrap {
height: 134px;
overflow: hidden;
}
.package-list {
position: absolute;
background: #fff;
border: 2px solid #bbb;
width: 586px;
right: 36px;
padding: 0 50px;
}
.package-title,
.package-shipping {
text-align: left;
margin-left: 10px;
}
.package-title {
border-top: 1px solid #eee;
line-height: 55px;
}
.package-shipping {
color: #595959;
margin-top: 20px;
margin-bottom: 30px;
}
.package-goods li {
width: 120px;
}
.package-goods-img {
display: block;
width: 100px;
height: 134px;
margin: 0 auto;
}
}
.order-table-head {
height: 50px;
line-height: 50px;
margin: 0 15px;
> span {
display: block;
float: left;
text-align: center;
}
}
.order-table-body {
display: table;
}
.order-goods {
border-top: 1px solid #eee;
padding: 20px 0;
margin: 0 15px;
text-align: center;
.brand-name {
display: block;
line-height: 50px;
width: 338px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.name {
display: inline-block;
font-size: 14px;
line-height: 16px;
max-height: 32px;
}
> * {
display: table-cell;
vertical-align: middle;
}
.number > .iconfont {
font-size: 14px;
}
}
.invoice-info .content {
> * {
display: inline-block;
}
.invoice-detail {
margin-left: 40px;
}
em {
margin-right: 20px;
}
.modify-invoice {
display: inline-block;
width: 40px;
height: 20px;
line-height: 20px;
}
}
.invoice-radio {
cursor: pointer;
color: #666;
label {
font-size: 14px;
}
}
.coin-and-remark {
padding: 20px 0;
}
.coin .title,
.remark .title {
line-height: 30px;
}
.coin-ctrl,
.remark-ctrl {
cursor: pointer;
&.iconfont {
font-size: 16px;
}
}
.balance {
padding: 10px 20px;
border: 1px solid #ccc;
font-size: 14px;
margin-bottom: 80px;
}
.balance-info {
line-height: 30px;
width: 670px;
}
.receiver-wrap {
position: relative;
i {
position: absolute;
width: 70px;
}
em {
display: inline-block;
width: 480px;
margin-left: 70px;
}
}
.balance-list {
width: 364px;
li {
line-height: 30px;
}
}
.balance-cost {
float: right;
}
li.need-pay {
border-top: 1px solid #000;
line-height: 50px;
margin-top: 10px;
}
.submit-order {
width: 160px;
height: 40px;
line-height: 40px;
}
/* 使用有货币&备注 */
.coin-and-remark .content {
background: #f5f5f5;
padding: 15px 20px;
margin: 20px 0;
font-size: 14px;
}
.coin-input {
width: 70px;
margin-left: 20px;
}
.coin-tip {
line-height: 30px;
}
.used-coin .btn {
display: inline-block;
width: auto;
height: 20px;
line-height: 20px;
padding: 0 5px;
border: none;
cursor: pointer;
&.modify {
margin-left: 130px;
margin-right: 10px;
}
}
.remark-content {
width: 1110px;
height: 118px;
padding: 10px;
resize: none;
}
.print-price-radio-group {
display: inline-block;
}
.print-price {
margin: 20px 0 10px;
}
.print-price-radio {
display: inline-block;
cursor: pointer;
> .iconfont {
font-size: 16px;
}
}
.remark-tip {
color: #b1b1b1;
}
.checked {
position: relative;
top: 2px;
}
}
.yoho-dialog.address,
.yoho-dialog.invoice {
background: #fff;
.content {
text-align: left;
}
.btns .btn {
width: 140px;
height: 40px;
line-height: 40px;
&.white {
border-color: #000;
color: #000;
}
}
}
.yoho-dialog.address {
width: 765px;
padding: 0 40px 10px;
.label-name {
text-align: right;
}
.dialog-title {
margin: 25px 0;
font-size: 18px;
}
&.is-init .cancel-address {
display: none;
}
.cascading-address {
float: left;
margin-left: 0 !important;
}
}
.yoho-dialog.invoice {
width: 702px;
.dialog-title {
color: #777;
line-height: 50px;
border-bottom: 1px solid #eee;
}
.invoice-tab {
margin: 17px 0;
.btn {
width: 85px;
height: 26px;
line-height: 26px;
}
}
.tip {
background: #f5f5f5;
padding: 20px;
font-size: 15px;
line-height: 18px;
}
.required-mark {
color: #f00;
}
.invoice-title-radio,
.invoice-content-radio {
display: inline-block;
cursor: pointer;
width: 115px;
}
.row {
margin: 18px 0;
line-height: 30px;
.iconfont {
font-size: 16px;
color: #e0e0e0;
}
.checked {
color: #1b1b1b;
}
.input {
width: 200px;
height: 30px;
border-color: #eee;
background: #f5f5f5;
}
.label {
float: left;
font-size: 14px;
width: 100px;
}
.row-content {
float: left;
width: 520px;
}
}
}
.address-confirm-dialog {
.content {
padding-top: 0 !important;
p {
position: static !important;
}
p.main {
line-height: 100px;
font-size: 28px;
}
}
}
$width: 1150px;
$liWidth: 140px;
$liHeight: 40px;
$liBorderColor: #e6e6e6;
$fontColor: #616161;
.pay-online-wrapper {
.title {
margin-top: 35px;
margin-bottom: 20px;
height: 60px;
.content {
font-weight: bold;
height: 40px;
}
.footer {
height: 20px;
}
}
.pay-notice {
color: #999;
font-size: 14px;
}
.order-detail-ctrl {
font-size: 14px;
cursor: pointer;
.up {
display: none;
}
.down {
display: inline-block;
}
/* 默认情况为展开状态 箭头方向为下 */
&.shrink {
.up {
display: inline-block;
}
.down {
display: none;
}
}
.iconfont {
font-size: 12px;
margin-left: 10px;
}
}
.order-detail {
border: 1px solid $liBorderColor;
margin-bottom: 30px;
height: calc(135px + 2px);
padding: 20px 30px;
.row {
height: 30px;
line-height: @height;
font-weight: bold;
.item {
float: left;
width: calc($width / 2 - 31px);
}
}
.item.receiver-address {
width: 100%;
}
}
.pay-nav {
height: calc($liHeight + 2px);
line-height: calc($liHeight + 2px);
border-bottom: 1px solid $liBorderColor;
z-index: 0;
clear: both;
.tabs {
display: inline-block;
height: $liHeight;
li {
width: $liWidth;
height: $liHeight;
line-height: $liHeight;
float: left;
font-size: 16px;
text-align: center;
background-color: #fff;
color: $fontColor;
cursor: pointer;
position: relative;
&.active {
border: 1px solid $liBorderColor;
height: calc($liHeight + 1px);
line-height: calc($liHeight - 2px);
top: 1px;
border-bottom: none;
color: #000;
z-index: 3;
}
}
}
}
.pay-type-icon {
position: relative;
float: left;
width: 250px;
height: 80px;
margin-bottom: 30px;
margin-right: 50px;
margin-top: 30px;
cursor: pointer;
border: 1px solid $liBorderColor;
text-align: center;
img {
display: inline-block;
margin-top: 19px;
}
.choose-tag {
display: none;
position: absolute;
bottom: 0;
right: 0;
height: 22px;
width: 23px;
}
&.active {
border: 2px solid black;
.choose-tag {
display: inline-block;
}
}
}
.pay-ctrl {
height: 40px;
margin-top: 20px;
margin-bottom: 20px;
clear: both;
.btn-shape {
width: 160px;
height: 40px;
line-height: @height;
}
}
}
.pay-info-dialog {
.pay-page-tips {
text-align: center;
h3 {
font-size: 18px;
font-weight: 700;
margin: 30px 0;
}
p {
font-size: 14px;
color: #999;
margin: 10px 0;
}
.btn {
margin-top: 20px;
}
}
}
.blk-cart-page {
.cart-statement {
margin: 50px auto;
width: 100%;
height: 194px;
padding: 30px;
border: 1px solid #eee;
.toggle-chk {
.not-checked {
color: #999;
}
}
.checked {
display: none;
}
.chk-group {
.checked {
display: inline-block;
}
.not-checked {
display: none;
}
}
.iconfont {
font-size: 14px;
line-height: 14px;
}
.action {
display: inline-block;
margin-right: 40px;
font-size: 14px;
line-height: 16px;
padding: 1px 0;
color: #1b1b1b;
&:hover {
cursor: pointer;
}
label {
&:hover {
cursor: pointer;
}
}
}
.selected-num {
display: inline-block;
font-size: 14px;
color: #1b1b1b;
font-weight: bold;
margin: 0 60px 0 224px;
}
.checkout-total {
position: relative;
float: right;
font-size: 14px;
color: #1b1b1b;
font-weight: bold;
width: 350px;
div {
display: inline-block;
}
.total-money {
position: absolute;
right: 0;
}
}
.pay-total {
float: right;
border-top: 2px solid #1b1b1b;
padding-top: 15px;
}
.calculate {
margin-top: 15px;
height: 31px;
}
.checkout {
margin-top: 40px;
float: right;
margin-right: 192px;
.btn {
padding: 14px 59px;
width: 160px;
display: inline-block;
height: 40px;
font-size: 14px;
line-height: 14px;
}
}
.hoverable {
&:hover {
cursor: pointer;
color: #379ed6;
}
}
}
}
... ... @@ -7,11 +7,11 @@
</div>
<div class="info">
<a href="/product/pro_{{product_id}}_{{goods_id}}/{{cn_alphabet}}.html" class="name" target="_blank">{{product_name}}</a>
<p>颜色:{{color_name}} 尺码:{{size_name}}</p>
<span style="margin-right:15px;">颜色: {{color_name}}</span> <span>尺码: {{size_name}}</span>
</div>
<div class="price">
<p>¥{{round sales_price 2}} X{{buy_number}}</p>
<span class="del-good-btn" data-type="{{goods_type}}" data-num="{{buy_number}}" data-num="{{buy_number}}" data-sku="{{product_sku}}" data-pid="{{promotion_id}}">删除</span>
</div>
</dd>
{{/ goods}}
\ No newline at end of file
{{/ goods}}
... ...
<div>
{{#goodsList}}
<div class="{{#unless @first}}hide{{/unless}} size-list" data-index="{{@index}}">
<div class="hide size-list" data-index="{{@index}}">
{{#sizeList}}
<span data-size="{{sizeName}}" data-sku="{{productSku}}" data-id="{{goodsId}}" {{#unless storageNumber}}class="disable"{{/unless}}>{{sizeName}}</span>
{{/sizeList}}
... ...
... ... @@ -10,7 +10,7 @@
</p>
<p class="name-and-phone">
{{consignee}}
<em class="consignee">{{consignee}}</em>
<span class="phone bold">{{mobile}}</span>
</p>
... ...
... ... @@ -25,7 +25,9 @@ shelljs.ls(path.join(__dirname, '/js/**/*.page.js')).forEach((f) => {
'yoho-jquery-lazyload',
'yoho-slider',
'yoho-jquery-accordion',
'yoho-jquery-nanoscroller'
'yoho-jquery-nanoscroller',
'yoho-jquery-placeholder',
'yoho-jquery-dotdotdot'
];
});
... ...