|
@@ -1,11 +1,20 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
<div class="text-end">
|
|
|
- <v-btn v-if="tab === '2'" color="primary" :disabled="selected.length ? false : true" variant="tonal" @click="handleAction('all', 0, {})">不合适</v-btn>
|
|
|
- <v-btn v-if="tab === '3'" color="primary" :disabled="selected.length ? false : true" variant="tonal" @click="handleAction('all', 1, {})">入职</v-btn>
|
|
|
+ <v-btn v-if="tab === 1" color="primary" :disabled="selected.length ? false : true" variant="tonal" @click="handleAction('all', 0, {})">不合适</v-btn>
|
|
|
+ <v-btn v-if="tab === 2" color="primary" :disabled="selected.length ? false : true" variant="tonal" @click="handleAction('all', 1, {})">入职</v-btn>
|
|
|
+ </div>
|
|
|
+ <div class="mr-5 d-flex align-center" v-if="tab === 0">
|
|
|
+ <div style="width: 200px;">
|
|
|
+ <v-radio-group v-model="radio" inline style="height: 28px;" @update:modelValue="handleChangeSelected">
|
|
|
+ <v-radio v-model="radio" label="已报名" value="0" hide-details density="compact" class="mr-3"></v-radio>
|
|
|
+ <v-radio v-model="radio" label="已查看" value="1" hide-details density="compact"></v-radio>
|
|
|
+ </v-radio-group>
|
|
|
+ </div>
|
|
|
+ <div class="reset-text cursor-pointer ml-3" @click="handleReset">重置</div>
|
|
|
</div>
|
|
|
<v-data-table
|
|
|
- class="mt-3"
|
|
|
+ class="mt-5"
|
|
|
v-model="selected"
|
|
|
:items="items"
|
|
|
:headers="headers"
|
|
@@ -28,12 +37,12 @@
|
|
|
<span class="defaultLink ml-3">{{ item?.person?.name }}</span>
|
|
|
</div>
|
|
|
</template>
|
|
|
- <!-- 已报名:查看简历,已邀约:不合适,已发offer:入职,已入职:结算 -->
|
|
|
<template v-slot:item.actions="{ item }">
|
|
|
- <v-btn v-if="tab === '0' && item.url" color="primary" variant="text" @click="handlePreviewResume(item)">查看附件</v-btn>
|
|
|
- <v-btn v-if="tab === '2'" color="primary" variant="text" @click="handleAction('', 0, item)">不合适</v-btn>
|
|
|
- <v-btn v-if="tab === '1'" color="primary" variant="text" @click="handleAction('', 1, item)">入职</v-btn>
|
|
|
- <v-btn v-if="tab === '4'" color="primary" variant="text" @click="handleSettlement(item)">结算</v-btn>
|
|
|
+ <v-btn v-if="tab === 0 && item.url" color="primary" variant="text" @click="handlePreviewResume(item)">查看附件</v-btn>
|
|
|
+ <v-btn v-if="tab === 1" color="primary" variant="text" @click="handleAction('', 0, item)">不合适</v-btn>
|
|
|
+ <v-btn v-if="tab === 2" color="primary" variant="text" @click="handleAction('', 1, item)">入职</v-btn>
|
|
|
+ <v-btn v-if="tab === 3" color="primary" variant="text" @click="handleSettlement(item)">结算</v-btn>
|
|
|
+ <v-btn v-if="radio === '1'" color="primary" variant="text">邀请面试</v-btn>
|
|
|
</template>
|
|
|
</v-data-table>
|
|
|
</div>
|
|
@@ -49,10 +58,11 @@ import Snackbar from '@/plugins/snackbar'
|
|
|
import { useUserStore } from '@/store/user'
|
|
|
|
|
|
const { t } = useI18n()
|
|
|
+const radio = ref()
|
|
|
const userStore = useUserStore()
|
|
|
-const emit = defineEmits(['refresh'])
|
|
|
+const emit = defineEmits(['refresh', 'radio', 'reset'])
|
|
|
const props = defineProps({
|
|
|
- tab: String,
|
|
|
+ tab: Number,
|
|
|
items: Array,
|
|
|
tabList: Array
|
|
|
})
|
|
@@ -73,7 +83,7 @@ const headers = ref([
|
|
|
{ title: '最高学历', key: 'person.eduName', sortable: false },
|
|
|
{ title: '岗位薪资', key: 'job', value: item => `${item.job.payFrom}-${item.job.payTo}/${item.job.payName}`, sortable: false },
|
|
|
{ title: '推荐人', key: 'recommendPerson', value: item => item?.recommendPerson?.name, sortable: false },
|
|
|
- { title: '进度', key: 'status', sortable: false, value: item => props.tabList.find(e => e.value === item.status).label },
|
|
|
+ { title: '进度', key: 'status', sortable: false, value: item => props.tabList.find(e => e.value === Number(item.status)).label },
|
|
|
{ title: '结果反馈', key: '', sortable: false },
|
|
|
{ title: '操作', value: 'actions' }
|
|
|
])
|
|
@@ -116,6 +126,16 @@ const handlePreviewResume = async ({ url, id }) => {
|
|
|
await hireJobCvRelLook(id)
|
|
|
previewFile(url)
|
|
|
}
|
|
|
+
|
|
|
+// 已报名、已查看
|
|
|
+const handleChangeSelected = (e) => {
|
|
|
+ emit('radio', e)
|
|
|
+}
|
|
|
+
|
|
|
+const handleReset = () => {
|
|
|
+ radio.value = ''
|
|
|
+ emit('reset')
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
@@ -123,7 +143,15 @@ const handlePreviewResume = async ({ url, id }) => {
|
|
|
background-color: #f7f8fa !important;
|
|
|
}
|
|
|
:deep(.v-selection-control__input) {
|
|
|
- // color: var(--v-primary-base) !important;
|
|
|
- color: #767778;
|
|
|
+ color: var(--v-primary-base) !important;
|
|
|
+ // color: #767778;
|
|
|
+}
|
|
|
+
|
|
|
+.reset-text {
|
|
|
+ font-size: 14px;
|
|
|
+ color: var(--color-666);
|
|
|
+ &:hover {
|
|
|
+ color: var(--v-primary-base);
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|