Authored by zhangxiaoru

exchange

... ... @@ -15,7 +15,7 @@ const orderModel = require('../models/order');
const index = (req, res) => {
const type = req.query.type;
const page = req.query.page;
const uid = global.yoho.uid || '13549567';
const uid = req.user.uid || '10931021';
orderModel.getOrderData(uid, type, page).then(result => {
res.display('index', {
... ... @@ -32,7 +32,7 @@ const index = (req, res) => {
const detail = (req, res) => {
const code = req.query.code;
const uid = global.yoho.uid || '7394907';
const uid = req.user.uid || '10931021';
orderModel.getOrderDetail(uid, code).then(result => {
res.display('index', {
... ... @@ -50,7 +50,7 @@ const detail = (req, res) => {
const getOrderList = (req, res) => {
const type = req.query.type;
const page = req.query.page;
const uid = global.yoho.uid || '7394907';
const uid = req.user.uid || '10931021';
orderModel.getOrderData(uid, type, page).then(result => {
res.display('order-table', {
... ... @@ -65,7 +65,7 @@ const getOrderList = (req, res) => {
const getOrderTotal = (req, res) => {
const type = req.query.type;
const uid = global.yoho.uid || '7394907';
const uid = req.user.uid || '10931021';
orderModel.getOrderData(uid, type).then(result => {
... ... @@ -78,7 +78,7 @@ const getOrderTotal = (req, res) => {
};
const cancelOrder = (req, res) => {
const uid = global.yoho.uid || '7394907';
const uid = req.user.uid || '10931021';
const code = req.query.orderCode;
orderModel.cancelOrder(uid, code).then(result => {
... ... @@ -87,7 +87,7 @@ const cancelOrder = (req, res) => {
};
const deleteOrder = (req, res) => {
const uid = global.yoho.uid || '7394907';
const uid = req.user.uid || '10931021';
const code = req.query.orderCode;
orderModel.deleteOrder(uid, code).then(result => {
... ... @@ -96,7 +96,7 @@ const deleteOrder = (req, res) => {
};
const getExpressInfo = (req, res) => {
const uid = global.yoho.uid || '7394907';
const uid = req.user.uid || '10931021';
const code = req.query.orderCode;
orderModel.getExpressInfo(uid, code).then(result => {
... ... @@ -111,7 +111,7 @@ const getCancelOrderReason = (req, res) => {
};
const editOrder = (req, res) => {
const uid = global.yoho.uid || '7394907';
const uid = req.user.uid || '10931021';
const query = req.query;
query.uid = uid;
... ...
... ... @@ -11,7 +11,7 @@ const _ = require('lodash');
const index = (req, res, next) => {
const uid = global.yoho.uid || '8050560';
const uid = global.yoho.uid || '8050882';
const page = req.query.page;
returns.getUserReturn(uid, page).then(result => {
... ... @@ -32,7 +32,7 @@ const detail = (req, res, next) => {
};
const refund = (req, res, next) => {
let uid = req.user.uid || '8050560';
let uid = req.user.uid || '8050882';
let code = parseInt(req.params.orderCode, 10) || '160192757';
if (!uid || !code) {
... ... @@ -68,7 +68,7 @@ const refundApply = (req, res, next) => {
const refundDetail = (req, res, next) => {
let applyId = parseInt(req.params.applyId, 10) || '429528',
uid = req.user.uid || '8050560';
uid = req.user.uid || '8050882';
if (!uid || !applyId) {
return next();
... ... @@ -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);
... ... @@ -84,11 +84,11 @@ const refundDetail = (req, res, next) => {
const exchange = (req, res, next) => {
const code = req.params.orderCode;
const uid = req.user.uid || '8050560';
const uid = req.user.uid || '8050882';
returns.getChangeGoodsList(code, uid).then(result => {
res.display('index', {
page: 'returns-change',
page: 'exchange',
isMe: true,
content: Object.assign({
nav: mcHandler.getMeCrumb('我的退/换货'),
... ...
... ... @@ -18,19 +18,19 @@ const helpers = global.yoho.helpers;
const pageSize = 10;
const _reduceArrByProductSku = data => {
const d = [];
d.push(data[0]);
data.reduce((p, c) => { //eslint-disable-line
if (p && c && p.productSku !== c.productSku) {
d.push[c];
}
});
return d;
};
// const _reduceArrByProductSku = data => {
// const d = [];
//
// d.push(data[0]);
//
// data.reduce((p, c) => { //eslint-disable-line
// if (p && c && p.productSku !== c.productSku) {
// d.push[c];
// }
// });
//
// return d;
// };
const getUserReturn = (uid, page) => {
... ... @@ -190,7 +190,9 @@ const _setRefundGoodList = (data) => {
};
const _setRefundDetailData = (data) => {
let resData = {};
let resData = {
id: data.id || 0
};
switch (data.status) {
case 10:
... ... @@ -212,6 +214,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;
};
... ... @@ -266,18 +289,19 @@ const getRefundDetailData = (applyId, uid) => {
return returnsAPI.getRefundDetailAsync(applyId, uid).then(result => {
let resData = {};
Object.assign(resData, _setSideMenu('我的退/换货'));
resData = {
title: '退货申请',
refundDetail: {}
};
Object.assign(resData, _setSideMenu('我的退/换货'));
if (result.data) {
// console.log(_setRefundDetailData(result.data));
let data = result.data;
Object.assign(resData.refundDetail, _setReturnStatus(result.data.statusList));// 头部
// console.log(_setRefundDetailData(result.data));
Object.assign(resData.refundDetail, _setReturnStatus(data.statusList, !data.status));
Object.assign(resData.refundDetail, _setRefundDetailData(result.data));
Object.assign(resData.refundDetail, _setRefundDetailData(data));
}
return {returns: resData};
... ... @@ -319,23 +343,24 @@ const getProductInfo = (productId, productSkn) => {
const getChangeGoodsList = (orderCode, uid) => {
return returnsAPI.getChangeGoodsListAsync(orderCode, uid).then(result => {
const basicData = {
title: '申请退货'
title: '申请货'
};
let data;
console.log(result);
if (result && result.data) {
data = camelCase(result.data);
data.goodsList = _reduceArrByProductSku(data.goodsList);
// data.goodsList = _reduceArrByProductSku(data.goodsList);
data.hidePrice = true;
data.goodsList.forEach(good => {
good.showCheckbox = true;
good.hidePrice = true;
good.buyNumber = good.num;
// good.buyNumber = good.num;
good.buyNumber = 1;
});
}
... ...
... ... @@ -27,8 +27,10 @@
{{/if}}
{{#if showEditOption}}
<p class="subtext">评价晒单</p>
<p class="subtext">申请退货</p>
<a href="/return/exchange?code={{orderCode}}&id={{productId}}&skn={{productSkn}}">
<a href="/me/return/refund/{{orderCode}}">
<p class="subtext">申请退货</p>
</a>
<a href="/me/return/exchange/{{orderCode}}">
<p class="subtext">申请换货</p>
</a>
<p class="subtext delete">删除订单</p>
... ...
{{# 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}}
... ...
... ... @@ -9,35 +9,41 @@
<li class="change-num">换货数量</li>
</ul>
{{#goodsList}}
<div class="table-body">
<div class="goods-container no-price" data-id="{{productId}}" data-skn="{{productSkn}}">
{{# showCheckbox}}
{{> icon/checkbox}}
<!--
<span class="iconfont checkbox {{#if checked}}checked{{/if}}">{{#if checked}}&#xe602;{{^}}&#xe601;{{/if}}</span>
-->
{{/ showCheckbox}}
{{> order/good-info}}
<div class="sub-column">
退货原因
<div class="change-info-box">
<div class="table-body">
<div class="goods-container no-price" data-id="{{productId}}" data-skn="{{productSkn}}">
{{# showCheckbox}}
{{> icon/checkbox}}
<!--
<span class="iconfont checkbox {{#if checked}}checked{{/if}}">{{#if checked}}&#xe602;{{^}}&#xe601;{{/if}}</span>
-->
{{/ showCheckbox}}
{{> order/good-info}}
<div class="sub-column">
{{# ../this}}
{{> returns/change-reason}}
{{/ ../this}}
</div>
<div class="sub-column number">
<span class="minus">-</span>
<span class="value">{{changeNum}}</span>
<span class="plus">+</span>
</div>
</div>
<div class="sub-column">
数量
</div>
</div>
</div>
<div class="form">
<div class="group color">
<span class="title">
<span class="artirisk">*</span>
换货Color: <span class="color-text" data-color={{colorId}}>{{colorName}}</span>
</span>
</div>
<div class="group size">
<span class="title">
<span class="artirisk">*</span>
换货Size: <span class="size-text" data-size="{{sizeId}}">{{sizeName}}</span>
</span>
<div class="form">
<div class="group color">
<span class="title">
<span class="asterisk">*</span>
换货Color: <span class="color-text" data-color={{colorId}}>{{colorName}}</span>
</span>
</div>
<div class="group size">
<span class="title">
<span class="asterisk">*</span>
换货Size: <span class="size-text" data-size="{{sizeId}}">{{sizeName}}</span>
</span>
</div>
</div>
</div>
{{/goodsList}}
... ...
<select id="exchange-reasons" name="exchange-reasons">
<option value="0">请选择换货原因</option>
{{# exchangeReason}}
<option value="{{id}}">{{name}}</option>
{{/ exchangeReason}}
</select>
... ...
var colorTpl = require('../../tpl/me/color-list.hbs');
var sizeTpl = require('../../tpl/me/size-list.hbs');
// var numCtrl = {
// valueEl: $('.number .value'),
// btn: {
// minus: $('.number .minus'),
// plus: $('.number .plus')
// },
// scope: {
// 1: {
// min: true,
// do: function(t) {
// t.btn.minus.addClass('disable');
// }
// }
// },
// initNumberScope: function() {
// var maxValue = this.valueEl.text();
//
// this.btn.plus.addClass('disable');
//
// this.scope[maxValue] = {
// max: true,
// do: function(t) {
// t.btn.plus.addClass('disable');
// }
// };
// },
// bindNumberEvent: function() {
// var $val = this.valueEl;
// var val = parseInt($val.text(), 10);
// var scope = this.scope;
// var that = this;
//
//
// this.btn.minus.on('click', function() {
// if ($(this).hasClass('disable')) {
// return;
// }
//
// if (that.btn.plus.hasClass('disable')) {
// that.btn.plus.removeClass('disable');
// }
//
// val -= 1;
// $val.text(val);
//
// if (scope[val] && scope[val].min) {
// scope[val].do(that);
// }
// });
//
// this.btn.plus.on('click', function() {
// if ($(this).hasClass('disable')) {
// return;
// }
//
// if (that.btn.minus.hasClass('disable')) {
// that.btn.minus.removeClass('disable');
// }
//
// val += 1;
// $val.text(val);
//
// if (scope[val] && scope[val].max) {
// scope[val].do(that);
// }
// });
// },
// init: function() {
// this.initNumberScope();
// this.bindNumberEvent();
// }
// };
function setActive($item) {
var color = $item.find('.color-text').data('color');
var size = $item.find('.size-text').data('size');
var $colorList = $item.find('.color-list');
var $sizeList = $item.find('.size-list');
$colorList.find('.img-box').each(function(i, box) {
var $box = $(box);
if ($box.find('img').data('color') === color) {
$colorList.find('.img-box').eq(i).addClass('active');
return false;
}
});
$sizeList.find('span').each(function(i, s) {
var $size = $(s);
if ($size.data('size') === size) {
$sizeList.find('span').eq(i).addClass('active');
}
});
}
function renderList(data) {
var cTpl;
var sTpl;
var $el = $('.goods-container');
var resultId;
var resultSkn;
if (data) {
resultId = data.productId;
resultSkn = data.productSkn;
$el.each(function(index, item) {
var $item = $(item);
var id = $item.data('id');
var skn = $item.data('skn');
var $form;
if (id === resultId && skn === resultSkn) {
$form = $item.closest('.table-body').next('.form');
if (!$form.find('.color-list').length) {
cTpl = colorTpl(data);
sTpl = sizeTpl(data);
$form.find('.group.color').append(cTpl);
$form.find('.group.size').append(sTpl);
setActive($form);
}
}
});
}
}
function bindColorEvent() {
$('.color-list img').off('clice').on('click', function() {
var $this = $(this);
var $sizeList = $this.closest('.group').next('.group').find('.size-list');
var index = $this.data('index');
var colorId = $this.data('color');
var colorText = $this.attr('alt');
var $c = $this.closest('.group.color').find('.color-text');
$c.text(colorText);
$c.attr('data-color', colorId);
$this.closest('.color-list').find('.active').removeClass('active');
$this.parent().addClass('active');
$sizeList.removeClass('hide');
$sizeList.addClass('hide');
$sizeList.eq(index).removeClass('hide');
});
}
function initSizeId() {
var s = $('.size-list:not("hide")').find('span').eq(0).data('size');
$('.group.size .size-text').eq(0).attr('data-size', s);
}
function bindSizeEvent() {
$('.size-list span').off('click').on('click', function() {
var $this = $(this);
var s = $this.text();
var id = $this.data('size');
var $s = $this.closest('.group.size').find('.size-text');
$this.parent().find('.active').removeClass('active');
$this.addClass('active');
$s.text(s);
$s.attr('data-size', id);
});
}
function getProductInfo() {
var $el = $('.goods-container');
$el.each(function(index, item) {
var id = $(item).data('id');
var skn = $(item).data('skn');
if (id && skn) {
$.ajax({
url: '/me/return/getProductInfo',
data: {
productId: id,
productSkn: skn
}
}).done(function(result) {
if (result.code === 200) {
renderList(result.data);
initSizeId();
bindColorEvent();
bindSizeEvent();
}
});
}
});
}
getProductInfo();
// numCtrl.init();
... ...
var colorTpl = require('../../tpl/me/color-list.hbs');
var sizeTpl = require('../../tpl/me/size-list.hbs');
// var scope = {
// 1: {
// min: true,
// do: function() {
// console.log('min');
// }
// }
// }
function renderList(data) {
var cTpl;
var sTpl;
var $c = $('.group.color');
var $s = $('.group.size');
if (data) {
cTpl = colorTpl(data);
sTpl = sizeTpl(data);
$c.append(cTpl);
$s.append(sTpl);
}
}
function bindColorEvent() {
$('.color-list img').on('click', function() {
var $this = $(this);
var $sizeList = $('.size-list');
var index = $this.data('index');
var colorId = $this.data('color');
var colorText = $this.attr('alt');
var $c = $('.group.color .color-text');
$c.text(colorText);
$c.attr('data-color', colorId);
$sizeList.removeClass('hide');
$sizeList.addClass('hide');
$sizeList.eq(index).removeClass('hide');
});
}
function initSizeId() {
var s = $('.size-list:not("hide")').find('span').eq(0).data('size');
$('.group.size .size-text').eq(0).attr('data-size', s);
}
function bindSizeEvent() {
$('.size-list span').on('click', function() {
var $this = $(this);
var s = $this.text();
var id = $this.data('size');
var $s = $('.group.size .size-text');
$s.text(s);
$s.attr('data-size', id);
});
}
// function bindNumberEvent() {
// $('.number .minus').on('click', function() {
// var val = $('.number .value').text();
//
// if (scope[val].min) {
// scope[val].do();
// }
// });
// }
function getProductInfo() {
var $el = $('.goods-container');
var id = $el.data('id');
var skn = $el.data('skn');
if (id && skn) {
$.ajax({
url: '/me/return/getProductInfo',
data: {
productId: id,
productSkn: skn
}
}).done(function(result) {
console.log(result);
if (result.code === 200) {
renderList(result.data);
initSizeId();
bindColorEvent();
bindSizeEvent();
}
});
}
}
getProductInfo();
... ... @@ -99,11 +99,18 @@
font-size: 12px;
}
}
/* 表单必填项提示符 */
.asterisk {
position: relative;
top: 2px;
margin-right: 5px;
color: #c71814 !important;
}
}
@import "address";
@import "order/index";
@import "return/index";
@import "currency";
@import "returns";
@import "exchange";
... ...
... ... @@ -18,13 +18,6 @@
text-align: center !important;
}
.asterisk {
position: relative;
top: 2px;
margin-right: 5px;
color: #c71814 !important;
}
.dialog-title {
padding-bottom: $space;
border-bottom: 1px solid #f1f1f1;
... ...
.return-wrap {
&.change {
.sub-column {
margin-top: 30px;
}
.color-list {
height: 70px;
line-height: 70px;
box-sizing: border-box;
.img-box {
display: inline-block;
width: 24px;
height: 24px;
line-height: 24px;
box-sizing: border-box;
margin-right: 10px;
text-align: center;
cursor: pointer;
img {
width: 20px;
height: 20px;
}
&.active {
border: 2px solid #ccc;
position: relative;
top: -2px;
}
}
}
.asterisk {
margin-right: 0;
}
.group {
&.color {
min-height: 70px;
}
&.size {
min-height: 65px;
}
.title {
font-size: 14px;
color: #1b1b1b;
}
}
.size-list {
height: 65px;
line-height: 65px;
span {
min-width: 25px;
height: 20px;
line-height: 20px;
padding: 0 5px;
box-sizing: border-box;
margin-right: 10px;
border: 1px solid #ccc;
display: inline-block;
text-align: center;
font-size: 12px;
cursor: pointer;
&.active {
background-color: #1b1b1b;
color: #fff;
border-color: #1b1b1b;
}
}
}
}
.iconfont {
&.checkbox {
position: relative;
top: -70px;
margin-right: 10px;
font-size: 14px;
cursor: pointer;
}
}
}
... ...
.returns-wrap {
font-size: 14px;
.returns-status {
padding: 30px 0 80px;
... ... @@ -49,7 +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;
... ...
<div class="color-list">
{{#goodsList}}
<div class="img-box {{#if isActive}}active{{/if}}" >
<img src="{{colorImage}}" alt="{{colorName}}" data-index="{{@index}}" data-color={{colorId}}>
</div>
{{/goodsList}}
</div>
... ...