Authored by ccbikai

Merge branch 'release/1.0'

@@ -54,13 +54,15 @@ module.exports = { @@ -54,13 +54,15 @@ module.exports = {
54 infoFile: { 54 infoFile: {
55 name: 'info', 55 name: 'info',
56 level: 'info', 56 level: 'info',
57 - filename: 'logs/info.log' 57 + filename: 'logs/info.log',
  58 + maxFiles: 7
58 }, 59 },
59 errorFile: { 60 errorFile: {
60 name: 'error', 61 name: 'error',
61 level: 'error', 62 level: 'error',
62 filename: 'logs/error.log', 63 filename: 'logs/error.log',
63 - handleExceptions: true 64 + handleExceptions: true,
  65 + maxFiles: 7
64 }, 66 },
65 udp: { // send by udp 67 udp: { // send by udp
66 level: 'debug', // logger level 68 level: 'debug', // logger level
@@ -197,12 +197,6 @@ const matchHeader = (path, qs, titleMap) => { @@ -197,12 +197,6 @@ const matchHeader = (path, qs, titleMap) => {
197 return header; 197 return header;
198 } 198 }
199 199
200 - if (/\/me\/service$/.test(path)) {  
201 - header = titleMap[1];  
202 - header.title.des = 'Yoho!Blk在线客服';  
203 - return header;  
204 - }  
205 -  
206 if (/\/me\/feedback$/.test(path)) { 200 if (/\/me\/feedback$/.test(path)) {
207 header = titleMap[3]; 201 header = titleMap[3];
208 header.title.des = '意见反馈'; 202 header.title.des = '意见反馈';
@@ -219,13 +213,6 @@ const matchHeader = (path, qs, titleMap) => { @@ -219,13 +213,6 @@ const matchHeader = (path, qs, titleMap) => {
219 return header; 213 return header;
220 } 214 }
221 215
222 - // 处理 feature.yoho.cn 等域名下的站外链接  
223 - if (/^(https?:)?\/\//i.test(path) && !/yohoblk\.com/.test(path)) {  
224 - header = titleMap[1];  
225 - header.title.des = qs.title || '';  
226 - return header;  
227 - }  
228 -  
229 return header; 216 return header;
230 }; 217 };
231 218
@@ -280,10 +267,25 @@ const intercept = (url) => { @@ -280,10 +267,25 @@ const intercept = (url) => {
280 }); 267 });
281 } 268 }
282 269
283 - yoho.goNewPage({ 270 + const args = {
284 header: matchHeader(path, qs, titleMap), 271 header: matchHeader(path, qs, titleMap),
285 url: /^(https?:)?\/\//i.test(url) ? url : origin + url 272 url: /^(https?:)?\/\//i.test(url) ? url : origin + url
286 - }); 273 + };
  274 +
  275 + if (/\/me\/service$/.test(path)) {
  276 + args.header = titleMap[1];
  277 + args.header.title.des = 'Yoho!Blk在线客服';
  278 + args.showLoading = 'no';
  279 + }
  280 +
  281 + // 处理 feature.yoho.cn 等域名下的站外链接
  282 + if (/^(https?:)?\/\//i.test(path) && !/m\.yohoblk\.com/.test(path)) {
  283 + args.header = titleMap[1];
  284 + args.header.title.des = qs.title || '';
  285 + args.showLoading = 'no';
  286 + }
  287 +
  288 + yoho.goNewPage(args);
287 } else { 289 } else {
288 location.href = url; 290 location.href = url;
289 } 291 }
@@ -44,7 +44,7 @@ module.exports = (Vue) => { @@ -44,7 +44,7 @@ module.exports = (Vue) => {
44 let url = `/product/shop/${value}`; 44 let url = `/product/shop/${value}`;
45 45
46 if (kind === 'shop') { 46 if (kind === 'shop') {
47 - url = `/product/shop/favorite?id=${value}`; 47 + url = `/product/shop/favorite?id=${value || ''}`;
48 } 48 }
49 return url; 49 return url;
50 }); 50 });
@@ -3,11 +3,9 @@ @@ -3,11 +3,9 @@
3 padding-top: 20px; 3 padding-top: 20px;
4 4
5 .coin-total { 5 .coin-total {
6 - padding: 40px 0; 6 + padding: 38px 0;
7 background: white; 7 background: white;
8 text-align: center; 8 text-align: center;
9 - border-top: 1px solid #eee;  
10 - border-bottom: 1px solid #eee;  
11 9
12 p:first-child { 10 p:first-child {
13 font-size: 34px; 11 font-size: 34px;
@@ -39,10 +37,10 @@ @@ -39,10 +37,10 @@
39 .coin-detail-list { 37 .coin-detail-list {
40 padding: 0 30px; 38 padding: 0 30px;
41 background: white; 39 background: white;
42 - border-top: 1px solid #eee;  
43 border-bottom: 1px solid #eee; 40 border-bottom: 1px solid #eee;
44 41
45 li { 42 li {
  43 + height: 128px;
46 display: flex; 44 display: flex;
47 padding: 20px 0; 45 padding: 20px 0;
48 border-bottom: 1px solid #eee; 46 border-bottom: 1px solid #eee;
@@ -164,7 +164,7 @@ body { @@ -164,7 +164,7 @@ body {
164 } 164 }
165 165
166 .goods-status { 166 .goods-status {
167 - background-color: #4A90E2; 167 + background-color: #4a90e2;
168 color: #fffefe; 168 color: #fffefe;
169 font-size: 22px; 169 font-size: 22px;
170 border-radius: 15px; 170 border-radius: 15px;
@@ -181,17 +181,17 @@ body { @@ -181,17 +181,17 @@ body {
181 181
182 li { 182 li {
183 font-size: 28px; 183 font-size: 28px;
  184 + margin-left: 50%;
184 185
185 label { 186 label {
186 display: inline-block; 187 display: inline-block;
187 - width: 180px;  
188 text-align: left; 188 text-align: left;
  189 + float: left;
189 color: #b0b0b0; 190 color: #b0b0b0;
190 } 191 }
191 192
192 span { 193 span {
193 display: inline-block; 194 display: inline-block;
194 - width: 120px;  
195 text-align: right; 195 text-align: right;
196 } 196 }
197 197
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <swipe class="swipe swipe-{{floor.length}}"> 3 <swipe class="swipe swipe-{{floor.length}}">
4 <swipe-item v-for="item in floor" v-bind:style="{backgroundColor: item.bgColor}"> 4 <swipe-item v-for="item in floor" v-bind:style="{backgroundColor: item.bgColor}">
5 <a href="{{item.url}}" title="{{item.title}}"> 5 <a href="{{item.url}}" title="{{item.title}}">
6 - <img v-lazy="item.src | resize 750 365"> 6 + <img v-bind:src="item.src | resize 750 365">
7 </a> 7 </a>
8 </swipe-item> 8 </swipe-item>
9 </swipe> 9 </swipe>
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 <div class="list-item exchange-mode"> 17 <div class="list-item exchange-mode">
18 <span>换货方式</span> 18 <span>换货方式</span>
19 <i class="icon icon-right right"></i> 19 <i class="icon icon-right right"></i>
20 - <select class="right" v-model="deliveryTpye"> 20 + <select class="right select-mode" v-model="deliveryTpye">
21 <option v-for="mode in delivery" :value="mode.id">{{mode.name}}</option> 21 <option v-for="mode in delivery" :value="mode.id">{{mode.name}}</option>
22 </select> 22 </select>
23 </div> 23 </div>
@@ -302,7 +302,7 @@ @@ -302,7 +302,7 @@
302 } 302 }
303 303
304 .exchange-info { 304 .exchange-info {
305 - margin: 30px 0; 305 + margin: 20px 0;
306 background-color: #fff; 306 background-color: #fff;
307 } 307 }
308 308
@@ -327,6 +327,10 @@ @@ -327,6 +327,10 @@
327 .icon:before { 327 .icon:before {
328 vertical-align: -5px; 328 vertical-align: -5px;
329 } 329 }
  330 +
  331 + .select-mode {
  332 + margin-right: 25px;
  333 + }
330 } 334 }
331 335
332 </style> 336 </style>
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <div class="field" @click="openFeatureSelector(product.productId)"> 4 <div class="field" @click="openFeatureSelector(product.productId)">
5 换货的颜色尺码 5 换货的颜色尺码
6 <div class="right"> 6 <div class="right">
7 - <span v-if="product.change">颜色:{{product.change.color}} 尺码:{{product.change.size}}</span> 7 + <span class="change" v-if="product.change">颜色:{{product.change.color}} 尺码:{{product.change.size}}</span>
8 <i class="icon icon-right"></i> 8 <i class="icon icon-right"></i>
9 </div> 9 </div>
10 </div> 10 </div>
@@ -64,6 +64,7 @@ @@ -64,6 +64,7 @@
64 padding: 0 30px; 64 padding: 0 30px;
65 background-color: #fff; 65 background-color: #fff;
66 font-size: 32px; 66 font-size: 32px;
  67 +
67 &:after { 68 &:after {
68 position: absolute; 69 position: absolute;
69 z-index: 1; 70 z-index: 1;
@@ -78,6 +79,11 @@ @@ -78,6 +79,11 @@
78 .field .right { 79 .field .right {
79 color: #b0b0b0; 80 color: #b0b0b0;
80 } 81 }
  82 +
  83 + .change {
  84 + display: inline-block;
  85 + margin-right: 14px;
  86 + }
81 } 87 }
82 88
83 </style> 89 </style>
@@ -394,7 +394,7 @@ @@ -394,7 +394,7 @@
394 } 394 }
395 395
396 .new-price { 396 .new-price {
397 - color: #000; 397 + color: #d1021c;
398 font-size: 24px; 398 font-size: 24px;
399 } 399 }
400 400
@@ -191,8 +191,6 @@ @@ -191,8 +191,6 @@
191 font-size: 32px; 191 font-size: 32px;
192 line-height: 90px; 192 line-height: 90px;
193 background: #fff; 193 background: #fff;
194 - border-top: 1px solid #eee;  
195 - border-bottom: 1px solid #eee;  
196 } 194 }
197 195
198 .return-amount-info { 196 .return-amount-info {
@@ -205,7 +203,7 @@ @@ -205,7 +203,7 @@
205 .return-amount-item { 203 .return-amount-item {
206 position: relative; 204 position: relative;
207 width: 100%; 205 width: 100%;
208 - height: 90px; 206 + height: 88px;
209 207
210 &:after { 208 &:after {
211 content: ""; 209 content: "";
@@ -238,6 +236,7 @@ @@ -238,6 +236,7 @@
238 236
239 select { 237 select {
240 direction: rtl; 238 direction: rtl;
  239 + margin-right: 24px;
241 } 240 }
242 } 241 }
243 } 242 }
@@ -54,8 +54,6 @@ @@ -54,8 +54,6 @@
54 54
55 .product-list { 55 .product-list {
56 margin-top: -4px; 56 margin-top: -4px;
57 - border-top: 1px solid #eee;  
58 - border-bottom: 1px solid #eee;  
59 } 57 }
60 58
61 </style> 59 </style>
@@ -8,13 +8,13 @@ @@ -8,13 +8,13 @@
8 <slot name="type">退货原因</slot> 8 <slot name="type">退货原因</slot>
9 9
10 <span class="icon icon-right"></span> 10 <span class="icon icon-right"></span>
11 - <select v-model="product.reason.id" name="reason"> 11 + <select class="reason" v-model="product.reason.id" name="reason">
12 <option v-for="reason in reasons" v-bind:value="reason.id" selected="{{reason.id === product.reason.id}}">{{reason.name}}</option> 12 <option v-for="reason in reasons" v-bind:value="reason.id" selected="{{reason.id === product.reason.id}}">{{reason.name}}</option>
13 </select> 13 </select>
14 </div> 14 </div>
15 <template v-if="specialReasons.indexOf(product.reason.id) !== -1"> 15 <template v-if="specialReasons.indexOf(product.reason.id) !== -1">
16 <div class="remark"> 16 <div class="remark">
17 - <textarea v-model="product.remark" rows="3" max-length="100" placeholder="原因说明"></textarea> 17 + <textarea v-model="product.remark" rows="4" max-length="100" placeholder="原因说明"></textarea>
18 </div> 18 </div>
19 <div class="image-list clearfix"> 19 <div class="image-list clearfix">
20 <div class="image-item" v-for="image in imageListForShow"> 20 <div class="image-item" v-for="image in imageListForShow">
@@ -83,14 +83,14 @@ @@ -83,14 +83,14 @@
83 font-size: 32px; 83 font-size: 32px;
84 line-height: 90px; 84 line-height: 90px;
85 background: #f6f6f6; 85 background: #f6f6f6;
  86 +
86 &:after { 87 &:after {
87 content: ""; 88 content: "";
88 display: block; 89 display: block;
89 width: 100%; 90 width: 100%;
90 height: 30px; 91 height: 30px;
91 - border-top: 1px solid #eee;  
92 - border-bottom: 1px solid #eee;  
93 } 92 }
  93 +
94 .tip { 94 .tip {
95 position: relative; 95 position: relative;
96 padding: 0 30px; 96 padding: 0 30px;
@@ -115,15 +115,7 @@ @@ -115,15 +115,7 @@
115 width: 100%; 115 width: 100%;
116 height: 90px; 116 height: 90px;
117 background: #fff; 117 background: #fff;
118 - &:after {  
119 - content: "";  
120 - position: absolute;  
121 - left: 0;  
122 - bottom: -1px;  
123 - width: 690px;  
124 - height: 0;  
125 - border-bottom: 1px solid #eee;  
126 - } 118 +
127 .icon, 119 .icon,
128 select { 120 select {
129 direction: rtl; 121 direction: rtl;
@@ -132,14 +124,19 @@ @@ -132,14 +124,19 @@
132 line-height: 90px; 124 line-height: 90px;
133 color: #b0b0b0; 125 color: #b0b0b0;
134 } 126 }
  127 +
  128 + .reason {
  129 + margin-right: 25px;
  130 + }
135 } 131 }
136 .remark { 132 .remark {
137 margin-top: 20px; 133 margin-top: 20px;
138 padding: 0 30px; 134 padding: 0 30px;
139 background: #fff; 135 background: #fff;
140 - border-top: 1px solid #eee; 136 + height: 190px;
  137 +
141 textarea { 138 textarea {
142 - margin-top: 30px; 139 + margin-top: 25px;
143 width: 100%; 140 width: 100%;
144 font-size: 24px; 141 font-size: 24px;
145 line-height: 40px; 142 line-height: 40px;
@@ -149,16 +146,20 @@ @@ -149,16 +146,20 @@
149 } 146 }
150 .image-list { 147 .image-list {
151 padding: 30px; 148 padding: 30px;
  149 + padding-top: 5px;
152 background: #fff; 150 background: #fff;
  151 +
153 .image-item { 152 .image-item {
154 position: relative; 153 position: relative;
155 float: left; 154 float: left;
156 - margin-right: 20px;  
157 - width: 150px;  
158 - height: 150px; 155 + margin-right: 25px;
  156 + width: 154px;
  157 + height: 154px;
  158 +
159 &:last-child { 159 &:last-child {
160 margin-right: 0; 160 margin-right: 0;
161 } 161 }
  162 +
162 .icon-close { 163 .icon-close {
163 position: absolute; 164 position: absolute;
164 right: -20px; 165 right: -20px;
@@ -18,10 +18,11 @@ @@ -18,10 +18,11 @@
18 <img :src="entity.brand.brandIco | resize 110 68"/> 18 <img :src="entity.brand.brandIco | resize 110 68"/>
19 19
20 <h2>{{entity.brand.brandName}}</h2> 20 <h2>{{entity.brand.brandName}}</h2>
21 - <a :href="entity.brand.brandDomain | brandUrl">  
22 - 进入店铺 21 + <div class="brand-go">
  22 + <span>进入店铺</span>
23 <span class="icon icon-right"></span> 23 <span class="icon icon-right"></span>
24 - </a> 24 + </div>
  25 + <a :href="entity.brand.brandDomain | brandUrl"></a>
25 </show-box> 26 </show-box>
26 27
27 <show-box v-if="intro.productDescBo"> 28 <show-box v-if="intro.productDescBo">
@@ -217,7 +218,7 @@ @@ -217,7 +218,7 @@
217 line-height: $lh; 218 line-height: $lh;
218 } 219 }
219 220
220 - a { 221 + .brand-go {
221 float: right; 222 float: right;
222 font-size: 28px; 223 font-size: 28px;
223 line-height: $lh; 224 line-height: $lh;
@@ -227,6 +228,14 @@ @@ -227,6 +228,14 @@
227 .icon-right { 228 .icon-right {
228 margin-left: 30px; 229 margin-left: 30px;
229 } 230 }
  231 +
  232 + a {
  233 + position: absolute;
  234 + top: 0;
  235 + right: 0;
  236 + bottom: 0;
  237 + left: 0;
  238 + }
230 } 239 }
231 240
232 .product-detail-desc { 241 .product-detail-desc {
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 </template> 5 </template>
6 <style> 6 <style>
7 .show-box { 7 .show-box {
  8 + position: relative;
8 margin-top: 20px; 9 margin-top: 20px;
9 background: #fff; 10 background: #fff;
10 border-top: 1px solid #eee; 11 border-top: 1px solid #eee;