Authored by 陈轩

Merge remote-tracking branch 'origin/develop' into develop

... ... @@ -32,7 +32,7 @@ const refund = {
code: 200
});
},
setexpress(applyid, uid, expressCompany, expressNumber, expressId) {
setexpress(applyid, uid, expressCompany, expressId, expressNumber) {
return api.get('', {
method: 'app.refund.setexpress',
id: applyid,
... ...
... ... @@ -45,33 +45,33 @@
</div>
</div>
<div class="group-list">
<a class="list-item auth" id="address">
<a class="glist-item auth" id="address">
地址管理
<span class="num">{{address_num}} <span class="icon icon-right"></span></span>
</a>
</div>
<div class="group-list">
<a class="list-item auth" href="/me/collection">
<a class="glist-item auth" href="/me/collection">
收藏的商品
<span class="num">{{product_favorite_total}} <span class="icon icon-right"></span></span>
</a>
<a class="list-item auth" href="/me/collection?tab=brand">
<a class="glist-item auth" href="/me/collection?tab=brand">
收藏的品牌
<span class="num">{{brand_favorite_total}} <span class="icon icon-right"></span></span>
</a>
</div>
<div class="group-list">
<a class="list-item auth" href="/me/mycurrency">
<a class="glist-item auth" href="/me/mycurrency">
YOHO 币
<span class="num">{{yoho_coin_num}} <span class="icon icon-right"></span></span>
</a>
</div>
<div class="group-list">
<a class="list-item" href="/help">
<a class="glist-item" href="/help">
帮助中心
<span class="num"><span class="icon icon-right"></span></span>
</a>
<a class="list-item" href="/me/service">
<a class="glist-item" href="/me/service">
在线客服
<span class="num"><span class="icon icon-right"></span></span>
</a>
... ...
<div class="logistics-page" id="logistics">
<components :is="currentView" :applyid="applyid" :company_id="company_id" :company_name="company_name" company_list='{{company_list}}' keep-alive></components>
<components :is="currentView" :company_id="company_id" :company_name="company_name" applyid='{{applyid}}' company_list='{{company_list}}' keep-alive></components>
</div>
... ...
<div class="deal_main">
<div class="deal-main">
<section class="detail">
第一步:注册&登录
<ul>
... ...
<div class="deal_main">
<div class="deal-main">
<section class="detail">
1、Yoho!BLK全部采用顺丰速运,保证货物快速、安全地送达您的手中。
<br>
... ...
<div class="deal_main">
<div class="deal-main">
<section class="detail">
<h4>商品到达以后可以当场验收商品吗?</h4>
商品支持当面验收,如配送人员不配合您可以选择拒收商品。商品送达后您可当场确认商品与您订购的是否一致。您在验收商品时如发现商品短缺、配送错误、包装破损、商品存在质量问题等,请您向配送人员指出,并当场拒收全部商品,并在送货单上注明原因。相应的赠品和优惠商品应同时拒收,并请您在24小时内与客服联系进一步处理。
... ...
<div class="deal_main">
<div class="deal-main">
<section class="detail">
<h4>服务承诺</h4>
如果您在购物过程中有任何建议或者意见,您可以通过在线客服与我们联系沟通,我们承诺在24小时内与您联系。
... ...
<div class="deal_main">
<div class="deal-main">
<section class="detail">
1、为节省您的宝贵时间及保证账户安全,现Yoho!BLK官网已开通《自助退换货》功能,您可在签收商品的7天内进入官网“我的订单”页面操作退货申请。
<br>
... ...
<div class="deal_main">
<div class="deal-main">
<section class="detail">
<h3>7天无理由退货条例总则</h3>
<br>
... ...
<div class="deal_main">
<div class="deal-main">
<section class="detail">
<h4>支付说明</h4>
1、Yoho!BLK为您提供支付宝进行在线支付,APP另可通过微信支付进行在线支付;
... ...
... ... @@ -55,7 +55,7 @@ module.exports = {
/* 收藏店铺 */
collectShop: (req, res, next) => {
if (!req.user.uid) {
res.json({
return res.json({
code: 403,
message: '未登录'
});
... ...
... ... @@ -118,6 +118,6 @@ module.exports = {
method: 'app.favorite.add'
});
}
return api.get('', finalParams, {code: 200, cache: false});
return api.get('', finalParams);
}
};
... ...
... ... @@ -18,7 +18,7 @@ exports.notFound = () => {
return res.render('error/404', {
module: 'common',
page: 'error',
title: '页面不存在 | Yoho!Buy有货 | 潮流购物逛不停',
title: '页面不存在 | YOHO!BLK | 潮流购物逛不停',
pageFooter: true,
isErr: true
});
... ... @@ -48,7 +48,7 @@ exports.serverError = () => {
err: err,
module: 'common',
page: 'error',
title: '服务器错误 | Yoho!Buy有货 | 潮流购物逛不停',
title: '服务器错误 | YOHO!BLK | 潮流购物逛不停',
pageFooter: true,
isErr: true
});
... ...
... ... @@ -45,10 +45,10 @@
},
"devDependencies": {
"autoprefixer": "^6.4.0",
"babel-core": "^6.13.0",
"babel-core": "^6.13.2",
"babel-loader": "^6.2.4",
"babel-plugin-transform-runtime": "^6.12.0",
"babel-preset-es2015": "^6.13.0",
"babel-preset-es2015": "^6.13.2",
"babel-runtime": "^6.11.6",
"eslint": "^3.2.2",
"eslint-config-yoho": "^1.0.1",
... ... @@ -79,7 +79,7 @@
"shelljs": "^0.7.3",
"style-loader": "^0.13.1",
"stylelint": "^7.1.0",
"stylelint-config-yoho": "^1.2.6",
"stylelint-config-yoho": "^1.2.7",
"stylelint-processor-html": "^1.0.0",
"vue": "1.0.26",
"vue-infinite-scroll": "0.2.3",
... ...
... ... @@ -273,9 +273,6 @@ const intercept = (url) => {
// 首页
if (/\/$/.test(path)) {
yoho.goSetChannel({
channel: qs.channel || 'men'
});
return yoho.goTab({
index: 0
});
... ...
... ... @@ -5,10 +5,10 @@
* @Last Modified time: 2016-08-02 17:42:26
*/
let Vue = require('vue');
Vue.directive('lazy-html', function(html) {
html = html.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, '<img v-lazy="\'$1\'">');
this.$el.innerHTML = html;
this.$vm.$compile(this.$el);
});
module.exports = (Vue) => {
Vue.directive('lazy-html', function(html) {
html = html.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, '<img v-lazy="\'$1\'">');
this.el.innerHTML = html;
this.vm.$compile(this.el);
});
};
... ...
... ... @@ -104,6 +104,13 @@ Vue.filter('convertOrderState', (value) => {
return stateTxt;
});
Vue.filter('toFixed', (value, num) => {
if (typeof value === 'undefined') {
return;
}
return Number(value).toFixed(num || 2);
});
/**
* 转换时间
* yyyy-MM-dd hh:mm:ss
... ...
const Vue = require('vue');
const lazyload = require('vue-lazyload');
const app = require('editorial/detail.vue');
const directive = require('common/vue-directive');
const app = require('product/detail/index.vue');
require('common/vue-filter');
require('common/vue-directive');
Vue.use(lazyload);
Vue.use(directive);
new Vue({
el: '#app',
... ...
var yoho = require('yoho');
var $ = require('jquery');
const util = require('common/util');
if (!yoho.isLogin) {
$('.auth').addClass('no-intercept');
$('.auth').on('click', function() {
... ...
const Vue = require('vue');
const app = require('product/detail/index.vue');
const lazyload = require('vue-lazyload');
const directive = require('common/vue-directive');
const app = require('product/detail/index.vue');
require('common/vue-filter');
require('common/overlay');
Vue.use(lazyload);
Vue.directive('lazy-html', function(html) {
html = html.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/gi, '<img v-lazy="\'$1\'">');
this.el.innerHTML = html;
this.vm.$compile(this.el);
});
Vue.use(directive);
new Vue({
el: '#app',
... ...
... ... @@ -17,6 +17,6 @@
position: absolute;
top: -5px;
left: 100%;
transform: translate3d(-60%,0,0);
transform: translate3d(-60%, 0, 0);
margin: 0;
}
... ...
... ... @@ -93,6 +93,7 @@ ul {
@for $i from 1 to 3 {
.line-clamp-$i {
-webkit-line-clamp: $(i);
@mixin line-clamp;
@mixin line-clamp ;
}
}
... ...
... ... @@ -7,7 +7,6 @@
}
.icon {
/* use !important to prevent issues with browser extensions that change fonts */
font-family: "iconfont" !important;
speak: none;
... ...
.select {
position: fixed;
bottom: 0px;
bottom: 0;
width: 100%;
background: #fff;
z-index: 1001;
... ...
... ... @@ -79,7 +79,7 @@
text-align: right;
color: #b0b0b0;
background: transparent;
border: 1px solid #ffffff;
border: 1px solid #fff;
height: 100%;
flex-direction: row-reverse;
}
... ...
.deal_main {
.deal-main {
margin: 20px 3%;
font-size: 30px;
width: 94%;
... ...
... ... @@ -123,7 +123,7 @@
border-bottom: 1px solid #e0e0e0;
background: #fff;
.list-item {
.glist-item {
display: block;
position: relative;
padding: 0 30px;
... ... @@ -142,7 +142,7 @@
bottom: 0;
width: 100%;
height: 0;
border-top: 1px solid #f0f0f0;
border-top: 1px solid #e0e0e0;
}
&:last-child:after {
... ...
... ... @@ -52,6 +52,9 @@
.num {
width: 440px;
text-align: right;
margin-top: 20px;
height: 50px;
line-height: 50px;
}
}
... ... @@ -84,24 +87,22 @@
border-bottom: 1px solid #e6e6e6;
input {
height: 56px;
height: 60px;
width: 100%;
padding-left: 25px;
border-radius: 20px;
font-size: 22px;
font-size: 26px;
color: #b0b0b0;
background: #eee;
border: none;
}
input::-webkit-input-placeholder {
/* WebKit browsers */
text-align: center;
}
input:-ms-input-placeholder {
/* Internet Explorer 10+ */
text-align: center;
}
... ...
... ... @@ -236,12 +236,12 @@ $white: #fff;
color: #b0b0b0;
}
p:first-of-type{
p:first-of-type {
font-size: 34px;
margin: 50px 0 20px;
}
a{
a {
display: inline-block;
width: 414px;
height: 94px;
... ...
... ... @@ -76,7 +76,7 @@
padding-top: 50px;
}
.header-gap {
height: calc(70 + 50+ 10)px;
height: calc(70 + 50 + 10)px;
}
}
</style>
... ...
... ... @@ -11,8 +11,8 @@
<h2 class="card-label">
<a href="{{item.productId | goodsUrl}}" class="line-clamp-2">{{item.productName}}</a>
</h2>
<span class="good-price" :class="{'old-price': item.marketPrice}" v-if="item.marketPrice">¥ {{item.marketPrice}}</span>
<span class="good-price" :class="{'sale-price': item.marketPrice}">¥ {{item.salesPrice}}</span>
<span class="good-price" :class="{'old-price': item.marketPrice}" v-if="item.marketPrice">¥ {{item.marketPrice | toFixed}}</span>
<span class="good-price" :class="{'sale-price': item.marketPrice}">¥ {{item.salesPrice | toFixed}}</span>
</div>
</li>
</ul>
... ...
<template>
<ul class="list-box">
<li v-for="item in items"><a href="#{{item.index}}">{{item.name}}</a></li>
<li v-for="item in items"><a class="no-intercept" href="#{{item.index}}">{{item.name}}</a></li>
</ul>
</template>
<style>
... ...
... ... @@ -13,7 +13,7 @@
<img :src="item.imgUrl | resize 152 203" alt=""/>
</div>
<div class="fav-info-list">
<span class="title">{{item.title}}</span>
<span class="title line-clamp-2">{{item.title}}</span>
<br/>
<div class="fav-price">
<span class="new-price" v-if="item.discountPrice">{{item.discountPrice}}</span>
... ... @@ -334,10 +334,10 @@
position: relative;
.title {
width: 430px;
width: 98%;
text-overflow: ellipsis;
font-size: 28px;
margin: 0;
margin-top: 10px;
}
.fav-price {
... ...
... ... @@ -7,7 +7,7 @@
</label>
<label>
快递单号
<input class="num" type="number" v-model='num'>
<input class="num" maxlength="20" v-model='num'>
</label>
</form>
<div class="submit" @click="submit">确认</div>
... ...
... ... @@ -32,7 +32,7 @@
// query
url: '/search.json',
order: '',
query: qs.query,
query: decodeURIComponent(qs.query),
page: 0, // 未搜索 page=0; 全部加载完 page = totalPage; 无数据: page !=0 && productList.length=0
totalPage: null,
... ...
... ... @@ -17,6 +17,7 @@
color: #fff;
background-color: #ccc;
position: relative;
background-size: cover;
.brand-bottom {
width: 100%;
... ...