yusijie
2025-01-09 dd20e4204321ff8346eec943d591e9cf0dd58b96
批改小时产能;工序设置多条产线产能;不良原因报表添加班组过滤
1个文件已添加
4个文件已修改
802 ■■■■■ 已修改文件
WebTM/WebTM.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/计划管理/工艺路线/Gy_RoutingBillList.html 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/计划管理/工艺路线/Gy_RoutingBillWorkQty.html 494 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/设备管理/设备报表/Sb_EquipmentLoadReport.html 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/车间管理/报表分析/Sc_BadReasonReport.html 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -522,6 +522,7 @@
    <Content Include="views\生产管理\异常反馈单\Sc_MESExecptFeedBackBillResumeList.html" />
    <Content Include="views\生产管理\异常反馈单\Sc_MESExecptFeedBackBillType.html" />
    <Content Include="views\生产管理\报工台工序\开工\Sc_SwipeCardStart.html" />
    <Content Include="views\生产管理\提料计划\JIT_PickUpCalculate.html" />
    <Content Include="views\生产管理\生产任务单\Sc_ICMOBillOrProcessExchangeResumeList.html" />
    <Content Include="views\生产管理\生产开工单\Sc_MESBeginWorkBillList_PDA.html" />
    <Content Include="views\生产管理\生产报表\Sc_ProductionInProgressReport.html" />
@@ -530,6 +531,7 @@
    <Content Include="views\生产管理\生产报表\Sc_QualityReportBillDay.html" />
    <Content Include="views\生产管理\生产计划平台\JIT_DayPlanPlatForm_TK.html" />
    <Content Include="views\生产管理\生产计划平台\JIT_DayPlanPlatForm_BCP.html" />
    <Content Include="views\生产管理\生产计划平台\Sc_BulkEditWorkTime.html" />
    <Content Include="views\生产管理\质量汇报单\Sc_QualityReportBill_PDA.html" />
    <Content Include="views\生产管理\质量汇报单\Sc_QualityReportBillSumSave.html" />
    <Content Include="views\看板\采购收料\KB_CGSL.html" />
@@ -540,9 +542,11 @@
    <Content Include="views\系统管理\用户管理\Xt_UserRightQuery.html" />
    <Content Include="views\系统管理\系统配置\Xt_AutoLoadBillList.html" />
    <Content Include="views\计划管理\Excel\Gy_Group_Excel.html" />
    <Content Include="views\计划管理\工艺路线\Gy_BulkEditWorkQty.html" />
    <Content Include="views\计划管理\工艺路线\Gy_RoutingBillCheckQuery.html" />
    <Content Include="views\计划管理\工艺路线\Gy_RoutingBillCloseList.html" />
    <Content Include="views\计划管理\工艺路线\Gy_RoutingBillToInvalidatedList.html" />
    <Content Include="views\计划管理\工艺路线\Gy_RoutingBillWorkQty.html" />
    <Content Include="views\计划管理\工艺路线\Pay_ProcPriceTypeChangeReport.html" />
    <Content Include="views\计划管理\工艺路线\Gy_MaterialTechParamBill_Excel.html" />
    <Content Include="views\设备管理\Sb_Add_EquipRepairSignBillList.html" />
WebTM/views/¼Æ»®¹ÜÀí/¹¤ÒÕ·Ïß/Gy_RoutingBillList.html
@@ -227,6 +227,8 @@
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideButton" id="set_HideButton"><i class="layui-icon layui-icon-form"></i>按钮设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_SaveScheme" id="btn_SaveScheme"><i class="layui-icon layui-icon-template"></i>保存方案</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_ReadScheme" id="btn_ReadScheme"><i class="layui-icon layui-icon-set"></i>读取方案</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_BulkEditWorkTime" id="btn_BulkEditWorkTime"><i class="layui-icon layui-icon-set"></i>批改小时产能</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_SourceWorkQty" id="btn_SourceWorkQty"><i class="layui-icon layui-icon-set"></i>产线产能</button>
                            </div>
                        </script>
                    </form>
@@ -389,6 +391,12 @@
                        break;
                    //读取方案
                    case 'btn_ReadScheme': set_ReadScheme();
                        break;
                    //批改小时产能
                    case 'btn_BulkEditWorkTime': set_BulkEditWorkTime();
                        break;
                    //产线产能
                    case 'btn_SourceWorkQty': set_SourceWorkQty();
                        break;
                };
            });
@@ -614,6 +622,32 @@
                        l.LAY_CHECKED = flag;
                    }
                });
            })
            //#endregion
            //#region åŒå‡»è¡Œå¼¹å‡ºå¼¹æ¡†ï¼Œç»´æŠ¤ä¸åŒç”Ÿäº§èµ„源的小时产能
            table.on('rowDouble(mainTable)', function (obj) {
                var HMaterNumber = obj.data.物料代码;
                var HMaterName = obj.data.物料名称;
                var HMaterModel = obj.data.规格型号;
                var HProcName = obj.data.工序;
                var HBillInterID = obj.data.hmainid;
                var HBillEntryID = obj.data.hsubid;
                var HSortProcFlag = obj.data.排产工序标记;
                if (HSortProcFlag == "true" || HSortProcFlag == "1" || HSortProcFlag == "是" || HSortProcFlag == true) {
                    layer.open({
                        type: 2
                        , area: ['80%', '80%']
                        , title: '生产资源产能设置'
                        , shade: 0.6 //遮罩透明度
                        //, maxmin: true //允许全屏最小化
                        , anim: 0 //0-6的动画形式,-1不开启
                        , content: ['../../计划管理/工艺路线/Gy_RoutingBillWorkQty.html?HMaterNumber=' + HMaterNumber + '&HMaterName=' + HMaterName + '&HMaterModel=' + HMaterModel + '&HProcName=' + HProcName + '&HBillInterID=' + HBillInterID + '&HBillEntryID=' + HBillEntryID, 'yes']
                    })
                } else {
                    layer.msg('所选工序:' + HProcName + ',不为排产工序!');
                }
            })
            //#endregion
@@ -2417,6 +2451,53 @@
            //#endregion
            //#region æ‰¹æ”¹å°æ—¶äº§èƒ½
            function set_BulkEditWorkTime() {
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "批改小时产能"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "80%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: ['./Gy_BulkEditWorkQty.html', "yes"]
                })
            }
            //#endregion
            //#region äº§çº¿äº§èƒ½
            function set_SourceWorkQty() {
                var checkStatus = table.checkStatus('mainTable')
                    , data = checkStatus.data;
                if (checkStatus.data.length === 1) {
                    var HMaterNumber = data[0].物料代码;
                    var HMaterName = data[0].物料名称;
                    var HMaterModel = data[0].规格型号;
                    var HProcName = data[0].工序;
                    var HBillInterID = data[0].hmainid;
                    var HBillEntryID = data[0].hsubid;
                    var HSortProcFlag = data[0].排产工序标记;
                    if (HSortProcFlag == "true" || HSortProcFlag == "1" || HSortProcFlag == "是" || HSortProcFlag == true) {
                        layer.open({
                            type: 2
                            , area: ['80%', '80%']
                            , title: '生产资源产能设置'
                            , shade: 0.6 //遮罩透明度
                            //, maxmin: true //允许全屏最小化
                            , anim: 0 //0-6的动画形式,-1不开启
                            , content: ['../../计划管理/工艺路线/Gy_RoutingBillWorkQty.html?HMaterNumber=' + HMaterNumber + '&HMaterName=' + HMaterName + '&HMaterModel=' + HMaterModel + '&HProcName=' + HProcName + '&HBillInterID=' + HBillInterID + '&HBillEntryID=' + HBillEntryID, 'yes']
                        })
                    } else {
                        layer.msg('所选工序:' + HProcName + ',不为排产工序!');
                    }
                } else {
                    layer.msg('请选择一行数据编辑!');
                }
            }
            //#endregion
            //#endregion
            //以上是layui模块
WebTM/views/¼Æ»®¹ÜÀí/¹¤ÒÕ·Ïß/Gy_RoutingBillWorkQty.html
New file
@@ -0,0 +1,494 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>生产资源产能</title>
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <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/PubCustom.js"></script>
    <style>
        /* é˜²æ­¢ä¸‹æ‹‰æ¡†çš„下拉列表被隐藏---必须设置--- */
        .layui-table-cell {
            overflow: visible !important;
        }
        /* ä½¿å¾—下拉框与单元格刚好合适 */
        td .layui-form-select {
            margin-top: -10px;
            margin-left: -15px;
            margin-right: -15px;
        }
    </style>
</head>
<body>
    <div class="layui-fluid" style="padding: 0;">
        <div class="layui-card" style="padding: 2px;background-color: #efefef;">
            <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" type="button" lay-submit="" lay-filter="Exit" id="Exit">退出</button>
                        <button class="layui-btn layui-btn-normal" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">保存</button>
                    </div>
                    <div class="layui-tab" lay-filter="tab-POStockInBill">
                        <div class="layui-tab-content">
                            <div class="layui-tab-item layui-show">
                                <div class="layui-form-item" style="padding-top: 10px;">
                                    <div class="layui-row">
                                        <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="HMaterNumber" lay-verify="HMaterNumber" id="HMaterNumber" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
                                                <input type="hidden" class="layui-input" name="HMaterID" lay-verify="HMaterID" id="HMaterID" value="0">
                                            </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="HMaterName" lay-verify="HMaterName" id="HMaterName" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
                                            </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="HMaterModel" lay-verify="HMaterModel" id="HMaterModel" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
                                            </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="HProcName" lay-verify="HProcName" id="HProcName" style="width: 100%; display: inline-block; background-color: #efefef4d;" readonly>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <table class="layui-hide" 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="btn-AddLine"><i class="layui-icon layui-icon-form"></i>增加一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-CopyLine"><i class="layui-icon layui-icon-form"></i>复制一行</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Refresh"><i class="layui-icon layui-icon-form"></i>刷新优先级</button>
                        </div>
                    </script>
                </form>
            </div>
        </div>
    </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>
    //#region æ–‡æœ¬æ¡†è¾“入搜索相关数据-变量
    var childPage = null;                       //获取子窗口对象,用于操作子窗口的变量和方法
    var currRowIndex = 0;                       //用于定位子窗口当前选中的行
    var childData = null;                       //用于获取子窗口返回的数据
    //#endregion
    layui.config({
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(['index', 'form', 'laydate', 'table', 'element'], function () {
        //参数
        var params = getUrlVars();
        var HMaterNumber = params[params[0]]; //从参数中获取 ç‰©æ–™ä»£ç 
        var HMaterName = params[params[1]]; //从参数中获取 ç‰©æ–™åç§°
        var HMaterModel = params[params[2]];  //从单据获取 è§„格型号
        var HProcName = params[params[3]];  //从单据获取 å·¥åºåç§°
        var HBillInterID = params[params[4]];  //从单据获取 å•据ID
        var HBillEntryID = params[params[5]];  //从单据获取 å•据子ID
        //#region å…¬å…±å˜é‡
        var $ = layui.$
            , admin = layui.admin
            , layer = layui.layer
            , table = layui.table
            , form = layui.form
            , element = layui.element;
        //查询条件
        var sWhere = "";
        var option = [];
        var rowdata = [{
            "HInterID": HBillInterID, "HEntryID": HBillEntryID, "HSourceID": 0, "HSourceNumber": "", "HSourceName": ""
            , "HWorkQty_Source": "", "HEntryStdEmpQty": "", "HEntryStdEmpAvg": "", "HSortNum": "", "HRemark": ""
        }];
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
        //初始化界面
        set_ClearBill();
        //#endregion
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        //保存提交
        form.on('submit(btnSave)', function (data) {//提交
            set_AddNew(data);
        });
        //退出
        form.on('submit(Exit)', function () {
            Pub_Close(1);
        })
        //头工具栏事件
        table.on('toolbar(mainTable)', function (obj) {
            var checkStatus = table.checkStatus('mainTable')
                , data = checkStatus.data;
            //新增行表格数据
            var NewRow = {
                "HInterID": HBillInterID, "HEntryID": HBillEntryID, "HSourceID": 0, "HSourceNumber": "", "HSourceName": ""
                , "HWorkQty_Source": "", "HEntryStdEmpQty": "", "HEntryStdEmpAvg": "", "HSortNum": "", "HRemark": ""
            };
            switch (obj.event) {
                case 'btn-AddLine':
                    table.cache["mainTable"].push(NewRow);
                    option.data = table.cache["mainTable"];
                    table.render(option);
                    break;
                case 'btn-CopyLine':
                    var copydata = JSON.stringify(data);
                    if (data.length <= 0) {
                        layer.msg("请选择需要复制的一行!");
                    }
                    else if (data.length > 1) {
                        layer.msg("只能选择复制一行!");
                    }
                    else {
                        var copydata2 = copydata.substring(1, copydata.length);//去除首行字符'['
                        var copyrow = copydata2.substring(0, copydata2.length - 1);//去除末尾字符']'
                        table.cache["mainTable"].push(JSON.parse(copyrow));//将复制的行强转成json追加到表格上
                        option.data = table.cache["mainTable"];//将数据绑定到data上
                        table.render(option);//将数据渲染到表格上
                    }
                    break;
                //刷新流水号
                case 'btn_Refresh':
                    btn_Refresh(data);
                    break;
            }
        });
        //行内事件
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
            set_GridCellCheck(obj); //行内快捷键筛选
        });
        //#endregion
        //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
        //初始化界面
        function set_ClearBill() {
            $("#HMaterNumber").val(getParams("HMaterNumber"));
            $("#HMaterName").val(getParams("HMaterName"));
            $("#HMaterModel").val(getParams("HMaterModel"));
            $("#HProcName").val(getParams("HProcName"));
            set_InitGrid();
            RoadBillMain(HBillInterID, HBillEntryID);
        }
        //保存HMaker
        function set_AddNew(data) {
            $('#btnSave').addClass("layui-btn-disabled").attr("disabled", true);//禁用保存按钮
            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])
                }
            }
            var sSubStr = JSON.stringify(num);
            //var hentryid = linteridSub;//子表 æŽ’序id
            var sMainSub = sSubStr + ";" + sessionStorage["HUserName"];
            $.ajax({
                url: GetWEBURL() + '/Gy_RoutingBillSub/AddWorkQty',
                type: "POST",
                data: { "sMainSub": sMainSub },
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.msg(data1.Message);
                    } else {
                        $('#btnSave').removeClass("layui-btn-disabled").attr("disabled", false);//启用保存按钮
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                    }
                }, error: function () {
                    $('#btnSave').removeClass("layui-btn-disabled").attr("disabled", false);//启用保存按钮
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //初始化页面
        function set_InitGrid() {
            option = {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
                , limit: 500
                , height: 500
                , totalRow: true
                , loading: false
                , cols: [[ //表头
                    { type: 'checkbox', totalRowText: '合计行' }
                    , { type: 'numbers', title: '序号', totalRow: true }
                    , { field: 'HInterID', title: 'HInterID', hide: true }
                    , { field: 'HEntryID', title: 'HEntryID', hide: true }
                    , { field: 'HSourceID', title: '生产资源ID', hide: true }
                    , { field: 'HSourceNumber', title: '生产资源代码', edit: 'text', event: "HSourceNumber" }
                    , { field: 'HSourceName', title: '生产资源' }
                    , { field: 'HWorkQty_Source', title: '产能', edit: 'text' }
                    , { field: 'HEntryStdEmpQty', title: '标准人数', edit: 'text' }
                    , { field: 'HEntryStdEmpAvg', title: '人均产能', edit: 'text' }//f7
                    , { field: 'HSortNum', title: '优先级', edit: 'text' }
                    , { field: 'HRemark', title: '备注', edit: 'text' }//f7
                    , { fixed: 'right', title: '操作', toolbar: '#barDemo' }
                ]]
            }
            option.data = rowdata;
            table.render(option);
        }
        //#region编辑 é¡µé¢èµ‹å€¼
        function RoadBillMain(HInterID,HEntryID)//加载表头
        {
            $.ajax({
                url: GetWEBURL() + "/Gy_RoutingBill/EditWorkQty",
                type: "GET",
                async: false,
                data: { "HInterID": HInterID, "HEntryID": HEntryID },
                success: function (result) {
                    if (result.count == 1) {
                        var data = result.data;
                        var HDataArr = [];
                        for (var i = 0; i < data.length; i++) {
                            HDataArr.push({
                                "HInterID": data[i].hmainid, "HEntryID": data[i].hsubid, "HSourceID": data[i].HSourceID, "HSourceNumber": data[i].生产资源代码
                                , "HSourceName": data[i].生产资源名称, "HWorkQty_Source": data[i].生产资源产能, "HEntryStdEmpQty": data[i].生产资源标准人数
                                , "HEntryStdEmpAvg": data[i].生产资源人均产能, "HSortNum": data[i].优先级, "HRemark": data[i].备注
                            })
                        }
                        option.data = HDataArr
                        table.render(option);
                    } else {
                        option.data = rowdata;
                        table.render(option);
                    }
                }, error: function () {
                    layer.close(ajaxLoad);
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            })
        }
        //#endregion
        //自动配置优先级
        function btn_Refresh(data) {
            for (var i = 0; i < option.data.length; i++) {
                option.data[i]["HSortNum"] = (i + 1) * 10;
            }
            table.render(option);
        }
        //#region F7快捷键
        function set_GridCellCheck(obj) {
            $(document).off('keydown', ".layui-table-edit").on('keydown', '.layui-table-edit', function (e) {
                //#region å­è¡¨æ–‡æœ¬æ¡†è¾“入后检索数据
                if (event.key != "F7") {
                    var errKeys = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Enter"];
                    if (obj.event == "HSourceNumber") {                           //定位当前正在输入的文本框的列名
                        if ($.inArray(event.key, errKeys) == -1) {              //如果按下的键位不是 æ–¹å‘键,则刷新弹窗中的数据
                            if (childPage == null) {                            //判断当前子窗口是否已经打开,若未打卡,则打开页面,并获取子窗口的对象
                                var offset = $(this).offset();                  //获取触发事件的元素的位置,用于定位子窗口打开的位置
                                var innerHeight = window.innerHeight;
                                var top = offset.top + 0.05 * innerHeight;
                                var left = offset.left;
                                if (top + 0.05 * innerHeight + 0.3 * innerHeight > innerHeight) {
                                    top = top - 0.3 * innerHeight - 0.05 * innerHeight;
                                }
                                layer.open({
                                    type: 2                                                                                     //弹窗类型
                                    , skin: 'layui-layer-rim'                                                                   //加上边框
                                    , area: ['25%', '30%']                                                                      //大小
                                    , shadeClose: true                                                                          //点击遮罩时关闭弹窗
                                    , offset: [top, left]
                                    , title: false                                                                              //不显示标题栏
                                    //, title: '项目费用列表'                                                                     //标题
                                    , shift: 2                                                                                  //弹出动画
                                    , closeBtn: 0                                                                               //禁用关闭按钮
                                    , content: ["../../基础资料/通用基础资料/Gy_CommonBaseData.html?OperationType=2", "yes"]
                                    , success: function (layero, index) {
                                        setTimeout(function () {
                                            var value = $(e.currentTarget).val().replace("'", "");                                  //获取文本框最新值
                                            currRowIndex = 0;
                                            var tableView = "h_v_Gy_SourceList";
                                            var childSWhere = "select top(10) HItemID,生产资源代码,生产资源名称 from " + tableView + " where 1=1 and (生产资源代码 like '%" + value + "%' or ç”Ÿäº§èµ„源名称 like '%" + value + "%') order by ç”Ÿäº§èµ„源代码 desc";
                                            childPage.getData(childSWhere, tableView);
                                        }, 200);
                                    }
                                    , end: function () {
                                        obj.event = "";
                                        childPage = null;
                                        currRowIndex = 0;
                                        if (childData != null) {
                                            obj.update({
                                                "HSourceID": childData.HItemID
                                                , "HSourceNumber": childData.生产资源代码
                                                , "HSourceName": childData.生产资源名称
                                            })
                                            childData = null;
                                        }
                                    }
                                });
                            } else {
                                setTimeout(function () {
                                    var value = $(e.currentTarget).val().replace("'", "");                                  //获取文本框最新值
                                    currRowIndex = 0;
                                    var tableView = "h_v_Gy_SourceList";
                                    var childSWhere = "select top(10) HItemID,生产资源代码,生产资源名称 from " + tableView + " where 1=1 and (生产资源代码 like '%" + value + "%' or ç”Ÿäº§èµ„源名称 like '%" + value + "%') order by ç”Ÿäº§èµ„源代码 desc";
                                    childPage.getData(childSWhere, tableView);
                                }, 200);
                            }
                        } else {                                                    //如果按下的键位是 æ–¹å‘键,则调整窗口中 é€‰ä¸­è¡Œ çš„位置
                            if (event.key == "ArrowUp") {
                                currRowIndex--;
                                childPage.setSelectedRow(currRowIndex);
                            } else if (event.key == "ArrowDown") {
                                currRowIndex++;
                                childPage.setSelectedRow(currRowIndex);
                            } else if (event.key == "Enter") {
                                //手动失焦
                                var element = document.getElementById("HBillNo");
                                element.focus();
                                childPage.getSelectedData(currRowIndex);
                                if (childData != null) {
                                    obj.update({
                                        "HSourceID": childData.HItemID
                                        , "HSourceNumber": childData.生产资源代码
                                        , "HSourceName": childData.生产资源名称
                                    })
                                    childData = null;
                                }
                                childPage = null;
                                currRowIndex = 0;
                                childData = null;
                                obj.event = "";
                            }
                        }
                    }
                }
                //#endregion
                if (event.key == "F7") {
                    //生产资源
                    if (obj.event == "HSourceNumber") {
                        //打开人员表  å°çª—体
                        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
                                    , "HSourceNumber": checkStatus.data[0].生产资源代码
                                    , "HSourceName": checkStatus.data[0].生产资源名称
                                })
                                layer.close(index);//关闭弹窗
                            }
                        })
                    }
                    obj.event = "";
                    return false;
                }
            })
        }
        //#endregion
        //行内删除
        function set_GridDelete(obj) {
            var data = obj.data;
            var rowIndex = $(obj.tr).attr("data-index");
            if (obj.event === 'del') {
                layer.confirm('真的删除行吗?', function (index) {
                    obj.del();
                    option.data = table.cache["mainTable"];//将数据绑定到data上
                    table.reload(option);
                    layer.close(index);
                });
            }
        }
        //获取参数
        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;
        }
        //将url参数中的中文乱码重新转换成中文
        function getParams(key) {
            var reg = new RegExp("(^|&)" + key + "=([^&]*)(&|$)");
            //如果地址栏中出现中文则进行编码
            var r = encodeURI(window.location.search).substr(1).match(reg);
            if (r != null) {
                //将中文编码的字符重新变成中文
                return decodeURI(unescape(r[2]));
            }
            return null;
        };
        //#endregion
    });
</script>
WebTM/views/É豸¹ÜÀí/É豸±¨±í/Sb_EquipmentLoadReport.html
@@ -117,6 +117,8 @@
            var DateClo = [];
            var ZHUData = [];
            var HModName = "Sb_EquipmentLoadReport";
            var HWorkTimeArr = [];
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
@@ -160,6 +162,48 @@
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            table.on('row(mainTable)', function (obj) {
                //选中行改变颜色
                var flag = !obj.tr.find(':checkbox:first').prop('checked');
                obj.tr.find(':checkbox').prop('checked', flag);
                if (flag) {
                    obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked');  //设置复选框选中样式
                    $(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
                    var HIsExist = true;
                    //判断所选生产资源是否在数组中存在
                    for (var i = 0; i < ZHUData.length; i++) {
                        if (ZHUData[i].生产资源 == obj.data.HSourceName) {
                            for (let j = 0; j < HWorkTimeArr.length; j++) {
                                if (HWorkTimeArr[j].生产资源.indexOf(obj.data.HSourceName) != -1 && i == 0) {
                                    HIsExist = false;
                                    break;
                                }
                            }
                            if (HIsExist) {
                                HWorkTimeArr.push(ZHUData[i])
                            }
                        }
                    }
                    //重新加载柱状图
                    set_Graphics();
                } else {
                    obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                    $(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
                    //移除数据数据
                    HWorkTimeArr = HWorkTimeArr.filter(item => item.生产资源 != obj.data.HSourceName)
                    //重新加载柱状图
                    set_Graphics();
                }
                //mainTable ä¸ºè¡¨æ ¼ID   æ³¨æ„æ­¤å¤„如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色
                layui.each(table.cache.mainTable, function (i, l) {
                    if (obj.tr.index() == l.LAY_TABLE_INDEX) {
                        l.LAY_CHECKED = flag;
                    }
                });
            })
            //#endregion
            
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
@@ -268,15 +312,73 @@
                var HXTitle = [];//X轴标题名称
                var TimeCount = []; //工时数据
                var NumCount = 0;
                var HWorkTimeSum = [];
                var num = [];
                if (HWorkTimeArr.length > 0) {
                    for (let i = 0; i < HWorkTimeArr.length; i++) {
                        if (HWorkTimeSum.length == 0) {
                            //HWorkTimeSum.push(HWorkTimeArr[i])
                            HWorkTimeSum.push({ "HMasterDate": HWorkTimeArr[i].HMasterDate, "HTimeSum": Number(HWorkTimeArr[i].HTimeSum) })
                        } else {
                            for (let j = 1; j <= HWorkTimeSum.length; j++) {
                                if (HWorkTimeSum[j - 1].HMasterDate.indexOf(HWorkTimeArr[i].HMasterDate) == -1) {
                                    if (j == HWorkTimeSum.length) {
                                        //HWorkTimeSum.push(HWorkTimeArr[i])
                                        HWorkTimeSum.push({ "HMasterDate": HWorkTimeArr[i].HMasterDate, "HTimeSum": Number(HWorkTimeArr[i].HTimeSum) })
                                        break;
                                    }
                                } else {
                                    HWorkTimeSum[j - 1].HTimeSum = Number(HWorkTimeSum[j - 1].HTimeSum) + Number(HWorkTimeArr[i].HTimeSum);
                                    break;
                                }
                            }
                        }
                    }
                } else {
                    for (let i = 0; i < ZHUData.length; i++) {
                        if (HWorkTimeSum.length == 0) {
                            //HWorkTimeSum.push(ZHUData[i])
                            HWorkTimeSum.push({ "HMasterDate": ZHUData[i].HMasterDate, "HTimeSum": Number(ZHUData[i].HTimeSum) })
                        } else {
                            for (let j = 1; j <= HWorkTimeSum.length; j++) {
                                if (HWorkTimeSum[j - 1].HMasterDate.indexOf(ZHUData[i].HMasterDate) == -1) {
                                    if (j == HWorkTimeSum.length) {
                                        //HWorkTimeSum.push(ZHUData[i])
                                        HWorkTimeSum.push({ "HMasterDate": ZHUData[i].HMasterDate, "HTimeSum": Number(ZHUData[i].HTimeSum) })
                                        break;
                                    }
                                } else {
                                    HWorkTimeSum[j - 1].HTimeSum = Number(HWorkTimeSum[j - 1].HTimeSum) + Number(ZHUData[i].HTimeSum);
                                    //num.push({ "HMasterDate": ZHUData[i].HMasterDate, "HTimeSum": Number(HWorkTimeSum[j - 1].HTimeSum) + Number(ZHUData[i].HTimeSum) });
                                    break;
                                }
                            }
                        }
                    }
                }
                for (let i = 0; i < 14; i++) {
                        
                    HXTitle.push(DateClo[i]["title"]);
                    if (ZHUData.length > NumCount) {
                        TimeCount.push(ZHUData[NumCount]['HTimeSum']);
                    if (HWorkTimeSum.length > NumCount) {
                        TimeCount.push(HWorkTimeSum[NumCount]['HTimeSum']);
                        NumCount += 1;
                    } else {
                        TimeCount.push(0);
                    }
                    //if (ZHUData.length > NumCount && HWorkTimeArr.length == 0) {
                    //    TimeCount.push(ZHUData[NumCount]['HTimeSum']);
                    //    NumCount += 1;
                    //} else if (HWorkTimeArr.length > NumCount && HWorkTimeArr.length > 0) {
                    //    TimeCount.push(HWorkTimeArr[NumCount]['HTimeSum']);
                    //    NumCount += 1;
                    //} else {
                    //    TimeCount.push(0);
                    //}
                  
                }
                option_ZZT = {
@@ -340,6 +442,8 @@
            //初始化表格
            function set_InitGrid() {
                var columns = [];
                //在列表左边添加勾选框
                columns.push({ type: 'checkbox', fixed: 'left' });
                columns.push({ type: 'numbers', title: '序号'});
                columns.push({ field: 'HSourceName', title: '生产资源', width: 120 });
                var myDate = new Date();
WebTM/views/³µ¼ä¹ÜÀí/±¨±í·ÖÎö/Sc_BadReasonReport.html
@@ -42,6 +42,13 @@
                                        </select>
                                    </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="HGroupName" lay-verify="HGroupName" id="HGroupName" style="width: 60%;display: inline-block;">
                                        <input type="hidden" class="layui-input" name="HGroupID" lay-verify="HGroupID" id="HGroupID" value="0">
                                    </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>
@@ -162,6 +169,11 @@
    </div>
    <script>
        //#region æ–‡æœ¬æ¡†è¾“入搜索相关数据-变量
        var childPage = null;                       //获取子窗口对象,用于操作子窗口的变量和方法
        var currRowIndex = 0;                       //用于定位子窗口当前选中的行
        var childData = null;                       //用于获取子窗口返回的数据
        //#endregion
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
@@ -589,12 +601,13 @@
            //加载网格
            function get_Display(sWhere) {
                sWhere = $("#HYear").val();
                var HGroupID = $("#HGroupID").val();
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/Sc_BadReasonReport/list',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                    data: { "sWhere": sWhere, "user": sessionStorage["HUserName"], "HGroupID": HGroupID },
                    success: function (data1) {
                        var col = [];
                        if (data1.count == 1) {
@@ -757,6 +770,8 @@
                $("#ColContent2").val("");
                $("#ColName2").val("0");
                $("#Comparator2").val("0");
                $("#HGroupID").val("0");
                $("#HGroupName").val("");
                form.render('select');
                sWhere = " ";
@@ -885,6 +900,104 @@
                })
            }
            //#region æ–‡æœ¬æ¡†ç›‘听
            $(document).ready(function () {
                //#region æ ¹æ®ç­ç»„代码获取班组基础资料筛选弹窗
                //根据元素ID对元素进行监听=============================================================================
                $("#HGroupName").on('keydown', function (data) {
                    //================================================================================================
                    var errKeys = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Enter"];
                    if ($.inArray(event.key, errKeys) == -1) {              //如果按下的键位不是 æ–¹å‘键,则刷新弹窗中的数据
                        if (childPage == null) {                            //判断当前子窗口是否已经打开,若未打卡,则打开页面,并获取子窗口的对象
                            var offset = $(this).offset();                  //获取触发事件的元素的位置,用于定位子窗口打开的位置
                            var innerHeight = window.innerHeight;
                            var top = offset.top + 0.05 * innerHeight;
                            var left = offset.left;
                            if (top + 0.05 * innerHeight + 0.3 * innerHeight > innerHeight) {
                                top = top - 0.3 * innerHeight - 0.05 * innerHeight;
                            }
                            layer.open({
                                type: 2                                                                                     //弹窗类型
                                , skin: 'layui-layer-rim'                                                                   //加上边框
                                , area: ['35%', '50%']                                                                      //大小
                                , shadeClose: true                                                                          //点击遮罩时关闭弹窗
                                , offset: [top, left]
                                , title: false                                                                              //不显示标题栏
                                //, title: '项目费用列表'                                                                     //标题
                                , shift: 2                                                                                  //弹出动画
                                , closeBtn: 0                                                                               //禁用关闭按钮
                                , content: ["../../基础资料/通用基础资料/Gy_CommonBaseData.html?OperationType=2", "yes"]
                                , success: function (layero, index) {
                                    setTimeout(function () {
                                        //修改,根据文本框数据,编写查询语句================================================================================================
                                        var value = $("#HGroupName").val().replace(/'/g, "");                                  //获取文本框最新值
                                        currRowIndex = 0;
                                        var tableView = "h_v_Gy_GroupList";
                                        var childSWhere = "select top(10) HItemID,班组代码,班组名称 from " + tableView + " where 1=1 and (班组名称 like '%" + value + "%') order by ç­ç»„代码 desc";
                                        childPage.getData(childSWhere, tableView);
                                        //===================================================================================================================================
                                    }, 200);
                                }
                                , end: function () {
                                    childPage = null;
                                    currRowIndex = 0;
                                    if (childData != null) {
                                        //根据弹窗返回数据设置文本框数据=================================================================================================
                                        //获取数据
                                        $("#HGroupID").val(childData.HItemID);//班组id
                                        $("#HGroupName").val(childData.班组名称);//班组名称
                                        //===============================================================================================================================
                                        childData = null;
                                    }
                                }
                            });
                        } else {
                            setTimeout(function () {
                                //修改,根据文本框数据,编写查询语句================================================================================================
                                var value = $("#HGroupName").val().replace(/'/g, "");                                  //获取文本框最新值
                                currRowIndex = 0;
                                var tableView = "h_v_Gy_GroupList";
                                var childSWhere = "select top(10) HItemID,班组代码,班组名称 from " + tableView + " where 1=1 and (班组名称 like '%" + value + "%') order by ç­ç»„代码 desc";
                                childPage.getData(childSWhere, tableView);
                                //=================================================================================================================================
                            }, 200);
                        }
                    } else {                                                    //如果按下的键位是 æ–¹å‘键,则调整窗口中 é€‰ä¸­è¡Œ çš„位置
                        if (event.key == "ArrowUp") {
                            currRowIndex--;
                            childPage.setSelectedRow(currRowIndex);
                        } else if (event.key == "ArrowDown") {
                            currRowIndex++;
                            childPage.setSelectedRow(currRowIndex);
                        } else if (event.key == "Enter") {
                            //手动失焦
                            var element = document.getElementById("HGroupName");
                            element.blur();
                            childPage.getSelectedData(currRowIndex);
                            if (childData != null) {
                                //根据弹窗返回数据设置文本框数据=================================================================================================
                                //获取数据
                                $("#HGroupID").val(childData.HItemID);//班组id
                                $("#HGroupName").val(childData.班组名称);//班组名称
                                //===============================================================================================================================
                                childData = null;
                            }
                            childPage = null;
                            currRowIndex = 0;
                            childData = null;
                        }
                    }
                });
                //#endregion
            });
        //#endregion
            //#endregion
        });
    </script>