duhe
2024-07-31 9d97d87a33ff3eae9fbf0cd2128c10bec237c12e
WebTM/views/Éú²ú¹ÜÀí/Éú²ú¼Æ»®Æ½Ì¨/JIT_DayPlanPlatFormImport.html
@@ -11,37 +11,6 @@
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <style>
        .main-btn { /*头部主按钮*/
            padding: 0 2px; /*调整按钮左右空隙大小*/
            height: 30px;
            line-height: 30px;
        }
        .btn-title {
            font-size: 16px;
        }
        /* é˜²æ­¢ä¸‹æ‹‰æ¡†çš„下拉列表被隐藏---必须设置--- */
        .layui-table-cell {
            overflow: visible !important;
        }
        /* ä½¿å¾—下拉框与单元格刚好合适 */
        td .layui-form-select {
            margin-top: -10px;
            margin-left: -15px;
            margin-right: -15px;
        }
        .layui-form-item .layui-inline {
            margin-top: 5px;
            margin-bottom: 5px;
            margin-right: 0px;
        }
        .layui-form-label {
            width: 25%;
        }
    </style>
</head>
<body>
    <div class="layui-fluid" style="padding: 0;">
@@ -49,7 +18,7 @@
            <div class="layui-card-body" style="padding: 1px;">
                <form class="layui-form" action="" lay-filter="formData" style="background-color:white;">
                    <div style="padding: 10px; ">
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">导入</button>
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">导入数据</button>
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="Cancel" id="Cancel">退出</button>
                        <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="UpLoad" id="UpLoad">文件上传</button>
                    </div>
@@ -70,19 +39,19 @@
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">订单类型</label>
                                            <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                                <select name="HProdORGID" id="HProdORGID" lay-verify="HProdORGID">
                                                <select name="HOrderType" id="HOrderType" lay-verify="HOrderType">
                                                    <option value="生产订单">生产订单</option>
                                                    <option value="委外订单">委外订单</option>
                                                </select>
                                            </div>
                                        </div>
                                        <!--<div class="layui-inline">
                                        <div class="layui-inline">
                                            <div class="layui-inline">
                                                <div class="layui-input-block" style="margin-left: 120px;">
                                                    <input type="file" class="layui-upload-form" lay-verify="file" name="file" id="file" style="padding-left: 75px;">
                                                    <input type="hidden" name="HPRDORGID" id="HPRDORGID" lay-verify="HPRDORGID">
                                                </div>
                                            </div>
                                        </div>-->
                                        </div>
                                    </div>
                                </div>
                            </div>
@@ -92,8 +61,7 @@
                    <table class="" id="mainTable" lay-filter="mainTable"></table>
                    <script type="text/html" id="toolbarDemo">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_AddNew"><i class="layui-icon layui-icon-file-b"></i>批量填充</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_DeleteBill"><i class="layui-icon layui-icon-delete"></i>删除行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_BatchFill"><i class="layui-icon layui-icon-file-b"></i>批量填充</button>
                        </div>
                    </script>
                </form>
@@ -102,13 +70,16 @@
    </div>
</body>
</html>
<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    layui.config({
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(['index', 'form', 'laydate', 'table', 'element','upload'], function () {
    }).use(['index', 'form', 'laydate', 'table', 'element', 'upload'], function () {
        //#region å…¬å…±å˜é‡
@@ -122,10 +93,13 @@
            , upload = layui.upload
            , element = layui.element;
        var option = [];
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
        var params = getUrlVars();
        var OperationType = params[params[0]]; //从参数中获取 æ•°æ®ç±»åž‹  æ·»åŠ  ä¿å­˜
        //初始化界面
        set_ClearBill();
@@ -134,41 +108,58 @@
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        //导入
        form.on('submit(UpLoad)', function () {
            var uploadInst = upload.render({
                elem: '#UpLoad',
                type: 'POST',
                url: GetWEBURL() + '/JIT_DayPlanPlatFormImport/JIT_DayPlanPlatFormImport_DR',
                accept: 'file', //普通文件
                exts: 'xls|excel|xlsx', //导入表格
                auto: false,  //选择文件后不自动上传
                before: function (obj) {
                    layer.load(); //上传loading
                },
                choose: function (obj) {// é€‰æ‹©æ–‡ä»¶å›žè°ƒ
                    alert(obj)
                    var files = obj.pushFile();
                    var fileArr = Object.values(files);// æ³¨æ„è¿™é‡Œçš„æ•°æ®éœ€è¦æ˜¯æ•°ç»„,所以需要转换一下
                    //console.debug(fileArr)
                    // ç”¨å®Œå°±æ¸…理掉,避免多次选中相同文件时出现问题
                    for (var index in files) {
                        if (files.hasOwnProperty(index)) {
                            delete files[index];
                        }
                    }
                }, error: function () {
                    setTimeout(function () {
                        layer.msg("上传失败!", {
                            icon: 1
                        });
                        layer.closeAll(); //疯狂模式,关闭所有层
                    }, 1000);
        //行内事件
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
            set_GridCellCheck(obj);//行内快捷键筛选
        });
        //文件上传
        upload.render({
            elem: '#UpLoad',
            url: GetWEBURL() + '/JIT_DayPlanPlatFormImport/JIT_DayPlanPlatFormImport_DR',
            contentType: 'application/json',
            exts: 'xls|xlsx', //允许上传的类型
            before: function (data) {
                loadIndex = layer.load(2);
            },
            done: function (data1) {
                if (data1.count == 1) {
                    option.data = data1.data;
                    table.render(option);
                    layer.close(loadIndex);
                } else {
                    layer.close(loadIndex);
                    layer.alert(data1.code + data1.Message, { icon: 5 });
                }
            });
            },
            error: function (err) {
                debugger
                layer.alert('导入出现异常', { icon: 2 });
            }
        });
        //退出
        form.on('submit(Cancel)', function () {
            if (OperationType == 1) {
                Pub_Close(1);
            }
            else {
                Pub_Close(2);
            }
        })
        //导入  ä¿å­˜æ•°æ®
        form.on('submit(btnSave)', function (data) {
            if (table.cache["mainTable"] != null) {
                set_AddNew(data);
            }
            else {
                layer.msg("无数据,请先导入数据!");
            }
        })
        //#endregion
        //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
@@ -180,53 +171,171 @@
            //初始化表格
            set_InitGrid();
        }
         //#endregion
        //初始化表格
        function set_InitGrid() {
            table.render({
            var myDate = new Date();
            var yyyy = myDate.getFullYear();
            var MM = myDate.getMonth() + 1;
            var dd = myDate.getDate();
            var SumMonth = 31; //动态两月之差 new Date(yyyy, MM, 0).getDate()
            var columns = [];
            columns.push({ type: 'checkbox', fixed: 'left' });
            columns.push({ field: 'hmainid', title: 'hmainid', width: 200, hide: true });
            columns.push({ field: '单据号', title: '单据号', width: 200 });
            columns.push({ field: '生产订单号*', title: '生产订单号', width: 150 });
            columns.push({ field: '生产订单明细行号*', title: '生产订单明细行号', width: 200 });
            columns.push({ field: '组织编码*', title: '组织编码', width: 150});
            columns.push({ field: 'HWorkShopID', title: 'HWorkShopID', hide: true });
            columns.push({ field: '生产车间编码*', title: '生产车间', width: 150});
            columns.push({ field: 'HSourceID', title: 'HSourceID', hide: true });
            columns.push({ field: '生产资源编码*', title: '生产资源', edit: 'text', event: "HSourceID"   });
            columns.push({ field: '优先级', title: '优先级' });
            columns.push({ field: 'HEmpID', title: 'HEmpID', hide: true });
            columns.push({ field: '员工', title: '员工', width: 150 });
            columns.push({ field: '员工编码', title: '员工编码', width: 150 });
            columns.push({ field: 'HMaterID', title: '物料ID', hide: true });
            columns.push({ field: '物料编码*', title: '物料编码', width: 150 });
            columns.push({ field: '物料名称', title: '物料名称', width: 200 });
            columns.push({ field: '规格型号', title: '规格型号', width: 150});
            columns.push({ field: 'HUnitID', title: 'HUnitID', hide: true });
            columns.push({ field: '计量单位', title: '计量单位', width: 150});
            columns.push({ field: '批次号', title: '批次', width: 150});
            columns.push({ field: '销售订单数量', title: '销售订单数量', width: 200 });
            columns.push({ field: '生产订单数量', title: '生产订单数量', width: 200 });
            columns.push({ field: '总齐套数量', title: '总齐套数量', width: 200 });
            columns.push({ field: 'ICMOBillHInterID', title: 'ICMOBillHInterID', hide: true});
            columns.push({ field: 'ICMOBillHEntryID', title: 'ICMOBillHEntryID', hide: true });
            columns.push({ field: 'HProdORGID', title: 'HProdORGID', hide: true });
            for (var i = 0; i <= (SumMonth - dd); i++) {
                columns.push({ field: Format(yyyy + '/' + MM + '/' + (dd + i), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (dd + i), 'MM.dd'), edit: 'text', width:80 })
            }
            for (var i = 1; i <= dd; i++) {
                columns.push({ field: Format(yyyy + '/' + (MM + 1) + '/' + i, 'yyyy-MM-dd'), title: Format(yyyy + '/' + (MM + 1) + '/' + i, 'MM.dd'), edit: 'text', width: 80 })
            }
            columns.push({ fixed: 'right', title: '操作', toolbar: '#barDemo' });
            option = {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
                , height: 'full-50'
                , height: 'full-190'
                , page: true
                , cellMinWidth: 90
                , limit: 50
                , limits: [50, 500, 5000, 20000]
                , loading: false
                , cols: [[
                    { type: 'checkbox', fixed: 'left' }
                    , { field: 'hmainid', title: 'hmainid', hide: true }
                    , { field: '单据类型', title: '单据类型', width: 120 }
                    , { field: '日期', title: '要料日期' }
                    , { field: '单据号', title: '单据号' }
                    , { field: '单据状态', title: '单据状态' }
                    , { field: '表头备注', title: '表头备注' }
                    , { field: '退回人', title: '退回人' }
                    , { field: '退回日期', title: '退回日期' }
                    , { field: '审核人', title: '审核人' }
                    , { field: '审核日期', title: '审核日期' }
                    , { field: '制单人', title: '制单人' }
                    , { field: '制单日期', title: '制单日期' }
                    , { field: '修改人', title: '修改人' }
                    , { field: '修改日期', title: '修改日期' }
                    , { field: '关闭人', title: '关闭人' }
                    , { field: '关闭日期', title: '关闭日期' }
                    , { field: '关闭类型', title: '关闭类型' }
                    , { field: '作废人', title: '作废人' }
                    , { field: '作废日期', title: '作废日期' }
                    , { field: '主生产组织', title: '生产组织' }
                    , { field: '车间名称', title: '生产车间' }
                    , { field: '源单单号', title: '生产订单号' }
                    , { field: '数量', title: '数量' }
                    , { field: '计量单位', title: '计量单位' }
                    , { field: '物料名称', title: '物料名称' }
                    , { field: '物料代码', title: '物料代码' }
                    , { field: '规格型号', title: '规格型号' }
                    , { field: '工单生产日期', title: '工单生产日期' }
                    , { field: '延迟原因', title: '延迟原因' }
                ]]
                , cols: [columns]
            };
            //渲染页面
            table.render(option);
        }
        //导入(保存)
        function set_AddNew(data) {
            var num = [];
            for (var i = 0; i < table.cache["mainTable"].length; i++) {
                if (table.cache["mainTable"][i] != "") {
                    table.cache["mainTable"][i].LAY_TABLE_INDEX = i;
                    num.push(table.cache["mainTable"][i])
                }
            }
            data.field.HPRDORGID = sessionStorage["OrganizationID"];//组织
            var sMainStr = JSON.stringify(data.field);
            var sSubStr = JSON.stringify(num);
            var sMainSub = sMainStr + ';' + sSubStr + ';' + sessionStorage["HUserName"];
            var index = layer.load();
            $.ajax({
                type: "POST",
                url: GetWEBURL() + "/JIT_DayPlanPlatFormImport/JIT_DayPlanPlatFormImport_btnSave",
                async: true,
                data: { "sMainSub": sMainSub },
                dataType: "json",
                success: function (data) {
                    if (data.count == 1) {
                        layer.close(index);
                        layer.msg("提交成功");
                    }
                    else {
                        layer.close(index);
                        layer.msg(data.Message, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    }
                },
                error: function (err) {
                    layer.close(index);
                    layer.msg("错误:" + err, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                }
            });
        }
        //行内删除
        function set_GridDelete(obj) {
            if (obj.event === 'del') {
                layer.confirm('真的删除行吗?', function (index) {
                    obj.del();
                    option.data = table.cache["mainTable"];//将数据绑定到data上
                    table.reload(option);
                    layer.close(index);
                });
            }
        }
        //行内删除快捷键
        function set_GridCellCheck(obj) {
            $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                if (event.key == "F7") {
                    //生产资源
                    if (obj.event == "HSourceID") {
                        layer.open({
                            type: 2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "生产资源列表"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2 //弹出动画
                            , area: ["90%", "90%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ["../../基础资料/生产基础资料/Gy_Source.html", "yes"]
                            , btn: ["确定", "取消"]
                            , btn1: function (index, laero) {
                                //按钮一  çš„回调
                                var iframeWindow = window["layui-layer-iframe" + index];//获取弹框页面
                                var checkStatus = iframeWindow.layui.table.checkStatus("mainTable");//获取选中的数据
                                if (checkStatus.data.length != 1) {
                                    return layer.msg("请选择一条数据");
                                }
                                //更新表格缓存的数据
                                obj.update({
                                    "HSourceID": checkStatus.data[0].HItemID
                                    , "生产资源编码*": checkStatus.data[0].生产资源代码
                                })
                                layer.close(index);//关闭弹窗
                            }
                        })
                    }
                    obj.event = "";
                    return false;
                }
            })
        }
        //获取参数
        function getUrlVars() {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
            for (var i = 0; i < hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }
        //#endregion