Authored by biao

Merge branch 'feature/return' of http://git.yoho.cn/fe/yoho-blk into feature/return

... ... @@ -76,7 +76,7 @@ const refundDetail = (req, res, next) => {
returns.getRefundDetailData(applyId, uid).then(result => {
res.display('index', {
page: 'returns-refund',
page: 'refund',
content: result
});
}).catch(next);
... ... @@ -88,7 +88,7 @@ const exchange = (req, res, next) => {
returns.getChangeGoodsList(code, uid).then(result => {
res.display('index', {
page: 'returns-change',
page: 'exchange',
isMe: true,
content: Object.assign({
nav: mcHandler.getMeCrumb('我的退/换货'),
... ...
... ... @@ -188,7 +188,9 @@ const _setRefundGoodList = (data) => {
};
const _setRefundDetailData = (data) => {
let resData = {};
let resData = {
id: data.id || 0
};
switch (data.status) {
case 10:
... ... @@ -210,6 +212,27 @@ const _setRefundDetailData = (data) => {
break;
}
let goods = [];
_.forEach(data.goods_list, value => {
let cnAlphabet = value.cn_alphabet ? value.cn_alphabet : '';
goods.push({
href: helpers.urlFormat(`/product/pro_${value.product_id}_${value.goods_id}/${cnAlphabet}.html`),
img: value.goods_image,
name: value.product_name,
size: value.size_name,
color: value.color_name,
num: 1, // 接口目前不支持
reason: value.reason_name || '--',
price: value.sales_price,
remark: value.remark,
evidence: value.evidence_images
});
});
resData.goods = goods;
return resData;
};
... ... @@ -246,11 +269,14 @@ const getRefundDetailData = (applyId, uid) => {
};
if (result.data) {
let data = result.data;
// console.log(_setRefundDetailData(result.data));
Object.assign(resData.refundDetail, _setReturnStatus(result.data.statusList));
Object.assign(resData.refundDetail, _setRefundDetailData(result.data));
Object.assign(resData.refundDetail, _setReturnStatus(data.statusList, !data.status));
Object.assign(resData.refundDetail, _setRefundDetailData(data));
}
return {returns: resData};
... ...
{{# refundDetail}}
<div class="refund-datail-wrap">
<div class="refund-datail-wrap" data-id="{{id}}">
{{> returns/returns-status}}
{{# orderReview}}
<div class="top-tip">
{{#if pass}}
<p class="tip-status">
<span class="iconfont blue">&#xe618;</span>
<span class="blue">退货申请已通过</span>
</p>
{{^}}
<p class="tip-status">
<span class="iconfont blue">&#xe618;</span>
<span class="blue">退货申请审核中</span>
</p>
{{/if}}
{{#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>
非我司原因的退换货,寄回运费由您承担。商品客观问题的退换货,请您先行垫付运费,邮费会在退款中补贴给您,
... ... @@ -31,7 +31,7 @@
{{# backStorage}}
<div class="storage-tip top-tip">
<p class="tip-status">
<span class="iconfont blue">&#xe618;</span>
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">您寄回的商品已收到</span>
</p>
<p>
... ... @@ -44,7 +44,7 @@
{{# refundSure}}
<div class="success-tip top-tip">
<p class="tip-status">
<span class="iconfont blue">&#xe618;</span>
<span class="iconfont blue">&#xe60f;</span>
<span class="blue">退款完成</span>
</p>
<p>退款方式:<em>由于银行内部处理流程的差异,储蓄卡需要3-7个工作日到账,信用卡需要7-15个工作日到账</em></p>
... ... @@ -103,12 +103,27 @@
<p>颜色:{{color}}&nbsp;尺码:{{size}}</p>
<p>×{{num}}</p>
</div>
<div class="reason">dsa{{reason}}</div>
<div class="num">dasd{{num}}</div>
<dl class="special-info hide">
<dd>问题描述:</dd>
<dd>照片凭证:</dd>
</dl>
<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}}
<div class="evidence-img">
<img class="lazy" data-original="{{image . 70 90}}">
</div>
{{/ evidence}}
</dd>
{{/if}}
</dl>
{{/if}}
</div>
{{/ goods}}
</div>
... ...
{{# refund}}
{{> returns/returns-status}}
<div class="refund-wrap">
{{> returns/returns-status}}
<h4 class="third-title">选择退货商品</h4>
<div class="refund-goods clearfix" {{# speclialReason}} data-{{id}}="{{@index}}"{{/ speclialReason}}>
<input id="order-code" type="hidden" value="{{orderCode}}">
<ul class="goods-header">
<li class="info">商品信息</li>
<li class="reason">退货原因</li>
<li class="num">退货数量</li>
<li class="price">单价</li>
</ul>
<h4 class="third-title">选择退货商品</h4>
<div class="refund-goods clearfix" {{# speclialReason}} data-{{id}}="{{@index}}"{{/ speclialReason}}>
<input id="order-code" type="hidden" value="{{orderCode}}">
<ul class="goods-header">
<li class="info">商品信息</li>
<li class="reason">退货原因</li>
<li class="num">退货数量</li>
<li class="price">单价</li>
</ul>
{{# goods}}
<div class="goods-item clearfix">
<div class="check" data-skn="{{skn}}" data-skc="{{skc}}" data-sku="{{sku}}" data-price="{{price}}" data-type="{{typeId}}">{{> icon/checkbox}}</div>
<div class="img">
<img class="lazy" data-original="{{image img 70 90}}">
{{# goods}}
<div class="goods-item clearfix">
<div class="check" data-skn="{{skn}}" data-skc="{{skc}}" data-sku="{{sku}}" data-price="{{price}}" data-type="{{typeId}}">{{> icon/checkbox}}</div>
<div class="img">
<img class="lazy" data-original="{{image img 70 90}}">
</div>
<div class="info">
<p>{{name}}</p>
<p>颜色:{{color}}&nbsp;尺码:{{size}}</p>
<p>×{{num}}</p>
</div>
<div class="reason">
<select class="refund-reason">
<option>选择退款原因</option>
{{# reasonList}}
<option value="{{id}}">{{name}}</option>
{{/ reasonList}}
</select>
</div>
<div class="num">
<span class="iconfont">&#xe621;</span>
<input type="text" value="{{num}}" readonly="readonly">
<span class="iconfont">&#xe61f;</span>
</div>
<div class="price">¥{{round price 2}}</div>
{{> returns/special-reason}}
</div>
<div class="info">
<p>{{name}}</p>
<p>颜色:{{color}}&nbsp;尺码:{{size}}</p>
<p>×{{num}}</p>
</div>
<div class="reason">
<select class="refund-reason">
<option>选择退款原因</option>
{{# reasonList}}
<option value="{{id}}">{{name}}</option>
{{/ reasonList}}
</select>
</div>
<div class="num">
<span class="iconfont">&#xe621;</span>
<input type="text" value="{{num}}" readonly="readonly">
<span class="iconfont">&#xe61f;</span>
</div>
<div class="price">¥{{round price 2}}</div>
{{> returns/special-reason}}
</div>
{{/ goods}}
</div>
{{/ goods}}
</div>
<h4 class="third-title">退款方式</h4>
<h4 class="third-title">退款方式</h4>
<div class="refund-type">
<div>
<label class="type-item ali-item cur" title="支付宝"></label>
<label class="type-item union-item" title="银行卡"></label>
<div class="refund-type">
<div>
<label class="type-item ali-item cur" title="支付宝"></label>
<label class="type-item union-item" title="银行卡"></label>
</div>
<dl class="alipay">
<dd>账号:<input type="text" class="name" placeholder="收款人支付宝账号"></dd>
<dd>姓名:<input type="text" class="account" placeholder="姓名"></dd>
</dl>
<dl class="unionpay hide">
<dd>
银行:
<select class="bank">
<option>中国银行</option>
<option>中国农业银行</option>
<option>中国工商银行</option>
<option>中国建设银行</option>
</select>
<input type="text" placeholder="开户支行">
<span class="blue" class="area">例:江苏省南京市奥体支行</span>
</dd>
<dd>账号:<input type="text" class="account" placeholder="收款人银行卡号"></dd>
<dd>姓名:<input type="text" class="name" placeholder="姓名"></dd>
</dl>
</div>
<div class="opt-btn">
<span class="apply-tip blue hide">请填写完整</span>
<div id="apply-btn" class="btn disable">提交申请</div>
</div>
<dl class="alipay">
<dd>账号:<input type="text" class="name" placeholder="收款人支付宝账号"></dd>
<dd>姓名:<input type="text" class="account" placeholder="姓名"></dd>
</dl>
<dl class="unionpay hide">
<dd>
银行:
<select class="bank">
<option>中国银行</option>
<option>中国农业银行</option>
<option>中国工商银行</option>
<option>中国建设银行</option>
</select>
<input type="text" placeholder="开户支行">
<span class="blue" class="area">例:江苏省南京市奥体支行</span>
</dd>
<dd>账号:<input type="text" class="account" placeholder="收款人银行卡号"></dd>
<dd>姓名:<input type="text" class="name" placeholder="姓名"></dd>
</dl>
</div>
<div class="opt-btn">
<span class="apply-tip blue hide">请填写完整</span>
<div id="apply-btn" class="btn disable">提交申请</div>
</div>
{{/ refund}}
... ...
... ... @@ -113,5 +113,4 @@
@import "order/index";
@import "return/index";
@import "currency";
@import "returns";
@import "exchange";
... ...
.returns-wrap {
font-size: 14px;
.returns-status {
padding: 30px 0 80px;
... ... @@ -49,8 +51,106 @@
}
}
}
.third-title {
font-size: 16px;
font-weight: bold;
padding-bottom: 20px;
}
.special-reason {
padding-top: 20px;
display: none;
.left-title {
width: 150px;
padding-left: 54px;
.red {
color: #d93549;
margin-right: 3px;
}
}
.right-content {
width: 570px;
}
.mark-text {
width: 570px;
height: 120px;
resize: none;
border-color: #eee;
}
.img-wrap,
.img-upload {
width: 60px;
height: 60px;
border: 1px dashed #eee;
float: left;
margin-right: 10px;
}
.img-upload {
line-height: 60px;
text-align: center;
color: #dfdfdf;
cursor: pointer;
.iconfont {
font-size: 34px;
}
}
.img-wrap {
position: relative;
}
.img-wrap:hover .img-opt {
display: block;
}
.img-opt {
width: 100%;
height: 20px;
line-height: 20px;
background: #555;
font-size: 12px;
color: #fff;
opacity: 0.7;
position: absolute;
text-align: center;
display: none;
> * {
display: inline-block;
cursor: pointer;
}
}
}
.opt-btn {
padding-top: 40px;
line-height: 40px;
text-align: right;
.blue {
margin-right: 10px;
font-size: 12px;
}
.btn {
width: 130px;
height: 40px;
line-height: 40px;
font-size: 16px;
display: inline-block;
}
}
}
@import "list";
@import "change";
@import "refund";
@import "refund-detail";
... ...
... ... @@ -110,14 +110,32 @@
.info {
width: 284px;
text-align: left;
line-height: 2;
}
.reason,
.num {
line-height: 90px;
}
.special-info {
width: 100%;
height: auto;
padding-left: 15px;
padding-top: 30px;
text-align: left;
}
.remark {
padding-bottom: 15px;
}
.evidence-img {
width: 70px;
height: 90px;
display: inline-block;
vertical-align: top;
}
}
}
}
... ...
.returns-wrap {
font-size: 14px;
.third-title {
font-size: 16px;
font-weight: bold;
padding-bottom: 20px;
}
.special-reason {
padding-top: 20px;
display: none;
.left-title {
width: 150px;
padding-left: 54px;
.red {
color: #d93549;
margin-right: 3px;
}
}
.right-content {
width: 570px;
}
.mark-text {
width: 570px;
height: 120px;
resize: none;
border-color: #eee;
}
.img-wrap,
.img-upload {
width: 60px;
height: 60px;
border: 1px dashed #eee;
float: left;
margin-right: 10px;
}
.img-upload {
line-height: 60px;
text-align: center;
color: #dfdfdf;
cursor: pointer;
.iconfont {
font-size: 34px;
}
}
.img-wrap {
position: relative;
}
.img-wrap:hover .img-opt {
display: block;
}
.img-opt {
width: 100%;
height: 20px;
line-height: 20px;
background: #555;
font-size: 12px;
color: #fff;
opacity: 0.7;
position: absolute;
text-align: center;
display: none;
> * {
display: inline-block;
cursor: pointer;
}
}
}
.opt-btn {
padding-top: 40px;
line-height: 40px;
text-align: right;
.blue {
margin-right: 10px;
font-size: 12px;
}
.btn {
width: 130px;
height: 40px;
line-height: 40px;
font-size: 16px;
display: inline-block;
}
}
.refund-wrap {
.refund-goods {
margin-bottom: 40px;
... ...