Authored by biao

update for cancel order

... ... @@ -15,7 +15,7 @@ const orderModel = require('../models/order');
const index = (req, res) => {
const type = req.query.type;
const page = req.query.page;
const uid = global.yoho.uid || '10931021';
const uid = global.yoho.uid || '8688835';
orderModel.getOrderData(uid, type, page).then(result => {
res.render('index', {
... ... @@ -33,7 +33,7 @@ const index = (req, res) => {
const getOrderList = (req, res) => {
const type = req.query.type;
const page = req.query.page;
const uid = global.yoho.uid || '10931021';
const uid = global.yoho.uid || '8688835';
orderModel.getOrderData(uid, type, page).then(result => {
res.render('order-table', {
... ... @@ -48,7 +48,7 @@ const getOrderList = (req, res) => {
const getOrderTotal = (req, res) => {
const type = req.query.type;
const uid = global.yoho.uid || '10931021';
const uid = global.yoho.uid || '8688835';
orderModel.getOrderData(uid, type).then(result => {
... ... @@ -60,8 +60,17 @@ const getOrderTotal = (req, res) => {
});
};
const cancelOrder = (req, res) => {
const uid = global.yoho.uid || '8688835';
const code = req.query.orderCode;
orderModel.cancelOrder(uid, code).then(result => {
res.json(result);
});
};
const deleteOrder = (req, res) => {
const uid = global.yoho.uid || '10931021';
const uid = global.yoho.uid || '8688835';
const code = req.query.orderCode;
orderModel.deleteOrder(uid, code).then(result => {
... ... @@ -69,9 +78,20 @@ const deleteOrder = (req, res) => {
});
};
const getExpressInfo = (req, res) => {
const uid = global.yoho.uid || '8688835';
const code = req.query.orderCode;
orderModel.getExpressInfo(uid, code).then(result => {
res.json(result);
});
};
module.exports = {
index: index,
getOrderList: getOrderList,
getOrderTotal: getOrderTotal,
deleteOrder: deleteOrder
cancelOrder: cancelOrder,
deleteOrder: deleteOrder,
getExpressInfo: getExpressInfo
};
... ...
... ... @@ -16,7 +16,23 @@ const deleteOrder = (uid, code) => {
return api.get('', {
method: 'app.SpaceOrders.delOrderByCode',
uid: uid,
code: code
order_code: code
});
};
const cancelOrder = (uid, code) => {
return api.get('', {
method: 'app.SpaceOrders.close',
uid: uid,
order_code: code
});
};
const getExpressInfo = (uid, code) => {
return api.get('', {
method: 'app.express.get',
uid: uid,
order_code: code
});
};
... ... @@ -50,7 +66,7 @@ const _getUserOrder = (uid, type, page) => {
item.createTime = convertUnitTime(item.createTime);
// 隐藏结束了的剩余时间
if (parseInt(item.payLefttime, 10) !== 0) {
if (parseInt(item.payLefttime, 10) !== 0 && item.isCancel === 'N') {
item.showPayButton = true;
}
... ... @@ -129,5 +145,7 @@ const getOrderData = (uid, type, page) => {
module.exports = {
getOrderData: getOrderData,
deleteOrder: deleteOrder
cancelOrder: cancelOrder,
deleteOrder: deleteOrder,
getExpressInfo: getExpressInfo
};
... ...
... ... @@ -18,6 +18,8 @@ router.get(['/', '/order'], order.index);
router.get('/getOrderList', order.getOrderList);
router.get('/getOrderTotal', order.getOrderTotal);
router.get('/deleteOrder', order.deleteOrder);
router.get('/cancelOrder', order.cancelOrder);
router.get('/getExpressInfo', order.getExpressInfo);
// 个人中心首页/收货地址
router.get('/address', address.index);
... ...
... ... @@ -41,7 +41,7 @@
{{#if showPayButton}}
<p class="left-time" data-left="{{payLefttime}}"></p>
<span class="btn red">立即付款</span>
<p class="subtext">取消订单</p>
<p class="subtext cancel" data-code="{{orderCode}}">取消订单</p>
{{/if}}
{{#if showEditOption}}
<p class="subtext">申请换货</p>
... ... @@ -49,7 +49,7 @@
{{/if}}
{{#if showGetBtn}}
<span class="btn black">确认收货</span>
<p class="subtext">物流进度</p>
<p class="subtext express" data-code="{{orderCode}}">物流进度</p>
{{/if}}
{{#if showBuyBtn}}
<span class="btn black">再次购买</span>
... ...
... ... @@ -5,9 +5,9 @@
*/
var dialog = require('../plugins/dialog');
var _dialog = dialog.Dialog;
// 更新表格
var tableOperation = {
$header: $('.table.column-category'),
... ... @@ -85,6 +85,9 @@ var typeMap = {
// 个人中心共用代码加载
require('./me');
// 添加.check方法
require('../plugins/check');
// 获取订单列表
function getOrderList(type, page) {
tableOperation.removeBody();
... ... @@ -166,6 +169,7 @@ function setOrderTotal() {
}
}
// 删除订单
function deleteOrder(code) {
$.ajax({
url: 'deleteOrder',
... ... @@ -179,6 +183,34 @@ function deleteOrder(code) {
});
}
// 取消订单
function cancelOrder(code) {
$.ajax({
url: 'cancelOrder',
data: {
orderCode: code
}
}).done(function(result) {
console.log(result);
}).fail(function(err) {
console.log(err);
});
}
// 取消订单
function getExpressInfo(code) {
$.ajax({
url: 'getExpressInfo',
data: {
orderCode: code
}
}).done(function(result) {
console.log(result);
}).fail(function(err) {
console.log(err);
});
}
// tab切换处理
$('.tabs li').on('click', function() {
var $this = $(this);
... ... @@ -234,6 +266,86 @@ $('.delete').on('click', function() {
}).show();
});
$('.cancel').on('click', function() {
var code = $(this).data('code');
var tip = new _dialog({
className: 'cancel-dialog',
content: '<h1>取消订单</h1>' +
'<span class="tip">您取消订单的原因是:</span>' +
'<div class="reason">' +
'<div class="row">' +
'<p><span class="iconfont raido checked">&#xe603;</span>支付不成功</p>' +
'<p><span class="iconfont raido">&#xe604;</span>现在不想购买</p>' +
'</div>' +
'<div class="row">' +
'<p><span class="iconfont raido">&#xe604;</span>订单架构有问题</p>' +
'<p><span class="iconfont raido">&#xe604;</span>修改订单信息</p>' +
'</div>' +
'<div class="row">' +
'<p><span class="iconfont raido">&#xe604;</span>错误或重复下单</p>' +
'<p><span class="iconfont raido">&#xe604;</span>忘记使用优惠券或YOHO币</p>' +
'</div>' +
'<div class="row">' +
'<p><span class="iconfont raido">&#xe604;</span>等待发货时间过长</p>' +
'<p><span class="iconfont raido">&#xe604;</span>商品价格较贵</p>' +
'</div>' +
'<div class="row">' +
'<p><span class="iconfont raido">&#xe604;</span>运费较高</p>' +
'</div>' +
'<div class="row other">' +
'<p><span class="iconfont raido">&#xe604;</span>其他原因</p>' +
'<input type="text" disabled placeholder="50个字以内"/>' +
'</div>' +
'</div>' +
'<span class="tip">温馨提示:</span>' +
'<p><span>*</span>订单成功取消后无法恢复</p>' +
'<p><span>*</span>该订单已付金额将原路返回</p>' +
'<p><span>*</span>取消订单后,存在促销关系的子订单及优惠可能会一并取消</p>',
btns: [
{
id: 'cancel-confirm',
btnClass: ['confirm'],
name: '确定并取消订单',
cb: function() {
cancelOrder(code);
tip.close();
}
},
{
id: 'cancel-stop',
btnClass: ['cancel'],
name: '暂不取消',
cb: function() {
tip.close();
}
}
]
}).show();
$('.cancel-dialog .reason p').check({
type: 'radio',
group: 'reason',
onChange: function(ele, checked) {
var $this = $(ele);
var $input = $('.cancel-dialog .reason input');
if (checked && $this.parent('.other').length) {
$input.prop('disabled', false);
} else {
$input.val('');
$input.prop('disabled', true);
}
}
});
});
$('.express').on('click', function() {
var code = $(this).data('code');
getExpressInfo(code);
});
bindPaginationClick();
countDown.start();
setOrderTotal();
... ...
... ... @@ -23,3 +23,53 @@
}
}
}
.cancel-dialog {
* {
text-align: left;
color: #1b1b1b;
}
h1 {
padding-bottom: 20px;
border-bottom: 1px solid #f1f1f1;
font-size: 16px;
}
.tip {
display: block;
margin: 20px 0 10px;
font-size: 12px;
font-weight: bold;
}
.row {
height: 30px;
line-height: 30px;
&.other {
p {
width: 20%;
}
input {
height: 25px;
width: 30%;
padding: 5px;
}
}
p {
width: 50%;
display: inline-block;
box-sizing: border-box;
font-size: 14px;
}
.iconfont {
display: inline-block;
margin-right: 3px;
font-size: 14px;
cursor: pointer;
}
}
}
... ...
... ... @@ -213,17 +213,5 @@
margin: $bigSpace auto -$bigSpace;
text-align: center;
}
.delete-dialog {
h1 {
font-size: 16px;
font-weight: bold;
}
p {
font-size: 12px;
color: #ccc;
}
}
}
... ...