瀏覽代碼

后台功能重写。

xian 5 年之前
父節點
當前提交
9a94f5e88d
共有 19 個文件被更改,包括 32819 次插入0 次删除
  1. 998 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/additional-methods.js
  2. 1398 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/jquery.validate.js
  3. 33 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/messages_zh.js
  4. 228 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/validate-methods.js
  5. 1312 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.css
  6. 18706 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.js
  7. 9 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.autocompleter.min.js
  8. 9597 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.js
  9. 5 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.min.js
  10. 501 0
      watero-wechat-web/src/main/webapp/common/lib/jselect-1.0.js
  11. 2 0
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/layer.js
  12. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/icon-ext.png
  13. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/icon.png
  14. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-0.gif
  15. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-1.gif
  16. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-2.gif
  17. 7 0
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/layer.css
  18. 2 0
      watero-wechat-web/src/main/webapp/common/lib/laypage/1.2/laypage.js
  19. 21 0
      watero-wechat-web/src/main/webapp/common/lib/laypage/1.2/skin/laypage.css

文件差異過大導致無法顯示
+ 998 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/additional-methods.js


文件差異過大導致無法顯示
+ 1398 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/jquery.validate.js


+ 33 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/messages_zh.js

@@ -0,0 +1,33 @@
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+		define( ["jquery", "../jquery.validate"], factory );
+	} else {
+		factory( jQuery );
+	}
+}(function( $ ) {
+
+/*
+ * Translated default messages for the jQuery validation plugin.
+ * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
+ */
+$.extend($.validator.messages, {
+	required: "这是必填字段",
+	remote: "请修正此字段",
+	email: "请输入有效的电子邮件地址",
+	url: "请输入有效的网址",
+	date: "请输入有效的日期",
+	dateISO: "请输入有效的日期 (YYYY-MM-DD)",
+	number: "请输入有效的数字",
+	digits: "只能输入数字",
+	creditcard: "请输入有效的信用卡号码",
+	equalTo: "你的输入不相同",
+	extension: "请输入有效的后缀",
+	maxlength: $.validator.format("最多可以输入 {0} 个字符"),
+	minlength: $.validator.format("最少要输入 {0} 个字符"),
+	rangelength: $.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),
+	range: $.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),
+	max: $.validator.format("请输入不大于 {0} 的数值"),
+	min: $.validator.format("请输入不小于 {0} 的数值")
+});
+
+}));

+ 228 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/validate-methods.js

@@ -0,0 +1,228 @@
+/*****************************************************************
+ * jQuery Validate扩展验证方法  (linjq)    
+ * Modified by guojunhui
+ * Date modified:01/01/2017  
+*****************************************************************/
+$(function(){
+    // 判断整数value是否等于0 
+    jQuery.validator.addMethod("isIntEqZero", function(value, element) { 
+         value=parseInt(value);      
+         return this.optional(element) || value==0;       
+    }, "整数必须为0"); 
+      
+    // 判断整数value是否大于0
+    jQuery.validator.addMethod("isIntGtZero", function(value, element) { 
+         value=parseInt(value);      
+         return this.optional(element) || value>0;       
+    }, "整数必须大于0"); 
+      
+    // 判断整数value是否大于或等于0
+    jQuery.validator.addMethod("isIntGteZero", function(value, element) { 
+         value=parseInt(value);      
+         return this.optional(element) || value>=0;       
+    }, "整数必须大于或等于0");   
+    
+    // 判断整数value是否不等于0 
+    jQuery.validator.addMethod("isIntNEqZero", function(value, element) { 
+         value=parseInt(value);      
+         return this.optional(element) || value!=0;       
+    }, "整数必须不等于0");  
+    
+    // 判断整数value是否小于0 
+    jQuery.validator.addMethod("isIntLtZero", function(value, element) { 
+         value=parseInt(value);      
+         return this.optional(element) || value<0;       
+    }, "整数必须小于0");  
+    
+    // 判断整数value是否小于或等于0 
+    jQuery.validator.addMethod("isIntLteZero", function(value, element) { 
+         value=parseInt(value);      
+         return this.optional(element) || value<=0;       
+    }, "整数必须小于或等于0");  
+    
+    // 判断浮点数value是否等于0 
+    jQuery.validator.addMethod("isFloatEqZero", function(value, element) { 
+         value=parseFloat(value);      
+         return this.optional(element) || value==0;       
+    }, "浮点数必须为0"); 
+      
+    // 判断浮点数value是否大于0
+    jQuery.validator.addMethod("isFloatGtZero", function(value, element) { 
+         value=parseFloat(value);      
+         return this.optional(element) || value>0;       
+    }, "浮点数必须大于0"); 
+      
+    // 判断浮点数value是否大于或等于0
+    jQuery.validator.addMethod("isFloatGteZero", function(value, element) { 
+         value=parseFloat(value);      
+         return this.optional(element) || value>=0;       
+    }, "浮点数必须大于或等于0");   
+    
+    // 判断浮点数value是否不等于0 
+    jQuery.validator.addMethod("isFloatNEqZero", function(value, element) { 
+         value=parseFloat(value);      
+         return this.optional(element) || value!=0;       
+    }, "浮点数必须不等于0");  
+    
+    // 判断浮点数value是否小于0 
+    jQuery.validator.addMethod("isFloatLtZero", function(value, element) { 
+         value=parseFloat(value);      
+         return this.optional(element) || value<0;       
+    }, "浮点数必须小于0");  
+    
+    // 判断浮点数value是否小于或等于0 
+    jQuery.validator.addMethod("isFloatLteZero", function(value, element) { 
+         value=parseFloat(value);      
+         return this.optional(element) || value<=0;       
+    }, "浮点数必须小于或等于0");  
+    
+    // 判断浮点型  
+    jQuery.validator.addMethod("isFloat", function(value, element) {       
+         return this.optional(element) || /^[-\+]?\d+(\.\d+)?$/.test(value);       
+    }, "只能包含数字、小数点等字符"); 
+     
+    // 匹配integer
+    jQuery.validator.addMethod("isInteger", function(value, element) {       
+         return this.optional(element) || (/^[-\+]?\d+$/.test(value) && parseInt(value)>=0);       
+    }, "匹配integer");  
+     
+    // 判断数值类型,包括整数和浮点数
+    jQuery.validator.addMethod("isNumber", function(value, element) {       
+         return this.optional(element) || /^[-\+]?\d+$/.test(value) || /^[-\+]?\d+(\.\d+)?$/.test(value);       
+    }, "匹配数值类型,包括整数和浮点数");  
+    
+    // 只能输入[0-9]数字
+    jQuery.validator.addMethod("isDigits", function(value, element) {       
+         return this.optional(element) || /^\d+$/.test(value);       
+    }, "只能输入0-9数字");  
+    
+    // 判断中文字符 
+    jQuery.validator.addMethod("isChinese", function(value, element) {       
+         return this.optional(element) || /^[\u0391-\uFFE5]+$/.test(value);       
+    }, "只能包含中文字符。");   
+ 
+    // 判断英文字符 
+    jQuery.validator.addMethod("isEnglish", function(value, element) {       
+         return this.optional(element) || /^[A-Za-z]+$/.test(value);       
+    }, "只能包含英文字符。");   
+ 
+     // 手机号码验证    
+    jQuery.validator.addMethod("isMobile", function(value, element) {    
+      var length = value.length;    
+      return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-35-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(value));    
+    }, "手机号码格式不正确。");
+
+    // 电话号码验证    
+    jQuery.validator.addMethod("isPhone", function(value, element) {    
+      var tel = /^(\d{3,4}-?)?\d{7,9}$/g;    
+      return this.optional(element) || (tel.test(value));    
+    }, "电话号码格式不正确");
+
+    // 联系电话(手机/电话皆可)验证   
+    jQuery.validator.addMethod("isTel", function(value,element) {   
+        var length = value.length;   
+        var mobile = /^(((13[0-9]{1})|(15[0-35-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
+        var tel = /^(\d{3,4}-?)?\d{7,9}$/g;       
+        return this.optional(element) || tel.test(value) || (length==11 && mobile.test(value));   
+    }, "请输入正确手机号码或电话号码"); 
+ 
+     // 匹配qq      
+    jQuery.validator.addMethod("isQq", function(value, element) {       
+         return this.optional(element) || /^[1-9]\d{4,12}$/;       
+    }, "QQ号码不合法");   
+ 
+     // 邮政编码验证    
+    jQuery.validator.addMethod("isZipCode", function(value, element) {    
+      var zip = /^[0-9]{6}$/;    
+      return this.optional(element) || (zip.test(value));    
+    }, "邮政编码不正确");  
+    
+    // 匹配密码,以字母开头,长度在6-16之间,只能包含字符、数字和下划线。      
+    jQuery.validator.addMethod("isPwd", function(value, element) {       
+         return this.optional(element) || /^[a-zA-Z]\\w{6,16}$/.test(value);       
+    }, "以字母开头,长度在6-12之间,只能包含字符、数字和下划线。");  
+    
+    // 身份证号码验证
+    jQuery.validator.addMethod("isIdCardNo", function(value, element) { 
+      //var idCard = /^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/;   
+      return this.optional(element) || isIdCardNo(value);    
+    }, "身份证号码不正确"); 
+
+    // IP地址验证   
+    jQuery.validator.addMethod("ip", function(value, element) {    
+      return this.optional(element) || /^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))$/.test(value);    
+    }, "请填写正确的IP地址");
+   
+    // 字符验证,只能包含中文、英文、数字、下划线等字符。    
+    jQuery.validator.addMethod("stringCheck", function(value, element) {       
+         return this.optional(element) || /^[a-zA-Z0-9\u4e00-\u9fa5-_]+$/.test(value);       
+    }, "只能包含中文、英文、数字、下划线等字符");   
+   
+    // 匹配english  
+    jQuery.validator.addMethod("isEnglish", function(value, element) {       
+         return this.optional(element) || /^[A-Za-z]+$/.test(value);       
+    }, "必须输入英文");   
+    
+    // 匹配汉字  
+    jQuery.validator.addMethod("isChinese", function(value, element) {       
+         return this.optional(element) || /^[\u4e00-\u9fa5]+$/.test(value);       
+    }, "只能输入汉字");   
+    
+    // 匹配中文(包括汉字和字符) 
+    jQuery.validator.addMethod("isChineseChar", function(value, element) {       
+         return this.optional(element) || /^[\u0391-\uFFE5]+$/.test(value);       
+    }, "匹配中文(包括汉字和字符) "); 
+      
+    // 判断是否为合法字符(a-zA-Z0-9-_)
+    jQuery.validator.addMethod("isRightfulString", function(value, element) {       
+         return this.optional(element) || /^[A-Za-z0-9_-]+$/.test(value);       
+    }, "判断是否为合法字符(a-zA-Z0-9-_)");   
+    
+    // 判断是否包含中英文特殊字符,除英文"-_"字符外
+    jQuery.validator.addMethod("isContainsSpecialChar", function(value, element) {  
+         var reg = RegExp(/[(\ )(\`)(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\+)(\=)(\|)(\{)(\})(\')(\:)(\;)(\')(',)(\[)(\])(\.)(\<)(\>)(\/)(\?)(\~)(\!)(\@)(\#)(\¥)(\%)(\…)(\&)(\*)(\()(\))(\—)(\+)(\|)(\{)(\})(\【)(\】)(\‘)(\;)(\:)(\”)(\“)(\’)(\。)(\,)(\、)(\?)]+/);   
+         return this.optional(element) || !reg.test(value);       
+    }, "含有中英文特殊字符");
+	
+	//车牌号校验
+	jQuery.validator.addMethod("isPlateNo", function(value, element) {
+		var reg = /^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}$/;
+		return this.optional(element) || (tel.test(value)); 
+	},"请输入正确车牌号");
+});
+//身份证号码的验证规则
+function isIdCardNo(num){ 
+    //if (isNaN(num)) {alert("输入的不是数字!"); return false;} 
+   var len = num.length, re; 
+   if (len == 15) 
+   re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/); 
+   else if (len == 18) 
+   re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/); 
+   else {
+		//alert("输入的数字位数不对。"); 
+		return false;
+	} 
+   var a = num.match(re); 
+   if (a != null) 
+   { 
+   if (len==15) 
+   { 
+   var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]); 
+   var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
+   } 
+   else 
+   { 
+   var D = new Date(a[3]+"/"+a[4]+"/"+a[5]); 
+   var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5]; 
+   } 
+   if (!B) {
+		//alert("输入的身份证号 "+ a[0] +" 里出生日期不对。"); 
+		return false;
+	} 
+   } 
+   if(!re.test(num)){
+		//alert("身份证最后一位只能是数字和字母。");
+		return false;
+	}
+   return true; 
+}

文件差異過大導致無法顯示
+ 1312 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.css


文件差異過大導致無法顯示
+ 18706 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.js


文件差異過大導致無法顯示
+ 9 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.autocompleter.min.js


文件差異過大導致無法顯示
+ 9597 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.js


文件差異過大導致無法顯示
+ 5 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.min.js


+ 501 - 0
watero-wechat-web/src/main/webapp/common/lib/jselect-1.0.js

@@ -0,0 +1,501 @@
+/*!
+ * js模拟系统select v1.0
+ * http://www.cnblogs.com/typeof/ 
+ * 
+ * 主流浏览器对html的select元素渲染都不一样,IE系列(6, 7, 8)也不一样,
+ * firefox,chrome,safari,opera 渲染和事件处理也稍有差异
+ * 该脚本解决了在不同浏览器下渲染和事件响应不一致的问题,对系统select是完全
+ * 意义上的替换。v1.0版本只支持单个select选择即不支持二级或者三级联动且不支持系统select的onchange事件。
+ * 该版本支持模拟select选择的数据和系统select选中数据的同步,不影响form表单的提交 
+ *
+ * 如果page上select有的不想通过该脚本替换,只想维持系统select,可以在相应的select元素添加自定义属性data-enabled="true",
+ * 否则可以在想要通过该脚本替换的select元素上添加自定义属性data-enabled="false"或者不加,会默认为这个select需要
+ * 通过该脚本进行替换
+ *
+ * 日期:2012-11-07 15:38
+ */
+(function(squid) {
+    function JSelect() {
+        this.init()
+    } 
+
+    JSelect.prototype = {
+        constructor: JSelect,
+        init: function(context) {
+            //获取指定上下文所有select元素
+            var elems = squid.getElementsByTagName('select', context)
+            this.globalEvent()
+            this.initView(elems)
+        },
+        initView: function(elems) {
+            var i = 0,
+                elem,
+                length = elems.length,
+                enabled;
+
+            for(; i < length; i++) {
+                elem = elems[i]
+                enabled = elem.getAttribute('data-enabled')
+                //使用系统select
+                if(!enabled || enabled === 'true')
+                    continue
+                if(squid.isVisible(elem))
+                    elem.style.display = 'none'
+                
+                this.create(elem)
+            }
+        },
+        create: function(elem) {
+            var data = [],
+                i = 0,
+                length,
+                option,
+                options,
+                value,
+                text,
+                obj,
+                lis,
+                ul,
+                _default,
+                icon,
+                selectedText,
+                selectedValue,
+                div,
+                wrapper,
+                position,
+                left,
+                top,
+                cssText; 
+
+            options = elem.getElementsByTagName('option') 
+            length = options.length
+            for(; i < length; i++) {
+                option = options[i]
+                value = option.value
+                text = option.innerText || option.textContent
+                
+                obj = {
+                    value: value, 
+                    text: text
+                }
+                if(option.selected) {
+                   selectedValue = value
+                   selectedText = text  
+                   obj['selected'] = true 
+                }
+                data.push(obj)
+            }
+
+            lis = this.render(this.tmpl, data)
+            ul = '<ul class="select-item">' + lis + '</ul>'
+            //
+            div = document.createElement('span')
+            div.style.display = 'none'
+            div.className = 'select-wrapper'
+            //已选元素
+            _default = document.createElement('span')
+            _default.className = 'select-default unselectable'
+            _default.unselectable = 'on'
+            //让div元素能够获取焦点
+            _default.setAttribute('tabindex', '1')
+            _default.setAttribute('data-value', selectedValue)
+            _default.setAttribute('hidefocus', true)
+            _default.innerHTML = selectedText 
+            div.appendChild(_default) 
+            //选择icon
+            icon = document.createElement('i')
+            icon.className = 'select-icon' 
+            div.appendChild(icon)
+            //下拉列表
+            wrapper = document.createElement('span')
+            wrapper.className = 'select-list hide'
+            wrapper.innerHTML = ul
+            //生成新的元素
+            div.appendChild(wrapper)
+            //插入到select元素后面
+            elem.parentNode.insertBefore(div, null)
+            //获取select元素left top值
+            //先设置select显示,取完left, top值后重新隐藏
+            elem.style.display = 'block'
+            //事件绑定
+            this.sysEvent(div)
+            position = squid.position(elem)
+            elem.style.display = 'none'
+            left = position.left
+            top = position.top
+            cssText = ' display: inline-block;'
+            div.style.cssText = cssText
+        },
+        globalEvent: function() {
+            //document 添加click事件,用户处理每个jselect元素展开关闭
+            var target,
+                className,
+                elem,
+                wrapper,
+                status,
+                that = this;
+
+
+            squid.on(document, 'click', function(event) {
+                target = event.target, 
+                className = target.className;
+
+                switch(className) {
+                    case 'select-icon':
+                    case 'select-default unselectable':
+                        elem = target.tagName.toLowerCase() === 'span' ? target : target.previousSibling
+                        wrapper = elem.nextSibling.nextSibling
+                         
+                        //firefox 鼠标右键会触发click事件
+                        //鼠标左键点击执行
+                        if(event.button === 0) {
+                            //初始化选中元素
+                            that.initSelected(elem)
+                            if(squid.isHidden(wrapper)) {
+                                status = 'inline-block'
+                                //关闭所有展开jselect
+                                that.closeSelect() 
+                            }else{
+                                status = 'none' 
+                            }
+                            wrapper.style.display = status 
+                            elem.focus() 
+                        }else if(event.button === 2){
+                            wrapper.style.display = 'none' 
+                        }
+                        that.zIndex(wrapper)
+                        break
+                    case 'select-option':
+                    case 'select-option selected':
+                        if(event.button === 0) {
+                            that.fireSelected(target, target.parentNode.parentNode.previousSibling.previousSibling)
+                            wrapper.style.display = 'none' 
+                        }
+                        break
+                    default:
+                        while(target && target.nodeType !== 9) {
+                            if(target.nodeType === 1) {
+                                if(target.className === 'select-wrapper') {
+                                    return
+                                } 
+                            }
+                            target = target.parentNode
+                        }
+                        that.closeSelect()
+                        break
+                } 
+            })
+        },
+        sysEvent: function(elem) {
+            var stand = elem.firstChild,
+                dropdown = elem.lastChild,
+                target,
+                //firefox = 'MozBinding' in document.documentElement.style,
+                chrome = /chrome/i.test(navigator.userAgent),
+                keyup = chrome ? 'keypress' : 'keyup',
+                that = this;
+
+            squid.on(elem, 'mouseover', function(event) {
+                if(!that.doScrolling) {
+                    target = event.target
+                    that.activate(target)  
+                }
+            })
+
+            squid.on(elem, 'mouseout', function(event) {
+                if(!that.doScrolling) {
+                    target = event.target 
+                    that.deactivate(target)
+                }
+            })
+
+            squid.on(stand, 'keydown', function(event) {
+               var keyCode = event.keyCode;
+
+               switch(keyCode) {
+                   //回车选中
+                   case 13:
+                        that.enter(dropdown) 
+                        break
+                   //向上键
+                   case 38:
+                       that.doScrolling = true
+                       that.up(dropdown) 
+                       break
+                   //向下键
+                   case 40:
+                       that.doScrolling = true
+                       that.down(dropdown) 
+                       break
+                   default:
+                       break
+               } 
+            })
+
+            squid.on(stand, keyup, function(event) {
+               var keyCode = event.keyCode;
+
+               switch(keyCode) {
+                   //回车选中
+                   case 13:
+                        that.doScrolling = false
+                        break
+                   //向上键
+                   case 38:
+                        that.doScrolling = false
+                        break
+                   //向下键
+                   case 40:
+                       that.doScrolling = false
+                       break
+                   default:
+                       break
+               }  
+            })
+        },
+        zIndex: function(elem) {
+            var index = 10,
+                cur = elem.parentNode.parentNode,
+                next = squid.next(cur);
+            
+            if(next) {
+                cur.style.zIndex = index
+                next.style.zIndex = --index
+            }
+        },
+        initSelected: function(elem) {
+            var curText = elem.innerText || elem.textContent,
+                curValue = elem.getAttribute('data-value'),
+                wrapper = elem.nextSibling.nextSibling,
+                n = wrapper.firstChild.firstChild,
+                text,
+                value,
+                dir,
+                min = 0,
+                max,
+                hidden = false;
+
+            for(; n; n = n.nextSibling) {
+                text = n.innerText || n.textContent 
+                value = n.getAttribute('data-value')
+                if(curText === text && curValue === value) {
+                    //显示已选中元素
+                    if(squid.isHidden(wrapper)) {
+                        wrapper.style.display = 'block'
+                        hidden = true
+                    }
+                    max = wrapper.scrollHeight
+                    if(n.offsetTop > (max / 2)) {
+                        if(wrapper.clientHeight + wrapper.scrollTop === max) 
+                            dir = 'up'
+                        else
+                            dir = 'down'
+                    }else{
+                        if(wrapper.scrollTop === min)
+                            dir = 'down'
+                        else
+                            dir = 'up'
+                    }
+                    this.inView(n, wrapper, dir) 
+                    if(hidden)
+                        wrapper.style.display = 'none'
+                    this.activate(n)
+                    break
+                }
+            } 
+        },
+        activate: function(elem) {
+            var tagName = (elem.tagName || '').toLowerCase(),
+                    className = elem.className,
+                    parent = elem.parentNode,
+                    first = parent.firstChild,
+                    last = parent.lastChild;
+
+            switch(tagName) {
+                case 'li':
+                    //li.select-option 元素
+                    if(!~className.indexOf('selected') && (elem !== first || elem !== last)) {
+                        this.deactivate(elem)
+                        elem.className = className + ' selected'
+                    }
+                    break
+                default:
+                    break
+            } 
+        },
+        deactivate: function(elem) {
+             var tagName = (elem.tagName || '').toLowerCase(),
+                 className = (' ' + elem.className + ' ').replace(/[\n\r\t]/, '');
+
+            switch(tagName) {
+                case 'li':
+                    //li.select-option 元素
+                    var i = 0,
+                        lis = squid.siblings(elem),
+                        length = lis.length,
+                        cur;
+
+                    for(; i < length; i++) {
+                        cur = lis[i] 
+                        cur.className = squid.trim(className.replace(' selected ', ''))
+                    }
+                    break
+                default:
+                    break
+            }
+        },
+        fireSelected: function(elem, s) {
+            var text = elem.innerText || elem.textContent,
+                value = elem.getAttribute('data-value'),
+                r;
+
+            s.setAttribute('data-value', value) 
+            if(s.innerText) 
+                s.innerText = text
+            else
+                s.textContent = text
+
+            //触发系统select选中,用于form表单提交
+            r = s.parentNode.previousSibling.previousSibling
+            r.value = value 
+            r.setAttribute('data-text', text)
+        },
+        closeSelect: function() {
+            var elems = squid.getElementsByClassName('select-list'),
+                i = 0,
+                length = elems.length,
+                elem;  
+
+            for(; i < length; i++) {
+                elem = elems[i] 
+                if(squid.isVisible(elem))
+                    elem.style.display = 'none'
+            }
+        },
+        up: function(elem) {
+            var ul = elem.firstChild,
+                lis = ul.childNodes,
+                li = this.getSelectedIndex(lis),
+                cur,
+                i = li.index;
+            
+            if(i > 0) {
+                i-- 
+                cur = lis[i]
+                //判断元素是否in view
+                this.inView(cur, elem, 'up')
+                this.activate(cur) 
+                this.fireSelected(cur, elem.previousSibling.previousSibling) 
+            }
+        },
+        down: function(elem) {
+            var ul = elem.firstChild,
+                lis = ul.childNodes,
+                li = this.getSelectedIndex(lis),
+                cur,
+                i = li.index;
+
+            if(i < lis.length - 1) {
+                 i++ 
+                 cur = lis[i]
+                 //判断元素是否in view
+                 this.inView(cur, elem, 'down') 
+                 this.activate(cur)
+                 this.fireSelected(cur, elem.previousSibling.previousSibling)
+            } 
+        },
+        enter: function(elem) {
+            var ul = elem.firstChild,
+                lis = ul.childNodes,
+                li,
+                i,
+                cur;
+
+            li = this.getSelectedIndex(lis)
+            i = li.index
+            cur = lis[i] 
+            this.fireSelected(cur, elem.previousSibling.previousSibling) 
+            this.closeSelect()
+        },
+        getSelectedIndex: function(elems) {
+            var i = 0,
+                length = elems.length,
+                elem;
+            
+            for(; i < length; i++) {
+                elem = elems[i]
+                if(~elem.className.indexOf('selected')) {
+                    return {
+                        index: i
+                    } 
+                }
+            }
+
+            return {
+                index: -1
+            }
+        },
+        inView: function(elem, wrapper, dir) {
+            var scrollTop = wrapper.scrollTop,
+                offsetTop = elem.offsetTop,
+                top;
+
+            if(dir === 'up') {
+                if(offsetTop === 0) {
+                    wrapper.scrollTop = offsetTop;
+                }else if(offsetTop < scrollTop) {
+                    top = offsetTop - scrollTop
+                    this.scrollInView(wrapper, top) 
+                }
+            }else{
+                var clientHeight = wrapper.clientHeight;
+                
+                if(offsetTop + elem.offsetHeight === wrapper.scrollHeight) {
+                    wrapper.scrollTop = wrapper.scrollHeight - wrapper.clientHeight 
+                }else if(offsetTop + elem.offsetHeight > clientHeight + scrollTop) {
+                    top = (offsetTop + elem.offsetHeight) - (scrollTop + clientHeight)
+                    this.scrollInView(wrapper, top) 
+                }
+            }
+        },
+        scrollInView: function(elem, top) {
+            setTimeout(function() {
+                elem.scrollTop += top
+            }, 10)
+        },
+        doScrolling: false,
+        render: function(tmpl, data) {
+            var i = 0,
+                cur,
+                length = data.length,
+                prop,
+                value,
+                item,
+                r = [];
+
+            for(; i < length; i++) {
+               cur = data[i]
+               item = tmpl.replace(/\{\{\w+\}\}/g, function(a) {
+                   prop = a.replace(/[\{\}]+/g, '')
+                   value = cur[prop] || ''
+                   if(prop === 'class') {
+                        value += 'select-option'
+                        if(cur.selected) {
+                            value += ' selected' 
+                        }
+                   }
+                        
+                   return value
+               })
+               r.push(item)
+            }
+
+            return r.join('')
+        },
+        tmpl: '<li class="{{class}}" data-value="{{value}}">{{text}}</li>'
+    }
+
+    squid.swing.jselect = function() {
+        return new JSelect() 
+    }
+})(squid);

文件差異過大導致無法顯示
+ 2 - 0
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/layer.js


二進制
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/icon-ext.png


二進制
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/icon.png


二進制
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-0.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-1.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-2.gif


文件差異過大導致無法顯示
+ 7 - 0
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/layer.css


文件差異過大導致無法顯示
+ 2 - 0
watero-wechat-web/src/main/webapp/common/lib/laypage/1.2/laypage.js


+ 21 - 0
watero-wechat-web/src/main/webapp/common/lib/laypage/1.2/skin/laypage.css

@@ -0,0 +1,21 @@
+/*!
+ laypage默认样式
+*/
+.laypage_main{font-size:0; clear:both; color:#666}
+.laypage_main *{display:inline-block; vertical-align: top; font-size:12px}
+.laypage_main a{height:26px; line-height:26px; text-decoration:none; color:#666}
+.laypage_main a, .laypage_main span{margin:0 3px 6px; padding:0 10px}
+.laypage_main span{height:26px; line-height:26px}
+.laypage_main input, .laypage_main button{ border:1px solid #ccc; background-color:#fff}
+.laypage_main input{width:40px; height:26px; line-height:26px; margin:0 5px; padding:0 5px}
+.laypage_main button{height:28px; line-height:28px; margin-left:5px; padding:0 10px; color:#666}
+
+/* 默认皮肤 */
+.laypageskin_default a{border:1px solid #ddd; background-color:#fff}
+.laypageskin_default a:hover{ background-color:#5a98de; border-color:#5a98de; color:#fff}
+.laypageskin_default span{height:28px; line-height:28px; color:#999}
+.laypageskin_default .laypage_curr{font-weight:700; color:#666}
+
+/* 一般用于信息流加载 */
+.laypageskin_flow{text-align:center}
+.laypageskin_flow .page_nomore{color:#999}