# sjhdlpbFront
**Repository Path**: dreamLP/sjhdlpbFront
## Basic Information
- **Project Name**: sjhdlpbFront
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-05-10
- **Last Updated**: 2021-03-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# template
> 此项目包含以下依赖:
> `vue`, `vue-router`, `vuex`, `axios`, `js-cookie`, `bulma`, `vue-fontawesome`
## 项目结构
```structure
src/
├── apis/ // 抽取出的与后台交互的 API 模块文件夹
| └── delicacy.js // API 模块样品
├── assets/ // 静态资源文件夹
├── components/ // 组件文件夹
| ├── delicacy/ // 模态叠加层文件夹
| | ├── Create.vue // 模态叠加层样品(创建)
| | ├── Detail.vue // 模态叠加层样品(详情)
| | └── Modify.vue // 模态叠加层样品(修改)
| ├── Board.vue // pc 端首页展示板
| ├── NavBar.vue // pc 端头部导航
| ├── SideMenu.vue // pc 端边侧菜单
| └── TabBar.vue // mobile 端底部导航
├── cookies/ // 抽取出的 cookie 操作模块文件夹
| └── delicacy.js // cookie 模块样品
├── store/ // vuex 文件夹
| ├── modules/ // 数据操作模块文件夹
| | └── delicacy.js // 数据操作模块样品
| └── index.js // vuex 入口文件,内涵 modules 绑定
├── validations/ // 数据验证模块文件夹
| └── delicacy.js // 数据验证模块样品
├── views/
| ├── errors/ // 错误页面文件夹
| | └── NotFound.vue // 404 not found
| ├── home/ // mobile 和 pc 首页
| ├── Delicacy.vue // 列表页样品
| ├── Function.vue // mobile 端菜单列表
| └── Home.vue // 首页容器
├── App.vue // 响应式根容器
├── main.js // 程序主入口
└── router.js // vue-router 路由文件
```
## 手册
添加模块简易流程为:
`apis` → `store/modules` → `views&components` → `router`
### 一、 api 接口
使用 [axios](https://github.com/axios/axios) http 功能包,与后台进行操作。
> 参考 `src/api/delicacy.js`
1. 引入并配置基础设置
```javascript
import axios from "axios";
const http = axios.create({
baseURL: "http://example.com/delicacy", // 模块根路径
headers: {
"Content-Type": "application/json" // http 请求格式
... // oauth2 验证协议头亦添加再次
}
});
````
2. 为 api 模块写入基础 Restful API 请求
```javascript
export default {
getByPage(page, callback) {
// 数据验证站位
http.request({
method: "GET",
params: {
page: page
}
}).then(response => {
let result = response.data;
// 数据处理站位
callback(result)
})
},
getById(id, callback) {
// 数据验证站位
http.request({
url: "/" + id,
method: "GET"
}).then(response => {
let result = response.data;
// 数据处理站位
callback(result)
})
},
create(data, callback) {
// 数据验证站位
http.request({
method: "POST",
data: data
}).then(response => {
let result = response.data;
// 数据处理站位
callback(result)
})
}
}
```
3. 其它
还可继续添加数据处理及数据验证功能,请参考样品 `src/apis/delicacy.js` 和 `src/validations/delicacy.js`。
### 二、 vuex 数据管理模块
使用 [vuex](https://github.com/vuejs/vuex) 数据管理功能包。
> 参考 `src/store/index.js` 和 `src/store/modules/delicacy.js`
1. 添加数据管理模块
```javascript
import api from '../../apis/delicacy';
// 模块内数据储存对象,类似于每个页面中的 data 和 props。
const state = {
all: [] // 储存模块内数据集
};
// 能直接通过 state 中获取的值,都在此对象内操作并返回。
const getters = {
getById: (state) => (id) => {
// find() 方法,返回第一个符合条件的值。
return state.all.find(item => item.id === id);
}
};
// 同步数据操作对象。
const mutations = {
set(state, delicacies) {
state.all = delicacies
}
};
// 异步数据操作对象。
const actions = {
set({commit}) {
api.getByPage(1, delicacies => {
// commit() 方法中的字符串参数为 mutations 对象内的方法名。
commit("set", delicacies)
})
}
}
```
2. 把模块添加到 `src/store/index.js`,使其在初始化应用时被加载。
```javascript
import Vue from 'vue';
import Vuex from 'vuex';
import example from './modules/example';
Vue.use(Vuex);
export default new Vuex.Store({
modules: {
...
example,
...
}
});
```
3. 其它
数据操作模块内,也应添加数据验证,为数据验证做多重保险。参考 `src/store/modules/delicacy.js`。
### 三、页面和组件
使用 [bulma](https://github.com/jgthms/bulma) 轻 css 框架制作响应式页面。
> 参考 `src/views/Delicacy.vue` 和 `src/components/delicacy/*`
1. 列表页
```vue
```
2. 详情页、新建页和修改页
请参考 `src/components/delicacy/*`。