ws2z3gr2017 пре 7 година
комит
dea1ae2fdd
52 измењених фајлова са 26965 додато и 0 уклоњено
  1. 32 0
      .gitignore
  2. 5 0
      bin/clean.js
  3. BIN
      fonts/glyphicons-halflings-regular.eot
  4. 288 0
      fonts/glyphicons-halflings-regular.svg
  5. BIN
      fonts/glyphicons-halflings-regular.ttf
  6. BIN
      fonts/glyphicons-halflings-regular.woff
  7. BIN
      fonts/glyphicons-halflings-regular.woff2
  8. BIN
      img/Logo111.png
  9. BIN
      img/banner1.png
  10. BIN
      img/bottom1_02.jpg
  11. BIN
      img/bottom_02.jpg
  12. BIN
      img/coupon.jpg
  13. BIN
      img/coupon.png
  14. BIN
      img/coupon_line.png
  15. BIN
      img/dianhua.jpg
  16. BIN
      img/dizhi.jpg
  17. BIN
      img/erweima.jpg
  18. BIN
      img/hot.png
  19. BIN
      img/index_activity.png
  20. BIN
      img/index_nav_bj.png
  21. BIN
      img/index_next.png
  22. BIN
      img/index_pre.png
  23. BIN
      img/index_use.png
  24. BIN
      img/need_img1.png
  25. BIN
      img/need_img2.jpg
  26. BIN
      img/policy.jpg
  27. BIN
      img/product1.jpg
  28. BIN
      img/product2.jpg
  29. BIN
      img/product3.jpg
  30. BIN
      img/product4.jpg
  31. BIN
      img/product5.jpg
  32. BIN
      img/search.png
  33. BIN
      img/x_banner01.png
  34. BIN
      img/x_banner02.png
  35. BIN
      img/x_banner03.png
  36. BIN
      img/x_banner04.png
  37. BIN
      img/x_banner05.png
  38. 8946 0
      package-lock.json
  39. 54 0
      package.json
  40. 6759 0
      src/css/bootstrap.css
  41. 56 0
      src/css/bootstrap.less
  42. 135 0
      src/css/index_home.css
  43. 41 0
      src/css/mixins.less
  44. 46 0
      src/css/public.css
  45. 869 0
      src/css/variables.less
  46. 27 0
      src/js/index.js
  47. 9111 0
      src/js/jquery-2.1.0.js
  48. 40 0
      src/js/public.js
  49. 385 0
      template/index.html
  50. 101 0
      webpack.config.js
  51. 12 0
      webpack/entry.config.js
  52. 58 0
      webpack/module.config.js

+ 32 - 0
.gitignore

@@ -0,0 +1,32 @@
+# Logs
+logs
+*.log
+
+# Runtime data
+pids
+*.pid
+*.seed
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+
+# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (http://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directory
+# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
+node_modules
+clean.sh
+build
+.project
+.vscode
+dll

+ 5 - 0
bin/clean.js

@@ -0,0 +1,5 @@
+const del = require('del');
+ 
+del(['build/*']).then(paths => {
+    console.log('Deleted files and folders:\n', paths.join('\n'));
+});

BIN
fonts/glyphicons-halflings-regular.eot


Разлика између датотеке није приказан због своје велике величине
+ 288 - 0
fonts/glyphicons-halflings-regular.svg


BIN
fonts/glyphicons-halflings-regular.ttf


BIN
fonts/glyphicons-halflings-regular.woff


BIN
fonts/glyphicons-halflings-regular.woff2




BIN
img/bottom1_02.jpg


BIN
img/bottom_02.jpg




BIN
img/coupon_line.png






BIN
img/index_activity.png


BIN
img/index_nav_bj.png


BIN
img/index_next.png


BIN
img/index_pre.png


BIN
img/index_use.png


BIN
img/need_img1.png


BIN
img/need_img2.jpg









BIN
img/x_banner01.png


BIN
img/x_banner02.png


BIN
img/x_banner03.png


BIN
img/x_banner04.png


BIN
img/x_banner05.png


Разлика између датотеке није приказан због своје велике величине
+ 8946 - 0
package-lock.json


+ 54 - 0
package.json

@@ -0,0 +1,54 @@
+{
+  "name": "aft-portal",
+  "version": "1.0.11",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "dlldev": "webpack --progress --colors --config ./webpack-dll.config.js --env.deploy dev --env.host 'http://127.0.0.1'",
+    "dlltest": "webpack --progress --colors --config ./webpack-dll.config.js --env.deploy test --env.host 'http://afts.hnzhiming.com'",
+    "dllstage": "webpack --progress --colors --config ./webpack-dll.config.js --env.deploy stage --env.host 'http://aftts.hnzhiming.com'",
+    "dllpro": "webpack --progress --colors --config ./webpack-dll.config.js --env.deploy prod --env.host 'http://static.goafanti.com'",
+    "build": "node bin/clean.js && webpack --progress --colors --env.deploy dev",
+    "buildtest": "node bin/clean.js && webpack --progress --colors --env.deploy test",
+    "buildstage": "node bin/clean.js && webpack --progress --colors --env.deploy stage",
+    "pro": "node bin/clean.js && webpack --progress --colors --env.deploy prod",
+    "dev": "webpack-dev-server --port 80 --devtool eval --progress --colors --hot --content-base build --env.deploy dev --env.watch watch"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://git.coding.net/aft/AFT-PORTAL.git"
+  },
+  "author": "",
+  "license": "ISC",
+  "devDependencies": {
+    "babel-core": "^6.23.1",
+    "babel-loader": "^6.3.2",
+    "babel-plugin-import": "^1.1.1",
+    "babel-preset-es2015": "^6.22.0",
+    "babel-preset-react": "^6.23.0",
+    "css-loader": "^0.26.2",
+    "del": "^3.0.0",
+    "extract-text-webpack-plugin": "^2.1.0",
+    "file-loader": "^0.10.1",
+    "html-loader": "^0.4.5",
+    "html-webpack-plugin": "^2.28.0",
+    "html-withimg-loader": "^0.1.16",
+    "imagemin-webpack-plugin": "^1.4.4",
+    "jquery": "^3.1.1",
+    "jsx-loader": "^0.13.2",
+    "less": "^2.7.2",
+    "less-loader": "^2.2.3",
+    "style-loader": "^0.13.2",
+    "url-loader": "^0.5.8",
+    "webpack": "^2.2.1",
+    "webpack-dev-server": "^2.4.1"
+  },
+  "dependencies": {
+    "bootstrap": "^3.3.7",
+    "bootstrap-loader": "^2.1.0",
+    "bootstrap-sass": "^3.3.7",
+    "echarts": "^3.6.2",
+    "jquery": "^3.1.1"
+  }
+}

Разлика између датотеке није приказан због своје велике величине
+ 6759 - 0
src/css/bootstrap.css


+ 56 - 0
src/css/bootstrap.less

@@ -0,0 +1,56 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+// Core variables and mixins
+@import "variables.less";
+@import "mixins.less";
+
+// Reset and dependencies
+@import "../../node_modules/bootstrap/less/normalize.less";
+@import "../../node_modules/bootstrap/less/print.less";
+@import "../../node_modules/bootstrap/less/glyphicons.less";
+
+// Core CSS
+@import "../../node_modules/bootstrap/less/scaffolding.less";
+@import "../../node_modules/bootstrap/less/type.less";
+@import "../../node_modules/bootstrap/less/code.less";
+@import "../../node_modules/bootstrap/less/grid.less";
+@import "../../node_modules/bootstrap/less/tables.less";
+@import "../../node_modules/bootstrap/less/forms.less";
+@import "../../node_modules/bootstrap/less/buttons.less";
+
+// Components
+@import "../../node_modules/bootstrap/less/component-animations.less";
+@import "../../node_modules/bootstrap/less/dropdowns.less";
+@import "../../node_modules/bootstrap/less/button-groups.less";
+@import "../../node_modules/bootstrap/less/input-groups.less";
+@import "../../node_modules/bootstrap/less/navs.less";
+@import "../../node_modules/bootstrap/less/navbar.less";
+@import "../../node_modules/bootstrap/less/breadcrumbs.less";
+@import "../../node_modules/bootstrap/less/pagination.less";
+@import "../../node_modules/bootstrap/less/pager.less";
+@import "../../node_modules/bootstrap/less/labels.less";
+@import "../../node_modules/bootstrap/less/badges.less";
+@import "../../node_modules/bootstrap/less/jumbotron.less";
+@import "../../node_modules/bootstrap/less/thumbnails.less";
+@import "../../node_modules/bootstrap/less/alerts.less";
+@import "../../node_modules/bootstrap/less/progress-bars.less";
+@import "../../node_modules/bootstrap/less/media.less";
+@import "../../node_modules/bootstrap/less/list-group.less";
+@import "../../node_modules/bootstrap/less/panels.less";
+@import "../../node_modules/bootstrap/less/responsive-embed.less";
+@import "../../node_modules/bootstrap/less/wells.less";
+@import "../../node_modules/bootstrap/less/close.less";
+
+// Components w/ JavaScript
+@import "../../node_modules/bootstrap/less/modals.less";
+@import "../../node_modules/bootstrap/less/tooltip.less";
+@import "../../node_modules/bootstrap/less/popovers.less";
+@import "../../node_modules/bootstrap/less/carousel.less";
+
+// Utility classes
+@import "../../node_modules/bootstrap/less/utilities.less";
+@import "../../node_modules/bootstrap/less/responsive-utilities.less";

+ 135 - 0
src/css/index_home.css

@@ -0,0 +1,135 @@
+*{padding: 0;margin: 0;box-sizing:border-box;}
+html{font-size:62.5%;}
+body{font:14px "simsun",Arial,Helvetica,sans-serif;width:100%;
+    background-color:#fff;
+    font-size:1.4rem;
+    -webkit-user-select:none;
+    -moz-user-select:none;
+    -ms-user-select:none;
+    user-select:none;
+}
+body,h1,h2,h3,h4,h6,p,ul,ol,dl,dd{margin:0;padding:0;list-style:none;}
+body{padding-top: 74px;}
+a{color:#000;text-decoration:none;}
+a:hover{color:#000;text-decoration:none;}
+.lf{float:left;}
+.rf{float:right;}
+.clear{clear:both;}
+
+
+
+input:focus{outline: none;}
+ul,ol{padding: 0;margin: 0;list-style: none;}
+.index_activity{background: url(../../img/index_activity.png) no-repeat center center;background-size: 100% 100%;padding-top: 88px;margin-top: -10px;}
+.index_activity ul li{float: left;width: 140px;height:90px ;text-align: center;}
+.index_activity ul li strong{font-size: 36px;color: #ffbc09;}
+.index_activity ul li p{font-size: 16px;color: #185487;}
+.index_activity ul{float: left;}
+.index_activity form{float: right;position: relative;width: 270px;height: 44px;background: #FFFFFF;margin-top: 20px;box-shadow: 0 0 10px #CCCCCC;}
+.index_activity form .search{width: 20px;height: 20px;position: absolute;top: 12px;left:8px;}
+.index_activity form input{border: none;width:190px ;height: 32px;position:absolute;top: 6px;left: 40px;line-height: 32px;border-right: 2px solid #CCCCCC;}
+.index_activity form .index_use{width: 20px;height: 20px;position: absolute;top: 12px;right:8px}
+::-webkit-input-placeholder{color:#CCCCCC !important;}
+  
+
+/*active的css*/
+#active{width:1200px;height:240px;margin:0 auto;padding-top:50px;position: relative;}
+#active>.title{width:70px;height:160px;padding-top:10px; }
+#active>.title>p{width:25px;height:160px;font-size: 2rem;color:#074F88;
+    margin:0 0 50px 45px;font-weight: bold;}
+#active>.coupon{width:1130px;height:160px;padding:1px 0 0 40px; }
+#active .lf{background: url(../../img/coupon.jpg) no-repeat;}
+#active>.coupon>.coupon_cont{position: relative;width:232px;height:157px;
+    margin-right: 25px;}
+#active>.coupon>.coupon_cont>h2{position: absolute;width:100%;height:92px;
+    text-align: center;line-height:92px;font-size: 30px;color:#FF8400;}
+#active>.coupon>.coupon_cont>p{position: absolute;width:100%;height:56px;
+    text-align: center;line-height:56px;top:92px;font-size: 1.8rem;}
+#active>.line{position: absolute;left:45px;bottom:0;
+    width:1110px;height:15px;background-image:url(../../img/coupon_line.png);}
+
+/*product的css*/
+#product{width:1200px;height:450px;margin:0 auto;position: relative;}
+.caption{width:100%;height:50px;font-size: 2rem;color:#074F88;
+    line-height: 50px;padding-left:30px;}
+#product>.content{width:1140px;height:400px;margin-left:30px;position: relative;  }
+#product>.content>.cont{width:220px;height:350px;margin-right: 3px;
+    display: inline-block;}
+#product>.content>.cont:last-child{margin-right: 0;}
+.cont_top1{position: absolute;top:0;left:0;background: #FFEED1;}
+#product .cont_bottom1{position: absolute;top:50px;left:230px;background: #5888B5;color:#fff;}
+.cont_top2{position: absolute;top:0;left:460px;background: #FFEED1;}
+#product .cont_bottom2{position: absolute;top:50px;left:690px;background: #5888B5;color:#fff;}
+.cont_top3{position: absolute;top:0;right:0;background: #FFEED1;}
+#product .img{width:220px;height:177px;}
+#product .text{width:220px;height:173px;}
+#product .text>h2{font-size: 1.8rem;height:60px;width:100%;line-height: 60px;
+text-align: center;color:#3B3B3B;}
+#product .cont_bottom1 .text>h2{color:#fff;}
+#product .cont_bottom2 .text>h2{color:#fff;}
+#product .cont_bottom1 .text>p{color:#fff;}
+#product .cont_bottom2 .text>p{color:#fff;}
+.text>p{width:180px;height:113px;margin-left:20px;color:#747474;line-height:20px;}
+
+/*policy的css*/
+#policy{width:1200px;height:405px;margin:50px auto 0;position: relative;}
+.pol_cont{width:1110px;height:355px;margin-left:45px;position: relative; }
+.pol_left{width:525px;height:345px;box-shadow: 5px 5px 5px 0 #EaEaEa;
+display:inline-block;position: absolute;top:0;left:0;}
+.pol_left_cont{width:525px;height:145px;background: #F6F6F6;}
+.pol_left_cont h3{height:50px;width:100%;line-height: 50px;
+    color:#797979;font-size: 18px;padding-left:25px; }
+.pol_left_cont p{line-height: 20px;padding:0 17px 0 25px;width:100%;height:62px;color:#616160;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;}
+.pol_bottom{width:100%;height:30px;padding:0 12px 0 25px;}
+.more a{color:#FFBC08;font-weight: bold;font-size: 1.6rem;}
+.data{font-size: 1rem;color:#9B9A9A;line-height:20px;}
+
+.pol_right{width:560px;height:345px;margin-left:15px;
+    display:inline-block;position: absolute;top:0;right:0;}
+.pol_right_big{width:100%;height:165px;box-shadow: 5px 5px 5px 0 #EaEaEa;border:1px solid #F1F1F1;
+    border-radius: 2px;}
+.pol_right_big h3{height:50px;width:100%;line-height: 50px;
+    color:#797979;font-size: 1.4rem;padding-left:25px; }
+.pol_right_big p{line-height: 20px;padding:0 17px 0 25px;width:100%;height:82px;color:#616160;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 4;}
+.pol_right_sm{width:275px;height:165px;display: inline-block;background: #F6F6F6;
+    margin-top:15px;box-shadow: 5px 5px 5px 0 #EaEaEa;}
+.pol_right_sm h3{height:50px;width:100%;line-height: 50px;
+    color:#797979;font-size: 1.4rem;padding-left:25px; }
+.pol_right_sm p{line-height: 20px;padding:0 17px 0 25px;width:100%;height:83px;color:#616160;text-overflow: ellipsis;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 4;}
+
+/*need的css*/
+.need_main{background: #f6f6f6;width: 100%;}
+#need{width:1200px;height:295px;margin:45px auto 0;position: relative;background: #f6f6f6;}
+#need>.caption{display:inline-block;width:120px;}
+
+
+/*bottom的css*/
+#bottom{width:100%;height:386px;margin:20px auto 0;position: relative;background: #074D88;}
+.bottom{width:1200px;height:386px;margin:20px auto 0;position: relative;}
+.bottom_text{width:1200px;height:386px;position: absolute;left:0;top:0;}
+.text_top{width:100%;height:55px;position: absolute;top:140px;left:0;text-align: center;color:#fff;}
+.text_top>a{color:#fff;line-height:25px;}
+.text_center{width:100%;height:90px;position: absolute;top:195px;left:0;color:#fff;}
+.cont_left{width:455px;height:90px;display:inline-block;margin-left:45px;}
+.cont_left>img{margin-left:85px;}
+.cont_center{width:200px;height:90px;display:inline-block;text-align: center;}
+.cont_right{width:455px;height:90px;display:inline-block;text-align: right;}
+.text_center p{color:#F5F6F9;line-height:50px;font-weight: bold;}
+.cont_center p{line-height:20px;}
+.cont_right p{display:inline-block;}
+.text_bottom{width:100%;height:75px;position: absolute;top:285px;left:0;color:#fff;
+    padding-left:45px;margin-top:15px;}
+.text_bottom p{font-weight: bold;line-height: 25px;}
+.text_bottom a{color:#fff;font-size: 1.2rem;line-height: 18px;}
+
+/*左右轮播*/
+.carousel{position: relative;width: 1200px;}
+.need_imgs{width: 1018px;overflow: hidden;position: absolute;left: 50%;margin-left: -500px;top: 0;}
+.carousel .need_prev{width: 30px;height: 34px;font-size: 24px;text-align: center;line-height: 34px;background: #686868;display: inline-block;color: #FFFFFF;position: absolute;top:90px;left:50px;box-shadow: 2px 2px 10px #333333;}
+.carousel ul{float: left;width: 100000px;}
+.carousel ul li{float: left;padding-left: 10px;padding-right: 10px;text-align: center;padding-bottom: 20px;}
+.carousel ul li p{font-size: 14px;color: #404040;line-height: 52px;background: #ffffff;box-shadow: 2px 2px 10px #333333;}
+.carousel ul li img{width: 320px;height:160px;}
+.carousel .need_next{position: absolute;top:90px;right:30px;width: 30px;height: 34px;font-size: 24px;text-align: center;line-height: 34px;background: #686868;display: inline-block;color: #FFFFFF;box-shadow: 2px 2px 10px #333333;}
+.carousel .need_prev:hover,.carousel .need_next:hover{background: #003399;cursor: pointer;}
+

+ 41 - 0
src/css/mixins.less

@@ -0,0 +1,41 @@
+// Mixins
+// --------------------------------------------------
+
+// Utilities
+@import "../../node_modules/bootstrap/less/mixins/hide-text.less";
+@import "../../node_modules/bootstrap/less/mixins/opacity.less";
+@import "../../node_modules/bootstrap/less/mixins/image.less";
+@import "../../node_modules/bootstrap/less/mixins/labels.less";
+@import "../../node_modules/bootstrap/less/mixins/reset-filter.less";
+@import "../../node_modules/bootstrap/less/mixins/resize.less";
+@import "../../node_modules/bootstrap/less/mixins/responsive-visibility.less";
+@import "../../node_modules/bootstrap/less/mixins/size.less";
+@import "../../node_modules/bootstrap/less/mixins/tab-focus.less";
+@import "../../node_modules/bootstrap/less/mixins/reset-text.less";
+@import "../../node_modules/bootstrap/less/mixins/text-emphasis.less";
+@import "../../node_modules/bootstrap/less/mixins/text-overflow.less";
+@import "../../node_modules/bootstrap/less/mixins/vendor-prefixes.less";
+
+// Components
+@import "../../node_modules/bootstrap/less/mixins/alerts.less";
+@import "../../node_modules/bootstrap/less/mixins/buttons.less";
+@import "../../node_modules/bootstrap/less/mixins/panels.less";
+@import "../../node_modules/bootstrap/less/mixins/pagination.less";
+@import "../../node_modules/bootstrap/less/mixins/list-group.less";
+@import "../../node_modules/bootstrap/less/mixins/nav-divider.less";
+@import "../../node_modules/bootstrap/less/mixins/forms.less";
+@import "../../node_modules/bootstrap/less/mixins/progress-bar.less";
+@import "../../node_modules/bootstrap/less/mixins/table-row.less";
+
+// Skins
+@import "../../node_modules/bootstrap/less/mixins/background-variant.less";
+@import "../../node_modules/bootstrap/less/mixins/border-radius.less";
+@import "../../node_modules/bootstrap/less/mixins/gradients.less";
+
+// Layout
+@import "../../node_modules/bootstrap/less/mixins/clearfix.less";
+@import "../../node_modules/bootstrap/less/mixins/center-block.less";
+@import "../../node_modules/bootstrap/less/mixins/nav-vertical-align.less";
+@import "../../node_modules/bootstrap/less/mixins/grid-framework.less";
+@import "../../node_modules/bootstrap/less/mixins/grid.less";
+

+ 46 - 0
src/css/public.css

@@ -0,0 +1,46 @@
+*{padding: 0;margin: 0;font-family: "微软雅黑";}
+a{text-decoration: none;}
+a:hover{text-decoration: none;}
+ul,ol,li{list-style: none;padding: 0;margin: 0;}
+p,h3{margin: 0;padding: 0;}
+/*顶部区域*/
+body{padding-top: 74px;}
+header{width: 100%;background: #f0f0f0;line-height: 74px;height: 74px;position: fixed;top: 0;left: 0;z-index: 99999;box-shadow: 2px 4px 10px #CCCCCC;}
+header .logo{float: left;padding-left: 20px;}
+
+header .nav{float: left;padding-left: 90px;}
+header .nav ul li{float: left;width: 120px;text-align: center;line-height: 76px;}
+header .nav ul li a{color: #064a74;width: 120px;line-height: 76px;display: inline-block;font-size: 16px;}
+header .nav ul li:hover a{background: url(../../img/index_nav_bj.png) no-repeat center center;color: #FFFFFF;background-position-y:19px }
+.active{background: url(../../img/index_nav_bj.png) no-repeat center center;background-position-y:19px ;}
+.active a{color: #FFFFFF!important;}
+header .nav_right{float: right;padding-right: 40px;}
+header .nav_right a{color: #333333;margin: 2px;}
+header .nav_right a:hover{color: #2a6597;}
+.nav ul li {position: relative;}
+.nav ul li img{width: 20px;height: 20px;position: absolute;right: 8px;top: 19px;}
+/*banner*/
+
+.banner{clear: both;position: relative;padding-top: 44px;width: 1000px;margin: 0 auto;}
+
+
+
+.banner_txt{}
+.banner_txt h3{font-size: 30px;font-weight: none;color: #565555;margin-top: 55px;margin-bottom: 24px;}
+.banner_txt p{font-size: 14px;color: #565555;line-height: 24px;}
+.img_list ol li{float: left;margin-left:10px ;border: 1px solid transparent;}
+.img_list{overflow: hidden;margin-top: 64px;}
+.img_list ol li:first-child{margin-left: 0;}
+
+.img_list ol li:hover{cursor: pointer;border: 1px solid #2a6597;}
+.banner_next:hover,.index_pre:hover{cursor: pointer;}
+.banner_mid{position: absolute;width: 100%;top: 194px;}
+.banner_mid .banner_next{float: right;margin-right:-60px;}
+.banner_mid .index_pre{float: left;margin-left: -90px;}
+
+.banner_imgs{width:100%;height: 340px;}
+
+.banner_box{position: absolute;top: 44px ;right:5px;width: 530px;overflow: hidden;}
+.banner_box ul{width: 1000000px;overflow: hidden;}
+.banner_box ul li{float: left;width: 530px;}
+.banner_txt{padding-bottom: 60px;}

+ 869 - 0
src/css/variables.less

@@ -0,0 +1,869 @@
+//
+// Variables
+// --------------------------------------------------
+
+
+//== Colors
+//
+//## Gray and brand colors for use across Bootstrap.
+
+@gray-base:              #000;
+@gray-darker:            lighten(@gray-base, 13.5%); // #222
+@gray-dark:              lighten(@gray-base, 20%);   // #333
+@gray:                   lighten(@gray-base, 33.5%); // #555
+@gray-light:             lighten(@gray-base, 46.7%); // #777
+@gray-lighter:           lighten(@gray-base, 93.5%); // #eee
+
+@brand-primary:         darken(#428bca, 6.5%); // #337ab7
+@brand-success:         #5cb85c;
+@brand-info:            #5bc0de;
+@brand-warning:         #f0ad4e;
+@brand-danger:          #d9534f;
+
+
+//== Scaffolding
+//
+//## Settings for some of the most global styles.
+
+//** Background color for `<body>`.
+@body-bg:               #fff;
+//** Global text color on `<body>`.
+@text-color:            @gray-dark;
+
+//** Global textual link color.
+@link-color:            @brand-primary;
+//** Link hover color set via `darken()` function.
+@link-hover-color:      darken(@link-color, 15%);
+//** Link hover decoration.
+@link-hover-decoration: underline;
+
+
+//== Typography
+//
+//## Font, line-height, and color for body text, headings, and more.
+
+@font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif;
+@font-family-serif:       Georgia, "Times New Roman", Times, serif;
+//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
+@font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
+@font-family-base:        @font-family-sans-serif;
+
+@font-size-base:          14px;
+@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px
+@font-size-small:         ceil((@font-size-base * 0.85)); // ~12px
+
+@font-size-h1:            floor((@font-size-base * 2.6)); // ~36px
+@font-size-h2:            floor((@font-size-base * 2.15)); // ~30px
+@font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px
+@font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px
+@font-size-h5:            @font-size-base;
+@font-size-h6:            ceil((@font-size-base * 0.85)); // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+@line-height-base:        1.428571429; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px
+
+//** By default, this inherits from the `<body>`.
+@headings-font-family:    inherit;
+@headings-font-weight:    500;
+@headings-line-height:    1.1;
+@headings-color:          inherit;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+@icon-font-path:          "../../../fonts/";
+//** File name for all font files.
+@icon-font-name:          "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
+@icon-font-svg-id:        "glyphicons_halflingsregular";
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+@padding-base-vertical:     6px;
+@padding-base-horizontal:   12px;
+
+@padding-large-vertical:    10px;
+@padding-large-horizontal:  16px;
+
+@padding-small-vertical:    5px;
+@padding-small-horizontal:  10px;
+
+@padding-xs-vertical:       1px;
+@padding-xs-horizontal:     5px;
+
+@line-height-large:         1.3333333; // extra decimals for Win 8.1 Chrome
+@line-height-small:         1.5;
+
+@border-radius-base:        4px;
+@border-radius-large:       6px;
+@border-radius-small:       3px;
+
+//** Global color for active items (e.g., navs or dropdowns).
+@component-active-color:    #fff;
+//** Global background color for active items (e.g., navs or dropdowns).
+@component-active-bg:       @brand-primary;
+
+//** Width of the `border` for generating carets that indicate dropdowns.
+@caret-width-base:          4px;
+//** Carets increase slightly in size for larger components.
+@caret-width-large:         5px;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for `<th>`s and `<td>`s.
+@table-cell-padding:            8px;
+//** Padding for cells in `.table-condensed`.
+@table-condensed-cell-padding:  5px;
+
+//** Default background color used for all tables.
+@table-bg:                      transparent;
+//** Background color used for `.table-striped`.
+@table-bg-accent:               #f9f9f9;
+//** Background color used for `.table-hover`.
+@table-bg-hover:                #f5f5f5;
+@table-bg-active:               @table-bg-hover;
+
+//** Border color for table and cell borders.
+@table-border-color:            #ddd;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+@btn-font-weight:                normal;
+
+@btn-default-color:              #333;
+@btn-default-bg:                 #fff;
+@btn-default-border:             #ccc;
+
+@btn-primary-color:              #fff;
+@btn-primary-bg:                 @brand-primary;
+@btn-primary-border:             darken(@btn-primary-bg, 5%);
+
+@btn-success-color:              #fff;
+@btn-success-bg:                 @brand-success;
+@btn-success-border:             darken(@btn-success-bg, 5%);
+
+@btn-info-color:                 #fff;
+@btn-info-bg:                    @brand-info;
+@btn-info-border:                darken(@btn-info-bg, 5%);
+
+@btn-warning-color:              #fff;
+@btn-warning-bg:                 @brand-warning;
+@btn-warning-border:             darken(@btn-warning-bg, 5%);
+
+@btn-danger-color:               #fff;
+@btn-danger-bg:                  @brand-danger;
+@btn-danger-border:              darken(@btn-danger-bg, 5%);
+
+@btn-link-disabled-color:        @gray-light;
+
+// Allows for customizing button radius independently from global border radius
+@btn-border-radius-base:         @border-radius-base;
+@btn-border-radius-large:        @border-radius-large;
+@btn-border-radius-small:        @border-radius-small;
+
+
+//== Forms
+//
+//##
+
+//** `<input>` background color
+@input-bg:                       #fff;
+//** `<input disabled>` background color
+@input-bg-disabled:              @gray-lighter;
+
+//** Text color for `<input>`s
+@input-color:                    @gray;
+//** `<input>` border color
+@input-border:                   #ccc;
+
+// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
+//** Default `.form-control` border radius
+// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
+@input-border-radius:            @border-radius-base;
+//** Large `.form-control` border radius
+@input-border-radius-large:      @border-radius-large;
+//** Small `.form-control` border radius
+@input-border-radius-small:      @border-radius-small;
+
+//** Border color for inputs on focus
+@input-border-focus:             #66afe9;
+
+//** Placeholder text color
+@input-color-placeholder:        #999;
+
+//** Default `.form-control` height
+@input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);
+//** Large `.form-control` height
+@input-height-large:             (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
+//** Small `.form-control` height
+@input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
+
+//** `.form-group` margin
+@form-group-margin-bottom:       15px;
+
+@legend-color:                   @gray-dark;
+@legend-border-color:            #e5e5e5;
+
+//** Background color for textual input addons
+@input-group-addon-bg:           @gray-lighter;
+//** Border color for textual input addons
+@input-group-addon-border-color: @input-border;
+
+//** Disabled cursor for form controls and buttons.
+@cursor-disabled:                not-allowed;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+@dropdown-bg:                    #fff;
+//** Dropdown menu `border-color`.
+@dropdown-border:                rgba(0,0,0,.15);
+//** Dropdown menu `border-color` **for IE8**.
+@dropdown-fallback-border:       #ccc;
+//** Divider color for between dropdown items.
+@dropdown-divider-bg:            #e5e5e5;
+
+//** Dropdown link text color.
+@dropdown-link-color:            @gray-dark;
+//** Hover color for dropdown links.
+@dropdown-link-hover-color:      darken(@gray-dark, 5%);
+//** Hover background for dropdown links.
+@dropdown-link-hover-bg:         #f5f5f5;
+
+//** Active dropdown menu item text color.
+@dropdown-link-active-color:     @component-active-color;
+//** Active dropdown menu item background color.
+@dropdown-link-active-bg:        @component-active-bg;
+
+//** Disabled dropdown menu item background color.
+@dropdown-link-disabled-color:   @gray-light;
+
+//** Text color for headers within dropdown menus.
+@dropdown-header-color:          @gray-light;
+
+//** Deprecated `@dropdown-caret-color` as of v3.1.0
+@dropdown-caret-color:           #000;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+@zindex-navbar:            1000;
+@zindex-dropdown:          1000;
+@zindex-popover:           1060;
+@zindex-tooltip:           1070;
+@zindex-navbar-fixed:      1030;
+@zindex-modal-background:  1040;
+@zindex-modal:             1050;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `@screen-xs` as of v3.0.1
+@screen-xs:                  480px;
+//** Deprecated `@screen-xs-min` as of v3.2.0
+@screen-xs-min:              @screen-xs;
+//** Deprecated `@screen-phone` as of v3.0.1
+@screen-phone:               @screen-xs-min;
+
+// Small screen / tablet
+//** Deprecated `@screen-sm` as of v3.0.1
+@screen-sm:                  768px;
+@screen-sm-min:              @screen-sm;
+//** Deprecated `@screen-tablet` as of v3.0.1
+@screen-tablet:              @screen-sm-min;
+
+// Medium screen / desktop
+//** Deprecated `@screen-md` as of v3.0.1
+@screen-md:                  992px;
+@screen-md-min:              @screen-md;
+//** Deprecated `@screen-desktop` as of v3.0.1
+@screen-desktop:             @screen-md-min;
+
+// Large screen / wide desktop
+//** Deprecated `@screen-lg` as of v3.0.1
+@screen-lg:                  1200px;
+@screen-lg-min:              @screen-lg;
+//** Deprecated `@screen-lg-desktop` as of v3.0.1
+@screen-lg-desktop:          @screen-lg-min;
+
+// So media queries don't overlap when required, provide a maximum
+@screen-xs-max:              (@screen-sm-min - 1);
+@screen-sm-max:              (@screen-md-min - 1);
+@screen-md-max:              (@screen-lg-min - 1);
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+@grid-columns:              12;
+//** Padding between columns. Gets divided in half for the left and right.
+@grid-gutter-width:         30px;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+@grid-float-breakpoint:     @screen-sm-min;
+//** Point at which the navbar begins collapsing.
+@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+@container-tablet:             (720px + @grid-gutter-width);
+//** For `@screen-sm-min` and up.
+@container-sm:                 @container-tablet;
+
+// Medium screen / desktop
+@container-desktop:            (940px + @grid-gutter-width);
+//** For `@screen-md-min` and up.
+@container-md:                 @container-desktop;
+
+// Large screen / wide desktop
+@container-large-desktop:      (1140px + @grid-gutter-width);
+//** For `@screen-lg-min` and up.
+@container-lg:                 @container-large-desktop;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+@navbar-height:                    50px;
+@navbar-margin-bottom:             @line-height-computed;
+@navbar-border-radius:             @border-radius-base;
+@navbar-padding-horizontal:        floor((@grid-gutter-width / 2));
+@navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);
+@navbar-collapse-max-height:       340px;
+
+@navbar-default-color:             #777;
+@navbar-default-bg:                #f8f8f8;
+@navbar-default-border:            darken(@navbar-default-bg, 6.5%);
+
+// Navbar links
+@navbar-default-link-color:                #777;
+@navbar-default-link-hover-color:          #333;
+@navbar-default-link-hover-bg:             transparent;
+@navbar-default-link-active-color:         #555;
+@navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);
+@navbar-default-link-disabled-color:       #ccc;
+@navbar-default-link-disabled-bg:          transparent;
+
+// Navbar brand label
+@navbar-default-brand-color:               @navbar-default-link-color;
+@navbar-default-brand-hover-color:         darken(@navbar-default-brand-color, 10%);
+@navbar-default-brand-hover-bg:            transparent;
+
+// Navbar toggle
+@navbar-default-toggle-hover-bg:           #ddd;
+@navbar-default-toggle-icon-bar-bg:        #888;
+@navbar-default-toggle-border-color:       #ddd;
+
+
+//=== Inverted navbar
+// Reset inverted navbar basics
+@navbar-inverse-color:                      lighten(@gray-light, 15%);
+@navbar-inverse-bg:                         #222;
+@navbar-inverse-border:                     darken(@navbar-inverse-bg, 10%);
+
+// Inverted navbar links
+@navbar-inverse-link-color:                 lighten(@gray-light, 15%);
+@navbar-inverse-link-hover-color:           #fff;
+@navbar-inverse-link-hover-bg:              transparent;
+@navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;
+@navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);
+@navbar-inverse-link-disabled-color:        #444;
+@navbar-inverse-link-disabled-bg:           transparent;
+
+// Inverted navbar brand label
+@navbar-inverse-brand-color:                @navbar-inverse-link-color;
+@navbar-inverse-brand-hover-color:          #fff;
+@navbar-inverse-brand-hover-bg:             transparent;
+
+// Inverted navbar toggle
+@navbar-inverse-toggle-hover-bg:            #333;
+@navbar-inverse-toggle-icon-bar-bg:         #fff;
+@navbar-inverse-toggle-border-color:        #333;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+@nav-link-padding:                          10px 15px;
+@nav-link-hover-bg:                         @gray-lighter;
+
+@nav-disabled-link-color:                   @gray-light;
+@nav-disabled-link-hover-color:             @gray-light;
+
+//== Tabs
+@nav-tabs-border-color:                     #ddd;
+
+@nav-tabs-link-hover-border-color:          @gray-lighter;
+
+@nav-tabs-active-link-hover-bg:             @body-bg;
+@nav-tabs-active-link-hover-color:          @gray;
+@nav-tabs-active-link-hover-border-color:   #ddd;
+
+@nav-tabs-justified-link-border-color:            #ddd;
+@nav-tabs-justified-active-link-border-color:     @body-bg;
+
+//== Pills
+@nav-pills-border-radius:                   @border-radius-base;
+@nav-pills-active-link-hover-bg:            @component-active-bg;
+@nav-pills-active-link-hover-color:         @component-active-color;
+
+
+//== Pagination
+//
+//##
+
+@pagination-color:                     @link-color;
+@pagination-bg:                        #fff;
+@pagination-border:                    #ddd;
+
+@pagination-hover-color:               @link-hover-color;
+@pagination-hover-bg:                  @gray-lighter;
+@pagination-hover-border:              #ddd;
+
+@pagination-active-color:              #fff;
+@pagination-active-bg:                 @brand-primary;
+@pagination-active-border:             @brand-primary;
+
+@pagination-disabled-color:            @gray-light;
+@pagination-disabled-bg:               #fff;
+@pagination-disabled-border:           #ddd;
+
+
+//== Pager
+//
+//##
+
+@pager-bg:                             @pagination-bg;
+@pager-border:                         @pagination-border;
+@pager-border-radius:                  15px;
+
+@pager-hover-bg:                       @pagination-hover-bg;
+
+@pager-active-bg:                      @pagination-active-bg;
+@pager-active-color:                   @pagination-active-color;
+
+@pager-disabled-color:                 @pagination-disabled-color;
+
+
+//== Jumbotron
+//
+//##
+
+@jumbotron-padding:              30px;
+@jumbotron-color:                inherit;
+@jumbotron-bg:                   @gray-lighter;
+@jumbotron-heading-color:        inherit;
+@jumbotron-font-size:            ceil((@font-size-base * 1.5));
+@jumbotron-heading-font-size:    ceil((@font-size-base * 4.5));
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+@state-success-text:             #3c763d;
+@state-success-bg:               #dff0d8;
+@state-success-border:           darken(spin(@state-success-bg, -10), 5%);
+
+@state-info-text:                #31708f;
+@state-info-bg:                  #d9edf7;
+@state-info-border:              darken(spin(@state-info-bg, -10), 7%);
+
+@state-warning-text:             #8a6d3b;
+@state-warning-bg:               #fcf8e3;
+@state-warning-border:           darken(spin(@state-warning-bg, -10), 5%);
+
+@state-danger-text:              #a94442;
+@state-danger-bg:                #f2dede;
+@state-danger-border:            darken(spin(@state-danger-bg, -10), 5%);
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+@tooltip-max-width:           200px;
+//** Tooltip text color
+@tooltip-color:               #fff;
+//** Tooltip background color
+@tooltip-bg:                  #000;
+@tooltip-opacity:             .9;
+
+//** Tooltip arrow width
+@tooltip-arrow-width:         5px;
+//** Tooltip arrow color
+@tooltip-arrow-color:         @tooltip-bg;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+@popover-bg:                          #fff;
+//** Popover maximum width
+@popover-max-width:                   276px;
+//** Popover border color
+@popover-border-color:                rgba(0,0,0,.2);
+//** Popover fallback border color
+@popover-fallback-border-color:       #ccc;
+
+//** Popover title background color
+@popover-title-bg:                    darken(@popover-bg, 3%);
+
+//** Popover arrow width
+@popover-arrow-width:                 10px;
+//** Popover arrow color
+@popover-arrow-color:                 @popover-bg;
+
+//** Popover outer arrow width
+@popover-arrow-outer-width:           (@popover-arrow-width + 1);
+//** Popover outer arrow color
+@popover-arrow-outer-color:           fadein(@popover-border-color, 5%);
+//** Popover outer arrow fallback color
+@popover-arrow-outer-fallback-color:  darken(@popover-fallback-border-color, 20%);
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+@label-default-bg:            @gray-light;
+//** Primary label background color
+@label-primary-bg:            @brand-primary;
+//** Success label background color
+@label-success-bg:            @brand-success;
+//** Info label background color
+@label-info-bg:               @brand-info;
+//** Warning label background color
+@label-warning-bg:            @brand-warning;
+//** Danger label background color
+@label-danger-bg:             @brand-danger;
+
+//** Default label text color
+@label-color:                 #fff;
+//** Default text color of a linked label
+@label-link-hover-color:      #fff;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+@modal-inner-padding:         15px;
+
+//** Padding applied to the modal title
+@modal-title-padding:         15px;
+//** Modal title line-height
+@modal-title-line-height:     @line-height-base;
+
+//** Background color of modal content area
+@modal-content-bg:                             #fff;
+//** Modal content border color
+@modal-content-border-color:                   rgba(0,0,0,.2);
+//** Modal content border color **for IE8**
+@modal-content-fallback-border-color:          #999;
+
+//** Modal backdrop background color
+@modal-backdrop-bg:           #000;
+//** Modal backdrop opacity
+@modal-backdrop-opacity:      .5;
+//** Modal header border color
+@modal-header-border-color:   #e5e5e5;
+//** Modal footer border color
+@modal-footer-border-color:   @modal-header-border-color;
+
+@modal-lg:                    900px;
+@modal-md:                    600px;
+@modal-sm:                    300px;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+@alert-padding:               15px;
+@alert-border-radius:         @border-radius-base;
+@alert-link-font-weight:      bold;
+
+@alert-success-bg:            @state-success-bg;
+@alert-success-text:          @state-success-text;
+@alert-success-border:        @state-success-border;
+
+@alert-info-bg:               @state-info-bg;
+@alert-info-text:             @state-info-text;
+@alert-info-border:           @state-info-border;
+
+@alert-warning-bg:            @state-warning-bg;
+@alert-warning-text:          @state-warning-text;
+@alert-warning-border:        @state-warning-border;
+
+@alert-danger-bg:             @state-danger-bg;
+@alert-danger-text:           @state-danger-text;
+@alert-danger-border:         @state-danger-border;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+@progress-bg:                 #f5f5f5;
+//** Progress bar text color
+@progress-bar-color:          #fff;
+//** Variable for setting rounded corners on progress bar.
+@progress-border-radius:      @border-radius-base;
+
+//** Default progress bar color
+@progress-bar-bg:             @brand-primary;
+//** Success progress bar color
+@progress-bar-success-bg:     @brand-success;
+//** Warning progress bar color
+@progress-bar-warning-bg:     @brand-warning;
+//** Danger progress bar color
+@progress-bar-danger-bg:      @brand-danger;
+//** Info progress bar color
+@progress-bar-info-bg:        @brand-info;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+@list-group-bg:                 #fff;
+//** `.list-group-item` border color
+@list-group-border:             #ddd;
+//** List group border radius
+@list-group-border-radius:      @border-radius-base;
+
+//** Background color of single list items on hover
+@list-group-hover-bg:           #f5f5f5;
+//** Text color of active list items
+@list-group-active-color:       @component-active-color;
+//** Background color of active list items
+@list-group-active-bg:          @component-active-bg;
+//** Border color of active list elements
+@list-group-active-border:      @list-group-active-bg;
+//** Text color for content within active list items
+@list-group-active-text-color:  lighten(@list-group-active-bg, 40%);
+
+//** Text color of disabled list items
+@list-group-disabled-color:      @gray-light;
+//** Background color of disabled list items
+@list-group-disabled-bg:         @gray-lighter;
+//** Text color for content within disabled list items
+@list-group-disabled-text-color: @list-group-disabled-color;
+
+@list-group-link-color:         #555;
+@list-group-link-hover-color:   @list-group-link-color;
+@list-group-link-heading-color: #333;
+
+
+//== Panels
+//
+//##
+
+@panel-bg:                    #fff;
+@panel-body-padding:          15px;
+@panel-heading-padding:       10px 15px;
+@panel-footer-padding:        @panel-heading-padding;
+@panel-border-radius:         @border-radius-base;
+
+//** Border color for elements within panels
+@panel-inner-border:          #ddd;
+@panel-footer-bg:             #f5f5f5;
+
+@panel-default-text:          @gray-dark;
+@panel-default-border:        #ddd;
+@panel-default-heading-bg:    #f5f5f5;
+
+@panel-primary-text:          #fff;
+@panel-primary-border:        @brand-primary;
+@panel-primary-heading-bg:    @brand-primary;
+
+@panel-success-text:          @state-success-text;
+@panel-success-border:        @state-success-border;
+@panel-success-heading-bg:    @state-success-bg;
+
+@panel-info-text:             @state-info-text;
+@panel-info-border:           @state-info-border;
+@panel-info-heading-bg:       @state-info-bg;
+
+@panel-warning-text:          @state-warning-text;
+@panel-warning-border:        @state-warning-border;
+@panel-warning-heading-bg:    @state-warning-bg;
+
+@panel-danger-text:           @state-danger-text;
+@panel-danger-border:         @state-danger-border;
+@panel-danger-heading-bg:     @state-danger-bg;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+@thumbnail-padding:           4px;
+//** Thumbnail background color
+@thumbnail-bg:                @body-bg;
+//** Thumbnail border color
+@thumbnail-border:            #ddd;
+//** Thumbnail border radius
+@thumbnail-border-radius:     @border-radius-base;
+
+//** Custom text color for thumbnail captions
+@thumbnail-caption-color:     @text-color;
+//** Padding around the thumbnail caption
+@thumbnail-caption-padding:   9px;
+
+
+//== Wells
+//
+//##
+
+@well-bg:                     #f5f5f5;
+@well-border:                 darken(@well-bg, 7%);
+
+
+//== Badges
+//
+//##
+
+@badge-color:                 #fff;
+//** Linked badge text color on hover
+@badge-link-hover-color:      #fff;
+@badge-bg:                    @gray-light;
+
+//** Badge text color in active nav link
+@badge-active-color:          @link-color;
+//** Badge background color in active nav link
+@badge-active-bg:             #fff;
+
+@badge-font-weight:           bold;
+@badge-line-height:           1;
+@badge-border-radius:         10px;
+
+
+//== Breadcrumbs
+//
+//##
+
+@breadcrumb-padding-vertical:   8px;
+@breadcrumb-padding-horizontal: 15px;
+//** Breadcrumb background color
+@breadcrumb-bg:                 #f5f5f5;
+//** Breadcrumb text color
+@breadcrumb-color:              #ccc;
+//** Text color of current page in the breadcrumb
+@breadcrumb-active-color:       @gray-light;
+//** Textual separator for between breadcrumb elements
+@breadcrumb-separator:          "/";
+
+
+//== Carousel
+//
+//##
+
+@carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);
+
+@carousel-control-color:                      #fff;
+@carousel-control-width:                      15%;
+@carousel-control-opacity:                    .5;
+@carousel-control-font-size:                  20px;
+
+@carousel-indicator-active-bg:                #fff;
+@carousel-indicator-border-color:             #fff;
+
+@carousel-caption-color:                      #fff;
+
+
+//== Close
+//
+//##
+
+@close-font-weight:           bold;
+@close-color:                 #000;
+@close-text-shadow:           0 1px 0 #fff;
+
+
+//== Code
+//
+//##
+
+@code-color:                  #c7254e;
+@code-bg:                     #f9f2f4;
+
+@kbd-color:                   #fff;
+@kbd-bg:                      #333;
+
+@pre-bg:                      #f5f5f5;
+@pre-color:                   @gray-dark;
+@pre-border-color:            #ccc;
+@pre-scrollable-max-height:   340px;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+@component-offset-horizontal: 180px;
+//** Text muted color
+@text-muted:                  @gray-light;
+//** Abbreviations and acronyms border color
+@abbr-border-color:           @gray-light;
+//** Headings small color
+@headings-small-color:        @gray-light;
+//** Blockquote small color
+@blockquote-small-color:      @gray-light;
+//** Blockquote font size
+@blockquote-font-size:        (@font-size-base * 1.25);
+//** Blockquote border color
+@blockquote-border-color:     @gray-lighter;
+//** Page header border color
+@page-header-border-color:    @gray-lighter;
+//** Width of horizontal description list titles
+@dl-horizontal-offset:        @component-offset-horizontal;
+//** Point at which .dl-horizontal becomes horizontal
+@dl-horizontal-breakpoint:    @grid-float-breakpoint;
+//** Horizontal line color.
+@hr-border:                   @gray-lighter;

+ 27 - 0
src/js/index.js

@@ -0,0 +1,27 @@
+import '../css/bootstrap.less';
+import 'bootstrap/dist/js/bootstrap.js';
+import '../css/public.css'; 
+import '../css/index_home.css';
+import './public.js'
+
+$(function(){
+	var k=0;
+	var liwit=$('.need_imgs ul li').width()	
+	var lilengths=$('.need_imgs ul li').length	
+	$('.need_next').click(function(){
+		k++;
+		if(k>lilengths-3){
+			k=0
+		}
+		$('.need_imgs ul').animate({'marginLeft':-(liwit)*k})
+	});
+	$('.need_prev').click(function(){
+		k--;
+		if(k<0){
+			k=lilengths-3
+		}
+		$('.need_imgs ul').animate({'marginLeft':-(liwit)*k})
+	});
+});
+
+

Разлика између датотеке није приказан због своје велике величине
+ 9111 - 0
src/js/jquery-2.1.0.js


+ 40 - 0
src/js/public.js

@@ -0,0 +1,40 @@
+
+$(function(){
+	$('.index_tt .banner_txt').eq(0).show().siblings().hide();
+	var i=0;
+	var wimg=$('.banner_box ul li').width();
+	var lilength=$('.banner_box ul li').length;
+	function next(){
+		i++;
+		if(i>lilength-1){
+			i=0;			
+		};		
+		$('.banner_box ul').animate({'marginLeft':-wimg*(i)+'px'})
+		$('.index_tt .banner_txt').eq(i).show().siblings().hide();
+	}
+	function pre(){
+		i--;
+		if(i<0){
+			i =	lilength-1			
+			}
+		$('.banner_box ul').animate({'marginLeft':-wimg*i+'px'})
+		$('.index_tt .banner_txt').eq(i).show().siblings().hide();
+	}	
+	var timer=setInterval(next,2000)
+	$('.banner').mouseenter(function(){
+		clearInterval(timer)
+	})
+	$('.banner').mouseleave(function(){
+		timer=setInterval(next,2000)
+	})	
+	$('.banner_next').click(function(){		
+		next();								
+	})
+	$('.index_pre').click(function(){		
+		pre();						
+	})	
+	$('.img_list ol li').hover(function(){
+	   var simg = $(this).children('img').attr('src')	   
+	   $('.banner_box ul li').eq(i).find('img').attr('src',simg)
+	})		
+})

+ 385 - 0
template/index.html

@@ -0,0 +1,385 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8" />
+    <link rel="icon" href="../img/ico_logo.ico">
+    <meta name="Keywords" content=""/>
+    <meta name="Description" content=""/>
+	<meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1,user-scalable=no">
+	<meta http-equiv="x-ua-compatible" content="ie=edge">
+    <title>首页</title>
+    <!--<link rel="stylesheet" href="../src/css/bootstrap.css" />
+    <link rel="stylesheet" href="../src/css/public.css" />
+    <link rel="stylesheet" type="text/css" href="../src/css/index_home.css"/>-->
+</head>
+<body>  	
+  	<header>
+  		<div class="container">
+  			<div class="logo"><a href="../template/index.html"><img src="../img/Logo111.png" alt="" title="技淘"/></a></div>
+  			<div  class="nav">
+  				<ul>
+  					<li class="active"><a href="">科技服务</a><img src="../img/hot.png"/></li>
+  					<li><a href="">技术交易</a></li>
+  					<li><a href="">智库咨询</a></li>
+  					<li><a href="">科技金融</a></li>
+  					<li><a href="">科技活动</a></li>
+  					<li><a href="">平台共建</a></li> 					
+  				</ul>
+  			</div>
+  			<div class="nav_right">
+  				<a href="">注册</a>
+  				<a href="">登陆</a>
+  				<a href="">关于我们</a>
+  			</div>
+  		</div>
+  	</header>
+  	<div class="banner container">
+  		<div class="banner_box" >  			 		
+	  		<ul>
+	  			<li><img src="../img/banner1.png" alt="" class="banner_imgs"/></li>	  					  					  				  						  					  		
+	  			<li><img src="../img/x_banner02.png" alt="" class="banner_imgs"/></li> 		  					  					  									  					  			
+	  			<li><img src="../img/banner1.png" alt="" class="banner_imgs"/></li>	  			
+	  		</ul>
+	  	</div>
+  		<div class="index_tt">
+  			<div class="banner_txt">
+				<h3>1让每一项优秀的技术产生价值</h3>
+				<p>全方位的服务,一应俱全</p>
+				<p>专业的团队助您开启科技成果转化之路</p>
+				<div class="img_list">
+					<ol>
+						<li><img src="../img/x_banner01.png" alt="" /></li>
+						<li><img src="../img/x_banner02.png" alt="" /></li>
+						<li><img src="../img/x_banner03.png" alt="" /></li>
+						<li><img src="../img/x_banner04.png" alt="" /></li>
+						<li><img src="../img/x_banner05.png" alt="" /></li> 							
+					</ol>
+				</div>
+  			</div>
+  			<div class="banner_txt">
+				<h3>2让每一项优秀的技术产生价值</h3>
+				<p>全方位的服务,一应俱全</p>
+				<p>专业的团队助您开启科技成果转化之路</p>
+				<div class="img_list">
+					<ol>
+						<li><img src="../img/x_banner01.png" alt="" /></li>
+						<li><img src="../img/x_banner02.png" alt="" /></li>
+						<li><img src="../img/x_banner03.png" alt="" /></li>
+						<li><img src="../img/x_banner04.png" alt="" /></li>
+						<li><img src="../img/x_banner05.png" alt="" /></li> 							
+					</ol>
+				</div>
+  			</div>
+  			<div class="banner_txt">
+				<h3>3让每一项优秀的技术产生价值</h3>
+				<p>全方位的服务,一应俱全</p>
+				<p>专业的团队助您开启科技成果转化之路</p>
+				<div class="img_list">
+					<ol>
+						<li><img src="../img/x_banner01.png" alt="" /></li>
+						<li><img src="../img/x_banner02.png" alt="" /></li>
+						<li><img src="../img/x_banner03.png" alt="" /></li>
+						<li><img src="../img/x_banner04.png" alt="" /></li>
+						<li><img src="../img/x_banner05.png" alt="" /></li> 							
+					</ol>
+				</div>
+  			</div>
+  		</div>  		
+  		<div class="banner_mid">
+  			<img src="../img/index_pre.png" alt="" class="index_pre" />
+  			<img src="../img/index_next.png" alt="" class="banner_next" />
+  		</div>
+  	</div>
+  	<div class="index_activity">
+		<div class="container">
+			<ul>
+				<li>
+					<strong>46</strong>
+					<p>线下活动</p>
+				</li>
+				<li>
+					<strong>46</strong>
+					<p>线下活动</p>
+				</li>
+				<li>
+					<strong>46</strong>
+					<p>线下活动</p>
+				</li>
+				<li>
+					<strong>46</strong>
+					<p>线下活动</p>
+				</li>
+				<li>
+					<strong>46</strong>
+					<p>线下活动</p>
+				</li>
+				<li>
+					<strong>46</strong>
+					<p>线下活动</p>
+				</li>
+			</ul>
+			<form action="">
+				<img src="../img/search.png" alt="" class="search" alt="搜索"/>
+				<input type="text" name="" id="" placeholder="科技转移" />
+				<img src="../img/index_use.png" class="index_use" alt="用户"/>
+			</form>
+		</div> 		
+  	</div>
+ 	<div id="active">
+		<div class="coupon rf">
+			<div class="coupon_cont lf">
+				<h2>200元</h2>
+				<p>什么项目满2000减</p>				
+			</div>
+			<div class="coupon_cont lf">
+				<h2>200元</h2>
+				<p>什么项目满2000减</p>				
+			</div>
+			<div class="coupon_cont lf">
+				<h2>200元</h2>
+				<p>什么项目满2000减</p>				
+			</div>
+			<div class="coupon_cont lf">
+				<h2>200元</h2>
+				<p>什么项目满2000减</p>				
+			</div>
+		</div>
+		<div class="title">
+			<p>科技服务促销</p>
+		</div>
+		<div class="line"></div>
+	</div>
+	<div id="product">
+		<div class="caption">精品成果</div>
+		<div class="content">
+			<div class="cont cont_top1">
+				<a href="#">
+					<div class="img">
+						<img src="../img/product1.jpg" alt=""/>
+					</div>
+					<div class="text">
+						<h2>无人机项目满2000减200</h2>
+						<p>无人机项目满2000减200,联系客服有优惠,精品无人机无与伦比</p>
+					</div>
+				</a>
+			</div>
+			<div class="cont cont_bottom1">
+				<a href="#">
+					<div class="img">
+						<img src="../img/product2.jpg" alt=""/>
+					</div>
+					<div class="text">
+						<h2>无人机项目满2000减200</h2>
+						<p>无人机项目满2000减200,联系客服有优惠,精品无人机无与伦比</p>
+					</div>
+				</a>
+			</div>
+			<div class="cont cont_top2">
+				<a href="#">
+					<div class="img">
+						<img src="../img/product3.jpg" alt=""/>
+					</div>
+					<div class="text">
+						<h2>无人机项目满2000减200</h2>
+						<p>无人机项目满2000减200,联系客服有优惠,精品无人机无与伦比</p>
+					</div>
+				</a>
+			</div>
+			<div class="cont cont_bottom2">
+				<a href="#">
+					<div class="img">
+						<img src="../img/product4.jpg" alt=""/>
+					</div>
+					<div class="text">
+						<h2>无人机项目满2000减200</h2>
+						<p>无人机项目满2000减200,联系客服有优惠,精品无人机无与伦比</p>
+					</div>
+				</a>
+			</div>
+			<div class="cont cont_top3">
+				<a href="#">
+					<div class="img">
+						<img src="../img/product5.jpg" alt=""/>
+					</div>
+					<div class="text">
+						<h2>无人机项目满2000减200</h2>
+						<p>无人机项目满2000减200,联系客服有优惠,精品无人机无与伦比</p>
+					</div>
+				</a>
+			</div>
+		</div>
+	</div>
+	<div id="policy">
+		<div class="caption">政策解读</div>
+		<div class="pol_cont">
+			<div class="pol_left">
+				<img src="../img/policy.jpg" alt=""/>
+				<div class="pol_left_cont">
+					<h3>成都科德向中国科协进行工作汇报</h3>
+					<p><a href="#">2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创,2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创</a>
+					</p>
+					<div class="pol_bottom">
+						<div class="more rf"><a href="#">MORE+</a></div>
+						<div class="data">2017-08-15</div>
+					</div>
+				</div>
+			</div>
+			<div class="pol_right">
+				<div class="pol_right_big">
+					<h3>成都科德向中国科协进行工作汇报</h3>
+					<p><a href="#">2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创,2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创</a>
+					</p>
+					<div class="pol_bottom">
+						<div class="more rf"><a href="">MORE+</a></div>
+						<div class="data">2017-08-15</div>
+					</div>
+				</div>
+				<div class="pol_right_sm">
+					<h3>成都科德向中国科协进行工作汇报</h3>
+					<p><a href="#">2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创,2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创</a>
+					</p>
+					<div class="pol_bottom">
+						<div class="more rf"><a href="#">MORE+</a></div>
+						<div class="data">2017-08-15</div>
+					</div>
+				</div>
+				<div class="pol_right_sm">
+					<h3>成都科德向中国科协进行工作汇报</h3>
+					<p><a href="#">2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创,2017年4月13日,中国科协乔主任、冯处长在金坛县全国双创</a>
+					</p>
+					<div class="pol_bottom">
+						<div class="more rf"><a href="#">MORE+</a></div>
+						<div class="data">2017-08-15</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="need_main">
+		<div id="need">
+			<div class="caption">精品需求</div>
+			<span class="more"><a href="#">MORE+</a></span>
+			<div class="carousel">
+				<span class="need_prev"><</span>
+				<div class="need_imgs">
+					<ul>
+						<li>
+							<a href="#">
+								<img src="../img/need_img1.png" alt="" />	
+								<p><span href="#">哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img1.png" alt="" />
+								<p>哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img2.jpg" alt="" />
+								<p>哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img1.png" alt="" />
+								<p>哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img1.png" alt="" />
+								<p>哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img2.jpg" alt=""/>
+								<p>哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img1.png" alt=""/>
+								<p>哪些明星项目不为啥东西将上档次想</p>
+						    </a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img1.png" alt=""/>
+								<p>哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+						<li>
+							<a href="#">
+								<img src="../img/need_img2.jpg" alt=""/>
+								<p>哪些明星项目不为啥东西将上档次想</p>
+							</a>
+						</li>
+					</ul>
+				</div>
+				<span class="need_next">></span>
+			</div>
+		</div>
+	</div>
+	<div id="bottom">
+		<div class="bottom">
+			<img src="../img/bottom1_02.jpg" alt=""/>
+			<div class="bottom_text">
+				<div class="text_top">
+					<a href="#">关于公司/</a>
+					<a href="#">联系我们</a>
+					<p> Copyright &copy 2016-2017 科德 版权所有 湘ICP备15019731号
+					-2 技术支持:湖南阿凡提科技有限公司</p>
+				</div>
+				<div class="text_center">
+					<div class="cont_left">
+						<img src="../img/dizhi.jpg" alt=""/>
+						<p>湖南省长沙市营盘东路19号金山大厦</p>
+					</div>
+					<div class="cont_center">
+						<img src="../img/dianhua.jpg" alt=""/>
+						<p>合作电话:0731-89907207</p>
+						<p>400-8800-962八楼</p>
+					</div>
+					<div class="cont_right">
+						<img src="../img/erweima.jpg" alt=""/>
+						<p>科德公众号</p>
+					</div>
+				</div>
+				<div class="text_bottom">
+					<p>友情链接</p>
+					<a href="http://www.hnst.gov.cn/">湖南省科技厅/</a>
+					<a href="http://www.cssti.cn/">长沙市科技局/</a>
+					<a href="http://www.cast.org.cn/">中国科学技术协会/</a>
+					<a href="http://www.chinatorch.gov.cn/">科技部火炬中心/</a>
+					<a href="http://www.nosta.gov.cn/web/index.aspx">国家科技成果奖励办/</a>
+					<a href="http://www.nast.org.cn/">国家科技成果网/</a>
+					<a href="http://www.hnast.org.cn/portal/comm/index.action">湖南省科学技术协会/</a>
+					<a href="http://www.hncgw.gov.cn/">湖南省科技成果转化公共服务平台/</a>
+					<a href="http://www.hnjxw.gov.cn/">湖南省经济信息化委员会/</a>
+					<a href="http://kyy.hnu.cn/">湖南大学科学技术研究院/</a>
+					<a href="http://www.gxst.gov.cn/gxkjt/">广西省科技厅/</a>
+					<a href="http://www.nmkjt.gov.cn/">内蒙古自治区科技厅/</a>
+					<a href="http://www.cshtz.gov.cn/">长沙市高新区管委会/</a>
+					<a href="http://www.jxas.ac.cn/">江西省科学院/</a>
+					<a href="http://www.cnic.cn/front/index.html#/cnicSite/home">中科院计算机网络信息中心/</a>
+					<a href="http://kxyjb.csu.edu.cn/">中南大学科学研究部/</a>
+					<a href="http://www.cast.org.cn/">中国科协创新创业服务中心/</a>
+					<a href="http://www.hbstd.gov.cn/">湖北省科技厅/</a>
+					<a href="http://www.gdstc.gov.cn/">广东省科技厅/</a>
+					<a href="http://www.hnkjt.gov.cn/">河南省科技厅/</a>
+					<a href="http://www.cbtm.gov.cn/">技术合同登记官网</a>
+				</div>
+			</div>
+		</div>
+
+	</div>
+</body>
+<!--<script type="text/javascript" src="../src/js/jquery-2.1.0.js"></script>
+<script type="text/javascript" src="../src/js/index.js"></script>
+<script type="text/javascript" src="../src/js/public.js"></script>-->
+
+</html>

+ 101 - 0
webpack.config.js

@@ -0,0 +1,101 @@
+const webpack = require('webpack');
+const path = require('path');
+const ExtractTextPlugin = require("extract-text-webpack-plugin");
+const HtmlWebpackPlugin = require('html-webpack-plugin');
+const WebpackDevServer = require('webpack-dev-server');
+const entries = require('./webpack/entry.config.js');
+const version = require('./package.json').version;
+const argv = require('yargs').argv;
+const ImageminPlugin = require('imagemin-webpack-plugin').default;
+
+let theme = {
+    '@primary-color': '#58a3ff',
+    '@link-color': '#58a3ff'
+};
+let isWatch = argv.env.watch == 'watch';
+let isDev = isWatch || argv.env.deploy == 'dev';
+
+module.exports = (function () {
+    let plugins = [
+        //把入口文件里面的数组打包成verdors.js
+        // new ImageminPlugin({
+        //     disable: isDev,
+        //     test: 'img/**',
+        //     pngquant: {
+        //         quality: '75-75', 
+        //         optimizationLevel: 9
+        //     }
+        // }),
+        new webpack.optimize.CommonsChunkPlugin({
+            name: 'vendors'
+        }),
+        new ExtractTextPlugin({
+            filename: "[name].css",
+            disable: false,
+            allChunks: true
+        }),
+        new webpack.ProvidePlugin({
+            $: "jquery",
+            jQuery: "jquery"
+        }),
+        new HtmlWebpackPlugin({
+            title: '首页',
+            filename: 'html/index.html',
+            template: './template/index.html',
+            chunks: ['index', 'vendors']
+        }),      
+    ];
+    if (!isDev) {
+        //这个使用uglifyJs压缩你的js代码
+        plugins.unshift(new webpack.DefinePlugin({
+            "process.env": {
+                NODE_ENV: JSON.stringify("production")
+            }
+        }));
+        plugins.unshift(new webpack.optimize.UglifyJsPlugin({
+            minimize: true,
+            compress: {
+                warnings: true
+            }
+        }));
+    }
+
+    //let staticHost = 'http://aftts.hnzhiming.com';
+    //let staticHost = 'http://afts.hnzhiming.com';
+    let staticHost = 'http://127.0.0.1';
+    switch (argv.env.deploy) {
+        case 'test':
+            staticHost = 'http://afts.hnzhiming.com';
+            break;
+        case 'stage':
+            staticHost = 'http://aftts.hnzhiming.com';
+            break;
+        case 'prod':
+            staticHost = 'http://s.jishutao.com';
+            break;
+        default:
+            break;
+    }
+    staticHost = staticHost + '/portal/' + version + '/';
+    return {
+        entry: isWatch ? entries.watch : entries.prod,
+        output: {
+            path: path.resolve(__dirname, './build/' + argv.env.deploy + '/' + version),
+            filename: '[name].js',
+            publicPath: staticHost,
+            chunkFilename: 'chunks/[name].[hash:8].js'
+        },
+        module: require('./webpack/module.config.js')(theme),
+        resolve: {
+            extensions: ['.js', '.jsx']
+        },
+        plugins: plugins,
+        devServer: {
+            disableHostCheck: true,
+            //allowedHosts: ['aft.hnzhiming.com', 'afts.hnzhiming.com'],
+            headers: {
+                "Access-Control-Allow-Origin": "*"
+            }
+        }
+    };
+})();

+ 12 - 0
webpack/entry.config.js

@@ -0,0 +1,12 @@
+module.exports = {
+  prod: {
+    //user
+    'index': './src/js/index.js',   
+  },
+  watch: {
+    'index': ['webpack-dev-server/client?http://127.0.0.1:80', // WebpackDevServer host and port
+      'webpack/hot/only-dev-server',
+      './src/js/index.js'
+    ],   
+  }
+}

+ 58 - 0
webpack/module.config.js

@@ -0,0 +1,58 @@
+const ExtractTextPlugin = require("extract-text-webpack-plugin");
+
+module.exports = function (theme) {
+  return {
+    rules: [{
+      test: /\.js$/,
+      exclude: /node_modules/,
+      use: {
+        loader: 'babel-loader',
+        options: {
+          "presets": ["es2015"]
+        }
+      }
+    }, {
+      test: /\.(css|less)$/,
+      use: ExtractTextPlugin.extract({
+        fallback: 'style-loader',
+        use: [{
+          loader: 'css-loader',
+          options: {
+            importLoaders: 1
+          }
+        }, {
+          loader: 'less-loader',
+          options: {
+            modifyVars: theme
+          }
+        }]
+      })
+    }, {
+      test: /\.html$/,
+      use: [{
+        loader: 'html-withimg-loader',
+        options: {
+          minimize: false
+        }
+      }],
+    }, {
+      test: /\.(png|jpg)$/,
+      use: [{
+        loader: 'url-loader',
+        options: {
+          limit: 8192,
+          name: '[path][name].[ext]'
+        }
+      }]
+    }, {
+      test: /\.(woff|woff2|svg|eot|ttf)$/,
+      use: [{
+        loader: 'url-loader',
+        options: {
+          limit: 1,
+          name: '[path][name].[ext]'
+        }
+      }]
+    }]
+  };
+}