瀏覽代碼

[更新]修改后台管理控制JS

Anyon 7 年之前
父節點
當前提交
a21ca2337c
共有 1 個文件被更改,包括 137 次插入138 次删除
  1. 137 138
      static/admin.js

+ 137 - 138
static/admin.js

@@ -117,7 +117,7 @@ $(function () {
         this.errMsg = '{status}服务器繁忙,请稍候再试!';
         // 内容区域动态加载后初始化
         this.reInit = function ($container) {
-            $.validate.listen.call(this), JPlaceHolder.init();
+            $.vali.listen(this), JPlaceHolder.init();
             $container.find('[required]').parent().prevAll('label').addClass('label-required');
         };
         // 在内容区显示视图
@@ -214,53 +214,101 @@ $(function () {
         };
     };
 
-    // 上传单个图片
-    $.fn.uploadOneImage = function () {
-        var name = $(this).attr('name') || 'image';
-        var type = $(this).data('type') || 'png,jpg';
-        var $tpl = $('<a data-file="one" data-field="' + name + '" data-type="' + type + '" class="uploadimage"></a>');
-        $(this).hide().attr('name', name).after($tpl).on('change', function () {
-            $tpl.get(0).style = this.value ? 'background-image:url(' + this.value + ')' : '';
-        }).trigger('change');
-    };
-
-    // 上传多个图片
-    $.fn.uploadMultipleImage = function () {
-        var type = $(this).data('type') || 'png,jpg';
-        var name = $(this).attr('name') || 'umt-image';
-        var $tpl = $('<a data-file="mut" data-field="' + name + '" data-type="' + type + '" class="uploadimage"></a>');
-        $(this).hide().attr('name', name).after($tpl).on('change', function () {
-            var input = this, values = [], srcs = this.value.split('|');
-            $(this).prevAll('.uploadimage').map(function () {
-                values.push($(this).attr('data-tips-image'));
-            }), $(this).prevAll('.uploadimage').remove(), values.reverse();
-            for (var i in srcs) {
-                srcs[i] && values.push(srcs[i]);
+    /*! 后台菜单辅助插件 */
+    $.menu = new function () {
+        // 计算URL地址中有效的URI
+        this.getUri = function (uri) {
+            uri = uri || window.location.href;
+            uri = (uri.indexOf(window.location.host) > -1 ? uri.split(window.location.host)[1] : uri).split('?')[0];
+            return (uri.indexOf('#') !== -1 ? uri.split('#')[1] : uri);
+        };
+        // 通过URI查询最有可能的菜单NODE
+        this.queryNode = function (url) {
+            var node = location.href.replace(/.*spm=([\d\-m]+).*/ig, '$1');
+            if (!/^m\-/.test(node)) {
+                var $menu = $('[data-menu-node][data-open*="' + url.replace(/\.html$/ig, '') + '"]');
+                return $menu.size() ? $menu.get(0).getAttribute('data-menu-node') : '';
             }
-            this.value = values.join('|');
-            for (var i in values) {
-                var tpl = '<div class="uploadimage uploadimagemtl"><a class="layui-icon">&#x1006;</a></div>';
-                var $tpl = $(tpl).attr('data-tips-image', values[i]).css('backgroundImage', 'url(' + values[i] + ')');
-                $tpl.data('input', input).data('srcs', values).data('index', i);
-                $tpl.on('click', 'a', function (e) {
-                    e.stopPropagation();
-                    var $cur = $(this).parent();
-                    var dialogIndex = $.msg.confirm('确定要移除这张图片吗?', function () {
-                        var data = $cur.data('srcs'), tmp = [];
-                        for (var i in data) {
-                            i !== $cur.data('index') && tmp.push(data[i]);
+            return node;
+        };
+        // URL转URI
+        this.parseUri = function (uri, obj) {
+            var params = {};
+            if (uri.indexOf('?') > -1) {
+                var serach = uri.split('?')[1].split('&');
+                for (var i in serach) {
+                    if (serach[i].indexOf('=') > -1) {
+                        var arr = serach[i].split('=');
+                        try {
+                            params[arr[0]] = window.decodeURIComponent(window.decodeURIComponent(arr[1].replace(/%2B/ig, ' ')));
+                        } catch (e) {
+                            console.log([e, uri, serach, arr]);
                         }
-                        $cur.data('input').value = tmp.join('|');
-                        $cur.remove(), $.msg.close(dialogIndex);
-                    });
-                });
-                $(this).before($tpl);
+                    }
+                }
             }
-        }).trigger('change');
+            uri = this.getUri(uri);
+            params.spm = obj && obj.getAttribute('data-menu-node') || this.queryNode(uri);
+            delete params[""];
+            var query = '?' + $.param(params);
+            return uri + (query !== '?' ? query : '');
+        };
+        // 后台菜单动作初始化
+        this.listen = function () {
+            var self = this;
+            // 左则二级菜单展示
+            $('[data-submenu-layout]>a').on('click', function () {
+                $(this).parent().toggleClass('open');
+                self.syncOpenStatus(1);
+            });
+            // 同步二级菜单展示状态
+            this.syncOpenStatus = function (mode) {
+                $('[data-submenu-layout]').map(function () {
+                    var node = $(this).attr('data-submenu-layout');
+                    if (mode === 1) {
+                        var type = (this.className || '').indexOf('open') > -1 ? 2 : 1;
+                        layui.data('menu', {key: node, value: type});
+                    } else {
+                        var type = layui.data('menu')[node] || 2;
+                        (type === 2) && $(this).addClass('open');
+                    }
+                });
+            };
+            window.onhashchange = function () {
+                var hash = window.location.hash || '';
+                if (hash.length < 1) {
+                    return $('[data-menu-node][data-open!="#"]:first').trigger('click');
+                }
+                $.form.load(hash);
+                self.syncOpenStatus(2);
+                // 菜单选择切换
+                var node = self.queryNode(self.getUri());
+                if (/^m\-/.test(node)) {
+                    var $all = $('a[data-menu-node]'), tmp = node.split('-'), tmpNode = tmp.shift();
+                    while (tmp.length > 0) {
+                        tmpNode = tmpNode + '-' + tmp.shift();
+                        $all = $all.not($('a[data-menu-node="' + tmpNode + '"]').addClass('active'));
+                    }
+                    $all.removeClass('active');
+                    // 菜单模式切换
+                    if (node.split('-').length > 2) {
+                        var _tmp = node.split('-'), _node = _tmp.shift() + '-' + _tmp.shift();
+                        $('[data-menu-layout]').not($('[data-menu-layout="' + _node + '"]').removeClass('hide')).addClass('hide');
+                        $('[data-menu-node="' + node + '"]').parent('div').parent('div').addClass('open');
+                        $('body.framework').removeClass('mini');
+                    } else {
+                        $('body.framework').addClass('mini');
+                    }
+                    self.syncOpenStatus(1);
+                }
+            };
+            // URI初始化动作
+            window.onhashchange.call(this);
+        };
     };
 
     // 注册对象到Jq
-    $.validate = function (form, callback, options) {
+    $.vali = function (form, callback, options) {
         return (new function () {
             var self = this;
             // 表单元素
@@ -400,17 +448,12 @@ $(function () {
         }).check(form, callback, options);
     };
 
-    // 注册对象到JqFn
-    $.fn.validate = function (callback, options) {
-        return $.validate(this, callback, options);
-    };
-
     // 自动监听规则内表单
-    $.validate.listen = function () {
+    $.vali.listen = function () {
         $('form[data-auto]').map(function () {
             if ($(this).attr('data-listen') !== 'true') {
                 var callbackname = $(this).attr('data-callback');
-                $(this).attr('data-listen', 'true').validate(function (data) {
+                $(this).attr('data-listen', 'true').vali(function (data) {
                     var method = this.getAttribute('method') || 'POST';
                     var tips = this.getAttribute('data-tips') || undefined;
                     var url = this.getAttribute('action') || window.location.href;
@@ -426,98 +469,54 @@ $(function () {
         });
     };
 
+    // 注册对象到JqFn
+    $.fn.vali = function (callback, options) {
+        return $.vali(this, callback, options);
+    };
 
-    /*! 后台菜单辅助插件 */
-    $.menu = new function () {
-        // 计算URL地址中有效的URI
-        this.getUri = function (uri) {
-            uri = uri || window.location.href;
-            uri = (uri.indexOf(window.location.host) > -1 ? uri.split(window.location.host)[1] : uri).split('?')[0];
-            return (uri.indexOf('#') !== -1 ? uri.split('#')[1] : uri);
-        };
-        // 通过URI查询最有可能的菜单NODE
-        this.queryNode = function (url) {
-            var node = location.href.replace(/.*spm=([\d\-m]+).*/ig, '$1');
-            if (!/^m\-/.test(node)) {
-                var $menu = $('[data-menu-node][data-open*="' + url.replace(/\.html$/ig, '') + '"]');
-                return $menu.size() ? $menu.get(0).getAttribute('data-menu-node') : '';
+    // 上传单个图片
+    $.fn.uploadOneImage = function () {
+        var name = $(this).attr('name') || 'image';
+        var type = $(this).data('type') || 'png,jpg';
+        var $tpl = $('<a data-file="one" data-field="' + name + '" data-type="' + type + '" class="uploadimage"></a>');
+        $(this).hide().attr('name', name).after($tpl).on('change', function () {
+            $tpl.get(0).style = this.value ? 'background-image:url(' + this.value + ')' : '';
+        }).trigger('change');
+    };
+
+    // 上传多个图片
+    $.fn.uploadMultipleImage = function () {
+        var type = $(this).data('type') || 'png,jpg';
+        var name = $(this).attr('name') || 'umt-image';
+        var $tpl = $('<a data-file="mut" data-field="' + name + '" data-type="' + type + '" class="uploadimage"></a>');
+        $(this).hide().attr('name', name).after($tpl).on('change', function () {
+            var input = this, values = [], srcs = this.value.split('|');
+            $(this).prevAll('.uploadimage').map(function () {
+                values.push($(this).attr('data-tips-image'));
+            }), $(this).prevAll('.uploadimage').remove(), values.reverse();
+            for (var i in srcs) {
+                srcs[i] && values.push(srcs[i]);
             }
-            return node;
-        };
-        // URL转URI
-        this.parseUri = function (uri, obj) {
-            var params = {};
-            if (uri.indexOf('?') > -1) {
-                var serach = uri.split('?')[1].split('&');
-                for (var i in serach) {
-                    if (serach[i].indexOf('=') > -1) {
-                        var arr = serach[i].split('=');
-                        try {
-                            params[arr[0]] = window.decodeURIComponent(window.decodeURIComponent(arr[1].replace(/%2B/ig, ' ')));
-                        } catch (e) {
-                            console.log([e, uri, serach, arr]);
+            this.value = values.join('|');
+            for (var i in values) {
+                var tpl = '<div class="uploadimage uploadimagemtl"><a class="layui-icon">&#x1006;</a></div>';
+                var $tpl = $(tpl).attr('data-tips-image', values[i]).css('backgroundImage', 'url(' + values[i] + ')');
+                $tpl.data('input', input).data('srcs', values).data('index', i);
+                $tpl.on('click', 'a', function (e) {
+                    e.stopPropagation();
+                    var $cur = $(this).parent();
+                    var dialogIndex = $.msg.confirm('确定要移除这张图片吗?', function () {
+                        var data = $cur.data('srcs'), tmp = [];
+                        for (var i in data) {
+                            i !== $cur.data('index') && tmp.push(data[i]);
                         }
-                    }
-                }
-            }
-            uri = this.getUri(uri);
-            params.spm = obj && obj.getAttribute('data-menu-node') || this.queryNode(uri);
-            delete params[""];
-            var query = '?' + $.param(params);
-            return uri + (query !== '?' ? query : '');
-        };
-        // 后台菜单动作初始化
-        this.listen = function () {
-            var self = this;
-            // 左则二级菜单展示
-            $('[data-submenu-layout]>a').on('click', function () {
-                $(this).parent().toggleClass('open');
-                self.syncOpenStatus(1);
-            });
-            // 同步二级菜单展示状态
-            this.syncOpenStatus = function (mode) {
-                $('[data-submenu-layout]').map(function () {
-                    var node = $(this).attr('data-submenu-layout');
-                    if (mode === 1) {
-                        var type = (this.className || '').indexOf('open') > -1 ? 2 : 1;
-                        layui.data('menu', {key: node, value: type});
-                    } else {
-                        var type = layui.data('menu')[node] || 2;
-                        (type === 2) && $(this).addClass('open');
-                    }
+                        $cur.data('input').value = tmp.join('|');
+                        $cur.remove(), $.msg.close(dialogIndex);
+                    });
                 });
-            };
-            window.onhashchange = function () {
-                var hash = window.location.hash || '';
-                if (hash.length < 1) {
-                    return $('[data-menu-node][data-open!="#"]:first').trigger('click');
-                }
-                $.form.load(hash);
-                self.syncOpenStatus(2);
-                // 菜单选择切换
-                var node = self.queryNode(self.getUri());
-                if (/^m\-/.test(node)) {
-                    var $all = $('a[data-menu-node]'), tmp = node.split('-'), tmpNode = tmp.shift();
-                    while (tmp.length > 0) {
-                        tmpNode = tmpNode + '-' + tmp.shift();
-                        $all = $all.not($('a[data-menu-node="' + tmpNode + '"]').addClass('active'));
-                    }
-                    $all.removeClass('active');
-                    // 菜单模式切换
-                    if (node.split('-').length > 2) {
-                        var _tmp = node.split('-'), _node = _tmp.shift() + '-' + _tmp.shift();
-                        $('[data-menu-layout]').not($('[data-menu-layout="' + _node + '"]').removeClass('hide')).addClass('hide');
-                        $('[data-menu-node="' + node + '"]').parent('div').parent('div').addClass('open');
-                        $('body.framework').removeClass('mini');
-                    } else {
-                        $('body.framework').addClass('mini');
-                    }
-                    self.syncOpenStatus(1);
-                }
-            };
-            // URI初始化动作
-            window.onhashchange.call(this);
-        };
+                $(this).before($tpl);
+            }
+        }).trigger('change');
     };
 
     /*! 注册 data-load 事件行为 */
@@ -658,5 +657,5 @@ $(function () {
 
     /*! 初始化 */
     $.menu.listen();
-    $.validate.listen(this);
+    $.vali.listen();
 });