You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
apply-assistant-v3/root/NEUIKit/pages/Contact/contact-list/black-list.vue

129 lines
3.0 KiB
Vue

5 months ago
<template>
<div class="black-list-container g_bg_f_5">
<!-- <NavBar :title="t('validMsgText')" /> -->
<div class="hr" style="height: 5px;"></div>
<div class="black-list-content">
<div class="black-list-subtitle">{{ t('blacklistSubTitle') }}</div>
<Empty v-if="blacklist.length === 0" :text="t('blacklistEmptyText')" />
<div v-else class="black-item" v-for="item in blacklist" :key="item">
<div class="item-left">
<Avatar :account="item" :gotoUserCard="true" />
<Appellation class="black-name" :account="item" />
</div>
<div class="black-button" @click="() => handleClick(item)">
{{ t('removeBlacklist') }}
</div>
</div>
</div>
</div>
</template>
<script lang="ts" setup>
import { autorun } from 'mobx'
import { onUnmounted, ref } from '../../../utils/transformVue'
import Empty from '../../../components/Empty.vue'
import Avatar from '../../../components/Avatar.vue'
import Appellation from '../../../components/Appellation.vue'
import NavBar from '../../../components/NavBar.vue'
import { t } from '../../../utils/i18n'
import { deepClone } from '../../../utils'
const blacklist = ref<string[]>([])
// 移除黑名单
const handleClick = async (account: string) => {
try {
// 通过isAdd来判断是添加还是移除黑名单
await uni.$UIKitStore.relationStore.removeUserFromBlockListActive(account)
uni.showToast({
title: t('removeBlackSuccessText'),
icon: 'success',
})
} catch (error) {
uni.showToast({
title: t('removeBlackFailText'),
icon: 'error',
})
}
}
const uninstallBlacklistWatch = autorun(() => {
blacklist.value = deepClone(uni.$UIKitStore.relationStore.blacklist)
})
const uninstallUsersWatch = autorun(() => {
// 加一个监听
console.log('users: ', uni.$UIKitStore.userStore.users)
})
onUnmounted(() => {
uninstallBlacklistWatch()
uninstallUsersWatch()
})
</script>
<style lang="scss" scoped>
4 months ago
5 months ago
page {
padding-top: var(--status-bar-height);
height: 100vh;
overflow: hidden;
}
.black-list-container {
height: 100vh;
box-sizing: border-box;
}
.black-list-subtitle {
color: #b3b7bc;
font-size: 14px;
padding: 10px 20px;
text-align: center;
}
.black-list-content {
height: calc(100% - 60px - var(--status-bar-height));
width: 100%;
overflow-y: auto;
overflow-x: hidden;
}
.black-item {
display: flex;
justify-content: space-between;
align-items: center;
height: 60px;
padding: 0 20px;
}
.item-left {
display: flex;
align-items: center;
width: 70%;
}
.black-name {
margin-left: 10px;
font-size: 16px;
padding-right: 20px;
color: #333333;
overflow: hidden; //超出的文本隐藏
text-overflow: ellipsis; //溢出用省略号显示
white-space: nowrap; //溢出不换行
}
.black-button {
margin: 0;
width: 60px;
height: 32px;
line-height: 32px;
font-size: 14px;
color: #337eef;
border: 1px solid #337eef;
text-align: center;
border-radius: 3px;
}
</style>