Showing
8 changed files
with
178 additions
and
20 deletions
@@ -17,7 +17,14 @@ | @@ -17,7 +17,14 @@ | ||
17 | <div class="order" data-id="{{orderNum}}"> | 17 | <div class="order" data-id="{{orderNum}}"> |
18 | <p class="order-title"> | 18 | <p class="order-title"> |
19 | 订单编号:{{orderNum}} | 19 | 订单编号:{{orderNum}} |
20 | - <span class="right">下单时间:{{orderTime}}</span> | 20 | + <span class="order-time">下单时间:{{orderTime}}</span> |
21 | + {{#if hasDelete}} | ||
22 | + <a class="right order-delete" href="javascript:;" data-deleted="true">彻底删除</a> | ||
23 | + {{^}} | ||
24 | + {{#if canDelete}} | ||
25 | + <a class="right order-delete" href="javascript:;">删除订单</a> | ||
26 | + {{/if}} | ||
27 | + {{/if}} | ||
21 | </p> | 28 | </p> |
22 | <div class="order-wrap"> | 29 | <div class="order-wrap"> |
23 | <ul> | 30 | <ul> |
@@ -125,6 +132,9 @@ | @@ -125,6 +132,9 @@ | ||
125 | {{/if}} | 132 | {{/if}} |
126 | {{/if}} | 133 | {{/if}} |
127 | {{/if}} | 134 | {{/if}} |
135 | + {{#if hasDelete}} | ||
136 | + <span class="op-item restore-order">还原订单</span> | ||
137 | + {{/if}} | ||
128 | {{/ operation}} | 138 | {{/ operation}} |
129 | </div> | 139 | </div> |
130 | </div> | 140 | </div> |
@@ -132,4 +142,5 @@ | @@ -132,4 +142,5 @@ | ||
132 | {{/ orders}} | 142 | {{/ orders}} |
133 | {{/if}} | 143 | {{/if}} |
134 | </div> | 144 | </div> |
135 | -{{> home/order-cancel-tpl}} | ||
145 | +{{> home/order-cancel-tpl}} | ||
146 | +{{> home/order-delete-confirm}} |
1 | -<ul class="tabs clearfix"> | ||
2 | - {{# tabs}} | 1 | +<div class="tabs-wrapper"> |
2 | + <ul class="tabs clearfix"> | ||
3 | + {{# tabs}} | ||
3 | <li {{#if active}}class="active"{{/if}}> | 4 | <li {{#if active}}class="active"{{/if}}> |
4 | - <a href="{{url}}">{{name}}</a> | 5 | + <a href="{{url}}">{{name}}</a> |
5 | </li> | 6 | </li> |
6 | - {{/ tabs}} | ||
7 | -</ul> | ||
7 | + {{/ tabs}} | ||
8 | + </ul> | ||
9 | + <div class="recycle-bin"><a href=""><i></i>订单回收站</a></div> | ||
10 | +</div> |
web-static/img/home/close.png
0 → 100644

408 Bytes
web-static/img/home/doubt.png
0 → 100644

889 Bytes
web-static/img/home/recyclebin.png
0 → 100644

309 Bytes
@@ -5,6 +5,7 @@ | @@ -5,6 +5,7 @@ | ||
5 | */ | 5 | */ |
6 | 6 | ||
7 | var $ = require('yoho.jquery'); | 7 | var $ = require('yoho.jquery'); |
8 | +var Handlebars = require('yoho.handlebars'); | ||
8 | 9 | ||
9 | var dialog = require('../common/dialog'); | 10 | var dialog = require('../common/dialog'); |
10 | 11 | ||
@@ -12,7 +13,16 @@ var Dialog = dialog.Dialog; | @@ -12,7 +13,16 @@ var Dialog = dialog.Dialog; | ||
12 | var Confirm = dialog.Confirm; | 13 | var Confirm = dialog.Confirm; |
13 | 14 | ||
14 | var $tpl = $('#cancel-dialog-tpl'); | 15 | var $tpl = $('#cancel-dialog-tpl'); |
15 | - | 16 | +var deleteDialog = '<div class="order-delete-confirm">' + |
17 | + '<div class="header">' + | ||
18 | + '<p>删除订单</p>' + | ||
19 | + '<a href="javascript:;" title="关闭"></a>' + | ||
20 | + '</div>' + | ||
21 | + '<div class="body">' + | ||
22 | + '<p class="confirm-tip"><i class="icon-doubt"></i>{{deleteMessage}}</p>' + | ||
23 | + '<p class="delete-tip">{{deleteTip}}</p>' + | ||
24 | + '</div>' + | ||
25 | + '</div>'; | ||
16 | var html = $tpl.html(); | 26 | var html = $tpl.html(); |
17 | 27 | ||
18 | var active; | 28 | var active; |
@@ -25,7 +35,7 @@ function cancelFactory(id) { | @@ -25,7 +35,7 @@ function cancelFactory(id) { | ||
25 | id: 'cancel-sure', | 35 | id: 'cancel-sure', |
26 | name: '确定并取消订单', | 36 | name: '确定并取消订单', |
27 | btnClass: ['cancel-sure'], | 37 | btnClass: ['cancel-sure'], |
28 | - cb: function() { | 38 | + cb: function () { |
29 | var $checked = $('.cancel-dialog :checked'); | 39 | var $checked = $('.cancel-dialog :checked'); |
30 | var $tip = $('.cancel-dialog .cancel-tip'); | 40 | var $tip = $('.cancel-dialog .cancel-tip'); |
31 | 41 | ||
@@ -41,7 +51,7 @@ function cancelFactory(id) { | @@ -41,7 +51,7 @@ function cancelFactory(id) { | ||
41 | orderCode: id, | 51 | orderCode: id, |
42 | reason: $checked.val() | 52 | reason: $checked.val() |
43 | } | 53 | } |
44 | - }).then(function(data) { | 54 | + }).then(function (data) { |
45 | if (data.code === 200) { | 55 | if (data.code === 200) { |
46 | active.close(); | 56 | active.close(); |
47 | history.go(0); | 57 | history.go(0); |
@@ -55,7 +65,7 @@ function cancelFactory(id) { | @@ -55,7 +65,7 @@ function cancelFactory(id) { | ||
55 | id: 'cancel-no', | 65 | id: 'cancel-no', |
56 | name: '取消', | 66 | name: '取消', |
57 | btnClass: ['cancel-no'], | 67 | btnClass: ['cancel-no'], |
58 | - cb: function() { | 68 | + cb: function () { |
59 | active.close(); | 69 | active.close(); |
60 | } | 70 | } |
61 | } | 71 | } |
@@ -70,34 +80,34 @@ function cancelFactory(id) { | @@ -70,34 +80,34 @@ function cancelFactory(id) { | ||
70 | $tpl.remove(); | 80 | $tpl.remove(); |
71 | 81 | ||
72 | //查看物流 | 82 | //查看物流 |
73 | -$('.check-logistics').click(function() { | 83 | +$('.check-logistics').click(function () { |
74 | $(this).siblings('.logistics').removeClass('hide'); | 84 | $(this).siblings('.logistics').removeClass('hide'); |
75 | }); | 85 | }); |
76 | 86 | ||
77 | -$('.close-logistics').click(function() { | 87 | +$('.close-logistics').click(function () { |
78 | $(this).closest('.logistics').addClass('hide'); | 88 | $(this).closest('.logistics').addClass('hide'); |
79 | }); | 89 | }); |
80 | 90 | ||
81 | 91 | ||
82 | //订单列表&订单详情【取消订单和确认收货】 | 92 | //订单列表&订单详情【取消订单和确认收货】 |
83 | -$('.me-orders, .order-detail').on('click', '.cancel-order', function(e) { | 93 | +$('.me-orders, .order-detail').on('click', '.cancel-order', function (e) { |
84 | 94 | ||
85 | //取消订单 | 95 | //取消订单 |
86 | active = cancelFactory($(this).closest('.order, .order-detail').data('id')); | 96 | active = cancelFactory($(this).closest('.order, .order-detail').data('id')); |
87 | active.show(); | 97 | active.show(); |
88 | -}).on('click', '.confirm-received', function(e) { | 98 | +}).on('click', '.confirm-received', function (e) { |
89 | var id = $(this).closest('.order, .order-detail').data('id'); | 99 | var id = $(this).closest('.order, .order-detail').data('id'); |
90 | 100 | ||
91 | //确认收货 | 101 | //确认收货 |
92 | active = new Confirm({ | 102 | active = new Confirm({ |
93 | - cb: function() { | 103 | + cb: function () { |
94 | $.ajax({ | 104 | $.ajax({ |
95 | type: 'POST', | 105 | type: 'POST', |
96 | url: '/home/orders/confirmorder', | 106 | url: '/home/orders/confirmorder', |
97 | data: { | 107 | data: { |
98 | orderCode: id | 108 | orderCode: id |
99 | } | 109 | } |
100 | - }).then(function(data) { | 110 | + }).then(function (data) { |
101 | if (data.code === 200) { | 111 | if (data.code === 200) { |
102 | active.close(); | 112 | active.close(); |
103 | history.go(0); | 113 | history.go(0); |
@@ -107,4 +117,56 @@ $('.me-orders, .order-detail').on('click', '.cancel-order', function(e) { | @@ -107,4 +117,56 @@ $('.me-orders, .order-detail').on('click', '.cancel-order', function(e) { | ||
107 | content: '您确定要确认收货吗?' | 117 | content: '您确定要确认收货吗?' |
108 | }); | 118 | }); |
109 | active.show(); | 119 | active.show(); |
110 | -}); | ||
120 | +}).on('click', '.order-delete', function () { | ||
121 | + var id = $(this).closest('.order, .order-detail').data('id'); | ||
122 | + active = deleteOrder(id, this); | ||
123 | + active.show(); | ||
124 | +}); | ||
125 | +function deleteOrder(id, obj) { | ||
126 | + // 是否为彻底删除 | ||
127 | + var isFullyDelete = $(obj).data("deleted") || false; | ||
128 | + var $order = $(obj).parents("order"); | ||
129 | + var deleteMessage = isFullyDelete ? "您确定要永久删除订单吗?" : "您确定要删除订单吗?"; | ||
130 | + var deleteTip = isFullyDelete ? "永久删除后,订单将无法恢复,您将无法对该订单的商品申请售后服务,请谨慎操作。" : "删除后,您可以在订单回收站找回该订单,也可以做永久删除。"; | ||
131 | + var insert = Handlebars.compile(deleteDialog); | ||
132 | + var html = insert({deleteMessage: deleteMessage, deleteTip: deleteTip}) | ||
133 | + var options = { | ||
134 | + mask: false, | ||
135 | + btns: [ | ||
136 | + { | ||
137 | + id: 'delete-sure', | ||
138 | + name: '确定', | ||
139 | + btnClass: ['delete-sure'], | ||
140 | + cb: function () { | ||
141 | + $.ajax({ | ||
142 | + type: 'POST', | ||
143 | + url: '/home/orders/deleteOrder', | ||
144 | + data: { | ||
145 | + orderCode: id, | ||
146 | + isFullyDelete: isFullyDelete, | ||
147 | + } | ||
148 | + }).then(function (data) { | ||
149 | + if (data.code === 200) { | ||
150 | + active.close(); | ||
151 | + $order.addClass("deleted-easeout");//执行动画后移除元素 | ||
152 | + setTimeout(function(){ | ||
153 | + $order.remove(); | ||
154 | + },2e2) | ||
155 | + } | ||
156 | + }); | ||
157 | + } | ||
158 | + }, | ||
159 | + { | ||
160 | + id: 'delete-no', | ||
161 | + name: '取消', | ||
162 | + btnClass: ['delete-no'], | ||
163 | + cb: function () { | ||
164 | + active.close(); | ||
165 | + } | ||
166 | + } | ||
167 | + ], | ||
168 | + content: html, | ||
169 | + className: 'delete-dialog', | ||
170 | + }; | ||
171 | + return new Dialog(options); | ||
172 | +} |
@@ -213,10 +213,12 @@ | @@ -213,10 +213,12 @@ | ||
213 | text-align: center; | 213 | text-align: center; |
214 | overflow: hidden; | 214 | overflow: hidden; |
215 | } | 215 | } |
216 | - | 216 | + .tabs-wrapper{ |
217 | + position: relative; | ||
218 | + margin:10px; | ||
219 | + } | ||
217 | .tabs { | 220 | .tabs { |
218 | height: 25px; | 221 | height: 25px; |
219 | - margin: 10px; | ||
220 | background: resolve(/home/tab.png) repeat-x 0px -25px; | 222 | background: resolve(/home/tab.png) repeat-x 0px -25px; |
221 | font-size: 12px; | 223 | font-size: 12px; |
222 | line-height: 25px; | 224 | line-height: 25px; |
@@ -244,6 +246,24 @@ | @@ -244,6 +246,24 @@ | ||
244 | height: 100%; | 246 | height: 100%; |
245 | } | 247 | } |
246 | } | 248 | } |
249 | + .recycle-bin{ | ||
250 | + position: absolute; | ||
251 | + right:0; | ||
252 | + top:0; | ||
253 | + height:25px; | ||
254 | + line-height: 25px; | ||
255 | + i{ | ||
256 | + display:inline-block; | ||
257 | + width: 15px; | ||
258 | + height:17px; | ||
259 | + vertical-align: text-bottom; | ||
260 | + background: resolve(/home/recyclebin.png) no-repeat 0 0; | ||
261 | + margin-right:5px; | ||
262 | + } | ||
263 | + a{ | ||
264 | + font-size:12px; | ||
265 | + } | ||
266 | + } | ||
247 | 267 | ||
248 | .table-header { | 268 | .table-header { |
249 | height: 30px; | 269 | height: 30px; |
@@ -32,6 +32,13 @@ | @@ -32,6 +32,13 @@ | ||
32 | background: #efefef; | 32 | background: #efefef; |
33 | padding: 0 5px; | 33 | padding: 0 5px; |
34 | border-bottom: 1px solid #e6e6e6; | 34 | border-bottom: 1px solid #e6e6e6; |
35 | + .order-time{ | ||
36 | + margin-left: 25px; | ||
37 | + } | ||
38 | + .order-delete{ | ||
39 | + margin-right:15px; | ||
40 | + color: #999; | ||
41 | + } | ||
35 | } | 42 | } |
36 | 43 | ||
37 | .order { | 44 | .order { |
@@ -344,4 +351,59 @@ | @@ -344,4 +351,59 @@ | ||
344 | width: 66px; | 351 | width: 66px; |
345 | } | 352 | } |
346 | } | 353 | } |
354 | +} | ||
355 | + | ||
356 | +/* 删除订单对话框 */ | ||
357 | +.delete-dialog{ | ||
358 | + padding: 0 0 20px 0; | ||
359 | + border:1px solid #000; | ||
360 | + background:#fff; | ||
361 | + .header{ | ||
362 | + padding:0 10px; | ||
363 | + height:32px; | ||
364 | + background: #444; | ||
365 | + line-height:32px; | ||
366 | + color:#fff; | ||
367 | + text-align: left; | ||
368 | + } | ||
369 | + .close{ | ||
370 | + color:#fff; | ||
371 | + .iconfont{ | ||
372 | + font-size: 20px; | ||
373 | + font-weight:700; | ||
374 | + } | ||
375 | + } | ||
376 | + .order-delete-confirm{ | ||
377 | + width:400px; | ||
378 | + line-height:1.5; | ||
379 | + } | ||
380 | + .body{ | ||
381 | + padding:20px; | ||
382 | + margin-top: 30px; | ||
383 | + } | ||
384 | + .confirm-tip{ | ||
385 | + font-size:18px; | ||
386 | + word-wrap:break-word; | ||
387 | + i{ | ||
388 | + display:inline-block; | ||
389 | + width: 30px; | ||
390 | + height:30px; | ||
391 | + margin-right: 12px; | ||
392 | + background: resolve(/home/doubt.png) no-repeat; | ||
393 | + vertical-align:middle; | ||
394 | + } | ||
395 | + } | ||
396 | + .delete-tip{ | ||
397 | + padding-left:20px; | ||
398 | + margin:15px 0; | ||
399 | + font-size:13px; | ||
400 | + word-wrap:break-word; | ||
401 | + } | ||
402 | + .delete-sure{ | ||
403 | + background:#efefef; | ||
404 | + } | ||
405 | + .delete-no{ | ||
406 | + margin-left:60px; | ||
407 | + border-color: #cdcdcd; | ||
408 | + } | ||
347 | } | 409 | } |
-
Please register or login to post a comment