提交 e01ed602 authored 作者: matian's avatar matian

update:代码更新关于活动时间判断

上级 6798e5cb
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
"element-ui": "^2.15.5", "element-ui": "^2.15.5",
"query-string": "^7.0.1", "query-string": "^7.0.1",
"swiper": "^5.4.5", "swiper": "^5.4.5",
"vant": "^2.12.26",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-awesome-swiper": "^4.1.1", "vue-awesome-swiper": "^4.1.1",
"vue-router": "^3.5.2", "vue-router": "^3.5.2",
...@@ -521,6 +522,22 @@ ...@@ -521,6 +522,22 @@
"@babel/core": "^7.0.0-0" "@babel/core": "^7.0.0-0"
} }
}, },
"node_modules/@babel/runtime": {
"version": "7.15.3",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz",
"integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==",
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/runtime/node_modules/regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"node_modules/@babel/template": { "node_modules/@babel/template": {
"version": "7.14.5", "version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
...@@ -568,6 +585,15 @@ ...@@ -568,6 +585,15 @@
"node": ">=6.9.0" "node": ">=6.9.0"
} }
}, },
"node_modules/@popperjs/core": {
"version": "2.9.3",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz",
"integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ==",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@rollup/pluginutils": { "node_modules/@rollup/pluginutils": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz",
...@@ -593,11 +619,23 @@ ...@@ -593,11 +619,23 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/@vant/icons": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/@vant/icons/-/icons-1.7.0.tgz",
"integrity": "sha512-sqKvtYcSgSd6+AU1nBPaZARn2Nzf8hi0ErLhfXVR6f+Y7R0gojGZVoxuB83yUI6+0LwbitW5IfN3E6qzEsu21Q=="
},
"node_modules/@vant/popperjs": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.1.0.tgz",
"integrity": "sha512-8MD1gz146awV/uPxYjz4pet22f7a9YVKqk7T+gFkWFwT9mEcrIUEg/xPrdOnWKLP9puXyYtm7oVfSDSefZ/p/w==",
"dependencies": {
"@popperjs/core": "^2.9.2"
}
},
"node_modules/@vue/babel-helper-vue-jsx-merge-props": { "node_modules/@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz",
"integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA=="
"dev": true
}, },
"node_modules/@vue/babel-plugin-transform-vue-jsx": { "node_modules/@vue/babel-plugin-transform-vue-jsx": {
"version": "1.2.1", "version": "1.2.1",
...@@ -3952,6 +3990,21 @@ ...@@ -3952,6 +3990,21 @@
"node": ">= 0.12.0" "node": ">= 0.12.0"
} }
}, },
"node_modules/vant": {
"version": "2.12.26",
"resolved": "https://registry.npmjs.org/vant/-/vant-2.12.26.tgz",
"integrity": "sha512-1JsFLt088joJgYbnIeunAIt2mySrypvIcwlpFlrcqEDs2mlb+HyGqpNjUL1bI2RhH9z3Qk7fJxY/1zs5VuhlKQ==",
"dependencies": {
"@babel/runtime": "7.x",
"@vant/icons": "^1.5.3",
"@vant/popperjs": "^1.0.0",
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"vue-lazyload": "1.2.3"
},
"peerDependencies": {
"vue": ">= 2.6.0"
}
},
"node_modules/vite": { "node_modules/vite": {
"version": "2.4.4", "version": "2.4.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-2.4.4.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-2.4.4.tgz",
...@@ -4032,6 +4085,11 @@ ...@@ -4032,6 +4085,11 @@
"vue": "2.x" "vue": "2.x"
} }
}, },
"node_modules/vue-lazyload": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
"integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
},
"node_modules/vue-router": { "node_modules/vue-router": {
"version": "3.5.2", "version": "3.5.2",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz",
...@@ -4522,6 +4580,21 @@ ...@@ -4522,6 +4580,21 @@
"@babel/plugin-syntax-typescript": "^7.14.5" "@babel/plugin-syntax-typescript": "^7.14.5"
} }
}, },
"@babel/runtime": {
"version": "7.15.3",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.3.tgz",
"integrity": "sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==",
"requires": {
"regenerator-runtime": "^0.13.4"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
}
}
},
"@babel/template": { "@babel/template": {
"version": "7.14.5", "version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
...@@ -4560,6 +4633,11 @@ ...@@ -4560,6 +4633,11 @@
"to-fast-properties": "^2.0.0" "to-fast-properties": "^2.0.0"
} }
}, },
"@popperjs/core": {
"version": "2.9.3",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.3.tgz",
"integrity": "sha512-xDu17cEfh7Kid/d95kB6tZsLOmSWKCZKtprnhVepjsSaCij+lM3mItSJDuuHDMbCWTh8Ejmebwb+KONcCJ0eXQ=="
},
"@rollup/pluginutils": { "@rollup/pluginutils": {
"version": "4.1.0", "version": "4.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz",
...@@ -4576,11 +4654,23 @@ ...@@ -4576,11 +4654,23 @@
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
"dev": true "dev": true
}, },
"@vant/icons": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/@vant/icons/-/icons-1.7.0.tgz",
"integrity": "sha512-sqKvtYcSgSd6+AU1nBPaZARn2Nzf8hi0ErLhfXVR6f+Y7R0gojGZVoxuB83yUI6+0LwbitW5IfN3E6qzEsu21Q=="
},
"@vant/popperjs": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.1.0.tgz",
"integrity": "sha512-8MD1gz146awV/uPxYjz4pet22f7a9YVKqk7T+gFkWFwT9mEcrIUEg/xPrdOnWKLP9puXyYtm7oVfSDSefZ/p/w==",
"requires": {
"@popperjs/core": "^2.9.2"
}
},
"@vue/babel-helper-vue-jsx-merge-props": { "@vue/babel-helper-vue-jsx-merge-props": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.2.1.tgz",
"integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA==", "integrity": "sha512-QOi5OW45e2R20VygMSNhyQHvpdUwQZqGPc748JLGCYEy+yp8fNFNdbNIGAgZmi9e+2JHPd6i6idRuqivyicIkA=="
"dev": true
}, },
"@vue/babel-plugin-transform-vue-jsx": { "@vue/babel-plugin-transform-vue-jsx": {
"version": "1.2.1", "version": "1.2.1",
...@@ -7337,6 +7427,18 @@ ...@@ -7337,6 +7427,18 @@
"unescape": "^1.0.1" "unescape": "^1.0.1"
} }
}, },
"vant": {
"version": "2.12.26",
"resolved": "https://registry.npmjs.org/vant/-/vant-2.12.26.tgz",
"integrity": "sha512-1JsFLt088joJgYbnIeunAIt2mySrypvIcwlpFlrcqEDs2mlb+HyGqpNjUL1bI2RhH9z3Qk7fJxY/1zs5VuhlKQ==",
"requires": {
"@babel/runtime": "7.x",
"@vant/icons": "^1.5.3",
"@vant/popperjs": "^1.0.0",
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
"vue-lazyload": "1.2.3"
}
},
"vite": { "vite": {
"version": "2.4.4", "version": "2.4.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-2.4.4.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-2.4.4.tgz",
...@@ -7398,6 +7500,11 @@ ...@@ -7398,6 +7500,11 @@
"integrity": "sha512-50um10t6N+lJaORkpwSi1wWuMmBI1sgFc9Znsi5oUykw2cO5DzLaBHcO2JNX21R+Ue4TGoIJDhhxjBHtkFrTEQ==", "integrity": "sha512-50um10t6N+lJaORkpwSi1wWuMmBI1sgFc9Znsi5oUykw2cO5DzLaBHcO2JNX21R+Ue4TGoIJDhhxjBHtkFrTEQ==",
"requires": {} "requires": {}
}, },
"vue-lazyload": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
"integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
},
"vue-router": { "vue-router": {
"version": "3.5.2", "version": "3.5.2",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.5.2.tgz",
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
"element-ui": "^2.15.5", "element-ui": "^2.15.5",
"query-string": "^7.0.1", "query-string": "^7.0.1",
"swiper": "^5.4.5", "swiper": "^5.4.5",
"vant": "^2.12.26",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-awesome-swiper": "^4.1.1", "vue-awesome-swiper": "^4.1.1",
"vue-router": "^3.5.2", "vue-router": "^3.5.2",
......
...@@ -34,10 +34,7 @@ export default { ...@@ -34,10 +34,7 @@ export default {
}, },
methods: { methods: {
handleClose() { handleClose() {
if(this.status == true){ this.$emit('update:visible', false)
this.$emit('update:visible', false)
}
} }
} }
} }
......
...@@ -8,10 +8,10 @@ import beforeEnter from './utils/beforeEnter' ...@@ -8,10 +8,10 @@ import beforeEnter from './utils/beforeEnter'
import '@/assets/css/base.css' import '@/assets/css/base.css'
import './assets/rem/rem.js' import './assets/rem/rem.js'
// Element-UI
import '@/assets/theme/index.css'
import ElementUI from 'element-ui' import { Toast } from 'vant';
Vue.use(ElementUI) Vue.use(Toast);
import VueAwesomeSwiper from 'vue-awesome-swiper' import VueAwesomeSwiper from 'vue-awesome-swiper'
Vue.use(VueAwesomeSwiper, /* { default options with global component } */) Vue.use(VueAwesomeSwiper, /* { default options with global component } */)
......
<template> <template>
<div class="detail_content"> <div class="detail_content">
<div v-if="isShowError == true" class="showError"> <div v-if="isShowError == true" class="showError">
<img src="https://webapp-pub.ezijing.com/marketing/detail2.png" alt=""> <img src="https://webapp-pub.ezijing.com/marketing/detail2.png" alt="" />
<div class="text">您访问的页面不存在。</div> <div class="text">您访问的页面不存在。</div>
</div> </div>
<div v-else> <div v-else>
<img :src="signInfo.market_other_img" alt="" class="market_other_img" v-if ="signInfo.market_other_img !== ''"> <img
<img src="https://webapp-pub.ezijing.com/marketing/detail.png" class="signIn_detail" @click="handleClick"/> :src="signInfo.market_other_img || defaultImg3"
<app-popup :visible.sync="popupVisible" :signInfo = "signInfo" :status = "status"></app-popup> alt=""
class="market_other_img"
/>
<img
src="https://webapp-pub.ezijing.com/marketing/detail.png"
class="signIn_detail"
@click="handleClick"
/>
<app-popup
:visible.sync="popupVisible"
:signInfo="signInfo"
:status="status"
></app-popup>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { signInDetail, signIn } from "@/api/base.js"; import { signInDetail, signIn } from "@/api/base.js";
import AppPopup from '../../components/AppPopup.vue' import AppPopup from "../../components/AppPopup.vue";
import { Toast } from "vant";
export default { export default {
components: { AppPopup }, components: { AppPopup },
data(){ data() {
return{ return {
status:false, status: false,
signInfo:{ signInfo: {
student:{ student: {},
} }, //签到详情信息
},//签到详情信息 popupVisible: true,
popupVisible: true, id: "",
id:'', isShowError: false,
isShowError:false defaultImg3:
} "https://webapp-pub.ezijing.com/marketing/%E7%94%BB%E6%9D%BF%201.png",
}, };
mounted(){ },
this.id = this.$route.query.id;//从链接上获取活动id mounted() {
if(this.id == ''||this.id == undefined){ this.id = this.$route.query.id; //从链接上获取活动id
if (this.id == "" || this.id == undefined) {
this.isShowError = true; this.isShowError = true;
return return;
} }
this.getSignInDetail(); //获取页面详情 this.getSignInDetail(); //获取页面详情
}, },
methods:{ methods: {
handleClick() { handleClick() {
this.popupVisible = true this.popupVisible = true;
}, },
getSignInDetail() { getSignInDetail() {
Toast(`该活动已于结束签到`);
//调用签到详情接口 //调用签到详情接口
let id = this.id ; let id = this.id;
signInDetail(id).then((res) => { signInDetail(id).then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.signInfo = res.data;//获取签到详情数据 this.signInfo = res.data; //获取签到详情数据
let time = new Date().getTime();//获取当前时间戳 let time = new Date().getTime(); //获取当前时间戳
let start_time = new Date(this.signInfo.start_time).getTime(); let sign_start_time = new Date(
let end_time = new Date(this.signInfo.end_time).getTime(); this.signInfo.sign_start_time
let sign_start_time = new Date(this.signInfo.sign_start_time).getTime(); ).getTime(); //签到开始
let sign_end_time = new Date(this.signInfo.sign_end_time).getTime(); let sign_end_time = new Date(this.signInfo.sign_end_time).getTime(); //签到结束
if(time > start_time && time < end_time && sign_start_time == ''&&sign_end_time == ''){ //活动开始 不限制签到时间 if (sign_start_time !== "" && sign_end_time !== "") {
this.getSignIn();//调起签到接口 //限制签到时间
}else if(sign_start_time !== ''&& sign_end_time !== ''){ //限制签到时间 if (time < sign_start_time) {
if(time >= sign_end_time){ Toast(`该活动将于${this.signInfo.sign_start_time}开始签到`);
this.$message.error(`该活动签到时间已于${this.signInfo.sign_end_time}结束`) } else {
}else if(time < sign_start_time){ this.getSignIn(); //调用签到接口
this.$message.error(`该活动尚未到开始签到时间, 请于${this.signInfo.sign_start_time}之后签到`); }
} } else {
else if(time > sign_start_time && time < sign_end_time){ //不限制签到时间
this.getSignIn();//调起签到接口 this.getSignIn();
}
} }
} } else {
Toast.fail(this.message);
}
}); });
}, },
//签到接口 //签到接口
getSignIn(){ getSignIn() {
let id = this.id ;//从链接上获取活动id let id = this.id; //从链接上获取活动id
signIn(id).then((res)=>{ signIn(id).then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.status = res.data.status; //签到状态 this.status = res.data.status; //签到状态
if(this.status = true){ let time = new Date().getTime(); //获取当前时间戳
this.$message.success('签到成功') let end_time = new Date(this.signInfo.sign_end_time).getTime(); //活动结束
}else{ let sign_end_time = new Date(this.signInfo.sign_end_time).getTime(); //签到结束
this.$message.error('签到失败') if (
} this.signInfo.sign_start_time !== "" &&
this.signInfo.sign_end_time !== ""
) {
if (this.status == false && time >= sign_end_time) {
Toast(`该活动已于${this.signInfo.sign_end_time}结束签到`);
} }
}) } else {
} if (this.status == false && time >= end_time) {
} Toast("该活动已结束签到");
} }
}
} else {
Toast.fail(this.message);
}
});
},
},
};
</script> </script>
<style lang = "scss" scoped> <style lang="scss" scoped>
.detail_content { .detail_content {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
position: relative; position: relative;
background-color: #f2f2f2; background-color: #f2f2f2;
.market_other_img{ position: relative;
.market_other_img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.signIn_detail{ .signIn_detail {
width: 1rem; width: 1rem;
height: 1rem; height: 1rem;
line-height: 1rem; line-height: 1rem;
position: fixed; position: fixed;
right: .56rem; right: 0.56rem;
top: .67rem; top: 0.67rem;
padding-left: 10px; padding-left: 10px;
}
.showError{
width: 100%;
height: 100%;
/* position: relative; */
img{
width: 3.58rem;
height: 3.09rem;
position: absolute;
top: 2.84rem;
left: 50%;
transform: translate(-50%,-50%);
} }
.text{ .showError {
text-align: center; width: 100%;
position: absolute; height: 100%;
top:6.39rem; /* position: relative; */
left: 50%; img {
transform: translate(-50%,-50%); width: 3.58rem;
font-size: 28px; height: 3.09rem;
font-weight: 400; position: absolute;
color: #999999; top: 2.84rem;
left: 50%;
transform: translate(-50%, -50%);
}
.text {
text-align: center;
position: absolute;
top: 6.39rem;
left: 50%;
transform: translate(-50%, -50%);
font-size: 28px;
font-weight: 400;
color: #999999;
}
} }
} }
} </style>
</style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论