全栈开发学习(Node+Vue+Mongodb)(二)——后台管理界面的搭建

1 用ElementUI搭建基本的后台界面框架

  • 准备工作:在admin文件夹安装:vue add element

    ​ 安装路由用于界面跳转:vue add router

  • 左侧导航:在Main.vue中粘贴ElementUI官方文档里的导航写法,根据需求修改导航 ,需求如下所示:

    • 内容管理
      • 物品:新建物品、物品列表
      • 英雄:新建英雄、英雄列表
      • 文章:新建文章、文章列表
    • 运营管理
      • 广告位:新建广告位、广告位列表
    • 系统设置
      • 分类:新建分类、分类列表
      • 管理员:新建管理员、管理员列表
  • 右侧 router-view:

    <el-main>
         <router-view :key="$route.path"></router-view>
    </el-main>
  • 组件:完成上述导航对应跳转组件的搭建

  • 路由:在index.js中完善路由跳转对应的路径和相关组件的引入,引入方式如下:

     { path: '/categories/create', component: CategoryEdit },
     /* 注意带参数跳转 props: true */
     { path: '/categories/edit/:id', component: CategoryEdit, props: true },
     { path: '/categories/list', component: CategoryList },

    ps:注意分清子路由

2 新建页面

不同类型的新建页面在组件的使用上有所不同,有以下几类:

  • 纯文本框input/textarea
  • 图片上传
  • 选择下拉框
  • 星型评级
  • 富文本编辑框:npm官网搜索 vue2-editor,安装后引入即可

在新建英雄页面,由于英雄属性的复杂性,需要用到Tabs标签页对英雄属性做一个分类,分为基本信息/技能/最佳搭档

3 编辑页面

在新建页面的基础上修改标题复用组件,其他部分基本和新建页面相同

  <h1>{{id ? '编辑':'新建'}}文章</h1>

4 列表页面

列表页面比较简单,就是简单的表格形式,根据内容不同选择在列表上展示的内容(文字、分类、图标等)

公共内容都包含_id、编辑/删除按钮,可以套用文档中的内容

    <h1>XX列表</h1>
    <el-table :data="items">
        <el-table-column prop="_id" label="ID" width="240"></el-table-column>
        <el-table-column prop="title" label="标题"></el-table-column>
        <el-table-column fixed="right" label="操作" width="180">
            <template slot-scope="scope">
            <el-button type="text" size="small" 
            @click="$router.push(`/articles/edit/${scope.row._id}`)">编辑</el-button>
            <el-button type="text" size="small" 
            @click="remove(scope.row)">删除</el-button>
            </template>
    </el-table-column>

5 其他细节问题

  • 页面整体撑满屏幕处理

    <el-container style="height: 100vh">
  • 菜单的高亮问题

    浏览器刷新后,这样设置使得菜单仍然可以定位到之前选中的路由

    <el-menu router :default-active="$route.path">
  • 阻止默认提交

    <el-form label-width="120px" @submit.native.prevent="save">
【资源介绍】 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 一 mongodb使用 1)命令函: (mongo:代表进入mongo环境) (show dbs :显示数据库) (db当前) (use goods :切换到goods) 2)Token令牌 : 就是一个加密的字符串 加密算法在。 权限管理 当第一次登陆以后生成一个令牌 (这个令牌是加密的) 设置有效期 用户第一次使用用户名登陆成功后,后端生成病返回给前端保存 令牌是有有限期的 亦可以伪造 所以要校验 nodejs 有加密和解-解密 步骤一:项目准备工作 1 vue create myprojct 创建项目 (myprojct 项目名字) 2 淘宝镜像源npm install -g cnpm(使用下载更快) 1)myproject安装 项目所需的各种依赖 1 npm install vue-resource --save -dev 2 npm install axios --save 3 npm install element-ui -S 4 npm install vuex --save 5 npm install animate.css --save 6 npm install -g babel 7 npm i core-js 2)mongodb安装 上传头像 mongo 先下载Npm i mullter 1mongodb文件夹:在mongodb index文件的作用引用 注意点当每次编写接口都需要在index.js 引入路由文件 以及router.use(文件路径,文件名) 3)引入公共css在public (reset文件夹名字)第要使用在public里面的index.html 引入css <link rel="stylesheet" href="css/reset.css"> <link href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"> 这一个是引入boootcss这个css 4)router.js 路由 1 定义(路由)组件 2 定义路由 3 创建 router 实例, 4 然后传 `routes` 配置 创建和挂载根实例。导出路由然后在min.js引入 在这个项目里面使用了嵌套路由注意和 LeftMenu.vue 关系 children 里面是路由嵌套 leftmenu后面细说 5)配置min.js store在后台管理系统里面是没有使用的 ``` 6)图片assets 7)在views创建 Register.vue Login.vue 404.vue项目 index.vue 1 注册页面 接口是user.js 登录页面 有有联系页面是myproject 的 http.js 和login.vue Authorization就是token当code===1时候 let targetUrl = this.$route.query.targetUrl || './Index' 代码解释:声明一个目标路由如果有目标地址就跳转到目标地址 没有就跳转到首页面Index.vue 保存token 2创建htttp.js 引入 loading和引入axios 使用loading和请求拦截和相应拦截环节和使用loading 当 请求数据code==1 就跳转到index.vue token校验 跳转到index.vue 后components里面再创建leftMenu.vue 和HeadNav.vue 具体看leftMenu以里面的嵌套路由 这两个文件夹引入到views的 Index.vue里面 使用import .. from ..引入切注册组件 HeadNav.vue :取出token校验 解码(没写此步骤)当点击退出删除token leftMenu.vue 里面有嵌套路由 足以逻辑的使用 children增加子路由步骤 1在 leftMenu.vue 下面cheildren 的 ·{ path: "FoundEdit", name: "编辑商品" }, 2找到router.js
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值