fix:活动签到逻辑修改

This commit is contained in:
wyx
2022-12-29 14:49:38 +08:00
parent c1186676ad
commit 4c8101d6ad

View File

@@ -45,7 +45,9 @@
<div style="margin-left: 8px">{{ data?.activityAddress }}</div>
</div>
</div>
<botton class="btn" :style="{background: `${data.signFlag ? '#999' : 'rgb(57, 146, 249)'}`, }" @click="signClick" >{{ data.signFlag ? "已签到" : "签到" }}
<botton v-if="isAllowSign" class="btn" :style="{background: data.signFlag ? '#999' : 'rgb(57, 146, 249)' }" @click="signClick" >{{ data.signFlag ? "已签到" : "签到" }}
</botton>
<botton v-else class="btn" :style="{background: '#999' }" @click="signClick" >{{ data.signFlag ? "已签到" : "签到" }}
</botton>
</div>
<!-- 基本信息 -->
@@ -141,7 +143,7 @@ import { request, useRequest } from "@/api/request";
import { useRouter } from "vue-router";
import { useRoute } from "vue-router/dist/vue-router";
import { ElMessage } from "element-plus";
import { reactive, onUnmounted } from "vue";
import { reactive, onUnmounted, toRefs} from "vue";
const router = useRouter();
const returnclick = () => {
router.back();
@@ -153,11 +155,22 @@ const state = reactive({
isAllowSign: false,
});
const { isAllowSign } = toRefs(state);
const { data } = useRequest(ACTIVITY, { activityId });
console.log('data', data)
const signClick = (tab, event) => {
if (data.value.signFlag) {
return;
}
if (!state.isAllowSign) {
// console.log("data.signFlag", data.value.signFlag, isAllowSign);
ElMessage.warning("未在允许签到时间范围内");
return;
}
data.value.signFlag = true;
ElMessage.warning("签到成功");
request(TASK_ACTIVITY_SIGN, {
@@ -170,31 +183,35 @@ let timer = null;
//判断能否签到
function isSignClick() {
timer = setInterval(() => {
let beginTime = new Date(data.activityStartTime).getTime();
let endTime = !data.afterSignIn
? new Date(data.activityEndTime).getTime()
: new Date(data.activityStartTime).getTime();
let beginTime = new Date(data.value.activityStartTime).getTime();
let endTime = !data.value.afterSignIn
? new Date(data.value.activityEndTime).getTime()
: new Date(data.value.activityStartTime).getTime();
let nowTime = new Date().getTime();
if (data.beforeSignIn && data.afterSignIn) {
if (data.value.beforeSignIn && data.value.afterSignIn) {
//有开始前有开始后
beginTime = beginTime - data.beforeSignIn * 60 * 1000;
endTime = endTime + data.afterSignIn * 60 * 1000;
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111");
} else if (
data.beforeSignIn &&
!data.afterSignIn
data.value.beforeSignIn &&
!data.value.afterSignIn
) {
//只有开始前无开始后
beginTime = beginTime - data.beforeSignIn * 60 * 1000;
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
console.log("11112222");
} else if (
!data.beforeSignIn &&
data.afterSignIn
!data.value.beforeSignIn &&
data.value.afterSignIn
) {
//无开始前有开始后
endTime = endTime + data.afterSignIn * 60 * 1000;
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111333");
}
console.log(nowTime, beginTime, endTime, data.value)
console.log(nowTime < endTime , nowTime > beginTime)
console.log(state.isAllowSign)
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {