|
@@ -53,6 +53,7 @@
|
|
|
<v-btn v-if="[21,22].includes(item.status)" color="primary " variant="text" @click="handleEliminate(item)">不合适</v-btn>
|
|
|
<v-btn v-if="item.status === 22" color="primary" variant="text" @click="handleEnterByEnterprise(item)">入职</v-btn>
|
|
|
</template>
|
|
|
+ <v-btn v-if="item.status === 2" color="primary" variant="text" @click="handleEditJoinDate(item)">修改到岗时间</v-btn>
|
|
|
</template>
|
|
|
</CtTable>
|
|
|
</v-tabs-window-item>
|
|
@@ -71,18 +72,31 @@
|
|
|
<CtForm ref="CtFormInviteRef" :items="formItems" style="height: 500px;"></CtForm>
|
|
|
</CtDialog>
|
|
|
|
|
|
- <!-- 邀请面试 -->
|
|
|
+ <!-- 入职 -->
|
|
|
<CtDialog
|
|
|
:visible="showAccess"
|
|
|
:widthType="4"
|
|
|
titleClass="text-h6"
|
|
|
- title="面试信息"
|
|
|
+ title="入职信息"
|
|
|
@close="showAccess = false"
|
|
|
@submit="handleAccess"
|
|
|
>
|
|
|
<CtForm ref="CtFormAccessRef" :items="AccessItems" style="height: 500px;"></CtForm>
|
|
|
</CtDialog>
|
|
|
|
|
|
+ <!-- 修改到岗时间 -->
|
|
|
+ <CtDialog
|
|
|
+ :visible="showEditJoinDate"
|
|
|
+ :widthType="4"
|
|
|
+ titleClass="text-h6"
|
|
|
+ title="修改到岗时间"
|
|
|
+ @close="showEditJoinDate = false"
|
|
|
+ @submit="handleSubmitEditJoinDate"
|
|
|
+ >
|
|
|
+ <DatePicker v-model="editJoinDateItems.value" :item="editJoinDateItems"></DatePicker>
|
|
|
+ </CtDialog>
|
|
|
+
|
|
|
+ <!-- 不合适 -->
|
|
|
<CtDialog
|
|
|
:visible="showReject"
|
|
|
:widthType="4"
|
|
@@ -99,16 +113,18 @@
|
|
|
<script setup>
|
|
|
defineOptions({ name: 'jobFairResume'})
|
|
|
import { computed, ref } from 'vue'
|
|
|
-import { useRouter, useRoute } from 'vue-router'
|
|
|
+import { useRoute } from 'vue-router'
|
|
|
import { useI18n } from '@/hooks/web/useI18n'
|
|
|
import Snackbar from '@/plugins/snackbar'
|
|
|
-import { getResumeList, resumeCancel, resumeAccept, resumeInterview } from '@/api/recruit/enterprise/jobFair'
|
|
|
+import { getResumeList, resumeCancel, resumeAccept, resumeInterview, updateJoinDate } from '@/api/recruit/enterprise/jobFair'
|
|
|
import { useUserStore } from '@/store/user'
|
|
|
import { getDict } from '@/hooks/web/useDictionaries'
|
|
|
import { previewFile } from '@/utils'
|
|
|
import { getUserAvatar } from '@/utils/avatar'
|
|
|
+import DatePicker from '@/components/FormUI/datePicker'
|
|
|
+import { timesTampChange } from '@/utils/date'
|
|
|
+
|
|
|
const userStore = useUserStore()
|
|
|
-const router = useRouter()
|
|
|
const route = useRoute()
|
|
|
const { t } = useI18n()
|
|
|
|
|
@@ -173,9 +189,6 @@ const tabList = ref([
|
|
|
size: 10
|
|
|
}
|
|
|
}
|
|
|
- // { label: '面试邀约', value: 1, statuss: [21, 22, 23], items: [], total: 0 },
|
|
|
- // { label: '已入职', value: 2, statuss: [4], items: [], total: 0 },
|
|
|
- // { label: '不合适', value: 3, statuss: [15], items: [], total: 0 },
|
|
|
])
|
|
|
|
|
|
const headers = computed(() => {
|
|
@@ -195,12 +208,11 @@ const headers = computed(() => {
|
|
|
},
|
|
|
sortable: false
|
|
|
},
|
|
|
- { title: '联系电话', value: 'student.phone', sortable: false }
|
|
|
+ { title: '联系电话', value: 'student.phone', sortable: false },
|
|
|
+ { title: '到岗时间', key: 'jobJoinDate', sortable: false, value: item => timesTampChange(item.jobJoinDate, 'Y-M-D') },
|
|
|
+ { title: '状态', value: 'status', sortable: false },
|
|
|
+ { title: '操作', value: 'actions', sortable: false }
|
|
|
]
|
|
|
- if (tab.value === 0 || tab.value === 1) {
|
|
|
- item.push({ title: '状态', value: 'status', sortable: false },
|
|
|
- { title: '操作', value: 'actions', sortable: false })
|
|
|
- }
|
|
|
return item
|
|
|
})
|
|
|
|
|
@@ -260,11 +272,11 @@ const AccessItems = ref({
|
|
|
labelWidth: 78,
|
|
|
value: '',
|
|
|
key: 'jobJoinDate',
|
|
|
- label: '入职时间 *',
|
|
|
+ label: '到岗时间 *',
|
|
|
format: "YYYY/MM/DD HH:mm",
|
|
|
flexStyle: 'mb-7',
|
|
|
disabledDate: true,
|
|
|
- rules: [v => !!v || '请选择入职时间']
|
|
|
+ rules: [v => !!v || '请选择到岗时间']
|
|
|
},
|
|
|
{
|
|
|
type: 'text',
|
|
@@ -284,21 +296,21 @@ const AccessItems = ref({
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
+const editJoinDateItems = ref({
|
|
|
+ value: '',
|
|
|
+ id: '',
|
|
|
+ mode: 'date',
|
|
|
+ placeholder: '请选择要修改的到岗时间',
|
|
|
+ teleported: true,
|
|
|
+ disabledDate: true
|
|
|
+})
|
|
|
|
|
|
-// const items = ref([])
|
|
|
const loading = ref(false)
|
|
|
-
|
|
|
-// const pageInfo = ref({
|
|
|
-// current: 1,
|
|
|
-// size: 10
|
|
|
-// })
|
|
|
-
|
|
|
const itemData = ref({})
|
|
|
const showInvite = ref(false)
|
|
|
-
|
|
|
const showReject = ref(false)
|
|
|
-
|
|
|
const showAccess = ref(false)
|
|
|
+const showEditJoinDate = ref(false)
|
|
|
|
|
|
// 状态字典
|
|
|
const statusList = ref([])
|
|
@@ -317,7 +329,6 @@ const handleChange = () => {
|
|
|
getList()
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 查看简历
|
|
|
const handlePreviewResume = async (item) => {
|
|
|
const url = item.studentInfoVo?.studentBiographicalNotes?.fileUrl
|
|
@@ -394,10 +405,8 @@ const handleEnterByEnterprise = async (item) => {
|
|
|
})
|
|
|
itemData.value = item
|
|
|
showAccess.value = true
|
|
|
-
|
|
|
}
|
|
|
const handleAccess = async () => {
|
|
|
-
|
|
|
const { valid } = await CtFormAccessRef.value.formRef.validate()
|
|
|
if (!valid) return
|
|
|
const query = AccessItems.value.options.reduce((acc, cur) => {
|
|
@@ -416,7 +425,23 @@ const handleAccess = async () => {
|
|
|
getList()
|
|
|
}
|
|
|
|
|
|
+// 修改到岗时间
|
|
|
+const handleEditJoinDate = (item) => {
|
|
|
+ editJoinDateItems.value.id = item.practiceSubmitRecordId
|
|
|
+ editJoinDateItems.value.value = item.jobJoinDate
|
|
|
+ showEditJoinDate.value = true
|
|
|
+}
|
|
|
+
|
|
|
+const handleSubmitEditJoinDate = async () => {
|
|
|
+ if (!editJoinDateItems.value.value) return Snackbar.warning('请选择要修改的日期')
|
|
|
+ await updateJoinDate({ jobJoinDate: editJoinDateItems.value.value, practiceSubmitRecordId: editJoinDateItems.value.id })
|
|
|
|
|
|
+ Snackbar.success('修改成功')
|
|
|
+ editJoinDateItems.value.value = ''
|
|
|
+ editJoinDateItems.value.id = ''
|
|
|
+ showEditJoinDate.value = false
|
|
|
+ getList()
|
|
|
+}
|
|
|
|
|
|
const getList = async () => {
|
|
|
loading.value = true
|
|
@@ -427,10 +452,8 @@ const getList = async () => {
|
|
|
enterpriseId: userStore.entBaseInfo.enterpriseId,
|
|
|
statuss: tabList.value[tab.value].statuss
|
|
|
})
|
|
|
- // total.value = res.total
|
|
|
tabList.value[tab.value].items = res.records
|
|
|
tabList.value[tab.value].total = res.total
|
|
|
- // items.value = res.records
|
|
|
} finally {
|
|
|
loading.value = false
|
|
|
}
|