allocatr/public/assets/js/backend/orders/dispatch2.js
2025-03-29 20:54:18 +08:00

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;
});