define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'pickup/order/index' + location.search,
add_url: 'pickup/order/add',
edit_url: 'pickup/order/edit',
del_url: 'pickup/order/del',
multi_url: 'pickup/order/multi',
table: 'gift_order',
},
pageSize: 30,
pageList: [30, 50, 100, 'All'],
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
showToggle: false,
columns: [
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'order_no', title: __('Order_no'), visible: false},
// {field: 'gift_goods_ids', title: __('Gift_goods_ids')},
{field: 'gift_goods_title', title: __('Gift_goods_title'), formatter: function (value, row, index) {
let text = "";
let text_pre = "";
for (var key in value) {
text = text + value[key] + text_pre;
text_pre = "
";
}
return text;
}},
// {field: 'gift_goods_image', title: __('Gift_goods_image'), events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'gift_package_id', title: __('Gift_package_id'), visible: false},
{field: 'gift_package_title', title: __('Gift_package_title')},
{field: 'gift_package_image', title: __('Gift_package_image'), visible: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'name', title: __('Name')},
{field: 'mobile', title: __('Mobile')},
{field: 'province_city', title: __('Province_city'), visible: true},
{field: 'address', title: __('Address'), visible: true},
// {field: 'ship_date_expected', title: __('Ship_date_expected')},
{field: 'comments', title: __('Comments'), visible: false},
{field: 'card_id', title: __('Card_id')},
{field: 'createtime', title: __('Createtime'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
{field: 'kd_company', title: __('Kd_company')},
{field: 'kd_number', title: __('Kd_number')},
{field: 'ship_date', title: __('Ship_date'), operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
{field: 'status', title: __('Status'), searchList: {"1": __('Status 1'), "2": __('Status 2'), "3": __('Status 3'), "4": __('Status 4')}, formatter: Table.api.formatter.status},
{
field: 'operate',
title: __('Operate'),
table: table,
buttons: [
{
name: 'order_delivery',
title: "发货",
text: "发货",
extend: "data-area='[\"\90%\"\,\"\90%\"\]'",
url: 'pickup/order/delivery',
icon: 'fa fa-send',
classname: 'btn btn-info btn-xs btn-execute btn-dialog'
},
{
name: 'order_transport',
title: "查看物流",
text: "查看物流",
extend: "data-area='[\"\90%\"\,\"\90%\"\]'",
url: 'pickup/order/transport',
icon: 'fa fa-truck',
classname: 'btn btn-info btn-xs btn-execute btn-dialog'
},
{
name: 'order_detail',
title: "订单详情",
text: "订单详情",
extend: "data-area='[\"\90%\"\,\"\90%\"\]'",
url: 'pickup/order/detail',
icon: 'fa fa-reorder',
classname: 'btn btn-info btn-xs btn-execute btn-dialog'
},
],
events: Table.api.events.operate,
formatter: function (value, row, index) {
var that = $.extend({}, this);
var table = $(that.table).clone(true);
if (row.status > 1) {
$(table).data("operate-order_delivery", null);
}
if (row.status == 1) {
$(table).data("operate-order_transport", null);
}
that.table = table;
return Table.api.formatter.operate.call(that, value, row, index);
}
}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
$(".toolbar").on('click', ".btn-impDelivery", function () {//撤销发货
require(['upload'], function (Upload) {
Upload.api.plupload($(".btn-impDelivery", ".toolbar"), function (data, ret) {
Fast.api.ajax({
url: Fast.api.fixurl("pickup/order/impDelivery"),
data: {file: data.url},
}, function (data, ret) {
table.bootstrapTable('refresh');
});
});
});
});
},
add: function () {
Controller.api.bindevent();
},
edit: function () {
Controller.api.bindevent();
},
delivery: function () {
Controller.api.bindevent();
},
transport: function () {
Controller.api.bindevent();
},
detail: function () {
Controller.api.bindevent();
let itemid = $("#item-id").val();
$(".form-group").on('click', ".btn-set_order_st1", function () {//撤销发货
//ajax请求接口,改变订单状态,但不清理发货的快递信息
Layer.confirm(
__('你确定要设置此订单为待发货状态吗?'),
{icon: 3, title: __('Warning'), shadeClose: true},
function (index) {
// var url = $.fn.bootstrapTable.defaults.extend.setstatus_url;
var url = Fast.api.fixurl("pickup/order/setstatus");
$.ajax({
url: url,
type: "GET",
dataType: "json",
data: {itemid: itemid, status: 1},
beforeSend: function (result) {},
success: function (result) {
Toastr.success("设置成功");
},
error: function (xhr, status, error) {
Toastr.error("设置失败");
// Toastr.warning(ret.msg);
}
});
Layer.close(index);
}
);
});
$(".form-group").on('click', ".btn-set_order_st2", function () {//发货
//打开发货页面
var url = Fast.api.fixurl("pickup/order/delivery/ids/" + itemid);
Fast.api.open(url, __('发货'), $(this).data() || {});
});
$(".form-group").on('click', ".btn-set_order_st3", function () {//设置订单完成
//ajax请求接口,改变订单状态,设置订单完成
Layer.confirm(
__('你确定要设置此订单为已完成状态吗?'),
{icon: 3, title: __('Warning'), shadeClose: true},
function (index) {
var url = Fast.api.fixurl("pickup/order/setstatus");
$.ajax({
url: url,
type: "GET",
dataType: "json",
data: {itemid: itemid, status: 3},
beforeSend: function (result) {},
success: function (result) {
Toastr.success("设置成功");
},
error: function (xhr, status, error) {
Toastr.error("设置失败");
// Toastr.warning(ret.msg);
}
});
Layer.close(index);
}
);
});
$(".form-group").on('click', ".btn-set_order_st4", function () {//设置订单失效
//ajax请求接口,改变订单状态,设置订单完成
Layer.confirm(
__('你确定要设置此订单为已关闭状态吗?'),
{icon: 3, title: __('Warning'), shadeClose: true},
function (index) {
var url = Fast.api.fixurl("pickup/order/setstatus");
$.ajax({
url: url,
type: "GET",
dataType: "json",
data: {itemid: itemid, status: 4},
beforeSend: function (result) {},
success: function (result) {
Toastr.success("设置成功");
},
error: function (xhr, status, error) {
Toastr.error("设置失败");
// Toastr.warning(ret.msg);
}
});
Layer.close(index);
}
);
});
},
api: {
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
}
}
};
return Controller;
});