|
@@ -58,9 +58,9 @@
|
|
style="height: 100vh; overflow: hidden;"
|
|
style="height: 100vh; overflow: hidden;"
|
|
temporary
|
|
temporary
|
|
location="right"
|
|
location="right"
|
|
- width="700"
|
|
|
|
|
|
+ width="300"
|
|
>
|
|
>
|
|
- <interviewSchedule></interviewSchedule>
|
|
|
|
|
|
+ <interviewSchedule :dataList="invitePageList" @handleMore="interviewScheduleMore()"></interviewSchedule>
|
|
</v-navigation-drawer>
|
|
</v-navigation-drawer>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -71,12 +71,15 @@ import { ref } from 'vue'
|
|
import { uploadFile } from '@/api/common'
|
|
import { uploadFile } from '@/api/common'
|
|
import { previewFile } from '@/utils'
|
|
import { previewFile } from '@/utils'
|
|
import { useRouter } from 'vue-router'
|
|
import { useRouter } from 'vue-router'
|
|
|
|
+import { useRoute } from 'vue-router'; const route = useRoute()
|
|
import { getPersonResumeCv, savePersonResumeCv, deletePersonResumeCv } from '@/api/recruit/personal/resume'
|
|
import { getPersonResumeCv, savePersonResumeCv, deletePersonResumeCv } from '@/api/recruit/personal/resume'
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
import { useUserStore } from '@/store/user'
|
|
import { useUserStore } from '@/store/user'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import Confirm from '@/plugins/confirm'
|
|
import Confirm from '@/plugins/confirm'
|
|
import interviewSchedule from './../components/interviewSchedule.vue'
|
|
import interviewSchedule from './../components/interviewSchedule.vue'
|
|
|
|
+import { getUserInterviewInvitePage } from '@/api/recruit/personal/personalCenter'
|
|
|
|
+import { dealDictObjData } from '@/utils/position'
|
|
|
|
|
|
const { t } = useI18n()
|
|
const { t } = useI18n()
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
@@ -91,11 +94,11 @@ userStore.$subscribe((mutation, state) => {
|
|
userAccount.value = state.userAccount || {}
|
|
userAccount.value = state.userAccount || {}
|
|
})
|
|
})
|
|
|
|
|
|
-const resumeList = [
|
|
|
|
|
|
+const resumeList = ref([
|
|
// { icon: 'mdi-upload', title: t('resume.topResume'), desc: t('resume.increaseMoreExposure') },
|
|
// { icon: 'mdi-upload', title: t('resume.topResume'), desc: t('resume.increaseMoreExposure') },
|
|
{ name: 'refresh', icon: 'mdi-refresh', title: t('resume.refreshResume'), desc: t('resume.enhanceResumeActivity') },
|
|
{ name: 'refresh', icon: 'mdi-refresh', title: t('resume.refreshResume'), desc: t('resume.enhanceResumeActivity') },
|
|
- { name: 'interview', icon: 'mdi-account-multiple-check-outline', title: t('resume.interviewSchedule'), desc: '有2个待面试' },
|
|
|
|
-]
|
|
|
|
|
|
+ { name: 'interview', icon: 'mdi-account-multiple-check-outline', title: t('resume.interviewSchedule'), desc: '' },
|
|
|
|
+])
|
|
const showInterviewSchedule = ref(false)
|
|
const showInterviewSchedule = ref(false)
|
|
const resumeClick = (val) => {
|
|
const resumeClick = (val) => {
|
|
if (val.name === 'interview') {
|
|
if (val.name === 'interview') {
|
|
@@ -179,6 +182,25 @@ const handleDownload = (k) => {
|
|
saveAs(blob, k.title)
|
|
saveAs(blob, k.title)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// 面试日程
|
|
|
|
+const invitePageList = ref([])
|
|
|
|
+const getUserInterviewInvitePageList = async () => {
|
|
|
|
+ const res = await getUserInterviewInvitePage()
|
|
|
|
+ invitePageList.value = res?.list.map(e => {
|
|
|
|
+ e.job = { ...e.job, ...dealDictObjData({}, e.job) }
|
|
|
|
+ e.enterprise = { ...e.enterprise, ...dealDictObjData({}, e.enterprise)}
|
|
|
|
+ return e
|
|
|
|
+ }) || []
|
|
|
|
+ const interview = resumeList.value.find(f => f.name === 'interview')
|
|
|
|
+ if (interview) interview.desc = '有' + (res?.total || '0') + '个待面试'
|
|
|
|
+}
|
|
|
|
+getUserInterviewInvitePageList()
|
|
|
|
+const interviewScheduleMore = () => {
|
|
|
|
+ showInterviewSchedule.value = false
|
|
|
|
+ const path = route.path
|
|
|
|
+ router.push({ path, query: { leftTabs: 2 } })
|
|
|
|
+}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|