Authored by 郭成尧

coupon-new-style

... ... @@ -112,7 +112,7 @@ class BuyNowController {
});
if (autoSelectCouponCodeStr) {
orderInfo.couponCode = autoSelectCouponCodeStr;
orderInfo.coupon_code = autoSelectCouponCodeStr;
res.cookie('order-info', JSON.stringify(orderInfo), actCkOpthn);
}
... ...
... ... @@ -101,7 +101,7 @@ exports.orderEnsure = (req, res, next) => {
}
if (autoSelectCouponCodeStr) {
orderInfo.couponCode = autoSelectCouponCodeStr;
orderInfo.coupon_code = autoSelectCouponCodeStr;
res.cookie('order-info', JSON.stringify(orderInfo), actCkOpthn);
}
... ...
... ... @@ -4,8 +4,19 @@ const headerModel = require('../../../doraemon/models/header'); // 头部model
const CouponNewModel = require('../models/coupon-new');
const helpers = global.yoho.helpers;
const _couponProcess = (couponList) => {
/**
* 优惠券数据处理
*/
const _couponProcess = (couponList, type) => {
_.map(couponList, coupon => {
if (type === 'use') {
coupon.is_used = true;
}
if (type === 'use' || coupon.is_overtime === 'Y') {
coupon.usedOrOvertime = true;
}
coupon.useNowLink = helpers.urlFormat(`/list/cc${coupon.coupon_code}-cd${coupon.coupon_id}?intro_text=以下商品可使用【${coupon.coupon_name}】优惠券&title=优惠活动商品`, '', null); // eslint-disable-line
return coupon;
});
... ... @@ -81,7 +92,7 @@ class CouponNew {
let couponsList = _.get(couponApi, 'data.couponList', []);
if (couponsList && couponsList.length) {
couponsList = _couponProcess(couponsList);
couponsList = _couponProcess(couponsList, type);
res.render('coupons/coupons', {
couponsList,
layout: false
... ...
<section class="coupon-section" data-code="{{coupon_code}}" data-id="{{coupon_id}}">
<div class="coupon{{#isEqualOr is_overtime 'Y'}} coupon-overtime{{/isEqualOr}}">
<div class="coupon-left{{#isEqualOr is_overtime 'N'}}{{#isEqualOr coupon_type '1'}} coupon-left-activity{{/isEqualOr}}{{#isEqualOr coupon_type '5'}} coupon-left-freight{{/isEqualOr}}{{#isEqualOr coupon_type '6'}} coupon-left-shop{{/isEqualOr}}{{/isEqualOr}}">
<div class="coupon{{#isEqualOr is_overtime 'Y'}} coupon-overtime{{/isEqualOr}}{{#if is_used}} coupon-used{{/if}}">
<div class="coupon-left{{#unless usedOrOvertime}}{{#isEqualOr coupon_type '1'}} coupon-left-activity{{/isEqualOr}}{{#isEqualOr coupon_type '5'}} coupon-left-freight{{/isEqualOr}}{{#isEqualOr coupon_type '6'}} coupon-left-shop{{/isEqualOr}}{{/unless}}">
<p class="value">{{#unlessor coupon_type '5'}}¥{{/unlessor}}<span>{{coupon_value_str}}</span></p>
{{#if use_rule}}
<p class="threshold">{{use_rule}}</p>
... ... @@ -19,10 +19,14 @@
<span class="tip"></span>
</div>
{{#isEqualOr is_overtime 'Y'}}
<div class="stamp"></div>
<div class="stamp overtime-stamp"></div>
{{^}}
{{#if is_used}}
<div class="stamp used-stamp"></div>
{{^}}
<a href="{{useNowLink}}" class="use-now">立即使用</a>
<span class="top-tip"></span>
{{/if}}
{{/isEqualOr}}
</div>
<ul class="coupon-intro hide">
... ...
... ... @@ -155,6 +155,7 @@ class ConponController extends Page {
let couponValidHbsHtml = $(result);
couponValidHbsHtml.on('click', '.show-intro-btn', this.showIntro.bind(this));
if (scroll) {
this.view.couponList.append(couponValidHbsHtml);
} else {
... ...
... ... @@ -225,7 +225,7 @@ body {
.top-tip {
width: 84px;
height: 84px;
background-image: resolve("home/coupon/top-tip@2x.png");
background-image: resolve("home/coupon/top-tip.png");
background-size: 100% 100%;
position: absolute;
top: 0;
... ...
... ... @@ -227,14 +227,21 @@ body {
right: 20px;
top: 50%;
transform: translateY(-50%);
background-image: resolve("home/coupon/timeout@2x.png");
background-size: 100% 100%;
}
.overtime-stamp {
background-image: resolve("home/coupon/timeout.png");
}
.used-stamp {
background-image: resolve("home/coupon/used.png");
}
.top-tip {
width: 84px;
height: 84px;
background-image: resolve("home/coupon/top-tip@2x.png");
background-image: resolve("home/coupon/top-tip.png");
background-size: 100% 100%;
position: absolute;
top: 0;
... ... @@ -248,6 +255,7 @@ body {
}
}
.coupon-used,
.coupon-overtime {
> .coupon-left > p {
color: #b0b0b0;
... ...