提交 195c0b86 authored 作者: 王鹏飞's avatar 王鹏飞

chore: 调整搜索相关页面

上级 50c5e543
...@@ -14,7 +14,11 @@ ...@@ -14,7 +14,11 @@
:key="item.id" :key="item.id"
></activity-item> ></activity-item>
</van-list> </van-list>
<div class="empty" v-else>暂时没有内容哦,去别处看看吧~</div> <template v-else>
<slot name="empty">
<div class="empty">暂时没有内容哦,去别处看看吧~</div>
</slot>
</template>
</div> </div>
</template> </template>
......
...@@ -86,6 +86,11 @@ export default { ...@@ -86,6 +86,11 @@ export default {
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
} }
.group-item-content__hot {
background: url('~@/assets/img/icon_hot.png') no-repeat left center;
background-size: 8px auto;
padding-left: 10px;
}
.group-item-index { .group-item-index {
width: 25px; width: 25px;
margin-right: 10px; margin-right: 10px;
......
...@@ -14,7 +14,11 @@ ...@@ -14,7 +14,11 @@
:key="item.id" :key="item.id"
></group-item> ></group-item>
</van-list> </van-list>
<div class="empty" v-else>暂时没有内容哦,去别处看看吧~</div> <template v-else>
<slot name="empty">
<div class="empty">暂时没有内容哦,去别处看看吧~</div>
</slot>
</template>
</div> </div>
</template> </template>
......
<template> <template>
<div class="member-item"> <div class="member-item">
<div class="member-item-pic"> <div class="member-item-pic">
<img :src="data.avatar" v-if="data.avatar" /> <img :src="data.avatar | avatar" />
</div> </div>
<slot name="member-before"></slot> <slot name="member-before"></slot>
<div class="member-item-content"> <div class="member-item-content">
...@@ -22,6 +22,7 @@ export default { ...@@ -22,6 +22,7 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.member-item { .member-item {
display: flex; display: flex;
align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.member-item-pic { .member-item-pic {
......
...@@ -12,7 +12,11 @@ ...@@ -12,7 +12,11 @@
:key="item.id" :key="item.id"
></member-item> ></member-item>
</van-list> </van-list>
<div class="empty" v-else>暂时没有内容哦,去别处看看吧~</div> <template v-else>
<slot name="empty">
<div class="empty">暂时没有内容哦,去别处看看吧~</div>
</slot>
</template>
</div> </div>
</template> </template>
......
...@@ -12,7 +12,11 @@ ...@@ -12,7 +12,11 @@
:key="item.id" :key="item.id"
></my-activity-item> ></my-activity-item>
</van-list> </van-list>
<div class="empty" v-else>暂时没有内容哦,去别处看看吧~</div> <template v-else>
<slot name="empty">
<div class="empty">暂时没有内容哦,去别处看看吧~</div>
</slot>
</template>
</div> </div>
</template> </template>
......
...@@ -14,7 +14,11 @@ ...@@ -14,7 +14,11 @@
@check="onCheck" @check="onCheck"
></my-activity-item> ></my-activity-item>
</van-list> </van-list>
<div class="empty" v-else>暂时没有内容哦,去别处看看吧~</div> <template v-else>
<slot name="empty">
<div class="empty">暂时没有内容哦,去别处看看吧~</div>
</slot>
</template>
<!-- 审核 --> <!-- 审核 -->
<van-action-sheet <van-action-sheet
v-model="check.show" v-model="check.show"
......
...@@ -12,7 +12,11 @@ ...@@ -12,7 +12,11 @@
:key="item.id" :key="item.id"
></my-group-item> ></my-group-item>
</van-list> </van-list>
<div class="empty" v-else>暂时没有内容哦,去别处看看吧~</div> <template v-else>
<slot name="empty">
<div class="empty">暂时没有内容哦,去别处看看吧~</div>
</slot>
</template>
</div> </div>
</template> </template>
......
...@@ -20,13 +20,13 @@ ...@@ -20,13 +20,13 @@
>去逛逛</router-link >去逛逛</router-link
> >
</p> </p>
<p class="create-item__tip" v-else-if="groupCount < 6"> <p class="create-item__tip" v-else-if="groupCount < maxGroup">
您已加入{{ groupCount }}个组织,可直接发布活动或<router-link 您已加入{{ groupCount }}个组织,可直接发布活动或<router-link
:to="{ name: 'group' }" :to="{ name: 'group' }"
>看看其他组织</router-link >看看其他组织</router-link
> >
</p> </p>
<p class="create-item__tip" v-if="groupCount >= 6"> <p class="create-item__tip" v-if="groupCount >= maxGroup">
您已加入满{{ groupCount }}个组织咯,请直接创建活动或者管理<router-link 您已加入满{{ groupCount }}个组织咯,请直接创建活动或者管理<router-link
:to="{ name: 'my' }" :to="{ name: 'my' }"
>我的组织~</router-link >我的组织~</router-link
...@@ -69,7 +69,7 @@ export default { ...@@ -69,7 +69,7 @@ export default {
return this.groupList.length || 0 return this.groupList.length || 0
}, },
groupDisabled() { groupDisabled() {
return this.groupCount >= 6 return this.groupCount >= this.maxGroup
}, },
activityDisabled() { activityDisabled() {
return !this.groupCount return !this.groupCount
......
...@@ -18,7 +18,11 @@ ...@@ -18,7 +18,11 @@
v-for="item in memberManagementList" v-for="item in memberManagementList"
:data="item" :data="item"
:key="item.id" :key="item.id"
></member-item> >
<template #member-before
><span class="member-creater">创建者</span></template
>
</member-item>
</div> </div>
</div> </div>
<div class="member-card"> <div class="member-card">
...@@ -97,4 +101,18 @@ export default { ...@@ -97,4 +101,18 @@ export default {
::v-deep .member-item { ::v-deep .member-item {
margin: 20px 0; margin: 20px 0;
} }
.member-creater {
margin-left: 10px;
padding: 0 5px;
height: 14px;
font-size: 10px;
line-height: 14px;
color: #fff;
background: linear-gradient(
180deg,
rgba(255, 201, 44, 1) 0%,
rgba(255, 116, 42, 1) 100%
);
border-radius: 3px;
}
</style> </style>
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</ul> </ul>
</div> </div>
<div class="user"> <div class="user">
<div class="user-avatar"><img :src="user.avatar" /></div> <div class="user-avatar"><img :src="user.avatar | avatar" /></div>
<div class="user-content"> <div class="user-content">
<div class="user-content__name">{{ user.nickname }}</div> <div class="user-content__name">{{ user.nickname }}</div>
<div class="user-content__info">{{ user.mobile }}</div> <div class="user-content__info">{{ user.mobile }}</div>
...@@ -115,6 +115,11 @@ export default { ...@@ -115,6 +115,11 @@ export default {
background-color: #ccc; background-color: #ccc;
border-radius: 50%; border-radius: 50%;
overflow: hidden; overflow: hidden;
img {
width: 100%;
height: 100%;
object-fit: contain;
}
} }
.user-content { .user-content {
display: flex; display: flex;
......
<template> <template>
<div class="main search"> <div class="main">
<search-bar <search-bar
placeholder="" placeholder=""
:focus="true" :focus="true"
...@@ -13,21 +13,48 @@ ...@@ -13,21 +13,48 @@
:params="{ keywords: searchValue }" :params="{ keywords: searchValue }"
ref="list" ref="list"
v-if="tabActive === '0'" v-if="tabActive === '0'"
></group-list> >
<template #empty>
<div class="search-empty">暂时没有内容哦,来做第一人吧~</div>
<div class="group-create">
<input
type="button"
class="button button-primary"
value="创建组织"
:disabled="groupDisabled"
@click="onCreateGroup"
/>
<p class="tips" v-if="groupDisabled">
您已加入满{{ groupCount }}个组织咯,管理<router-link
:to="{ name: 'my' }"
>我的组织~</router-link
>
</p>
</div>
</template>
</group-list>
</van-tab> </van-tab>
<van-tab title="个人" name="1"> <van-tab title="个人" name="1">
<member-list <member-list
:params="{ keywords: searchValue }" :params="{ keywords: searchValue }"
ref="list" ref="list"
v-if="tabActive === '1'" v-if="tabActive === '1'"
></member-list> >
<template #empty>
<div class="search-empty">暂时没有内容哦,去别处看看吧~</div>
</template>
</member-list>
</van-tab> </van-tab>
<van-tab title="活动" name="2"> <van-tab title="活动" name="2">
<activity-list <activity-list
:params="{ keywords: searchValue }" :params="{ keywords: searchValue }"
ref="list" ref="list"
v-if="tabActive === '2'" v-if="tabActive === '2'"
></activity-list> >
<template #empty>
<div class="search-empty">暂时没有内容哦,去别处看看吧~</div>
</template>
</activity-list>
</van-tab> </van-tab>
</van-tabs> </van-tabs>
</div> </div>
...@@ -39,14 +66,16 @@ import SearchBar from '@/components/SearchBar' ...@@ -39,14 +66,16 @@ import SearchBar from '@/components/SearchBar'
import GroupList from '@/components/GroupList' import GroupList from '@/components/GroupList'
import MemberList from '@/components/MemberList' import MemberList from '@/components/MemberList'
import ActivityList from '@/components/ActivityList' import ActivityList from '@/components/ActivityList'
import * as api from '@/api'
export default { export default {
name: 'Search', name: 'Search',
components: { SearchBar, GroupList, MemberList, ActivityList }, components: { SearchBar, GroupList, MemberList, ActivityList },
data() { data() {
return { return {
tabActive: '0', tabActive: '0',
searchValue: '' searchValue: '',
groupList: [],
maxGroup: 6
} }
}, },
watch: { watch: {
...@@ -59,6 +88,14 @@ export default { ...@@ -59,6 +88,14 @@ export default {
} }
} }
}, },
computed: {
groupCount() {
return this.groupList.length || 0
},
groupDisabled() {
return this.groupCount >= this.maxGroup
}
},
methods: { methods: {
onTabClick(name) { onTabClick(name) {
this.$router.replace({ query: { tab: name, keywords: this.searchValue } }) this.$router.replace({ query: { tab: name, keywords: this.searchValue } })
...@@ -67,15 +104,66 @@ export default { ...@@ -67,15 +104,66 @@ export default {
this.$router.replace({ this.$router.replace({
query: { tab: this.tabActive, keywords: this.searchValue } query: { tab: this.tabActive, keywords: this.searchValue }
}) })
},
// 创建组织
onCreateGroup() {
!this.groupDisabled && this.$router.push({ name: 'createGroup' })
},
// 获取我加入的组织
getJoinedGroupes() {
api.getJoinedGroupes().then(response => {
this.groupList = Array.isArray(response) ? response : []
})
} }
},
beforeMount() {
this.getJoinedGroupes()
} }
} }
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
.search { ::v-deep .list {
.list { margin-top: 20px;
margin-top: 20px; }
.search-empty {
margin-top: 50px;
padding-top: 200px;
font-size: 14px;
color: #999;
background: url('~@/assets/img/search_empty.png') no-repeat center top;
background-size: 160px auto;
text-align: center;
}
.group-create {
padding: 60px 0;
text-align: center;
.tips {
margin-top: 10px;
font-size: 12px;
text-align: center;
color: #999;
a {
color: #1989fa;
white-space: nowrap;
}
}
.button {
display: inline-block;
height: 30px;
padding: 0 20px;
line-height: 30px;
color: #fff;
text-align: center;
background: linear-gradient(
180deg,
rgba(255, 201, 44, 1) 0%,
rgba(255, 116, 42, 1) 100%
);
border-radius: 20px;
}
.button:disabled {
background: #ccc !important;
} }
} }
</style> </style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论