提交 83d71703 编写于 作者: chendeli's avatar chendeli

add

上级 96e90144
...@@ -11,41 +11,48 @@ ...@@ -11,41 +11,48 @@
</div> </div>
</div> </div>
<div>
<div class="couse-list"> <div class="couse-list" v-infinite-scroll="loadMore" infinite-scroll-disabled="loading" infinite-scroll-distance="50">
<div :class="index%2==1 ? 'course-item end-left' : 'course-item'" :key="index" v-for="(item,index) in list"> <div :class="index%2==1 ? 'course-item end-left' : 'course-item'" :key="index" v-for="(item,index) in list">
<div class="course-pic"> <div class="course-pic">
<img :src="item.appIndexCourseUrl" class="pic-tec" /> <img :src="item.appIndexCourseUrl" class="pic-tec" />
<span class="course-tag">{{item.disName}}</span> <span class="course-tag">{{item.disName}}</span>
</div> </div>
<p class="course-txt"> <p class="course-txt">
{{item.name}} {{item.name}}
</p> </p>
<div class="course-opt"> <div class="course-opt">
<span class="opt-info">{{item.showTime == '' ? '' : item.showTime + ' |'}} {{item.joinNum}}人已学</span> <span class="opt-info">{{item.showTime == '' ? '' : item.showTime + ' |'}} {{item.joinNum}}人已学</span>
<span class="opt collect"> <span :class="item.whetherFavors==2?'opt collect':'opt collected'"@click="collectFun(item.whetherFavors,item.id)">
收藏 {{item.whetherFavors==2?'收藏':'已收藏'}}
</span> </span>
<span class="opt collected">
已收藏 </div>
</span>
</div> </div>
</div> </div>
<div class="loading-box" >
<span class="loading-more-txt" v-if="loading">加载中...</span>
<span class="no-more" v-if="noMore">没有更多了~</span>
</div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { Loadmore,Spinner,InfiniteScroll } from 'mint-ui';
export default { export default {
data () { data () {
return { return {
list:[{name:'ahda',disName:'fajhkfhak',joinNum:'111',modifyTime:1534312600000,showTime:''}], list:[],
pageNo:1, pageNo:1,
pageSize:10, pageSize:10,
title:'为您推荐', title:'为您推荐',
isCollected:'',
allLoaded:true,
loading:false,
noMore:false,
mockUrl:'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/39' mockUrl:'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/39'
} }
}, },
...@@ -58,19 +65,78 @@ export default { ...@@ -58,19 +65,78 @@ export default {
}, },
mounted(){ mounted(){
this.getData(); this.getData();
}, },
methods: { methods: {
//滑动加载更多
loadMore(){
let _this = this,
parm = {
pageNo:_this.pageNo,
pageSize:_this.pageSize,
token:'EA67293E35C249C1832583F7AD2669EC',
setEntry: 'headers'
}
this.loading = true;
_this.GET('contents/courses/recommendCourseList',parm).then(function(res){
if(res.code === '000000'){
if(res.data.length == 0){
_this.loading = false;
_this.noMore = true;
}
setTimeout(()=>{
_this.list = [..._this.list ,...res.data] || [];
_this.pageNo++;
_this.loading = false;
},2500)
}
})
},
//收藏 取消收藏
collectFun(status,id){
let _this = this,
parm = {
token:this.token,
type:status,
courseId:id,
setEntry: 'headers'
}
_this.POST('favors',parm).then(function(res){
if(res.code === '000000'){
status = status == 1 ? 2 : 1;
_this.handelData(id,status);
}
})
},
handelData(id,status){
let d = this.list;
for(let i=0;i<d.length;i++){
if(id == d[i].id){
d[i].whetherFavors = status;
}
}
},
getData(){ getData(){
let _this = this, let _this = this,
parm = { parm = {
pageNo:_this.pageNo, pageNo:_this.pageNo,
pageSize:_this.pageSize, pageSize:_this.pageSize,
token:'F08EDE2622B34953B970E3FD686F5064', token:'EA67293E35C249C1832583F7AD2669EC',
setEntry: 'headers' setEntry: 'headers'
} }
_this.API_GET(_this.mockUrl+'contents/courses/recommendCourseList',parm).then(function(res){ _this.GET('contents/courses/recommendCourseList',parm).then(function(res){
if(res.code === '000000'){ if(res.code === '000000'){
_this.list = res.data || []; _this.list = res.data || [];
} }
...@@ -93,18 +159,28 @@ export default { ...@@ -93,18 +159,28 @@ export default {
.couse-list{ .couse-list{
overflow: hidden; overflow: hidden;
} }
.cource-teach{ .cource-teach{
padding:0 px2rem(15px); padding:0 px2rem(15px);
} }
.cource-header{ .cource-header{
margin: 0 0 px2rem(21px) 0; margin: 0 0 px2rem(11px) 0;
overflow: hidden; overflow: hidden;
height: px2rem(40px); height: px2rem(40px);
.font-title{ .font-title{
line-height: px2rem(40px); line-height: px2rem(40px);
} }
} }
.loading-box{
font-size: px2rem(16px);
padding:px2rem(10px) 0;
text-align: center;
span{
color:#999;
}
}
.change-part{ .change-part{
margin-top:px2rem(10px); margin-top:px2rem(10px);
float: right; float: right;
...@@ -144,10 +220,13 @@ export default { ...@@ -144,10 +220,13 @@ export default {
.course-pic{ .course-pic{
width:px2rem(170px); width:px2rem(170px);
height:px2rem(95px); height:px2rem(95px);
border-radius: px2rem(3px);
position: relative; position: relative;
.pic-tec{ .pic-tec{
width: 100%; width: 100%;
height: 100%;
display: block; display: block;
border-radius: px2rem(3px);
} }
.course-tag{ .course-tag{
position: absolute; position: absolute;
...@@ -166,6 +245,7 @@ export default { ...@@ -166,6 +245,7 @@ export default {
margin-top: px2rem(5px); margin-top: px2rem(5px);
font-size: px2rem(14px); font-size: px2rem(14px);
line-height: px2rem(19px); line-height: px2rem(19px);
height: px2rem(38px);
color: #333; color: #333;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
...@@ -174,7 +254,8 @@ export default { ...@@ -174,7 +254,8 @@ export default {
} }
.course-opt{ .course-opt{
font-size: px2rem(12px); font-size: px2rem(12px);
margin-top: px2rem(6px); position: relative;
/*margin-top: px2rem(6px);*/
.opt-info{ .opt-info{
color:#999; color:#999;
} }
...@@ -183,7 +264,9 @@ export default { ...@@ -183,7 +264,9 @@ export default {
height: px2rem(18px); height: px2rem(18px);
line-height: px2rem(18px); line-height: px2rem(18px);
padding:0 px2rem(4px); padding:0 px2rem(4px);
position: absolute;
right: 0;
top:0;
} }
.collect{ .collect{
background: #F7F8F9; background: #F7F8F9;
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="tea-listbox"> <div class="tea-listbox">
<div class="tea-item" :key="index" v-for="(item,index) in hotTeachers"> <div class="tea-item" :key="index" v-for="(item,index) in hotTeachers">
<div class="head-pic"> <div class="head-pic">
<img class="tea-itemimg" src="../../images/552064153@2x.png"/> <img class="tea-itemimg" :src="item.avatarImageUrl"/>
</div> </div>
<span class="tea-itemname">{{item.name}}</span> <span class="tea-itemname">{{item.name}}</span>
</div> </div>
...@@ -19,57 +19,39 @@ ...@@ -19,57 +19,39 @@
<script> <script>
export default { export default {
data(){
return {
title:'云鹊名师',
hotTeachers:[
{
"id": 381,
"name": "宣淼01",
"avatarImageUrl": "https://test-file.yunqueyi.com/image/jpeg/2018/07/26/20180726162641165-6c6f6a38.jpg",
"appImageUrl": "https://test-file.yunqueyi.com/image/jpeg/2018/06/23/20180623152219485-d71ef663.jpg"
}
],
pageNo:1,
pageSize:10
}
},
mounted(){
this.getData();
},
methods: {
getData(){
let para = {
props: { pageNo:this.pageNo,
title:{ pageSize:this.pageSize,
type:String,
default:'云鹊名师'
},
hotTeachers: {
type: Array,
default:()=>{
return [
{
img: '../../images/552064153@2x.png',
name: '蒋立新'
},
{
img: '../../images/head-test.png',
name: '蒋立新'
},
{
img: '../../images/head-test.png',
name: '蒋立新'
},
{
img: '../../images/head-test.png',
name: '蒋立新'
},
{
img: '../../images/head-test.png',
name: '蒋立新'
},
{
img: '../../images/head-test.png',
name: '蒋立新'
},
{
img: '../../images/head-test.png',
name: '蒋立新'
}
]
} }
this.GET('contents/HomeLecturer/LecturerInformation', para).then(res => {
if(res.code == '000000'){
}
})
} }
},
data () {
return {
} }
},
mounted(){
},
methods: {
}
} }
</script> </script>
......
...@@ -75,24 +75,27 @@ html,body{ ...@@ -75,24 +75,27 @@ html,body{
.banner-item{ .banner-item{
width: px2rem(50px); width: px2rem(50px);
display: inline-block; display: inline-block;
position: relative;
margin-right: px2rem(18px); margin-right: px2rem(18px);
text-align: center; text-align: center;
} }
.item-end{ .item-end{
margin-right: 0 margin-right: 0
} }
.banner-img{ .banner-img{
min-width: px2rem(22px); width: px2rem(22px);
max-height: px2rem(20px); height: px2rem(22px);
margin: 0 auto; margin: 0 auto;
display: block; display:block;
} }
.banner-text{ .banner-text{
display: inline-block; margin-top:px2rem(5px);
display: block;
position: relative; position: relative;
font-size: px2rem(12px); font-size: px2rem(12px);
text-align: center; text-align: center;
width: 100%;
} }
.banner-text i{ .banner-text i{
width: px2rem(4px); width: px2rem(4px);
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<div class="keep-learn"> <div class="keep-learn">
<div v-show="isShow" class="border-bottom space-between keep-learnbox"> <div v-show="isShow" class="border-bottom space-between keep-learnbox">
<div class="learning-txt"> <div class="learning-txt">
<div class="gray keepon-title">{{resourceData.message}}</div> <div class="gray keepon-title">{{parmObj.name}}</div>
<div> <div>
<span class="gray fs24 keepon-right">已学习:{{resourceData.week}}</span> <span class="gray fs24 keepon-right">已学习{{parmObj.day}}</span>
<span class="gray fs24 keepon-right">剩余:{{resourceData.Remaining}}%</span> <span class="gray fs24 keepon-right">剩余{{parmObj.remanentCourseNum}}%</span>
<span class="gray fs24 continue-study" @click="continueStudy">继续学习></span> <span class="gray fs24 continue-study" @click="continueStudy">继续学习></span>
</div> </div>
...@@ -21,44 +21,40 @@ ...@@ -21,44 +21,40 @@
<script> <script>
export default { export default {
name: 'YqyHomeKeepon', name: 'YqyHomeKeepon',
components: { data(){
},
props: {
resourceData: {
type: Object,
default:()=>{
return {
message: '动态血压监测与高血压精准治疗该如何进行',
week: 2,
Remaining: 2
}
}
}
},
watch: {
},
data () {
return { return {
isShow: true isShow: true,
parmObj:{}
} }
}, },
mounted(){ mounted(){
this.getData();
}, },
methods: { methods: {
continueStudy(){ continueStudy(){
console.log('continueStudy');
this.$emit('continueStudy')
}, },
cancel(){ cancel(){
console.log('cancel');
this.isShow = false; },
this.$emit('cancel') getData(){
let _this = this,
parm = {
token:'EA67293E35C249C1832583F7AD2669EC',
setEntry: 'headers'
}
_this.GET('contents/courses/continueLearningCourse',parm).then(function(res){
if(res.code === '000000'){
_this.parmObj = res.data && res.data.continueLearningCourseModel || {};
}
})
} }
} }
} }
</script> </script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../../style/mixin.scss'; @import '../../style/mixin.scss';
@import '../../style/global.scss'; @import '../../style/global.scss';
......
<template> <template>
<transition name="evluatbox"> <transition :name="isShow ? 'evluatbox':''">
<div class="top-evaluat" v-show="isShow"> <div class="top-evaluat" v-if="isShow">
<div class="evaluat-info"> <div class="evaluat-info">
<span class="evaluat-icon"> <span class="evaluat-icon">
<img src='../../images/552064153@2x.png'/> <img src='../../images/552064153@2x.png'/>
</span> </span>
<span class="evaluat-persent">您的学习速度战胜了本院内36%的医生</span> <span class="evaluat-persent">您的学习速度战胜了本院内{{setStyle(parmObj.gradePKToHospital)}}%的医生</span>
</div> </div>
<div class="evaluat-part"> <div class="evaluat-part">
<span class="part-throw"><img src='../../images/grey-throw.png'/></span> <span class="part-throw"><img src='../../images/grey-throw.png'/></span>
<div class="part-item part-finish"> <div class="part-item part-finish">
<div class="item-num"> <div class="item-num">
<span class="fs16">101</span><span class="fs15">/</span><span class="fs14">300</span> <span class="fs16">{{parmObj.courseOverNumOfSelf}}</span><span class="fs15">/</span><span class="fs14">{{parmObj.courseOverNumOfHospital}}</span>
</div> </div>
<div class="item-persent"> <div class="item-persent">
<span></span> <span :style="'width:'+setStyle(parmObj.courseOverNumOfSelf/parmObj.courseOverNumOfHospital)+'%'"></span>
</div> </div>
<div class="item-txt">已完成课程</div> <div class="item-txt">已完成课程</div>
</div> </div>
<div class="part-item part-pass"> <div class="part-item part-pass">
<div class="item-num"> <div class="item-num">
<span class="fs16">101</span><span class="fs15">/</span><span class="fs14">300</span> <span class="fs16">{{parmObj.examOverNumOfSelf}}</span><span class="fs15">/</span><span class="fs14">{{parmObj.examOverNumOfHospital}}</span>
</div> </div>
<div class="item-persent"> <div class="item-persent">
<span></span> <span :style="'width:'+setStyle(parmObj.examOverNumOfSelf/parmObj.examOverNumOfHospital)+'%'"></span>
</div> </div>
<div class="item-txt">已通过考试</div> <div class="item-txt">已通过考试</div>
</div> </div>
<div class="part-item part-get"> <div class="part-item part-get">
<div class="item-num"> <div class="item-num">
<span class="fs16">101</span><span class="fs15">/</span><span class="fs14">300</span> <span class="fs16">{{parmObj.certificateAcquireNumOfSelf}}</span><span class="fs15">/</span><span class="fs14">{{parmObj.certificateAcquireNumOfHospital}}</span>
</div> </div>
<div class="item-persent"> <div class="item-persent">
<span></span> <span :style="'width:'+setStyle(parmObj.certificateAcquireNumOfSelf/parmObj.certificateAcquireNumOfHospital)+'%'"></span>
</div> </div>
<div class="item-txt">已获得证书</div> <div class="item-txt">已获得证书</div>
</div> </div>
...@@ -58,31 +58,52 @@ export default { ...@@ -58,31 +58,52 @@ export default {
}, },
data () { data () {
return { return {
isShow:true, isShow:false,
mockUrl:'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/39/' parmObj:{}
//mockUrl:'http://sosoapi.yunqueyi.com/sosoapi-web/pass/mock/39/'
} }
}, },
mounted(){ mounted(){
this.isShow = this.isShowEvluat;
this.getData(); this.getData();
}, },
methods: { methods: {
setStyle:function(num){
var str = '';
if(num == NaN){
return 0
}
num = num*100 + '';
if(num.indexOf(".")>-1){
num = num + '';
str = num.substring(0,num.indexOf(".") + 3);
}else{
str = num;
}
return str;
},
getData:function(){ getData:function(){
let para = { let _this = this, para = {
sysCode: 27, sysCode: 27,
token: this.token, token: 'ACEEFAE765AA4D9EB68BE80735845BF9',
setEntry: 'headers' setEntry: 'headers'
} }
this.GET('analysis/activityDetail', para).then(res => { this.GET('contents/gp/v1/homepage', para).then(res => {
if(res.code == '000000'){ if(res.code == '000000'){
_this.parmObj = res.data || {};
_this.isShow = _this.parmObj.showFlag;
let isPullIndex = _this.isShow ? '1' : '2';
_this.$emit('evluatFun',{isPull:isPullIndex});
} }
}) })
}, },
toggleFun:function(){ toggleFun:function(){
this.$emit('evluatFun',{isPull:false}); this.$emit('evluatFun',{isPull:'0'});
this.isShow = !this.isShow; this.isShow = !this.isShow;
} }
} }
...@@ -263,8 +284,8 @@ export default { ...@@ -263,8 +284,8 @@ export default {
span{ span{
position: absolute; position: absolute;
top:-(px2rem(1px)); top:-(px2rem(1px));
left: -(px2rem(1px)); left: 0;
width:px2rem(30px); width:0;
display: inline-block; display: inline-block;
background: -webkit-linear-gradient(left, #8FC1E6, #5890DD); background: -webkit-linear-gradient(left, #8FC1E6, #5890DD);
background: -o-linear-gradient(right, #8FC1E6, #5890DD); background: -o-linear-gradient(right, #8FC1E6, #5890DD);
...@@ -290,10 +311,10 @@ export default { ...@@ -290,10 +311,10 @@ export default {
border-color: #CAA861; border-color: #CAA861;
span{ span{
background: -webkit-linear-gradient(left, #CCAB65, #F6DDA9); background: -webkit-linear-gradient(left, #F6DDA9,#CCAB65);
background: -o-linear-gradient(right, #CCAB65, #F6DDA9); background: -o-linear-gradient(right, #F6DDA9,#CCAB65);
background: -moz-linear-gradient(right,#CCAB65, #F6DDA9); background: -moz-linear-gradient(right,#F6DDA9,#CCAB65);
background: linear-gradient(to right, #CCAB65, #F6DDA9); background: linear-gradient(to right, #F6DDA9,#CCAB65);
box-shadow: 0 px2rem(2px) px2rem(3px) RGBA(207, 174, 106, 0.3); box-shadow: 0 px2rem(2px) px2rem(3px) RGBA(207, 174, 106, 0.3);
} }
......
...@@ -158,8 +158,8 @@ export function getHostnameAndPort() { ...@@ -158,8 +158,8 @@ export function getHostnameAndPort() {
} }
// test1地址 // test1地址
const baseUrl = 'http://test1-sc.yunqueyi.com/' const baseUrl = 'http://10.177.10.238:10201/'||'http://test1-sc.yunqueyi.com/'
const apiUrl = 'http://test1-api.yunqueyi.com/' const apiUrl = 'http://10.177.10.238:10201' || 'http://test1-api.yunqueyi.com/'
// // uat地址 // // uat地址
// const baseUrl = 'http://uat-sc.yunqueyi.com/' // const baseUrl = 'http://uat-sc.yunqueyi.com/'
...@@ -172,11 +172,13 @@ const apiUrl = 'http://test1-api.yunqueyi.com/' ...@@ -172,11 +172,13 @@ const apiUrl = 'http://test1-api.yunqueyi.com/'
// 为每个URL添加应用校验密钥 // 为每个URL添加应用校验密钥
export function getBaseUrl(url) { export function getBaseUrl(url) {
//return baseUrl + url
return url return baseUrl + url
} }
export function getApiUrl(url) { export function getApiUrl(url) {
//return apiUrl + url
return url return apiUrl + url
} }
<template> <template>
<section :class="isBodyPull?'font-style pull-down':'font-style pull-up'"> <section :class="isIntStyle">
<!--展开收起学习评价--> <!--展开收起学习评价-->
<YqyTopEvaluat :isShowEvluat="isShowEvluat" v-if="isShowEvluat" v-on:evluatFun="getEluatFun"/> <YqyTopEvaluat :isShowEvluat="isShowEvluat" v-if="isShowEvluat" v-on:evluatFun="getEluatFun"/>
...@@ -91,7 +91,8 @@ export default { ...@@ -91,7 +91,8 @@ export default {
isFixed:false, isFixed:false,
isShowBackTop:false, isShowBackTop:false,
isShowEvluat:true,//是否显示下拉 isShowEvluat:true,//是否显示下拉
isBodyPull:true, isBodyPull:false,
isIntStyle:'',
} }
}, },
components:{ components:{
...@@ -149,34 +150,41 @@ export default { ...@@ -149,34 +150,41 @@ export default {
}, },
getEluatFun(obj){ getEluatFun(obj){
this.isBodyPull = false; console.log(obj);
if(obj.isPull == '1'){
this.isIntStyle = 'font-style pull-down'
}else if(obj.isPull == '2'){
this.isIntStyle = ''
}else if(obj.isPull == '0'){
this.isIntStyle = 'font-style pull-up'
}
}, },
init() { init() {
this.API_GET('contents/homeButton/msg', {}).then( res => { // this.API_GET('contents/homeButton/msg', {}).then( res => {
logger.debug(res) // logger.debug(res)
this.$log.debug(res) // this.$log.debug(res)
}) // })
console.log(this); // //console.log(this);
let para = { // let para = {
sysCode: 27, // sysCode: 27,
token: this.token, // token: this.token,
setEntry: 'headers' // setEntry: 'headers'
} // }
this.GET('analysis/activityDetail', para).then( res => { // this.GET('analysis/activityDetail', para).then( res => {
logger.debug(res) // logger.debug(res)
}) // })
para = { // para = {
sysCode: 27, // sysCode: 27,
rankingType: 27, // rankingType: 27,
flag: 1, // flag: 1,
token: this.token, // token: this.token,
setEntry: 'headers' // setEntry: 'headers'
} // }
this.GET('exams/rankings', para).then( res => { // this.GET('exams/rankings', para).then( res => {
logger.debug(res) // logger.debug(res)
}) // })
}, },
pushView : function(page){ pushView : function(page){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册