瀏覽代碼

watero框架更新

wangxiaoming 5 年之前
父節點
當前提交
25607e3133
共有 100 個文件被更改,包括 67676 次插入0 次删除
  1. 328 0
      watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.css
  2. 二進制
      watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.eot
  3. 11 0
      watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.min.css
  4. 1265 0
      watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.svg
  5. 二進制
      watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.ttf
  6. 二進制
      watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.woff
  7. 12 0
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/no-data-to-display.js
  8. 150 0
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/no-data-to-display.src.js
  9. 18 0
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/offline-exporting.js
  10. 492 0
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/offline-exporting.src.js
  11. 10 0
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/overlapping-datalabels.js
  12. 164 0
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/overlapping-datalabels.src.js
  13. 二進制
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/license.pdf
  14. 15 0
      watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/readme.txt
  15. 12 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.SuperSlide/2.1.1/jquery.SuperSlide.min.js
  16. 144 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.contextmenu/jquery.contextmenu.r2.js
  17. 233 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.ui/Popt.js
  18. 1283 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.ui/jquery-ui.css
  19. 18706 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.ui/jquery-ui.js
  20. 1398 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/jquery.validate.js
  21. 33 0
      watero-wechat-web/src/main/webapp/common/lib/jquery.validation/1.14.0/messages_zh.js
  22. 1312 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.css
  23. 18706 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.js
  24. 9 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.autocompleter.min.js
  25. 9597 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.js
  26. 5 0
      watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.min.js
  27. 501 0
      watero-wechat-web/src/main/webapp/common/lib/jselect-1.0.js
  28. 2 0
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/layer.js
  29. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-0.gif
  30. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-1.gif
  31. 二進制
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/default/loading-2.gif
  32. 7 0
      watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/layer.css
  33. 2 0
      watero-wechat-web/src/main/webapp/common/lib/laypage/1.2/laypage.js
  34. 21 0
      watero-wechat-web/src/main/webapp/common/lib/laypage/1.2/skin/laypage.css
  35. 26 0
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/css/lightbox.css
  36. 二進制
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/images/loading.gif
  37. 二進制
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/images/next.png
  38. 二進制
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/images/prev.png
  39. 9655 0
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox-plus-jquery.js
  40. 38 0
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox-plus-jquery.min.js
  41. 1 0
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox-plus-jquery.min.map
  42. 444 0
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox.js
  43. 13 0
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox.min.js
  44. 1 0
      watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox.min.map
  45. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_exe.gif
  46. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_jpg.gif
  47. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_mp3.gif
  48. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_mv.gif
  49. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_pdf.gif
  50. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_ppt.gif
  51. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_psd.gif
  52. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_rar.gif
  53. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_txt.gif
  54. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_xls.gif
  55. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/icons.gif
  56. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/icons.png
  57. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/image.png
  58. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/progress.png
  59. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/emotion/images/jxface2.gif
  60. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/emotion/images/neweditor-tab-bg.png
  61. 894 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/image.css
  62. 120 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/image.html
  63. 1139 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/image.js
  64. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/icons.gif
  65. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/icons.png
  66. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/image.png
  67. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/progress.png
  68. 98 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/insertframe/insertframe.html
  69. 81 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/internal.js
  70. 126 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/link/link.html
  71. 135 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/map/map.html
  72. 30 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/music/music.css
  73. 32 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/music/music.html
  74. 192 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/music/music.js
  75. 40 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/preview/preview.html
  76. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/scrawl/images/redo.png
  77. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/scrawl/images/redoH.png
  78. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre0.png
  79. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre1.png
  80. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre2.png
  81. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre3.png
  82. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre4.png
  83. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/icons.gif
  84. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/icons.png
  85. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/image.png
  86. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/left_focus.jpg
  87. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/none_focus.jpg
  88. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/progress.png
  89. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/right_focus.jpg
  90. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/wordimage/imageUploader.swf
  91. 175 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/index.html
  92. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/listbackground.png
  93. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/localimage.png
  94. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/music.png
  95. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/rotateleftdisable.png
  96. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/rotateleftenable.png
  97. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/rotaterightdisable.png
  98. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/zh-cn/images/localimage.png
  99. 二進制
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/zh-cn/images/music.png
  100. 0 0
      watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/themes/default/images/icons-all.gif

+ 328 - 0
watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.css

@@ -0,0 +1,328 @@
+/* -----------H-ui前端框架-------------
+* iconfont.css v1.0.8
+* http://www.h-ui.net/
+* Created & Modified by guojunhui
+* Date modified 2016.06.21
+*
+* Copyright 2013-2015 北京颖杰联创科技有限公司 All rights reserved.
+* Licensed under MIT license.
+* http://opensource.org/licenses/MIT
+*
+*/
+@font-face {font-family: "Hui-iconfont";
+  src: url('iconfont.eot'); /* IE9*/
+  src: url('iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
+  url('iconfont.woff') format('woff'), /* chrome、firefox */
+  url('iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
+  url('iconfont.svg#Hui-iconfont') format('svg'); /* iOS 4.1- */
+}
+
+.Hui-iconfont {
+  font-family:"Hui-iconfont" !important;
+  font-style:normal;
+  -webkit-font-smoothing: antialiased;
+  -webkit-text-stroke-width: 0.2px;
+  -moz-osx-font-smoothing: grayscale;
+}
+.Hui-iconfont-gotop:before { content: "\e684"; }
+.Hui-iconfont-music:before { content: "\e60f"; }
+.Hui-iconfont-tags:before { content: "\e64b"; }
+.Hui-iconfont-jieri:before { content: "\e727"; }
+.Hui-iconfont-jishiqi:before { content: "\e728"; }
+.Hui-iconfont-pad:before { content: "\e64c"; }
+.Hui-iconfont-lunzi:before { content: "\e64d"; }
+.Hui-iconfont-jiandao:before { content: "\e64e"; }
+.Hui-iconfont-xianshiqi:before { content: "\e64f"; }
+.Hui-iconfont-zhaoxiangji:before { content: "\e650"; }
+.Hui-iconfont-danfanxiangji:before { content: "\e651"; }
+.Hui-iconfont-dayinji:before { content: "\e652"; }
+.Hui-iconfont-user-zhanzhang:before { content: "\e653"; }
+.Hui-iconfont-chajian:before { content: "\e654"; }
+.Hui-iconfont-arrow1-bottom:before { content: "\e674"; }
+.Hui-iconfont-arrow1-left:before { content: "\e678"; }
+.Hui-iconfont-arrow1-top:before { content: "\e679"; }
+.Hui-iconfont-arrow1-right:before { content: "\e67a"; }
+.Hui-iconfont-jieri1:before { content: "\e655"; }
+.Hui-iconfont-face-weixiao:before { content: "\e656"; }
+.Hui-iconfont-face-chijing:before { content: "\e657"; }
+.Hui-iconfont-face-dai:before { content: "\e658"; }
+.Hui-iconfont-face-shuaku:before { content: "\e659"; }
+.Hui-iconfont-face-mogui:before { content: "\e65a"; }
+.Hui-iconfont-face-ganga:before { content: "\e65b"; }
+.Hui-iconfont-face-qin:before { content: "\e65c"; }
+.Hui-iconfont-face-nu:before { content: "\e65d"; }
+.Hui-iconfont-face-zhayan:before { content: "\e65e"; }
+.Hui-iconfont-face-shengqi:before { content: "\e65f"; }
+.Hui-iconfont-face-ma:before { content: "\e660"; }
+.Hui-iconfont-face-bishi:before { content: "\e661"; }
+.Hui-iconfont-face-maimeng:before { content: "\e662"; }
+.Hui-iconfont-face-jingdai:before { content: "\e663"; }
+.Hui-iconfont-face-yun:before { content: "\e664"; }
+.Hui-iconfont-home2:before { content: "\e67f"; }
+.Hui-iconfont-search2:before { content: "\e665"; }
+.Hui-iconfont-share2:before { content: "\e666"; }
+.Hui-iconfont-face:before { content: "\e668"; }
+.Hui-iconfont-wuliu:before { content: "\e669"; }
+.Hui-iconfont-dianpu:before { content: "\e66a"; }
+.Hui-iconfont-chexiao:before { content: "\e66b"; }
+.Hui-iconfont-zhongzuo:before { content: "\e66c"; }
+.Hui-iconfont-zan:before { content: "\e66d"; }
+.Hui-iconfont-cai:before { content: "\e66e"; }
+.Hui-iconfont-yuyin3:before { content: "\e66f"; }
+.Hui-iconfont-cart2-selected:before { content: "\e670"; }
+.Hui-iconfont-weizhi:before { content: "\e671"; }
+.Hui-iconfont-face-ku:before { content: "\e688"; }
+.Hui-iconfont-down:before { content: "\e640"; }
+.Hui-iconfont-cart2-man:before { content: "\e672"; }
+.Hui-iconfont-card2-kong:before { content: "\e673"; }
+.Hui-iconfont-luyin:before { content: "\e619"; }
+.Hui-iconfont-html:before { content: "\e69f"; }
+.Hui-iconfont-css:before { content: "\e6a0"; }
+.Hui-iconfont-android:before { content: "\e6a2"; }
+.Hui-iconfont-github:before { content: "\e6d1"; }
+.Hui-iconfont-html5:before { content: "\e6d2"; }
+.Hui-iconfont-huangguan:before { content: "\e6d3"; }
+.Hui-iconfont-news:before { content: "\e616"; }
+.Hui-iconfont-slider-right:before { content: "\e63d"; }
+.Hui-iconfont-slider-left:before { content: "\e67d"; }
+.Hui-iconfont-tuku:before { content: "\e613"; }
+.Hui-iconfont-shuru:before { content: "\e647"; }
+.Hui-iconfont-sanjiao:before { content: "\e67e"; }
+.Hui-iconfont-share-renren:before { content: "\e6d8"; }
+.Hui-iconfont-share-tweibo:before { content: "\e6d9"; }
+.Hui-iconfont-arrow2-left:before { content: "\e6d4"; }
+.Hui-iconfont-paixu:before { content: "\e675"; }
+.Hui-iconfont-niming:before { content: "\e624"; }
+.Hui-iconfont-add:before { content: "\e600"; }
+.Hui-iconfont-root:before { content: "\e62d"; }
+.Hui-iconfont-xuanzhong:before { content: "\e676"; }
+.Hui-iconfont-weixuanzhong:before { content: "\e677"; }
+.Hui-iconfont-arrow2-bottom:before { content: "\e6d5"; }
+.Hui-iconfont-arrow2-top:before { content: "\e6d6"; }
+.Hui-iconfont-like2:before { content: "\e648"; }
+.Hui-iconfont-arrow2-right:before { content: "\e6d7"; }
+.Hui-iconfont-shangyishou:before { content: "\e6db"; }
+.Hui-iconfont-xiayishou:before { content: "\e6e3"; }
+.Hui-iconfont-share-weixin:before { content: "\e694"; }
+.Hui-iconfont-shenhe-tingyong:before { content: "\e631"; }
+.Hui-iconfont-gouxuan2:before { content: "\e601"; }
+.Hui-iconfont-selected:before { content: "\e617"; }
+.Hui-iconfont-jianhao:before { content: "\e6a1"; }
+.Hui-iconfont-user-group:before { content: "\e62b"; }
+.Hui-iconfont-yiguanzhu:before { content: "\e680"; }
+.Hui-iconfont-gengduo3:before { content: "\e6f9"; }
+.Hui-iconfont-comment:before { content: "\e622"; }
+.Hui-iconfont-tongji-zhu:before { content: "\e618"; }
+.Hui-iconfont-like:before { content: "\e649"; }
+.Hui-iconfont-shangjia:before { content: "\e6dc"; }
+.Hui-iconfont-save:before { content: "\e632"; }
+.Hui-iconfont-gongsi:before { content: "\e643"; }
+.Hui-iconfont-system:before { content: "\e62e"; }
+.Hui-iconfont-pifu:before { content: "\e62a"; }
+.Hui-iconfont-menu:before { content: "\e667"; }
+.Hui-iconfont-msg:before { content: "\e62f"; }
+.Hui-iconfont-huangguan1:before { content: "\e729"; }
+.Hui-iconfont-userid:before { content: "\e602"; }
+.Hui-iconfont-cang-selected:before { content: "\e630"; }
+.Hui-iconfont-yundown:before { content: "\e641"; }
+.Hui-iconfont-help:before { content: "\e633"; }
+.Hui-iconfont-chuku:before { content: "\e634"; }
+.Hui-iconfont-picture:before { content: "\e646"; }
+.Hui-iconfont-wenzhouyinxing:before { content: "\e6ed"; }
+.Hui-iconfont-ad:before { content: "\e635"; }
+.Hui-iconfont-fenlei:before { content: "\e681"; }
+.Hui-iconfont-saoyisao:before { content: "\e682"; }
+.Hui-iconfont-search:before { content: "\e683"; }
+.Hui-iconfont-tuwenxiangqing:before { content: "\e685"; }
+.Hui-iconfont-leijipingjia:before { content: "\e686"; }
+.Hui-iconfont-hetong:before { content: "\e636"; }
+.Hui-iconfont-tongji:before { content: "\e61a"; }
+.Hui-iconfont-quanbudingdan:before { content: "\e687"; }
+.Hui-iconfont-cang:before { content: "\e61b"; }
+.Hui-iconfont-xiaoxi:before { content: "\e68a"; }
+.Hui-iconfont-renwu:before { content: "\e637"; }
+.Hui-iconfont-more:before { content: "\e68b"; }
+.Hui-iconfont-zhizhao:before { content: "\e638"; }
+.Hui-iconfont-fabu:before { content: "\e603"; }
+.Hui-iconfont-shenhe-butongguo2:before { content: "\e6dd"; }
+.Hui-iconfont-share-qq:before { content: "\e67b"; }
+.Hui-iconfont-upload:before { content: "\e642"; }
+.Hui-iconfont-add2:before { content: "\e604"; }
+.Hui-iconfont-jiesuo:before { content: "\e605"; }
+.Hui-iconfont-zhongtumoshi:before { content: "\e68c"; }
+.Hui-iconfont-datumoshi:before { content: "\e68d"; }
+.Hui-iconfont-face2:before { content: "\e68e"; }
+.Hui-iconfont-huanyipi:before { content: "\e68f"; }
+.Hui-iconfont-shijian:before { content: "\e690"; }
+.Hui-iconfont-feedback:before { content: "\e691"; }
+.Hui-iconfont-feedback2:before { content: "\e692"; }
+.Hui-iconfont-share-pengyouquan:before { content: "\e693"; }
+.Hui-iconfont-zan2:before { content: "\e697"; }
+.Hui-iconfont-arrow3-bottom:before { content: "\e698"; }
+.Hui-iconfont-arrow3-top:before { content: "\e699"; }
+.Hui-iconfont-arrow3-right:before { content: "\e69a"; }
+.Hui-iconfont-arrow3-left:before { content: "\e69b"; }
+.Hui-iconfont-more2:before { content: "\e69c"; }
+.Hui-iconfont-cang2-selected:before { content: "\e69d"; }
+.Hui-iconfont-cang2:before { content: "\e69e"; }
+.Hui-iconfont-dangan:before { content: "\e639"; }
+.Hui-iconfont-money:before { content: "\e63a"; }
+.Hui-iconfont-share-weibo:before { content: "\e6da"; }
+.Hui-iconfont-email:before { content: "\e63b"; }
+.Hui-iconfont-tongji-xian:before { content: "\e61c"; }
+.Hui-iconfont-bank:before { content: "\e628"; }
+.Hui-iconfont-home:before { content: "\e625"; }
+.Hui-iconfont-user:before { content: "\e62c"; }
+.Hui-iconfont-log:before { content: "\e623"; }
+.Hui-iconfont-pages:before { content: "\e626"; }
+.Hui-iconfont-sim:before { content: "\e629"; }
+.Hui-iconfont-tingzhi:before { content: "\e6e4"; }
+.Hui-iconfont-dengdai:before { content: "\e606"; }
+.Hui-iconfont-user-add:before { content: "\e607"; }
+.Hui-iconfont-copy:before { content: "\e6ea"; }
+.Hui-iconfont-file:before { content: "\e63e"; }
+.Hui-iconfont-share-douban:before { content: "\e67c"; }
+.Hui-iconfont-share-zhihu:before { content: "\e689"; }
+.Hui-iconfont-daochu:before { content: "\e644"; }
+.Hui-iconfont-daoru:before { content: "\e645"; }
+.Hui-iconfont-weigouxuan2:before { content: "\e608"; }
+.Hui-iconfont-phone:before { content: "\e696"; }
+.Hui-iconfont-bold:before { content: "\e6e7"; }
+.Hui-iconfont-manage2:before { content: "\e63c"; }
+.Hui-iconfont-edit:before { content: "\e6df"; }
+.Hui-iconfont-del2:before { content: "\e609"; }
+.Hui-iconfont-duigou:before { content: "\e6e8"; }
+.Hui-iconfont-chongqi:before { content: "\e6f7"; }
+.Hui-iconfont-avatar:before { content: "\e60a"; }
+.Hui-iconfont-del:before { content: "\e60b"; }
+.Hui-iconfont-edit2:before { content: "\e60c"; }
+.Hui-iconfont-zanting:before { content: "\e6e5"; }
+.Hui-iconfont-apple:before { content: "\e64a"; }
+.Hui-iconfont-guangdayinxing:before { content: "\e6f0"; }
+.Hui-iconfont-minshengyinxing:before { content: "\e6f4"; }
+.Hui-iconfont-xiajia:before { content: "\e6de"; }
+.Hui-iconfont-manage:before { content: "\e61d"; }
+.Hui-iconfont-user2:before { content: "\e60d"; }
+.Hui-iconfont-code:before { content: "\e6ee"; }
+.Hui-iconfont-cut:before { content: "\e6ef"; }
+.Hui-iconfont-link:before { content: "\e6f1"; }
+.Hui-iconfont-new:before { content: "\e6f2"; }
+.Hui-iconfont-ordered-list:before { content: "\e6f3"; }
+.Hui-iconfont-unordered-list:before { content: "\e6f5"; }
+.Hui-iconfont-share-qzone:before { content: "\e6c8"; }
+.Hui-iconfont-suoding:before { content: "\e60e"; }
+.Hui-iconfont-tel2:before { content: "\e6a3"; }
+.Hui-iconfont-order:before { content: "\e627"; }
+.Hui-iconfont-shujutongji:before { content: "\e61e"; }
+.Hui-iconfont-del3:before { content: "\e6e2"; }
+.Hui-iconfont-add3:before { content: "\e610"; }
+.Hui-iconfont-add4:before { content: "\e61f"; }
+.Hui-iconfont-xiangpicha:before { content: "\e72a"; }
+.Hui-iconfont-key:before { content: "\e63f"; }
+.Hui-iconfont-yuyin2:before { content: "\e6a4"; }
+.Hui-iconfont-yuyin:before { content: "\e6a5"; }
+.Hui-iconfont-close:before { content: "\e6a6"; }
+.Hui-iconfont-xuanze:before { content: "\e6a7"; }
+.Hui-iconfont-xuanzhong1:before { content: "\e6a8"; }
+.Hui-iconfont-yiguanzhu1:before { content: "\e6a9"; }
+.Hui-iconfont-share:before { content: "\e6aa"; }
+.Hui-iconfont-zhuanfa:before { content: "\e6ab"; }
+.Hui-iconfont-tianqi-duoyun:before { content: "\e6ac"; }
+.Hui-iconfont-tianqi-mai:before { content: "\e6ad"; }
+.Hui-iconfont-tianqi-qing:before { content: "\e6ae"; }
+.Hui-iconfont-tianqi-wu:before { content: "\e6af"; }
+.Hui-iconfont-tianqi-xue:before { content: "\e6b0"; }
+.Hui-iconfont-tianqi-yin:before { content: "\e6b1"; }
+.Hui-iconfont-tianqi-yu:before { content: "\e6b2"; }
+.Hui-iconfont-daipingjia:before { content: "\e6b3"; }
+.Hui-iconfont-vip-card2:before { content: "\e6b4"; }
+.Hui-iconfont-jifen:before { content: "\e6b5"; }
+.Hui-iconfont-youhuiquan:before { content: "\e6b6"; }
+.Hui-iconfont-hongbao:before { content: "\e6b7"; }
+.Hui-iconfont-cart-selected:before { content: "\e6b8"; }
+.Hui-iconfont-cart-kong:before { content: "\e6b9"; }
+.Hui-iconfont-jiangjia:before { content: "\e6ba"; }
+.Hui-iconfont-liwu:before { content: "\e6bb"; }
+.Hui-iconfont-caiqie:before { content: "\e6bc"; }
+.Hui-iconfont-xuanzhuan:before { content: "\e6bd"; }
+.Hui-iconfont-bigpic:before { content: "\e6be"; }
+.Hui-iconfont-list:before { content: "\e6bf"; }
+.Hui-iconfont-middle:before { content: "\e6c0"; }
+.Hui-iconfont-hot:before { content: "\e6c1"; }
+.Hui-iconfont-paishe:before { content: "\e6c2"; }
+.Hui-iconfont-hot1:before { content: "\e6c3"; }
+.Hui-iconfont-new1:before { content: "\e6c4"; }
+.Hui-iconfont-xiaoxi1:before { content: "\e6c5"; }
+.Hui-iconfont-canshu:before { content: "\e6c6"; }
+.Hui-iconfont-tel:before { content: "\e6c7"; }
+.Hui-iconfont-dingwei:before { content: "\e6c9"; }
+.Hui-iconfont-hongbao2:before { content: "\e6ca"; }
+.Hui-iconfont-2code:before { content: "\e6cb"; }
+.Hui-iconfont-vip:before { content: "\e6cc"; }
+.Hui-iconfont-tishi:before { content: "\e6cd"; }
+.Hui-iconfont-dingyue:before { content: "\e6ce"; }
+.Hui-iconfont-italic:before { content: "\e6e9"; }
+.Hui-iconfont-yulan:before { content: "\e695"; }
+.Hui-iconfont-usergroup2:before { content: "\e611"; }
+.Hui-iconfont-goods:before { content: "\e620"; }
+.Hui-iconfont-paixingbang:before { content: "\e6cf"; }
+.Hui-iconfont-qingdaoyinxing:before { content: "\e6f6"; }
+.Hui-iconfont-kefu:before { content: "\e6d0"; }
+.Hui-iconfont-picture1:before { content: "\e612"; }
+.Hui-iconfont-weigouxuan:before { content: "\e614"; }
+.Hui-iconfont-fanqiang:before { content: "\e6fa"; }
+.Hui-iconfont-shenhe-weitongguo:before { content: "\e6e0"; }
+.Hui-iconfont-shenhe-tongguo:before { content: "\e6e1"; }
+.Hui-iconfont-tongji-bing:before { content: "\e621"; }
+.Hui-iconfont-gouxuan:before { content: "\e615"; }
+.Hui-iconfont-jiansheyinxing:before { content: "\e6f8"; }
+.Hui-iconfont-moban:before { content: "\e72b"; }
+.Hui-iconfont-pay-weixin:before { content: "\e719"; }
+.Hui-iconfont-pay-alipay-2:before { content: "\e71c"; }
+.Hui-iconfont-beijingyinxing:before { content: "\e6fb"; }
+.Hui-iconfont-guangdongfazhanyinxing:before { content: "\e703"; }
+.Hui-iconfont-zhaoshangyinxing:before { content: "\e704"; }
+.Hui-iconfont-zheshangyinxing:before { content: "\e712"; }
+.Hui-iconfont-zhongguonongyeyinxing:before { content: "\e713"; }
+.Hui-iconfont-cdbank:before { content: "\e714"; }
+.Hui-iconfont-gengduo2:before { content: "\e716"; }
+.Hui-iconfont-bofang:before { content: "\e6e6"; }
+.Hui-iconfont-gengduo4:before { content: "\e717"; }
+.Hui-iconfont-text-height:before { content: "\e6fc"; }
+.Hui-iconfont-text-width:before { content: "\e6fd"; }
+.Hui-iconfont-underline:before { content: "\e6fe"; }
+.Hui-iconfont-star:before { content: "\e6ff"; }
+.Hui-iconfont-star-half:before { content: "\e700"; }
+.Hui-iconfont-star-halfempty:before { content: "\e701"; }
+.Hui-iconfont-star-o:before { content: "\e702"; }
+.Hui-iconfont-font:before { content: "\e6ec"; }
+.Hui-iconfont-hangzhouyinxing:before { content: "\e718"; }
+.Hui-iconfont-jiaotongyinxing:before { content: "\e71a"; }
+.Hui-iconfont-gengduo:before { content: "\e715"; }
+.Hui-iconfont-avatar2:before { content: "\e705"; }
+.Hui-iconfont-close2:before { content: "\e706"; }
+.Hui-iconfont-about:before { content: "\e707"; }
+.Hui-iconfont-phone-android:before { content: "\e708"; }
+.Hui-iconfont-search1:before { content: "\e709"; }
+.Hui-iconfont-comment1:before { content: "\e70a"; }
+.Hui-iconfont-read:before { content: "\e70b"; }
+.Hui-iconfont-feedback1:before { content: "\e70c"; }
+.Hui-iconfont-practice:before { content: "\e70d"; }
+.Hui-iconfont-align-center:before { content: "\e70e"; }
+.Hui-iconfont-align-justify:before { content: "\e70f"; }
+.Hui-iconfont-align-left:before { content: "\e710"; }
+.Hui-iconfont-align-right:before { content: "\e711"; }
+.Hui-iconfont-paste:before { content: "\e6eb"; }
+.Hui-iconfont-pay-alipay-1:before { content: "\e71f"; }
+.Hui-iconfont-pufayinxing:before { content: "\e71b"; }
+.Hui-iconfont-gongshangyinxing:before { content: "\e71d"; }
+.Hui-iconfont-huaxiayinxing:before { content: "\e71e"; }
+.Hui-iconfont-youzhengyinxing:before { content: "\e721"; }
+.Hui-iconfont-zhongguoyinxing:before { content: "\e722"; }
+.Hui-iconfont-zhongxinyinxing:before { content: "\e723"; }
+.Hui-iconfont-shanghaiyinxing:before { content: "\e724"; }
+.Hui-iconfont-banzhu:before { content: "\e72c"; }
+.Hui-iconfont-yuedu:before { content: "\e720"; }
+.Hui-iconfont-yanjing:before { content: "\e725"; }
+.Hui-iconfont-power:before { content: "\e726"; }
+.Hui-iconfont-moban-2:before { content: "\e72d"; }

二進制
watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.eot


File diff suppressed because it is too large
+ 11 - 0
watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.min.css


File diff suppressed because it is too large
+ 1265 - 0
watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.svg


二進制
watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.ttf


二進制
watero-wechat-web/src/main/webapp/common/lib/Hui-iconfont/1.0.8/iconfont.woff


File diff suppressed because it is too large
+ 12 - 0
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/no-data-to-display.js


+ 150 - 0
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/no-data-to-display.src.js

@@ -0,0 +1,150 @@
+/**
+ * @license Highcharts JS v5.0.6 (2016-12-07)
+ * Plugin for displaying a message when there is no data visible in chart.
+ *
+ * (c) 2010-2016 Highsoft AS
+ * Author: Oystein Moseng
+ *
+ * License: www.highcharts.com/license
+ */
+(function(factory) {
+    if (typeof module === 'object' && module.exports) {
+        module.exports = factory;
+    } else {
+        factory(Highcharts);
+    }
+}(function(Highcharts) {
+    (function(H) {
+        /**
+         * Plugin for displaying a message when there is no data visible in chart.
+         *
+         * (c) 2010-2016 Highsoft AS
+         * Author: Oystein Moseng
+         *
+         * License: www.highcharts.com/license
+         */
+        'use strict';
+
+        var seriesTypes = H.seriesTypes,
+            chartPrototype = H.Chart.prototype,
+            defaultOptions = H.getOptions(),
+            extend = H.extend,
+            each = H.each;
+
+        // Add language option
+        extend(defaultOptions.lang, {
+            noData: 'No data to display'
+        });
+
+        // Add default display options for message
+        defaultOptions.noData = {
+            position: {
+                x: 0,
+                y: 0,
+                align: 'center',
+                verticalAlign: 'middle'
+            }
+            // useHTML: false
+        };
+
+
+
+        /**
+         * Define hasData functions for series. These return true if there are data points on this series within the plot area
+         */
+        function hasDataPie() {
+            return !!this.points.length; /* != 0 */
+        }
+
+        each(['pie', 'gauge', 'waterfall', 'bubble', 'treemap'], function(type) {
+            if (seriesTypes[type]) {
+                seriesTypes[type].prototype.hasData = hasDataPie;
+            }
+        });
+
+        H.Series.prototype.hasData = function() {
+            return this.visible && this.dataMax !== undefined && this.dataMin !== undefined; // #3703
+        };
+
+        /**
+         * Display a no-data message.
+         *
+         * @param {String} str An optional message to show in place of the default one 
+         */
+        chartPrototype.showNoData = function(str) {
+            var chart = this,
+                options = chart.options,
+                text = str || options.lang.noData,
+                noDataOptions = options.noData;
+
+            if (!chart.noDataLabel) {
+                chart.noDataLabel = chart.renderer
+                    .label(
+                        text,
+                        0,
+                        0,
+                        null,
+                        null,
+                        null,
+                        noDataOptions.useHTML,
+                        null,
+                        'no-data'
+                    );
+
+
+
+                chart.noDataLabel.add();
+
+                chart.noDataLabel.align(extend(chart.noDataLabel.getBBox(), noDataOptions.position), false, 'plotBox');
+            }
+        };
+
+        /**
+         * Hide no-data message	
+         */
+        chartPrototype.hideNoData = function() {
+            var chart = this;
+            if (chart.noDataLabel) {
+                chart.noDataLabel = chart.noDataLabel.destroy();
+            }
+        };
+
+        /**
+         * Returns true if there are data points within the plot area now
+         */
+        chartPrototype.hasData = function() {
+            var chart = this,
+                series = chart.series,
+                i = series.length;
+
+            while (i--) {
+                if (series[i].hasData() && !series[i].options.isInternal) {
+                    return true;
+                }
+            }
+
+            return false;
+        };
+
+        /**
+         * Show no-data message if there is no data in sight. Otherwise, hide it.
+         */
+        function handleNoData() {
+            var chart = this;
+            if (chart.hasData()) {
+                chart.hideNoData();
+            } else {
+                chart.showNoData();
+            }
+        }
+
+        /**
+         * Add event listener to handle automatic display of no-data message
+         */
+        chartPrototype.callbacks.push(function(chart) {
+            H.addEvent(chart, 'load', handleNoData);
+            H.addEvent(chart, 'redraw', handleNoData);
+        });
+
+    }(Highcharts));
+}));

File diff suppressed because it is too large
+ 18 - 0
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/offline-exporting.js


+ 492 - 0
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/offline-exporting.src.js

@@ -0,0 +1,492 @@
+/**
+ * @license Highcharts JS v5.0.6 (2016-12-07)
+ * Client side exporting module
+ *
+ * (c) 2015 Torstein Honsi / Oystein Moseng
+ *
+ * License: www.highcharts.com/license
+ */
+(function(factory) {
+    if (typeof module === 'object' && module.exports) {
+        module.exports = factory;
+    } else {
+        factory(Highcharts);
+    }
+}(function(Highcharts) {
+    (function(Highcharts) {
+        /**
+         * Client side exporting module
+         *
+         * (c) 2015 Torstein Honsi / Oystein Moseng
+         *
+         * License: www.highcharts.com/license
+         */
+
+        'use strict';
+        /*global MSBlobBuilder */
+
+        var merge = Highcharts.merge,
+            win = Highcharts.win,
+            nav = win.navigator,
+            doc = win.document,
+            each = Highcharts.each,
+            domurl = win.URL || win.webkitURL || win,
+            isMSBrowser = /Edge\/|Trident\/|MSIE /.test(nav.userAgent),
+            loadEventDeferDelay = isMSBrowser ? 150 : 0; // Milliseconds to defer image load event handlers to offset IE bug
+
+        // Dummy object so we can reuse our canvas-tools.js without errors
+        Highcharts.CanVGRenderer = {};
+
+
+        /**
+         * Downloads a script and executes a callback when done.
+         * @param {String} scriptLocation
+         * @param {Function} callback
+         */
+        function getScript(scriptLocation, callback) {
+            var head = doc.getElementsByTagName('head')[0],
+                script = doc.createElement('script');
+
+            script.type = 'text/javascript';
+            script.src = scriptLocation;
+            script.onload = callback;
+            script.onerror = function() {
+                console.error('Error loading script', scriptLocation); // eslint-disable-line no-console
+            };
+
+            head.appendChild(script);
+        }
+
+        // Download contents by dataURL/blob
+        Highcharts.downloadURL = function(dataURL, filename) {
+            var a = doc.createElement('a'),
+                windowRef;
+
+            // IE specific blob implementation
+            if (nav.msSaveOrOpenBlob) {
+                nav.msSaveOrOpenBlob(dataURL, filename);
+                return;
+            }
+
+            // Try HTML5 download attr if supported
+            if (a.download !== undefined) {
+                a.href = dataURL;
+                a.download = filename; // HTML5 download attribute
+                a.target = '_blank';
+                doc.body.appendChild(a);
+                a.click();
+                doc.body.removeChild(a);
+            } else {
+                // No download attr, just opening data URI
+                try {
+                    windowRef = win.open(dataURL, 'chart');
+                    if (windowRef === undefined || windowRef === null) {
+                        throw 'Failed to open window';
+                    }
+                } catch (e) {
+                    // window.open failed, trying location.href
+                    win.location.href = dataURL;
+                }
+            }
+        };
+
+        // Get blob URL from SVG code. Falls back to normal data URI.
+        Highcharts.svgToDataUrl = function(svg) {
+            var webKit = nav.userAgent.indexOf('WebKit') > -1 && nav.userAgent.indexOf('Chrome') < 0; // Webkit and not chrome
+            try {
+                // Safari requires data URI since it doesn't allow navigation to blob URLs
+                // Firefox has an issue with Blobs and internal references, leading to gradients not working using Blobs (#4550)
+                if (!webKit && nav.userAgent.toLowerCase().indexOf('firefox') < 0) {
+                    return domurl.createObjectURL(new win.Blob([svg], {
+                        type: 'image/svg+xml;charset-utf-16'
+                    }));
+                }
+            } catch (e) {
+                // Ignore
+            }
+            return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(svg);
+        };
+
+        // Get data:URL from image URL
+        // Pass in callbacks to handle results. finallyCallback is always called at the end of the process. Supplying this callback is optional.
+        // All callbacks receive four arguments: imageURL, imageType, callbackArgs and scale. callbackArgs is used only by callbacks and can contain whatever.
+        Highcharts.imageToDataUrl = function(imageURL, imageType, callbackArgs, scale, successCallback, taintedCallback, noCanvasSupportCallback, failedLoadCallback, finallyCallback) {
+            var img = new win.Image(),
+                taintedHandler,
+                loadHandler = function() {
+                    setTimeout(function() {
+                        var canvas = doc.createElement('canvas'),
+                            ctx = canvas.getContext && canvas.getContext('2d'),
+                            dataURL;
+                        try {
+                            if (!ctx) {
+                                noCanvasSupportCallback(imageURL, imageType, callbackArgs, scale);
+                            } else {
+                                canvas.height = img.height * scale;
+                                canvas.width = img.width * scale;
+                                ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
+
+                                // Now we try to get the contents of the canvas.
+                                try {
+                                    dataURL = canvas.toDataURL(imageType);
+                                    successCallback(dataURL, imageType, callbackArgs, scale);
+                                } catch (e) {
+                                    taintedHandler(imageURL, imageType, callbackArgs, scale);
+                                }
+                            }
+                        } finally {
+                            if (finallyCallback) {
+                                finallyCallback(imageURL, imageType, callbackArgs, scale);
+                            }
+                        }
+                    }, loadEventDeferDelay); // IE bug where image is not always ready despite calling load event.
+                },
+                // Image load failed (e.g. invalid URL)
+                errorHandler = function() {
+                    failedLoadCallback(imageURL, imageType, callbackArgs, scale);
+                    if (finallyCallback) {
+                        finallyCallback(imageURL, imageType, callbackArgs, scale);
+                    }
+                };
+
+            // This is called on load if the image drawing to canvas failed with a security error.
+            // We retry the drawing with crossOrigin set to Anonymous.
+            taintedHandler = function() {
+                img = new win.Image();
+                taintedHandler = taintedCallback;
+                img.crossOrigin = 'Anonymous'; // Must be set prior to loading image source
+                img.onload = loadHandler;
+                img.onerror = errorHandler;
+                img.src = imageURL;
+            };
+
+            img.onload = loadHandler;
+            img.onerror = errorHandler;
+            img.src = imageURL;
+        };
+
+        /**
+         * Get data URL to an image of an SVG and call download on it
+         *
+         * options object:
+         *		filename: Name of resulting downloaded file without extension
+         *		type: File type of resulting download
+         *		scale: Scaling factor of downloaded image compared to source
+         *      libURL: URL pointing to location of dependency scripts to download on demand
+         */
+        Highcharts.downloadSVGLocal = function(svg, options, failCallback, successCallback) {
+            var svgurl,
+                blob,
+                objectURLRevoke = true,
+                finallyHandler,
+                libURL = options.libURL || Highcharts.getOptions().exporting.libURL,
+                dummySVGContainer = doc.createElement('div'),
+                imageType = options.type || 'image/png',
+                filename = (options.filename || 'chart') + '.' + (imageType === 'image/svg+xml' ? 'svg' : imageType.split('/')[1]),
+                scale = options.scale || 1;
+
+            libURL = libURL.slice(-1) !== '/' ? libURL + '/' : libURL; // Allow libURL to end with or without fordward slash
+
+            function svgToPdf(svgElement, margin) {
+                var width = svgElement.width.baseVal.value + 2 * margin,
+                    height = svgElement.height.baseVal.value + 2 * margin,
+                    pdf = new win.jsPDF('l', 'pt', [width, height]); // eslint-disable-line new-cap
+                win.svgElementToPdf(svgElement, pdf, {
+                    removeInvalid: true
+                });
+                return pdf.output('datauristring');
+            }
+
+            function downloadPDF() {
+                dummySVGContainer.innerHTML = svg;
+                var textElements = dummySVGContainer.getElementsByTagName('text'),
+                    titleElements,
+                    svgElementStyle = dummySVGContainer.getElementsByTagName('svg')[0].style;
+                // Workaround for the text styling. Making sure it does pick up the root element
+                each(textElements, function(el) {
+                    // Workaround for the text styling. making sure it does pick up the root element
+                    each(['font-family', 'font-size'], function(property) {
+                        if (!el.style[property] && svgElementStyle[property]) {
+                            el.style[property] = svgElementStyle[property];
+                        }
+                    });
+                    el.style['font-family'] = el.style['font-family'] && el.style['font-family'].split(' ').splice(-1);
+                    // Workaround for plotband with width, removing title from text nodes
+                    titleElements = el.getElementsByTagName('title');
+                    each(titleElements, function(titleElement) {
+                        el.removeChild(titleElement);
+                    });
+                });
+                var svgData = svgToPdf(dummySVGContainer.firstChild, 0);
+                Highcharts.downloadURL(svgData, filename);
+                if (successCallback) {
+                    successCallback();
+                }
+            }
+
+            // Initiate download depending on file type
+            if (imageType === 'image/svg+xml') {
+                // SVG download. In this case, we want to use Microsoft specific Blob if available
+                try {
+                    if (nav.msSaveOrOpenBlob) {
+                        blob = new MSBlobBuilder();
+                        blob.append(svg);
+                        svgurl = blob.getBlob('image/svg+xml');
+                    } else {
+                        svgurl = Highcharts.svgToDataUrl(svg);
+                    }
+                    Highcharts.downloadURL(svgurl, filename);
+                    if (successCallback) {
+                        successCallback();
+                    }
+                } catch (e) {
+                    failCallback();
+                }
+            } else if (imageType === 'application/pdf') {
+                if (win.jsPDF && win.svgElementToPdf) {
+                    downloadPDF();
+                } else {
+                    // Must load pdf libraries first
+                    objectURLRevoke = true; // Don't destroy the object URL yet since we are doing things asynchronously. A cleaner solution would be nice, but this will do for now.
+                    getScript(libURL + 'jspdf.js', function() {
+                        getScript(libURL + 'rgbcolor.js', function() {
+                            getScript(libURL + 'svg2pdf.js', function() {
+                                downloadPDF();
+                            });
+                        });
+                    });
+                }
+            } else {
+                // PNG/JPEG download - create bitmap from SVG
+
+                svgurl = Highcharts.svgToDataUrl(svg);
+                finallyHandler = function() {
+                    try {
+                        domurl.revokeObjectURL(svgurl);
+                    } catch (e) {
+                        // Ignore
+                    }
+                };
+                // First, try to get PNG by rendering on canvas
+                Highcharts.imageToDataUrl(svgurl, imageType, { /* args */ }, scale, function(imageURL) {
+                        // Success
+                        try {
+                            Highcharts.downloadURL(imageURL, filename);
+                            if (successCallback) {
+                                successCallback();
+                            }
+                        } catch (e) {
+                            failCallback();
+                        }
+                    }, function() {
+                        // Failed due to tainted canvas
+                        // Create new and untainted canvas
+                        var canvas = doc.createElement('canvas'),
+                            ctx = canvas.getContext('2d'),
+                            imageWidth = svg.match(/^<svg[^>]*width\s*=\s*\"?(\d+)\"?[^>]*>/)[1] * scale,
+                            imageHeight = svg.match(/^<svg[^>]*height\s*=\s*\"?(\d+)\"?[^>]*>/)[1] * scale,
+                            downloadWithCanVG = function() {
+                                ctx.drawSvg(svg, 0, 0, imageWidth, imageHeight);
+                                try {
+                                    Highcharts.downloadURL(nav.msSaveOrOpenBlob ? canvas.msToBlob() : canvas.toDataURL(imageType), filename);
+                                    if (successCallback) {
+                                        successCallback();
+                                    }
+                                } catch (e) {
+                                    failCallback();
+                                } finally {
+                                    finallyHandler();
+                                }
+                            };
+
+                        canvas.width = imageWidth;
+                        canvas.height = imageHeight;
+                        if (win.canvg) {
+                            // Use preloaded canvg
+                            downloadWithCanVG();
+                        } else {
+                            // Must load canVG first
+                            objectURLRevoke = true; // Don't destroy the object URL yet since we are doing things asynchronously. A cleaner solution would be nice, but this will do for now.
+                            getScript(libURL + 'rgbcolor.js', function() { // Get RGBColor.js first
+                                getScript(libURL + 'canvg.js', function() {
+                                    downloadWithCanVG();
+                                });
+                            });
+                        }
+                    },
+                    // No canvas support
+                    failCallback,
+                    // Failed to load image
+                    failCallback,
+                    // Finally
+                    function() {
+                        if (objectURLRevoke) {
+                            finallyHandler();
+                        }
+                    });
+            }
+        };
+
+        // Get SVG of chart prepared for client side export. This converts embedded images in the SVG to data URIs.
+        // The options and chartOptions arguments are passed to the getSVGForExport function.
+        Highcharts.Chart.prototype.getSVGForLocalExport = function(options, chartOptions, failCallback, successCallback) {
+            var chart = this,
+                images,
+                imagesEmbedded = 0,
+                chartCopyContainer,
+                chartCopyOptions,
+                el,
+                i,
+                l,
+                // After grabbing the SVG of the chart's copy container we need to do sanitation on the SVG
+                sanitize = function(svg) {
+                    return chart.sanitizeSVG(svg, chartCopyOptions);
+                },
+                // Success handler, we converted image to base64!
+                embeddedSuccess = function(imageURL, imageType, callbackArgs) {
+                    ++imagesEmbedded;
+
+                    // Change image href in chart copy
+                    callbackArgs.imageElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', imageURL);
+
+                    // When done with last image we have our SVG
+                    if (imagesEmbedded === images.length) {
+                        successCallback(sanitize(chartCopyContainer.innerHTML));
+                    }
+                };
+
+            // Hook into getSVG to get a copy of the chart copy's container
+            Highcharts.wrap(
+                Highcharts.Chart.prototype,
+                'getChartHTML',
+                function(proceed) {
+                    var ret = proceed.apply(
+                        this,
+                        Array.prototype.slice.call(arguments, 1)
+                    );
+                    chartCopyOptions = this.options;
+                    chartCopyContainer = this.container.cloneNode(true);
+                    return ret;
+                }
+            );
+
+            // Trigger hook to get chart copy
+            chart.getSVGForExport(options, chartOptions);
+            images = chartCopyContainer.getElementsByTagName('image');
+
+            try {
+                // If there are no images to embed, the SVG is okay now.
+                if (!images.length) {
+                    successCallback(sanitize(chartCopyContainer.innerHTML)); // Use SVG of chart copy
+                    return;
+                }
+
+                // Go through the images we want to embed
+                for (i = 0, l = images.length; i < l; ++i) {
+                    el = images[i];
+                    Highcharts.imageToDataUrl(el.getAttributeNS('http://www.w3.org/1999/xlink', 'href'), 'image/png', {
+                            imageElement: el
+                        }, options.scale,
+                        embeddedSuccess,
+                        // Tainted canvas
+                        failCallback,
+                        // No canvas support
+                        failCallback,
+                        // Failed to load source
+                        failCallback
+                    );
+                }
+            } catch (e) {
+                failCallback();
+            }
+        };
+
+        /**
+         * Add a new method to the Chart object to perform a local download
+         */
+        Highcharts.Chart.prototype.exportChartLocal = function(exportingOptions, chartOptions) {
+            var chart = this,
+                options = Highcharts.merge(chart.options.exporting, exportingOptions),
+                fallbackToExportServer = function() {
+                    if (options.fallbackToExportServer === false) {
+                        if (options.error) {
+                            options.error();
+                        } else {
+                            throw 'Fallback to export server disabled';
+                        }
+                    } else {
+                        chart.exportChart(options);
+                    }
+                },
+                svgSuccess = function(svg) {
+                    // If SVG contains foreignObjects all exports except SVG will fail,
+                    // as both CanVG and svg2pdf choke on this. Gracefully fall back.
+                    if (
+                        svg.indexOf('<foreignObject') > -1 &&
+                        options.type !== 'image/svg+xml'
+                    ) {
+                        fallbackToExportServer();
+                    } else {
+                        Highcharts.downloadSVGLocal(svg, options, fallbackToExportServer);
+                    }
+                };
+
+            // If we have embedded images and are exporting to JPEG/PNG, Microsoft 
+            // browsers won't handle it, so fall back.
+            if (
+                (isMSBrowser && options.type !== 'image/svg+xml' ||
+                    options.type === 'application/pdf') &&
+                chart.container.getElementsByTagName('image').length
+            ) {
+                fallbackToExportServer();
+                return;
+            }
+
+            chart.getSVGForLocalExport(options, chartOptions, fallbackToExportServer, svgSuccess);
+        };
+
+        // Extend the default options to use the local exporter logic
+        merge(true, Highcharts.getOptions().exporting, {
+            libURL: 'https://code.highcharts.com/5.0.6/lib/',
+            buttons: {
+                contextButton: {
+                    menuItems: [{
+                        textKey: 'printChart',
+                        onclick: function() {
+                            this.print();
+                        }
+                    }, {
+                        separator: true
+                    }, {
+                        textKey: 'downloadPNG',
+                        onclick: function() {
+                            this.exportChartLocal();
+                        }
+                    }, {
+                        textKey: 'downloadJPEG',
+                        onclick: function() {
+                            this.exportChartLocal({
+                                type: 'image/jpeg'
+                            });
+                        }
+                    }, {
+                        textKey: 'downloadSVG',
+                        onclick: function() {
+                            this.exportChartLocal({
+                                type: 'image/svg+xml'
+                            });
+                        }
+                    }, {
+                        textKey: 'downloadPDF',
+                        onclick: function() {
+                            this.exportChartLocal({
+                                type: 'application/pdf'
+                            });
+                        }
+                    }]
+                }
+            }
+        });
+
+    }(Highcharts));
+}));

File diff suppressed because it is too large
+ 10 - 0
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/overlapping-datalabels.js


+ 164 - 0
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/js/modules/overlapping-datalabels.src.js

@@ -0,0 +1,164 @@
+/**
+ * @license Highcharts JS v5.0.6 (2016-12-07)
+ *
+ * (c) 2009-2016 Torstein Honsi
+ *
+ * License: www.highcharts.com/license
+ */
+(function(factory) {
+    if (typeof module === 'object' && module.exports) {
+        module.exports = factory;
+    } else {
+        factory(Highcharts);
+    }
+}(function(Highcharts) {
+    (function(H) {
+        /**
+         * (c) 2009-2016 Torstein Honsi
+         *
+         * License: www.highcharts.com/license
+         */
+        'use strict';
+        /**
+         * Highcharts module to hide overlapping data labels. This module is included in Highcharts.
+         */
+        var Chart = H.Chart,
+            each = H.each,
+            pick = H.pick,
+            addEvent = H.addEvent;
+
+        // Collect potensial overlapping data labels. Stack labels probably don't need to be 
+        // considered because they are usually accompanied by data labels that lie inside the columns.
+        Chart.prototype.callbacks.push(function(chart) {
+            function collectAndHide() {
+                var labels = [];
+
+                each(chart.series, function(series) {
+                    var dlOptions = series.options.dataLabels,
+                        collections = series.dataLabelCollections || ['dataLabel']; // Range series have two collections
+                    if ((dlOptions.enabled || series._hasPointLabels) && !dlOptions.allowOverlap && series.visible) { // #3866
+                        each(collections, function(coll) {
+                            each(series.points, function(point) {
+                                if (point[coll]) {
+                                    point[coll].labelrank = pick(point.labelrank, point.shapeArgs && point.shapeArgs.height); // #4118
+                                    labels.push(point[coll]);
+                                }
+                            });
+                        });
+                    }
+                });
+                chart.hideOverlappingLabels(labels);
+            }
+
+            // Do it now ...
+            collectAndHide();
+
+            // ... and after each chart redraw
+            addEvent(chart, 'redraw', collectAndHide);
+
+        });
+
+        /**
+         * Hide overlapping labels. Labels are moved and faded in and out on zoom to provide a smooth 
+         * visual imression.
+         */
+        Chart.prototype.hideOverlappingLabels = function(labels) {
+
+            var len = labels.length,
+                label,
+                i,
+                j,
+                label1,
+                label2,
+                isIntersecting,
+                pos1,
+                pos2,
+                parent1,
+                parent2,
+                padding,
+                intersectRect = function(x1, y1, w1, h1, x2, y2, w2, h2) {
+                    return !(
+                        x2 > x1 + w1 ||
+                        x2 + w2 < x1 ||
+                        y2 > y1 + h1 ||
+                        y2 + h2 < y1
+                    );
+                };
+
+            // Mark with initial opacity
+            for (i = 0; i < len; i++) {
+                label = labels[i];
+                if (label) {
+                    label.oldOpacity = label.opacity;
+                    label.newOpacity = 1;
+                }
+            }
+
+            // Prevent a situation in a gradually rising slope, that each label
+            // will hide the previous one because the previous one always has
+            // lower rank.
+            labels.sort(function(a, b) {
+                return (b.labelrank || 0) - (a.labelrank || 0);
+            });
+
+            // Detect overlapping labels
+            for (i = 0; i < len; i++) {
+                label1 = labels[i];
+
+                for (j = i + 1; j < len; ++j) {
+                    label2 = labels[j];
+                    if (label1 && label2 && label1.placed && label2.placed && label1.newOpacity !== 0 && label2.newOpacity !== 0) {
+                        pos1 = label1.alignAttr;
+                        pos2 = label2.alignAttr;
+                        parent1 = label1.parentGroup; // Different panes have different positions
+                        parent2 = label2.parentGroup;
+                        padding = 2 * (label1.box ? 0 : label1.padding); // Substract the padding if no background or border (#4333)
+                        isIntersecting = intersectRect(
+                            pos1.x + parent1.translateX,
+                            pos1.y + parent1.translateY,
+                            label1.width - padding,
+                            label1.height - padding,
+                            pos2.x + parent2.translateX,
+                            pos2.y + parent2.translateY,
+                            label2.width - padding,
+                            label2.height - padding
+                        );
+
+                        if (isIntersecting) {
+                            (label1.labelrank < label2.labelrank ? label1 : label2).newOpacity = 0;
+                        }
+                    }
+                }
+            }
+
+            // Hide or show
+            each(labels, function(label) {
+                var complete,
+                    newOpacity;
+
+                if (label) {
+                    newOpacity = label.newOpacity;
+
+                    if (label.oldOpacity !== newOpacity && label.placed) {
+
+                        // Make sure the label is completely hidden to avoid catching clicks (#4362)
+                        if (newOpacity) {
+                            label.show(true);
+                        } else {
+                            complete = function() {
+                                label.hide();
+                            };
+                        }
+
+                        // Animate or set the opacity					
+                        label.alignAttr.opacity = newOpacity;
+                        label[label.isOld ? 'animate' : 'attr'](label.alignAttr, null, complete);
+
+                    }
+                    label.isOld = true;
+                }
+            });
+        };
+
+    }(Highcharts));
+}));

二進制
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/license.pdf


+ 15 - 0
watero-wechat-web/src/main/webapp/common/lib/hcharts/Highcharts/5.0.6/readme.txt

@@ -0,0 +1,15 @@
+Highcharts JS v5.0.6 (2016-12-07)
+
+License: http://www.highcharts.com.cn/license
+
+Changelog: http://www.hcharts.cn/docs/changelog
+
+Demos: http://www.hcharts.cn/demos/highcharts
+
+Docs: http://www.hcharts.cn/docs
+
+API: http://api.hcharts.cn/highcharts
+
+Copyright @ 2016 Highsoft AS (http://highsoft.com)
+
+中国地区由杭州简数科技有限公司提供服务(http://jianshukeji.com)

File diff suppressed because it is too large
+ 12 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.SuperSlide/2.1.1/jquery.SuperSlide.min.js


+ 144 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.contextmenu/jquery.contextmenu.r2.js

@@ -0,0 +1,144 @@
+/*
+ * ContextMenu - jQuery plugin for right-click context menus
+ *
+ * Author: Chris Domigan
+ * Contributors: Dan G. Switzer, II
+ * Parts of this plugin are inspired by Joern Zaefferer's Tooltip plugin
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+ * Version: r2
+ * Date: 16 July 2007
+ *
+ * For documentation visit http://www.trendskitchens.co.nz/jquery/contextmenu/
+ *
+ */
+
+(function($) {
+
+ 	var menu, shadow, trigger, content, hash, currentTarget;
+  var defaults = {
+    menuStyle: {
+      listStyle: 'none',
+      padding: '1px',
+      margin: '0px',
+      backgroundColor: '#fff',
+      border: '1px solid #999',
+      width: '100px'
+    },
+    itemStyle: {
+      margin: '0px',
+      color: '#000',
+      display: 'block',
+      cursor: 'default',
+      padding: '3px',
+      border: '1px solid #fff',
+      backgroundColor: 'transparent'
+    },
+    itemHoverStyle: {
+      border: '1px solid #0a246a',
+      backgroundColor: '#b6bdd2'
+    },
+    eventPosX: 'pageX',
+    eventPosY: 'pageY',
+    shadow : true,
+    onContextMenu: null,
+    onShowMenu: null
+ 	};
+
+  $.fn.contextMenu = function(id, options) {
+    if (!menu) {                                      // Create singleton menu
+      menu = $('<div id="jqContextMenu"></div>')
+               .hide()
+               .css({position:'absolute', zIndex:'500'})
+               .appendTo('body')
+               .bind('click', function(e) {
+                 e.stopPropagation();
+               });
+    }
+    if (!shadow) {
+      shadow = $('<div></div>')
+                 .css({backgroundColor:'#000',position:'absolute',opacity:0.2,zIndex:499})
+                 .appendTo('body')
+                 .hide();
+    }
+    hash = hash || [];
+    hash.push({
+      id : id,
+      menuStyle: $.extend({}, defaults.menuStyle, options.menuStyle || {}),
+      itemStyle: $.extend({}, defaults.itemStyle, options.itemStyle || {}),
+      itemHoverStyle: $.extend({}, defaults.itemHoverStyle, options.itemHoverStyle || {}),
+      bindings: options.bindings || {},
+      shadow: options.shadow || options.shadow === false ? options.shadow : defaults.shadow,
+      onContextMenu: options.onContextMenu || defaults.onContextMenu,
+      onShowMenu: options.onShowMenu || defaults.onShowMenu,
+      eventPosX: options.eventPosX || defaults.eventPosX,
+      eventPosY: options.eventPosY || defaults.eventPosY
+    });
+
+    var index = hash.length - 1;
+    $(this).bind('contextmenu', function(e) {
+      // Check if onContextMenu() defined
+      var bShowContext = (!!hash[index].onContextMenu) ? hash[index].onContextMenu(e) : true;
+      if (bShowContext) display(index, this, e, options);
+      return false;
+    });
+    return this;
+  };
+
+  function display(index, trigger, e, options) {
+    var cur = hash[index];
+    content = $('#'+cur.id).find('ul:first').clone(true);
+    content.css(cur.menuStyle).find('li').css(cur.itemStyle).hover(
+      function() {
+        $(this).css(cur.itemHoverStyle);
+      },
+      function(){
+        $(this).css(cur.itemStyle);
+      }
+    ).find('img').css({verticalAlign:'middle',paddingRight:'2px'});
+
+    // Send the content to the menu
+    menu.html(content);
+
+    // if there's an onShowMenu, run it now -- must run after content has been added
+		// if you try to alter the content variable before the menu.html(), IE6 has issues
+		// updating the content
+    if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);
+
+    $.each(cur.bindings, function(id, func) {
+      $('#'+id, menu).bind('click', function(e) {
+        hide();
+        func(trigger, currentTarget);
+      });
+    });
+
+    menu.css({'left':e[cur.eventPosX],'top':e[cur.eventPosY]}).show();
+    if (cur.shadow) shadow.css({width:menu.width(),height:menu.height(),left:e.pageX+2,top:e.pageY+2}).show();
+    $(document).one('click', hide);
+  }
+
+  function hide() {
+    menu.hide();
+    shadow.hide();
+  }
+
+  // Apply defaults
+  $.contextMenu = {
+    defaults : function(userDefaults) {
+      $.each(userDefaults, function(i, val) {
+        if (typeof val == 'object' && defaults[i]) {
+          $.extend(defaults[i], val);
+        }
+        else defaults[i] = val;
+      });
+    }
+  };
+
+})(jQuery);
+
+$(function() {
+  $('div.contextMenu').hide();
+});

+ 233 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.ui/Popt.js

@@ -0,0 +1,233 @@
+Array.prototype.unique = function () {//去数组重复
+    return this.sort().join(",,").replace(/(,|^)([^,]+)(,,\2)+(,|$)/g, "$1$2$4").replace(/,,+/g, ",").replace(/,$/, "").split(",");
+}
+var Iput = {
+    confg: {
+        hand: "0", //0对像位置1鼠标位置divID滚动位置
+        idIframe: "PoPx", //默认可不用改
+        idBox: "PoPy", //默认可不用改
+        content: "", //传过来的内容
+        ok: null, //弹出框之后执行的函数
+        id: null, //不能为空一般传this对像而不是对像ID
+        event: window.event, //这个必写一般为e就可以了
+        top: 0, //顶部偏移位置
+        left: 0, //左部偏移位置
+        bodyHeight: 0, //在被position:absolute元素下得到HTML真实高度
+        bodyWidth: 0,
+        width: 0,
+        soll: null,
+        pop: null //指定ID点击时不关闭
+    },
+    get: function (obj) { return document.getElementById(obj); },
+    lft: function (e) {
+        var l = 0;
+        while (e) { l += e.offsetLeft; e = e.offsetParent; }
+        return l
+    },
+    ltp: function (e) {
+        var t = 0;
+        while (e) { t += e.offsetTop; e = e.offsetParent; }
+        return t
+    },
+    clear: function () {
+        Iput.confg.hand = "0"; Iput.confg.ok = null; Iput.confg.top = 0; Iput.confg.left = 0; Iput.confg.bodyHeight = 0; Iput.confg.bodyWidth = 0; Iput.confg.width = 0; Iput.confg.pop = null;
+    },
+    stopBubble: function (e) {
+        if (e && e.stopPropagation) {
+            e.stopPropagation();    //w3c
+        } else {
+            window.event.cancelBubble = true; //IE
+        }
+    },
+    pop: function () {
+        var $a = document.getElementsByTagName("body").item(0);
+        var $c = document.createElement("iframe");
+        var $b = document.createElement("div");
+        $c.setAttribute('id', Iput.confg.idIframe);
+        $c.setAttribute("src", "about:blank");
+        $c.style.zindex = '100';
+        $c.frameBorder = "0";
+        $c.style.width = "0px";
+        $c.style.height = "0px";
+        $c.style.position = 'absolute';
+        $b.setAttribute('id', Iput.confg.idBox);
+        $b.setAttribute('align', 'left');
+        $b.style.position = 'absolute';
+        $b.style.background = 'transparent';
+        $b.style.zIndex = '20000';
+        if ($a) {
+            if (Iput.get(Iput.confg.idIframe)) {
+                Iput.colse();
+            }
+            $a.appendChild($c);
+            if ($c) {
+                $c.ownerDocument.body.appendChild($b);
+            }
+            Iput.get(Iput.confg.idBox).innerHTML = Iput.confg.content;
+            Iput.drice(Iput.confg.event);
+        }
+
+        if (!document.all) {
+            window.document.addEventListener("click", Iput.hide, false);
+        }
+        else {
+            window.document.attachEvent("onclick", Iput.hide);
+        }
+    },
+    drice: function (e) {
+        var bodyHith = Iput.confg.bodyHeight == 0 ? document.body.scrollHeight : Iput.confg.bodyHeight;
+        var bodywidth = Iput.confg.bodyWidth == 0 ? document.body.scrollWidth : Iput.confg.bodyWidth;
+        if (!e) e = window.event;
+        var top = 0, left = 0;
+        var a = Iput.get(Iput.confg.idBox);
+        var b = Iput.get(Iput.confg.idIframe);
+        var c = Iput.confg.id.offsetHeight;
+        var d = Iput.confg.id.offsetWidth;
+        var w = 0;
+        var st = 0;
+        var sl = 0;
+        if (Iput.confg.soll != null) {
+            st = document.getElementById(Iput.confg.soll).scrollTop;
+            sl = document.getElementById(Iput.confg.soll).scrollLeft;
+        }
+        if (Iput.get(Iput.confg.idIframe)) {
+            if (Iput.confg.hand == "1") {
+                top = Iput.confg.top + document.body.scrollTop + document.documentElement.scrollTop + e.clientY;
+                left = Iput.confg.left + e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
+                if (a.offsetHeight + top > bodyHith) { top = top - a.offsetHeight + Iput.get(Iput.confg.idBox).firstChild.offsetHeight; }
+                if (a.offsetWidth + left > bodywidth) { left = left - a.offsetWidth + Iput.get(Iput.confg.idBox).firstChild.offsetWidth; }
+                a.style.top = top - st + "px";
+                b.style.top = top - st + "px";
+                a.style.left = left - sl + "px";
+                b.style.left = left - sl + "px";
+            }
+            else if (Iput.confg.hand == "0") {
+                w = Iput.confg.id.offsetWidth + "px";
+                a.style.width = w;
+                b.style.width = w;
+                height = c;
+                top = Iput.confg.top + Iput.ltp(Iput.confg.id);
+                left = Iput.confg.left + Iput.lft(Iput.confg.id);
+                if (a.firstChild.offsetHeight + top + c > bodyHith) { top = top - a.firstChild.offsetHeight - c; }
+                if (a.firstChild.offsetWidth + left > bodywidth) { left = left - a.firstChild.offsetWidth + d; }
+                b.style.top = top - st + "px";
+                a.style.top = top - st + height + "px";
+                b.style.left = left - sl + "px";
+                a.style.left = left - sl + "px";
+            }
+            else {
+                height = c;
+                top = Iput.confg.top - Iput.get(Iput.confg.hand).scrollTop + Iput.ltp(Iput.confg.id);
+                left = Iput.confg.left - Iput.get(Iput.confg.hand).scrollLeft + Iput.lft(Iput.confg.id);
+
+                if (a.offsetHeight + top > bodyHith) { top = top - a.offsetHeight - c; }
+                if (a.offsetWidth + left > bodywidth) { left = left - a.offsetWidth - d; }
+
+                b.style.top = top - st + height + "px";
+                a.style.top = top - st + height + "px";
+                b.style.left = left - sl + "px";
+                a.style.left = left - sl + "px";
+            }
+        }
+    },
+    show: function () {
+        var config = arguments[0]; var that = Iput.confg;
+        Iput.clear();
+        for (var i in that) { if (config[i] != undefined) { that[i] = config[i]; } };
+        Iput.pop();
+        if (Iput.confg.ok != null) {
+            Iput.action(Iput.confg.ok());
+        }
+    },
+    colse: function () {
+        if (Iput.get(Iput.confg.idIframe)) {
+            document.body.removeChild(Iput.get(Iput.confg.idBox));
+            document.body.removeChild(Iput.get(Iput.confg.idIframe));
+        }
+        if (Iput.get(Iput.confg.pop)) {
+            Iput.get(Iput.confg.pop).style.display = "none";
+        }
+    },
+    $colse: function () { Iput.colse(); },
+    hide: function (e) {//点击任何处关闭层
+        e = window.event || e;
+        var srcElement = e.srcElement || e.target;
+        if (Iput.confg.event == undefined) {//输入时用,般在没传入Iput.confg.event请况下使用
+            Iput.colse();
+        }
+        else {
+            var a = Iput.confg.event.srcElement || Iput.confg.event.target;
+            var b = Iput.get(Iput.confg.pop);
+            if (a != srcElement) { Iput.colse(); }
+            if (b != null) {
+                if (b != srcElement && a != srcElement) { Iput.colse(); }
+            }
+        }
+        if (Iput.get(Iput.confg.idIframe)) {
+            Iput.get(Iput.confg.idIframe).onclick = function (e) { Iput.stopBubble(e); };
+            Iput.get(Iput.confg.idBox).onclick = function (e) { Iput.stopBubble(e); };
+        }
+        if (Iput.get(Iput.confg.pop)) {
+            Iput.get(Iput.confg.pop).onclick = function (e) { Iput.stopBubble(e); };
+        }
+
+    },
+    action: function (obj) {
+        eval(obj);
+    },
+    cookie: {
+        Set: function (name, val) {
+            var Days = 30;                          //此 cookie 将被保存 30 天
+            var exp = new Date();                  //new Date("December 31, 9998");
+            exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
+            document.cookie = name + "=" + escape(val) + ";expires=" + exp.toGMTString() + "; path=/";
+        },
+        Get: function (name) {
+            var start = document.cookie.indexOf(name);
+            var end = document.cookie.indexOf(";", start);
+            return start == -1 ? null : unescape(document.cookie.substring(start + name.length + 1, (end > start ? end : document.cookie.length)));
+        },
+        Del: function (name) {
+            var exp = new Date();
+            exp.setTime(exp.getTime() - 1);
+            var cval = this.GetCookie(name);
+            if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
+        }
+    },
+    ischeck: function (bol) {
+        var objs = form1.getElementsByTagName("input");
+        if (bol) {
+            for (var i = 0; i < objs.length; i++) { if (objs[i].type.toLowerCase() == "checkbox") { objs[i].checked = true; } }
+        }
+        else {
+            for (var i = 0; i < objs.length; i++) { if (objs[i].type.toLowerCase() == "checkbox") { objs[i].checked = false; } }
+        }
+    },
+    contains: function (star, end, isIgnoreCase) {
+        if (isIgnoreCase) {
+            star = star.toLowerCase();
+            end = end.toLowerCase();
+        }
+        var startChar = end.substring(0, 1);
+        var strLen = end.length;
+        for (var j = 0; j < star.length - strLen + 1; j++) {
+            if (star.charAt(j) == startChar)//如果匹配起始字符,开始查找
+            {
+                if (star.substring(j, j + strLen) == end)//如果从j开始的字符与str匹配,那ok
+                {
+                    return true;
+                }
+            }
+        }
+        return false;
+    },
+    gData: function (name, value) {
+        var top = window.top, cache = top['_CACHE'] || {};
+        top['_CACHE'] = cache;
+        return value ? cache[name] = value : cache[name];
+    },
+    rData: function (name) {
+        var cache = window.top['_CACHE'];
+        if (cache && cache[name]) delete cache[name];
+    }
+}

File diff suppressed because it is too large
+ 1283 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.ui/jquery-ui.css


File diff suppressed because it is too large
+ 18706 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery.ui/jquery-ui.js


File diff suppressed because it is too large
+ 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} 的数值")
+});
+
+}));

File diff suppressed because it is too large
+ 1312 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.css


File diff suppressed because it is too large
+ 18706 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery-ui.js


File diff suppressed because it is too large
+ 9 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.autocompleter.min.js


File diff suppressed because it is too large
+ 9597 - 0
watero-wechat-web/src/main/webapp/common/lib/jquery/1.9.1/jquery.js


File diff suppressed because it is too large
+ 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);

File diff suppressed because it is too large
+ 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/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


File diff suppressed because it is too large
+ 7 - 0
watero-wechat-web/src/main/webapp/common/lib/layer/2.4/skin/layer.css


File diff suppressed because it is too large
+ 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}

+ 26 - 0
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/css/lightbox.css

@@ -0,0 +1,26 @@
+body:after{content:url(../images/close.png) url(../images/loading.gif) url(../images/prev.png) url(../images/next.png);display:none}
+.lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:black;filter:alpha(opacity=80);opacity:.8;display:none}
+.lightbox{position:absolute;left:0;width:100%;z-index:10000;text-align:center;line-height:0;font-weight:normal}
+.lightbox .lb-image{display:block;height:auto;max-width:inherit;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}
+.lightbox a img{border:0}
+.lb-outerContainer{position:relative;background-color:white;*zoom:1;width:250px;height:250px;margin:0 auto;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}
+.lb-outerContainer:after{content:"";display:table;clear:both}
+.lb-container{padding:4px}
+.lb-loader{position:absolute;top:43%;left:0;height:25%;width:100%;text-align:center;line-height:0}
+.lb-cancel{display:block;width:32px;height:32px;margin:0 auto;background:url(../images/loading.gif) no-repeat}
+.lb-nav{position:absolute;top:0;left:0;height:100%;width:100%;z-index:10}
+.lb-container>.nav{left:0}
+.lb-nav a{outline:0;background-image:url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')}
+.lb-prev,.lb-next{height:100%;cursor:pointer;display:block}
+.lb-nav a.lb-prev{width:34%;left:0;float:left;background:url(../images/prev.png) left 48% no-repeat;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}
+.lb-nav a.lb-prev:hover{filter:alpha(opacity=100);opacity:1}
+.lb-nav a.lb-next{width:64%;right:0;float:right;background:url(../images/next.png) right 48% no-repeat;filter:alpha(opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}
+.lb-nav a.lb-next:hover{filter:alpha(opacity=100);opacity:1}
+.lb-dataContainer{margin:0 auto;padding-top:5px;*zoom:1;width:100%;-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}
+.lb-dataContainer:after{content:"";display:table;clear:both}
+.lb-data{padding:0 4px;color:#ccc}
+.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em}
+.lb-data .lb-caption{font-size:13px;font-weight:bold;line-height:1em}
+.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:12px;color:#999}
+.lb-data .lb-close{display:block;float:right;width:30px;height:30px;background:url(../images/close.png) top right no-repeat;text-align:right;outline:0;filter:alpha(opacity=70);opacity:.7;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}
+.lb-data .lb-close:hover{cursor:pointer;filter:alpha(opacity=100);opacity:1}

二進制
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/images/loading.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/images/next.png


二進制
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/images/prev.png


File diff suppressed because it is too large
+ 9655 - 0
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox-plus-jquery.js


File diff suppressed because it is too large
+ 38 - 0
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox-plus-jquery.min.js


File diff suppressed because it is too large
+ 1 - 0
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox-plus-jquery.min.map


File diff suppressed because it is too large
+ 444 - 0
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox.js


File diff suppressed because it is too large
+ 13 - 0
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox.min.js


File diff suppressed because it is too large
+ 1 - 0
watero-wechat-web/src/main/webapp/common/lib/lightbox2/2.8.1/js/lightbox.min.map


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_exe.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_jpg.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_mp3.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_mv.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_pdf.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_ppt.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_psd.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_rar.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_txt.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/fileTypeImages/icon_xls.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/icons.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/icons.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/image.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/attachment/images/progress.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/emotion/images/jxface2.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/emotion/images/neweditor-tab-bg.png


+ 894 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/image.css

@@ -0,0 +1,894 @@
+@charset "utf-8";
+/* dialog样式 */
+.wrapper {
+    zoom: 1;
+    width: 630px;
+    *width: 626px;
+    height: 380px;
+    margin: 0 auto;
+    padding: 10px;
+    position: relative;
+    font-family: sans-serif;
+}
+
+/*tab样式框大小*/
+.tabhead {
+    float:left;
+}
+.tabbody {
+    width: 100%;
+    height: 346px;
+    position: relative;
+    clear: both;
+}
+
+.tabbody .panel {
+    position: absolute;
+    width: 0;
+    height: 0;
+    background: #fff;
+    overflow: hidden;
+    display: none;
+}
+
+.tabbody .panel.focus {
+    width: 100%;
+    height: 346px;
+    display: block;
+}
+
+/* 图片对齐方式 */
+.alignBar{
+    float:right;
+    margin-top: 5px;
+    position: relative;
+}
+
+.alignBar .algnLabel{
+    float:left;
+    height: 20px;
+    line-height: 20px;
+}
+
+.alignBar #alignIcon{
+    zoom:1;
+    _display: inline;
+    display: inline-block;
+    position: relative;
+}
+.alignBar #alignIcon span{
+    float: left;
+    cursor: pointer;
+    display: block;
+    width: 19px;
+    height: 17px;
+    margin-right: 3px;
+    margin-left: 3px;
+    background-image: url(./images/alignicon.jpg);
+}
+.alignBar #alignIcon .none-align{
+    background-position: 0 -18px;
+}
+.alignBar #alignIcon .left-align{
+    background-position: -20px -18px;
+}
+.alignBar #alignIcon .right-align{
+    background-position: -40px -18px;
+}
+.alignBar #alignIcon .center-align{
+    background-position: -60px -18px;
+}
+.alignBar #alignIcon .none-align.focus{
+    background-position: 0 0;
+}
+.alignBar #alignIcon .left-align.focus{
+    background-position: -20px 0;
+}
+.alignBar #alignIcon .right-align.focus{
+    background-position: -40px 0;
+}
+.alignBar #alignIcon .center-align.focus{
+    background-position: -60px 0;
+}
+
+
+
+
+/* 远程图片样式 */
+#remote {
+    z-index: 200;
+}
+
+#remote .top{
+    width: 100%;
+    margin-top: 25px;
+}
+#remote .left{
+    display: block;
+    float: left;
+    width: 300px;
+    height:10px;
+}
+#remote .right{
+    display: block;
+    float: right;
+    width: 300px;
+    height:10px;
+}
+#remote .row{
+    margin-left: 20px;
+    clear: both;
+    height: 40px;
+}
+
+#remote .row label{
+    text-align: center;
+    width: 50px;
+    zoom:1;
+    _display: inline;
+    display:inline-block;
+    vertical-align: middle;
+}
+#remote .row label.algnLabel{
+    float: left;
+
+}
+
+#remote input.text{
+    width: 150px;
+    padding: 3px 6px;
+    font-size: 14px;
+    line-height: 1.42857143;
+    color: #555;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #ccc;
+    border-radius: 4px;
+    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+}
+#remote input.text:focus {
+    border-color: #66afe9;
+    outline: 0;
+    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
+    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
+}
+#remote #url{
+    width: 500px;
+    margin-bottom: 2px;
+}
+#remote #width,
+#remote #height{
+    width: 20px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+#remote #border,
+#remote #vhSpace,
+#remote #title{
+    width: 180px;
+    margin-right: 5px;
+}
+#remote #lock{
+}
+#remote #lockicon{
+    zoom: 1;
+    _display:inline;
+    display: inline-block;
+    width: 20px;
+    height: 20px;
+    background: url("../../themes/default/images/lock.gif") -13px -13px no-repeat;
+    vertical-align: middle;
+}
+#remote #preview{
+    clear: both;
+    width: 260px;
+    height: 240px;
+    z-index: 9999;
+    margin-top: 10px;
+    background-color: #eee;
+    overflow: hidden;
+}
+
+/* 上传图片 */
+.tabbody #upload.panel {
+    width: 0;
+    height: 0;
+    overflow: hidden;
+    position: absolute !important;
+    clip: rect(1px, 1px, 1px, 1px);
+    background: #fff;
+    display: block;
+}
+
+.tabbody #upload.panel.focus {
+    width: 100%;
+    height: 346px;
+    display: block;
+    clip: auto;
+}
+
+#upload .queueList {
+    margin: 0;
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    overflow: hidden;
+}
+
+#upload p {
+    margin: 0;
+}
+
+.element-invisible {
+    width: 0 !important;
+    height: 0 !important;
+    border: 0;
+    padding: 0;
+    margin: 0;
+    overflow: hidden;
+    position: absolute !important;
+    clip: rect(1px, 1px, 1px, 1px);
+}
+
+#upload .placeholder {
+    margin: 10px;
+    border: 2px dashed #e6e6e6;
+    *border: 0px dashed #e6e6e6;
+    height: 172px;
+    padding-top: 150px;
+    text-align: center;
+    background: url(./images/image.png) center 70px no-repeat;
+    color: #cccccc;
+    font-size: 18px;
+    position: relative;
+    top:0;
+    *top: 10px;
+}
+
+#upload .placeholder .webuploader-pick {
+    font-size: 18px;
+    background: #00b7ee;
+    border-radius: 3px;
+    line-height: 44px;
+    padding: 0 30px;
+    *width: 120px;
+    color: #fff;
+    display: inline-block;
+    margin: 0 auto 20px auto;
+    cursor: pointer;
+    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+}
+
+#upload .placeholder .webuploader-pick-hover {
+    background: #00a2d4;
+}
+
+
+#filePickerContainer {
+    text-align: center;
+}
+
+#upload .placeholder .flashTip {
+    color: #666666;
+    font-size: 12px;
+    position: absolute;
+    width: 100%;
+    text-align: center;
+    bottom: 20px;
+}
+
+#upload .placeholder .flashTip a {
+    color: #0785d1;
+    text-decoration: none;
+}
+
+#upload .placeholder .flashTip a:hover {
+    text-decoration: underline;
+}
+
+#upload .placeholder.webuploader-dnd-over {
+    border-color: #999999;
+}
+
+#upload .filelist {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+    overflow-x: hidden;
+    overflow-y: auto;
+    position: relative;
+    height: 300px;
+}
+
+#upload .filelist:after {
+    content: '';
+    display: block;
+    width: 0;
+    height: 0;
+    overflow: hidden;
+    clear: both;
+    position: relative;
+}
+
+#upload .filelist li {
+    width: 113px;
+    height: 113px;
+    background: url(./images/bg.png);
+    text-align: center;
+    margin: 9px 0 0 9px;
+    *margin: 6px 0 0 6px;
+    position: relative;
+    display: block;
+    float: left;
+    overflow: hidden;
+    font-size: 12px;
+}
+
+#upload .filelist li p.log {
+    position: relative;
+    top: -45px;
+}
+
+#upload .filelist li p.title {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    top: 5px;
+    text-indent: 5px;
+    text-align: left;
+}
+
+#upload .filelist li p.progress {
+    position: absolute;
+    width: 100%;
+    bottom: 0;
+    left: 0;
+    height: 8px;
+    overflow: hidden;
+    z-index: 50;
+    margin: 0;
+    border-radius: 0;
+    background: none;
+    -webkit-box-shadow: 0 0 0;
+}
+
+#upload .filelist li p.progress span {
+    display: none;
+    overflow: hidden;
+    width: 0;
+    height: 100%;
+    background: #1483d8 url(./images/progress.png) repeat-x;
+
+    -webit-transition: width 200ms linear;
+    -moz-transition: width 200ms linear;
+    -o-transition: width 200ms linear;
+    -ms-transition: width 200ms linear;
+    transition: width 200ms linear;
+
+    -webkit-animation: progressmove 2s linear infinite;
+    -moz-animation: progressmove 2s linear infinite;
+    -o-animation: progressmove 2s linear infinite;
+    -ms-animation: progressmove 2s linear infinite;
+    animation: progressmove 2s linear infinite;
+
+    -webkit-transform: translateZ(0);
+}
+
+@-webkit-keyframes progressmove {
+    0% {
+        background-position: 0 0;
+    }
+    100% {
+        background-position: 17px 0;
+    }
+}
+
+@-moz-keyframes progressmove {
+    0% {
+        background-position: 0 0;
+    }
+    100% {
+        background-position: 17px 0;
+    }
+}
+
+@keyframes progressmove {
+    0% {
+        background-position: 0 0;
+    }
+    100% {
+        background-position: 17px 0;
+    }
+}
+
+#upload .filelist li p.imgWrap {
+    position: relative;
+    z-index: 2;
+    line-height: 113px;
+    vertical-align: middle;
+    overflow: hidden;
+    width: 113px;
+    height: 113px;
+
+    -webkit-transform-origin: 50% 50%;
+    -moz-transform-origin: 50% 50%;
+    -o-transform-origin: 50% 50%;
+    -ms-transform-origin: 50% 50%;
+    transform-origin: 50% 50%;
+
+    -webit-transition: 200ms ease-out;
+    -moz-transition: 200ms ease-out;
+    -o-transition: 200ms ease-out;
+    -ms-transition: 200ms ease-out;
+    transition: 200ms ease-out;
+}
+
+#upload .filelist li img {
+    width: 100%;
+}
+
+#upload .filelist li p.error {
+    background: #f43838;
+    color: #fff;
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    height: 28px;
+    line-height: 28px;
+    width: 100%;
+    z-index: 100;
+    display:none;
+}
+
+#upload .filelist li .success {
+    display: block;
+    position: absolute;
+    left: 0;
+    bottom: 0;
+    height: 40px;
+    width: 100%;
+    z-index: 200;
+    background: url(./images/success.png) no-repeat right bottom;
+    background: url(./images/success.gif) no-repeat right bottom \9;
+}
+
+#upload .filelist li.filePickerBlock {
+    width: 113px;
+    height: 113px;
+    background: url(./images/image.png) no-repeat center 12px;
+    border: 1px solid #eeeeee;
+    border-radius: 0;
+}
+#upload .filelist li.filePickerBlock div.webuploader-pick  {
+    width: 100%;
+    height: 100%;
+    margin: 0;
+    padding: 0;
+    opacity: 0;
+    background: none;
+    font-size: 0;
+}
+
+#upload .filelist div.file-panel {
+    position: absolute;
+    height: 0;
+    filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
+    background: rgba(0, 0, 0, 0.5);
+    width: 100%;
+    top: 0;
+    left: 0;
+    overflow: hidden;
+    z-index: 300;
+}
+
+#upload .filelist div.file-panel span {
+    width: 24px;
+    height: 24px;
+    display: inline;
+    float: right;
+    text-indent: -9999px;
+    overflow: hidden;
+    background: url(./images/icons.png) no-repeat;
+    background: url(./images/icons.gif) no-repeat \9;
+    margin: 5px 1px 1px;
+    cursor: pointer;
+    -webkit-tap-highlight-color: rgba(0,0,0,0);
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+#upload .filelist div.file-panel span.rotateLeft {
+    display:none;
+    background-position: 0 -24px;
+}
+
+#upload .filelist div.file-panel span.rotateLeft:hover {
+    background-position: 0 0;
+}
+
+#upload .filelist div.file-panel span.rotateRight {
+    display:none;
+    background-position: -24px -24px;
+}
+
+#upload .filelist div.file-panel span.rotateRight:hover {
+    background-position: -24px 0;
+}
+
+#upload .filelist div.file-panel span.cancel {
+    background-position: -48px -24px;
+}
+
+#upload .filelist div.file-panel span.cancel:hover {
+    background-position: -48px 0;
+}
+
+#upload .statusBar {
+    height: 45px;
+    border-bottom: 1px solid #dadada;
+    margin: 0 10px;
+    padding: 0;
+    line-height: 45px;
+    vertical-align: middle;
+    position: relative;
+}
+
+#upload .statusBar .progress {
+    border: 1px solid #1483d8;
+    width: 198px;
+    background: #fff;
+    height: 18px;
+    position: absolute;
+    top: 12px;
+    display: none;
+    text-align: center;
+    line-height: 18px;
+    color: #6dbfff;
+    margin: 0 10px 0 0;
+}
+#upload .statusBar .progress span.percentage {
+    width: 0;
+    height: 100%;
+    left: 0;
+    top: 0;
+    background: #1483d8;
+    position: absolute;
+}
+#upload .statusBar .progress span.text {
+    position: relative;
+    z-index: 10;
+}
+
+#upload .statusBar .info {
+    display: inline-block;
+    font-size: 14px;
+    color: #666666;
+}
+
+#upload .statusBar .btns {
+    position: absolute;
+    top: 7px;
+    right: 0;
+    line-height: 30px;
+}
+
+#filePickerBtn {
+    display: inline-block;
+    float: left;
+}
+#upload .statusBar .btns .webuploader-pick,
+#upload .statusBar .btns .uploadBtn,
+#upload .statusBar .btns .uploadBtn.state-uploading,
+#upload .statusBar .btns .uploadBtn.state-paused {
+    background: #ffffff;
+    border: 1px solid #cfcfcf;
+    color: #565656;
+    padding: 0 18px;
+    display: inline-block;
+    border-radius: 3px;
+    margin-left: 10px;
+    cursor: pointer;
+    font-size: 14px;
+    float: left;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+#upload .statusBar .btns .webuploader-pick-hover,
+#upload .statusBar .btns .uploadBtn:hover,
+#upload .statusBar .btns .uploadBtn.state-uploading:hover,
+#upload .statusBar .btns .uploadBtn.state-paused:hover {
+    background: #f0f0f0;
+}
+
+#upload .statusBar .btns .uploadBtn,
+#upload .statusBar .btns .uploadBtn.state-paused{
+    background: #00b7ee;
+    color: #fff;
+    border-color: transparent;
+}
+#upload .statusBar .btns .uploadBtn:hover,
+#upload .statusBar .btns .uploadBtn.state-paused:hover{
+    background: #00a2d4;
+}
+
+#upload .statusBar .btns .uploadBtn.disabled {
+    pointer-events: none;
+    filter:alpha(opacity=60);
+    -moz-opacity:0.6;
+    -khtml-opacity: 0.6;
+    opacity: 0.6;
+}
+
+
+
+/* 图片管理样式 */
+#online {
+    width: 100%;
+    height: 336px;
+    padding: 10px 0 0 0;
+}
+#online #imageList{
+    width: 100%;
+    height: 100%;
+    overflow-x: hidden;
+    overflow-y: auto;
+    position: relative;
+}
+#online ul {
+    display: block;
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+#online li {
+    float: left;
+    display: block;
+    list-style: none;
+    padding: 0;
+    width: 113px;
+    height: 113px;
+    margin: 0 0 9px 9px;
+    *margin: 0 0 6px 6px;
+    background-color: #eee;
+    overflow: hidden;
+    cursor: pointer;
+    position: relative;
+}
+#online li.clearFloat {
+    float: none;
+    clear: both;
+    display: block;
+    width:0;
+    height:0;
+    margin: 0;
+    padding: 0;
+}
+#online li img {
+    cursor: pointer;
+}
+#online li .icon {
+    cursor: pointer;
+    width: 113px;
+    height: 113px;
+    position: absolute;
+    top: 0;
+    left: 0;
+    z-index: 2;
+    border: 0;
+    background-repeat: no-repeat;
+}
+#online li .icon:hover {
+    width: 107px;
+    height: 107px;
+    border: 3px solid #1094fa;
+}
+#online li.selected .icon {
+    background-image: url(images/success.png);
+    background-image: url(images/success.gif)\9;
+    background-position: 75px 75px;
+}
+#online li.selected .icon:hover {
+    width: 107px;
+    height: 107px;
+    border: 3px solid #1094fa;
+    background-position: 72px 72px;
+}
+
+
+/* 图片搜索样式 */
+#search .searchBar {
+    width: 100%;
+    height: 30px;
+    margin: 10px 0 5px 0;
+    padding: 0;
+}
+
+#search input.text{
+    width: 150px;
+    padding: 3px 6px;
+    font-size: 14px;
+    line-height: 1.42857143;
+    color: #555;
+    background-color: #fff;
+    background-image: none;
+    border: 1px solid #ccc;
+    border-radius: 4px;
+    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
+    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+}
+#search input.text:focus {
+    border-color: #66afe9;
+    outline: 0;
+    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
+    box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
+}
+#search input.searchTxt {
+    margin-left:5px;
+    padding-left: 5px;
+    background: #FFF;
+    width: 300px;
+    *width: 260px;
+    height: 21px;
+    line-height: 21px;
+    float: left;
+    dislay: block;
+}
+
+#search .searchType {
+    width: 65px;
+    height: 28px;
+    padding:0;
+    line-height: 28px;
+    border: 1px solid #d7d7d7;
+    border-radius: 0;
+    vertical-align: top;
+    margin-left: 5px;
+    float: left;
+    dislay: block;
+}
+
+#search #searchBtn,
+#search #searchReset {
+    display: inline-block;
+    margin-bottom: 0;
+    margin-right: 5px;
+    padding: 4px 10px;
+    font-weight: 400;
+    text-align: center;
+    vertical-align: middle;
+    cursor: pointer;
+    background-image: none;
+    border: 1px solid transparent;
+    white-space: nowrap;
+    font-size: 14px;
+    border-radius: 4px;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    vertical-align: top;
+    float: right;
+}
+
+#search #searchBtn {
+    color: white;
+    border-color: #285e8e;
+    background-color: #3b97d7;
+}
+#search #searchReset {
+    color: #333;
+    border-color: #ccc;
+    background-color: #fff;
+}
+#search #searchBtn:hover {
+    background-color: #3276b1;
+}
+#search #searchReset:hover {
+    background-color: #eee;
+}
+
+#search .msg {
+    margin-left: 5px;
+}
+
+#search .searchList{
+    width: 100%;
+    height: 300px;
+    overflow: hidden;
+    clear: both;
+}
+#search .searchList ul{
+    margin:0;
+    padding:0;
+    list-style:none;
+    clear: both;
+    width: 100%;
+    height: 100%;
+    overflow-x: hidden;
+    overflow-y: auto;
+    zoom: 1;
+    position: relative;
+}
+
+#search .searchList li {
+    list-style:none;
+    float: left;
+    display: block;
+    width: 115px;
+    margin: 5px 10px 5px 20px;
+    *margin: 5px 10px 5px 15px;
+    padding:0;
+    font-size: 12px;
+    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
+    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
+    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
+    position: relative;
+    vertical-align: top;
+    text-align: center;
+    overflow: hidden;
+    cursor: pointer;
+    filter: alpha(Opacity=100);
+    -moz-opacity: 1;
+    opacity: 1;
+    border: 2px solid #eee;
+}
+
+#search .searchList li.selected {
+    filter: alpha(Opacity=40);
+    -moz-opacity: 0.4;
+    opacity: 0.4;
+    border: 2px solid #00a0e9;
+}
+
+#search .searchList li p {
+    background-color: #eee;
+    margin: 0;
+    padding: 0;
+    position: relative;
+    width:100%;
+    height:115px;
+    overflow: hidden;
+}
+
+#search .searchList li p img {
+    cursor: pointer;
+    border: 0;
+}
+
+#search .searchList li a {
+    color: #999;
+    border-top: 1px solid #F2F2F2;
+    background: #FAFAFA;
+    text-align: center;
+    display: block;
+    padding: 0 5px;
+    width: 105px;
+    height:32px;
+    line-height:32px;
+    white-space:nowrap;
+    text-overflow:ellipsis;
+    text-decoration: none;
+    overflow: hidden;
+    word-break: break-all;
+}
+
+#search .searchList a:hover {
+    text-decoration: underline;
+    color: #333;
+}
+#search .searchList .clearFloat{
+    clear: both;
+}

+ 120 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/image.html

@@ -0,0 +1,120 @@
+<!doctype html>
+<html>
+<head>
+    <meta charset="UTF-8">
+    <title>ueditor图片对话框</title>
+    <script type="text/javascript" src="../internal.js"></script>
+
+    <!-- jquery -->
+    <script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
+
+    <!-- webuploader -->
+    <script src="../../third-party/webuploader/webuploader.min.js"></script>
+    <link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
+
+    <!-- image dialog -->
+    <link rel="stylesheet" href="image.css" type="text/css" />
+</head>
+<body>
+
+    <div class="wrapper">
+        <div id="tabhead" class="tabhead">
+            <span class="tab" data-content-id="remote"><var id="lang_tab_remote"></var></span>
+            <span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
+            <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span>
+            <span class="tab" data-content-id="search"><var id="lang_tab_search"></var></span>
+        </div>
+        <div class="alignBar">
+            <label class="algnLabel"><var id="lang_input_align"></var></label>
+                    <span id="alignIcon">
+                        <span id="noneAlign" class="none-align focus" data-align="none"></span>
+                        <span id="leftAlign" class="left-align" data-align="left"></span>
+                        <span id="rightAlign" class="right-align" data-align="right"></span>
+                        <span id="centerAlign" class="center-align" data-align="center"></span>
+                    </span>
+            <input id="align" name="align" type="hidden" value="none"/>
+        </div>
+        <div id="tabbody" class="tabbody">
+
+            <!-- 远程图片 -->
+            <div id="remote" class="panel">
+                <div class="top">
+                    <div class="row">
+                        <label for="url"><var id="lang_input_url"></var></label>
+                        <span><input class="text" id="url" type="text"/></span>
+                    </div>
+                </div>
+                <div class="left">
+                    <div class="row">
+                        <label><var id="lang_input_size"></var></label>
+                        <span><var id="lang_input_width">&nbsp;&nbsp;</var><input class="text" type="text" id="width"/>px </span>
+                        <span><var id="lang_input_height">&nbsp;&nbsp;</var><input class="text" type="text" id="height"/>px </span>
+                        <span><input id="lock" type="checkbox" disabled="disabled"><span id="lockicon"></span></span>
+                    </div>
+                    <div class="row">
+                        <label><var id="lang_input_border"></var></label>
+                        <span><input class="text" type="text" id="border"/>px </span>
+                    </div>
+                    <div class="row">
+                        <label><var id="lang_input_vhspace"></var></label>
+                        <span><input class="text" type="text" id="vhSpace"/>px </span>
+                    </div>
+                    <div class="row">
+                        <label><var id="lang_input_title"></var></label>
+                        <span><input class="text" type="text" id="title"/></span>
+                    </div>
+                </div>
+                <div class="right"><div id="preview"></div></div>
+            </div>
+
+            <!-- 上传图片 -->
+            <div id="upload" class="panel focus">
+                <div id="queueList" class="queueList">
+                    <div class="statusBar element-invisible">
+                        <div class="progress">
+                            <span class="text">0%</span>
+                            <span class="percentage"></span>
+                        </div><div class="info"></div>
+                        <div class="btns">
+                            <div id="filePickerBtn"></div>
+                            <div class="uploadBtn"><var id="lang_start_upload"></var></div>
+                        </div>
+                    </div>
+                    <div id="dndArea" class="placeholder">
+                        <div class="filePickerContainer">
+                            <div id="filePickerReady"></div>
+                        </div>
+                    </div>
+                    <ul class="filelist element-invisible">
+                        <li id="filePickerBlock" class="filePickerBlock"></li>
+                    </ul>
+                </div>
+            </div>
+
+            <!-- 在线图片 -->
+            <div id="online" class="panel">
+                <div id="imageList"><var id="lang_imgLoading"></var></div>
+            </div>
+
+            <!-- 搜索图片 -->
+            <div id="search" class="panel">
+                <div class="searchBar">
+                    <input id="searchTxt" class="searchTxt text" type="text" />
+                    <select id="searchType" class="searchType">
+                        <option value="&s=4&z=0"></option>
+                        <option value="&s=1&z=19"></option>
+                        <option value="&s=2&z=0"></option>
+                        <option value="&s=3&z=0"></option>
+                    </select>
+                    <input id="searchReset" type="button"  />
+                    <input id="searchBtn" type="button"  />
+                </div>
+                <div id="searchList" class="searchList"><ul id="searchListUl"></ul></div>
+            </div>
+
+        </div>
+    </div>
+    <script type="text/javascript" src="image.js"></script>
+
+</body>
+</html>

File diff suppressed because it is too large
+ 1139 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/image.js


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/icons.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/icons.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/image.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/image/images/progress.png


+ 98 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/insertframe/insertframe.html

@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <title></title>
+    <script type="text/javascript" src="../internal.js"></script>
+    <style type="text/css">
+        .warp {width: 320px;height: 153px;margin-left:5px;padding: 20px 0 0 15px;position: relative;}
+        #url {width: 290px; margin-bottom: 2px; margin-left: -6px; margin-left: -2px\9;*margin-left:0;_margin-left:0; }
+        .format span{display: inline-block; width: 58px;text-align: center; zoom:1;}
+        table td{padding:5px 0;}
+        #align{width: 65px;height: 23px;line-height: 22px;}
+    </style>
+</head>
+<body>
+<div class="warp">
+        <table width="300" cellpadding="0" cellspacing="0">
+            <tr>
+                <td colspan="2" class="format">
+                    <span><var id="lang_input_address"></var></span>
+                    <input style="width:200px" id="url" type="text" value=""/>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2" class="format"><span><var id="lang_input_width"></var></span><input style="width:200px" type="text" id="width"/> px</td>
+
+            </tr>
+            <tr>
+                <td colspan="2" class="format"><span><var id="lang_input_height"></var></span><input style="width:200px" type="text" id="height"/> px</td>
+            </tr>
+            <tr>
+                <td><span><var id="lang_input_isScroll"></var></span><input type="checkbox" id="scroll"/> </td>
+                <td><span><var id="lang_input_frameborder"></var></span><input type="checkbox" id="frameborder"/> </td>
+            </tr>
+
+            <tr>
+                <td colspan="2"><span><var id="lang_input_alignMode"></var></span>
+                    <select id="align">
+                        <option value=""></option>
+                        <option value="left"></option>
+                        <option value="right"></option>
+                    </select>
+                </td>
+            </tr>
+        </table>
+</div>
+<script type="text/javascript">
+    var iframe = editor._iframe;
+    if(iframe){
+        $G("url").value = iframe.getAttribute("src")||"";
+        $G("width").value = iframe.getAttribute("width")||iframe.style.width.replace("px","")||"";
+        $G("height").value = iframe.getAttribute("height") || iframe.style.height.replace("px","") ||"";
+        $G("scroll").checked = (iframe.getAttribute("scrolling") == "yes") ? true : false;
+        $G("frameborder").checked = (iframe.getAttribute("frameborder") == "1") ? true : false;
+        $G("align").value = iframe.align ? iframe.align : "";
+    }
+    function queding(){
+        var  url = $G("url").value.replace(/^\s*|\s*$/ig,""),
+                width = $G("width").value,
+                height = $G("height").value,
+                scroll = $G("scroll"),
+                frameborder = $G("frameborder"),
+                float = $G("align").value,
+                newIframe = editor.document.createElement("iframe"),
+                div;
+        if(!url){
+            alert(lang.enterAddress);
+            return false;
+        }
+        newIframe.setAttribute("src",/http:\/\/|https:\/\//ig.test(url) ? url : "http://"+url);
+        /^[1-9]+[.]?\d*$/g.test( width ) ? newIframe.setAttribute("width",width) : "";
+        /^[1-9]+[.]?\d*$/g.test( height ) ? newIframe.setAttribute("height",height) : "";
+        scroll.checked ?  newIframe.setAttribute("scrolling","yes") : newIframe.setAttribute("scrolling","no");
+        frameborder.checked ?  newIframe.setAttribute("frameborder","1",0) : newIframe.setAttribute("frameborder","0",0);
+        float ? newIframe.setAttribute("align",float) :  newIframe.setAttribute("align","");
+        if(iframe){
+            iframe.parentNode.insertBefore(newIframe,iframe);
+            domUtils.remove(iframe);
+        }else{
+            div = editor.document.createElement("div");
+            div.appendChild(newIframe);
+            editor.execCommand("inserthtml",div.innerHTML);
+        }
+        editor._iframe = null;
+        dialog.close();
+    }
+    dialog.onok = queding;
+    $G("url").onkeydown = function(evt){
+        evt = evt || event;
+        if(evt.keyCode == 13){
+            queding();
+        }
+    };
+    $focus($G( "url" ));
+
+</script>
+</body>
+</html>

+ 81 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/internal.js

@@ -0,0 +1,81 @@
+(function () {
+    var parent = window.parent;
+    //dialog对象
+    dialog = parent.$EDITORUI[window.frameElement.id.replace( /_iframe$/, '' )];
+    //当前打开dialog的编辑器实例
+    editor = dialog.editor;
+
+    UE = parent.UE;
+
+    domUtils = UE.dom.domUtils;
+
+    utils = UE.utils;
+
+    browser = UE.browser;
+
+    ajax = UE.ajax;
+
+    $G = function ( id ) {
+        return document.getElementById( id )
+    };
+    //focus元素
+    $focus = function ( node ) {
+        setTimeout( function () {
+            if ( browser.ie ) {
+                var r = node.createTextRange();
+                r.collapse( false );
+                r.select();
+            } else {
+                node.focus()
+            }
+        }, 0 )
+    };
+    utils.loadFile(document,{
+        href:editor.options.themePath + editor.options.theme + "/dialogbase.css?cache="+Math.random(),
+        tag:"link",
+        type:"text/css",
+        rel:"stylesheet"
+    });
+    lang = editor.getLang(dialog.className.split( "-" )[2]);
+    if(lang){
+        domUtils.on(window,'load',function () {
+
+            var langImgPath = editor.options.langPath + editor.options.lang + "/images/";
+            //针对静态资源
+            for ( var i in lang["static"] ) {
+                var dom = $G( i );
+                if(!dom) continue;
+                var tagName = dom.tagName,
+                    content = lang["static"][i];
+                if(content.src){
+                    //clone
+                    content = utils.extend({},content,false);
+                    content.src = langImgPath + content.src;
+                }
+                if(content.style){
+                    content = utils.extend({},content,false);
+                    content.style = content.style.replace(/url\s*\(/g,"url(" + langImgPath)
+                }
+                switch ( tagName.toLowerCase() ) {
+                    case "var":
+                        dom.parentNode.replaceChild( document.createTextNode( content ), dom );
+                        break;
+                    case "select":
+                        var ops = dom.options;
+                        for ( var j = 0, oj; oj = ops[j]; ) {
+                            oj.innerHTML = content.options[j++];
+                        }
+                        for ( var p in content ) {
+                            p != "options" && dom.setAttribute( p, content[p] );
+                        }
+                        break;
+                    default :
+                        domUtils.setAttributes( dom, content);
+                }
+            }
+        } );
+    }
+
+
+})();
+

+ 126 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/link/link.html

@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+        "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <title></title>
+    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
+    <script type="text/javascript" src="../internal.js"></script>
+    <style type="text/css">
+        *{margin:0;padding:0;color: #838383;}
+        table{font-size: 12px;margin: 10px;line-height: 30px}
+        .txt{width:300px;height:21px;line-height:21px;border:1px solid #d7d7d7;}
+    </style>
+</head>
+<body>
+    <table>
+        <tr>
+            <td><label for="text"> <var id="lang_input_text"></var></label></td>
+            <td><input class="txt" id="text" type="text" disabled="true"/></td>
+        </tr>
+        <tr>
+            <td><label for="href"> <var id="lang_input_url"></var></label></td>
+            <td><input class="txt" id="href" type="text" /></td>
+        </tr>
+        <tr>
+            <td><label for="title"> <var id="lang_input_title"></var></label></td>
+            <td><input class="txt" id="title" type="text"/></td>
+        </tr>
+        <tr>
+             <td colspan="2">
+                 <label for="target"><var id="lang_input_target"></var></label>
+                 <input id="target" type="checkbox"/>
+             </td>
+        </tr>
+        <tr>
+            <td colspan="2" id="msg"></td>
+        </tr>
+    </table>
+<script type="text/javascript">
+    var range = editor.selection.getRange(),
+        link = range.collapsed ? editor.queryCommandValue( "link" ) : editor.selection.getStart(),
+        url,
+        text = $G('text'),
+        rangeLink = domUtils.findParentByTagName(range.getCommonAncestor(),'a',true),
+        orgText;
+    link = domUtils.findParentByTagName( link, "a", true );
+    if(link){
+        url = utils.html(link.getAttribute( '_href' ) || link.getAttribute( 'href', 2 ));
+
+        if(rangeLink === link && !link.getElementsByTagName('img').length){
+            text.removeAttribute('disabled');
+            orgText = text.value = link[browser.ie ? 'innerText':'textContent'];
+        }else{
+            text.setAttribute('disabled','true');
+            text.value = lang.validLink;
+        }
+
+    }else{
+        if(range.collapsed){
+            text.removeAttribute('disabled');
+            text.value = '';
+        }else{
+            text.setAttribute('disabled','true');
+            text.value = lang.validLink;
+        }
+
+    }
+    $G("title").value = url ? link.title : "";
+    $G("href").value = url ? url: '';
+    $G("target").checked = url && link.target == "_blank" ? true :  false;
+    $focus($G("href"));
+
+    function handleDialogOk(){
+        var href =$G('href').value.replace(/^\s+|\s+$/g, '');
+        if(href){
+            if(!hrefStartWith(href,["http","/","ftp://",'#'])) {
+                href  = "http://" + href;
+            }
+            var obj = {
+                'href' : href,
+                'target' : $G("target").checked ? "_blank" : '_self',
+                'title' : $G("title").value.replace(/^\s+|\s+$/g, ''),
+                '_href':href
+            };
+            //修改链接内容的情况太特殊了,所以先做到这里了
+            //todo:情况多的时候,做到command里
+            if(orgText && text.value != orgText){
+                link[browser.ie ? 'innerText' : 'textContent'] =  obj.textValue = text.value;
+                range.selectNode(link).select()
+            }
+            if(range.collapsed){
+                obj.textValue = text.value;
+            }
+            editor.execCommand('link',utils.clearEmptyAttrs(obj) );
+            dialog.close();
+        }
+    }
+    dialog.onok = handleDialogOk;
+    $G('href').onkeydown = $G('title').onkeydown = function(evt){
+        evt = evt || window.event;
+        if (evt.keyCode == 13) {
+            handleDialogOk();
+            return false;
+        }
+    };
+    $G('href').onblur = function(){
+        if(!hrefStartWith(this.value,["http","/","ftp://",'#'])){
+            $G("msg").innerHTML = "<span style='color: red'>"+lang.httpPrompt+"</span>";
+        }else{
+            $G("msg").innerHTML = "";
+        }
+    };
+
+    function hrefStartWith(href,arr){
+        href = href.replace(/^\s+|\s+$/g, '');
+        for(var i=0,ai;ai=arr[i++];){
+            if(href.indexOf(ai)==0){
+                return true;
+            }
+        }
+        return false;
+    }
+
+
+</script>
+</body>
+</html>

+ 135 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/map/map.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title></title>
+    <script type="text/javascript" src="../internal.js"></script>
+    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.1&services=true"></script>
+    <style type="text/css">
+        .content{width:530px; height: 350px;margin: 10px auto;}
+        .content table{width: 100%}
+        .content table td{vertical-align: middle;}
+        #city,#address{height:21px;background: #FFF;border:1px solid #d7d7d7; line-height: 21px;}
+        #city{width:60px}
+        #address{width:130px}
+        #is_dynamic_label span{vertical-align:middle;margin: 3px 0px 3px 3px;}
+        #is_dynamic_label input{vertical-align:middle;margin: 3px 3px 3px 50px;}
+    </style>
+</head>
+<body>
+<div class="content">
+    <table>
+        <tr>
+            <td><var id="lang_city"></var>:</td>
+            <td><input id="city" type="text" /></td>
+            <td><var id="lang_address"></var>:</td>
+            <td><input id="address" type="text" value="" /></td>
+            <td><a href="javascript:doSearch()" class="button"><var id="lang_search"></var></a></td>
+            <td><label id="is_dynamic_label" for="is_dynamic"><input id="is_dynamic" type="checkbox" name="is_dynamic" /><span><var id="lang_dynamicmap"></var></span></label></td>
+        </tr>
+    </table>
+    <div style="width:100%;height:340px;margin:5px auto;border:1px solid gray" id="container"></div>
+
+</div>
+<script type="text/javascript">
+    var map = new BMap.Map("container"),marker,point,styleStr;
+    map.enableScrollWheelZoom();
+    map.enableContinuousZoom();
+    function doSearch(){
+        if (!document.getElementById('city').value) {
+            alert(lang.cityMsg);
+            return;
+        }
+        var search = new BMap.LocalSearch(document.getElementById('city').value, {
+            onSearchComplete: function (results){
+                if (results && results.getNumPois()) {
+                    var points = [];
+                    for (var i=0; i<results.getCurrentNumPois(); i++) {
+                        points.push(results.getPoi(i).point);
+                    }
+                    if (points.length > 1) {
+                        map.setViewport(points);
+                    } else {
+                        map.centerAndZoom(points[0], 13);
+                    }
+                    point = map.getCenter();
+                    marker.setPoint(point);
+                } else {
+                    alert(lang.errorMsg);
+                }
+            }
+        });
+        search.search(document.getElementById('address').value || document.getElementById('city').value);
+    }
+    //获得参数
+    function getPars(str,par){
+        var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
+        return reg.exec(str)[1];
+    }
+    function init(){
+        var mapNode = editor.selection.getRange().getClosedNode(),
+            isMapImg = mapNode && /api[.]map[.]baidu[.]com/ig.test(mapNode.getAttribute("src")),
+            isMapIframe = mapNode && domUtils.hasClass(mapNode, 'ueditor_baidumap');
+        if(isMapImg || isMapIframe){
+            var url, centerPos, markerPos;
+            if(isMapIframe) {
+                url = decodeURIComponent(mapNode.getAttribute("src"));
+                $G('is_dynamic').checked = true;
+                styleStr = mapNode.style.cssText;
+            } else {
+                url = mapNode.getAttribute("src");
+                styleStr = mapNode.style.cssText;
+            }
+
+            centerPos = getPars(url,"center").split(",");
+            markerPos = getPars(url, "markers").split(",");
+            point = new BMap.Point(Number(centerPos[0]),Number(centerPos[1]));
+            marker = new BMap.Marker(new BMap.Point(Number(markerPos[0]), Number(markerPos[1])));
+            map.addControl(new BMap.NavigationControl());
+            map.centerAndZoom(point, Number(getPars(url,"zoom")));
+        }else{
+            point = new BMap.Point(116.404, 39.915);    // 创建点坐标
+            marker = new BMap.Marker(point);
+            map.addControl(new BMap.NavigationControl());
+            map.centerAndZoom(point, 10);                     // 初始化地图,设置中心点坐标和地图级别。
+        }
+        marker.enableDragging();
+        map.addOverlay(marker);
+    }
+    init();
+    document.getElementById('address').onkeydown = function (evt){
+        evt = evt || event;
+        if (evt.keyCode == 13) {
+            doSearch();
+        }
+    };
+    dialog.onok = function (){
+        var center = map.getCenter();
+        var zoom = map.zoomLevel;
+        var size = map.getSize();
+        var mapWidth = size.width;
+        var mapHeight = size.height;
+        var point = marker.getPoint();
+
+        if($G('is_dynamic').checked) {
+            var URL = editor.options.UEDITOR_HOME_URL,
+                url = [URL + (/\/$/.test(URL) ? '':'/') + "dialogs/map/show.html" +
+                    '#center=' + center.lng + ',' + center.lat,
+                    '&zoom=' + zoom,
+                    '&width=' + mapWidth,
+                    '&height=' + mapHeight,
+                    '&markers=' + point.lng + ',' + point.lat,
+                    '&markerStyles=' + 'l,A'].join('');
+            editor.execCommand('inserthtml', '<iframe class="ueditor_baidumap" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + ' frameborder="0" width="' + (mapWidth+4) + '" height="' + (mapHeight+4) + '"></iframe>');
+        } else {
+            var url = "http://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +
+                    "&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;
+            editor.execCommand('inserthtml', '<img width="'+ size.width +'"height="'+ size.height +'" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + '/>');
+        }
+    };
+    document.getElementById("address").focus();
+</script>
+
+
+</body>
+</html>

+ 30 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/music/music.css

@@ -0,0 +1,30 @@
+.wrapper{margin: 5px 10px;}
+
+.searchBar{height:30px;padding:7px 0 3px;text-align:center;}
+.searchBtn{font-size:13px;height:24px;}
+
+.resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;}
+
+.listPanel{overflow: hidden;}
+.panelon{display:block;}
+.paneloff{display:none}
+
+.page{width:220px;margin:20px auto;overflow: hidden;}
+.pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center}
+.pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff;
+   border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;}
+
+.m-box{width:460px;}
+.m-m{float: left;line-height: 20px;height: 20px;}
+.m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;}
+.m-l{float:left;width:40px; }
+.m-t{float:left;width:140px;}
+.m-s{float:left;width:110px;}
+.m-z{float:left;width:100px;}
+.m-try-t{float: left;width: 60px;;}
+
+.m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;}
+.m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;}
+
+.loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat}
+.empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;}

+ 32 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/music/music.html

@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta http-equiv="content-type" content="text/html; charset=utf-8">
+    <title>插入音乐</title>
+    <script type="text/javascript" src="../internal.js"></script>
+    <link rel="stylesheet" type="text/css" href="music.css">
+</head>
+<body>
+<div class="wrapper">
+    <div class="searchBar">
+        <input id="J_searchName" type="text"/>
+        <input type="button" class="searchBtn" id="J_searchBtn">
+    </div>
+    <div class="resultBar" id="J_resultBar">
+        <div class="loading" style="display:none"></div>
+        <div class="empty"><var id="lang_input_tips"></var></div>
+    </div>
+    <div id="J_preview"></div>
+</div>
+<script type="text/javascript" src="music.js"></script>
+<script type="text/javascript">
+    var music = new Music;
+    dialog.onok = function () {
+        music.exec();
+    };
+    dialog.oncancel = function () {
+        $G('J_preview').innerHTML = "";
+    };
+</script>
+</body>
+</html>

+ 192 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/music/music.js

@@ -0,0 +1,192 @@
+function Music() {
+    this.init();
+}
+(function () {
+    var pages = [],
+        panels = [],
+        selectedItem = null;
+    Music.prototype = {
+        total:70,
+        pageSize:10,
+        dataUrl:"http://tingapi.ting.baidu.com/v1/restserver/ting?method=baidu.ting.search.common",
+        playerUrl:"http://box.baidu.com/widget/flash/bdspacesong.swf",
+
+        init:function () {
+            var me = this;
+            domUtils.on($G("J_searchName"), "keyup", function (event) {
+                var e = window.event || event;
+                if (e.keyCode == 13) {
+                    me.dosearch();
+                }
+            });
+            domUtils.on($G("J_searchBtn"), "click", function () {
+                me.dosearch();
+            });
+        },
+        callback:function (data) {
+            var me = this;
+            me.data = data.song_list;
+            setTimeout(function () {
+                $G('J_resultBar').innerHTML = me._renderTemplate(data.song_list);
+            }, 300);
+        },
+        dosearch:function () {
+            var me = this;
+            selectedItem = null;
+            var key = $G('J_searchName').value;
+            if (utils.trim(key) == "")return false;
+            key = encodeURIComponent(key);
+            me._sent(key);
+        },
+        doselect:function (i) {
+            var me = this;
+            if (typeof i == 'object') {
+                selectedItem = i;
+            } else if (typeof i == 'number') {
+                selectedItem = me.data[i];
+            }
+        },
+        onpageclick:function (id) {
+            var me = this;
+            for (var i = 0; i < pages.length; i++) {
+                $G(pages[i]).className = 'pageoff';
+                $G(panels[i]).className = 'paneloff';
+            }
+            $G('page' + id).className = 'pageon';
+            $G('panel' + id).className = 'panelon';
+        },
+        listenTest:function (elem) {
+            var me = this,
+                view = $G('J_preview'),
+                is_play_action = (elem.className == 'm-try'),
+                old_trying = me._getTryingElem();
+
+            if (old_trying) {
+                old_trying.className = 'm-try';
+                view.innerHTML = '';
+            }
+            if (is_play_action) {
+                elem.className = 'm-trying';
+                view.innerHTML = me._buildMusicHtml(me._getUrl(true));
+            }
+        },
+        _sent:function (param) {
+            var me = this;
+            $G('J_resultBar').innerHTML = '<div class="loading"></div>';
+
+            utils.loadFile(document, {
+                src:me.dataUrl + '&query=' + param + '&page_size=' + me.total + '&callback=music.callback&.r=' + Math.random(),
+                tag:"script",
+                type:"text/javascript",
+                defer:"defer"
+            });
+        },
+        _removeHtml:function (str) {
+            var reg = /<\s*\/?\s*[^>]*\s*>/gi;
+            return str.replace(reg, "");
+        },
+        _getUrl:function (isTryListen) {
+            var me = this;
+            var param = 'from=tiebasongwidget&url=&name=' + encodeURIComponent(me._removeHtml(selectedItem.title)) + '&artist='
+                + encodeURIComponent(me._removeHtml(selectedItem.author)) + '&extra='
+                + encodeURIComponent(me._removeHtml(selectedItem.album_title))
+                + '&autoPlay='+isTryListen+'' + '&loop=true';
+            return  me.playerUrl + "?" + param;
+        },
+        _getTryingElem:function () {
+            var s = $G('J_listPanel').getElementsByTagName('span');
+
+            for (var i = 0; i < s.length; i++) {
+                if (s[i].className == 'm-trying')
+                    return s[i];
+            }
+            return null;
+        },
+        _buildMusicHtml:function (playerUrl) {
+            var html = '<embed class="BDE_try_Music" allowfullscreen="false" pluginspage="http://www.macromedia.com/go/getflashplayer"';
+            html += ' src="' + playerUrl + '"';
+            html += ' width="1" height="1" style="position:absolute;left:-2000px;"';
+            html += ' type="application/x-shockwave-flash" wmode="transparent" play="true" loop="false"';
+            html += ' menu="false" allowscriptaccess="never" scale="noborder">';
+            return html;
+        },
+        _byteLength:function (str) {
+            return str.replace(/[^\u0000-\u007f]/g, "\u0061\u0061").length;
+        },
+        _getMaxText:function (s) {
+            var me = this;
+            s = me._removeHtml(s);
+            if (me._byteLength(s) > 12)
+                return s.substring(0, 5) + '...';
+            if (!s) s = "&nbsp;";
+            return s;
+        },
+        _rebuildData:function (data) {
+            var me = this,
+                newData = [],
+                d = me.pageSize,
+                itembox;
+            for (var i = 0; i < data.length; i++) {
+                if ((i + d) % d == 0) {
+                    itembox = [];
+                    newData.push(itembox)
+                }
+                itembox.push(data[i]);
+            }
+            return newData;
+        },
+        _renderTemplate:function (data) {
+            var me = this;
+            if (data.length == 0)return '<div class="empty">' + lang.emptyTxt + '</div>';
+            data = me._rebuildData(data);
+            var s = [], p = [], t = [];
+            s.push('<div id="J_listPanel" class="listPanel">');
+            p.push('<div class="page">');
+            for (var i = 0, tmpList; tmpList = data[i++];) {
+                panels.push('panel' + i);
+                pages.push('page' + i);
+                if (i == 1) {
+                    s.push('<div id="panel' + i + '" class="panelon">');
+                    if (data.length != 1) {
+                        t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageon">' + (i ) + '</div>');
+                    }
+                } else {
+                    s.push('<div id="panel' + i + '" class="paneloff">');
+                    t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageoff">' + (i ) + '</div>');
+                }
+                s.push('<div class="m-box">');
+                s.push('<div class="m-h"><span class="m-t">' + lang.chapter + '</span><span class="m-s">' + lang.singer
+                    + '</span><span class="m-z">' + lang.special + '</span><span class="m-try-t">' + lang.listenTest + '</span></div>');
+                for (var j = 0, tmpObj; tmpObj = tmpList[j++];) {
+                    s.push('<label for="radio-' + i + '-' + j + '" class="m-m">');
+                    s.push('<input type="radio" id="radio-' + i + '-' + j + '" name="musicId" class="m-l" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ')"/>');
+                    s.push('<span class="m-t">' + me._getMaxText(tmpObj.title) + '</span>');
+                    s.push('<span class="m-s">' + me._getMaxText(tmpObj.author) + '</span>');
+                    s.push('<span class="m-z">' + me._getMaxText(tmpObj.album_title) + '</span>');
+                    s.push('<span class="m-try" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ');music.listenTest(this)"></span>');
+                    s.push('</label>');
+                }
+                s.push('</div>');
+                s.push('</div>');
+            }
+            t.reverse();
+            p.push(t.join(''));
+            s.push('</div>');
+            p.push('</div>');
+            return s.join('') + p.join('');
+        },
+        exec:function () {
+            var me = this;
+            if (selectedItem == null)   return;
+            $G('J_preview').innerHTML = "";
+            editor.execCommand('music', {
+                url:me._getUrl(false),
+                width:400,
+                height:95
+            });
+        }
+    };
+})();
+
+
+

+ 40 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/preview/preview.html

@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+    "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+        <style>
+            html,body{
+                height:100%;
+                width:100%;
+                padding:0;
+                margin:0;
+            }
+            #preview{
+                width:100%;
+                height:100%;
+                padding:0;
+                margin:0;
+            }
+            #preview *{font-family:sans-serif;font-size:16px;}
+        </style>
+        <script type="text/javascript" src="../internal.js"></script>
+        <script src="../../ueditor.parse.js"></script>
+        <title></title>
+    </head>
+    <body class="view">
+        <div id="preview" style="margin:8px">
+
+        </div>
+    </body>
+    <script>
+        document.getElementById('preview').innerHTML = editor.getContent();
+        uParse('#preview',{
+            rootPath : '../../',
+            chartContainerHeight:500
+        })
+        dialog.oncancel = function(){
+            document.getElementById('preview').innerHTML = '';
+        }
+    </script>
+</html>

二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/scrawl/images/redo.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/scrawl/images/redoH.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre0.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre1.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre2.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre3.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/template/images/pre4.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/icons.gif


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/icons.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/image.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/left_focus.jpg


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/none_focus.jpg


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/progress.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/video/images/right_focus.jpg


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/dialogs/wordimage/imageUploader.swf


+ 175 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/index.html

@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+        "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+    <title>完整demo</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
+    <script type="text/javascript" charset="utf-8" src="ueditor.config.js"></script>
+    <script type="text/javascript" charset="utf-8" src="ueditor.all.min.js"> </script>
+    <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
+    <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
+    <script type="text/javascript" charset="utf-8" src="lang/zh-cn/zh-cn.js"></script>
+
+    <style type="text/css">
+        div{
+            width:100%;
+        }
+    </style>
+</head>
+<body>
+<div>
+    <h1>完整demo</h1>
+    <script id="editor" type="text/plain" style="width:1024px;height:500px;"></script>
+</div>
+<div id="btns">
+    <div>
+        <button onclick="getAllHtml()">获得整个html的内容</button>
+        <button onclick="getContent()">获得内容</button>
+        <button onclick="setContent()">写入内容</button>
+        <button onclick="setContent(true)">追加内容</button>
+        <button onclick="getContentTxt()">获得纯文本</button>
+        <button onclick="getPlainTxt()">获得带格式的纯文本</button>
+        <button onclick="hasContent()">判断是否有内容</button>
+        <button onclick="setFocus()">使编辑器获得焦点</button>
+        <button onmousedown="isFocus(event)">编辑器是否获得焦点</button>
+        <button onmousedown="setblur(event)" >编辑器失去焦点</button>
+
+    </div>
+    <div>
+        <button onclick="getText()">获得当前选中的文本</button>
+        <button onclick="insertHtml()">插入给定的内容</button>
+        <button id="enable" onclick="setEnabled()">可以编辑</button>
+        <button onclick="setDisabled()">不可编辑</button>
+        <button onclick=" UE.getEditor('editor').setHide()">隐藏编辑器</button>
+        <button onclick=" UE.getEditor('editor').setShow()">显示编辑器</button>
+        <button onclick=" UE.getEditor('editor').setHeight(300)">设置高度为300默认关闭了自动长高</button>
+    </div>
+
+    <div>
+        <button onclick="getLocalData()" >获取草稿箱内容</button>
+        <button onclick="clearLocalData()" >清空草稿箱</button>
+    </div>
+
+</div>
+<div>
+    <button onclick="createEditor()">
+    创建编辑器</button>
+    <button onclick="deleteEditor()">
+    删除编辑器</button>
+</div>
+
+<script type="text/javascript">
+
+    //实例化编辑器
+    //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
+    var ue = UE.getEditor('editor');
+
+
+    function isFocus(e){
+        alert(UE.getEditor('editor').isFocus());
+        UE.dom.domUtils.preventDefault(e)
+    }
+    function setblur(e){
+        UE.getEditor('editor').blur();
+        UE.dom.domUtils.preventDefault(e)
+    }
+    function insertHtml() {
+        var value = prompt('插入html代码', '');
+        UE.getEditor('editor').execCommand('insertHtml', value)
+    }
+    function createEditor() {
+        enableBtn();
+        UE.getEditor('editor');
+    }
+    function getAllHtml() {
+        alert(UE.getEditor('editor').getAllHtml())
+    }
+    function getContent() {
+        var arr = [];
+        arr.push("使用editor.getContent()方法可以获得编辑器的内容");
+        arr.push("内容为:");
+        arr.push(UE.getEditor('editor').getContent());
+        alert(arr.join("\n"));
+    }
+    function getPlainTxt() {
+        var arr = [];
+        arr.push("使用editor.getPlainTxt()方法可以获得编辑器的带格式的纯文本内容");
+        arr.push("内容为:");
+        arr.push(UE.getEditor('editor').getPlainTxt());
+        alert(arr.join('\n'))
+    }
+    function setContent(isAppendTo) {
+        var arr = [];
+        arr.push("使用editor.setContent('欢迎使用ueditor')方法可以设置编辑器的内容");
+        UE.getEditor('editor').setContent('欢迎使用ueditor', isAppendTo);
+        alert(arr.join("\n"));
+    }
+    function setDisabled() {
+        UE.getEditor('editor').setDisabled('fullscreen');
+        disableBtn("enable");
+    }
+
+    function setEnabled() {
+        UE.getEditor('editor').setEnabled();
+        enableBtn();
+    }
+
+    function getText() {
+        //当你点击按钮时编辑区域已经失去了焦点,如果直接用getText将不会得到内容,所以要在选回来,然后取得内容
+        var range = UE.getEditor('editor').selection.getRange();
+        range.select();
+        var txt = UE.getEditor('editor').selection.getText();
+        alert(txt)
+    }
+
+    function getContentTxt() {
+        var arr = [];
+        arr.push("使用editor.getContentTxt()方法可以获得编辑器的纯文本内容");
+        arr.push("编辑器的纯文本内容为:");
+        arr.push(UE.getEditor('editor').getContentTxt());
+        alert(arr.join("\n"));
+    }
+    function hasContent() {
+        var arr = [];
+        arr.push("使用editor.hasContents()方法判断编辑器里是否有内容");
+        arr.push("判断结果为:");
+        arr.push(UE.getEditor('editor').hasContents());
+        alert(arr.join("\n"));
+    }
+    function setFocus() {
+        UE.getEditor('editor').focus();
+    }
+    function deleteEditor() {
+        disableBtn();
+        UE.getEditor('editor').destroy();
+    }
+    function disableBtn(str) {
+        var div = document.getElementById('btns');
+        var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
+        for (var i = 0, btn; btn = btns[i++];) {
+            if (btn.id == str) {
+                UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
+            } else {
+                btn.setAttribute("disabled", "true");
+            }
+        }
+    }
+    function enableBtn() {
+        var div = document.getElementById('btns');
+        var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
+        for (var i = 0, btn; btn = btns[i++];) {
+            UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
+        }
+    }
+
+    function getLocalData () {
+        alert(UE.getEditor('editor').execCommand( "getlocaldata" ));
+    }
+
+    function clearLocalData () {
+        UE.getEditor('editor').execCommand( "clearlocaldata" );
+        alert("已清空草稿箱")
+    }
+</script>
+</body>
+</html>

二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/listbackground.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/localimage.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/music.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/rotateleftdisable.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/rotateleftenable.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/en/images/rotaterightdisable.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/zh-cn/images/localimage.png


二進制
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/lang/zh-cn/images/music.png


+ 0 - 0
watero-wechat-web/src/main/webapp/common/lib/ueditor/1.4.3/themes/default/images/icons-all.gif


Some files were not shown because too many files changed in this diff