Authored by Aiden Xu

Merge remote-tracking branch 'origin/release/1.0' into release/1.0

Showing 50 changed files with 1540 additions and 1444 deletions
... ... @@ -7,11 +7,11 @@
<li>
<a data-key="{{key}}" href="{{brandDomain}}" target="_blank">
<img class="lazy" data-original="{{image brandIco 270 190}}">
<span>{{#if brandNameEn}}{{brandNameEn}}{{else}}{{brandName}}{{/if}}</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}}">
{{# big}}
<a href="{{url}}" target="_blank">
<img class="big-img" src="{{image src 565 340}}">
</a>
{{/ big}}
{{# small}}
<a href="{{url}}" target="_blank">
<img class="small-img {{#if @first}}first{{/if}}" src="{{image src 281 285}}">
</a>
{{/ small}}
</div>
{{/ classicBrands}}
{{# classicBrands}}
<div class="brand-img-box {{#if right}}right{{/if}} {{#if bottomSpace}}mb10{{/if}}">
{{# big}}
<a href="{{url}}" target="_blank">
<img class="big-img" src="{{image src 565 340}}">
</a>
{{/ big}}
{{# small}}
<a href="{{url}}" target="_blank">
<img class="small-img {{#if @first}}first{{/if}}" src="{{image src 281 285}}">
</a>
{{/ small}}
</div>
{{/ classicBrands}}
... ...
... ... @@ -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 => {
... ...
... ... @@ -8,6 +8,9 @@
const mcHandler = require('../models/menu-crumb-handler');
const orderModel = require('../models/order');
const _ = require('lodash');
const crypto = global.yoho.crypto;
const config = global.yoho.config;
/**
* 我的订单
... ... @@ -41,6 +44,9 @@ const detail = (req, res, next) => {
const pageData = result[0];
const thumb = result[1];
if (_.has(pageData, 'orderDetail.orderCode')) {
pageData.orderDetail.orderCodeM = crypto.encryption(config.crypto.common, pageData.orderDetail.orderCode);
}
res.display('index', {
isMe: true,
... ... @@ -123,6 +129,7 @@ const editOrder = (req, res, next) => {
const query = req.query;
query.uid = uid;
query.orderCode = crypto.decrypt(config.crypto.common, query.orderCode);
orderModel.editOrder(query).then(result => {
res.json(result);
... ...
... ... @@ -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>
... ...
<div class="order-status order" data-code="{{orderCode}}">
<div class="order-status order" data-code="{{orderCode}}" data-codem="{{orderCodeM}}">
<div class="basic">
<p>订单号:{{orderCode}}</p>
<p>订单状态:{{statusStr}}</p>
... ...
{{# refundDetail}}
<div class="refund-datail-wrap" data-id="{{id}}">
<a href="/help?id=43" class="refund-notice" target="_blank">退货须知</a>
{{> returns/returns-status}}
{{# orderReview}}
<div class="top-tip">
{{#if pass}}
<p class="tip-status">
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">退货申请已通过</span>
</p>
{{^}}
<p class="tip-status">
<span class="iconfont blue">&#xe618;</span>
<span class="blue">退货申请审核中</span>
</p>
{{/if}}
<p class="tip-text">
请将商品连同吊牌、包装、发货单(如无发货单,您可找张白纸上注明订单编号,收货人姓名及手机号码)、发票(如有)、 赠品(如有)一并寄回,如有 遗漏将影响您的退换货进度,敬请谅解<br>
非我司原因的退换货,寄回运费由您承担。商品客观问题的退换货,请您先行垫付运费,邮费会在退款中补贴给您,
<b>我们不接受平邮和到付</b>
,感谢您的理解与支持
</p>
<p>
如果您不想退货了,您可以
<span class="cancel-btn btn">取消申请</span>
</p>
</div>
{{/ orderReview}}
{{# backStorage}}
<div class="storage-tip top-tip">
<p class="tip-status">
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">您寄回的商品已收到</span>
</p>
<p>
我们会在入库后的1-3个工作日内处理您的退款,如有疑问,请联系
<a href="http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=703953&configID=149819&jid=1099911094" class="online-service" target="_blank">
<span class="iconfont blue">&#xe61c;</span>
<span class="blue">在线客服</span>
</a>
</p>
</div>
{{/ backStorage}}
{{# refundSure}}
<div class="success-tip top-tip">
<p class="tip-status">
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">退款完成</span>
</p>
<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>
</div>
{{/ refundSure}}
{{# cancelApply}}
<div class="top-tip">
<span class="blue">您已取消申请</span>
</div>
{{/ cancelApply}}
{{# refundExpress}}
<div class="return-express">
{{#if number}}
<div class="show-content" data-id="{{id}}">
<h4 class="third-title">寄回物流信息 <label class="reset-express btn white">修改</label></h4>
<p>请您耐心等待,我们会在收到货物后快速为您处理</p>
<p>物流公司:{{company}}</p>
<p>快递单号:{{number}}</p>
</div>
{{/if}}
<div class="edit-content{{#if number}} hide{{/if}}"{{# expressList}} data-{{id}}="{{name}}"{{/ expressList}}>
<h4 class="third-title">填写物流</h4>
<p>请您在<span class="blue">7天内</span>将商品寄回并填写物流,逾期将自动取消申请</p>
<dl class="express-wrap">
<dd>
物流公司:
<select class="express-company">
<option value="0">选择快递公司</option>
{{# expressList}}
<option value="{{id}}">{{name}}</option>
{{/ expressList}}
</select>
</dd>
<dd>
快递单号:
<input type="text" class="express-code" placeholder="填写快递单号" value="{{number}}">
</dd>
<dd>
<span class="submit-express btn">提交</span>
<span class="error-tip blue hide">请填写完整寄回物流信息</span>
</dd>
</dl>
</div>
</div>
{{/ refundExpress}}
{{# refundAddress}}
<div class="return-address">
<h4 class="third-title">寄回地址</h4>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址:{{address}}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;人:{{name}}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编:{{code}}</p>
<p>联系电话:{{phone}}</p>
</div>
{{/ refundAddress}}
<div class="refund-detail-goods">
<h4 class="third-title">退货商品&nbsp;&nbsp;&nbsp;&nbsp;订单编号:{{orderCode}}</h4>
<ul class="goods-header">
<li class="info">商品信息</li>
<li>退货原因</li>
<li>退货数量</li>
</ul>
{{# goods}}
<div class="goods-item clearfix">
<div class="img">
<img class="lazy" title="{{name}}" data-original="{{image img 70 90}}">
</div>
<div class="info">
<p class="title" title="{{name}}">{{name}}</p>
<p>颜色:{{color}}&nbsp;尺码:{{size}}</p>
</div>
<div class="reason">{{reason}}</div>
<div class="num">{{num}}</div>
{{#if remark}}
<dl class="special-info">
<dd class="remark">
<label>问题描述:</label>
{{remark}}
</dd>
{{#if evidence}}
<dd>
<label>照片凭证:</label>
{{# evidence}}
<a href="{{this}}" class="evidence-img" target="_blank">
<img class="lazy" data-original="{{this}}">
</a>
{{/ evidence}}
</dd>
{{/if}}
</dl>
{{/if}}
</div>
{{/ goods}}
</div>
</div>
{{# refundDetail}}
<div class="refund-datail-wrap" data-id="{{id}}">
<a href="/help?id=43" class="refund-notice" target="_blank">退货须知</a>
{{> returns/returns-status}}
{{# orderReview}}
<div class="top-tip">
{{#if pass}}
<p class="tip-status">
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">退货申请已通过</span>
</p>
{{^}}
<p class="tip-status">
<span class="iconfont blue">&#xe618;</span>
<span class="blue">退货申请审核中</span>
</p>
{{/if}}
<p class="tip-text">
请将商品连同吊牌、包装、发货单(如无发货单,您可找张白纸上注明订单编号,收货人姓名及手机号码)、发票(如有)、 赠品(如有)一并寄回,如有 遗漏将影响您的退换货进度,敬请谅解<br>
非我司原因的退换货,寄回运费由您承担。商品客观问题的退换货,请您先行垫付运费,邮费会在退款中补贴给您,
<b>我们不接受平邮和到付</b>
,感谢您的理解与支持
</p>
<p>
如果您不想退货了,您可以
<span class="cancel-btn btn">取消申请</span>
</p>
</div>
{{/ orderReview}}
{{# backStorage}}
<div class="storage-tip top-tip">
<p class="tip-status">
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">您寄回的商品已收到</span>
</p>
<p>
我们会在入库后的1-3个工作日内处理您的退款,如有疑问,请联系
<a href="http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=703953&configID=149819&jid=1099911094" class="online-service" target="_blank">
<span class="iconfont blue">&#xe61c;</span>
<span class="blue">在线客服</span>
</a>
</p>
</div>
{{/ backStorage}}
{{# refundSure}}
<div class="success-tip top-tip">
<p class="tip-status">
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">退款完成</span>
</p>
<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>
</div>
{{/ refundSure}}
{{# cancelApply}}
<div class="top-tip">
<span class="blue">您已取消申请</span>
</div>
{{/ cancelApply}}
{{# refundExpress}}
<div class="return-express">
{{#if number}}
<div class="show-content" data-id="{{id}}">
<h4 class="third-title">寄回物流信息 <label class="reset-express btn white">修改</label></h4>
<p>请您耐心等待,我们会在收到货物后快速为您处理</p>
<p>物流公司:{{company}}</p>
<p>快递单号:{{number}}</p>
</div>
{{/if}}
<div class="edit-content{{#if number}} hide{{/if}}"{{# expressList}} data-{{id}}="{{name}}"{{/ expressList}}>
<h4 class="third-title">填写物流</h4>
<p>请您在<span class="blue">7天内</span>将商品寄回并填写物流,逾期将自动取消申请</p>
<dl class="express-wrap">
<dd>
物流公司:
<select class="express-company">
<option value="0">选择快递公司</option>
{{# expressList}}
<option value="{{id}}">{{name}}</option>
{{/ expressList}}
</select>
</dd>
<dd>
快递单号:
<input type="text" class="express-code" placeholder="填写快递单号" value="{{number}}">
</dd>
<dd>
<span class="submit-express btn">提交</span>
<span class="error-tip blue hide">请填写完整寄回物流信息</span>
</dd>
</dl>
</div>
</div>
{{/ refundExpress}}
{{# refundAddress}}
<div class="return-address">
<h4 class="third-title">寄回地址</h4>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址:{{address}}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;人:{{name}}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;编:{{code}}</p>
<p>联系电话:{{phone}}</p>
</div>
{{/ refundAddress}}
<div class="refund-detail-goods">
<h4 class="third-title">退货商品&nbsp;&nbsp;&nbsp;&nbsp;订单编号:{{orderCode}}</h4>
<ul class="goods-header">
<li class="info">商品信息</li>
<li>退货原因</li>
<li>退货数量</li>
</ul>
{{# goods}}
<div class="goods-item clearfix">
<div class="img">
<img class="lazy" title="{{name}}" data-original="{{image img 70 90}}">
</div>
<div class="info">
<p class="title" title="{{name}}">{{name}}</p>
<p>颜色:{{color}}&nbsp;尺码:{{size}}</p>
</div>
<div class="reason">{{reason}}</div>
<div class="num">{{num}}</div>
{{#if remark}}
<dl class="special-info">
<dd class="remark">
<label>问题描述:</label>
{{remark}}
</dd>
{{#if evidence}}
<dd>
<label>照片凭证:</label>
{{# evidence}}
<a href="{{this}}" class="evidence-img" target="_blank">
<img class="lazy" data-original="{{this}}">
</a>
{{/ evidence}}
</dd>
{{/if}}
</dl>
{{/if}}
</div>
{{/ goods}}
</div>
</div>
{{/ refundDetail}}
\ No newline at end of file
... ...
... ... @@ -144,7 +144,7 @@ const shop = {
data.filter = DataHelper.filterHandle(ret.filter, q);
data.filter.showPrice = ret.total > 10;
data.filter.showInfo = (data.filter.style && data.filter.style.length > 0)
|| (ret.standard && ret.standard.length > 0); //eslint-disable-line
|| (ret.standard && ret.standard.length > 0); //eslint-disable-line
}
... ...
... ... @@ -823,9 +823,7 @@ const setDetailData = sizeInfo => {
titleCn: '商品详情'
};
if (sizeInfo.productDescBo && sizeInfo.productDescBo.phrase) {
details.content = `${sizeInfo.productDescBo.phrase}<br/>`;
}
details.content = `${_.get(sizeInfo, 'productDescBo.phrase', '')}<br/>`;
// 图片换规则
const replacePairs = [
... ...
... ... @@ -153,8 +153,8 @@ const ShopService = {
info.sorts = sorts;
if (resources.shopTopBanner) { // eslint-disable-line
info.banner = resources.shopTopBanner.shopSrc; // eslint-disable-line
if (resources.shopTopBanner) { // eslint-disable-line
info.banner = resources.shopTopBanner.shopSrc; // eslint-disable-line
}
info.resources = resources;
info.menus = shopMenu(domain, resources.navigationBar);
... ...
{{# banner}}
<div class="brand-info-wrapper">
<div class="brand-info">
<div class="nano-content">
<div class="">
<div class="brand-info-title">
<h2>{{name}}</h2>
<h5>品牌介绍</h5>
</div>
<div class="brand-info-content">
{{{info}}}
<div class="brand-info-content nano">
<div class="nano-content">{{{info}}}</div>
</div>
</div>
</div>
... ...
... ... @@ -18,7 +18,6 @@ exports.index = (req, res, next) => {
if (result.code === 200) {
res.header('Cache-Control', 'no-store');
res.display('cart', _.merge({
module: 'shopping',
page: 'cart',
... ... @@ -135,7 +134,7 @@ exports.addToCart = (req, res, next) => {
shoppingKey: req.cookies._SPK || null,
uid: req.user.uid
}).then((result) => {
res.cookie('_SPK', result.data.shopping_key, { maxAge: 1000 * 60 * 60 * 24 * 365, httpOnly: true, path: '/'});
res.cookie('_SPK', result.data.shopping_key, {maxAge: 1000 * 60 * 60 * 24 * 365, httpOnly: true, path: '/'});
res.json(result);
}).catch(next);
};
... ... @@ -147,9 +146,6 @@ exports.toggleSelectGoods = (req, res, next) => {
const shoppingKey = req.cookies._SPK;
// 商品sku列表
// skuList:
// [{"goods_type":"advance","buy_number":1,"selected":"Y","product_sku":"1006277","promotion_id":0}, {...}]
// [{"goods_type":"ordinary","buy_number":1,"selected":"Y","product_sku":"1006277","promotion_id":0}, {...}]
const productSkuList = req.body.skuList;
if (uid) {
... ...
... ... @@ -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 => {
... ...
... ... @@ -26,7 +26,7 @@ const Alipay = {
_input_charset: 'utf-8',
notify_url: config.pay.serviceNotify + 'payment/alipay_notify',
return_url: 'http:' + helpers.urlFormat('/shopping/pay/callback/alipay'),
subject: '有货订单号:' + order.orderCode,
subject: 'BLK订单号:' + order.orderCode,
out_trade_no: order.orderCode,
it_b_pay: common.getPayExpireMin(order.payExpire) + 'm',
total_fee: order.paymentAmount,
... ...
... ... @@ -132,40 +132,40 @@ const toggleSelectGoods = (params) => {
_.merge(params, {method});
/*
let resultData;
let skus = JSON.parse(params.product_sku_list).map(sku => return sku.product_sku);
const skusLen = skus.length;
_.merge(params, {method});
return getCartData(params.shopping_key, params.uid).then(function(result) {
// 检查库存量
resultData = result.data;
_.find(
_.concat(resultData.ordinary_cart_data.goods_list, resultData.advance_cart_data.goods_list),
(goodItem) => {
if (skusLen == 1 && goodItem.product_sku === skus[0] &&
(parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 单个商品
return {
code: '1000',
message: '您勾选的商品库存不足'
};
} else {
if((parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 全选
return api.get('', params).then(result => {
return _.merge(result, {
code: '1001',
message: '您全选的商品中存在库存不足商品,已帮您自动取消勾选'
})
});
}
}
});
});
*/
let resultData;
let skus = JSON.parse(params.product_sku_list).map(sku => return sku.product_sku);
const skusLen = skus.length;
_.merge(params, {method});
return getCartData(params.shopping_key, params.uid).then(function(result) {
// 检查库存量
resultData = result.data;
_.find(
_.concat(resultData.ordinary_cart_data.goods_list, resultData.advance_cart_data.goods_list),
(goodItem) => {
if (skusLen == 1 && goodItem.product_sku === skus[0] &&
(parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 单个商品
return {
code: '1000',
message: '您勾选的商品库存不足'
};
} else {
if((parseInt(goodItem.buy_number, 10) > parseInt(goodItem.storage_number, 10))) {
// 全选
return api.get('', params).then(result => {
return _.merge(result, {
code: '1001',
message: '您全选的商品中存在库存不足商品,已帮您自动取消勾选'
})
});
}
}
});
});
*/
return api.get('', params);
};
... ... @@ -295,15 +295,33 @@ const filterCartData = (result, uid) => {
});
}
let freeShippingTip = '';
if (_.has(result, 'data.ordinary_cart_data.promotion_info')) {
let promotions = result.data.ordinary_cart_data.promotion_info;
_.each(promotions, p => {
if (p.promotion_type === 'VipFreeShippingCost') {
freeShippingTip = p.promotion_title;
}
if (p.promotion_type === 'FreeShippingCost') {
freeShippingTip = p.promotion_title;
}
});
}
return _.merge(resData, {
hasGoods: advancedGoods.length || ordinaryGoods.length || invalidGoods.length,
preSalePros: (advancedSoldOutGoods.length || advancedGoods.length) ?
_.concat(advancedGoods, advancedSoldOutGoods) : [],
_.concat(advancedGoods, advancedSoldOutGoods) : [],
commonPros: ordinaryGoods,
invalidPros: invalidGoods,
selectedNum: selectedAdvanceNum + selectedOrdinaryNum,
checkAll: totalNum === (selectedAdvanceNum + selectedOrdinaryNum),
totalMoney: totalAdvanceMoney + totalOrdinaryMoney,
freeShippingTip: freeShippingTip,
noStorage
});
};
... ...
... ... @@ -105,7 +105,7 @@ const _computeApi = (uid, deliveryWay, paymentType, yohoCoin) => api.get('', {
*/
const compute = (uid, yohoCoin) => {
// 目前仅支持普通快递和在线支付
let deliveryWay = 2;
let deliveryWay = 1;
let paymentType = 1;
let coin;
... ... @@ -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 // 有货币稀释
... ...
... ... @@ -17,7 +17,7 @@
</li>
<li>
<a href="/product/pro_{{product_id}}_{{goods_id}}/{{cn_alphabet}}.html" target="_blank">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}" width="100" height="134">
</a>
</li>
<li class="pro-info">
... ... @@ -72,7 +72,7 @@
</li>
<li>
<a href="/product/pro_{{product_id}}_{{goods_id}}/{{cn_alphabet}}.html" target="_blank">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}" width="100" height="134">
</a>
</li>
<li class="pro-info">
... ... @@ -116,7 +116,7 @@
</li>
<li>
<a href="javascript:void(0)">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}" width="100" height="134">
</a>
</li>
<li class="pro-info">
... ...
{{#if freeShippingTip}}
<div class="fregit-remark">
<span>免运费</span>
{{freeShippingTip}}
</div>
{{/if}}
<div class="cart-statement">
<div class="actions">
<div class="action">
... ... @@ -24,4 +30,4 @@
<div class="checkout">
<span class="btn {{#unless selectedNum}}disable{{/unless}}" id="checkout_btn">去结算</span>
</div>
</div>
\ No newline at end of file
</div>
... ...
... ... @@ -22,10 +22,10 @@ module.exports = {
},
cookieDomain: 'yohoblk.com',
domains: {
singleApi: 'http://192.168.102.31:8092/',
api: 'http://api.yoho.yohoops.org/',
service: 'http://service.yoho.yohoops.org/',
search: 'http://192.168.102.216:8080/yohosearch/'
singleApi: 'http://single.yoho.cn/',
api: 'http://api-test3.yohops.com:9999/',
service: 'http://service-test3.yohops.com:9999/',
search: 'http://search.yohoops.org/yohosearch/'
},
useOneapm: false,
useCache: false,
... ... @@ -85,13 +85,16 @@ module.exports = {
partnerID: '2088421464239504',
appSecret: 'e3i54meghrac3qhryzhw1h5yzeijik7e'
},
sina: { // 还未申请
appID: '3739328910',
appSecret: '9d44cded26d048e23089e5e975c93df1'
sina: { // OK
appID: '1379621535',
appSecret: 'aa29bf39b5fd9f247c93e900d679ab6a'
}
},
pay: {
serviceNotify: 'http://devservice.yoho.cn:58077/'
},
crypto: {
common: 'yohoblk9646abcde'
}
};
... ...
... ... @@ -10,7 +10,6 @@ const LoginService = require('../../apps/passport/models/login-service');
*/
module.exports = () => {
return (req, res, next) => {
req.user.uid = 8039837;
// 从 SESSION 中获取到当前登录用户的 UID
if (req.session && _.isNumber(req.session._LOGIN_UID)) {
... ...
<?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 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" 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" 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 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>
<?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>
... ...
... ... @@ -14,12 +14,10 @@ var $searchWrap = $('.search-wrapper'),
$clearInput = $('.clear-input');
var goodsTpl = require('../../tpl/common/bag-goods.hbs');
var delayer;
require('yoho-jquery-nanoscroller');
var delayer;
function handelProduct(data) {
var goods = [],
list = ['commonPros', 'preSalePros', 'noStorage'];
... ... @@ -66,8 +64,7 @@ function refreshBag() {
$bagGoodsList.empty();
$miniBag.addClass('bag-empty');
}
$('.nano').nanoScroller({disableResize: true});
$('.mini-goods-list-wrap.nano').nanoScroller({disableResize: true});
}
}
});
... ...
... ... @@ -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('');
});
// 修改收货地址
... ...
... ... @@ -26,7 +26,7 @@ $('.order .cancel-btn').on('click', function() {
$('.order .edit-btn').on('click', function() {
var $this = $(this);
var $userInfo = $('.user-info.info-box');
var code = $this.closest('.order').data('code');
var code = $this.closest('.order').data('codem');
var areaCode = $userInfo.data('area');
var userName = $userInfo.find('.user-name-sel').data('name');
... ...
... ... @@ -127,7 +127,7 @@ function validatePhoneNumLocal() {
*/
function validatePhoneNum() {
function validate() {
var defer = $.Deferred(); //eslint-disable-line
var defer = $.Deferred(); //eslint-disable-line
if (validatePhoneNumLocal()) {
validatePhoneNumAsync().then(function(result) {
... ... @@ -197,7 +197,7 @@ function validateImgCaptchaAsync() {
*/
function validateImgCaptcha() {
function validate() {
var defer = $.Deferred(); //eslint-disable-line
var defer = $.Deferred(); //eslint-disable-line
if (validateImgCaptchaLocal()) {
validateImgCaptchaAsync().then(function(result) {
... ...
... ... @@ -12,8 +12,8 @@ var Shop = {
$('#brand-info').click(function() {
Shop.brandInfoDialog().show();
$('.brand-info').addClass('nano');
$('.brand-info').nanoScroller();
//$('.brand-info').addClass('nano');
$('.brand-info-dialog .brand-info-content').nanoScroller();
});
},
... ...
... ... @@ -182,7 +182,7 @@
.go-bag-btn {
font-size: 20px;
line-height: 1;
padding-top: 20px;
padding-top: 22px;
border-top: 1px solid #ddd;
text-align: center;
}
... ... @@ -235,7 +235,8 @@
.del-good-btn {
cursor: pointer;
color: #999;
&:hover{
&:hover {
color: #1b1b1b;
}
}
... ... @@ -279,7 +280,7 @@
left: 50%;
position: absolute;
margin-left: -132px;
margin-top: 20px;
margin-top: 30px;
background: resolve("layout/blk-logo.svg") no-repeat center center;
background-size: 100%;
... ... @@ -297,8 +298,9 @@
.sub-nav-list {
max-width: 94%;
line-height: 50px;
display: inline-block;
line-height: 55px;
height: 44px;
li {
float: left;
... ...
... ... @@ -23,7 +23,7 @@
margin-top: 9px;
text-align: center;
top: 15px;
left: 26px;
left: 10px;
z-index: 2;
h2 {
... ...
.help-page {
padding-bottom: 30px;
background: #f5f5f5;
.help-navigation {
width: 150px;
margin-right: 10px;
background: #fff;
.title {
height: 60px;
line-height: 60px;
text-align: center;
background: #fff;
}
.nav {
li {
cursor: pointer;
padding: 10px 15px;
width: 200px;
font-size: 14px;
.plus {
cursor: pointer;
margin-right: 10px;
height: 14px;
width: 14px;
background-repeat: no-repeat;
background-image: resolve("help/plus.png");
background-size: 14px 14px;
position: relative;
top: 3px;
}
.mult {
margin-right: 26px;
height: 14px;
width: 14px;
}
}
li.selected > a {
color: #379ed6;
}
.smll-category {
display: none;
}
}
}
.help-main {
width: 990px;
padding: 35px 30px;
background-color: #fff;
font-size: 14px;
.normal-data,
.step-data {
padding: 2px;
line-height: 25px;
}
.big-title {
font-size: 20px;
}
.step-title {
font-weight: bolder;
padding-bottom: 5px;
}
.step {
list-style: disc;
}
}
}
.help-page {
padding-bottom: 30px;
background: #f5f5f5;
/* 个人中心布局下重置默认的底部样式 */
+ .blk-footer .center-content {
border-top: none;
}
.help-navigation {
width: 150px;
margin-right: 10px;
background: #fff;
.title {
height: 60px;
line-height: 60px;
text-align: center;
background: #fff;
}
.nav {
li {
cursor: pointer;
padding: 10px 15px;
width: 200px;
font-size: 14px;
.plus {
cursor: pointer;
margin-right: 10px;
height: 14px;
width: 14px;
background-repeat: no-repeat;
background-image: resolve("help/plus.png");
background-size: 14px 14px;
position: relative;
top: 3px;
}
.mult {
margin-right: 26px;
height: 14px;
width: 14px;
}
}
li.selected > a {
color: #379ed6;
}
.smll-category {
display: none;
}
}
}
.help-main {
width: 990px;
padding: 35px 30px;
background-color: #fff;
font-size: 14px;
.normal-data,
.step-data {
padding: 2px;
line-height: 25px;
}
.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;
}
... ...
... ... @@ -20,6 +20,7 @@
font-size: 16px;
color: #5cb0de;
padding-bottom: 15px;
margin-top: 40px;
span {
font-size: 20px;
... ...
... ... @@ -220,10 +220,10 @@
}
}
.marginhack{
.marginhack {
margin-top: -4px;
.black{
.black {
margin-top: 0;
}
}
... ... @@ -259,7 +259,7 @@
width: 100%;
.bg {
height: 250px;
height: 160px;
background-image: resolve("me/no-order.png");
background-repeat: no-repeat;
background-position: center bottom;
... ...
... ... @@ -40,7 +40,7 @@
.number {
position: relative;
top: -17px;
top: -19px;
}
.act .state-bg {
... ...
... ... @@ -3,8 +3,10 @@
hr {
color: #f0f0f0;
margin-bottom: 20px;
}
p {
padding-bottom: 20px;
font-size: 14px;
}
}
... ...
... ... @@ -17,7 +17,6 @@
color: $blue;
font-weight: bold;
}
}
.country-code {
... ... @@ -36,7 +35,7 @@
@mixin input;
&.phone-num {
width: 150px;
width: 170px;
display: block;
float: left;
border: none !important;
... ... @@ -46,7 +45,6 @@
&.captcha {
width: $captcha;
float: left;
}
}
... ... @@ -93,7 +91,6 @@
.small {
@mixin small;
}
}
.other-opts {
... ... @@ -104,6 +101,7 @@
.third-party-login {
margin: 0 30px;
span {
float: left;
width: calc(($item-width - 60px) / 4);
... ...
... ... @@ -251,6 +251,10 @@
width: 304px;
padding-left: 15px;
margin: 0 auto;
.weixin-share-box {
left: 6px;
}
}
.balance-wrapper {
... ...
... ... @@ -397,11 +397,15 @@
display: inline-block;
vertical-align: top;
width: 60px;
margin-right: 10px;
margin-right: 11px;
}
.goods-img-col:last-child {
margin-right: 0;
}
img {
margin: 8px 0;
margin-top: 11px;
cursor: pointer;
}
}
... ...
... ... @@ -23,7 +23,7 @@
display: block;
position: absolute;
right: 20px;
bottom: 30px;
bottom: 20px;
font-size: 14px;
a,
... ... @@ -33,6 +33,9 @@
padding: 10px;
margin-left: 10px;
cursor: pointer;
display: inline-block;
line-height: 12px;
height: 32px;
.iconfont {
font-size: 14px;
... ... @@ -289,6 +292,7 @@
text-align: left;
font-size: 12px;
line-height: 20px;
height: 396px;
p {
font-size: 12px;
... ...
.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;
}
.consignee {
display: block;
float: left;
max-width: 140px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.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;
}
}
}
.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;
}
.title{
font-size: 15px;
}
}
.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;
}
.consignee {
display: block;
float: left;
max-width: 140px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.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;
font-size: 14px;
}
.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;
font-size: 14px;
}
.chose-row {
color: #ccc;
line-height: 40px;
&.focus {
color: #000;
.chose-block {
border-color: #000;
font-size: 15px;
}
.tip-text{
font-size: 14px;
}
}
}
.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;
font-size: 14px;
}
.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;
font-size: 14px;
}
}
.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;
}
}
}
$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;
font-size: 14px;
.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;
font-size: 14px;
&.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 {
.fregit-remark {
margin: 50px 0 20px;
padding-left: 30px;
font-size: 12px;
span {
display: inline-block;
width: 50px;
height: 20px;
line-height: 22px;
text-align: center;
background: #424242;
border-radius: 12px;
color: #fff;
margin-right: 10px;
}
}
.cart-statement {
margin: 50px auto;
margin-bottom: 50px;
width: 100%;
height: 194px;
padding: 30px;
border: 1px solid #eee;
.toggle-chk {
.not-checked {
color: #999;
... ... @@ -19,6 +38,7 @@
.checked {
display: inline-block;
}
.not-checked {
display: none;
}
... ...
... ... @@ -30,8 +30,11 @@
}
.disable {
background: #999;
background: #eee;
color: #fff;
&:hover {
background-color: #eee;
}
}
.input {
... ... @@ -39,6 +42,9 @@
width: 38px;
height: 28px;
text-align: center;
font-family: BrownStd;
font-weight: bold;
color: #1b1b1b;
}
.warning {
... ...
<div>
{{#goodsList}}
<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}}
</div>
{{/goodsList}}
</div>
<div>
{{#goodsList}}
<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}}
</div>
{{/goodsList}}
</div>
... ...
{{#each address}}
<li class="address{{#isY is_default}} default{{/isY}}{{#if focus}} focus{{/if}}"
data-id="{{address_id}}" data-name="{{consignee}}" data-mobile="{{mobile}}"
data-phone="{{phone}}" data-areacode="{{area_code}}" data-area="{{area}}"" data-address="{{address}}">
<div class="address-header"></div>
<div class="address-content">
<p class="default-or-not">
<span class="default-tag">默认地址</span>
<span class="set-default">设为默认</span>
</p>
<p class="name-and-phone">
<em class="consignee">{{consignee}}</em>
<span class="phone bold">{{mobile}}</span>
</p>
<p class="address-area bold">{{area}}</p>
<p class="address-detail">{{address}}</p>
<p class="address-opration">
<span class="modify">修改</span>
<span class="delete">删除</span>
</p>
</div>
<span class="address-chosed iconfont">&#xe63b;</span>
</li>
{{/each}}
{{#if hasNew}}
<li class="new-address-block">
<span class="iconfont">&#xe645;</span>
增加收货地址
</li>
{{#each address}}
<li class="address{{#isY is_default}} default{{/isY}}{{#if focus}} focus{{/if}}"
data-id="{{address_id}}" data-name="{{consignee}}" data-mobile="{{mobile}}"
data-phone="{{phone}}" data-areacode="{{area_code}}" data-area="{{area}}"" data-address="{{address}}">
<div class="address-header"></div>
<div class="address-content">
<p class="default-or-not">
<span class="default-tag">默认地址</span>
<span class="set-default">设为默认</span>
</p>
<p class="name-and-phone">
<em class="consignee">{{consignee}}</em>
<span class="phone bold">{{mobile}}</span>
</p>
<p class="address-area bold">{{area}}</p>
<p class="address-detail">{{address}}</p>
<p class="address-opration">
<span class="modify">修改</span>
<span class="delete">删除</span>
</p>
</div>
<span class="address-chosed iconfont">&#xe63b;</span>
</li>
{{/each}}
{{#if hasNew}}
<li class="new-address-block">
<span class="iconfont">&#xe645;</span>
增加收货地址
</li>
{{/if}}
\ No newline at end of file
... ...
... ... @@ -33,7 +33,7 @@
</li>
<li>
<a href="/product/pro_{{product_id}}_{{goods_id}}/{{cn_alphabet}}.html" target="_blank">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}" width="100" height="134">
</a>
</li>
<li class="pro-info">
... ... @@ -101,7 +101,7 @@
</li>
<li>
<a href="/product/pro_{{product_id}}_{{goods_id}}/{{cn_alphabet}}.html" target="_blank">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}" width="100" height="134">
</a>
</li>
<li class="pro-info">
... ... @@ -158,7 +158,7 @@
</li>
<li>
<a href="javascript:void(0)">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}">
<img src="{{image goods_images 100 134}}" alt="{{product_name}}" width="100" height="134">
</a>
</li>
<li class="pro-info">
... ... @@ -203,6 +203,13 @@
</div>
{{/if}}
{{#if @root.freeShippingTip}}
<div class="fregit-remark">
<span>免运费</span>
{{@root.freeShippingTip}}
</div>
{{/if}}
<div class="cart-statement">
<div class="actions">
<div class="action">
... ... @@ -229,4 +236,4 @@
<div class="checkout">
<span class="btn {{#unless selectedNum}}disable{{/unless}}" id="checkout_btn">去结算</span>
</div>
</div>
\ No newline at end of file
</div>
... ...
... ... @@ -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'
];
});
... ...