|
@@ -7,15 +7,27 @@
|
|
<img :src="val.pcPreviewImg" alt="" style="object-fit: contain; width: 100%;">
|
|
<img :src="val.pcPreviewImg" alt="" style="object-fit: contain; width: 100%;">
|
|
<div class="pa-3 color-666">
|
|
<div class="pa-3 color-666">
|
|
<div>活动主题:{{ val.title }}</div>
|
|
<div>活动主题:{{ val.title }}</div>
|
|
- <div>活动时间:{{ timesTampChange(val.startTime, 'Y-M-D') }}至{{ timesTampChange(val.endTime, 'Y-M-D') }}</div>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ 活动状态:
|
|
|
|
+ <span class="font-weight-bold" :class="[`color-${checkActivityTime(val.startTime, val.endTime)?.color}`]">
|
|
|
|
+ {{ checkActivityTime(val.startTime, val.endTime)?.desc }}
|
|
|
|
+ </span>
|
|
|
|
+ </div>
|
|
|
|
+ <div>活动时间:{{ timesTampChange(val.startTime, 'Y-M-D') }} 至 {{ timesTampChange(val.endTime, 'Y-M-D') }}</div>
|
|
<div class="text-end">
|
|
<div class="text-end">
|
|
- <v-btn color="primary" variant="outlined" @click.stop="handleJoin(val)">查看详情</v-btn>
|
|
|
|
|
|
+ <v-btn
|
|
|
|
+ color="primary"
|
|
|
|
+ variant="outlined"
|
|
|
|
+ @click.stop="handleJoin(val)"
|
|
|
|
+ >
|
|
|
|
+ 查看详情
|
|
|
|
+ </v-btn>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</v-card>
|
|
</v-card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <Empty v-else class="mx-3" message="暂无进行中的招聘会,去看看其他吧~" />
|
|
|
|
|
|
+ <Empty v-else class="mx-3" message="暂无招聘会,去看看其他吧~" />
|
|
<CtPagination
|
|
<CtPagination
|
|
v-if="total > 0"
|
|
v-if="total > 0"
|
|
:total="total"
|
|
:total="total"
|
|
@@ -32,6 +44,7 @@ import { ref } from 'vue'
|
|
import { timesTampChange } from '@/utils/date'
|
|
import { timesTampChange } from '@/utils/date'
|
|
import { getJobFairList } from '@/api/recruit/enterprise/jobFair'
|
|
import { getJobFairList } from '@/api/recruit/enterprise/jobFair'
|
|
import buttons from '@/views/recruit/personal/components/buttons.vue'
|
|
import buttons from '@/views/recruit/personal/components/buttons.vue'
|
|
|
|
+import Snackbar from '@/plugins/snackbar'
|
|
|
|
|
|
const total = ref(0)
|
|
const total = ref(0)
|
|
const list = ref([])
|
|
const list = ref([])
|
|
@@ -54,8 +67,63 @@ const handleChangePage = (val) => {
|
|
getList()
|
|
getList()
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+function checkActivityTime(startTimeStamp, endTimeStamp) {
|
|
|
|
+ // 获取当前时间
|
|
|
|
+ const now = new Date()
|
|
|
|
+ const currentTime = now.getTime()
|
|
|
|
+
|
|
|
|
+ // 处理开始时间:设置为当天的 00:00:00
|
|
|
|
+ const startDate = new Date(startTimeStamp)
|
|
|
|
+ const startOfDay = new Date(
|
|
|
|
+ startDate.getFullYear(),
|
|
|
|
+ startDate.getMonth(),
|
|
|
|
+ startDate.getDate(),
|
|
|
|
+ 0, 0, 0, 0
|
|
|
|
+ )
|
|
|
|
+ const adjustedStartTime = startOfDay.getTime()
|
|
|
|
+
|
|
|
|
+ // 处理结束时间:设置为当天的 23:59:59
|
|
|
|
+ const endDate = new Date(endTimeStamp)
|
|
|
|
+ const endOfDay = new Date(
|
|
|
|
+ endDate.getFullYear(),
|
|
|
|
+ endDate.getMonth(),
|
|
|
|
+ endDate.getDate(),
|
|
|
|
+ 23, 59, 59, 999
|
|
|
|
+ )
|
|
|
|
+ const adjustedEndTime = endOfDay.getTime()
|
|
|
|
+
|
|
|
|
+ // 判断时间关系
|
|
|
|
+ if (currentTime < adjustedStartTime) {
|
|
|
|
+ return {
|
|
|
|
+ canJoin: false,
|
|
|
|
+ desc: '待开始',
|
|
|
|
+ message: '该招聘会尚未开始,无法查看详情',
|
|
|
|
+ color: 'warning'
|
|
|
|
+ }
|
|
|
|
+ } else if (currentTime > adjustedEndTime) {
|
|
|
|
+ return {
|
|
|
|
+ canJoin: false,
|
|
|
|
+ desc: '已结束',
|
|
|
|
+ message: '该招聘会已结束,无法查看详情',
|
|
|
|
+ color: 'error'
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ return {
|
|
|
|
+ canJoin: true,
|
|
|
|
+ color: 'primary',
|
|
|
|
+ desc: '进行中'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 进入招聘会
|
|
const handleJoin = (val) => {
|
|
const handleJoin = (val) => {
|
|
if (!val?.id) return
|
|
if (!val?.id) return
|
|
|
|
+
|
|
|
|
+ const obj = checkActivityTime(val.startTime, val.endTime)
|
|
|
|
+ // 不可参加的,弹出提示语
|
|
|
|
+ if (!obj.canJoin) return Snackbar.warning(obj.message)
|
|
|
|
+
|
|
window.open('/recruit/personal/jobFair/enterprises/' + val.id)
|
|
window.open('/recruit/personal/jobFair/enterprises/' + val.id)
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|