1
yangle
2023-08-31 cbd7a7367c1e8b8e48f12ed649250dc7354347ff
1
1个文件已修改
1748 ■■■■■ 已修改文件
WebTM/views/车间管理/工序流转卡/WindowPrint.html 1748 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/³µ¼ä¹ÜÀí/¹¤ÐòÁ÷ת¿¨/WindowPrint.html
@@ -1,1602 +1,178 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>工序流转卡列表</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/grwebapp.js"></script>
    <meta charset="UTF-8" />
    <title>Serial Logger and Plotter</title>
    <!--<script src="https://cdn.jsdelivr.net/npm/chart.js@2.8.0"></script>-->
    <script src="../../../layuiadmin/ckou.js"></script>
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">打印状态</label>
                                    <div class="layui-input-block" style="width:100px">
                                        <select name="city" lay-verify="required" id="SHPrintQty">
                                            <option value="全部">全部</option>
                                            <option value="未打印">未打印</option>
                                            <option value="已打印">已打印</option>
                                        </select>
                                    </div>
                                </div>
                                <input type="checkbox" id="wybj" name="wybj" title="只显示委外" lay-filter="wybj" lay-skin="primary">
                                <div class="layui-inline">
                                    <label class="layui-form-label">开始日期</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input" id="HDate">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">结束日期</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input" id="HDate1">
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">
                                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                </button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch" style="padding:0 5px">重置</button>
                                <div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">订单跟踪号</label>
                                            <div class="layui-input-block">
                                                <input type="text" class="layui-input" name="HOrderProcNO" id="HOrderProcNO">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">物料</label>
                                            <div class="layui-input-block">
                                                <input type="text" class="layui-input" name="HProcExchBillNo" id="SHname">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">任务单号</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HWorkBillNo" id="HWorkBillNo">
                                            </div>
                                        </div>
                                    </div>
                                    <div class="layui-row" style="margin-top: 10px; margin-bottom: 10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">单据号</label>
                                            <div class="layui-input-block">
                                                <input type="text" class="layui-input" name="HBillNo" id="HBillNo">
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label">唯一ID</label>
                                            <div class="layui-input-block">
                                                <input type="text" class="layui-input" name="HErpID" id="HErpID">
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <!--<div class="layui-tab-item layui-show">-->
                        <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                        <!--</div>-->
                        <!--<table class="" id="mainTable" lay-filter="mainTable"></table>
                        <table class="" id="mainTable2" lay-filter="mainTable2"></table>-->
                        <div class="layui-tab layui-tab-card">
                            <ul class="layui-tab-title">
                                <li class="layui-this">工艺流程</li>
                                <li>器具清单</li>
                                <li>工艺参数清单</li>
                            </ul>
                            <div class="layui-tab-content">
                                <div class="layui-tab-item layui-show">
                                    <!--工艺流程-->
                                    <table class="layui-hide" id="mainTable2" lay-filter="mainTable2"></table>
                                </div>
                                <div class="layui-tab-item">
                                    <!--器具清单-->
                                    <table class="layui-hide" id="mainTable1" lay-filter="mainTable1"></table>
                                </div>
                                <div class="layui-tab-item">
                                    <!--工艺参数清单-->
                                    <table class="layui-hide" id="mainTable3" lay-filter="mainTable3"></table>
                                </div>
                            </div>
                        </div>
                        <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>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo2">
                            <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_ShowBill"><i class="layui-icon layui-icon-form"></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="btn_view"><i class="layui-icon layui-icon-tips"></i>预览</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_print"><i class="layui-icon layui-icon-print"></i>打印</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>刷新</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Exit"><i class="layui-icon layui-icon-logout"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_StationOut"><i class="layui-icon layui-icon-form"></i>工序出站汇报单</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_StationIn"><i class="layui-icon layui-icon-form"></i>工序进站接收单</button>-->
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_HideColumn2"><i class="layui-icon layui-icon-file-b"></i>明细列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_Fg"><i class="layui-icon layui-icon-file-b"></i>工序返工</button>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo3">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_HideColumn3"><i class="layui-icon layui-icon-file-b"></i>列设置</button>
                            </div>
                        </script>
                        <script type="text/html" id="toolbarDemo4">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="get_HideColumn4"><i class="layui-icon layui-icon-file-b"></i>列设置</button>
                            </div>
                        </script>
                    </form>
                </div>
            </div>
        </div>
    <canvas id="myChart" height="100"></canvas>
    <div>
        <button id="butConnect">connect</button><span style="padding: 1%"></span><button id="butEnd">end</button>
    </div>
    <style>
        .layui-table-cell {
            height: 22px;
        }
    </style>
    <div style="margin: 10px">Received:</div>
    <div id="received-data-list" style="border: groove; margin: 10px"></div>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
            //#region å…¬å…±å˜é‡
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , element = layui.element
                , laypage = layui.laypage
                , laydate = layui.laydate
                , util = layui.util
            //var sWhere = " äº§å“ä»£ç  = 'BX0002'";
            var sWhere = "";
            var option = "";
            var option2 = "";
            var option3 = "";
            var option4 = "";
            var HBillNo = "";
            var wybj = false;
            var QJQD = 0;//判断器具清单查询列表是否有数据  0没有 1有
            var Organization = sessionStorage["Organization"]
            //#endregion
        /*** find the chart and list tag below ***/
        var ctx = document.getElementById("myChart").getContext("2d");
        var chart = new Chart(ctx, {
            // The type of chart we want to create
            type: "line",
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
            //
            var HModName = "Sc_ProcessExchangeBillList";
            //不需要显示的字段 å¯æ‰©å±• ï¼ˆä¸»è¡¨ï¼‰
            var titleData = ["HItemID", "HEntryID", "HWorkShopID", "HMaterID", "HSupID", "HPRDORGID", "HEquipMentID", "hsubid", "HICMOEntryID", "HDeptID"];
             //不需要显示的字段 å¯æ‰©å±• ï¼ˆå·¥è‰ºæµç¨‹ï¼‰
            var titleData2 = ["HEntryID", "HProcID", "HCenterID", "HDeptID", "hmainid", "hicmointerid", "HWorkShopID", "HMaterID", "HUnitID", "hsubid", "HSupID"];
            //不需要显示的字段 å¯æ‰©å±• ï¼ˆå™¨å…·æ¸…单)
            var titleData3 = ["HEntryID", "HMouldID", "HMaterID", "HUnitID", "hmainid","hicmointerid"];
            //不需要显示的字段 å¯æ‰©å±• ï¼ˆå·¥è‰ºå‚数清单)
            var titleData4 = ["HItemID"];
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region å¤´å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //新增
                    case 'set_AddNew': set_AddNew();
                        break;
                    //编辑
                    case 'set_ShowBill': set_ShowBill();
                        break;
                    //删除
                    case 'set_DeleteBill': set_DeleteBill();
                        break;
                    //拆分
                    case 'set_cf': set_cf();
                        break;
                    //刷新
                    case 'get_Refresh': get_Refresh();
                        break;
                    //退出按钮
                    case 'get_Exit': Pub_Close(2);
                        break;
                    //预览
                    case 'btn_view': get_view();
                        break;
                    //打印
                    case 'btn_print': get_print();
                        break;
                    //工序出站汇报单
                    case 'set_StationOut': set_StationOut();
                        break;
                    //工序进站接收单
                    case 'get_StationIn': get_StationIn();
                        break;
                    //列设置
                    case 'get_HideColumn1': get_HideColumn1();
                        break;
                    ////明细列设置
                    //case 'get_HideColumn2': get_HideColumn2();
                    //    break;
                    ////明细列设置
                    //case 'get_HideColumn3': get_HideColumn3();
                    //    break;
                    ////明细列设置
                    //case 'get_HideColumn4': get_HideColumn4();
                    //    break;
                };
            });
            table.on('toolbar(mainTable1)', function (obj) {
                switch (obj.event) {
                    //明细列设置
                    case 'get_HideColumn3': get_HideColumn3();
                        break;
                };
            });
            table.on('toolbar(mainTable2)', function (obj) {
                switch (obj.event) {
                    //新增
                    case 'set_AddNew': set_AddNew();
                        break;
                    //编辑
                    case 'set_ShowBill': set_ShowBill();
                        break;
                    //删除
                    case 'set_DeleteBill': set_DeleteBill();
                        break;
                    //刷新
                    case 'get_Refresh': get_Refresh();
                        break;
                    //退出按钮
                    case 'get_Exit': Pub_Close(2);
                        break;
                    //预览
                    case 'btn_view': get_view();
                        break;
                    //打印
                    case 'btn_print': get_print();
                        break;
                    //工序出站汇报单
                    case 'set_StationOut': set_StationOut();
                        break;
                    //工序进站接收单
                    case 'get_StationIn': get_StationIn();
                        break;
                    //列设置
                    //case 'get_HideColumn1': get_HideColumn1();
                    //    break;
                    //明细列设置
                    case 'get_HideColumn2': get_HideColumn2();
                        break
                    //工序返工单
                    case 'get_Fg': get_Fg();
                        break
                };
            });
            table.on('toolbar(mainTable3)', function (obj) {
                switch (obj.event) {
                    //明细列设置
                    case 'get_HideColumn4': get_HideColumn4();
                        break;
                };
            });
            //#endregion
            //#region é‡ç½®æŒ‰é’®
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //#endregion
            //#region æŸ¥è¯¢æŒ‰é’®
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //#endregion
            //#region æœ¬é¡µé¢æ‰€æœ‰è¢«è°ƒç”¨çš„æ–¹æ³•
            function set_ClearBill() {
                $("#HDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));//开始日期
                $("#HDate1").val(Format(new Date(), "yyyy-MM-dd"));//结束日期
                //初始化主表列表
                set_InitGrid();
                //初始化从表列表
                set_InitGrid2();
                //初始化从表列表
                set_InitGrid3();
                //初始化从表列表
                set_InitGrid4();
                table.render(option2);
                //查询
                get_FastQuery();
            }
            //#region é‡ç½®è¿‡æ»¤æ¡ä»¶æ–¹æ³•
            function set_ClearQuery() {
                $("#SHPrintQty").val("");//打印状态
                $("input[type='checkbox'][name='wybj']").prop('checked', false);
                form.render("checkbox");//委外标记
                $("#HDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * 30), "yyyy-MM-dd"));//开始日期
                $("#HDate1").val(Format(new Date(), "yyyy-MM-dd"));//结束日期
                $("#HOrderProcNO").val("");//订单跟踪号
                $("#SHname").val("");//物料|子件名称|子件规格
                $("#HBillNo").val("");//单据号
                //$("#btnSearch").click();
                sWhere = "";
                get_FastQuery();
            }
            //#endregion
            //#region å¿«é€Ÿè¿‡æ»¤
            function get_FastQuery() {
                var SHPrintQty = $("#SHPrintQty").val();//打印状态
                var HDate = $("#HDate").val();//开始日期
                var HDate1 = $("#HDate1").val();//结束日期
                var HOrderProcNO = $("#HOrderProcNO").val();//订单跟踪号
                var HWorkBillNo = $("#HWorkBillNo").val();
                var SHname = $("#SHname").val();//物料|子件名称|子件规格
                var HBillNo = $("#HBillNo").val();//单据号
                var HErpID = $("#HErpID").val();//唯一ID
                if (SHPrintQty) {//判断打印状态
                    if (SHPrintQty == "全部") {
                        sWhere = " and æ‰“印次数 >= 0 ";
                    }
                    if (SHPrintQty == "已打印") {
                        sWhere = " and æ‰“印次数 > 0 ";
                    }
                    if (SHPrintQty == "未打印") {
                        sWhere = " and æ‰“印次数 = 0 ";
                    }
                }
                if (wybj) {
                    sWhere += " and å§”外标记 = 'Y'";
                }
                if (HDate) {
                    sWhere += " and æ—¥æœŸ >= '" + HDate + "'";
                }
                if (HDate1) {
                    sWhere += " and æ—¥æœŸ <= '" + HDate1 + "'";
                }
                if (HWorkBillNo) {
                    sWhere += " and ç”Ÿäº§è®¢å•号 like '%" + HWorkBillNo + "%'";
                }
                if (HOrderProcNO) {
                    sWhere += " and è®¢å•跟踪号 like '%" + HOrderProcNO + "%'";
                }
                if (SHname) {
                    sWhere += " and  å­ä»¶ä»£ç  like '%" + SHname + "%'";
                }
                if (HBillNo) {
                    sWhere += " and å•据号 like '%" + HBillNo + "%'"
                }
                if (HErpID) {
                    sWhere += " and å”¯ä¸€ID like '%" + HErpID + "%'";
                }
                get_Display(sWhere);
                sWhere = "";//调用接口后清空sWhere缓存
            }
            //#endregion
            //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
            //选中判断
            form.on('checkbox(wybj)', function (data) {
                wybj = data.elem.checked; //是否被选中,true或者false
            });
            //点击主表带出从表数据
            table.on('row(mainTable)', function (obj) { //注:tool æ˜¯å·¥å…·æ¡äº‹ä»¶åï¼Œtest æ˜¯ table åŽŸå§‹å®¹å™¨çš„å±žæ€§ lay-filter="对应的值"
                var datas = obj.data; //获得当前行数据
                HBillNo = datas["单据号"].toString();
                var HMainID = datas.hmainid;
                var wait = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/LEMS/MES_Sc_ProcessExchangeBillQuerySub_Json',
                    type: "GET",
                    data: { "sWhere": HMainID },
                    //success: function (data1) {
                    //    if (data1.count == 1) {
                    //        option2.data = data1.data;
                    //        table.render(option2);
                    //        layer.close(wait);
                    //    } else {
                    //        layer.alert(data1.code + data1.Message, { icon: 5 });
                    //        layer.close(wait);
                    //    }
                    //}, error: function () {
                    //    layer.close(wait);
                    //    layer.alert("接口失效!", { icon: 5 });
                    //}
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = [];
                            var col = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            //在列表左边添加勾选框
                            col.push({ type: 'checkbox', fixed: 'left' });
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData2) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                    }
                                }
                            }
                            //动态显示列名
                            option2 = {
                                elem: '#mainTable2'
                                , toolbar: '#toolbarDemo2'
                                , cols: [col]
                                , data: data1.data
                                , height: 550
                                , page: true
                                , cellMinWidth: 90
                                , limit: 50
                                , limits: [50, 500, 5000, 20000]
                            }
                            table.render(option2);
                            //刷新表格数据
                            DisPlay_HideColumn();
                            layer.close(wait);
                            //layer.alert("查询成功", { icon: 1 });
                        } else {
                            layer.close(wait);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
                DisPlay_HideColumn_Sec();
                set_ClearBillHMainID(HMainID);    //器具清单
            });
            //#endregion
            function set_ClearBillHMainID(HMainID) {
                resultTableHead = []; //清空表头列,防止重复渲染
                //初始查询
                get_DisplayHMainID(HMainID);
                get_Display4(HMainID);
            }
            //#endregion
            //#region æŸ¥è¯¢ (器具清单)
            function get_DisplayHMainID(HMainID) {
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/Sc_ProcessExchangeBillList/QJQD',
                    type: "GET",
                    data: { "HProcExchHinteID": HMainID },
                    success: function (data1) {
                        if (data1.count == 1) {
                            if (data1.data.length == 0) {
                                QJQD = 0;
                            } else {
                                QJQD = 1;
                            }
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            var col = [];
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData3) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                    }
                                }
                            }
                            //动态显示列名
                            option3 = {
                                elem: '#mainTable1'
                                , toolbar: '#toolbarDemo3'
                                , cols: [col]
                                , data: data1.data
                                , height: 550
                                , page: true
                                , cellMinWidth: 90
                                , limit: 50
                                , limits: [50, 500, 5000, 20000]
                            }
                            table.render(option3);
                            layer.close(ajaxLoad);
                            //layer.alert("查询成功", { icon: 1 });
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
                DisPlay_HideColumn_Mod();
            }
            //#endregion
            //#region æŸ¥è¯¢ å·¥è‰ºå‚æ•°
            function get_Display4(HMainID) {
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/Sc_ProcessExchangeBill/GetProcessExchangeBillSubTech',
                    type: "GET",
                    data: { "HInterID": HMainID },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            var col = [];
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData4) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                    }
                                }
                            }
                            //动态显示列名
                            option4 = {
                                elem: '#mainTable3'
                                , toolbar: '#toolbarDemo4'
                                , cols: [col]
                                , data: data1.data
                                , height: 550
                                , page: true
                                , cellMinWidth: 90
                                , limit: 50
                                , limits: [50, 500, 5000, 20000]
                            }
                            table.render(option4);
                            layer.close(ajaxLoad);
                            //layer.alert("查询成功", { icon: 1 });
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
                DisPlay_HideColumn_Tech();
            }
            //#endregion
            //初始化主表列表
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , page: true
                    , height: 300
                    , cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 20000]
                    , cols: [[
                    //    { type: 'checkbox', fixed: 'left' }
                    //    , { field: 'hmainid', title: 'hmainid', width: 90, hide: true }
                    //    , { field: '打印次数', title: '打印次数' }
                    //    , { field: '类型', title: '类型' }
                    //    , {
                    //        field: '日期', title: '日期', width: 120, sort: true, templet: "<div>{{d.日期 ==null ?'':layui.util.toDateString(d.日期, 'yyyy-MM-dd')}}</div>"
                    //    }
                    //    , { field: '订单跟踪号', title: '订单跟踪号', width: 120 }
                    //    , { field: '单据号', title: '单据号', width: 190 }
                    //    , { field: 'hicmointerid', title: 'hicmointerid', width: 80, hide: true }
                    //    , { field: '任务单号', title: '任务单号', width: 140 }
                    //    , { field: '唯一ID', title: '唯一ID', width: 140 }
                    //    , { field: '日计划工单日期', title: '日计划工单日期', width: 140 }
                    //    , { field: 'HWorkShopID', title: 'HWorkShopID', width: 80, hide: true }
                    //    , { field: 'HDeptID', title: 'HDeptID', width: 80, hide: true }
                    //    , { field: '生产车间代码', title: '生产车间代码', width: 115 }
                    //    , { field: '生产车间', title: '生产车间' }
                    //    , { field: '委外标记', title: '委外标记' }
                    //    , { field: 'HMaterID', title: 'HMaterID', width: 80, hide: true }
                    //    , { field: '子件代码', title: '子件代码' }
                    //    , { field: '子件名称', title: '子件名称' }
                    //    , { field: '子件规格', title: '子件规格' }
                    //    , { field: '批号', title: '批号' }
                    //    , { field: '原料批次号', title: '原料批次号' }
                    //    , { field: 'HMaterID2', title: 'HMaterID2', width: 80, hide: true }
                    //    , { field: '产品代码', title: '产品代码' }
                    //    , { field: '产品名称', title: '产品名称' }
                    //    , { field: '规格型号', title: '规格型号' }
                    //    , { field: 'HUnitID', title: 'HUnitID', width: 80, hide: true }
                    //    , { 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: 'HBillType', title: 'HBillType', width: 80, hide: true }
                    //    , { field: 'hsubid', title: 'hsubid', width: 80, hide: true }
                    //    , { field: '拆分数量', title: '拆分数量' }
                    //    , { field: '源单客户编码', title: '源单客户编码', width: 80 }
                    //    , { field: '包装标识', title: '包装标识', width: 80 }
                    //    , { field: '包装标识编码', title: '包装标识编码', width: 80 }
                    ]]
                };
                //table.render(option);
            }
            //初始化从表列表  å·¥è‰ºæµç¨‹
            function set_InitGrid2() {
                option2 = {
                    elem: '#mainTable2'
                    //, toolbar: '#toolbarDemo'
                    , page: false
                    , height: 500
                    , cellMinWidth: 90
                    , limit: Number.MAX_VALUE//默认显示全部
                    , cols: [[
                        //{ type: 'checkbox', fixed: 'left' }
                        //, { field: 'hsubid', title: 'hsubid', hide: true }
                        //, { field: '流水号', title: '流水号' }
                        //, { field: 'HProcID', title: 'HProcID', hide: true }
                        //, { field: '工序代码', title: '工序代码' }
                        //, { field: '工序名称', title: '工序名称' }
                        //, { field: '流转卡数量', title: '流转卡数量', width: 100 }
                        //, { field: '进站关联数量', title: '进站关联数量', width: 120 }
                        //, { field: '出站关联数量', title: '出站关联数量', width: 120 }
                        //, { field: '出站报废关联数量', title: '出站报废关联数量', width: 150 }
                        //, { field: '返工标记', title: '返工标记' }
                        //, { field: '加工说明', title: '加工说明' }
                        //, { field: '工作中心代码', title: '工作中心代码', width: 115 }
                        //, { field: '工作中心', title: '工作中心' }
                        //, { field: '计划数量', title: '计划数量' }
                        //, { field: 'hmainid', title: 'hmainid', hide: true }
                        //, { field: '日期', title: '日期', sort: true }
                        //, { field: '单据号', title: '单据号', width: 150 }
                        //, { field: 'hicmointerid', title: 'hicmointerid', hide: true }
                        //, { field: '任务单号', title: '任务单号', width: 100 }
                        //, { field: 'HWorkShopID', title: 'HWorkShopID', hide: true }
                        //, { field: '生产车间代码', title: '生产车间代码', width: 115 }
                        //, { field: '生产车间', title: '生产车间' }
                        //, { field: 'HMaterID', title: 'HMaterID', hide: true }
                        //, { field: '产品代码', title: '产品代码' }
                        //, { field: '产品名称', title: '产品名称' }
                        //, { field: '规格型号', title: '规格型号' }
                        //, { field: '批号', title: '批号' }
                        //, { field: 'HUnitID', title: 'HUnitID', hide: true }
                        //, { field: '单位代码', title: '单位代码' }
                        //, { field: '单位', title: '单位' }
                        //, { field: '生产数量', title: '生产数量' }
                        //, { field: '计划开工日期', title: '计划开工日期' }
                        //, { field: '计划完工日期', title: '计划完工日期' }
                        //, { field: '摘要', title: '摘要' }
                        //, { field: '内部单据号', title: '内部单据号' }
                        //, { field: 'HSupID', title: 'HSupID', hide: true }
                        //, { field: '委外加工单位代码', title: '委外加工单位代码' }
                        //, { field: '委外加工单位', title: '委外加工单位' }
                        //, { field: '表头备注', title: '表头备注' }
                        //, { field: 'HBillType', title: 'HBillType', hide: true }
                        //, { 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: '不良品关联数量' }
                    ]]
                };
            }
             //初始化从表列表  å™¨å…·æ¸…单
            function set_InitGrid3() {
                option3 = {
                    elem: '#mainTable1'
                    //, toolbar: '#toolbarDemo'
                    , page: false
                    , height: 500
                    , cellMinWidth: 90
                    , limit: Number.MAX_VALUE//默认显示全部
                    , cols: [[]]
                };
            }
            //初始化从表列表   å·¥è‰ºå‚数清单
            function set_InitGrid4() {
                option4 = {
                    elem: '#mainTable3'
                    //, toolbar: '#toolbarDemo'
                    , page: false
                    , height: 500
                    , cellMinWidth: 90
                    , limit: Number.MAX_VALUE//默认显示全部
                    , cols: [[]]
                };
            }
            //#region æŸ¥è¯¢ (主表)
            function get_Display(sWhere) {
                sWhere += " and HPRDORGID=" + sessionStorage["OrganizationID"] + " ";
                var ajaxLoad = layer.load();
                $.ajax({
                    url: GetWEBURL() + '/LEMS/MES_Sc_ProcessExchangeBillQuery_Json',
                    type: "GET",
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = [];
                            var col = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            //在列表左边添加勾选框
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
                            for (var i = 0; i < data.length; i++) {
                                // if (data[i].name == 'HInterID' || data[i].name == 'HBillType' || data[i].name == 'hmainid') {
                                if ($.inArray(data[i].name, titleData) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //隐藏id列
                                }
                                else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd')}}</div>", width: 200 });
                                            break;
                                        default:
                                            if (data[i].name == '生产数量' || data[i].name == '流转卡数量' || data[i].name == '入库数量') {
                                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, totalRow: true });
                                            } else {
                                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
                                            }
                                    }
                                }
                            }
                            //动态显示列名
                            option = {
                                elem: '#mainTable'
                                , toolbar: '#toolbarDemo'
                                , cols: [col]
                                , data: data1.data
                                , height: 550
                                , page: true
                                , totalRow: true
                                , cellMinWidth: 90
                                , limit: 50
                                , limits: [50, 500, 5000, 20000]
                            }
                            table.render(option);
                            //刷新表格数据
                            DisPlay_HideColumn();
                            layer.close(ajaxLoad);
                            //layer.alert("查询成功", { icon: 1 });
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
                DisPlay_HideColumn();
            }
            //#endregion
            //#region éšè—åˆ—设置 (主列表)
            function get_HideColumn1() {
                var colName = "";
                for (var i = 1; i < option.cols[0].length - 1; i++) {
                    colName += option.cols[0][i]["title"] + ",";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ['../../基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn();
                        //更新表格缓存的数据
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //#endregion
            //#region éšè—åˆ—设置 (工艺流程)
            function get_HideColumn2() {
                var colName = "";
                for (var i = 1; i < option2.cols[0].length - 1; i++) {
                    colName += option2.cols[0][i]["title"] + ",";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ['../../基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + "_Sec" + '&colName=' + colName, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn_Sec();
                        //更新表格缓存的数据
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //#endregion
            //工序返工
            function get_Fg() {
                var checkStatus = table.checkStatus('mainTable2')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    if (checkStatus.data[0]["流水号"] != "9999") {
                        layer.open({
                            type: 2
                            , skin: "layui-layer-rim" //加上边框
                            , title: "工序返工申请单编辑"  //标题
                            , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                            , shift: 2 //弹出动画
                            , area: ["100%", "100%"] //窗体大小
                            , maxmin: true //设置最大最小按钮是否显示
                            , content: ['../../车间管理/工序流转卡/Sc_ProcExchWorkBackBillEdit.html?OperationType=1&linterid=' + checkStatus.data[0]["hmainid"] + '&HEntryID=' + checkStatus.data[0]["HEntryID"], "yes"]
                            , btn: ["确定", "取消"]
                            , btn1: function (index, laero) {
                                //刷新表格数据
                                DisPlay_HideColumn();
                                //更新表格缓存的数据
                                layer.close(index);//关闭弹窗
                            }
                        })
                    } else {
                        layer.msg('返工工序不能是转工序!');
                    }
                } else {
                    layer.msg('请选择一行数据编辑!');
                }
            }
            //#region æ˜¾ç¤ºåˆ—数据 (主列表)
            function DisPlay_HideColumn() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    data: { "HModName": HModName, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            /*var titleData = ["hmainid", "hicmointerid", "HWorkShopID", "HDeptID", "HMaterID", "HMaterID2", "HUnitID", "HBillType", "hsubid"];//不需要显示的字段 å¯æ‰©å±•*/
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                if (dataCol[i]) {
                                    var dataCols = dataCol[i].split('|');
                                }
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置列宽
                                if (dataCols[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option.cols[0][i + 1]["style"] = "font-size:100%";
                                }
                                //设置列宽
                                //if (data1.data[0].HColumnWidth != 0) {
                                //    option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
                                //} else {
                                //    option.cols[0][i + 1]["width"] = "";
                                //}
                                //显示列
                                if (dataCols[1] == 0 && $.inArray(option.cols[0][i + 1]["title"], titleData) == -1) {
                                    option.cols[0][i + 1]["hide"] = false;
                                }
                                //字体所在位置(å·¦ å±…中 å³)
                                switch (dataCols[2]) {
                                    case "L":
                                        option.cols[0][i + 1]["align"] = "left";
                                        break;
                                    case "M":
                                        option.cols[0][i + 1]["align"] = "center";
                                        break;
                                    case "R":
                                        option.cols[0][i + 1]["align"] = "right";
                                        break;
                                }
                            }
                            //取消冻结列
                            for (var i = 1; i < option.cols[0].length - 1; i++) {
                                if (option.cols[0][i]["fixed"] != null) {
                                    option.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            //冻结列
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option.cols[0][i + 1]["title"], titleData) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option);
                        } else {
                            table.render(option);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
            //#region æ˜¾ç¤ºåˆ—数据 (工艺流程)
            function DisPlay_HideColumn_Sec() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    data: { "HModName": HModName + "_Sec", "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            //var titleData = ["HMaterID", "HUnitID", "HICMOEmpID"];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option2.cols[0].length - 2; i++) {
                                if (dataCol[i]) {
                                    var dataCols = dataCol[i].split('|');
                                }
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option2.cols[0][i + 1]["hide"] = true;
                                }
                                //设置列宽
                                if (dataCols[3] > 0) {
                                    option2.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option2.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option2.cols[0][i + 1]["style"] = "font-size:100%";
                                }
                                //设置列宽
                                //if (data1.data[0].HColumnWidth != 0) {
                                //    option2.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
                                //} else {
                                //    option2.cols[0][i + 1]["width"] = "";
                                //}
                                //显示列
                                if (dataCols[1] == 0 && $.inArray(option2.cols[0][i + 1]["title"], titleData2) == -1) {
                                    option2.cols[0][i + 1]["hide"] = false;
                                }
                                //字体所在位置(å·¦ å±…中 å³)
                                switch (dataCols[2]) {
                                    case "L":
                                        option2.cols[0][i + 1]["align"] = "left";
                                        break;
                                    case "M":
                                        option2.cols[0][i + 1]["align"] = "center";
                                        break;
                                    case "R":
                                        option2.cols[0][i + 1]["align"] = "right";
                                        break;
                                }
                            }
                            //取消冻结列
                            for (var i = 1; i < option2.cols[0].length - 1; i++) {
                                if (option2.cols[0][i]["fixed"] != null) {
                                    option2.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            //冻结列
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option2.cols[0][i + 1]["title"], titleData2) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option2.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option2);
                        } else {
                            table.render(option2);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
            //#region éšè—åˆ—  æ˜¾ç¤ºåˆ—数据  ï¼ˆå™¨å…·æ¸…单)
            //隐藏
            function get_HideColumn3() {
                var colName = "";
                for (var i = 1; i < option3.cols[0].length - 1; i++) {
                    colName += option3.cols[0][i]["title"] + ",";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ['../../基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + "_Mod" + '&colName=' + colName, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn_Mod();
                        //更新表格缓存的数据
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //显示
            function DisPlay_HideColumn_Mod() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    data: { "HModName": HModName + "_Mod", "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            /*var titleData = ["hmainid", "hicmointerid", "HWorkShopID", "HDeptID", "HMaterID", "HMaterID2", "HUnitID", "HBillType", "hsubid"];//不需要显示的字段 å¯æ‰©å±•*/
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option3.cols[0].length - 2; i++) {
                                if (dataCol[i]) {
                                    var dataCols = dataCol[i].split('|');
                                }
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option3.cols[0][i + 1]["hide"] = true;
                                }
                                //设置列宽
                                if (dataCols[3] > 0) {
                                    option3.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option3.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option3.cols[0][i + 1]["style"] = "font-size:100%";
                                }
                                //设置列宽
                                //if (data1.data[0].HColumnWidth != 0) {
                                //    option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
                                //} else {
                                //    option.cols[0][i + 1]["width"] = "";
                                //}
                                //显示列
                                if (dataCols[1] == 0 && $.inArray(option3.cols[0][i + 1]["title"], titleData3) == -1) {
                                    option3.cols[0][i + 1]["hide"] = false;
                                }
                                //字体所在位置(å·¦ å±…中 å³)
                                switch (dataCols[2]) {
                                    case "L":
                                        option3.cols[0][i + 1]["align"] = "left";
                                        break;
                                    case "M":
                                        option3.cols[0][i + 1]["align"] = "center";
                                        break;
                                    case "R":
                                        option3.cols[0][i + 1]["align"] = "right";
                                        break;
                                }
                            }
                            //取消冻结列
                            for (var i = 1; i < option3.cols[0].length - 1; i++) {
                                if (option3.cols[0][i]["fixed"] != null) {
                                    option3.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            //冻结列
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option3.cols[0][i + 1]["title"], titleData3) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option3.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option3);
                        } else {
                            table.render(option3);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
            //#region éšè—åˆ—  æ˜¾ç¤ºåˆ—数据  ï¼ˆå·¥è‰ºå‚数清单)
            //隐藏
            function get_HideColumn4() {
                var colName = "";
                for (var i = 1; i < option4.cols[0].length - 1; i++) {
                    colName += option4.cols[0][i]["title"] + ",";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ['../../基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + "_Tech" + '&colName=' + colName, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn_Tech();
                        //更新表格缓存的数据
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //显示
            function DisPlay_HideColumn_Tech() {
                $.ajax({
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    type: "GET",
                    data: { "HModName": HModName + "_Tech", "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            /*var titleData = ["hmainid", "hicmointerid", "HWorkShopID", "HDeptID", "HMaterID", "HMaterID2", "HUnitID", "HBillType", "hsubid"];//不需要显示的字段 å¯æ‰©å±•*/
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option4.cols[0].length - 2; i++) {
                                if (dataCol[i]) {
                                    var dataCols = dataCol[i].split('|');
                                }
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option4.cols[0][i + 1]["hide"] = true;
                                }
                                //设置列宽
                                if (dataCols[3] > 0) {
                                    option4.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //设置内容字体大小
                                if (data1.data[0].HFontSize != 0) {
                                    option4.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
                                } else {
                                    option4.cols[0][i + 1]["style"] = "font-size:100%";
                                }
                                //设置列宽
                                //if (data1.data[0].HColumnWidth != 0) {
                                //    option.cols[0][i + 1]["width"] = data1.data[0].HColumnWidth + "px;";
                                //} else {
                                //    option.cols[0][i + 1]["width"] = "";
                                //}
                                //显示列
                                if (dataCols[1] == 0 && $.inArray(option4.cols[0][i + 1]["title"], titleData4) == -1) {
                                    option4.cols[0][i + 1]["hide"] = false;
                                }
                                //字体所在位置(å·¦ å±…中 å³)
                                switch (dataCols[2]) {
                                    case "L":
                                        option4.cols[0][i + 1]["align"] = "left";
                                        break;
                                    case "M":
                                        option4.cols[0][i + 1]["align"] = "center";
                                        break;
                                    case "R":
                                        option4.cols[0][i + 1]["align"] = "right";
                                        break;
                                }
                            }
                            //取消冻结列
                            for (var i = 1; i < option4.cols[0].length - 1; i++) {
                                if (option4.cols[0][i]["fixed"] != null) {
                                    option4.cols[0][i]["fixed"] = null;
                                }
                                else {
                                    break;
                                }
                            }
                            //冻结列
                            if (data1.data[0].HFixCols != 0) {
                                for (var i = 0; i < data1.data[0].HFixCols; i++) {
                                    if ($.inArray(option4.cols[0][i + 1]["title"], titleData4) != -1) {
                                        data1.data[0].HFixCols += 1;
                                    }
                                    option4.cols[0][i + 1]["fixed"] = "left";
                                }
                            }
                            table.render(option4);
                        } else {
                            table.render(option4);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
            //#region æ–°å¢ž
            function set_AddNew() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                var HInterID = data[0].hmainid.toString();
                var sWhere = "select  distinct b.流水号,a.流转卡数量,a.产品代码,a.版本,a.成品编号,a.产品名称,a.日期,a.计划完工日期,a.单据号,a.材质,b.工序名称,b.模具编号,b.工艺参数,a.包装标识,a.包装标识编码,a.销售订单号 from h_v_Sc_ProcessExchangeBillQuery a left join h_v_Sc_ProcessExchangeBillQuerySub b on a.hmainid=b.hmainid where b.hmainid=" + HInterID;
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + "/Gy_SOPBillList/WindowPrintList", //方法所在页面和方法名
                    async: true,
                    data: { "sWhere": sWhere  },
                    success: function (data) {
                        if (data.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var dataPrint = [];
                            for (var i = 0; i < data.data.length; i++) {
                                dataPrint.push({ "单据号": data.data[i]["单据号"],"流水号": data.data[i]["流水号"], "工序代码": data.data[i]["工序代码"], "工序名称": data.data[i]["工序名称"], "产品名称": data.data[0]["产品名称"], "产品代码": data.data[0]["产品代码"], "日期": data.data[0]["日期"], "销售订单号": data.data[0]["销售订单号"], "包装标识": data.data[0]["包装标识"], "包装标识编码": data.data[0]["包装标识编码"], "流转卡数量": data.data[0]["流转卡数量"] }
                                 );
                            }
                            var Customer = {
                                "b": dataPrint
                            }
                            //直接打印
                            var args = {
                                type: "print",
                                showOptionDlg: false, //如果不显示打印对话框而直接打印,将此行注释去掉即可
                                report: urlAddRandomNo("../../grf/ces5.grf"),
                                data: Customer
                            };
                            ////预览
                            //var args = {
                            //    report: urlAddRandomNo("../../grf/ces5.grf"),
                            //    data: Customer
                            //};
                            webapp_ws_ajax_run(args);
                        }
                        else {
                            layer.msg(data.Message, { icon: 5 });
                        }
                        layer.closeAll("loading");
            // The data for our dataset
            data: {
                labels: [],
                datasets: [
                    {
                        label: "ugpm3",
                        borderColor: "rgb(255, 99, 132)",
                        data: [],
                        fill: false,
                    },
                    error: function (err) {
                        layer.msg("错误:" + err, { icon: 5 });
                    }
                });
            }
            //#endregion
            //#region ç¼–辑
            function set_ShowBill() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var linterid = data[0].hmainid;
                    //if (AllowLoadData(sSubStr) != false) {//非空验证
                    layer.open({
                        type: 2
                        , area: ['100%', '100%']
                        , title: '工序列表-编辑'
                        , shift: 0//弹出动画
                        , content: '../工序流转卡/Sc_ProcessExchangeBill.html?OperationType=3&linterid=' + linterid + '&HEntryID=&HSouceBillType='
                    })
                } else {
                    layer.msg('请选择一行数据编辑!');
                }
            }
            //#endregion
            //删除
            function set_DeleteBill() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var HInterID = data[0].hmainid.toString();
                    //逻辑删除方法
                    layer.confirm("确认要删除吗,删除后不能恢复", { title: "删除确认" }, function (index) {
                        $.ajax({
                            type: "GET",
                            url: GetWEBURL() + "/Sc_ProcessExchangeBill/DeltetProcessExchangeBillByID", //方法所在页面和方法名
                            data: { "HInterID": HInterID, "HPRDORGID": sessionStorage["OrganizationID"], "user": sessionStorage["HUserName"] },
                            success: function (result) {
                                if (result.count == 1) {
                                    layer.msg(result.Message, { time: 1 * 1000, icon: 1 }, function () {
                                        // å¾—到frame索引
                                        var index = layer.getFrameIndex(window.name);
                                        //关闭当前frame
                                        layer.close(index);
                                        //修改为功后刷新界面
                                        window.location.reload();
                                    });
                                } else {
                                    layer.alert(result.code + result.Message, { icon: 5 });
                                }
                            }, error: function () {
                                layer.alert("接口请求失败!", { icon: 5 });
                            }
                        });
                    })
                }
                else {
                    layer.msg('请选择一行数据删除!');
                }
            }
            //拆分
            function set_cf() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var linterid = data[0].hmainid;
                    //if (AllowLoadData(sSubStr) != false) {//非空验证
                    layer.open({
                        type: 2
                        , area: ['100%', '100%']
                        , title: '工序列表-编辑'
                        , shift: 0//弹出动画
                        , content: '../工序流转卡/Sc_ProcessExchangeBill_CF.html?OperationType=1&linterid=' + linterid + '&HEntryID=&HSouceBillType='
                    })
                } else {
                    layer.msg('请选择一行数据编辑!');
                }
            }
            //预览
            function get_view() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    layer.open({
                        type: 2
                        , area: ['50%', '50%']
                        , title: '打印模版选择'
                        , shade: 0.6 //遮罩透明度
                        , maxmin: false //允许全屏最小化
                        , anim: 0 //0-6的动画形式,-1不开启
                        , content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + QJQD + '&MyMsg=' + data[0].hmainid.toString() + '&Type=HProcessExchange', 'yes']
                        , resize: false
                    })
                }
                else {
                    layer.msg('请选择一行数据打印!');
                }
            }
            //打印
            function get_print() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    layer.open({
                        type: 2
                        , area: ['50%', '50%']
                        , title: '打印模版选择'
                        , shade: 0.6 //遮罩透明度
                        , maxmin: false //允许全屏最小化
                        , anim: 0 //0-6的动画形式,-1不开启
                        , content: ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() +","+ QJQD + '&MyMsg=' + data[0].hmainid.toString() + '&Type=HProcessExchange', 'yes']
                        , resize: false
                    })
                }
                else {
                    layer.msg('请选择一行数据打印!');
                }
            }
            //工序出站汇报单
            function set_StationOut() {
                var checkStatus = table.checkStatus('mainTable2')
                    , data = checkStatus.data;
                if (data.length === 1) {
                    var HProcNo = data[0].流水号.toString();
                    if (HProcNo == "9999") {
                        return layer.msg("流水号不能为转工序流水号,请重新选择!");
                    }
                    else {
                        layer.open({
                            type: 2
                            , area: ['100%', '100%']
                            , title: '工序流转卡-编辑'
                            , shift: 0//弹出动画
                            , content: '../../车间管理/工序出站汇报单/Cj_StationOutBill.html?OperationType=2&HBillNo=' + HBillNo + '&HProcNo=' + HProcNo
                        })
                    }
                } else {
                    layer.msg('请选择一行数据下推!');
                }
            }
            //工序进站接收单
            function get_StationIn() {
                var checkStatus = table.checkStatus('mainTable2')
                    , data = checkStatus.data;
                if (data.length === 1) {
                    var HProcNo = data[0].流水号.toString();
                    if (HProcNo == "9999") {
                        return layer.msg("流水号不能为转工序流水号,请重新选择!");
                    }
                    else {
                        layer.open({
                            type: 2
                            , area: ['100%', '100%']
                            , title: '工序流转卡-编辑'
                            , shift: 0//弹出动画
                            , content: '../../车间管理/工序进站接收单/Cj_StationInBill.html?OperationType=2&HBillNo=' + HBillNo + '&HProcNo=' + HProcNo
                        })
                    }
                } else {
                    layer.msg('请选择一行数据下推!');
                }
            }
            //#region åˆ·æ–°
            function get_Refresh() {
                set_ClearQuery();
                get_Display(sWhere);
            }
            //#endregion
            //以上是layui模块
                    {
                        label: "heat",
                        borderColor: "blue",
                        data: [],
                        fill: false,
                    },
                    {
                        label: "humidity",
                        borderColor: "green",
                        data: [],
                        fill: false,
                    },
                ],
            },
            // Configuration options go here
            options: {
                title: {
                    display: true,
                    text: new Date().toLocaleDateString(),
                },
            },
        });
        const dataList = document.getElementById("received-data-list");
        /*** find the chart and list tag above***/
        /*** butConnect listener below ***/
        let keepReading = true;
        let reader;
        let writer;
        // all data parsed are stored in a list ordered by received time of the data frame.
        let receivedframe = [];
        document
            .getElementById("butConnect")
            .addEventListener("click", async () => {
                const port = await navigator.serial.requestPort();
                await port.open({ baudRate: 9600 }); // set baud rate
                keepReading = true;
                reader = port.readable.getReader();
                writer = port.writable.getWriter();
                // set how to write to device intervally
                const writeInt = setInterval(async () => {
                    const commandframe = new Uint8Array([
                        0x00,
                        0xff,
                        /*...some bytes to be sent*/
                    ]);
                    await writer.write(commandframe);
                }, 3000); // send a frame every 3000ms
                while (port.readable && keepReading) {
                    try {
                        while (true) {
                            const { value, done } = await reader.read();
                            if (done) {
                                // Allow the serial port to be closed later.
                                reader.releaseLock();
                                // Allow the serial port to be closed later.
                                writer.releaseLock();
                                break;
                            }
                            if (value) {
                                /*** TODO: deal with the data value ***/
                                dealWithData(value);
                            }
                        }
                    } catch (error) {
                        // Handle non-fatal read error.
                        console.error(error);
                    } finally {
                        console.log(port.readable, keepReading);
                    }
                }
                clearInterval(writeInt);
                await port.close();
                console.log("port closed");
            });
        /*** butConnect listener above ***/
        /*** function dealWithData below ***/
        function dealWithData(value) {
            // check the frame
            function checkSum(buf) {
                let checksum = 0;
                buf.forEach((val, idx) => {
                    if (idx > 0 && idx < 12) {
                        checksum += val;
                    } else if (idx == 12) {
                        checksum = (~checksum & 0xff) + 1;
                    }
                });
                return buf[12] == checksum;
            }
            if (checkSum(value)) {
                // parse the frame
                let ugpm3 = (value[2] << 8) | value[3];
                let heat = ((value[8] << 8) | value[9]) / 100;
                let humidity = ((value[10] << 8) | value[11]) / 100;
                let datatime = new Date();
                let frame = {
                    datatime,
                    ugpm3,
                    heat,
                    humidity,
                };
                // record the frame
                receivedframe.push(frame);
                // print data on the page
                dataList.innerHTML += `<p>[${datatime.toLocaleString()}] -> ugpm3: ${ugpm3}, heat: ${heat}, humidity: ${humidity}</p>`;
                // update the chart
                chart.data.labels.push(datatime.toLocaleTimeString());
                chart.data.datasets.forEach((dataset) => {
                    dataset.data.push(frame[dataset.label]);
                });
                chart.update();
            }
        }
        /*** function dealWithData above ***/
        /*** butEnd listener below ***/
        document.getElementById("butEnd").addEventListener("click", async () => {
            keepReading = false;
            reader.cancel();
            // create a new handle
            const jsonHandle = await window.showSaveFilePicker();
            // create a FileSystemWritableFileStream to write to
            const writableStream = await jsonHandle.createWritable();
            // write our file
            const aBlob = new Blob([JSON.stringify(receivedframe)], {
                type: "text/plain",
            });
            await writableStream.write(aBlob);
            receivedframe = [];
            // close the file and write the contents to disk.
            await writableStream.close();
        });
          /*** butEnd listener above ***/
    </script>
</body>
</html>