Commit 239424b7 authored by Kittisak Maneewong's avatar Kittisak Maneewong
parents 16d37ebd ad8c5eed
import Vue from 'vue';
import VueRouter from 'vue-router';
import iView from 'iview';
Vue.use(VueRouter);
import AppLayout from './layouts/AppLayout.vue';
import EmployerLayout from './layouts/EmployerLayout.vue';
import Home from './views/Home.vue';
import Account from './views/Account.vue';
import Employer from './views/Employer.vue';
import LoginEmployer from './views/LoginEmployer.vue';
import PageNotFound from './views/PageNotFound.vue';
import RegisterEmployer from './views/RegisterEmployer';
import ManagejobEmployer from './views/managejob.vue';
import ConfigCompany from './views/ConfigCompany.vue';
import CreateJob from './views/CreateJob.vue';
import EditJob from './views/EditJob.vue';
import DetailJob from './views/DetailJob.vue';
import ShowJob from './views/ShowJob.vue';
import Page404 from './views/404.vue';
import Axios from 'axios';
import store from './store';
const router = new VueRouter({
mode: 'history',
routes: [
{
path: '/employer',
name: 'employerLayout',
component: EmployerLayout,
children: [
{
path: '',
name: 'Employer',
component: Employer,
meta: {
loginEmployer: true
}
},
{
path: 'login',
name: 'loginEmployer',
component: LoginEmployer
},
{
path: 'register',
name: 'registerEmployer',
component: RegisterEmployer
},
{
path: 'managejob',
name: 'managejobEmployer',
component: ManagejobEmployer,
meta: {
loginEmployer: true
}
},
{
path: 'createjob',
name: 'createjob',
component: CreateJob,
meta: {
loginEmployer: true
}
},
{
path: 'editjob/:id',
name: 'editJob',
component: EditJob,
meta: {
loginEmployer: true
}
},
{
path: 'configcompany',
name: 'configcompany',
component: ConfigCompany,
meta: {
loginEmployer: true
}
},
{
path: '*',
name: '404Employer',
component: PageNotFound
}
]
},
{
path: '/',
name: 'appLayout',
component: AppLayout,
children: [
{
path: '',
name: 'Home',
component: Home
},
{
path: 'showjob',
name: 'showjob',
component: ShowJob
},
{
path: 'detailjob/:id',
name: 'detailJob',
component: DetailJob
},
{
path: 'account',
name: 'account',
component: Account
},
{
path: '*',
name: 'pageNotFound',
component: Page404
}
]
}
]
})
router.beforeEach((to, from, next) => {
iView.LoadingBar.start();
if(to.matched.some(record => record.meta.requiredUser)) {
if(!localStorage.getItem('access_token')) {
next('/')
} else {
next()
}
} else if(to.matched.some(record => record.meta.loginEmployer)) {
if(!localStorage.getItem('access_token_employer')) {
next('/employer/login')
} else {
next ()
}
} else {
next()
}
})
router.afterEach(route => {
iView.LoadingBar.finish();
})
export default router
\ No newline at end of file
import Vue from 'vue';
import VueRouter from 'vue-router';
import iView from 'iview';
Vue.use(VueRouter);
import AppLayout from './layouts/AppLayout.vue';
import EmployerLayout from './layouts/EmployerLayout.vue';
import Home from './views/Home.vue';
import Account from './views/Account.vue';
import Employer from './views/Employer.vue';
import LoginEmployer from './views/LoginEmployer.vue';
import PageNotFound from './views/PageNotFound.vue';
import RegisterEmployer from './views/RegisterEmployer';
import ManagejobEmployer from './views/managejob.vue';
import ConfigCompany from './views/ConfigCompany.vue';
import CreateJob from './views/CreateJob.vue';
import EditJob from './views/EditJob.vue';
import DetailJob from './views/DetailJob.vue';
import ShowJob from './views/ShowJob.vue';
import Page404 from './views/404.vue';
import Axios from 'axios';
import store from './store';
const router = new VueRouter({
mode: 'history',
routes: [
{
path: '/employer',
name: 'employerLayout',
component: EmployerLayout,
children: [
{
path: '',
name: 'Employer',
component: Employer,
meta: {
loginEmployer: true
}
},
{
path: 'login',
name: 'loginEmployer',
component: LoginEmployer
},
{
path: 'register',
name: 'registerEmployer',
component: RegisterEmployer
},
{
path: 'managejob',
name: 'managejobEmployer',
component: ManagejobEmployer,
meta: {
loginEmployer: true
}
},
{
path: 'createjob',
name: 'createjob',
component: CreateJob,
meta: {
loginEmployer: true
}
},
{
path: 'editjob/:id',
name: 'editJob',
component: EditJob,
meta: {
loginEmployer: true
}
},
{
path: 'showapplicant',
name: 'showapplicant',
component: ShowApplicant,
meta: {
loginEmployer: true
}
},
{
path: 'configcompany',
name: 'configcompany',
component: ConfigCompany,
meta: {
loginEmployer: true
}
},
{
path: '*',
name: '404Employer',
component: PageNotFound
}
]
},
{
path: '/',
name: 'appLayout',
component: AppLayout,
children: [
{
path: '',
name: 'Home',
component: Home
},
{
path: 'showjob',
name: 'showjob',
component: ShowJob
},
{
path: 'detailjob/:id',
name: 'detailJob',
component: DetailJob
},
{
path: 'account',
name: 'account',
component: Account
},
{
path: '*',
name: 'pageNotFound',
component: Page404
}
]
}
]
})
router.beforeEach((to, from, next) => {
iView.LoadingBar.start();
if(to.matched.some(record => record.meta.requiredUser)) {
if(!localStorage.getItem('access_token')) {
next('/')
} else {
next()
}
} else if(to.matched.some(record => record.meta.loginEmployer)) {
if(!localStorage.getItem('access_token_employer')) {
next('/employer/login')
} else {
next ()
}
} else {
next()
}
})
router.afterEach(route => {
iView.LoadingBar.finish();
})
export default router
\ No newline at end of file
import Vue from 'vue';
import VueRouter from 'vue-router';
import iView from 'iview';
Vue.use(VueRouter);
import AppLayout from './layouts/AppLayout.vue';
import EmployerLayout from './layouts/EmployerLayout.vue';
import Home from './views/Home.vue';
import Account from './views/Account.vue';
import Employer from './views/Employer.vue';
import LoginEmployer from './views/LoginEmployer.vue';
import PageNotFound from './views/PageNotFound.vue';
import RegisterEmployer from './views/RegisterEmployer';
import ManagejobEmployer from './views/managejob.vue';
import ConfigCompany from './views/ConfigCompany.vue';
import CreateJob from './views/CreateJob.vue';
import EditJob from './views/EditJob.vue';
import DetailJob from './views/DetailJob.vue';
import ShowJob from './views/ShowJob.vue';
import Page404 from './views/404.vue';
import ShowApplicant from './views/showapplicant.vue';
import Axios from 'axios';
import store from './store';
const router = new VueRouter({
mode: 'history',
routes: [
{
path: '/employer',
name: 'employerLayout',
component: EmployerLayout,
children: [
{
path: '',
name: 'Employer',
component: Employer,
meta: {
loginEmployer: true
}
},
{
path: 'login',
name: 'loginEmployer',
component: LoginEmployer
},
{
path: 'register',
name: 'registerEmployer',
component: RegisterEmployer
},
{
path: 'managejob',
name: 'managejobEmployer',
component: ManagejobEmployer,
meta: {
loginEmployer: true
}
},
{
path: 'createjob',
name: 'createjob',
component: CreateJob,
meta: {
loginEmployer: true
}
},
{
path: 'editjob/:id',
name: 'editJob',
component: EditJob,
meta: {
loginEmployer: true
}
},
{
path: 'showapplicant',
name: 'showapplicant',
component: ShowApplicant,
meta: {
loginEmployer: true
}
},
{
path: 'configcompany',
name: 'configcompany',
component: ConfigCompany,
meta: {
loginEmployer: true
}
},
{
path: '*',
name: '404Employer',
component: PageNotFound
}
]
},
{
path: '/',
name: 'appLayout',
component: AppLayout,
children: [
{
path: '',
name: 'Home',
component: Home
},
{
path: 'showjob',
name: 'showjob',
component: ShowJob
},
{
path: 'detailjob/:id',
name: 'detailJob',
component: DetailJob
},
{
path: 'account',
name: 'account',
component: Account
},
{
path: '*',
name: 'pageNotFound',
component: Page404
}
]
}
]
})
router.beforeEach((to, from, next) => {
iView.LoadingBar.start();
if(to.matched.some(record => record.meta.requiredUser)) {
if(!localStorage.getItem('access_token')) {
next('/')
} else {
next()
}
} else if(to.matched.some(record => record.meta.loginEmployer)) {
if(!localStorage.getItem('access_token_employer')) {
next('/employer/login')
} else {
next ()
}
} else {
next()
}
})
router.afterEach(route => {
iView.LoadingBar.finish();
})
export default router
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">จัดการข้อมูลงาน</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">จัดการข้อมูลงาน</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'รหัสงาน', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'ประเภทธุรกิจ', value: 'typejob', align: 'center' },
{ text: 'ตำแหน่งงาน', value: 'position', align: 'center' },
{ text: 'ค่าตอบแทน/เงินเดือน', value: 'salary', align: 'center' },
{ text: 'Action', value: 'action', align: 'center' }
],
items: []
}
},
methods: {
deleteJob(id) {
axios.delete(`/api/jobs/${id}`)
.then(res => {
const i = this.items.findIndex(x => x.job_id == id)
this.items.splice(i, 1);
this.getData()
})
.catch(err => {console.log(err.response)})
},
getData () {
this.$store.dispatch('checkEmployer')
.then(res => {
axios.get(`/api/jobs/${res.id}`)
.then(res => {
console.log(res)
this.items = []
const jobs = res.data.jobs
for (let i = 0; i < jobs.length; i++) {
this.items.push({
id: i+1,
topic: jobs[i].job_title,
typejob: jobs[i].job_type,
position: jobs[i].department,
salary: jobs[i].salary,
job_id: jobs[i].id
})
}
})
.catch(err => {
console.log(err.response)
})
})
.catch(err => {console.log(err.response)})
}
},
beforeMount () {
this.getData()
}
}
</script>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">จัดการข้อมูลงาน</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'รหัสงาน', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'ประเภทธุรกิจ', value: 'typejob', align: 'center' },
{ text: 'ตำแหน่งงาน', value: 'position', align: 'center' },
{ text: 'ค่าตอบแทน/เงินเดือน', value: 'salary', align: 'center' },
{ text: 'Action', value: 'action', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">จัดการข้อมูลงาน</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'ชื่อผุ้สมัคร', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'ประเภทธุรกิจ', value: 'typejob', align: 'center' },
{ text: 'ตำแหน่งงาน', value: 'position', align: 'center' },
{ text: 'ค่าตอบแทน/เงินเดือน', value: 'salary', align: 'center' },
{ text: 'Action', value: 'action', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">จัดการข้อมูลงาน</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'ชื่อผุ้สมัคร', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'อีเมล', value: 'typejob', align: 'center' },
{ text: 'ตำแหน่งงาน', value: 'position', align: 'center' },
{ text: 'ค่าตอบแทน/เงินเดือน', value: 'salary', align: 'center' },
{ text: 'Action', value: 'action', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">จัดการข้อมูลงาน</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'ชื่อผุ้สมัคร', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'อีเมล', value: 'typejob', align: 'center' },
{ text: 'ตำแหน่งงาน', value: 'position', align: 'center' },
{ text: 'ค่าตอบแทน/เงินเดือน', value: 'salary', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">ข้อมุลผู้สมัคร</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'ชื่อผุ้สมัคร', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'อีเมล', value: 'typejob', align: 'center' },
{ text: 'ตำแหน่งงาน', value: 'position', align: 'center' },
{ text: 'ค่าตอบแทน/เงินเดือน', value: 'salary', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">ข้อมุลผู้สมัคร</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'ชื่อผุ้สมัคร', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'อีเมล', value: 'typejob', align: 'center' },
{ text: 'ระดับการศึกษา', value: 'position', align: 'center' },
{ text: 'ค่าตอบแทน/เงินเดือน', value: 'salary', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
<template>
<v-card flat>
<h1 class="orange--text">ข้อมุลผู้สมัคร</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'ชื่อผุ้สมัคร', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'อีเมล', value: 'typejob', align: 'center' },
{ text: 'ระดับการศึกษา', value: 'position', align: 'center' },
{ text: 'สาขา', value: 'salary', align: 'center' },
{ text: 'คณะ', value: 'salary', align: 'center' },
{ text: 'สถาบัน', value: 'salary', align: 'center' },
{ text: 'gpax', value: 'salary', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
This diff is collapsed.
...@@ -20,6 +20,8 @@ import EditJob from './views/EditJob.vue'; ...@@ -20,6 +20,8 @@ import EditJob from './views/EditJob.vue';
import DetailJob from './views/DetailJob.vue'; import DetailJob from './views/DetailJob.vue';
import ShowJob from './views/ShowJob.vue'; import ShowJob from './views/ShowJob.vue';
import Page404 from './views/404.vue'; import Page404 from './views/404.vue';
import ShowApplicant from './views/showapplicant.vue';
import Axios from 'axios'; import Axios from 'axios';
import store from './store'; import store from './store';
...@@ -73,6 +75,14 @@ const router = new VueRouter({ ...@@ -73,6 +75,14 @@ const router = new VueRouter({
loginEmployer: true loginEmployer: true
} }
}, },
{
path: 'showapplicant',
name: 'showapplicant',
component: ShowApplicant,
meta: {
loginEmployer: true
}
},
{ {
path: 'configcompany', path: 'configcompany',
name: 'configcompany', name: 'configcompany',
......
<template>
<v-card flat>
<h1 class="orange--text">ข้อมุลผู้สมัคร</h1>
<v-card-title>
<v-spacer></v-spacer>
<v-flex sm4 xs12>
<v-text-field
v-model="search"
append-icon="search"
label="ค้นหา"
single-line
hide-details
></v-text-field>
</v-flex>
</v-card-title>
<v-data-table
:headers="headers"
:items="items"
class="elevation-1"
:search="search"
rows-per-page-text="จำนวนเเถวต่อหน้า"
no-results-text="ไม่พบข้อมูล"
no-data-text="ไม่มีข้อมูล"
>
<template v-slot:items="props">
<td width="10%" class="text-sm-center">{{ props.item.id }}</td>
<td width="30%" class="text-sm-left">{{ props.item.topic }}</td>
<td width="15%" class="text-sm-center">{{ props.item.typejob }}</td>
<td width="20%" class="text-sm-center">{{ props.item.position }}</td>
<td width="5%" class="text-sm-center">{{ props.item.salary }}</td>
<td width="20%" class="text-sm-center">
<v-layout row wrap justify-center>
<v-btn depressed class="mx-1" fab outline small color="cyan" @click="$router.push(`/employer/editjob/${props.item.job_id}`)">
<v-icon>edit</v-icon>
</v-btn>
<v-btn depressed class="mx-1" fab outline small color="red" @click="deleteJob(props.item.job_id)">
<v-icon>delete</v-icon>
</v-btn>
</v-layout>
</td>
</template>
</v-data-table>
<v-layout row wrap justify-center>
<v-btn color="error" class="text-sm-center text-xs-center" dark @click="$router.push('/employer')">ย้อนกลับ</v-btn>
</v-layout>
</v-card>
</template>
<script>
export default {
data () {
return {
search: '',
headers: [
{ text: 'ชื่อผุ้สมัคร', value: 'id', align: 'center' },
{ text: 'หัวข้องาน', value: 'topic', align: 'center' },
{ text: 'อีเมล', value: 'typejob', align: 'center' },
{ text: 'ระดับการศึกษา', value: 'position', align: 'center' },
{ text: 'สาขา', value: 'salary', align: 'center' },
{ text: 'คณะ', value: 'salary', align: 'center' },
{ text: 'สถาบัน', value: 'salary', align: 'center' },
{ text: 'gpax', value: 'salary', align: 'center' }
],
items: []
}
}
}
</script>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment