lzj/校园管理系统搭建2

作者: lzj01231 | 来源:发表于2020-12-15 21:38 被阅读0次

建立学校管理模块

一、后台三步骤:

1、打开school-server文件,在db\models目录下创建school.js文件

添加代码:

const mongoose = require('mongoose')
const feld={
    name: String,
    //人物标签
    where:String,
    leixing: String
}
//自动添加更新时间创建时间:
let personSchema = new mongoose.Schema(feld, {timestamps: {createdAt: 'created', updatedAt: 'updated'}})
module.exports= mongoose.model('School',personSchema)

2、打开school-server下的routes目录的school.js

添加代码:

const router = require('koa-router')()
//建立模块,require(“../db/models/文件名”)
let Model = require("../db/school");
router.prefix('/school')

router.get('/', function (ctx, next) {
    ctx.body = 'this is a users response!'
})

//数据库增删改查
router.post('/add', async function (ctx, next) {
    console.log(ctx.request.body)
    let model = new Model(ctx.request.body);
    model = await model.save();
    console.log('user',model)
    ctx.body = model
})

router.post('/find', async function (ctx, next) {
    let models = await Model.
    find({})
    ctx.body = models
})

router.post('/get', async function (ctx, next) {
    // let users = await User.
    // find({})
    console.log(ctx.request.body)
    let model = await Model.find(ctx.request.body)
    console.log(model)
    ctx.body = model
})

router.post('/update', async function (ctx, next) {
    console.log(ctx.request.body)
    let pbj = await Model.update({ _id: ctx.request.body._id }, ctx.request.body);
    ctx.body = pbj
})
router.post('/delete', async function (ctx, next) {
    console.log(ctx.request.body)
    await Model.remove({ _id: ctx.request.body._id });
    ctx.body = 'shibai '
})
module.exports = router

3.在app.js中挂载路由:

const school = require('./routes/school')
app.use(school.routes(), school.allowedMethods())

二、前台三步骤:

打开school-admin文件,在src/views目录下创建一个school模块:


创建school模块

1.editor.vue为编辑文件,用于创建学校记录:

添加数据

editor:

<template>
  <div class="dashboard-container">
    <el-form ref="form" :model="form" label-width="80px">
      <el-form-item label="学校名称">
        <el-input v-model="form.name"></el-input>
      </el-form-item>
      <el-form-item label="位置">
        <el-input v-model="form.where"></el-input>
      </el-form-item>
      <el-form-item label="类型">
        <el-input v-model="form.leixing"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="onSubmit">立即创建</el-button>
        <el-button>取消</el-button>
      </el-form-item>

    </el-form>
  </div>
</template>

<script>
  import { mapGetters } from 'vuex'

  export default {
    name: 'school',
    computed: {
      ...mapGetters([
        'name'
      ])
    },
    data(){
      return{
        apiModel:'school',
        form:{}
      }
    },
    methods:{
      onSubmit(){
        console.log('222:', 222)
        if(this.form._id){
          this.$http.post(`/api/${this.apiModel}/update`,this.form).then(res => {
            console.log('bar:', res)
            this.$router.push({path:this.apiModel})
            this.form={}
          })
        }else
        {
          this.$http.post('/api/'+this.apiModel+'/add',this.form).then(res => {
            console.log('bar:', res)
            this.$router.push({path:this.apiModel})
            this.form={}
          })
        }
      }
    },
    mounted() {
      if(this.$route.query._id){
        this.$http.post('/api/'+this.apiModel+'/get',{_id:this.$route.query._id}).then(res => {
          if(res&&res.length>0){
            this.form = res[0]
          }
        })
      }
    }
  }
</script>

<style lang="scss" scoped>
  .dashboard {
    &-container {
      margin: 30px;
    }
    &-text {
      font-size: 30px;
      line-height: 46px;
    }
  }
</style>

2.index.vue为目录文件,用于显示结果;

index:

<template>
  <div class="dashboard-container">
    <el-table
      :data="users"
      style="width: 100%"
      :row-class-name="tableRowClassName">
      <!--      <el-table-column-->
      <!--        prop="_id"-->
      <!--        label="学校_id"-->
      <!--        width="180">-->
      <!--      </el-table-column>-->
      <el-table-column
        prop="name"
        label="学校名称"
        width="180">
      </el-table-column>
      <el-table-column
        prop="where"
        label="位置"
        width="180">
      </el-table-column>
      <el-table-column
        prop="leixing"
        label="类型">
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button
            size="mini"
            @click="handleEdit(scope.$index, scope.row)">编辑
          </el-button>
          <el-button
            size="mini"
            type="danger"
            @click="handleDelete(scope.$index, scope.row)">删除
          </el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
  import { mapGetters } from 'vuex'

  export default {
    name: 'school',
    computed: {
      ...mapGetters([
        'name'
      ])
    },
    data() {
      return {
        apiModel:'school',
        users: {}
      }
    },
    methods: {
      onSubmit() {
        console.log(123434)
      },
      handleEdit(index, item) {
        this.$router.push({ path: '/'+this.apiModel+'/editor', query: {_id:item._id} })
      },
      handleDelete(index, item) {
        this.$http.post('/api/'+this.apiModel+'/delete', item).then(res => {
          console.log('res:', res)
          this.findUser()
        })

      },
      findUser(){
        this.$http.post('/api/'+this.apiModel+'/find', this.user).then(res => {
          console.log('res:', res)
          this.users = res
        })
      }
    },
    mounted() {
      this.findUser()
    }
  }
</script>

<style lang="scss" scoped>
  .dashboard {
    &-container {
      margin: 30px;
    }

    &-text {
      font-size: 30px;
      line-height: 46px;
    }
  }
</style>

3.在index.js中添加路由:

index.js
{
    path: '/school',
    component: Layout,
    meta: { title: '学校管理', icon: 'example' },
    redirect: 'school',
    children: [{
      path: 'school',
      name: 'school',
      component: () => import('@/views/school'),
      meta: { title: '学校管理', icon: 'school' }
    },
      {
        path: 'editor',
        name: 'editor',
        component: () => import('@/views/school/editor'),
        meta: { title: '添加学校', icon: 'school' }
      }]
  },

相关文章

  • lzj/校园管理系统搭建2

    建立学校管理模块 一、后台三步骤: 1、打开school-server文件,在db\models目录下创建scho...

  • lzj/校园管理系统搭建3

    建立学院管理模块与学校管理建立连接 一、后台三步骤: 1、打开school-server文件,在db\models...

  • lzj/校园管理系统搭建4

    建立班级管理模块与学校、学院管理建立连接 一、后台三步骤: 1、打开school-server文件,在models...

  • lzj/校园管理系统搭建5

    一、后台三步骤: 1、打开school-server文件,在db\models目录下创建student.js文件:...

  • lzj/校园管理系统搭建6

    一、后台三步骤: 1、打开school-server文件,在db\models目录下创建teacher.js文件:...

  • lzj/校园管理系统搭建总结

    介绍 小型校园管理平台(教学实训)本项目的定位是后台集成方案,不太适合当基础模板来进行二次开发。因为本项目集成了很...

  • lzj/校园管理系统搭建1

    1.安装 nodejs[https://nodejs.org/en/] 2.安装 git[https://git-...

  • 若依(RuoYi)权限管理系统入门-搭建

    最近单位在搭建统一权限管理的系统,在网上看到了若依的开源系统,若依管理系统基于Spring boot搭建的权限管理...

  • 电商项目(三)

    (1)搭建前台系统。 (2)完成首页导航菜单。(学习jsonp) (3)完成CMS内容管理系统。 (4)完成首页大...

  • 2018-10-30

    如何搭建禅道bug管理环境 一、搭建前准备 1:搭建环境确定为Linux系统 2:去禅道官网下载对应的Linux禅...

网友评论

    本文标题:lzj/校园管理系统搭建2

    本文链接:https://www.haomeiwen.com/subject/asuigktx.html