|
@@ -1,42 +1,15 @@
|
|
|
-<!-- 面试 -->
|
|
|
<template>
|
|
|
- <v-card class="pa-5" style="height: 100%;font-size: 14px;">
|
|
|
+ <v-card class="pa-5" style="height: calc(100vh - 130px);font-size: 14px;">
|
|
|
<div class="d-flex justify-space-between">
|
|
|
<div class="d-flex mb-3">
|
|
|
- <!-- 职位 -->
|
|
|
- <v-autocomplete
|
|
|
- v-model="query.jobId"
|
|
|
- :items="positionItems"
|
|
|
- density="compact"
|
|
|
- variant="outlined"
|
|
|
- item-title="label"
|
|
|
- item-value="value"
|
|
|
- clearable
|
|
|
- hide-details
|
|
|
- label="职位"
|
|
|
- color="primary"
|
|
|
- style="width: 300px;"
|
|
|
- class="mr-3"
|
|
|
- ></v-autocomplete>
|
|
|
- <v-select
|
|
|
- v-model="query.status"
|
|
|
- :items="statusList"
|
|
|
- density="compact"
|
|
|
- variant="outlined"
|
|
|
- item-title="label"
|
|
|
- item-value="value"
|
|
|
- clearable
|
|
|
- hide-details
|
|
|
- label="面试状态"
|
|
|
- color="primary"
|
|
|
- style="width: 300px;"
|
|
|
- ></v-select>
|
|
|
+ <Autocomplete class="mr-3" v-model="query.jobId" :item="jobItem"></Autocomplete>
|
|
|
+ <Autocomplete v-model="query.status" :item="statusItem"></Autocomplete>
|
|
|
<v-btn color="primary" class="half-button ml-3" @click="handleSearch">查 询</v-btn>
|
|
|
<v-btn class="half-button ml-3" variant="outlined" color="primary" @click="handleReset">重 置</v-btn>
|
|
|
</div>
|
|
|
</div>
|
|
|
<v-divider class="mb-3"></v-divider>
|
|
|
- <div class="d-flex">
|
|
|
+ <div class="d-flex" style="height: calc(100vh - 228px);">
|
|
|
<div>
|
|
|
<div class="d-flex justify-space-between px-5">
|
|
|
<div v-if="selectDateValue">
|
|
@@ -63,9 +36,11 @@
|
|
|
</VueDatePicker>
|
|
|
</div>
|
|
|
<v-divider style="height: auto;" class="mr-5" vertical></v-divider>
|
|
|
- <div style="flex: 1;overflow: hidden;">
|
|
|
+ <div style="flex: 1;">
|
|
|
<div v-if="items.length">
|
|
|
- <itemPage :items="items" :statusList="statusList" :positionItems="positionItems" @refresh="handleRefresh"></itemPage>
|
|
|
+ <div style="height: calc(100vh - 318px);overflow: auto;padding-right: 12px;">
|
|
|
+ <itemPage :items="items" :statusList="statusList" :positionItems="positionItems" @refresh="handleRefresh"></itemPage>
|
|
|
+ </div>
|
|
|
<CtPagination
|
|
|
v-if="total > 0"
|
|
|
:total="total"
|
|
@@ -94,12 +69,16 @@ const items = ref([])
|
|
|
const statusList = ref()
|
|
|
const total = ref(0)
|
|
|
const query = ref({
|
|
|
- pageSize: 10,
|
|
|
+ pageSize: 20,
|
|
|
pageNo: 1,
|
|
|
status: null,
|
|
|
jobId: null,
|
|
|
time: []
|
|
|
})
|
|
|
+const positionItems = ref([])
|
|
|
+
|
|
|
+const jobItem = ref({ width: 300, items: positionItems, clearable: true, hireDetails: true, label: '职位' })
|
|
|
+const statusItem = ref({ width: 300, items: statusList, clearable: true, hireDetails: true, label: '面试状态' })
|
|
|
|
|
|
// 获取有面试的日期列表
|
|
|
const markers = ref([])
|
|
@@ -173,9 +152,8 @@ const handleReset = () => {
|
|
|
}
|
|
|
|
|
|
// 职位
|
|
|
-const positionItems = ref([])
|
|
|
const getPositionList = async () => {
|
|
|
- const data = await getJobAdvertised({ hire: false })
|
|
|
+ const data = await getJobAdvertised()
|
|
|
if (!data.length) return
|
|
|
const list = dealDictArrayData([], data)
|
|
|
positionItems.value = list.map(e => {
|
|
@@ -199,4 +177,22 @@ getPositionList()
|
|
|
border-radius: 100%;
|
|
|
background-color: var(--v-primary-base);
|
|
|
}
|
|
|
+/* 滚动条样式 */
|
|
|
+::-webkit-scrollbar {
|
|
|
+ -webkit-appearance: none;
|
|
|
+ width: 4px;
|
|
|
+ height: 0px;
|
|
|
+}
|
|
|
+/* 滚动条内的轨道 */
|
|
|
+::-webkit-scrollbar-track {
|
|
|
+ background: rgba(0, 0, 0, 0.1);
|
|
|
+ border-radius: 0;
|
|
|
+}
|
|
|
+/* 滚动条内的滑块 */
|
|
|
+::-webkit-scrollbar-thumb {
|
|
|
+ cursor: pointer;
|
|
|
+ border-radius: 5px;
|
|
|
+ background: rgba(0, 0, 0, 0.15);
|
|
|
+ transition: color 0.2s ease;
|
|
|
+}
|
|
|
</style>
|