构建分类页面

2019-07-21  本文已影响0人  Jay_ZJ

新建假页面 CategoryEdit.vue

在views文件夹中创建CategoryEdit.vue这个组件,用来创建分类

<template>
  <div>
    创建分类
  </div>
</template>

<script>
export default {

}
</script>

<style>

</style>

变更主页 Main.vue

  1. 将菜单栏修改
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
  <el-menu router :default-openeds="['1', '3']">
    <el-submenu index="1">
      <template slot="title"><i class="el-icon-message"></i>内容管理</template>
      <el-menu-item-group>
        <template slot="title">分类</template>
        <el-menu-item index="/categories/create">新建分类</el-menu-item>
        <el-menu-item index="/categories/list">分类列表</el-menu-item>
      </el-menu-item-group>
    </el-submenu>
  </el-menu>
</el-aside>
  1. 添加router-view
    将主页右边的表格换成router-view,用来显示组件
<el-main>
  <router-view></router-view>
</el-main>

3-修改router.js

import Vue from 'vue'
import Router from 'vue-router'
import Main from './views/Main.vue'
import CategoryEdit from './views/CategoryEdit.vue'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Main',
      component: Main,
      children: [
        { path: '/categories/create', component: CategoryEdit }  // 子组件
      ]
    },
  ]
})

新建分类页面

  1. 新建el-form表单
<div>
  <h1>新建分类</h1>
  <el-form  label-width="120px">
    <el-form-item label="名称">
      <el-input></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary">保存</el-button>
    </el-form-item>
  </el-form>
</div>
  1. 添加名称双向绑定
...
<el-form-item label="名称">
    <el-input v-model="model.name"></el-input>
</el-form-item>
...
<script>
export default {
  data: () => ({
    model: {}
  })
</script>
  1. 添加保存事件
...
<el-form label-width="120px" @submit.native.prevent="save">
...
<el-form-item>
  <el-button type="primary" native-type="submit">保存</el-button>
</el-form-item>
...
<script>
export default {
...
  methods: {
    save () {
      
    }
  }
</script>

添加axios

  1. 关于
    Axios 是一个基于 promise 的 HTTP 库和node.js的http客户端,这里用于前后台数据交互
  2. 导入
npm i axios
  1. 建立api交互 http.js
import axios from 'axios'

const http = axios.create({
  baseURL: 'http://localhost:3000/admin/api' // 设定api基础网址
})

export default http
  1. 将http设为全局
import http from './http'
Vue.prototype.$http = http  // 将http绑定到原型上

axios请求

在 CategoryEdit中,空白的save方法体里,就可以愉快的进行数据请求了,前提是后台提供了api的前提下,例如:

...
methods: {
  save () {
    this.$http.post().then(res => {
        // 数据处理
    })
  }
}
...
上一篇下一篇

猜你喜欢

热点阅读