|
@@ -44,16 +44,23 @@
|
|
|
<span class="ml-2" style="cursor: pointer;" @click="handleClear">{{ $t('common.cleanUp') }}</span>
|
|
|
</div>
|
|
|
<div v-else class="color-999">{{ $t('interview.noDateSelected') }}</div>
|
|
|
- <v-btn color="primary" variant="text" size="small" @click="selectDateValue = new Date()">{{ $t('interview.today') }}</v-btn>
|
|
|
+ <v-btn color="primary" variant="text" size="small" @click="selectDateValue = new Date(); handleChangeDate()">{{ $t('interview.today') }}</v-btn>
|
|
|
</div>
|
|
|
- <v-date-picker
|
|
|
+ <VueDatePicker
|
|
|
+ class="mr-5"
|
|
|
v-model="selectDateValue"
|
|
|
- color="primary"
|
|
|
- :hide-header="true"
|
|
|
- @update:modelValue="handleChangeDate"
|
|
|
- class="mr-3"
|
|
|
+ inline auto-apply
|
|
|
+ locale="zh-CN"
|
|
|
+ :enable-time-picker="false"
|
|
|
+ :day-names="['一', '二', '三', '四', '五', '六', '七']"
|
|
|
+ :markers="markers"
|
|
|
+ hide-offset-dates
|
|
|
+ @update:model-value="handleChangeDate"
|
|
|
>
|
|
|
- </v-date-picker>
|
|
|
+ <template #marker>
|
|
|
+ <span class="custom-marker"></span>
|
|
|
+ </template>
|
|
|
+ </VueDatePicker>
|
|
|
</div>
|
|
|
<v-divider style="height: auto;" class="mr-5" vertical></v-divider>
|
|
|
<div style="flex: 1;overflow: hidden;">
|
|
@@ -76,7 +83,7 @@
|
|
|
<script setup>
|
|
|
defineOptions({ name: 'enterprise-interview'})
|
|
|
import { ref } from 'vue'
|
|
|
-import { getInterviewInvitePage } from '@/api/recruit/enterprise/interview'
|
|
|
+import { getInterviewInvitePage, getEnterpriseInterviewCountByTime } from '@/api/recruit/enterprise/interview'
|
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
import { getJobAdvertised } from '@/api/enterprise'
|
|
|
import { dealDictArrayData } from '@/utils/position'
|
|
@@ -94,6 +101,17 @@ const query = ref({
|
|
|
time: []
|
|
|
})
|
|
|
|
|
|
+// 获取有面试的日期列表
|
|
|
+const markers = ref([])
|
|
|
+const getCountByTime = async () => {
|
|
|
+ const data = await getEnterpriseInterviewCountByTime()
|
|
|
+ if (!data || !data.length) return
|
|
|
+ markers.value = data.map(e => {
|
|
|
+ return { date: e.key, type: 'dot' }
|
|
|
+ })
|
|
|
+}
|
|
|
+getCountByTime()
|
|
|
+
|
|
|
// 状态字典
|
|
|
const getStatusList = async () => {
|
|
|
const { data } = await getDict('menduner_interview_invite_status')
|
|
@@ -168,4 +186,17 @@ getPositionList()
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
+:deep(.dp__menu) {
|
|
|
+ border: none !important;
|
|
|
+}
|
|
|
+.custom-marker {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0;
|
|
|
+ right: 50%;
|
|
|
+ transform: translateX(50%);
|
|
|
+ height: 8px;
|
|
|
+ width: 8px;
|
|
|
+ border-radius: 100%;
|
|
|
+ background-color: var(--v-primary-base);
|
|
|
+}
|
|
|
</style>
|