This commit is contained in:
liuye
2023-01-12 13:41:15 +08:00
9 changed files with 134 additions and 86 deletions

View File

@@ -4,7 +4,7 @@
<div class="search"> <div class="search">
<image src="./img/search.png" /> <image src="./img/search.png" />
<input placeholder="请输入" v-model="content" @confirm="onChange"> <input placeholder="请输入" v-model="content" @confirm="onChange">
<image v-if="content" src="./img/close.png" @click="content = ''" /> <image v-if="content" src="./img/close.png" @click="content = '', onChange()" />
</div> </div>
</div> </div>
<div class="list-wrapper"> <div class="list-wrapper">

View File

@@ -39,11 +39,13 @@ export default {
return this.$u.toast('请输入回答内容') return this.$u.toast('请输入回答内容')
} }
this.flag = true this.flag = true
this.$loading()
this.$http.post(`/app/applearningquestion/addOrUpdateAnswer`, { this.$http.post(`/app/applearningquestion/addOrUpdateAnswer`, {
...this.form ...this.form
}).then(res=> { }).then(res=> {
if(res?.code==0) { if(res?.code==0) {
this.$u.toast('提交成功!') this.$u.toast('提交成功!')
uni.$emit('update')
setTimeout(()=> { setTimeout(()=> {
uni.navigateBack() uni.navigateBack()
}, 500) }, 500)

View File

@@ -85,6 +85,7 @@ export default {
width: 80px; width: 80px;
height: 80px; height: 80px;
margin-right: 16px; margin-right: 16px;
border-radius: 40px;
} }
.head_avtar { .head_avtar {
max-width: calc(100% - 96px); max-width: calc(100% - 96px);

View File

@@ -6,19 +6,21 @@
<p class="answer_tips">已有<span>{{ answersArr.length }}</span>条回答</p> <p class="answer_tips">已有<span>{{ answersArr.length }}</span>条回答</p>
<div class="answer_card" v-for="item in answersArr" :key="item.id"> <div class="answer_card" v-for="item in answersArr" :key="item.id">
<div class="card_head"> <div @click="toDetail(item)">
<div class="left"> <div class="card_head">
<img :src="item.createUserAvatar" alt=""> <div class="left">
<div class="card_head_avtar"> <img :src="item.createUserAvatar" alt="">
<h4>{{ item.createUserName }}</h4> <div class="card_head_avtar">
<div>{{ item.createUserDeptName }}</div> <h4>{{ item.createUserName }}</h4>
<div>{{ item.createUserDeptName }}</div>
</div>
</div> </div>
<div class="right">{{ item.createTime }}</div>
</div> </div>
<div class="right">{{ item.createTime }}</div> <div class="card_body" :class="item.createUserId != user.id? 'card_radius':''">
</div> <div class="card_content">
<div class="card_body" :class="item.createUserId != user.id? 'card_radius':''" @click="toDetail(item)"> {{ item.content }}
<div class="card_content"> </div>
{{ item.content }}
</div> </div>
</div> </div>
<div class="card_btn" v-if="item.createUserId == user.id"> <div class="card_btn" v-if="item.createUserId == user.id">
@@ -131,6 +133,7 @@ export default {
img { img {
width: 80px; width: 80px;
height: 80px; height: 80px;
border-radius: 40px;
margin-right: 16px; margin-right: 16px;
} }
.card_head_avtar { .card_head_avtar {

View File

@@ -54,7 +54,6 @@
}, },
mounted () { mounted () {
console.log(this.user)
this.$loading() this.$loading()
this.getList() this.getList()
}, },
@@ -214,8 +213,12 @@
} }
p { p {
display: -webkit-box;
line-height: 1.3; line-height: 1.3;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
font-size: 34px; font-size: 34px;
overflow: hidden;
color: #333333; color: #333333;
} }

View File

@@ -1,24 +1,35 @@
<template> <template>
<div class="ranking"> <div class="ranking">
<div class="list-wrapper"> <div class="list-data">
<div class="item my" @click="linkTo">
<span>{{ info['积分排行'] }}</span>
<div class="userinfo">
<image :src="user.avatar || 'https://cdn.cunwuyun.cn/wxmp/tianfuxing/avatar.png'" />
<h3>{{ user.name }}</h3>
</div>
<i>{{ info['累计获取积分'] }}</i>
<image class="right" src="../img/right.png" />
</div>
<div class="item" v-for="(item, index) in list" :key="index"> <div class="item" v-for="(item, index) in list" :key="index">
<span>{{ index + 1 }}</span> <div class="flex-left">
<div class="userinfo"> <div class="item-rank">
<image :src="item.avatar || 'https://cdn.cunwuyun.cn/wxmp/tianfuxing/avatar.png'" /> <img :src="imgList[index]" alt="" v-if="index < 3">
<h3>{{ item.name }}</h3> <span v-else>{{index+1}}</span>
</div>
<div class="item-user">
<img :src="item.avatar || 'https://cdn.cunwuyun.cn/wxmp/tianfuxing/avatar.png'" alt="">{{item.name}}
</div>
</div>
<div class="flex-right">{{item.score}}</div>
</div>
</div>
<AiEmpty description="暂无数据" v-if="!list.length"/>
<div class="list-data footer">
<div class="item" @click="linkTo">
<div class="flex-left">
<div class="item-rank">
<span>{{ info['积分排行'] }}</span>
</div>
<div class="item-user">
<img :src="user.avatar || 'https://cdn.cunwuyun.cn/wxmp/tianfuxing/avatar.png'" alt="">{{ user.name }}
</div>
</div>
<div class="flex-right">
<span>{{ info['累计获取积分'] }}</span>
<image class="right" src="../img/right.png" />
</div> </div>
<i>{{ item.score }}</i>
</div> </div>
<AiEmpty v-if="!list.length && isMore"></AiEmpty>
</div> </div>
</div> </div>
</template> </template>
@@ -34,6 +45,18 @@
size: 100 size: 100
}, },
isMore: false, isMore: false,
barStyle: {
'width': '24px',
'height': '3px',
'border-radius': '2px',
'bottom': '0px',
'background-color': '#3399FF'
},
activeStyle: {
'font-weight' : '400',
'color': '#000000'
},
imgList: [require('../img/top0.png'),require('../img/top1.png'),require('../img/top2.png')],
info: {}, info: {},
list: [] list: []
} }
@@ -94,86 +117,102 @@
uni.hideLoading() uni.hideLoading()
}) })
} }
},
onReachBottom () {
this.current = this.current + 1
this.getList()
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.ranking { .ranking {
padding-bottom: 20px; min-height: 100%;
background-color: #F3F5F9;
.list-wrapper { padding-bottom: 32px;
margin: 0 32px;
.list-data {
padding: 32px;
margin-bottom: 80px;
.item { .item {
width: 100%;
display: flex; display: flex;
align-items: center;
justify-content: space-between; justify-content: space-between;
height: 80px; padding: 24px 48px 24px 32px;
box-sizing: border-box;
background-color: #fff;
border-radius: 32px;
margin-bottom: 16px; margin-bottom: 16px;
padding: 0 32px; .flex-left {
background: #FFFFFF;
box-shadow: 0 0 8px 0 rgba(0,0,0,0.02);
border-radius: 16px;
span {
width: 130px;
font-size: 34px;
color: #DDDDDD;
font-style: oblique;
font-weight: 600;
}
&:nth-of-type(1) span {
color: #2D7DFF;
}
&:nth-of-type(2) span {
color: #3BBC37;
}
&:nth-of-type(3) span {
color: #FF883C;
}
image {
width: 48px;
height: 48px;
}
.userinfo {
display: flex; display: flex;
align-items: center; .item-rank {
flex: 1; width: 152px;
img {
h3 { padding-top: 12px;
margin-left: 16px; width: 56px;
font-size: 28px; height: 56px;
color: #333333; vertical-align: middle;
}
span {
line-height: 80px;
font-family: SFPro-SNaNpxiboldItalic;
font-weight: SemiboldItalic;
font-size: 40px;
color: #DDD;
}
}
.item-user {
line-height: 80px;
font-family: PingFangSC-Medium;
font-weight: 500;
font-size: 32px;
color: #333;
img {
width: 80px;
height: 80px;
border-radius: 50%;
margin-right: 16px;
vertical-align: middle;
}
} }
} }
.flex-right {
i { font-family: SFPro-SNaNpxibold;
width: 100px;
font-size: 32px;
color: #FFB94C;
font-style: normal;
font-weight: 600; font-weight: 600;
text-align: center; font-size: 36px;
color: #FF9343;
line-height: 42px;
padding-top: 20px;
} }
} }
} }
.footer {
padding: 0;
margin-bottom: 0;
width: 100%;
position: fixed;
bottom: 0;
left: 0;
.my { .item {
padding-right: 16px!important; border-radius: 0;
margin-bottom: 0;
padding: 24px 14px 24px 32px;
i { &:active {
width: auto!important; background: #eee;
}
}
.flex-right {
display: flex;
align-items: center;
} }
.right { .right {
width: 64px; width: 50px;
height: 64px; height: 50px;
} }
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB