diff --git a/root/detail/job.vue b/root/detail/job.vue index 95b768f..e0bd725 100644 --- a/root/detail/job.vue +++ b/root/detail/job.vue @@ -84,7 +84,7 @@ - 招聘人数:{{ Math.floor(Math.random() * 81) + 280 }}人 + 招聘人数:{{ recruitNum }}人 @@ -635,19 +635,15 @@ export default { ], btnLoading: false, // 报名提交按钮的loading validEndTime: "", // 有效期限 + recruitNum: 0, // 招聘人数 }; }, onLoad(options) { let that = this; - // 计算当前时间顺延48小时的有效期限 - let now = new Date(); - let endTime = new Date(now.getTime() + 48 * 60 * 60 * 1000); - let year = endTime.getFullYear(); - let month = String(endTime.getMonth() + 1).padStart(2, '0'); - let day = String(endTime.getDate()).padStart(2, '0'); - let hour = String(endTime.getHours()).padStart(2, '0'); - let minute = String(endTime.getMinutes()).padStart(2, '0'); - this.validEndTime = `${year}年${month}月${day}日${hour}:${minute} 前有效`; + // 计算有效期限(当前时间+48小时) + this.calcValidEndTime(); + // 获取招聘人数(12小时内不更新) + this.getRecruitNum(); // console.log("详情", options); // console.log("this.G.store().cdnBaseImg", this.G.store().cdnBaseImg); if (options.id) { @@ -759,6 +755,40 @@ export default { }, methods: { + // 计算有效期限 + calcValidEndTime() { + let now = new Date(); + let endTime = new Date(now.getTime() + 48 * 60 * 60 * 1000); + let year = endTime.getFullYear(); + let month = String(endTime.getMonth() + 1).padStart(2, '0'); + let day = String(endTime.getDate()).padStart(2, '0'); + let hour = String(endTime.getHours()).padStart(2, '0'); + let minute = String(endTime.getMinutes()).padStart(2, '0'); + this.validEndTime = `${year}年${month}月${day}日${hour}:${minute} 前有效`; + }, + // 获取招聘人数(12小时内不更新) + getRecruitNum() { + let storageKey = 'job_recruit_num_' + this.uid; + let storedData = uni.getStorageSync(storageKey); + let now = new Date().getTime(); + + if (storedData) { + let data = JSON.parse(storedData); + // 12小时内不更新 + if (now - data.timestamp < 12 * 60 * 60 * 1000) { + this.recruitNum = data.num; + return; + } + } + + // 生成新的随机数并存储 + let num = Math.floor(Math.random() * 81) + 280; + this.recruitNum = num; + uni.setStorageSync(storageKey, JSON.stringify({ + num: num, + timestamp: now + })); + }, showFee() { let that = this; if (uni.getStorageSync("apply-token")) {