浏览代码

first commit

liuhairui 7 月之前
父节点
当前提交
451d801aab

+ 0 - 7
public/.htaccess

@@ -1,7 +0,0 @@
-<IfModule mod_rewrite.c>
-Options +FollowSymlinks -Multiviews
-RewriteEngine on
-RewriteCond %{REQUEST_FILENAME} !-d
-RewriteCond %{REQUEST_FILENAME} !-f
-RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
-</IfModule>

+ 0 - 1
public/KJxPluQiNC.php

@@ -1,5 +1,4 @@
 <?php
-
 // +----------------------------------------------------------------------
 // | ThinkPHP [ WE CAN DO IT JUST THINK ]
 // +----------------------------------------------------------------------

+ 234 - 0
public/assets/js/backend/command.js

@@ -0,0 +1,234 @@
+define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function ($, undefined, Backend, Table, Form, Template) {
+
+    var Controller = {
+        index: function () {
+            // 初始化表格参数配置
+            Table.api.init({
+                extend: {
+                    index_url: 'command/index',
+                    add_url: 'command/add',
+                    edit_url: '',
+                    del_url: 'command/del',
+                    multi_url: 'command/multi',
+                    table: 'command',
+                }
+            });
+
+            var table = $("#table");
+
+            // 初始化表格
+            table.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.index_url,
+                pk: 'id',
+                sortName: 'id',
+                columns: [
+                    [
+                        {checkbox: true},
+                        {field: 'id', title: __('Id')},
+                        {field: 'type', title: __('Type'), formatter: Table.api.formatter.search},
+                        {field: 'type_text', title: __('Type')},
+                        {
+                            field: 'command', title: __('Command'), renderDefault: false, formatter: function (value, row, index) {
+                                return '<input type="text" class="form-control" value="' + value + '">';
+                            }
+                        },
+                        {
+                            field: 'executetime',
+                            title: __('Executetime'),
+                            operate: 'RANGE',
+                            addclass: 'datetimerange',
+                            formatter: Table.api.formatter.datetime
+                        },
+                        {
+                            field: 'createtime',
+                            title: __('Createtime'),
+                            operate: 'RANGE',
+                            addclass: 'datetimerange',
+                            formatter: Table.api.formatter.datetime
+                        },
+                        {
+                            field: 'updatetime',
+                            title: __('Updatetime'),
+                            operate: 'RANGE',
+                            addclass: 'datetimerange',
+                            formatter: Table.api.formatter.datetime
+                        },
+                        {
+                            field: 'status',
+                            title: __('Status'),
+                            table: table,
+                            custom: {"successed": 'success', "failured": 'danger'},
+                            searchList: {"successed": __('Successed'), "failured": __('Failured')},
+                            formatter: Table.api.formatter.status
+                        },
+                        {
+                            field: 'operate',
+                            title: __('Operate'),
+                            buttons: [
+                                {
+                                    name: 'execute',
+                                    title: __('Execute again'),
+                                    text: __('Execute again'),
+                                    url: 'command/execute',
+                                    icon: 'fa fa-repeat',
+                                    classname: 'btn btn-success btn-xs btn-execute btn-ajax',
+                                    success: function (data) {
+                                        Layer.alert("<textarea class='form-control' cols='60' rows='5'>" + data.result + "</textarea>", {
+                                            title: __("执行结果"),
+                                            shadeClose: true
+                                        });
+                                        table.bootstrapTable('refresh');
+                                        return false;
+                                    }
+                                },
+                                {
+                                    name: 'execute',
+                                    title: __('Detail'),
+                                    text: __('Detail'),
+                                    url: 'command/detail',
+                                    icon: 'fa fa-list',
+                                    classname: 'btn btn-info btn-xs btn-execute btn-dialog'
+                                }
+                            ],
+                            table: table,
+                            events: Table.api.events.operate,
+                            formatter: Table.api.formatter.operate
+                        }
+                    ]
+                ]
+            });
+
+            // 为表格绑定事件
+            Table.api.bindevent(table);
+        },
+        add: function () {
+            require(['bootstrap-select', 'bootstrap-select-lang']);
+            var mainfields = [];
+            var relationfields = {};
+            var maintable = [];
+            var relationtable = [];
+            var relationmode = ["belongsto", "hasone"];
+
+            var renderselect = function (select, data) {
+                var html = [];
+                for (var i = 0; i < data.length; i++) {
+                    html.push("<option value='" + data[i] + "'>" + data[i] + "</option>");
+                }
+                $(select).html(html.join(""));
+                select.trigger("change");
+                if (select.data("selectpicker")) {
+                    select.selectpicker('refresh');
+                }
+                return select;
+            };
+
+            $("select[name=table] option").each(function () {
+                maintable.push($(this).val());
+            });
+            $(document).on('change', "input[name='isrelation']", function () {
+                $("#relation-zone").toggleClass("hide", !$(this).prop("checked"));
+            });
+            $(document).on('change', "select[name='table']", function () {
+                var that = this;
+                Fast.api.ajax({
+                    url: "command/get_field_list",
+                    data: {table: $(that).val()},
+                }, function (data, ret) {
+                    mainfields = data.fieldlist;
+                    $("#relation-zone .relation-item").remove();
+                    renderselect($("#fields"), mainfields);
+                    return false;
+                });
+                return false;
+            });
+            $(document).on('click', "a.btn-newrelation", function () {
+                var that = this;
+                var index = parseInt($(that).data("index")) + 1;
+                var content = Template("relationtpl", {index: index});
+                content = $(content.replace(/\[index\]/, index));
+                $(this).data("index", index);
+                $(content).insertBefore($(that).closest(".row"));
+                $('select', content).selectpicker();
+                var exists = [$("select[name='table']").val()];
+                $("select.relationtable").each(function () {
+                    exists.push($(this).val());
+                });
+                relationtable = [];
+                $.each(maintable, function (i, j) {
+                    if ($.inArray(j, exists) < 0) {
+                        relationtable.push(j);
+                    }
+                });
+                renderselect($("select.relationtable", content), relationtable);
+                $("select.relationtable", content).trigger("change");
+            });
+            $(document).on('click', "a.btn-removerelation", function () {
+                $(this).closest(".row").remove();
+            });
+            $(document).on('change', "#relation-zone select.relationmode", function () {
+                var table = $("select.relationtable", $(this).closest(".row")).val();
+                var that = this;
+                Fast.api.ajax({
+                    url: "command/get_field_list",
+                    data: {table: table},
+                }, function (data, ret) {
+                    renderselect($(that).closest(".row").find("select.relationprimarykey"), $(that).val() == 'belongsto' ? data.fieldlist : mainfields);
+                    renderselect($(that).closest(".row").find("select.relationforeignkey"), $(that).val() == 'hasone' ? data.fieldlist : mainfields);
+                    return false;
+                });
+            });
+            $(document).on('change', "#relation-zone select.relationtable", function () {
+                var that = this;
+                Fast.api.ajax({
+                    url: "command/get_field_list",
+                    data: {table: $(that).val()},
+                }, function (data, ret) {
+                    renderselect($(that).closest(".row").find("select.relationmode"), relationmode);
+                    renderselect($(that).closest(".row").find("select.relationfields"), mainfields)
+                    renderselect($(that).closest(".row").find("select.relationforeignkey"), data.fieldlist)
+                    renderselect($(that).closest(".row").find("select.relationfields"), data.fieldlist)
+                    return false;
+                });
+            });
+            $(document).on('click', ".btn-command", function () {
+                var form = $(this).closest("form");
+                var textarea = $("textarea[rel=command]", form);
+                textarea.val('');
+                Fast.api.ajax({
+                    url: "command/command/action/command",
+                    data: form.serialize(),
+                }, function (data, ret) {
+                    textarea.val(data.command);
+                    return false;
+                });
+            });
+            $(document).on('click', ".btn-execute", function () {
+                var form = $(this).closest("form");
+                var textarea = $("textarea[rel=result]", form);
+                textarea.val('');
+                Fast.api.ajax({
+                    url: "command/command/action/execute",
+                    data: form.serialize(),
+                }, function (data, ret) {
+                    textarea.val(data.result);
+                    window.parent.$(".toolbar .btn-refresh").trigger('click');
+                    top.window.Fast.api.refreshmenu();
+                    return false;
+                }, function () {
+                    window.parent.$(".toolbar .btn-refresh").trigger('click');
+                });
+            });
+            $("select[name='table']").trigger("change");
+            Controller.api.bindevent();
+        },
+        edit: function () {
+            Controller.api.bindevent();
+        },
+        api: {
+            bindevent: function () {
+                Form.api.bindevent($("form[role=form]"));
+            }
+        }
+    };
+    return Controller;
+});

+ 193 - 82
public/assets/js/backend/deliver.js

@@ -21,8 +21,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
               table.bootstrapTable({
                   url: 'deliver/lager',
                   pk: 'id',
-                  height:400,
+                  height:600,
                   sortName: 'id',
+                  pagination: false,  // 关闭分页功能
                   toolbar:'#toolbar',
                   searchFormVisible:true,
                   onClickRow:function(row, $element, field)
@@ -40,10 +41,25 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                           {field: 'id', title: 'ID', visible:false,operate: false},
                           {field: 'bach', title: __('批次号'),operate: "LIKE"},
                           {field: 'l_flow', title: __('托盘号'), operate: false},
-                          {field: 'matter_name', title: __('辅料名称'), operate: 'LIKE',searchList: $.getJSON("deliver/matterName")},
+                          {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: '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},
+                          // {field: 'small_num', title: __('小件数'),operate: false},
                       ]
                   ]
               });
@@ -102,7 +118,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 var smallTable = $('#small_table');
                 smallTable.bootstrapTable({
                     url:'deliver/smallList',
-                    height: 300,
+                    height: 600,
                     toolbar: '#toolbar1',
                     search:false,
                     // commonSearch:false,
@@ -153,11 +169,27 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     [
                         {checkbox: true},
                         {field: 'id', title: __('Id'),visible:false,operate: false},
-                        {field: 'matter_name', title: '辅料名称', operate: 'LIKE',searchList: $.getJSON("deliver/matterName")},
-                        {field: 'matter_no', title: '辅料编码', operate: false},
+                        {field: 'large_num', 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: 'matter_no', title: '产品编码', operate: false},
                         {field: 'username', title: '所属用户', operate: 'LIKE'},
-                        {field: 'large_num', title: '大件数量', operate: false},
-                        {field: 'small_num', title: '小件数量', operate: false},
+                        // {field: 'large_num', title: '大件数量', operate: false},
+                        // {field: 'small_num', title: '小件数量', operate: false},
                         {field: 'create_time', title: '创建时间', operate: 'RANGE', addclass: 'datetimerange', formatter: Table.api.formatter.datetime},
                         {field: 'file_dir', title: '下载路径', operate: false,formatter: function (value,row,index) {
                                 if (row.status == 0){
@@ -286,82 +318,161 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     icon: 'fa fa-magic',
                                     url: 'deliver/printqrcode/id/{ids}',
                                     // confirm: '确认发送',
-                                    success: function (data,res) {
-                                        if (res.code === 1){
+
+                                    // 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: 1070px;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;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;;;">托盘序号</th>' +
+                                    //             '                   <tr><th class="tg-s6z2" style="font-family:Arial, sans-serif;font-size:18px;text-align:center;font-weight:500;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:18px;text-align:center;font-weight:500;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:18px;text-align:center;font-weight:500;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:18px;text-align:center;font-weight:500;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:18px;text-align:center;font-weight:500;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:18px;text-align:center;font-weight:500;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:18px;text-align:center;font-weight:500;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:18px;text-align:center;font-weight:500;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].large_ber+'</td>';
+                                    //                                 html+= '<tr><td class="tg-031e" style="font-family:Arial, sans-serif;font-size:16px;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:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].total_boxes+'</td>';
+                                    //                                 html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].tray_num+'</td>';
+                                    //                                 html+= '<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].box_num+'</td>';
+                                    //                                 // if(arr[i].mater_type==1){
+                                    //                                     html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].pallet_height+'</td>';
+                                    //                                     html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].pallet_length + '*' + arr[i].pallet_width+'</td>';
+                                    //                                     html+='<td class="tg-031e" style="font-family:Arial, sans-serif;font-size:16px;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:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">'+arr[i].small_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+'&nbsp;&nbsp;'+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;
+                                    // },
+
+                                    success: function (data, res) {
+                                        console.log(data);
+                                        console.log(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;;width: 170px;">物料名称</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;;width: 150px;">生产批号</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;width: 100px;">大件</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;width: 100px;">小件</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;width: 100px;">单位</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;width: 150px;">实发数量</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;width: 150px;">备注</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+'&nbsp;&nbsp;'+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;
+                                            let html = `
+                                                    <div style="width: 1100px;height: 100px;position: relative;">
+                                                        <div style="float: left">
+<!--                                                            <div style="width: 1000px;font-weight: 400;font-size: 28px;text-align: center;line-height: 50px;" class="company">${res.data.supplier_name}</div>-->
+<!--                                                            <div style="width: 1000px;font-weight: 400;font-size: 24px;text-align: center;line-height: 50px;">送货单</div>-->
+                                                            <div style="width: 1000px;font-weight: 400;font-size: 28px;text-align: center;line-height: 50px;" class="company"></div>
+                                                            <div style="width: 1000px;font-weight: 400;font-size: 24px;text-align: center;line-height: 50px;"></div>
+                                                        </div>
+                                                        <div id="qrcode" style="display:inline-block;width: 105px;height: 105px;position: absolute;right: 100px;top: -5px;">
+<!--                                                            <img src="${res.data.qrcode_add}" style="width: 105px;height: 105px;" id="qrcode_image"/>-->
+                                                        </div>
+                                                    </div>
+
+                                                    <table class="tg1" style="margin-top: 3px;border-collapse:collapse;width:1186px;font-weight:500;">
+<!--                                                        <tr><td colspan="6" style="border:none">客户名称:河南中烟工业有限责任公司黄金叶生产制造中心</td><td colspan="4" style="border:none">送货单号:<span id="shdh">${res.data.shdh}</span></td></tr>-->
+<!--                                                        <tr><td colspan="6" style="border:none">送货地址:河南省郑州市经开区第三大街9号</td><td colspan="4" style="border:none">送货日期:<span id="shrq_date">${res.data.shrq_date}</span></td></tr>-->
+                                                    </table>
+                                            
+                                                    <table class="tg1" style="table-layout:fixed;width: 1070px;border-collapse:collapse;border-spacing:0;font-weight:500; position: relative;" >
+                                                        <tr>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">托盘序号</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;width: 360px">产品名称</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">每托箱数</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">每层箱数</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">每托层数</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">每托高度</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">托盘规格</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">托盘数</th>
+                                                            <th style="font-family:Arial, sans-serif;font-size:20px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">总箱数</th>
+                                                        </tr>
+                                                    `;
+                                            for (let i = 0; i < arr.length; i++) {
+                                                html += `
+                                                        <tr>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].large_ber}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].matter_name}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].total_boxes}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].tray_num}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].box_num}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].pallet_height}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].pallet_length} * ${arr[i].pallet_width}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].large_num}</td>
+                                                            <td style="font-family:Arial, sans-serif;font-size:16px;text-align:center;border-style:solid;border-width:1px;overflow:hidden;word-break:break-all;border-color:black;">${arr[i].small_num}</td>
+                                                        </tr>
+                                                        `;
+                                            }
+                                            // html += `
+                                            //             </table>
+                                            //             <table class="tg2" style="margin-top: 3px;border-collapse:collapse;width:1086px;font-size: 16px;">
+                                            //                 <tr><td colspan="3">发货单位:${res.data.supplier_name}</td><td colspan="3">司机/司机电话:${res.data.deliveryman} &nbsp;&nbsp;${res.data.shr_phone}</td><td colspan="3">车牌号:${res.data.plate_number}</td></tr>
+                                            //                 <tr><td colspan="7">发货单位地址:${res.data.address}</td><td colspan="3">收货单位(签名、盖章)</td></tr>
+                                            //             </table>
+                                            //         `;
+                                            $("#printcode").html(html);
+
+                                            // 正确绑定 load 事件并打印
+                                            // let image = document.getElementById('qrcode_image');
+                                            // image.onload = function () {
+                                                const printHTML = document.querySelector('#printcode').innerHTML;
+                                                document.body.innerHTML = printHTML;
                                                 window.print();
-                                                window.location.reload(); // 打印完成后重新加载页面
-                                            })
+                                                window.location.reload(); // 可选:打印完重新加载页面
+                                            // };
                                         }
                                         return false;
                                     },

+ 62 - 0
public/assets/js/backend/finishedproduct.js

@@ -0,0 +1,62 @@
+define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
+
+    var Controller = {
+        index: function () {
+            // 初始化表格参数配置
+            Table.api.init({
+                extend: {
+                    index_url: 'finishedproduct/index' + location.search,
+                    add_url: 'finishedproduct/add',
+                    edit_url: 'finishedproduct/edit',
+                    del_url: 'finishedproduct/del',
+                    multi_url: 'finishedproduct/multi',
+                    import_url: 'finishedproduct/import',
+                    table: 'version',
+                }
+            });
+
+            var table = $("#table");
+
+            // 初始化表格
+            table.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.index_url,
+                pk: 'id',
+                sortName: 'weigh',
+                fixedColumns: true,
+                fixedRightNumber: 1,
+                columns: [
+                    [
+                        {checkbox: true},
+                        {field: 'id', title: __('Id')},
+                        {field: 'oldversion', title: __('Oldversion'), operate: 'LIKE'},
+                        {field: 'newversion', title: __('Newversion'), operate: 'LIKE'},
+                        {field: 'packagesize', title: __('Packagesize'), operate: 'LIKE'},
+                        {field: 'content', title: __('Content'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                        {field: 'downloadurl', title: __('Downloadurl'), operate: 'LIKE', formatter: Table.api.formatter.url},
+                        {field: 'enforce', title: __('Enforce')},
+                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
+                        {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
+                        {field: 'weigh', title: __('Weigh'), operate: false},
+                        {field: 'status', title: __('Status'), searchList: {"30":__('Status 30')}, 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);
+        },
+        add: function () {
+            Controller.api.bindevent();
+        },
+        edit: function () {
+            Controller.api.bindevent();
+        },
+        api: {
+            bindevent: function () {
+                Form.api.bindevent($("form[role=form]"));
+            }
+        }
+    };
+    return Controller;
+});

+ 62 - 0
public/assets/js/backend/inventorydetails.js

@@ -0,0 +1,62 @@
+define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
+
+    var Controller = {
+        index: function () {
+            // 初始化表格参数配置
+            Table.api.init({
+                extend: {
+                    index_url: 'inventorydetails/index' + location.search,
+                    add_url: 'inventorydetails/add',
+                    edit_url: 'inventorydetails/edit',
+                    del_url: 'inventorydetails/del',
+                    multi_url: 'inventorydetails/multi',
+                    import_url: 'inventorydetails/import',
+                    table: 'version',
+                }
+            });
+
+            var table = $("#table");
+
+            // 初始化表格
+            table.bootstrapTable({
+                url: $.fn.bootstrapTable.defaults.extend.index_url,
+                pk: 'id',
+                sortName: 'weigh',
+                fixedColumns: true,
+                fixedRightNumber: 1,
+                columns: [
+                    [
+                        {checkbox: true},
+                        {field: 'id', title: __('Id')},
+                        {field: 'oldversion', title: __('Oldversion'), operate: 'LIKE'},
+                        {field: 'newversion', title: __('Newversion'), operate: 'LIKE'},
+                        {field: 'packagesize', title: __('Packagesize'), operate: 'LIKE'},
+                        {field: 'content', title: __('Content'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
+                        {field: 'downloadurl', title: __('Downloadurl'), operate: 'LIKE', formatter: Table.api.formatter.url},
+                        {field: 'enforce', title: __('Enforce')},
+                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
+                        {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
+                        {field: 'weigh', title: __('Weigh'), operate: false},
+                        {field: 'status', title: __('Status'), searchList: {"30":__('Status 30')}, 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);
+        },
+        add: function () {
+            Controller.api.bindevent();
+        },
+        edit: function () {
+            Controller.api.bindevent();
+        },
+        api: {
+            bindevent: function () {
+                Form.api.bindevent($("form[role=form]"));
+            }
+        }
+    };
+    return Controller;
+});

+ 134 - 53
public/assets/js/backend/qcode_add.js

@@ -4,37 +4,42 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
     var Controller = {
         index: function () {
             //选择产品获取产品编码、单位
-            $('#c-product_name').change(function () {
-               var product_code = $('#c-product_name').val();
-               $('#c-product_code').val(product_code);
-               Fast.api.ajax({
-                   url:'qcode_add/product',
-                   data:{product_code:product_code},
-               },function (data) {
-                   if (data.temple === '07'){
-                       $('#danwei').val(1);
-                       $('.juan').hide();
-                       $('.xiang').show();
-                   }else {
-                       $('#danwei').val(2);
-                       $('.xiang').hide();
-                       $('.juan').show();
-                   }
-                   if (data.flow === ''){
-                       $('#c-big_liushui').val(1)
-                   }else {
-                       $('#c-big_liushui').val(data.flow);
-                   }
-                   if (data.bach === ''){
-                       $('#c-batch').val(201800000);
-                   }else {
-                       $('#c-batch').val(data.bach);
-                   }
-                   return false;
-               },function () {
-                   return false;
-               });
-            });
+            // $('#c-product_name').change(function () {
+            //    var product_code = $('#c-product_name').val();
+            //    $('#c-product_code').val(product_code);
+            //    Fast.api.ajax({
+            //        url:'qcode_add/product',
+            //        data:{product_code:product_code},
+            //    },function (data) {
+            //        if (data.temple === '07'){
+            //            $('#danwei').val(1);
+            //            $('.juan').hide();
+            //            $('.xiang').show();
+            //        }else {
+            //            $('#danwei').val(2);
+            //            $('.xiang').hide();
+            //            $('.juan').show();
+            //        }
+            //        if (data.flow === ''){
+            //            $('#c-big_liushui').val(1)
+            //        }else {
+            //            $('#c-big_liushui').val(data.flow);
+            //        }
+            //        if (data.bach === ''){
+            //            console.log("bach")
+            //            // $('#c-batch').val(201800000);
+            //            var currentYear = new Date().getFullYear();
+            //            var newValue = currentYear + '000000';
+            //            $('#c-batch').removeAttr('disabled');
+            //            $('#c-batch').val(newValue);
+            //        }else {
+            //            $('#c-batch').val(data.bach);
+            //        }
+            //        return false;
+            //    },function () {
+            //        return false;
+            //    });
+            // });
             //进入页面根据单位判断显示字段
             $(document).ready(function () {
                 var status = $('#danwei').val();
@@ -90,31 +95,70 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                 }
             });
 
-            //单位为箱时计算大小件数量
+            // //单位为箱时计算大小件数量
+            // function xiangcal() {
+            //     var number = $('#c-number').val();
+            //     var box_number = $('#box_number').val();
+            //     var tray_num = $('#tray_num').val();
+            //     var small_num  = 0;
+            //     var box_num = 0;
+            //     if (box_number !== 0 && tray_num !== 0){
+            //         small_num = Math.ceil(number / box_number) ;
+            //         $('#c-small_num').val(small_num);
+            //         box_num = Math.ceil(small_num / tray_num);
+            //         $('#c-box_num').val(box_num);
+            //     }
+            // }
+            // //单位为卷时计算大小件数量
+            // function juancal() {
+            //     var small_num = $('#c-small_num').val();
+            //     var volume_num = $('#c-volume_num').val();
+            //     console.log(small_num);
+            //     var box_num = 0;
+            //     if (small_num !== 0 && volume_num !== 0){
+            //         box_num = Math.ceil(small_num / volume_num);
+            //         if(box_num != 'Infinity'){
+            //             $('#c-box_num').val(box_num);
+            //         }
+            //     }
+            // }
+            // 单位为箱时计算大小件数量
             function xiangcal() {
-                var number = $('#c-number').val();
-                var box_number = $('#box_number').val();
-                var tray_num = $('#tray_num').val();
-                var small_num  = 0;
-                var box_num = 0;
-                if (box_number !== 0 && tray_num !== 0){
-                    small_num = Math.ceil(number / box_number) ;
+                var number = parseFloat($('#c-number').val()) || 0;
+                var box_number = parseFloat($('#box_number').val()) || 0;
+                var tray_num = parseFloat($('#tray_num').val()) || 0;
+
+                var small_num = '';
+                var box_num = '';
+
+                if (box_number > 0) {
+                    small_num = Math.ceil(number / box_number);
+                    small_num = isFinite(small_num) ? small_num : '';
                     $('#c-small_num').val(small_num);
+                } else {
+                    $('#c-small_num').val('');
+                }
+
+                if (tray_num > 0 && small_num !== '') {
                     box_num = Math.ceil(small_num / tray_num);
+                    box_num = isFinite(box_num) ? box_num : '';
                     $('#c-box_num').val(box_num);
+                } else {
+                    $('#c-box_num').val('');
                 }
             }
-            //单位为卷时计算大小件数量
+
+            // 单位为卷时计算大小件数量
             function juancal() {
-                var small_num = $('#c-small_num').val();
-                var volume_num = $('#c-volume_num').val();
-                console.log(small_num);
-                var box_num = 0;
-                if (small_num !== 0 && volume_num !== 0){
-                    box_num = Math.ceil(small_num / volume_num);
-                    if(box_num != 'Infinity'){
-                        $('#c-box_num').val(box_num);
-                    }
+                var small_num = parseFloat($('#c-small_num').val()) || 0;
+                var volume_num = parseFloat($('#c-volume_num').val()) || 0;
+
+                if (volume_num > 0) {
+                    var box_num = Math.ceil(small_num / volume_num);
+                    box_num = isFinite(box_num) ? box_num : '';
+                    $('#c-box_num').val(box_num);
+                } else {
+                    $('#c-box_num').val('');
                 }
             }
             //重置批次号按钮
@@ -179,16 +223,16 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     layer.confirm('单位不能为空');
                 }
                 rows.push({'danwei':danwei});
-                //小件总数量
+                //每托盘箱数
                 var small_num = $('#c-small_num').val();
                 if (small_num == null || small_num === ''){
-                    layer.confirm('小件总数量不能为空');
+                    layer.confirm('每托盘箱数不能为空');
                 }
                 rows.push({'small_num':small_num});
-                //大件数量
+                //大件(总托数)
                 var box_num = $('#c-box_num').val();
                 if (box_num == null || box_num ===''){
-                    layer.confirm('大件数量不能为空');
+                    layer.confirm('大件(总托数)不能为空');
                 }
                 rows.push({'box_num':box_num});
                 //生产日期
@@ -260,6 +304,43 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     }
                     rows.push({'volume_num':volume_num});
                 }
+
+                //每层箱数
+                var boxes_per_layer = $('#boxes_per_layer').val();
+                if (boxes_per_layer == null || boxes_per_layer === ''){
+                    layer.confirm('每层箱数不能为空');
+                }
+                rows.push({'boxes_per_layer':boxes_per_layer});
+                //每托层数
+                var layers_per_pallet = $('#layers_per_pallet').val();
+                if (layers_per_pallet == null || layers_per_pallet === ''){
+                    layer.confirm('每托层数不能为空');
+                }
+                rows.push({'layers_per_pallet':layers_per_pallet});
+                //每托盘箱数
+                var total_boxes = $('#total_boxes').val();
+                if (total_boxes == null || total_boxes === ''){
+                    layer.confirm('每托盘箱数不能为空');
+                }
+                rows.push({'total_boxes':total_boxes});
+                //每托高度
+                var pallet_height = $('#pallet_height').val();
+                if (pallet_height == null || pallet_height === ''){
+                    layer.confirm('每托高度不能为空');
+                }
+                rows.push({'pallet_height':pallet_height});
+                //托盘规格
+                var pallet_length = $('#pallet_length').val();
+                if (pallet_length == null || pallet_length === ''){
+                    layer.confirm('托盘规格不能为空');
+                }
+                rows.push({'pallet_length':pallet_length});
+                var pallet_width = $('#pallet_width').val();
+                if (pallet_width == null || pallet_width === ''){
+                    layer.confirm('托盘规格不能为空');
+                }
+                rows.push({'pallet_width':pallet_width});
+
                 console.log(rows);
                 console.log(JSON.stringify({rows}));
                 Fast.api.ajax({

+ 40 - 18
public/assets/js/backend/qcode_bach.js

@@ -240,13 +240,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'LodopFuncs'], functi
 
                 var html = '<div style="margin-top: 20px">' +
                     '<label class="col-xs-5 col-sm-3" style="text-align: right;">标签类型:</label>' +
-                    '<select class="selectpicker" style="height: 30px;" name="row[type]" id="type">' +
-                    '<option value="v010" >v010大件盒包装(10cmx15cm)</option>' +
+                    '<select class="selectpicker" style="height: 30px;width: 270px" name="row[type]" id="type">' +
+                    '<option value="v010" >(10cmx15cm)</option>' +
                     '</select>' +
                     '</div>' +
                     '<div>' +
-                    '<label class="col-xs-5 col-sm-3" style="text-align: right;">打印数量:</label>' +
-                    '<input id="numn" style="width: 200px;margin-bottom: 2px;" name="row[numn]" type="text" value="4">' +
+                    '<label class="col-xs-5 col-sm-3" style="text-align: right;top: 8px;">打印数量:</label>' +
+                    '<input id="numn" style="width: 270px;margin-top: 8px;" name="row[numn]" type="text" value="1">' +
                     '</div>' +
                     '<div class="form-group layer-footer" style="margin-top: 10px">' +
                     '<div style="text-align: center">' +
@@ -510,14 +510,29 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'LodopFuncs'], functi
                     columns: [
                         [
                             {checkbox: true},
-                            {field: 'matter_name', title: __('Matter_name'), operate: false},
-                            {field: 'l_flow', title: __('L_flow'), operate: false},
-                            {field: 'large_endnum', title: __('Large_endnum'), operate: false},
-                            {field: 'bach_num', title: __('Bach_num'), operate: false},
-                            {field: 'larger_num', title: __('Larger_num'), operate: false},
-                            {field: 'print_date', title: __('Print_date'), operate: false},
-                            {field: 'supplier_name', title: __('Company_name'), operate: false},
-                            {field: 'matter_no', title: __('Matter_no'), operate: false},
+                            {field: 'matter_name', title: "产品名称", operate: false, width: 250},
+                            {field: 'matter_no', title: "产品编码", operate: false, width: 100},
+                            {field: 'num', title: "总数量", operate: false, width: 80},
+                            {field: 'total_boxes', title: "每托箱数", operate: false, width: 80},
+                            {field: 'tray_num', title: "每层箱数", operate: false, width: 80},
+                            {field: 'box_num', title: "每托层数", operate: false, width: 80},
+                            {field: 'small_num', title: "每托箱盘数", operate: false, width: 100},
+                            {field: 'pallet_height', title: "每托高度", operate: false, width: 100},
+                            {
+                                field: 'pallet_size',
+                                title: '托盘规格',
+                                operate: false,
+                                width: 120,
+                                formatter: function (value, row, index) {
+                                    return row.pallet_length + ' * ' + row.pallet_width;
+                                }
+                            },
+                            {field: 'larger_num', title: "总箱数", operate: false, width: 80},
+                            {field: 'l_flow', title: '开始流水号', operate: false, width: 120},
+                            {field: 'large_endnum', title:"结束流水号", operate: false, width: 120},
+                            {field: 'bach_num', title: "批次号", operate: false, width: 100},
+                            {field: 'print_date', title: __('Print_date'), operate: false, width: 80},
+                            {field: 'supplier_name', title: __('Company_name'), operate: false, width: 150},
                             // {field: 'notes', title: __('Notes')},
                             // {field: 'operate', title: __('Operate'), table: table1, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                         ]
@@ -581,16 +596,21 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'LodopFuncs'], functi
                     pagination: false,
                     search: false,
                     showExport: false,
+
+
+                    // pageSize: 8,
+                    // pageList: [8, 20, 50, 'All'],
+                    // singleSelect: true,
+
                     columns: [
                         [
                             {checkbox: true},
                             {field: 'l_flow', title: __('当前托盘'), operate: false},
-                            {field: 'code', title: __('Code'), operate: 'LIKE'},
-                            {field: 'print_date', title: __('Print_date'), operate: false},
-                            {field: 'p_nums', title: __('P_nums'), operate: false},
-                            {field: 'small_num', title: __('Small_num'), operate: false},
-                            {field: 'l_weight', title: __('L_weight'), operate: false},
-                            {field: 'l_num', title: __('Large_num'), operate: false},
+                            // {field: 'l_weight', title: "每托箱数", operate: false},
+                            {field: 'l_num', title: "每托箱数", operate: false},
+                            {field: 'small_num', title:"每层箱数", operate: false},
+                            {field: 'print_date', title:__('Print_date'), operate: false},
+                            {field: 'p_nums', title:"打印次数", operate: false},
                             {field: 'l_print', title: __('L_print'), operate: false, formatter:function (value, row, index) {
                                     if(value==1){
                                         return '<span style="color: green">已打印</span>';
@@ -606,6 +626,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'LodopFuncs'], functi
                                     }
                                 }},
                             {field: 'bach_id', title: __('bach_id'), visible:false, operate: 'LIKE'},
+                            {field: 'code', title: "标签代码", operate: "LIKE"},
+
                             // {field: 'notes', title: __('Notes')},
                             // {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
                         ]

二进制
public/uploads/export/20240109237_浙江易盒包装科技有限公司_红塔集团红塔山(硬经典100)26.2mm×30g_m2A50CU半麻直纹卷烟纸_80.xlsx


二进制
public/uploads/export/20240109583_浙江易盒包装科技有限公司_红塔集团红塔山(硬经典100)26.2mm×30g_m2A50CU半麻直纹卷烟纸_100.xlsx


二进制
public/uploads/export/20240109941_浙江易盒包装科技有限公司_红塔集团红塔山(硬经典100)26.2mm×30g_m2A50CU半麻直纹卷烟纸_100.xlsx


二进制
public/uploads/export/20240120426_许昌黄金叶实业有限责任公司_96mm_230g_㎡金色印刷框架纸_21.xlsx


二进制
public/uploads/export/20250321420_浙江易盒包装科技有限公司_红塔集团红塔山(硬经典100)26.2mm×30g_m2A50CU半麻直纹卷烟纸_48.xlsx


二进制
public/uploads/export/20250321871_ZHEJIANG MINONG IMP&EXP CO.,LTD._黄金叶(软福满堂)GD盒包装纸_64.xlsx