• Stars
    star
    581
  • Rank 76,901 (Top 2 %)
  • Language
    JavaScript
  • License
    Other
  • Created over 7 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a boilerplate for large vue project with ElementUI 2.x

Vue-Seed

An out-of-box UI solution for enterprise applications as a Vue boilerplate.

author Prs LICENSE

Themes Preview

  1. dark-version ( Branch: master )
  2. light-version ( Branch: light-version )
  3. color-version ( branch: color-version )

Features

  1. 三套主题模板任你选
  2. 第三套主题实现了换肤功能
  3. 实现了动态路由功能
  4. 完整的登录登出逻辑
  5. 炫酷的登录页
  6. 支持配置饿了么组件库主题色
  7. 实现了国际化
  8. 附带天气预报功能
  9. 附带动感音乐
  10. 封装了图表组件

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:1024
yarn run dev

# build for production with minification
yarn run build

# visualize output files
yarn run analysis

# preview output files
yarn add http-server -g
cd dist
http-server

Tech Stack

  • Vue @ 2.5.9
  • Vue-Router
  • Vue-cli @ 2.x
  • Vue-i18n
  • Vuex
  • ES6
  • Element-UI @ 2.8.2
  • eCharts @ 4.2.1
  • Axios
  • Jsonp
  • Sass
  • Animate.CSS
  • Typed.js
  • Font-Awesome
  • MockJS
  • Yarn
  • babel-polyfill ( Compatible with IE )

Other Plugins Maybe Need

  • intro.js 引导页
  • vue-qr 二维码生成模块
  • vuedraggable 拖拽功能
  • vue-particles 粒子效果
  • js-cookie 读写cookie模块
  • dayjs 日期处理模块
  • rythm.js 音频节奏可视化模块
  • vuescroll.js 一个滚动条插件
  • crypto-js 加密算法,登录时使用
  • clipboard.js 复制粘贴
  • vue-baidu-map 封装的百度地图插件

Notes

  1. 由于第三套主题中使用了flex布局,导致只能兼容到IE10,在删除grid布局的情况下。
  2. dark-version主题中登录页引入了rythm.js,导致其不兼容IE,删除Siderbar.vue里面关于rythm.js的代码就可以了。
  3. node-sass经常安装失败,可能需要多次 install,如果实在不行,最好翻墙后再次 yarn install。
  4. 如果要覆盖饿了么组件的样式变量,就编辑assets/scss/element-variables.scss文件。
  5. 因为谷歌浏览器升级到71版本,导致screenfull.js源码98行有问题,已经将改动后的文件复制到了assets/libs文件夹下。
  6. 彻底重写了图表组件,提高了组件的扩展性,图表配置需要在使用组件的父组件中编写。
  7. 切换到 color-version 分支后,需要重新 yarn install 安装独有插件
  8. 背景音乐的歌名是:Romeo's Tune。

Login Logic

  1. 请求登录接口,获取到token、用户ID等信息,保存到localStorage或Cookie里
  2. 请求左侧菜单信息。(如果菜单是固定的,这步忽略)
  3. 登录成功后,导航到首页
  4. 在main.js里设置全局请求拦截,在所有请求的header里加上token信息,证明当前已登录
  5. 在main.js里设置全局接收拦截,如果服务器端的token已过期,返回401,就清空localStorage并重定向到登录页面
  6. 在路由配置表里,设置全局路由拦截,如果token存在并且要去往登录页面,就不让去,并且重定向到首页

Logout Logic

  1. 点击退出按钮,清空localStorage,并导航到登录页面

First Visit Logic

  1. 配置路由表,'/'重定向到首页
  2. 如果没有登录(本地没有token),首页的请求就会是401,这时候,就会导航到登录页
  3. 如果已经登录过,本地有token,就待在首页,不用再登录一遍了

Switch Theme Color Logic

  1. 安装 webpack-theme-color-replacer 插件
  2. 在 /build/webpack.base.conf.js 中引入 参考
  3. 在楼上的文件中配置 plugins
  4. 在颜色选择器所在的组件中,引入步骤一中的插件
  5. 在步骤四中的文件中,添加插件的逻辑代码,构建options对象,然后调用changeColor方法 参考

Dynamic Routers Logic

  1. 登录后,从后端请求一个信息数组 arr
  2. 编写解析函数,将这个 arr 解析成 路由信息数组 routes 和 菜单数组 menuArr
  3. menuArr 注入到 sidebar.vue中,渲染出菜单
  4. routes数组 作为参数,传入到 router.addRoutes() 方法中,生成真正的路由树
  5. 404路由作为最后一项
  6. 由于实现起来过于复杂,我也懵逼了,还是参考网上的教程

License

Anti-996

More Repositories

1

reactSPA

A Demo SPA developed with React, ES6, Webpack (2.x), and Antd (1.0.1) 【move to react-seed】
JavaScript
513
star
2

react-seed

a Starter-Kit for React-ES6-Webpack(2.x) Project
JavaScript
123
star
3

suanban

A web app developed with Vue2.0 and Douban API
JavaScript
60
star
4

webpack-starter-kit

a starter kit for building SPA with Webpack(2.x)
JavaScript
44
star
5

vue-have-done

A web app developed with Vue2.0 and Element Components
JavaScript
16
star
6

vue-starter

a vue admin template built for front-end developers
Vue
15
star
7

node-lab

creating little funny things with node.js
JavaScript
8
star
8

heatmap

generate a heatmap with Baidu Map API
HTML
6
star
9

node-spider

get ssr qr code with node.js, just for study purpose
JavaScript
5
star
10

ngApp

a SPA with Angular(1.x), RequireJs, Highcharts, and AngularUI
JavaScript
5
star
11

Grocery

a collection of simple demos of Canvas
CSS
4
star
12

gulp-starter-kit

a starter kit for developing SPA with Npm & Gulp
JavaScript
3
star
13

baipress

a technical documentation for FE developers with VuePresss
JavaScript
3
star
14

interview-questions

interview questions for front-end developers
3
star
15

vue-seeds

a boilerplate for vue multi-page project
Vue
2
star
16

ngForm

Form & Tabel with AngularJs
HTML
2
star
17

keeper

record your daily life everyday
JavaScript
2
star
18

lego

Create a page by dragging and drop
Vue
2
star
19

json-preview

preview your mock json data online
HTML
2
star
20

xball

a small h5 game
Vue
2
star
21

vue-egg-mysql

practise egg and mysql
JavaScript
1
star
22

shaker

抖一抖
Vue
1
star
23

electron-vue-starter

a template with vue & electron
JavaScript
1
star
24

vite-starter

a vue template powered by vite
Vue
1
star
25

cube

three 3d cubes developed with three.js
JavaScript
1
star
26

b-danmakus

get danmakus from Bilibili's video
JavaScript
1
star
27

theme-starter

a vue-element template that can change theme colors
Vue
1
star