提交 7a4e1390 编写于 作者: 杨广俊's avatar 杨广俊

代码整理

上级 49e9916b
...@@ -23,7 +23,9 @@ ...@@ -23,7 +23,9 @@
</script> </script>
<style lang="scss"> <style lang="scss">
@import './style/common'; // @import './style/common';
@import './style/global';
@import './style/mixin.scss';
.router-fade-enter-active, .router-fade-leave-active { .router-fade-enter-active, .router-fade-leave-active {
transition: opacity .1s; transition: opacity .1s;
} }
......
<template>
<section class="back-top">
<div class="back-btn" @click="backTop">
<img src="../../images//backTop.png">
</div>
</section>
</template>
<script>
export default {
data() {
return {
objPoint: {}
};
},
props: {
burialPoint: {
default: "",
type: String
}
},
mounted() {
if (this.burialPoint == "activity") {
this.objPoint = {
menuLevel: 2,
menuFromCode: "m_home",
menuCode: "m_content_list",
functionCode: "f_activity",
actionCode: "c_top"
};
}
},
methods: {
backTop: function() {
if (this.burialPoint == "activity") {
this.pageBurialPoin(this.objPoint);
}
var osTop = document.documentElement.scrollTop || document.body.scrollTop;
if (osTop > 0) {
document.documentElement.scrollTop = document.body.scrollTop = 0;
}
}
}
};
</script>
<style lang="scss" scoped>
@import "../../style/mixin";
.back-btn {
position: fixed;
width: px2rem(35px);
height: px2rem(35px);
right: px2rem(15px);
z-index: 100;
bottom: px2rem(80px);
img {
width: 100%;
height: 100%;
display: block;
}
}
</style>
<template>
<div :class="searchFix?'header fixed' : 'header' " id="search-top" :style="{height:menuptop}">
<div class="search-menu">
<div class="bgFill" :style="{height:ptop}"></div>
<div class="fixBox">
<img
@click="goBackHome"
class="left-arror"
:style="{top: bPtop}"
src="../../images/left-icon-n.png"
>
<div :class="isTransparent?'search-transparent':'bgWhite'" class="search" @click="goSearch">
<span class="input" :class="isAndroid ? 'pd-top3': 'pd-top1'">{{placeholder}}</span>
<img class="search-img" src="../../images/search-grey.png">
<!-- <img class="search-img" src="../../images/search-white.png"> -->
</div>
</div>
</div>
</div>
</template>
<script>
import { getWebPageUrl } from "@/utils/index";
export default {
data() {
return {
placeholder: "搜索疾病、课程、讲师",
isTransparent: true, //更改颜色 背景
count: "",
ptop: 0,
bPtop: 0,
menuptop: 0,
popHeight: 0,
isAndroid: window.__isAndroid
};
},
props: {
statusBarHeight: {
type: Number,
default: 0
},
searchFix: {
type: Boolean,
default: false
}
},
created() {
let _this = this;
window.__getStatusBarHeight = function(parm) {
if (window.__isAndroid) {
_this.popHeight = parseInt(parm.statusBarHeight) / 2.5
} else {
_this.popHeight = parm.statusBarHeight;
}
_this.ptop = _this.popHeight + "px"
_this.bPtop = _this.popHeight + 2 + "px"
_this.menuptop = _this.popHeight + "px"
};
this.getStatusHight()
},
mounted() {},
methods: {
// 获取状态栏高度
getStatusHight() {
rocNative.getStatusBarHeight({
__funcName: "__getStatusBarHeight"
})
},
// 跳转到搜索项目
goSearch() {
let _this = this,
url = getWebPageUrl("sousuo/#/index");
let itemData = {
title: "",
imageUrl: "",
appModuleInfo: {
code: "M300",
type: 4,
name: "wwww",
paramFlag: 1,
paramList: [
{
key: "pageUrl",
value: url,
type: 4,
seqNo: 1
},
{
key: "showTitle",
value: false,
type: 1,
seqNo: 2
},
{
key: "title",
value: "",
type: 1,
seqNo: 3
}
]
}
}
rocNative.dispatchEventByModuleCode({
modeCode: itemData.appModuleInfo.code,
jsonString: itemData.appModuleInfo.paramList
});
},
// 返回到首页
goBackHome() {
rocNative.goBack()
}
}
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
@import "../../style/mixin.scss";
@import "../../style/global.scss";
html,
body {
width: px2rem(375px);
height: 100%;
background-color: #f8f8f8;
}
.search-transparent {
background: transparent;
// border: 1px solid rgba(255,255,255,0.6);
color: rgba(255,255,255,0.6);;
margin: px2rem(8px) 0 0 0;
margin-left: px2rem(20px);
}
.search-transparent::-webkit-input-placeholder {
color: #8E8F90;
}
.white {
color: #8E8F90;
}
.header-right {
width: px2rem(20px);
height: px2rem(20px);
position: relative;
margin-top: px2rem(13px);
float: right;
img {
width: 100%;
height: 100%;
display: block;
}
}
.bgFill {
background: inherit;
height: 20px;
}
.fs30 {
font-size: px2rem(15px);
}
.gxy-study {
margin-right: px2rem(19px);
}
.gxy {
font-size: px2rem(25px);
margin: px2rem(25px) 0 px2rem(11px) 0;
}
.header {
width: 100%;
/*//height: px2rem(50px);*/
position: relative;
}
.fixed {
.search-menu {
position: fixed;
z-index: 110;
top: 0;
left: 0;
}
.fixBox {
background: #4cbba9;
height: px2rem(46px);
padding: 0 px2rem(25px);
/* padding-top: px2rem(7px)*/
}
.bgFill {
background: #4cbba9;
}
.search-transparent::-webkit-input-placeholder {
color: #fff;
}
.search {
border-color: #fff;
}
.info-count {
background: #fb5b52;
color: #fff;
}
}
.fixBox {
padding: 0 px2rem(25px);
height: px2rem(30px);
/* padding-top: px2rem(7px)*/
}
.search-menu {
width: 100%;
position: absolute;
}
.search {
width: px2rem(290px);
height: px2rem(30px);
float: left;
text-align: left;
background:rgba(255,255,255,0.6);
box-shadow: 0 px2rem(2px) px2rem(7px) 0px rgba(0,0,0,0.06);
border-radius: px2rem(15px);
}
.input {
outline: none;
border: none;
float: left;
font-size: px2rem(13px);
margin: 0 0 0 px2rem(15px);
line-height: px2rem(28px);
width: 80%;
color: #8E8F90;
}
.search-img {
width: px2rem(13px);
height: px2rem(13px);
margin: px2rem(8px) px2rem(15px) 0 0;
float: right;
}
.search-img-left {
width: px2rem(13px);
height: px2rem(13px);
margin: px2rem(8px) px2rem(10px) 0 0;
float: left;
}
.info-count {
position: absolute;
top: -(px2rem(5px));
left: (px2rem(10px));
/*max-width: px2rem(25px);*/
padding: 0 px2rem(3px) 0 px2rem(2px);
height: px2rem(15px);
line-height: px2rem(15px);
border-radius: px2rem(15px);
text-align: center;
font-size: px2rem(12px);
/*font-weight: bold;*/
background-color: #fff;
color: RGBA(53, 134, 126, 1);
}
.num-min {
max-width: px2rem(25px);
min-width: px2rem(15px);
/*padding:0;*/
}
.num-max {
width: auto;
/* background-color: RGBA(251, 91, 82, 1);
color: #fff;*/
}
.hot-tag {
width: 100%;
height: px2rem(150px);
}
.hotTagTitle {
font-size: px2rem(18px);
padding: px2rem(73px) px2rem(15px);
float: left;
background-color: #fff;
}
.cource {
width: 100%;
height: px2rem(350px);
}
.font-title {
font-size: px2rem(18px);
padding: 0 0 px2rem(21px) px2rem(15px);
float: left;
width: 100%;
text-align: left;
}
.title {
font-size: px2rem(16px);
}
.cource-left {
float: left;
padding-left: px2rem(15px);
}
.need-left {
float: left;
padding: 0 0 px2rem(40px) px2rem(15px);
}
.cource-time {
float: left;
}
.cource-img {
width: px2rem(170px);
height: px2rem(96px);
margin-bottom: px2rem(10px);
}
.cource-more {
font-size: px2rem(15px);
color: #999999;
}
.need {
width: 100%;
height: px2rem(325px);
margin-top: px2rem(35px);
}
.left-arror {
position: absolute;
left: px2rem(6px);
top: px2rem(3px);
width: px2rem(25px);
height: px2rem(25px);
margin: px2rem(8px) px2rem(12px);
}
.pd-top3 {
padding-top: px2rem(3px);
}
.pd-top1 {
padding-top: px2rem(1px);
}
</style>
<template>
<div class="hot-lect">
<span class="hot-lect-wrapper-title">热门讲师</span>
<div class="hot-lect-wrapper">
<div class="hot-lect-wrapper-list">
<div
class="hot-lect-wrapper-list-item"
v-for="(item,index) in parmData"
:key="index"
@click="gotoDetail(item)"
>
<div class="lect-img">
<img v-lazy="item.doctorAvatarImg" :key="item.doctorAvatarImg">
<span class="disp-blc">
<span :class="{'andriod-name': isAndroid}">{{item.doctorName}}</span>
</span>
</div>
<span class="disp-blc lect-ks" :class="{'andr-mg': isAndroid}">{{item.department}}</span>
<span class="disp-blc study-num">{{item.joinNum | yLocalString}}人已学</span>
</div>
</div>
</div>
</div>
</template>
<script>
import { getWebPageUrl } from '@/utils'
import { teacher } from "../../utils/buryingPoint";
export default {
data() {
return {
title: "热门讲师",
list: [],
pageNo: 1,
pageSize: 10,
parmData: [],
isAndroid: true
};
},
beforeMount() {},
mounted() {
this.isAndroid = window.__isAndroid;
this.getData();
},
props: {
userToken: {
type: String,
default: ""
}
},
methods: {
// 跳转到详情页面
gotoDetail(item) {
// this.$router.push({
// path: "/teachersDetail",
// query: {
// id: item.doctorId
// }
// });
let paramList = [
{
id: 699,
key: "pageUrl",
value: getWebPageUrl('appl/#/teachersDetail') + '?id=' + item.doctorId + '&from=' + 'appHome',
// value: "https://uat-phome.yunqueyi.com/appl/#/teachersDetail",
type: 4,
seqNo: 1
}
];
rocNative.dispatchEventByModuleCode({
modeCode: 'M300',
jsonString: paramList
});
this.appBuryingPointEntrust({
...teacher,
labelId: item.doctorId,
labelValue: item.doctorName
});
},
//热门讲师
getData() {
let _this = this,
para = {
pageNo: 1,
pageSize: 6,
setEntry: "headers"
};
this.GET("contents/courseDoctor/v1/getHotTeacher", para).then(res => {
if (res.code == "000000") {
_this.parmData = (res.data && res.data.list) || [];
}
});
},
// 埋点
appBuryingPointEntrust(val) {
rocNative.appBuryingPointEntrust(val);
}
}
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
@import "../../style/mixin.scss";
@import "../../style/global.scss";
.hot-lect {
&-wrapper {
width: 100%;
overflow: hidden;
height: px2rem(125px);
overflow-x: scroll;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
outline: 0;
-webkit-overflow-scrolling: touch;
&-list {
display: flex;
flex-direction: columns;
margin-left: px2rem(12px);
width: px2rem(666px);
// height: px2rem(130px);
&-item {
display: inline-block;
width: px2rem(105px);
height: px2rem(115px);
margin: px2rem(3px);
text-align: center;
background: rgba(255, 255, 255, 1);
box-shadow: 0px 1px 6px 0px rgba(0, 0, 0, 0.07);
border-radius: px2rem(3px);
span {
width: 100%;
font-size: px2rem(12px);
}
}
}
}
.lect-img {
position: relative;
top: 0;
left: 0;
img {
width: px2rem(60px);
height: px2rem(60px);
margin-top: px2rem(7px);
border-radius: 50%;
}
span {
display: inline-block;
position: absolute;
left: px2rem(14px);
top: px2rem(27px);
font-size: px2rem(12px);
span {
width: px2rem(50px);
height: px2rem(15px);
line-height: px2rem(15px);
border-radius: px2rem(8px);
font-size: px2rem(13px);
color: #fff;
background: #ceae67;
}
}
}
}
.disp-blc {
display: block;
}
.hot-lect-wrapper-title {
display: block;
width: 100%;
margin-top: px2rem(10px);
padding: px2rem(15px);
font-size: px2rem(18px);
font-weight: 500;
color: #333;
}
.disp-blc.lect-ks {
position: relative;
left: 0;
top: px2rem(-6px);
font-size: px2rem(12px);
color: #666;
}
.andr-mg {
margin: px2rem(2px) 0;
}
.disp-blc.study-num {
position: relative;
left: 0;
top: px2rem(-8px);
font-size: px2rem(11px);
color: #999;
}
.andriod-name {
padding-top: px2rem(2px);
}
</style>
<template>
<section>
<article class="group-title">
<article v-show="showOrder" class="group-title-order">
<div @click="order(1, 'isLetterOrderDown', 'doctorFirstNameChar')"
:class="{'active': showOrderIndex === 1}" class="group-title-order-item">
<span>首字母</span>
<img class="first-name default" :src="sortDefaultImg" v-show="showOrderIndex !== 1"/>
<img class="first-name" :src="sortDownImg" v-show="isLetterOrderDown && showOrderIndex === 1"/>
<img class="first-name" :src="sortUpImg" v-show="!isLetterOrderDown && showOrderIndex === 1"/>
</div>
<div @click="order(2, 'isNewCourseOrderDown', 'newTime')"
:class="{'active': showOrderIndex === 2}" class="group-title-order-item">
<span class="new-course">时间</span>
<img class="new-course-default" :src="sortDefaultImg" v-show="showOrderIndex !== 2"/>
<img class="new-course-img" :src="sortDownImg" v-show="isNewCourseOrderDown && showOrderIndex === 2"/>
<img class="new-course-img" :src="sortUpImg" v-show="!isNewCourseOrderDown && showOrderIndex === 2"/>
</div>
<div @click="order(3, 'isResourceNumOrderDown', 'resourceNum')"
:class="{'active': showOrderIndex === 3}" class="group-title-order-item">
<span>课程数</span>
<img class="course-num default" :src="sortDefaultImg" v-show="showOrderIndex !== 3"/>
<img class="course-num" :src="sortDownImg" v-show="isResourceNumOrderDown && showOrderIndex === 3"/>
<img class="course-num" :src="sortUpImg" v-show="!isResourceNumOrderDown && showOrderIndex === 3"/>
</div>
<div @click="order(4, 'isHotOrderDown', 'totalNum')"
:class="{'active': showOrderIndex === 4}" class="group-title-order-item">
<span class="hot-degree-title">人气</span>
<img class="hot-degree default" :src="sortDefaultImg" v-show="showOrderIndex !== 4"/>
<img class="hot-degree" :src="sortDownImg" v-show="isHotOrderDown && showOrderIndex === 4"/>
<img class="hot-degree" :src="sortUpImg" v-show="!isHotOrderDown && showOrderIndex === 4"/>
</div>
</article>
</article>
</section>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
data() {
return {
showOrderIndex: 1,
isLetterOrderDown: true,
isNewCourseOrderDown: true,
isResourceNumOrderDown: true,
isHotOrderDown: true,
sortDefaultImg: require('../../images//sort-default.png'),
sortDownImg: require('../../images//sort-down.png'),
sortUpImg: require('../../images//sort-up.png')
}
},
props: {
groupTitle: {
type: String,
default: '课程'
},
isShowNum: {
type: Boolean,
default: true
},
groupNum: {
type: String,
default: "0"
},
showTitle: {
type: Boolean,
default: true
},
showOrder: {
type: Boolean,
default: true
}
},
methods: {
toggle() {
this.showTitle = !showTitle
this.showOrder = !showOrder
},
order(index, orderType, orderName) {
this.showOrderIndex = index
this[orderType] = !this[orderType]
this.$emit('order', orderName, this[orderType])
},
reset() {
this.showOrderIndex = 1
}
}
}
</script>
<style lang="scss" scoped>
@import '../../style/mixin.scss';
.group-title {
margin-left: px2rem(15px);
display: flex;
flex-direction: row;
&-order {
display: flex;
flex-direction: row;
padding: px2rem(10px) 0 px2rem(10px);
font-size: px2rem(13px);
&-item {
position: relative;
display: block;
width: px2rem(75px);
padding: px2rem(2px) px2rem(20px) px2rem(2px) px2rem(10px);
margin-right: px2rem(15px);
border: 1px solid #F6F6F6;
border-radius: px2rem(25px);
background: #F6F6F6;
img {
position: absolute;
top: px2rem(4px);
left: px2rem(63px);
height: px2rem(15px);
width: px2rem(15px);
}
}
}
.first-name {
left: px2rem(50px);
}
.first-name.default {
top: px2rem(6px);
left: px2rem(53px);
height: px2rem(10px);
width: px2rem(10px);
}
.new-course {
left: px2rem(50px);
margin-left: px2rem(8px);
}
.new-course-default {
top: px2rem(6px);
left: px2rem(48px);
height: px2rem(10px);
width: px2rem(10px);
}
.new-course-img {
top: px2rem(4px);
left: px2rem(46px);
height: px2rem(15px);
width: px2rem(15px);
}
.course-num {
left: px2rem(50px);
}
.course-num.default {
top: px2rem(6px);
left: px2rem(52px);
height: px2rem(10px);
width: px2rem(10px);
}
.hot-degree {
left: px2rem(45px);
}
.hot-degree-title {
margin-left: px2rem(8px);
}
.hot-degree.default {
top: px2rem(6px);
left: px2rem(47px);
height: px2rem(10px);
width: px2rem(10px);
}
.active {
color: #449284;
background:rgba(68,146,132,0.06);
border: 1px solid #449284;
span {
color: #449284;
}
}
&-title {
padding: 0 px2rem(15px);
&-main {
margin-right: px2rem(6px);
font-size: px2rem(18px);
font-weight: 500;
color: #28344C;
}
&-sub {
font-size: px2rem(15px);
font-weight: 400;
color: #999;
}
}
}
</style>
<template>
<!-- <mt-popup v-model="isShowSelection" position="top"> -->
<section v-show="isShowSelection" style="position:fixed;top:0;z-index:201;background:#fff;height:100%;overflow-x:auto;">
<article class="lect-selection">
<section class="lect-selection-title">
<img @click="closeSelectedPage" src="../../images//select-delete.png">
<span>{{selectedTitle}}</span>
<span class="no-content"></span>
</section>
</article>
<article class="group-title">
<section class="group-title-order">
<div @click="selectedType(1)" class="group-title-order-item">
<span :class="{'active': selectedTypeIndex === 1}">{{selectedTitleTitle}}</span>
<img v-show="selectedTypeIndex === 1" src="../../images//select-up.png">
<img v-show="selectedTypeIndex !== 1" src="../../images//select-down.png">
</div>
<div @click="selectedType(2)" class="group-title-order-item">
<span :class="{'active': selectedTypeIndex === 2}">{{selectedLevelName}}</span>
<img v-show="selectedTypeIndex === 2" src="../../images//select-up.png">
<img v-show="selectedTypeIndex !== 2" src="../../images//select-down.png">
</div>
<div @click="selectedType(3)" class="group-title-order-item">
<span :class="{'active': selectedTypeIndex === 3}">{{selectedDepartName}}</span>
<img v-show="selectedTypeIndex === 3" src="../../images//select-up.png">
<img v-show="selectedTypeIndex !== 3" src="../../images//select-down.png">
</div>
</section>
</article>
<section ref="tableWrapperRef" class="lect-selection-content">
<article class="lect-selection-content-region" v-show="selectedTypeIndex === 1">
<table class="lect-selection-content-rp-tb">
<tr>
<td style="width: 40%">
<table class="lect-selection-content-rp-tb-left">
<tr
v-for="(item, index) in allAreaList"
:class="{'bg-white': selectedAreaIndex === index}"
@click="selectAreaAction(item, index)"
:key="index"
>
<td>{{item.name}}</td>
</tr>
</table>
</td>
<td style="width: 4%"></td>
<td class="lect-selection-content-rp-tb-tb" style="width: 55%">
<table>
<tr
v-for="(item, index) in allAreaSubList"
@click="selectAreaSubAction(item, index)"
:key="index"
>
<td>{{item.name}}</td>
<td style="text-align: right;">
<img
v-show="item.name && selectedAreaSubIndex === index"
src="../../images//select-selected.png"
>
</td>
</tr>
</table>
</td>
</tr>
</table>
</article>
<article class="lect-selection-content-level" v-show="selectedTypeIndex === 2">
<table class="lect-selection-content-rp-tb">
<tr>
<td class="lect-selection-content-rp-tb-tb-2">
<table>
<tr
@click="selectLevelAction(item, index)"
v-for="(item, index) in allLevelList"
:key="index"
>
<td>{{item.value}}</td>
<td style="text-align: right;">
<img
v-show="selectedLevelIndex === index"
src="../../images//select-selected.png"
>
</td>
</tr>
</table>
</td>
</tr>
</table>
</article>
<article class="lect-selection-content-region" v-show="selectedTypeIndex === 3">
<table class="lect-selection-content-rp-tb">
<tr>
<td class="lect-selection-content-rp-tb-tb-2">
<table>
<tr
@click="selectDepartAction(item, index)"
v-for="(item, index) in allDepartList"
:key="index"
>
<td>{{item.name}}</td>
<td style="text-align: right;">
<img
v-show="selectedDepartIndex === index"
src="../../images//select-selected.png"
>
</td>
</tr>
</table>
</td>
</tr>
</table>
</article>
</section>
</section>
<!-- </mt-popup> -->
</template>
<script>
export default {
data() {
return {
isShowSelection: false,
parmDataDoctList: [],
selectedTypeIndex: 1,
allAreaList: [],
allAreaSubList: [],
allAreaListHandles: [],
allLevelList: [],
allDepartList: [],
selectedAreaIndex: 0,
selectedAreaSubIndex: 0,
selectedLevelIndex: 0,
selectedDepartIndex: 0,
selectedTitleTitle: "全国",
selectedAreaName: "全国",
selectedAreaSubName: "",
selectedLevelName: "全部等级",
selectedDepartName: "全部科室",
provinceId: 0,
cProvinceId: 0, // 记录当前左边选择的省或者市
cityId: 0,
countyId: 0,
levelGrade: 0,
departmentId: 0,
oldProvinceId: 0,
oldCityId: 0,
oldCountyId: 0,
oldSelectedAreaSubIndex: 0,
oldCProvinceId: -1 // 记录之前左边选择的省或者市
};
},
props: {},
computed: {
// isShowSelection() {
// return this.isShowSelection;
// },
selectedTitle() {
return this.selectedTypeIndex === 1
? "选择地区"
: this.selectedTypeIndex === 2
? "选择等级"
: "选择科室";
}
},
components: {},
beforeCreate() {},
created() {
this.initAll();
},
beforeMount() {},
mounted() {},
beforeDestroyed() {},
watch: {},
methods: {
show() {
this.isShowSelection = true;
},
selectedTypeFromTitle(index) {
this.selectedTypeIndex = index;
this.isShowSelection = true;
},
closeSelectedPage() {
this.isShowSelection = false;
},
selectedType(index) {
this.selectedTypeIndex = index;
// this.$emit('selectedType', index)
},
initAll() {
// this.getSwiper()
// this.getYqDoctorDataByCD()
this.getAreas();
this.getLevels();
this.getDeparts();
},
//根据条件获取讲师列表
getYqDoctorDataByCD() {
let _this = this,
para = {
provinceId: this.provinceId,
cityId: this.cityId,
countyId: this.countyId,
levelGrade: this.levelGrade,
departmentId: this.departmentId,
setEntry: "headers"
};
this.GET("contents/courseDoctor/v1/getAllTeacher", para).then(res => {
if (res.code == "000000") {
// _this.parmDataDoctList = res.data && res.data.list || []
let selTitle = this.selectedAreaSubName || this.selectedAreaName;
if (selTitle === "全部") {
selTitle = this.selectedAreaName;
}
this.selectedTitleTitle = selTitle;
this.$emit(
"selectedData",
(res.data && res.data.list) || [],
selTitle,
this.selectedLevelName,
this.selectedDepartName
);
}
});
},
// 获取所有区域数据
getAreas() {
let param = {
setEntry: "headers"
};
this.GET("contents/courseDoctor/listAreas", param).then(res => {
if (res.code == "000000") {
this.allAreaList = this.handleAreaData(
(res.data && res.data.list) || []
);
this.allAreaSubList = this.allAreaList[0].cities;
}
});
},
// 寻找数据最大值,用于定义表格高度
getMaxRowNum(orginAreaList) {
let maxRowNum = orginAreaList.length || 31;
orginAreaList.forEach((element, index) => {
maxRowNum =
element.cities.length > maxRowNum ? element.cities.length : maxRowNum;
});
return maxRowNum;
},
// 处理区域数据
handleAreaData(orginAreaList) {
let handleList = [],
maxRowNum = this.getMaxRowNum(orginAreaList);
orginAreaList.forEach((element, index) => {
if (index === 0) {
handleList.push({
id: element.id,
name: element.name,
cities: this.decorateCitiesData(
{},
element.cities,
maxRowNum + 1,
false
)
});
} else {
handleList.push({
id: element.id,
name: element.name,
cities: this.decorateCitiesData(
{ id: 0, name: "全部", provinceId: element.id },
element.cities,
maxRowNum
)
});
}
});
handleList.unshift({
id: "-1",
name: "全国",
cities: this.decorateCitiesData(
{ id: 0, name: "全国", provinceId: 0 },
[],
maxRowNum
)
});
for (let i = orginAreaList.length; i < maxRowNum; i++) {
handleList.push({ id: "", name: "", cities: [] });
}
return handleList;
},
// 装饰城市数据
decorateCitiesData(
appendInitData,
cities,
dataNum = 31,
needAppend = true
) {
let appendCities = [],
appendLength = dataNum - cities.length;
if (needAppend) {
appendCities.unshift(appendInitData);
}
appendCities = appendCities.concat(cities);
for (let i = 0; i < appendLength; i++) {
appendCities.push({ id: "", name: "", provinceId: "" });
}
return appendCities;
},
// 获取医院等级
getLevels() {
let param = {
setEntry: "headers"
};
this.GET("contents/courseDoctor/listLevels", param).then(res => {
if (res.code == "000000") {
this.allLevelList = (res.data && res.data.list) || [];
this.allLevelList.unshift({ no: 0, value: "全部等级" });
}
});
},
// 获取医院科室
getDeparts() {
let param = {
setEntry: "headers"
};
this.GET("contents/courseDoctor/listDeparts", param).then(res => {
if (res.code == "000000") {
this.allDepartList = (res.data && res.data.list) || [];
this.allDepartList.unshift({ id: 0, name: "全部科室" });
}
});
},
// 选中省或直辖市
selectAreaAction(item, index) {
if (item.name) {
this.cProvinceId = item.id;
this.selectedAreaIndex = index;
this.$refs.tableWrapperRef.scrollTop = 0;
if (this.oldCProvinceId == item.id) {
this.selectedAreaSubIndex = this.oldSelectedAreaSubIndex;
} else {
this.selectedAreaSubIndex = -1;
}
this.allAreaSubList = item.cities;
this.selectedAreaName = item.name;
}
},
// 选中市或区
selectAreaSubAction(item, index) {
// this.selectedAreaIndex = index
// this.allAreaSubList = item.cities
if (item.name) {
this.selectedAreaSubName = item.name;
this.selectedAreaSubIndex = index;
this.oldSelectedAreaSubIndex = index;
this.oldCProvinceId = this.cProvinceId;
if (item.isMunicipality) {
this.cityId = item.cityId || 0;
this.countyId = item.id;
this.provinceId = item.provinceId;
this.oldProvinceId = item.provinceId;
this.oldCityId = item.cityId;
this.oldCountyId = item.id;
} else {
this.cityId = item.id;
this.countyId = 0;
this.provinceId = item.provinceId;
this.oldProvinceId = item.provinceId;
this.oldCityId = item.id;
this.oldCountyId = 0;
}
this.closeSelectedPage();
this.getYqDoctorDataByCD();
}
},
// 选中医院等级
selectLevelAction(item, index) {
this.selectedLevelIndex = index;
this.selectedLevelName = item.value;
this.levelGrade = item.no;
this.closeSelectedPage();
this.getYqDoctorDataByCD();
},
// 选中医院科室
selectDepartAction(item, index) {
this.selectedDepartIndex = index;
this.selectedDepartName = item.name;
this.departmentId = item.id;
this.closeSelectedPage();
this.getYqDoctorDataByCD();
}
}
};
</script>
<style>
.mint-popup.mint-popup-top {
height: 100%;
z-index: 2001;
/* overflow: auto; */
}
.swiper .mint-swipe-indicators {
right: 6px;
top: 50%;
bottom: inherit;
left: inherit;
width: 10px;
text-align: center;
transform: translateX(0%);
transform: translateY(-50%);
}
.swiper .mint-swipe-item img {
width: 100%;
height: 100%;
}
.swiper .mint-swipe-indicator {
width: 2px;
height: 8px;
background: #fff;
opacity: 0.4;
float: left;
margin-top: 3px;
border-radius: 0;
}
.swiper .is-active {
opacity: 1;
}
.mint-loadmore-top .mint-loadmore-text {
font-size: 12px;
}
.banner-container.swiper-container-horizontal > .swiper-pagination-bullets {
width: 2px;
left: inherit;
transform: translateY(-50%);
position: absolute;
right: 6px;
top: 50%;
}
.banner-container.swiper-container-horizontal
> .swiper-pagination-bullets
.swiper-pagination-bullet {
width: 2px;
height: 7px;
background: #fff;
margin: 6px 0 0 0;
float: left;
opacity: 0.4;
}
.banner-container.swiper-container-horizontal
> .swiper-pagination-bullets
.swiper-pagination-bullet-active {
opacity: 1;
}
.banner-pagination {
width: 2px;
z-index: 100;
right: 10px;
top: 10px;
position: absolute;
}
/* .swiper-pagination-bullet{
} */
.swiper-slide img {
width: 100%;
height: 100%;
}
</style>
<style lang="scss" scoped>
@import "../../style/mixin";
@import "../../style/swiper.min.css";
.banner-container {
height: px2rem(210px);
}
.main-body {
position: relative;
}
.box-BG {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 10000;
}
.mint-header {
background-color: rgba($color: #000000, $alpha: 0);
}
.font-style {
@include sc(0.6rem, #666);
}
@keyframes myPullDown {
from {
padding-top: 0;
}
to {
padding-top: px2rem(225px);
}
}
@keyframes myPullUp {
from {
padding-top: px2rem(225px);
}
to {
padding-top: 0;
}
}
.pull-down {
-webkit-animation: myPullDown 1.2s;
animation: myPullDown 1.2s;
padding-top: px2rem(225px);
}
.pull-up {
-webkit-animation: myPullUp 1.2s;
animation: myPullUp 1.2s;
padding-top: 0;
}
.news-update {
display: block;
position: fixed;
background: #f9f6ef;
right: 0;
bottom: px2rem(140px);
height: px2rem(27px);
padding: 0 px2rem(12px);
line-height: px2rem(27px);
border: 1px solid RGBA(162, 129, 60, 0.2);
font-size: px2rem(13px);
box-shadow: 0 px2rem(2px) px2rem(3px) RGBA(202, 168, 97, 0.4);
border-radius: px2rem(14px) 0 0 px2rem(14px);
z-index: 101;
.news-info {
color: #a2813c;
position: relative;
display: inline-block;
i {
position: absolute;
right: -(px2rem(6px));
top: px2rem(4px);
display: inline-block;
width: px2rem(4px);
height: px2rem(4px);
border-radius: 100%;
background: #f47a48;
}
}
}
.home-topMenu {
width: 100%;
text-align: center;
top: 0;
position: absolute;
z-index: 10;
}
.home-header {
height: px2rem(234px); // banner图片变高了
// height: px2rem(210px);
.swiper {
height: 100%;
/* @include bis('../../images/lect-bg.png');*/
}
.logo_img {
height: px2rem(85px);
width: px2rem(345px);
text-align: center;
}
}
.home-body {
background: #fff;
}
.pathologic-list {
width: 100%;
height: px2rem(52px);
padding: 0 px2rem(15px);
margin-top: px2rem(15px);
.pathologic-item {
float: left;
width: 48%;
box-shadow: 0 px2rem(2px) px2rem(8px) rgba(49, 127, 119, 0.2);
border-radius: px2rem(3px);
background: #fff;
/* padding: px2rem(12px) 0 px2rem(12px) 0;*/
margin-right: 4%;
text-align: center;
.pathologic-icon {
height: px2rem(52px);
/* height: px2rem(20px);*/
img {
width: 100%;
height: px2rem(52px);
padding-bottom: px2rem(8px);
vertical-align: middle;
display: inline-block;
}
}
.pathologic-txt {
font-size: px2rem(14px);
line-height: px2rem(20px);
font-weight: 700;
display: inline-block;
vertical-align: middle;
}
}
.clear {
clear: both;
}
}
</style>
<style lang="scss" scoped>
@import "../../style/mixin";
.lect-selection-content {
width: px2rem(375px);
height: 81%;
overflow: auto;
font-size: px2rem(14px);
color: #666666;
margin-right: px2rem(15px);
width: px2rem(360px);
-webkit-overflow-scrolling: touch;
overflow: auto;
table {
width: 100%;
border-collapse: collapse;
}
&-rp-tb {
padding: px2rem(4px) px2rem(15px);
&-left {
td {
padding-left: px2rem(15px);
border-bottom: 1px solid #f5f6f6;
}
background: #f5f6f6;
}
tr {
height: px2rem(40px);
line-height: px2rem(40px);
}
td {
height: px2rem(40px);
img {
position: relative;
top: px2rem(6px);
left: 0;
width: 20px;
height: 20px;
}
}
&-tb {
td {
padding-left: px2rem(8px);
border-bottom: 1px solid #f0f0f0;
}
}
&-tb-2 {
td {
padding-left: 0;
border-bottom: 1px solid #f0f0f0;
}
table {
width: 96%;
margin: 0 px2rem(15px);
}
}
}
}
.lect-selection {
display: flex;
background: #fff;
flex-direction: row;
&-title {
display: flex;
flex-direction: row;
padding: px2rem(33px) px2rem(15px) px2rem(13px);
width: px2rem(375px);
justify-content: space-between;
font-size: px2rem(13px);
height: px2rem(68px);
border-bottom: 1px solid #e7e7e7;
img {
position: relative;
top: px2rem(1px);
left: px2rem(1px);
height: px2rem(25px);
width: px2rem(25px);
}
span {
font-size: px2rem(18px);
color: #333;
}
}
}
.group-title {
display: flex;
flex-direction: row;
padding: px2rem(16px) px2rem(25px) px2rem(16px);
border-bottom: 1px solid #f0f0f0;
&-order {
display: flex;
flex-direction: row;
width: px2rem(325px);
justify-content: space-between;
font-size: px2rem(13px);
&-item {
span {
font-size: px2rem(15px);
color: #333;
}
img {
position: relative;
top: 0;
left: px2rem(-1px);
height: px2rem(11px);
width: px2rem(11px);
}
}
}
}
.active {
color: #449284 !important;
}
.bg-white {
background: #fff;
}
</style>
<template>
<section>
<article class="group-title">
<section class="group-title-order">
<div @click="selectedType(1)" class="group-title-order-item">
<span>{{selectedAreaName}}</span>
<img src="../../images//select-down.png">
</div>
<div @click="selectedType(2)" class="group-title-order-item">
<span>{{selectedLevelName}}</span>
<img src="../../images//select-down.png">
</div>
<div @click="selectedType(3)" class="group-title-order-item">
<span>{{selectedDepartName}}</span>
<img src="../../images//select-down.png">
</div>
</section>
</article>
</section>
</template>
<script>
export default {
data() {
return {
selectedTypeIndex: 1
};
},
props: {
selectedAreaName: {
type: String,
default: "全国"
},
selectedLevelName: {
type: String,
default: "全部等级"
},
selectedDepartName: {
type: String,
default: "全部科室"
}
},
computed: {},
watch: {},
methods: {
selectedType(index) {
this.selectedTypeIndex = index;
this.$emit("selectedType", index);
}
}
};
</script>
<style lang="scss" scoped>
@import "../../style/mixin.scss";
.group-title {
display: flex;
flex-direction: row;
margin: px2rem(6px) px2rem(25px) px2rem(4px);
&-order {
display: flex;
flex-direction: row;
width: px2rem(325px);
justify-content: space-between;
font-size: px2rem(13px);
&-item {
span {
font-size: px2rem(15px);
color: #333;
}
img {
position: relative;
top: px2rem(1px);
left: px2rem(-1px);
height: px2rem(11px);
width: px2rem(11px);
}
}
}
}
.active {
color: #449284;
}
</style>
<template>
<section class="group-title-title">
<span class="group-title-title-main">{{mainTitle}}</span>
<span class="group-title-title-sub">{{subTitle}}</span>
</section>
</template>
<script>
export default {
data() {
return {};
},
props: {
mainTitle: {
type: String,
default: "全部讲师"
},
subTitle: {
type: String,
default: "专业领域的资深专家"
}
}
};
</script>
<style lang="scss" scoped>
@import "../../style/mixin.scss";
.group-title {
height: px2rem(18px);
line-height: px2rem(18px);
&-title {
padding: px2rem(10px) px2rem(15px) 0;
&-main {
font-size: px2rem(18px);
font-weight: 500;
color: #28344c;
}
&-sub {
margin-left: px2rem(-4px);
font-size: px2rem(15px);
font-weight: 400;
color: #999;
}
}
}
</style>
<template>
<section>
<div class="font-style">
<div class="teach-opt">
<div class="teach-list">
<div
:class="index % 2 == 1 ? 'list-item mr0' : 'list-item'"
v-for="(item, index) in cParamData"
:key="index"
@click="gotoDetail(item)"
>
<div class="tea-img" :style="'background:'+ item.bgColor">
<!-- <img :src="item.doctorAvatarImg"> -->
<img :src="item.doctorImg">
<span class="learn-p">{{item.joinNum | yLocalString}}人已学</span>
<span class="learn-p-cnum">课程: 共{{item.resourceNum}}</span>
</div>
<div class="tea-txt">
<div class="tea-name">
<span>{{item.doctorName}}</span>
<span class="tea-department">{{item.department}}</span>
</div>
<div class="tea-position">{{item.doctorHospital}}</div>
</div>
</div>
<div class="no-content" v-show="!cParamData.length">
<img class="no-content-img" src="../../images//no-content.png" alt=" ">
<span class="no-content-desc">暂无相关内容</span>
</div>
</div>
</div>
</div>
</section>
</template>
<script>
import { getWebPageUrl } from '@/utils'
import { teacher } from "../../utils/buryingPoint";
import { mapGetters } from "vuex";
import YqyLecturerOrder from "@/components/business/yqy-lecturer-order";
export default {
data() {
return {
col: 1, //0综合,1人气,2资源数,3姓名首字母
dir: 2, //1:正序 2:逆序,
list: []
};
},
components: {
YqyLecturerOrder
},
props: {
parmData: {
type: Array,
default: () => []
}
},
mounted() {},
computed: {
cParamData() {
if (this.parmData && this.parmData.length) {
return this.randomBg(this.parmData);
} else {
return this.randomBg(this.list);
}
}
},
methods: {
// 跳转到详情页面
gotoDetail(item) {
// this.$router.push({
// path: "/teachersDetail",
// query: {
// id: item.doctorId
// }
// });
let paramList = [
{
id: 699,
key: "pageUrl",
value: getWebPageUrl('appl/#/teachersDetail') + '?id=' + item.doctorId + '&from=' + 'appHome',
// value: "https://uat-phome.yunqueyi.com/appl/#/teachersDetail",
type: 4,
seqNo: 1
}
];
rocNative.dispatchEventByModuleCode({
modeCode: 'M300',
jsonString: paramList
});
this.appBuryingPointEntrust({
...teacher,
labelId: item.doctorId,
labelValue: item.doctorName
});
},
// 随机生成背景颜色
randomBg(d) {
for (let i = 0; i < d.length; i++) {
if (i % 4 == 0) {
d[i].bgColor = "#EBF6F1";
} else if (i % 4 == 1) {
d[i].bgColor = "#EDF3FA";
} else if (i % 4 == 2) {
d[i].bgColor = "#F0F0FA";
} else if (i % 4 == 3) {
d[i].bgColor = "#F6EFE6";
}
}
return d;
},
// 埋点
appBuryingPointEntrust(val) {
rocNative.appBuryingPointEntrust(val);
}
}
};
</script>
<style>
body {
background: #fff;
}
</style>
<style lang="scss" scoped>
body {
background: #fff;
}
@import "../../style/mixin";
.no-content {
display: flex;
flex-direction: column;
margin: px2rem(40px) 0 px2rem(50px);
align-items: center;
img {
width: px2rem(125px);
height: px2rem(125px);
}
span {
height: px2rem(21px);
line-height: px2rem(21px);
font-size: px2rem(15px);
font-weight: 400;
color: rgba(153, 153, 153, 1);
}
}
.mint-header {
background-color: rgba($color: #000000, $alpha: 0);
}
.font-style {
width: 100%;
overflow: hidden;
@include sc(0.6rem, #666);
}
.teach-opt {
padding: 0 px2rem(15px) px2rem(15px) px2rem(15px);
.teach-title {
font-size: px2rem(18px);
// padding-bottom: px2rem(0px);
color: #333;
}
.teach-list {
margin-top: px2rem(-14px);
overflow: hidden;
}
.opt-span {
span {
color: #449284;
font-size: px2rem(13px);
display: inline-block;
vertical-align: middle;
height: px2rem(10px);
line-height: px2rem(10px);
img {
display: inline-block;
width: px2rem(15px);
height: px2rem(15px);
vertical-align: middle;
}
}
}
.list-item {
width: px2rem(170px);
margin-right: px2rem(5px);
margin-top: px2rem(15px);
border: 1px solid rgba(0, 0, 0, 0.02);
border-radius: 0 0 px2rem(3px) px2rem(3px);
float: left;
box-shadow: 0 px2rem(4px) px2rem(6px) RGBA(0, 0, 0, 0.06);
}
.mr0 {
margin-right: 0;
}
.tea-txt {
padding: px2rem(5px) px2rem(7px);
}
.tea-img {
width: px2rem(170px);
height: px2rem(83px);
position: relative;
border-radius: px2rem(3px) px2rem(3px) 0 0;
img {
width: 100%;
height: 100%;
display: block;
border-radius: px2rem(3px) px2rem(3px) 0 0;
}
.learn-p {
padding-left: px2rem(6px);
position: absolute;
width: 100%;
left: 0;
bottom: 0;
background: #333;
background: linear-gradient(
to right,
RGBA(0, 0, 0, 0.2),
RGBA(0, 0, 0, 0)
);
// background: linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,0.34) 100%);
color: #fff;
font-size: px2rem(11px);
height: px2rem(20px);
line-height: px2rem(22px);
&-cnum {
position: absolute;
right: px2rem(8px);
bottom: 0;
color: #fff;
font-size: px2rem(11px);
height: px2rem(20px);
line-height: px2rem(22px);
}
}
}
.tea-name {
padding: 0;
color: #333;
font-size: px2rem(14px);
font-weight: 500;
}
.tea-department {
padding: 0;
color: #333;
font-size: px2rem(12px);
font-weight: 400;
}
.tea-position {
height: px2rem(30px);
font-size: px2rem(12px);
line-height: px2rem(15px);
color: #666;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
}
.home-header {
height: px2rem(185px);
@include bis("../../images//headerTop.png");
.logo_img {
height: px2rem(85px);
width: px2rem(345px);
text-align: center;
}
}
.ellipsis-1 {
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
.ellipsis-2 {
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
</style>
<template>
<section>
<div class="font-style">
<div class="teach-opt">
<div class="teach-list">
<div
:class="index % 2 == 1 ? 'list-item mr0' : 'list-item ml15'"
v-for="(item, index) in cParamData"
:key="index"
@click="gotoDetail(item)"
>
<div class="tea-img" :style="'background:'+ item.bgColor">
<!-- <img :src="item.doctorAvatarImg"> -->
<img :src="item.doctorImg">
<span class="learn-p">{{item.joinNum | yLocalString}}人已学</span>
<span class="learn-p-cnum">课程: 共{{item.resourceNum}}</span>
</div>
<div class="tea-txt">
<div class="tea-name">
<span>{{item.doctorName}}</span>
<span class="tea-department">{{item.department | shortName(8)}}</span>
</div>
<div class="tea-position">{{item.doctorHospital}}</div>
</div>
</div>
<div class="no-content" v-show="!cParamData.length">
<img class="no-content-img" src="../../images//no-content.png" alt=" ">
<span class="no-content-desc">暂无相关内容</span>
</div>
</div>
</div>
</div>
</section>
</template>
<script>
import { getWebPageUrl } from '@/utils'
import { teacher } from "../../utils/buryingPoint";
import { mapGetters } from "vuex";
import YqyLecturerOrder from "@/components/business/yqy-lecturer-order";
export default {
data() {
return {
col: 1, //0综合,1人气,2资源数,3姓名首字母
dir: 2, //1:正序 2:逆序,
list: []
};
},
components: {
YqyLecturerOrder
},
props: {
parmData: {
type: Array,
default: () => []
}
},
mounted() {},
computed: {
cParamData() {
if (this.parmData && this.parmData.length) {
return this.randomBg(this.parmData);
} else {
return this.randomBg(this.list);
}
}
},
methods: {
// 跳转到详情页面
gotoDetail(item) {
// this.$router.push({
// path: "/teachersDetail",
// query: {
// id: item.doctorId
// }
// });
let paramList = [
{
id: 699,
key: "pageUrl",
value: getWebPageUrl('appl/#/teachersDetail') + '?id=' + item.doctorId + '&from=' + 'appHome',
// value: "https://uat-phome.yunqueyi.com/appl/#/teachersDetail",
type: 4,
seqNo: 1
}
];
rocNative.dispatchEventByModuleCode({
modeCode: 'M300',
jsonString: paramList
});
this.appBuryingPointEntrust({
...teacher,
labelId: item.doctorId,
labelValue: item.doctorName
});
},
// 随机生成背景颜色
randomBg(d) {
for (let i = 0; i < d.length; i++) {
if (i % 4 == 0) {
d[i].bgColor = "#EBF6F1";
} else if (i % 4 == 1) {
d[i].bgColor = "#EDF3FA";
} else if (i % 4 == 2) {
d[i].bgColor = "#F0F0FA";
} else if (i % 4 == 3) {
d[i].bgColor = "#F6EFE6";
}
}
return d;
},
// 埋点
appBuryingPointEntrust(val) {
rocNative.appBuryingPointEntrust(val);
}
}
};
</script>
<style>
body {
background: #fff;
}
</style>
<style lang="scss" scoped>
body {
background: #fff;
}
@import "../../style/mixin";
.no-content {
display: flex;
flex-direction: column;
margin: px2rem(40px) 0 px2rem(50px);
align-items: center;
img {
width: px2rem(125px);
height: px2rem(125px);
}
span {
height: px2rem(21px);
line-height: px2rem(21px);
font-size: px2rem(15px);
font-weight: 400;
color: rgba(153, 153, 153, 1);
}
}
.mint-header {
background-color: rgba($color: #000000, $alpha: 0);
}
.font-style {
width: 100%;
overflow: hidden;
@include sc(0.6rem, #666);
}
.teach-opt {
// padding: 0 px2rem(15px) px2rem(15px) px2rem(15px);
.teach-title {
font-size: px2rem(18px);
// padding-bottom: px2rem(0px);
color: #333;
}
.teach-list {
margin-top: px2rem(-14px);
overflow: hidden;
}
.opt-span {
span {
color: #449284;
font-size: px2rem(13px);
display: inline-block;
vertical-align: middle;
height: px2rem(10px);
line-height: px2rem(10px);
img {
display: inline-block;
width: px2rem(15px);
height: px2rem(15px);
vertical-align: middle;
}
}
}
.list-item {
width: px2rem(170px);
margin-right: px2rem(5px);
margin-top: px2rem(15px);
border: 1px solid rgba(0, 0, 0, 0.02);
border-radius: 0 0 px2rem(3px) px2rem(3px);
float: left;
box-shadow: 0 px2rem(4px) px2rem(6px) RGBA(0, 0, 0, 0.06);
}
.ml15 {
margin-left: px2rem(15px);
}
.mr0 {
margin-right: 0;
}
.tea-txt {
padding: px2rem(5px) px2rem(7px);
}
.tea-img {
width: px2rem(170px);
height: px2rem(83px);
position: relative;
border-radius: px2rem(3px) px2rem(3px) 0 0;
img {
width: 100%;
height: 100%;
display: block;
border-radius: px2rem(3px) px2rem(3px) 0 0;
}
.learn-p {
padding-left: px2rem(6px);
position: absolute;
width: 100%;
left: 0;
bottom: 0;
background: #333;
background: linear-gradient(
to right,
RGBA(0, 0, 0, 0.2),
RGBA(0, 0, 0, 0)
);
// background: linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,0.34) 100%);
color: #fff;
font-size: px2rem(11px);
height: px2rem(20px);
line-height: px2rem(22px);
&-cnum {
position: absolute;
right: px2rem(8px);
bottom: 0;
color: #fff;
font-size: px2rem(11px);
height: px2rem(20px);
line-height: px2rem(22px);
}
}
}
.tea-name {
padding: 0;
color: #333;
font-size: px2rem(14px);
font-weight: 500;
}
.tea-department {
padding: 0;
color: #333;
font-size: px2rem(12px);
font-weight: 400;
}
.tea-position {
height: px2rem(30px);
font-size: px2rem(12px);
line-height: px2rem(15px);
color: #666;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
}
.home-header {
height: px2rem(185px);
@include bis("../../images//headerTop.png");
.logo_img {
height: px2rem(85px);
width: px2rem(345px);
text-align: center;
}
}
.ellipsis-1 {
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
.ellipsis-2 {
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
</style>
<template>
<div class="wrapper" :class="{active:isScroll}">
<!-- <div class="status-bar"></div> -->
<div class="top-header" :class="{active:isScroll}">
<div class="content left-icon" @click="goBack()">
<img
v-if="!isScroll"
border="0"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/left-icon-white.png"
alt
>
<img
v-if="isScroll"
border="0"
src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/left-icon.png"
alt
>
</div>
<div v-if="isScroll && isJSJ" class="content title" :class="{active:isScroll}">讲师集</div>
<div v-if="isScroll && !isJSJ" class="content title" :class="{active:isScroll}">云鹊医讲师</div>
<!-- <div class="content right-icon" @click="share()">
<img v-if="!isScroll" border="0" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/right-icon-white.png" alt="">
<img v-if="isScroll" border="0" src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/right-icon.png" alt="">
</div>-->
</div>
</div>
</template>
<script>
import { teacher_back } from "../../utils/buryingPoint.js";
// import {shareUrl} from '@/utils/index'
import { shareUrl } from "../../utils/index.js";
export default {
name: "MyHeader",
props: {
isOpacity: {
type: Boolean,
default: true
},
isScroll: {
type: Boolean,
default: false
},
isShare: {
type: Boolean,
default: true
},
doctorId: {
type: String,
default: ""
},
backMethod: {
type: String,
default: "native"
},
isJSJ: {
type: Boolean,
default: true
}
},
computed: {
topTitle2() {
return this.topTitle;
}
},
mounted() {},
methods: {
goBack() {
if (this.backMethod === "inner") {
this.$router.go(-1);
} else {
rocNative.goBack();
}
},
share() {
rocNative.shareWechat({
title1: "个人评价",
title2: "个人评价出现了喔",
shareUrl: `${shareUrl}gpr#/home` + "?doctorId=" + this.doctorId,
type: 6,
shareImageUrl:
"https://file.yunqueyi.com/logo.png?version=" + new Date().getTime(),
shareId: 0
});
this.buryingPointShare();
},
//返回
buryingPointBack: function() {
rocNative.appBuryingPointEntrust({
...teacher_back,
functionCode: "f_gpranking",
actionCode: "c_back",
labelValue: "返回",
createdTime: new Date().getTime()
});
},
//分享
buryingPointShare: function() {
rocNative.appBuryingPointEntrust({
...teacher_back,
functionCode: "f_gpranking",
actionCode: "c_share",
labelValue: "分享",
createdTime: new Date().getTime()
});
}
}
};
</script>
<style lang="scss" scoped>
@import "../../style/mixin";
.wrapper {
position: fixed;
top: 0;
width: 100%;
z-index: 100000000;
/**************表头******************/
.top-header {
display: flex;
display: -webkit-flex;
flex-direction: row;
// justify-content:center;//这个会整体居中,但是使用一些左右不等的margin时,会影响效果
align-items: center;
width: 100%;
height: px2rem(45px); //header高度
margin-top: px2rem(
25px
); ///////////statusbar高度!!!!!!!!!!!!!!!!!!!!!默认使用此高度
}
.top-header.active {
// margin-top:0;
border-bottom: px2rem(2px) solid #e7e7e7;
background-color: #fff;
}
.top-header .left-icon {
margin-left: px2rem(15px);
}
.top-header .title {
width: px2rem(116px);
height: px2rem(18px);
line-height: px2rem(18px);
margin-left: px2rem(90px);
text-align: center;
color: #fff;
font-size: px2rem(18px);
}
.top-header .title.active {
color: #000;
}
.top-header .right-icon {
margin-left: px2rem(95px);
}
.top-header .left-icon img,
.top-header .right-icon img {
display: block; //这样其外的div可以正好将其包裹住
width: px2rem(25px);
height: px2rem(25px);
}
}
.wrapper.active {
background-color: #fff;
}
</style>
\ No newline at end of file
<template>
<section class="back-top">
<div class="back-btn" @click="backTop">
<img src="../../images//backTop.png">
</div>
</section>
</template>
<script>
export default {
data() {
return {
objPoint: {}
};
},
props: {
burialPoint: {
default: "",
type: String
}
},
mounted() {
if (this.burialPoint == "activity") {
this.objPoint = {
menuLevel: 2,
menuFromCode: "m_home",
menuCode: "m_content_list",
functionCode: "f_activity",
actionCode: "c_top"
};
}
},
methods: {
backTop: function() {
if (this.burialPoint == "activity") {
this.pageBurialPoin(this.objPoint);
}
var osTop = document.documentElement.scrollTop || document.body.scrollTop;
if (osTop > 0) {
document.documentElement.scrollTop = document.body.scrollTop = 0;
}
}
}
};
</script>
<style lang="scss" scoped>
@import "../../style/mixin";
.back-btn {
position: fixed;
width: px2rem(35px);
height: px2rem(35px);
right: px2rem(15px);
z-index: 100;
bottom: px2rem(80px);
img {
width: 100%;
height: 100%;
display: block;
}
}
</style>
\ No newline at end of file
<template>
<div>
<back-header :isScroll="isScroll" :backMethod="backMethod" :isJSJ="isJSJ"></back-header>
<div class="teach-top">
<!-- <div class="teach-top" :class="{'pt150': isScroll}"> -->
<!-- <div class="back" v-if="isScroll" @click="backPre" style="flex-direction:row;width:100%;">
<img src="../../images//left-icon.png">
<img src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/left-icon.png">
<span style="padding-bottom:10px;">dddd</span>
</div>-->
<!-- <TopNav :bgColor="bgColor" :title="navTitle" :isNavFix="isNavFix" :burialPoint="pointStyle"></TopNav> -->
<div class="tc title">{{parmObj}}</div>
<div
class="tc count"
v-if="isShowCount"
>{{studyCount.toLocaleString()}}人学习&nbsp;&nbsp;&nbsp;&nbsp;{{followCount.toLocaleString()}}人关注</div>
</div>
</div>
</template>
<script>
import BackHeader from "../../components/teacher/back-header";
export default {
data() {
return {
bgColor: "#fff",
parmObj: ""
};
},
components: {
BackHeader
},
props: {
isShowCount: {
default: false,
type: Boolean
},
followCount: {
type: Number,
default: 0
},
studyCount: {
type: Number,
default: 0
},
statusBarHeight: {
type: Number,
default: 0
},
isScroll: {
type: Boolean,
default: false
},
backMethod: {
type: String,
default: "native"
},
isJSJ: {
type: Boolean,
default: true
}
},
mounted() {
this.parmObj = this.isShowCount ? "讲师集" : "云鹊医讲师";
},
methods: {
backPre() {
if (this.backMethod === "inner") {
this.$router.go(-1);
} else {
rocNative.goBack();
}
}
}
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped>
@import "../../style/mixin.scss";
@import "../../style/global.scss";
.pt150 {
margin-top: px2rem(150px);
}
.teach-top {
width: 100%;
height: px2rem(185px);
@include bis("../../images//headerTop.png");
.tc {
text-align: center;
}
.back {
position: fixed;
z-index: 110;
left: px2rem(18px);
top: px2rem(25px);
display: inline-block;
width: px2rem(50px);
height: px2rem(50px);
img {
width: px2rem(25px);
height: px2rem(25px);
}
}
.title {
font-size: px2rem(25px);
color: #fff;
padding: px2rem(55px) 0 px2rem(8px) 0;
font-weight: 500;
}
.count {
font-size: px2rem(15px);
line-height: px2rem(21px);
color: #fff;
}
}
</style>
\ No newline at end of file
<template>
<section :class="isNavFix ? 'nav-top fixed' : 'nav-top'">
<div class="nav-part" :style="'background:'+bgColor">
<div class="nav-title">
<span class="nav-back" @click="goBack">
<img src="https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/left-icon.png">
<!-- <img class="nav-back" src="../../images//grey-throw.png"/> -->
</span>
<!-- <span class="back" @click="goBack">
<img src="../../images//left-icon.png">
</span>-->
{{title}}
<!-- <span class="nav-share" @click="goShare">
<img src="../../images//Shape1@2x.png"/>
</span>-->
</div>
</div>
</section>
</template>
<script>
export default {
data() {
return {
// title:'测试',
content: "",
shareImageUrl: ""
};
},
props: {
bgColor: {
//背景色
type: String,
default: ""
},
title: {
//标题
type: String,
default: "暂无数据"
},
isNavFix: {
//是否fix定位
type: Boolean,
default: true
},
burialPoint: {
default: "",
type: String
},
backMethod: {
type: String,
default: "native" // inner native
}
},
mounted() {
if (this.burialPoint == "activity") {
this.objPoint = {
menuLevel: 2,
menuFromCode: "m_home",
menuCode: "m_content_list",
functionCode: "f_activity",
actionCode: "c_last"
};
}
},
methods: {
//返回
goBack() {
if (this.burialPoint == "activity") {
this.pageBurialPoin(this.objPoint);
}
if (this.backMethod === "inner") {
this.$router.back(-1);
} else {
rocNative.goBack();
}
//rocNative.backPreviousPage();
},
//分享
goShare() {
let url = location.hef,
_this = this;
rocNative.shareWechat({
url: url,
title: _this.title,
content: _this.content,
shareImageUrl: _this.shareImageUrl
});
}
}
};
</script>
<style lang="scss" scoped>
@import "../../style/mixin";
.back {
position: absolute;
left: px2rem(18px);
top: px2rem(25px);
display: inline-block;
width: px2rem(50px);
height: px2rem(50px);
img {
width: px2rem(25px);
height: px2rem(25px);
}
}
.nav-top {
height: px2rem(65px);
background: #fff;
color: #333;
position: relative;
z-index: 109;
.nav-back {
display: inline-block;
position: absolute;
left: px2rem(16px);
top: 0;
height: px2rem(25px);
width: px2rem(25px);
// -ms-transform: translate(180deg);
// -webkit-transform: (180deg);
// transform: rotate(180deg);
}
img {
display: block;
width: 100%;
height: 100%;
}
.nav-icon {
display: inline-block;
width: 50px;
height: 50px;
svg {
stroke: #000;
fill: #0000ff;
}
}
.nav-share {
position: absolute;
right: px2rem(8px);
top: 0;
height: px2rem(25px);
width: px2rem(25px);
}
.nav-title {
display: inline-block;
width: 100%;
/* padding:0 px2rem(33px);*/
position: relative;
}
.nav-part {
width: 100%;
font-size: px2rem(18px);
text-align: center;
padding: px2rem(30px) 0 px2rem(10px) 0;
/* height: px2rem(25px);*/
}
}
.fixed {
.nav-part {
position: fixed;
top: 0;
left: 0;
border-bottom: 1px solid #e7e7e7;
/* height: px2rem(25px);*/
}
}
</style>
\ No newline at end of file
import "@babel/polyfill"; // import "@babel/polyfill";
import Vue from 'vue' import Vue from 'vue'
import VueRouter from 'vue-router' import VueRouter from 'vue-router'
import routes from './router/router' import routes from './router/router'
import store from './store/' import store from './store/'
const mixins = require('@/utils/mixins'); const mixins = require('@/utils/mixins');
import '@/utils/rem' // 引入自适应
import '@/utils/yqyServerRegister' // 移动端服务
import FastClick from 'fastclick' import FastClick from 'fastclick'
import vueFilters from '@/utils/filter' import vueFilters from '@/utils/filter'
// 引入Mint // 引入ElementUI
import Mint from 'mint-ui' import ElementUI from 'element-ui'
import 'mint-ui/lib/style.css' import 'element-ui/lib/theme-chalk/index.css';
// 可调试 // 可调试
// Vue.config.devtools = true; // Vue.config.devtools = true;
// Vue.use(Logger, { prefix: new Date(), isDev: process.env.NODE_ENV === 'development', cLevel: 'debug' }) // Vue.use(Logger, { prefix: new Date(), isDev: process.env.NODE_ENV === 'development', cLevel: 'debug' })
Vue.use(Mint) Vue.use(ElementUI)
import VueLazyload from 'vue-lazyload'
Vue.use(VueLazyload, {
preLoad: 3,
// loading: './images//change.png',
// error: 'https://file.yunqueyi.com/File/course_doctor/2018-11/20/web_454.png',
error: require('./images/error.png'),
attempt: 1
// lazyComponent: true
})
// 注册所有公用过滤器 // 注册所有公用过滤器
for(let key in vueFilters) { for(let key in vueFilters) {
......
import App from '../App' import App from '../App'
const activity = r => require.ensure([], () => r(require('../views/activity/activity')), 'activity') const index = r => require.ensure([], () => r(require('../views/index')), 'index')
// const teachers = r => require.ensure([], () => r(require('../views/index')), 'teachers')
const teachers = r => require.ensure([], () => r(require('../views/teachers/index')), 'teachers')
const teachersDetail = r => require.ensure([], () => r(require('../views/teachers/detail')), 'teachersDetail')
export default [{ export default [{
path: '/', path: '/',
component: App, //顶层路由,对应index.html component: App,
children: [ //二级路由。对应App.vue children: [
//地址为空时跳转home页面
{ {
path: '', path: '',
redirect: '/index' redirect: '/index'
}, },
// 首页城市列表页
{ {
path: '/index', path: '/index',
component: teachers component: index
}, },
{ {
path: '/home', path: '/home',
component: teachers component: index
}, }
{
path: '/activity',
component: activity
},
{
path: '/teachers',
component: teachers
},
{
path: '/teachersDetail',
component: teachersDetail
},
] ]
}] }]
...@@ -60,6 +60,8 @@ html,body{ ...@@ -60,6 +60,8 @@ html,body{
height: 100%; height: 100%;
width: 100%; width: 100%;
background-color: #fff; background-color: #fff;
font-family: Arial, Helvetica, sans-serif;
font-size: 16px;
} }
.clear:after{ .clear:after{
......
...@@ -24,62 +24,87 @@ ...@@ -24,62 +24,87 @@
.center{ .center{
text-align: center; text-align: center;
} }
.line20{ .mt10{
margin-top: px2rem(10px); margin-top: 10px;
} }
.mb42{ .mt20{
margin-bottom: px2rem(21px); margin-top: 20px;
} }
.marginLR40{ .mb10{
margin: 0 px2rem(20px); margin-bottom: 10px;
} }
.fs10{ .mb20{
font-size: px2rem(10px); margin-bottom: 20px;
} }
.fs11{ .pt10{
font-size: px2rem(11px); padding-top: 10px;
} }
.fs13{ .pt20{
font-size: px2rem(13px); padding-top: 10px;
} }
.fs14{ .pb10{
font-size: px2rem(14px); padding-bottom: 10px;
}
.pb20{
padding-bottom: 20px;
} }
.fs22{ .mLR10{
font-size: px2rem(11px); margin: 0 10px;
} }
.fs24{ .mLR20{
font-size: px2rem(12px); margin: 0 20px;
} }
.fs26{ .mTB10{
font-size: px2rem(13px); margin: 10px 0;
} }
.fs28{ .mTB20{
font-size: px2rem(14px); margin: 20px 0;
} }
.fs32{ .pLR10{
font-size: px2rem(16px); padding: 0 10px;
} }
.fs30{ .pLR20{
font-size: px2rem(15px); padding: 0 20px;
} }
.fs50{ .pTB10{
font-size: px2rem(25px); padding: 10px 0;
}
.pTB20{
padding: 20px 0;
}
.fs10{
font-size: 10px;
}
.fs11{
font-size: 11px;
}
.fs12{
font-size: 12px;
}
.fs13{
font-size: 13px;
}
.fs14{
font-size: 14px;
}
.fs15{
font-size: 15px;
}
.fs16{
font-size: 16px;
}
.fs25{
font-size: 25px;
} }
.fw{ .fw{
font-weight: 600; font-weight: 600;
} }
//背景颜色
.bgWhite{ .bgWhite{
background-color: #fff; background-color: #fff;
} }
//字体颜色
.gray{ .gray{
color: RGBA(177, 181, 184, 1); color: rgba(177, 181, 184, 1);
} }
.white{ .white{
color: #fff; color: #fff;
}
.fs30{
font-size: px2rem(15px);
} }
\ No newline at end of file
...@@ -69,7 +69,7 @@ $fc:#fff; ...@@ -69,7 +69,7 @@ $fc:#fff;
} }
@function px2rem($px){ // @function px2rem($px){
$rem: 37.5px; // $rem: 37.5px;
@return ($px / $rem) + rem; // @return ($px / $rem) + rem;
} // }
\ No newline at end of file \ No newline at end of file
/**
* Swiper 3.4.1
* Most modern mobile touch slider and framework with hardware accelerated transitions
*
* http://www.idangero.us/swiper/
*
* Copyright 2016, Vladimir Kharlampidi
* The iDangero.us
* http://www.idangero.us/
*
* Licensed under MIT
*
* Released on: December 13, 2016
*/
.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 5px}.swiper-pagination-progress{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progress .swiper-pagination-progressbar{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar{-webkit-transform-origin:right top;-moz-transform-origin:right top;-ms-transform-origin:right top;-o-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progress{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progress{width:4px;height:100%;left:0;top:0}.swiper-pagination-progress.swiper-pagination-white{background:rgba(255,255,255,.5)}.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar{background:#fff}.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar{background:#000}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper,.swiper-container-flip .swiper-wrapper{-ms-perspective:1200px}.swiper-container-cube,.swiper-container-flip{overflow:visible}.swiper-container-cube .swiper-slide,.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide,.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active,.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-slide{visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}
\ No newline at end of file
module.exports = {
//讲师集页面-糖尿病
teacher_back: {
menuCode: 'm_teacher_dm',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teachertitle_dm',
actionCode: 'c_back',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
fast_sicon: {
menuCode: 'm_teacher_dm',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teachertitle_dm',
actionCode: 'c_fast_sicon',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
hot_teacher: {
menuCode: 'm_teacher_dm',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teachertitle_dm',
actionCode: 'c_hot_teacher',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher: {
menuCode: 'm_teacher_dm',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teacherdir_dm',
actionCode: 'c_teacher',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
activity_action: {
menuCode: 'm_teacher_dm',
menuToCode: '',
menuLevel: 4,
// functionCode:'f_activity',
// actionCode: 'c_project',
labelId: '',
labelValue: '',
duration: 1
},
teacherother: {
menuCode: 'm_teacher_dm',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teacherother_dm',
actionCode: 'c_teacher',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
screen: {
menuCode: 'm_teacher_dm',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teacherdir_dm',
actionCode: 'c_screen',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
//治疗药物集-糖尿病
medicine_back: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_teachertitle_dm',
actionCode: 'c_back',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_fast_open: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_teachertitle_dm',
actionCode: 'c_fast_open',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_hot_title: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_teachertitle_dm',
actionCode: 'c_hot_title',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_course: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_new_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_collect: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_new_course',
actionCode: 'c_collect',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_collect: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_new_course',
actionCode: 'c_collect',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_teach_course: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_teach_screen: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_course',
actionCode: 'c_screen',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_teach_more: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_course',
actionCode: 'c_more',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_need_course: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_recommend',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
medicine_need_change: {
menuCode: 'm_medicine_dm',
menuToCode: '',
menuLevel: 1,
functionCode: 'f_recommend',
actionCode: 'c_change',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
//讲师之详情页
teacher_info_back:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teacher_info',
actionCode: 'c_back',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher_info_fast_sicon:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_teacher_info',
actionCode: 'c_fast_sicon',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher_info_new_course:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_new_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher_info_collect:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_new_course',
actionCode: 'c_collect',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher_info_course:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher_info_screen:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_course',
actionCode: 'c_screen',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher_info_more:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_course',
actionCode: 'c_more',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
teacher_info_other_course:{
menuCode: 'm_teacher_info',
menuToCode: '',
menuLevel: 4,
functionCode: 'f_course_other',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
//首页
illness_step_icon:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_dm',
actionCode: 'c_step_icon',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
illness_hot_title:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_dm',
actionCode: 'c_hot_title',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
illness_course:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_new_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
illness_collect:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_new_course',
actionCode: 'c_collect',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
illness_teach_course:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
illness_teach_more:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_course',
actionCode: 'c_more',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
illness_need_course:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_recommend',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
illness_need_change:{
menuCode: 'm_illness_dm',
menuToCode: '',
menuLevel: 2,
functionCode: 'f_recommend',
actionCode: 'c_change',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
//治疗页面
treat_back:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_dm',
actionCode: 'c_back',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_fast_sicon:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_dm',
actionCode: 'c_fast_sicon',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_step_icon:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_dm',
actionCode: 'c_step_icon',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_hot_title:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_dm',
actionCode: 'c_hot_title',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_course:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_new_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_collect:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_new_course',
actionCode: 'c_collect',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_teach_course:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_course',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_teach_more:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_course',
actionCode: 'c_more',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_need_course:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_recommend',
actionCode: 'c_course',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
},
treat_need_change:{
menuCode: 'm_treat_dm',
menuToCode: '',
menuLevel: 3,
functionCode: 'f_recommend',
actionCode: 'c_change',
labelId: '',
labelValue: '',
createdTime: new Date().getTime(),
duration: 1
}
}
\ No newline at end of file
...@@ -104,13 +104,6 @@ export function arraySort(originData, isUp = true, sortedField, converFun) { ...@@ -104,13 +104,6 @@ export function arraySort(originData, isUp = true, sortedField, converFun) {
return sortedData return sortedData
} }
export function pageJumpUrl(){
let url = {
pageListUrl : 'https://test1-contents.yunqueyi.com/content_list',
detailUrl : 'https://test1-contents.yunqueyi.com/content_detail'
};
return url;
}
export function sortParmData(originData, orderCol, index) { export function sortParmData(originData, orderCol, index) {
return originData.sort((a, b) => { return originData.sort((a, b) => {
......
!function (e) {
var i = {}, t = {}, n = 0;
var stateChange;
e.rocNative = {
// 参数说明 e:回传回来的移动端服务名称; t:前端自己传递的回调JS方法
__nativeCall: function (e, t, n) {
// alert(t)
// alert(window[t])
// if( window[t] ){
// window[t](n)
// }
if(t == '__refresh'){
__refresh(n)
}
if(t == '__getUserInfo'){
__getUserInfo(n);
}
if(t == '__getStatusBarHeight'){
__getStatusBarHeight(n);
}
},
__callNative: function (t, a, o) {
"function" == typeof o && (n++ , i[n] = o);
var __funcName = a && a.__funcName ? a.__funcName : '__funcName__' + n
a && a.__funcName && delete a.__funcName
var param = a === undefined ? {} : a;
var r = JSON.stringify({
name: t,
callbackId: __funcName,
param: param
});
if (e.__rocAndroid) {
e.__rocAndroid.postMessage(r);
return true;
}
if (e.webkit && window.webkit.messageHandlers.rociOS) {
window.webkit.messageHandlers.rociOS.postMessage(r)
return true;
}
return false;
}, __onEvent: function (e, i) {
if (e && i && "function" == typeof i) {
(t[e] || (t[e] = [])).push(i)
}
}, __clearEvent: function (e) {
e && delete t[e]
}, __fireEvent: function (e, i) {
var n = t[e];
n && n.forEach(function (e) {
e(i)
})
}, on: function (e, i) {
rocNative.__onEvent(e, i)
}, off: function (e) {
rocNative.__clearEvent(e)
}
}, function () {
Array.prototype.slice.apply(arguments).forEach(function (i) {
e.rocNative[i] = function (t) {
return new Promise(function (n, a) {
e.rocNative.__callNative(i, t, function (e, i) {
null !== e ? a({ error: e, result: i }) : n(i)
}) ? void 0 : n({})
})
}
})
}("dispatchEventByModuleCode", "gotoAuthentication", "shareWechat", "backPreviousPage", "bindingWechat", "getDeviceInfo", "goBack", "appBuryingPointEntrust", "getAuthPermission", "getAppVersionCode", "getToken", "gotoNewActivity", "gotoNewActivityWithParams", "gotoNewWebActivity", "gotoYidianActivity", "readMessage", "openFiveMintusAudio", "getStatusBarSize", "showNativeDialog", "showNativeToast", "gotoViewTop", "appInit", "checkPermissions", "getStatusBarHeight","setTabMiniIcon","getUserInfo","pauseAudioView");
if (e.__rocAndroid) {
e.__isAndroid = true
e.__isIOS = false
e.__isWeb = false
} else if (e.webkit && window.webkit.messageHandlers.rociOS) {
e.__isAndroid = false
e.__isIOS = true
e.__isWeb = false
} else {
e.__isAndroid = false
e.__isIOS = false
e.__isWeb = true
}
if(window.__isIOS){
rocNative.appInit()
}
}(window);
<template>
<section>
<TopNav :bgColor="bgColor" :title="navTitle" :isNavFix="isNavFix" :burialPoint="pointStyle"></TopNav>
<!-- <teacherTop :backMethod="backMethod"></teacherTop> -->
<section class="activity-box">
<div class="activity-count">{{list.length}}个活动</div>
<div class="activity-list">
<div
class="activity-item"
v-for="(item,index) in list"
:key="index"
@click="goToPage(item)"
>
<img v-lazy="item.imageUrl" class="img" :key="item.imageUrl">
<!-- <div class="time">活动时间:9月3日-9月9日</div> -->
</div>
<div class="no-show" v-if="list.length.length == 0">暂无数据</div>
</div>
<BackTop v-if="isShowBackTop" :burialPoint="pointStyle"></BackTop>
</section>
</section>
</template>
<script>
import TopNav from "../../components/teacher/topNav";
import BackTop from "../../components/teacher/backTop";
import { activity_action } from "../../utils/buryingPoint";
import { deepCopy } from "../../utils";
export default {
data() {
return {
backMethod: "native",
tittle: "",
list: [],
bgColor: "#fff",
navTitle: " 专项合作",
isBorder: true,
isNavFix: true,
id: 1,
tabName: "活动",
tabList: [],
isShowBackTop: false,
pointStyle: "activity",
token: null
};
},
components: {
TopNav,
BackTop
},
created() {
let _this = this;
this.id = this.$route.query.categoryId || 1;
this.navTitle = this.id == 1 ? "专项合作" : "活动掠影";
window.__getUserInfo = function(parm) {
_this.token = parm.userToken;
_this.getTabData();
};
window.addEventListener("scroll", this.scrollFun);
if (window.__isWeb) {
this.getTabData();
}
window.__refresh = function() {
_this.getUserInfo();
}
this.getUserInfo();
},
mounted() {},
beforeDestroyed() {
window.removeEventListener("scroll", this.scrollFun);
},
methods: {
//获取版本号
getUserInfo() {
rocNative.getUserInfo({
__funcName: "__getUserInfo"
});
},
scrollFun() {
let scrollTop = document.documentElement.scrollTop;
this.isShowBackTop = scrollTop > 0 ? true : false;
},
goToPage(itemData) {
let paramList = deepCopy(this.setEventByModuleCode(itemData));
let isStrokeUrl =
paramList[0] &&
paramList[0]["value"] &&
paramList[0]["value"].indexOf("stroke.js") !== -1;
let strokeUrl = "";
if (isStrokeUrl) {
strokeUrl = paramList[0]["value"] + "&token=" + this.token;
paramList[0]["value"] = strokeUrl;
}
rocNative.dispatchEventByModuleCode({
modeCode: itemData.appModuleInfo.code,
jsonString: paramList
});
this.appBuryingPointEntrust({
...activity_action,
labelId: itemData.id,
functionCode: this.id == 1 ? "c_project" : "f_activity",
actionCode: this.id == 1 ? "c_project_tab" : "c_activity_tab",
labelValue: itemData.title,
createdTime: new Date().getTime()
});
},
// 埋点
appBuryingPointEntrust(val) {
rocNative.appBuryingPointEntrust(val);
},
//查询tab
getTabData() {
let _this = this,
parm = {
id: _this.id || 1,
setEntry: "headers",
token: _this.token
};
_this.GET("contents/contentList/tabById", parm).then(function(res) {
if (res.code === "000000") {
_this.navTitle = res.data.name || "";
_this.tabName = _this.tabList[0] || "";
// if(_this.tabList.length>0){
// _this.tabName = _this.tabList[0] || '';
// }
_this.getData();
} else {
//alert(res.message)
}
});
},
//查询内容
getData() {
let _this = this,
parm = {
id: _this.id,
tabName: _this.tabName,
setEntry: "headers",
token: _this.token
};
// if(_this.tabName != ''){
// parm.tabName = _this.tabName
// }
_this.GET("contents/contentList/contentById", parm).then(function(res) {
if (res.code === "000000") {
_this.list =
(res.data.contentList && res.data.contentList.contentList) || [];
}
});
}
}
};
</script>
<style lang="scss" scoped>
@import "../../style/mixin";
.activity-box {
padding: px2rem(15px);
background: #fff;
}
.no-show {
font-size: px2rem(15px);
color: #999;
text-align: center;
}
.activity-count {
color: #999;
font-size: px2rem(15px);
padding-bottom: px2rem(15px);
}
.activity-item {
// position: relative;
width: px2rem(345px);
max-height: px2rem(170px);
margin-bottom: px2rem(10px);
// box-shadow: 0 px2rem(2px) px2rem(6px) RGBA(42, 94, 161, 0.15);
display: block;
overflow: hidden;
.img {
width: 100%;
max-height: 100%;
}
.time {
position: absolute;
color: #fff;
height: px2rem(25px);
line-height: px2rem(25px);
background: RGBA(0, 0, 0, 0.1);
border-radius: 0 0 px2rem(5px) px2rem(5px);
width: 100%;
bottom: 0;
left: 0;
z-index: 10;
font-size: px2rem(14px);
padding-left: px2rem(5px);
}
}
</style>
<template>
<el-container style="height: 500px; border: 1px solid #eee">
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
<el-menu :default-openeds="['1', '3']">
<el-submenu index="1">
<template slot="title"><i class="el-icon-message"></i>Navigator One</template>
<el-menu-item-group>
<template slot="title">Group 1</template>
<el-menu-item index="1-1">Option 1</el-menu-item>
<el-menu-item index="1-2">Option 2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="Group 2">
<el-menu-item index="1-3">Option 3</el-menu-item>
</el-menu-item-group>
<el-submenu index="1-4">
<template slot="title">Option4</template>
<el-menu-item index="1-4-1">Option 4-1</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu index="2">
<template slot="title"><i class="el-icon-menu"></i>Navigator Two</template>
<el-menu-item-group>
<template slot="title">Group 1</template>
<el-menu-item index="2-1">Option 1</el-menu-item>
<el-menu-item index="2-2">Option 2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="Group 2">
<el-menu-item index="2-3">Option 3</el-menu-item>
</el-menu-item-group>
<el-submenu index="2-4">
<template slot="title">Option 4</template>
<el-menu-item index="2-4-1">Option 4-1</el-menu-item>
</el-submenu>
</el-submenu>
<el-submenu index="3">
<template slot="title"><i class="el-icon-setting"></i>Navigator Three</template>
<el-menu-item-group>
<template slot="title">Group 1</template>
<el-menu-item index="3-1">Option 1</el-menu-item>
<el-menu-item index="3-2">Option 2</el-menu-item>
</el-menu-item-group>
<el-menu-item-group title="Group 2">
<el-menu-item index="3-3">Option 3</el-menu-item>
</el-menu-item-group>
<el-submenu index="3-4">
<template slot="title">Option 4</template>
<el-menu-item index="3-4-1">Option 4-1</el-menu-item>
</el-submenu>
</el-submenu>
</el-menu>
</el-aside>
<el-container>
<el-header style="text-align: right; font-size: 12px">
<el-dropdown>
<i class="el-icon-setting" style="margin-right: 15px"></i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>View</el-dropdown-item>
<el-dropdown-item>Add</el-dropdown-item>
<el-dropdown-item>Delete</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<span>Tom</span>
</el-header>
<el-main>
<el-table :data="tableData">
<el-table-column prop="date" label="Date" width="140">
</el-table-column>
<el-table-column prop="name" label="Name" width="120">
</el-table-column>
<el-table-column prop="address" label="Address">
</el-table-column>
</el-table>
</el-main>
</el-container>
</el-container>
</template>
<style>
.el-header {
background-color: #B3C0D1;
color: #333;
line-height: 60px;
}
.el-aside {
color: #333;
}
</style>
<script>
export default {
data() {
const item = {
date: '2016-05-02',
name: 'Tom',
address: 'No. 189, Grove St, Los Angeles'
};
return {
tableData: Array(20).fill(item)
}
}
};
</script>
\ No newline at end of file
<template>
<section class="font-style">
<teacherTop :backMethod="backMethod" :isScroll="isScroll" :isJSJ="false"></teacherTop>
<div class="teach-opt">
<div class="tea-detail">
<div class="head-img">
<img v-lazy="doctorParm.doctor.avatar_image_url">
</div>
<p class="detail-name">{{doctorParm.doctor.name}}</p>
<p class="detail-intr" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">
{{doctorParm.doctor.hospital}} {{doctorParm.doctor.title}}
</p>
<div class="detail-info">
<div class="info-item">
<span class="detail-count">{{doctorParm.studyCount.toLocaleString()}}</span>
<p>学习人数</p>
</div>
<div class="info-item">
<span class="detail-count">{{doctorParm.followCount.toLocaleString()}}</span>
<p>关注人数</p>
</div>
</div>
</div>
<div class="tea-new-title plr15">新课上线</div>
<div class="tea-new-line plr15">
<div class="item-new-box">
<div class="item-line" v-for="(item,index) in newsList" :key="index">
<div class="line-img" @click="goToPage(item)">
<img v-lazy="item.imageUrl" :key="item.imageUrl">
<span class="tag" v-show="item.structureName">{{item.structureName}}</span>
<span class="line-play" @click.stop="goToPage(item)">
<img src="../../images//grey-play.png">
</span>
</div>
<div class="line-name">
{{item.courseName}}
</div>
<div class="line-info">
<span>{{item.publishTime}} | {{item.joinNum.toLocaleString()}}人已学</span>
<span @click.stop="collectFun(item.favorFlag,item.courseId, item.courseName)" :class="item.favorFlag == 2 ? 'btn collect' : 'btn collected'">
{{item.favorFlag == 2?'收藏':'已收藏'}}
</span>
<!-- <span class='btn collected'>已收藏</span> -->
</div>
</div>
<div class="no-more" v-if="newsList.length == 0">暂无数据</div>
</div>
</div>
<div class="grey-box"></div>
<div class="teach-title plr15">课程教学</div>
<div class="opt-span plr15">
<span class="" @click="sortFun">学习人数
<img src="../../images//sort-d.png" v-if="dir == 2">
<img src="../../images//sort-u.png" v-if="dir == 1">
</span>
</div>
<div class="teach-list plr15">
<div :class="index%2==1?'list-item mr0':'list-item'"
v-for="(item,index) in list" @click="goToPage(item)" :key="index">
<div class="tea-img">
<img v-lazy="item.imageUrl" :key="item.imageUrl">
<span class="learn-p">{{item.joinNum.toLocaleString()}}人已学</span>
</div>
<div class="tea-txt">
<!-- <p class="tea-name">{{item.doctorName}}</p> -->
<div class="tea-position">
{{item.courseName}}
</div>
</div>
</div>
<div class="no-more" v-if="list.length == 0">暂无数据</div>
</div>
</div>
</section>
</template>
<script>
import teacherTop from '../../components/teacher/teach-top';
import {teacher,teacher_info_collect} from '../../utils/buryingPoint';
export default {
components:{
teacherTop
},
data(){
return {
isScroll: false,
backMethod: 'inner',
list: [],
newsList: [],
dir: 2,
doctorId: '',
doctorParm: {
studyCount: 0,
followCount: 0,
doctor: {
app_image_url: '',
avatar_image_url: '',
name: '',
title: ''
}
},
token: null
}
},
mounted(){
// alert(this.$route.query)
let _this = this
this.doctorId = this.$route.query.id;
this.token = this.$route.query.userToken || this.$route.query.token
this.token = this.token || '4A96FD82B250491683D17888482A1F96' || 'A76D20BE3C79409C9520AB5A997737DF',
this.backMethod = this.$route.query.from === 'appHome' ? 'native' : 'inner'
window.__getUserInfo = function(parm){
_this.token = parm.userToken
_this.getBaseData();
_this.getNewClass();
_this.getCourse();
}
this.getUserInfo()
if( window.__isWeb) {
_this.getBaseData();
_this.getNewClass();
_this.getCourse();
}
window.__refresh = function() {
_this.getUserInfo()
}
window.addEventListener('scroll',_this.handleScroll)
},
computed: {
},
methods:{
//获取版本号
getUserInfo(){
rocNative.getUserInfo({
__funcName: '__getUserInfo'
})
},
handleScroll: function(){
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
if(scrollTop > 25){
this.isScroll = true;
}else{
this.isScroll = false;
}
},
//跳转
goToPage(item){
let itemData={
"title":item.name,
"imageUrl":"",
"appModuleInfo":{
"code":"M200",
"type":4,
"name":"课程介绍页",
"paramFlag":1,
"paramList":[
{
"key":"className",
"value":"com.picahealth.yunque.activitys.courseplaynew.CourseIntroduceActivity###WeexCourseIntroViewController",
"type":4,
"seqNo":1
},
{
"key":"courseId",
"value":`${item.courseId}`,
"type":1,
"seqNo":2
}
]
}
};
let paramList = this.setEventByModuleCode(itemData);
rocNative.dispatchEventByModuleCode({
modeCode: itemData.appModuleInfo.code,
jsonString: paramList
})
},
collectFun(flag, id, name){
// let flag = this.resourceData.item[val].favorFlag;
flag = flag == 1 ? 2 : 1;
let _this = this,
para = {
type: flag,
courseId: id,
token: this.token || '4A96FD82B250491683D17888482A1F96' || 'A76D20BE3C79409C9520AB5A997737DF',
setEntry: 'headers'
}
// alert('para.token: ' + para.token)
this.POST(`contents/diagnosis/favors`, para).then( res => {
// alert(JSON.stringify(res))
if(res.code === '000000'){
_this.handelData(id, flag);
} else {
rocNative.showNativeToast({
message: '注册登陆后才能收藏哦'
})
}
// this.resourceData.item[val].favorFlag = res.code=='000000'?(flag==1? 2:1):flag;
})
// this.$emit('collect',val,this.resourceData.item[val].favorFlag,id,name)
},
// 埋点
appBuryingPointEntrust(val) {
rocNative.appBuryingPointEntrust(val)
},
handelData(id,status){
let d = this.newsList;
for(let i=0;i<d.length;i++){
if(id == d[i].courseId){
d[i].favorFlag = status;
}
}
},
sortFun(){
this.dir = this.dir == 2 ? 1 : 2;
this.getCourse();
this.appBuryingPointEntrust({
...teacher,
labelId: this.dir,
labelValue: this.dir === 1 ? '升序' : '降序'
})
},
//课程教学
getCourse(){
let _this = this,
para = {
token: this.token,
setEntry: 'headers'
}
let url = '/contents/courseDoctor/courseList/'+_this.doctorId+'/orderby/1/dir/'+_this.dir;
this.GET(url, para).then(res => {
if(res.code == '000000'){
_this.list = res.data || [];
}
})
},
//新课程
getNewClass(){
let _this = this,
para = {
token: this.token,
setEntry: 'headers'
}
let url = '/contents/courseDoctor/latestCourseList/'+_this.doctorId;
this.GET(url, para).then(res => {
if(res.code == '000000'){
_this.newsList = res.data || [];
}
})
},
//基础信息
getBaseData(){
let _this = this,
para = {
token: this.token,
setEntry: 'headers'
}
let url = '/contents/courseDoctor/doctorDetail/'+_this.doctorId;
this.GET(url, para).then(res => {
if(res.code == '000000'){
_this.doctorParm = {
followCount:res.data.followCount,
studyCount:res.data.studyCount,
doctor:res.data.doctor
}
}
})
}
}
}
</script>
<style>
body{background: #fff;height: auto;}
</style>
<style lang="scss" scoped>
body{background: #fff}
@import '../../style/mixin';
.mint-header {
background-color: rgba($color: #000000, $alpha: 0)
}
.font-style {
width: 100%;
overflow: hidden;
@include sc(0.6rem, #666);
}
.tea-detail{
height: px2rem(154px);
position: absolute;
width: 100%;
left: 0;
top:-(px2rem(64px));
z-index: 10;
@include bis('../../images//detaiBg.png');
.head-img{
width: px2rem(45px);
height: px2rem(45px);
border-radius: 100%;
margin: -(px2rem(10px)) auto 0;
background: #D8D8D8;
text-align: center;
img{
width: px2rem(45px);
height: px2rem(45px);
border-radius: 50%;
}
}
.detail-name{
margin-top:px2rem(3px);
line-height: px2rem(20px);
font-size: px2rem(14px);
color:#333;
text-align: center;
}
.detail-intr{
text-align: center;
line-height: px2rem(17px);
height: px2rem(17px);
overflow: hidden;
width: 90%;
margin:0 auto;
font-size: px2rem(12px);
color:#666;
}
.detail-info{
overflow: hidden;
margin-top: px2rem(12px);
.info-item{
width: 50%;
float: left;
text-align: center;
span{
line-height: px2rem(20px);
font-size: px2rem(14px);
color:#333;
}
p{
line-height: px2rem(17px);
font-size: px2rem(12px);
color:#666;
}
}
}
}
.tea-new-title{
font-size: px2rem(18px);
margin: px2rem(15px) 0;
color:#333;
}
.tea-new-line.plr15{padding-left:px2rem(17px);}
.tea-new-line{
width: 100%;
overflow: hidden;
overflow-x: scroll;
-webkit-tap-highlight-color:rgba(0,0,0,0);
outline: 0;
-webkit-overflow-scrolling : touch;
height: px2rem(273px);
.item-new-box{
width: px2rem(10000000px);
}
.item-line{
width: px2rem(345px);
padding-bottom: px2rem(23px);
float: left;
margin-right: px2rem(10px);
.line-img{
width: px2rem(345px);
height: px2rem(191px);
position: relative;
.line-play{
position: absolute;
width: px2rem(60px);
height: px2rem(60px);
left:50%;
top:50%;
margin:-(px2rem(30px)) 0 0 -(px2rem(30px));
}
.tag{
display: inline-block;
background: #fff;
border:1px solid #C3DCFB;
position: absolute;
top:px2rem(5px);
left: px2rem(5px);
font-size: px2rem(10px);
line-height: px2rem(16px);
padding: 0 px2rem(10px);
border-radius: px2rem(2px);
color:#4A87D4;
}
img {
width: 100%;
height:100%;
border-radius: px2rem(6px);
margin-right: px2rem(17px);
}
}
.line-name{
margin-top: px2rem(10px);
font-size: px2rem(16px);
line-height: px2rem(16px);
width: 100%;
overflow: hidden;
height: px2rem(16px);
color:#333;
}
.line-info{
overflow: hidden;
margin-top: px2rem(10px);
span{
display: inline-block;
font-size: px2rem(12px);
color: #999;
line-height: px2rem(18px);
}
.btn{
color:#666;
background: #F7F8F9;
padding: 0 px2rem(5px);
float: right;
margin-right: px2rem(5px);
}
.collected{
color: #F47A48;
background: RGBA(244, 122, 72, 0.04);
}
}
}
}
.grey-box{
width: 100%;
height: px2rem(6px);
background: #F8F8F8;
}
.plr15{
padding-right: px2rem(15px);
padding-left: px2rem(15px);
}
.teach-opt{
padding:px2rem(90px) 0 px2rem(30px) 0;
position: relative;
.teach-title{
font-size: px2rem(18px);
padding-bottom: px2rem(15px);
padding-top: px2rem(15px);
color:#333;
}
.teach-list{
overflow: hidden;
}
.no-more{
text-align: center;
color:#999;
font-size: px2rem(12px);
}
.opt-span{
span{
color:#449284;
font-size: px2rem(13px);
display: inline-block;
vertical-align: middle;
height: px2rem(15px);
line-height: px2rem(15px);
img{
display: inline-block;
width: px2rem(15px);
height: px2rem(15px);
vertical-align: middle;
}
}
}
.list-item{
width: px2rem(170px);
margin-right: px2rem(5px);
margin-top: px2rem(15px);
float: left;
box-shadow: 0 px2rem(4px) px2rem(6px) RGBA(0, 0, 0, 0.06);
}
.mr0{
margin-right: 0
}
.tea-txt{
padding:px2rem(7px);
}
.tea-img{
width: px2rem(170px);
height: px2rem(96px);
position: relative;
img{
width: 100%;
height: 100%;
display: block;
border-radius: px2rem(3px) px2rem(3px) 0 0 ;
}
.learn-p{
padding-left: px2rem(5px);
position: absolute;
width: 100%;
left:0;
bottom: 0;
background: #333;
background: -webkit-linear-gradient(left, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
background: -o-linear-gradient(right, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
background: -moz-linear-gradient(right, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
background: linear-gradient(to right, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
color:#fff;
font-size: px2rem(11px);
height: px2rem(20px);
line-height: px2rem(20px);
}
}
.tea-name{
color:#333;
font-size: px2rem(14px);
padding: px2rem(7px) 0 px2rem(3px) 0;
}
.tea-position{
height: px2rem(38px);
font-size: px2rem(14px);
line-height: px2rem(19px);
color:#333;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
}
.home-header {
height: px2rem(185px);
@include bis('../../images//headerTop.png');
.logo_img{
height: px2rem(85px);
width: px2rem(345px);
text-align: center;
}
}
</style>
<template>
<section class="font-style">
<teacherTop :topTitle="topTitle" :isScroll="isScroll" :isShowCount="isShowCount" :studyCount="studyCount" :followCount="followCount"></teacherTop>
<div class="teach-opt">
<div class="teach-title">讲师名录</div>
<div class="opt-span">
<span class="" @click="sortFun">人气
<img src="../../images/sort-u.png" v-if="dir == 1">
<img src="../../images/sort-d.png" v-if="dir == 2">
</span>
</div>
<div class="teach-list">
<div :class="index%2==1?'list-item mr0':'list-item'" v-for="(item, index) in list"
@click="goToDetail(item)" :key="index">
<div class="tea-img" :style="'background:'+ item.bgColor">
<img :src="item.doctorImg">
<span class="learn-p">{{item.joinNum | yLocalString}}人已学</span>
</div>
<div class="tea-txt">
<div class="tea-name">{{item.doctorName}}</div>
<div class="tea-position">
{{item.doctorHospital}}
</div>
</div>
</div>
</div>
</div>
</section>
</template>
<script>
import teacherTop from '../../components/teachers/teach-top-new';
import {teacher_back,fast_sicon,hot_teacher,screen,teacher,teacherother} from '../../utils/buryingPoint';
export default {
components:{
teacherTop
},
data(){
return {
topTitle: '讲师集',
isScroll:false,
token: '',
list:[],
isShowCount:true,
followCount:0,
studyCount:0,
col:1, //0综合,1人气,2资源数,3姓名首字母
dir:2,//1:正序 2:逆序
}
},
mounted(){
let _this = this
this.token = this.$route.query.userToken || this.$route.query.token
// this.getUserInfo()
this.getData();
// window.__getUserInfo = function(parm){
// // alert('in __getUserInfo')
// _this.token = parm.userToken || _this.$route.query.token;
// this.getData();
// }
window.__refresh = function(parm){
_this.getData();
}
window.addEventListener('scroll',this.handleScroll)
},
computed:{
},
methods:{
handleScroll:function(){
var scrollTop=window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
if(scrollTop > 25){
this.isScroll = true;
}else{
this.isScroll = false;
}
},
//获取版本号
getUserInfo(){
rocNative.getUserInfo({
__funcName: '__getUserInfo'
})
},
goToDetail(item){
let _this = this;
this.$router.push({
path: '/teachersDetail',
query:{
id: item.doctorId,
token: _this.token
}
})
this.appBuryingPointEntrust({
...teacher,
labelId: item.doctorId,
labelValue: item.doctorName
})
},
// 埋点
appBuryingPointEntrust(val) {
rocNative.appBuryingPointEntrust(val)
},
//排序
sortFun(){
this.dir = this.dir == 1 ? 2 : 1;
this.appBuryingPointEntrust({
...teacher,
labelId: this.dir,
labelValue: this.dir === 1 ? '升序' : '降序'
})
this.getData()
},
randomBg(d){
for(let i=0;i<d.length;i++){
if(i%4 == 0){
d[i].bgColor = '#EBF6F1'
}else if(i%4 == 1){
d[i].bgColor = '#EDF3FA'
}else if(i%4 == 2){
d[i].bgColor = '#F0F0FA'
}else if(i%4 == 3){
d[i].bgColor = '#F6EFE6'
}
}
/// console.log(d);
},
getData(){
let _this = this,
para = {
token: _this.token,
setEntry: 'headers'
}
let url = '/contents/courseDoctor/getAllTeacher/orderby/'+_this.col+'/dir/'+_this.dir
this.GET(url, para).then(res => {
if(res.code == '000000'){
_this.list = res.data.teacherList || [];
_this.list = _this.list.slice()
_this.followCount = res.data.followCount || 0;
_this.studyCount = res.data.studyCount || 0;
if(_this.list.length>0){
_this.randomBg(_this.list);
}
}
})
}
}
}
</script>
<style>
body{background: #fff}
</style>
<style lang="scss" scoped>
body{background: #fff}
@import '../../style/mixin';
.mint-header {
background-color: rgba($color: #000000, $alpha: 0)
}
.font-style {
width: 100%;
overflow: hidden;
@include sc(0.6rem, #666);
}
.teach-opt{
padding:px2rem(26px) px2rem(15px) px2rem(15px) px2rem(15px);
.teach-title{
font-size: px2rem(18px);
// padding-bottom: px2rem(0px);
color:#333;
}
.teach-list{
overflow: hidden;
}
.opt-span{
span{
color:#449284;
font-size: px2rem(13px);
display: inline-block;
vertical-align: middle;
height: px2rem(10px);
line-height: px2rem(10px);
img{
display: inline-block;
width: px2rem(15px);
height: px2rem(15px);
vertical-align: middle;
}
}
}
.list-item{
width: px2rem(170px);
margin-right: px2rem(5px);
margin-top: px2rem(15px);
border-radius: 0 0 px2rem(3px) px2rem(3px) ;
float: left;
box-shadow: 0 px2rem(4px) px2rem(6px) RGBA(0, 0, 0, 0.06);
}
.mr0{
margin-right: 0
}
.tea-txt{
padding:px2rem(5px) px2rem(7px) ;
}
.tea-img{
width: px2rem(170px);
height: px2rem(83px);
position: relative;
border-radius: px2rem(3px) px2rem(3px) 0 0 ;
img{
width: 100%;
height: 100%;
display: block;
border-radius: px2rem(3px) px2rem(3px) 0 0 ;
}
.learn-p{
padding-left: px2rem(5px);
position: absolute;
width: 100%;
left:0;
bottom: 0;
background: #333;
background: -webkit-linear-gradient(left, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
background: -o-linear-gradient(right, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
background: -moz-linear-gradient(right, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
background: linear-gradient(to right, RGBA(0, 0, 0, 0.2),RGBA(0, 0, 0, 0));
color:#fff;
font-size: px2rem(11px);
height: px2rem(20px);
line-height: px2rem(20px);
}
}
.tea-name{
padding: 0;
color:#333;
font-size: px2rem(14px);
font-weight: 500;
}
.tea-position{
height: px2rem(30px);
font-size: px2rem(12px);
line-height: px2rem(15px);
color: #666;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
}
.home-header {
height: px2rem(185px);
@include bis('../../images/headerTop.png');
.logo_img{
height: px2rem(85px);
width: px2rem(345px);
text-align: center;
}
}
</style>
\ No newline at end of file
<template>
<div class="main-body" ref="wrapper">
<section class="home-header">
<div class="home-topMenu">
<YqyHomeHeader :searchFix="searchFix"/>
</div>
<div class="swiper">
<mt-swipe :auto="3000" :speed="speedSwiper" :stopPropagation="prevent">
<mt-swipe-item v-for="(item, index) in listSwiper" :key="index">
<img :src="item.imageUrl" @click="goLinkByswiper(item)">
</mt-swipe-item>
</mt-swipe>
</div>
</section>
<!-- 热门讲师 -->
<YqyHotLecturer/>
<!-- 讲师标题 -->
<YqyLecturerTitle/>
<!-- 讲师选择标题 -->
<YqyLecturerSelect
@selectedType="selectedTypeFromTitle"
:selectedAreaName="selectedTitleTitle"
:selectedLevelName="selectedLevelName"
:selectedDepartName="selectedDepartName"
/>
<!-- 讲师排序 -->
<YqyLecturerOrder ref="lecturerOrderRef" groupTitle="全部讲师" @order="orderAction"/>
<!-- 讲师列表 -->
<YqyTeacherList :parmData="parmDataDoctList"/>
<!-- 讲师选择组件 - 弹框 -->
<YqyLecturerSelectContent ref="lecturerSelContRef" @selectedData="selectedLecturerList"/>
<!--返回顶部-->
<BackTop v-if="searchFix"/>
</div>
</template>
<script>
import { arraySort } from "@/utils/index";
import { Swipe, SwipeItem } from "mint-ui";
import { mapState, mapMutations, mapActions } from "vuex";
import BackTop from "@/components/business/backTop";
import YqyHomeHeader from "@/components/business/yqy-home-header";
import YqyLecturerTitle from "@/components/business/yqy-lecturer-title";
import YqyLecturerSelect from "@/components/business/yqy-lecturer-select";
import YqyLecturerOrder from "@/components/business/yqy-lecturer-order";
import YqyLecturerSelectContent from "@/components/business/yqy-lecturer-select-content";
import YqyHotLecturer from "@/components/business/yqy-hot-lecturer";
import YqyTeacherList from "@/components/business/yqy-teacher-list";
export default {
data() {
return {
showSelectedPage: true,
parmDataDoctList: [],
oldParmDataDoctList: [],
selectedTypeIndex: 1,
prevent: true,
isShowBackTop: false,
speedSwiper: 300,
//轮播图默认数据
listSwiper: [
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
}
],
scrollTimer: null,
scrollTop: 0,
userToken: "",
searchFix: false,
statusBarHeight: 0,
userMobile: "",
isFailSwiper: 1,
selectedTitleTitle: "全国",
selectedAreaName: "全国",
selectedAreaSubName: "",
selectedLevelName: "全部等级",
selectedDepartName: "全部科室"
};
},
components: {
Swipe,
SwipeItem,
BackTop,
YqyHomeHeader,
YqyLecturerTitle,
YqyLecturerSelect,
YqyLecturerOrder,
YqyLecturerSelectContent,
YqyHotLecturer,
YqyTeacherList
},
computed: {
selectedTitle() {
return this.selectedTypeIndex === 1
? "选择地区"
: this.selectedTypeIndex === 2
? "选择等级"
: "选择科室";
}
},
beforeCreate() {},
created() {
let _this = this;
_this.initAll();
},
beforeMount() {},
mounted() {
window.addEventListener("scroll", this.scrollFun);
},
beforeDestroyed() {
window.removeEventListener("scroll", this.scrollFun);
},
watch: {},
methods: {
// 排序
orderAction(orderName, isSortUp) {
let orderType = isSortUp ? -1 : 1;
let orderData = this.oldParmDataDoctList.slice();
if (orderName === "doctorFirstNameChar") {
orderData = arraySort(orderData, isSortUp, orderName, fieldValue => {
return fieldValue.charCodeAt(0);
});
} else if (orderName === "newTime") {
orderData = arraySort(orderData, isSortUp, orderName, fieldValue => {
return new Date(fieldValue.replace(/-/g, "/")).getTime() / 1000;
});
} else {
orderData = arraySort(orderData, isSortUp, orderName);
}
this.parmDataDoctList = orderData;
},
// 选择器组件回调
selectedLecturerList(
paramList,
selectedTitle,
selectedLevelName,
selectedDepartName
) {
this.parmDataDoctList = paramList;
this.oldParmDataDoctList = paramList;
this.orderAction("doctorFirstNameChar", true);
this.$refs.lecturerOrderRef.reset();
this.selectedTitleTitle = selectedTitle;
this.selectedLevelName = selectedLevelName;
this.selectedDepartName = selectedDepartName;
},
// 选择标题组件
selectedTypeFromTitle(index) {
this.selectedTypeIndex = index;
this.$refs.lecturerSelContRef.selectedType(index);
this.$refs.lecturerSelContRef.show();
},
// 请求数据
initAll() {
this.getSwiper();
this.getYqDoctorDataByCD();
},
//轮播图跳转
goLinkByswiper(itemData) {
this.pageBurialPoin({
menuLevel: 1,
menuCode: "m_home",
functionCode: "f_banner",
actionCode: "c_banner",
labelId: itemData.id,
labelValue: itemData.name
});
let paramList = this.setEventByModuleCode(itemData);
rocNative.dispatchEventByModuleCode({
modeCode: itemData.appModuleInfo.code,
jsonString: paramList
});
},
//根据条件获取讲师列表
getYqDoctorDataByCD() {
let _this = this,
para = {
provinceId: 0,
cityId: 0,
countyId: 0,
levelGrade: 0,
departmentId: 0,
setEntry: "headers"
};
this.GET("contents/courseDoctor/v1/getAllTeacher", para).then(res => {
if (res.code == "000000") {
_this.parmDataDoctList = (res.data && res.data.list) || [];
_this.oldParmDataDoctList = (res.data && res.data.list) || [];
_this.orderAction("doctorFirstNameChar", true);
}
});
},
scrollEndFun() {
let scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
// let newCourseTop = document.querySelector('#famus-teacher').offsetTop;
// let fivesTop = document.querySelector('#fiveBoxMenu').offsetTop;
},
// 响应滚动事件,截流处理
scrollFun() {
let isBusy = false;
if (!isBusy) {
isBusy = true;
setTimeout(() => {
let scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
if (scrollTop > 20) {
this.searchFix = true;
} else {
this.searchFix = false;
}
isBusy = false;
}, 100);
}
},
// 获取轮播图数据
getSwiper() {
let _this = this,
para = {
setEntry: "headers"
};
this.GET("contents/courseDoctorBanner/queryList", para).then(res => {
if (res.code == "000000") {
_this.listSwiper = res.data.bannerList || [];
}
if (_this.listSwiper.length == 0) {
_this.isFailSwiper += 1;
}
_this.isFailSwiper = _this.listSwiper.length == 0 ? 2 : 1;
});
}
}
};
</script>
<style>
.mint-popup.mint-popup-top {
height: 100%;
z-index: 2001;
/* overflow: auto; */
}
.swiper .mint-swipe-indicators {
right: 6px;
top: 50%;
bottom: inherit;
left: inherit;
width: 10px;
text-align: center;
transform: translateX(0%);
transform: translateY(-50%);
}
.swiper .mint-swipe-item img {
width: 100%;
height: 100%;
}
.swiper .mint-swipe-indicator {
width: 2px;
height: 8px;
background: #fff;
opacity: 0.4;
float: left;
margin-top: 3px;
border-radius: 0;
}
.swiper .is-active {
opacity: 1;
}
.mint-loadmore-top .mint-loadmore-text {
font-size: 12px;
}
.banner-container.swiper-container-horizontal > .swiper-pagination-bullets {
width: 2px;
left: inherit;
transform: translateY(-50%);
position: absolute;
right: 6px;
top: 50%;
}
.banner-container.swiper-container-horizontal
> .swiper-pagination-bullets
.swiper-pagination-bullet {
width: 2px;
height: 7px;
background: #fff;
margin: 6px 0 0 0;
float: left;
opacity: 0.4;
}
.banner-container.swiper-container-horizontal
> .swiper-pagination-bullets
.swiper-pagination-bullet-active {
opacity: 1;
}
.banner-pagination {
width: 2px;
z-index: 100;
right: 10px;
top: 10px;
position: absolute;
}
/* .swiper-pagination-bullet{
} */
.swiper-slide img {
width: 100%;
height: 100%;
}
</style>
<style lang="scss" scoped>
@import "../../style/mixin";
@import "../../style/swiper.min.css";
.banner-container {
height: px2rem(210px);
}
.main-body {
position: relative;
}
.box-BG {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 10000;
}
.mint-header {
background-color: rgba($color: #000000, $alpha: 0);
}
.font-style {
@include sc(0.6rem, #666);
}
.top-evaluat {
}
@keyframes myPullDown {
from {
padding-top: 0;
}
to {
padding-top: px2rem(225px);
}
}
@keyframes myPullUp {
from {
padding-top: px2rem(225px);
}
to {
padding-top: 0;
}
}
.pull-down {
-webkit-animation: myPullDown 1.2s;
animation: myPullDown 1.2s;
padding-top: px2rem(225px);
}
.pull-up {
-webkit-animation: myPullUp 1.2s;
animation: myPullUp 1.2s;
padding-top: 0;
}
.news-update {
display: block;
position: fixed;
background: #f9f6ef;
right: 0;
bottom: px2rem(140px);
height: px2rem(27px);
padding: 0 px2rem(12px);
line-height: px2rem(27px);
border: 1px solid RGBA(162, 129, 60, 0.2);
font-size: px2rem(13px);
box-shadow: 0 px2rem(2px) px2rem(3px) RGBA(202, 168, 97, 0.4);
border-radius: px2rem(14px) 0 0 px2rem(14px);
z-index: 101;
.news-info {
color: #a2813c;
position: relative;
display: inline-block;
i {
position: absolute;
right: -(px2rem(6px));
top: px2rem(4px);
display: inline-block;
width: px2rem(4px);
height: px2rem(4px);
border-radius: 100%;
background: #f47a48;
}
}
}
.home-topMenu {
width: 100%;
text-align: center;
top: 0;
position: absolute;
z-index: 10;
}
.home-header {
height: px2rem(234px); // banner图片变高了
// height: px2rem(210px);
.swiper {
height: 100%;
/* @include bis('../../../images//lect-bg.png');*/
}
.logo_img {
height: px2rem(85px);
width: px2rem(345px);
text-align: center;
}
}
.home-body {
background: #fff;
}
.pathologic-list {
width: 100%;
height: px2rem(52px);
padding: 0 px2rem(15px);
margin-top: px2rem(15px);
.pathologic-item {
float: left;
width: 48%;
box-shadow: 0 px2rem(2px) px2rem(8px) rgba(49, 127, 119, 0.2);
border-radius: px2rem(3px);
background: #fff;
/* padding: px2rem(12px) 0 px2rem(12px) 0;*/
margin-right: 4%;
text-align: center;
.pathologic-icon {
height: px2rem(52px);
/* height: px2rem(20px);*/
img {
width: 100%;
height: px2rem(52px);
padding-bottom: px2rem(8px);
vertical-align: middle;
display: inline-block;
}
}
.pathologic-txt {
font-size: px2rem(14px);
line-height: px2rem(20px);
font-weight: 700;
display: inline-block;
vertical-align: middle;
}
}
.clear {
clear: both;
}
}
</style>
<style lang="scss" scoped>
@import "../../style/mixin.scss";
.lect-selection-content {
position: absolute;
top: px2rem(122px);
z-index: 201;
width: px2rem(375px);
height: 100%;
overflow: auto;
font-size: px2rem(14px);
color: #666666;
margin-right: px2rem(15px);
width: px2rem(360px);
table {
width: 100%;
border-collapse: collapse;
}
&-rp-tb {
padding: px2rem(4px) px2rem(15px);
&-left {
td {
padding-left: px2rem(15px);
border-bottom: 1px solid #f5f6f6;
}
background: #f5f6f6;
}
tr {
height: px2rem(40px);
line-height: px2rem(40px);
}
td {
height: px2rem(40px);
img {
position: relative;
top: px2rem(6px);
left: 0;
width: 20px;
height: 20px;
}
}
&-tb {
td {
padding-left: px2rem(8px);
border-bottom: 1px solid #f0f0f0;
}
}
&-tb-2 {
td {
padding-left: 0;
border-bottom: 1px solid #f0f0f0;
}
table {
width: 96%;
margin: 0 px2rem(15px);
}
}
}
}
.lect-selection {
display: flex;
background: #fff;
flex-direction: row;
&-title {
display: flex;
flex-direction: row;
padding: px2rem(33px) px2rem(15px) px2rem(13px);
width: px2rem(375px);
justify-content: space-between;
font-size: px2rem(13px);
height: px2rem(68px);
// line-height: px2rem(64px);
border-bottom: 1px solid #e7e7e7;
img {
position: relative;
top: px2rem(1px);
left: px2rem(1px);
height: px2rem(25px);
width: px2rem(25px);
}
span {
height: px2rem(18px);
font-size: px2rem(18px);
color: #333;
}
}
}
.group-title {
position: absolute;
top: px2rem(80px);
z-index: 202;
display: flex;
flex-direction: row;
padding: px2rem(4px) px2rem(25px) px2rem(16px);
border-bottom: 1px solid #f0f0f0;
&-order {
display: flex;
flex-direction: row;
width: px2rem(325px);
justify-content: space-between;
font-size: px2rem(13px);
&-item {
span {
font-size: px2rem(15px);
color: #333;
}
img {
position: relative;
top: 0;
left: px2rem(-1px);
height: px2rem(11px);
width: px2rem(11px);
}
}
}
}
.active {
color: #449284 !important;
}
.bg-white {
background: #fff;
}
</style>
<template>
<div class="main-body" ref="wrapper">
<section class="home-header">
<div class="home-topMenu">
<YqyHomeHeader :searchFix="searchFix"/>
</div>
<div class="swiper">
<mt-swipe :auto="3000" :speed="speedSwiper" :stopPropagation="prevent">
<mt-swipe-item v-for="(item, index) in listSwiper" :key="index">
<img :src="item.imageUrl" @click="goLinkByswiper(item)">
</mt-swipe-item>
</mt-swipe>
</div>
</section>
<!-- 热门讲师 -->
<YqyHotLecturer/>
<!-- 讲师标题 -->
<YqyLecturerTitle/>
<!-- 讲师选择标题 -->
<YqyLecturerSelect
@selectedType="selectedTypeFromTitle"
:selectedAreaName="selectedTitleTitle"
:selectedLevelName="selectedLevelName"
:selectedDepartName="selectedDepartName"
/>
<!-- 讲师排序 -->
<YqyLecturerOrder ref="lecturerOrderRef" groupTitle="全部讲师" @order="orderAction"/>
<!-- 讲师列表 -->
<YqyTeacherList :parmData="parmDataDoctList"/>
<!-- 讲师选择组件 - 弹框 -->
<YqyLecturerSelectContent ref="lecturerSelContRef" @selectedData="selectedLecturerList"/>
<!--返回顶部-->
<BackTop v-if="searchFix"/>
</div>
</template>
<script>
import { arraySort } from "@/utils/index";
import { Swipe, SwipeItem } from "mint-ui";
import { mapState, mapMutations, mapActions } from "vuex";
import BackTop from "@/components/business/backTop";
import YqyHomeHeader from "@/components/business/yqy-home-header";
import YqyLecturerTitle from "@/components/business/yqy-lecturer-title";
import YqyLecturerSelect from "@/components/business/yqy-lecturer-select";
import YqyLecturerOrder from "@/components/business/yqy-lecturer-order";
import YqyLecturerSelectContent from "@/components/business/yqy-lecturer-select-content";
import YqyHotLecturer from "@/components/business/yqy-hot-lecturer";
import YqyTeacherList from "@/components/business/yqy-teacher-list";
export default {
data() {
return {
showSelectedPage: true,
parmDataDoctList: [],
oldParmDataDoctList: [],
selectedTypeIndex: 1,
prevent: true,
isShowBackTop: false,
speedSwiper: 300,
//轮播图默认数据
listSwiper: [
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
},
{
imageUrl: require("../../images/banner-default.png")
}
],
scrollTimer: null,
scrollTop: 0,
userToken: "",
searchFix: false,
statusBarHeight: 0,
userMobile: "",
isFailSwiper: 1,
selectedTitleTitle: "全国",
selectedAreaName: "全国",
selectedAreaSubName: "",
selectedLevelName: "全部等级",
selectedDepartName: "全部科室"
};
},
components: {
Swipe,
SwipeItem,
BackTop,
YqyHomeHeader,
YqyLecturerTitle,
YqyLecturerSelect,
YqyLecturerOrder,
YqyLecturerSelectContent,
YqyHotLecturer,
YqyTeacherList
},
computed: {
selectedTitle() {
return this.selectedTypeIndex === 1
? "选择地区"
: this.selectedTypeIndex === 2
? "选择等级"
: "选择科室";
}
},
beforeCreate() {},
created() {
let _this = this;
_this.initAll();
},
beforeMount() {},
mounted() {
window.addEventListener("scroll", this.scrollFun);
},
beforeDestroyed() {
window.removeEventListener("scroll", this.scrollFun);
},
watch: {},
methods: {
// 排序
orderAction(orderName, isSortUp) {
let orderType = isSortUp ? -1 : 1;
let orderData = this.oldParmDataDoctList.slice();
if (orderName === "doctorFirstNameChar") {
orderData = arraySort(orderData, isSortUp, orderName, fieldValue => {
return fieldValue.charCodeAt(0);
});
} else if (orderName === "newTime") {
orderData = arraySort(orderData, isSortUp, orderName, fieldValue => {
return new Date(fieldValue.replace(/-/g, "/")).getTime() / 1000;
});
} else {
orderData = arraySort(orderData, isSortUp, orderName);
}
this.parmDataDoctList = orderData;
},
// 选择器组件回调
selectedLecturerList(
paramList,
selectedTitle,
selectedLevelName,
selectedDepartName
) {
this.parmDataDoctList = paramList;
this.oldParmDataDoctList = paramList;
this.orderAction("doctorFirstNameChar", true);
this.$refs.lecturerOrderRef.reset();
this.selectedTitleTitle = selectedTitle;
this.selectedLevelName = selectedLevelName;
this.selectedDepartName = selectedDepartName;
},
// 选择标题组件
selectedTypeFromTitle(index) {
this.selectedTypeIndex = index;
this.$refs.lecturerSelContRef.selectedType(index);
this.$refs.lecturerSelContRef.show();
},
// 请求数据
initAll() {
this.getSwiper();
this.getYqDoctorDataByCD();
},
//轮播图跳转
goLinkByswiper(itemData) {
this.pageBurialPoin({
menuLevel: 1,
menuCode: "m_home",
functionCode: "f_banner",
actionCode: "c_banner",
labelId: itemData.id,
labelValue: itemData.name
});
let paramList = this.setEventByModuleCode(itemData);
rocNative.dispatchEventByModuleCode({
modeCode: itemData.appModuleInfo.code,
jsonString: paramList
});
},
//根据条件获取讲师列表
getYqDoctorDataByCD() {
let _this = this,
para = {
provinceId: 0,
cityId: 0,
countyId: 0,
levelGrade: 0,
departmentId: 0,
setEntry: "headers"
};
this.GET("contents/courseDoctor/v1/getAllTeacher", para).then(res => {
if (res.code == "000000") {
_this.parmDataDoctList = (res.data && res.data.list) || [];
_this.oldParmDataDoctList = (res.data && res.data.list) || [];
_this.orderAction("doctorFirstNameChar", true);
}
});
},
scrollEndFun() {
let scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
// let newCourseTop = document.querySelector('#famus-teacher').offsetTop;
// let fivesTop = document.querySelector('#fiveBoxMenu').offsetTop;
},
// 响应滚动事件,截流处理
scrollFun() {
let isBusy = false;
if (!isBusy) {
isBusy = true;
setTimeout(() => {
let scrollTop =
document.body.scrollTop || document.documentElement.scrollTop;
if (scrollTop > 20) {
this.searchFix = true;
} else {
this.searchFix = false;
}
isBusy = false;
}, 100);
}
},
// 获取轮播图数据
getSwiper() {
let _this = this,
para = {
setEntry: "headers"
};
this.GET("contents/courseDoctorBanner/queryList", para).then(res => {
if (res.code == "000000") {
_this.listSwiper = res.data.bannerList || [];
}
if (_this.listSwiper.length == 0) {
_this.isFailSwiper += 1;
}
_this.isFailSwiper = _this.listSwiper.length == 0 ? 2 : 1;
});
}
}
};
</script>
<style>
/* .mint-popup.mint-popup-top {
height: 100%;
z-index: 2001;
} */
.swiper .mint-swipe-indicators {
right: 6px;
top: 50%;
bottom: inherit;
left: inherit;
width: 10px;
text-align: center;
transform: translateX(0%);
transform: translateY(-50%);
}
.swiper .mint-swipe-item img {
width: 100%;
height: 100%;
}
.swiper .mint-swipe-indicator {
width: 2px;
height: 8px;
background: #fff;
opacity: 0.4;
float: left;
margin-top: 3px;
border-radius: 0;
}
.swiper .is-active {
opacity: 1;
}
/* .mint-loadmore-top .mint-loadmore-text {
font-size: 12px;
} */
/* .banner-container.swiper-container-horizontal > .swiper-pagination-bullets {
width: 2px;
left: inherit;
transform: translateY(-50%);
position: absolute;
right: 6px;
top: 50%;
}
.banner-container.swiper-container-horizontal
> .swiper-pagination-bullets
.swiper-pagination-bullet {
width: 2px;
height: 7px;
background: #fff;
margin: 6px 0 0 0;
float: left;
opacity: 0.4;
}
.banner-container.swiper-container-horizontal
> .swiper-pagination-bullets
.swiper-pagination-bullet-active {
opacity: 1;
} */
/* .banner-pagination {
width: 2px;
z-index: 100;
right: 10px;
top: 10px;
position: absolute;
} */
/* .swiper-pagination-bullet{
} */
.swiper-slide img {
width: 100%;
height: 100%;
}
</style>
<style lang="scss" scoped>
@import "../../style/mixin";
@import "../../style/swiper.min.css";
.banner-container {
height: px2rem(210px);
}
.main-body {
position: relative;
}
// .mint-header {
// background-color: rgba($color: #000000, $alpha: 0);
// }
.font-style {
@include sc(0.6rem, #666);
}
.home-topMenu {
width: 100%;
text-align: center;
top: 0;
position: absolute;
z-index: 10;
}
.home-header {
height: px2rem(234px); // banner图片变高了
// height: px2rem(210px);
.swiper {
height: 100%;
/* @include bis('../../../images//lect-bg.png');*/
}
}
.home-body {
background: #fff;
}
</style>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册