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'), operate: '='}, {field: 'order.order_no', title: __('Order.order_no'), operate: '='}, { field: 'follow', title: '跟进状态', searchList: { '0':'待跟进', "1": '已跟进', "2": '已结束', }, formatter: Table.api.formatter.label, custom: { '0': 'warning', // 待跟进:灰蓝色(默认 Bootstrap info) '1': 'success', // 已跟进:绿色 '2': 'default', // 已结束:红色 }, // defaultValue: '0' }, {field: 'record_count', title: '跟进次数',operate: false}, //{field: 'order_id', title: __('Order_id')}, {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: 'follow', title: __('跟进状态'), searchList: {"0":__('待跟进'),"1":__('已跟进'),"2":__('已结束')}, formatter: Table.api.formatter.normal}, // {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: 'plan_time', title: __('Plan_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter:function(value,row,index){ if(row.status == 25){ return' '+value+''; }else{ return value; } }}, {field: 'order.source_shop', title: __('Order.source_shop'), operate: '='}, // {field: 'order.source', title: __('Order.source')}, {field: 'order.customer', title: __('Order.customer'), operate: false}, {field: 'order.tel', title: __('Order.tel'), operate: '='}, {field: 'order.address', title: __('Order.address'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'order.item_title', title: __('Order.item_title'), operate: false}, {field: 'order.detail', title: __('Order.detail'), operate: false, 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: 'arrive_time', title: __('上门时间'), operate:false, addclass:'datetimerange', autocomplete:false}, {field: 'arrive_image', title: __('上门照片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images}, // {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:false, 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: 'dispatchlog', text:"日志", title:"变更日记", icon: 'fa fa-list', url: function(row){ return 'orders/dispatchlog/index?dispatch_id='+row.id; }, extend: 'data-toggle="tooltip" data-container="body"', classname: 'btn btn-xs btn-default btn-dialog', visible:function(row){ return true; } }, { name: 'addrecord', text:"跟进", title:"跟进信息", icon: 'fa fa-pencil', url: 'orders/dispatchrecord/add', extend: 'data-toggle="tooltip" data-container="body"', classname: 'btn btn-xs btn-warning btn-dialog', visible:function(row){ if(row.btn_record){ 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.open({ type: 1, title: '请输入操作理由', area: ['450px', '280px'], // 宽高可调 btn: ['提交', '取消'], content: '
' + '
' + '提示:取消后该订单会重新进入待派单状态' + '
' + // ''+ '' + '
', yes: function(index, layero) { var inputValue = $("#input-reason").val().trim(); if (!inputValue) { Layer.msg('输入内容不能为空!'); return; } Layer.close(index); var loadingIndex = Layer.load(1, { shade: [0.2, '#ccc'] }); $.ajax({ url: 'orders/dispatch2/del', type: 'POST', data: { ids: selectedIds, // 确保 selectedIds 已定义 reason: inputValue }, success: function(response) { Layer.close(loadingIndex); if (response.code == 1) { Toastr.success(response.message || "操作成功!"); table.bootstrapTable('refresh'); } else { Toastr.error(response.msg || "操作失败!"); } }, error: function() { Layer.close(loadingIndex); Toastr.error("操作失败,请重试!"); } }); } }); }); // 获取选中项 $(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(); }, addrecord: function () { Controller.api.bindevent(); }, dispatchlog: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); } } }; return Controller; });