Created
March 12, 2020 02:20
-
-
Save fbryo21/63e254260e6806500f42037d84404358 to your computer and use it in GitHub Desktop.
an employee management app
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Vue from 'vue' | |
import Router from 'vue-router' | |
import Home from '@/components/Home' | |
import ViewEmployee from '@/components/ViewEmployee' | |
import NewEmployee from '@/components/NewEmployee' | |
import EditEmployee from '@/components/EditEmployee' | |
Vue.use(Router) | |
export default new Router({ | |
routes: [ | |
{ | |
path: '/', | |
name: 'Home', | |
component: Home | |
}, | |
{ | |
path: '/new', | |
name: 'new-employee', | |
component: NewEmployee | |
}, | |
{ | |
path: '/:employee_id', | |
name: 'view-employee', | |
component: ViewEmployee | |
}, | |
{ | |
path: '/edit/:employee_id', | |
name: 'edit-employee', | |
component: EditEmployee | |
} | |
] | |
}) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<template> | |
<div id="view-employee"> | |
<ul class="collection with-header"> | |
<li class="collection-header"><h4>{{name}}</h4></li> | |
<li class="collection-item">Employee ID#: {{employee_id}}</li> | |
<li class="collection-item">Department: {{dept}}</li> | |
<li class="collection-item">Position: {{position}}</li> | |
</ul> | |
<router-link to="/" class="btn grey">Back</router-link> | |
<button @click="deleteEmployee" class="btn red">Delete</button> | |
<div class="fixed-action-btn"> | |
<router-link v-bind:to="{ name: 'edit-employee', params: { employee_id: employee_id }}" class="btn-floating btn-large red"> | |
<i class="fa fa-pencil"></i> | |
</router-link> | |
</div> | |
</div> | |
</template> | |
<script> | |
import db from './firebaseInit' | |
export default { | |
name: 'view-employee', | |
data () { | |
return { | |
employee_id: null, | |
name: null, | |
dept: null, | |
position: null | |
} | |
}, | |
beforeRouteEnter (to, from, next) { | |
db.collection('employees').where('employee_id', '==', to.params.employee_id).get().then((querySnapshot) => { | |
querySnapshot.forEach((doc) => { | |
next(vm => { | |
vm.employee_id = doc.data().employee_id | |
vm.name = doc.data().name | |
vm.dept = doc.data().dept | |
vm.position = doc.data().position | |
}) | |
}) | |
}) | |
}, | |
watch: { | |
'$route': 'fetchData' | |
}, | |
methods: { | |
fetchData () { | |
db.collection('employees').where('employee_id', '==', this.$route.params.employee_id).get().then((querySnapshot) => { | |
querySnapshot.forEach((doc) => { | |
this.employee_id = doc.data().employee_id | |
this.name = doc.data().name | |
this.dept = doc.data().dept | |
this.position = doc.data().position | |
}) | |
}) | |
}, | |
deleteEmployee () { | |
if(confirm ('Are you sure?')) { | |
db.collection('employees').where('employee_id', '==', this.$route.params.employee_id).get().then((querySnapshot) => { | |
querySnapshot.forEach((doc) => { | |
doc.ref.delete(); | |
this.$router.push('/') | |
}) | |
}) | |
} | |
} | |
} | |
} | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment