提交 c91277dc 编写于 作者: guangjun.yang's avatar guangjun.yang

Merge branch 'dev-stage2-20191125' of...

Merge branch 'dev-stage2-20191125' of 192.168.110.53:com.pica.cloud.foundation.frontend/year-end-activitiy into dev-stage2-20191125

* 'dev-stage2-20191125' of 192.168.110.53:com.pica.cloud.foundation.frontend/year-end-activitiy: (110 commits)
  邀请明细页文案需求变更
  个人贡献榜列表名文案修改,需求变更增加累计勤奋分不为0为机构贡献勤奋分为0的状态展示
  排行榜文案修改
  邀请明细tab间距调整
  记录列表按钮样式修复
  邀请明细页记录列表tab文案变更
  调整优化活动首页部分样式
  活动主页部分样式调整优化
  更新活动首页部分样式
  更新活动主页顶部已完成的区块边框颜色
  活动主页样式修改优化
  修复部分安卓机分页默认失效bug
  更新主页云鹊豆获奖的图片替换
  更新用户未参加时活动主页文案提示
  优化微信分享组件
  替换首页背景图片更新
  累计排行榜数据修复
  活动主页界面UI布局调整及获奖Tips更新
  优化微信分享组件
  邀请明细页样式兼容性问题修复
  ...
img{
-webkit-user-select:none;
-moz-user-select:none;
-o-user-select:none;
user-select:none;
}
body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, li, a, p, h1, h2, h3, h4,h5, h6, i, b, textarea, button, input, select, figure, figcaption {
padding: 0;
margin: 0;
list-style: none;
font-style: normal;
text-decoration: none;
border: none;
color: #333;
font-weight: normal;
font-family: "PingFangSC-Regular","-apple-system-font","Source Han Sans","Helvetica Neue","sans-serif";
box-sizing: border-box;
-webkit-tap-highlight-color:transparent;
-webkit-font-smoothing: antialiased;
&:hover{
outline: none;
}
}
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
::-webkit-scrollbar
{
width: 0px;
height: 0px;
background-color: #F5F5F5;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
border-radius: 10px;
background-color: #F5F5F5;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb
{
border-radius: 10px;
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: #555;
}
input[type="button"], input[type="submit"], input[type="search"], input[type="reset"] {
-webkit-appearance: none;
}
textarea { -webkit-appearance: none;}
html,body{ html,body{
height: 100%; width: 100%;
width: 100%; /*overflow-x: hidden;
background-color: #fff; overflow-y: scroll;*/
}
.clear:after{
content: '';
display: block;
clear: both;
}
.clear{
zoom:1;
}
.back_img{
background-repeat: no-repeat;
background-size: 100% 100%;
}
.margin{
margin: 0 auto;
}
.left{
float: left;
}
.right{
float: right;
} }
img{
.hide{ -webkit-user-select:none;
display: none; -moz-user-select:none;
} -o-user-select:none;
user-select:none;
.show{ margin-bottom: -.5px;
display: block;
}
.ellipsis{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.paddingTop{
padding-top: 1.95rem;
}
@keyframes backOpacity{
0% { opacity: 1 }
25% { opacity: .5 }
50% { opacity: 1 }
75% { opacity: .5 }
100% { opacity: 1 }
}
.animation_opactiy{
animation: backOpacity 2s ease-in-out infinite;
}
.template-content .mint-cell-title {
display: none;
}
.template-content .mint-cell-value {
width: 100%;
}
.template-content .mint-cell-wrapper {
padding: 0;
} }
\ No newline at end of file
.in-activity-wrap{ .in-activity-wrap{
position: relative; position: relative;
width: 375px; height: auto; overflow: hidden; width: 100%; height: auto; overflow: hidden;
background: #F5663F; background: #F5663F;
.ellipsis{ .ellipsis{
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
float: left; overflow: hidden; float: left; overflow: hidden;
background: #E35D5B; background: #E35D5B;
box-sizing: border-box; box-sizing: border-box;
border-right: 1px solid #B50300; border-right: 1PX solid #B50300;
&:nth-child(4){ border-right: 0; } &:nth-child(4){ border-right: 0; }
color:rgba(255,181,179,1); color:rgba(255,181,179,1);
border-bottom: 2px solid #D80D0A; border-bottom: 2px solid #D80D0A;
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
&.over{ &.over{
color:rgba(224,100,97,1); border-bottom: 2px solid #7D1716; color:rgba(224,100,97,1); border-bottom: 2px solid #7D1716;
background: linear-gradient(to bottom, #B32B29, #9C2A29); background: linear-gradient(to bottom, #B32B29, #9C2A29);
border-right: 1PX solid #900300;
} }
&.active{ &.active{
color:rgba(173,14,59,1); border-bottom: 2px solid #CA6507; color:rgba(173,14,59,1); border-bottom: 2px solid #CA6507;
...@@ -46,13 +47,11 @@ ...@@ -46,13 +47,11 @@
} }
} }
} }
.big-bg-wrap{
width: 100%; height: auto; overflow: hidden;
background: url('../img/stage-two/bg-01.png') no-repeat left top;
background-size: 100% 100%;
.award-wrap{ .award-wrap{
width: 100%; height: 180px; overflow: hidden; width: 100%; height: 214px; overflow: hidden;
background: url('../img/stage-two/top-stage-bg.png') no-repeat left top;
background-size: 100% 100%;
.stage-rule{ .stage-rule{
width: 100%; height: 52px; overflow: hidden; width: 100%; height: 52px; overflow: hidden;
.stage-text{ .stage-text{
...@@ -72,7 +71,7 @@ ...@@ -72,7 +71,7 @@
.user-info-wrap{ .user-info-wrap{
position: relative; position: relative;
width: 355px; height: 480px; width: 355px; height: 480px;
margin: 2px auto 0; margin: 35px auto 0;
background: url('../img/stage-two/user-info-bg.png') no-repeat left top; background: url('../img/stage-two/user-info-bg.png') no-repeat left top;
background-size: 100% 100%; background-size: 100% 100%;
.gold-coin{ .gold-coin{
...@@ -86,7 +85,7 @@ ...@@ -86,7 +85,7 @@
float: left; float: left;
width: 50px; height: 50px; overflow: hidden; border: 0; display: block; width: 50px; height: 50px; overflow: hidden; border: 0; display: block;
border-radius: 50px; border-radius: 50px;
// border: 1px solid red; // border: 1PX solid red;
img{ img{
width: 50px; height: 50px; width: 50px; height: 50px;
} }
...@@ -99,7 +98,7 @@ ...@@ -99,7 +98,7 @@
color:#373839; color:#373839;
.name{ .name{
width: 100%; width: 100%;
font-size: 18px; line-height: 18px; margin-top: 5px; font-weight: 700; font-size: 18px; line-height: 28px; font-weight: 700;
.ellipsis; .ellipsis;
} }
.company{ .company{
...@@ -111,8 +110,8 @@ ...@@ -111,8 +110,8 @@
.detail{ .detail{
position: relative; position: relative;
float: left; box-sizing: border-box; font-weight: 700; float: left; box-sizing: border-box; font-weight: 700;
width: 68px; height: 25px; overflow: hidden; border-radius: 25px; border: 1px solid #FD5A2F; width: 68px; height: 25px; overflow: hidden; border-radius: 25px; border: 1PX solid #FD5A2F;
font-size: 12px; color: #FD5A2F; line-height: 23px; text-indent: 5px; font-size: 12px; color: #FD5A2F; line-height: 26px; text-indent: 5px;
margin-top: 18px; margin-top: 18px;
img{ img{
position: absolute; right: 5px; top: 50%; margin-top:-5px; position: absolute; right: 5px; top: 50%; margin-top:-5px;
...@@ -140,7 +139,7 @@ ...@@ -140,7 +139,7 @@
} }
.rank{ .rank{
position: relative; position: relative;
width: 142px; height: 13px; font-size: 13px; line-height: 13px; color: #996B3D; margin-top: 10px; width: 142px; height: 13px; font-size: 13px; line-height: 16px; color: #996B3D; margin-top: 10px;
font-weight: 700; font-weight: 700;
text-indent: 14px; text-indent: 14px;
img{ img{
...@@ -150,9 +149,9 @@ ...@@ -150,9 +149,9 @@
} }
.billboard-btn{ .billboard-btn{
position: relative; position: relative;
width: 99px; height: 25px; border: 1px solid #FD5A2F; border-radius: 25px; width: 99px; height: 25px; border: 1PX solid #FD5A2F; border-radius: 25px;
margin-top: 15px; margin-top: 15px;
font-size: 12px; font-weight: 700; line-height: 25px; color: #FD5A2F; text-indent: 10px; font-size: 12px; font-weight: 700; line-height: 28px; color: #FD5A2F; text-indent: 10px;
img{ img{
position: absolute; right: 8px; top: 50%; margin-top:-5px; position: absolute; right: 8px; top: 50%; margin-top:-5px;
width: 6px; height: 11px; width: 6px; height: 11px;
...@@ -164,7 +163,7 @@ ...@@ -164,7 +163,7 @@
.score-tips{ .score-tips{
width: 325px; height: 25px; overflow: hidden; margin: 0 auto; width: 325px; height: 25px; overflow: hidden; margin: 0 auto;
background:#FFF1D0; color: #FD5A2F; text-indent: 10px; font-size: 12px; line-height: 25px; background:#FFF1D0; color: #FD5A2F; text-indent: 10px; font-size: 12px; line-height: 25px;
border-radius: 25px; margin-top: 5px; border-radius: 8px; margin-top: 5px;
} }
.bean-wrap{ .bean-wrap{
width: 325px; height: 27px; overflow: hidden; width: 325px; height: 27px; overflow: hidden;
...@@ -179,10 +178,10 @@ ...@@ -179,10 +178,10 @@
position: relative; position: relative;
float: right; float: right;
width: 81px; height: 25px; width: 81px; height: 25px;
border: 1px solid #FD5A2F; border-radius: 25px; border: 1PX solid #FD5A2F; border-radius: 25px;
line-height: 25px; text-indent: 8px; font-size: 12px; line-height: 25px; color: #FD5A2F; font-weight: 700; line-height: 25px; text-indent: 8px; font-size: 12px; line-height: 28px; color: #FD5A2F; font-weight: 700;
img{ img{
position: absolute; right: 5px; top: 50%; margin-top:-6px; position: absolute; right: 5px; top: 50%; margin-top:-5px;
width: 6px; height: 11px; width: 6px; height: 11px;
} }
} }
...@@ -217,7 +216,7 @@ ...@@ -217,7 +216,7 @@
// 未登录 // 未登录
.not-login-wrap{ .not-login-wrap{
position: relative; position: relative;
width: 325px; height: 50px; margin: 0 auto; width: 325px; height: 50px; margin: 35px auto 0;
padding: 20px 15px; padding: 20px 15px;
border-radius: 13px; border-radius: 13px;
background: #FFF; background: #FFF;
...@@ -247,8 +246,8 @@ ...@@ -247,8 +246,8 @@
position: relative; position: relative;
float: left; float: left;
width: 56px; height: 25px; margin: 14px 0 0 24px; width: 56px; height: 25px; margin: 14px 0 0 24px;
border: 1px solid #FD5A2F; border: 1PX solid #FD5A2F;
border-radius: 25px; font-size: 12px; line-height: 25px; text-indent: 8px; border-radius: 25px; font-size: 12px; line-height: 27px; text-indent: 8px;
color: #FD5A2F; font-weight: 700; color: #FD5A2F; font-weight: 700;
&.login-but-nojoin{ &.login-but-nojoin{
width: 70px; height: 25px; width: 70px; height: 25px;
...@@ -261,13 +260,12 @@ ...@@ -261,13 +260,12 @@
} }
} }
}
// 邀请医生好友学课程 // 邀请医生好友学课程
.invite-doctor-wrap{ .invite-doctor-wrap{
position: relative; position: relative;
width: 355px; height: 242px; width: 355px; height: 242px;
margin: 50px auto 0; margin: 0 auto 0;
background: #FFF; border-radius: 13px; background: #FFF; border-radius: 13px;
.top-head-icon{ .top-head-icon{
position: absolute; left:50%; top:-32px; margin-left: -158px; z-index:200; position: absolute; left:50%; top:-32px; margin-left: -158px; z-index:200;
...@@ -303,7 +301,7 @@ ...@@ -303,7 +301,7 @@
.text{ .text{
position: absolute; left: 50%; top: 58px; position: absolute; left: 50%; top: 58px;
width: 60px; margin-left: -30px; width: 60px; margin-left: -30px;
height: 12px; font-size: 12px; color: #676869; text-align: center; line-height: 12px; height: 12px; font-size: 12px; color: #676869; text-align: center; line-height: 14px;
.ellipsis; .ellipsis;
&.see-more{ &.see-more{
color: #FD5D33; color: #FD5D33;
...@@ -321,7 +319,7 @@ ...@@ -321,7 +319,7 @@
.text{ .text{
position: absolute; left: 0; top: 0; position: absolute; left: 0; top: 0;
width: 331px; height: 50px; width: 331px; height: 50px;
color: #B42F00; font-size: 22px; line-height: 45px; color: #B42F00; font-size: 22px; line-height: 53px;
text-align: center; font-weight: 700; letter-spacing: 1px; text-align: center; font-weight: 700; letter-spacing: 1px;
} }
} }
...@@ -334,7 +332,7 @@ ...@@ -334,7 +332,7 @@
// 每日任务 // 每日任务
.daily-task{ .daily-task{
width: 325px; height: 278px; margin: 30px auto 0; width: 325px; height: 278px; margin: 35px auto 0;
background: #FFF; border-radius: 13px; background: #FFF; border-radius: 13px;
padding: 0 15px; padding: 0 15px;
.top-center-bar{ .top-center-bar{
...@@ -367,7 +365,7 @@ ...@@ -367,7 +365,7 @@
width: 60px; height: 30px; border-radius: 30px; width: 60px; height: 30px; border-radius: 30px;
overflow: hidden; float: left; overflow: hidden; float: left;
font-weight: 700; color: #FFF; font-weight: 700; color: #FFF;
font-size: 13px; line-height: 31px; text-align: center; font-size: 13px; line-height: 32px; text-align: center;
background: linear-gradient(to right, #FEA356, #FF5824); background: linear-gradient(to right, #FEA356, #FF5824);
&.done{ &.done{
color: #EE5C2E; background: #FFD9CD; color: #EE5C2E; background: #FFD9CD;
...@@ -433,6 +431,9 @@ ...@@ -433,6 +431,9 @@
width: 280px; height: 14px; width: 280px; height: 14px;
font-size: 14px; line-height: 14px; text-align: center; font-size: 14px; line-height: 14px; text-align: center;
color: #676869; margin-top: 15px; color: #676869; margin-top: 15px;
span{
color: #F46235;
}
} }
.bottom-btn{ .bottom-btn{
width: 209px; height: 44px; width: 209px; height: 44px;
...@@ -442,8 +443,8 @@ ...@@ -442,8 +443,8 @@
} }
.close-btn{ .close-btn{
position: absolute; left: 50%; bottom: -50px; margin-left: -15px; position: absolute; left: 50%; bottom: -50px; margin-left: -17px;
width: 30px; height: 30px; width: 34px; height: 34px;
background: url('../img/stage-two/close-toast-icon.png') no-repeat center center; background: url('../img/stage-two/close-toast-icon.png') no-repeat center center;
background-size: 30px; height: 30px; background-size: 30px; height: 30px;
} }
......
.index-wrap { .index-wrap {
width: 100%;
position: relative;
div { div {
width: 375px; width: 100%;
img { img {
width: 375px; width: 100%;
display: block; display: block;
} }
} }
...@@ -12,7 +13,7 @@ ...@@ -12,7 +13,7 @@
height: 72.5px; height: 72.5px;
background: url(../img/img4.png) no-repeat center center; background: url(../img/img4.png) no-repeat center center;
background-size: 100% 100%; background-size: 100% 100%;
margin-bottom: -.5px;
.wrap-count { .wrap-count {
width: 325px; width: 325px;
height: 72.5px; height: 72.5px;
...@@ -50,7 +51,7 @@ ...@@ -50,7 +51,7 @@
height: 94.5px; height: 94.5px;
background: url(../img/img5.png) no-repeat center center; background: url(../img/img5.png) no-repeat center center;
background-size: 100% 100%; background-size: 100% 100%;
margin-bottom: -.5px;
img { img {
padding-top: 15px; padding-top: 15px;
} }
...@@ -68,7 +69,7 @@ ...@@ -68,7 +69,7 @@
height: 166px; height: 166px;
background: url(../img/img11.png) no-repeat center center; background: url(../img/img11.png) no-repeat center center;
background-size: 100% 100%; background-size: 100% 100%;
margin-bottom: -.5px;
img { img {
padding-top: 81px; padding-top: 81px;
} }
...@@ -127,7 +128,7 @@ ...@@ -127,7 +128,7 @@
.btn-rule { .btn-rule {
width: 110px; width: 110px;
height: 15px; // height: 15px;
font-size: 15px; font-size: 15px;
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
line-height: 15px; line-height: 15px;
...@@ -146,7 +147,7 @@ ...@@ -146,7 +147,7 @@
} }
.fix-btn { .fix-btn {
width: 375px; width: 100%;
height: 50px; height: 50px;
position: fixed; position: fixed;
left: 0; left: 0;
...@@ -187,25 +188,26 @@ ...@@ -187,25 +188,26 @@
// 微信分享助力活动 // 微信分享助力活动
.wx-share-wrap { .wx-share-wrap {
width: 375px; width: 100%;
// height: 601.5px; height: 100vh;
button,input{ button,input{
appearance: none; appearance: none;
border: none; border: none;
outline: none; outline: none;
} }
section { section {
width: 375px; width: 100%;
// height: 601.5px;
padding-bottom: 27.5px; padding-bottom: 27.5px;
background: url(../img/bgtop.png) no-repeat; background: url(../img/bgtop.png) no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
margin-bottom: -.5px;
.invite-info{ .invite-info{
padding-top: 20px;
img{ img{
width: 50px; width: 50px;
height: 50px; height: 50px;
display: block; display: block;
padding-top: 20px; border-radius: 50%;
margin: 0 auto; margin: 0 auto;
} }
.title1{ .title1{
...@@ -304,7 +306,7 @@ ...@@ -304,7 +306,7 @@
} }
} }
button{ button{
width:56px; width:60px;
height:40px; height:40px;
top: 2.5px; top: 2.5px;
right: 20px; right: 20px;
...@@ -368,11 +370,9 @@ ...@@ -368,11 +370,9 @@
} }
} }
.wx-share-result{ .wx-share-result{
width: 375px; width: 100%;
// height: 601.5px;
section{ section{
width: 375px; width: 100%;
// height: 601.5px;
padding-top: 40px; padding-top: 40px;
.res-wrap{ .res-wrap{
img{ img{
...@@ -418,7 +418,7 @@ ...@@ -418,7 +418,7 @@
color:rgba(103,104,105,1); color:rgba(103,104,105,1);
} }
.line{ .line{
width: 375px; width: 100%;
height: 5px; height: 5px;
background:rgba(248,249,250,1); background:rgba(248,249,250,1);
} }
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
methods: { methods: {
handlerMethod() { handlerMethod() {
if(this.btnType) { if(this.btnType) {
this.$router.push('/in-activity') this.$router.push('/activityPage')
} else { } else {
this.$emit('sureBtn') this.$emit('sureBtn')
} }
......
header{ header{
width: 375px; width: 100%;
position: fixed; position: fixed;
left: 0; left: 0;
top: 0; top: 0;
z-index: 300; z-index: 300;
.status{ .status{
width: 375px; width: 100%;
} }
.head-wrap{ .head-wrap{
width: 375px; width: 100%;
height: 44Px; height: 44Px;
line-height: 44Px; line-height: 44Px;
box-sizing: border-box; box-sizing: border-box;
......
...@@ -51,7 +51,11 @@ ...@@ -51,7 +51,11 @@
isCheckAuth: { // 是否校驗權限 isCheckAuth: { // 是否校驗權限
type: Boolean, type: Boolean,
default: false default: false
} },
isStageTwoHomePage: { // 是否是二期主页面
type: Boolean,
default: false
},
}, },
data(){ data(){
return { return {
...@@ -98,15 +102,27 @@ ...@@ -98,15 +102,27 @@
}) })
}, },
goBack(){ goBack(){
this.$sendBuriedData({ if(this.isStageTwoHomePage){
component_tag: `301#301002` this.$sendBuriedData({
}); component_tag: `302#302002`
});
}else{
this.$sendBuriedData({
component_tag: `301#301002`
});
}
this.$rocNative.goBack(); this.$rocNative.goBack();
}, },
goShare(){ goShare(){
this.$sendBuriedData({ if(this.isStageTwoHomePage){
component_tag: `301#301001` this.$sendBuriedData({
}); component_tag: `302#302001`
});
}else{
this.$sendBuriedData({
component_tag: `301#301001`
});
}
if(this.isCheckAuth){ if(this.isCheckAuth){
this.$emit('checkAuth', ()=>{ this.$emit('checkAuth', ()=>{
this.$rocNative.shareWechat(this.shareObj); this.$rocNative.shareWechat(this.shareObj);
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<header class="header-container"> <header class="header-container">
<img @click="goBack" src="~/assets/img/icon-back.png" alt=""> <img @click="goBack" src="~/assets/img/icon-back.png" alt="">
{{title}} {{title}}
<div class="btn-right" v-if="rightText">{{rightText}}</div> <div class="btn-right" v-if="rightText" @click="rightBtnClick">{{rightText}}</div>
</header> </header>
</section> </section>
</template> </template>
...@@ -44,6 +44,9 @@ ...@@ -44,6 +44,9 @@
}else { }else {
this.$rocNative.goBack() this.$rocNative.goBack()
} }
},
rightBtnClick() {
this.$emit('handleRightBtn')
} }
} }
} }
......
...@@ -108,21 +108,39 @@ ...@@ -108,21 +108,39 @@
height: 25px; height: 25px;
position: absolute; position: absolute;
left: 13px; left: 13px;
top: 10px;
} }
.head-btn { .head-btn {
width: 193px; width: 193px;
height: 30px; height: 30px;
display: flex; display: flex;
margin: 0 auto; margin: 0 auto;
position: relative;
.btn { .btn {
padding: 0 15px;
font-size: 13px; font-size: 13px;
font-weight: 700; font-weight: 700;
height: 30px; height: 30px;
padding: 0 15px; text-align: center;
line-height: 30px; line-height: 31px;
color: #373839; color: #373839;
z-index: 2; position: relative;
}
.btn:after {
position: absolute;
content: " ";
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 200%;
height:200%;
border: 1PX solid #C7C8C9;
//border-radius: 40px;
color: #C7C8C9;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scale(.5, .5);
transform: scale(.5, .5);
} }
.left { .left {
border-bottom-left-radius: 15px; border-bottom-left-radius: 15px;
...@@ -132,32 +150,25 @@ ...@@ -132,32 +150,25 @@
border-bottom-right-radius: 15px; border-bottom-right-radius: 15px;
border-top-right-radius: 15px; border-top-right-radius: 15px;
} }
.left:after {
border-bottom-left-radius: 40px;
border-top-left-radius: 40px;
border-right: none;
}
.right:after{
border-bottom-right-radius: 40px;
border-top-right-radius: 40px;
border-left: none;
}
.active-btn { .active-btn {
background: #F8F9FA; background: #F8F9FA;
} }
.line { .line {
width: 0.5px; width: 0.5px;
height: 100%; height: 31px;
background: #C7C8C9; background: #C7C8C9;
} }
} }
.head-btn:after {
position: absolute;
content: " ";
top: 0;
left: 0;
bottom: 0;
right: 0;
width: 200%;
height:200%;
border: 1PX solid #C7C8C9;
border-radius: 40px;
color: #C7C8C9;
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
-webkit-transform: scale(.5, .5);
transform: scale(.5, .5);
}
.right-btn { .right-btn {
color: #373839; color: #373839;
font-size: 13px; font-size: 13px;
......
...@@ -18,7 +18,7 @@ export default { ...@@ -18,7 +18,7 @@ export default {
</script> </script>
<style lang="less"> <style lang="less">
.smo-share-mask{ .smo-share-mask{
width: 375px; width: 100%;
height: 100%; height: 100%;
position: fixed; position: fixed;
left: 0; left: 0;
......
...@@ -39,6 +39,7 @@ module.exports = { ...@@ -39,6 +39,7 @@ module.exports = {
** Global CSS ** Global CSS
*/ */
css: [ css: [
'~/assets/style/common.less',
'vant/lib/index.css' 'vant/lib/index.css'
], ],
/* /*
......
...@@ -4629,7 +4629,23 @@ ...@@ -4629,7 +4629,23 @@
"prepend-http": "^1.0.0", "prepend-http": "^1.0.0",
"query-string": "^4.1.0", "query-string": "^4.1.0",
"sort-keys": "^1.0.0" "sort-keys": "^1.0.0"
},
"dependencies": {
"query-string": {
"version": "4.3.4",
"resolved": "http://192.168.110.93:4873/query-string/-/query-string-4.3.4.tgz",
"integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
"requires": {
"object-assign": "^4.1.0",
"strict-uri-encode": "^1.0.0"
}
}
} }
},
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "http://192.168.110.93:4873/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
} }
} }
}, },
...@@ -8481,7 +8497,8 @@ ...@@ -8481,7 +8497,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
...@@ -8522,7 +8539,8 @@ ...@@ -8522,7 +8539,8 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
...@@ -8532,7 +8550,8 @@ ...@@ -8532,7 +8550,8 @@
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
...@@ -8649,7 +8668,8 @@ ...@@ -8649,7 +8668,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
...@@ -8661,6 +8681,7 @@ ...@@ -8661,6 +8681,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
...@@ -8675,6 +8696,7 @@ ...@@ -8675,6 +8696,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
...@@ -8682,12 +8704,14 @@ ...@@ -8682,12 +8704,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.3.5", "version": "2.3.5",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
"yallist": "^3.0.0" "yallist": "^3.0.0"
...@@ -8706,6 +8730,7 @@ ...@@ -8706,6 +8730,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
...@@ -8786,7 +8811,8 @@ ...@@ -8786,7 +8811,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
...@@ -8798,6 +8824,7 @@ ...@@ -8798,6 +8824,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
...@@ -8883,7 +8910,8 @@ ...@@ -8883,7 +8910,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
...@@ -8919,6 +8947,7 @@ ...@@ -8919,6 +8947,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
...@@ -8938,6 +8967,7 @@ ...@@ -8938,6 +8967,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
...@@ -8981,12 +9011,14 @@ ...@@ -8981,12 +9011,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.3", "version": "3.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },
...@@ -9662,9 +9694,9 @@ ...@@ -9662,9 +9694,9 @@
"integrity": "sha512-gwtKq3QWbXMQpdHf7tFKQWYvknQBU+qJUFxLxskHL10mChguSkyl7CxFND1mafVApTH6N1qgAOKKQLILgaJhTw==" "integrity": "sha512-gwtKq3QWbXMQpdHf7tFKQWYvknQBU+qJUFxLxskHL10mChguSkyl7CxFND1mafVApTH6N1qgAOKKQLILgaJhTw=="
}, },
"pica-wx-share": { "pica-wx-share": {
"version": "1.1.3", "version": "1.2.0",
"resolved": "http://192.168.110.93:4873/pica-wx-share/-/pica-wx-share-1.1.3.tgz", "resolved": "http://192.168.110.93:4873/pica-wx-share/-/pica-wx-share-1.2.0.tgz",
"integrity": "sha512-iPUiTr4Gj0ndetUViqkNr9tPcJxycVFSMVlWCowQNe3mlZvfrFddKbD6AXLWB9Pc9aducYmYcTwGzX7s8PWspA==", "integrity": "sha512-n3eD91DADLLKzfDAncGSJ1TKZW78aVIQ7n+HivbZMrzC1bzq1+0wfkBrElcBPTCYSE62NMzBFrX6XvDme4eW+w==",
"requires": { "requires": {
"axios": "^0.18.0", "axios": "^0.18.0",
"weixin-js-sdk": "^1.4.0-test" "weixin-js-sdk": "^1.4.0-test"
...@@ -10843,12 +10875,13 @@ ...@@ -10843,12 +10875,13 @@
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
}, },
"query-string": { "query-string": {
"version": "4.3.4", "version": "6.9.0",
"resolved": "http://192.168.110.93:4873/query-string/-/query-string-4.3.4.tgz", "resolved": "http://192.168.110.93:4873/query-string/-/query-string-6.9.0.tgz",
"integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "integrity": "sha512-KG4bhCFYapExLsUHrFt+kQVEegF2agm4cpF/VNc6pZVthIfCc/GK8t8VyNIE3nyXG9DK3Tf2EGkxjR6/uRdYsA==",
"requires": { "requires": {
"object-assign": "^4.1.0", "decode-uri-component": "^0.2.0",
"strict-uri-encode": "^1.0.0" "split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
} }
}, },
"querystring": { "querystring": {
...@@ -12062,6 +12095,11 @@ ...@@ -12062,6 +12095,11 @@
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
"integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
}, },
"split-on-first": {
"version": "1.1.0",
"resolved": "http://192.168.110.93:4873/split-on-first/-/split-on-first-1.1.0.tgz",
"integrity": "sha1-9hCv7uOxK84dDDBCXnY5i3gkml8="
},
"split-string": { "split-string": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "http://192.168.110.93:4873/split-string/-/split-string-3.1.0.tgz", "resolved": "http://192.168.110.93:4873/split-string/-/split-string-3.1.0.tgz",
...@@ -12274,9 +12312,9 @@ ...@@ -12274,9 +12312,9 @@
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
}, },
"strict-uri-encode": { "strict-uri-encode": {
"version": "1.1.0", "version": "2.0.0",
"resolved": "http://192.168.110.93:4873/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "resolved": "http://192.168.110.93:4873/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
}, },
"string-length": { "string-length": {
"version": "2.0.0", "version": "2.0.0",
......
...@@ -107,8 +107,13 @@ ...@@ -107,8 +107,13 @@
font-size: 14px; font-size: 14px;
padding: 0 25px 0 13px; padding: 0 25px 0 13px;
margin-bottom: 3px; margin-bottom: 3px;
.rank-name {
display: inline-block;
width: 56px;
text-align: center;
}
.marginL { .marginL {
margin-left: 11px; margin-left: 7.5px;
} }
.marginAuto { .marginAuto {
margin-left: auto; margin-left: auto;
...@@ -149,7 +154,7 @@ ...@@ -149,7 +154,7 @@
font-size: 16px; font-size: 16px;
font-weight: 700; font-weight: 700;
margin-left: 25px; margin-left: 25px;
width: 130px; width: 200px;
} }
.num { .num {
color: #373839; color: #373839;
...@@ -160,6 +165,23 @@ ...@@ -160,6 +165,23 @@
} }
} }
} }
.no-more {
height: 62px;
display: flex;
justify-content: center;
align-items: center;
.line {
display: inline-block;
width: 84px;
height: 1px;
background:#F7F7F7;
}
.text {
color: #BEC2CC;
font-size: 13px;
margin: 0 8px;
}
}
.no-data { .no-data {
margin-top: 112px; margin-top: 112px;
img { img {
...@@ -189,4 +211,10 @@ ...@@ -189,4 +211,10 @@
margin: 0 auto; margin: 0 auto;
} }
} }
.textOverflow {
width: 285px;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
} }
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div class="info info-hospital" v-if="activeBtnType"> <div class="info info-hospital" v-if="activeBtnType">
<img src="~/assets/img/hospital-ranking/icon-hospital.png" alt=""> <img src="~/assets/img/hospital-ranking/icon-hospital.png" alt="">
<div class="content" v-if="hospitalRanking.score"> <div class="content" v-if="hospitalRanking.score">
<div class="con main-name">{{hospitalRanking.name}}</div> <div class="con main-name textOverflow">{{hospitalRanking.name}}</div>
<div class="con details"> <div class="con details">
<p class="item"> <p class="item">
<span class="label">累计排名</span> <span class="label">累计排名</span>
...@@ -23,21 +23,21 @@ ...@@ -23,21 +23,21 @@
</div> </div>
</div> </div>
<div class="not-join" v-else> <div class="not-join" v-else>
<div class="con main-name">{{hospitalRanking.name}}</div> <div class="con main-name textOverflow">{{hospitalRanking.name}}</div>
<div class="con details">您的机构还未参与活动</div> <div class="con details">您的机构还未参与活动</div>
</div> </div>
</div> </div>
<div class="info info-doctor" v-else> <div class="info info-doctor" v-else>
<img :src="contributionRanking.avatarImageUrl" alt=""> <img :src="contributionRanking.avatarImageUrl" alt="">
<div class="content" v-if="contributionRanking.score"> <div class="content" v-if="contributionRanking.userTotalScore">
<div class="con details details-d"> <div class="con details details-d">
<p class="item"> <p class="item">
<span class="label">累计排名</span> <span class="label">我的贡献排名</span>
<span class="value">{{contributionRanking.rank}}</span> <span class="value">{{contributionRanking.score?contributionRanking.rank:'-'}}</span>
</p> </p>
<p class="line"></p> <p class="line"></p>
<p class="item"> <p class="item">
<span class="label">累计勤奋分 </span> <span class="label">我贡献的勤奋分</span>
<span class="value">{{contributionRanking.score}}</span> <span class="value">{{contributionRanking.score}}</span>
</p> </p>
</div> </div>
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
</div> </div>
<div class="not-join" v-else> <div class="not-join" v-else>
<div class="con main-name">您还未参加活动</div> <div class="con main-name">您还未参加活动</div>
<div class="con details">赶快参与活动赢每日奖品</div> <div class="con details">赶快参加为您的机构争取荣誉吧</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -53,32 +53,42 @@ ...@@ -53,32 +53,42 @@
<div class="description description-h" v-if="activeBtnType"><span>{{dealRankName(hospitalRanking.hospitalType)}}</span>排行实时刷新,部分原因存在几分钟延迟</div> <div class="description description-h" v-if="activeBtnType"><span>{{dealRankName(hospitalRanking.hospitalType)}}</span>排行实时刷新,部分原因存在几分钟延迟</div>
<div class="description description-d" v-else>排行实时刷新,部分原因存在几分钟延迟</div> <div class="description description-d" v-else>排行实时刷新,部分原因存在几分钟延迟</div>
<div class="ranking-title"> <div class="ranking-title">
<span>TOP100</span> <span class="rank-name">{{activeBtnType?'TOP100':'排行'}}</span>
<!--<span class="marginL">机构名称</span> <!--<span class="marginL">机构名称</span>
<span class="marginAuto">机构勤奋分</span>--> <span class="marginAuto">机构勤奋分</span>-->
<span class="marginL">{{activeBtnType?'机构名称':'机构成员'}}</span> <span class="marginL">{{activeBtnType?'机构名称':'机构成员'}}</span>
<span class="marginAuto">{{activeBtnType?'机构勤奋分':'贡献勤奋分'}}</span> <span class="marginAuto">{{activeBtnType?'机构勤奋分':'贡献勤奋分'}}</span>
</div> </div>
<div class="ranking-list" :style="{marginBottom: `${50+homeIndicatorHeight}` + 'Px'}"> <div class="ranking-list" :style="{marginBottom: `${50+homeIndicatorHeight}` + 'Px'}">
<div class="item" v-if="activeBtnType" v-for="(itemH,index) in hospitalRanking.topRankList"> <div class="item" v-if="activeBtnType" v-for="(itemH,indexH) in topRankListH" :key="indexH">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon"> <img v-if="indexH<=2" :src="dealRankIcon(indexH)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p> <p v-else class="icon-num" >{{indexH+1}}</p>
<p class="hospital-name">{{itemH.name}}</p> <p class="hospital-name">{{itemH.name}}</p>
<p class="num">{{itemH.score}}</p> <p class="num">{{itemH.score}}</p>
</div> </div>
<div class="item" v-if="!activeBtnType" v-for="(itemD,index) in contributionRanking.topRankList"> <div class="item" v-if="!activeBtnType" v-for="(itemD,indexD) in topRankListC" :key="indexD">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon"> <img v-if="indexD<=2" :src="dealRankIcon(indexD)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p> <p v-else class="icon-num" >{{indexD+1}}</p>
<img :src="itemD.avatarImageUrl" alt="" class="doctor-photo"> <img :src="itemD.avatarImageUrl" alt="" class="doctor-photo">
<p class="doctor-name">{{itemD.name}}</p> <p class="doctor-name">{{itemD.name}}</p>
<p class="num">{{itemD.score}}</p> <p class="num">{{itemD.score}}</p>
</div> </div>
<div class="no-more" v-if="activeBtnType&&topRankListH.length>=10">
<span class="line"></span>
<span class="text">到底啦</span>
<span class="line"></span>
</div>
<div class="no-more" v-if="!activeBtnType&&topRankListC.length>=10">
<span class="line"></span>
<span class="text">到底啦</span>
<span class="line"></span>
</div>
</div> </div>
</div> </div>
<div class="main-content" v-if="noContributionRanking"> <div class="main-content" v-if="noContributionRanking">
<div class="no-data"> <div class="no-data">
<img src="~/assets/img/icon-nodata.png" alt=""> <img src="~/assets/img/icon-nodata.png" alt="">
<p>暂无记录,您还没有参加活动</p> <p>您的机构还没有人参加活动</p>
<div class="button" @click="goInActivity">立即参加</div> <div class="button" @click="goInActivity">立即参加</div>
</div> </div>
</div> </div>
...@@ -111,7 +121,9 @@ ...@@ -111,7 +121,9 @@
}, },
activeBtnType: true, //true机构,false人员 activeBtnType: true, //true机构,false人员
hospitalRanking: {}, hospitalRanking: {},
topRankListH: [],//机构排行
contributionRanking: {}, contributionRanking: {},
topRankListC: [], //贡献排行
btnText: '助力机构 创造佳绩', btnText: '助力机构 创造佳绩',
btnType: true, btnType: true,
noContributionRanking: false //是否有人员贡献榜单数据 noContributionRanking: false //是否有人员贡献榜单数据
...@@ -125,7 +137,7 @@ ...@@ -125,7 +137,7 @@
}, },
methods: { methods: {
goInActivity() { goInActivity() {
this.$router.push('/in-activity') this.$router.push('/activityPage')
}, },
changeRanking(val) { changeRanking(val) {
this.activeBtnType = val; this.activeBtnType = val;
...@@ -133,7 +145,7 @@ ...@@ -133,7 +145,7 @@
}, },
dealRankName(hospitalType) { dealRankName(hospitalType) {
if(hospitalType == 0) { if(hospitalType == 0) {
return '火星榜'; return '星火榜';
} else if(hospitalType == 1) { } else if(hospitalType == 1) {
return '萌芽榜'; return '萌芽榜';
} else if(hospitalType == 2) { } else if(hospitalType == 2) {
...@@ -156,6 +168,7 @@ ...@@ -156,6 +168,7 @@
getHospitalRanking().then(res => { getHospitalRanking().then(res => {
if(res.code == '000000') { if(res.code == '000000') {
this.hospitalRanking = res.data; this.hospitalRanking = res.data;
this.topRankListH = res.data.topRankList
} }
}) })
}, },
...@@ -163,6 +176,7 @@ ...@@ -163,6 +176,7 @@
getContributionRanking().then(res => { getContributionRanking().then(res => {
if(res.code == '000000') { if(res.code == '000000') {
this.contributionRanking = res.data; this.contributionRanking = res.data;
this.topRankListC = res.data.topRankList
if(this.contributionRanking.topRankList.length) { if(this.contributionRanking.topRankList.length) {
this.noContributionRanking = false; this.noContributionRanking = false;
} else { } else {
......
...@@ -136,10 +136,10 @@ ...@@ -136,10 +136,10 @@
} }
} }
.left-item { .left-item {
margin-left: 82.5px; margin-left: 53.5px;
} }
.right-item { .right-item {
margin-right: 82.5px; margin-right: 53.5px;
} }
.activeItem { .activeItem {
color: #373839; color: #373839;
......
...@@ -24,14 +24,22 @@ ...@@ -24,14 +24,22 @@
<div class="bubble_diailog marginTop16"> <div class="bubble_diailog marginTop16">
<i class="l"></i> <i class="l"></i>
<b class="l"></b> <b class="l"></b>
<p class="text">输入手机号领取课程</p> <p class="text">医生好友输入手机号领取课程</p>
<p class="awards">+20勤奋分 +20云鹊豆</p> <p class="awards">
<span v-for="(item, index) in dealJsonData(this.node1)" :key="index">
+{{item.rewardQuantity}}{{changeAwardsName(item.rewardType)}}
</span>
</p>
</div> </div>
<div class="bubble_diailog marginTop20"> <div class="bubble_diailog marginTop20">
<i class="l"></i> <i class="l"></i>
<b class="l"></b> <b class="l"></b>
<p class="text">使用手机号登录云鹊APP</p> <p class="text">医生好友登录云鹊医APP并参与活动</p>
<p class="awards">+80勤奋分 +80云鹊豆</p> <p class="awards">
<span v-for="(item, index) in dealJsonData(this.node2)" :key="index">
+{{item.rewardQuantity}}{{changeAwardsName(item.rewardType)}}
</span>
</p>
</div> </div>
</div> </div>
</div> </div>
...@@ -40,32 +48,37 @@ ...@@ -40,32 +48,37 @@
<div class="record-details" :style="{marginBottom: `${50+homeIndicatorHeight}Px`}"> <div class="record-details" :style="{marginBottom: `${50+homeIndicatorHeight}Px`}">
<div class="tab-nav"> <div class="tab-nav">
<div class="item left-item" :class="{activeItem:recordType==1}" @click="changeRecordType"> <div class="item left-item" :class="{activeItem:recordType==1}" @click="changeRecordType">
领取记录 领取课程的好友
<p class="active-line" v-if="recordType==1"></p> <p class="active-line" v-if="recordType==1"></p>
</div> </div>
<div class="item right-item" :class="{activeItem:recordType==2}" @click="changeRecordType"> <div class="item right-item" :class="{activeItem:recordType==2}" @click="changeRecordType">
登录记录 参与活动的好友
<p class="active-line" v-if="recordType==2"></p> <p class="active-line" v-if="recordType==2"></p>
</div> </div>
</div> </div>
<div class="record-list" v-if="inviteList.length" > <div class="record-list" >
<p class="sum">{{recordTotal}}</p> <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>
</div>
<p class="sum" v-if="inviteList.length">{{recordTotal}}</p>
<div class="loadMore" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" <div class="loadMore" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy"
infinite-scroll-distance="10"> infinite-scroll-distance="10">
<div class="record-item" v-if="inviteList.length" v-for="item in inviteList"> <div class="record-item" v-if="inviteList.length" v-for="(item, index) in inviteList" :key="index">
<img :src="item.avatarImageUrl" alt="" class="person-photo"> <img :src="item.avatarImageUrl" alt="" class="person-photo">
<div class="person-info"> <div class="person-info">
<p class="phone">{{item.mobile}}</p> <p class="phone">{{item.mobile}}</p>
<p class="time">{{item.inviteDate}}</p> <p class="time">{{item.inviteDate}}</p>
</div> </div>
<div class="awards"> <div class="awards">
<p class="item" v-for="item1 in dealJsonData(item.rewardJsonInfo)"> <p class="item" v-for="(item1, index1) in dealJsonData(item.rewardJsonInfo)" :key="index1">
<span class="num">+{{item1.rewardQuantity}}</span> <span class="num">+{{item1.rewardQuantity}}</span>
<span class="award-name">{{changeAwardsName(item1.rewardType)}}</span> <span class="award-name">{{changeAwardsName(item1.rewardType)}}</span>
</p> </p>
</div> </div>
</div> </div>
<div class="no-more" v-if="noMore&&inviteList.length"> <div class="no-more" v-if="noMore&&inviteList.length>=8">
<span class="line"></span> <span class="line"></span>
<span class="text">到底啦</span> <span class="text">到底啦</span>
<span class="line"></span> <span class="line"></span>
...@@ -73,16 +86,13 @@ ...@@ -73,16 +86,13 @@
</div> </div>
</div> </div>
<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>
</div>
</div> </div>
</div> </div>
<footer-button <footer-button
:btnText="btnText" :btnText="btnText"
:btnType="btnType"> :btnType="btnType"
@sureBtn="goInvite">
</footer-button> </footer-button>
</section> </section>
</template> </template>
...@@ -90,7 +100,10 @@ ...@@ -90,7 +100,10 @@
<script> <script>
import NormalHeader from '@/components/normal-header'; import NormalHeader from '@/components/normal-header';
import FooterButton from '@/components/footer-button'; import FooterButton from '@/components/footer-button';
import { getOneInviteDetails,getTwoInviteDetails } from '@/service/detailsAndRanking'; import { getOneInviteDetails,getTwoInviteDetails,getInviteDetailAward } from '@/service/detailsAndRanking';
import { wxShare } from '@/configs/wxShare';
import { getShareUrl } from '@/utils/index';
import { Base64 } from 'js-base64';
export default { export default {
name: "index", name: "index",
components: { components: {
...@@ -103,19 +116,29 @@ ...@@ -103,19 +116,29 @@
title: '邀请明细', title: '邀请明细',
inviteList: [], inviteList: [],
recordTotal: 0, recordTotal: 0,
recordType: 1, recordType: 1,//1课程,2登录
busy: true, //分页参数--start busy: true, //分页参数--start
pageNo: 0, pageNo: 0,
pageSize: 10, pageSize: 10,
noMore: false,//分页参数--end noMore: false,//分页参数--end
btnText: '去邀请', btnText: '去邀请',
btnType: true btnType: false,
node1: '',
node2: ''
}; };
}, },
async asyncData ({query}) {
return {
encryptId: query.encryptId,
taskId: query.taskId,
activityId: query.activityId
}
},
mounted() { mounted() {
this.pageNo++ this.pageNo++
this.getOneInviteDetails(); this.getOneInviteDetails();
this.getInviteDetailAward();
const _this = this
window.addEventListener('scroll', function (e) { window.addEventListener('scroll', function (e) {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
...@@ -127,19 +150,46 @@ ...@@ -127,19 +150,46 @@
let headDivHeight = headDiv.offsetHeight; let headDivHeight = headDiv.offsetHeight;
//获取窗口高度 //获取窗口高度
const lastHeight = window.innerHeight; const lastHeight = window.innerHeight;
console.log('recordDetailsHeight',recordDetailsHeight); /*console.log('recordDetailsHeight',recordDetailsHeight);
console.log('headDivHeight',headDivHeight); console.log('headDivHeight',headDivHeight);*/
const tabNab=document.getElementsByClassName('tab-nav')[0]; const tabNab=document.getElementsByClassName('tab-nav')[0];
if(recordDetailsHeight<=headDivHeight) { if(recordDetailsHeight<=headDivHeight) {
tabNab.setAttribute('style',`position:fixed;top: ${44}px;`); tabNab.setAttribute('style',`position:fixed;top: ${44+_this.statusBarHeight}px;`);
} else { } else {
console.log('sdd')
tabNab.removeAttribute('style'); tabNab.removeAttribute('style');
} }
}); });
}, },
methods: { methods: {
getInviteDetailAward() {
getInviteDetailAward({
activityId: this.activityId,
taskId: this.taskId
}).then(res => {
const node1 = res.data.filter(item => {
return item.resourceId == "1"
});
const node2 = res.data.filter(item => {
return item.resourceId == "2"
})
this.node1 = node1[0].rewardJsonInfo;
this.node2 = node2[0].rewardJsonInfo;
console.log(this.node1,this.node2)
})
},
goInvite() { // 去邀请
this.$sendBuriedData({
component_tag: `308#308001`
});
let shareObj = wxShare;
//处理分享链接需要的参数
const paramstr = Base64.encode(`id=${this.encryptId}&taskId=${this.taskId}&activityId=${this.activityId}`);
shareObj.shareUrl = `${getShareUrl()}year_end_ssr/shareActive?${paramstr}`
this.$rocNative.shareWechat(shareObj);
},
getOneInviteDetails() { //领取记录数据 getOneInviteDetails() { //领取记录数据
getOneInviteDetails({ getOneInviteDetails({
pageNo: this.pageNo, pageNo: this.pageNo,
......
...@@ -82,6 +82,7 @@ ...@@ -82,6 +82,7 @@
} }
.detail-list { .detail-list {
padding: 0 15px; padding: 0 15px;
overflow-y: auto;
.item { .item {
display: flex; display: flex;
align-items: center; align-items: center;
......
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
</div> </div>
<div class="awards-details">血压计 1 支/温度计 1 支/小米电视4C 2 台/米家洗衣机 1 台/米家冰箱 2 台/华为荣耀Play3 2 部</div> <div class="awards-details">血压计 1 支/温度计 1 支/小米电视4C 2 台/米家洗衣机 1 台/米家冰箱 2 台/华为荣耀Play3 2 部</div>
</div>--> </div>-->
<div class="detail-list" v-if="personDetails.length" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10"> <div class="detail-list" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10">
<div class="item" v-for="item in personDetails"> <div class="item" v-for="(item, index) in personDetails" v-if="personDetails.length" :key="index">
<div class="left"> <div class="left">
<img :src="detailTaskIcon(item.resourceType)" alt=""> <img :src="detailTaskIcon(item.resourceType)" alt="">
</div> </div>
...@@ -39,14 +39,14 @@ ...@@ -39,14 +39,14 @@
<p class="time">{{item.finishTime}}</p> <p class="time">{{item.finishTime}}</p>
</div> </div>
<div class="r-right"> <div class="r-right">
<div class="award-item" v-for="item1 in item.timsRewardResp"> <div class="award-item" v-for="(item1, index1) in item.timsRewardResp" :key="index1">
<span class="num">+{{item1.rewardQuantity}}</span> <span class="num">+{{item1.rewardQuantity}}</span>
<span class="award-name">{{detailAwardsName(item1.rewardType)}}</span> <span class="award-name">{{detailAwardsName(item1.rewardType)}}</span>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="no-more" v-if="noMore"> <div class="no-more" v-if="noMore&&personDetails.length>=10">
<span class="line"></span> <span class="line"></span>
<span class="text">到底啦</span> <span class="text">到底啦</span>
<span class="line"></span> <span class="line"></span>
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
}, },
methods: { methods: {
goInActivity() { goInActivity() {
this.$router.push('/in-activity') this.$router.push('/activityPage')
}, },
detailTaskIcon(taskType) { detailTaskIcon(taskType) {
if(taskType == 4) { //smo if(taskType == 4) { //smo
...@@ -120,34 +120,31 @@ ...@@ -120,34 +120,31 @@
getPersonDetails() { getPersonDetails() {
getPersonDetails({ getPersonDetails({
pageNo: this.pageNo, pageNo: this.pageNo,
activityId: 2 activityId: this.$route.query.activityId
}).then(res => { }).then(res => {
console.log(res) console.log(res)
if(res.code == '000000') { if(res.code == '000000') {
this.userRank = res.data.userRank; this.userRank = res.data.userRank;
this.avatarImageUrl = res.data.avatarImageUrl; this.avatarImageUrl = res.data.avatarImageUrl;
if(res.data.personDetails) { if(res.data.personalDetails) {
if(this.pageNo ==1) { if(this.pageNo ==1) {
this.personDetails = res.data.personalDetails this.personDetails = res.data.personalDetails
if(res.data.hasNextPage) { if(res.data.hasNextPage) {
this.noMore = true;
} else {
this.busy = false; this.busy = false;
} else {
this.noMore = true;
} }
} else { } else {
this.personDetails = this.personDetails.concat(res.data.personalDetails);
if(res.data.hasNextPage) { if(res.data.hasNextPage) {
this.personDetails = this.personDetails.concat(res.data.personalDetails);
this.busy = false; this.busy = false;
} else { } else {
this.noMore = true this.noMore = true
} }
} }
} else { } else {
this.personDetails = [] this.personDetails = []
} }
} }
}) })
}, },
......
...@@ -130,5 +130,22 @@ ...@@ -130,5 +130,22 @@
} }
} }
} }
.no-more {
height: 62px;
display: flex;
justify-content: center;
align-items: center;
.line {
display: inline-block;
width: 84px;
height: 1px;
background:#F7F7F7;
}
.text {
color: #BEC2CC;
font-size: 13px;
margin: 0 8px;
}
}
} }
} }
\ No newline at end of file
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
</p> </p>
</div> </div>
<div class="not-join" v-else> <div class="not-join" v-else>
<div class="con main-name">您还未参加活动</div> <div class="con main-name">{{activeBtnType?'今日您还未参加活动':'您还未参加活动'}}</div>
<div class="con details">赶快参与活动赢每日奖品</div> <div class="con details">赶快参与活动赢每日奖品</div>
</div> </div>
<p class="text" v-if="activeBtnType&&rankData.score">再获得{{rankData.targetRequiredScore}}分即可上升到前{{rankData.targetRank}}名并可获得{{firstAwards}}</p> <p class="text" v-if="activeBtnType&&rankData.score">{{rankAwards}}</p>
</div> </div>
</div> </div>
</div> </div>
...@@ -38,13 +38,18 @@ ...@@ -38,13 +38,18 @@
<span class="marginAuto">{{activeBtnType?'今日':'累计'}}勤奋分</span> <span class="marginAuto">{{activeBtnType?'今日':'累计'}}勤奋分</span>
</div> </div>
<div class="ranking-list" :style="{marginBottom: `${50+homeIndicatorHeight}Px`}"> <div class="ranking-list" :style="{marginBottom: `${50+homeIndicatorHeight}Px`}">
<div class="item" v-for="(item,index) in rankData.topRankList"> <div class="item" v-for="(item,index) in topRankList" :key="index">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon"> <img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p> <p v-else class="icon-num" >{{index+1}}</p>
<img :src="item.avatarImageUrl" alt="" class="doctor-photo"> <img :src="item.avatarImageUrl" alt="" class="doctor-photo">
<p class="doctor-name">{{item.name}}</p> <p class="doctor-name">{{item.name}}</p>
<p class="num">{{item.score}}</p> <p class="num">{{item.score}}</p>
</div> </div>
<div class="no-more" v-if="topRankList.length>=10">
<span class="line"></span>
<span class="text">到底啦</span>
<span class="line"></span>
</div>
</div> </div>
<footer-button <footer-button
:btnText="btnText" :btnText="btnText"
...@@ -71,6 +76,7 @@ ...@@ -71,6 +76,7 @@
showPop: false, showPop: false,
title: '个人明细', title: '个人明细',
rankData: {}, rankData: {},
topRankList: [], //排行榜list
rightBtn: '', rightBtn: '',
headBtn: { headBtn: {
leftName: '今日排行榜', leftName: '今日排行榜',
...@@ -79,7 +85,7 @@ ...@@ -79,7 +85,7 @@
activeBtnType: true, //true今日,false累计 activeBtnType: true, //true今日,false累计
btnText: '获得更多勤奋分', btnText: '获得更多勤奋分',
btnType: true, btnType: true,
firstAwards: '', rankAwards: '',
todayDate: '' todayDate: ''
}; };
}, },
...@@ -91,7 +97,7 @@ ...@@ -91,7 +97,7 @@
}, },
watch: { watch: {
todayDate(val) { todayDate(val) {
if(Date.parse(new Date(val))<=Date.parse(new Date('2019-12-16 23:59:59'))) { if(Date.parse(new Date(val.replace(/-/g, "/")))<=Date.parse(new Date(('2019-12-16 23:59:59').replace(/-/g, "/")))) {
this.rightBtn = '' this.rightBtn = ''
} else { } else {
this.rightBtn = '昨日获奖' this.rightBtn = '昨日获奖'
...@@ -124,11 +130,23 @@ ...@@ -124,11 +130,23 @@
this.getUserRankingList(); this.getUserRankingList();
} }
}, },
getRankAwards(rankData,firstTime) {
if(rankData.targetRank == 0) {
this.rankAwards = `今日保持第1名,即可获得${getFirstAwards(firstTime)}`;
} else if(rankData.targetRank == 1) {
this.rankAwards = `再获${rankData.targetRequiredScore}分即可上升到第1名并可获得${getFirstAwards(firstTime)}`;
} else if(rankData.targetRank == 3) {
this.rankAwards = `再获${rankData.targetRequiredScore}分即可上升到第3名并可获得欧姆龙血压计`;
} else if(rankData.targetRank == 10) {
this.rankAwards = `再获${rankData.targetRequiredScore}分即可上升到第10名并可获得欧姆龙体温计`;
}
},
getTodayRankingList() { getTodayRankingList() {
getTodayUserRanking().then(res => { getTodayUserRanking().then(res => {
if(res.code == '000000') { if(res.code == '000000') {
this.rankData = res.data; this.rankData = res.data;
this.firstAwards = getFirstAwards(res.data.todayDate); this.topRankList = res.data.topRankList
this.getRankAwards(this.rankData,res.data.todayDate);
this.todayDate = res.data.todayDate; this.todayDate = res.data.todayDate;
if(this.rankData.score) { if(this.rankData.score) {
this.btnText = '获得更多勤奋分' this.btnText = '获得更多勤奋分'
...@@ -142,6 +160,7 @@ ...@@ -142,6 +160,7 @@
getAllUserRanking().then(res => { getAllUserRanking().then(res => {
if(res.code == '000000') { if(res.code == '000000') {
this.rankData = res.data; this.rankData = res.data;
this.topRankList = res.data.topRankList
if(this.rankData.score) { if(this.rankData.score) {
this.btnText = '获得更多勤奋分' this.btnText = '获得更多勤奋分'
} else { } else {
......
...@@ -69,7 +69,6 @@ import { Toast } from 'vant'; ...@@ -69,7 +69,6 @@ import { Toast } from 'vant';
import { remind, getRemindStatus, checkHospitalStatus, getCnt, checkToken } from '@/service'; import { remind, getRemindStatus, checkHospitalStatus, getCnt, checkToken } from '@/service';
import h5header from '@/components/h5header'; import h5header from '@/components/h5header';
import shareContainer from '@/components/share-container'; import shareContainer from '@/components/share-container';
import { BASE_URL } from '@/utils/enumerate';
export default { export default {
// head() { // head() {
...@@ -152,16 +151,8 @@ export default { ...@@ -152,16 +151,8 @@ export default {
this.scrollHandle(); this.scrollHandle();
// 微信分享 // 微信分享
this.$picaWxShare({ this.$picaWxShare({
// baseUrl: BASE_URL[process.env.NUXT_ENV_APP], type: (process.env.NUXT_ENV_APP != 'prod') ? 15 : '',
baseUrl: 'https://test1-sc.yunqueyi.com', authUrl: this.shareObj.shareUrl
authUrl: window.location.href,
isDebug: false,
type: 15,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
},(wx)=>{ },(wx)=>{
const title = this.shareObj.title1; const title = this.shareObj.title1;
const desc = this.shareObj.title2; const desc = this.shareObj.title2;
......
...@@ -55,6 +55,8 @@ ...@@ -55,6 +55,8 @@
<script> <script>
import { getInviteInfo, getCourseById, getCaptchaGet, getAuthCode } from '@/service'; import { getInviteInfo, getCourseById, getCaptchaGet, getAuthCode } from '@/service';
import { wxShare } from '@/configs/wxShare'; import { wxShare } from '@/configs/wxShare';
import { Base64 } from 'js-base64';
const queryString = require('query-string');
const TIMEALL = 60000; // 倒计时常量 60 秒 const TIMEALL = 60000; // 倒计时常量 60 秒
export default { export default {
data(){ data(){
...@@ -70,11 +72,16 @@ ...@@ -70,11 +72,16 @@
time: TIMEALL, time: TIMEALL,
btnMsg: '点击获取', btnMsg: '点击获取',
isReq: false, isReq: false,
shareObj: wxShare,
} }
}, },
async asyncData({ query }){ async asyncData({ query }){
const { id, taskId, activityId } = 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;
let avatarImageUrl = '', name = '', captchaImg = '', captchaToken = ''; let avatarImageUrl = '', name = '', captchaImg = '', captchaToken = '';
const res = await getInviteInfo(id); const res = await getInviteInfo(id);
if(res.code === '000000'){ if(res.code === '000000'){
...@@ -88,30 +95,23 @@ ...@@ -88,30 +95,23 @@
captchaToken = resCapt.data.token; captchaToken = resCapt.data.token;
} }
return { return {
avatarImageUrl, name, id, taskId, activityId, captchaImg, captchaToken avatarImageUrl, name, id, taskId, activityId, captchaImg, captchaToken,parsed
} }
}, },
mounted(){ mounted(){
document.querySelector('body').setAttribute('style', 'background: #FE9A51;'); document.querySelector('body').setAttribute('style', 'background: #FE9A51;');
this.checkCache(); this.checkCache();
// 微信分享 // 微信分享
this.shareObj.shareUrl = window.location.href; wxShare.shareUrl = window.location.href;
window.localStorage.setItem('shareUrl', this.shareObj.shareUrl); window.localStorage.setItem('shareUrl', wxShare.shareUrl);
this.$picaWxShare({ this.$picaWxShare({
// baseUrl: BASE_URL[process.env.NUXT_ENV_APP], type: (process.env.NUXT_ENV_APP != 'prod') ? 15 : '',
baseUrl: 'https://test1-sc.yunqueyi.com', authUrl: wxShare.shareUrl,
type: 15,
authUrl: this.shareObj.shareUrl,
isDebug: false,
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
},(wx)=>{ },(wx)=>{
const title = this.shareObj.title1; const title = wxShare.title1;
const desc = this.shareObj.title2; const desc = wxShare.title2;
const link = this.shareObj.shareUrl; const link = window.localStorage.getItem('shareUrl') || window.location.href;
const imgUrl = this.shareObj.shareImageUrl; const imgUrl = wxShare.shareImageUrl;
// 分享给朋友 // 分享给朋友
wx.onMenuShareAppMessage({ wx.onMenuShareAppMessage({
title,desc,link,imgUrl title,desc,link,imgUrl
...@@ -153,6 +153,9 @@ ...@@ -153,6 +153,9 @@
}, },
// 领取课程事件 // 领取课程事件
getCourse(){ getCourse(){
this.$sendBuriedData({
component_tag: `309#309001`
});
if(this.isReq){ if(this.isReq){
this.$toast('您的登录操作过于频繁,请稍后再试'); this.$toast('您的登录操作过于频繁,请稍后再试');
return; return;
......
...@@ -7,15 +7,15 @@ ...@@ -7,15 +7,15 @@
<h3>登录云鹊医APP立即开始学习</h3> <h3>登录云鹊医APP立即开始学习</h3>
</div> </div>
<div class="btn-app down-app" @click="downApp">下载APP</div> <div class="btn-app down-app" @click="downApp(1)">下载APP</div>
<div class="btn-app has-app" @click="downApp">已有APP</div> <div class="btn-app has-app" @click="downApp(2)">已有APP</div>
<div class="line"></div> <div class="line"></div>
<div class="more-course"> <div class="more-course">
<header>更多精彩好课推荐</header> <header>更多精彩好课推荐</header>
<div class="course-list"> <div class="course-list">
<div class="course-item"> <div class="course-item" @click="goLink(1)">
<div class="course-txt"> <div class="course-txt">
<h1>高血压系列课程</h1> <h1>高血压系列课程</h1>
<h3>《高血压的发病机制》等总计4门课程</h3> <h3>《高血压的发病机制》等总计4门课程</h3>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<div class="course-img"><img src="../assets/img/resimg1.png"></div> <div class="course-img"><img src="../assets/img/resimg1.png"></div>
</div> </div>
<div class="course-item"> <div class="course-item" @click="goLink(2)">
<div class="course-txt"> <div class="course-txt">
<h1>糖尿病系列课程</h1> <h1>糖尿病系列课程</h1>
<h3>《胰岛素的选择和管理》等总计4门课程</h3> <h3>《胰岛素的选择和管理》等总计4门课程</h3>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<div class="course-img"><img src="../assets/img/resimg2.png"></div> <div class="course-img"><img src="../assets/img/resimg2.png"></div>
</div> </div>
<div class="course-item"> <div class="course-item" @click="goLink(3)">
<div class="course-txt"> <div class="course-txt">
<h1>中医系列课程</h1> <h1>中医系列课程</h1>
<h3>《慢性胃炎的中医治疗》等总计3门课程</h3> <h3>《慢性胃炎的中医治疗》等总计3门课程</h3>
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<div class="course-img"><img src="../assets/img/resimg3.png"></div> <div class="course-img"><img src="../assets/img/resimg3.png"></div>
</div> </div>
<div class="course-item"> <div class="course-item" @click="goLink(4)">
<div class="course-txt"> <div class="course-txt">
<h1>全科系列课程</h1> <h1>全科系列课程</h1>
<h3>《胸痛原因待查》等总计3门课程</h3> <h3>《胸痛原因待查》等总计3门课程</h3>
...@@ -55,37 +55,24 @@ ...@@ -55,37 +55,24 @@
<script> <script>
import { wxShare } from '@/configs/wxShare'; import { wxShare } from '@/configs/wxShare';
export default { export default {
asyncData({ query }){
const { status } = query; // 上个页面传递过来领取结果, false 为已领取, true 为领取成功
const statusTxt = (status=='true') ? '领取成功' : '您已领取';
return {
statusTxt
}
},
data(){ data(){
return { return {
shareObj: wxShare, statusTxt: ''
} }
}, },
mounted(){ mounted(){
this.statusTxt = (this.$route.query.status.toString()=='true') ? '领取成功' : '您已领取';
document.querySelector('body').setAttribute('style', 'background: "";'); document.querySelector('body').setAttribute('style', 'background: "";');
// 微信分享 // 微信分享
this.shareObj.shareUrl = window.localStorage.getItem('shareUrl') || window.location.href; wxShare.shareUrl = window.location.href;
this.$picaWxShare({ this.$picaWxShare({
// baseUrl: BASE_URL[process.env.NUXT_ENV_APP], type: (process.env.NUXT_ENV_APP != 'prod') ? 15 : '',
baseUrl: 'https://test1-sc.yunqueyi.com', authUrl: wxShare.shareUrl
type: 15,
authUrl: this.shareObj.shareUrl,
isDebug: false,
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
},(wx)=>{ },(wx)=>{
const title = this.shareObj.title1; const title = wxShare.title1;
const desc = this.shareObj.title2; const desc = wxShare.title2;
const link = this.shareObj.shareUrl; const link = window.localStorage.getItem('shareUrl') || window.location.href;
const imgUrl = this.shareObj.shareImageUrl; const imgUrl = wxShare.shareImageUrl;
// 分享给朋友 // 分享给朋友
wx.onMenuShareAppMessage({ wx.onMenuShareAppMessage({
title,desc,link,imgUrl title,desc,link,imgUrl
...@@ -97,8 +84,48 @@ ...@@ -97,8 +84,48 @@
}) })
}, },
methods: { methods: {
downApp(){ downApp(id){
window.location.href = 'https://android.myapp.com/myapp/detail.htm?apkName=com.picahealth.yunque&ADTAG=mobile'; if(id==1){
this.$sendBuriedData({
component_tag: `310#310001`
});
}else{
this.$sendBuriedData({
component_tag: `310#310002`
});
}
// 延迟跳转以防埋点未发送成功页面就跳转了
setTimeout(()=>{
window.location.href = 'https://android.myapp.com/myapp/detail.htm?apkName=com.picahealth.yunque&ADTAG=mobile';
}, 800);
},
goLink(id){
let link = '';
if(id==1){
link = 'https://phome.yunqueyi.com/template_v2/?id=609';
this.$sendBuriedData({
component_tag: `310#310003`
});
}else if(id==2){
link = 'https://phome.yunqueyi.com/template_v2/?id=610';
this.$sendBuriedData({
component_tag: `310#310004`
});
}else if(id==3){
link = 'https://phome.yunqueyi.com/template_v2/?id=611';
this.$sendBuriedData({
component_tag: `310#310005`
});
}else if(id==4){
link = 'https://phome.yunqueyi.com/template_v2/?id=612';
this.$sendBuriedData({
component_tag: `310#310006`
});
}
// 延迟跳转以防埋点未发送成功页面就跳转了
setTimeout(()=>{
window.location.href = link;
}, 800);
} }
} }
} }
......
...@@ -78,6 +78,22 @@ ...@@ -78,6 +78,22 @@
transform: scaleY(0.5); transform: scaleY(0.5);
} }
} }
.no-more {
height: 62px;
display: flex;
justify-content: center;
align-items: center;
.line {
display: inline-block;
width: 84px;
height: 1px;
background:#F7F7F7;
}
.text {
color: #BEC2CC;
font-size: 13px;
margin: 0 8px;
}
}
} }
} }
\ No newline at end of file
...@@ -3,10 +3,11 @@ ...@@ -3,10 +3,11 @@
<normal-header <normal-header
:title="title" :title="title"
:rightText="rightText" :rightText="rightText"
:backType="1"> :backType="1"
@handleRightBtn="rightBtn">
</normal-header> </normal-header>
<div class="prize-list" :style="{ marginTop: `${44+statusBarHeight}Px`,marginBottom: `${50+homeIndicatorHeight}Px`}"> <div class="prize-list" :style="{ marginTop: `${44+statusBarHeight}Px`,marginBottom: `${50+homeIndicatorHeight}Px`}">
<div class="item" v-for="(item, index) in rewardsList"> <div class="item" v-for="(item, index) in rewardsList" :key="index">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon"> <img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p> <p v-else class="icon-num" >{{index+1}}</p>
<div class="item-right"> <div class="item-right">
...@@ -15,11 +16,16 @@ ...@@ -15,11 +16,16 @@
<p class="name">{{item.name}}</p> <p class="name">{{item.name}}</p>
<p class="grade">昨日勤奋分:<span>{{item.score}}</span></p> <p class="grade">昨日勤奋分:<span>{{item.score}}</span></p>
</div> </div>
<p class="awards" v-if="index==0">{{firstAwards}}</p> <p class="awards" v-if="index==0">{{firstAwards}}*1台</p>
<p class="awards" v-if="1<=index&&index<=2">血压计</p> <p class="awards" v-if="1<=index&&index<=2">血压计*1支</p>
<p class="awards" v-if="index>2">体温计</p> <p class="awards" v-if="index>2">体温计*1支</p>
</div> </div>
</div> </div>
<div class="no-more" v-if="rewardsList.length>=10">
<span class="line"></span>
<span class="text">到底啦</span>
<span class="line"></span>
</div>
</div> </div>
<footer-button <footer-button
:btnText="btnText" :btnText="btnText"
...@@ -67,6 +73,31 @@ ...@@ -67,6 +73,31 @@
return require('../../assets/img/icon-copper.png') return require('../../assets/img/icon-copper.png')
} }
}, },
rightBtn() {
let url = 'https://phome.yunqueyi.com/template_v2/?id=599';
let paramList = [
{
"key":"pageUrl",
"value": url,
"type":4,
"seqNo":1
}/*,{
"key":"showTitle",
"value": false,
"type":1,
"seqNo":2
},{
"key":"title",
"value": '',
"type":1,
"seqNo":3
}*/
]
this.$rocNative.dispatchEventByModuleCode({
modeCode: 'M300',
jsonString: paramList
});
},
getRewardList() { getRewardList() {
getYesterdayRanking().then(res => { getYesterdayRanking().then(res => {
if(res.code == '000000') { if(res.code == '000000') {
......
import Vue from 'vue' import Vue from 'vue'
import PicaJsBridge from '@/utils/jsbridge' import PicaJsBridge from '@/utils/jsbridge'
// import Vconsole from 'vconsole'; import Vconsole from 'vconsole';
// const vConsole = new Vconsole(); const vConsole = new Vconsole();
Vue.prototype.$rocNative = new PicaJsBridge(); Vue.prototype.$rocNative = new PicaJsBridge();
...@@ -9,10 +9,10 @@ export const getUserScoreInfo = () => { ...@@ -9,10 +9,10 @@ export const getUserScoreInfo = () => {
return request({ return request({
url: `campaign/ranking/user_info`, url: `campaign/ranking/user_info`,
method: 'post', method: 'post',
// withCredentials: true, withCredentials: true,
headers: { // headers: {
token: 'D3FFA515261C48478773C0BA17C11F52' // token: 'D3FFA515261C48478773C0BA17C11F52'
} // }
}) })
} }
...@@ -22,14 +22,13 @@ export const getBEServerTime = () => { ...@@ -22,14 +22,13 @@ export const getBEServerTime = () => {
return request({ return request({
url: `campaign/tims/getTodayDate`, url: `campaign/tims/getTodayDate`,
method: 'get', method: 'get',
withCredentials: true,
}) })
} }
// 获取已邀请的医生列表 // 获取已邀请的医生列表
export const getInviteList = () => { export const getInviteList = () => {
return request({ return request({
url: `campaign/inviteDetail/oneList?pageNo=1&pageSize=10`, url: `campaign/inviteDetail/initList?pageNo=1&pageSize=4`, // new
method: 'get', method: 'get',
withCredentials: true, withCredentials: true,
// headers: { // headers: {
......
...@@ -3,7 +3,8 @@ import { Toast } from 'vant'; ...@@ -3,7 +3,8 @@ import { Toast } from 'vant';
import { API_CONFIG, REPONSE_CODE } from '@/utils/enumerate'; import { API_CONFIG, REPONSE_CODE } from '@/utils/enumerate';
const { VUE_ENV } = process.env; // server or client const { VUE_ENV } = process.env; // server or client
const cookies = require('cookie-universal')(); import { getCookie } from '@/utils/cookieFun';
Axios.interceptors.request.use( Axios.interceptors.request.use(
config => { config => {
...@@ -14,7 +15,7 @@ Axios.interceptors.request.use( ...@@ -14,7 +15,7 @@ Axios.interceptors.request.use(
const method = config.method.toLocaleLowerCase(); const method = config.method.toLocaleLowerCase();
if (method === 'post' || method === 'put' || method === 'delete') {} if (method === 'post' || method === 'put' || method === 'delete') {}
if (config.withCredentials) { if (config.withCredentials) {
config.headers.token = cookies.get('token') || sessionStorage.getItem('token'); config.headers.token = getCookie('token') || sessionStorage.getItem('token');
} }
return config; return config;
}, },
......
...@@ -70,4 +70,12 @@ export const getYesterdayRanking = (data) => { ...@@ -70,4 +70,12 @@ export const getYesterdayRanking = (data) => {
data: data, data: data,
withCredentials: true withCredentials: true
}) })
}
// 邀请明细页节点奖励
export const getInviteDetailAward = (params) => {
return request({
url: `/campaign/inviteDetail/tims`,
params: params,
withCredentials: true
})
} }
\ No newline at end of file
...@@ -56,8 +56,11 @@ export const checkToken = async (token) => { ...@@ -56,8 +56,11 @@ export const checkToken = async (token) => {
// 获取邀请人的头像和名字信息 // 获取邀请人的头像和名字信息
export const getInviteInfo = async (id) => { export const getInviteInfo = async (id) => {
return request({ return request({
url: `campaign/inviteOne/info?id=${id}`, url: `campaign/inviteOne/info`,
method: 'get' method: 'get',
params: {
id
}
}) })
} }
......
const { NUXT_ENV_APP } = process.env;
export const setCookie = (cname,cvalue, exdays = 7, domain = '.yunqueyi.com', validMsec) => { //yunqueyi.com
let d = new Date(), expires = '';
 
if (NUXT_ENV_APP === 'dev') {
domain = window.location.hostname;
}
if(validMsec){
d.setTime(d.getTime() + validMsec);
}else{
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
}
expires = `expires=${d.toUTCString()}`;
 
document.cookie = `${cname}=${cvalue};path=/;${expires};domain=${domain}`;
}
export const getCookie = (cname) => {
const reg = new RegExp('(^| )' + cname + '=([^;]*)(;|$)');
const arr = document.cookie.match(reg);
return arr ? unescape(arr[2]) : null;
}
export const delCookie = (cname) => {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(cname);
if(cval!=null){
document.cookie = 'token=; path=/; expires=' + new Date(0).toUTCString();
document.cookie = 'token=; path=/; domain=.yunqueyi.com; expires=' + new Date(0).toUTCString();
//document.cookie= name + "="+cval+";path=/;expires="+exp.toGMTString() + ";domain=" + domain;
}
}
...@@ -179,21 +179,21 @@ function getUrlParmByCode(paramList, token) { ...@@ -179,21 +179,21 @@ function getUrlParmByCode(paramList, token) {
list.push(paramList[i].key + '=' + encodeURI(paramList[i].value)); list.push(paramList[i].key + '=' + encodeURI(paramList[i].value));
} }
dataStr = list.join('&'); dataStr = list.join('&');
s
if (dataStr !== '') return `${str}${dataStr}&token=${token}`; if (dataStr !== '') return `${str}${dataStr}&token=${token}`;
return `${str}token=${token}`; return `${str}token=${token}`;
} }
export const getFirstAwards = (awardsDate) => { export const getFirstAwards = (awardsDate) => {
const awardsTime = Date.parse(new Date(awardsDate)) const awardsTime = Date.parse(new Date(awardsDate.replace(/-/g, "/")))
if (/*Date.parse(new Date('2019-12-16 00:00:00'))<=awardsTime&&*/Date.parse(new Date('2019-12-19 23:59:59'))>=awardsTime) { if (Date.parse(new Date(('2019-12-16 00:00:00').replace(/-/g, "/")))<=awardsTime&&Date.parse(new Date(('2019-12-19 23:59:59').replace(/-/g, "/")))>=awardsTime) {
return '小米电视'; return '小米电视';
} else if (Date.parse(new Date('2019-12-20 00:00:00'))<=awardsTime&&Date.parse(new Date('2019-12-23 23:59:59'))>=awardsTime) { } else if (Date.parse(new Date(('2019-12-20 00:00:00').replace(/-/g, "/")))<=awardsTime&&Date.parse(new Date(('2019-12-23 23:59:59').replace(/-/g, "/")))>=awardsTime) {
return '米家洗衣机'; return '米家洗衣机';
} else if (Date.parse(new Date('2019-12-24 00:00:00'))<=awardsTime&&Date.parse(new Date('2019-12-26 23:59:59'))>=awardsTime) { } else if (Date.parse(new Date(('2019-12-24 00:00:00').replace(/-/g, "/")))<=awardsTime&&Date.parse(new Date(('2019-12-26 23:59:59').replace(/-/g, "/")))>=awardsTime) {
return '米家两门冰箱'; return '米家两门冰箱';
} else if (Date.parse(new Date('2019-12-27 00:00:00'))<=awardsTime/*&&Date.parse(new Date('2019-12-29 23:59:59'))>=awardsTime*/) { } else if (Date.parse(new Date(('2019-12-27 00:00:00').replace(/-/g, "/")))<=awardsTime/*&&Date.parse(new Date('2019-12-29 23:59:59'))>=awardsTime*/) {
return '荣耀play3'; return '荣耀手机';
}; };
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册