yusijie
2024-08-07 5733cca8f0f7692c947230096e820748e75b4796
异常管理台账图形分析报表
5个文件已添加
1个文件已修改
3189 ■■■■■ 已修改文件
WebTM/WebTM.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/生产报表/Sc_ProductionInProgressReport.html 704 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/质量报表/QC_ErrManagerLedgerReport_EquipTop3Issue.html 620 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/质量报表/QC_ErrManagerLedgerReport_Issue.html 620 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/质量报表/QC_ErrManagerLedgerReport_Source.html 620 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/质量管理/质量报表/QC_ErrManagerLedgerReport_SourceOfTheProblem.html 620 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -413,6 +413,7 @@
    <Content Include="views\生产管理\异常反馈单\Sc_MESExecptFeedBackBillType.html" />
    <Content Include="views\生产管理\报工台工序\开工\Sc_SwipeCardStart.html" />
    <Content Include="views\生产管理\生产任务单\Sc_ICMOBillOrProcessExchangeResumeList.html" />
    <Content Include="views\生产管理\生产报表\Sc_ProductionInProgressReport.html" />
    <Content Include="views\生产管理\生产报表\Sc_NutInspectionCCDPassRate.html" />
    <Content Include="views\生产管理\生产报表\Sc_QualityReportBillMonth.html" />
    <Content Include="views\生产管理\生产报表\Sc_QualityReportBillDay.html" />
@@ -449,6 +450,10 @@
    <Content Include="views\质量管理\检验取样还样单\QC_BackSampleCheckBillMainList.html" />
    <Content Include="views\质量管理\检验取样还样单\QC_TakeSampleCheckBillMainList.html" />
    <Content Include="views\质量管理\检验取样还样单\QC_Add_TakeSampleCheckBill.html" />
    <Content Include="views\质量管理\质量报表\QC_ErrManagerLedgerReport_EquipTop3Issue.html" />
    <Content Include="views\质量管理\质量报表\QC_ErrManagerLedgerReport_Issue.html" />
    <Content Include="views\质量管理\质量报表\QC_ErrManagerLedgerReport_SourceOfTheProblem.html" />
    <Content Include="views\质量管理\质量报表\QC_ErrManagerLedgerReport_Source.html" />
    <Content Include="views\质量管理\质量报表\QC_ErrMsgBackBillList.html" />
    <Content Include="views\质量管理\质量报表\QC_BadProductsReport.html" />
    <Content Include="views\质量管理\质量报表\QC_InspectionFormReport.html" />
WebTM/views/Éú²ú¹ÜÀí/Éú²ú±¨±í/Sc_ProductionInProgressReport.html
New file
@@ -0,0 +1,704 @@
<!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">
    <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/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>
</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">
                                        <select name="HInitTimeCycle" id="HInitTimeCycle" class="ForFilteringSchemes" lay-filter="HInitTimeCycle" style="width:190px;">
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">开始日期</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input ForFilteringSchemes" id="HBeginDate" style="width:190px;">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">结束日期</label>
                                    <div class="layui-input-block">
                                        <input type="date" class="layui-input ForFilteringSchemes" id="HEndDate" style="width:190px;">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label">部门</label>
                                    <div class="layui-input-block" style="width: 190px;">
                                        <select name="HDeptName" id="HDeptName" lay-verify="HDeptName">
                                            <!--动态渲染部门-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-row" style="margin-top:5px;margin-left:82px;margin-bottom:5px;">
                                    <div class="layui-inline">
                                        <label class="layui-form-label">规格型号</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="HMaterModel" id="HMaterModel" style="width:215px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">生产资源</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="HSourceName" id="HSourceName" style="width:190px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">问题来源</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="HProSource" id="HProSource" style="width:190px;">
                                        </div>
                                    </div>
                                    <div class="layui-inline">
                                        <label class="layui-form-label">班次</label>
                                        <div class="layui-input-block">
                                            <input type="text" class="layui-input ForFilteringSchemes" name="HShiftsName" id="HShiftsName" style="width:128px;">
                                        </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 class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;margin-left:5%;">
                                    </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">
                                                <select name="ColName" id="ColName" lay-filter="ColName" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator" id="Comparator" lay-filter="Comparator" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
                                                <option value=">">></option>
                                                <option value="<="><=</option>
                                                <option value="<"><</option>
                                                <option value="<>"><></option>
                                                <option value="7">包含</option>
                                                <option value="8">左包含</option>
                                                <option value="9">右包含</option>
                                                <option value="10">不包含</option>
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input" value="" name="ColContent" id="ColContent">
                                        </div>
                                    </div>
                                    <div class="layui-row" style=" margin-top: 10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName1" id="ColName1" class="ForFilteringSchemes" lay-filter="ColName1" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator1" id="Comparator1" class="ForFilteringSchemes" lay-filter="Comparator1" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
                                                <option value=">">></option>
                                                <option value="<="><=</option>
                                                <option value="<"><</option>
                                                <option value="<>"><></option>
                                                <option value="7">包含</option>
                                                <option value="8">左包含</option>
                                                <option value="9">右包含</option>
                                                <option value="10">不包含</option>
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent1" id="ColContent1">
                                        </div>
                                    </div>
                                    <div class="layui-row" style=" margin-top: 10px;">
                                        <div class="layui-inline">
                                            <label class="layui-form-label">过滤</label>
                                            <div class="layui-input-block">
                                                <select name="ColName2" id="ColName2" class="ForFilteringSchemes" lay-filter="ColName2" style="width:190px;">
                                                </select>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <select name="Comparator2" id="Comparator2" class="ForFilteringSchemes" lay-filter="Comparator2" style="width:190px;">
                                                <option value="0" selected="selected"></option>
                                                <option value="=">=</option>
                                                <option value=">=">>=</option>
                                                <option value=">">></option>
                                                <option value="<="><=</option>
                                                <option value="<"><</option>
                                                <option value="<>"><></option>
                                                <option value="7">包含</option>
                                                <option value="8">左包含</option>
                                                <option value="9">右包含</option>
                                                <option value="10">不包含</option>
                                            </select>
                                        </div>
                                        <div class="layui-inline">
                                            <input type="text" class="layui-input ForFilteringSchemes" value="" name="ColContent2" id="ColContent2">
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="layui-tab layui-tab-card">
                            <div class="layui-tab-content">
                                <div class="layui-tab-item layui-show">
                                    <table class="layui-hide" id="mainTable" lay-filter="mainTable"></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_HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                            </div>
                        </script>
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
<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 sWhere = "";
        var option = [];
        var HModName = "Sc_ProductionInProgressReport";
        var titleData = ["HInterID", "HEntryID", "HBadReasonID", "HSourceInterID", "HSourceEntryID"];//子表不需要显示的字段 å¯æ‰©å±•
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
        //初始化表格
        DisPlay_HideColumn();
        //初始化界面
        set_ClearBill();
        //#endregion
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        // å¤´å·¥å…·æ äº‹ä»¶
        table.on('toolbar(mainTable)', function (obj) {
            switch (obj.event) {
                //列设置
                case 'set_HideColumn': get_HideColumn();
                    break;
            };
        });
        //查询按钮
        form.on('submit(btnSearch)', function (data) {
            get_FastQuery();
        });
        //重置
        form.on('submit(btnReSearch)', function (data) {
            set_ClearQuery();
        });
        //日期间隔下拉列表监听
        form.on('select(HInitTimeCycle)', function (data) {
            var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
            //若日期间隔不为 ä»»æ„é—´éš”,则禁用开始日期与结束日期的选择
            if (HInitTimeCycle != -1) {
                $('#HBeginDate').prop('disabled', true);
                $('#HEndDate').prop('disabled', true);
                $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
                $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
                //执行查询方法
                get_FastQuery();
            } else {
                $('#HBeginDate').prop('disabled', false);
                $('#HEndDate').prop('disabled', false);
            }
        });
        //#endregion
        //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
        // åˆå§‹åŒ–界面
        function set_ClearBill() {
            //初始化日期间隔、开始日期、结束日期
            setSelect_HInitTimeCycle();
            //若日期间隔不为 ä»»æ„é—´éš”,则禁用开始日期与结束日期的选择
            var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
            if (HInitTimeCycle != -1) {
                $('#HBeginDate').prop('disabled', true);
                $('#HEndDate').prop('disabled', true);
            } else {
                $('#HBeginDate').prop('disabled', false);
                $('#HEndDate').prop('disabled', false);
            }
            //根据日期间隔设置开始时间与结束时间
            $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd"));
            $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));
            DeptName();
            //查询
            get_FastQuery();
        }
        //生产车间
        function DeptName() {
            //获取车间列
            var HDeptName = '<option value="0" style="color:red;" selected>全部车间</option>';
            $.ajax({
                type: "get",
                url: GetWEBURL() + "/Sc_ICMOBill/GetHDeptList",
                async: false,
                data: { "HOrgID": sessionStorage["OrganizationID"] },
                success: function (result) {
                    if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                        var data = result.data;
                        for (var i = 0; i < data.length; i++) {
                            if (i == 0)
                                HDeptName += '<option  style="color:blue;"  value="' + data[i].HItemID + '" >' + data[i].HName + '</option>';
                            else
                                HDeptName += '<option  style="color:blue;" value="' + data[i].HItemID + '">' + data[i].HName + '</option>';
                        }
                        $("#HDeptName").append(HDeptName);
                        form.render('select');
                    }
                    layer.closeAll("loading");
                }
            })
        }
        function set_InitGrid() {
            option = {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
                , height: 'full-50'
                , page: true
                , totalRow: true
                , limit: 500
                , data:[]
                , limits: [50, 500, 5000, 20000]
                , cols: []
            };
            table.render(option);
        }
        // æŸ¥è¯¢
        function get_Display(sWhere) {
            var ajaxLoad = layer.load();
            $.ajax({
                url: GetWEBURL() + '/QC_CustomerAppealReport/QC_ErrManagerLedgerReport',
                type: "GET",
                async: false,
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                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 });
                        }
                        //在列表左边添加勾选框
                        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 if ($.inArray(data[i].name, totalArray) > -1) { //计算列
                                col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
                            } else if (data[i].name == '单据号') {//添加超链接
                                col.push({
                                    field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200, event: '单据号', templet: function (d) {
                                        return '<span style="color: blue;">' + d.单据号 + '</span>'
                                    }, style: 'cursor: pointer;'
                                });
                            } 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 == "行关闭日期" ? "行关闭人" : data[i].name) + " ==''?'':layui.util.toDateString(d." + data[i].name + ", 'yyyy-MM-dd HH:mm:ss')}}</div>", width: 200 });
                                        break;
                                    default:
                                        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: 'full-50'
                            , page: true
                            , totalRow: true
                            , cellMinWidth: 90
                            , limit: 50
                            , limits: [50, 500, 5000, 20000]
                            , done: function (res, curr, count) {
                                soulTable.render(this);
                            }
                        }
                        table.render(option);
                        //刷新表格数据
                        DisPlay_HideColumn();
                        if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
                            ColFilter();
                        }
                        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 });
                }
            });
        }
        // å¿«é€Ÿè¿‡æ»¤
        function get_FastQuery() {
            var HBeginDate = $("#HBeginDate").val();
            var HEndDate = $("#HEndDate").val();
            var HDeptID = $("#HDeptName").val();
            var HMaterModel = $("#HMaterModel").val();
            var HSourceName = $("#HSourceName").val();
            var HProSource = $("#HProSource").val();
            var HShiftsName = $("#HShiftsName").val();
            var ColName = $("#ColName").val();//复选框
            var Comparator = $("#Comparator").val()
            var ColContent = $("#ColContent").val();
            var ColName1 = $("#ColName1").val();//复选框
            var Comparator1 = $("#Comparator1").val()
            var ColContent1 = $("#ColContent1").val();
            var ColName2 = $("#ColName2").val();//复选框
            var Comparator2 = $("#Comparator2").val()
            var ColContent2 = $("#ColContent2").val();
            if (ColName != 0 && Comparator != 0) {
                var com = "";
                switch (Comparator) {
                    case "7":
                        com = "like''%" + ColContent + "%''";
                        break;
                    case "8":
                        com = "like''%" + ColContent + "''";
                        break;
                    case "9":
                        com = "like''" + ColContent + "%''";
                        break;
                    case "10":
                        com = "not like''%" + ColContent + "%''";
                        break;
                    default:
                        com = "" + Comparator + "''" + ColContent + "''";
                        break;
                }
                sWhere += " and " + ColName + " " + com;
            }
            if (ColName1 != 0 && Comparator1 != 0) {
                var com1 = "";
                switch (Comparator1) {
                    case "7":
                        com1 = "like''%" + ColContent1 + "%''";
                        break;
                    case "8":
                        com1 = "like''%" + ColContent1 + "''";
                        break;
                    case "9":
                        com1 = "like''" + ColContent1 + "%''";
                        break;
                    case "10":
                        com1 = "not like''%" + ColContent1 + "%''";
                        break;
                    default:
                        com1 = "" + Comparator1 + "''" + ColContent1 + "''";
                        break;
                }
                sWhere += " and " + ColName1 + " " + com1;
            }
            if (ColName2 != 0 && Comparator2 != 0) {
                var com2 = "";
                switch (Comparator2) {
                    case "7":
                        com2 = "like''%" + ColContent2 + "%''";
                        break;
                    case "8":
                        com2 = "like''%" + ColContent2 + "''";
                        break;
                    case "9":
                        com2 = "like''" + ColContent2 + "%''";
                        break;
                    case "10":
                        com2 = "not like''%" + ColContent2 + "%''";
                        break;
                    default:
                        com2 = "" + Comparator2 + "''" + ColContent2 + "''";
                        break;
                }
                sWhere += " and " + ColName2 + " " + com2;
            }
            sWhere = {
                HBeginDate: HBeginDate
                , HEndDate: HEndDate
                , HDeptID: HDeptID
                , HMaterModel: HMaterModel
                , HSourceName: HSourceName
                , HProSource: HProSource
                , HShiftsName: HShiftsName
                , HCustomize: sWhere
            }
            set_InitGrid();
            get_Display(JSON.stringify(sWhere));
            sWhere = "";//调用接口后清空sWhere缓存
        }
        function set_ClearQuery() {
            var HInitTimeCycle = $("#HInitTimeCycle").val() * 1;
            $("#HBeginDate").val(Format(new Date(new Date() - 1000 * 60 * 60 * 24 * HInitTimeCycle), "yyyy-MM-dd")); //开始日期
            $("#HEndDate").val(Format(new Date(), "yyyy-MM-dd"));  //结束日期
            $("#HDeptName").val("0");
            $("#HMaterModel").val("");
            $("#HSourceName").val("");
            $("#HProSource").val("");
            $("#HShiftsName").val("");
            $("#ColContent1").val("");
            $("#ColName1").val("0");
            $("#Comparator1").val("0");
            $("#ColContent2").val("");
            $("#ColName2").val("0");
            $("#Comparator2").val("0");
            $("#ColContent").val("");
            $("#ColName").val("0");
            $("#Comparator").val("0");
            form.render('select');
            sWhere = "";
        }
        //隐藏列设置
        function get_HideColumn() {
            var colName = "";
            var contentUrl = "";
            for (var i = 1; i < option.cols[0].length - 1; 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);//关闭弹窗
                }
            })
        }
        //显示列数据
        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 = [];//数据库查询出的列数据
                        dataCol = data1.data[0].HGridString.split(',');
                        for (var i = 0; i < option.cols[0].length - 2; 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 });
                }
            })
        }
        // åˆ—明显示下拉框
        function ColFilter() {
            var Organization = '<option  value="0" selected="selected" ></option>';
            for (var i = 1; i < option.cols[0].length; i++) {
                if (option.cols[0][i].hide != true) {
                    Organization += '<option  style="color:blue;" value="' + option.cols[0][i].field + '">' + option.cols[0][i].field + '</option>';
                }
            }
            $("#ColName").empty();
            $("#ColName").append(Organization);     $("#ColName1").empty();
            $("#ColName1").append(Organization);     $("#ColName2").empty();
            $("#ColName2").append(Organization);
            form.render('select');
        }
        //#region åˆå§‹æ—¥æœŸé—´éš” ä¸‹æ‹‰åˆ—表
        function setSelect_HInitTimeCycle() {
            var valueList = [0, 1, 2, 3, 4, 5, 6, 29];
            var titleList = ["今天", "近两天", "近三天", "近四天", "近五天", "近六天", "近七天", "近30天"];
            var HInitTimeCycle_ArrayList = '<option  value="-1" selected="selected" >任意间隔</option>';
            for (var i = 0; i < valueList.length; i++) {
                HInitTimeCycle_ArrayList += '<option  style="color:blue;" value="' + valueList[i] + '">' + titleList[i] + '</option>';
            }
            $("#HInitTimeCycle").empty();
            $("#HInitTimeCycle").append(HInitTimeCycle_ArrayList);
            form.render('select');
            $("#HInitTimeCycle").val("29");
        }
            //#endregion
        //#endregion
        //以上是layui模块
    });
</script>
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_ErrManagerLedgerReport_EquipTop3Issue.html
New file
@@ -0,0 +1,620 @@
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>设备TOP3问题</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/PubCustom.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">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </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: 85px;">
                                        <select name="HYear" id="HYear" lay-verify="HYear">
                                            <!--动态渲染年份-->
                                        </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; width: 85px;">
                                        <select name="HMonth" id="HMonth" lay-verify="HMonth">
                                            <!--动态渲染月份-->
                                        </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 class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                        <!--其他条件-->
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div>
                            <div style="width:99.5%;height:calc(60vh);margin-top:10px;">
                                <div id="histogram" style="width:60%;height:calc(60vh);float:left">
                                </div>
                                <div id="PieChart" style="width:39%;height:calc(60vh);float:left;margin-left:5px;">
                                </div>
                            </div>
                            <div style="width:99%;height:calc(50vh);">
                                <table class="" id="mainTable" lay-filter="mainTable"></table>
                            </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-exit"><i class="layui-icon layui-icon-return"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="HideColumn"><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'], 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 = "";
            var option = [];
            var HModName = "QC_ErrManagerLedgerReport_EquipTop3Issue";
            var HEquipIssue = []; //设备问题
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region ã€å›¾å½¢ã€‘
            function set_Graphics() {
                //#region ã€æŸ±çŠ¶å›¾ã€‘
                var app = {};
                var chartDom = document.getElementById('histogram');
                var myChart = echarts.init(chartDom);
                var option_ZZT;
                //#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'
                };
                //#endregion
                //柱状图绑定数据
                var HXTitle = [];//X轴标题名称
                var HSourceIssueCount = [];
                var ZZTColor = [];
                var ZZTColor2 = ['#00FFFF', '#FC2C83', '#FCED2C', '#93FC2C', '#FC2CF0', '#FC892C', '#2C81FC', '#2CC9FC', '#2CFCA7', '#DED3F2', '#F2D8D3', '#F2D3E0', '#D8E052', '#7EE052', '#52E0D8', '#5F52E0', '#E06F52', '#52E09B', '#E052DE', '#E05F52', '#52B2E0', '#E0C452', '#52CEE0', '#648690', '#E5D1D6', '#D8E5D1', '#E5D1E5', '#D8E5D1', '#7C6262', '#76627C', '#81A583', '#81A595'];
                for (let i = 0; i < option.data.length; i++) {
                    HXTitle.push(option.data[i].TOP3问题);
                    HSourceIssueCount.push(option.data[i].发生次数);
                    ZZTColor.push({
                        x: 1,
                        y: 0,
                        x2: 0,
                        y2: 0,
                        type: "linear",
                        colorStops: [
                            { offset: 0, color: "red" },
                            { offset: 1, color: "blue" }
                        ]
                    });
                }
                option_ZZT = {
                    title: {
                        text: 'TOP3问题数',
                        left: 'left',
                        textStyle: {
                            color: 'black',
                            fontSize: 18,
                            fontWeight: 'normal'
                        },
                        padding: [5,0,0,65]
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    legend: {
                        data: HEquipIssue
                    },
                    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 }
                        }
                    },
                    xAxis: [
                        {
                            type: 'category',
                            axisTick: { show: true },
                            data: HXTitle
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            name: 'TOP3问题数',
                            type: 'bar',
                            barGap: 0,
                            label: labelOption,
                            emphasis: {
                                focus: 'series'
                            },
                            data: HSourceIssueCount,
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_ZZT && myChart.setOption(option_ZZT);
                //#endregion
                //#region ã€é¥¼å›¾ã€‘
                var chartDom = document.getElementById('PieChart');
                var myChart = echarts.init(chartDom);
                var option_BT;
                var HYear = $("#HYear").val() == "" ? "X" : $("#HYear").val();
                var HMonth = $("#HMonth").val() == "" ? "X" : $("#HMonth").val();
                var option_BT_XData = [];
                for (let i = 0; i < option.data.length; i++) {
                    option_BT_XData.push({ value: option.data[i].占比.replace('%', ''), name: option.data[i].TOP3问题 });
                }
                option_BT = {
                    title: {
                        text: HYear + 'å¹´' + HMonth + '月份设备TOP3问题占比',
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'item'
                    },
                    legend: {
                        top: 'bottom'
                    },
                    series: [
                        {
                            name: '设备TOP3问题占比',
                            type: 'pie',
                            radius: '50%',
                            data: option_BT_XData,
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            },
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_BT && myChart.setOption(option_BT);
            //#endregion
            }
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //退出
                    case 'btn-exit': Pub_Close(2);
                        break;
                    //隐藏列设置
                    case 'HideColumn':
                        get_HideColumn();
                        break;
                };
            });
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            //初始化界面
            function set_ClearBill() {
                Year();
                Month();
                //初始化表格
                set_InitGrid();
                //加载数据到网格
                get_FastQuery();
                //DisPlay_HideColumn();
                set_Graphics();
            }
            //初始化表格
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , height: 'full-320'
                    , page: true
                    , totalRow: true
                    , cellMinWidth: 90
                    , limit: 200
                    , limits: [50, 500, 5000, 20000]
                }
            }
            //å¹´
            function Year() {
                var yyyy = new Date().getFullYear();
                var YearOption = "";
                YearOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 0; i <= 10; i++) {
                    YearOption += '<option  style="color:blue;" value="' + (yyyy - 5 + i) + '">' + (yyyy - 5 + i) + '</option>';
                }
                $("#HYear").append(YearOption);
                $("#HYear").val(yyyy)
                form.render('select');
            }
            //月
            function Month() {
                var mm = new Date().getMonth() + 1;
                var MonthOption = "";
                MonthOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 1; i <= 12; i++) {
                    MonthOption += '<option  style="color:blue;" value="' + (i) + '">' + (i) + '</option>';
                }
                $("#HMonth").append(MonthOption);
                $("#HMonth").val(mm)
                form.render('select');
            }
            //加载网格
            function get_Display(DateYear) {
                var HYear = $("#HYear").val();
                var HMonth = $("#HMonth").val();
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/QC_CustomerAppealReport/QC_ErrManagerLedgerReport_EquipTop3Issue',
                    type: "GET",
                    async: false,
                    data: { "HYear": HYear, "HMonth": HMonth, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        var col = [];
                        if (data1.count == 1) {
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '汇总' });
                            //判断是否是纯英文
                            var patrn = new RegExp("[\u4E00-\u9FA5]+");
                            for (var i = 0; i < data.length; i++) {
                                if (!patrn.test(data[i].name)) {
                                    col.push({ field: data[i].name, title: data[i].name, hide: true }); //隐藏列
                                }
                                else {
                                    switch (data[i].Type) {
                                        case 'DateTime':
                                            col.push({ field: data[i].name, 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: 120 });
                                            break;
                                        case 'long':
                                        case 'Int32':
                                        case 'Int64':
                                        case 'double':
                                        case 'Decimal':
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, totalRow: true });
                                            break;
                                        default:
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true  });
                                    }
                                }
                            }
                            for (var i = 0; i < data1.length; i++) {
                                HEquipIssue.push(data1.data[i].TOP3问题);
                            }
                            option.cols = [col];
                            option.data = data1.data;
                            table.render(option);
                            layer.close(wait);
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //快速过滤
            function get_FastQuery() {
                get_Display(sWhere);
                //调用接口后清空sWhere缓存
                sWhere = "";
                set_Graphics();
            }
            //重置过滤条件
            function set_ClearQuery() {
                var yyyy = new Date().getFullYear();
                $("#HYear").val(yyyy);
                var mm = new Date().getMonth() + 1;
                $("#HMonth").val(mm)
                form.render('select');
                sWhere = "";
                get_FastQuery();
            }
            //隐藏列设置
            function get_HideColumn() {
                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);//关闭弹窗
                    }
                })
            }
            //显示列数据
            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 = [];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置内容字体大小
                                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[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //显示列
                                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
        });
    </script>
</body>
</html>
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_ErrManagerLedgerReport_Issue.html
New file
@@ -0,0 +1,620 @@
<!DOCTYPE html>
<html>
<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/PubCustom.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">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </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: 85px;">
                                        <select name="HYear" id="HYear" lay-verify="HYear">
                                            <!--动态渲染年份-->
                                        </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; width: 85px;">
                                        <select name="HMonth" id="HMonth" lay-verify="HMonth">
                                            <!--动态渲染月份-->
                                        </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 class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                        <!--其他条件-->
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div>
                            <div style="width:99.5%;height:calc(60vh);margin-top:10px;">
                                <div id="histogram" style="width:60%;height:calc(60vh);float:left">
                                </div>
                                <div id="PieChart" style="width:39%;height:calc(60vh);float:left;margin-left:5px;">
                                </div>
                            </div>
                            <div style="width:99%;height:calc(50vh);">
                                <table class="" id="mainTable" lay-filter="mainTable"></table>
                            </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-exit"><i class="layui-icon layui-icon-return"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="HideColumn"><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'], 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 = "";
            var option = [];
            var HModName = "QC_ErrManagerLedgerReport_Issue";
            var HIssueType = []; //问题类型
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region ã€å›¾å½¢ã€‘
            function set_Graphics() {
                //#region ã€æŸ±çŠ¶å›¾ã€‘
                var app = {};
                var chartDom = document.getElementById('histogram');
                var myChart = echarts.init(chartDom);
                var option_ZZT;
                //#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'
                };
                //#endregion
                //柱状图绑定数据
                var HXTitle = [];//X轴标题名称
                var HSourceIssueCount = [];
                var ZZTColor = [];
                var ZZTColor2 = ['#00FFFF', '#FC2C83', '#FCED2C', '#93FC2C', '#FC2CF0', '#FC892C', '#2C81FC', '#2CC9FC', '#2CFCA7', '#DED3F2', '#F2D8D3', '#F2D3E0', '#D8E052', '#7EE052', '#52E0D8', '#5F52E0', '#E06F52', '#52E09B', '#E052DE', '#E05F52', '#52B2E0', '#E0C452', '#52CEE0', '#648690', '#E5D1D6', '#D8E5D1', '#E5D1E5', '#D8E5D1', '#7C6262', '#76627C', '#81A583', '#81A595'];
                for (let i = 0; i < option.data.length; i++) {
                    HXTitle.push(option.data[i].问题);
                    HSourceIssueCount.push(option.data[i].问题发生次数);
                    ZZTColor.push({
                        x: 1,
                        y: 0,
                        x2: 0,
                        y2: 0,
                        type: "linear",
                        colorStops: [
                            { offset: 0, color: "red" },
                            { offset: 1, color: "blue" }
                        ]
                    });
                }
                option_ZZT = {
                    title: {
                        text: '异常类型发生次数',
                        left: 'left',
                        textStyle: {
                            color: 'black',
                            fontSize: 18,
                            fontWeight: 'normal'
                        },
                        padding: [5,0,0,65]
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    legend: {
                        data: HIssueType
                    },
                    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 }
                        }
                    },
                    xAxis: [
                        {
                            type: 'category',
                            axisTick: { show: true },
                            data: HXTitle
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            name: '异常发生次数',
                            type: 'bar',
                            barGap: 0,
                            label: labelOption,
                            emphasis: {
                                focus: 'series'
                            },
                            data: HSourceIssueCount,
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_ZZT && myChart.setOption(option_ZZT);
                //#endregion
                //#region ã€é¥¼å›¾ã€‘
                var chartDom = document.getElementById('PieChart');
                var myChart = echarts.init(chartDom);
                var option_BT;
                var HYear = $("#HYear").val() == "" ? "X" : $("#HYear").val();
                var HMonth = $("#HMonth").val() == "" ? "X" : $("#HMonth").val();
                var option_BT_XData = [];
                for (let i = 0; i < option.data.length; i++) {
                    option_BT_XData.push({ value: option.data[i].占比.replace('%', ''), name: option.data[i].问题 });
                }
                option_BT = {
                    title: {
                        text: HYear + 'å¹´' + HMonth + '月份异常类型比例',
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'item'
                    },
                    legend: {
                        top: 'bottom'
                    },
                    series: [
                        {
                            name: '异常问题发生次数比例',
                            type: 'pie',
                            radius: '50%',
                            data: option_BT_XData,
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            },
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_BT && myChart.setOption(option_BT);
            //#endregion
            }
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //退出
                    case 'btn-exit': Pub_Close(2);
                        break;
                    //隐藏列设置
                    case 'HideColumn':
                        get_HideColumn();
                        break;
                };
            });
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            //初始化界面
            function set_ClearBill() {
                Year();
                Month();
                //初始化表格
                set_InitGrid();
                //加载数据到网格
                get_FastQuery();
                //DisPlay_HideColumn();
                set_Graphics();
            }
            //初始化表格
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , height: 'full-320'
                    , page: true
                    , totalRow: true
                    , cellMinWidth: 90
                    , limit: 200
                    , limits: [50, 500, 5000, 20000]
                }
            }
            //å¹´
            function Year() {
                var yyyy = new Date().getFullYear();
                var YearOption = "";
                YearOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 0; i <= 10; i++) {
                    YearOption += '<option  style="color:blue;" value="' + (yyyy - 5 + i) + '">' + (yyyy - 5 + i) + '</option>';
                }
                $("#HYear").append(YearOption);
                $("#HYear").val(yyyy)
                form.render('select');
            }
            //月
            function Month() {
                var mm = new Date().getMonth() + 1;
                var MonthOption = "";
                MonthOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 1; i <= 12; i++) {
                    MonthOption += '<option  style="color:blue;" value="' + (i) + '">' + (i) + '</option>';
                }
                $("#HMonth").append(MonthOption);
                $("#HMonth").val(mm)
                form.render('select');
            }
            //加载网格
            function get_Display(DateYear) {
                var HYear = $("#HYear").val();
                var HMonth = $("#HMonth").val();
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/QC_CustomerAppealReport/QC_ErrManagerLedgerReport_Issue',
                    type: "GET",
                    async: false,
                    data: { "HYear": HYear, "HMonth": HMonth, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        var col = [];
                        if (data1.count == 1) {
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '汇总' });
                            //判断是否是纯英文
                            var patrn = new RegExp("[\u4E00-\u9FA5]+");
                            for (var i = 0; i < data.length; i++) {
                                if (!patrn.test(data[i].name)) {
                                    col.push({ field: data[i].name, title: data[i].name, hide: true }); //隐藏列
                                }
                                else {
                                    switch (data[i].Type) {
                                        case 'DateTime':
                                            col.push({ field: data[i].name, 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: 120 });
                                            break;
                                        case 'long':
                                        case 'Int32':
                                        case 'Int64':
                                        case 'double':
                                        case 'Decimal':
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, totalRow: true });
                                            break;
                                        default:
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true  });
                                    }
                                }
                            }
                            for (var i = 0; i < data1.length; i++) {
                                HIssueType.push(data1.data[i].问题);
                            }
                            option.cols = [col];
                            option.data = data1.data;
                            table.render(option);
                            layer.close(wait);
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //快速过滤
            function get_FastQuery() {
                get_Display(sWhere);
                //调用接口后清空sWhere缓存
                sWhere = "";
                set_Graphics();
            }
            //重置过滤条件
            function set_ClearQuery() {
                var yyyy = new Date().getFullYear();
                $("#HYear").val(yyyy);
                var mm = new Date().getMonth() + 1;
                $("#HMonth").val(mm)
                form.render('select');
                sWhere = "";
                get_FastQuery();
            }
            //隐藏列设置
            function get_HideColumn() {
                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);//关闭弹窗
                    }
                })
            }
            //显示列数据
            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 = [];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置内容字体大小
                                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[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //显示列
                                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
        });
    </script>
</body>
</html>
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_ErrManagerLedgerReport_Source.html
New file
@@ -0,0 +1,620 @@
<!DOCTYPE html>
<html>
<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/PubCustom.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">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </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: 85px;">
                                        <select name="HYear" id="HYear" lay-verify="HYear">
                                            <!--动态渲染年份-->
                                        </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; width: 85px;">
                                        <select name="HMonth" id="HMonth" lay-verify="HMonth">
                                            <!--动态渲染月份-->
                                        </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 class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                        <!--其他条件-->
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div>
                            <div style="width:99.5%;height:calc(60vh);margin-top:10px;">
                                <div id="histogram" style="width:60%;height:calc(60vh);float:left">
                                </div>
                                <div id="PieChart" style="width:39%;height:calc(60vh);float:left;margin-left:5px;">
                                </div>
                            </div>
                            <div style="width:99%;height:calc(50vh);">
                                <table class="" id="mainTable" lay-filter="mainTable"></table>
                            </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-exit"><i class="layui-icon layui-icon-return"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="HideColumn"><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'], 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 = "";
            var option = [];
            var HModName = "QC_ErrManagerLedgerReport_Source";
            var HSourceName = []; //生产资源名称
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region ã€å›¾å½¢ã€‘
            function set_Graphics() {
                //#region ã€æŸ±çŠ¶å›¾ã€‘
                var app = {};
                var chartDom = document.getElementById('histogram');
                var myChart = echarts.init(chartDom);
                var option_ZZT;
                //#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'
                };
                //#endregion
                //柱状图绑定数据
                var HXTitle = [];//X轴标题名称
                var HSourceIssueCount = [];
                var ZZTColor = [];
                var ZZTColor2 = ['#00FFFF', '#FC2C83', '#FCED2C', '#93FC2C', '#FC2CF0', '#FC892C', '#2C81FC', '#2CC9FC', '#2CFCA7', '#DED3F2', '#F2D8D3', '#F2D3E0', '#D8E052', '#7EE052', '#52E0D8', '#5F52E0', '#E06F52', '#52E09B', '#E052DE', '#E05F52', '#52B2E0', '#E0C452', '#52CEE0', '#648690', '#E5D1D6', '#D8E5D1', '#E5D1E5', '#D8E5D1', '#7C6262', '#76627C', '#81A583', '#81A595'];
                for (let i = 0; i < option.data.length; i++) {
                    HXTitle.push(option.data[i].线名);
                    HSourceIssueCount.push(option.data[i].线别问题次数);
                    ZZTColor.push({
                        x: 1,
                        y: 0,
                        x2: 0,
                        y2: 0,
                        type: "linear",
                        colorStops: [
                            { offset: 0, color: "red" },
                            { offset: 1, color: "blue" }
                        ]
                    });
                }
                option_ZZT = {
                    title: {
                        text: '线别问题次数',
                        left: 'left',
                        textStyle: {
                            color: 'black',
                            fontSize: 18,
                            fontWeight: 'normal'
                        },
                        padding: [5,0,0,65]
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    legend: {
                        data: HSourceName
                    },
                    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 }
                        }
                    },
                    xAxis: [
                        {
                            type: 'category',
                            axisTick: { show: true },
                            data: HXTitle
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            name: '线别问题次数',
                            type: 'bar',
                            barGap: 0,
                            label: labelOption,
                            emphasis: {
                                focus: 'series'
                            },
                            data: HSourceIssueCount,
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_ZZT && myChart.setOption(option_ZZT);
                //#endregion
                //#region ã€é¥¼å›¾ã€‘
                var chartDom = document.getElementById('PieChart');
                var myChart = echarts.init(chartDom);
                var option_BT;
                var HYear = $("#HYear").val() == "" ? "X" : $("#HYear").val();
                var HMonth = $("#HMonth").val() == "" ? "X" : $("#HMonth").val();
                var option_BT_XData = [];
                for (let i = 0; i < option.data.length; i++) {
                    option_BT_XData.push({ value: option.data[i].占比.replace('%',''), name: option.data[i].线名 });
                }
                option_BT = {
                    title: {
                        text: HYear + 'å¹´' + HMonth + '月份线别问题比例',
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'item'
                    },
                    legend: {
                        top: 'bottom'
                    },
                    series: [
                        {
                            name: '线别问题次数比例',
                            type: 'pie',
                            radius: '50%',
                            data: option_BT_XData,
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            },
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_BT && myChart.setOption(option_BT);
            //#endregion
            }
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //退出
                    case 'btn-exit': Pub_Close(2);
                        break;
                    //隐藏列设置
                    case 'HideColumn':
                        get_HideColumn();
                        break;
                };
            });
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            //初始化界面
            function set_ClearBill() {
                Year();
                Month();
                //初始化表格
                set_InitGrid();
                //加载数据到网格
                get_FastQuery();
                //DisPlay_HideColumn();
                set_Graphics();
            }
            //初始化表格
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , height: 'full-320'
                    , page: true
                    , totalRow: true
                    , cellMinWidth: 90
                    , limit: 200
                    , limits: [50, 500, 5000, 20000]
                }
            }
            //å¹´
            function Year() {
                var yyyy = new Date().getFullYear();
                var YearOption = "";
                YearOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 0; i <= 10; i++) {
                    YearOption += '<option  style="color:blue;" value="' + (yyyy - 5 + i) + '">' + (yyyy - 5 + i) + '</option>';
                }
                $("#HYear").append(YearOption);
                $("#HYear").val(yyyy)
                form.render('select');
            }
            //月
            function Month() {
                var mm = new Date().getMonth() + 1;
                var MonthOption = "";
                MonthOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 1; i <= 12; i++) {
                    MonthOption += '<option  style="color:blue;" value="' + (i) + '">' + (i) + '</option>';
                }
                $("#HMonth").append(MonthOption);
                $("#HMonth").val(mm)
                form.render('select');
            }
            //加载网格
            function get_Display(DateYear) {
                var HYear = $("#HYear").val();
                var HMonth = $("#HMonth").val();
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/QC_CustomerAppealReport/QC_ErrManagerLedgerReport_Source',
                    type: "GET",
                    async: false,
                    data: { "HYear": HYear, "HMonth": HMonth, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        var col = [];
                        if (data1.count == 1) {
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '汇总' });
                            //判断是否是纯英文
                            var patrn = new RegExp("[\u4E00-\u9FA5]+");
                            for (var i = 0; i < data.length; i++) {
                                if (!patrn.test(data[i].name)) {
                                    col.push({ field: data[i].name, title: data[i].name, hide: true }); //隐藏列
                                }
                                else {
                                    switch (data[i].Type) {
                                        case 'DateTime':
                                            col.push({ field: data[i].name, 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: 120 });
                                            break;
                                        case 'long':
                                        case 'Int32':
                                        case 'Int64':
                                        case 'double':
                                        case 'Decimal':
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, totalRow: true });
                                            break;
                                        default:
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true  });
                                    }
                                }
                            }
                            for (var i = 0; i < data1.length; i++) {
                                HSourceName.push(data1.data[i].线名);
                            }
                            option.cols = [col];
                            option.data = data1.data;
                            table.render(option);
                            layer.close(wait);
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //快速过滤
            function get_FastQuery() {
                get_Display(sWhere);
                //调用接口后清空sWhere缓存
                sWhere = "";
                set_Graphics();
            }
            //重置过滤条件
            function set_ClearQuery() {
                var yyyy = new Date().getFullYear();
                $("#HYear").val(yyyy);
                var mm = new Date().getMonth() + 1;
                $("#HMonth").val(mm)
                form.render('select');
                sWhere = "";
                get_FastQuery();
            }
            //隐藏列设置
            function get_HideColumn() {
                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);//关闭弹窗
                    }
                })
            }
            //显示列数据
            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 = [];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置内容字体大小
                                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[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //显示列
                                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
        });
    </script>
</body>
</html>
WebTM/views/ÖÊÁ¿¹ÜÀí/ÖÊÁ¿±¨±í/QC_ErrManagerLedgerReport_SourceOfTheProblem.html
New file
@@ -0,0 +1,620 @@
<!DOCTYPE html>
<html>
<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/PubCustom.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">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </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: 85px;">
                                        <select name="HYear" id="HYear" lay-verify="HYear">
                                            <!--动态渲染年份-->
                                        </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; width: 85px;">
                                        <select name="HMonth" id="HMonth" lay-verify="HMonth">
                                            <!--动态渲染月份-->
                                        </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 class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
                                    <div class="layui-row" style="margin-top:10px;">
                                        <!--其他条件-->
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div>
                            <div style="width:99.5%;height:calc(60vh);margin-top:10px;">
                                <div id="histogram" style="width:60%;height:calc(60vh);float:left">
                                </div>
                                <div id="PieChart" style="width:39%;height:calc(60vh);float:left;margin-left:5px;">
                                </div>
                            </div>
                            <div style="width:99%;height:calc(50vh);">
                                <table class="" id="mainTable" lay-filter="mainTable"></table>
                            </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-exit"><i class="layui-icon layui-icon-return"></i>退出</button>
                                <button type="button" class="layui-btn layui-btn-sm" lay-event="HideColumn"><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'], 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 = "";
            var option = [];
            var HModName = "QC_ErrManagerLedgerReport_SourceOfTheProblem";
            var HSourceOfTheProblem = []; //异常问题来源
            //#endregion
            //#region è¿›å…¥é¡µé¢æ—¢åŠ è½½
            //初始化界面
            set_ClearBill();
            //#endregion
            //#region ã€å›¾å½¢ã€‘
            function set_Graphics() {
                //#region ã€æŸ±çŠ¶å›¾ã€‘
                var app = {};
                var chartDom = document.getElementById('histogram');
                var myChart = echarts.init(chartDom);
                var option_ZZT;
                //#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'
                };
                //#endregion
                //柱状图绑定数据
                var HXTitle = [];//X轴标题名称
                var HSourceIssueCount = [];
                var ZZTColor = [];
                var ZZTColor2 = ['#00FFFF', '#FC2C83', '#FCED2C', '#93FC2C', '#FC2CF0', '#FC892C', '#2C81FC', '#2CC9FC', '#2CFCA7', '#DED3F2', '#F2D8D3', '#F2D3E0', '#D8E052', '#7EE052', '#52E0D8', '#5F52E0', '#E06F52', '#52E09B', '#E052DE', '#E05F52', '#52B2E0', '#E0C452', '#52CEE0', '#648690', '#E5D1D6', '#D8E5D1', '#E5D1E5', '#D8E5D1', '#7C6262', '#76627C', '#81A583', '#81A595'];
                for (let i = 0; i < option.data.length; i++) {
                    HXTitle.push(option.data[i].问题来源);
                    HSourceIssueCount.push(option.data[i].异常次数);
                    ZZTColor.push({
                        x: 1,
                        y: 0,
                        x2: 0,
                        y2: 0,
                        type: "linear",
                        colorStops: [
                            { offset: 0, color: "red" },
                            { offset: 1, color: "blue" }
                        ]
                    });
                }
                option_ZZT = {
                    title: {
                        text: '问题数',
                        left: 'left',
                        textStyle: {
                            color: 'black',
                            fontSize: 18,
                            fontWeight: 'normal'
                        },
                        padding: [5,0,0,65]
                    },
                    tooltip: {
                        trigger: 'axis',
                        axisPointer: {
                            type: 'shadow'
                        }
                    },
                    legend: {
                        data: HSourceOfTheProblem
                    },
                    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 }
                        }
                    },
                    xAxis: [
                        {
                            type: 'category',
                            axisTick: { show: true },
                            data: HXTitle
                        }
                    ],
                    yAxis: [
                        {
                            type: 'value'
                        }
                    ],
                    series: [
                        {
                            name: '问题数',
                            type: 'bar',
                            barGap: 0,
                            label: labelOption,
                            emphasis: {
                                focus: 'series'
                            },
                            data: HSourceIssueCount,
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_ZZT && myChart.setOption(option_ZZT);
                //#endregion
                //#region ã€é¥¼å›¾ã€‘
                var chartDom = document.getElementById('PieChart');
                var myChart = echarts.init(chartDom);
                var option_BT;
                var HYear = $("#HYear").val() == "" ? "X" : $("#HYear").val();
                var HMonth = $("#HMonth").val() == "" ? "X" : $("#HMonth").val();
                var option_BT_XData = [];
                for (let i = 0; i < option.data.length; i++) {
                    option_BT_XData.push({ value: option.data[i].占比.replace('%', ''), name: option.data[i].问题来源 });
                }
                option_BT = {
                    title: {
                        text: HYear + 'å¹´' + HMonth + '月份异常问题来源比例',
                        left: 'center'
                    },
                    tooltip: {
                        trigger: 'item'
                    },
                    legend: {
                        top: 'bottom'
                    },
                    series: [
                        {
                            name: '异常问题来源比例',
                            type: 'pie',
                            radius: '50%',
                            data: option_BT_XData,
                            emphasis: {
                                itemStyle: {
                                    shadowBlur: 10,
                                    shadowOffsetX: 0,
                                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                                }
                            },
                            itemStyle: {
                                color: function (params) {
                                    // åŠ¨æ€ç”Ÿæˆæ¸å˜è‰²æˆ–è€…æ ¹æ®æ¡ä»¶è¿”å›žé¢„è®¾çš„æ¸å˜è‰²
                                    const gradientColors = ZZTColor2;
                                    return gradientColors[params.dataIndex];
                                }
                            }
                        }
                    ]
                };
                option_BT && myChart.setOption(option_BT);
            //#endregion
            }
            //#region ç‚¹å‡»äº‹ä»¶åŒ…括on form事件等
            //头工具栏事件
            table.on('toolbar(mainTable)', function (obj) {
                switch (obj.event) {
                    //退出
                    case 'btn-exit': Pub_Close(2);
                        break;
                    //隐藏列设置
                    case 'HideColumn':
                        get_HideColumn();
                        break;
                };
            });
            //重置按钮
            form.on('submit(btnReSearch)', function (data) {
                set_ClearQuery();
            });
            //查询按钮
            form.on('submit(btnSearch)', function (data) {
                get_FastQuery();
            });
            //#endregion
            //#region æ­¤é¡µé¢æ‰€æœ‰çš„æ–¹æ³•
            //初始化界面
            function set_ClearBill() {
                Year();
                Month();
                //初始化表格
                set_InitGrid();
                //加载数据到网格
                get_FastQuery();
                //DisPlay_HideColumn();
                set_Graphics();
            }
            //初始化表格
            function set_InitGrid() {
                option = {
                    elem: '#mainTable'
                    , toolbar: '#toolbarDemo'
                    , height: 'full-320'
                    , page: true
                    , totalRow: true
                    , cellMinWidth: 90
                    , limit: 200
                    , limits: [50, 500, 5000, 20000]
                }
            }
            //å¹´
            function Year() {
                var yyyy = new Date().getFullYear();
                var YearOption = "";
                YearOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 0; i <= 10; i++) {
                    YearOption += '<option  style="color:blue;" value="' + (yyyy - 5 + i) + '">' + (yyyy - 5 + i) + '</option>';
                }
                $("#HYear").append(YearOption);
                $("#HYear").val(yyyy)
                form.render('select');
            }
            //月
            function Month() {
                var mm = new Date().getMonth() + 1;
                var MonthOption = "";
                MonthOption += '<option  style="color:blue;" value="">' + "请选择" + '</option>';
                for (var i = 1; i <= 12; i++) {
                    MonthOption += '<option  style="color:blue;" value="' + (i) + '">' + (i) + '</option>';
                }
                $("#HMonth").append(MonthOption);
                $("#HMonth").val(mm)
                form.render('select');
            }
            //加载网格
            function get_Display(DateYear) {
                var HYear = $("#HYear").val();
                var HMonth = $("#HMonth").val();
                var wait = layer.load();//遮罩
                $.ajax({
                    url: GetWEBURL() + '/QC_CustomerAppealReport/QC_ErrManagerLedgerReport_SourceOfTheProblem',
                    type: "GET",
                    async: false,
                    data: { "HYear": HYear, "HMonth": HMonth, "user": sessionStorage["HUserName"] },
                    success: function (data1) {
                        var col = [];
                        if (data1.count == 1) {
                            var data = [];
                            //给空的数组赋值
                            for (var key in data1.list) {
                                data.push({ "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });
                            }
                            col.push({ type: 'checkbox', fixed: 'left', totalRowText: '汇总' });
                            //判断是否是纯英文
                            var patrn = new RegExp("[\u4E00-\u9FA5]+");
                            for (var i = 0; i < data.length; i++) {
                                if (!patrn.test(data[i].name)) {
                                    col.push({ field: data[i].name, title: data[i].name, hide: true }); //隐藏列
                                }
                                else {
                                    switch (data[i].Type) {
                                        case 'DateTime':
                                            col.push({ field: data[i].name, 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: 120 });
                                            break;
                                        case 'long':
                                        case 'Int32':
                                        case 'Int64':
                                        case 'double':
                                        case 'Decimal':
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true, totalRow: true });
                                            break;
                                        default:
                                            col.push({ field: data[i].name, title: data[i].name, align: 'center', sort: true  });
                                    }
                                }
                            }
                            for (var i = 0; i < data1.length; i++) {
                                HSourceOfTheProblem.push(data1.data[i].问题来源);
                            }
                            option.cols = [col];
                            option.data = data1.data;
                            table.render(option);
                            layer.close(wait);
                        } else {
                            layer.close(wait);
                            layer.alert(data1.Message, { icon: 5 });
                        }
                    }, error: function () {
                        layer.close(wait);
                        layer.alert("接口请求失败!", { icon: 5 });
                    }
                });
            }
            //快速过滤
            function get_FastQuery() {
                get_Display(sWhere);
                //调用接口后清空sWhere缓存
                sWhere = "";
                set_Graphics();
            }
            //重置过滤条件
            function set_ClearQuery() {
                var yyyy = new Date().getFullYear();
                $("#HYear").val(yyyy);
                var mm = new Date().getMonth() + 1;
                $("#HMonth").val(mm)
                form.render('select');
                sWhere = "";
                get_FastQuery();
            }
            //隐藏列设置
            function get_HideColumn() {
                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);//关闭弹窗
                    }
                })
            }
            //显示列数据
            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 = [];//不需要显示的字段 å¯æ‰©å±•
                            dataCol = data1.data[0].HGridString.split(',');
                            for (var i = 0; i < option.cols[0].length - 2; i++) {
                                var dataCols = dataCol[i].split('|');
                                //隐藏列
                                if (dataCols[1] == 1) {
                                    option.cols[0][i + 1]["hide"] = true;
                                }
                                //设置内容字体大小
                                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[3] > 0) {
                                    option.cols[0][i + 1]["width"] = dataCols[3];
                                }
                                //显示列
                                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
        });
    </script>
</body>
</html>