瀏覽代碼

添加下拉树

温红权 9 年之前
父節點
當前提交
a1fc6c45b6

+ 4 - 0
VisualInspection/css/user/addDept.css

@@ -0,0 +1,4 @@
+ .form-horizontal .form-group {
+     margin-right: 0 !important;
+     margin-left: 0 !important;
+ }

+ 25 - 0
VisualInspection/js/lib/treeSelect.css

@@ -0,0 +1,25 @@
+.treeSelect-panel {
+    position: absolute;
+    overflow: auto;
+    border: 1px solid #DCDCDC;
+    width: 100%;
+    display: none;
+    border-top-width: 0;
+    z-index: 101;
+    background: white;
+}
+
+.treeSelect-input {
+    width: 100%;
+    padding: 5px;
+}
+
+.treeSelect-mask {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    top: 0;
+    background-color: #FFF;
+    opacity: .1;
+    z-index: 99;
+}

+ 134 - 0
VisualInspection/js/lib/treeSelect.js

@@ -0,0 +1,134 @@
+'use strict';
+
+var _createClass = (function() {
+    function defineProperties(target, props) {
+        for (var i = 0; i < props.length; i++) {
+            var descriptor = props[i];
+            descriptor.enumerable = descriptor.enumerable || false;
+            descriptor.configurable = true;
+            if ('value' in descriptor) descriptor.writable = true;
+            Object.defineProperty(target, descriptor.key, descriptor);
+        }
+    }
+    return function(Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; };
+})();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+var uid = 0;
+
+var TreeSelect = (function() {
+    _createClass(TreeSelect, null, [{
+        key: 'getUniquId',
+        value: function getUniquId() {
+            return uid++;
+        }
+    }]);
+
+    function TreeSelect(options) {
+        _classCallCheck(this, TreeSelect);
+
+        var self = this;
+
+        var defaultOptions = {
+            valueKey: 'id'
+        };
+        self.options = options = $.extend(defaultOptions, options);
+        var uid = TreeSelect.getUniquId();
+        var tpl = '\n            <input type="text"  placeholder=' + options.placeholder + ' class="form-control treeSelect-input "/>\n             <div class="ztree treeSelect-panel" id="treeSelect_panel_' + uid + '"></div>\n        ';
+        var ele = $(options.element);
+        ele.html(tpl);
+        var input = ele.find('.treeSelect-input');
+        var panel = ele.find('.treeSelect-panel');
+        self.element = ele;
+        self.input = input;
+        self.panel = panel;
+        ele.css({
+            'position': 'relative'
+        });
+        input.on('keydown', function() {
+
+            //input.val(self.text);
+            return false;
+        });
+        input.click(function() {
+            if (!self.isOpen()) {
+                self.open();
+            } else {
+                self.close();
+            }
+        });
+        if (options.url) {
+            $.ajax({
+                type: options.type,
+                url: options.url,
+                dataType: 'json',
+                data: options.param,
+                sucess: function sucess(data) {
+                    self.render(data);
+                }
+            });
+        } else if (options.data) {
+            self.render(options.data);
+        }
+    }
+
+    _createClass(TreeSelect, [{
+        key: 'isOpen',
+        value: function isOpen() {
+            var panel = this.panel;
+            return !(panel.css('display') == 'none' || panel.height() == 0 || panel.css('opacity') == 0);
+        }
+    }, {
+        key: 'render',
+        value: function render(data) {
+            var self = this;
+            var panel = self.panel;
+            var setting = {
+                callback: {
+                    onClick: function onClick(event, treeId, treeNode) {
+                        // if (!treeNode.isParent) {
+                        self.input.val(treeNode.name);
+                        self.value = treeNode[self.options.valueKey];
+                        self.text = treeNode.name;
+                        self.close();
+                        // }
+                    }
+                }
+            };
+            self.ztree = $.fn.zTree.init(panel, setting, data);
+        }
+    }, {
+        key: 'open',
+        value: function open() {
+            var self = this;
+            var panel = self.panel;
+            panel.css({
+                height: 'auto',
+                opacity: 1
+            });
+            panel.show();
+            self.mask = $('<div class="treeSelect-mask"></div>');
+            $('body').append(self.mask);
+            self.mask.click(function() {
+                self.close();
+            });
+        }
+    }, {
+        key: 'close',
+        value: function close() {
+
+            var self = this;
+            //panel.animate({
+            //    height:0,
+            //    opacity:0
+            //},500);
+            self.panel.hide();
+            self.mask.remove();
+        }
+    }]);
+
+    return TreeSelect;
+})();
+
+//# sourceMappingURL=treeSelect.js.map

+ 25 - 4
VisualInspection/js/user/adddept.js

@@ -1,10 +1,31 @@
 $(document).ready(function() {
 
 
-    $('select.chosen-select').chosen({
-        no_results_text: '没有找到', // 当检索时没有找到匹配项时显示的提示文本
-        disable_search_threshold: 10, // 10 个以下的选择项则不显示检索框
-        search_contains: true // 从任意位置开始检索
+    // $('#dept_select').chosen({
+    //     no_results_text: '没有找到', // 当检索时没有找到匹配项时显示的提示文本
+    //     disable_search_threshold: 10, // 10 个以下的选择项则不显示检索框
+    //     search_contains: true, // 从任意位置开始检索
+    //     width: "100%"
+    // });
+
+    var sexNode = [{
+            name: '男',
+            value: '1',
+            children: [{
+                name: '好基友'
+            }]
+        },
+        {
+            name: '女',
+            value: '2'
+        }
+    ];
+    var sexInput = new TreeSelect({
+        element: '#dept_select',
+        data: sexNode,
+        valueKey: 'value',
+        placeholder: "选择部门"
     });
 
+
 });

+ 1 - 0
VisualInspection/view/common/commoncsslink.html

@@ -2,6 +2,7 @@
 <link href="/node_modules/zui/dist/lib/datatable/zui.datatable.min.css" rel="stylesheet">
 <link href="/node_modules/sweetalert/dist/sweetalert.css" rel="stylesheet">
 <link rel="stylesheet" href="/node_modules/ztree/css/zTreeStyle/zTreeStyle.css" type="text/css">
+<link rel="stylesheet" type="text/css" href="/js/lib/treeSelect.css">
 <link rel="stylesheet" type="text/css" href="/css/common/header.css">
 <link rel="stylesheet" type="text/css" href="/css/common/foot.css">
 <link rel="stylesheet" type="text/css" href="/js/lib/kkpager_green.css">

+ 2 - 2
VisualInspection/view/common/commonscriptlink.html

@@ -6,15 +6,15 @@
 <script src="/node_modules/zui/dist/lib/datatable/zui.datatable.min.js"></script>
 <script src="/node_modules/moment/min/moment.min.js"></script>
 <script src="/node_modules/moment/locale/zh-cn.js"></script>
-<script src="/node_modules/axios/dist/axios.min.js"></script>
 <script src="/node_modules/blueimp-md5/js/md5.min.js"></script>
 <script src="/node_modules/hashmap/hashmap.js"></script>
 <script src="/node_modules/sweetalert/dist/sweetalert.min.js"></script>
 <script src="/node_modules/ztree/js/jquery.ztree.all.min.js"></script>
+<script src="/js/lib/treeSelect.js"></script>
 <script src="/js/lib/kkpager.min.js"></script>
 <script src="/js/util/util.js"></script>
 <script src="/js/util/service.js"></script>
-<script src="/js/constant/constant.js"></script>  
+<script src="/js/constant/constant.js"></script>
 
 
 <script type="text/javascript">

+ 5 - 24
VisualInspection/view/user/addDept.html

@@ -5,6 +5,9 @@
 </script>
 <link rel="stylesheet" type="text/css" href="/node_modules/zui/dist/lib/chosenicons/zui.chosenicons.min.css">
 <script type="text/javascript" src="/js/user/adddept.js?__inline"></script>
+<link rel="stylesheet" type="text/css" href="/css/user/addDept.css?__inline">
+
+
 <div class="container-fluid ">
     <form class="form-horizontal">
         <div class="form-group">
@@ -16,30 +19,8 @@
         <div class="form-group">
             <label for="exampleInputPassword4" class="col-sm-2">上级部门:</label>
             <div class="col-md-6 col-sm-10">
-                <select data-placeholder="选择一个宠物..." class="chosen-select form-control" tabindex="-1" style="display: none;">
-                        <option value=""></option>
-                        <option value="cat">小猫</option>
-                        <option value="fish">金鱼</option>
-                        <option value="dragon">龙</option>
-                        <option value="mammoth">猛犸</option>
-                        <option value="gollum">咕噜</option>
-               </select>
-                <div class="chosen-container chosen-container-single" style="width: 100%;" title="">
-                    <a class="chosen-single chosen-single-with-deselect chosen-default" tabindex="-1">
-                        <span title="选择一个宠物...">选择一个宠物...</span>
-                        <div><b></b></div>
-                    </a>
-                    <div class="chosen-drop">
-                        <div class="chosen-search"><input type="text" autocomplete="off" tabindex="2"></div>
-                        <ul class="chosen-results">
-                            <li class="active-result" title="" data-option-array-index="1"><em></em>小猫</li>
-                            <li class="active-result" title="" data-option-array-index="2"><em></em>金鱼</li>
-                            <li class="active-result" title="" data-option-array-index="3"><em></em>龙</li>
-                            <li class="active-result result-selected" title="" data-option-array-index="4"><em></em>猛犸</li>
-                            <li class="active-result" title="" data-option-array-index="5"><em></em>咕噜</li>
-                        </ul>
-                    </div>
-                </div>
+                <div id="dept_select">上级部门</div>
+
             </div>
         </div>