WebTM/views/indexMenu.html
@@ -10,8 +10,15 @@
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
    <link rel="stylesheet" href="../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../layuiadmin/style/admin.css" media="all">
    <script src="../layuiadmin/Scripts/jquery-3.5.1.min.js"></script>
    <script language="JavaScript">//屏蔽后退按钮
    <!--<script src="../layuiadmin/Scripts/jquery-3.5.1.min.js"></script>-->
    <script src="../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../layuiadmin/layui/layui.js"></script>
    <script src="../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../layuiadmin/PubCustom.js"></script>
    <script src="../layuiadmin/Scripts/json2.js"></script>
    <script language="JavaScript">
        //屏蔽后退按钮
        history.pushState(null, null, document.URL);
        window.addEventListener('popstate', function () {
            history.pushState(null, null, document.URL);
@@ -20,7 +27,21 @@
    <script>
        /^http(s*):\/\//.test(location.href) || alert('请先部署到 localhost 下再访问');
    </script>
    <style>
        /* 选项基础样式 */
        .aa {
            padding: 0 20px;
            line-height: 36px;
            cursor: pointer;
            transition: all 0.3s;
            color: #000 !important; /* 强制黑色字体 */
        }
            /* 悬停状态 */
            .aa:hover {
                background-color: #f8f8f8 !important;
                color: #000 !important;
            }
    </style>
</head>
<body class="layui-layout-body">
@@ -45,7 +66,18 @@
                        </a>
                    </li>
                    <li class="layui-nav-item layui-hide-xs" lay-unselect>
                        <input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search" layadmin-event="serach" lay-action="https://www.baidu.com/s?ie=UTF-8&wd=">
                        <!--<input type="text" placeholder="搜索..." autocomplete="off" class="layui-input layui-input-search" layadmin-event="serach" lay-action="https://www.baidu.com/s?ie=UTF-8&wd=">-->
                        <div class="layui-form" style="margin-top: 5px; color: black;">
                            <!--<select name="HModePage" id="HModePage" lay-filter="HModePage" lay-search>
    </select>-->
                            <input type="text" class="layui-input" name="HModePage" lay-verify="HModePage" id="HModePage" placeholder="搜索..." autocomplete="off">
                            <!-- 下拉容器 -->
                            <div id="dropdownMenu1" class="layui-anim layui-anim-upbit"
                                 style="display: none;position: absolute;width: 100%;max-height: 200px;overflow-y: auto;border: 1px solid #e6e6e6;background: #f8f8f8;z-index: 999;top: 40px;left: 0;">
                                <ul id="optionList1" class="layui-nav layui-nav-tree" style="width: 100%; background:white"></ul>
                            </div>
                        </div>
                    </li>
                    <li class="layui-nav-item" lay-unselect style="color: black;">
                        <span>登录组织:</span>
@@ -168,10 +200,6 @@
        </div>
    </div>
    <script src="../layuiadmin/layui/layui.js"></script>
    <script src="../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../layuiadmin/PubCustom.js"></script>
    <script>
        // 导航菜单的间隔像素
        var menuCell = 5;
@@ -181,10 +209,12 @@
        }).extend({
            index: 'lib/index' //主入口模块
        }).use(['index', 'form', 'laydate', 'table', 'element'], function () {
            var $ = layui.$;
            var $ = layui.$
                , form = layui.form;
            var element = layui.element;
            var $ = layui.jquery;
            //所有模块的集合
            var PageModelList = [];
            var HType = "PC";   //登录平台:PC端、手机端
            //判断是否登录 未登录则跳到登录页
            //if (sessionStorage.login != "login") {
@@ -198,10 +228,103 @@
            set_sideMenuDisPlay();
            //#endregion
            ModePage();
            //菜单栏命名
            setMenuLabel();
            //#region 损坏情况 点击事件
            // 分离焦点事件和输入事件
            $('#HModePage').on('focus', function () {  // 焦点事件:显示全部选项
                renderOptions1('');
                $('#dropdownMenu1').show();
            }).on('input', function () {  // 输入事件:过滤选项
                var inputVal = $(this).val().trim();
                renderOptions1(inputVal);
                $('#dropdownMenu1').show();
            });
            // 文档点击关闭下拉
            $(document).on('click', function (e) {
                if (!$(e.target).closest('#HModePage, #dropdownMenu1').length) {
                    $('#dropdownMenu1').hide();
                }
            });
            // 渲染选项(支持显示全部)
            function renderOptions1(filterText) {
                var LimitData = [];
                if (filterText == "") {
                    for (var i = 0; i < 10; i++) {
                        LimitData.push(PageModelList[i])
                    }
                }
                var filteredData = filterText ?
                    PageModelList.filter(function (item) {
                        return item.HName.toLowerCase().includes(filterText.toLowerCase());
                    }) :
                    LimitData;  // 无过滤文本时显示全部
                var DataMdel = [];
                for (var i = 0; i < 10; i++) {
                    if (i < filteredData.length && filteredData.length != 0) {
                        DataMdel.push(filteredData[i]);
                    }
                }
                var html = '';
                if (DataMdel.length > 0) {
                    DataMdel.forEach(function (item) {
                        html += `<li class="layui-nav-item aa" data-value="${item.Hurl}">${item.HName}</li>`;
                    });
                } else {
                    html = '<li class="layui-nav-item aa">无匹配结果(可自由输入)</li>';
                }
                $('#optionList1').html(html);
            }
            // 选项点击事件
            $('#optionList1').on('click', 'li', function (data) {
                if (!$(this).text().includes('无匹配结果')) {
                    var selectedText = $(this).text();
                    $('#HModePage').val(selectedText).trigger('input');
                    var value = data.target.dataset.value
                    if (selectedText != "") {
                        layui.index.openTabsPage(value, selectedText);
                    }
                }
                $('#dropdownMenu1').hide();
            });
            //#endregion
            form.on('select(HModePage)', function (data) {
                var keyword = data.elem[data.elem.selectedIndex].text;
                if (data.value != "") {
                    layui.index.openTabsPage(data.value, keyword);
                }
            });
            //#region 页面其它方法
            //获取模块页面
            function ModePage() {
                $.ajax({
                    type: "get",
                    url: GetWEBURL() + "/Web/ModePageList",
                    success: function (result) {
                        if (result.count == 1) { // 说明验证成功了,
                            var data = result.data.Gy_Menu;
                            PageModelList = data;
                        }
                        layer.closeAll("loading");
                    }
                })
            }
            //显示侧边菜单
            function set_sideMenuDisPlay() {
                //判断用户是移动端还是PC端