Compare commits
12 Commits
7595af1d33
...
a06f0b2489
Author | SHA1 | Date | |
---|---|---|---|
a06f0b2489 | |||
84cca43b52 | |||
|
b771a3c910 | ||
|
0b542e2e63 | ||
c2a9676b09 | |||
|
d0063bf11f | ||
|
11ff75f0d3 | ||
|
8d82024a1e | ||
|
982adc3f4b | ||
|
efc9ffea12 | ||
|
d66aa108d8 | ||
|
165f960d14 |
2
components.d.ts
vendored
2
components.d.ts
vendored
@ -30,8 +30,6 @@ declare module 'vue' {
|
||||
LoginMessage: typeof import('./src/components/talk/message/LoginMessage.vue')['default']
|
||||
Message: typeof import('./src/components/x-message/message/index.vue')['default']
|
||||
MixedMessage: typeof import('./src/components/talk/message/MixedMessage.vue')['default']
|
||||
NButton: typeof import('naive-ui')['NButton']
|
||||
NIcon: typeof import('naive-ui')['NIcon']
|
||||
PageAnimation: typeof import('./src/components/page-animation/index.vue')['default']
|
||||
RevokeMessage: typeof import('./src/components/talk/message/RevokeMessage.vue')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
|
@ -2,6 +2,7 @@
|
||||
import { textReplaceEmoji } from '@/utils/emojis'
|
||||
import { textReplaceLink, textReplaceMention } from '@/utils/strings'
|
||||
import { ITalkRecordExtraText, ITalkRecord } from '@/types/chat'
|
||||
import { computed } from 'vue'
|
||||
|
||||
const props = defineProps<{
|
||||
extra: ITalkRecordExtraText
|
||||
@ -12,15 +13,14 @@ const props = defineProps<{
|
||||
|
||||
const float = props.data.float
|
||||
|
||||
let textContent = props.extra?.content || ''
|
||||
|
||||
textContent = textReplaceLink(textContent)
|
||||
|
||||
if (props.data.talk_type == 2) {
|
||||
textContent = textReplaceMention(textContent, '#1890ff')
|
||||
}
|
||||
|
||||
textContent = textReplaceEmoji(textContent)
|
||||
const textContent = computed(() => {
|
||||
let text = props.extra?.content || ''
|
||||
text = textReplaceLink(text)
|
||||
if (props.data.talk_type == 2) {
|
||||
text = textReplaceMention(text, '#1890ff')
|
||||
}
|
||||
return textReplaceEmoji(text)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -167,7 +167,7 @@
|
||||
@click="showConfirmPrompt(3)"
|
||||
class="clear-chat-record-btn-each"
|
||||
v-if="
|
||||
groupParams?.groupInfo?.is_manager &&
|
||||
groupParams?.groupInfo?.is_manager === false &&
|
||||
dialogueParams.type === 2 &&
|
||||
(groupParams?.groupInfo?.group_type === 1 ||
|
||||
groupParams?.groupInfo?.group_type === 3)
|
||||
|
@ -96,6 +96,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="isCreateProjecy"
|
||||
@click="groupActiveIndex = 2;depCheckedKeys = [];"
|
||||
class="groupCard thirdPanel"
|
||||
:class="groupActiveIndex === 2 ? 'activePanel' : ''"
|
||||
@ -144,6 +145,7 @@ onUnload(()=> {
|
||||
|
||||
})
|
||||
const isHasPermission = ref(false)
|
||||
const isCreateProjecy = ref(false)
|
||||
onShow( async() =>{
|
||||
const isHasRes = await userHasPermission({
|
||||
erpUserId: userInfo?.value?.ID,
|
||||
@ -158,6 +160,7 @@ onShow( async() =>{
|
||||
} else{
|
||||
isHasPermission.value = false
|
||||
}
|
||||
isCreateProjecy.value = isHasRes.data.btn_rule_create_project_group
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -219,8 +219,7 @@ onLoad(()=> {
|
||||
groupStore.$reset()
|
||||
})
|
||||
onUnload(()=> {
|
||||
groupName.value = '';
|
||||
groupActiveIndex.value = -1;
|
||||
resetGroupInfo();
|
||||
})
|
||||
onMounted(() => {
|
||||
handleSetWebviewStyle()
|
||||
@ -332,7 +331,7 @@ const confirmBtnStatus = computed(() => {
|
||||
}
|
||||
switch (groupActiveIndex.value) {
|
||||
case 0:
|
||||
if(allChooseMembers?.value?.length < 3) {
|
||||
if(allChooseMembers?.value?.length < 2) {
|
||||
disabledT = true
|
||||
}
|
||||
break
|
||||
@ -345,7 +344,7 @@ const confirmBtnStatus = computed(() => {
|
||||
}
|
||||
break
|
||||
case 2:
|
||||
if(allChooseMembers?.value?.length < 3) {
|
||||
if(allChooseMembers?.value?.length < 2) {
|
||||
disabledT = true
|
||||
}
|
||||
break
|
||||
|
@ -194,17 +194,10 @@
|
||||
</div>
|
||||
<div class="load-toolbar pointer" style="transform: scaleY(-1);">
|
||||
<span v-if="loadConfig.status == 0">正在加载数据中 ...</span>
|
||||
<span v-else-if="loadConfig.status == 1" @click="onScrollToLower">
|
||||
<span v-if="loadConfig.status == 1" @click="onScrollToLower">
|
||||
查看更多消息 ...
|
||||
</span>
|
||||
<span
|
||||
v-else-if="
|
||||
loadConfig.status != 0 &&
|
||||
loadConfig.status != 1 &&
|
||||
state.localPageLoadDone
|
||||
"
|
||||
class="no-more"
|
||||
>
|
||||
<span v-if="loadConfig.status == 2" class="no-more">
|
||||
没有更多消息了
|
||||
</span>
|
||||
</div>
|
||||
@ -1116,6 +1109,9 @@ watch(
|
||||
) {
|
||||
//相同意味着分页加载缓存中的聊天记录完毕
|
||||
state.value.localPageLoadDone = true
|
||||
if (dialogueList?.records?.[0]?.sequence !== 1) {
|
||||
loadConfig.status = 1
|
||||
}
|
||||
} else {
|
||||
state.value.localPageLoadDone = false
|
||||
}
|
||||
@ -1227,9 +1223,9 @@ const onScrollToUpper = async () => {
|
||||
virtualList.value = tempVirtualList
|
||||
.concat(
|
||||
dialogueList.records.slice(
|
||||
Math.min(recordIndex + 11, dialogueList.records.length),
|
||||
dialogueList.records.length,
|
||||
),
|
||||
recordIndex + 1,
|
||||
Math.min(recordIndex + 11, dialogueList.records.length)
|
||||
)
|
||||
)
|
||||
.reverse()
|
||||
|
||||
@ -1522,12 +1518,11 @@ const doMentionUser = (mentionSelect) => {
|
||||
// 构造正确的 mention 对象
|
||||
const mentionObj = {
|
||||
id: mentionSelect.user_id, // 使用 user_id 而不是 erp_user_id
|
||||
nickname: mentionSelect.nickname
|
||||
nickname: mentionSelect.nickname,
|
||||
}
|
||||
getMentionSelectLists([mentionObj])
|
||||
}
|
||||
|
||||
|
||||
let avatarPressTimer = null
|
||||
let currentPressItem = null
|
||||
|
||||
|
@ -7,9 +7,9 @@
|
||||
>
|
||||
<div class="avatarImg">
|
||||
<tm-badge
|
||||
:count="props.data.is_disturb === 1 ? props.data.unread_num : ''"
|
||||
:count="props.data.is_disturb === 0 ? props.data.unread_num : ''"
|
||||
:dot="
|
||||
props.data.is_disturb === 0 && props.data.unread_num
|
||||
props.data.is_disturb === 1 && props.data.unread_num
|
||||
? true
|
||||
: false
|
||||
"
|
||||
|
Loading…
Reference in New Issue
Block a user