2020-12-24

目標:創(chuàng)建班級管理模塊(班級和學(xué)院、學(xué)校關(guān)聯(lián)起來)

一贫导、后臺三步驟:

1、打開projectName文件蟆盹,在models目錄下創(chuàng)建classs.js文件孩灯,接著文件操作:

constmongoose=require('mongoose')constSchema=mongoose.Schemaconstfeld={name:String,//人物標簽level:String,renshu:Number,school:{type:Schema.Types.ObjectId,ref:'School'},academy:{type:Schema.Types.ObjectId,ref:'Academy'}}//自動添加更新時間創(chuàng)建時間:letpersonSchema=newmongoose.Schema(feld,{timestamps:{createdAt:'created',updatedAt:'updated'}})module.exports=mongoose.model('Classs',personSchema)

2、找到projectName下的routes目錄逾滥,創(chuàng)建classs.js文件:

constrouter=require('koa-router')()letModel=require("../db/models/classs");router.prefix('/classs')router.get('/',function(ctx,next){ctx.body='this is a users response!'})router.post('/add',asyncfunction(ctx,next){console.log(ctx.request.body)letmodel=newModel(ctx.request.body);model=awaitmodel.save();console.log('user',model)ctx.body=model})router.post('/find',asyncfunction(ctx,next){letmodels=awaitModel.find({}).populate('academy').populate('school')ctx.body=models})router.post('/get',asyncfunction(ctx,next){// let users = await User.// find({})console.log(ctx.request.body)letmodel=awaitModel.find(ctx.request.body)console.log(model)ctx.body=model})router.post('/update',asyncfunction(ctx,next){console.log(ctx.request.body)letpbj=awaitModel.update({_id:ctx.request.body._id},ctx.request.body);ctx.body=pbj})router.post('/delete',asyncfunction(ctx,next){console.log(ctx.request.body)awaitModel.remove({_id:ctx.request.body._id});ctx.body='shibai '})module.exports=router

3.在app.js中掛載路由:

constclasss=require('./routes/classs')app.use(classs.routes(),classs.allowedMethods())

二峰档、前臺三步驟:

打開vue-admin-template-master文件,在src/views目錄下創(chuàng)建一個classs模塊寨昙,并在academy目錄下創(chuàng)建vue文件讥巡。

1.editor.vue為編輯文件,用于創(chuàng)建班級記錄舔哪;

班級添加.png

<template><divclass="dashboard-container"><el-formref="form":model="form"label-width="80px"><el-form-itemlabel="所屬學(xué)校"><el-selectv-model="form.school"placeholder="請選擇"@change="schoolChange"><el-optionv-for="item in schools":key="item._id":label="item.name":value="item._id"></el-option></el-select></el-form-item><!--? ? ? 編輯框:學(xué)院選擇列表--><el-form-itemlabel="所屬學(xué)院"><el-selectv-model="form.academy"placeholder="請選擇"><el-optionv-for="item in academys":key="item._id":label="item.name":value="item._id"></el-option></el-select></el-form-item><el-form-itemlabel="班級名稱"><el-inputv-model="form.name"></el-input></el-form-item><el-form-itemlabel="專業(yè)"><el-inputv-model="form.level"></el-input></el-form-item><el-form-itemlabel="人數(shù)"><el-inputv-model="form.renshu"></el-input></el-form-item><el-form-item><el-buttontype="primary"@click="onSubmit">立即創(chuàng)建</el-button><el-button>取消</el-button></el-form-item></el-form></div></template><script>import { mapGetters } from 'vuex'? export default {? ? name: 'classs',? ? computed: {? ? ? ...mapGetters([? ? ? ? 'name'? ? ? ])? ? },? ? data(){? ? ? return{? ? ? ? schools:[],? ? ? ? academys:[],? ? ? ? //列表內(nèi)容? ? ? ? options: [? ? ? ? ],? ? ? ? apiModel:'classs',? ? ? ? form:{}? ? ? }? ? },? ? methods:{? ? ? onSubmit(){? ? ? ? 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={}? ? ? ? ? })? ? ? ? }? ? ? },? ? ? schoolChange(val1){? ? ? ? //顯示學(xué)院選擇欄目? ? ? ? this.$http.post('/api/academy/get',{school:val1}).then(res => {? ? ? ? ? if(res&&res.length>0){? ? ? ? ? ? this.academys = res? ? ? ? ? ? console.log('res:', res)? ? ? ? ? }? ? ? ? })? ? ? }? ? },? ? 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]? ? ? ? ? ? this.schoolChange(this.form.school)? ? ? ? ? }? ? ? ? })? ? ? }? ? ? //顯示學(xué)校選擇欄目? ? ? this.$http.post('/api/school/find').then(res => {? ? ? ? if(res&&res.length>0){? ? ? ? ? this.schools = res? ? ? ? ? console.log('res:', res)? ? ? ? }? ? ? })? ? }? }</script><stylelang="scss"scoped>.dashboard {? ? &-container {? ? ? margin: 30px;? ? }? ? &-text {? ? ? font-size: 30px;? ? ? line-height: 46px;? ? }? }</style>

2.index.vue為目錄文件欢顷,用于顯示結(jié)果;

班級管理.png

<template><divclass="dashboard-container"><el-table:data="users"style="width: 100%":row-class-name="tableRowClassName"><el-table-columnprop="name"label="班級名稱"width="180"></el-table-column><el-table-columnprop="level"label="專業(yè)"width="180"></el-table-column><el-table-columnprop="renshu"label="人數(shù)"></el-table-column><!--? ? ? 列表添加項目

--><el-table-columnprop="school"label="學(xué)校名稱"width="180"><templateslot-scope="scope"><spanclass=""v-if="scope.row.school"><el-tag:type="scope.row.school.name === '深圳信息職業(yè)技術(shù)學(xué)院' ? 'primary' : 'success'"disable-transitions>{{scope.row.school.name}}</el-tag></span></template></el-table-column><el-table-columnprop="academy"label="學(xué)院名稱"width="180"><templateslot-scope="scope"><spanclass=""v-if="scope.row.academy"><el-tag:type="scope.row.academy.name === '軟件學(xué)院' ? 'primary' : 'success'"disable-transitions>{{scope.row.academy.name}}</el-tag></span></template></el-table-column><el-table-columnlabel="操作"><templateslot-scope="scope"><el-buttonsize="mini"@click="handleEdit(scope.$index, scope.row)">編輯</el-button><el-buttonsize="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: 'classs',? ? computed: {? ? ? ...mapGetters([? ? ? ? 'name'? ? ? ])? ? },? ? data() {? ? ? return {? ? ? ? apiModel:'classs',? ? ? ? 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><stylelang="scss"scoped>.dashboard {? ? &-container {? ? ? margin: 30px;? ? }? ? &-text {? ? ? font-size: 30px;? ? ? line-height: 46px;? ? }? }</style>

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

{path:'/classs',component:Layout,meta:{title:'班級管理',icon:'example'},redirect:'/classs',children:[{path:'classs',name:'classs',component:()=>import('@/views/classs'),meta:{title:'班級管理',icon:'classs'}},{path:'editor',name:'editor',component:()=>import('@/views/classs/editor'),meta:{title:'添加班級',icon:'classs'}}]},

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捉蚤,一起剝皮案震驚了整個濱河市抬驴,隨后出現(xiàn)的幾起案子炼七,更是在濱河造成了極大的恐慌,老刑警劉巖布持,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豌拙,死亡現(xiàn)場離奇詭異,居然都是意外死亡题暖,警方通過查閱死者的電腦和手機按傅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胧卤,“玉大人逞敷,你說我怎么就攤上這事」嗦拢” “怎么了推捐?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長侧啼。 經(jīng)常有香客問我牛柒,道長,這世上最難降的妖魔是什么痊乾? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任皮壁,我火速辦了婚禮,結(jié)果婚禮上哪审,老公的妹妹穿的比我還像新娘蛾魄。我一直安慰自己,他們只是感情好湿滓,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布滴须。 她就那樣靜靜地躺著,像睡著了一般叽奥。 火紅的嫁衣襯著肌膚如雪扔水。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天朝氓,我揣著相機與錄音魔市,去河邊找鬼。 笑死赵哲,一個胖子當著我的面吹牛待德,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枫夺,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼将宪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涧偷,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毙死,沒想到半個月后燎潮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡扼倘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年确封,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片再菊。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡爪喘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纠拔,到底是詐尸還是另有隱情秉剑,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布稠诲,位于F島的核電站侦鹏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏臀叙。R本人自食惡果不足惜略水,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劝萤。 院中可真熱鬧渊涝,春花似錦、人聲如沸床嫌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽厌处。三九已至煤傍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嘱蛋,已是汗流浹背蚯姆。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洒敏,地道東北人龄恋。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像凶伙,于是被迫代替她去往敵國和親郭毕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 目標:創(chuàng)建班級管理模塊(班級和學(xué)院函荣、學(xué)校關(guān)聯(lián)起來) 一显押、后臺三步驟: 1扳肛、在db->models目錄下創(chuàng)建clas...
    小甜甜甜甜椒閱讀 344評論 0 0
  • 目標:創(chuàng)建班級管理模塊(班級和學(xué)院、學(xué)校關(guān)聯(lián)起來) 一乘碑、后臺三步驟: 1挖息、打開projectName文件,在mod...
    不留遺憾_dd5b閱讀 116評論 0 0
  • ### 1.安裝 nodejs ### 2.安裝 git ### 3.下載 [vue-element-admin]...
    gogogo_e6cf閱讀 356評論 0 0
  • 目標:創(chuàng)建學(xué)生管理模塊(學(xué)生和班級兽肤、學(xué)院套腹、學(xué)校關(guān)聯(lián)起來) 一、后臺三步驟: 1资铡、在db->models目錄下創(chuàng)建s...
    小甜甜甜甜椒閱讀 209評論 0 0
  • 實訓(xùn)(實訓(xùn)四) projectName文件电禀,在models目錄下創(chuàng)建classs.js文件 const mongo...
    蘇芷婷閱讀 255評論 0 0