Authored by 郝肖肖

'merage-feature/orderShare'

... ... @@ -120,6 +120,9 @@ const getCartDelList = (req, res, addsStr, delSkuId) => {
const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analysis) => {
return _.map(cartGoods, (it) => {
it.last_vip_price = transPrice(it.last_vip_price);
it.sales_price = transPrice(it.sales_price);
it.last_price = transPrice(it.last_price);
let goods = {
id: it.product_sku,
... ... @@ -131,12 +134,12 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys
imgCover: it.goods_images ? helpers.image(it.goods_images, 64, 88) : '',
productColor: it.factory_goods_name,
productSize: it.size_name,
productPrice: transPrice(it.last_vip_price), // self::transPrice($value['real_price']);
productPrice: it.sales_price,
productNum: Number(it.buy_number),
storageNum: Number(it.storage_number),
isSoldOut: parseInt(it.storage_number, 10) === 0 || parseInt(it.off_shelves, 10) === 1, // 已售罄
isVipPrice: it.sales_price !== it.last_vip_price && it.discount_tag === 'V',
isStuPrice: it.sales_price !== it.last_vip_price && it.discount_tag === 'S',
isVipPrice: it.discount_tag === 'V',
isStuPrice: it.discount_tag === 'S',
yohoIcon: Number(it.get_yoho_coin) || 0,
productSubtotal: transPrice(it.last_vip_price * it.buy_number),
promotionId: it.promotion_id || 0,
... ... @@ -144,6 +147,12 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys
isAdvance: isAdvanceCart
};
// 划线的价格
if (it.last_vip_price < it.sales_price) {
goods.productPrice = it.last_vip_price;
goods.linePrice = it.sales_price; // 划线的价格
}
if (it.min_buy_number) {
goods.minBuyNumber = Number(it.min_buy_number);
... ... @@ -173,14 +182,16 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys
goods.inValid = true;
} else if (it.goods_type === 'gift') { // gift=>是否赠品 && it.isAdvanceBuy
goods.isGift = true;
goods.productPrice = transPrice(it.last_price);
goods.productPrice = it.last_price;
goods.linePrice = it.sales_price; // 划线的价格
goods.productSubtotal = it.subtotal ? transPrice(it.subtotal) : goods.productPrice;
} else if (it.goods_type === 'price_gift') { // price_gift=>是否加价购
goods.isPriceGift = true;
goods.productPrice = transPrice(it.last_price);
goods.productPrice = it.last_price;
goods.linePrice = it.sales_price; // 划线的价格
goods.productSubtotal = it.subtotal ? transPrice(it.subtotal) : goods.productPrice;
} else if (it.real_price === 0) { // 免单
goods.productPrice = transPrice(it.sales_price);
goods.productPrice = it.sales_price;
goods.xForOne = true;
// 分析用: 商品ID列表
... ...
... ... @@ -88,9 +88,20 @@ const handlePaymentInfo = (d, address) => {
d.shopping_cart_data.hasCoin = _.round(d.yoho_coin * 100); // 有货币稀释
_.forEach(d.goods_list, g => {
g.last_vip_price = g.last_vip_price && Number(g.last_vip_price).toFixed(2) || '';
g.sales_price = g.sales_price && Number(g.sales_price).toFixed(2) || '';
// link to goods
g.linkToGoods = helper.urlFormat(`/product/pro_${g.product_id}_${g.goods_id}/${g.cn_alphabet}.html`,
'', 'item');
g.productPrice = g.sales_price;
g.isVipPrice = g.discount_tag === 'V';
g.isStuPrice = g.discount_tag === 'S';
// 赠品、加价购
if (g.goods_type === 'gift' || g.goods_type === 'price_gift') {
g.productPrice = g.last_price;
}
});
resData.goodsList = d.goods_list;
... ...
... ... @@ -142,7 +142,16 @@
尺码:<span class="size">{{size_name}}</span>
</td>
<td class="border-top price">
<span class="red">¥ {{round last_price 2}}</span>
<p class="red">¥ {{round productPrice 2}}</p>
{{#if linePrice}}
<p class="line-through">¥ {{round linePrice 2}}</p>
{{/if}}
{{#isVipPrice}}
<p class="tip-message">(VIP)</p>
{{/isVipPrice}}
{{#isStuPrice}}
<p class="tip-message">(学生价)</p>
{{/isStuPrice}}
</td>
<td class="border-top">× {{buy_number}}</td>
<td{{#if @first}} class="border-top"{{/if}}></td>
... ...
... ... @@ -211,6 +211,16 @@ const setExpressNumber = (req, res, next) => {
};
const refundCompute = (req, res, next) => {
let uid = req.user.uid;
let orderCode = req.body.orderCode;
let goods = req.body.goods;
returnsModel.refundCompute(uid, orderCode, goods).then(d => {
res.json(d);
}).catch(next);
};
module.exports = {
index,
refundApply,
... ... @@ -224,5 +234,6 @@ module.exports = {
getDelivery,
cancelRefund,
cancelChange,
setExpressNumber
setExpressNumber,
refundCompute
};
... ...
... ... @@ -365,12 +365,29 @@ const getOrders = (uid, page, limit, type, isPage)=> {
newOrder.goods = _.get(order, 'order_goods', []).map((good) => {
let newGood = {};
good.real_pay_price = good.real_pay_price && Number(good.real_pay_price).toFixed(2) || '';
good.sales_price = good.sales_price && Number(good.sales_price).toFixed(2) || '';
newGood.href = helpers.getUrlBySkc(good.product_skn);
newGood.thumb = helpers.image(good.goods_image, 100, 100);
newGood.name = good.product_name;
newGood.color = good.factory_color_name;
newGood.size = good.size_name;
newGood.price = good.goods_price;
newGood.price = good.sales_price;// 默认显示销售价
newGood.isVipPrice = good.discount_tag === 'V';
newGood.isStuPrice = good.discount_tag === 'S';
// 划线的价格
if (good.real_pay_price < good.sales_price) {
newGood.price = good.real_pay_price;// 显示分摊价
newGood.linePrice = good.sales_price; // 划线的价格
}
// 赠品、加价购
if (good.goods_type === 'gift' || good.goods_type === 'price_gift') {
newGood.price = good.real_pay_price;// 显示分摊价
newGood.linePrice = good.sales_price; // 划线的价格
}
let buyNum = _.parseInt(good.buy_number);
let refundNum = _.parseInt(good.refund_num);
... ... @@ -759,19 +776,38 @@ const _getOrderDetail = co(function * (uid, orderId) {
// 商品信息
if (orderDetail.order_goods) {
detail.goods = _.get(orderDetail, 'order_goods', []).map((good) => {
return {
good.real_pay_price = good.real_pay_price && Number(good.real_pay_price).toFixed(2) || '';
good.sales_price = good.sales_price && Number(good.sales_price).toFixed(2) || '';
let newGood = {
url: helpers.getUrlBySkc(good.product_skn),
img: helpers.image(good.goods_image, 60, 60),
name: good.product_name,
color: good.factory_color_name,
size: good.size_name,
price: good.goods_price,
price: good.sales_price, // 默认显示销售价
isVipPrice: good.discount_tag === 'V',
isStuPrice: good.discount_tag === 'S',
coin: good.yoho_give_coin,
num: good.buy_number,
sum: good.goods_amount,
sku: good.product_sku,
[_getGoodsTag(good.attribute, good.goods_type)]: true
};
// 划线的价格
if (good.real_pay_price < good.sales_price) {
newGood.price = good.real_pay_price;// 显示分摊价
newGood.linePrice = good.sales_price; // 划线的价格
}
// 赠品、加价购
if (good.goods_type === 'gift' || good.goods_type === 'price_gift') {
newGood.price = good.real_pay_price;// 显示分摊价
newGood.linePrice = good.sales_price; // 划线的价格
}
return newGood;
});
}
... ...
... ... @@ -201,7 +201,6 @@ const getDeliveryAsync = (areaCode, uid, gender, channel) => {
return api.post('', options);
};
/**
* 发送站内信
* @param int $uid
... ... @@ -228,6 +227,24 @@ const sendMessage = (uid, title, content, type, verifyKey, sendUid) =>{
return api.post('', options);
};
/**
* [退货结算]
* @param {[type]} uid [uid]
* @param {[type]} orderCode [订单号]
* @param {[type]} goods [商品详细]
* @return {[type]} [{}]
*/
const refundComputeAsync = (uid, orderCode, goods) => {
let options = {
method: 'app.refund.compute',
order_code: orderCode,
uid: uid,
goods: goods
};
return api.get('', options);
};
module.exports = {
getRefundGoodsAsync,
refundSubmit,
... ... @@ -241,5 +258,6 @@ module.exports = {
cancelRefundAsync,
cancelChangeAsync,
getDeliveryAsync,
setExpressNumberAsync
setExpressNumberAsync,
refundComputeAsync
};
... ...
... ... @@ -41,12 +41,29 @@ const getProductUrlBySkc = (skn) => {
const setDetailGoods = (list) => {
let resData = [];
let goods;
_.forEach(list, value => {
resData.push({
goods = {
href: getProductUrlBySkc(value.product_id, value.goods_id, ''),
thumb: helpers.image(value.goods_image, 60, 60),
name: value.product_name || '',
color: value.color_name,
size: value.size_name,
yoho_coin_cut_num: value.yoho_coin_cut_num,
real_pay_price: value.real_pay_price,
price: value.sales_price,
goods_type: value.goods_type,
reason: value.reason_name
});
};
if (value.real_pay_price < value.sales_price) {
goods.price = value.real_pay_price;// 显示分摊价
goods.linePrice = value.sales_price; // 划线的价格
}
resData.push(goods);
});
return resData;
... ... @@ -174,8 +191,7 @@ const getOrderRefund = (orderCode, uid) => {
if (result.data) {
let goods = [];
let returnReason = result.data.return_reason,
remarks = _.split(_.get(result, 'data.special_notice.remark', ''), ' ', 2), // 使用3个空格拆分
amount = 0;
remarks = _.split(_.get(result, 'data.special_notice.remark', ''), ' ', 2); // 使用3个空格拆分
_.forEach(_.get(result, 'data.goods_list', []), value => {
... ... @@ -185,7 +201,8 @@ const getOrderRefund = (orderCode, uid) => {
name: value.product_name,
color: value.factory_color_name,
size: value.size_name,
price: value.last_price,
lastPrice: value.last_price,
price: value.real_pay_price,
skn: value.product_skn,
skc: value.product_skc,
sku: value.product_sku,
... ... @@ -194,8 +211,6 @@ const getOrderRefund = (orderCode, uid) => {
reason: returnReason
};
amount += parseInt(value.last_price, 10);
// tar note 为每个特殊商品都添加标识
if (value.is_limit_skn === 'Y') {
item.specialNoticeBo = {
... ... @@ -226,14 +241,7 @@ const getOrderRefund = (orderCode, uid) => {
Object.assign(resData, {
goods: goods,
orderCode: orderCode,
// 计算相关支付细节
amount: amount - _.get(result, 'data.yoho_coin_num', 0) -
_.get(result, 'data.coupon_amount', 0),
yohoCoin: result.data.yoho_coin_num,
coupon: result.data.coupon_amount,
cash: amount
orderCode: orderCode
});
_.forEach(result.data.return_amount_mode, (val, key) => {
... ... @@ -329,6 +337,8 @@ const getRefundDetail = (applyId, uid) => {
applyTime: data.create_time,
payMode: data.source_payment_type_desc || '',
backMode: data.return_amount_mode_name || '',
return_asset_desc: data.return_asset_desc,
return_amount: data.return_amount,
goods: setDetailGoods(data.goods_list)
};
... ... @@ -336,7 +346,8 @@ const getRefundDetail = (applyId, uid) => {
detail.express = {
id: _.get(data, 'notice.express_id', ''),
company: _.get(data, 'notice.express_company', ''),
number: _.get(data, 'notice.express_number', '')
number: _.get(data, 'notice.express_number', ''),
title: _.get(data, 'notice.title', '请填写寄回快递单号,以便我们查询')
};
}
... ... @@ -396,7 +407,8 @@ const getChangeDetail = (applyId, uid) => {
id: _.get(data, 'notice.express_id', ''),
company: _.get(data, 'notice.express_company', ''),
number: _.get(data, 'notice.express_number', ''),
expressDeadLine: _.get(data, 'notice.date', '')
expressDeadLine: _.get(data, 'notice.date', ''),
title: _.get(data, 'notice.title', '请填写寄回快递单号,以便我们查询')
};
}
... ... @@ -525,7 +537,8 @@ const getOrderExchange = (orderCode, uid) => {
name: value.product_name,
color: value.color_name,
size: value.size_name,
price: value.last_price,
lastPrice: value.last_price,
price: value.real_pay_price,
skn: value.product_skn,
skc: value.product_skc,
sku: value.product_sku,
... ... @@ -644,6 +657,10 @@ const setExpressNumber = (id, expressId, expressNumber, uid, expressCompany, isC
});
};
const refundCompute = (uid, orderCode, goods) => {
return returnAPI.refundComputeAsync(uid, orderCode, goods);
};
module.exports = {
getReturnsList, // 我的订单,退换货列表
getOrderRefund, // 我的订单,申请退货
... ... @@ -655,5 +672,6 @@ module.exports = {
getDelivery, // 获取换货方式
getCancelRefund, // 取消退货申请
getCancelChange, // 取消换货申请
setExpressNumber // 设置快递
setExpressNumber, // 设置快递
refundCompute // 退货结算
};
... ...
... ... @@ -91,6 +91,7 @@ router.post('/returns/getDelivery', tabsMiddleware.getCommonHeader, returnsContr
router.post('/returns/cancelRefund', tabsMiddleware.getCommonHeader, returnsController.cancelRefund);// 取消退货
router.post('/returns/cancelChange', tabsMiddleware.getCommonHeader, returnsController.cancelChange);// 取消换货
router.post('/returns/setExpressNumber', tabsMiddleware.getCommonHeader, returnsController.setExpressNumber);// 设置快递
router.post('/returns/api/refundCompute', returnsController.refundCompute);
router.get('/returns/success', returnsController.index);
... ...
... ... @@ -226,7 +226,6 @@
<a target="_blank" href="{{yohoCoinUrl}}"></a>
</th>
<th class="num">数量</th>
<th class="sum">小计(元)</th>
</thead>
<tbody>
{{# goods}}
... ... @@ -260,10 +259,23 @@
{{/if}}
</p>
</td>
<td>{{price}}</td>
<td>
<p>{{price}}</p>
{{#if linePrice}}
<p class="line-through">{{linePrice}}</p>
{{/if}}
{{#isVipPrice}}
<p class="tip-message">(VIP)</p>
{{/isVipPrice}}
{{#isStuPrice}}
<p class="tip-message">(学生价)</p>
{{/isStuPrice}}
{{#if free}}
<span class="free-icon">免单</span>
{{/if}}
</td>
<td>{{coin}}</td>
<td>{{num}}</td>
<td>{{sum}}</td>
</tr>
{{/ goods}}
</tbody>
... ...
... ... @@ -33,7 +33,7 @@
<input type="hidden" value="{{skn}}" name="skn">
<input type="hidden" value="{{skc}}" name="skc">
<input type="hidden" value="{{sku}}" name="sku">
<input type="hidden" value="{{price}}" name="price">
<input type="hidden" value="{{lastPrice}}" name="lastPrice">
<input type="hidden" value="{{goods_type_id}}" name="typeid">
<input type="checkbox" checked="true">
{{/unless}}
... ... @@ -154,7 +154,7 @@
<table id="goods-table" class="goods-list-table">
<tr>
<th colspan="3">请选择退货商品</th>
<th>价(元)</th>
<th>成交价(元)</th>
<th>退货原因</th>
</tr>
{{# goods}}
... ... @@ -164,7 +164,7 @@
<input type="hidden" value="{{skn}}" name="skn">
<input type="hidden" value="{{skc}}" name="skc">
<input type="hidden" value="{{sku}}" name="sku">
<input type="hidden" value="{{price}}" name="price">
<input type="hidden" value="{{lastPrice}}" name="lastPrice">
<input type="hidden" value="{{goods_type_id}}" name="typeid">
{{#unless isLimitSkn}}
<input type="checkbox" checked="true">
... ... @@ -211,7 +211,7 @@
{{/ goods}}
<tr>
<td colspan="5">
<p class="re-tips">订单金额:¥{{amount}} (¥{{cash}} 现金 - ¥{{yohoCoin}} 有货币 - ¥{{coupon}} 优惠券)</p>
<p class="re-tips"></p>
</td>
</tr>
</table>
... ...
... ... @@ -30,7 +30,7 @@
{{/if}}
<div class="detail-container">
{{# express}}
<h2>请填写寄回快递单号,以便我们查询</h2>
<h2>{{title}}</h2>
<div class="courier-code{{#unless id}} in-edit{{/unless}}">
<ul style="display: none;">
{{# expressList}}
... ... @@ -55,6 +55,71 @@
</p>
</div>
{{/ express}}
<h2>商品清单</h2>
<div class="goods-bill">
<table>
<thead>
<tr>
<th class="product-info">商品信息</th>
<th class="good-price">单价(元)</th>
<th class="yoho-coin">
返有货币
<a target="_blank" href="//www.yohobuy.com/help/detail?id=105"></a>
</th>
<th class="num">数量</th>
{{#unless isChange}}
<th class="sum">退款金额(元)</th>
{{/unless}}
</tr>
</thead>
{{# goods}}
<tr>
<td>
<a class="thumb-link" href="{{href}}" target="_blank">
<img class="thumb" src="{{image2 thumb}}">
{{!--
{{#isEqual goods_type 'gift'}}
<span class="freebie-tag">赠品</span>
{{/isEqual}}
{{#isEqual goods_type 'price_gift'}}
<span class="advance-buy-tag">加价购</span>
{{/isEqual}}
{{#isEqual goods_type 'advance'}}
<span class="presall-tag">预售</span>
{{/isEqual}}
--}}
</a>
<p class="name-color-size">
<a class="name" href="{{href}}" target="_blank">{{name}}</a>
颜色:{{color}} 尺码:{{size}}
{{> home/orders/order-goods-tags}}
</p>
</td>
<td>
<p class="red">{{round price 2}}</p>
{{#if linePrice}}
<p class="line-through">{{round linePrice 2}}</p>
{{/if}}
</td>
<td>{{yoho_coin_cut_num}}</td>
<td>1</td>
{{#unless ../isChange}}
<td>{{round real_pay_price 2}}</td>
{{/unless}}
</tr>
{{/goods}}
<tr>
<td colspan="5">
<p class="re-tips">{{#if return_amount}}退款总金额:¥{{return_amount}} {{#if return_asset_desc}}({{return_asset_desc}}){{/if}}<span class="iconfont icon-tip-help">&#xe6d6;</span>{{/if}}</p>
</td>
</tr>
</table>
</div>
<h2>详细信息</h2>
<div class="main-detail">
<table>
... ...
... ... @@ -60,9 +60,17 @@
</span>
</div>
</div>
<div class="price{{#if free}} free-price{{/if}}">
<em>{{price}}</em>
<div class="price">
<p>{{price}}</p>
{{#if linePrice}}
<p class="line-through">{{linePrice}}</p>
{{/if}}
{{#isVipPrice}}
<p class="tip-message">(VIP)</p>
{{/isVipPrice}}
{{#isStuPrice}}
<p class="tip-message">(学生价)</p>
{{/isStuPrice}}
{{#if free}}
<span class="free-icon">免单</span>
{{/if}}
... ...
... ... @@ -11,7 +11,7 @@ const isTest = process.env.NODE_ENV === 'test';
module.exports = {
app: 'web',
appVersion: '5.7.1', // 调用api的版本
appVersion: '5.8.0', // 调用api的版本
port: 6002,
siteUrl: 'http://www.yohobuy.com',
cookieDomain: '.yohobuy.com',
... ...
... ... @@ -66,7 +66,10 @@
{{/eq}}
</p>
</div>
<div class="product-price td" style="width:148px;">¥{{productPrice}}
<div class="product-price td {{#if linePrice}}line-margin-top{{/if}}" style="width:148px;">¥{{productPrice}}
{{#if linePrice}}
<p class="line-through">¥{{linePrice}}</p>
{{/if}}
{{#isVipPrice}}
<p class="tip-message">(VIP)</p>
{{/isVipPrice}}
... ...
{{#if return_amount}}退款总金额:¥{{return_amount}} {{#if return_asset_desc}}({{return_asset_desc}}){{/if}}<span class="iconfont icon-tip-help">&#xe6d6;</span>{{/if}}
... ...
... ... @@ -7,6 +7,8 @@ var $ = require('yoho-jquery'),
Addr = require('./common-address'),
_dialog = require('../common/dialog');
var reTipsHbs = require('hbs/home/orders/re-tips.hbs');
var stringHandle = require('../common/stringHandle');
var $goodsTable = $('#goods-table'),
... ... @@ -75,6 +77,48 @@ if (defaultPhone) {
$exchange.find('input[name="phone"]').val(disPhone);
}
// 退货结算
function getRefundCompute() {
var goods = [];
if (!pageType) {
return false;
}
$goodsTable.find('input[type="checkbox"]:checked').each(function() {
var $par = $(this).closest('tr'),
goodsInfo;
goodsInfo = {
product_skn: $par.find('input[name="skn"]').val(),
product_skc: $par.find('input[name="skc"]').val(),
product_sku: $par.find('input[name="sku"]').val(),
goods_type: $par.find('input[name="typeid"]').val(),
last_price: $par.find('input[name="lastPrice"]').val()
};
goods.push(goodsInfo);
});
if (goods.length <= 0) {
$('.re-tips').html(reTipsHbs({}));
return false;
}
$.ajax({
type: 'POST',
url: '/home/returns/api/refundCompute',
data: {
orderCode: orderCode,
goods: JSON.stringify(goods)
}
}).then(function(d) {
if (d.code === 200) {
$('.re-tips').html(reTipsHbs(d.data));
}
});
}
function syncRefundMode(code) {
$.ajax({
type: 'POST',
... ... @@ -236,6 +280,8 @@ $checkBox.change(function() {
$par.find('select').val(0).prop('disabled', true);
$par.next().hide();
}
getRefundCompute();
});
$goodsTable.on('change', '.exchange-color', function() {
... ... @@ -374,7 +420,7 @@ function packGoogsList() {
product_skc: $par.find('input[name="skc"]').val(),
product_sku: $par.find('input[name="sku"]').val(),
goods_type: $par.find('input[name="typeid"]').val(),
last_price: $par.find('input[name="price"]').val(),
last_price: $par.find('input[name="lastPrice"]').val(),
reason: $par.find('.return-reason').val() * 1
};
... ... @@ -633,3 +679,30 @@ $('.save-btn').click(function() {
}
});
// 退货结算
getRefundCompute();
$('.re-tips').on('click', '.icon-tip-help', function() {
var tipHelpDialog, content;
content = '<div class="tip-title">退款金额说明</div>';
content += '<div class="tip-content">';
content += '订单中包含的促销活动、优惠券、有货币、红包、礼品卡金额均按比例分摊至各件商品。';
content += '</div>';
tipHelpDialog = new Dialog({
content: content,
className: 'icon-tip-help-dialog',
btns: [
{
id: 'tip-btn-sure',
btnClass: ['tip-btn'],
name: '确定',
cb: function() {
tipHelpDialog.close();
}
}
]
}).show();
});
... ...
... ... @@ -1224,6 +1224,16 @@
.tip-message {
margin-top: -2px;
}
.line-through {
font-weight: normal;
text-decoration: line-through;
color: #9a9a9a;
}
}
.line-margin-top {
padding-top: 15px !important;
}
.sale-info {
... ...
... ... @@ -729,6 +729,21 @@
.price {
font-size: 14px;
p {
line-height: 18px;
}
}
p.line-through {
font-weight: normal;
text-decoration: line-through;
color: #9a9a9a;
}
p.tip-message {
font-weight: normal;
color: #ff575c;
}
.border-top {
... ...
... ... @@ -148,10 +148,6 @@
padding: 5px;
font-weight: bold;
&.free-price em {
text-decoration: line-through;
}
.free-icon {
display: block;
width: 37px;
... ... @@ -165,6 +161,21 @@
border: 1px solid #80bb45;
border-radius: 3px;
}
p {
line-height: 18px;
}
p.line-through {
font-weight: normal;
text-decoration: line-through;
color: #9a9a9a;
}
p.tip-message {
font-weight: normal;
color: #ff575c;
}
}
.count {
... ...
... ... @@ -73,9 +73,34 @@
.content {
padding: 10px 20px 20px;
.free-icon {
display: block;
width: 37px;
height: 18px;
line-height: 18px;
font-size: 12px;
text-align: center;
color: #80bb45;
background: #e7fbc0;
margin: 5px auto;
border: 1px solid #80bb45;
border-radius: 3px;
}
p {
line-height: 18px;
}
p.line-through {
font-weight: normal;
text-decoration: line-through;
color: #9a9a9a;
}
p.tip-message {
font-weight: normal;
color: #ff575c;
}
}
.order-progress {
... ... @@ -420,6 +445,7 @@
.good-list {
table {
border-collapse: collapse;
width: 100%;
}
thead {
... ... @@ -565,7 +591,7 @@
display: inline-block;
height: 22px;
width: 22px;
vertical-align: text-bottom;
vertical-align: middle;
}
.success-icon {
... ...
... ... @@ -148,7 +148,17 @@
.re-tips {
text-align: left;
padding-left: 10px;
color: #666;
color: #444;
min-height: 15px;
font-size: 13px;
.icon-tip-help {
font-size: 15px;
color: #d1071f;
vertical-align: top;
margin-left: 5px;
cursor: pointer;
}
}
.problem-description {
... ... @@ -454,3 +464,39 @@
margin-bottom: 25px;
}
}
.icon-tip-help-dialog {
text-align: center;
width: 370px;
.close {
top: 12px;
.iconfont {
font-size: 30px;
}
}
.tip-title {
color: #444;
font-size: 24px;
padding: 30px 0;
font-weight: bold;
}
.tip-content {
color: #444;
font-size: 14px;
line-height: 24px;
}
.tip-btn {
background: #000;
color: #fff;
min-width: 130px;
}
.btns {
margin-top: 30px;
}
}
... ...
... ... @@ -45,7 +45,7 @@
font-size: 12px;
color: #333;
font-weight: 400;
margin-bottom: 10px;
margin: 10px 0;
}
.courier-code {
... ... @@ -54,6 +54,10 @@
.express-edit-box {
display: none;
select {
height: 21px;
}
}
button {
... ... @@ -68,6 +72,121 @@
.express-edit-box {
display: block;
select {
height: 21px;
}
}
}
.goods-bill {
table {
border-collapse: collapse;
width: 100%;
}
thead {
height: 25px;
line-height: 25px;
background: #000;
padding: 2px 5px;
color: #fff;
}
th,
td {
padding: 5px;
text-align: center;
border: 1px solid #e6e6e6;
}
th {
border-color: #000;
}
.product-info {
width: 314px;
}
.good-price,
.num,
.sum {
width: 91px;
}
.yoho-coin {
width: 100px;
a {
display: inline-block;
width: 12px;
height: 12px;
background: resolve(home/coin-help.png);
vertical-align: text-top;
}
}
.thumb-link {
float: left;
position: relative;
margin-left: 5px;
margin-right: 10px;
}
.thumb {
display: block;
width: 60px;
height: 60px;
}
.name-color-size {
float: left;
color: #999;
padding-top: 12px;
text-align: left;
b {
display: inline-block;
vertical-align: bottom;
max-width: 130px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-style: normal;
font-weight: 400;
}
}
.name {
display: block;
color: #468fa2;
line-height: 18px;
text-align: left;
max-width: 230px;
@mixin ellipsis;
}
.re-tips {
text-align: left;
padding-left: 10px;
color: #444;
min-height: 15px;
font-size: 13px;
.icon-tip-help {
font-size: 15px;
color: #d1071f;
vertical-align: top;
margin-left: 5px;
cursor: pointer;
}
}
p.line-through {
font-weight: normal;
text-decoration: line-through;
color: #9a9a9a;
}
}
... ... @@ -110,4 +229,16 @@
display: none;
}
}
.cancel-return {
padding-left: 12px;
a {
color: #fff;
border-radius: 4px;
padding: 4px 8px;
background: #000;
display: inline-block;
}
}
}
... ...