Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-professional-exam
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Culm
pica-professional-exam
提交
7707305e
提交
7707305e
编写于
6月 05, 2020
作者:
guangjun.yang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
二期功能等
上级
61acf590
变更
15
显示空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
1360 行增加
和
132 行删除
+1360
-132
comp-list-item.vue
src/components/business/comp-list-item.vue
+1
-1
coop-list-item copy.vue
src/components/business/coop-list-item copy.vue
+2
-2
coop-list-item.vue
src/components/business/coop-list-item.vue
+2
-2
I-card-item.vue
src/components/cme/I-card-item.vue
+31
-1
basic-info.vue
src/components/cme/basic-info.vue
+7
-2
card-banner.vue
src/components/cme/card-banner.vue
+27
-4
getters.js
src/store/getters.js
+4
-1
coop.js
src/store/modules/coop.js
+40
-1
env-config.js
src/utils/env-config.js
+13
-4
index.js
src/utils/index.js
+5
-0
I-credit-detail.vue
src/views/I-credit-detail.vue
+12
-1
index copy 2.vue
src/views/index copy 2.vue
+399
-0
index.vue
src/views/index.vue
+25
-111
merge-detail copy.vue
src/views/merge-detail copy.vue
+789
-0
merge-detail.vue
src/views/merge-detail.vue
+3
-2
未找到文件。
src/components/business/comp-list-item.vue
浏览文件 @
7707305e
...
@@ -75,7 +75,7 @@ export default {
...
@@ -75,7 +75,7 @@ export default {
});
});
return
;
return
;
}
}
let
pageUrl
=
getWebPageUrl
(
'c
oopv2
/#/comp2'
);
let
pageUrl
=
getWebPageUrl
(
'c
me
/#/comp2'
);
let
moduleName
=
encodeURIComponent
(
item
.
moduleName
)
let
moduleName
=
encodeURIComponent
(
item
.
moduleName
)
let
paramList
=
[
let
paramList
=
[
{
{
...
...
src/components/business/coop-list-item copy.vue
浏览文件 @
7707305e
...
@@ -212,7 +212,7 @@ export default {
...
@@ -212,7 +212,7 @@ export default {
// let pageUrl = "";
// let pageUrl = "";
// let paramList = [];
// let paramList = [];
// if(item.parent === false)
{
// if(item.parent === false)
{
// pageUrl = getWebPageUrl('c
oopv2
/#/coop');
// pageUrl = getWebPageUrl('c
me
/#/coop');
// paramList = [
// paramList = [
//
{
//
{
// key: "pageUrl",
// key: "pageUrl",
...
@@ -222,7 +222,7 @@ export default {
...
@@ -222,7 +222,7 @@ export default {
//
}
//
}
// ]
// ]
//
}
else {
//
}
else {
// pageUrl = getWebPageUrl('c
oopv2
/#/parent');
// pageUrl = getWebPageUrl('c
me
/#/parent');
// paramList = [
// paramList = [
// {
// {
// key: "pageUrl",
// key: "pageUrl",
...
...
src/components/business/coop-list-item.vue
浏览文件 @
7707305e
...
@@ -225,7 +225,7 @@ export default {
...
@@ -225,7 +225,7 @@ export default {
// let pageUrl = "";
// let pageUrl = "";
// let paramList = [];
// let paramList = [];
// if(item.parent === false)
{
// if(item.parent === false)
{
// pageUrl = getWebPageUrl('c
oopv2
/#/coop');
// pageUrl = getWebPageUrl('c
me
/#/coop');
// paramList = [
// paramList = [
//
{
//
{
// key: "pageUrl",
// key: "pageUrl",
...
@@ -235,7 +235,7 @@ export default {
...
@@ -235,7 +235,7 @@ export default {
//
}
//
}
// ]
// ]
//
}
else {
//
}
else {
// pageUrl = getWebPageUrl('c
oopv2
/#/parent');
// pageUrl = getWebPageUrl('c
me
/#/parent');
// paramList = [
// paramList = [
// {
// {
// key: "pageUrl",
// key: "pageUrl",
...
...
src/components/cme/I-card-item.vue
浏览文件 @
7707305e
...
@@ -11,11 +11,41 @@
...
@@ -11,11 +11,41 @@
</section>
</section>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getWebPageUrl
}
from
"@/utils/index"
import
{
mapGetters
}
from
'vuex'
export
default
{
export
default
{
data
()
{
data
()
{
return
{};
return
{};
},
},
methods
:
{}
computed
:
{
...
mapGetters
([
"userInfo"
])
},
methods
:
{
// 跳转I类学习详情页面
jumpToCardList
()
{
if
(
!
this
.
userInfo
.
userMobile
)
{
rocNative
.
gotoLogin
();
}
if
(
window
.
__isWeb
)
{
console
.
log
(
'in jumpToCardList'
);
return
;
}
else
{
let
pageUrl
=
getWebPageUrl
(
'cme/#/icreditdetail'
);
let
paramList
=
[
{
key
:
"pageUrl"
,
value
:
pageUrl
,
type
:
4
,
seqNo
:
1
}
]
rocNative
.
dispatchEventByModuleCode
({
modeCode
:
"M300"
,
jsonString
:
paramList
});
}
}
}
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
...
src/components/cme/basic-info.vue
浏览文件 @
7707305e
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
<span>
申请范围
</span>
<span>
申请范围
</span>
<span>
{{
scope
}}
</span>
<span>
{{
scope
}}
</span>
</div>
</div>
<div
class=
"remind"
v-if=
"remind"
>
<div
class=
"remind"
v-if=
"remind
&& cmeType != 2
"
>
<span>
{{
remind
}}
</span>
<span>
{{
remind
}}
</span>
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
...
@@ -26,7 +26,8 @@
...
@@ -26,7 +26,8 @@
<span>
{{
startDate
|
formatTime
(
'{y
}
.{m
}
.{d
}
'
)
}}
至
{{
endDate
|
formatTime
(
'{y
}
.{m
}
.{d
}
'
)
}}
<
/span
>
<span>
{{
startDate
|
formatTime
(
'{y
}
.{m
}
.{d
}
'
)
}}
至
{{
endDate
|
formatTime
(
'{y
}
.{m
}
.{d
}
'
)
}}
<
/span
>
<
/div
>
<
/div
>
<
div
class
=
"content"
>
<
div
class
=
"content"
>
<
span
>
发起机构
<
/span
>
<
span
>
{{
cmeType
==
2
?
'主办单位'
:
'发起机构'
}}
<
/span
>
<!--
<
span
>
发起机构
<
/span> --
>
<
span
>
{{
organName
}}
<
/span
>
<
span
>
{{
organName
}}
<
/span
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
@@ -69,6 +70,10 @@ export default {
...
@@ -69,6 +70,10 @@ export default {
projectCredit
:
{
projectCredit
:
{
type
:
String
,
type
:
String
,
default
:
""
default
:
""
}
,
cmeType
:
{
type
:
String
|
Number
,
default
:
1
}
}
}
}
}
;
}
;
...
...
src/components/cme/card-banner.vue
浏览文件 @
7707305e
<
template
>
<
template
>
<section
class=
"card-banner-wrapper"
>
<section
@
click=
"jumpToCardList"
class=
"card-banner-wrapper"
>
<article
class=
"left"
>
<article
class=
"left"
>
<img
src=
"../../images/cme/phrase2/what.png"
alt
/>
<img
src=
"../../images/cme/phrase2/what.png"
alt
/>
<span>
学习项目必须使用学习卡哦~
</span>
<span>
学习项目必须使用学习卡哦~
</span>
...
@@ -8,11 +8,34 @@
...
@@ -8,11 +8,34 @@
</section>
</section>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getHactiveUrl
}
from
"@/utils/index"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{};
return
{};
},
},
methods
:
{}
methods
:
{
// 跳转到学习卡列表页面
jumpToCardList
()
{
if
(
window
.
__isWeb
)
{
console
.
log
(
"in jumpToCardList"
);
return
;
}
else
{
let
pageUrl
=
getHactiveUrl
(
"/message_push/#/study-card"
);
let
paramList
=
[
{
key
:
"pageUrl"
,
value
:
pageUrl
,
type
:
4
,
seqNo
:
1
}
];
rocNative
.
dispatchEventByModuleCode
({
modeCode
:
"M300"
,
jsonString
:
paramList
});
}
}
}
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
@@ -25,7 +48,7 @@ export default {
...
@@ -25,7 +48,7 @@ export default {
padding
:
0
px2rem
(
15px
);
padding
:
0
px2rem
(
15px
);
justify-content
:
space-between
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
background
:
#
FEFAF
5
;
background
:
#
fefaf
5
;
.left
{
.left
{
display
:
flex
;
display
:
flex
;
height
:
px2rem
(
40px
);
height
:
px2rem
(
40px
);
...
@@ -49,7 +72,7 @@ export default {
...
@@ -49,7 +72,7 @@ export default {
background
:
rgba
(
230
,
162
,
60
,
1
);
background
:
rgba
(
230
,
162
,
60
,
1
);
border-radius
:
px2rem
(
25px
);
border-radius
:
px2rem
(
25px
);
border
:
px2rem
(
1px
)
solid
rgba
(
230
,
162
,
60
,
1
);
border
:
px2rem
(
1px
)
solid
rgba
(
230
,
162
,
60
,
1
);
color
:
#
FFFFFF
;
color
:
#
ffffff
;
}
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/store/getters.js
浏览文件 @
7707305e
const
getters
=
{
const
getters
=
{
userInfo
:
state
=>
state
.
coop
.
userInfo
,
userInfo
:
state
=>
state
.
coop
.
userInfo
,
statusBarHeight
:
state
=>
state
.
coop
.
statusBarHeight
,
statusBarHeight
:
state
=>
state
.
coop
.
statusBarHeight
,
projectTabIndex
:
state
=>
state
.
coop
.
projectTabIndex
projectTabIndex
:
state
=>
state
.
coop
.
projectTabIndex
,
jumpURLForII
:
state
=>
state
.
coop
.
jumpURLForII
,
positionInfo
:
state
=>
state
.
coop
.
positionInfo
,
organizationInfo
:
state
=>
state
.
coop
.
organizationInfo
,
}
}
export
default
getters
export
default
getters
src/store/modules/coop.js
浏览文件 @
7707305e
...
@@ -2,7 +2,28 @@ const coop = {
...
@@ -2,7 +2,28 @@ const coop = {
state
:
{
state
:
{
userInfo
:
{},
userInfo
:
{},
statusBarHeight
:
{},
statusBarHeight
:
{},
projectTabIndex
:
1
projectTabIndex
:
1
,
jumpURLForII
:
""
,
//中华医学会一类或二类跳转地址
positionInfo
:
{
accuracy
:
""
,
address
:
""
,
city
:
""
,
city_code
:
""
,
country
:
""
,
district
:
""
,
district_code
:
""
,
latitude
:
""
,
longitude
:
""
,
poi_name
:
""
,
province
:
""
,
},
organizationInfo
:
{
provinceId
:
0
,
cityId
:
0
,
countyId
:
0
,
townId
:
0
,
organizationId
:
0
}
},
},
mutations
:
{
mutations
:
{
SET_USER_INFO
:
(
state
,
userInfo
)
=>
{
SET_USER_INFO
:
(
state
,
userInfo
)
=>
{
...
@@ -14,6 +35,15 @@ const coop = {
...
@@ -14,6 +35,15 @@ const coop = {
SET_PROJECT_TAB_INDEX
:
(
state
,
projectTabIndex
)
=>
{
SET_PROJECT_TAB_INDEX
:
(
state
,
projectTabIndex
)
=>
{
state
.
projectTabIndex
=
projectTabIndex
state
.
projectTabIndex
=
projectTabIndex
},
},
SET_JUMP_URL_FOR_I_AND_II
:
(
state
,
jumpURLForII
)
=>
{
state
.
jumpURLForII
=
jumpURLForII
},
SET_POSITION_INFO
:
(
state
,
positionInfo
)
=>
{
state
.
positionInfo
=
positionInfo
},
SET_ORGANIZATION_INFO
:
(
state
,
organizationInfo
)
=>
{
state
.
organizationInfo
=
organizationInfo
},
},
},
actions
:
{
actions
:
{
setUserInfo
({
commit
},
userInfo
)
{
setUserInfo
({
commit
},
userInfo
)
{
...
@@ -25,6 +55,15 @@ const coop = {
...
@@ -25,6 +55,15 @@ const coop = {
setProjectTabIndex
({
commit
},
projectTabIndex
)
{
setProjectTabIndex
({
commit
},
projectTabIndex
)
{
commit
(
'SET_PROJECT_TAB_INDEX'
,
projectTabIndex
)
commit
(
'SET_PROJECT_TAB_INDEX'
,
projectTabIndex
)
},
},
setJumpURLForII
({
commit
},
jumpURLForII
)
{
commit
(
'SET_JUMP_URL_FOR_I_AND_II'
,
jumpURLForII
)
},
setPositionInfo
({
commit
},
positionInfo
)
{
commit
(
'SET_POSITION_INFO'
,
positionInfo
)
},
setOrganizationInfo
({
commit
},
organizationInfo
)
{
commit
(
'SET_ORGANIZATION_INFO'
,
organizationInfo
)
},
}
}
}
}
...
...
src/utils/env-config.js
浏览文件 @
7707305e
...
@@ -10,38 +10,47 @@ export const envConfig = {
...
@@ -10,38 +10,47 @@ export const envConfig = {
apiUrl
:
'https://dev-api.yunqueyi.com/'
,
apiUrl
:
'https://dev-api.yunqueyi.com/'
,
webPageUrl
:
'https://dev-phome.yunqueyi.com/'
,
webPageUrl
:
'https://dev-phome.yunqueyi.com/'
,
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
hactiveUrl
:
'https://dev-hactive.yunqueyi.com'
,
// http://dev-hactive.yunqueyi.com/message_push/#/study-card
// baseUrl: 'https://test1-sc.yunqueyi.com/',
// baseUrl: 'https://test1-sc.yunqueyi.com/',
// apiUrl: 'https://test1-api.yunqueyi.com/',
// apiUrl: 'https://test1-api.yunqueyi.com/',
// webPageUrl: 'https://test1-phome.yunqueyi.com/'
// webPageUrl: 'https://test1-phome.yunqueyi.com/'
// hactiveUrl: 'https://dev-hactive.yunqueyi.com',
// baseUrl: 'https://uat-sc.yunqueyi.com/',
// baseUrl: 'https://uat-sc.yunqueyi.com/',
// apiUrl: 'https://uat-api.yunqueyi.com/',
// apiUrl: 'https://uat-api.yunqueyi.com/',
// webPageUrl: 'https://uat-phome.yunqueyi.com/'
// webPageUrl: 'https://uat-phome.yunqueyi.com/'
// hactiveUrl: 'https://uat-hactive.yunqueyi.com',
// baseUrl: 'https://sc.yunqueyi.com/',
// baseUrl: 'https://sc.yunqueyi.com/',
// apiUrl: 'https://api.yunqueyi.com/',
// apiUrl: 'https://api.yunqueyi.com/',
// webPageUrl: 'https://phome.yunqueyi.com/'
// webPageUrl: 'https://phome.yunqueyi.com/'
// hactiveUrl: 'https://hactive.yunqueyi.com',
},
},
dev
:
{
dev
:
{
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
apiUrl
:
'https://dev-api.yunqueyi.com/'
,
apiUrl
:
'https://dev-api.yunqueyi.com/'
,
webPageUrl
:
'https://dev-phome.yunqueyi.com/'
webPageUrl
:
'https://dev-phome.yunqueyi.com/'
,
hactiveUrl
:
'https://dev-hactive.yunqueyi.com'
,
},
},
test
:
{
test
:
{
baseUrl
:
'https://test1-sc.yunqueyi.com/'
,
baseUrl
:
'https://test1-sc.yunqueyi.com/'
,
apiUrl
:
'https://test1-api.yunqueyi.com/'
,
apiUrl
:
'https://test1-api.yunqueyi.com/'
,
webPageUrl
:
'https://test1-phome.yunqueyi.com/'
webPageUrl
:
'https://test1-phome.yunqueyi.com/'
,
hactiveUrl
:
'https://test1-hactive.yunqueyi.com'
,
},
},
uat
:
{
uat
:
{
baseUrl
:
'https://uat-sc.yunqueyi.com/'
,
baseUrl
:
'https://uat-sc.yunqueyi.com/'
,
apiUrl
:
'https://uat-api.yunqueyi.com/'
,
apiUrl
:
'https://uat-api.yunqueyi.com/'
,
webPageUrl
:
'https://uat-phome.yunqueyi.com/'
webPageUrl
:
'https://uat-phome.yunqueyi.com/'
,
hactiveUrl
:
'https://uat-hactive.yunqueyi.com'
,
},
},
pro
:
{
pro
:
{
baseUrl
:
'https://sc.yunqueyi.com/'
,
baseUrl
:
'https://sc.yunqueyi.com/'
,
apiUrl
:
'https://api.yunqueyi.com/'
,
apiUrl
:
'https://api.yunqueyi.com/'
,
webPageUrl
:
'https://phome.yunqueyi.com/'
webPageUrl
:
'https://phome.yunqueyi.com/'
,
hactiveUrl
:
'https://hactive.yunqueyi.com'
,
}
}
}
}
src/utils/index.js
浏览文件 @
7707305e
...
@@ -18,6 +18,11 @@ export function getWebPageUrl(url) {
...
@@ -18,6 +18,11 @@ export function getWebPageUrl(url) {
return
getConfigByEnvType
(
'webPageUrl'
)
+
(
url
||
''
)
return
getConfigByEnvType
(
'webPageUrl'
)
+
(
url
||
''
)
}
}
// 获取推送域名地址(message_push)
export
function
getHactiveUrl
(
url
)
{
return
getConfigByEnvType
(
'hactiveUrl'
)
+
(
url
||
''
)
}
// 根据不同环境,生成URL
// 根据不同环境,生成URL
function
getConfigByEnvType
(
urlType
)
{
function
getConfigByEnvType
(
urlType
)
{
return
envConfig
[
process
.
env
.
BUILD_ENV
][
urlType
]
return
envConfig
[
process
.
env
.
BUILD_ENV
][
urlType
]
...
...
src/views/I-credit-detail.vue
浏览文件 @
7707305e
...
@@ -8,17 +8,28 @@
...
@@ -8,17 +8,28 @@
<img
class=
"img"
src=
"https://file.yunqueyi.com/h5/images/tinified/i-detail-6.png"
>
<img
class=
"img"
src=
"https://file.yunqueyi.com/h5/images/tinified/i-detail-6.png"
>
<img
class=
"img"
src=
"https://file.yunqueyi.com/h5/images/tinified/i-detail-7.png"
>
<img
class=
"img"
src=
"https://file.yunqueyi.com/h5/images/tinified/i-detail-7.png"
>
<img
@
click=
"jumper"
class=
"img"
src=
"https://file.yunqueyi.com/h5/images/tinified/i-detail-8.png"
>
<img
@
click=
"jumper"
class=
"img"
src=
"https://file.yunqueyi.com/h5/images/tinified/i-detail-8.png"
>
<CardPopup
:showGoUpdate=
"showGoUpdate"
></CardPopup>
</section>
</section>
</
template
>
</
template
>
<
script
>
<
script
>
import
CardPopup
from
"@/components/cme/card-popup"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
showGoUpdate
:
false
,
}
}
},
},
components
:
{
CardPopup
},
methods
:
{
methods
:
{
/*
1、判断用户是否购买过I类学习卡,没有购买过,则弹出Popup框(之前要调用接口)
2、判断用户是否购买过I类学习卡,没有购买过,则弹出Popup框(之前要调用接口)
*/
jumper
()
{
jumper
()
{
this
.
showGoUpdate
=
true
;
console
.
log
(
'in jumper'
);
console
.
log
(
'in jumper'
);
}
}
},
},
...
...
src/views/index copy 2.vue
0 → 100644
浏览文件 @
7707305e
<
template
>
<!-- 专项合作首页: 我参与的,其它项目 -->
<div
class=
"page-container"
>
<CommonNavbar
:bgColor=
"bgColor"
v-show=
"isShowNavbar"
:title=
"navTitle"
:isFixNavbar=
"isFixNavbar"
:burialPoint=
"pointStyle"
borderStyle=
"1px solid #fff"
></CommonNavbar>
<section
class=
"page-content"
>
<!--
<button
@
click=
"jumpToExamAction"
style=
"margin: 20px;font-size:20px;text-align:center;padding:10px;border-radius:10px;"
>
测试按钮1
</button>
<button
@
click=
"jumpToExamAction2"
style=
"margin: 20px;font-size:20px;text-align:center;padding:10px;border-radius:10px;"
>
测试按钮2
</button>
-->
<!--
{{
token
}}
-->
<table
class=
"page-content-table"
>
<tr>
<td
@
click=
"changeTab(1)"
:class=
"
{'active': tabIndex === 1}">
<div
class=
"tap-title"
>
<span
:style=
"
{'color': tabIndex === 1 ? '#333' : '#999'}">我的项目
</span>
<span></span>
</div>
</td>
<td
@
click=
"changeTab(2)"
:class=
"
{'active': tabIndex === 2}">
<div
class=
"tap-title"
>
<span
:style=
"
{'color': tabIndex === 2 ? '#333' : '#999'}">全部项目
</span>
<span></span>
</div>
</td>
</tr>
</table>
<article
class=
"cb-wrapper"
:class=
"
{'padding-top-111': !isWeb}">
<CardBanner></CardBanner>
</article>
<article
class=
"page-content-list"
>
<CommonTitle
v-show=
"tabIndex === 2"
title=
"I类学分项目"
:isShowCert=
"false"
></CommonTitle>
<ICardItem
v-show=
"tabIndex === 2"
></ICardItem>
<CommonTitle
title=
"II类学分项目"
:isShowCert=
"false"
></CommonTitle>
<section
v-if=
"tabIndex === 1"
>
<CoopListItem
:paramData=
"joinProjectList"
:coopType=
"1"
:tabTo=
"1"
:isShow=
"isShow"
:userMobile=
"userMobile"
></CoopListItem>
</section>
<section
v-if=
"tabIndex === 2"
>
<CoopListItem
:paramData=
"otherProjectList"
:coopType=
"1"
:tabTo=
"2"
:isShow=
"isShow"
:userMobile=
"userMobile"
></CoopListItem>
</section>
</article>
</section>
<Toast
ref=
"toastTitle"
></Toast>
<Loading
v-if=
"showLoading"
/>
<!--
<div>
<iframe
src=
"https://www.baidu.com"
id=
"mobsf"
frameborder=
"0"
style=
"width:100%;height:500px;"
></iframe>
</div>
-->
<!--
<discuss-topic-stencil
/>
-->
<transition
name=
"fade"
>
<article
v-show=
"needShowBackup"
@
click=
"scrollTop"
class=
"back-up-icon"
>
<img
src=
"../images/cme/phrase2/back-top.png"
alt
/>
</article>
</transition>
<!--
<CardPopup
:showGoUpdate=
"showGoUpdate"
></CardPopup>
-->
</div>
</
template
>
<
script
>
import
CommonNavbar
from
"@/components/common/common-navbar"
;
import
CoopListItem
from
"@/components/business/coop-list-item"
;
import
Loading
from
"@/components/common/common-loading"
;
import
Toast
from
"@/components/common/common-toast"
;
import
CardBanner
from
"@/components/cme/card-banner"
;
import
ICardItem
from
"@/components/cme/I-card-item"
;
// import CardPopup from "@/components/cme/card-popup";
import
CommonTitle
from
"@/components/common/common-title"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
export
default
{
data
()
{
return
{
showLoading
:
false
,
isWeb
:
window
.
__isWeb
,
bgColor
:
"#fff"
,
isShow
:
false
,
navTitle
:
"CME项目"
,
compTitle
:
"组件名称"
,
isShowNavbar
:
true
,
isFixNavbar
:
false
,
pointStyle
:
"activity"
,
descTitle
:
"规定从何处开始选取。如果是负数"
,
tabIndex
:
1
,
joinProjectList
:
[],
// 我的项目
otherProjectList
:
[],
// 全部项目
token
:
""
,
toastTitle
:
""
,
userMobile
:
""
,
needShowBackup
:
false
,
showGoUpdate
:
false
,
};
},
computed
:
{
...
mapGetters
([
"projectTabIndex"
])
},
components
:
{
// DiscussTopicStencil,
CommonNavbar
,
CoopListItem
,
Loading
,
Toast
,
CardBanner
,
CommonTitle
,
ICardItem
,
// CardPopup
},
created
()
{
var
_this
=
this
;
window
.
__getUserInfo
=
function
(
param
)
{
_this
.
setUserInfo
(
param
);
_this
.
token
=
param
.
userToken
;
_this
.
userMobile
=
param
.
userMobile
;
_this
.
getCoopData
();
};
_this
.
getUserInfo
();
if
(
__isWeb
)
{
_this
.
getCoopData
();
}
window
.
__refresh
=
function
()
{
//_this.tabIndex = _this.projectTabIndex;
_this
.
getUserInfo
();
};
// 打开页面埋点
this
.
$sendBuriedData
({
component_tag
:
"210#0#0#0"
});
window
.
__getPositionData
=
function
(
param
)
{
console
.
log
(
param
)
}
this
.
getPositionData
();
window
.
addEventListener
(
"scroll"
,
this
.
scrollFun
);
},
mounted
()
{
var
_this
=
this
;
this
.
tabIndex
=
this
.
projectTabIndex
;
// let param = {
// id: 12 };
// this.API_GET("app/certificate/downLoad", param).then(res => {
// });
},
methods
:
{
// 跳转到第三方考试页面
//
jumpToExamAction
()
{
let
paramList
=
[
{
key
:
"pageUrl"
,
value
:
"http://cmeonline.cma-cmc.com.cn/cms/weixinCourseDetail.htm?courseId=a245b2060ac0495cae440de859321b91&openCourseId=2d9b152a85dc4833892aeaa713362b9f"
,
type
:
4
,
seqNo
:
1
},
// 此字段不配置,则用原来的逻辑
{
key
:
"needCache"
,
value
:
"1"
,
// 0不缓存,其它值都做缓存
type
:
4
,
seqNo
:
1
}
];
rocNative
.
dispatchEventByModuleCode
({
modeCode
:
"M300"
,
jsonString
:
paramList
});
},
jumpToExamAction2
()
{
let
paramList
=
[
{
key
:
"pageUrl"
,
value
:
"http://cmeonline.cma-cmc.com.cn/cms/weixinCourseDetail.htm?courseId=0aeee9f7712b4543ab8eadb0571a78a7&openCourseId=e9e124392d3f4e2494d46e8f990b085e"
,
type
:
4
,
seqNo
:
1
},
// 此字段不配置,则用原来的逻辑
{
key
:
"needCache"
,
value
:
"1"
,
// 0不缓存,其它值都做缓存
type
:
4
,
seqNo
:
1
}
];
rocNative
.
dispatchEventByModuleCode
({
modeCode
:
"M300"
,
jsonString
:
paramList
});
},
...
mapActions
([
"setUserInfo"
]),
//获取版本号
getUserInfo
()
{
rocNative
.
getUserInfo
({
__funcName
:
"__getUserInfo"
});
},
//获取位置信息 测试代码
getPositionData
()
{
console
.
log
(
'getPositionData'
);
rocNative
.
getPositionData
({
__funcName
:
"__getPositionData"
});
},
changeTab
(
index
)
{
let
tag
=
index
==
1
?
"210#210001#0"
:
"210#210001#1"
;
this
.
tabIndex
=
index
;
if
(
index
==
1
&&
!
this
.
userMobile
)
{
rocNative
.
gotoLogin
();
this
.
tabIndex
=
2
;
}
this
.
$sendBuriedData
({
component_tag
:
tag
});
},
// 获取所有项目:我的项目、其它项目
getCoopData
()
{
// debugger
let
_this
=
this
;
let
param
=
{
token
:
_this
.
token
,
setEntry
:
true
};
let
cachedJoinProjectList
=
[];
let
cachedOtherProjectList
=
[];
_this
.
otherProjectList
=
[];
_this
.
showLoading
=
true
;
this
.
GET
(
"cme/project/list"
,
param
).
then
(
res
=>
{
_this
.
showLoading
=
false
;
if
(
res
.
code
==
"000000"
)
{
// let oldProjects1 = [];
// let oldProjects2 = [];
// for(let i = 0; i
<
res
.
data
.
oldProjects
.
length
;
i
++
)
{
// if(res.data.oldProjects[i].roleFlag == 1) {
// oldProjects1.push(res.data.oldProjects[i]);
// } else if (res.data.oldProjects[i].roleFlag == 0) {
// oldProjects2.push(res.data.oldProjects[i]);
// }
// }
// console.log('项目1',oldProjects1,'项目2',oldProjects2);
cachedJoinProjectList
=
res
.
data
.
myCMEProjectListDtoList
;
cachedOtherProjectList
=
res
.
data
.
allCMEProjectListDtoList
;
_this
.
joinProjectList
=
res
.
data
.
myCMEProjectListDtoList
;
_this
.
otherProjectList
=
res
.
data
.
allCMEProjectListDtoList
;
// cachedJoinProjectList = _this.handleOldProject(
// oldProjects1,
// res.data.myProjectList
// );
// cachedOtherProjectList = _this.handleOldProject(
// oldProjects2,
// res.data.otherProjectList
// );
// 如果用户已经登陆,则将"至今"的几个项目移到我的列表中
if
(
_this
.
userMobile
)
{
// cachedOtherProjectList.map(item => {
// if(item.projectName && item.projectName.indexOf('国家基本公共卫生服务项目基层高血压管理办公室') >= 0) {
// cachedJoinProjectList.unshift(item);
// } else {
// _this.otherProjectList.push(item);
// }
// })
_this
.
tabIndex
=
1
;
}
else
{
_this
.
tabIndex
=
2
;
// _this.otherProjectList = cachedOtherProjectList
}
// _this.joinProjectList = cachedJoinProjectList;
if
(
_this
.
joinProjectList
&&
_this
.
joinProjectList
.
length
===
0
)
{
_this
.
tabIndex
=
2
;
}
_this
.
isShow
=
true
;
// console.log('otherProjectList',_this.otherProjectList);
}
});
},
handleOldProject
(
oldProjects
,
otherProjectList
)
{
let
oldList
=
oldProjects
.
map
(
item
=>
{
item
.
pType
=
1
;
return
item
;
}),
otherList
=
otherProjectList
.
map
(
item
=>
{
item
.
pType
=
2
;
return
item
;
});
return
oldList
.
concat
(
otherList
);
},
scrollFun
()
{
let
scrollTop
=
window
.
scrollY
;
if
(
scrollTop
>=
500
)
{
this
.
needShowBackup
=
true
;
}
else
{
this
.
needShowBackup
=
false
;
}
},
scrollTop
()
{
window
.
scrollTo
(
0
,
0
);
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"../style/mixin"
;
.page-content
{
&
-table
{
position
:
fixed
;
z-index
:
100
;
width
:
100%
;
text-align
:
center
;
border-bottom
:
1px
solid
#e7e7e7
;
background
:
#fff
;
tr
{
font-size
:
px2rem
(
15px
);
font-weight
:
700
;
height
:
px2rem
(
44px
);
td
{
width
:
50%
;
padding-top
:
px2rem
(
6px
);
.tap-title
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
color
:
#999
;
span
:nth-child
(
2
)
{
position
:
relative
;
left
:
0
;
bottom
:
px2rem
(
-9px
);
z-index
:
2
;
width
:
px2rem
(
10px
);
height
:
px2rem
(
3px
);
background
:
rgba
(
255
,
255
,
255
,
1
);
border-radius
:
px2rem
(
3px
);
}
}
&
.active
{
span
:nth-child
(
2
)
{
background
:
rgba
(
68
,
146
,
132
,
1
);
}
}
}
}
}
.cb-wrapper
{
width
:
100%
;
position
:
fixed
;
top
:
px2rem
(
49px
);
left
:
0
;
z-index
:
90
;
margin-bottom
:
30px
;
&
.padding-top-111
{
top
:
px2rem
(
111px
);
}
}
&
-list
{
padding-top
:
px2rem
(
80px
);
}
}
.back-up-icon
{
position
:
fixed
;
bottom
:
px2rem
(
50px
);
right
:
px2rem
(
15px
);
img
{
width
:
px2rem
(
35px
);
height
:
px2rem
(
35px
);
}
}
.fade-enter-active
,
.fade-leave-active
{
transition
:
opacity
0
.5s
;
}
.fade-enter
,
.fade-leave-active
{
opacity
:
0
;
}
</
style
>
src/views/index.vue
浏览文件 @
7707305e
...
@@ -10,9 +10,6 @@
...
@@ -10,9 +10,6 @@
borderStyle=
"1px solid #fff"
borderStyle=
"1px solid #fff"
></CommonNavbar>
></CommonNavbar>
<section
class=
"page-content"
>
<section
class=
"page-content"
>
<!--
<button
@
click=
"jumpToExamAction"
style=
"margin: 20px;font-size:20px;text-align:center;padding:10px;border-radius:10px;"
>
测试按钮1
</button>
<button
@
click=
"jumpToExamAction2"
style=
"margin: 20px;font-size:20px;text-align:center;padding:10px;border-radius:10px;"
>
测试按钮2
</button>
-->
<!--
{{
token
}}
-->
<table
class=
"page-content-table"
>
<table
class=
"page-content-table"
>
<tr>
<tr>
<td
@
click=
"changeTab(1)"
:class=
"
{'active': tabIndex === 1}">
<td
@
click=
"changeTab(1)"
:class=
"
{'active': tabIndex === 1}">
...
@@ -67,7 +64,7 @@
...
@@ -67,7 +64,7 @@
<img
src=
"../images/cme/phrase2/back-top.png"
alt
/>
<img
src=
"../images/cme/phrase2/back-top.png"
alt
/>
</article>
</article>
</transition>
</transition>
<
CardPopup
:showGoUpdate=
"showGoUpdate"
></CardPopup
>
<
!--
<CardPopup
:showGoUpdate=
"showGoUpdate"
></CardPopup>
--
>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -77,7 +74,7 @@ import Loading from "@/components/common/common-loading";
...
@@ -77,7 +74,7 @@ import Loading from "@/components/common/common-loading";
import
Toast
from
"@/components/common/common-toast"
;
import
Toast
from
"@/components/common/common-toast"
;
import
CardBanner
from
"@/components/cme/card-banner"
;
import
CardBanner
from
"@/components/cme/card-banner"
;
import
ICardItem
from
"@/components/cme/I-card-item"
;
import
ICardItem
from
"@/components/cme/I-card-item"
;
import
CardPopup
from
"@/components/cme/card-popup"
;
//
import CardPopup from "@/components/cme/card-popup";
import
CommonTitle
from
"@/components/common/common-title"
;
import
CommonTitle
from
"@/components/common/common-title"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
...
@@ -105,7 +102,7 @@ export default {
...
@@ -105,7 +102,7 @@ export default {
};
};
},
},
computed
:
{
computed
:
{
...
mapGetters
([
"projectTabIndex"
])
...
mapGetters
([
"projectTabIndex"
,
"organizationInfo"
])
},
},
components
:
{
components
:
{
...
@@ -117,7 +114,7 @@ export default {
...
@@ -117,7 +114,7 @@ export default {
CardBanner
,
CardBanner
,
CommonTitle
,
CommonTitle
,
ICardItem
,
ICardItem
,
CardPopup
//
CardPopup
},
},
created
()
{
created
()
{
var
_this
=
this
;
var
_this
=
this
;
...
@@ -141,73 +138,31 @@ export default {
...
@@ -141,73 +138,31 @@ export default {
component_tag
:
"210#0#0#0"
component_tag
:
"210#0#0#0"
});
});
// TEST
window
.
__getPositionData
=
function
(
param
)
{
window
.
__getPositionData
=
function
(
param
)
{
console
.
log
(
param
)
console
.
log
(
param
)
}
}
// TEST
this
.
getPositionData
();
this
.
getPositionData
();
window
.
addEventListener
(
"scroll"
,
this
.
scrollFun
);
window
.
addEventListener
(
"scroll"
,
this
.
scrollFun
);
},
},
mounted
()
{
mounted
()
{
var
_this
=
this
;
var
_this
=
this
;
this
.
tabIndex
=
this
.
projectTabIndex
;
this
.
tabIndex
=
this
.
projectTabIndex
;
// let param = {
// id: 12 };
// this.API_GET("app/certificate/downLoad", param).then(res => {
// });
},
},
methods
:
{
methods
:
{
// 跳转到第三方考试页面
...
mapActions
([
"setUserInfo"
,
"setOrganizationInfo"
]),
//
jumpToExamAction
()
{
let
paramList
=
[
{
key
:
"pageUrl"
,
value
:
"http://cmeonline.cma-cmc.com.cn/cms/weixinCourseDetail.htm?courseId=a245b2060ac0495cae440de859321b91&openCourseId=2d9b152a85dc4833892aeaa713362b9f"
,
type
:
4
,
seqNo
:
1
},
// 此字段不配置,则用原来的逻辑
{
key
:
"needCache"
,
value
:
"1"
,
// 0不缓存,其它值都做缓存
type
:
4
,
seqNo
:
1
}
];
rocNative
.
dispatchEventByModuleCode
({
modeCode
:
"M300"
,
jsonString
:
paramList
});
},
jumpToExamAction2
()
{
//获取位置信息 测试代码 TEST
let
paramList
=
[
getPositionData
()
{
{
console
.
log
(
'getPositionData'
);
key
:
"pageUrl"
,
rocNative
.
getPositionData
({
value
:
__funcName
:
"__getPositionData"
"http://cmeonline.cma-cmc.com.cn/cms/weixinCourseDetail.htm?courseId=0aeee9f7712b4543ab8eadb0571a78a7&openCourseId=e9e124392d3f4e2494d46e8f990b085e"
,
type
:
4
,
seqNo
:
1
},
// 此字段不配置,则用原来的逻辑
{
key
:
"needCache"
,
value
:
"1"
,
// 0不缓存,其它值都做缓存
type
:
4
,
seqNo
:
1
}
];
rocNative
.
dispatchEventByModuleCode
({
modeCode
:
"M300"
,
jsonString
:
paramList
});
});
},
},
...
mapActions
([
"setUserInfo"
]),
//获取版本号
//获取版本号
getUserInfo
()
{
getUserInfo
()
{
rocNative
.
getUserInfo
({
rocNative
.
getUserInfo
({
...
@@ -215,14 +170,7 @@ export default {
...
@@ -215,14 +170,7 @@ export default {
});
});
},
},
//获取位置信息
// 切换列表
getPositionData
()
{
console
.
log
(
'getPositionData'
);
rocNative
.
getPositionData
({
__funcName
:
"__getPositionData"
});
},
changeTab
(
index
)
{
changeTab
(
index
)
{
let
tag
=
index
==
1
?
"210#210001#0"
:
"210#210001#1"
;
let
tag
=
index
==
1
?
"210#210001#0"
:
"210#210001#1"
;
this
.
tabIndex
=
index
;
this
.
tabIndex
=
index
;
...
@@ -234,79 +182,43 @@ export default {
...
@@ -234,79 +182,43 @@ export default {
component_tag
:
tag
component_tag
:
tag
});
});
},
},
// 获取所有项目:我的项目、其它项目
// 获取所有项目:我的项目、其它项目
getCoopData
()
{
getCoopData
()
{
// debugger
let
_this
=
this
;
let
_this
=
this
;
let
param
=
{
let
param
=
{
token
:
_this
.
token
,
token
:
_this
.
token
,
setEntry
:
true
setEntry
:
true
};
};
let
cachedJoinProjectList
=
[];
_this
.
joinProjectList
=
[];
let
cachedOtherProjectList
=
[];
_this
.
otherProjectList
=
[];
_this
.
otherProjectList
=
[];
_this
.
showLoading
=
true
;
_this
.
showLoading
=
true
;
this
.
GET
(
"cme/project/list"
,
param
).
then
(
res
=>
{
this
.
GET
(
"cme/project/list"
,
param
).
then
(
res
=>
{
_this
.
showLoading
=
false
;
_this
.
showLoading
=
false
;
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
code
==
"000000"
)
{
// let oldProjects1 = [];
// let oldProjects2 = [];
// for(let i = 0; i
<
res
.
data
.
oldProjects
.
length
;
i
++
)
{
// if(res.data.oldProjects[i].roleFlag == 1) {
// oldProjects1.push(res.data.oldProjects[i]);
// } else if (res.data.oldProjects[i].roleFlag == 0) {
// oldProjects2.push(res.data.oldProjects[i]);
// }
// }
// console.log('项目1',oldProjects1,'项目2',oldProjects2);
cachedJoinProjectList
=
res
.
data
.
myCMEProjectListDtoList
;
cachedJoinProjectList
=
res
.
data
.
myCMEProjectListDtoList
;
cachedOtherProjectList
=
res
.
data
.
allCMEProjectListDtoList
;
cachedOtherProjectList
=
res
.
data
.
allCMEProjectListDtoList
;
_this
.
joinProjectList
=
res
.
data
.
myCMEProjectListDtoList
;
_this
.
joinProjectList
=
res
.
data
.
myCMEProjectListDtoList
;
_this
.
otherProjectList
=
res
.
data
.
allCMEProjectListDtoList
;
_this
.
otherProjectList
=
res
.
data
.
allCMEProjectListDtoList
;
// cachedJoinProjectList = _this.handleOldProject(
_this
.
organizationInfo
.
provinceId
=
res
.
data
.
provinceId
;
// oldProjects1,
_this
.
organizationInfo
.
organizationId
=
res
.
data
.
organizationId
;
// res.data.myProjectList
_this
.
oneLevelUrl
=
res
.
data
.
oneLevelUrl
;
// 学习卡列表地址
// );
// _this.setJumpURLForIAndII(res.data.oneLevelUrl);
// cachedOtherProjectList = _this.handleOldProject(
_this
.
setOrganizationInfo
(
organizationInfo
);
// oldProjects2,
// res.data.otherProjectList
// );
// 如果用户已经登陆,则将"至今"的几个项目移到我的列表中
if
(
_this
.
userMobile
)
{
if
(
_this
.
userMobile
)
{
// cachedOtherProjectList.map(item => {
// if(item.projectName && item.projectName.indexOf('国家基本公共卫生服务项目基层高血压管理办公室') >= 0) {
// cachedJoinProjectList.unshift(item);
// } else {
// _this.otherProjectList.push(item);
// }
// })
_this
.
tabIndex
=
1
;
_this
.
tabIndex
=
1
;
}
else
{
}
else
{
_this
.
tabIndex
=
2
;
_this
.
tabIndex
=
2
;
// _this.otherProjectList = cachedOtherProjectList
}
}
// _this.joinProjectList = cachedJoinProjectList;
if
(
_this
.
joinProjectList
&&
_this
.
joinProjectList
.
length
===
0
)
{
if
(
_this
.
joinProjectList
&&
_this
.
joinProjectList
.
length
===
0
)
{
_this
.
tabIndex
=
2
;
_this
.
tabIndex
=
2
;
}
}
_this
.
isShow
=
true
;
_this
.
isShow
=
true
;
// console.log('otherProjectList',_this.otherProjectList);
}
}
});
});
},
},
handleOldProject
(
oldProjects
,
otherProjectList
)
{
let
oldList
=
oldProjects
.
map
(
item
=>
{
// 监听滚动事件
item
.
pType
=
1
;
return
item
;
}),
otherList
=
otherProjectList
.
map
(
item
=>
{
item
.
pType
=
2
;
return
item
;
});
return
oldList
.
concat
(
otherList
);
},
scrollFun
()
{
scrollFun
()
{
let
scrollTop
=
window
.
scrollY
;
let
scrollTop
=
window
.
scrollY
;
if
(
scrollTop
>=
500
)
{
if
(
scrollTop
>=
500
)
{
...
@@ -315,6 +227,8 @@ export default {
...
@@ -315,6 +227,8 @@ export default {
this
.
needShowBackup
=
false
;
this
.
needShowBackup
=
false
;
}
}
},
},
// 滚动到顶部
scrollTop
()
{
scrollTop
()
{
window
.
scrollTo
(
0
,
0
);
window
.
scrollTo
(
0
,
0
);
}
}
...
...
src/views/merge-detail copy.vue
0 → 100644
浏览文件 @
7707305e
<
template
>
<!-- 组件详情页面:模块列表及其下面的元件列表 -->
<div
class=
"page-container-merge"
>
<CommonNavbar
id=
"header"
:bgColor=
"bgColor"
v-show=
"isShowNavbar"
:isBlack=
"isBlack"
:isShowShare=
"isShowShare"
:title=
"navTitle"
:shareTitle=
"project.projectName"
:shareTitleInfo=
"project.projectIntro"
:isFixNavbar=
"isFixNavbar"
:burialPoint=
"pointStyle"
borderStyle=
"0px solid #fff"
:backMethod=
"from"
></CommonNavbar>
<div
class=
"page-content list-container"
>
<!-- banner图片 -->
<div
v-if=
"bannerType == 1"
class=
"page-content-img-container"
>
<img
class=
"banner-img"
:src=
"attachmentUrl"
/>
<!--
<img
v-show=
"project.status == 1"
class=
"banner-img-1"
src=
"../images/status-join.png"
/>
-->
<img
v-show=
"project.status == 5"
class=
"banner-img-5"
src=
"../images/status-keep-on.png"
/>
<img
v-show=
"project.status == 10"
class=
"banner-img-10"
src=
"../images/status-end-cme.png"
/>
</div>
<!-- banner视频 -->
<CommonTcPlayer
v-if=
"bannerType == 2"
style=
"flex"
:options=
"videoOptions"
></CommonTcPlayer>
<!-- 项目标题 -->
<CommonDescription
:projectName=
"project.projectName"
:studyNum=
"project.studyNum"
:subject=
"project.subject"
/>
<!-- 步骤条 -->
<div
v-if=
"project.cmeType != 2"
>
<CmeStep
:currentProgress=
"project.currentProgress"
:studyProgress=
"project.studyProgress"
:credit=
"project.credit"
:creditId=
"project.creditId"
:certificateUrl=
"project.certificateUrl"
:inScope=
"project.inScope"
:projectId=
"projectId"
:certificateId=
"project.certificateId"
@
applicationCredit=
"applicationCredit"
/>
</div>
<!-- 简介和目录 -->
<div
class=
"intro-catalogue-container"
>
<div
id=
"content-title"
class=
"title"
:class=
"
{'fixed-title-1': (fixedFlag
&&
!isWeb), 'fixed-title-2': (fixedFlag
&&
isWeb)}"
>
<span
:class=
"
{'focus': tabFlag}" @click="jumpIntro">简介
</span>
<span
:class=
"
{'focus': !tabFlag}" @click="jumpCatalogue">目录
</span>
</div>
<div
v-show=
"fixedFlag"
class=
"fixed-flag-height"
></div>
<div
id=
"intro-content"
class=
"intro-content"
>
<BasicInfo
:projectNo=
"project.projectNo"
:credit=
"project.credit"
:level=
"project.level"
:scope=
"project.scope"
:startDate=
"project.startDate"
:endDate=
"project.endDate"
:organName=
"project.organName"
:remind=
"project.remind"
:projectCredit=
"project.projectCredit"
/>
<LearnKnow
:mustKnow=
"project.mustKnow"
></LearnKnow>
<CommonSpliteLine></CommonSpliteLine>
<ItemIntro
:textContent=
"textContent"
@
itemIntroText=
"itemIntroText"
></ItemIntro>
<ItemLeader
v-if=
"projectLeader"
:projectLeader=
"projectLeader"
:leaderText=
"leaderText"
@
changeLeaderText=
"changeLeaderText"
/>
<TeacterIntro
v-if=
"doctorList.length"
:doctorList=
"doctorList"
></TeacterIntro>
</div>
<CommonSpliteLine></CommonSpliteLine>
<div
id=
"catalogue-content"
class=
"catalogue-content"
>
<div
class=
"catalogue-title"
>
目录
</div>
<CellListDetail
:projectComponent=
"projectComponentDTOS"
:actionList=
"actionList"
:detailNum=
"detailNum"
:courseRequire=
"courseRequire"
/>
</div>
</div>
</div>
<Loading
v-show=
"showLoading"
/>
<!-- 弹框 -->
<CommonDialog
:isShowDialog=
"isShowDialog"
:isSingle=
"isSingle"
:cancleBtnText=
"cancleBtnText"
:confirmBtnText=
"confirmBtnText"
:content=
"dialogContent"
@
handlerAction=
"handlerAction"
/>
<!-- 弹框 -->
<ExjumperDialog
:isShowDialog=
"isShowEJDialog"
isSingle
needSubContent
content=
"确保您已经从云鹊平台购买优惠学习卡。跳转后请申请考试、激活学习卡,考试通过后申请证书。"
subContent=
"学分由中华医学电子音像出版社授予,如有问题可致电400-920-8899云鹊医客服咨询。"
cancleBtnText=
"我知道了"
@
handlerAction=
"handlerEJAction"
/>
<ExjumperButton
@
btnClick=
"beforeJumpToExam"
v-if=
"project.cmeType == 2 && project.inScope !== 0"
:btnText=
"project.currentProgress > 1 ? '参加考试' : '学完全部课程,可参加考试'"
:type=
"project.currentProgress > 1 ? 'primary' : 'disabled'"
></ExjumperButton>
<div
v-if=
"project.cmeType == 2 && project.inScope !== 0"
style=
"padding-top: 30px"
></div>
</div>
</
template
>
<
script
>
import
CommonNavbar
from
"@/components/common/common-navbar"
;
import
CommonDescription
from
"@/components/common/common-description"
;
import
CommonSpliteLine
from
"@/components/common/common-splite-line"
;
import
CellListDetail
from
"@/components/business/cell-list-detail"
;
// import NoPermContent from "@/components/business/no-perm-content";
// import CommonBannerVideo from "@/components/common/common-banner-video";
import
CommonTcPlayer
from
"@/components/common/common-tcplayer"
;
import
Loading
from
"@/components/common/common-loading"
;
import
CmeStep
from
"@/components/cme/cme-step"
;
import
BasicInfo
from
"@/components/cme/basic-info"
;
import
LearnKnow
from
"@/components/cme/learn-know"
;
import
ItemIntro
from
"@/components/cme/item-intro"
;
import
ItemLeader
from
"@/components/cme/item-leader"
;
import
TeacterIntro
from
"@/components/cme/teacter-intro"
;
import
CommonDialog
from
"@/components/cme/common-dialog"
;
import
ExjumperDialog
from
"@/components/cme/exjumper-dialog"
;
import
ExjumperButton
from
"@/components/cme/exjumper-button"
;
import
{
getWebPageUrl
,
gotoPage
}
from
"@/utils/index"
;
import
{
mapGetters
,
mapActions
}
from
"vuex"
;
import
vueFilters
from
"@/utils/filter"
;
import
{
Toast
}
from
'vant'
;
let
cataOffsetTop
=
0
;
let
intorOffsetTop
=
0
;
let
titleOffsetHeight
=
50
;
export
default
{
data
()
{
return
{
// token: "9B62E5874DA94979A54DB3E9DFC1443F",
isWeb
:
window
.
__isWeb
,
textContent
:
""
,
leaderText
:
""
,
pageTitle
:
""
,
isShowShare
:
true
,
premissionFlag
:
false
,
isSingle
:
false
,
dialogContent
:
""
,
// 弹框内容
confirmBtnText
:
""
,
// 弹框按钮
cancleBtnText
:
""
,
isShowDialog
:
false
,
isShowEJDialog
:
false
,
tabFlag
:
true
,
// 显示目录还是简介
fixedFlag
:
false
,
// 目录和简介是否固定
project
:
{
credit
:
""
,
// 学分
creditId
:
0
,
// 学分Id
level
:
""
,
// 项目等级
scope
:
""
,
// 申请范围
remind
:
""
,
// 在不在范围提醒
startDate
:
0
,
// 开始时间
endDate
:
0
,
// 结束时间
organName
:
""
,
// 发起机构
projectName
:
""
,
// 项目名称
projectNo
:
""
,
// 项目编号
currentProgress
:
0
,
// 项目进度
projectIntro
:
""
,
// 项目介绍
mustKnow
:
""
,
// 学习须知
studyNum
:
0
,
// 学习人数
studyProgress
:
"0%"
,
// 学习进度
subject
:
""
,
// 学科
status
:
0
,
// 项目状态 5是进行中 10是已结束
certificateUrl
:
""
,
// 证书url
inScope
:
0
,
// 是否在范围内判断
projectCredit
:
""
,
// 学分
certificateId
:
"0"
,
cmeType
:
1
,
// 1: 自营项目; 2: 中华医学会二类
examBtnUrl
:
''
,
// 考试按钮跳转连接
firstIntoExam
:
false
,
// true弹框,是否首次进入考试,用于首次跳转弹框提示,只跟项目和人员有关
jumpToContents
:
false
,
// 是否跳转到目录
// cmeType=2时不显示进度,
// projectNo为空时不显示项目编号,
// projectLeader为空时不显示项目负责人,
// inScope=0时考试按钮不显示,
// currentProgress>1时考试按钮显示并可用
},
projectLeader
:
{},
doctorList
:
[],
from
:
"inner"
,
isBlack
:
false
,
showLoading
:
false
,
projectId
:
"1"
,
//componentId: 1,
//moduleId: 1,
contentList
:
[],
//moduleName: "",
bannerType
:
1
,
// 1 图片 2视频
videoOptions
:
{
mp4
:
""
,
autoplay
:
false
,
//iOS下safari浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
coverpic
:
require
(
"../images/video-cover.png"
),
width
:
"415"
,
//视频的显示宽度,请尽量使用视频分辨率宽度
height
:
"210"
//视频的显示高度,请尽量使用视频分辨率高度
},
//projectStatus: 1, //1没有获得证书 2是获得全部证书
attachmentUrl
:
require
(
"../images/banner-default.png"
),
bgColor
:
"none"
,
navTitle
:
"项目详情"
,
// compTitle: "组件名称",
isShowNavbar
:
true
,
isFixNavbar
:
true
,
pointStyle
:
"activity"
,
projectComponentDTOS
:
[],
actionList
:
[],
detailNum
:
0
,
courseRequire
:
0
,
clientType
:
0
,
// currentProgress>1时考试按钮显示并可用
btnType
:
'primary'
,
// primary: 可跳转时(currentProgress = 1); disabled: 不可跳转时
btnText
:
'学完全部课程,可参加考试'
// 参加考试(currentProgress = 1); 或者学完全部课程,可参加考试
};
},
components
:
{
CommonNavbar
,
CommonDescription
,
CommonSpliteLine
,
CellListDetail
,
Loading
,
CommonTcPlayer
,
CmeStep
,
BasicInfo
,
LearnKnow
,
ItemIntro
,
ItemLeader
,
TeacterIntro
,
CommonDialog
,
ExjumperButton
,
ExjumperDialog
},
computed
:
{
...
mapGetters
([
"userInfo"
]),
},
created
()
{
let
_this
=
this
;
this
.
from
=
this
.
$route
.
query
.
from
||
this
.
from
||
"native"
;
this
.
projectId
=
this
.
$route
.
query
.
id
||
1
;
this
.
courseRequire
=
this
.
$route
.
query
.
courseRequire
;
window
.
__getUserInfo64Comp
=
function
(
param
)
{
// appVersion 安卓 3.2.2 iOS
console
.
log
(
'__getUserInfo64Comp'
,
param
);
_this
.
token
=
param
.
userToken
;
_this
.
setUserInfo
(
param
);
_this
.
checkToken
();
_this
.
getProjectParticularsV2
();
};
_this
.
getUserInfo
();
// if (__isWeb && process.env.BUILD_ENV == "development") {
// let param = {};
// __getUserInfo64Comp(param);
// }
if
(
__isWeb
)
{
_this
.
getProjectParticularsV2
();
}
window
.
__refresh
=
function
()
{
_this
.
getUserInfo
();
};
// 打开页面埋点
this
.
$sendBuriedData
({
// action: "打开页面",
component_tag
:
`211#0#
${
this
.
projectId
}
#0`
});
},
mounted
()
{
window
.
addEventListener
(
"scroll"
,
this
.
scrollFun
);
const
_this
=
this
;
},
beforeDestroyed
()
{
window
.
removeEventListener
(
"scroll"
,
this
.
scrollFun
);
},
methods
:
{
...
mapActions
([
"setUserInfo"
]),
// 点击“参与考试”
beforeJumpToExam
()
{
// 如果是首次,则弹出弹框
if
(
this
.
project
.
firstIntoExam
)
{
this
.
isShowEJDialog
=
true
;
}
else
{
this
.
jumpToExamAction
();
}
},
// 第一次跳转弹框,点击时调用相应接口
handlerEJAction
()
{
this
.
isShowEJDialog
=
false
;
this
.
jumpToExamAction
();
this
.
firstIntoExamAction
();
},
// 跳转到第三方考试页面
jumpToExamAction
()
{
// 判断版本号,如果小于3.4.0,则只做提示
let
appVersion
=
this
.
userInfo
.
appVersion
;
let
appVersionNum
=
appVersion
.
split
(
'.'
).
join
(
''
);
if
(
appVersionNum
<
340
)
{
Toast
(
'请您下载新版本App'
);
return
;
}
let
paramList
=
[
{
key
:
"pageUrl"
,
value
:
this
.
project
.
examBtnUrl
,
type
:
4
,
seqNo
:
1
},
// 此字段不配置,则用原来的逻辑
{
key
:
"needCache"
,
value
:
'1'
,
// 0不缓存,其它值都做缓存
type
:
4
,
seqNo
:
1
}
];
rocNative
.
dispatchEventByModuleCode
({
modeCode
:
"M300"
,
jsonString
:
paramList
});
},
// 首次进入考试时记录(点击‘我知道了’时调用)
firstIntoExamAction
()
{
let
_this
=
this
;
let
param
=
{
token
:
_this
.
userInfo
.
userToken
||
this
.
token
,
setEntry
:
true
};
this
.
NEW_POST
(
`cme/project/
${
_this
.
projectId
}
/firstIntoExam`
,
param
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
project
.
firstIntoExam
=
false
;
}
});
},
//获取用户信息
getUserInfo
()
{
rocNative
.
getUserInfo
({
__funcName
:
"__getUserInfo64Comp"
});
},
// token是否失效校验
checkToken
()
{
let
_this
=
this
;
let
param
=
{
token
:
_this
.
userInfo
.
userToken
||
_this
.
token
,
setEntry
:
true
};
this
.
GET
(
"campaign/admin/task/checkToken"
,
param
).
then
(
res
=>
{
if
(
res
.
code
!==
"000000"
)
{
//未登录 跳转登录页
console
.
log
(
"跳登录"
);
rocNative
.
gotoLogin
();
}
else
{
// if (!_this.premissionFlag) {
// _this.premissionFlag = true;
// _this.permission(); // 提示是否有机构和在申请范围内
// }
}
});
},
//(判断是否加入机构,是否为认证用户,是否在申请范围内)
permission
()
{
let
_this
=
this
;
let
param
=
{
id
:
_this
.
projectId
,
creditId
:
_this
.
project
.
creditId
,
token
:
_this
.
userInfo
.
userToken
||
this
.
token
,
setEntry
:
true
};
_this
.
NEW_POST
(
"cme/credit/rangeCheck"
,
param
).
then
(
res
=>
{
if
(
res
.
code
==
"219004"
||
res
.
code
==
"219012"
)
{
// 未加入机构 219004 不在申请范围 219012
this
.
dialogContent
=
`该项目仅对
${
_this
.
project
.
scope
}
的用户开放`
;
this
.
cancleBtnText
=
"我知道了"
;
this
.
isShowDialog
=
true
;
this
.
isSingle
=
true
;
}
else
{
this
.
isShowDialog
=
false
;
}
});
},
// 立即申请学分
applicationCredit
()
{
let
_this
=
this
;
let
param
=
{
id
:
_this
.
projectId
,
creditId
:
_this
.
project
.
creditId
,
token
:
_this
.
userInfo
.
userToken
||
this
.
token
,
setEntry
:
true
};
_this
.
NEW_POST
(
"cme/credit/applyCheck"
,
param
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
gotoPage
(
_this
,
`cme/#/credit-edit?creditId=
${
_this
.
project
.
creditId
}
`
);
}
else
if
(
res
.
code
==
"219004"
||
res
.
code
==
"219005"
)
{
// 未加入机构 219004 未身份认证 219005 不在申请范围 219012
let
params
=
{
__funcName
:
"__checkPermissions"
,
permCode
:
"009014"
};
rocNative
.
checkPermissions
(
params
);
}
// else if (res.code == "219012") {
// this.dialogContent = res.message;
// this.cancleBtnText = "我知道了";
// this.isShowDialog = true;
// this.isSingle = true;
// }
else
{
this
.
dialogContent
=
res
.
message
;
this
.
cancleBtnText
=
"我知道了"
;
this
.
isShowDialog
=
true
;
this
.
isSingle
=
true
;
}
});
},
// 弹框按钮事件
handlerAction
(
data
)
{
this
.
isShowDialog
=
false
;
},
scrollFun
()
{
let
scrollTop
=
document
.
body
.
scrollTop
||
document
.
documentElement
.
scrollTop
;
let
h
=
intorOffsetTop
-
135
// 显示头部导航
if
(
scrollTop
>
20
)
{
this
.
isBlack
=
true
;
this
.
bgColor
=
"#fff"
;
}
else
{
this
.
isBlack
=
false
;
this
.
bgColor
=
"none"
;
}
if
(
window
.
__isWeb
)
{
h
=
intorOffsetTop
-
75
;
}
else
if
(
window
.
__isIOS
)
{
h
=
intorOffsetTop
-
140
;
}
// 如果滚动高度大于简介头部(并减去tab高度),则进行固定
if
(
scrollTop
>
h
)
{
this
.
fixedFlag
=
true
;
}
else
{
this
.
fixedFlag
=
false
;
}
// 如果滚动高度大于
if
(
scrollTop
>
cataOffsetTop
-
600
)
{
this
.
tabFlag
=
false
;
}
else
{
this
.
tabFlag
=
true
;
}
},
// 锚点到简介
jumpIntro
()
{
if
(
!
this
.
tabFlag
)
{
this
.
tabFlag
=
true
;
}
if
(
!
this
.
fixedFlag
)
{
this
.
fixedFlag
=
true
;
}
let
h
;
if
(
this
.
isWeb
)
{
h
=
intorOffsetTop
-
30
-
titleOffsetHeight
;
}
else
{
h
=
intorOffsetTop
-
85
-
titleOffsetHeight
;
}
window
.
scrollTo
(
0
,
h
);
this
.
isBlack
=
true
;
this
.
bgColor
=
"#fff"
;
this
.
$sendBuriedData
({
component_tag
:
`211#211007#
${
this
.
projectId
}
`
});
},
// 锚点到目录
jumpCatalogue
()
{
if
(
this
.
tabFlag
)
{
this
.
tabFlag
=
false
;
}
if
(
!
this
.
fixedFlag
)
{
this
.
fixedFlag
=
true
;
}
let
h
;
if
(
this
.
isWeb
)
{
h
=
cataOffsetTop
-
titleOffsetHeight
;
}
else
{
h
=
cataOffsetTop
-
100
;
}
window
.
scrollTo
(
0
,
h
);
this
.
isBlack
=
true
;
this
.
bgColor
=
"#fff"
;
this
.
$sendBuriedData
({
component_tag
:
`211#211008#
${
this
.
projectId
}
`
});
},
// 获取项目详情
getProjectParticularsV2
()
{
let
_this
=
this
;
let
param
=
{
token
:
_this
.
userInfo
.
userToken
||
this
.
token
,
setEntry
:
true
};
_this
.
showLoading
=
true
;
this
.
NEW_GET
(
`cme/project/
${
_this
.
projectId
}
/info`
,
param
).
then
(
res
=>
{
if
(
res
.
code
==
"000000"
)
{
// 先设置视频URL再显示视频组件 ------------ BEGIN
if
(
res
.
data
.
attachmentType
==
2
)
{
_this
.
videoOptions
.
mp4
=
res
.
data
.
attachmentUrl
;
}
else
{
_this
.
attachmentUrl
=
res
.
data
.
attachmentUrl
;
}
_this
.
bannerType
=
res
.
data
.
attachmentType
;
if
(
_this
.
bannerType
==
2
)
{
_this
.
clientType
=
__isWeb
?
1
:
__isAndroid
?
2
:
3
;
}
// 先设置视频URL再显示视频组件 ------------ END
_this
.
project
=
res
.
data
;
if
(
_this
.
project
.
projectIntro
)
{
_this
.
textContent
=
_this
.
project
.
projectIntro
.
length
>
70
?
_this
.
project
.
projectIntro
.
slice
(
0
,
70
)
+
"..."
:
this
.
project
.
projectIntro
;
}
_this
.
project
.
mustKnow
=
_this
.
project
.
mustKnow
.
replace
(
/
(\r\n)
|
\r
|
\n
/g
,
"<br>"
);
_this
.
projectLeader
=
res
.
data
.
projectLeader
;
if
(
_this
.
projectLeader
&&
_this
.
projectLeader
.
info
)
{
_this
.
leaderText
=
_this
.
projectLeader
.
info
.
length
>
70
?
_this
.
projectLeader
.
info
.
slice
(
0
,
70
)
+
"..."
:
this
.
projectLeader
.
info
;
}
_this
.
doctorList
=
res
.
data
.
doctorList
;
//_this.projectStatus = res.data.projectStatus;
_this
.
projectComponentDTOS
=
_this
.
setListData
(
res
.
data
.
projectComponentDTOS
);
if
(
!
_this
.
isWeb
&&
!
_this
.
premissionFlag
)
{
_this
.
premissionFlag
=
true
;
_this
.
permission
();
// 提示是否有机构和在申请范围内
}
// TODO Add by Anndy Yang
if
(
_this
.
project
.
currentProgress
==
2
)
{
this
.
$nextTick
(()
=>
{
window
.
scrollTo
(
0
,
0
);
});
}
setTimeout
(
()
=>
{
cataOffsetTop
=
document
.
getElementById
(
"catalogue-content"
).
offsetTop
;
intorOffsetTop
=
document
.
getElementById
(
"intro-content"
).
offsetTop
;
console
.
log
(
'getProjectParticularsV2'
,
cataOffsetTop
,
intorOffsetTop
);
// 直接跳转
if
(
_this
.
project
.
jumpToContents
)
{
setTimeout
(()
=>
{
this
.
jumpCatalogue
();
},
200
);
}
},
200
);
setTimeout
(()
=>
{
_this
.
showLoading
=
false
;
},
800
);
}
});
},
// 项目负责人--详情(收起)
changeLeaderText
(
data
)
{
let
_this
=
this
;
if
(
_this
.
projectLeader
.
info
)
{
if
(
!
data
.
allTextFlag
)
{
_this
.
leaderText
=
_this
.
projectLeader
.
info
.
length
>
70
?
_this
.
projectLeader
.
info
.
slice
(
0
,
70
)
+
"..."
:
this
.
projectLeader
.
info
;
}
else
{
_this
.
leaderText
=
_this
.
projectLeader
.
info
;
}
}
},
// 项目介绍
itemIntroText
(
data
)
{
let
_this
=
this
;
if
(
_this
.
project
.
projectIntro
)
{
if
(
!
data
.
allTextFlag
)
{
_this
.
textContent
=
_this
.
project
.
projectIntro
.
length
>
70
?
_this
.
project
.
projectIntro
.
slice
(
0
,
70
)
+
"..."
:
this
.
project
.
projectIntro
;
}
else
{
_this
.
textContent
=
_this
.
project
.
projectIntro
;
}
}
},
setListData
(
data
)
{
let
_this
=
this
;
let
list
=
data
;
let
actionList
=
[];
let
detailNum
=
0
;
for
(
let
i
=
0
;
i
<
list
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
list
[
i
].
portalModuleDTOS
.
length
;
j
++
)
{
detailNum
++
;
if
(
list
[
i
].
portalModuleDTOS
[
j
].
status
===
2
)
{
list
[
i
].
portalModuleDTOS
[
j
].
value
=
"共"
+
list
[
i
].
portalModuleDTOS
[
j
].
nodeCount
+
"节"
;
}
else
{
list
[
i
].
portalModuleDTOS
[
j
].
value
=
"尚未开始"
;
}
list
[
i
].
portalModuleDTOS
[
j
].
disabled
=
list
[
i
].
portalModuleDTOS
[
j
].
status
===
2
?
false
:
true
;
//展开项记录
if
(
list
[
i
].
portalModuleDTOS
[
j
].
expandStatus
==
1
)
{
actionList
.
push
(
list
[
i
].
portalModuleDTOS
[
j
].
expandKey
);
}
for
(
let
z
=
0
;
z
<
list
[
i
].
portalModuleDTOS
[
j
].
contentList
.
length
;
z
++
)
{
list
[
i
].
portalModuleDTOS
[
j
].
contentList
[
z
].
height
=
_this
.
getHight
(
list
[
i
].
portalModuleDTOS
[
j
].
contentList
[
z
]
);
}
}
}
_this
.
actionList
=
actionList
;
_this
.
detailNum
=
detailNum
;
console
.
log
(
"list转为:"
,
list
,
actionList
,
detailNum
);
// list[0].portalModuleDTOS[3].contentList[0].certificateFlag = 2;
// list[0].portalModuleDTOS[3].contentList[1].certificateFlag = 2;
return
list
;
},
getHight
(
data
)
{
let
len
=
vueFilters
.
strLength
(
data
.
name
);
let
certificate
=
data
.
certificateFlag
;
if
(
len
>
30
&&
certificate
==
2
)
{
return
"2"
;
}
else
if
(
len
>
30
&&
certificate
!=
2
)
{
return
2
;
}
else
if
(
len
<=
30
&&
certificate
==
2
)
{
return
"1"
;
}
else
if
(
len
<=
30
&&
certificate
!=
2
)
{
return
1
;
}
}
}
};
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"../style/mixin"
;
.page-container-merge
{
.nav-top
.nav-title
{
height
:
px2rem
(
0px
);
// padding: px2rem(18px);
}
.banner-img
{
display
:
inherit
;
width
:
px2rem
(
375px
);
height
:
px2rem
(
210px
);
&
-1
{
position
:
absolute
;
left
:
0
;
top
:
px2rem
(
180px
);
width
:
px2rem
(
76px
);
height
:
px2rem
(
30px
);
}
&
-5
{
position
:
absolute
;
left
:
0
;
top
:
px2rem
(
180px
);
width
:
px2rem
(
76px
);
height
:
px2rem
(
30px
);
}
&
-10
{
position
:
absolute
;
left
:
0
;
top
:
px2rem
(
180px
);
width
:
px2rem
(
76px
);
height
:
px2rem
(
30px
);
}
}
.list-container
{
// margin-bottom: px2rem(40px);
}
.intro-catalogue-container
{
.title
{
height
:
px2rem
(
50px
);
line-height
:
px2rem
(
30px
);
padding
:
0
px2rem
(
15px
);
border-bottom
:
1px
solid
#f0f1f2
;
span
{
display
:
inline-block
;
line-height
:
px2rem
(
15px
);
font-size
:
px2rem
(
15px
);
color
:
#979899
;
padding-right
:
px2rem
(
35px
);
}
span
.focus
{
position
:
relative
;
color
:
#373839
;
}
span
.focus
:after
{
content
:
""
;
position
:
absolute
;
left
:
px2rem
(
7px
);
bottom
:
px2rem
(
-14px
);
background
:
#449284
;
// border-bottom: px2rem(1px) solid #449284;
width
:
px2rem
(
10px
);
height
:
px2rem
(
3px
);
border-radius
:
px2rem
(
3px
);
}
}
.title.fixed-title-1
{
position
:
fixed
;
left
:
0
;
top
:
px2rem
(
60px
);
background
:
#fff
;
width
:
100%
;
z-index
:
999
;
}
.title.fixed-title-2
{
position
:
fixed
;
left
:
0
;
top
:
px2rem
(
0px
);
background
:
#fff
;
width
:
100%
;
z-index
:
999
;
}
.catalogue-content
{
padding
:
px2rem
(
30px
)
px2rem
(
15px
)
0
;
.catalogue-title
{
font-size
:
px2rem
(
18px
);
color
:
#373839
;
font-weight
:
700
;
margin-bottom
:
px2rem
(
16px
);
}
}
.fixed-flag-height
{
height
:
px2rem
(
50px
);
}
}
}
</
style
>
src/views/merge-detail.vue
浏览文件 @
7707305e
...
@@ -67,6 +67,7 @@
...
@@ -67,6 +67,7 @@
:organName=
"project.organName"
:organName=
"project.organName"
:remind=
"project.remind"
:remind=
"project.remind"
:projectCredit=
"project.projectCredit"
:projectCredit=
"project.projectCredit"
:cmeType=
"project.cmeType"
/>
/>
<LearnKnow
:mustKnow=
"project.mustKnow"
></LearnKnow>
<LearnKnow
:mustKnow=
"project.mustKnow"
></LearnKnow>
<CommonSpliteLine></CommonSpliteLine>
<CommonSpliteLine></CommonSpliteLine>
...
@@ -112,10 +113,10 @@
...
@@ -112,10 +113,10 @@
/>
/>
<ExjumperButton
<ExjumperButton
@
btnClick=
"beforeJumpToExam"
@
btnClick=
"beforeJumpToExam"
v-if=
"project.cmeType == 2
&& project.inScope !== 0"
v-if=
"project.cmeType == 2
"
:btnText=
"project.currentProgress > 1 ? '参加考试' : '学完全部课程,可参加考试'"
:btnText=
"project.currentProgress > 1 ? '参加考试' : '学完全部课程,可参加考试'"
:type=
"project.currentProgress > 1 ? 'primary' : 'disabled'"
></ExjumperButton>
:type=
"project.currentProgress > 1 ? 'primary' : 'disabled'"
></ExjumperButton>
<div
v-if=
"project.cmeType == 2
&& project.inScope !== 0
"
style=
"padding-top: 30px"
></div>
<div
v-if=
"project.cmeType == 2"
style=
"padding-top: 30px"
></div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录