提交 02aef78d 编写于 作者: Yuanzhao.dai's avatar Yuanzhao.dai

Merge branch 'release' into dev-stage3-20191212

# Conflicts:
#	package-lock.json
......@@ -74,9 +74,14 @@
titleHeight: 44 // title高度默认是44px
}
},
created(){
if(process.client){
this.setHeaderHeight();
}
},
mounted(){
this.isScroll = !this.isOpacity;
this.setHeaderHeight();
if(!this.setedScroll){
this.scrollHandleOwn();
}
......@@ -98,11 +103,15 @@
methods: {
// 从APP获取电池栏高度并设置高度
setHeaderHeight(){
this.$rocNative.getStatusBarHeight().then(res=>{
const dpr = window.devicePixelRatio;
this.statusBarHeight = this.$rocNative.isIOS ? res.statusBarHeight: res.statusBarHeight / dpr;
this.$rocNative.getStatusBarHeight().then(res=>{
const dpr = window.devicePixelRatio;
if(this.$rocNative.isIOS && res.homeIndicatorHeight && res.statusBarHeight===0){
this.statusBarHeight = 44;
}else{
this.statusBarHeight = this.$rocNative.isIOS ? res.statusBarHeight: res.statusBarHeight / dpr;
}
this.$emit('getHeaderHeight', this.statusBarHeight + 44);
})
})
},
goBack(){
if(this.isStageTwoHomePage){
......
......@@ -2572,6 +2572,11 @@
"version": "2.0.3",
"resolved": "http://192.168.110.93:4873/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"qs": {
"version": "6.7.0",
"resolved": "http://192.168.110.93:4873/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
}
}
},
......@@ -4527,6 +4532,11 @@
"requires": {
"ms": "2.0.0"
}
},
"qs": {
"version": "6.7.0",
"resolved": "http://192.168.110.93:4873/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
}
}
},
......@@ -8497,8 +8507,7 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"aproba": {
"version": "1.2.0",
......@@ -8707,8 +8716,7 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"minipass": {
"version": "2.3.5",
......@@ -8733,7 +8741,6 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
......@@ -8969,7 +8976,6 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
......@@ -10897,9 +10903,10 @@
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
"version": "6.9.1",
"resolved": "http://192.168.110.93:4873/qs/-/qs-6.9.1.tgz",
"integrity": "sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==",
"dev": true
},
"query-string": {
"version": "6.9.0",
......@@ -13627,8 +13634,7 @@
},
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"optional": true
"bundled": true
},
"brace-expansion": {
"version": "1.1.11",
......@@ -13649,8 +13655,7 @@
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"optional": true
"bundled": true
},
"console-control-strings": {
"version": "1.1.0",
......
......@@ -92,7 +92,7 @@
<img src="../assets/img/stage-two/invite-btn.png" alt="" class="invite-btn">
<p @click="handleInviteClick" class="text">去邀请</p>
</div>
<div class="login-tips">被邀请好友登录APP,收益X9倍</div>
<div class="login-tips">被邀请好友登录APP参与活动,+90勤奋分 +90云鹊豆</div>
</div>
<!-- 每日任务 -->
......@@ -218,7 +218,7 @@
</template>
<script>
import { getActivityId, getBEServerTime, getUserScoreInfo, getInviteList, getClockStatus, goToUpdateClock, getTimsActivityInfo, selectAppModuleParam, checkToken, getRole, sayHello, getEncryptId } from '@/service/activityMainpage';
import { getActivityId, getBEServerTime, getUserScoreInfo, getInviteList, getClockStatus, goToUpdateClock, getTimsActivityInfo, selectAppModuleParam, checkToken, getRole, sayHello, getEncryptId, sendPopped } from '@/service/activityMainpage';
import { checkHospitalStatus } from '@/service';
import h5header from '@/components/h5header';
import { getShareUrl } from '@/utils/index';
......@@ -241,8 +241,7 @@
showAwadModal: true, // 根据活动时间是否展示中奖弹层以及查看昨日榜单逻辑
yestodayAwards: '', // 昨日可获得
token: '',
activityId: '', // 上线前等产品通知修改默认值
activityId: '1', // 上线前等产品通知修改默认值
scoreAwardTips: '',
encryptId: '', // 加密后的id,(分享传参用)
serverTime: '',
......@@ -394,6 +393,19 @@
return item.mobile;
}
},
checkShowAwardModal(currentTime){
/*
* 这里是显示获奖弹层逻辑,由于活动结束时间是12月29日 23:59:59
* 而获奖弹层需要在活动结束一天内展示,因此理论上12月31号之后就是不显示获奖弹层的时间了
*/
let msecSixteen = new Date('2019/12/16 00:00:00').getTime();
let msecThirty = new Date('2019/12/31 00:00:00').getTime();
if( currentTime < msecSixteen || currentTime > msecThirty ){
vm.awardModalShow = false;
}else{
vm.awardModalShow = true;
}
},
returnScoreAwardTips() {
let award = '';
if( vm.doctorInfo ) {
......@@ -444,6 +456,7 @@
}
},
goQuest(){
sendPopped();
// window.location.href = 'https://wj.qq.com/s2/5112128/18be/';
// let url = 'https://wj.qq.com/s2/5112128/18be/';
let url = 'https://www.wenjuan.com/s/BVVnueb/';
......@@ -560,21 +573,26 @@
// 添加当天弹出一次后,就不再弹出 "昨日弹窗"
let isYesterdayRankShow = getCookie('isYesterdayRankShow');
// alert(isYesterdayRankShow); alert(res.data.nowToTodayEndMillis)
if( isYesterdayRankShow ){
if(vm.doctorInfo.yesterdayPopped){
return;
}
const currentDateTime = Date.parse(new Date(vm.doctorInfo.todayDate.replace(/-/g, "/"))) || Date.parse(new Date());
// vm.checkShowAwardModal(currentDateTime);
if(vm.doctorInfo.userYesterdayRank==1){
vm.awardModalShow = true;
// vm.awardModalShow = true;
vm.checkShowAwardModal(currentDateTime);
vm.yestodayAwards = getFirstAwards(vm.doctorInfo.yesterdayDate) + '*1台';
}else if(vm.doctorInfo.userYesterdayRank>=2 && vm.doctorInfo.userYesterdayRank<=3){
vm.awardModalShow = true;
// vm.awardModalShow = true;
vm.checkShowAwardModal(currentDateTime);
vm.yestodayAwards = vm.awardList.No3 + '*1支';
}else if(vm.doctorInfo.userYesterdayRank>=4 && vm.doctorInfo.userYesterdayRank<=10){
vm.awardModalShow = true;
// vm.awardModalShow = true;
vm.checkShowAwardModal(currentDateTime);
vm.yestodayAwards = vm.awardList.No10 + '*1支';
}else{
vm.awardModalShow = false;
// vm.awardModalShow = false;
}
if(vm.awardModalShow){
......
......@@ -24,7 +24,7 @@
<div class="bubble_diailog marginTop16">
<i class="l"></i>
<b class="l"></b>
<p class="text">输入手机号领取课程</p>
<p class="text">医生好友输入手机号领取课程</p>
<p class="awards">
<span v-for="(item, index) in dealJsonData(this.node1)" :key="index">
+{{item.rewardQuantity}}{{changeAwardsName(item.rewardType)}}
......@@ -34,7 +34,7 @@
<div class="bubble_diailog marginTop20">
<i class="l"></i>
<b class="l"></b>
<p class="text">使用手机号登录云鹊医APP</p>
<p class="text">医生好友登录云鹊医APP并参与活动</p>
<p class="awards">
<span v-for="(item, index) in dealJsonData(this.node2)" :key="index">
+{{item.rewardQuantity}}{{changeAwardsName(item.rewardType)}}
......@@ -52,15 +52,15 @@
<p class="active-line" v-if="recordType==1"></p>
</div>
<div class="item right-item" :class="{activeItem:recordType==2}" @click="changeRecordType">
登录APP的好友
参与活动的好友
<p class="active-line" v-if="recordType==2"></p>
</div>
</div>
<div class="record-list" >
<div class="no-data" v-if="!inviteList.length" >
<img src="~/assets/img/icon-nodata.png" alt="">
<p v-if="recordType==1">提醒您的医生好友领取课程您将获得奖哦!</p>
<p v-if="recordType==2" class="text-get">提醒您的医生好友领取课程后登录云鹊医APP您将再获得奖励哦!</p>
<p v-if="recordType==1">提醒您的医生好友领取课程您将获得奖哦!</p>
<p v-if="recordType==2" class="text-get">提醒您的医生好友领取课程后登录云鹊医APP并参与云鹊奖活动,您将再获得奖品哦!</p>
</div>
<p class="sum" v-if="inviteList.length">{{recordTotal}}</p>
<div class="loadMore" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy"
......@@ -116,7 +116,7 @@
title: '邀请明细',
inviteList: [],
recordTotal: 0,
recordType: 1,
recordType: 1,//1课程,2登录
busy: true, //分页参数--start
pageNo: 0,
pageSize: 10,
......
......@@ -12,7 +12,7 @@
<img :src="rankData.avatarImageUrl" alt="">
<div class="right">
<div class="content" v-if="rankData.score">
<p class="item">
<p class="item">
<span class="label">{{activeBtnType?'今日':'累计'}}排名</span>
<span class="value">{{rankData.rank}}</span>
</p>
......@@ -27,6 +27,7 @@
<div class="con details">赶快参与活动赢每日奖品</div>
</div>
<p class="text" v-if="activeBtnType&&rankData.score">{{rankAwards}}</p>
<p class="text" v-if="!activeBtnType&&rankData.score">个人累计排行第1名可获1台iphone11</p>
</div>
</div>
</div>
......
<template>
<section class="index-wrap" :class="{'padbtm50': (showFixed && showRemindBtn)}">
<section class="index-wrap padbtm50" ><!--:class="{'padbtm50': (showFixed && showRemindBtn)}"-->
<h5header v-if="!isWeb" title="云鹊奖2019" :scrollVal="scrollVal" :baseShowHeight="25" :shareObj="shareObj" :setedScroll="true" />
<div id="imgHeight1">
<img src="../assets/img/img1.png" />
......@@ -19,11 +19,7 @@
</div>
</div>
<div v-show="loaded || isWeb" class="btn-appoint btn-app-share" id="imgHeight3">
<img v-if="showRemindBtn&&!remindStatus" @click="setRemind" class="btn-img" src="../assets/img/btn_appoint.png" />
<!-- <div v-if="remindStatus"> -->
<img v-if="remindStatus" class="seted-btn" src="../assets/img/btn_appointed.png">
<div v-if="remindStatus" class="appoint-time">12月16号我们会提示你参加活动</div>
<!-- </div> -->
<img id="goJoin" @click="goJoin" class="btn-img" src="../assets/img/icon-join.png" />
</div>
<div>
<img src="../assets/img/img6.png" />
......@@ -34,7 +30,7 @@
</div>
<div class="btn-share btn-app-share">
<img class="btn-share-bg" src="../assets/img/img11.png">
<img class="btn-share-click btn-img" @click="goShare" src="../assets/img/btn_share.png" />
<img class="btn-share-click btn-img" @click="goJoin" src="../assets/img/icon-join.png" />
</div>
<div class="rule-show">
<img src="../assets/img/rule_title.png" />
......@@ -62,8 +58,8 @@
<div class="abs-btn">
<img @click="ruleLink" src="../assets/img/btn_rules.png">
</div>
<div v-if="showFixed && showRemindBtn" @click="setRemind" class="fix-btn">
<div>开赛时提醒我</div>
<div @click="dowloadApp" class="fix-btn">
<div>下载APP</div>
</div>
</section>
</template>
......@@ -172,9 +168,14 @@ export default {
title,desc,link,imgUrl
});
})
const isWechat = /micromessenger\/([\d.]+)/i.test(window.navigator.userAgent || '');
if (_seft.isWeb && !isWechat) {
_seft.goJoin();
}
},
computed: {
showRemindBtn(){
showRemindBtn(){
// 没办法,这里需要对按钮的显示与否进行优化
// APP,已登录,等到加载完,再根据 [remindStatus] 显示按钮
// APP,未登录,直接显示【开赛提醒】按钮
......@@ -193,6 +194,12 @@ export default {
},
},
methods: {
dowloadApp() {
window.location.href = 'https://a.app.qq.com/o/simple.jsp?pkgname=com.picahealth.yunque';
},
goJoin() {
this.$callApp(`${window.location.origin}/year_end_ssr/activityPage`);
},
// 处理滚动按钮悬浮事件
scrollHandle() {
const _self = this;
......@@ -234,14 +241,9 @@ export default {
window.location.href = 'https://android.myapp.com/myapp/detail.htm?apkName=com.picahealth.yunque&ADTAG=mobile';
});
} else {
// if(!flag && !this.loaded){
// return;
// }
if(!this.loaded){
return;
}
// this.$rocNative.getToken().then(data => {
// const { userToken } = data;
checkToken(this.userToken).then(res=>{
if(res.code=='200006' || res.code == '200000'){
this.$rocNative.gotoLogin();
......
......@@ -54,9 +54,10 @@
<script>
import { getInviteInfo, getCourseById, getCaptchaGet, getAuthCode } from '@/service';
import { getShareUrl } from '@/utils/index';
import { wxShare } from '@/configs/wxShare';
import { Base64 } from 'js-base64';
const queryString = require('query-string');
const queryString = require('qs');
const TIMEALL = 60000; // 倒计时常量 60 秒
export default {
data(){
......@@ -72,16 +73,18 @@
time: TIMEALL,
btnMsg: '点击获取',
isReq: false,
path: getShareUrl() + 'year_end_ssr/activityPage',
// path: 'http://10.177.11.228:3009/year_end_ssr/activityPage'
}
},
async asyncData({ query }){
// 注释中间的代码请注意:
// queryString 这个npm会把字符串中的 + 变成空格,因此这里需要手动转一下 !!!
let parsed = queryString.parse(Base64.decode(Object.keys(query)[0]));
parsed.id = parsed.id.replace(' ', '+');
// 如果还有问题,可能需要换一个qs的包代替 queryString !!!
const { id, taskId, activityId } = parsed;
const id = parsed.id.replace(/\s+/g, '+');
const { taskId, activityId } = parsed;
console.log('id===>',id)
let avatarImageUrl = '', name = '', captchaImg = '', captchaToken = '';
const res = await getInviteInfo(id);
if(res.code === '000000'){
......@@ -99,6 +102,11 @@
}
},
mounted(){
const ua = navigator.userAgent.toLowerCase();//获取判断用的对象
if (ua.match(/MicroMessenger/i) == "micromessenger") {
}else{
this.$callApp(this.path);
}
document.querySelector('body').setAttribute('style', 'background: #FE9A51;');
this.checkCache();
// 微信分享
......
......@@ -4,7 +4,7 @@
<div class="res-wrap">
<img src="../assets/img/resimg0.png">
<h1>{{statusTxt}}</h1>
<h3>登录云鹊医APP立即开始学习</h3>
<h3>登录云鹊医APP立即参与云鹊奖活动</h3>
</div>
<div class="btn-app down-app" @click="downApp(1)">下载APP</div>
......@@ -62,9 +62,15 @@
statusTxt: '',
// showMask: false,
path: getShareUrl() + 'year_end_ssr/activityPage',
// path: 'http://10.177.11.228:3009/year_end_ssr/activityPage'
}
},
mounted(){
const ua = navigator.userAgent.toLowerCase();//获取判断用的对象
if (ua.match(/MicroMessenger/i) == "micromessenger") {
}else{
this.$callApp(this.path);
}
this.statusTxt = (this.$route.query.status.toString()=='true') ? '领取成功' : '您已领取';
document.querySelector('body').setAttribute('style', 'background: "";');
// 微信分享
......
......@@ -15,7 +15,15 @@ const mixins = {
_this.statusBarColor = _this.$rocNative.isAndroid?'#5C5C5C':'#fff'
_this.$rocNative.getStatusBarHeight().then(res => {
// resolve(data)
let height = _this.$rocNative.isIOS ? res.statusBarHeight : res.statusBarHeight / window.devicePixelRatio;
let height;
if(_this.$rocNative.isIOS && res.homeIndicatorHeight && res.statusBarHeight===0){
height = 44;
}else{
height = _this.$rocNative.isIOS ? res.statusBarHeight : res.statusBarHeight / window.devicePixelRatio;
}
// let height = _this.$rocNative.isIOS ? res.statusBarHeight : res.statusBarHeight / window.devicePixelRatio;
_this.statusBarHeight = height;
// 刘海屏底部高度
if(res.homeIndicatorHeight) {
......
......@@ -118,3 +118,12 @@ export const getEncryptId = () => {
withCredentials: true,
})
}
// 告诉后台弹窗出现过
export const sendPopped = () => {
return request({
url: `campaign/ranking/popped`,
method: 'post',
withCredentials: true
})
}
\ No newline at end of file
......@@ -11,7 +11,7 @@ Axios.interceptors.request.use(
// 0. Do something before request is sent
// 1. can be add loading
// 2. make sure if need token
console.log('config>>>>>> ', config)
// console.log('config>>>>>> ', config)
const method = config.method.toLocaleLowerCase();
if (method === 'post' || method === 'put' || method === 'delete') {}
if (config.withCredentials) {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册