Compare commits

...

12 Commits

Author SHA1 Message Date
a06f0b2489 Merge branch 'main' of https://gitea-inner.fontree.cn/scout666/chat-app
Some checks are pending
Check / lint (push) Waiting to run
Check / typecheck (push) Waiting to run
Check / build (build, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build, 18.x, windows-latest) (push) Waiting to run
Check / build (build:app, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:app, 18.x, windows-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Waiting to run
2025-03-24 09:51:59 +08:00
84cca43b52 处理搜索跳转指定聊天记录后向下查,数据会错乱的问题 2025-03-24 09:50:57 +08:00
wwt
b771a3c910 Merge branch 'wwt'
Some checks are pending
Check / lint (push) Waiting to run
Check / typecheck (push) Waiting to run
Check / build (build, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build, 18.x, windows-latest) (push) Waiting to run
Check / build (build:app, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:app, 18.x, windows-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Waiting to run
2025-03-24 09:47:43 +08:00
wwt
0b542e2e63 fix bug#4066 2025-03-24 09:43:46 +08:00
c2a9676b09 Merge branch 'wyfMain-dev'
Some checks failed
Check / lint (push) Has been cancelled
Check / typecheck (push) Has been cancelled
Check / build (build, 18.x, ubuntu-latest) (push) Has been cancelled
Check / build (build, 18.x, windows-latest) (push) Has been cancelled
Check / build (build:app, 18.x, ubuntu-latest) (push) Has been cancelled
Check / build (build:app, 18.x, windows-latest) (push) Has been cancelled
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Has been cancelled
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Has been cancelled
2025-03-22 14:23:50 +08:00
wwt
d0063bf11f fix bug#3900
Some checks are pending
Check / lint (push) Waiting to run
Check / typecheck (push) Waiting to run
Check / build (build, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build, 18.x, windows-latest) (push) Waiting to run
Check / build (build:app, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:app, 18.x, windows-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Waiting to run
2025-03-21 16:26:19 +08:00
wwt
11ff75f0d3 fix bug#4063
Some checks are pending
Check / lint (push) Waiting to run
Check / typecheck (push) Waiting to run
Check / build (build, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build, 18.x, windows-latest) (push) Waiting to run
Check / build (build:app, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:app, 18.x, windows-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Waiting to run
2025-03-21 16:10:03 +08:00
wwt
8d82024a1e fix bug#3948 2025-03-21 15:32:39 +08:00
wwt
982adc3f4b Merge branch 'wwt'
Some checks are pending
Check / lint (push) Waiting to run
Check / typecheck (push) Waiting to run
Check / build (build, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build, 18.x, windows-latest) (push) Waiting to run
Check / build (build:app, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:app, 18.x, windows-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Waiting to run
2025-03-21 13:35:37 +08:00
wwt
efc9ffea12 Merge branch 'main' of https://gitea-inner.fontree.cn/scout666/chat-app
* 'main' of https://gitea-inner.fontree.cn/scout666/chat-app:
  完成输入框组件中@样式和相对应的功能
  修改部门创建权限规则
2025-03-21 13:35:28 +08:00
wwt
d66aa108d8 1 2025-03-21 13:35:09 +08:00
wwt
165f960d14 fix bug#3909 2025-03-21 13:15:39 +08:00
7 changed files with 27 additions and 32 deletions

2
components.d.ts vendored
View File

@ -30,8 +30,6 @@ declare module 'vue' {
LoginMessage: typeof import('./src/components/talk/message/LoginMessage.vue')['default'] LoginMessage: typeof import('./src/components/talk/message/LoginMessage.vue')['default']
Message: typeof import('./src/components/x-message/message/index.vue')['default'] Message: typeof import('./src/components/x-message/message/index.vue')['default']
MixedMessage: typeof import('./src/components/talk/message/MixedMessage.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'] PageAnimation: typeof import('./src/components/page-animation/index.vue')['default']
RevokeMessage: typeof import('./src/components/talk/message/RevokeMessage.vue')['default'] RevokeMessage: typeof import('./src/components/talk/message/RevokeMessage.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink'] RouterLink: typeof import('vue-router')['RouterLink']

View File

@ -2,6 +2,7 @@
import { textReplaceEmoji } from '@/utils/emojis' import { textReplaceEmoji } from '@/utils/emojis'
import { textReplaceLink, textReplaceMention } from '@/utils/strings' import { textReplaceLink, textReplaceMention } from '@/utils/strings'
import { ITalkRecordExtraText, ITalkRecord } from '@/types/chat' import { ITalkRecordExtraText, ITalkRecord } from '@/types/chat'
import { computed } from 'vue'
const props = defineProps<{ const props = defineProps<{
extra: ITalkRecordExtraText extra: ITalkRecordExtraText
@ -12,15 +13,14 @@ const props = defineProps<{
const float = props.data.float const float = props.data.float
let textContent = props.extra?.content || '' const textContent = computed(() => {
let text = props.extra?.content || ''
textContent = textReplaceLink(textContent) text = textReplaceLink(text)
if (props.data.talk_type == 2) {
if (props.data.talk_type == 2) { text = textReplaceMention(text, '#1890ff')
textContent = textReplaceMention(textContent, '#1890ff') }
} return textReplaceEmoji(text)
})
textContent = textReplaceEmoji(textContent)
</script> </script>
<template> <template>

View File

@ -167,7 +167,7 @@
@click="showConfirmPrompt(3)" @click="showConfirmPrompt(3)"
class="clear-chat-record-btn-each" class="clear-chat-record-btn-each"
v-if=" v-if="
groupParams?.groupInfo?.is_manager && groupParams?.groupInfo?.is_manager === false &&
dialogueParams.type === 2 && dialogueParams.type === 2 &&
(groupParams?.groupInfo?.group_type === 1 || (groupParams?.groupInfo?.group_type === 1 ||
groupParams?.groupInfo?.group_type === 3) groupParams?.groupInfo?.group_type === 3)

View File

@ -96,6 +96,7 @@
</div> </div>
</div> </div>
<div <div
v-if="isCreateProjecy"
@click="groupActiveIndex = 2;depCheckedKeys = [];" @click="groupActiveIndex = 2;depCheckedKeys = [];"
class="groupCard thirdPanel" class="groupCard thirdPanel"
:class="groupActiveIndex === 2 ? 'activePanel' : ''" :class="groupActiveIndex === 2 ? 'activePanel' : ''"
@ -144,6 +145,7 @@ onUnload(()=> {
}) })
const isHasPermission = ref(false) const isHasPermission = ref(false)
const isCreateProjecy = ref(false)
onShow( async() =>{ onShow( async() =>{
const isHasRes = await userHasPermission({ const isHasRes = await userHasPermission({
erpUserId: userInfo?.value?.ID, erpUserId: userInfo?.value?.ID,
@ -158,6 +160,7 @@ onShow( async() =>{
} else{ } else{
isHasPermission.value = false isHasPermission.value = false
} }
isCreateProjecy.value = isHasRes.data.btn_rule_create_project_group
} }
}) })

View File

@ -219,8 +219,7 @@ onLoad(()=> {
groupStore.$reset() groupStore.$reset()
}) })
onUnload(()=> { onUnload(()=> {
groupName.value = ''; resetGroupInfo();
groupActiveIndex.value = -1;
}) })
onMounted(() => { onMounted(() => {
handleSetWebviewStyle() handleSetWebviewStyle()
@ -332,7 +331,7 @@ const confirmBtnStatus = computed(() => {
} }
switch (groupActiveIndex.value) { switch (groupActiveIndex.value) {
case 0: case 0:
if(allChooseMembers?.value?.length < 3) { if(allChooseMembers?.value?.length < 2) {
disabledT = true disabledT = true
} }
break break
@ -345,7 +344,7 @@ const confirmBtnStatus = computed(() => {
} }
break break
case 2: case 2:
if(allChooseMembers?.value?.length < 3) { if(allChooseMembers?.value?.length < 2) {
disabledT = true disabledT = true
} }
break break

View File

@ -194,17 +194,10 @@
</div> </div>
<div class="load-toolbar pointer" style="transform: scaleY(-1);"> <div class="load-toolbar pointer" style="transform: scaleY(-1);">
<span v-if="loadConfig.status == 0">正在加载数据中 ...</span> <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>
<span <span v-if="loadConfig.status == 2" class="no-more">
v-else-if="
loadConfig.status != 0 &&
loadConfig.status != 1 &&
state.localPageLoadDone
"
class="no-more"
>
没有更多消息了 没有更多消息了
</span> </span>
</div> </div>
@ -1116,6 +1109,9 @@ watch(
) { ) {
// //
state.value.localPageLoadDone = true state.value.localPageLoadDone = true
if (dialogueList?.records?.[0]?.sequence !== 1) {
loadConfig.status = 1
}
} else { } else {
state.value.localPageLoadDone = false state.value.localPageLoadDone = false
} }
@ -1227,9 +1223,9 @@ const onScrollToUpper = async () => {
virtualList.value = tempVirtualList virtualList.value = tempVirtualList
.concat( .concat(
dialogueList.records.slice( dialogueList.records.slice(
Math.min(recordIndex + 11, dialogueList.records.length), recordIndex + 1,
dialogueList.records.length, Math.min(recordIndex + 11, dialogueList.records.length)
), )
) )
.reverse() .reverse()
@ -1522,12 +1518,11 @@ const doMentionUser = (mentionSelect) => {
// mention // mention
const mentionObj = { const mentionObj = {
id: mentionSelect.user_id, // 使 user_id erp_user_id id: mentionSelect.user_id, // 使 user_id erp_user_id
nickname: mentionSelect.nickname nickname: mentionSelect.nickname,
} }
getMentionSelectLists([mentionObj]) getMentionSelectLists([mentionObj])
} }
let avatarPressTimer = null let avatarPressTimer = null
let currentPressItem = null let currentPressItem = null

View File

@ -7,9 +7,9 @@
> >
<div class="avatarImg"> <div class="avatarImg">
<tm-badge <tm-badge
:count="props.data.is_disturb === 1 ? props.data.unread_num : ''" :count="props.data.is_disturb === 0 ? props.data.unread_num : ''"
:dot=" :dot="
props.data.is_disturb === 0 && props.data.unread_num props.data.is_disturb === 1 && props.data.unread_num
? true ? true
: false : false
" "