提交 55680f4f authored 作者: 王鹏飞's avatar 王鹏飞

chore: 组织成员增加审核功能

上级 195c0b86
...@@ -14,5 +14,6 @@ ...@@ -14,5 +14,6 @@
min-height: 100vh; min-height: 100vh;
margin: 0 auto; margin: 0 auto;
background-color: #fff; background-color: #fff;
overflow: hidden;
} }
</style> </style>
...@@ -203,6 +203,11 @@ export function leaveGroup(id) { ...@@ -203,6 +203,11 @@ export function leaveGroup(id) {
return httpRequest.post(`/api/alumni/v1/organization/cancel/${id}`) return httpRequest.post(`/api/alumni/v1/organization/cancel/${id}`)
} }
// 审核组织成员
export function updateGruopMemberStatus(id, data) {
return httpRequest.post(`/api/alumni/v1/organization/join/check/${id}`, data)
}
// 获取组织内的活动 // 获取组织内的活动
export function getActivitesByGroup(groupId, params) { export function getActivitesByGroup(groupId, params) {
return httpRequest.get(`/api/alumni/v1/activities2/inorg/${groupId}`, { return httpRequest.get(`/api/alumni/v1/activities2/inorg/${groupId}`, {
......
...@@ -227,14 +227,9 @@ body { ...@@ -227,14 +227,9 @@ body {
clear: both; clear: both;
} }
.list {
overflow: hidden;
}
.red { .red {
color: #f00; color: #f00;
} }
.status-default { .status-default {
color: #ffad3e !important; color: #ffad3e !important;
} }
......
...@@ -3,12 +3,12 @@ ...@@ -3,12 +3,12 @@
<div class="member-item-pic"> <div class="member-item-pic">
<img :src="data.avatar | avatar" /> <img :src="data.avatar | avatar" />
</div> </div>
<slot name="member-before"></slot> <slot name="member-before" :user="data"></slot>
<div class="member-item-content"> <div class="member-item-content">
<h4>{{ data.personal_name }}</h4> <h4>{{ data.personal_name }}</h4>
<p>{{ data.class_name }}</p> <p>{{ data.class_name }}</p>
</div> </div>
<slot name="member-after"></slot> <slot name="member-after" :user="data"></slot>
</div> </div>
</template> </template>
...@@ -37,6 +37,7 @@ export default { ...@@ -37,6 +37,7 @@ export default {
} }
} }
.member-item-content { .member-item-content {
flex: 1;
margin-left: 10px; margin-left: 10px;
h4 { h4 {
font-size: 14px; font-size: 14px;
......
...@@ -25,7 +25,10 @@ ...@@ -25,7 +25,10 @@
</div> </div>
<div class="my-group-item-ft"> <div class="my-group-item-ft">
<ul> <ul>
<li><div class="button default-button">详情</div></li> <li v-if="data.is_mine">
<div class="button default-button">编辑</div>
</li>
<li v-else><div class="button default-button">详情</div></li>
<li> <li>
<div <div
class="button default-button" class="button default-button"
......
...@@ -49,6 +49,11 @@ export default { ...@@ -49,6 +49,11 @@ export default {
this.loading = false this.loading = false
this.finished = true this.finished = true
}) })
.finally(() => {
if (this.finished) {
this.$emit('finished', this.list)
}
})
}, },
onLoad() { onLoad() {
this.page.offset = this.page.offset + this.page.limit this.page.offset = this.page.offset + this.page.limit
......
...@@ -8,7 +8,14 @@ ...@@ -8,7 +8,14 @@
v-for="item in memberApplicationList" v-for="item in memberApplicationList"
:data="item" :data="item"
:key="item.id" :key="item.id"
></member-item> >
<template #member-after="{ user }">
<ul class="tools">
<li class="tools-default" @click="onRefuse(user)">拒绝</li>
<li class="tools-primary" @click="onAgree(user)">同意</li>
</ul>
</template>
</member-item>
</div> </div>
</div> </div>
<div class="member-card" v-if="memberManagementList.length"> <div class="member-card" v-if="memberManagementList.length">
...@@ -19,9 +26,9 @@ ...@@ -19,9 +26,9 @@
:data="item" :data="item"
:key="item.id" :key="item.id"
> >
<template #member-before <template #member-before>
><span class="member-creater">创建者</span></template <span class="member-creater"></span>
> </template>
</member-item> </member-item>
</div> </div>
</div> </div>
...@@ -32,6 +39,7 @@ ...@@ -32,6 +39,7 @@
:params="{ org_id: pid }" :params="{ org_id: pid }"
:request-callback="requestCallback" :request-callback="requestCallback"
@request-success="requestSuccess" @request-success="requestSuccess"
ref="list"
></member-list> ></member-list>
</div> </div>
</div> </div>
...@@ -43,6 +51,7 @@ ...@@ -43,6 +51,7 @@
import Card from '@/components/Card' import Card from '@/components/Card'
import MemberList from '@/components/MemberList' import MemberList from '@/components/MemberList'
import MemberItem from '@/components/MemberItem' import MemberItem from '@/components/MemberItem'
import * as api from '@/api'
export default { export default {
name: 'GroupMember', name: 'GroupMember',
components: { Card, MemberList, MemberItem }, components: { Card, MemberList, MemberItem },
...@@ -76,6 +85,20 @@ export default { ...@@ -76,6 +85,20 @@ export default {
// 请求成功 // 请求成功
requestSuccess(list) { requestSuccess(list) {
this.list = list this.list = list
},
// 拒绝
onRefuse(user) {
this.checkGroupMember(user.check_id, { pass: 0, remark: '' })
},
// 同意
onAgree(user) {
this.checkGroupMember(user.check_id, { pass: 1, remark: '' })
},
// 审核
checkGroupMember(id, params) {
api.updateGruopMemberStatus(id, params).then(() => {
this.$refs.list.refresh()
})
} }
}, },
beforeMount() {} beforeMount() {}
...@@ -103,16 +126,21 @@ export default { ...@@ -103,16 +126,21 @@ export default {
} }
.member-creater { .member-creater {
margin-left: 10px; margin-left: 10px;
padding: 0 5px; width: 31px;
height: 14px; height: 13px;
font-size: 10px; background: url('~@/assets/img/member_creater_icon.png') no-repeat;
line-height: 14px; background-size: contain;
color: #fff; }
background: linear-gradient( .tools {
180deg, display: flex;
rgba(255, 201, 44, 1) 0%, li {
rgba(255, 116, 42, 1) 100% margin-left: 20px;
); }
border-radius: 3px; }
.tools-default {
color: #999;
}
.tools-primary {
color: #1989fa;
} }
</style> </style>
<template> <template>
<div class="main"> <div class="main">
<card title="我的组织"> <card title="我的组织">
<my-group-list></my-group-list> <my-group-list @finished="onFinished"></my-group-list>
<template v-if="finished">
<div
class="create-button"
v-if="list.length < 6"
@click="$router.push({ name: 'createGroup' })"
>
<i class="icon"></i>
<span>创建新组织</span>
</div>
<p class="tips">
没有更多啦,<router-link :to="{ name: 'group' }"
>去逛逛排行榜吧~</router-link
>
</p>
</template>
</card> </card>
</div> </div>
</template> </template>
...@@ -12,7 +27,49 @@ import MyGroupList from '@/components/MyGroupList' ...@@ -12,7 +27,49 @@ import MyGroupList from '@/components/MyGroupList'
export default { export default {
components: { Card, MyGroupList }, components: { Card, MyGroupList },
data() { data() {
return {} return {
list: [],
finished: false
}
},
methods: {
// 数据加载完成
onFinished(list) {
this.finished = true
this.list = list
}
} }
} }
</script> </script>
<style lang="scss" scoped>
.create-button {
display: flex;
align-items: center;
justify-content: center;
height: 90px;
font-size: 14px;
font-weight: 600;
color: #222;
background-color: #eee;
border-radius: 6px;
.icon {
width: 25px;
height: 25px;
margin-right: 20px;
background: url('~@/assets/img/icon_plus2.png') no-repeat;
background-size: contain;
}
}
.tips {
padding: 20px 0;
font-size: 12px;
text-align: center;
color: #999;
a {
color: #1989fa;
white-space: nowrap;
}
}
</style>
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
v-if="tabActive === '1'" v-if="tabActive === '1'"
> >
<template #empty> <template #empty>
<div class="search-empty">暂时没有内容哦,去别处看看吧~</div> <div class="search-empty">暂时没有内容哦,换个搜索词试试吧~</div>
</template> </template>
</member-list> </member-list>
</van-tab> </van-tab>
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
v-if="tabActive === '2'" v-if="tabActive === '2'"
> >
<template #empty> <template #empty>
<div class="search-empty">暂时没有内容哦,去别处看看吧~</div> <div class="search-empty">暂时没有内容哦,换个搜索词试试吧~</div>
</template> </template>
</activity-list> </activity-list>
</van-tab> </van-tab>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论