本項目才用Vue-cli腳手架自動生成,這是一個Vue生態系統中一個偉大創舉。這意味着咱們不須要手動構建咱們的項目,而它就能夠很快地爲咱們生成。下圖是一個完整的項目結構,如圖所示:javascript
components:包含全部的頁面組件html
vuex:包含vuex相關文件vue
modules:存放每一個頁面單獨的state和mutationjava
static:靜態文件存放(圖片和圖標庫等)node
index.html:渲染的頁面webpack
main.js:應用入口點,包含根實例nginx
App.vue:主頁面組件 web
安裝Vue-cli(要有node與npm)vue-router
npm i -g vue-cli
建立一個webpack項目,而且下載依賴sql
vue init webpack vue-demo-orderApp cd vue-demo-orderApp npm i
安裝Vue-router,Vuex和Mint-ui
npm install vue-router vuex --save npm install mint-ui --save
熱加載打開頁面(生產的時候運行npm run build
)
npm run dev
項目的框架已經搭建好了,接下來就是爲項目添磚加瓦。
本項目爲一個demo項目,主要爲了練習vue2的使用,結構上借鑑了官方的寫法,界面爲通用的app樣式,才用餓了麼團隊的Mint-Ui的製做。
這個demo的每個頁面都是一個.vue文件,利用Vue的單文件組件,很是便於管理每一個頁面的狀態,樣式和數據,首頁主要是展現頁,和操做面板頁。下面是主頁的代碼:
<template> <div class="index-container"> <!-- 輪播圖部分 --> <mt-swipe :auto="4000"> <mt-swipe-item><div class="banner1 banner" style="background:url('./static/banner1.jpg');background-size: cover;"></div></mt-swipe-item> <mt-swipe-item><div class="banner2 banner" style="background:url('./static/banner2.jpg');background-size: cover;"></div></mt-swipe-item> </mt-swipe> <!-- 訂單同步狀態部分 --> <mt-popup class="status" v-model="popupVisible" popup-transition="popup-fade" position="top"> 同步{{ orders_status }} </mt-popup> <!-- 首頁功能欄部分 --> <ul class="icon-list"> <li class="icon"> <router-link to="order" class="iconlink"></router-link> <img src="../assets/scan.png" class="clear"> <h4>訂單管理</h4> <p>掃描盤點,手工盤點</p> <i></i> </li> <li class="icon"> <router-link to="goods" class="iconlink"></router-link> <img src="../assets/ana.png" class="clear"> <h4>渠道管理</h4> <p>掃描盤點,手工盤點</p> <i></i> </li> <li class="icon"> <router-link to="order" class="iconlink"></router-link> <img src="../assets/store.png" class="clear"> <h4>訂單發佈</h4> <p>掃描盤點,手工盤點</p> <i></i> </li> <li class="icon" @click="getOrders()"> <router-link to="test" class="iconlink"></router-link> <img src="../assets/goods.png" class="clear"> <h4>訂單同步</h4> <p>快速同步渠道訂單,方便快捷</p> <i></i> </li> <li class="icon"> <router-link to="personinfo" class="iconlink"></router-link> <img src="../assets/download.png" class="clear"> <h4>我的中心</h4> <p>信息管理,logo更換</p> <i></i> </li> </ul> </div> </template> <script type="text/javascript"> import { MessageBox } from 'mint-ui' import { mapState } from 'vuex' export default{ created:function(){ if(window.localStorage.user == null){ this.$router.push({path: '/login'}) } }, data(){ let popupVisible = false let orders_status