| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362 |
- 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 '<a href="javascript:;" class="btn-goods btn btn-xs btn-success" data-id="' + row.id + '"><i class="glyphicon glyphicon-export"></i> 发货</a> ' +
- '<a href="javascript:;" class="btn-delete btn btn-xs btn-danger" data-id="' + row.id + '" data-bach-ids="' + row.bach_ids + '"><i class="glyphicon glyphicon-trash"></i> 删除</a>';
- },
- 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 = $('<li>').addClass('nav-item day-item');
- const allDateLink = $('<a>').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 = $('<li>').addClass('nav-item has-children collapsed').attr('id', yearId);
- const yearLink = $('<a>').attr('href', 'javascript:;').addClass('nav-link').attr('data-year', year).text(`${year}年`);
- const yearChildren = $('<ul>').addClass('children');
- yearNode.append(yearLink);
- yearNode.append(yearChildren);
- // 获取唯一的月份数组并按月份降序排序
- const months = Object.keys(data[year]).map(month => {
- return {
- full: month,
- num: parseInt(month.split('-')[1])
- };
- }).sort((a, b) => b.num - a.num);
- // 去重处理
- const uniqueMonths = [];
- const monthNums = new Set();
- months.forEach(month => {
- if (!monthNums.has(month.num)) {
- monthNums.add(month.num);
- uniqueMonths.push(month);
- }
- });
- uniqueMonths.forEach(month => {
- const monthId = `month-${month.full}`;
- const monthNode = $('<li>').addClass('nav-item has-children collapsed').attr('id', monthId);
- const monthLink = $('<a>').attr('href', 'javascript:;').addClass('nav-link').attr('data-month', month.full).text(`${month.num}月`);
- const monthChildren = $('<ul>').addClass('children');
- monthNode.append(monthLink);
- monthNode.append(monthChildren);
- // 获取并排序日期
- const days = data[year][month.full].sort((a, b) => {
- // 按日期降序排序
- return parseInt(b) - parseInt(a);
- });
- days.forEach(day => {
- const dayNode = $('<li>').addClass('nav-item day-item');
- const dayLink = $('<a>').attr('href', 'javascript:;').addClass('nav-link').attr('data-date', `${year}-${day}`).text(`${day}日`);
- dayNode.append(dayLink);
- monthChildren.append(dayNode);
- });
- yearChildren.append(monthNode);
- });
- $nav.append(yearNode);
- });
- Controller.bindDateMenuClick();
- if (typeof callback === "function") {
- callback();
- }
- }).fail(function(xhr, status, error) {
- console.error("加载日期导航菜单失败:", error);
- layer.msg("加载日期导航菜单失败,请稍后重试", {icon: 5});
- });
- },
- // 菜单点击绑定逻辑(支持展开/收起、刷新主表)
- bindDateMenuClick: function () {
- // 菜单项点击
- $(document).off("click", "#date-nav .nav-link").on("click", "#date-nav .nav-link", function (e) {
- e.stopPropagation();
- const $link = $(this);
- const $item = $link.closest(".nav-item");
- const year = $link.data("year");
- const month = $link.data("month");
- const date = $link.data("date");
- // 如果是有子节点的项(年/月),则只展开/收起,不执行查询
- if ($item.hasClass("has-children")) {
- $item.toggleClass("expanded");
- return;
- }
- // 高亮当前激活项
- $("#date-nav .nav-link").removeClass("active");
- $link.addClass("active");
- // 构造筛选条件
- Controller.currentQuery = {};
- if (date !== undefined) {
- if (date !== "all") {
- Controller.currentQuery.date = date;
- }
- } else if (month) {
- Controller.currentQuery.month = month;
- } else if (year) {
- Controller.currentQuery.year = year;
- }
- // 刷新主表
- const table = $("#table2");
- if (table.length > 0) {
- table.bootstrapTable("refresh");
- } else {
- console.warn("表格元素 #table2 未找到");
- }
- });
- $("#sidebarToggle").off("click").on("click", function () {
- $("#date-sidebar").toggleClass("collapsed");
- $(this).find("i").toggleClass("fa-chevron-left fa-chevron-right");
- });
- },
- // ========== 新增按钮弹窗绑定 ==========
- bindAddPalletBtn: function () {
- $(document).on('click', '#addPalletBtn', function () {
- const bach_ids = Controller.selectedBachId;
- console.log("选中单据编号:", bach_ids);
- if (!bach_ids) {
- Layer.msg('请先点击主表选择一条记录(单据编号)', { icon: 2 });
- return;
- }
- Layer.open({
- type: 1,
- title: '批量新增托盘信息',
- area: ['90%', '70%'],
- btn: ['提交', '取消'],
- content: `
- <form id="bulk-add-form" style="padding:10px;">
- <input type="hidden" name="bach_ids" value="${bach_ids}">
- <table class="table table-bordered table-sm table-striped" style="width: 100%;">
- <thead>
- <tr>
- <th>托盘号</th>
- <th>产品名称</th>
- <th>备注</th>
- <th>数量</th>
- <th>单位</th>
- <th>操作</th>
- </tr>
- </thead>
- <tbody id="pallet-tbody">
- <tr>
- <td><input type="text" name="pallet_no[]" class="form-control" required></td>
- <td><input type="text" name="product_name[]" class="form-control" required></td>
- <td><input type="text" name="remark[]" class="form-control"></td>
- <td><input type="number" name="quantity[]" class="form-control" required></td>
- <td>
- <select name="unit[]" class="form-control">
- <option value="套" selected>套</option>
- <option value="张">张</option>
- <option value="个">个</option>
- <option value="托">托</option>
- <option value="卷">卷</option>
- </select>
- </td>
- <td>
- <a href="javascript:;" class="btn btn-danger btn-sm remove-row">
- <i class="fa fa-trash"></i>
- </a>
- </td>
- </tr>
- </tbody>
- </table>
- <button type="button" class="btn btn-success btn-sm" id="addRowBtn">
- <i class="fa fa-plus"></i> 添加一行
- </button>
- </form>
- `,
- success: function () {
- // 添加新行
- $('#addRowBtn').on('click', function () {
- const html = `
- <tr>
- <td><input type="text" name="pallet_no[]" class="form-control" required></td>
- <td><input type="text" name="product_name[]" class="form-control" required></td>
- <td><input type="text" name="remark[]" class="form-control"></td>
- <td><input type="number" name="quantity[]" class="form-control" required></td>
- <td>
- <select name="unit[]" class="form-control">
- <option value="套" selected>套</option>
- <option value="张">张</option>
- <option value="个">个</option>
- <option value="托">托</option>
- <option value="卷">卷</option>
- </select>
- </td>
- <td>
- <a href="javascript:;" class="btn btn-danger btn-sm remove-row">
- <i class="fa fa-trash"></i>
- </a>
- </td>
- </tr>`;
- $('#pallet-tbody').append(html);
- });
- // 删除单行
- $(document).off('click', '.remove-row').on('click', '.remove-row', function () {
- $(this).closest('tr').remove();
- });
- },
- yes: function (index) {
- const data = $('#bulk-add-form').serialize();
- $.post($.fn.bootstrapTable.defaults.extend.add_pallet_url, data, function (res) {
- if (res.code === 1) {
- Layer.msg('添加成功');
- $('#table-detail').bootstrapTable('refresh');
- Layer.close(index);
- } else {
- Layer.msg(res.msg || '提交失败');
- }
- }, 'json');
- }
- });
- });
- Controller.api.bindevent();
- },
- goods: function () {
- $('#apply_btn').click(function (e) {
- var ids = $('#goods_id').val();
- var order_number = $('#c-order_number').val();
- var deliveryman = $('#c-deliveryman').val();
- var shr_phone = $('#c-shr_phone').val();
- var plate_number = $('#c-plate_number').val();
- var note = $('#c-note').val();
- Fast.api.ajax({
- url:'deliver/apply_add',
- data:{
- ids:ids,
- order_number:order_number,
- deliveryman:deliveryman,
- shr_phone:shr_phone,
- plate_number:plate_number,
- note:note,
- }
- },function (data,res) {
- parent.Toastr.success("成功");
- Fast.api.close();
- window.parent.location.reload();
- return false;
- },function (data) {
- parent.Toastr.error('失败');
- Fast.api.close();
- window.parent.location.reload();
- return false;
- })
- });
- $('#Replication').click(function (e) {
- // 阻止默认行为,防止表单提交或页面刷新
- e.preventDefault();
- e.stopPropagation();
- Fast.api.ajax({
- url: 'deliver/ReplicationList',
- type: 'get',
- data: {}
- }, function (data, ret) {
- console.log('调用成功:', data);
- $('#c-order_number').val(data.order_number || '');
- $('#c-deliveryman').val(data.deliveryman || '');
- $('#c-shr_phone').val(data.shr_phone || '');
- $('#c-plate_number').val(data.plate_number || '');
- $('#c-note').val(data.note || '');
- parent.Toastr.success('发货信息已成功复制');
- return false;
- }, function (data) {
- console.log('调用失败:', data);
- parent.Toastr.error('复制发货信息失败');
- return false;
- });
- return false;
- });
- Controller.api.bindevent();
- },
- dispatch: function () {
- Table.api.init({
- extend: {
- index_url: 'deliver/dispatch' + location.search,
- del_url:'deliver/dispatch_del',
- table:'deliver'
- }
- });
- var table = $("#table3");
- // 加载日期导航数据
- this.loadDateNavigation();
- // 初始化表格
- table.bootstrapTable({
- url: $.fn.bootstrapTable.defaults.extend.index_url,
- pk: 'id',
- height:600,
- sortName: 'id',
- searchFormVisible:true,
- showToggle:false,
- showColumns:false,
- showExport:false,
- fixedColumns: true,
- fixedRightNumber: 1,
- columns: [
- [
- {checkbox: true},
- {field: 'id', title: __('Id'), operate: 'LIKE',visible:false,operate: false},
- {field: 'shdh', title: '收货单号', operate: 'LIKE', operate: false},
- {field: 'order_number', title: '订单号', operate: 'LIKE'},
- {field: 'deliveryman', title: '司机', operate: 'LIKE', operate: false},
- {field: 'plate_number', title: '车牌号', operate: 'LIKE', operate: false},
- {field: 'supplier_name', title: '供应商名称', operate: 'LIKE'},
- {field: 'create_time', title: '发货时间', operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
- {field: 'buttons',
- width: "120px",
- title: __('发货单打印'),
- operate: false,
- table: table,
- events: Table.api.events.operate,
- buttons: [
- {
- name: 'ajax',
- text: __('点击打印'),
- title: __('点击打印'),
- classname: 'btn btn-xs btn-success btn-magic btn-ajax',
- icon: 'fa fa-magic',
- url: 'deliver/printqrcode/id/{ids}',
- success: function (data, res) {
- if (res.code === 1) {
- const arr = res.data.data;
- console.log(res);
- let totalTray = 0;
- let totalBox = 0;
- const productMap = {};
- let totalTao = 0;
- let totalZhang = 0;
- const unitQuantities = {}; // 使用对象存储不同单位的数量
- // 首先从summary.products中初始化productMap,包含备注信息
- if (res.data.summary && res.data.summary.products) {
- Object.keys(res.data.summary.products).forEach(productName => {
- const productInfo = res.data.summary.products[productName];
- if (!productMap[productName]) {
- productMap[productName] = {
- qty: 0,
- unit: productInfo.unit || '个',
- remark: productInfo.remark || ''
- };
- }
- });
- }
- for (let i = 0; i < arr.length; i++) {
- const item = arr[i];
- totalTray += parseInt(item.large_num || 0);
- totalBox += parseInt(item.larger_num || 0);
- const name = item.matter_name;
- const unit = item.danwei;
- const qty = parseInt(item.num || 0);
- if (!productMap[name]) {
- productMap[name] = { qty: 0, unit: unit, remark: '' };
- }
- productMap[name].qty += qty;
- if (unit === '套') {
- totalTao += qty;
- } else if (unit === '张') {
- totalZhang += qty;
- } else {
- // 存储其他单位的数量
- if (!unitQuantities[unit]) {
- unitQuantities[unit] = 0;
- }
- unitQuantities[unit] += qty;
- }
- }
- const productNames = Object.keys(productMap);
- const productQuantities = productNames.map(name => productMap[name].qty);
- const manualBoxes = productQuantities.reduce((a, b) => a + b, 0);
- // Group items by pallet and sort by pallet number
- const palletGroups = {};
- arr.forEach(item => {
- if (!palletGroups[item.pallet]) {
- palletGroups[item.pallet] = [];
- }
- palletGroups[item.pallet].push(item);
- });
- // Sort pallet numbers in ascending order
- const sortedPalletNumbers = Object.keys(palletGroups).sort((a, b) => {
- // Extract numeric parts from pallet numbers (handling cases like "1-28")
- const numA = parseInt(a.toString().split('-')[0]);
- const numB = parseInt(b.toString().split('-')[0]);
- return numA - numB;
- });
- let html = `
- <div style="width: 1100px; height: 100px; position: relative;">
- <div style="float: left">
- <div style="width: 1000px; font-size: 28px; font-weight: bold; text-align: center; line-height: 50px;">${res.data.supplier_name}</div>
- <div style="width: 1000px; font-size: 24px; text-align: center; line-height: 50px;">送货单</div>
- </div>
- <div id="qrcode" style="position: absolute; right: 100px; top: -5px; width: 105px; height: 105px;">
- <img src="${res.data.qrcode_add}" style="width: 105px; height: 105px;" id="qrcode_image"/>
- </div>
- </div>
- <table style="margin-bottom: 10px; width: 1070px; font-weight: 500; border-collapse: collapse;">
- <tr>
- <td colspan="6" style="border: none;">客户名称:亚美尼亚SPS</td>
- <td colspan="4" style="border: none;">送货单号:<span id="shdh">${res.data.shdh}</span></td>
- </tr>
- <tr>
- <td colspan="6" style="border: none;">送货地址:亚美尼亚</td>
- <td colspan="4" style="border: none;">送货日期:<span id="shrq_date">${res.data.shrq_date}</span></td>
- </tr>
- </table>
- <div style="width: 1070px; font-size: 20px; text-align: center; border: 1px solid black; border-bottom: none;">
- ${res.data.order_ddbh || ''}${res.data.note || ''}
- </div>
- <table style="width: 1070px; border-collapse: collapse; font-size: 16px; text-align: center; margin-top: 0;">
- <colgroup>
- <col style="width: 80px"> <!-- 托盘序号 -->
- <col style="width: 200px"> <!-- 产品名称 -->
- <col style="width: 70px"> <!-- 每箱个数 -->
- <col style="width: 70px"> <!-- 每托箱数 -->
- <col style="width: 70px"> <!-- 每层箱数 -->
- <col style="width: 70px"> <!-- 每托层数 -->
- <col style="width: 70px"> <!-- 每托高度 -->
- <col style="width: 120px"> <!-- 托盘规格 -->
- <col style="width: 70px"> <!-- 托盘数 -->
- <col style="width: 70px"> <!-- 总箱数 -->
- </colgroup>
- <tr style="font-weight: bold;">
- <th style="border: 1px solid black;">托盘序号</th>
- <th style="border: 1px solid black;">产品名称</th>
- <th style="border: 1px solid black;">每箱个数</th>
- <th style="border: 1px solid black;">每托箱数</th>
- <th style="border: 1px solid black;">每层箱数</th>
- <th style="border: 1px solid black;">每托层数</th>
- <th style="border: 1px solid black;">每托高度</th>
- <th style="border: 1px solid black;">托盘规格</th>
- <th style="border: 1px solid black;">托盘数</th>
- <th style="border: 1px solid black;">总箱数</th>
- </tr>`;
- // Process pallet groups in sorted order
- sortedPalletNumbers.forEach(palletKey => {
- const items = palletGroups[palletKey];
- const rowCount = items.length;
- items.forEach((item, index) => {
- html += `<tr>`;
- // Only add pallet number for first row in group
- if (index === 0) {
- html += `<td style="border: 1px solid black;" rowspan="${rowCount}">第${palletKey}托</td>`;
- }
- // Handle product name with potential line breaks
- const productName = item.matter_name.replace(/([^\u4e00-\u9fa5])([^\u4e00-\u9fa5])/g, '$1$2<wbr>');
- html += `
- <td style="border: 1px solid black; text-align: left; padding: 0 5px;">${productName}</td>
- <td style="border: 1px solid black;">${item.small_num}</td>
- <td style="border: 1px solid black;">${item.total_boxes}</td>
- <td style="border: 1px solid black;">${item.tray_num}</td>
- <td style="border: 1px solid black;">${item.box_num}</td>
- <td style="border: 1px solid black;">${item.pallet_height}</td>
- <td style="border: 1px solid black;">${item.pallet_length} * ${item.pallet_width}</td>
- <td style="border: 1px solid black;">${item.large_num}</td>
- <td style="border: 1px solid black;">${item.larger_num}</td>
- </tr>`;
- });
- });
- const fillCount = 15 - arr.length;
- for (let i = 0; i < fillCount; i++) {
- html += `
- <tr>
- <td style="border: 1px solid black;"> </td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;"></td>
- </tr>`;
- }
- html += `
- <tr style="font-weight: bold;">
- <td style="border: 1px solid black;">合计:</td>
- <td colspan="7" style="border: 1px solid black;"></td>
- <td style="border: 1px solid black;">${totalTray}</td>
- <td style="border: 1px solid black;">${totalBox}</td>
- </tr>
- </table>
- <table style="margin-top: 20px; width: 1070px; border-collapse: collapse; font-size: 18px;">
- <tr>
- <td colspan="${productNames.length + 2}" style="border: 1px solid black; text-align: left;">
- 总共出货:${totalBox} 箱 = ${totalTray} 托(
- 手工盒子:${totalTao} 套
- 纸质卡片:${totalZhang} 张
- ${unitQuantities['个'] || 0} 个
- ${unitQuantities['托'] || 0} 托
- ${unitQuantities['卷'] || 0} 卷
- )
- </td>
- </tr>
- <tr>
- <td style="border: 1px solid black; text-align: center; width: 120px;">产品名称</td>
- ${productNames.map(name => `<td style="border: 1px solid black; text-align: center; width: 120px;">${name}</td>`).join('')}
- <td style="border: 1px solid black; text-align: center; width: 120px;">合计</td>
- </tr>
- <tr>
- <td style="border: 1px solid black; text-align: center;">出货数量</td>
- ${productNames.map(name => `<td style="border: 1px solid black; text-align: center;">${productMap[name].qty}</td>`).join('')}
- <td style="border: 1px solid black; text-align: center;">${manualBoxes}</td>
- </tr>
- <tr>
- <td style="border: 1px solid black; text-align: center;">备注</td>
- ${productNames.map(name => {
- // 处理备注去重:按分号分割,去重后重新拼接
- let remark = productMap[name].remark || '';
- if (remark) {
- // 分割备注并去重
- const uniqueRemarks = [...new Set(remark.split(';').map(item => item.trim()).filter(Boolean))];
- remark = uniqueRemarks.join('; ');
- }
- return `<td style="border: 1px solid black; text-align: center;">${remark || ' '}</td>`;
- }).join('')}
- <td style="border: 1px solid black;"></td>
- </tr>
- </table>
- <div style="margin-top: 20px; font-size: 14px; font-weight: bold; border: 1px solid black; padding: 10px; text-align: left; width: 1070px;">
- 共 ${totalTray} 托
- <br/>
- 备注:
- <br/>(1) 用唛头笔写上托盘序号,托盘唛头打印贴在每托盘上面,打托的时候混托注意摆放和高度,另外不要漏掉了。
- <br/>(2) 每托烟盒中间放瓦楞,最上面盖个木板,缠绕膜缠结实,护角护好,打打包带,井子形打包
- <br/>(3) 配托后,请提供具体托盘高度及托盘重量。
- </div>`;
- $("#printcode").html(html);
- var ee = $('#qrcode_image').attr('src', res.data.qrcode_add);
- ee.on('load', function () {
- var printHTML = document.querySelector('#printcode').innerHTML;
- window.document.body.innerHTML = printHTML;
- window.print();
- window.location.reload();
- });
- }
- return false;
- },
- error: function (data, ret) {
- return false;
- }
- },
- ],
- formatter: Table.api.formatter.buttons
- },
- {field: 'status', title: '状态', operate: 'LIKE',searchList: {"0":'已发货',"1":'已删除'}, formatter: Table.api.formatter.status},
- {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
- ]
- ],
- });
- // 为表格绑定事件
- Table.api.bindevent(table);
- //去掉时间区间输入记忆
- table.on('post-body.bs.table',function (e,settings,json,xhr) {
- $('.datetimerange').each(function () {
- $(this).attr('autocomplete','off');
- })
- });
- Controller.api.bindevent();
- },
- // 加载日期导航数据
- loadDateNavigation: function(callback) {
- var self = this; // 保存当前上下文
- $.get("deliver/dispatch_list", function(res) {
- const data = res.data || {};
- const $nav = $("#date-nav").empty();
- const years = Object.keys(data).sort((a, b) => b - a);
- years.forEach(year => {
- const yearId = `year-${year}`;
- const yearNode = $('<li>').addClass('nav-item has-children collapsed').attr('id', yearId);
- const yearLink = $('<a>').attr('href', 'javascript:;').addClass('nav-link').attr('data-year', year).text(`${year}年`);
- const yearChildren = $('<ul>').addClass('children');
- yearNode.append(yearLink);
- yearNode.append(yearChildren);
- // 获取唯一的月份数组并按月份降序排序
- const months = Object.keys(data[year]).map(month => {
- return {
- full: month,
- num: parseInt(month.split('-')[1])
- };
- }).sort((a, b) => b.num - a.num);
- // 去重处理
- const uniqueMonths = [];
- const monthNums = new Set();
- months.forEach(month => {
- if (!monthNums.has(month.num)) {
- monthNums.add(month.num);
- uniqueMonths.push(month);
- }
- });
- uniqueMonths.forEach(month => {
- const monthId = `month-${month.full}`;
- const monthNode = $('<li>').addClass('nav-item has-children collapsed').attr('id', monthId);
- const monthLink = $('<a>').attr('href', 'javascript:;').addClass('nav-link').attr('data-month', month.full).text(`${month.num}月`);
- const monthChildren = $('<ul>').addClass('children');
- monthNode.append(monthLink);
- monthNode.append(monthChildren);
- // 获取并排序日期
- const days = data[year][month.full].sort((a, b) => {
- // 按日期降序排序
- return parseInt(b) - parseInt(a);
- });
- days.forEach(day => {
- const dayNode = $('<li>').addClass('nav-item day-item');
- const dayLink = $('<a>').attr('href', 'javascript:;').addClass('nav-link').attr('data-date', `${year}-${day}`).text(`${day}日`);
- dayNode.append(dayLink);
- monthChildren.append(dayNode);
- });
- yearChildren.append(monthNode);
- });
- $nav.append(yearNode);
- });
- // 绑定日期菜单点击事件
- self.bindDateNavigationEvents();
- if (typeof callback === "function") {
- callback();
- }
- }).fail(function(xhr, status, error) {
- console.error("加载日期导航失败:", error);
- layer.msg("加载日期导航失败,请稍后重试", {icon: 5});
- });
- },
- // 绑定日期导航事件
- bindDateNavigationEvents: function() {
- var self = this; // 保存当前上下文
- var $dateNav = $('#date-nav');
- // 菜单项点击事件
- $dateNav.off('click').on('click', '.nav-link', function(e) {
- e.stopPropagation();
- e.preventDefault();
- const $link = $(this);
- const $item = $link.closest('.nav-item');
- // 如果是可展开项,则只展开/收起
- if ($item.hasClass('has-children')) {
- $item.toggleClass('expanded');
- return false;
- }
- // 高亮当前选中项
- $dateNav.find('.nav-link').removeClass('active');
- $link.addClass('active');
- // 获取日期值
- const date = $link.data('date');
- console.log("Selected date:", date); // 调试输出
- if (date) {
- self.loadTableByDate(date);
- }
- });
- // 侧边栏切换按钮
- $('#sidebarToggle').off('click').on('click', function() {
- $('#date-sidebar').toggleClass('collapsed');
- $(this).find('i').toggleClass('fa-chevron-left fa-chevron-right');
- });
- },
- // 根据日期加载表格数据
- loadTableByDate: function(date) {
- console.log("Loading table for date:", date); // 调试输出
- // 如果是"全部日期",则清除日期参数
- var params = {};
- if (date && date !== 'all') {
- params.date = date;
- }
- // 刷新表格数据
- var table = $('#table3');
- var options = table.bootstrapTable('getOptions');
- options.pageNumber = 1; // 重置到第一页
- options.queryParams = function(p) {
- return $.extend({}, p, params);
- };
- table.bootstrapTable('refresh', {url: 'deliver/dispatch?' + $.param(params)});
- },
- receive: function () {
- // 初始化表格参数配置
- Table.api.init({
- extend: {
- index_url: 'deliver/receive' + location.search,
- del_url:'deliver/receive_del',
- table:'deliver'
- }
- });
- var table = $("#table");
- // 初始化表格
- table.bootstrapTable({
- url: $.fn.bootstrapTable.defaults.extend.index_url,
- pk: 'id',
- height:500,
- sortName: 'id',
- searchFormVisible:true,
- showToggle:false,
- showColumns:false,
- showExport:false,
- fixedColumns: true,
- fixedRightNumber: 1,
- columns: [
- [
- {checkbox: true},
- {field: 'id', title: __('Id'),visible:false,operate: false},
- {field: 'shdh', title: '送货单号', operate: false},
- {field: 'order_number', title: '订单号', operate: 'LIKE'},
- {field: 'deliveryman', title: '司机', operate: false},
- {field: 'plate_number', title: '车牌号', operate: false},
- {field: 'supplier_name', title: '供应商名称', operate: 'LIKE'},
- {field: 'create_time', title: '发货时间', operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
- {field: 'buttons', operate: false,
- width: "120px",
- title: __('发货单打印'),
- table: table,
- events: Table.api.events.operate,
- buttons: [
- {
- name: 'ajax',
- text: __('点击打印'),
- title: __('点击打印'),
- classname: 'btn btn-xs btn-success btn-magic btn-ajax',
- icon: 'fa fa-magic',
- url: 'deliver/printqrcode/id/{ids}',
- // confirm: '确认发送',
- success: function (data,res) {
- if (res.code === 1){
- var arr = res.data.data;
- var note='';
- var html = '<div style="width: 1100px;height: 100px;position: relative;">\n' +
- ' <div style="float: left">\n' +
- ' <div style="width: 1000px;font-weight: 400;font-size: 28px;text-align: center;line-height: 50px;" class="company">'+res.data.supplier_name+'</div>\n' +
- ' <div style="width: 1000px;font-weight: 400;font-size: 24px;text-align: center;line-height: 50px;">送货单</div>\n' +
- ' </div>\n' +
- ' <div id="qrcode" style="display:inline-block;width: 105px;height: 105px;position: absolute;right: 100px;top: -5px;">\n' +
- ' <img src="" style="width: 105px;height: 105px;" id="qrcode_image"/>\n' +
- ' </div>\n' +
- ' </div>\n' +
- ' <table class="tg1" style="margin-top: 3px;border-collapse:collapse;border-spacing:0;font-weight:500;width:1186px">\n' +
- ' <tr class="info">\n' +
- ' <td colspan="6" style="border:none">客户名称:河南中烟工业有限责任公司黄金叶生产制造中心</td>\n' +
- ' <td colspan="4" style="border:none">送货单号:<span style="font-size: 16px;" id="shdh">'+res.data.shdh+'</span></td>\n' +
- ' </tr>\n' +
- ' <tr class="info">\n' +
- ' <td colspan="6" style="border:none">送货地址:河南省郑州市经开区第三大街9号</td>\n' +
- ' <td colspan="4" style="border:none">送货日期:<span style="font-size: 16px;" id="shrq_date">'+res.data.shrq_date+'</span></td>\n' +
- ' </tr>\n' +
- ' </table>\n' +
- ' <br>\n' +
- ' <table class="tg1" style="table-layout:fixed;width: 1186px;border-collapse:collapse;border-spacing:0;font-weight:500; position: relative;" id="table">'+
- ' <tr><th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;">物料名称</th>' +
- ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;">生产批号</th>' +
- ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;">大件</th>' +
- ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;">小件</th>' +
- ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;">单位</th>' +
- ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;">实发数量</th>' +
- ' <th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:20px;text-align:center;font-weight:500;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;">备注</th>' +
- ' <th id="explain" rowspan="'+(res.data.count+1)+'" width="7%" style="border: none"><span style="writing-mode: tb-rl;height: 300px;font-size:16px;text-align: center;">' +
- ' 蓝联(回):业务 黄联(回):运输 '+'<br>'+'白联:存根 红联:财务 绿联:客户</span></th></tr>';
- for (var i=0;i < arr.length;i++){
- html+= '<tr><td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].matter_name+'</td>';
- html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+(arr[i].bach_num?arr[i].bach_num:'')+'</td>';
- html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].large_num+'</td>';
- html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'</td>';
- if(arr[i].mater_type==1){
- html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">万张</td>';
- html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].l_num+'</td>';
- html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseInt(arr[i].num)+'张'+'</td>';
- }else if (arr[i].mater_type==2){
- html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">kg</td>';
- html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].l_weight +'</td>';
- html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseFloat(arr[i].num)/1000+'kg'+'</td>';
- }else if (arr[i].mater_type==3){
- html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">万支</td>';
- html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+parseFloat(arr[i].num)*parseFloat(arr[i].small_num)/10000+'</td>';
- html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_num+'件*'+parseInt(arr[i].num)+'支'+'</td>';
- }
- }
- html+= '<tr><td class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">送货单备注</td>' +
- ' <td colspan="6" class="tg-031e" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+res.data.note+'</td></tr>'+
- ' </table>\n' +
- ' <table class="tg2" style="margin-top: 3px;border-collapse:collapse;border-spacing:0;font-weight:500;width:1086px;font-size: 16px;">\n' +
- ' <tr class="footer">\n' +
- ' <td colspan="3">发货单位:<span class="company">'+res.data.supplier_name+'</span></td>\n' +
- ' <td colspan="3">司机/司机电话:<span id="deliveryman">'+res.data.deliveryman+' '+res.data.shr_phone+'</span></td>\n' +
- ' <td colspan="3">车牌号:<span id="carid">'+res.data.plate_number+'</span></td>\n' +
- ' </tr>\n' +
- ' <tr class="footer">\n' +
- ' <td colspan="7">发货单位地址:<span id="address">'+res.data.address+'</span></td>\n' +
- ' <td colspan="3">收货单位(签名、盖章)</td>\n' +
- ' </tr>\n' +
- ' </table>'
- $("#printcode").html(html)
- var ee = $('#qrcode_image').attr('src',res.data.qrcode_add);
- // 将打印的区域赋值,进行打印
- ee.on('load',function () {
- var printHTML = document.querySelector('#printcode').innerHTML;
- window.document.body.innerHTML = printHTML;
- window.print();
- window.location.reload(); // 打印完成后重新加载页面
- })
- }
- return false;
- },
- error: function (data, ret) {
- return false;
- }
- },
- ],
- formatter: Table.api.formatter.buttons
- },
- {field: 'status', title: '状态', operate: 'LIKE',searchList: {"0":'未收货',"2":'已收货'},defaultValue:'1', formatter: Table.api.formatter.status},
- {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
- ]
- ],
- });
- $('#receive').click(function (){
- var shdh = $('#shdh').val();
- if (shdh!=''){
- $.get('deliver/receive_add',{'shdh':shdh},function (res){
- if (res.code==1){
- //修改成功
- //1. 提示
- Toastr.success(res.msg)
- //2. 刷新页面
- table.bootstrapTable('refresh');
- }else{
- Toastr.error(res.msg)
- }
- })
- }
- })
- // 为表格绑定事件
- Table.api.bindevent(table);
- Controller.api.bindevent();
- },
- api: {
- bindevent: function () {
- Form.api.bindevent($("form[role=form]"));
- }
- }
- };
- return Controller;
- });
|