├── .babelrc ├── .gitignore ├── LICENSE ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.vue ├── assets │ ├── jquery-vendor.js │ ├── libs │ │ └── jquery.SuperSlide.2.1.js │ └── logo.png ├── components │ ├── Article.vue │ ├── Carousel.vue │ ├── Catetory.vue │ ├── Index.vue │ ├── LeftNav.vue │ ├── Nav.vue │ ├── PageContent.vue │ ├── PageFooter.vue │ └── PageHeader.vue ├── data │ ├── article.data │ ├── catetory.data │ ├── catetoryCarousel.data │ ├── follow.data │ ├── index.data │ └── nav.data ├── filters │ ├── index.js │ ├── normalTime.js │ └── toUpperCase.js ├── main.js ├── router-config.js └── store │ ├── actions.js │ ├── getters.js │ ├── index.js │ ├── mutations.js │ └── types.js ├── static ├── css │ ├── common.css │ └── normalize.css └── img │ ├── 1.png │ ├── 2340left.png │ ├── 2646right.png │ ├── 6.png │ ├── back-top.png │ ├── banner.png │ ├── black.png │ ├── cop.png │ ├── dot_black.png │ ├── dot_hui.png │ ├── dot_white.png │ ├── header_bg.png │ ├── icon_shenbao_hui.png │ ├── icon_shenbao_red.png │ ├── icon_zhicheng_hui.png │ ├── icon_zhicheng_red.png │ ├── lang.png │ ├── left.png │ ├── login-pwd.png │ ├── login_icon.png │ ├── login_user.png │ ├── nav_arrow.png │ ├── nav_title.png │ ├── pic.png │ ├── point.png │ ├── right.png │ ├── slider_bg.png │ ├── title_bg.png │ ├── titpic.png │ └── white.png └── webpack.config.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { "modules": false }] 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log 5 | yarn-error.log 6 | 7 | # Editor directories and files 8 | .idea 9 | *.suo 10 | *.ntvs* 11 | *.njsproj 12 | *.sln 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 彭逸帆 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-web-portal(使用vue写的门户网站,纯前端) 2 | 3 | > 当初练手vue时写的,适合刚入门vue的同学参考,熟悉一些vue的使用方法,包括vue-router,vuex,axios都有涉及。 4 | 5 | 6 | > 一个使用vue写的门户页面,数据使用.date文件进行模拟。 7 | 8 | >使用到的技术有vue+vue-router+vuex+axios+element+jQuery+SuperSlider 9 | 10 | 11 | ## Build Setup 12 | 13 | ``` bash 14 | # install dependencies 15 | npm install 16 | 17 | # serve with hot reload at localhost:8080 18 | npm run dev 19 | 20 | # build for production with minification 21 | npm run build 22 | ``` -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 首都经贸 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-web", 3 | "description": "A Vue.js project", 4 | "version": "1.0.0", 5 | "author": "EaVanCN ", 6 | "private": true, 7 | "scripts": { 8 | "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", 9 | "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" 10 | }, 11 | "dependencies": { 12 | "vue": "^2.5.2", 13 | "vue-router": "^3.0.1" 14 | }, 15 | "devDependencies": { 16 | "axios": "^0.16.2", 17 | "babel-core": "^6.22.1", 18 | "babel-loader": "^7.1.1", 19 | "babel-preset-env": "^1.3.2", 20 | "cross-env": "^3.0.0", 21 | "css-loader": "^0.28.0", 22 | "element-ui": "^1.4.0", 23 | "file-loader": "^0.9.0", 24 | "jquery": "^1.12.4", 25 | "style-loader": "^0.18.2", 26 | "vue-loader": "^13.3.0", 27 | "vue-template-compiler": "^2.5.2", 28 | "vuex": "^2.3.1", 29 | "webpack": "^3.6.0", 30 | "webpack-dev-server": "^2.9.1" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 18 | 19 | 23 | -------------------------------------------------------------------------------- /src/assets/jquery-vendor.js: -------------------------------------------------------------------------------- 1 | import $ from 'jquery' 2 | window.$ = $ 3 | window.jQuery = $ 4 | export default $ -------------------------------------------------------------------------------- /src/assets/libs/jquery.SuperSlide.2.1.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * SuperSlide v2.1 3 | * 轻松解决网站大部分特效展示问题 4 | * 详尽信息请看官网:http://www.SuperSlide2.com/ 5 | * 6 | * Copyright 2011-2013, 大话主席 7 | * 8 | * 请尊重原创,保留头部版权 9 | * 在保留版权的前提下可应用于个人或商业用途 10 | */ 11 | (function(a) { 12 | a.fn.slide = function(b) { 13 | return a.fn.slide.defaults = { 14 | type: "slide", 15 | effect: "fade", 16 | autoPlay: !1, 17 | delayTime: 500, 18 | interTime: 2500, 19 | triggerTime: 150, 20 | defaultIndex: 0, 21 | titCell: ".hd li", 22 | mainCell: ".bd", 23 | targetCell: null, 24 | trigger: "mouseover", 25 | scroll: 1, 26 | vis: 1, 27 | titOnClassName: "on", 28 | autoPage: !1, 29 | prevCell: ".prev", 30 | nextCell: ".next", 31 | pageStateCell: ".pageState", 32 | opp: !1, 33 | pnLoop: !0, 34 | easing: "swing", 35 | startFun: null, 36 | endFun: null, 37 | switchLoad: null, 38 | playStateCell: ".playState", 39 | mouseOverStop: !0, 40 | defaultPlay: !0, 41 | returnDefault: !1 42 | }, 43 | this.each(function() { 44 | var c = a.extend({}, 45 | a.fn.slide.defaults, b), 46 | d = a(this), 47 | e = c.effect, 48 | f = a(c.prevCell, d), 49 | g = a(c.nextCell, d), 50 | h = a(c.pageStateCell, d), 51 | i = a(c.playStateCell, d), 52 | j = a(c.titCell, d), 53 | k = j.size(), 54 | l = a(c.mainCell, d), 55 | m = l.children().size(), 56 | n = c.switchLoad, 57 | o = a(c.targetCell, d), 58 | p = parseInt(c.defaultIndex), 59 | q = parseInt(c.delayTime), 60 | r = parseInt(c.interTime); 61 | parseInt(c.triggerTime); 62 | var P, t = parseInt(c.scroll), 63 | u = parseInt(c.vis), 64 | v = "false" == c.autoPlay || 0 == c.autoPlay ? !1 : !0, 65 | w = "false" == c.opp || 0 == c.opp ? !1 : !0, 66 | x = "false" == c.autoPage || 0 == c.autoPage ? !1 : !0, 67 | y = "false" == c.pnLoop || 0 == c.pnLoop ? !1 : !0, 68 | z = "false" == c.mouseOverStop || 0 == c.mouseOverStop ? !1 : !0, 69 | A = "false" == c.defaultPlay || 0 == c.defaultPlay ? !1 : !0, 70 | B = "false" == c.returnDefault || 0 == c.returnDefault ? !1 : !0, 71 | C = 0, 72 | D = 0, 73 | E = 0, 74 | F = 0, 75 | G = c.easing, 76 | H = null, 77 | I = null, 78 | J = null, 79 | K = c.titOnClassName, 80 | L = j.index(d.find("." + K)), 81 | M = p = defaultIndex = -1 == L ? p: L, 82 | N = p, 83 | O = m >= u ? 0 != m % t ? m % t: t: 0, 84 | Q = "leftMarquee" == e || "topMarquee" == e ? !0 : !1, 85 | R = function() { 86 | a.isFunction(c.startFun) && c.startFun(p, k, d, a(c.titCell, d), l, o, f, g) 87 | }, 88 | S = function() { 89 | a.isFunction(c.endFun) && c.endFun(p, k, d, a(c.titCell, d), l, o, f, g) 90 | }, 91 | T = function() { 92 | j.removeClass(K), 93 | A && j.eq(defaultIndex).addClass(K) 94 | }; 95 | if ("menu" == c.type) return A && j.removeClass(K).eq(p).addClass(K), 96 | j.hover(function() { 97 | P = a(this).find(c.targetCell); 98 | var b = j.index(a(this)); 99 | I = setTimeout(function() { 100 | switch (p = b, j.removeClass(K).eq(p).addClass(K), R(), e) { 101 | case "fade": 102 | P.stop(!0, !0).animate({ 103 | opacity: "show" 104 | }, 105 | q, G, S); 106 | break; 107 | case "slideDown": 108 | P.stop(!0, !0).animate({ 109 | height: "show" 110 | }, 111 | q, G, S) 112 | } 113 | }, 114 | c.triggerTime) 115 | }, 116 | function() { 117 | switch (clearTimeout(I), e) { 118 | case "fade": 119 | P.animate({ 120 | opacity: 121 | "hide" 122 | }, 123 | q, G); 124 | break; 125 | case "slideDown": 126 | P.animate({ 127 | height: 128 | "hide" 129 | }, 130 | q, G) 131 | } 132 | }), 133 | B && d.hover(function() { 134 | clearTimeout(J) 135 | }, 136 | function() { 137 | J = setTimeout(T, q) 138 | }), 139 | void 0; 140 | if (0 == k && (k = m), Q && (k = 2), x) { 141 | if (m >= u) if ("leftLoop" == e || "topLoop" == e) k = 0 != m % t ? (0 ^ m / t) + 1 : m / t; 142 | else { 143 | var U = m - u; 144 | k = 1 + parseInt(0 != U % t ? U / t + 1 : U / t), 145 | 0 >= k && (k = 1) 146 | } else k = 1; 147 | j.html(""); 148 | var V = ""; 149 | if (1 == c.autoPage || "true" == c.autoPage) for (var W = 0; k > W; W++) V += "
  • " + (W + 1) + "
  • "; 150 | else for (var W = 0; k > W; W++) V += c.autoPage.replace("$", W + 1); 151 | j.html(V); 152 | var j = j.children() 153 | } 154 | if (m >= u) { 155 | l.children().each(function() { 156 | a(this).width() > E && (E = a(this).width(), D = a(this).outerWidth(!0)), 157 | a(this).height() > F && (F = a(this).height(), C = a(this).outerHeight(!0)) 158 | }); 159 | var X = l.children(), 160 | Y = function() { 161 | for (var a = 0; u > a; a++) X.eq(a).clone().addClass("clone").appendTo(l); 162 | for (var a = 0; O > a; a++) X.eq(m - a - 1).clone().addClass("clone").prependTo(l) 163 | }; 164 | switch (e) { 165 | case "fold": 166 | l.css({ 167 | position: 168 | "relative", 169 | width: D, 170 | height: C 171 | }).children().css({ 172 | position: "absolute", 173 | width: E, 174 | left: 0, 175 | top: 0, 176 | display: "none" 177 | }); 178 | break; 179 | case "top": 180 | l.wrap('
    ').css({ 181 | top: -(p * t) * C, 182 | position: "relative", 183 | padding: "0", 184 | margin: "0" 185 | }).children().css({ 186 | height: F 187 | }); 188 | break; 189 | case "left": 190 | l.wrap('
    ').css({ 191 | width: m * D, 192 | left: -(p * t) * D, 193 | position: "relative", 194 | overflow: "hidden", 195 | padding: "0", 196 | margin: "0" 197 | }).children().css({ 198 | "float": "left", 199 | width: E 200 | }); 201 | break; 202 | case "leftLoop": 203 | case "leftMarquee": 204 | Y(), 205 | l.wrap('
    ').css({ 206 | width: (m + u + O) * D, 207 | position: "relative", 208 | overflow: "hidden", 209 | padding: "0", 210 | margin: "0", 211 | left: -(O + p * t) * D 212 | }).children().css({ 213 | "float": "left", 214 | width: E 215 | }); 216 | break; 217 | case "topLoop": 218 | case "topMarquee": 219 | Y(), 220 | l.wrap('
    ').css({ 221 | height: (m + u + O) * C, 222 | position: "relative", 223 | padding: "0", 224 | margin: "0", 225 | top: -(O + p * t) * C 226 | }).children().css({ 227 | height: F 228 | }) 229 | } 230 | } 231 | var Z = function(a) { 232 | var b = a * t; 233 | return a == k ? b = m: -1 == a && 0 != m % t && (b = -m % t), 234 | b 235 | }, 236 | $ = function(b) { 237 | var c = function(c) { 238 | for (var d = c; u + c > d; d++) b.eq(d).find("img[" + n + "]").each(function() { 239 | var b = a(this); 240 | if (b.attr("src", b.attr(n)).removeAttr(n), l.find(".clone")[0]) for (var c = l.children(), d = 0; c.size() > d; d++) c.eq(d).find("img[" + n + "]").each(function() { 241 | a(this).attr(n) == b.attr("src") && a(this).attr("src", a(this).attr(n)).removeAttr(n) 242 | }) 243 | }) 244 | }; 245 | switch (e) { 246 | case "fade": 247 | case "fold": 248 | case "top": 249 | case "left": 250 | case "slideDown": 251 | c(p * t); 252 | break; 253 | case "leftLoop": 254 | case "topLoop": 255 | c(O + Z(N)); 256 | break; 257 | case "leftMarquee": 258 | case "topMarquee": 259 | var d = "leftMarquee" == e ? l.css("left").replace("px", "") : l.css("top").replace("px", ""), 260 | f = "leftMarquee" == e ? D: C, 261 | g = O; 262 | if (0 != d % f) { 263 | var h = Math.abs(0 ^ d / f); 264 | g = 1 == p ? O + h: O + h - 1 265 | } 266 | c(g) 267 | } 268 | }, 269 | _ = function(a) { 270 | if (!A || M != p || a || Q) { 271 | if (Q ? p >= 1 ? p = 1 : 0 >= p && (p = 0) : (N = p, p >= k ? p = 0 : 0 > p && (p = k - 1)), R(), null != n && $(l.children()), o[0] && (P = o.eq(p), null != n && $(o), "slideDown" == e ? (o.not(P).stop(!0, !0).slideUp(q), P.slideDown(q, G, 272 | function() { 273 | l[0] || S() 274 | })) : (o.not(P).stop(!0, !0).hide(), P.animate({ 275 | opacity: "show" 276 | }, 277 | q, 278 | function() { 279 | l[0] || S() 280 | }))), m >= u) switch (e) { 281 | case "fade": 282 | l.children().stop(!0, !0).eq(p).animate({ 283 | opacity: "show" 284 | }, 285 | q, G, 286 | function() { 287 | S() 288 | }).siblings().hide(); 289 | break; 290 | case "fold": 291 | l.children().stop(!0, !0).eq(p).animate({ 292 | opacity: "show" 293 | }, 294 | q, G, 295 | function() { 296 | S() 297 | }).siblings().animate({ 298 | opacity: "hide" 299 | }, 300 | q, G); 301 | break; 302 | case "top": 303 | l.stop(!0, !1).animate({ 304 | top: -p * t * C 305 | }, 306 | q, G, 307 | function() { 308 | S() 309 | }); 310 | break; 311 | case "left": 312 | l.stop(!0, !1).animate({ 313 | left: -p * t * D 314 | }, 315 | q, G, 316 | function() { 317 | S() 318 | }); 319 | break; 320 | case "leftLoop": 321 | var b = N; 322 | l.stop(!0, !0).animate({ 323 | left: -(Z(N) + O) * D 324 | }, 325 | q, G, 326 | function() { - 1 >= b ? l.css("left", -(O + (k - 1) * t) * D) : b >= k && l.css("left", -O * D), 327 | S() 328 | }); 329 | break; 330 | case "topLoop": 331 | var b = N; 332 | l.stop(!0, !0).animate({ 333 | top: -(Z(N) + O) * C 334 | }, 335 | q, G, 336 | function() { - 1 >= b ? l.css("top", -(O + (k - 1) * t) * C) : b >= k && l.css("top", -O * C), 337 | S() 338 | }); 339 | break; 340 | case "leftMarquee": 341 | var c = l.css("left").replace("px", ""); 342 | 0 == p ? l.animate({ 343 | left: ++c 344 | }, 345 | 0, 346 | function() { 347 | l.css("left").replace("px", "") >= 0 && l.css("left", -m * D) 348 | }) : l.animate({ 349 | left: --c 350 | }, 351 | 0, 352 | function() { - (m + O) * D >= l.css("left").replace("px", "") && l.css("left", -O * D) 353 | }); 354 | break; 355 | case "topMarquee": 356 | var d = l.css("top").replace("px", ""); 357 | 0 == p ? l.animate({ 358 | top: ++d 359 | }, 360 | 0, 361 | function() { 362 | l.css("top").replace("px", "") >= 0 && l.css("top", -m * C) 363 | }) : l.animate({ 364 | top: --d 365 | }, 366 | 0, 367 | function() { - (m + O) * C >= l.css("top").replace("px", "") && l.css("top", -O * C) 368 | }) 369 | } 370 | j.removeClass(K).eq(p).addClass(K), 371 | M = p, 372 | y || (g.removeClass("nextStop"), f.removeClass("prevStop"), 0 == p && f.addClass("prevStop"), p == k - 1 && g.addClass("nextStop")), 373 | h.html("" + (p + 1) + "/" + k) 374 | } 375 | }; 376 | A && _(!0), 377 | B && d.hover(function() { 378 | clearTimeout(J) 379 | }, 380 | function() { 381 | J = setTimeout(function() { 382 | p = defaultIndex, 383 | A ? _() : "slideDown" == e ? P.slideUp(q, T) : P.animate({ 384 | opacity: "hide" 385 | }, 386 | q, T), 387 | M = p 388 | }, 389 | 300) 390 | }); 391 | var ab = function(a) { 392 | H = setInterval(function() { 393 | w ? p--:p++, 394 | _() 395 | }, 396 | a ? a: r) 397 | }, 398 | bb = function(a) { 399 | H = setInterval(_, a ? a: r) 400 | }, 401 | cb = function() { 402 | z || (clearInterval(H), ab()) 403 | }, 404 | db = function() { (y || p != k - 1) && (p++, _(), Q || cb()) 405 | }, 406 | eb = function() { (y || 0 != p) && (p--, _(), Q || cb()) 407 | }, 408 | fb = function() { 409 | clearInterval(H), 410 | Q ? bb() : ab(), 411 | i.removeClass("pauseState") 412 | }, 413 | gb = function() { 414 | clearInterval(H), 415 | i.addClass("pauseState") 416 | }; 417 | if (v ? Q ? (w ? p--:p++, bb(), z && l.hover(gb, fb)) : (ab(), z && d.hover(gb, fb)) : (Q && (w ? p--:p++), i.addClass("pauseState")), i.click(function() { 418 | i.hasClass("pauseState") ? fb() : gb() 419 | }), "mouseover" == c.trigger ? j.hover(function() { 420 | var a = j.index(this); 421 | I = setTimeout(function() { 422 | p = a, 423 | _(), 424 | cb() 425 | }, 426 | c.triggerTime) 427 | }, 428 | function() { 429 | clearTimeout(I) 430 | }) : j.click(function() { 431 | p = j.index(this), 432 | _(), 433 | cb() 434 | }), Q) { 435 | if (g.mousedown(db), f.mousedown(eb), y) { 436 | var hb, ib = function() { 437 | hb = setTimeout(function() { 438 | clearInterval(H), 439 | bb(0 ^ r / 10) 440 | }, 441 | 150) 442 | }, 443 | jb = function() { 444 | clearTimeout(hb), 445 | clearInterval(H), 446 | bb() 447 | }; 448 | g.mousedown(ib), 449 | g.mouseup(jb), 450 | f.mousedown(ib), 451 | f.mouseup(jb) 452 | } 453 | "mouseover" == c.trigger && (g.hover(db, 454 | function() {}), f.hover(eb, 455 | function() {})) 456 | } else g.click(db), 457 | f.click(eb) 458 | }) 459 | } 460 | })(jQuery), 461 | jQuery.easing.jswing = jQuery.easing.swing, 462 | jQuery.extend(jQuery.easing, { 463 | def: "easeOutQuad", 464 | swing: function(a, b, c, d, e) { 465 | return jQuery.easing[jQuery.easing.def](a, b, c, d, e) 466 | }, 467 | easeInQuad: function(a, b, c, d, e) { 468 | return d * (b /= e) * b + c 469 | }, 470 | easeOutQuad: function(a, b, c, d, e) { 471 | return - d * (b /= e) * (b - 2) + c 472 | }, 473 | easeInOutQuad: function(a, b, c, d, e) { 474 | return 1 > (b /= e / 2) ? d / 2 * b * b + c: -d / 2 * (--b * (b - 2) - 1) + c 475 | }, 476 | easeInCubic: function(a, b, c, d, e) { 477 | return d * (b /= e) * b * b + c 478 | }, 479 | easeOutCubic: function(a, b, c, d, e) { 480 | return d * ((b = b / e - 1) * b * b + 1) + c 481 | }, 482 | easeInOutCubic: function(a, b, c, d, e) { 483 | return 1 > (b /= e / 2) ? d / 2 * b * b * b + c: d / 2 * ((b -= 2) * b * b + 2) + c 484 | }, 485 | easeInQuart: function(a, b, c, d, e) { 486 | return d * (b /= e) * b * b * b + c 487 | }, 488 | easeOutQuart: function(a, b, c, d, e) { 489 | return - d * ((b = b / e - 1) * b * b * b - 1) + c 490 | }, 491 | easeInOutQuart: function(a, b, c, d, e) { 492 | return 1 > (b /= e / 2) ? d / 2 * b * b * b * b + c: -d / 2 * ((b -= 2) * b * b * b - 2) + c 493 | }, 494 | easeInQuint: function(a, b, c, d, e) { 495 | return d * (b /= e) * b * b * b * b + c 496 | }, 497 | easeOutQuint: function(a, b, c, d, e) { 498 | return d * ((b = b / e - 1) * b * b * b * b + 1) + c 499 | }, 500 | easeInOutQuint: function(a, b, c, d, e) { 501 | return 1 > (b /= e / 2) ? d / 2 * b * b * b * b * b + c: d / 2 * ((b -= 2) * b * b * b * b + 2) + c 502 | }, 503 | easeInSine: function(a, b, c, d, e) { 504 | return - d * Math.cos(b / e * (Math.PI / 2)) + d + c 505 | }, 506 | easeOutSine: function(a, b, c, d, e) { 507 | return d * Math.sin(b / e * (Math.PI / 2)) + c 508 | }, 509 | easeInOutSine: function(a, b, c, d, e) { 510 | return - d / 2 * (Math.cos(Math.PI * b / e) - 1) + c 511 | }, 512 | easeInExpo: function(a, b, c, d, e) { 513 | return 0 == b ? c: d * Math.pow(2, 10 * (b / e - 1)) + c 514 | }, 515 | easeOutExpo: function(a, b, c, d, e) { 516 | return b == e ? c + d: d * ( - Math.pow(2, -10 * b / e) + 1) + c 517 | }, 518 | easeInOutExpo: function(a, b, c, d, e) { 519 | return 0 == b ? c: b == e ? c + d: 1 > (b /= e / 2) ? d / 2 * Math.pow(2, 10 * (b - 1)) + c: d / 2 * ( - Math.pow(2, -10 * --b) + 2) + c 520 | }, 521 | easeInCirc: function(a, b, c, d, e) { 522 | return - d * (Math.sqrt(1 - (b /= e) * b) - 1) + c 523 | }, 524 | easeOutCirc: function(a, b, c, d, e) { 525 | return d * Math.sqrt(1 - (b = b / e - 1) * b) + c 526 | }, 527 | easeInOutCirc: function(a, b, c, d, e) { 528 | return 1 > (b /= e / 2) ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c: d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c 529 | }, 530 | easeInElastic: function(a, b, c, d, e) { 531 | var f = 1.70158, 532 | g = 0, 533 | h = d; 534 | if (0 == b) return c; 535 | if (1 == (b /= e)) return c + d; 536 | if (g || (g = .3 * e), Math.abs(d) > h) { 537 | h = d; 538 | var f = g / 4 539 | } else var f = g / (2 * Math.PI) * Math.asin(d / h); 540 | return - (h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g)) + c 541 | }, 542 | easeOutElastic: function(a, b, c, d, e) { 543 | var f = 1.70158, 544 | g = 0, 545 | h = d; 546 | if (0 == b) return c; 547 | if (1 == (b /= e)) return c + d; 548 | if (g || (g = .3 * e), Math.abs(d) > h) { 549 | h = d; 550 | var f = g / 4 551 | } else var f = g / (2 * Math.PI) * Math.asin(d / h); 552 | return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c 553 | }, 554 | easeInOutElastic: function(a, b, c, d, e) { 555 | var f = 1.70158, 556 | g = 0, 557 | h = d; 558 | if (0 == b) return c; 559 | if (2 == (b /= e / 2)) return c + d; 560 | if (g || (g = e * .3 * 1.5), Math.abs(d) > h) { 561 | h = d; 562 | var f = g / 4 563 | } else var f = g / (2 * Math.PI) * Math.asin(d / h); 564 | return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + c: .5 * h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c 565 | }, 566 | easeInBack: function(a, b, c, d, e, f) { 567 | return void 0 == f && (f = 1.70158), 568 | d * (b /= e) * b * ((f + 1) * b - f) + c 569 | }, 570 | easeOutBack: function(a, b, c, d, e, f) { 571 | return void 0 == f && (f = 1.70158), 572 | d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c 573 | }, 574 | easeInOutBack: function(a, b, c, d, e, f) { 575 | return void 0 == f && (f = 1.70158), 576 | 1 > (b /= e / 2) ? d / 2 * b * b * (((f *= 1.525) + 1) * b - f) + c: d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c 577 | }, 578 | easeInBounce: function(a, b, c, d, e) { 579 | return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c 580 | }, 581 | easeOutBounce: function(a, b, c, d, e) { 582 | return 1 / 2.75 > (b /= e) ? d * 7.5625 * b * b + c: 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c: 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c: d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c 583 | }, 584 | easeInOutBounce: function(a, b, c, d, e) { 585 | return e / 2 > b ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c: .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c 586 | } 587 | }); -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/Article.vue: -------------------------------------------------------------------------------- 1 | 20 | 47 | -------------------------------------------------------------------------------- /src/components/Carousel.vue: -------------------------------------------------------------------------------- 1 | 10 | 32 | -------------------------------------------------------------------------------- /src/components/Catetory.vue: -------------------------------------------------------------------------------- 1 | 30 | 103 | -------------------------------------------------------------------------------- /src/components/Index.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 52 | 53 | 56 | -------------------------------------------------------------------------------- /src/components/LeftNav.vue: -------------------------------------------------------------------------------- 1 | 17 | 77 | -------------------------------------------------------------------------------- /src/components/Nav.vue: -------------------------------------------------------------------------------- 1 | 19 | 41 | -------------------------------------------------------------------------------- /src/components/PageContent.vue: -------------------------------------------------------------------------------- 1 | 167 | 214 | -------------------------------------------------------------------------------- /src/components/PageFooter.vue: -------------------------------------------------------------------------------- 1 | 17 | 22 | -------------------------------------------------------------------------------- /src/components/PageHeader.vue: -------------------------------------------------------------------------------- 1 | 12 | 21 | -------------------------------------------------------------------------------- /src/data/article.data: -------------------------------------------------------------------------------- 1 | { 2 | "articleId" : "1121348554", 3 | "catetoryId" : "14564741541", 4 | "title" : "习近平:弘扬宪法精神推动宪法实施", 5 | "author" : "彭逸帆", 6 | "publicTime" : "1480854958804", 7 | "pic" : "url", 8 | "abstractContent" : "推进职业职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 9 | "content":"

    推进职业教育现代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育

    推进职业教育现代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快常委、国务院总理李克强作出重要批示。批示指出:加快中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育

    推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育

    推进职业教育现代化座谈会12月2谈会12月212月212月212月212月2日在京召开。中共中央2月212月212月2日在京召开。中共中央2月212月212月2日在京召开。中共中央2月212月2日在京召开。中常委、国务院总理李克强作出重要批示。批示指出:加快12月212月212月212月2日在京召开。中共中央2月212月212月2日在京召开。中共中央2月212月212月2日在京召开。中共中央2月212月2日在京召开。中共中央政治月212月212月212月2日在京召开。中共中央2月212局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育

    推进职业教育现代化座谈会12月2日在京召开。中共中央政治月212月212月212月2日在京召开。中共中央2月212局常委、国务院总理李克强国务院总理李克强国务院总理李克强国务院总理李克强国务院总理李克强国务院总理李克强国务院总理李克强国务院总理李月212月212月212月2日在京召开。中共中央2月212月212月212月212月2日在京召开。中共中央2月212克强国务院总理李克强国务院总理李克强国务院总理李克强国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育

    " 10 | } -------------------------------------------------------------------------------- /src/data/catetory.data: -------------------------------------------------------------------------------- 1 | [{ 2 | "moduleId" : "1122", 3 | "catetoryId" : "tzgg", 4 | "articleId" : "2015111023", 5 | "title" : "首经贸与云南三所国门大文章1", 6 | "author" : "彭逸帆", 7 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 8 | "publicTime" : "1480854958134", 9 | "pic" : "/static/img/1.png" 10 | },{ 11 | "moduleId" : "1122", 12 | "catetoryId" : "tzgg", 13 | "articleId" : "2015111024", 14 | "title" : "习近平:弘扬宪法法实施文章2", 15 | "author" : "彭逸帆", 16 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 17 | "publicTime" : "1480854952414", 18 | "pic" : "/static/img/1.png" 19 | },{ 20 | "moduleId" : "1122", 21 | "catetoryId" : "tzgg", 22 | "articleId" : "2015111025", 23 | "title" : "习近平:弘扬宪法精神宪法实施文章3", 24 | "author" : "彭逸帆", 25 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 26 | "publicTime" : "148085412353", 27 | "pic" : "/static/img/1.png" 28 | },{ 29 | "moduleId" : "1122", 30 | "catetoryId" : "tzgg", 31 | "articleId" : "2015111026", 32 | "title" : "习近平:弘扬宪文章4", 33 | "author" : "彭逸帆", 34 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 35 | "publicTime" : "1480854913114", 36 | "pic" : "/static/img/1.png" 37 | },{ 38 | "moduleId" : "1122", 39 | "catetoryId" : "tzgg", 40 | "articleId" : "2015111027", 41 | "title" : "习近平:弘扬宪宪法实施文章5", 42 | "author" : "彭逸帆", 43 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 44 | "publicTime" : "1482211958842", 45 | "pic" : "/static/img/1.png" 46 | },{ 47 | "moduleId" : "1122", 48 | "catetoryId" : "tzgg", 49 | "articleId" : "2015111027", 50 | "title" : "习近平:弘扬宪法精神推动宪章6", 51 | "author" : "彭逸帆", 52 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 53 | "publicTime" : "1481286958842", 54 | "pic" : "/static/img/1.png" 55 | },{ 56 | "moduleId" : "1122", 57 | "catetoryId" : "tzgg", 58 | "articleId" : "2015111027", 59 | "title" : "习近平:弘扬宪动宪法实施文章7", 60 | "author" : "彭逸帆", 61 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 62 | "publicTime" : "1480854345842", 63 | "pic" : "/static/img/banner.png" 64 | },{ 65 | "moduleId" : "1122", 66 | "catetoryId" : "tzgg", 67 | "articleId" : "2015111027", 68 | "title" : "习近平:弘扬宪法精神文章8", 69 | "author" : "彭逸帆", 70 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 71 | "publicTime" : "1480854958842", 72 | "pic" : "/static/img/banner.png" 73 | },{ 74 | "moduleId" : "1122", 75 | "catetoryId" : "tzgg", 76 | "articleId" : "2015111027", 77 | "title" : "习近平:弘扬宪法精神推动宪法实施文章9", 78 | "author" : "彭逸帆", 79 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 80 | "publicTime" : "1480854123452", 81 | "pic" : "/static/img/banner.png" 82 | },{ 83 | "moduleId" : "1122", 84 | "catetoryId" : "tzgg", 85 | "articleId" : "2015111027", 86 | "title" : "习近平:弘扬宪法精神推动宪法实施文章10", 87 | "author" : "彭逸帆", 88 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 89 | "publicTime" : "1480851234432", 90 | "pic" : "/static/img/banner.png" 91 | },{ 92 | "moduleId" : "1122", 93 | "catetoryId" : "tzgg", 94 | "articleId" : "2015111027", 95 | "title" : "习近平:弘扬宪法精神推动宪法实施文章11", 96 | "author" : "彭逸帆", 97 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 98 | "publicTime" : "1480854218842", 99 | "pic" : "/static/img/banner.png" 100 | },{ 101 | "moduleId" : "1122", 102 | "catetoryId" : "tzgg", 103 | "articleId" : "2015111027", 104 | "title" : "习近平:弘扬宪法精神推动宪法实施文章12", 105 | "author" : "彭逸帆", 106 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 107 | "publicTime" : "1412354958842", 108 | "pic" : "/static/img/banner.png" 109 | },{ 110 | "moduleId" : "1122", 111 | "catetoryId" : "tzgg", 112 | "articleId" : "2015111027", 113 | "title" : "习近平:弘扬宪法精神推动宪法实施文章13", 114 | "author" : "彭逸帆", 115 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 116 | "publicTime" : "1480854958842", 117 | "pic" : "/static/img/banner.png" 118 | },{ 119 | "moduleId" : "1122", 120 | "catetoryId" : "tzgg", 121 | "articleId" : "2015111027", 122 | "title" : "习近平:弘扬宪法精神推动宪法实施文章14", 123 | "author" : "彭逸帆", 124 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 125 | "publicTime" : "1480854958842", 126 | "pic" : "/static/img/banner.png" 127 | },{ 128 | "moduleId" : "1122", 129 | "catetoryId" : "tzgg", 130 | "articleId" : "2015111027", 131 | "title" : "习近平:弘扬宪法精神推动宪法实施文章15", 132 | "author" : "彭逸帆", 133 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 134 | "publicTime" : "1480854958842", 135 | "pic" : "/static/img/banner.png" 136 | },{ 137 | "moduleId" : "1122", 138 | "catetoryId" : "tzgg", 139 | "articleId" : "2015111027", 140 | "title" : "习近平:弘扬宪法精神推动宪法实施文章16", 141 | "author" : "彭逸帆", 142 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 143 | "publicTime" : "1480854958842", 144 | "pic" : "/static/img/banner.png" 145 | },{ 146 | "moduleId" : "1122", 147 | "catetoryId" : "tzgg", 148 | "articleId" : "2015111027", 149 | "title" : "习近平:弘扬宪法精神推动宪法实施文章17", 150 | "author" : "彭逸帆", 151 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 152 | "publicTime" : "1480854958842", 153 | "pic" : "/static/img/banner.png" 154 | },{ 155 | "moduleId" : "1122", 156 | "catetoryId" : "tzgg", 157 | "articleId" : "2015111027", 158 | "title" : "习近平:弘扬宪法精神推动宪法实施文章18", 159 | "author" : "彭逸帆", 160 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 161 | "publicTime" : "1480854958842", 162 | "pic" : "/static/img/banner.png" 163 | },{ 164 | "moduleId" : "1122", 165 | "catetoryId" : "tzgg", 166 | "articleId" : "2015111027", 167 | "title" : "习近平:弘扬宪法精神推动宪法实施文章19", 168 | "author" : "彭逸帆", 169 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 170 | "publicTime" : "1480854958842", 171 | "pic" : "/static/img/banner.png" 172 | },{ 173 | "moduleId" : "1122", 174 | "catetoryId" : "tzgg", 175 | "articleId" : "2015111027", 176 | "title" : "习近平:弘扬宪法精神推动宪法实施文章20", 177 | "author" : "彭逸帆", 178 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 179 | "publicTime" : "1480854958842", 180 | "pic" : "/static/img/banner.png" 181 | },{ 182 | "moduleId" : "1122", 183 | "catetoryId" : "tzgg", 184 | "articleId" : "2015111027", 185 | "title" : "习近平:弘扬宪法精神推动宪法实施文章21", 186 | "author" : "彭逸帆", 187 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 188 | "publicTime" : "1480854958842", 189 | "pic" : "/static/img/banner.png" 190 | },{ 191 | "moduleId" : "1122", 192 | "catetoryId" : "tzgg", 193 | "articleId" : "2015111027", 194 | "title" : "习近平:弘扬宪法精神推动宪法实施文章22", 195 | "author" : "彭逸帆", 196 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 197 | "publicTime" : "1480854958842", 198 | "pic" : "/static/img/banner.png" 199 | },{ 200 | "moduleId" : "1122", 201 | "catetoryId" : "tzgg", 202 | "articleId" : "2015111027", 203 | "title" : "习近平:弘扬宪法精神推动宪法实施文章23", 204 | "author" : "彭逸帆", 205 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 206 | "publicTime" : "1480854958842", 207 | "pic" : "/static/img/banner.png" 208 | },{ 209 | "moduleId" : "1122", 210 | "catetoryId" : "tzgg", 211 | "articleId" : "2015111027", 212 | "title" : "习近平:弘扬宪法精神推动宪法实施文章24", 213 | "author" : "彭逸帆", 214 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 215 | "publicTime" : "1480854958842", 216 | "pic" : "/static/img/banner.png" 217 | },{ 218 | "moduleId" : "1122", 219 | "catetoryId" : "tzgg", 220 | "articleId" : "2015111027", 221 | "title" : "习近平:弘扬宪法精神推动宪法实施文章25", 222 | "author" : "彭逸帆", 223 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 224 | "publicTime" : "1480854958842", 225 | "pic" : "/static/img/banner.png" 226 | },{ 227 | "moduleId" : "1122", 228 | "catetoryId" : "tzgg", 229 | "articleId" : "2015111027", 230 | "title" : "习近平:弘扬宪法精神推动宪法实施文章26", 231 | "author" : "彭逸帆", 232 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 233 | "publicTime" : "1480854958842", 234 | "pic" : "/static/img/banner.png" 235 | },{ 236 | "moduleId" : "1122", 237 | "catetoryId" : "tzgg", 238 | "articleId" : "2015111027", 239 | "title" : "习近平:弘扬宪法精神推动宪法实施文章27", 240 | "author" : "彭逸帆", 241 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 242 | "publicTime" : "1480854958842", 243 | "pic" : "/static/img/banner.png" 244 | },{ 245 | "moduleId" : "1122", 246 | "catetoryId" : "tzgg", 247 | "articleId" : "2015111027", 248 | "title" : "习近平:弘扬宪法精神推动宪法实施文章28", 249 | "author" : "彭逸帆", 250 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 251 | "publicTime" : "1480854958842", 252 | "pic" : "/static/img/banner.png" 253 | },{ 254 | "moduleId" : "1122", 255 | "catetoryId" : "tzgg", 256 | "articleId" : "2015111027", 257 | "title" : "习近平:弘扬宪法精神推动宪法实施文章29", 258 | "author" : "彭逸帆", 259 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 260 | "publicTime" : "1480854958842", 261 | "pic" : "/static/img/banner.png" 262 | },{ 263 | "moduleId" : "1122", 264 | "catetoryId" : "tzgg", 265 | "articleId" : "2015111027", 266 | "title" : "习近平:弘扬宪法精神推动宪法实施文章30", 267 | "author" : "彭逸帆", 268 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 269 | "publicTime" : "1480854958842", 270 | "pic" : "/static/img/banner.png" 271 | },{ 272 | "moduleId" : "1122", 273 | "catetoryId" : "tzgg", 274 | "articleId" : "2015111027", 275 | "title" : "习近平:弘扬宪法精神推动宪法实施文章31", 276 | "author" : "彭逸帆", 277 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 278 | "publicTime" : "1480854958842", 279 | "pic" : "/static/img/banner.png" 280 | },{ 281 | "moduleId" : "1122", 282 | "catetoryId" : "tzgg", 283 | "articleId" : "2015111027", 284 | "title" : "习近平:弘扬宪法精神推动宪法实施文章32", 285 | "author" : "彭逸帆", 286 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 287 | "publicTime" : "1480854958842", 288 | "pic" : "/static/img/banner.png" 289 | }] -------------------------------------------------------------------------------- /src/data/catetoryCarousel.data: -------------------------------------------------------------------------------- 1 | [{ 2 | "moduleId" : "1122", 3 | "id" : "2015111023", 4 | "title" : "首经贸与云南三所国门大文章1", 5 | "author" : "彭逸帆", 6 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 7 | "publicTime" : "1480854958341", 8 | "pic" : "/static/img/banner.png" 9 | },{ 10 | "moduleId" : "1122", 11 | "id" : "2015111024", 12 | "title" : "习近平:弘扬宪法精神推动宪法实施文章2", 13 | "author" : "彭逸帆", 14 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 15 | "publicTime" : "1480854952144", 16 | "pic" : "/static/img/banner.png" 17 | },{ 18 | "moduleId" : "1122", 19 | "id" : "2015111025", 20 | "title" : "习近平:弘扬宪法精神推动宪法实施文章3", 21 | "author" : "彭逸帆", 22 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 23 | "publicTime" : "1480854123804", 24 | "pic" : "/static/img/banner.png" 25 | },{ 26 | "moduleId" : "1122", 27 | "id" : "2015111026", 28 | "title" : "习近平:弘扬宪法精神推动宪法实施文章4", 29 | "author" : "彭逸帆", 30 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 31 | "publicTime" : "1480854952214", 32 | "pic" : "/static/img/banner.png" 33 | },{ 34 | "moduleId" : "1122", 35 | "id" : "2015111027", 36 | "title" : "习近平:弘扬宪法精神推动宪法实施文章5", 37 | "author" : "彭逸帆", 38 | "abstractContent" : "进职业教育现代化座谈会12月2日在京召开。中共常委、国务院代化座谈会12月2日在京召开。中共常委、国务院总理李克强作出重要批示。批示指出:加快中央", 39 | "publicTime" : "1480854958842", 40 | "pic" : "/static/img/banner.png" 41 | }] -------------------------------------------------------------------------------- /src/data/follow.data: -------------------------------------------------------------------------------- 1 | [{ 2 | "title":"李克强:切实把职业教育摆在更加突出的位置", 3 | "id":1, 4 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 5 | },{ 6 | "title":"李克强:切实把职业教育摆在更加突出的位置", 7 | "id":1, 8 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 9 | },{ 10 | "title":"李克强:切实把职业教育摆在更加突出的位置", 11 | "id":1, 12 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 13 | },{ 14 | "title":"李克强:切实把职业教育摆在更加突出的位置", 15 | "id":1, 16 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 17 | },{ 18 | "title":"李克强:切实把职业教育摆在更加突出的位置", 19 | "id":1, 20 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 21 | },{ 22 | "title":"李克强:切实把职业教育摆在更加突出的位置", 23 | "id":1, 24 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 25 | },{ 26 | "title":"李克强:切实把职业教育摆在更加突出的位置", 27 | "id":1, 28 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 29 | },{ 30 | "title":"李克强:切实把职业教育摆在更加突出的位置", 31 | "id":1, 32 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 33 | },{ 34 | "title":"李克强:切实把职业教育摆在更加突出的位置", 35 | "id":1, 36 | "detail":"推进职业教育现代化座谈会12月2日在京召开。中共中央政治局常委、国务院总理李克强作出重要批示。批示指出:加快发展现代职业教育" 37 | }] -------------------------------------------------------------------------------- /src/data/index.data: -------------------------------------------------------------------------------- 1 | [{ 2 | "title":"习近平:弘扬宪法精神推动宪法实施", 3 | "id":1, 4 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 5 | },{ 6 | "title":"习近平:弘扬宪法精神推动宪法实施", 7 | "id":2, 8 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 9 | },{ 10 | "title":"习近平:弘扬宪法精神推动宪法实施", 11 | "id":3, 12 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 13 | },{ 14 | "title":"习近平:弘扬宪法精神推动宪法实施", 15 | "id":4, 16 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 17 | },{ 18 | "title":"习近平:弘扬宪法精神推动宪法实施", 19 | "id":5, 20 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 21 | },{ 22 | "title":"习近平:弘扬宪法精神推动宪法实施", 23 | "id":6, 24 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 25 | },{ 26 | "title":"习近平:弘扬宪法精神推动宪法实施", 27 | "id":7, 28 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 29 | },{ 30 | "title":"习近平:弘扬宪法精神推动宪法实施", 31 | "id":8, 32 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 33 | },{ 34 | "title":"习近平:弘扬宪法精神推动宪法实施", 35 | "id":9, 36 | "detail":"新华社杭州12月4日电 在第3个国家宪法日到来之际,中共中央总书记、国家主席、中央军委主席习近平作出重要指示强调,宪法是国家的根本法,是治国安邦的总章程" 37 | }] -------------------------------------------------------------------------------- /src/data/nav.data: -------------------------------------------------------------------------------- 1 | [{ 2 | "link" : "zxzy", 3 | "name" : "教学资源", 4 | "havesub" : true, 5 | "sub" : [{ 6 | "subName" : "教学资源1", 7 | "subLink" : "jxzy1" 8 | },{ 9 | "subName" : "教学资源2", 10 | "subLink" : "jxzy2" 11 | }] 12 | },{ 13 | "link" : "jxpt", 14 | "name" : "教学平台", 15 | "havesub" : false 16 | },{ 17 | "link" : "zxgk", 18 | "name" : "中心概况", 19 | "havesub" : true, 20 | "sub" : [{ 21 | "subName" : "中心概况1", 22 | "subLink" : "zxgk1" 23 | },{ 24 | "subName" : "中心概况2", 25 | "subLink" : "zxgk2" 26 | },{ 27 | "subName" : "中心概况3", 28 | "subLink" : "zxgk3" 29 | }] 30 | },{ 31 | "link" : "szdw", 32 | "name" : "师资队伍", 33 | "havsub" : false 34 | },{ 35 | "link" : "zygx", 36 | "name" : "资源共享", 37 | "havesub" : false 38 | },{ 39 | "link" : "sbhj", 40 | "name" : "设备环境", 41 | "havesub" : true, 42 | "sub" : [{ 43 | "subName" : "设备环境1", 44 | "subLink" : "sbhj1" 45 | },{ 46 | "subName" : "设备环境2", 47 | "subLink" : "sbhj2" 48 | }] 49 | },{ 50 | "link" : "yxgl", 51 | "name" : "运行管理", 52 | "havesub" : false 53 | },{ 54 | "link" : "tscx", 55 | "name" : "特色创新", 56 | "havesub" : true, 57 | "sub" : [{ 58 | "subName" : "特色创新1", 59 | "subLink" : "tscx1" 60 | },{ 61 | "subName" : "特色创新2", 62 | "subLink" : "tscx2" 63 | }] 64 | },{ 65 | "link" : "gzzd", 66 | "name" : "规章制度", 67 | "havesub" : false 68 | }] -------------------------------------------------------------------------------- /src/filters/index.js: -------------------------------------------------------------------------------- 1 | import {normalTime} from './normalTime' 2 | import {toUpperCase} from './toUpperCase' 3 | export default { 4 | normalTime, 5 | toUpperCase 6 | } 7 | -------------------------------------------------------------------------------- /src/filters/normalTime.js: -------------------------------------------------------------------------------- 1 | export const normalTime = (time) => { 2 | if(time){ 3 | var oDate = new Date(); 4 | 5 | oDate.setTime(time); 6 | 7 | var y = oDate.getFullYear(); 8 | var mo = oDate.getMonth() + 1; 9 | var d = oDate.getDate(); 10 | 11 | var h = oDate.getHours(); 12 | var m = oDate.getMinutes(); 13 | var s = oDate.getSeconds(); 14 | 15 | return y + "-" + mo + "-" + d; 16 | } 17 | } -------------------------------------------------------------------------------- /src/filters/toUpperCase.js: -------------------------------------------------------------------------------- 1 | export const toUpperCase = (str) => { 2 | if(str){ 3 | return str.toUpperCase(); 4 | } 5 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'Vue-router' 3 | import axios from 'axios' 4 | 5 | import $ from './assets/jquery-vendor.js' 6 | 7 | import './assets/libs/jquery.SuperSlide.2.1.js' 8 | import ElementUI from 'element-ui' 9 | import 'element-ui/lib/theme-default/index.css' 10 | 11 | import store from './store/' 12 | import App from './App.vue' 13 | 14 | import filters from './filters/' 15 | import routes from './router-config.js' 16 | 17 | Vue.use(VueRouter); 18 | Vue.use(ElementUI); 19 | 20 | const router = new VueRouter({ 21 | routes, 22 | mode: 'history' 23 | }) 24 | 25 | //Vue.filter(名字,函数) 26 | Object.keys(filters).forEach((key)=>{ 27 | Vue.filter(key,filters[key]) 28 | }); 29 | /*axios.interceptors.request.use(function(config){//配置发送请求的信息 30 | store.dispatch('showLoading') 31 | return config; 32 | },function(error){ 33 | return Promise.reject(error); 34 | }) 35 | 36 | axios.interceptors.response.use(function (response) { //配置请求回来的信息 37 | store.dispatch('hideLoading') 38 | return response; 39 | }, function (error) { 40 | 41 | return Promise.reject(error); 42 | });*/ 43 | 44 | Vue.prototype.$http = axios //其他页面在使用axios的时候直接 this.$http就可以了 45 | 46 | new Vue({ 47 | el: '#app', 48 | router, 49 | store, 50 | render: h => h(App) 51 | }) 52 | -------------------------------------------------------------------------------- /src/router-config.js: -------------------------------------------------------------------------------- 1 | import App from './App.vue' 2 | import Index from './components/Index.vue' 3 | import Catetory from './components/Catetory.vue' 4 | import Article from './components/Article.vue' 5 | export default [ 6 | { 7 | 'path' : '/index', 8 | component : Index, 9 | children: [ 10 | { 11 | path: 'catetory/:catetoryId', 12 | component: Catetory 13 | }, 14 | { 15 | path: 'catetory/:catetoryId/article/:articleId', 16 | component: Article 17 | } 18 | ] 19 | }, 20 | { 21 | path: '/', 22 | redirect : '/index' 23 | }, 24 | { 25 | path: '', 26 | redirect : '/index' 27 | }, 28 | { 29 | path:'*', 30 | redirect :'/index' 31 | } 32 | ] -------------------------------------------------------------------------------- /src/store/actions.js: -------------------------------------------------------------------------------- 1 | import * as types from './types' 2 | 3 | export default { 4 | pageContentHide : ({commit}) => { 5 | commit(types.PAGE_CONTENT_HIDE); 6 | }, 7 | pageContentShow : ({commit}) => { 8 | commit(types.PAGE_CONTENT_SHOW); 9 | }, 10 | pageNumberReset : ({commit}) => { 11 | commit(types.PAGE_NUMBER_RESET); 12 | }, 13 | pageNumberAdd : ({commit}) => { 14 | commit(types.PAGE_NUMBER_ADD); 15 | }, 16 | pageNumberSub : ({commit}) => { 17 | commit(types.PAGE_NUMBER_SUB); 18 | }, 19 | pageNumberLast: ({commit},pageTottleNum) => { 20 | commit(types.PAGE_NUMBER_LAST,pageTottleNum); 21 | }, 22 | pageNumberchange : ({commit},curPageNum) => { 23 | commit(types.PAGE_NUMBER_CHANGE,curPageNum); 24 | } 25 | } -------------------------------------------------------------------------------- /src/store/getters.js: -------------------------------------------------------------------------------- 1 | export default { 2 | contentState : (state) => { 3 | return state.content 4 | }, 5 | pageNum : (state) => { 6 | return state.pageNum 7 | } 8 | } -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import actions from './actions' 4 | import mutations from './mutations' 5 | 6 | Vue.use(Vuex); 7 | 8 | export default new Vuex.Store({ 9 | modules : { 10 | mutations 11 | }, 12 | actions 13 | }) -------------------------------------------------------------------------------- /src/store/mutations.js: -------------------------------------------------------------------------------- 1 | import getters from './getters' 2 | import * as types from './types' 3 | 4 | const state = { 5 | content : true, 6 | pageNum : 1 7 | } 8 | 9 | const mutations = { 10 | [types.PAGE_CONTENT_HIDE](state){ 11 | state.content = false; 12 | }, 13 | [types.PAGE_CONTENT_SHOW](state){ 14 | state.content = true; 15 | }, 16 | [types.PAGE_NUMBER_RESET](state){ 17 | state.pageNum = 1; 18 | }, 19 | [types.PAGE_NUMBER_ADD](state){ 20 | state.pageNum++; 21 | }, 22 | [types.PAGE_NUMBER_SUB](state){ 23 | state.pageNum--; 24 | }, 25 | [types.PAGE_NUMBER_CHANGE](state,curPageNum){ 26 | state.pageNum = curPageNum; 27 | }, 28 | [types.PAGE_NUMBER_LAST](state,pageTottleNum){ 29 | state.pageNum = pageTottleNum; 30 | } 31 | 32 | } 33 | 34 | export default { 35 | state, 36 | mutations, 37 | getters 38 | } -------------------------------------------------------------------------------- /src/store/types.js: -------------------------------------------------------------------------------- 1 | export const PAGE_CONTENT_HIDE = 'PAGE_CONTENT_HIDE' 2 | export const PAGE_CONTENT_SHOW = 'PAGE_CONTENT_SHOW' 3 | export const PAGE_NUMBER_RESET = 'PAGE_NUMBER_RESET' 4 | export const PAGE_NUMBER_ADD = 'PAGE_NUMBER_ADD' 5 | export const PAGE_NUMBER_SUB = 'PAGE_NUMBER_SUB' 6 | export const PAGE_NUMBER_CHANGE = 'PAGE_NUMBER_CHANGE' 7 | export const PAGE_NUMBER_LAST = 'PAGE_NUMBER_LAST' 8 | 9 | -------------------------------------------------------------------------------- /static/css/common.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | @import url(normalize.css); 3 | html, body, div, p, ul, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, form, input, select, button, textarea, iframe, table, th, td { margin: 0; padding: 0; } 4 | img { border: 0 none; vertical-align: top; } 5 | ul, li { list-style-type: none; } 6 | h1, h2, h3, h4, h5, h6 { font-size: 14px; } 7 | button { cursor: pointer; } 8 | body { background: #fff; color: #363636; line-height: 1.2; } 9 | a, a:link { color: #222; text-decoration: none; } 10 | a:visited { } 11 | a:active, a:hover { text-decoration: underline; } 12 | a:focus { outline: none; } 13 | 14 | .container { margin: 0 auto; } 15 | /*清除浮动*/ 16 | .clearfix:after { content:""; display:block; clear:both; height:0; line-height:0; visibility:hidden; } 17 | .clearfix { zoom:1; } 18 | .fl { float: left; } 19 | .fr { float: right; } 20 | 21 | /*返回顶部*/ 22 | /*toolBackTop*/ 23 | .back-to { 24 | bottom: 35px; 25 | overflow:hidden; 26 | position:fixed; 27 | right:10px; 28 | width:50px; 29 | z-index:999; 30 | } 31 | .back-to .back-top { 32 | width: 50px; 33 | height:50px; 34 | float: right; 35 | display: block; 36 | margin-left: 10px; 37 | *+margin-left: 0; 38 | background: url("../img/back-top.png") no-repeat scroll 0 0 transparent; 39 | outline: 0 none; 40 | text-indent: -9999em; 41 | } 42 | .back-to .back-top:hover { 43 | background-position: -50px 0; 44 | } 45 | 46 | 47 | -------------------------------------------------------------------------------- /static/css/normalize.css: -------------------------------------------------------------------------------- 1 | 2 | /*! normalize.css v3.0.2 | MIT License | git.io/normalize */ 3 | /** 4 | * 1. Set default font family to sans-serif. 5 | * 2. Prevent iOS text size adjust after orientation change, without disabling 6 | * user zoom. 7 | */ 8 | html { 9 | font-family: sans-serif; /* 1 */ 10 | -ms-text-size-adjust: 100%; /* 2 */ 11 | -webkit-text-size-adjust: 100%; /* 2 */ 12 | } 13 | /** 14 | * Remove default margin. 15 | */ 16 | body { 17 | margin: 0; 18 | } 19 | /* HTML5 display definitions 20 | ========================================================================== */ 21 | /** 22 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 23 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 24 | * and Firefox. 25 | * Correct `block` display not defined for `main` in IE 11. 26 | */ 27 | article, 28 | aside, 29 | details, 30 | figcaption, 31 | figure, 32 | footer, 33 | header, 34 | hgroup, 35 | main, 36 | menu, 37 | nav, 38 | section, 39 | summary { 40 | display: block; 41 | } 42 | /** 43 | * 1. Correct `inline-block` display not defined in IE 8/9. 44 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 45 | */ 46 | audio, 47 | canvas, 48 | progress, 49 | video { 50 | display: inline-block; /* 1 */ 51 | vertical-align: baseline; /* 2 */ 52 | } 53 | /** 54 | * Prevent modern browsers from displaying `audio` without controls. 55 | * Remove excess height in iOS 5 devices. 56 | */ 57 | audio:not([controls]) { 58 | display: none; 59 | height: 0; 60 | } 61 | /** 62 | * Address `[hidden]` styling not present in IE 8/9/10. 63 | * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. 64 | */ 65 | [hidden], 66 | template { 67 | display: none; 68 | } 69 | /* Links 70 | ========================================================================== */ 71 | /** 72 | * Remove the gray background color from active links in IE 10. 73 | */ 74 | a { 75 | background-color: transparent; 76 | } 77 | /** 78 | * Improve readability when focused and also mouse hovered in all browsers. 79 | */ 80 | a:active, 81 | a:hover { 82 | outline: 0; 83 | } 84 | /* Text-level semantics 85 | ========================================================================== */ 86 | /** 87 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 88 | */ 89 | abbr[title] { 90 | border-bottom: 1px dotted; 91 | } 92 | /** 93 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 94 | */ 95 | b, 96 | strong { 97 | font-weight: bold; 98 | } 99 | /** 100 | * Address styling not present in Safari and Chrome. 101 | */ 102 | dfn { 103 | font-style: italic; 104 | } 105 | /** 106 | * Address variable `h1` font-size and margin within `section` and `article` 107 | * contexts in Firefox 4+, Safari, and Chrome. 108 | */ 109 | h1 { 110 | font-size: 2em; 111 | margin: 0.67em 0; 112 | } 113 | /** 114 | * Address styling not present in IE 8/9. 115 | */ 116 | mark { 117 | background: #ff0; 118 | color: #000; 119 | } 120 | /** 121 | * Address inconsistent and variable font size in all browsers. 122 | */ 123 | small { 124 | font-size: 80%; 125 | } 126 | /** 127 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 128 | */ 129 | sub, 130 | sup { 131 | font-size: 75%; 132 | line-height: 0; 133 | position: relative; 134 | vertical-align: baseline; 135 | } 136 | sup { 137 | top: -0.5em; 138 | } 139 | sub { 140 | bottom: -0.25em; 141 | } 142 | /* Embedded content 143 | ========================================================================== */ 144 | /** 145 | * Remove border when inside `a` element in IE 8/9/10. 146 | */ 147 | img { 148 | border: 0; 149 | } 150 | /** 151 | * Correct overflow not hidden in IE 9/10/11. 152 | */ 153 | svg:not(:root) { 154 | overflow: hidden; 155 | } 156 | /* Grouping content 157 | ========================================================================== */ 158 | /** 159 | * Address margin not present in IE 8/9 and Safari. 160 | */ 161 | figure { 162 | margin: 1em 40px; 163 | } 164 | /** 165 | * Address differences between Firefox and other browsers. 166 | */ 167 | hr { 168 | -moz-box-sizing: content-box; 169 | box-sizing: content-box; 170 | height: 0; 171 | } 172 | /** 173 | * Contain overflow in all browsers. 174 | */ 175 | pre { 176 | overflow: auto; 177 | } 178 | /** 179 | * Address odd `em`-unit font size rendering in all browsers. 180 | */ 181 | code, 182 | kbd, 183 | pre, 184 | samp { 185 | font-family: monospace, monospace; 186 | font-size: 1em; 187 | } 188 | /* Forms 189 | ========================================================================== */ 190 | /** 191 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 192 | * styling of `select`, unless a `border` property is set. 193 | */ 194 | /** 195 | * 1. Correct color not being inherited. 196 | * Known issue: affects color of disabled elements. 197 | * 2. Correct font properties not being inherited. 198 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 199 | */ 200 | button, 201 | input, 202 | optgroup, 203 | select, 204 | textarea { 205 | color: inherit; /* 1 */ 206 | font: inherit; /* 2 */ 207 | margin: 0; /* 3 */ 208 | } 209 | /** 210 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 211 | */ 212 | button { 213 | overflow: visible; 214 | } 215 | /** 216 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 217 | * All other form control elements do not inherit `text-transform` values. 218 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 219 | * Correct `select` style inheritance in Firefox. 220 | */ 221 | button, 222 | select { 223 | text-transform: none; 224 | } 225 | /** 226 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 227 | * and `video` controls. 228 | * 2. Correct inability to style clickable `input` types in iOS. 229 | * 3. Improve usability and consistency of cursor style between image-type 230 | * `input` and others. 231 | */ 232 | button, 233 | html input[type="button"], /* 1 */ 234 | input[type="reset"], 235 | input[type="submit"] { 236 | -webkit-appearance: button; /* 2 */ 237 | cursor: pointer; /* 3 */ 238 | } 239 | /** 240 | * Re-set default cursor for disabled elements. 241 | */ 242 | button[disabled], 243 | html input[disabled] { 244 | cursor: default; 245 | } 246 | /** 247 | * Remove inner padding and border in Firefox 4+. 248 | */ 249 | button::-moz-focus-inner, 250 | input::-moz-focus-inner { 251 | border: 0; 252 | padding: 0; 253 | } 254 | /** 255 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 256 | * the UA stylesheet. 257 | */ 258 | input { 259 | line-height: normal; 260 | } 261 | /** 262 | * It's recommended that you don't attempt to style these elements. 263 | * Firefox's implementation doesn't respect box-sizing, padding, or width. 264 | * 265 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 266 | * 2. Remove excess padding in IE 8/9/10. 267 | */ 268 | input[type="checkbox"], 269 | input[type="radio"] { 270 | box-sizing: border-box; /* 1 */ 271 | padding: 0; /* 2 */ 272 | } 273 | /** 274 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 275 | * `font-size` values of the `input`, it causes the cursor style of the 276 | * decrement button to change from `default` to `text`. 277 | */ 278 | input[type="number"]::-webkit-inner-spin-button, 279 | input[type="number"]::-webkit-outer-spin-button { 280 | height: auto; 281 | } 282 | /** 283 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 284 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome 285 | * (include `-moz` to future-proof). 286 | */ 287 | input[type="search"] { 288 | -webkit-appearance: textfield; /* 1 */ 289 | -moz-box-sizing: content-box; 290 | -webkit-box-sizing: content-box; /* 2 */ 291 | box-sizing: content-box; 292 | } 293 | /** 294 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 295 | * Safari (but not Chrome) clips the cancel button when the search input has 296 | * padding (and `textfield` appearance). 297 | */ 298 | input[type="search"]::-webkit-search-cancel-button, 299 | input[type="search"]::-webkit-search-decoration { 300 | -webkit-appearance: none; 301 | } 302 | /** 303 | * Define consistent border, margin, and padding. 304 | */ 305 | fieldset { 306 | border: 1px solid #c0c0c0; 307 | margin: 0 2px; 308 | padding: 0.35em 0.625em 0.75em; 309 | } 310 | /** 311 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 312 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 313 | */ 314 | legend { 315 | border: 0; /* 1 */ 316 | padding: 0; /* 2 */ 317 | } 318 | /** 319 | * Remove default vertical scrollbar in IE 8/9/10/11. 320 | */ 321 | textarea { 322 | overflow: auto; 323 | } 324 | /** 325 | * Don't inherit the `font-weight` (applied by a rule above). 326 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 327 | */ 328 | optgroup { 329 | font-weight: bold; 330 | } 331 | /* Tables 332 | ========================================================================== */ 333 | /** 334 | * Remove most spacing between table cells. 335 | */ 336 | table { 337 | border-collapse: collapse; 338 | border-spacing: 0; 339 | } 340 | td, 341 | th { 342 | padding: 0; 343 | } -------------------------------------------------------------------------------- /static/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/1.png -------------------------------------------------------------------------------- /static/img/2340left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/2340left.png -------------------------------------------------------------------------------- /static/img/2646right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/2646right.png -------------------------------------------------------------------------------- /static/img/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/6.png -------------------------------------------------------------------------------- /static/img/back-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/back-top.png -------------------------------------------------------------------------------- /static/img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/banner.png -------------------------------------------------------------------------------- /static/img/black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/black.png -------------------------------------------------------------------------------- /static/img/cop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/cop.png -------------------------------------------------------------------------------- /static/img/dot_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/dot_black.png -------------------------------------------------------------------------------- /static/img/dot_hui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/dot_hui.png -------------------------------------------------------------------------------- /static/img/dot_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/dot_white.png -------------------------------------------------------------------------------- /static/img/header_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/header_bg.png -------------------------------------------------------------------------------- /static/img/icon_shenbao_hui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/icon_shenbao_hui.png -------------------------------------------------------------------------------- /static/img/icon_shenbao_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/icon_shenbao_red.png -------------------------------------------------------------------------------- /static/img/icon_zhicheng_hui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/icon_zhicheng_hui.png -------------------------------------------------------------------------------- /static/img/icon_zhicheng_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/icon_zhicheng_red.png -------------------------------------------------------------------------------- /static/img/lang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/lang.png -------------------------------------------------------------------------------- /static/img/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/left.png -------------------------------------------------------------------------------- /static/img/login-pwd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/login-pwd.png -------------------------------------------------------------------------------- /static/img/login_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/login_icon.png -------------------------------------------------------------------------------- /static/img/login_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/login_user.png -------------------------------------------------------------------------------- /static/img/nav_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/nav_arrow.png -------------------------------------------------------------------------------- /static/img/nav_title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/nav_title.png -------------------------------------------------------------------------------- /static/img/pic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/pic.png -------------------------------------------------------------------------------- /static/img/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/point.png -------------------------------------------------------------------------------- /static/img/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/right.png -------------------------------------------------------------------------------- /static/img/slider_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/slider_bg.png -------------------------------------------------------------------------------- /static/img/title_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/title_bg.png -------------------------------------------------------------------------------- /static/img/titpic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/titpic.png -------------------------------------------------------------------------------- /static/img/white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaVanCN/vue-web-portal/17f9e554d72610a0bebddde668118a4ccba91b8b/static/img/white.png -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var path = require('path') 2 | var webpack = require('webpack') 3 | 4 | module.exports = { 5 | entry: './src/main.js', 6 | output: { 7 | path: path.resolve(__dirname, './dist'), 8 | publicPath: '/dist/', 9 | filename: 'build.js' 10 | }, 11 | module: { 12 | rules: [ 13 | { 14 | test: /\.vue$/, 15 | loader: 'vue-loader', 16 | options: { 17 | loaders: { 18 | } 19 | // other vue-loader options go here 20 | } 21 | }, 22 | { 23 | test: /\.css$/, 24 | loader: 'style-loader!css-loader' 25 | }, 26 | { 27 | test: /\.js$/, 28 | loader: 'babel-loader', 29 | exclude: /node_modules/ 30 | }, 31 | { 32 | test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/, 33 | loader: 'file-loader' 34 | }, 35 | { 36 | test: /\.(png|jpg|gif|svg)$/, 37 | loader: 'file-loader', 38 | options: { 39 | name: '[name].[ext]?[hash]' 40 | } 41 | } 42 | ] 43 | }, 44 | resolve: { 45 | alias: { 46 | 'vue$': 'vue/dist/vue.esm.js' 47 | } 48 | }, 49 | devServer: { 50 | historyApiFallback: true, 51 | noInfo: true 52 | }, 53 | performance: { 54 | hints: false 55 | }, 56 | devtool: '#eval-source-map' 57 | } 58 | 59 | if (process.env.NODE_ENV === 'production') { 60 | module.exports.devtool = '#source-map' 61 | // http://vue-loader.vuejs.org/en/workflow/production.html 62 | module.exports.plugins = (module.exports.plugins || []).concat([ 63 | new webpack.DefinePlugin({ 64 | 'process.env': { 65 | NODE_ENV: '"production"' 66 | } 67 | }), 68 | new webpack.optimize.UglifyJsPlugin({ 69 | sourceMap: true, 70 | compress: { 71 | warnings: false 72 | } 73 | }), 74 | new webpack.LoaderOptionsPlugin({ 75 | minimize: true 76 | }) 77 | ]) 78 | } 79 | --------------------------------------------------------------------------------