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, searchFormVisible:true, 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: false}, {field: 'orderb.order_no', title: __('Order.order_no'), operate: '='}, {field: 'orderb.source', title: __('来源'), operate: false, formatter:function (value) { return getDisplayById(value); }}, { field: 'follow', title: '跟进状态', searchList: { '0':'待跟进', "1": '已跟进', "2": '已结束', }, formatter: Table.api.formatter.label, custom: { '0': 'warning', // 待跟进:灰蓝色(默认 Bootstrap info) '1': 'success', // 已跟进:绿色 '2': 'default', // 已结束:红色 }, defaultValue: '0' //sortable:true, }, {field: 'record_count', title: '跟进次数',operate: false}, {field: 'work_progress', title: '跟进内容',operate: false, class: 'autocontent', formatter:function(value,row) { if(row.type == 2){ return value; }else{ if (row.last_record?.remark !== undefined) { return row.last_record.remark; } return ''; } } }, {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: 'source', title: '订单渠道', searchList: function (column) { return Template('source', {}); }, formatter: function (value, row, index) { return '无'; }, visible: false }, {field: 'orderb.customer', title: __('Order.customer'), operate: 'like'}, {field: 'orderb.tel', title: __('Order.tel'), operate: 'like'}, {field: 'worker_name', title: __('Worker_name'), operate: 'LIKE'}, {field: 'worker_tel', title: __('Worker_tel'), operate: 'LIKE'}, {field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('自动')}, formatter: Table.api.formatter.normal // defaultValue: '1' }, {field: 'got_time', title: __('接单时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {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: 'worker_remark', title: __('师傅备注'), operate: false}, { field: 'is_finish_today', title: '今日完成', searchList: { '0':'不能', "1": '能', }, formatter: Table.api.formatter.label, custom: { '0': 'warning', '1': 'success', }, }, {field: 'work_progress', title: __('当前施工进度'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content}, //{field: 'order.source_shop', title: __('Order.source_shop'), operate: '='}, // {field: 'order.source', title: __('Order.source')}, {field: 'orderb.address', title: __('Order.address'), operate: false, table: table, class: 'autocontent', formatter: Table.api.formatter.content}, {field: 'orderb.item_title', title: __('Order.item_title'), operate: 'like'}, {field: 'orderb.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: '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: 'estimated_finish_time', title: __('预估完成时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'finish_time', title: __('Finish_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false}, {field: 'area_id', title: __('地区'), searchList: function (column) { return Template('categorytpl', {}); }, formatter: function (value, row, index) { return '无'; }, visible: false }, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate, align:'left', buttons: [ { 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;*/ return row.btn_record; } }, { 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; } }, { name: 'deleteOrder', text: '取消订单', title: '取消订单', classname: 'btn btn-dialog', icon: 'fa fa-trash', url: function(row){ return 'order/delete/ids/'+row.order_id; }, dropdown: "更多", visible: function (row) { //return true; if (row.orderb.status >= 0 && row.orderb.status < 60 && row.status >=0 && row.status < 60) { return true; } return false; }, }, { name:"error", text:"订单报错", title:"订单报错", extend: 'data-toggle="tooltip" data-container="body"', classname: 'btn btn-dialog', icon: 'fa fa-bolt', url: function(row) { return 'order/addAbnormal/ids/' + row.order_id; }, refresh:true, dropdown: "更多", visible: function (row) { return true; if (row.orderb.status != 60 && row.status >=0 && row.status < 60) { return true; } return false; }, }, { name: 'invoice', text: '申请开票', title: '申请开票', classname: 'btn btn-dialog', icon: 'fa fa-send', url: function(row){ return 'order/invoice/ids/'+row.order_id; }, dropdown: "更多", visible: function (row) { return true; if (row.orderb.status == 60 && row.status>=0) { return true; } return false; }, }, { name: 'aftersale', text: '申请售后', title: '申请售后', classname: 'btn btn-dialog', icon: 'fa fa-phone-square', url: function(row){ return 'aftersales/aftersale/add/ids/'+row.order_id; }, dropdown: "更多", visible: function (row) { return true; if (row.orderb.status !== -10 && row.orderb.status !== 70) { return true; } return false; }, }, ], } ] ] }); // 为表格绑定事件 Table.api.bindevent(table); table.off('dbl-click-row.bs.table'); $("#select_city").on("cp:updated", function () { var citypicker = $(this).data("citypicker"); var code = citypicker.getCode("district") || citypicker.getCode("city") || citypicker.getCode("province"); $("#select_area_id").val(code); }); function getDisplayById(id) { const item = source.find(d => d.id === id); return item ? `【${item.ptitle}】${item.title}` : ''; } // 获取选中项 $(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: ['520px', '280px'], // 宽高可调 btn: ['提交', '取消'], content: '