'merage-feature/orderShare'
Showing
22 changed files
with
569 additions
and
53 deletions
@@ -120,6 +120,9 @@ const getCartDelList = (req, res, addsStr, delSkuId) => { | @@ -120,6 +120,9 @@ const getCartDelList = (req, res, addsStr, delSkuId) => { | ||
120 | const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analysis) => { | 120 | const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analysis) => { |
121 | 121 | ||
122 | return _.map(cartGoods, (it) => { | 122 | return _.map(cartGoods, (it) => { |
123 | + it.last_vip_price = transPrice(it.last_vip_price); | ||
124 | + it.sales_price = transPrice(it.sales_price); | ||
125 | + it.last_price = transPrice(it.last_price); | ||
123 | 126 | ||
124 | let goods = { | 127 | let goods = { |
125 | id: it.product_sku, | 128 | id: it.product_sku, |
@@ -131,12 +134,12 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys | @@ -131,12 +134,12 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys | ||
131 | imgCover: it.goods_images ? helpers.image(it.goods_images, 64, 88) : '', | 134 | imgCover: it.goods_images ? helpers.image(it.goods_images, 64, 88) : '', |
132 | productColor: it.factory_goods_name, | 135 | productColor: it.factory_goods_name, |
133 | productSize: it.size_name, | 136 | productSize: it.size_name, |
134 | - productPrice: transPrice(it.last_vip_price), // self::transPrice($value['real_price']); | 137 | + productPrice: it.sales_price, |
135 | productNum: Number(it.buy_number), | 138 | productNum: Number(it.buy_number), |
136 | storageNum: Number(it.storage_number), | 139 | storageNum: Number(it.storage_number), |
137 | isSoldOut: parseInt(it.storage_number, 10) === 0 || parseInt(it.off_shelves, 10) === 1, // 已售罄 | 140 | isSoldOut: parseInt(it.storage_number, 10) === 0 || parseInt(it.off_shelves, 10) === 1, // 已售罄 |
138 | - isVipPrice: it.sales_price !== it.last_vip_price && it.discount_tag === 'V', | ||
139 | - isStuPrice: it.sales_price !== it.last_vip_price && it.discount_tag === 'S', | 141 | + isVipPrice: it.discount_tag === 'V', |
142 | + isStuPrice: it.discount_tag === 'S', | ||
140 | yohoIcon: Number(it.get_yoho_coin) || 0, | 143 | yohoIcon: Number(it.get_yoho_coin) || 0, |
141 | productSubtotal: transPrice(it.last_vip_price * it.buy_number), | 144 | productSubtotal: transPrice(it.last_vip_price * it.buy_number), |
142 | promotionId: it.promotion_id || 0, | 145 | promotionId: it.promotion_id || 0, |
@@ -144,6 +147,12 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys | @@ -144,6 +147,12 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys | ||
144 | isAdvance: isAdvanceCart | 147 | isAdvance: isAdvanceCart |
145 | }; | 148 | }; |
146 | 149 | ||
150 | + // 划线的价格 | ||
151 | + if (it.last_vip_price < it.sales_price) { | ||
152 | + goods.productPrice = it.last_vip_price; | ||
153 | + goods.linePrice = it.sales_price; // 划线的价格 | ||
154 | + } | ||
155 | + | ||
147 | if (it.min_buy_number) { | 156 | if (it.min_buy_number) { |
148 | goods.minBuyNumber = Number(it.min_buy_number); | 157 | goods.minBuyNumber = Number(it.min_buy_number); |
149 | 158 | ||
@@ -173,14 +182,16 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys | @@ -173,14 +182,16 @@ const formatCartGoods = (cartGoods, isAdvanceCart, inValid, isOffShelves, analys | ||
173 | goods.inValid = true; | 182 | goods.inValid = true; |
174 | } else if (it.goods_type === 'gift') { // gift=>是否赠品 && it.isAdvanceBuy | 183 | } else if (it.goods_type === 'gift') { // gift=>是否赠品 && it.isAdvanceBuy |
175 | goods.isGift = true; | 184 | goods.isGift = true; |
176 | - goods.productPrice = transPrice(it.last_price); | 185 | + goods.productPrice = it.last_price; |
186 | + goods.linePrice = it.sales_price; // 划线的价格 | ||
177 | goods.productSubtotal = it.subtotal ? transPrice(it.subtotal) : goods.productPrice; | 187 | goods.productSubtotal = it.subtotal ? transPrice(it.subtotal) : goods.productPrice; |
178 | } else if (it.goods_type === 'price_gift') { // price_gift=>是否加价购 | 188 | } else if (it.goods_type === 'price_gift') { // price_gift=>是否加价购 |
179 | goods.isPriceGift = true; | 189 | goods.isPriceGift = true; |
180 | - goods.productPrice = transPrice(it.last_price); | 190 | + goods.productPrice = it.last_price; |
191 | + goods.linePrice = it.sales_price; // 划线的价格 | ||
181 | goods.productSubtotal = it.subtotal ? transPrice(it.subtotal) : goods.productPrice; | 192 | goods.productSubtotal = it.subtotal ? transPrice(it.subtotal) : goods.productPrice; |
182 | } else if (it.real_price === 0) { // 免单 | 193 | } else if (it.real_price === 0) { // 免单 |
183 | - goods.productPrice = transPrice(it.sales_price); | 194 | + goods.productPrice = it.sales_price; |
184 | goods.xForOne = true; | 195 | goods.xForOne = true; |
185 | 196 | ||
186 | // 分析用: 商品ID列表 | 197 | // 分析用: 商品ID列表 |
@@ -88,9 +88,20 @@ const handlePaymentInfo = (d, address) => { | @@ -88,9 +88,20 @@ const handlePaymentInfo = (d, address) => { | ||
88 | d.shopping_cart_data.hasCoin = _.round(d.yoho_coin * 100); // 有货币稀释 | 88 | d.shopping_cart_data.hasCoin = _.round(d.yoho_coin * 100); // 有货币稀释 |
89 | 89 | ||
90 | _.forEach(d.goods_list, g => { | 90 | _.forEach(d.goods_list, g => { |
91 | + g.last_vip_price = g.last_vip_price && Number(g.last_vip_price).toFixed(2) || ''; | ||
92 | + g.sales_price = g.sales_price && Number(g.sales_price).toFixed(2) || ''; | ||
93 | + | ||
91 | // link to goods | 94 | // link to goods |
92 | g.linkToGoods = helper.urlFormat(`/product/pro_${g.product_id}_${g.goods_id}/${g.cn_alphabet}.html`, | 95 | g.linkToGoods = helper.urlFormat(`/product/pro_${g.product_id}_${g.goods_id}/${g.cn_alphabet}.html`, |
93 | '', 'item'); | 96 | '', 'item'); |
97 | + g.productPrice = g.sales_price; | ||
98 | + g.isVipPrice = g.discount_tag === 'V'; | ||
99 | + g.isStuPrice = g.discount_tag === 'S'; | ||
100 | + | ||
101 | + // 赠品、加价购 | ||
102 | + if (g.goods_type === 'gift' || g.goods_type === 'price_gift') { | ||
103 | + g.productPrice = g.last_price; | ||
104 | + } | ||
94 | }); | 105 | }); |
95 | resData.goodsList = d.goods_list; | 106 | resData.goodsList = d.goods_list; |
96 | 107 |
@@ -142,7 +142,16 @@ | @@ -142,7 +142,16 @@ | ||
142 | 尺码:<span class="size">{{size_name}}</span> | 142 | 尺码:<span class="size">{{size_name}}</span> |
143 | </td> | 143 | </td> |
144 | <td class="border-top price"> | 144 | <td class="border-top price"> |
145 | - <span class="red">¥ {{round last_price 2}}</span> | 145 | + <p class="red">¥ {{round productPrice 2}}</p> |
146 | + {{#if linePrice}} | ||
147 | + <p class="line-through">¥ {{round linePrice 2}}</p> | ||
148 | + {{/if}} | ||
149 | + {{#isVipPrice}} | ||
150 | + <p class="tip-message">(VIP)</p> | ||
151 | + {{/isVipPrice}} | ||
152 | + {{#isStuPrice}} | ||
153 | + <p class="tip-message">(学生价)</p> | ||
154 | + {{/isStuPrice}} | ||
146 | </td> | 155 | </td> |
147 | <td class="border-top">× {{buy_number}}</td> | 156 | <td class="border-top">× {{buy_number}}</td> |
148 | <td{{#if @first}} class="border-top"{{/if}}></td> | 157 | <td{{#if @first}} class="border-top"{{/if}}></td> |
@@ -211,6 +211,16 @@ const setExpressNumber = (req, res, next) => { | @@ -211,6 +211,16 @@ const setExpressNumber = (req, res, next) => { | ||
211 | 211 | ||
212 | }; | 212 | }; |
213 | 213 | ||
214 | +const refundCompute = (req, res, next) => { | ||
215 | + let uid = req.user.uid; | ||
216 | + let orderCode = req.body.orderCode; | ||
217 | + let goods = req.body.goods; | ||
218 | + | ||
219 | + returnsModel.refundCompute(uid, orderCode, goods).then(d => { | ||
220 | + res.json(d); | ||
221 | + }).catch(next); | ||
222 | +}; | ||
223 | + | ||
214 | module.exports = { | 224 | module.exports = { |
215 | index, | 225 | index, |
216 | refundApply, | 226 | refundApply, |
@@ -224,5 +234,6 @@ module.exports = { | @@ -224,5 +234,6 @@ module.exports = { | ||
224 | getDelivery, | 234 | getDelivery, |
225 | cancelRefund, | 235 | cancelRefund, |
226 | cancelChange, | 236 | cancelChange, |
227 | - setExpressNumber | 237 | + setExpressNumber, |
238 | + refundCompute | ||
228 | }; | 239 | }; |
@@ -365,12 +365,29 @@ const getOrders = (uid, page, limit, type, isPage)=> { | @@ -365,12 +365,29 @@ const getOrders = (uid, page, limit, type, isPage)=> { | ||
365 | newOrder.goods = _.get(order, 'order_goods', []).map((good) => { | 365 | newOrder.goods = _.get(order, 'order_goods', []).map((good) => { |
366 | let newGood = {}; | 366 | let newGood = {}; |
367 | 367 | ||
368 | + good.real_pay_price = good.real_pay_price && Number(good.real_pay_price).toFixed(2) || ''; | ||
369 | + good.sales_price = good.sales_price && Number(good.sales_price).toFixed(2) || ''; | ||
368 | newGood.href = helpers.getUrlBySkc(good.product_skn); | 370 | newGood.href = helpers.getUrlBySkc(good.product_skn); |
369 | newGood.thumb = helpers.image(good.goods_image, 100, 100); | 371 | newGood.thumb = helpers.image(good.goods_image, 100, 100); |
370 | newGood.name = good.product_name; | 372 | newGood.name = good.product_name; |
371 | newGood.color = good.factory_color_name; | 373 | newGood.color = good.factory_color_name; |
372 | newGood.size = good.size_name; | 374 | newGood.size = good.size_name; |
373 | - newGood.price = good.goods_price; | 375 | + |
376 | + newGood.price = good.sales_price;// 默认显示销售价 | ||
377 | + newGood.isVipPrice = good.discount_tag === 'V'; | ||
378 | + newGood.isStuPrice = good.discount_tag === 'S'; | ||
379 | + | ||
380 | + // 划线的价格 | ||
381 | + if (good.real_pay_price < good.sales_price) { | ||
382 | + newGood.price = good.real_pay_price;// 显示分摊价 | ||
383 | + newGood.linePrice = good.sales_price; // 划线的价格 | ||
384 | + } | ||
385 | + | ||
386 | + // 赠品、加价购 | ||
387 | + if (good.goods_type === 'gift' || good.goods_type === 'price_gift') { | ||
388 | + newGood.price = good.real_pay_price;// 显示分摊价 | ||
389 | + newGood.linePrice = good.sales_price; // 划线的价格 | ||
390 | + } | ||
374 | 391 | ||
375 | let buyNum = _.parseInt(good.buy_number); | 392 | let buyNum = _.parseInt(good.buy_number); |
376 | let refundNum = _.parseInt(good.refund_num); | 393 | let refundNum = _.parseInt(good.refund_num); |
@@ -759,19 +776,38 @@ const _getOrderDetail = co(function * (uid, orderId) { | @@ -759,19 +776,38 @@ const _getOrderDetail = co(function * (uid, orderId) { | ||
759 | // 商品信息 | 776 | // 商品信息 |
760 | if (orderDetail.order_goods) { | 777 | if (orderDetail.order_goods) { |
761 | detail.goods = _.get(orderDetail, 'order_goods', []).map((good) => { | 778 | detail.goods = _.get(orderDetail, 'order_goods', []).map((good) => { |
762 | - return { | 779 | + good.real_pay_price = good.real_pay_price && Number(good.real_pay_price).toFixed(2) || ''; |
780 | + good.sales_price = good.sales_price && Number(good.sales_price).toFixed(2) || ''; | ||
781 | + | ||
782 | + let newGood = { | ||
763 | url: helpers.getUrlBySkc(good.product_skn), | 783 | url: helpers.getUrlBySkc(good.product_skn), |
764 | img: helpers.image(good.goods_image, 60, 60), | 784 | img: helpers.image(good.goods_image, 60, 60), |
765 | name: good.product_name, | 785 | name: good.product_name, |
766 | color: good.factory_color_name, | 786 | color: good.factory_color_name, |
767 | size: good.size_name, | 787 | size: good.size_name, |
768 | - price: good.goods_price, | 788 | + price: good.sales_price, // 默认显示销售价 |
789 | + isVipPrice: good.discount_tag === 'V', | ||
790 | + isStuPrice: good.discount_tag === 'S', | ||
769 | coin: good.yoho_give_coin, | 791 | coin: good.yoho_give_coin, |
770 | num: good.buy_number, | 792 | num: good.buy_number, |
771 | sum: good.goods_amount, | 793 | sum: good.goods_amount, |
772 | sku: good.product_sku, | 794 | sku: good.product_sku, |
773 | [_getGoodsTag(good.attribute, good.goods_type)]: true | 795 | [_getGoodsTag(good.attribute, good.goods_type)]: true |
774 | }; | 796 | }; |
797 | + | ||
798 | + // 划线的价格 | ||
799 | + if (good.real_pay_price < good.sales_price) { | ||
800 | + newGood.price = good.real_pay_price;// 显示分摊价 | ||
801 | + newGood.linePrice = good.sales_price; // 划线的价格 | ||
802 | + } | ||
803 | + | ||
804 | + // 赠品、加价购 | ||
805 | + if (good.goods_type === 'gift' || good.goods_type === 'price_gift') { | ||
806 | + newGood.price = good.real_pay_price;// 显示分摊价 | ||
807 | + newGood.linePrice = good.sales_price; // 划线的价格 | ||
808 | + } | ||
809 | + | ||
810 | + return newGood; | ||
775 | }); | 811 | }); |
776 | } | 812 | } |
777 | 813 |
@@ -201,7 +201,6 @@ const getDeliveryAsync = (areaCode, uid, gender, channel) => { | @@ -201,7 +201,6 @@ const getDeliveryAsync = (areaCode, uid, gender, channel) => { | ||
201 | return api.post('', options); | 201 | return api.post('', options); |
202 | }; | 202 | }; |
203 | 203 | ||
204 | - | ||
205 | /** | 204 | /** |
206 | * 发送站内信 | 205 | * 发送站内信 |
207 | * @param int $uid | 206 | * @param int $uid |
@@ -228,6 +227,24 @@ const sendMessage = (uid, title, content, type, verifyKey, sendUid) =>{ | @@ -228,6 +227,24 @@ const sendMessage = (uid, title, content, type, verifyKey, sendUid) =>{ | ||
228 | return api.post('', options); | 227 | return api.post('', options); |
229 | }; | 228 | }; |
230 | 229 | ||
230 | +/** | ||
231 | + * [退货结算] | ||
232 | + * @param {[type]} uid [uid] | ||
233 | + * @param {[type]} orderCode [订单号] | ||
234 | + * @param {[type]} goods [商品详细] | ||
235 | + * @return {[type]} [{}] | ||
236 | + */ | ||
237 | +const refundComputeAsync = (uid, orderCode, goods) => { | ||
238 | + let options = { | ||
239 | + method: 'app.refund.compute', | ||
240 | + order_code: orderCode, | ||
241 | + uid: uid, | ||
242 | + goods: goods | ||
243 | + }; | ||
244 | + | ||
245 | + return api.get('', options); | ||
246 | +}; | ||
247 | + | ||
231 | module.exports = { | 248 | module.exports = { |
232 | getRefundGoodsAsync, | 249 | getRefundGoodsAsync, |
233 | refundSubmit, | 250 | refundSubmit, |
@@ -241,5 +258,6 @@ module.exports = { | @@ -241,5 +258,6 @@ module.exports = { | ||
241 | cancelRefundAsync, | 258 | cancelRefundAsync, |
242 | cancelChangeAsync, | 259 | cancelChangeAsync, |
243 | getDeliveryAsync, | 260 | getDeliveryAsync, |
244 | - setExpressNumberAsync | 261 | + setExpressNumberAsync, |
262 | + refundComputeAsync | ||
245 | }; | 263 | }; |
@@ -41,12 +41,29 @@ const getProductUrlBySkc = (skn) => { | @@ -41,12 +41,29 @@ const getProductUrlBySkc = (skn) => { | ||
41 | 41 | ||
42 | const setDetailGoods = (list) => { | 42 | const setDetailGoods = (list) => { |
43 | let resData = []; | 43 | let resData = []; |
44 | + let goods; | ||
44 | 45 | ||
45 | _.forEach(list, value => { | 46 | _.forEach(list, value => { |
46 | - resData.push({ | 47 | + |
48 | + goods = { | ||
49 | + href: getProductUrlBySkc(value.product_id, value.goods_id, ''), | ||
50 | + thumb: helpers.image(value.goods_image, 60, 60), | ||
47 | name: value.product_name || '', | 51 | name: value.product_name || '', |
52 | + color: value.color_name, | ||
53 | + size: value.size_name, | ||
54 | + yoho_coin_cut_num: value.yoho_coin_cut_num, | ||
55 | + real_pay_price: value.real_pay_price, | ||
56 | + price: value.sales_price, | ||
57 | + goods_type: value.goods_type, | ||
48 | reason: value.reason_name | 58 | reason: value.reason_name |
49 | - }); | 59 | + }; |
60 | + | ||
61 | + if (value.real_pay_price < value.sales_price) { | ||
62 | + goods.price = value.real_pay_price;// 显示分摊价 | ||
63 | + goods.linePrice = value.sales_price; // 划线的价格 | ||
64 | + } | ||
65 | + | ||
66 | + resData.push(goods); | ||
50 | }); | 67 | }); |
51 | 68 | ||
52 | return resData; | 69 | return resData; |
@@ -174,8 +191,7 @@ const getOrderRefund = (orderCode, uid) => { | @@ -174,8 +191,7 @@ const getOrderRefund = (orderCode, uid) => { | ||
174 | if (result.data) { | 191 | if (result.data) { |
175 | let goods = []; | 192 | let goods = []; |
176 | let returnReason = result.data.return_reason, | 193 | let returnReason = result.data.return_reason, |
177 | - remarks = _.split(_.get(result, 'data.special_notice.remark', ''), ' ', 2), // 使用3个空格拆分 | ||
178 | - amount = 0; | 194 | + remarks = _.split(_.get(result, 'data.special_notice.remark', ''), ' ', 2); // 使用3个空格拆分 |
179 | 195 | ||
180 | 196 | ||
181 | _.forEach(_.get(result, 'data.goods_list', []), value => { | 197 | _.forEach(_.get(result, 'data.goods_list', []), value => { |
@@ -185,7 +201,8 @@ const getOrderRefund = (orderCode, uid) => { | @@ -185,7 +201,8 @@ const getOrderRefund = (orderCode, uid) => { | ||
185 | name: value.product_name, | 201 | name: value.product_name, |
186 | color: value.factory_color_name, | 202 | color: value.factory_color_name, |
187 | size: value.size_name, | 203 | size: value.size_name, |
188 | - price: value.last_price, | 204 | + lastPrice: value.last_price, |
205 | + price: value.real_pay_price, | ||
189 | skn: value.product_skn, | 206 | skn: value.product_skn, |
190 | skc: value.product_skc, | 207 | skc: value.product_skc, |
191 | sku: value.product_sku, | 208 | sku: value.product_sku, |
@@ -194,8 +211,6 @@ const getOrderRefund = (orderCode, uid) => { | @@ -194,8 +211,6 @@ const getOrderRefund = (orderCode, uid) => { | ||
194 | reason: returnReason | 211 | reason: returnReason |
195 | }; | 212 | }; |
196 | 213 | ||
197 | - amount += parseInt(value.last_price, 10); | ||
198 | - | ||
199 | // tar note 为每个特殊商品都添加标识 | 214 | // tar note 为每个特殊商品都添加标识 |
200 | if (value.is_limit_skn === 'Y') { | 215 | if (value.is_limit_skn === 'Y') { |
201 | item.specialNoticeBo = { | 216 | item.specialNoticeBo = { |
@@ -226,14 +241,7 @@ const getOrderRefund = (orderCode, uid) => { | @@ -226,14 +241,7 @@ const getOrderRefund = (orderCode, uid) => { | ||
226 | 241 | ||
227 | Object.assign(resData, { | 242 | Object.assign(resData, { |
228 | goods: goods, | 243 | goods: goods, |
229 | - orderCode: orderCode, | ||
230 | - | ||
231 | - // 计算相关支付细节 | ||
232 | - amount: amount - _.get(result, 'data.yoho_coin_num', 0) - | ||
233 | - _.get(result, 'data.coupon_amount', 0), | ||
234 | - yohoCoin: result.data.yoho_coin_num, | ||
235 | - coupon: result.data.coupon_amount, | ||
236 | - cash: amount | 244 | + orderCode: orderCode |
237 | }); | 245 | }); |
238 | 246 | ||
239 | _.forEach(result.data.return_amount_mode, (val, key) => { | 247 | _.forEach(result.data.return_amount_mode, (val, key) => { |
@@ -329,6 +337,8 @@ const getRefundDetail = (applyId, uid) => { | @@ -329,6 +337,8 @@ const getRefundDetail = (applyId, uid) => { | ||
329 | applyTime: data.create_time, | 337 | applyTime: data.create_time, |
330 | payMode: data.source_payment_type_desc || '', | 338 | payMode: data.source_payment_type_desc || '', |
331 | backMode: data.return_amount_mode_name || '', | 339 | backMode: data.return_amount_mode_name || '', |
340 | + return_asset_desc: data.return_asset_desc, | ||
341 | + return_amount: data.return_amount, | ||
332 | goods: setDetailGoods(data.goods_list) | 342 | goods: setDetailGoods(data.goods_list) |
333 | }; | 343 | }; |
334 | 344 | ||
@@ -336,7 +346,8 @@ const getRefundDetail = (applyId, uid) => { | @@ -336,7 +346,8 @@ const getRefundDetail = (applyId, uid) => { | ||
336 | detail.express = { | 346 | detail.express = { |
337 | id: _.get(data, 'notice.express_id', ''), | 347 | id: _.get(data, 'notice.express_id', ''), |
338 | company: _.get(data, 'notice.express_company', ''), | 348 | company: _.get(data, 'notice.express_company', ''), |
339 | - number: _.get(data, 'notice.express_number', '') | 349 | + number: _.get(data, 'notice.express_number', ''), |
350 | + title: _.get(data, 'notice.title', '请填写寄回快递单号,以便我们查询') | ||
340 | }; | 351 | }; |
341 | } | 352 | } |
342 | 353 | ||
@@ -396,7 +407,8 @@ const getChangeDetail = (applyId, uid) => { | @@ -396,7 +407,8 @@ const getChangeDetail = (applyId, uid) => { | ||
396 | id: _.get(data, 'notice.express_id', ''), | 407 | id: _.get(data, 'notice.express_id', ''), |
397 | company: _.get(data, 'notice.express_company', ''), | 408 | company: _.get(data, 'notice.express_company', ''), |
398 | number: _.get(data, 'notice.express_number', ''), | 409 | number: _.get(data, 'notice.express_number', ''), |
399 | - expressDeadLine: _.get(data, 'notice.date', '') | 410 | + expressDeadLine: _.get(data, 'notice.date', ''), |
411 | + title: _.get(data, 'notice.title', '请填写寄回快递单号,以便我们查询') | ||
400 | }; | 412 | }; |
401 | } | 413 | } |
402 | 414 | ||
@@ -525,7 +537,8 @@ const getOrderExchange = (orderCode, uid) => { | @@ -525,7 +537,8 @@ const getOrderExchange = (orderCode, uid) => { | ||
525 | name: value.product_name, | 537 | name: value.product_name, |
526 | color: value.color_name, | 538 | color: value.color_name, |
527 | size: value.size_name, | 539 | size: value.size_name, |
528 | - price: value.last_price, | 540 | + lastPrice: value.last_price, |
541 | + price: value.real_pay_price, | ||
529 | skn: value.product_skn, | 542 | skn: value.product_skn, |
530 | skc: value.product_skc, | 543 | skc: value.product_skc, |
531 | sku: value.product_sku, | 544 | sku: value.product_sku, |
@@ -644,6 +657,10 @@ const setExpressNumber = (id, expressId, expressNumber, uid, expressCompany, isC | @@ -644,6 +657,10 @@ const setExpressNumber = (id, expressId, expressNumber, uid, expressCompany, isC | ||
644 | }); | 657 | }); |
645 | }; | 658 | }; |
646 | 659 | ||
660 | +const refundCompute = (uid, orderCode, goods) => { | ||
661 | + return returnAPI.refundComputeAsync(uid, orderCode, goods); | ||
662 | +}; | ||
663 | + | ||
647 | module.exports = { | 664 | module.exports = { |
648 | getReturnsList, // 我的订单,退换货列表 | 665 | getReturnsList, // 我的订单,退换货列表 |
649 | getOrderRefund, // 我的订单,申请退货 | 666 | getOrderRefund, // 我的订单,申请退货 |
@@ -655,5 +672,6 @@ module.exports = { | @@ -655,5 +672,6 @@ module.exports = { | ||
655 | getDelivery, // 获取换货方式 | 672 | getDelivery, // 获取换货方式 |
656 | getCancelRefund, // 取消退货申请 | 673 | getCancelRefund, // 取消退货申请 |
657 | getCancelChange, // 取消换货申请 | 674 | getCancelChange, // 取消换货申请 |
658 | - setExpressNumber // 设置快递 | 675 | + setExpressNumber, // 设置快递 |
676 | + refundCompute // 退货结算 | ||
659 | }; | 677 | }; |
@@ -91,6 +91,7 @@ router.post('/returns/getDelivery', tabsMiddleware.getCommonHeader, returnsContr | @@ -91,6 +91,7 @@ router.post('/returns/getDelivery', tabsMiddleware.getCommonHeader, returnsContr | ||
91 | router.post('/returns/cancelRefund', tabsMiddleware.getCommonHeader, returnsController.cancelRefund);// 取消退货 | 91 | router.post('/returns/cancelRefund', tabsMiddleware.getCommonHeader, returnsController.cancelRefund);// 取消退货 |
92 | router.post('/returns/cancelChange', tabsMiddleware.getCommonHeader, returnsController.cancelChange);// 取消换货 | 92 | router.post('/returns/cancelChange', tabsMiddleware.getCommonHeader, returnsController.cancelChange);// 取消换货 |
93 | router.post('/returns/setExpressNumber', tabsMiddleware.getCommonHeader, returnsController.setExpressNumber);// 设置快递 | 93 | router.post('/returns/setExpressNumber', tabsMiddleware.getCommonHeader, returnsController.setExpressNumber);// 设置快递 |
94 | +router.post('/returns/api/refundCompute', returnsController.refundCompute); | ||
94 | 95 | ||
95 | router.get('/returns/success', returnsController.index); | 96 | router.get('/returns/success', returnsController.index); |
96 | 97 |
@@ -226,7 +226,6 @@ | @@ -226,7 +226,6 @@ | ||
226 | <a target="_blank" href="{{yohoCoinUrl}}"></a> | 226 | <a target="_blank" href="{{yohoCoinUrl}}"></a> |
227 | </th> | 227 | </th> |
228 | <th class="num">数量</th> | 228 | <th class="num">数量</th> |
229 | - <th class="sum">小计(元)</th> | ||
230 | </thead> | 229 | </thead> |
231 | <tbody> | 230 | <tbody> |
232 | {{# goods}} | 231 | {{# goods}} |
@@ -260,10 +259,23 @@ | @@ -260,10 +259,23 @@ | ||
260 | {{/if}} | 259 | {{/if}} |
261 | </p> | 260 | </p> |
262 | </td> | 261 | </td> |
263 | - <td>{{price}}</td> | 262 | + <td> |
263 | + <p>{{price}}</p> | ||
264 | + {{#if linePrice}} | ||
265 | + <p class="line-through">{{linePrice}}</p> | ||
266 | + {{/if}} | ||
267 | + {{#isVipPrice}} | ||
268 | + <p class="tip-message">(VIP)</p> | ||
269 | + {{/isVipPrice}} | ||
270 | + {{#isStuPrice}} | ||
271 | + <p class="tip-message">(学生价)</p> | ||
272 | + {{/isStuPrice}} | ||
273 | + {{#if free}} | ||
274 | + <span class="free-icon">免单</span> | ||
275 | + {{/if}} | ||
276 | + </td> | ||
264 | <td>{{coin}}个</td> | 277 | <td>{{coin}}个</td> |
265 | <td>{{num}}</td> | 278 | <td>{{num}}</td> |
266 | - <td>{{sum}}</td> | ||
267 | </tr> | 279 | </tr> |
268 | {{/ goods}} | 280 | {{/ goods}} |
269 | </tbody> | 281 | </tbody> |
@@ -33,7 +33,7 @@ | @@ -33,7 +33,7 @@ | ||
33 | <input type="hidden" value="{{skn}}" name="skn"> | 33 | <input type="hidden" value="{{skn}}" name="skn"> |
34 | <input type="hidden" value="{{skc}}" name="skc"> | 34 | <input type="hidden" value="{{skc}}" name="skc"> |
35 | <input type="hidden" value="{{sku}}" name="sku"> | 35 | <input type="hidden" value="{{sku}}" name="sku"> |
36 | - <input type="hidden" value="{{price}}" name="price"> | 36 | + <input type="hidden" value="{{lastPrice}}" name="lastPrice"> |
37 | <input type="hidden" value="{{goods_type_id}}" name="typeid"> | 37 | <input type="hidden" value="{{goods_type_id}}" name="typeid"> |
38 | <input type="checkbox" checked="true"> | 38 | <input type="checkbox" checked="true"> |
39 | {{/unless}} | 39 | {{/unless}} |
@@ -154,7 +154,7 @@ | @@ -154,7 +154,7 @@ | ||
154 | <table id="goods-table" class="goods-list-table"> | 154 | <table id="goods-table" class="goods-list-table"> |
155 | <tr> | 155 | <tr> |
156 | <th colspan="3">请选择退货商品</th> | 156 | <th colspan="3">请选择退货商品</th> |
157 | - <th>单价(元)</th> | 157 | + <th>成交价(元)</th> |
158 | <th>退货原因</th> | 158 | <th>退货原因</th> |
159 | </tr> | 159 | </tr> |
160 | {{# goods}} | 160 | {{# goods}} |
@@ -164,7 +164,7 @@ | @@ -164,7 +164,7 @@ | ||
164 | <input type="hidden" value="{{skn}}" name="skn"> | 164 | <input type="hidden" value="{{skn}}" name="skn"> |
165 | <input type="hidden" value="{{skc}}" name="skc"> | 165 | <input type="hidden" value="{{skc}}" name="skc"> |
166 | <input type="hidden" value="{{sku}}" name="sku"> | 166 | <input type="hidden" value="{{sku}}" name="sku"> |
167 | - <input type="hidden" value="{{price}}" name="price"> | 167 | + <input type="hidden" value="{{lastPrice}}" name="lastPrice"> |
168 | <input type="hidden" value="{{goods_type_id}}" name="typeid"> | 168 | <input type="hidden" value="{{goods_type_id}}" name="typeid"> |
169 | {{#unless isLimitSkn}} | 169 | {{#unless isLimitSkn}} |
170 | <input type="checkbox" checked="true"> | 170 | <input type="checkbox" checked="true"> |
@@ -211,7 +211,7 @@ | @@ -211,7 +211,7 @@ | ||
211 | {{/ goods}} | 211 | {{/ goods}} |
212 | <tr> | 212 | <tr> |
213 | <td colspan="5"> | 213 | <td colspan="5"> |
214 | - <p class="re-tips">订单金额:¥{{amount}} (¥{{cash}} 现金 - ¥{{yohoCoin}} 有货币 - ¥{{coupon}} 优惠券)</p> | 214 | + <p class="re-tips"></p> |
215 | </td> | 215 | </td> |
216 | </tr> | 216 | </tr> |
217 | </table> | 217 | </table> |
@@ -30,7 +30,7 @@ | @@ -30,7 +30,7 @@ | ||
30 | {{/if}} | 30 | {{/if}} |
31 | <div class="detail-container"> | 31 | <div class="detail-container"> |
32 | {{# express}} | 32 | {{# express}} |
33 | - <h2>请填写寄回快递单号,以便我们查询</h2> | 33 | + <h2>{{title}}</h2> |
34 | <div class="courier-code{{#unless id}} in-edit{{/unless}}"> | 34 | <div class="courier-code{{#unless id}} in-edit{{/unless}}"> |
35 | <ul style="display: none;"> | 35 | <ul style="display: none;"> |
36 | {{# expressList}} | 36 | {{# expressList}} |
@@ -55,6 +55,71 @@ | @@ -55,6 +55,71 @@ | ||
55 | </p> | 55 | </p> |
56 | </div> | 56 | </div> |
57 | {{/ express}} | 57 | {{/ express}} |
58 | + | ||
59 | + <h2>商品清单</h2> | ||
60 | + <div class="goods-bill"> | ||
61 | + <table> | ||
62 | + <thead> | ||
63 | + <tr> | ||
64 | + <th class="product-info">商品信息</th> | ||
65 | + <th class="good-price">单价(元)</th> | ||
66 | + <th class="yoho-coin"> | ||
67 | + 返有货币 | ||
68 | + <a target="_blank" href="//www.yohobuy.com/help/detail?id=105"></a> | ||
69 | + </th> | ||
70 | + <th class="num">数量</th> | ||
71 | + {{#unless isChange}} | ||
72 | + <th class="sum">退款金额(元)</th> | ||
73 | + {{/unless}} | ||
74 | + </tr> | ||
75 | + </thead> | ||
76 | + {{# goods}} | ||
77 | + <tr> | ||
78 | + <td> | ||
79 | + <a class="thumb-link" href="{{href}}" target="_blank"> | ||
80 | + <img class="thumb" src="{{image2 thumb}}"> | ||
81 | + {{!-- | ||
82 | + {{#isEqual goods_type 'gift'}} | ||
83 | + <span class="freebie-tag">赠品</span> | ||
84 | + {{/isEqual}} | ||
85 | + | ||
86 | + {{#isEqual goods_type 'price_gift'}} | ||
87 | + <span class="advance-buy-tag">加价购</span> | ||
88 | + {{/isEqual}} | ||
89 | + | ||
90 | + {{#isEqual goods_type 'advance'}} | ||
91 | + <span class="presall-tag">预售</span> | ||
92 | + {{/isEqual}} | ||
93 | + --}} | ||
94 | + </a> | ||
95 | + | ||
96 | + <p class="name-color-size"> | ||
97 | + <a class="name" href="{{href}}" target="_blank">{{name}}</a> | ||
98 | + 颜色:{{color}} 尺码:{{size}} | ||
99 | + {{> home/orders/order-goods-tags}} | ||
100 | + </p> | ||
101 | + </td> | ||
102 | + <td> | ||
103 | + <p class="red">{{round price 2}}</p> | ||
104 | + {{#if linePrice}} | ||
105 | + <p class="line-through">{{round linePrice 2}}</p> | ||
106 | + {{/if}} | ||
107 | + </td> | ||
108 | + <td>{{yoho_coin_cut_num}}</td> | ||
109 | + <td>1</td> | ||
110 | + {{#unless ../isChange}} | ||
111 | + <td>{{round real_pay_price 2}}</td> | ||
112 | + {{/unless}} | ||
113 | + </tr> | ||
114 | + {{/goods}} | ||
115 | + <tr> | ||
116 | + <td colspan="5"> | ||
117 | + <p class="re-tips">{{#if return_amount}}退款总金额:¥{{return_amount}} {{#if return_asset_desc}}({{return_asset_desc}}){{/if}}<span class="iconfont icon-tip-help"></span>{{/if}}</p> | ||
118 | + </td> | ||
119 | + </tr> | ||
120 | + </table> | ||
121 | + </div> | ||
122 | + | ||
58 | <h2>详细信息</h2> | 123 | <h2>详细信息</h2> |
59 | <div class="main-detail"> | 124 | <div class="main-detail"> |
60 | <table> | 125 | <table> |
@@ -60,9 +60,17 @@ | @@ -60,9 +60,17 @@ | ||
60 | </span> | 60 | </span> |
61 | </div> | 61 | </div> |
62 | </div> | 62 | </div> |
63 | - <div class="price{{#if free}} free-price{{/if}}"> | ||
64 | - <em>{{price}}</em> | ||
65 | - | 63 | + <div class="price"> |
64 | + <p>{{price}}</p> | ||
65 | + {{#if linePrice}} | ||
66 | + <p class="line-through">{{linePrice}}</p> | ||
67 | + {{/if}} | ||
68 | + {{#isVipPrice}} | ||
69 | + <p class="tip-message">(VIP)</p> | ||
70 | + {{/isVipPrice}} | ||
71 | + {{#isStuPrice}} | ||
72 | + <p class="tip-message">(学生价)</p> | ||
73 | + {{/isStuPrice}} | ||
66 | {{#if free}} | 74 | {{#if free}} |
67 | <span class="free-icon">免单</span> | 75 | <span class="free-icon">免单</span> |
68 | {{/if}} | 76 | {{/if}} |
@@ -11,7 +11,7 @@ const isTest = process.env.NODE_ENV === 'test'; | @@ -11,7 +11,7 @@ const isTest = process.env.NODE_ENV === 'test'; | ||
11 | 11 | ||
12 | module.exports = { | 12 | module.exports = { |
13 | app: 'web', | 13 | app: 'web', |
14 | - appVersion: '5.7.1', // 调用api的版本 | 14 | + appVersion: '5.8.0', // 调用api的版本 |
15 | port: 6002, | 15 | port: 6002, |
16 | siteUrl: 'http://www.yohobuy.com', | 16 | siteUrl: 'http://www.yohobuy.com', |
17 | cookieDomain: '.yohobuy.com', | 17 | cookieDomain: '.yohobuy.com', |
@@ -66,7 +66,10 @@ | @@ -66,7 +66,10 @@ | ||
66 | {{/eq}} | 66 | {{/eq}} |
67 | </p> | 67 | </p> |
68 | </div> | 68 | </div> |
69 | - <div class="product-price td" style="width:148px;">¥{{productPrice}} | 69 | + <div class="product-price td {{#if linePrice}}line-margin-top{{/if}}" style="width:148px;">¥{{productPrice}} |
70 | + {{#if linePrice}} | ||
71 | + <p class="line-through">¥{{linePrice}}</p> | ||
72 | + {{/if}} | ||
70 | {{#isVipPrice}} | 73 | {{#isVipPrice}} |
71 | <p class="tip-message">(VIP)</p> | 74 | <p class="tip-message">(VIP)</p> |
72 | {{/isVipPrice}} | 75 | {{/isVipPrice}} |
public/hbs/home/orders/re-tips.hbs
0 → 100644
1 | +{{#if return_amount}}退款总金额:¥{{return_amount}} {{#if return_asset_desc}}({{return_asset_desc}}){{/if}}<span class="iconfont icon-tip-help"></span>{{/if}} |
@@ -7,6 +7,8 @@ var $ = require('yoho-jquery'), | @@ -7,6 +7,8 @@ var $ = require('yoho-jquery'), | ||
7 | Addr = require('./common-address'), | 7 | Addr = require('./common-address'), |
8 | _dialog = require('../common/dialog'); | 8 | _dialog = require('../common/dialog'); |
9 | 9 | ||
10 | +var reTipsHbs = require('hbs/home/orders/re-tips.hbs'); | ||
11 | + | ||
10 | var stringHandle = require('../common/stringHandle'); | 12 | var stringHandle = require('../common/stringHandle'); |
11 | 13 | ||
12 | var $goodsTable = $('#goods-table'), | 14 | var $goodsTable = $('#goods-table'), |
@@ -75,6 +77,48 @@ if (defaultPhone) { | @@ -75,6 +77,48 @@ if (defaultPhone) { | ||
75 | $exchange.find('input[name="phone"]').val(disPhone); | 77 | $exchange.find('input[name="phone"]').val(disPhone); |
76 | } | 78 | } |
77 | 79 | ||
80 | +// 退货结算 | ||
81 | +function getRefundCompute() { | ||
82 | + var goods = []; | ||
83 | + | ||
84 | + if (!pageType) { | ||
85 | + return false; | ||
86 | + } | ||
87 | + | ||
88 | + $goodsTable.find('input[type="checkbox"]:checked').each(function() { | ||
89 | + var $par = $(this).closest('tr'), | ||
90 | + goodsInfo; | ||
91 | + | ||
92 | + goodsInfo = { | ||
93 | + product_skn: $par.find('input[name="skn"]').val(), | ||
94 | + product_skc: $par.find('input[name="skc"]').val(), | ||
95 | + product_sku: $par.find('input[name="sku"]').val(), | ||
96 | + goods_type: $par.find('input[name="typeid"]').val(), | ||
97 | + last_price: $par.find('input[name="lastPrice"]').val() | ||
98 | + }; | ||
99 | + | ||
100 | + goods.push(goodsInfo); | ||
101 | + }); | ||
102 | + | ||
103 | + if (goods.length <= 0) { | ||
104 | + $('.re-tips').html(reTipsHbs({})); | ||
105 | + return false; | ||
106 | + } | ||
107 | + | ||
108 | + $.ajax({ | ||
109 | + type: 'POST', | ||
110 | + url: '/home/returns/api/refundCompute', | ||
111 | + data: { | ||
112 | + orderCode: orderCode, | ||
113 | + goods: JSON.stringify(goods) | ||
114 | + } | ||
115 | + }).then(function(d) { | ||
116 | + if (d.code === 200) { | ||
117 | + $('.re-tips').html(reTipsHbs(d.data)); | ||
118 | + } | ||
119 | + }); | ||
120 | +} | ||
121 | + | ||
78 | function syncRefundMode(code) { | 122 | function syncRefundMode(code) { |
79 | $.ajax({ | 123 | $.ajax({ |
80 | type: 'POST', | 124 | type: 'POST', |
@@ -236,6 +280,8 @@ $checkBox.change(function() { | @@ -236,6 +280,8 @@ $checkBox.change(function() { | ||
236 | $par.find('select').val(0).prop('disabled', true); | 280 | $par.find('select').val(0).prop('disabled', true); |
237 | $par.next().hide(); | 281 | $par.next().hide(); |
238 | } | 282 | } |
283 | + | ||
284 | + getRefundCompute(); | ||
239 | }); | 285 | }); |
240 | 286 | ||
241 | $goodsTable.on('change', '.exchange-color', function() { | 287 | $goodsTable.on('change', '.exchange-color', function() { |
@@ -374,7 +420,7 @@ function packGoogsList() { | @@ -374,7 +420,7 @@ function packGoogsList() { | ||
374 | product_skc: $par.find('input[name="skc"]').val(), | 420 | product_skc: $par.find('input[name="skc"]').val(), |
375 | product_sku: $par.find('input[name="sku"]').val(), | 421 | product_sku: $par.find('input[name="sku"]').val(), |
376 | goods_type: $par.find('input[name="typeid"]').val(), | 422 | goods_type: $par.find('input[name="typeid"]').val(), |
377 | - last_price: $par.find('input[name="price"]').val(), | 423 | + last_price: $par.find('input[name="lastPrice"]').val(), |
378 | reason: $par.find('.return-reason').val() * 1 | 424 | reason: $par.find('.return-reason').val() * 1 |
379 | }; | 425 | }; |
380 | 426 | ||
@@ -633,3 +679,30 @@ $('.save-btn').click(function() { | @@ -633,3 +679,30 @@ $('.save-btn').click(function() { | ||
633 | } | 679 | } |
634 | 680 | ||
635 | }); | 681 | }); |
682 | + | ||
683 | +// 退货结算 | ||
684 | +getRefundCompute(); | ||
685 | + | ||
686 | +$('.re-tips').on('click', '.icon-tip-help', function() { | ||
687 | + var tipHelpDialog, content; | ||
688 | + | ||
689 | + content = '<div class="tip-title">退款金额说明</div>'; | ||
690 | + content += '<div class="tip-content">'; | ||
691 | + content += '订单中包含的促销活动、优惠券、有货币、红包、礼品卡金额均按比例分摊至各件商品。'; | ||
692 | + content += '</div>'; | ||
693 | + | ||
694 | + tipHelpDialog = new Dialog({ | ||
695 | + content: content, | ||
696 | + className: 'icon-tip-help-dialog', | ||
697 | + btns: [ | ||
698 | + { | ||
699 | + id: 'tip-btn-sure', | ||
700 | + btnClass: ['tip-btn'], | ||
701 | + name: '确定', | ||
702 | + cb: function() { | ||
703 | + tipHelpDialog.close(); | ||
704 | + } | ||
705 | + } | ||
706 | + ] | ||
707 | + }).show(); | ||
708 | +}); |
@@ -1224,6 +1224,16 @@ | @@ -1224,6 +1224,16 @@ | ||
1224 | .tip-message { | 1224 | .tip-message { |
1225 | margin-top: -2px; | 1225 | margin-top: -2px; |
1226 | } | 1226 | } |
1227 | + | ||
1228 | + .line-through { | ||
1229 | + font-weight: normal; | ||
1230 | + text-decoration: line-through; | ||
1231 | + color: #9a9a9a; | ||
1232 | + } | ||
1233 | + } | ||
1234 | + | ||
1235 | + .line-margin-top { | ||
1236 | + padding-top: 15px !important; | ||
1227 | } | 1237 | } |
1228 | 1238 | ||
1229 | .sale-info { | 1239 | .sale-info { |
@@ -729,6 +729,21 @@ | @@ -729,6 +729,21 @@ | ||
729 | 729 | ||
730 | .price { | 730 | .price { |
731 | font-size: 14px; | 731 | font-size: 14px; |
732 | + | ||
733 | + p { | ||
734 | + line-height: 18px; | ||
735 | + } | ||
736 | + } | ||
737 | + | ||
738 | + p.line-through { | ||
739 | + font-weight: normal; | ||
740 | + text-decoration: line-through; | ||
741 | + color: #9a9a9a; | ||
742 | + } | ||
743 | + | ||
744 | + p.tip-message { | ||
745 | + font-weight: normal; | ||
746 | + color: #ff575c; | ||
732 | } | 747 | } |
733 | 748 | ||
734 | .border-top { | 749 | .border-top { |
@@ -148,10 +148,6 @@ | @@ -148,10 +148,6 @@ | ||
148 | padding: 5px; | 148 | padding: 5px; |
149 | font-weight: bold; | 149 | font-weight: bold; |
150 | 150 | ||
151 | - &.free-price em { | ||
152 | - text-decoration: line-through; | ||
153 | - } | ||
154 | - | ||
155 | .free-icon { | 151 | .free-icon { |
156 | display: block; | 152 | display: block; |
157 | width: 37px; | 153 | width: 37px; |
@@ -165,6 +161,21 @@ | @@ -165,6 +161,21 @@ | ||
165 | border: 1px solid #80bb45; | 161 | border: 1px solid #80bb45; |
166 | border-radius: 3px; | 162 | border-radius: 3px; |
167 | } | 163 | } |
164 | + | ||
165 | + p { | ||
166 | + line-height: 18px; | ||
167 | + } | ||
168 | + | ||
169 | + p.line-through { | ||
170 | + font-weight: normal; | ||
171 | + text-decoration: line-through; | ||
172 | + color: #9a9a9a; | ||
173 | + } | ||
174 | + | ||
175 | + p.tip-message { | ||
176 | + font-weight: normal; | ||
177 | + color: #ff575c; | ||
178 | + } | ||
168 | } | 179 | } |
169 | 180 | ||
170 | .count { | 181 | .count { |
@@ -73,9 +73,34 @@ | @@ -73,9 +73,34 @@ | ||
73 | .content { | 73 | .content { |
74 | padding: 10px 20px 20px; | 74 | padding: 10px 20px 20px; |
75 | 75 | ||
76 | + .free-icon { | ||
77 | + display: block; | ||
78 | + width: 37px; | ||
79 | + height: 18px; | ||
80 | + line-height: 18px; | ||
81 | + font-size: 12px; | ||
82 | + text-align: center; | ||
83 | + color: #80bb45; | ||
84 | + background: #e7fbc0; | ||
85 | + margin: 5px auto; | ||
86 | + border: 1px solid #80bb45; | ||
87 | + border-radius: 3px; | ||
88 | + } | ||
89 | + | ||
76 | p { | 90 | p { |
77 | line-height: 18px; | 91 | line-height: 18px; |
78 | } | 92 | } |
93 | + | ||
94 | + p.line-through { | ||
95 | + font-weight: normal; | ||
96 | + text-decoration: line-through; | ||
97 | + color: #9a9a9a; | ||
98 | + } | ||
99 | + | ||
100 | + p.tip-message { | ||
101 | + font-weight: normal; | ||
102 | + color: #ff575c; | ||
103 | + } | ||
79 | } | 104 | } |
80 | 105 | ||
81 | .order-progress { | 106 | .order-progress { |
@@ -420,6 +445,7 @@ | @@ -420,6 +445,7 @@ | ||
420 | .good-list { | 445 | .good-list { |
421 | table { | 446 | table { |
422 | border-collapse: collapse; | 447 | border-collapse: collapse; |
448 | + width: 100%; | ||
423 | } | 449 | } |
424 | 450 | ||
425 | thead { | 451 | thead { |
@@ -565,7 +591,7 @@ | @@ -565,7 +591,7 @@ | ||
565 | display: inline-block; | 591 | display: inline-block; |
566 | height: 22px; | 592 | height: 22px; |
567 | width: 22px; | 593 | width: 22px; |
568 | - vertical-align: text-bottom; | 594 | + vertical-align: middle; |
569 | } | 595 | } |
570 | 596 | ||
571 | .success-icon { | 597 | .success-icon { |
@@ -148,7 +148,17 @@ | @@ -148,7 +148,17 @@ | ||
148 | .re-tips { | 148 | .re-tips { |
149 | text-align: left; | 149 | text-align: left; |
150 | padding-left: 10px; | 150 | padding-left: 10px; |
151 | - color: #666; | 151 | + color: #444; |
152 | + min-height: 15px; | ||
153 | + font-size: 13px; | ||
154 | + | ||
155 | + .icon-tip-help { | ||
156 | + font-size: 15px; | ||
157 | + color: #d1071f; | ||
158 | + vertical-align: top; | ||
159 | + margin-left: 5px; | ||
160 | + cursor: pointer; | ||
161 | + } | ||
152 | } | 162 | } |
153 | 163 | ||
154 | .problem-description { | 164 | .problem-description { |
@@ -454,3 +464,39 @@ | @@ -454,3 +464,39 @@ | ||
454 | margin-bottom: 25px; | 464 | margin-bottom: 25px; |
455 | } | 465 | } |
456 | } | 466 | } |
467 | + | ||
468 | +.icon-tip-help-dialog { | ||
469 | + text-align: center; | ||
470 | + width: 370px; | ||
471 | + | ||
472 | + .close { | ||
473 | + top: 12px; | ||
474 | + | ||
475 | + .iconfont { | ||
476 | + font-size: 30px; | ||
477 | + } | ||
478 | + } | ||
479 | + | ||
480 | + .tip-title { | ||
481 | + color: #444; | ||
482 | + font-size: 24px; | ||
483 | + padding: 30px 0; | ||
484 | + font-weight: bold; | ||
485 | + } | ||
486 | + | ||
487 | + .tip-content { | ||
488 | + color: #444; | ||
489 | + font-size: 14px; | ||
490 | + line-height: 24px; | ||
491 | + } | ||
492 | + | ||
493 | + .tip-btn { | ||
494 | + background: #000; | ||
495 | + color: #fff; | ||
496 | + min-width: 130px; | ||
497 | + } | ||
498 | + | ||
499 | + .btns { | ||
500 | + margin-top: 30px; | ||
501 | + } | ||
502 | +} |
@@ -45,7 +45,7 @@ | @@ -45,7 +45,7 @@ | ||
45 | font-size: 12px; | 45 | font-size: 12px; |
46 | color: #333; | 46 | color: #333; |
47 | font-weight: 400; | 47 | font-weight: 400; |
48 | - margin-bottom: 10px; | 48 | + margin: 10px 0; |
49 | } | 49 | } |
50 | 50 | ||
51 | .courier-code { | 51 | .courier-code { |
@@ -54,6 +54,10 @@ | @@ -54,6 +54,10 @@ | ||
54 | 54 | ||
55 | .express-edit-box { | 55 | .express-edit-box { |
56 | display: none; | 56 | display: none; |
57 | + | ||
58 | + select { | ||
59 | + height: 21px; | ||
60 | + } | ||
57 | } | 61 | } |
58 | 62 | ||
59 | button { | 63 | button { |
@@ -68,6 +72,121 @@ | @@ -68,6 +72,121 @@ | ||
68 | 72 | ||
69 | .express-edit-box { | 73 | .express-edit-box { |
70 | display: block; | 74 | display: block; |
75 | + | ||
76 | + select { | ||
77 | + height: 21px; | ||
78 | + } | ||
79 | + } | ||
80 | + } | ||
81 | + | ||
82 | + .goods-bill { | ||
83 | + table { | ||
84 | + border-collapse: collapse; | ||
85 | + width: 100%; | ||
86 | + } | ||
87 | + | ||
88 | + thead { | ||
89 | + height: 25px; | ||
90 | + line-height: 25px; | ||
91 | + background: #000; | ||
92 | + padding: 2px 5px; | ||
93 | + color: #fff; | ||
94 | + } | ||
95 | + | ||
96 | + th, | ||
97 | + td { | ||
98 | + padding: 5px; | ||
99 | + text-align: center; | ||
100 | + border: 1px solid #e6e6e6; | ||
101 | + } | ||
102 | + | ||
103 | + th { | ||
104 | + border-color: #000; | ||
105 | + } | ||
106 | + | ||
107 | + .product-info { | ||
108 | + width: 314px; | ||
109 | + } | ||
110 | + | ||
111 | + .good-price, | ||
112 | + .num, | ||
113 | + .sum { | ||
114 | + width: 91px; | ||
115 | + } | ||
116 | + | ||
117 | + .yoho-coin { | ||
118 | + width: 100px; | ||
119 | + | ||
120 | + a { | ||
121 | + display: inline-block; | ||
122 | + width: 12px; | ||
123 | + height: 12px; | ||
124 | + background: resolve(home/coin-help.png); | ||
125 | + vertical-align: text-top; | ||
126 | + } | ||
127 | + } | ||
128 | + | ||
129 | + .thumb-link { | ||
130 | + float: left; | ||
131 | + position: relative; | ||
132 | + margin-left: 5px; | ||
133 | + margin-right: 10px; | ||
134 | + } | ||
135 | + | ||
136 | + .thumb { | ||
137 | + display: block; | ||
138 | + width: 60px; | ||
139 | + height: 60px; | ||
140 | + } | ||
141 | + | ||
142 | + .name-color-size { | ||
143 | + float: left; | ||
144 | + color: #999; | ||
145 | + padding-top: 12px; | ||
146 | + text-align: left; | ||
147 | + | ||
148 | + b { | ||
149 | + display: inline-block; | ||
150 | + vertical-align: bottom; | ||
151 | + max-width: 130px; | ||
152 | + overflow: hidden; | ||
153 | + text-overflow: ellipsis; | ||
154 | + white-space: nowrap; | ||
155 | + font-style: normal; | ||
156 | + font-weight: 400; | ||
157 | + } | ||
158 | + } | ||
159 | + | ||
160 | + .name { | ||
161 | + display: block; | ||
162 | + color: #468fa2; | ||
163 | + line-height: 18px; | ||
164 | + text-align: left; | ||
165 | + max-width: 230px; | ||
166 | + | ||
167 | + @mixin ellipsis; | ||
168 | + } | ||
169 | + | ||
170 | + .re-tips { | ||
171 | + text-align: left; | ||
172 | + padding-left: 10px; | ||
173 | + color: #444; | ||
174 | + min-height: 15px; | ||
175 | + font-size: 13px; | ||
176 | + | ||
177 | + .icon-tip-help { | ||
178 | + font-size: 15px; | ||
179 | + color: #d1071f; | ||
180 | + vertical-align: top; | ||
181 | + margin-left: 5px; | ||
182 | + cursor: pointer; | ||
183 | + } | ||
184 | + } | ||
185 | + | ||
186 | + p.line-through { | ||
187 | + font-weight: normal; | ||
188 | + text-decoration: line-through; | ||
189 | + color: #9a9a9a; | ||
71 | } | 190 | } |
72 | } | 191 | } |
73 | 192 | ||
@@ -110,4 +229,16 @@ | @@ -110,4 +229,16 @@ | ||
110 | display: none; | 229 | display: none; |
111 | } | 230 | } |
112 | } | 231 | } |
232 | + | ||
233 | + .cancel-return { | ||
234 | + padding-left: 12px; | ||
235 | + | ||
236 | + a { | ||
237 | + color: #fff; | ||
238 | + border-radius: 4px; | ||
239 | + padding: 4px 8px; | ||
240 | + background: #000; | ||
241 | + display: inline-block; | ||
242 | + } | ||
243 | + } | ||
113 | } | 244 | } |
-
Please register or login to post a comment