提交 baed8219 编写于 作者: liran's avatar liran

学习情况对比表格六种样式组件,添加部分数据逻辑

上级 2d963f95
<template>
<div>
<!-- 类型4:常规样式:左三右三 -->
<div v-if="type==4" class="rank-table-content">
<!-- 我的 -->
<div class="my-rank-content content">
<div class="item" v-for="(value,index) in cmpTableData.self" :key="index">
<div class="normal" v-if="!value.isMessage">
<span class="num">{{index+1}}</span>
<span class="text">{{value.name}}</span>
</div>
<div class="special" v-if="value.isMessage">
{{value.name}}
</div>
</div>
</div>
<!-- 学院/省内/国内 -->
<div class="other-rank-content content">
<div class="item" v-for="(value,index) in cmpTableData.other" :key="index">
<div class="normal">
<span class="num">{{index+1}}</span>
<span class="text">{{value.name}}</span>
</div>
</div>
</div>
</div>
<!-- 类型5:左二右三,类型6:左一右三 -->
<div v-if="type==5||type==6" class="rank-table-content">
<!-- 我的 -->
<div class="my-rank-content content">
<!-- 左侧为两个:一小一大 -->
<div v-if="type==5" class="item">
<div class="normal">
<span class="num">1</span>
<span class="text">{{cmpTableData.self[0].name}}</span>
</div>
</div>
<div v-if="type==5" class="multi-row double-row">{{cmpTableData.self[1].name}}</div>
<!-- 左侧只有一个框 -->
<div v-if="type==6" class="multi-row triple-row">{{cmpTableData.self[0].name}}</div>
</div>
<!-- 学院/省内/国内 -->
<div class="other-rank-content content">
<div class="item" v-for="(value,index) in cmpTableData.other" :key="index">
<div class="normal">
<span class="num">{{index+1}}</span>
<span class="text">{{value.name}}</span>
</div>
</div>
</div>
</div>
<!-- 类型1:左二右二下一,类型2:左一右一下一 -->
<div v-if="type==1||type==2||type==3">
<!-- 上 -->
<div class="rank-table-content" v-if="type==1||type==2">
<!-- 我的 -->
<div class="my-rank-content content">
<div class="item" v-for="(value,index) in cmpTableData.self" :key="index">
<div class="normal" v-if="!value.isMessage">
<span class="num">{{index+1}}</span>
<span class="text">{{value.name}}</span>
</div>
<div class="special" v-if="value.isMessage">
{{value.name}}
</div>
</div>
</div>
<!-- 学院/省内/国内 -->
<div class="other-rank-content content">
<div class="item" v-for="(value,index) in cmpTableData.other" :key="index">
<div class="normal">
<span class="num">{{index+1}}</span>
<span class="text">{{value.name}}</span>
</div>
</div>
</div>
</div>
<!-- 下 -->
<div v-if="type==1" class="multi-col single-row special-message">
{{cmpTableData.commonMessage}}
</div>
<div v-if="type==2" class="multi-col double-row special-message">
{{cmpTableData.commonMessage}}
</div>
<div v-if="type==3" class="multi-col triple-row special-message">
{{cmpTableData.commonMessage}}
</div>
</div>
</div>
</template>
<script>
export default {
name:'CompareTable',
created(){
console.log(this.cmpTableData);
},
props:{
cmpTableData:{
type:Object,
default:{
self:[
{isMessage:false,name:'治疗药物检测的临床意义'},
{isMessage:false,name:'遗传性耳聋诊断与咨询遗传性耳聋诊断与咨询'},
{isMessage:true,name:'您获得的证书太少了,赶紧去考证吧!'}
],
other:[
{name:'聚集糖尿病治疗与管理'},
{name:'治疗药物检测的临床意义是什么'},
{name:'治疗药物检测的临床意义'}
]
}
},
type:{
type:Number,
default:4//type===4时为正常的样式
}
},
}
</script>
<style lang="scss" scoped>
@import 'src/style/mixin';
/*公用的样式*/
.rank-table-content{
display:flex;
display:-webkit-flex;
flex-direction:row;
}
.rank-table-content .content.my-rank-content{
width:px2rem(157.5px);//包含右边的border
}
.rank-table-content .content.other-rank-content{
width:px2rem(157px);
}
.content.my-rank-content .item{
border-top:px2rem(0.5px) solid rgb(236,238,241);
border-right:px2rem(0.5px) solid rgb(236,238,241);
}
.content.other-rank-content .item{
border-top:px2rem(0.5px) solid rgb(236,238,241);
}
.rank-table-content .content .item{
height:px2rem(58px);
display:flex;display:-webkit-flex;justify-content:center;align-items:center;
.normal span{
font-size:px2rem(12px);
display:inline-block;
vertical-align:middle;//行内块垂直居中
}
.normal span.num{
width:px2rem(13px);
height:px2rem(13px);
line-height:px2rem(13px);
text-align:center;
background-color: rgb(202,168,97);
border-radius: px2rem(6.5px);
color:#fff;
font-weight:400;
}
.normal span.text{
width:px2rem(114px);
line-height:px2rem(16px);
text-align:center;
// padding-left:px2rem(10px);
font-weight:400;
}
.special{
font-size:px2rem(12px);
text-align:center;
padding:px2rem(20px);
color:#999;
}
}
//多行公共代码:type5/type6/
.rank-table-content .content .multi-row{
display:table-cell;
vertical-align: middle;
font-size:px2rem(12px);
text-align:center;
padding:0 px2rem(20px);
color:#999;
}
//type5
.rank-table-content .my-rank-content.content .multi-row.double-row{
height:px2rem(116.5px);//58*2+0.5
border-top:px2rem(0.5px) solid rgb(236,238,241);
border-right:px2rem(0.5px) solid rgb(236,238,241);
}
//type6
.rank-table-content .my-rank-content.content .multi-row.triple-row{
height:px2rem(175px);//58*2+0.5
border-top:px2rem(0.5px) solid rgb(236,238,241);
border-right:px2rem(0.5px) solid rgb(236,238,241);
}
//多行公共代码:type1/type2/type3
.special-message{
display:table-cell;
vertical-align: middle;
font-size:px2rem(12px);
text-align:center;
padding:0 px2rem(20px);
color:#999;
}
.multi-col{
border-top:px2rem(0.5px) solid rgb(236,238,241);
width:px2rem(315px);
}
.multi-col.single-row{
height:px2rem(58px);
}
.multi-col.double-row{
height:px2rem(116.5px);
}
.multi-col.triple-row{
height:px2rem(175px);
}
</style>
......@@ -72,43 +72,28 @@
<div class="study-conditon-chart" id="studyCondition" style="width:100%;height:400px;">
</div>
<!-- 对比 -->
<div class="study-condition-cmp">
<!-- 新的对比 -->
<div class="study-cmp">
<!-- 头部tab -->
<header>
<div class="title">我的Top3</div>
<div class="title">院内Top3</div>
<div class="tab-name" :class="{active:currentStudyTab===0}" @click="toggleStudyTab(0)">完成课程</div>
<div class="tab-name" :class="{active:currentStudyTab===1}" @click="toggleStudyTab(1)">完成考试</div>
<div class="tab-name" :class="{active:currentStudyTab===2}" @click="toggleStudyTab(2)">获得证书</div>
</header>
<div class="rank">
<div class="rank-sec my-rank">
<div class="rank-item">
<div class="rank-num">1</div>
<div class="rank-name">治疗药物检测的临床意义</div>
</div>
<div class="rank-item">
<div class="rank-num">2</div>
<div class="rank-name">治疗药物检测的临床意义</div>
</div>
<div class="rank-item">
<div class="rank-num">3</div>
<div class="rank-name">治疗药物检测的临床意义</div>
</div>
</div>
<div class="rank-sec all-rank">
<div class="rank-item">
<div class="rank-num">1</div>
<div class="rank-name">聚集糖尿病治疗与管理</div>
</div>
<div class="rank-item">
<div class="rank-num">2</div>
<div class="rank-name">聚集糖尿病治疗与管理</div>
</div>
<div class="rank-item">
<div class="rank-num">3</div>
<div class="rank-name">治疗药物检测的临床意义</div>
</div>
</div>
<!--表格-->
<div class="rank-table">
<!-- header -->
<header>
<div class="rank-name my-rank">我的最近Top3</div>
<div class="rank-name other-rank">院内Top3</div>
</header>
<!-- 测试组件 -->
<compare-table :cmp-table-data=cmpTableDataTest3 :type=type></compare-table>
</div>
</div>
</div>
<!-- 为你推荐 -->
<div class="recommend-for-you">
......@@ -134,8 +119,7 @@
tag-position="right"
:courses="courseList"></course-list>
<!-- 个人信息 -->
<personal-information></personal-information>
</div>
</div>
......@@ -146,6 +130,7 @@
<script>
// import RecommendList from './RecommendList.vue'
// import RecommendListTest from './RecommendListTest.vue'
import CompareTable from './CompareTable.vue'
import RecommendList from 'src/components/common/yqy/RecommendList.vue'
import CourseList from 'src/components/common/yqy/CourseList.vue'
import PersonalInformation from 'src/components/common/yqy/PersonalInformation.vue'
......@@ -157,13 +142,83 @@ export default {
// RecommendList,
RecommendList,
CourseList,
PersonalInformation
PersonalInformation,
CompareTable
},
data(){
return{
//记录全国/全省/本院tab ----0/1/2
currentTab:0,
//编辑的数据
//记录课程/考试/证书 ----0/1/2
currentStudyTab:0,
//记录准确的 ‘全国-课程’这种组合 ----00/01/02/10/11/12/20/21/22
currentChosen:'00',
//共六种表格样式-----4:normal,
type:3,
//提示信息列表,
messageList:{
institute:{
course:{
messageA:'您完成的课程太少了,赶紧去学习喔',
messageB:'您和您所在的医院已完成的课程数太少了,赶紧去学习哦!'
},
exam:{
messageA:'您完成的考试太少了,去测试一下自己的水平吧',
messageB:'您和您所在的医院已完成的考试太少了,赶紧去学习哦!'
},
certificate:{
messageA:'您获得的证书太少了,赶紧去考证吧!',
messageB:'您和您所在的医院已获得的证书不足3张,赶紧去学习哦!'
}
},
province:{
course:{
messageA:'您完成的课程太少了,赶紧去学习喔',
messageB:'您和您所在的省已完成的课程数太少了,赶紧去学习哦!'
},
exam:{
messageA:'您完成的考试太少了,去测试一下自己的水平吧',
messageB:'您和您所在省已完成的考试太少了,赶紧去学习哦!'
},
certificate:{
messageA:'您获得的证书太少了,赶紧去考证吧!',
messageB:'您和您所在的省已获得的证书不足3张,赶紧去学习哦!'
}
},
country:{
course:{
messageA:'您完成的课程太少了,赶紧去学习喔',
messageB:''
},
exam:{
messageA:'您完成的考试太少了,去测试一下自己的水平吧',
messageB:''
},
certificate:{
messageA:'您获得的证书太少了,赶紧去考证吧!',
messageB:''
}
}
},
//图表数据
//30天成长
growPathDataSet: [
['content','我的学习时长','平均学习时长','我的学习课程','平均学习课程'],
['10.6','15','22','2','4'],
['10.7','15','24','2','4'],
['10.8','17','28','2','4'],
['10.9','15','18','2','4'],
['今天','15','20','2','4']
],
//学习情况
studyConditionDataSet: [
['content', '我的', '本院平均'],
['完成课程', 56,69],
['完成考试', 23,45],
['获得证书', 8,20],
],
OptionGrowPath:{},//30天成长路径///////
OptionStudyCondition:{},
//为你推荐数据:
......@@ -171,8 +226,85 @@ export default {
recommendList:[],
recommendListTest:[],
courseList:[],
personalInfo:{"name":"王小呆","date":"2016.3.23","days":555,"imageUrl":"https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/basicBg.png"}
personalInfo:{"name":"王小呆","date":"2016.3.23","days":555,"imageUrl":"https://pica-pro.oss-cn-shanghai.aliyuncs.com/gpranking/basicBg.png"},
cmpTableHeader:{institute:"院内",province:"省内",country:"国内"},
cmpTableData:{
self:[
{isMessage:false,name:'治疗药物检测的临床意义'},
{isMessage:false,name:'遗传性耳聋诊断与咨询遗传性耳聋诊断与咨询'},
{isMessage:true,name:'您获得的证书太少了,赶紧去考证吧!'}
],
other:[
{name:'聚集糖尿病治疗与管理'},
{name:'治疗药物检测的临床意义是什么'},
{name:'治疗药物检测的临床意义'}
]
},
cmpTableDataTest4:{
self:[
{isMessage:false,name:'治疗药物检测的临床意义'},
{isMessage:false,name:'遗传性耳聋诊断与咨询遗传性耳聋诊断与咨询'},
{isMessage:true,name:'您获得的证书太少了,赶紧去考证吧!'}
],
other:[
{name:'聚集糖尿病治疗与管理'},
{name:'治疗药物检测的临床意义是什么'},
{name:'治疗药物检测的临床意义'}
]
},
cmpTableDataTest5:{
self:[
{isMessage:false,name:'治疗药物检测的临床意义'},
{isMessage:true,name:'您获得的考试太少了,赶紧去考证吧!'}
],
other:[
{name:'聚集糖尿病治疗与管理'},
{name:'治疗药物检测的临床意义是什么'},
{name:'治疗药物检测的临床意义'}
]
},
cmpTableDataTest6:{
self:[
{isMessage:false,name:'您获得的考试太少了,赶紧去考证吧!'},
{isMessage:false,name:'遗传性耳聋诊断与咨询遗传性耳聋诊断与咨询'},
{isMessage:true,name:'您和您的学院,获得的证书太少了,快去学习吧'},
],
other:[
{name:'聚集糖尿病治疗与管理'},
{name:'治疗药物检测的临床意义是什么'},
{isMessage:true,name:'您和您的学院,获得的证书太少了,快去学习吧'},
]
},
cmpTableDataTest1:{
self:[
{isMessage:false,name:'治疗药物检测的临床意义'},
{isMessage:false,name:'治疗药物检测的临床意义'},
// {isMessage:true,name:'暂无'},
// {isMessage:true,name:'暂无'}
],
other:[
{name:'聚集糖尿病治疗与管理'},
{name:'治疗药物检测的临床意义是什么'},
],
commonMessage:'您和您的学院,获得的证书太少了,快去学习吧'
},
cmpTableDataTest2:{
self:[
// {isMessage:false,name:'治疗药物检测的临床意义'},
{isMessage:true,name:'暂无'},
// {isMessage:true,name:'暂无'}
],
other:[
{name:'聚集糖尿病治疗与管理'},
],
commonMessage:'您和您的学院,获得的证书太少了,快去学习吧'
},
cmpTableDataTest3:{
commonMessage:'您和您所在地,获得的证书太少了,快去学习吧'
}
}
},
mounted(){
......@@ -229,14 +361,7 @@ export default {
},
dataset: {
//提供一份数据
source: [
['content','我的学习时长','平均学习时长','我的学习课程','平均学习课程'],
['10.6','15','22','2','4'],
['10.7','15','24','2','4'],
['10.8','17','28','2','4'],
['10.9','15','18','2','4'],
['今天','15','20','2','4']
]
source: this.growPathDataSet,
},
grid:{
left:0,
......@@ -344,14 +469,7 @@ export default {
tooltip: {},
dataset: {
//提供一份数据
source: [
['content', '我的', '本院平均'],
['在学课程', 12, 10],
['完成课程', 56,62],
['完成考试', 23,45],
['获得证书', 8,20],
['参与项目', 4,6]//test
]
source:this.studyConditionDataSet,
},
grid:{
show:false,
......@@ -387,10 +505,10 @@ export default {
// length:10
},
data:[
{value:'在学课程',
textStyle:{fontweight:'bold',color:'#000'}},
'完成课程', '完成考试','获得证书', '参与项目'],
// data:[
// {value:'课程',
// textStyle:{fontweight:'bold',color:'#000'}},
// '完成课程', '完成考试','获得证书', '参与项目'],
......@@ -456,6 +574,15 @@ export default {
},
toggleTab:function(tab){
this.currentTab=tab;
this.currentChosen=`${this.currentTab}${this.currentStudyTab}`;
console.log(this.currentTab,this.currentStudyTab,this.currentChosen);
//将相应的数据分别给
},
toggleStudyTab:function(tab){
this.currentStudyTab=tab;
this.currentChosen=`${this.currentTab}${this.currentStudyTab}`;
console.log(this.currentTab,this.currentStudyTab,this.currentChosen)
},
generateGrowPathChart:function(){
......@@ -605,85 +732,130 @@ export default {
width:100%;
height:px2rem(282px);/*(33+532)/2*/
}
/*学习情况*/
.study-condition-cmp{
width:100%;
height:px2rem(239px);
background-color:rgb(234,241,255);
///////新设计的学习情况
.study-cmp{
width:px2rem(345px);
// min-height:px2rem(254.5px);
min-height:px2rem(284.5px);
box-shadow:0px 10px 30px 0px rgba(0,57,47,0.05);
border-radius:10px;
}
.study-condition-cmp>header{
.study-cmp>header{
height:px2rem(36.5px);
display:flex;
display: -webkit-flex;
display:-webkit-flex;
flex-direction:row;
height:px2rem(37.5px);
line-height:px2rem(37.5px);
font-size:px2rem(12px);
font-weight: 400;
}
.study-condition-cmp>header>.title{
width:50%;
.study-cmp .tab-name{
width:px2rem(115px);
height:px2rem(36.5px);
line-height:px2rem(36.5px);
font-size:px2rem(12px);
text-align:center;
background-color:#f5f5f5;
}
.study-cmp .tab-name:nth-child(1),.study-cmp .tab-name:nth-child(2){
border-right: px2rem(0.5px) solid #e7e7e7;
}
.study-cmp .tab-name.active{
background-color:#fff;
}
.rank-table{
margin:px2rem(21.5px) px2rem(15px) px2rem(28px) px2rem(15px);//上右下左
border:px2rem(0.5px) solid rgb(236,238,241);
}
.study-condition-cmp .rank{
.rank-table>header{
display:flex;
display: -webkit-flex;
display:-webkit-flex;
flex-direction:row;
height:px2rem(37px);
}
.study-condition-cmp .rank .rank-sec{
background-color: #fff;
width:50%;
.rank-table .rank-name{
width:px2rem(157.5px);
height:px2rem(37px);
line-height:px2rem(37px);
text-align:center;
font-weight:500;
font-size:px2rem(12px);
color:#333;
}
.study-condition-cmp .rank .rank-sec.my-rank{
margin-right:px2rem(14px);
.rank-table .rank-name.my-rank{
background-color:rgba(227,188,122,0.1);
}
.study-condition-cmp .rank .rank-sec.all-rank{
margin-left:px2rem(14px);
.rank-table .rank-name.other-rank{
background-color:rgba(68,146,132,0.1);
}
.study-condition-cmp .rank .rank-sec .rank-item{
//具体内容的样式
.rank-table-content{
display:flex;
display:-webkit-flex;
flex-flow:row;
-ms-flex-flow: row;
align-items: center;
background-color:rgb(234,241,255);
color:#666;
border-radius: px2rem(1.5px);
height:px2rem(52px);/*?*/
flex-direction:row;
}
/*控制rank-item的具体margin状况*/
.study-condition-cmp .rank .rank-sec.my-rank .rank-item{
margin:px2rem(7px) px2rem(7.5px) px2rem(10px) 0;
.rank-table-content .content.my-rank-content{
width:px2rem(157px);
}
.study-condition-cmp .rank .rank-sec.all-rank .rank-item{
margin:px2rem(7px) 0 px2rem(10px) px2rem(7.5px);
.rank-table-content .content.other-rank-content{
width:px2rem(157px);
}
.study-condition-cmp .rank .rank-sec .rank-item:nth-last-child(1){
margin-bottom:px2rem(7px);
.rank-table-content .content .item{
height:px2rem(58px);
display:flex;display:-webkit-flex;justify-content:center;align-items:center;
.normal span{
font-size:px2rem(12px);
display:inline-block;
vertical-align:middle;//行内块垂直居中
}
.study-condition-cmp .rank .rank-sec .rank-item .rank-num{
.normal span.num{
width:px2rem(13px);
height:px2rem(13px);
text-align:center;
line-height:px2rem(13px);
background-color: #709CFE;
text-align:center;
background-color: rgb(202,168,97);
border-radius: px2rem(6.5px);
color:#fff;
font-weight:400;
}
.normal span.text{
width:px2rem(114px);
line-height:px2rem(16px);
text-align:center;
// padding-left:px2rem(10px);
font-weight:400;
}
.special{
font-size:px2rem(12px);
border-radius: px2rem(6.5px);
margin-left:px2rem(10px);
margin-right:px2rem(7px);
/* margin:0 0.5rem; */
text-align:center;
padding:px2rem(20px);
color:#999;
}
}
.study-condition-cmp .rank .rank-sec .rank-item .rank-name{
font-size:px2rem(13px);
font-weight:400;
margin-right:px2rem(9.5px);
color:rgb(102,102,102);
height:px2rem(37px);
line-height:px2rem(18.5px);
.content.my-rank-content .item{
border-top:px2rem(0.5px) solid rgb(236,238,241);
border-right:px2rem(0.5px) solid rgb(236,238,241);
}
.content.other-rank-content .item{
border-top:px2rem(0.5px) solid rgb(236,238,241);
}
////////////////////////
/*为你推荐*/
.recommend-for-you{
padding-top:px2rem(5px);/*补充推荐list组件里不足的顶部间距*/
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册