{
@@ -223,6 +236,12 @@ watch(
watch(
() => props.searchText,
(newVal, oldVal) => {
+ // 同步更新 state.searchText
+ state.searchText = newVal
+ // 清空搜索结果
+ state.searchResult = null
+ // 重置页码
+ state.pageNum = 1
//重置点击停留列表项
state.clickStayItem = ''
emits('clickStayItemChange', state.clickStayItem)
@@ -232,18 +251,6 @@ watch(
}
)
-//输入搜索文本
-const inputSearchText = (e) => {
- if (e.trim() != state.searchText.trim()) {
- state.pageNum = 1
- state.searchResult = null // 清空搜索结果
- }
- state.searchText = e.trim()
- if (!e.trim()) {
- state.searchResult = null // 清空搜索结果
- }
-}
-
// ES搜索聊天记录-主页搜索什么都有、指定用户、指定群、群与用户概览
const queryAllSearch = (doClearSearchResult) => {
if (doClearSearchResult) {
@@ -369,6 +376,7 @@ const queryAllSearch = (doClearSearchResult) => {
} else {
state.hasMore = true
}
+ emits('resultTotalCount', total)
// zPaging.value?.completeByTotal([data], total)
} else {
state.searchResult = data
@@ -534,10 +542,9 @@ const doLoadMore = (doClearSearchResult) => {
return
}
state.loading = true
- queryAllSearch(doClearSearchResult)
- .finally(() => {
- state.loading = false
- })
+ queryAllSearch(doClearSearchResult).finally(() => {
+ state.loading = false
+ })
}
\ No newline at end of file
diff --git a/src/components/confirm-box/service.js b/src/components/confirm-box/service.js
new file mode 100644
index 0000000..7ecce25
--- /dev/null
+++ b/src/components/confirm-box/service.js
@@ -0,0 +1,32 @@
+import { createVNode, nextTick, render } from 'vue'
+import ConfirmBox from './index.vue'
+
+export function confirmBox(options) {
+ return new Promise((resolve, reject) => {
+ const container = document.createElement('div')
+ document.body.appendChild(container)
+
+ const props = {
+ ...options,
+ show: false,
+ onCancel: () => {
+ reject()
+
+ },
+ onAfterLeave:()=>{
+ render(null, container)
+ document.body.removeChild(container)
+ },
+ onConfirm: () => {
+ resolve()
+
+ },
+ }
+
+ const vnode = createVNode(ConfirmBox, props)
+ render(vnode, container)
+ nextTick(() => {
+ vnode.component.props.show = true
+ })
+ })
+}
\ No newline at end of file
diff --git a/src/components/talk/message/FileMessage.vue b/src/components/talk/message/FileMessage.vue
index d572506..37828ef 100644
--- a/src/components/talk/message/FileMessage.vue
+++ b/src/components/talk/message/FileMessage.vue
@@ -113,7 +113,7 @@ const handleDownload = () => {
-
+
-
+
{{ fileFormatSize(extra.size) }}
下载
@@ -206,6 +206,7 @@ const handleDownload = () => {
}
.file-icon-container {
+ height: 48px;
position: relative;
}
@@ -229,7 +230,6 @@ const handleDownload = () => {
.file-size {
color: #747474;
font-size: 12px;
- padding: 5px 0 11px;
}
.circle-progress-container {
diff --git a/src/utils/auth.js b/src/utils/auth.js
index ffba221..27dd692 100644
--- a/src/utils/auth.js
+++ b/src/utils/auth.js
@@ -18,7 +18,7 @@ export function isLoggedIn() {
*/
export function getAccessToken() {
// return storage.get(AccessToken) || ''
- return JSON.parse(localStorage.getItem('token'))||'79b5c732d96d2b27a48a99dfd4a5566c43aaa5796242e854ebe3ffc198d6876b9628e7b764d9af65ab5dbb2d517ced88170491b74b048c0ba827c0d3741462cb89dc59ed46653a449af837a8262941caaef1334d640773710f8cd96473bacfb190cba595a5d6a9c87d70f0999a3ebb41147213b31b4bdccffca66a56acf3baab5af0154f0dce360079f37709f78e13711036899344bddb0fb4cf0f2890287cb62c3fcbe33368caa5e213624577be8b8420ab75b1f50775ee16142a4321c5d56995f37354a66a969da98d95ba6e65d142ed097e04b411c1ebad2f62866d0ec7e1838420530a9941dbbcd00490199f8b89eb1ea28c6224649ca60080b7243593f7462085111e3bd3868564aa9a65a16e171ba833d4955a4555f3376cb64b66eb2304dafb03f182fe1719d09e84d345954edbf75b17358196e1378893c8c97b56a6'
+ return JSON.parse(localStorage.getItem('token'))||'46d71a72d8d845ad7ed23eba9bdde260e635407190c2ce1bf7fd22088e41682ea07773ec65cae8946d2003f264d55961f96e0fc5da10eb96d3a348c1664e9644ce2108c311309f398ae8ea1b8200bfd490e5cb6e8c52c9e5d493cbabb163368f8351420451a631dbfa749829ee4cda49b77b5ed2d3dced5d0f2b7dd9ee76ba5465c84a17c23af040cd92b6b2a4ea48befbb5c729dcdad0a9c9668befe84074cc24f78899c1d947f8e7f94c7eda5325b8ed698df729e76febb98549ef3482ae942fb4f4a1c92d21836fa784728f0c5483aab2760a991b6b36e6b10c84f840a6433a6ecc31dee36e8f1c6158818bc89d22cb993eb73d0e2c0e0c8f627f3a8550a8e846cd26e5ec6abe0b57b0470a33b33c4b097d9fc113aa020f9751b55320b4f6b3f812fa4cc357f90f8db108a250b14e477c1e1b2292799d3c8831f7a47de2d6'
}
/**
diff --git a/src/views/message/inner/panel/MultiSelectFooter.vue b/src/views/message/inner/panel/MultiSelectFooter.vue
index 153e79e..dd2081f 100644
--- a/src/views/message/inner/panel/MultiSelectFooter.vue
+++ b/src/views/message/inner/panel/MultiSelectFooter.vue
@@ -1,7 +1,7 @@
@@ -414,7 +422,7 @@ watch(
"
class="mr-10px"
>
-
+
diff --git a/src/views/message/inner/panel/PanelFooter.vue b/src/views/message/inner/panel/PanelFooter.vue
index a611d6a..4499aab 100644
--- a/src/views/message/inner/panel/PanelFooter.vue
+++ b/src/views/message/inner/panel/PanelFooter.vue
@@ -116,15 +116,13 @@ const onSendVideoEvent = async ({ data }) => {
msg_type: 5, // 视频消息类型
user_id: props.uid,
receiver_id: props.receiver_id,
- nickname: '我', // 本地显示
- avatar: userStore.avatar, // 本地显示可能不需要
is_revoke: 0,
is_mark: 0,
is_read: 1,
content: '',
created_at: parseTime(new Date(), '{y}-{m}-{d} {h}:{i}'),
extra: {
- url: '', // 上传完成后会更新
+ url: '',
size: data.size,
is_uploading: true,
upload_id: uploadId,
@@ -141,35 +139,12 @@ const onSendVideoEvent = async ({ data }) => {
data,
props.talk_type,
props.receiver_id,
- dialogueStore.talk.username,
uploadId,
async (percentage) => {
dialogueStore.updateUploadProgress(uploadId, percentage)
},
async () => {
dialogueStore.batchDelDialogueRecord([uploadId])
- // console.log('videoData', videoData)
- // // 上传完成后的回调
-
- // // 更新临时消息为最终消息
- // dialogueStore.completeUpload(uploadId, {
- // url: videoData.data.ori_url,
- // cover: videoData.data.cover_url
- // })
-
- // // 上传成功后,发送正式消息给服务端
- // let finalMessage = {
- // type: 'video',
- // url: videoData.data.ori_url,
-
- // size: data.size
- // }
-
- // // 发送真实消息到服务端
- // onSendMessage(finalMessage, () => {
- // // 上传成功且消息发送成功后,删除临时消息
- // dialogueStore.batchDelDialogueRecord([uploadId])
- // })
}
)
}
@@ -185,10 +160,10 @@ const onSendFileEvent = ({ data }) => {
if (data.size > maxsize) {
return window['$message'].warning('上传文件不能超过100M!')
}
- const uploadId = `file-${Date.now()}-${Math.floor(Math.random() * 1000)}`
+ const clientUploadId = `file-${Date.now()}-${Math.floor(Math.random() * 1000)}`
const tempMessage = {
- msg_id: uploadId,
+ msg_id: clientUploadId,
sequence: Date.now(),
talk_type: props.talk_type,
msg_type: 6,
@@ -204,20 +179,19 @@ const onSendFileEvent = ({ data }) => {
url: '',
size: data.size,
is_uploading: true,
- upload_id: uploadId,
+ upload_id: clientUploadId,
percentage: 0
},
- erp_user_id: 4692,
float: 'right'
}
dialogueStore.addDialogueRecord(tempMessage)
- uploadsStore.initUploadFile(data, props.talk_type, props.receiver_id, dialogueStore.talk.username,uploadId,
+ uploadsStore.initUploadFile(data, props.talk_type, props.receiver_id,clientUploadId,
async (percentage) => {
- dialogueStore.updateUploadProgress(uploadId, percentage)
+ dialogueStore.updateUploadProgress(clientUploadId, percentage)
},
async () => {
- dialogueStore.batchDelDialogueRecord([uploadId])
+ dialogueStore.batchDelDialogueRecord([clientUploadId])
}
)
}
diff --git a/vite.config.ts b/vite.config.ts
index dd4857f..83a792e 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -47,7 +47,7 @@ export default defineConfig(({ mode }) => {
compressPlugin(),
UnoCSS(),
vueDevTools({
- launchEditor: 'cursor',
+ launchEditor: 'trae',
})
],
define: {
From 19a6c89b76a8c3f55426e64cd950e40ac5c6460e Mon Sep 17 00:00:00 2001
From: Phoenix <64720302+Concur-max@users.noreply.github.com>
Date: Mon, 26 May 2025 16:58:12 +0800
Subject: [PATCH 9/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8A=E4=BC=A0?=
=?UTF-8?q?=E8=BF=9B=E5=BA=A6=E6=98=BE=E7=A4=BA=E5=92=8C=E9=87=8D=E8=AF=95?=
=?UTF-8?q?=E9=80=BB=E8=BE=91=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在FileMessage.vue中,仅当上传进度大于0时显示进度圆环,避免初始状态显示
- 在PanelContent.vue中,为retry函数添加参数传递,确保重试操作针对特定项目
- 在uploads.ts中,添加暂停状态检查并处理上传失败时的进度回调
---
src/components/talk/message/FileMessage.vue | 2 +-
src/store/modules/uploads.ts | 3 ++-
src/views/message/inner/panel/PanelContent.vue | 4 ++--
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/components/talk/message/FileMessage.vue b/src/components/talk/message/FileMessage.vue
index c7133d7..7b41ad7 100644
--- a/src/components/talk/message/FileMessage.vue
+++ b/src/components/talk/message/FileMessage.vue
@@ -122,7 +122,7 @@ const handleDownload = () => {
-
+