yxj
2024-08-28 c58e1010f0e561c1d056285b9b2499171589b957
新增制程质量门逃逸趋势图报表模块
2个文件已修改
1个文件已添加
859 ■■■■■ 已修改文件
WebTM/WebTM.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/layuiadmin/Scripts/webConfig.js 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/质量报表/QC_QualityMonthSumReport.html 817 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -483,6 +483,7 @@
    <Content Include="views\质量管理\质量报表\QC_MoistureContentDataLedger.html" />
    <Content Include="views\质量管理\质量报表\QC_QualityStatisticsDailyReport.html" />
    <Content Include="views\质量管理\质量报表\QC_PPMReport.html" />
    <Content Include="views\质量管理\质量报表\QC_QualityMonthSumReport.html" />
    <Content Include="views\质量管理\质量报表\QC_TechnologyParameterClass.html" />
    <Content Include="views\质量管理\质量报表\QC_SkillExamMonthSumReport.html" />
    <Content Include="views\质量管理\质量报表\SB_TechnologyParameterList.html" />
WebTM/layuiadmin/Scripts/webConfig.js
@@ -1,36 +1,29 @@

function GetWEBURL() {
    //var WEBURL = "http://192.168.16.80:8011/";          //办公室服务器
    //var WEBURL = "http://localhost:8081/SWEAPI/";       //ch本地*/
    //var WEBURL = "http://61.164.86.218:8099/ABAPI/";
    /*var WEBURL = "http://localhost/API/";   */          //颜晓军本地配置
    //var WEBURL = "http://localhost:8082/LuBaoAPI/";    //杨乐本地配置
   /* var WEBURL = "http://localhost:8082/API/"; */   //杜贺本地配置
     /*var WEBURL = "http://localhost/API/";   //潘浙游本地配置  */
    //var WEBURL = "http://localhost:8082/API/";    //杜贺本地配置
    /*var WEBURL = "http://localhost/API/";*/    //潘浙游本地配置
    /*var WEBURL = "http://localhost:8082/API/";    //杜贺本地配置*/
    //var WEBURL = "http://localhost:81/API/";    //王彬本地配置
    /*var WEBURL = "http://localhost:8083/API/";  //陈雯静本地配置*/
    //var WEBURL = "http://localhost:8082/API/";    //张瑞广本地配置
    var WEBURL = "http://localhost:81/API/"    //翁涛涛本地配置
    //var WEBURL = "http://47.96.97.237/API/";          //智云服务器
    var WEBURL = "http://localhost/API/";             //颜晓军本地配置
    //var WEBURL = "http://localhost:8082/LuBaoAPI/";   //杨乐本地配置
    //var WEBURL = "http://localhost:8082/LuBaoAPI/";   //余思杰本地配置
    //var WEBURL = "http://localhost:8088/ARAPI/";    //余思杰本地配置(安瑞)
    //var WEBURL = "http://10.1.4.155/API/";   //江丰客户NEW
   /* var WEBURL = "http://47.96.97.237/API/";   //智云服务器*/
    //var WEBURL = "http://localhost:8088/ARAPI/";      //余思杰本地配置(安瑞)
    //var WEBURL = "http://localhost:8082/API/";        //杜贺本地配置
    //var WEBURL = "http://localhost:8082/API/";        //张瑞广本地配置
    //var WEBURL = "http://localhost:81/API/"           //翁涛涛本地配置
    //var WEBURL = "http://localhost:81/API/";          //王彬本地配置
    //var WEBURL = "http://localhost/API/";             //潘浙游本地配置
    //var WEBURL = "http://61.164.86.218:8099/ABAPI/";  //奥邦
    //var WEBURL = "http://10.1.4.155/API/";            //江丰客户NEW
    //var WEBURL = "http://183.129.128.86:9090/API/";   //凯贝奈特客户服务器外网
    //var WEBURL = "http://192.168.1.253:8080/API/";   //凯贝奈特客户服务器内网
    //var WEBURL = "http://220.189.218.154:8092/API/";   //丸井四维尔服务器
    //var WEBURL = "http://192.168.0.214/API/";   //瑞与祺服务器
    //var WEBURL = "http://192.168.10.66/API/";   //森楷服务器
    //var WEBURL = "http://localhost/API/";
    //var WEBURL = "http://192.168.1.253:8080/API/";    //凯贝奈特客户服务器内网
    //var WEBURL = "http://220.189.218.154:8092/API/";  //丸井四维尔服务器
    //var WEBURL = "http://192.168.0.214/API/";         //瑞与祺服务器
    //var WEBURL = "http://192.168.10.66/API/";         //森楷服务器
    //var WEBURL = "http://192.168.80.90:9090/API/";    //安瑞服务器
    //var WEBURL = "http://192.168.16.53:8081/API/";    //龙山汽配
    //var WEBURL = "http://122.227.158.218:8090/API/";    //龙山汽配外网
    //var WEBURL = "http://122.227.158.218:8090/API/";  //龙山汽配外网
    //var WEBURL = "http://192.168.0.244:8082/API/";    //帅威内网
    //var WEBURL = "http://192.168.1.237:9003/API";     //夏宝内网
    //var WEBURL = "http://60.190.4.42:9003/API";       //夏宝外网
    //var WEBURL = "http://192.168.60.12/API";       //中控
    //var WEBURL = "http://192.168.60.12/API";          //中控
    return WEBURL
}
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_QualityMonthSumReport.html
New file
@@ -0,0 +1,817 @@
<!DOCTYPE html>
<html>
<head>
    <meta 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">
    <!--引用layui样式文件-->
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <!--引用layui js文件-->
    <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>
    <script src="../../../layuiadmin/HideButton.js"></script>
    <script src="../../../layuiadmin/soulTable.slim.js"></script>
    <script src="../../../layuiadmin/PageTitle.js"></script>
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src='../../../layuiadmin/lib/extend/echarts.min.js'></script>
    <style type="text/css">
        input.layui-input.layui-unselect {
            padding-right: 0;
        }
    </style>
</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" style="margin-top: 10px; margin-bottom: 10px;">
                                <div class="layui-inline">
                                    <label class="layui-form-label">日期</label>
                                    <div class="layui-input-block">
                                        <input name="HDate" id="HDate" autocomplete="off" class="layui-input ForFilteringSchemes">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">部门</label>
                                    <div class="layui-input-block">
                                        <input type="text" class="layui-input" name="HDeptName" id="HDeptName" lay-verify="HDeptName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <input type="hidden" class="layui-input" name="HDeptID" lay-verify="HDeptID" id="HDeptID" value="0">
                                        <button type="button" lay-submit="" class="layui-btn" lay-filter="btnHDept" style="width:20px;">
                                            <i class="layui-icon layui-icon-search layuiadmin-button-btn" style="margin-left:-9px;"></i>
                                        </button>
                                    </div>
                                </div>
                                <!--<div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">组织</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                        <select name="HStockOrgID" id="HStockOrgID" class="ForFilteringSchemes" lay-verify="HStockOrgID">
                                            åŠ¨æ€æ¸²æŸ“ç»„ç»‡
                                        </select>
                                    </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>
                        </div>
                        <div>
                            <div style="width:99%;height:calc(100vh);">
                                <table class="" id="mainTable" lay-filter="mainTable"></table>
                            </div>
                            <div id="histogram" style="width: 99.5%; height: calc(68vh); margin-top: 10px;; margin-bottom: 100px;">
                            </div>
                        </div>
                        <script type="text/html" id="toolbarDemo">
                            <div class="layui-btn-container">
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Export" id="btn_Export"><i class="layui-icon layui-icon-export"></i>导出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Refresh" id="btn_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>刷新</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_Exit" id="btn_Exit"><i class="layui-icon layui-icon-logout"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_HideColumn" id="btn_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="btn_HideButton" id="btn_HideButton"><i class="layui-icon layui-icon-form"></i>按钮设置</button>
                            </div>
                        </script>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <script>
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'table', 'element', 'laypage', 'laydate', 'soulTable'], 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
                , soulTable = layui.soulTable
            var HModName = "QC_QualityMonthSumReport";
            var HBillType = "QC_QualityMonthSumReport";
            var HMaker = sessionStorage["HUserName"]
            var HStockOrgID = sessionStorage["OrganizationID"]  //组织ID
            var sDate = Format(new Date(), "yyyy-MM-dd")
            var sWhere = "";
            var ins;                //用于导出excel
            var option = [];
            var columns = "";
            var titleData = [];     //不需要显示的字段
            //#endregion
            //#region ã€åŠ¨æ€èŽ·å–æ¨¡å—åç§°ã€‘
            //通过单据类型,从数据库动态获取单据模块命名,引用js文件 PageTitle.js
            var HPageTitle = get_PageTitle(HBillType) == "" ? document.title : get_PageTitle(HBillType);
            //#endregion
            var totalArray = [];
            //#region è¿›å…¥é¡µé¢å³åŠ è½½
            //#region åˆå§‹åŒ–界面
            set_ClearBill();
            function set_ClearBill() {
                //获取组织
                //set_StockOrg();
                //初始化表单时间
                set_InitDate();
                //初始化表格
                set_InitGrid();
                //执行查询方法
                get_FastQuery()
            }
            //#endregion
            //判断是否登录 æœªç™»å½•则跳到登录页
            if (sessionStorage.login != "login") {
                layer.confirm("登录失效,请重新登录!", {
                    icon: 4, skin: 'layui-layer-lan', title: "温馨提示", closeBtn: 0, btn: ['重新登录']
                }, function () { window.location.href = "../../user/login.html"; });
            }
            //#region   èŽ·å–ç»„ç»‡
            //function set_StockOrg() {
            //    //获取登录页组织列
            //    $.ajax({
            //        type: "GET",
            //        url: GetWEBURL() + "/Web/GetOrganizations",
            //        async: false,    //async用于控制(false)同步和(true)异步,默认的是true,即请求默认的是异步请求
            //        success: function (result) {
            //            var Organization = "";
            //            Organization += '<option  style="color:blue;" value="-1">全部</option>';
            //            if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
            //                var data = result.data;
            //                for (var i = 0; i < data.length; i++) {
            //                    Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
            //                }
            //                $("#HStockOrgID").append(Organization);
            //                $("#HStockOrgID").val(HStockOrgID)
            //                form.render('select');
            //            }
            //            layer.closeAll("loading");
            //        },
            //        complete: function (XHR, TS) { XHR = null }//回收资源
            //    })
            //}
            //#endregion
            //#region åˆå§‹åŒ–表单时间插件
            function set_InitDate() {
                //常规用法
                laydate.render({
                    elem: '#HDate'
                    , type: 'year'
                    , value: new Date()
                    , btns: ['now']
                    , showBottom: false     //是否显示底部栏
                    , ready: function (date) {
                        $("#layui-laydate").off('click', '.laydate-month-list li', function () {
                            $("#layui-laydate").remove;
                        });
                    }
                    //选择年份或月份都会关闭
                    , change: function (value, date, endDate) { //监听日期被切换
                        lay('#HDate').val(value);
                        if ($(".layui-laydate").length) {
                            $(".layui-laydate").remove();
                        }
                    }
                });
            }
            //#endregion
            //#region åˆå§‹åŒ–表格方法
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , page: true
                    //, totalRow: true
                    , height: 'full-50'
                    , cellMinWidth: 90
                    , limit: 50
                    , limits: [50, 500, 5000, 20000]
                    , done: function (res, curr, count) {
                        soulTable.render(this);
                    }
                };
            }
            //#endregion
            //#region ç‚¹å‡»è¡Œé€‰ä¸­é«˜äº®
            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背景颜色和字体颜色
                } else {
                    obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
                    $(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
                }
                //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 æ˜¾ç¤ºåˆ—数据
            function DisPlay_HideColumn() {
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + '/Xt_grdAlignment_WMES/grdAlignmentWMESList',
                    async: false,
                    data: { "HModName": HModName, "user": HMaker },
                    success: function (data1) {
                        if (data1.data.length != 0) {
                            var dataCol = [];//数据库查询出的列数据
                            var totalArray = [];
                            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 (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);
                        }
                        //刷新按钮显示
                        var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                        Display_HideButton(btns, HBillType, HModName, HMaker);
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                })
            }
            //#endregion
            //#endregion
            //#region æœ¬é¡µé¢æ‰€æœ‰è¢«è°ƒç”¨çš„æ–¹æ³•
            //#region é€‰æ‹©éƒ¨é—¨æŒ‰é’®
            form.on('submit(btnHDept)', function () {
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim"   //加上边框
                    , title: "部门列表"         //标题
                    , closeBtn: 1               //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2                  //弹出动画
                    , area: ["90%", "90%"]      //窗体大小
                    , maxmin: true              //设置最大最小按钮是否显示
                    , content: ['../../基础资料/公用基础资料/Gy_DepartmentList.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("请选择一条数据");
                        }
                        $("#HDeptName").val(checkStatus.data[0].部门名称);
                        $("#HDeptID").val(checkStatus.data[0].HItemID);
                        layer.close(index); //关闭弹窗  å®ƒèŽ·å–çš„å§‹ç»ˆæ˜¯æœ€æ–°å¼¹å‡ºçš„æŸä¸ªå±‚ï¼Œå€¼æ˜¯ç”±layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                    , end: function () {
                        //刷新列表
                        get_FastQuery();
                    }
                })
            });
            //#endregion
            //#region å·¥å…·æ äº‹ä»¶
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //导出按钮
                    case 'btn_Export': btn_Export();
                        break;
                    //刷新按钮
                    case 'btn_Refresh': btn_Refresh();
                        break;
                    //退出按钮
                    case 'btn_Exit': Pub_Close(2);
                        break;
                    //列设置
                    case 'btn_HideColumn': get_HideColumn();
                        break;
                    //按钮设置
                    case 'btn_HideButton':
                        var btns = document.getElementsByTagName("button");     //获取本页所有按钮对象
                        get_HideButton(btns, HBillType, HModName, HMaker);
                        break;
                };
            });
            //#endregion
            //#region å¯¼å‡ºExecel
            function btn_Export() {
                table.exportFile(ins.config.id, option.data, "xls");
            }
            //#endregion
            //#region åˆ·æ–°
            function btn_Refresh() {
                get_FastQuery();
            }
            //#endregion
            //#region åˆ—设置
            function get_HideColumn() {
                var colName = "";
                var contentUrl = "";
                for (var i = 1; i < option.cols[0].length; i++) {
                    colName += option.cols[0][i]["title"] + ",";
                }
                var urlStr = window.document.location.pathname;//获取文件路径
                var urlLen = urlStr.split('/');
                for (var i = 0; i < urlLen.length - 4; i++) {
                    contentUrl += "../";
                }
                colName = encodeURI(colName.substring(0, colName.length - 1));//对 URI è¿›è¡Œç¼–码
                contentUrl += '基础资料/隐藏列设置/Gy_GridView_Hide.html?HModName=' + HModName + '&colName=' + colName;
                layer.open({
                    type: 2
                    , skin: "layui-layer-rim" //加上边框
                    , title: "隐藏列设置"  //标题
                    , closeBtn: 1  //窗体右上角关闭 çš„ æ ·å¼
                    , shift: 2 //弹出动画
                    , area: ["50%", "90%"] //窗体大小
                    , maxmin: true //设置最大最小按钮是否显示
                    , content: [contentUrl, "yes"]
                    , btn: ["确定", "取消"]
                    , btn1: function (index, laero) {
                        //刷新表格数据
                        DisPlay_HideColumn();
                        //更新表格缓存的数据
                        layer.close(index);//关闭弹窗
                    }
                })
            }
            //#endregion
            //#region é‡ç½®æŒ‰é’®
            form.on('submit(btnReSearch)', function (data) {
                //清空过滤条件
                set_ClearQuery();
            });
            //重置过滤条件
            function set_ClearQuery() {
                $("#HDate").val(Format(new Date(), "yyyy"));
                sDate = Format(new Date(), "yyyy-MM-dd")
                $("#HDeptName").val("");
                //$("#HStockOrgID").val(HStockOrgID)   //组织
                form.render('select');
                sWhere = "";
            }
            //#endregion
            //#region æŸ¥è¯¢æŒ‰é’®
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //快速查询
            function get_FastQuery() {
                sDate = $("#HDate").val();                  //日期
                get_Display(sWhere);
                //加载柱状图
                set_Graphics();
            }
            //#endregion
            //#region åˆ—表刷新
            function get_Display(sWhere) {
                var HDate = sDate;          //日期
                //文本框为空时,清空对应ID
                if ($("#HDeptName").val() == '') {
                    $("#HDeptID").val("0");
                }
                var HDeptID = $("#HDeptID").val()
                var ajaxLoad = layer.load();
                $.ajax({
                    type: "GET",
                    url: GetWEBURL() + '/QC_QualityReportsController/GetQC_QualityMonthSumReport_Json',
                    async: false,    //async用于控制(false)同步和(true)异步,默认的是true,即请求默认的是异步请求
                    data: { "HYear": HDate, "HDeptID": HDeptID },
                    success: function (data1) {
                        if (data1.count == 1) {
                            var data = [];
                            var col = [];
                            var totalArray = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                //动态获取列表所有列名
                                data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                                //获取不需要显示的列(H开头的列不显示)
                                var patrn = new RegExp(/^h/i);
                                if (patrn.test(data1.list[key].ColmCols)) {
                                    titleData[key] = data1.list[key].ColmCols;
                                }
                            }
                            //在列表左边添加勾选框
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '合计' });
                            for (var i = 0; i < data.length; i++) {
                                if ($.inArray(data[i].name, titleData) > -1) {
                                    col.push({ field: data[i].id, title: data[i].name, align: 'left', hide: true }); //隐藏id列
                                }else {
                                    switch (data[i].Type) {
                                        //int
                                        case 'DateTime':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'left', sort: true, templet: "<div>{{d." + data[i].name + " ==null ?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 160 });
                                            break;
                                        case 'Decimal':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'left', sort: true, width: 100, totalRow: true });
                                            break;
                                        case 'Int32':
                                            col.push({ field: data[i].id, title: data[i].name, align: 'left', sort: true, width: 100, totalRow: true });
                                            break;
                                        default:
                                            col.push({ field: data[i].id, title: data[i].name, align: 'left', sort: true, width: 200 });
                                    }
                                }
                            }
                            //动态显示列名
                            option = {
                                elem: '#mainTable'
                                , toolbar: '#toolbarDemo'
                                , cols: [col]
                                , data: data1.data
                                , height: 800
                                , page: true
                                //, totalRow: true
                                , cellMinWidth: 90
                                , limit: 50
                                , limits: [50, 500, 5000, 20000]
                                , done: function (res, curr, count) {
                                    soulTable.render(this);
                                }
                            }
                            columns = col;
                            option.cols = [columns];
                            option.data = data1.data;
                            //option.totalRow = true;
                            table.render(option);
                            ins = table.render(option);
                            //刷新表格数据
                            DisPlay_HideColumn();
                            layer.close(ajaxLoad);
                        } else {
                            layer.close(ajaxLoad);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    },
                    error: function () {
                        layer.close(ajaxLoad);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //#endregion
            //#region åŠ è½½å›¾è¡¨
            function set_Graphics() {
                //#region ã€æŸ±çŠ¶å›¾ã€‘
                var app = {};
                var chartDom = document.getElementById('histogram');
                var myChart = echarts.init(chartDom);
                var option_mychart;
                //#region [柱状图布局样式]
                const posList = [
                    'left',
                    'right',
                    'top',
                    'bottom',
                    'inside',
                    'insideTop',
                    'insideLeft',
                    'insideRight',
                    'insideBottom',
                    'insideTopLeft',
                    'insideTopRight',
                    'insideBottomLeft',
                    'insideBottomRight'
                ];
                app.configParameters = {
                    rotate: {
                        min: -90,
                        max: 90
                    },
                    align: {
                        options: {
                            left: 'left',
                            center: 'center',
                            right: 'right'
                        }
                    },
                    verticalAlign: {
                        options: {
                            top: 'top',
                            middle: 'middle',
                            bottom: 'bottom'
                        }
                    },
                    position: {
                        options: posList.reduce(function (map, pos) {
                            map[pos] = pos;
                            return map;
                        }, {})
                    },
                    distance: {
                        min: 0,
                        max: 100
                    }
                };
                app.config = {
                    rotate: 90,
                    align: 'left',
                    verticalAlign: 'middle',
                    position: 'insideBottom',
                    distance: 15,
                    onChange: function () {
                        const labelOption = {
                            rotate: app.config.rotate,
                            align: app.config.align,
                            verticalAlign: app.config.verticalAlign,
                            position: app.config.position,
                            distance: app.config.distance
                        };
                        myChart.setOption({
                            series: [
                                {
                                    label: labelOption
                                },
                                {
                                    label: labelOption
                                },
                                {
                                    label: labelOption
                                },
                                {
                                    label: labelOption
                                }
                            ]
                        });
                    }
                };
                const labelOption = {
                    show: true,
                    position: 'top',
                    textStyle: {
                        //color: '#333', // æ ‡ç­¾å­—体颜色
                        fontSize: 12, // æ ‡ç­¾å­—体大小
                        //fontWeight: 'bold', // æ ‡ç­¾å­—体加粗
                        //fontStyle: 'italic', // æ ‡ç­¾å­—体斜体
                        //fontFamily: 'Arial' // æ ‡ç­¾å­—体
                    }
                };
                const labelOption1 = {
                    show: true,
                    position: 'right',
                    textStyle: {
                        //color: '#333', // æ ‡ç­¾å­—体颜色
                        fontSize: 12, // æ ‡ç­¾å­—体大小
                        //fontWeight: 'bold', // æ ‡ç­¾å­—体加粗
                        //fontStyle: 'italic', // æ ‡ç­¾å­—体斜体
                        //fontFamily: 'Arial' // æ ‡ç­¾å­—体
                    }
                }
                //#endregion
                //柱状图绑定数据
                var H_X = ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'];//X轴标题
                var HAverage = [];      //y轴:质量门逃逸率
                var HTarget = [];       //y轴:上限值
                for (let i = 0; i < option.data.length; i++) {
                    //获取质量门逃逸率行数值
                    if (option.data[i].项目 == '质量门逃逸率') {
                        for (let j = 1; j <= 12; j++) {
                            HAverage.push(option.data[i][j + "月"]);
                        }
                    }
                    //获取上限值行数值
                    if (option.data[i].项目 == '上限值') {
                        for (let j = 1; j <= 12; j++) {
                            HTarget.push(option.data[i][j + "月"]);
                        }
                    }
                }
                option_mychart = {
                    title: {
                        text: '质量门逃逸率统计表',
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    legend: {
                        data: ['质量门逃逸率', '上限值'],
                        top: 'bottom',  // å°†å›¾ä¾‹æ”¾ç½®åœ¨å›¾è¡¨çš„下方
                        left: 'center'  // æˆ–者 'right',根据需要调整水平位置
                    },
                    //toolbox: {                            //工具栏
                    //    show: true,
                    //    orient: 'vertical',
                    //    left: 'right',
                    //    top: 'center',
                    //    feature: {
                    //        mark: { show: true },
                    //        dataView: { show: true, readOnly: false },
                    //        magicType: { show: true, type: ['line', 'bar', 'stack'] },
                    //        restore: { show: true },
                    //        saveAsImage: { show: true }
                    //    }
                    //},
                    grid:
                    {
                        left: '5%',
                        right: '5%',
                        bottom: '10%',
                        //top: '10%',
                        containLabel: true
                    },
                    xAxis: [                                //设置x轴坐标
                        {
                            type: 'category',
                            axisTick: { show: true },
                            data: H_X,
                            axisLabel: {
                                formatter: function (value) {
                                    var temp = "";
                                    var temp_len = 5;
                                    for (var i = 0; i < value.length; i = i + temp_len) {
                                        if (i + temp_len <= value.length) {
                                            temp += '\n' + value.slice(i, i + temp_len)
                                        } else {
                                            temp += '\n' + value.slice(i);
                                        }
                                    }
                                    return temp;
                                    // ä½¿ç”¨ '\n' å®žçŽ°æ¢è¡Œ
                                    //return value.length > 5 ? value.slice(0, 5) + '\n' + value.slice(5) : value;
                                },
                                width: 30 // è®¾ç½®åˆ»åº¦æ ‡ç­¾çš„宽度,超过这个宽度会自动换行
                            }
                        }
                    ],
                    yAxis: [                                //设置y轴数据类型
                        {
                            type: 'value'
                        }
                    ],
                    series: [                               //设置y轴数据
                        {
                            name: '质量门逃逸率',
                            type: 'line',
                            barWidth: 30,
                            barGap: 0,
                            label: labelOption,
                            emphasis: {
                                focus: 'series'
                            },
                            itemStyle: {
                                normal: {
                                    lineStyle: {
                                        color: '#8E8E8E' // è®¾ç½®çº¿æ¡é¢œè‰²ä¸ºç°è‰²
                                    },
                                    color: '#8E8E8E' // è®¾ç½®çº¿æ¡é¢œè‰²ä¸ºç°è‰²
                                }
                            },
                            data: HAverage
                        },
                        {
                            name: '上限值',
                            type: 'line',
                            barWidth: 10,
                            barGap: 0,
                            label: labelOption1,
                            emphasis: {
                                focus: 'series'
                            },
                            itemStyle: {
                                normal: {
                                    lineStyle: {
                                        color: '#FF0000' // è®¾ç½®çº¿æ¡é¢œè‰²ä¸ºçº¢è‰²
                                    },
                                    color: '#FF0000' // è®¾ç½®çº¿æ¡é¢œè‰²ä¸ºçº¢è‰²
                                }
                            },
                            data: HTarget
                        }
                    ]
                };
                option_mychart && myChart.setOption(option_mychart);
                //#endregion
            }
            ////#endregion
            //#endregion
        });
        //#endregion
        //以上是layui模块
        //双击返回基础资料数据    è¡¨å¤´
        function GetHDeptNameValue(obj)  //返回部门
        {
            $("#HDeptName").val(obj[0].部门名称);
            $("#HDeptID").val(obj[0].HItemID);
        }
    </script>
</body>
</html>