Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
Y
year-end-activitiy
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.foundation.frontend
year-end-activitiy
提交
baa32ba2
提交
baa32ba2
编写于
12月 04, 2019
作者:
chengxiang.li
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新二期活动主页模块逻辑
上级
5baef239
变更
2
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
283 行增加
和
71 行删除
+283
-71
in-activity.vue
pages/in-activity.vue
+246
-69
activityMainpage.js
service/activityMainpage.js
+37
-2
未找到文件。
pages/in-activity.vue
浏览文件 @
baa32ba2
...
...
@@ -2,23 +2,6 @@
<div
class=
"in-activity-wrap"
>
<!-- 顶部的四个阶段 进度条 -->
<ul
class=
"top-process-bar"
>
<!--
<li
class=
"over"
>
<p
class=
"title"
>
高血压学习
</p>
<p
class=
"date"
>
12月16至19日
</p>
</li>
<li
class=
"active"
>
<p
class=
"title"
>
糖尿病学习
</p>
<p
class=
"date"
>
12月20至24日
</p>
</li>
<li>
<p
class=
"title"
>
中医科学习
</p>
<p
class=
"date"
>
12月24至27日
</p>
</li>
<li>
<p
class=
"title"
>
全科学习
</p>
<p
class=
"date"
>
12月27至30日
</p>
</li>
-->
<li
v-for=
"(item, index) in stageDateList"
:class=
"returnStageClass(item, index)"
>
<p
class=
"title"
>
{{
item
.
title
}}
</p>
<p
class=
"date"
>
{{
item
.
date
}}
</p>
...
...
@@ -101,17 +84,12 @@
</ul>
</div>
</div>
</div>
<!-- 邀请医生好友学课程 -->
<div
class=
"invite-doctor-wrap"
>
<img
class=
"top-head-icon"
src=
"../assets/img/stage-two/invite-doctor-top.png"
alt=
""
>
<p
class=
"invite-tips"
>
每邀请1位医生好友领取课程,+
20勤奋分 +20
云鹊豆
</p>
<p
class=
"invite-tips"
>
每邀请1位医生好友领取课程,+
{{
eachInviteAward
.
mark
}}
勤奋分 +
{{
eachInviteAward
.
bean
}}
云鹊豆
</p>
<div
class=
"invite-list-wrap"
>
<ul
class=
"invite-list"
>
<template
v-if=
"!isLogin || !isJoin"
>
...
...
@@ -172,29 +150,14 @@
<div
class=
"daily-task"
>
<div
class=
"top-center-bar"
>
每日任务
</div>
<ul
class=
"task-list"
>
<li>
<img
class=
"left-icon"
src=
"../assets/img/task-icon/daily-clock-icon.png"
alt=
""
>
<div
class=
"center-wrap"
>
<p
class=
"title"
>
每日打卡
</p>
<p
class=
"detail-text"
>
+5勤奋分 +5云鹊豆
</p>
</div>
<div
@
click=
"handleClock"
class=
"right-btn done"
>
已打卡
</div>
</li>
<li>
<img
class=
"left-icon"
src=
"../assets/img/task-icon/lesson-icon.png"
alt=
""
>
<div
class=
"center-wrap"
>
<p
class=
"title"
>
高血压课程学习
</p>
<p
class=
"detail-text"
>
+5勤奋分 +5云鹊豆
</p>
</div>
<div
@
click=
"handleTaskClick"
class=
"right-btn"
>
去学习
</div>
</li>
<li>
<img
class=
"left-icon"
src=
"../assets/img/task-icon/smo-icon.png"
alt=
""
>
<!-- taskList -->
<li
v-for=
"item in taskList"
>
<img
class=
"left-icon"
:src=
"returnEachTaskIcon(item)"
alt=
""
>
<div
class=
"center-wrap"
>
<p
class=
"title"
>
高血压SMO项目任务
</p>
<p
class=
"detail-text"
>
奖励xxx勤奋分
</p>
<p
class=
"title"
>
{{ item.ruleName }}
</p>
<p
class=
"detail-text"
>
{{returnUnderAwardTips(item)}}
</p>
</div>
<div
@
click=
"
handleTaskClick"
class=
"right-btn"
>
去完成
</div>
<div
@
click=
"
goToFinish(item)"
:class=
"returnEachTaskStatus(item)"
>
{{ returnIconText(item) }}
</div>
</li>
</ul>
</div>
...
...
@@ -212,8 +175,8 @@
<!-- <img class="back-image" src="../assets/img/stage-two/win-award-bg.png" alt=""> -->
<!-- <img class="back-image" src="../assets/img/stage-two/award-cup-bg.png" alt=""> -->
<p
class=
"title"
>
打卡成功
</p>
<p
class=
"message"
>
已获得:
5勤奋分, 5
云鹊豆
</p>
<div
class=
"bottom-btn"
>
我知道了
</div>
<p
class=
"message"
>
已获得:
{{vm.clockAward.mark}}勤奋分, {{vm.clockAward.bean}}
云鹊豆
</p>
<div
@
click=
"hideClockModal"
class=
"bottom-btn"
>
我知道了
</div>
<div
class=
"close-btn"
></div>
</div>
</div>
...
...
@@ -234,7 +197,7 @@
</template>
<
script
>
import
{
get
InviteList
}
from
'@/service/activityMainpage'
;
import
{
get
UserScoreInfo
,
getInviteList
,
getClockStatus
,
goToUpdateClock
}
from
'@/service/activityMainpage'
;
import
{
checkHospitalStatus
}
from
'@/service'
;
import
{
getShareUrl
}
from
'@/utils/index'
;
import
{
Toast
}
from
'vant'
;
...
...
@@ -270,9 +233,9 @@
// appVersion: '',
// systemType: '',
},
eachInviteAward
:
{
// 每邀请1位医生好友领取课程,+??勤奋分 +??云鹊豆
mark
:
0
,
// 勤奋分
bean
:
0
,
// 云鹊豆
eachInviteAward
:
{
// 每邀请1位医生好友领取课程,+??勤奋分 +??云鹊豆
(默认均为20)
mark
:
20
,
// 勤奋分
bean
:
2
0
,
// 云鹊豆
},
doctorInfo
:
{
name
:
''
,
// 接口返回用户名字或者手机号带遮掩
...
...
@@ -295,6 +258,16 @@
notInviteShowList
:
[],
// 未邀请的默认显示
taskList
:
[],
// 打卡、课程、SMO
taskObj
:
{
clock
:
null
,
// 打卡
lesson
:
null
,
// 课程
smo
:
null
,
// 患者招募
},
isClockFinish
:
false
,
// 是否打卡
clockAward
:
{
// 打卡的奖励 默认都是5
mark
:
5
,
bean
:
5
,
},
}
},
...
...
@@ -338,6 +311,9 @@
},
mounted
()
{
vm
.
getTasks
();
// 放到登录后或其他************************
vm
.
$rocNative
.
appInit
();
vm
.
getUserInfo
();
// 判断是否登录
...
...
@@ -355,6 +331,9 @@
let
serverTime
=
11111
;
},
hideClockModal
()
{
vm
.
clockSuccessVisible
=
false
;
},
returnStageText
()
{
if
(
vm
.
currentStage
==
0
){
return
''
;
...
...
@@ -418,10 +397,16 @@
},
// 登陆ok后 回调: 获取邀请的医生列表等。。
loginCallback
()
{
vm
.
getUserActivityInfo
();
vm
.
goToCheckJoin
();
},
getUserActivityInfo
()
{
// 获取用户及参加活动的具体信息
getUserScoreInfo
().
then
(
res
=>
{
alert
(
'获取用户及分数信息。。。'
);
alert
(
JSON
.
stringify
(
res
))
});
// 请求接口
vm
.
doctorInfo
=
{
name
:
'云鹊医'
,
// 接口返回用户名字或者手机号带遮掩
...
...
@@ -447,6 +432,7 @@
if
(
status
&&
status
==
1
)
{
// 机构状态正常
vm
.
isJoin
=
true
;
vm
.
joinStatus
=
1
;
vm
.
getTaskStatus
(
vm
.
clockAward
);
vm
.
handleGetInviteList
();
//登录且已加入机构才获取医生邀请了的列表
}
else
if
(
status
&&
status
==
15
)
{
// 15创建机构审核中
vm
.
isJoin
=
false
;
...
...
@@ -652,12 +638,39 @@
},
// 去打卡 按钮
handleClock
()
{
let
cb
=
this
.
goToClock
;
goToFinish
(
item
)
{
let
cb
=
()
=>
{
vm
.
goToFinishCB
(
item
);
};
this
.
handleLoginCheck
(
cb
);
},
goToClock
()
{
console
.
log
(
'执行打卡逻辑'
);
goToFinishCB
(
item
)
{
// resourceType 业务类型 1.课程 2.考试 3.调查问卷 4.患者招募 5.宣教漫画 6.打卡 7.邀请
if
(
item
.
resourceType
==
6
){
// 执行打卡接口
if
(
vm
.
isClockFinish
){
// 已打卡,不执行,未打卡,去调用打卡接口
// 已打卡,不处理
}
else
{
// 未打卡,去打卡
let
params
=
{
activityId
:
item
.
activityId
,
taskId
:
item
.
id
,
};
goToUpdateClock
(
params
).
then
(
res
=>
{
alert
(
JSON
.
stringify
(
'goTO 更新去打卡状态'
));
alert
(
JSON
.
stringify
(
res
));
if
(
res
&&
res
.
code
==
'000000'
){
if
(
res
.
data
){
// 打卡成功
vm
.
clockSuccessVisible
=
true
;
}
else
{
vm
.
$toast
(
res
.
message
);
}
}
else
{
vm
.
$toast
(
res
.
message
);
}
})
}
}
},
// 每个任务的跳转点击
...
...
@@ -670,7 +683,7 @@
},
// 获取每日任务 及 邀请医生好友学课程里的 邀请1位医生的勤奋分及云鹊豆个数
getTasks
()
{
// debugger;
let
res
=
{
"data"
:
{
"loginStatus"
:
2
,
...
...
@@ -678,8 +691,8 @@
{
"id"
:
14
,
"activityId"
:
2
,
"resourceType"
:
7
,
"resourceId"
:
"
2
"
,
"resourceType"
:
7
,
// 业务类型 1.课程 2.考试 3.调查问卷 4.患者招募 5.宣教漫画 6.打卡 7.邀请
"resourceId"
:
"
1
"
,
"resourceChildId"
:
null
,
"defaultBackgroundImage"
:
"https://test1-file.yunqueyi.com/image/png/common/2019112809513020.png"
,
"finishBackgroundImage"
:
null
,
...
...
@@ -690,7 +703,7 @@
"beginTime"
:
"2019-11-26 00:00:00"
,
"endTime"
:
"2019-11-27 23:59:59"
,
"linkId"
:
1703
,
"rewardJsonInfo"
:
"[{
\"
rewardType
\"
:2,
\"
rewardQuantity
\"
:
\"
100
\"
}]"
,
"rewardJsonInfo"
:
[{
rewardType
:
3
,
rewardQuantity
:
"100"
},{
rewardType
:
1
,
rewardQuantity
:
"200"
}]
,
"pushType"
:
1
,
"pushLinkUrl"
:
""
,
"hideEndFlag"
:
2
,
...
...
@@ -705,12 +718,76 @@
"nowCumulativeFrequency"
:
0
,
"isFinish"
:
0
,
"doctorFinishFrequency"
:
null
,
"timeStatus"
:
2
"timeStatus"
:
1
// 项目时间状态 1.进行中 2.结束 3.未开始
},
{
"id"
:
15
,
"activityId"
:
2
,
"resourceType"
:
6
,
// 业务类型 1.课程 2.考试 3.调查问卷 4.患者招募 5.宣教漫画 6.打卡 7.邀请
"resourceId"
:
"2"
,
"resourceChildId"
:
null
,
"defaultBackgroundImage"
:
"https://test1-file.yunqueyi.com/image/png/common/2019112809513020.png"
,
"finishBackgroundImage"
:
null
,
"taskFrequency"
:
1
,
"finishFrequency"
:
1
,
"cumulativeFrequency"
:
null
,
"ruleName"
:
"每日打卡test"
,
"beginTime"
:
"2019-11-26 00:00:00"
,
"endTime"
:
"2019-11-27 23:59:59"
,
"linkId"
:
1703
,
"rewardJsonInfo"
:
[{
rewardType
:
3
,
rewardQuantity
:
111
},{
rewardType
:
1
,
rewardQuantity
:
0
}],
"pushType"
:
1
,
"pushLinkUrl"
:
""
,
"hideEndFlag"
:
2
,
"seqNo"
:
2
,
"deleteFlag"
:
1
,
"createdId"
:
161
,
"createdTime"
:
"2019-11-28 09:51:58"
,
"modifiedId"
:
161
,
"modifiedTime"
:
"2019-11-29 15:30:54"
,
"beginTimeStr"
:
null
,
"endTimeStr"
:
null
,
"nowCumulativeFrequency"
:
0
,
"isFinish"
:
0
,
"doctorFinishFrequency"
:
null
,
"timeStatus"
:
1
},
{
"id"
:
15
,
"activityId"
:
2
,
"resourceType"
:
1
,
// 业务类型 1.课程 2.考试 3.调查问卷 4.患者招募 5.宣教漫画 6.打卡 7.邀请
"resourceId"
:
"2"
,
"resourceChildId"
:
null
,
"defaultBackgroundImage"
:
"https://test1-file.yunqueyi.com/image/png/common/2019112809513020.png"
,
"finishBackgroundImage"
:
null
,
"taskFrequency"
:
1
,
"finishFrequency"
:
1
,
"cumulativeFrequency"
:
null
,
"ruleName"
:
"高血压课程"
,
"beginTime"
:
"2019-11-26 00:00:00"
,
"endTime"
:
"2019-11-27 23:59:59"
,
"linkId"
:
1703
,
"rewardJsonInfo"
:
[{
rewardType
:
3
,
rewardQuantity
:
222
},{
rewardType
:
1
,
rewardQuantity
:
0
}],
"pushType"
:
1
,
"pushLinkUrl"
:
""
,
"hideEndFlag"
:
2
,
"seqNo"
:
2
,
"deleteFlag"
:
1
,
"createdId"
:
161
,
"createdTime"
:
"2019-11-28 09:51:58"
,
"modifiedId"
:
161
,
"modifiedTime"
:
"2019-11-29 15:30:54"
,
"beginTimeStr"
:
null
,
"endTimeStr"
:
null
,
"nowCumulativeFrequency"
:
0
,
"isFinish"
:
1
,
"doctorFinishFrequency"
:
null
,
"timeStatus"
:
1
},
{
"id"
:
15
,
"activityId"
:
2
,
"resourceType"
:
7
,
"resourceType"
:
4
,
// 业务类型 1.课程 2.考试 3.调查问卷 4.患者招募 5.宣教漫画 6.打卡 7.邀请
"resourceId"
:
"2"
,
"resourceChildId"
:
null
,
"defaultBackgroundImage"
:
"https://test1-file.yunqueyi.com/image/png/common/2019112809513020.png"
,
...
...
@@ -718,11 +795,11 @@
"taskFrequency"
:
1
,
"finishFrequency"
:
1
,
"cumulativeFrequency"
:
null
,
"ruleName"
:
"
邀请好友测试
"
,
"ruleName"
:
"
SMO患者招募
"
,
"beginTime"
:
"2019-11-26 00:00:00"
,
"endTime"
:
"2019-11-27 23:59:59"
,
"linkId"
:
1703
,
"rewardJsonInfo"
:
"[{
\"
rewardType
\"
:3,
\"
rewardQuantity
\"
:
\"
100
\"
},{
\"
rewardType
\"
:4,
\"
rewardQuantity
\"
:
\"
15
\"
}]"
,
"rewardJsonInfo"
:
[{
rewardType
:
3
,
rewardQuantity
:
0
},{
rewardType
:
1
,
rewardQuantity
:
99
}]
,
"pushType"
:
1
,
"pushLinkUrl"
:
""
,
"hideEndFlag"
:
2
,
...
...
@@ -737,7 +814,7 @@
"nowCumulativeFrequency"
:
0
,
"isFinish"
:
0
,
"doctorFinishFrequency"
:
null
,
"timeStatus"
:
2
"timeStatus"
:
1
}
],
"activityData"
:
{
...
...
@@ -763,13 +840,17 @@
"message"
:
"成功"
};
let
data
=
res
.
data
;
let
taskRuleData
=
res
.
taskRuleData
||
[];
// 获取 邀请节点,此时获取邀请1个医生对应的 分数 和 豆子
let
taskRuleData
=
data
.
taskRuleData
||
[];
for
(
let
i
=
0
;
i
<
taskRuleData
.
length
;
i
++
){
let
item
=
taskRuleData
[
i
];
if
(
item
.
resourceType
==
7
&&
resourceId
==
1
){
let
rewardList
=
item
.
rewardJsonInfo
||
[];
let
rewardList
=
[];
// 获取 邀请节点,进行中 此时获取邀请1个医生对应的 分数 和 豆子
if
(
item
.
resourceType
==
7
&&
item
.
resourceId
==
1
&&
item
.
timeStatus
==
1
){
rewardList
=
item
.
rewardJsonInfo
||
[];
for
(
let
j
=
0
;
j
<
rewardList
.
length
;
j
++
){
if
(
rewardList
[
j
].
rewardType
==
3
){
// 勤奋分
vm
.
eachInviteAward
.
mark
=
rewardList
[
j
].
rewardQuantity
;
...
...
@@ -777,14 +858,110 @@
vm
.
eachInviteAward
.
bean
=
rewardList
[
j
].
rewardQuantity
;
}
}
}
else
if
(
item
.
resourceType
==
6
&&
item
.
timeStatus
==
1
){
// 打卡 默认奖励 5分 5豆
item
.
eachInviteAwardMark
=
5
;
item
.
eachInviteAwardBean
=
5
;
item
=
vm
.
formatEachTaskAward
(
item
);
vm
.
clockAward
=
{
mark
:
item
.
eachInviteAwardMark
,
bean
:
item
.
eachInviteAwardBean
,
activityId
:
item
.
activityId
,
id
:
item
.
id
,
};
vm
.
taskObj
.
clock
=
item
;
}
else
if
(
item
.
resourceType
==
1
&&
item
.
timeStatus
==
1
){
// 课程 默认奖励 20分 20豆
item
.
eachInviteAwardMark
=
20
;
item
.
eachInviteAwardBean
=
20
;
item
=
vm
.
formatEachTaskAward
(
item
);
vm
.
taskObj
.
lesson
=
item
;
}
else
if
(
item
.
resourceType
==
4
&&
item
.
timeStatus
==
1
){
// smo 没奖励分 默认奖励100豆
item
.
eachInviteAwardBean
=
100
;
item
=
vm
.
formatEachTaskAward
(
item
);
vm
.
taskObj
.
smo
=
item
;
}
};
vm
.
taskList
=
[];
if
(
vm
.
taskObj
.
clock
){
vm
.
taskList
.
push
(
vm
.
taskObj
.
clock
);
}
if
(
vm
.
taskObj
.
lesson
){
vm
.
taskList
.
push
(
vm
.
taskObj
.
lesson
);
}
if
(
vm
.
taskObj
.
smo
){
vm
.
taskList
.
push
(
vm
.
taskObj
.
smo
);
}
// 过滤出 活动主页需要的任务数据
},
getTaskStatus
(
params
)
{
vm
.
isClockFinish
=
false
;
getClockStatus
(
params
).
then
(
res
=>
{
alert
(
JSON
.
stringify
(
'GET GET 打卡状态获取 OK'
));
if
(
res
&&
res
.
code
==
'000000'
){
text
=
!!
res
.
data
?
'已打卡'
:
'去打卡'
;
vm
.
isClockFinish
=
!!
res
.
data
;
}
else
{
vm
.
$toast
(
res
.
message
);
}
})
},
returnUnderAwardTips
(
item
)
{
if
(
typeof
item
.
eachInviteAwardMark
!=
'undefined'
&&
item
.
eachInviteAwardMark
!=
'0'
){
return
`+
${
item
.
eachInviteAwardMark
}
勤奋分 +
${
item
.
eachInviteAwardBean
}
云鹊豆`
;
}
else
{
return
`+
${
item
.
eachInviteAwardBean
}
云鹊豆`
;
}
},
// 格式化数据
formatEachTaskAward
(
item
)
{
let
rewardList
=
item
.
rewardJsonInfo
||
[];
for
(
let
j
=
0
;
j
<
rewardList
.
length
;
j
++
){
if
(
rewardList
[
j
].
rewardType
==
3
){
// 勤奋分
item
.
eachInviteAwardMark
=
rewardList
[
j
].
rewardQuantity
;
}
else
if
(
rewardList
[
j
].
rewardType
==
1
){
// 云鹊豆
item
.
eachInviteAwardBean
=
rewardList
[
j
].
rewardQuantity
;
}
};
return
item
;
},
// ddd
// 返回每个任务 icon
returnEachTaskIcon
(
item
)
{
// resourceType 业务类型 1.课程 2.考试 3.调查问卷 4.患者招募 5.宣教漫画 6.打卡 7.邀请
if
(
item
.
resourceType
==
6
){
return
require
(
'../assets/img/task-icon/daily-clock-icon.png'
);
}
else
if
(
item
.
resourceType
==
1
)
{
return
require
(
'../assets/img/task-icon/lesson-icon.png'
);
}
else
if
(
item
.
resourceType
==
4
){
return
require
(
'../assets/img/task-icon/smo-icon.png'
);
}
else
{
return
require
(
'../assets/img/task-icon/daily-clock-icon.png'
);
}
},
returnEachTaskStatus
(
item
)
{
if
(
item
.
resourceType
==
6
){
return
vm
.
isClockFinish
?
'right-btn done'
:
'right-btn'
}
else
{
return
item
.
isFinish
==
0
?
'right-btn done'
:
'right-btn'
}
},
// 返回任务右边的按钮文案
returnIconText
(
item
)
{
let
text
=
'去完成'
;
if
(
item
.
resourceType
==
6
){
return
vm
.
isClockFinish
?
'已打卡'
:
'去打卡'
;
}
if
(
item
.
resourceType
==
1
){
// 1-课程
text
=
item
.
isFinish
==
0
?
'已完成'
:
'去学习'
;
}
else
if
(
item
.
resourceType
==
4
){
// 4-smo
text
=
item
.
isFinish
==
0
?
'已完成'
:
'去完成'
;
}
return
text
;
},
},
...
...
service/activityMainpage.js
浏览文件 @
baa32ba2
...
...
@@ -2,8 +2,21 @@
import
request
from
'./api'
;
// 获取已邀请的医生列表
// 获取用户信息
// /ranking/user_info
export
const
getUserScoreInfo
=
()
=>
{
return
request
({
url
:
`campaign/ranking/user_info`
,
method
:
'post'
,
withCredentials
:
true
,
// headers: {
// token: token
// }
})
}
// 获取已邀请的医生列表
export
const
getInviteList
=
()
=>
{
return
request
({
url
:
`campaign/inviteDetail/oneList?pageNo=1&pageSize=10`
,
...
...
@@ -13,4 +26,26 @@ export const getInviteList = () => {
// token: token
// }
})
}
\ No newline at end of file
}
// 获取打卡状态
export
const
getClockStatus
=
(
params
)
=>
{
return
request
({
url
:
`campaign/clock/
${
params
.
activityId
}
/status/
${
params
.
id
}
`
,
method
:
'get'
,
withCredentials
:
true
,
})
}
// 去打卡状态
export
const
goToUpdateClock
=
(
params
)
=>
{
return
request
({
url
:
`campaign/clock/clock`
,
method
:
'post'
,
data
:
params
,
withCredentials
:
true
,
})
}
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录