自带功能如果加载页面就是当前页面,则没有任何反映,其实后台是有数据加载的过程的,不过没有提现出来,现在我们就把这个微小的过程体现出来
设置登录完成跳转到自己的控制器,自己的控制器自行实现页面的处理, 页面处理参考 default/index
vendor\jinxing\yii2-admin\src\views\default\index.php

做如下修改(加粗):
function addIframe(strId, strUrl, strTitle) {
        strId = "iframe-" + strId;
        $divContent.find("iframe.active").removeClass("active").addClass("hide");
        $windowDiv.find("div.active").removeClass("active");
        if ($divContent.find("#" + strId).size() > 0) {
            $divContent.find("#" + strId).addClass("active").removeClass("hide");
            $windowDiv.find("div[data-id=" + strId + "]").addClass("active");
            // 重新刷新界面,加载
            var objActive = $("#page-content iframe.active").get(0);
            if (objActive) {                
                var strIframe ='<div class="widget-box-overlay jd" style="background-color: rgba(0,0,0,0);">' +
                '<i class="' + ace.vars['icon'] +
                'loading-icon fa fa-spinner fa-spin fa-2x orange bigger-290"></i></div>';
                $divContent.append(strIframe);

                objActive.contentWindow.m.search();
                // setTimeout(() => {$('.jd').remove();}, 100);
            }

这个操作只是让每次点击后出现加载中的图标,如何在m.search();结束后隐藏呢?

第一种做法,加个延时:setTimeout(() => {$('.jd').remove();}, 100);

这种做法不完美

第二种做法:在m.init之前设置m.options.table.drawCallback一劳永逸,注意这些代码是放在公共js文件中的,不需要每个加载metables页面修改


        m.options.table.drawCallback = function () {
            $('.jd',parent.document).remove();
          }
        m.init();


完美解决!