提交 df539b68 编写于 作者: chengxiang.li's avatar chengxiang.li

Merge branch 'dev-stage2-20191125' of...

Merge branch 'dev-stage2-20191125' of http://192.168.110.53/com.pica.cloud.foundation.frontend/year-end-activitiy into dev-stage2-20191125
......@@ -4,7 +4,7 @@ img{
-o-user-select:none;
user-select:none;
}
body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, li, a, p, h1, h2, h3, h4,h5, h6, i, b, textarea, button, input, select, figure, figcaption, {
body, div, span, header, footer, nav, section, aside, article, ul, dl, dt, dd, li, a, p, h1, h2, h3, h4,h5, h6, i, b, textarea, button, input, select, figure, figcaption {
padding: 0;
margin: 0;
list-style: none;
......
@import './common.scss';
@import 'common.less';
//定位
.relative{
......
@import './global.scss';
@import 'global.less';
$blue: #3190e8;
$bc: #e4e4e4;
$fc:#fff;
......
<template>
<section class="footer-btn-wrap">
<div class="footer-btn">
<div class="footer-btn" :style="{height: `${50+homeIndicatorHeight}` + 'Px'}">
<div class="btn" @click="handlerMethod">{{btnText}}</div>
</div>
</section>
......@@ -19,7 +19,7 @@
btnType: {
type: Boolean,
default: () => {
return 1
return true
}
}
},
......@@ -39,20 +39,19 @@
.footer-btn-wrap {
.footer-btn {
width: 100%;
height: 40px;
padding: 5px 0;
min-height: 50Px;
box-shadow:0px -1px 0px 0px rgba(237,237,237,1);
position: fixed;
bottom: 0;
background: #fff;
.btn {
width: 345px;
height: 40px;
margin: 0 auto;
line-height: 40px;
height: 40Px;
margin: 5Px auto;
line-height: 40Px;
text-align: center;
background: linear-gradient(270deg,rgba(255,88,36,1) 0%,rgba(254,163,86,1) 100%);
border-radius: 20px;
border-radius: 20Px;
color: #FFFFFF;
font-weight: 700;
font-size: 15px;
......
<template>
<section class="header-section" >
<div class="navBar" :style="{height: `${barHeight}Px`,backgroundColor: barColor}"></div>
<div class="navBar" :style="{height: `${statusBarHeight}Px`,backgroundColor: statusBarColor}"></div>
<header class="header-container">
<img @click="goBack" src="~/assets/img/icon-back.png" alt="">
{{title}}
......@@ -31,18 +31,6 @@
return 1
}
},
barHeight: {
type: Number,
default:function () {
return 0
}
},
barColor: {
type: String,
default: function () {
return '#ffffff'
}
}
},
data() {
return {}
......
<template>
<section class="header-section" >
<div class="navBar" :style="{height: `${barHeight}Px`,backgroundColor: barColor}"></div>
<div class="navBar" :style="{height: `${statusBarHeight}Px`,backgroundColor: statusBarColor}"></div>
<header class="header-container">
<img @click="goBack" src="~/assets/img/icon-back.png" alt="">
<div class="head-btn">
......@@ -45,18 +45,6 @@
return 1
}
},
barHeight: {
type: Number,
default:function () {
return 0
}
},
barColor: {
type: String,
default: function () {
return '#ffffff'
}
},
headBtn: {
type: Object,
default: function () {
......
......@@ -43,7 +43,7 @@ export default {
</script>
<style lang="scss" scoped>
@import '../assets/style/mixin.scss';
@import '../assets/style/mixin.less';
.top-title-new{
//height:px2rem(45px);
line-height:px2rem(25px);
......
......@@ -55,6 +55,10 @@ module.exports = {
{
src: '~plugins/vue-infinite-scroll',
ssr: false
},
{
src: '~plugins/mixins',
ssr: false
}
],
/*
......
......@@ -5,7 +5,7 @@
:activeBtnType="activeBtnType"
@handleBtn="changeRanking">
</ranking-header>
<div class="info-container" :style="{ marginTop: `${44+barHeight}Px`}">
<div class="info-container" :style="{ marginTop: `${44+statusBarHeight}Px`}">
<div class="info info-hospital" v-if="activeBtnType">
<img src="~/assets/img/hospital-ranking/icon-hospital.png" alt="">
<div class="content" v-if="hospitalRanking.score">
......@@ -59,7 +59,7 @@
<span class="marginL">{{activeBtnType?'机构名称':'机构成员'}}</span>
<span class="marginAuto">{{activeBtnType?'机构勤奋分':'贡献勤奋分'}}</span>
</div>
<div class="ranking-list">
<div class="ranking-list" :style="{marginBottom: `${50+homeIndicatorHeight}` + 'Px'}">
<div class="item" v-if="activeBtnType" v-for="(itemH,index) in hospitalRanking.topRankList">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p>
......@@ -85,6 +85,8 @@
<script>
import RankingHeader from '@/components/ranking-header';
import FooterButton from '@/components/footer-button';
import { getContributionRanking, getHospitalRanking} from '@/service/detailsAndRanking'
export default {
name: 'hospital-ranking',
components: {
......@@ -95,8 +97,6 @@
return {
showPop: false,
title: '个人明细',
barHeight: 0,
barColor: '#fff',
headBtn: {
leftName: '机构排行榜',
rightName: '人员贡献榜'
......@@ -140,73 +140,19 @@
}
},
getHospitalRanking() {
this.hospitalRanking = {
name: '测试医院',
rank: 3,
score: 5000,
hospitalType: 1,
topRankList: [
{
name: '测试医院',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 0,
score: 10000
},
{
name: '医院1',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 1,
score: 9343
},
{
name: '医院2',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 2,
score: 8888
},
{
name: '医院3',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 3,
score: 8200
}
],
}
getHospitalRanking().then(res => {
if(res.code == '000000') {
this.hospitalRanking = res.data;
}
})
},
getContributionRanking() {
this.contributionRanking = {
name: '代医生',
rank: 3,
score: 5000,
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
hospital: '测试医院',
topRankList: [
{
name: '戴医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 0,
score: 10000
},
{
name: '张医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 1,
score: 9343
},
{
name: '李医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 2,
score: 8888
},
{
name: '刘医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 3,
score: 8200
}
],
}
getContributionRanking().then(res => {
if(res.code == '000000') {
this.contributionRanking = res.data;
}
})
},
getRankData() {
if(this.activeBtnType) {
......
.invite-details-wrap {
.main-container {
// overflow: hidden;
overflow: hidden;
.invite-explain {
padding: 0 15px;
margin: 20px 0 30px 0;
......@@ -106,6 +106,7 @@
}
.record-details {
width: 100%;
min-height: 294px;
background: #fff;
.tab-nav {
width: 100%;
......@@ -147,7 +148,6 @@
}
.record-list {
padding: 15px;
margin-bottom: 50px;
.sum {
color: #676869;
font-size: 14px;
......@@ -218,7 +218,6 @@
}
}
.no-data {
margin-bottom: 50px;
img {
width: 150px;
height: 150px;
......
......@@ -2,11 +2,9 @@
<section class="invite-details-wrap">
<normal-header
:title="title"
:barHeight="barHeight"
:barColor="barColor"
:backType="1">
</normal-header>
<div class="main-container" :style="{ marginTop: `${44+barHeight}Px`}">
<div class="main-container" :style="{ marginTop: `${44+statusBarHeight}Px`}">
<div class="invite-explain">
<p class="title">邀请形式</p>
<div class="picture-explain">
......@@ -39,7 +37,7 @@
</div>
</div>
<div class="gray-line"></div>
<div class="record-details">
<div class="record-details" :style="{marginBottom: `${50+homeIndicatorHeight}Px`}">
<div class="tab-nav">
<div class="item left-item" :class="{activeItem:recordType==1}" @click="changeRecordType">
领取记录
......@@ -50,7 +48,7 @@
<p class="active-line" v-if="recordType==2"></p>
</div>
</div>
<div class="record-list" v-if="inviteList.length">
<div class="record-list" v-if="inviteList.length" >
<p class="sum">{{recordTotal}}</p>
<div class="loadMore" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy"
infinite-scroll-distance="10">
......@@ -75,17 +73,17 @@
</div>
</div>
<div class="no-data" v-if="!inviteList.length">
<div class="no-data" v-if="!inviteList.length" >
<img src="~/assets/img/icon-nodata.png" alt="">
<p v-if="recordType==1">提醒您的医生好友领取课程您将获得奖励哦!</p>
<p v-if="recordType==2" class="text-get">提醒您的医生好友领取课程后登录云鹊医APP您将再获得奖励哦!</p>
</div>
<footer-button
:btnText="btnText"
:btnType="btnType">
</footer-button>
</div>
</div>
<footer-button
:btnText="btnText"
:btnType="btnType">
</footer-button>
</section>
</template>
......@@ -103,8 +101,6 @@
return {
showPop: false,
title: '邀请明细',
barHeight: 0,
barColor: '#fff',
inviteList: [],
recordTotal: 0,
recordType: 1,
......
......@@ -2,11 +2,9 @@
<section class="person-detail-wrap">
<normal-header
:title="title"
:barHeight="barHeight"
:barColor="barColor"
:backType="1">
</normal-header>
<div class="info-container" :style="{ marginTop: `${44+barHeight}Px`}">
<div class="info-container" :style="{ marginTop: `${44+statusBarHeight}Px`}">
<div class="info">
<img src="https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg" alt="">
<div class="content">
......@@ -30,7 +28,7 @@
</div>
<div class="awards-details">血压计 1 支/温度计 1 支/小米电视4C 2 台/米家洗衣机 1 台/米家冰箱 2 台/华为荣耀Play3 2 部</div>
</div>-->
<div class="detail-list" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10">
<div class="detail-list" v-if="personDetails.length" v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10">
<div class="item" v-for="item in personDetails">
<div class="left">
<img :src="detailTaskIcon(item.taskName)" alt="">
......@@ -75,8 +73,6 @@
return {
showPop: false,
title: '个人明细',
barHeight: 0,
barColor: '#fff',
personDetails: [],
busy: true, //分页参数--start
pageNo: 0,
......@@ -96,8 +92,16 @@
this.$router.push('/in-activity')
},
detailTaskIcon(taskName) {
if(taskName == '打卡') {
return require('../../assets/img/person-detail/icon-invite.png')
if(taskName == 'SMO') {
return require('../../assets/img/task-icon/smo-icon.png')
} else if(taskName == '课程') {
return require('../../assets/img/task-icon/lesson-icon.png')
} else if(taskName == '打卡') {
return require('../../assets/img/task-icon/daily-clock-icon.png')
} else if(taskName == '邀请') {
return require('../../assets/img/task-icon/invite-icon.png')
} else if(taskName == '邀请') {
return require('../../assets/img/task-icon/ranking-icon.png')
}
},
detailAwardsName(type) {
......
......@@ -7,9 +7,9 @@
@handleBtn="changeRanking"
@handleRightBtn="handleRightBtn">
</ranking-header>
<div class="info-container" :style="{ marginTop: `${44+barHeight}Px`}">
<div class="info-container" :style="{ marginTop: `${44+statusBarHeight}Px`}">
<div class="info">
<img src="https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg" alt="">
<img :src="rankData.avatarImageUrl" alt="">
<div class="right">
<div class="content" v-if="rankData.score">
<p class="item">
......@@ -37,7 +37,7 @@
<span class="marginL">用户名称</span>
<span class="marginAuto">{{activeBtnType?'今日':'累计'}}勤奋分</span>
</div>
<div class="ranking-list">
<div class="ranking-list" :style="{marginBottom: `${50+homeIndicatorHeight}Px`}">
<div class="item" v-for="(item,index) in rankData.topRankList">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p>
......@@ -57,6 +57,8 @@
<script>
import RankingHeader from '@/components/ranking-header';
import FooterButton from '@/components/footer-button';
import { getTodayUserRanking, getAllUserRanking} from '@/service/detailsAndRanking'
export default {
name: 'person-ranking',
components: {
......@@ -67,8 +69,6 @@
return {
showPop: false,
title: '个人明细',
barHeight: 0,
barColor: '#fff',
rankData: {},
rightBtn: '昨日获奖',
headBtn: {
......@@ -84,11 +84,12 @@
},
mounted() {
this.getRankingList()
this.getData();
},
methods: {
changeRanking() {
this.activeBtnType = !this.activeBtnType
this.getData();
},
handleRightBtn() {
this.$router.push({
......@@ -104,47 +105,37 @@
return require('../../assets/img/icon-copper.png')
}
},
getRankingList() {
this.rankData = {
name: '戴医生',
hospital: '测试医院',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 33,
score: 999,
targetRank: 3,
targetRequiredScore: 10,
topRankList: [
{
name: '张医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 0,
score: 10000
},
{
name: '李医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 1,
score: 9343
},
{
name: '王医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 2,
score: 8888
},
{
name: '刘医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 3,
score: 8200
}
],
}
if(this.rankData.score) {
this.btnText = '获得更多勤奋分'
getData() {
if(this.activeBtnType) {
this.getTodayRankingList();
} else {
this.btnText = '参与活动得勤奋分'
this.getUserRankingList();
}
},
getTodayRankingList() {
getTodayUserRanking().then(res => {
if(res.code == '000000') {
this.rankData = res.data;
if(this.rankData.score) {
this.btnText = '获得更多勤奋分'
} else {
this.btnText = '参与活动得勤奋分'
}
}
})
},
getUserRankingList() {
getAllUserRanking().then(res => {
if(res.code == '000000') {
this.rankData = res.data;
if(this.rankData.score) {
this.btnText = '获得更多勤奋分'
} else {
this.btnText = '参与活动得勤奋分'
}
}
})
}
},
};
......
......@@ -3,16 +3,14 @@
<normal-header
:title="title"
:rightText="rightText"
:barHeight="barHeight"
:barColor="barColor"
:backType="1">
</normal-header>
<div class="prize-list" :style="{ marginTop: `${44+barHeight}Px`}">
<div class="prize-list" :style="{ marginTop: `${44+statusBarHeight}Px`,marginBottom: `${50+homeIndicatorHeight}Px`}">
<div class="item" v-for="(item, index) in rewardsList">
<img v-if="index<=2" :src="dealRankIcon(index)" alt="" class="ranking-icon">
<p v-else class="icon-num" >{{index+1}}</p>
<div class="item-right">
<img src="https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg" alt="" class="doctor-photo">
<img :src="item.avatarImageUrl" alt="" class="doctor-photo">
<div class="doctor-info">
<p class="name">{{item.name}}</p>
<p class="grade">昨日勤奋分:<span>{{item.score}}</span></p>
......@@ -31,6 +29,8 @@
<script>
import NormalHeader from '@/components/normal-header';
import FooterButton from '@/components/footer-button';
import { getYesterdayRanking } from '@/service/detailsAndRanking'
export default {
name: "index",
components: {
......@@ -41,8 +41,6 @@
return {
showPop: false,
title: '昨日获奖名单',
barHeight: 0,
barColor: '#fff',
rightText: '如何领奖',
rewardsList: [],
btnText: '今日我要拿奖',
......@@ -63,32 +61,11 @@
}
},
getRewardList() {
this.rewardsList = [
{
name: '张医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 0,
score: 10000
},
{
name: '李医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 1,
score: 9343
},
{
name: '王医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 2,
score: 8888
},
{
name: '刘医生',
avatarImageUrl: 'https://file.yunqueyi.com/jpg/2019/01/30/1548836156602-019ADC3F.jpg',
rank: 3,
score: 8200
getYesterdayRanking().then(res => {
if(res.code == '000000') {
this.rewardsList = res.data.topRankList;
}
]
})
}
},
}
......
import Vue from 'vue';
// 设置电池栏高度
const mixins = {
data() {
return {
statusBarHeight: 0,
homeIndicatorHeight: 0,
statusBarColor: '#fff'
}
},
created() {
const _this = this;
if (!_this.$rocNative.isWeb) {
_this.statusBarColor = _this.$rocNative.isAndroid?'#5C5C5C':'#fff'
_this.$rocNative.getStatusBarHeight().then(res => {
// resolve(data)
let height = _this.$rocNative.isIOS ? res.statusBarHeight : res.statusBarHeight / window.devicePixelRatio;
_this.statusBarHeight = height;
// 刘海屏底部高度
if(res.homeIndicatorHeight) {
let homeIndicatorHeight = _this.$rocNative.isIOS ? res.homeIndicatorHeight : res.homeIndicatorHeight / window.devicePixelRatio;
_this.homeIndicatorHeight = homeIndicatorHeight;
}
})
}
},
mounted() {
},
};
Vue.mixin(mixins);
......@@ -24,4 +24,50 @@ export const getPersonDetails = (params) => {
params: params,
withCredentials: true
})
}
// 获取今日个人排行榜
export const getTodayUserRanking = (data) => {
return request({
url: `/campaign/ranking/today_user_ranking`,
method: 'post',
data: data,
withCredentials: true
})
}
// 获取累计排行榜
export const getAllUserRanking = (data) => {
return request({
url: `/campaign/ranking/user_ranking`,
method: 'post',
data: data,
withCredentials: true
})
}
// 获取个人贡献榜
export const getContributionRanking = (data) => {
return request({
url: `/campaign/ranking/contribution_ranking`,
method: 'post',
data: data,
withCredentials: true
})
}
// 获取机构排行榜
export const getHospitalRanking = (data) => {
return request({
url: `/campaign/ranking/hospital_ranking`,
method: 'post',
data: data,
withCredentials: true
})
}
// 获取昨日获奖名单
export const getYesterdayRanking = (data) => {
return request({
url: `/campaign/ranking/yesterday_user_ranking`,
method: 'post',
data: data,
withCredentials: true
})
}
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册