|
@@ -96,14 +96,15 @@
|
|
|
<span>{{ statusList.find(e => e.value === item.status)?.label }}</span>
|
|
|
</div>
|
|
|
<div>
|
|
|
- <span v-if="editStatus.indexOf(item.status)" class="font-size-15 color-primary" @click="handleActionClick(2, item)">修改面试</span>
|
|
|
+ <span v-if="editStatus.indexOf(item.status) !== -1" class="font-size-15 color-primary" @click="handleActionClick(2, item)">修改面试</span>
|
|
|
+ <span v-if="againStatus.indexOf(item.status) !== -1" class="font-size-15 color-primary" @click="handleActionClick(2, item)">重新邀约</span>
|
|
|
<v-menu>
|
|
|
<template v-slot:activator="{ props }">
|
|
|
<v-icon v-bind="props" class="mx-3" size="20" color="primary">mdi-dots-horizontal</v-icon>
|
|
|
</template>
|
|
|
<v-list>
|
|
|
<v-list-item
|
|
|
- v-for="(k, index) in actionItems"
|
|
|
+ v-for="(k, index) in actionItems(item.status)"
|
|
|
:key="index"
|
|
|
:value="index"
|
|
|
color="primary"
|
|
@@ -130,7 +131,7 @@
|
|
|
</v-card>
|
|
|
|
|
|
<!-- 修改面试 -->
|
|
|
- <CtDialog :visible="showInvite" :widthType="2" titleClass="text-h6" title="面试邀请" @close="handleClose" @submit="handleSubmit">
|
|
|
+ <CtDialog :visible="showInvite" :widthType="2" titleClass="text-h6" title="面试信息" @close="handleClose" @submit="handleSubmit">
|
|
|
<InvitePage v-if="showInvite" ref="inviteRef" :itemData="itemData" :position="positionItems"></InvitePage>
|
|
|
</CtDialog>
|
|
|
|
|
@@ -149,6 +150,7 @@ import Snackbar from '@/plugins/snackbar'
|
|
|
import { getJobAdvertised } from '@/api/enterprise'
|
|
|
import { dealDictArrayData } from '@/utils/position'
|
|
|
import { timesTampChange, getStartAndEndOfDay } from '@/utils/date'
|
|
|
+import cloneDeep from 'lodash/cloneDeep'
|
|
|
|
|
|
const cancelInvite = ref(false)
|
|
|
const showInvite = ref(false)
|
|
@@ -158,15 +160,13 @@ const cancelQuery = ref({
|
|
|
id: null,
|
|
|
reason: null
|
|
|
})
|
|
|
-const editStatus = ['99', '1', '0']
|
|
|
+const editStatus = ['1', '0'] // 修改面试状态
|
|
|
+const againStatus = ['98', '99'] // 重新邀约状态
|
|
|
const statusList = ref()
|
|
|
const itemData = ref({})
|
|
|
-// 状态
|
|
|
-const actionItems = ref([
|
|
|
- // { title: '沟通', value: 1 },
|
|
|
- // { title: '修改面试', value: 2 },
|
|
|
- { title: '取消面试', value: 3 },
|
|
|
- // { title: '面试记录', value: 4 }
|
|
|
+const actions = ref([
|
|
|
+ { title: '沟通', value: 1 },
|
|
|
+ { title: '面试记录', value: 4 }
|
|
|
])
|
|
|
const total = ref(0)
|
|
|
const query = ref({
|
|
@@ -182,6 +182,14 @@ const textItems = ref({
|
|
|
clearable: true
|
|
|
})
|
|
|
|
|
|
+// 操作状态
|
|
|
+// status:0待接受 1待面试 2即将面试 3已完成 4待反馈 5已反馈 98拒绝 99已取消
|
|
|
+const actionItems = (status) => {
|
|
|
+ const data = cloneDeep(actions.value)
|
|
|
+ if (status === '0') data.splice(-1, 0, { title: '取消面试', value: 3 })
|
|
|
+ return data
|
|
|
+}
|
|
|
+
|
|
|
// 状态字典
|
|
|
const getStatusList = async () => {
|
|
|
const { data } = await getDict('menduner_interview_invite_status')
|
|
@@ -251,7 +259,7 @@ getPositionList()
|
|
|
|
|
|
// 操作按钮
|
|
|
const handleActionClick = (value, item) => {
|
|
|
- // 修改
|
|
|
+ // 修改、重新邀约
|
|
|
if (value === 2) {
|
|
|
itemData.value = item
|
|
|
showInvite.value = true
|