提交 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{
height: 100%;
width: 100%;
background-color: #fff;
}
.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;
width: 100%;
/*overflow-x: hidden;
overflow-y: scroll;*/
}
.hide{
display: none;
}
.show{
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;
img{
-webkit-user-select:none;
-moz-user-select:none;
-o-user-select:none;
user-select:none;
margin-bottom: -.5px;
}
\ No newline at end of file
.in-activity-wrap{
position: relative;
width: 375px; height: auto; overflow: hidden;
width: 100%; height: auto; overflow: hidden;
background: #F5663F;
.ellipsis{
......@@ -18,7 +18,7 @@
float: left; overflow: hidden;
background: #E35D5B;
box-sizing: border-box;
border-right: 1px solid #B50300;
border-right: 1PX solid #B50300;
&:nth-child(4){ border-right: 0; }
color:rgba(255,181,179,1);
border-bottom: 2px solid #D80D0A;
......@@ -26,6 +26,7 @@
&.over{
color:rgba(224,100,97,1); border-bottom: 2px solid #7D1716;
background: linear-gradient(to bottom, #B32B29, #9C2A29);
border-right: 1PX solid #900300;
}
&.active{
color:rgba(173,14,59,1); border-bottom: 2px solid #CA6507;
......@@ -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{
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{
width: 100%; height: 52px; overflow: hidden;
.stage-text{
......@@ -72,7 +71,7 @@
.user-info-wrap{
position: relative;
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-size: 100% 100%;
.gold-coin{
......@@ -86,7 +85,7 @@
float: left;
width: 50px; height: 50px; overflow: hidden; border: 0; display: block;
border-radius: 50px;
// border: 1px solid red;
// border: 1PX solid red;
img{
width: 50px; height: 50px;
}
......@@ -99,7 +98,7 @@
color:#373839;
.name{
width: 100%;
font-size: 18px; line-height: 18px; margin-top: 5px; font-weight: 700;
font-size: 18px; line-height: 28px; font-weight: 700;
.ellipsis;
}
.company{
......@@ -111,8 +110,8 @@
.detail{
position: relative;
float: left; box-sizing: border-box; font-weight: 700;
width: 68px; height: 25px; overflow: hidden; border-radius: 25px; border: 1px solid #FD5A2F;
font-size: 12px; color: #FD5A2F; line-height: 23px; text-indent: 5px;
width: 68px; height: 25px; overflow: hidden; border-radius: 25px; border: 1PX solid #FD5A2F;
font-size: 12px; color: #FD5A2F; line-height: 26px; text-indent: 5px;
margin-top: 18px;
img{
position: absolute; right: 5px; top: 50%; margin-top:-5px;
......@@ -140,7 +139,7 @@
}
.rank{
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;
text-indent: 14px;
img{
......@@ -150,9 +149,9 @@
}
.billboard-btn{
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;
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{
position: absolute; right: 8px; top: 50%; margin-top:-5px;
width: 6px; height: 11px;
......@@ -164,7 +163,7 @@
.score-tips{
width: 325px; height: 25px; overflow: hidden; margin: 0 auto;
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{
width: 325px; height: 27px; overflow: hidden;
......@@ -179,10 +178,10 @@
position: relative;
float: right;
width: 81px; height: 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;
border: 1PX solid #FD5A2F; border-radius: 25px;
line-height: 25px; text-indent: 8px; font-size: 12px; line-height: 28px; color: #FD5A2F; font-weight: 700;
img{
position: absolute; right: 5px; top: 50%; margin-top:-6px;
position: absolute; right: 5px; top: 50%; margin-top:-5px;
width: 6px; height: 11px;
}
}
......@@ -217,7 +216,7 @@
// 未登录
.not-login-wrap{
position: relative;
width: 325px; height: 50px; margin: 0 auto;
width: 325px; height: 50px; margin: 35px auto 0;
padding: 20px 15px;
border-radius: 13px;
background: #FFF;
......@@ -247,8 +246,8 @@
position: relative;
float: left;
width: 56px; height: 25px; margin: 14px 0 0 24px;
border: 1px solid #FD5A2F;
border-radius: 25px; font-size: 12px; line-height: 25px; text-indent: 8px;
border: 1PX solid #FD5A2F;
border-radius: 25px; font-size: 12px; line-height: 27px; text-indent: 8px;
color: #FD5A2F; font-weight: 700;
&.login-but-nojoin{
width: 70px; height: 25px;
......@@ -261,13 +260,12 @@
}
}
}
// 邀请医生好友学课程
.invite-doctor-wrap{
position: relative;
width: 355px; height: 242px;
margin: 50px auto 0;
margin: 0 auto 0;
background: #FFF; border-radius: 13px;
.top-head-icon{
position: absolute; left:50%; top:-32px; margin-left: -158px; z-index:200;
......@@ -303,7 +301,7 @@
.text{
position: absolute; left: 50%; top: 58px;
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;
&.see-more{
color: #FD5D33;
......@@ -321,7 +319,7 @@
.text{
position: absolute; left: 0; top: 0;
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;
}
}
......@@ -334,7 +332,7 @@
// 每日任务
.daily-task{
width: 325px; height: 278px; margin: 30px auto 0;
width: 325px; height: 278px; margin: 35px auto 0;
background: #FFF; border-radius: 13px;
padding: 0 15px;
.top-center-bar{
......@@ -367,7 +365,7 @@
width: 60px; height: 30px; border-radius: 30px;
overflow: hidden; float: left;
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);
&.done{
color: #EE5C2E; background: #FFD9CD;
......@@ -433,6 +431,9 @@
width: 280px; height: 14px;
font-size: 14px; line-height: 14px; text-align: center;
color: #676869; margin-top: 15px;
span{
color: #F46235;
}
}
.bottom-btn{
width: 209px; height: 44px;
......@@ -442,8 +443,8 @@
}
.close-btn{
position: absolute; left: 50%; bottom: -50px; margin-left: -15px;
width: 30px; height: 30px;
position: absolute; left: 50%; bottom: -50px; margin-left: -17px;
width: 34px; height: 34px;
background: url('../img/stage-two/close-toast-icon.png') no-repeat center center;
background-size: 30px; height: 30px;
}
......
.index-wrap {
width: 100%;
position: relative;
div {
width: 375px;
width: 100%;
img {
width: 375px;
width: 100%;
display: block;
}
}
......@@ -12,7 +13,7 @@
height: 72.5px;
background: url(../img/img4.png) no-repeat center center;
background-size: 100% 100%;
margin-bottom: -.5px;
.wrap-count {
width: 325px;
height: 72.5px;
......@@ -50,7 +51,7 @@
height: 94.5px;
background: url(../img/img5.png) no-repeat center center;
background-size: 100% 100%;
margin-bottom: -.5px;
img {
padding-top: 15px;
}
......@@ -68,7 +69,7 @@
height: 166px;
background: url(../img/img11.png) no-repeat center center;
background-size: 100% 100%;
margin-bottom: -.5px;
img {
padding-top: 81px;
}
......@@ -127,7 +128,7 @@
.btn-rule {
width: 110px;
height: 15px;
// height: 15px;
font-size: 15px;
color: rgba(255, 255, 255, 1);
line-height: 15px;
......@@ -146,7 +147,7 @@
}
.fix-btn {
width: 375px;
width: 100%;
height: 50px;
position: fixed;
left: 0;
......@@ -187,25 +188,26 @@
// 微信分享助力活动
.wx-share-wrap {
width: 375px;
// height: 601.5px;
width: 100%;
height: 100vh;
button,input{
appearance: none;
border: none;
outline: none;
}
section {
width: 375px;
// height: 601.5px;
width: 100%;
padding-bottom: 27.5px;
background: url(../img/bgtop.png) no-repeat;
background-size: 100% 100%;
margin-bottom: -.5px;
.invite-info{
padding-top: 20px;
img{
width: 50px;
height: 50px;
display: block;
padding-top: 20px;
border-radius: 50%;
margin: 0 auto;
}
.title1{
......@@ -304,7 +306,7 @@
}
}
button{
width:56px;
width:60px;
height:40px;
top: 2.5px;
right: 20px;
......@@ -368,11 +370,9 @@
}
}
.wx-share-result{
width: 375px;
// height: 601.5px;
width: 100%;
section{
width: 375px;
// height: 601.5px;
width: 100%;
padding-top: 40px;
.res-wrap{
img{
......@@ -418,7 +418,7 @@
color:rgba(103,104,105,1);
}
.line{
width: 375px;
width: 100%;
height: 5px;
background:rgba(248,249,250,1);
}
......
......@@ -26,7 +26,7 @@
methods: {
handlerMethod() {
if(this.btnType) {
this.$router.push('/in-activity')
this.$router.push('/activityPage')
} else {
this.$emit('sureBtn')
}
......
header{
width: 375px;
width: 100%;
position: fixed;
left: 0;
top: 0;
z-index: 300;
.status{
width: 375px;
width: 100%;
}
.head-wrap{
width: 375px;
width: 100%;
height: 44Px;
line-height: 44Px;
box-sizing: border-box;
......
......@@ -51,7 +51,11 @@
isCheckAuth: { // 是否校驗權限
type: Boolean,
default: false
}
},
isStageTwoHomePage: { // 是否是二期主页面
type: Boolean,
default: false
},
},
data(){
return {
......@@ -98,15 +102,27 @@
})
},
goBack(){
this.$sendBuriedData({
component_tag: `301#301002`
});
if(this.isStageTwoHomePage){
this.$sendBuriedData({
component_tag: `302#302002`
});
}else{
this.$sendBuriedData({
component_tag: `301#301002`
});
}
this.$rocNative.goBack();
},
goShare(){
this.$sendBuriedData({
component_tag: `301#301001`
});
if(this.isStageTwoHomePage){
this.$sendBuriedData({
component_tag: `302#302001`
});
}else{
this.$sendBuriedData({
component_tag: `301#301001`
});
}
if(this.isCheckAuth){
this.$emit('checkAuth', ()=>{
this.$rocNative.shareWechat(this.shareObj);
......
......@@ -4,7 +4,7 @@
<header class="header-container">
<img @click="goBack" src="~/assets/img/icon-back.png" alt="">
{{title}}
<div class="btn-right" v-if="rightText">{{rightText}}</div>
<div class="btn-right" v-if="rightText" @click="rightBtnClick">{{rightText}}</div>
</header>
</section>
</template>
......@@ -44,6 +44,9 @@
}else {
this.$rocNative.goBack()
}
},
rightBtnClick() {
this.$emit('handleRightBtn')
}
}
}
......
......@@ -108,21 +108,39 @@
height: 25px;
position: absolute;
left: 13px;
top: 10px;
}
.head-btn {
width: 193px;
height: 30px;
display: flex;
margin: 0 auto;
position: relative;
.btn {
padding: 0 15px;
font-size: 13px;
font-weight: 700;
height: 30px;
padding: 0 15px;
line-height: 30px;
text-align: center;
line-height: 31px;
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 {
border-bottom-left-radius: 15px;
......@@ -132,32 +150,25 @@
border-bottom-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 {
background: #F8F9FA;
}
.line {
width: 0.5px;
height: 100%;
height: 31px;
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 {
color: #373839;
font-size: 13px;
......
......@@ -18,7 +18,7 @@ export default {
</script>
<style lang="less">
.smo-share-mask{
width: 375px;
width: 100%;
height: 100%;
position: fixed;
left: 0;
......
......@@ -39,6 +39,7 @@ module.exports = {
** Global CSS
*/
css: [
'~/assets/style/common.less',
'vant/lib/index.css'
],
/*
......
......@@ -4629,7 +4629,23 @@
"prepend-http": "^1.0.0",
"query-string": "^4.1.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 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"aproba": {
"version": "1.2.0",
......@@ -8522,7 +8539,8 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
......@@ -8532,7 +8550,8 @@
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
......@@ -8649,7 +8668,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
......@@ -8661,6 +8681,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
......@@ -8675,6 +8696,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
......@@ -8682,12 +8704,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
......@@ -8706,6 +8730,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
......@@ -8786,7 +8811,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
......@@ -8798,6 +8824,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
......@@ -8883,7 +8910,8 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"safer-buffer": {
"version": "2.1.2",
......@@ -8919,6 +8947,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
......@@ -8938,6 +8967,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
......@@ -8981,12 +9011,14 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
}
}
},
......@@ -9662,9 +9694,9 @@
"integrity": "sha512-gwtKq3QWbXMQpdHf7tFKQWYvknQBU+qJUFxLxskHL10mChguSkyl7CxFND1mafVApTH6N1qgAOKKQLILgaJhTw=="
},
"pica-wx-share": {
"version": "1.1.3",
"resolved": "http://192.168.110.93:4873/pica-wx-share/-/pica-wx-share-1.1.3.tgz",
"integrity": "sha512-iPUiTr4Gj0ndetUViqkNr9tPcJxycVFSMVlWCowQNe3mlZvfrFddKbD6AXLWB9Pc9aducYmYcTwGzX7s8PWspA==",
"version": "1.2.0",
"resolved": "http://192.168.110.93:4873/pica-wx-share/-/pica-wx-share-1.2.0.tgz",
"integrity": "sha512-n3eD91DADLLKzfDAncGSJ1TKZW78aVIQ7n+HivbZMrzC1bzq1+0wfkBrElcBPTCYSE62NMzBFrX6XvDme4eW+w==",
"requires": {
"axios": "^0.18.0",
"weixin-js-sdk": "^1.4.0-test"
......@@ -10843,12 +10875,13 @@
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
},
"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=",
"version": "6.9.0",
"resolved": "http://192.168.110.93:4873/query-string/-/query-string-6.9.0.tgz",
"integrity": "sha512-KG4bhCFYapExLsUHrFt+kQVEegF2agm4cpF/VNc6pZVthIfCc/GK8t8VyNIE3nyXG9DK3Tf2EGkxjR6/uRdYsA==",
"requires": {
"object-assign": "^4.1.0",
"strict-uri-encode": "^1.0.0"
"decode-uri-component": "^0.2.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
}
},
"querystring": {
......@@ -12062,6 +12095,11 @@
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
"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": {
"version": "3.1.0",
"resolved": "http://192.168.110.93:4873/split-string/-/split-string-3.1.0.tgz",
......@@ -12274,9 +12312,9 @@
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI="
},
"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="
"version": "2.0.0",
"resolved": "http://192.168.110.93:4873/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
"integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
},
"string-length": {
"version": "2.0.0",
......
......@@ -107,8 +107,13 @@
font-size: 14px;
padding: 0 25px 0 13px;
margin-bottom: 3px;
.rank-name {
display: inline-block;
width: 56px;
text-align: center;
}
.marginL {
margin-left: 11px;
margin-left: 7.5px;
}
.marginAuto {
margin-left: auto;
......@@ -149,7 +154,7 @@
font-size: 16px;
font-weight: 700;
margin-left: 25px;
width: 130px;
width: 200px;
}
.num {
color: #373839;
......@@ -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 {
margin-top: 112px;
img {
......@@ -189,4 +211,10 @@
margin: 0 auto;
}
}
.textOverflow {
width: 285px;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
}
\ No newline at end of file
......@@ -9,7 +9,7 @@
<div class="info info-hospital" v-if="activeBtnType">
<img src="~/assets/img/hospital-ranking/icon-hospital.png" alt="">
<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">
<p class="item">
<span class="label">累计排名</span>
......@@ -23,21 +23,21 @@
</div>
</div>
<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>
</div>
<div class="info info-doctor" v-else>
<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">
<p class="item">
<span class="label">累计排名</span>
<span class="value">{{contributionRanking.rank}}</span>
<span class="label">我的贡献排名</span>
<span class="value">{{contributionRanking.score?contributionRanking.rank:'-'}}</span>
</p>
<p class="line"></p>
<p class="item">
<span class="label">累计勤奋分 </span>
<span class="label">我贡献的勤奋分</span>
<span class="value">{{contributionRanking.score}}</span>
</p>
</div>
......@@ -45,7 +45,7 @@
</div>
<div class="not-join" v-else>
<div class="con main-name">您还未参加活动</div>
<div class="con details">赶快参与活动赢每日奖品</div>
<div class="con details">赶快参加为您的机构争取荣誉吧</div>
</div>
</div>
</div>
......@@ -53,32 +53,42 @@
<div class="description description-h" v-if="activeBtnType"><span>{{dealRankName(hospitalRanking.hospitalType)}}</span>排行实时刷新,部分原因存在几分钟延迟</div>
<div class="description description-d" v-else>排行实时刷新,部分原因存在几分钟延迟</div>
<div class="ranking-title">
<span>TOP100</span>
<span class="rank-name">{{activeBtnType?'TOP100':'排行'}}</span>
<!--<span class="marginL">机构名称</span>
<span class="marginAuto">机构勤奋分</span>-->
<span class="marginL">{{activeBtnType?'机构名称':'机构成员'}}</span>
<span class="marginAuto">{{activeBtnType?'机构勤奋分':'贡献勤奋分'}}</span>
</div>
<div class="ranking-list" :style="{marginBottom: `${50+homeIndicatorHeight}` + 'Px'}">
<div class="item" v-if="activeBtnType" v-for="(itemH,index) in hospitalRanking.topRankList">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p>
<div class="item" v-if="activeBtnType" v-for="(itemH,indexH) in topRankListH" :key="indexH">
<img v-if="indexH<=2" :src="dealRankIcon(indexH)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{indexH+1}}</p>
<p class="hospital-name">{{itemH.name}}</p>
<p class="num">{{itemH.score}}</p>
</div>
<div class="item" v-if="!activeBtnType" v-for="(itemD,index) in contributionRanking.topRankList">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p>
<div class="item" v-if="!activeBtnType" v-for="(itemD,indexD) in topRankListC" :key="indexD">
<img v-if="indexD<=2" :src="dealRankIcon(indexD)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{indexD+1}}</p>
<img :src="itemD.avatarImageUrl" alt="" class="doctor-photo">
<p class="doctor-name">{{itemD.name}}</p>
<p class="num">{{itemD.score}}</p>
</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 class="main-content" v-if="noContributionRanking">
<div class="no-data">
<img src="~/assets/img/icon-nodata.png" alt="">
<p>暂无记录,您还没有参加活动</p>
<p>您的机构还没有人参加活动</p>
<div class="button" @click="goInActivity">立即参加</div>
</div>
</div>
......@@ -111,7 +121,9 @@
},
activeBtnType: true, //true机构,false人员
hospitalRanking: {},
topRankListH: [],//机构排行
contributionRanking: {},
topRankListC: [], //贡献排行
btnText: '助力机构 创造佳绩',
btnType: true,
noContributionRanking: false //是否有人员贡献榜单数据
......@@ -125,7 +137,7 @@
},
methods: {
goInActivity() {
this.$router.push('/in-activity')
this.$router.push('/activityPage')
},
changeRanking(val) {
this.activeBtnType = val;
......@@ -133,7 +145,7 @@
},
dealRankName(hospitalType) {
if(hospitalType == 0) {
return '火星榜';
return '星火榜';
} else if(hospitalType == 1) {
return '萌芽榜';
} else if(hospitalType == 2) {
......@@ -156,6 +168,7 @@
getHospitalRanking().then(res => {
if(res.code == '000000') {
this.hospitalRanking = res.data;
this.topRankListH = res.data.topRankList
}
})
},
......@@ -163,6 +176,7 @@
getContributionRanking().then(res => {
if(res.code == '000000') {
this.contributionRanking = res.data;
this.topRankListC = res.data.topRankList
if(this.contributionRanking.topRankList.length) {
this.noContributionRanking = false;
} else {
......
......@@ -136,10 +136,10 @@
}
}
.left-item {
margin-left: 82.5px;
margin-left: 53.5px;
}
.right-item {
margin-right: 82.5px;
margin-right: 53.5px;
}
.activeItem {
color: #373839;
......
......@@ -24,14 +24,22 @@
<div class="bubble_diailog marginTop16">
<i class="l"></i>
<b class="l"></b>
<p class="text">输入手机号领取课程</p>
<p class="awards">+20勤奋分 +20云鹊豆</p>
<p class="text">医生好友输入手机号领取课程</p>
<p class="awards">
<span v-for="(item, index) in dealJsonData(this.node1)" :key="index">
+{{item.rewardQuantity}}{{changeAwardsName(item.rewardType)}}
</span>
</p>
</div>
<div class="bubble_diailog marginTop20">
<i class="l"></i>
<b class="l"></b>
<p class="text">使用手机号登录云鹊APP</p>
<p class="awards">+80勤奋分 +80云鹊豆</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)}}
</span>
</p>
</div>
</div>
</div>
......@@ -40,32 +48,37 @@
<div class="record-details" :style="{marginBottom: `${50+homeIndicatorHeight}Px`}">
<div class="tab-nav">
<div class="item left-item" :class="{activeItem:recordType==1}" @click="changeRecordType">
领取记录
领取课程的好友
<p class="active-line" v-if="recordType==1"></p>
</div>
<div class="item right-item" :class="{activeItem:recordType==2}" @click="changeRecordType">
登录记录
参与活动的好友
<p class="active-line" v-if="recordType==2"></p>
</div>
</div>
<div class="record-list" v-if="inviteList.length" >
<p class="sum">{{recordTotal}}</p>
<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>
</div>
<p class="sum" v-if="inviteList.length">{{recordTotal}}</p>
<div class="loadMore" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy"
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">
<div class="person-info">
<p class="phone">{{item.mobile}}</p>
<p class="time">{{item.inviteDate}}</p>
</div>
<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="award-name">{{changeAwardsName(item1.rewardType)}}</span>
</p>
</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="text">到底啦</span>
<span class="line"></span>
......@@ -73,16 +86,13 @@
</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>
<footer-button
:btnText="btnText"
:btnType="btnType">
:btnType="btnType"
@sureBtn="goInvite">
</footer-button>
</section>
</template>
......@@ -90,7 +100,10 @@
<script>
import NormalHeader from '@/components/normal-header';
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 {
name: "index",
components: {
......@@ -103,19 +116,29 @@
title: '邀请明细',
inviteList: [],
recordTotal: 0,
recordType: 1,
recordType: 1,//1课程,2登录
busy: true, //分页参数--start
pageNo: 0,
pageSize: 10,
noMore: false,//分页参数--end
btnText: '去邀请',
btnType: true
btnType: false,
node1: '',
node2: ''
};
},
async asyncData ({query}) {
return {
encryptId: query.encryptId,
taskId: query.taskId,
activityId: query.activityId
}
},
mounted() {
this.pageNo++
this.getOneInviteDetails();
this.getInviteDetailAward();
const _this = this
window.addEventListener('scroll', function (e) {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
......@@ -127,19 +150,46 @@
let headDivHeight = headDiv.offsetHeight;
//获取窗口高度
const lastHeight = window.innerHeight;
console.log('recordDetailsHeight',recordDetailsHeight);
console.log('headDivHeight',headDivHeight);
/*console.log('recordDetailsHeight',recordDetailsHeight);
console.log('headDivHeight',headDivHeight);*/
const tabNab=document.getElementsByClassName('tab-nav')[0];
if(recordDetailsHeight<=headDivHeight) {
tabNab.setAttribute('style',`position:fixed;top: ${44}px;`);
tabNab.setAttribute('style',`position:fixed;top: ${44+_this.statusBarHeight}px;`);
} else {
console.log('sdd')
tabNab.removeAttribute('style');
}
});
},
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({
pageNo: this.pageNo,
......
......@@ -82,6 +82,7 @@
}
.detail-list {
padding: 0 15px;
overflow-y: auto;
.item {
display: flex;
align-items: center;
......
......@@ -28,8 +28,8 @@
</div>
<div class="awards-details">血压计 1 支/温度计 1 支/小米电视4C 2 台/米家洗衣机 1 台/米家冰箱 2 台/华为荣耀Play3 2 部</div>
</div>-->
<div class="detail-list" v-if="personDetails.length" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10">
<div class="item" v-for="item in personDetails">
<div class="detail-list" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10">
<div class="item" v-for="(item, index) in personDetails" v-if="personDetails.length" :key="index">
<div class="left">
<img :src="detailTaskIcon(item.resourceType)" alt="">
</div>
......@@ -39,14 +39,14 @@
<p class="time">{{item.finishTime}}</p>
</div>
<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="award-name">{{detailAwardsName(item1.rewardType)}}</span>
</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="text">到底啦</span>
<span class="line"></span>
......@@ -90,7 +90,7 @@
},
methods: {
goInActivity() {
this.$router.push('/in-activity')
this.$router.push('/activityPage')
},
detailTaskIcon(taskType) {
if(taskType == 4) { //smo
......@@ -120,34 +120,31 @@
getPersonDetails() {
getPersonDetails({
pageNo: this.pageNo,
activityId: 2
activityId: this.$route.query.activityId
}).then(res => {
console.log(res)
if(res.code == '000000') {
this.userRank = res.data.userRank;
this.avatarImageUrl = res.data.avatarImageUrl;
if(res.data.personDetails) {
if(res.data.personalDetails) {
if(this.pageNo ==1) {
this.personDetails = res.data.personalDetails
if(res.data.hasNextPage) {
this.noMore = true;
} else {
this.busy = false;
} else {
this.noMore = true;
}
} else {
this.personDetails = this.personDetails.concat(res.data.personalDetails);
if(res.data.hasNextPage) {
this.personDetails = this.personDetails.concat(res.data.personalDetails);
this.busy = false;
} else {
this.noMore = true
}
}
} else {
this.personDetails = []
}
}
})
},
......
......@@ -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 @@
</p>
</div>
<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>
<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>
......@@ -38,13 +38,18 @@
<span class="marginAuto">{{activeBtnType?'今日':'累计'}}勤奋分</span>
</div>
<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">
<p v-else class="icon-num" >{{index+1}}</p>
<img :src="item.avatarImageUrl" alt="" class="doctor-photo">
<p class="doctor-name">{{item.name}}</p>
<p class="num">{{item.score}}</p>
</div>
<div class="no-more" v-if="topRankList.length>=10">
<span class="line"></span>
<span class="text">到底啦</span>
<span class="line"></span>
</div>
</div>
<footer-button
:btnText="btnText"
......@@ -71,6 +76,7 @@
showPop: false,
title: '个人明细',
rankData: {},
topRankList: [], //排行榜list
rightBtn: '',
headBtn: {
leftName: '今日排行榜',
......@@ -79,7 +85,7 @@
activeBtnType: true, //true今日,false累计
btnText: '获得更多勤奋分',
btnType: true,
firstAwards: '',
rankAwards: '',
todayDate: ''
};
},
......@@ -91,7 +97,7 @@
},
watch: {
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 = ''
} else {
this.rightBtn = '昨日获奖'
......@@ -124,11 +130,23 @@
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() {
getTodayUserRanking().then(res => {
if(res.code == '000000') {
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;
if(this.rankData.score) {
this.btnText = '获得更多勤奋分'
......@@ -142,6 +160,7 @@
getAllUserRanking().then(res => {
if(res.code == '000000') {
this.rankData = res.data;
this.topRankList = res.data.topRankList
if(this.rankData.score) {
this.btnText = '获得更多勤奋分'
} else {
......
......@@ -69,7 +69,6 @@ import { Toast } from 'vant';
import { remind, getRemindStatus, checkHospitalStatus, getCnt, checkToken } from '@/service';
import h5header from '@/components/h5header';
import shareContainer from '@/components/share-container';
import { BASE_URL } from '@/utils/enumerate';
export default {
// head() {
......@@ -152,16 +151,8 @@ export default {
this.scrollHandle();
// 微信分享
this.$picaWxShare({
// baseUrl: BASE_URL[process.env.NUXT_ENV_APP],
baseUrl: 'https://test1-sc.yunqueyi.com',
authUrl: window.location.href,
isDebug: false,
type: 15,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
type: (process.env.NUXT_ENV_APP != 'prod') ? 15 : '',
authUrl: this.shareObj.shareUrl
},(wx)=>{
const title = this.shareObj.title1;
const desc = this.shareObj.title2;
......
......@@ -55,6 +55,8 @@
<script>
import { getInviteInfo, getCourseById, getCaptchaGet, getAuthCode } from '@/service';
import { wxShare } from '@/configs/wxShare';
import { Base64 } from 'js-base64';
const queryString = require('query-string');
const TIMEALL = 60000; // 倒计时常量 60 秒
export default {
data(){
......@@ -70,11 +72,16 @@
time: TIMEALL,
btnMsg: '点击获取',
isReq: false,
shareObj: wxShare,
}
},
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 = '';
const res = await getInviteInfo(id);
if(res.code === '000000'){
......@@ -88,30 +95,23 @@
captchaToken = resCapt.data.token;
}
return {
avatarImageUrl, name, id, taskId, activityId, captchaImg, captchaToken
avatarImageUrl, name, id, taskId, activityId, captchaImg, captchaToken,parsed
}
},
mounted(){
document.querySelector('body').setAttribute('style', 'background: #FE9A51;');
this.checkCache();
// 微信分享
this.shareObj.shareUrl = window.location.href;
window.localStorage.setItem('shareUrl', this.shareObj.shareUrl);
wxShare.shareUrl = window.location.href;
window.localStorage.setItem('shareUrl', wxShare.shareUrl);
this.$picaWxShare({
// baseUrl: BASE_URL[process.env.NUXT_ENV_APP],
baseUrl: 'https://test1-sc.yunqueyi.com',
type: 15,
authUrl: this.shareObj.shareUrl,
isDebug: false,
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
type: (process.env.NUXT_ENV_APP != 'prod') ? 15 : '',
authUrl: wxShare.shareUrl,
},(wx)=>{
const title = this.shareObj.title1;
const desc = this.shareObj.title2;
const link = this.shareObj.shareUrl;
const imgUrl = this.shareObj.shareImageUrl;
const title = wxShare.title1;
const desc = wxShare.title2;
const link = window.localStorage.getItem('shareUrl') || window.location.href;
const imgUrl = wxShare.shareImageUrl;
// 分享给朋友
wx.onMenuShareAppMessage({
title,desc,link,imgUrl
......@@ -153,6 +153,9 @@
},
// 领取课程事件
getCourse(){
this.$sendBuriedData({
component_tag: `309#309001`
});
if(this.isReq){
this.$toast('您的登录操作过于频繁,请稍后再试');
return;
......
......@@ -7,15 +7,15 @@
<h3>登录云鹊医APP立即开始学习</h3>
</div>
<div class="btn-app down-app" @click="downApp">下载APP</div>
<div class="btn-app has-app" @click="downApp">已有APP</div>
<div class="btn-app down-app" @click="downApp(1)">下载APP</div>
<div class="btn-app has-app" @click="downApp(2)">已有APP</div>
<div class="line"></div>
<div class="more-course">
<header>更多精彩好课推荐</header>
<div class="course-list">
<div class="course-item">
<div class="course-item" @click="goLink(1)">
<div class="course-txt">
<h1>高血压系列课程</h1>
<h3>《高血压的发病机制》等总计4门课程</h3>
......@@ -23,7 +23,7 @@
<div class="course-img"><img src="../assets/img/resimg1.png"></div>
</div>
<div class="course-item">
<div class="course-item" @click="goLink(2)">
<div class="course-txt">
<h1>糖尿病系列课程</h1>
<h3>《胰岛素的选择和管理》等总计4门课程</h3>
......@@ -31,7 +31,7 @@
<div class="course-img"><img src="../assets/img/resimg2.png"></div>
</div>
<div class="course-item">
<div class="course-item" @click="goLink(3)">
<div class="course-txt">
<h1>中医系列课程</h1>
<h3>《慢性胃炎的中医治疗》等总计3门课程</h3>
......@@ -39,7 +39,7 @@
<div class="course-img"><img src="../assets/img/resimg3.png"></div>
</div>
<div class="course-item">
<div class="course-item" @click="goLink(4)">
<div class="course-txt">
<h1>全科系列课程</h1>
<h3>《胸痛原因待查》等总计3门课程</h3>
......@@ -55,37 +55,24 @@
<script>
import { wxShare } from '@/configs/wxShare';
export default {
asyncData({ query }){
const { status } = query; // 上个页面传递过来领取结果, false 为已领取, true 为领取成功
const statusTxt = (status=='true') ? '领取成功' : '您已领取';
return {
statusTxt
}
},
data(){
return {
shareObj: wxShare,
statusTxt: ''
}
},
mounted(){
this.statusTxt = (this.$route.query.status.toString()=='true') ? '领取成功' : '您已领取';
document.querySelector('body').setAttribute('style', 'background: "";');
// 微信分享
this.shareObj.shareUrl = window.localStorage.getItem('shareUrl') || window.location.href;
wxShare.shareUrl = window.location.href;
this.$picaWxShare({
// baseUrl: BASE_URL[process.env.NUXT_ENV_APP],
baseUrl: 'https://test1-sc.yunqueyi.com',
type: 15,
authUrl: this.shareObj.shareUrl,
isDebug: false,
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage'
]
type: (process.env.NUXT_ENV_APP != 'prod') ? 15 : '',
authUrl: wxShare.shareUrl
},(wx)=>{
const title = this.shareObj.title1;
const desc = this.shareObj.title2;
const link = this.shareObj.shareUrl;
const imgUrl = this.shareObj.shareImageUrl;
const title = wxShare.title1;
const desc = wxShare.title2;
const link = window.localStorage.getItem('shareUrl') || window.location.href;
const imgUrl = wxShare.shareImageUrl;
// 分享给朋友
wx.onMenuShareAppMessage({
title,desc,link,imgUrl
......@@ -97,8 +84,48 @@
})
},
methods: {
downApp(){
window.location.href = 'https://android.myapp.com/myapp/detail.htm?apkName=com.picahealth.yunque&ADTAG=mobile';
downApp(id){
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 @@
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 @@
<normal-header
:title="title"
:rightText="rightText"
:backType="1">
:backType="1"
@handleRightBtn="rightBtn">
</normal-header>
<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">
<p v-else class="icon-num" >{{index+1}}</p>
<div class="item-right">
......@@ -15,11 +16,16 @@
<p class="name">{{item.name}}</p>
<p class="grade">昨日勤奋分:<span>{{item.score}}</span></p>
</div>
<p class="awards" v-if="index==0">{{firstAwards}}</p>
<p class="awards" v-if="1<=index&&index<=2">血压计</p>
<p class="awards" v-if="index>2">体温计</p>
<p class="awards" v-if="index==0">{{firstAwards}}*1台</p>
<p class="awards" v-if="1<=index&&index<=2">血压计*1支</p>
<p class="awards" v-if="index>2">体温计*1支</p>
</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>
<footer-button
:btnText="btnText"
......@@ -67,6 +73,31 @@
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() {
getYesterdayRanking().then(res => {
if(res.code == '000000') {
......
import Vue from 'vue'
import PicaJsBridge from '@/utils/jsbridge'
// import Vconsole from 'vconsole';
// const vConsole = new Vconsole();
import Vconsole from 'vconsole';
const vConsole = new Vconsole();
Vue.prototype.$rocNative = new PicaJsBridge();
......@@ -9,10 +9,10 @@ export const getUserScoreInfo = () => {
return request({
url: `campaign/ranking/user_info`,
method: 'post',
// withCredentials: true,
headers: {
token: 'D3FFA515261C48478773C0BA17C11F52'
}
withCredentials: true,
// headers: {
// token: 'D3FFA515261C48478773C0BA17C11F52'
// }
})
}
......@@ -22,14 +22,13 @@ export const getBEServerTime = () => {
return request({
url: `campaign/tims/getTodayDate`,
method: 'get',
withCredentials: true,
})
}
// 获取已邀请的医生列表
export const getInviteList = () => {
return request({
url: `campaign/inviteDetail/oneList?pageNo=1&pageSize=10`,
url: `campaign/inviteDetail/initList?pageNo=1&pageSize=4`, // new
method: 'get',
withCredentials: true,
// headers: {
......
......@@ -3,7 +3,8 @@ import { Toast } from 'vant';
import { API_CONFIG, REPONSE_CODE } from '@/utils/enumerate';
const { VUE_ENV } = process.env; // server or client
const cookies = require('cookie-universal')();
import { getCookie } from '@/utils/cookieFun';
Axios.interceptors.request.use(
config => {
......@@ -14,7 +15,7 @@ Axios.interceptors.request.use(
const method = config.method.toLocaleLowerCase();
if (method === 'post' || method === 'put' || method === 'delete') {}
if (config.withCredentials) {
config.headers.token = cookies.get('token') || sessionStorage.getItem('token');
config.headers.token = getCookie('token') || sessionStorage.getItem('token');
}
return config;
},
......
......@@ -70,4 +70,12 @@ export const getYesterdayRanking = (data) => {
data: data,
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) => {
// 获取邀请人的头像和名字信息
export const getInviteInfo = async (id) => {
return request({
url: `campaign/inviteOne/info?id=${id}`,
method: 'get'
url: `campaign/inviteOne/info`,
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) {
list.push(paramList[i].key + '=' + encodeURI(paramList[i].value));
}
dataStr = list.join('&');
s
if (dataStr !== '') return `${str}${dataStr}&token=${token}`;
return `${str}token=${token}`;
}
export const getFirstAwards = (awardsDate) => {
const awardsTime = Date.parse(new Date(awardsDate))
if (/*Date.parse(new Date('2019-12-16 00:00:00'))<=awardsTime&&*/Date.parse(new Date('2019-12-19 23:59:59'))>=awardsTime) {
const awardsTime = Date.parse(new Date(awardsDate.replace(/-/g, "/")))
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 '小米电视';
} 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 '米家洗衣机';
} 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 '米家两门冰箱';
} else if (Date.parse(new Date('2019-12-27 00:00:00'))<=awardsTime/*&&Date.parse(new Date('2019-12-29 23:59:59'))>=awardsTime*/) {
return '荣耀play3';
} 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 '荣耀手机';
};
}
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册