define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form,undefined) { var Controller = { index: function () { // $('#lager').on('click', function () { // const iframe = document.querySelector('#iframe1 iframe'); // if (iframe) { // iframe.src = iframe.src; // 强制 reload iframe // } // }); $('#apply').on('click', function () { const iframe = document.querySelector('#iframe2 iframe'); if (iframe) { iframe.src = iframe.src; // 强制 reload iframe } }); $('#dispatch').on('click', function () { const iframe = document.querySelector('#iframe3 iframe'); if (iframe) { iframe.src = iframe.src; // 强制 reload iframe } }); // $('#lager').click(function () { // $('#iframe1').contentWindow.location.reload('lager.html'); // }); Controller.api.bindevent(); }, // lager: function () { // // 初始化表格参数配置 // Table.api.init({ // extend: { // index_url: 'deliver/lager', // 替换为你的后端接口地址 // } // }); // // var table = $("#table"); // // // 初始化表格 // table.bootstrapTable({ // url: $.fn.bootstrapTable.defaults.extend.index_url, // toolbar: '#toolbar', // 工具栏选择器(如果有) // pk: 'id', // 主键字段 // sortName: 'id', // 默认排序字段 // // pagination: true, // 启用分页 // sidePagination: 'server', // 服务器端分页 // pageSize: 10, // 每页数量 // pageList: [10, 25, 50, 100], // 可选页数 // search: false, // 是否启用搜索 // commonSearch: true, // 是否启用 FastAdmin 搜索栏 // queryParams: function (params) { // return { // offset: params.offset, // limit: params.limit, // filter: JSON.stringify(params.filter), // 搜索条件 // op: JSON.stringify(params.op) // 搜索操作符 // }; // }, // // columns: [ // {field: 'bach', title: '工单号'}, // {field: 'tray_num', title: '托盘号'}, // {field: 'matter_name', title: '物料名称'}, // {field: 'bach', title: '批次号'}, // {field: 'total_boxes', title: '每托箱数'}, // {field: 'tray_num', title: '每层箱数'}, // {field: 'box_num', title: '每托层数'}, // {field: 'pallet_height', title: '每托高度'}, // {field: 'larger_num', title: '总箱数'}, // {field: 'manufacture_date', title: '生产日期'}, // {field: 'code', title: '大件编码'}, // // 添加更多字段... // ] // }); // // // 绑定事件 // Table.api.bindevent(table); // }, lager: function () { // 初始化表格参数配置 Table.api.init(); this.table.first(); this.table.second(); Controller.api.bindevent(); }, table:{ first:function (){ var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: 'deliver/lager', // 请求的 URL pk: 'id', // 主键字段 height: 700, // 表格的高度 sortName: 'id', // 默认排序字段 sortOrder: 'desc', // 默认排序顺序 pageSize: 50, // 每页显示 10 条数据 pageList: [10, 25, 50, 100,'ALL'], // 分页条数选择器 searchFormVisible: true, // 是否显示搜索框 onClickRow:function(row, $element, field) { // 点击行事件 $("#myTabContent1 .form-commonsearch input[name='large_id']").val(row.id); $("#myTabContent1 .btn-refresh").trigger("click"); }, search: false, // 禁用默认搜索框 showToggle: false, // 隐藏切换按钮 showColumns: false, // 隐藏列选择按钮 showExport: false, // 隐藏导出按钮 columns: [ [ {checkbox: true}, {field: 'id', title: 'ID', visible:false,operate: false}, {field: 'bach', title: __('批次号'),operate: "LIKE"}, {field: 'order_ddbh', title: __('销售订单号'),operate: "LIKE"}, {field: 'l_flow', title: __('托盘号'), operate: false}, {field: 'cpbm', title: __('成品编码'), operate: false}, {field: 'matter_name', title: __('成品名称'), operate: 'LIKE',searchList: $.getJSON("deliver/matterName")}, {field: 'total_boxes', title: "每托箱数", operate: false}, {field: 'tray_num', title: "每层箱数", operate: false}, {field: 'box_num', title: "每托层数", operate: false}, {field: 'pallet_height', title: "每托高度", operate: false}, { field: 'pallet_size', title: '托盘规格', operate: false, width: 120, formatter: function (value, row, index) { return row.pallet_length + ' * ' + row.pallet_width; } }, // {field: 'small_num', title: "托盘数", operate: false}, {field: 'larger_num', title: "总箱数", operate: false}, {field: 'num', title: "本次打包数", operate: false}, {field: 'small_num', title: "每箱数量", operate: false}, {field: 'danwei', title: "单位", operate: false}, {field: 'manufacture_date', title: '生产日期', operate: 'RANGE', addclass: 'datetimerange',datetimeFormat:'YYYY-MM-DD', formatter: Table.api.formatter.datetime}, {field: 'code', title: __('大件编码'), operate: false}, // {field: 'small_num', title: __('小件数'),operate: false}, ] ] }); // 监听复选框点击事件 $('#table').on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', function(e, rows) { var selectedData = table.bootstrapTable('getSelections'); // 获取选中的数据 // 计算选中的大件数量和小件数量 // 大件数量(选中的行数) let largeItemCount = 0; let smallItemCount = 0; selectedData.forEach(row => { largeItemCount += Number(row.total_boxes) || 0; smallItemCount += Number(row.total_boxes * row.small_num) || 0; }); $('p span').eq(1).text(largeItemCount); $('p span').eq(3).text(smallItemCount); // var largeItemCount = selectedData.length; // var largeItemCount = selectedData.reduce(function(total, row) { // return total + (row.total_boxes || 0); // }, 0); // // var smallItemCount = selectedData.reduce(function(total, row) { // return total + (row.small_num || 0); // }, 0); // // // 更新页面上的提示信息 // $('p span').eq(1).text(largeItemCount); // 更新大件数量 // $('p span').eq(3).text(smallItemCount); // 更新小件数量 }); //导出发货按钮 $('.btn-print').on('click',function () { var ids = Table.api.selectedids(table); if (ids.length === 0){ alert('至少选择一个大件'); } var lager = ids.toString(); // window.location.href = 'print?lager_id='+lager; Fast.api.ajax({ url:'deliver/print', data:{lager_id:lager}, },function (data,res) { if (res.code == 1){ window.location.href = '/'+res.data; table.bootstrapTable('refresh'); } return false; },function (data,res) { if (res.code == 0){ layer.confirm(res.msg); } return false; }) }) // 为表格绑定事件 Table.api.bindevent(table); //去掉时间区间记忆 table.on('post-body.bs.table',function (e,settings,json,xhr) { $('.datetimerange').each(function () { $(this).attr('autocomplete','off'); }) }); }, second:function(){ //小件列表 var smallTable = $('#small_table'); smallTable.bootstrapTable({ url:'deliver/smallList', height: 600, toolbar: '#toolbar1', search:false, // commonSearch:false, showToggle:false, showColumns:false, showExport:false, columns: [ [ {field: 'large_id',title: __('大件id'),operate: 'LIKE',visible:false}, {field: 'code', title: __('小件标签代码'),operate: false}, {field: 'l_flow', title: __('当前序号'),operate: false}, {field: 'print_num', title: __('打印次数'),operate: false}, {field: 'status', title: __('状态'),searchList: {"0":'正常',"1":'已删除'},operate: false,formatter: Table.api.formatter.status}, ] ] }); // 为表格绑定事件 Table.api.bindevent(smallTable); } }, apply: function () { Table.api.init({ extend: { index_url: 'deliver/apply', goods_url: 'deliver/goods', del_url: 'deliver/apply_del', update_url: 'deliver/apply_update', add_pallet_url: 'deliver/applydsit_add', table: 'deliver' } }); var table = $("#table2"); var detailTable = $("#table-detail"); // 加载日期菜单后初始化表格 Controller.loadDateMenu(function () { Controller.initTables(table, detailTable); }); }, // 初始化两个表格 initTables: function (table, detailTable) { // 主表 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, queryParams: function (params) { return Object.assign(params, Controller.currentQuery); }, pk: 'id', sortName: 'id', toolbar: '#toolbar1', height: 350, pagination: true, pageSize: 15, pageList: [10, 15, 25, 50], searchFormVisible: true, search: false, showToggle: false, showColumns: false, showExport: false, fixedColumns: true, fixedRightNumber: 1, columns: [[ {field: 'id', title: __('Id'), visible: false}, {field: 'bach_ids', title: '单据编号'}, {field: 'total_quantity', title: '总发货数量'}, {field: 'total_boxes', title: '总箱数'}, {field: 'total_pallets', title: '总托盘数'}, {field: 'product_count', title: '产品数量'}, {field: 'sys_rq', title: '日期'}, {field: 'created_at', title: '操作时间'}, { field: 'operate', title: '操作', align: 'center', formatter: function (value, row) { return ' 发货 ' + ' 删除'; }, events: { 'click .btn-delete': function (e, value, row, index) { e.stopPropagation(); // 阻止事件冒泡 layer.confirm('确定要删除这条记录吗?', { btn: ['确定', '取消'] }, function () { // 调用删除接口 $.ajax({ url: 'deliver/bachdelids', type: 'post', data: {bach_ids: row.bach_ids}, success: function (data) { if (data.code === 1) { layer.msg('删除成功', {icon: 1}); // 添加延迟刷新,确保后端数据已更新 setTimeout(function() { // 确保使用正确的表格实例引用 if (window.table && typeof window.table.bootstrapTable === 'function') { window.table.bootstrapTable('refresh'); } else if (window.parent && window.parent.table && typeof window.parent.table.bootstrapTable === 'function') { window.parent.table.bootstrapTable('refresh'); } }, 500); } else { layer.msg(data.msg || '删除失败', {icon: 2}); } }, error: function () { layer.msg('网络错误,请稍后重试', {icon: 2}); } }); }); } } } ]], // 行点击事件处理 onClickRow: function (row, $element) { Controller.selectedBachId = row.bach_ids; detailTable.bootstrapTable('refresh', { url: 'deliver/bachids?bach_ids=' + encodeURIComponent(row.bach_ids) }); }, onEditableSave: Controller.saveEditable }); // 明细表 detailTable.bootstrapTable({ sortName: 'id', toolbar: '#toolbar2', search: false, pagination: false, height: 350, columns: [[ {field: 'id', title: __('Id'), visible: false}, {field: 'order_ddbh', title: '销售订单号'}, {field: 'matter_no', title: '工单编号'}, {field: 'cpbm', title: '成品编码'}, { field: 'pallet_range', title: '托盘序号', editable: {type: 'text', title: '托盘序号'}, formatter: value => value || '无' }, { field: 'matter_name', title: '产品名称', operate: 'LIKE', searchList: $.getJSON("deliver/matterName") }, {field: 'actual_quantity', title: '汇总'}, {field: 'small_num', title: '个数/箱'}, {field: 'tray_count', title: '每托箱数'}, {field: 'tray_num', title: '每层箱数'}, {field: 'box_num', title: '每托层数'}, {field: 'layer_height', title: '每托高度'}, {field: 'pallet_length', title: '托盘长'}, {field: 'pallet_width', title: '托盘宽'}, {field: 'pallet_count', title: '托盘数'}, {field: 'total_boxes', title: '总箱数'}, { field: 'remark', title: '备注', editable: {type: 'text', title: '备注'}, formatter: value => value || '无' } ]], onEditableSave: Controller.saveEditable }); // 发货按钮点击事件 table.on('click', '.btn-goods', function (e) { e.stopPropagation(); var id = $(this).data('id'); Fast.api.open('deliver/goods?ids=' + id, '发货信息', {area: ["65%", "70%"]}); }); Table.api.bindevent(table); Table.api.bindevent(detailTable); table.on('post-body.bs.table', function () { $('.datetimerange').attr('autocomplete', 'off'); }); Controller.api.bindevent(); // 绑定新增按钮逻辑 Controller.bindAddPalletBtn(); }, // 可编辑保存逻辑 saveEditable: function (field, row, oldValue, $el) { $.ajax({ url: $.fn.bootstrapTable.defaults.extend.update_url, type: 'POST', data: { id: row.id, field: field, value: row[field] }, success: function (data) { if (data.code !== 1) { $el.bootstrapTable('updateCell', { index: row._index, field: field, value: oldValue }); Toastr.error(data.msg || '更新失败'); } else { Toastr.success('更新成功'); } }, error: function () { $el.bootstrapTable('updateCell', { index: row._index, field: field, value: oldValue }); Toastr.error('网络错误,更新失败'); } }); }, // 加载日期导航菜单 loadDateMenu: function (callback) { $.get("deliver/applydsit_list", function (res) { const data = res.data || {}; const $nav = $("#date-nav").empty(); // 添加"全部日期"选项 const allDateItem = $('
  • ').addClass('nav-item day-item'); const allDateLink = $('').attr('href', 'javascript:;').addClass('nav-link active').attr('data-date', 'all'); allDateItem.append(allDateLink); $nav.append(allDateItem); const years = Object.keys(data).sort((a, b) => b - a); years.forEach(year => { const yearId = `year-${year}`; const yearNode = $('
  • ').addClass('nav-item has-children collapsed').attr('id', yearId); const yearLink = $('').attr('href', 'javascript:;').addClass('nav-link').attr('data-year', year).text(`${year}年`); const yearChildren = $('