VUE實(shí)訓(xùn)二

目標(biāo):學(xué)校管理

image.png

一、后臺三步驟:

1焰轻、打開projectName文件,在models目錄下創(chuàng)建school.js文件,接著文件操作:

constmongoose=require('mongoose')constfeld={name:String,//人物標(biāo)簽where:String,leixing:String}//自動(dòng)添加更新時(shí)間創(chuàng)建時(shí)間:letpersonSchema=newmongoose.Schema(feld,{timestamps:{createdAt:'created',updatedAt:'updated'}})module.exports=mongoose.model('School',personSchema)

2礼仗、在routes目錄下添加school.js:

projectName/routes/school.js:

constrouter=require('koa-router')()//建立模塊,require(“../db/models/文件名”)letModel=require("../db/models/school");router.prefix('/school')router.get('/',function(ctx,next){ctx.body='this is a users response!'})//數(shù)據(jù)庫增刪改查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({})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中加上school模塊的路由:

添加部分為:

image.png

projectName/app.js:

constKoa=require('koa')constapp=newKoa()constviews=require('koa-views')constjson=require('koa-json')constonerror=require('koa-onerror')constbodyparser=require('koa-bodyparser')constlogger=require('koa-logger')constmongoose=require('mongoose')constdbconfig=require('./db/config')mongoose.connect(dbconfig.dbs,{useNewUrlParser:true,useUnifiedTopology:true})constdb=mongoose.connectiondb.on('error',console.error.bind(console,'connection error:'));db.once('open',function(){console.log('mongoose 連接成功')});// error handleronerror(app)// middlewaresapp.use(bodyparser({enableTypes:['json','form','text']}))app.use(json())app.use(logger())app.use(require('koa-static')(__dirname+'/public'))app.use(views(__dirname+'/views',{extension:'pug'}))// loggerapp.use(async(ctx,next)=>{conststart=newDate()awaitnext()constms=newDate()-startconsole.log(`${ctx.method} ${ctx.url} - ${ms}ms`)})constindex=require('./routes/index')app.use(index.routes(),index.allowedMethods())constusers=require('./routes/users')app.use(users.routes(),users.allowedMethods())constschool=require('./routes/school')app.use(school.routes(),school.allowedMethods())// error-handling// routesapp.on('error',(err,ctx)=>{console.error('server error',err,ctx)});module.exports=app

二元践、從前端(vue-admin-template)添加學(xué)校模塊

1、在src/views目錄下添加school目錄(模塊)童谒,如圖所示:

image.png

并在school目錄下創(chuàng)建vue文件单旁。

1.editor.vue為編輯文件,用于創(chuàng)建學(xué)校記錄惠啄;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 立即創(chuàng)建? ? ? ? 取消? ? ? ? ? ?
? 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]? ? ? ? ? }? ? ? ? })? ? ? }? ? }? }? .dashboard {? ? &-container {? ? ? margin: 30px;? ? }? ? &-text {? ? ? font-size: 30px;? ? ? line-height: 46px;? ? }? }

2.index.vue為目錄文件慎恒,用于顯示結(jié)果任内;

<template><divclass="dashboard-container"><el-table:data="users"style="width: 100%":row-class-name="tableRowClassName"><!--? ? ? <el-table-column--><!--? ? ? ? prop="_id"--><!--? ? ? ? label="學(xué)校_id"--><!--? ? ? ? width="180">--><!--? ? ? </el-table-column>--><el-table-columnprop="name"label="學(xué)校名稱"width="180"></el-table-column><el-table-columnprop="where"label="位置"width="180"></el-table-column><el-table-columnprop="leixing"label="類型"></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: '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><stylelang="scss"scoped>.dashboard {? ? &-container {? ? ? margin: 30px;? ? }? ? &-text {? ? ? font-size: 30px;? ? ? line-height: 46px;? ? }? }</style>

3.在src里面的router/index.js中添加路由:

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市融柬,隨后出現(xiàn)的幾起案子死嗦,更是在濱河造成了極大的恐慌,老刑警劉巖粒氧,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件越除,死亡現(xiàn)場離奇詭異,居然都是意外死亡外盯,警方通過查閱死者的電腦和手機(jī)摘盆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饱苟,“玉大人孩擂,你說我怎么就攤上這事∠浒荆” “怎么了类垦?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長城须。 經(jīng)常有香客問我蚤认,道長,這世上最難降的妖魔是什么糕伐? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任砰琢,我火速辦了婚禮,結(jié)果婚禮上良瞧,老公的妹妹穿的比我還像新娘陪汽。我一直安慰自己,他們只是感情好莺褒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布掩缓。 她就那樣靜靜地躺著,像睡著了一般遵岩。 火紅的嫁衣襯著肌膚如雪你辣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天尘执,我揣著相機(jī)與錄音舍哄,去河邊找鬼。 笑死誊锭,一個(gè)胖子當(dāng)著我的面吹牛表悬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丧靡,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蟆沫,長吁一口氣:“原來是場噩夢啊……” “哼籽暇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起饭庞,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤戒悠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后舟山,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绸狐,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年累盗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了寒矿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡若债,死狀恐怖符相,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蠢琳,我是刑警寧澤主巍,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站挪凑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏逛艰。R本人自食惡果不足惜躏碳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望散怖。 院中可真熱鬧菇绵,春花似錦、人聲如沸镇眷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欠动。三九已至永乌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間具伍,已是汗流浹背翅雏。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留人芽,地道東北人望几。 一個(gè)月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像萤厅,于是被迫代替她去往敵國和親橄抹。 傳聞我的和親對象是個(gè)殘疾皇子靴迫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353

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