239 lines
11 KiB
JavaScript
239 lines
11 KiB
JavaScript
define(['jquery', 'bootstrap', 'backend', 'table', 'form','layer'], function ($, undefined, Backend, Table, Form) {
|
|
|
|
var Controller = {
|
|
index: function () {
|
|
// 初始化表格参数配置
|
|
Table.api.init({
|
|
extend: {
|
|
index_url: 'orders/dispatch2/index' + location.search,
|
|
//add_url: 'orders/dispatch/add',
|
|
edit_url: 'orders/dispatch2/edit',
|
|
//del_url: 'orders/dispatc2h/del',
|
|
multi_url: 'orders/dispatch2/multi',
|
|
import_url: 'orders/dispatch2/import',
|
|
table: 'order_dispatch',
|
|
}
|
|
});
|
|
|
|
var table = $("#table");
|
|
|
|
// 初始化表格
|
|
table.bootstrapTable({
|
|
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
|
pk: 'id',
|
|
sortName: 'id',
|
|
fixedColumns: true,
|
|
fixedRightNumber: 1,
|
|
columns: [
|
|
[
|
|
//{checkbox: true},
|
|
{checkbox: true, formatter: function (value, row, index) {
|
|
// 根据 is_selectable 字段控制是否禁用
|
|
// return row.is_selectable ? '' : {disabled: true};
|
|
if(row.is_disabled === true){
|
|
return {
|
|
disabled: true
|
|
};
|
|
}
|
|
return '';
|
|
}},
|
|
|
|
{field: 'id', title: __('Id')},
|
|
//{field: 'order_id', title: __('Order_id')},
|
|
|
|
{field: 'order.order_no', title: __('Order.order_no'), operate: 'LIKE'},
|
|
|
|
|
|
// {field: 'worker_id', title: __('Worker_id')},
|
|
{field: 'worker_name', title: __('Worker_name'), operate: 'LIKE'},
|
|
{field: 'worker_tel', title: __('Worker_tel'), operate: 'LIKE'},
|
|
{field: 'type', title: __('Type'), searchList: {"1":__('Type 1')}, formatter: Table.api.formatter.normal},
|
|
|
|
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"10":__('Status 10'),"20":__('Status 20'),"25":__('Status 25'),"30":__('Status 30'),"60":__('Status 60'),"-10":__('Status -10'),
|
|
//"-20":__('Status -20'),
|
|
"-30":__('Status -30')},
|
|
formatter: Table.api.formatter.status,
|
|
custom:{25:"red"}
|
|
},
|
|
|
|
{field: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false,
|
|
formatter:function(value,row,index){
|
|
if(row.status == 25){
|
|
return' <span style="color:red;font-weight: bold">'+value+'</span>';
|
|
}else{
|
|
return value;
|
|
}
|
|
}},
|
|
|
|
|
|
{field: 'order.source_shop', title: __('Order.source_shop'), operate: 'LIKE'},
|
|
// {field: 'order.source', title: __('Order.source')},
|
|
{field: 'order.customer', title: __('Order.customer'), operate: 'LIKE'},
|
|
{field: 'order.tel', title: __('Order.tel'), operate: 'LIKE'},
|
|
{field: 'order.address', title: __('Order.address'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
|
|
|
{field: 'order.item_title', title: __('Order.item_title'), operate: 'LIKE'},
|
|
{field: 'order.detail', title: __('Order.detail'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
|
|
|
{field: 'order.images', title: __('Order.images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
|
|
|
{field: 'remark', title: __('Remark'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
|
|
|
// {field: 'is_notice', title: __('Is_notice'), searchList: {"0":__('Is_notice 0'),"1":__('Is_notice 1')}, formatter: Table.api.formatter.normal},
|
|
// {field: 'admin_id', title: __('Admin_id')},
|
|
{field: 'admin_user', title: __('Admin_user'), operate: 'LIKE'},
|
|
{field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
|
{field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
|
{field: 'finish_time', title: __('Finish_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
|
|
|
|
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
|
|
|
|
align:'left',
|
|
buttons: [
|
|
{
|
|
name: 'edit',
|
|
text:"修改",
|
|
title:"",
|
|
icon: 'fa fa-pencil',
|
|
//title: __('Edit'),
|
|
extend: 'data-toggle="tooltip" data-container="body"',
|
|
classname: 'btn btn-xs btn-info btn-editone',
|
|
visible:function(row){
|
|
if(row.btn_edit){
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
},
|
|
|
|
{
|
|
name: 'finish',
|
|
text:"完成",
|
|
title:"完成",
|
|
icon: 'fa fa-check',
|
|
url: 'orders/dispatch2/finish',
|
|
extend: 'data-toggle="tooltip" data-container="body"',
|
|
classname: 'btn btn-xs btn-success btn-dialog',
|
|
visible:function(row){
|
|
if(row.btn_finished){
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
},
|
|
],
|
|
|
|
}
|
|
]
|
|
]
|
|
});
|
|
|
|
// 为表格绑定事件
|
|
Table.api.bindevent(table);
|
|
|
|
|
|
// 获取选中项
|
|
$(document).on("click", ".btn-cancel-selected", function () {
|
|
//Layer.alert(JSON.stringify(Table.api.selecteddata(table)));
|
|
|
|
// 获取选中项的 ID
|
|
var selectedData = Table.api.selecteddata(table);
|
|
var selectedIds = selectedData.map(item => item.id); // 假设每行数据有 `id` 字段
|
|
|
|
if (selectedIds.length === 0) {
|
|
Layer.alert("请先选择至少一项数据!");
|
|
return;
|
|
}
|
|
|
|
// 弹出确认框并要求输入文本
|
|
Layer.prompt({
|
|
title: "请输入操作理由",
|
|
formType: 2, // 多行文本输入框
|
|
}, function (inputValue, index) {
|
|
if (!inputValue) {
|
|
Layer.alert("输入内容不能为空!");
|
|
return;
|
|
}
|
|
|
|
// 关闭弹出框
|
|
Layer.close(index);
|
|
|
|
//这里可以加入 Ajax 请求处理逻辑
|
|
$.ajax({
|
|
url: 'orders/dispatch2/del',
|
|
type: 'POST',
|
|
data: {
|
|
ids: selectedIds,
|
|
reason: inputValue,
|
|
},
|
|
success: function (response,data) {
|
|
if(response.code == 1){
|
|
// 成功提示
|
|
Toastr.success(data.message || "操作成功!");
|
|
// 刷新表格
|
|
table.bootstrapTable('refresh');
|
|
}else{
|
|
Toastr.error(response.msg || "操作失败!");
|
|
}
|
|
return;
|
|
},
|
|
error: function () {
|
|
Toastr.error("操作失败,请重试!");
|
|
return;
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
// 获取选中项
|
|
$(document).on("click", ".btn-add-normal", function () {
|
|
// 获取选中项的 ID
|
|
var selectedData = Table.api.selecteddata(table);
|
|
var selectedIds = selectedData.map(item => item.id); // 假设每行数据有 `id` 字段
|
|
|
|
if (selectedIds.length === 0) {
|
|
Layer.alert("请先选择至少一项数据!");
|
|
return;
|
|
}
|
|
|
|
if(selectedIds.length > 1){
|
|
Layer.alert("创建异常,一次只能选择一条订单!");
|
|
return;
|
|
}
|
|
|
|
// 拼接 ids 到 URL 后面
|
|
var url = 'orders/abnormal/add?ids=' + selectedIds.join(',');
|
|
|
|
// 打开弹窗
|
|
Fast.api.open(
|
|
url,
|
|
"新增订单异常", // 弹窗标题
|
|
{
|
|
area: ['800px', '600px'] // 设置弹窗宽度和高度,可以根据需求调整
|
|
}
|
|
);
|
|
});
|
|
|
|
|
|
},
|
|
add: function () {
|
|
Controller.api.bindevent();
|
|
},
|
|
edit: function () {
|
|
Controller.api.bindevent();
|
|
},
|
|
finish: function () {
|
|
Controller.api.bindevent();
|
|
},
|
|
api: {
|
|
bindevent: function () {
|
|
Form.api.bindevent($("form[role=form]"));
|
|
}
|
|
}
|
|
};
|
|
return Controller;
|
|
});
|