Переглянути джерело

求职端-招聘会:不可查看详情的点击按钮弹出提示语

Xiao_123 2 тижнів тому
батько
коміт
c5326c4664
1 змінених файлів з 71 додано та 3 видалено
  1. 71 3
      src/views/recruit/personal/jobFair/index.vue

+ 71 - 3
src/views/recruit/personal/jobFair/index.vue

@@ -7,15 +7,27 @@
 					<img :src="val.pcPreviewImg" alt="" style="object-fit: contain; width: 100%;">
 					<div class="pa-3 color-666">
 						<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">
-							<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>
 				</v-card>
 			</div>
 		</div>
-		<Empty v-else class="mx-3" message="暂无进行中的招聘会,去看看其他吧~" />
+		<Empty v-else class="mx-3" message="暂无招聘会,去看看其他吧~" />
 		<CtPagination
       v-if="total > 0"
       :total="total"
@@ -32,6 +44,7 @@ import { ref } from 'vue'
 import { timesTampChange } from '@/utils/date'
 import { getJobFairList } from '@/api/recruit/enterprise/jobFair'
 import buttons from '@/views/recruit/personal/components/buttons.vue'
+import Snackbar from '@/plugins/snackbar'
 
 const total = ref(0)
 const list = ref([])
@@ -54,8 +67,63 @@ const handleChangePage = (val) => {
   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) => {
 	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)
 }
 </script>