From cb41751b867a3777036e76d0f187a6cd256b2a60 Mon Sep 17 00:00:00 2001
From: wangyifeng <812766448@qq.com>
Date: Thu, 5 Jun 2025 09:19:17 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8D=95=E8=81=8A?=
=?UTF-8?q?=E7=9A=84=E5=B7=B2=E8=AF=BB=E6=9C=AA=E8=AF=BB=E4=B9=9F=E4=BC=9A?=
=?UTF-8?q?=E7=82=B9=E5=87=BB=E6=89=93=E5=BC=80=E5=B7=B2=E8=AF=BB=E8=AF=A6?=
=?UTF-8?q?=E6=83=85=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/message/inner/panel/PanelContent.vue | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/views/message/inner/panel/PanelContent.vue b/src/views/message/inner/panel/PanelContent.vue
index 130bd0a..1540e6a 100644
--- a/src/views/message/inner/panel/PanelContent.vue
+++ b/src/views/message/inner/panel/PanelContent.vue
@@ -870,12 +870,12 @@ const loadMoreReadListDetail = () => {
-
-
- {{
+ {{
item.read_total_num > 0 ? '已读' : '未读'
}}
-
+
+
+
已读 ({{ item?.read_total_num || 0 }}/{{
props.num - 1 > 0 ? props.num - 1 : 0
}})
@@ -1139,7 +1139,6 @@ const loadMoreReadListDetail = () => {
line-height: 17px;
margin: 5px 0 0;
span {
- cursor: pointer;
}
}
From a5a70391a4b5c439b93c69fe5ea4b9498a832fd1 Mon Sep 17 00:00:00 2001
From: Phoenix <64720302+Concur-max@users.noreply.github.com>
Date: Thu, 5 Jun 2025 11:41:06 +0800
Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0ERP=E7=94=A8?=
=?UTF-8?q?=E6=88=B7ID=E5=AD=97=E6=AE=B5=E5=B9=B6=E4=BC=98=E5=8C=96?=
=?UTF-8?q?=E5=A4=9A=E5=A4=84=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 在ISession接口中添加erp_user_id字段以支持ERP系统集成
- 更新.env.test环境变量添加VITE_PAGE_URL配置
- 启用vueDevTools插件用于开发调试
- 移除好友删除选项以限制用户操作
- 优化消息发送逻辑,过滤空白内容
- 调整头像右键菜单触发条件
- 更新文件消息打开链接使用环境变量
- 修改会话菜单中用户信息跳转使用erp_user_id
- 更新默认access token值
---
env/.env.test | 1 +
src/components/editor/Editor.vue | 3 +--
src/components/talk/message/FileMessage.vue | 2 +-
src/hooks/useFriendsMenu.ts | 2 +-
src/hooks/useSessionMenu.ts | 12 +++++-------
src/types/chat.ts | 1 +
src/utils/auth.js | 2 +-
src/views/message/inner/panel/PanelContent.vue | 5 ++++-
vite.config.ts | 6 +++---
9 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/env/.env.test b/env/.env.test
index e7f905e..43930b6 100644
--- a/env/.env.test
+++ b/env/.env.test
@@ -8,4 +8,5 @@ VUE_APP_PREVIEW=false
VITE_BASE_API=http://114.218.158.24:8503
VITE_SOCKET_API=ws://114.218.158.24:8504
VITE_EPR_BASEURL=http://114.218.158.24:9020
+VITE_PAGE_URL=http://172.16.100.93:9032
VUE_APP_WEBSITE_NAME=""
\ No newline at end of file
diff --git a/src/components/editor/Editor.vue b/src/components/editor/Editor.vue
index fef3e47..fc15f55 100644
--- a/src/components/editor/Editor.vue
+++ b/src/components/editor/Editor.vue
@@ -437,8 +437,7 @@ function onClipboardMatcher(node: any, Delta) {
function onSendMessage() {
var delta = getQuill().getContents()
let data = deltaToMessage(delta) // 转换Delta为消息格式
-
- if (data.items.length === 0) {
+ if (data.items.length === 0||!data.items[0].content.trim()) {
return // 没有内容不发送
}
diff --git a/src/components/talk/message/FileMessage.vue b/src/components/talk/message/FileMessage.vue
index 9653726..5649a89 100644
--- a/src/components/talk/message/FileMessage.vue
+++ b/src/components/talk/message/FileMessage.vue
@@ -88,7 +88,7 @@ const strokeDashoffset = computed(() =>
const handleClick = () => {
if(!props.extra.is_uploading){
window.open(
- `${window.location.origin}/office?url=${props.extra.path}`,
+ `${import.meta.env.VITE_PAGE_URL}/office?url=${props.extra.path}`,
'_blank',
'width=1200,height=900,left=200,top=200,toolbar=no,menubar=no,scrollbars=yes,resizable=yes,location=no,status=no'
);
diff --git a/src/hooks/useFriendsMenu.ts b/src/hooks/useFriendsMenu.ts
index 81b5e85..d7d1ea2 100644
--- a/src/hooks/useFriendsMenu.ts
+++ b/src/hooks/useFriendsMenu.ts
@@ -21,7 +21,7 @@ export function useFriendsMenu() {
dropdown.item = Object.assign({}, item)
dropdown.options = []
- dropdown.options.push({ label: '删除好友', key: 'delete' })
+ // dropdown.options.push({ label: '删除好友', key: 'delete' })
dropdown.x = e.clientX
dropdown.y = e.clientY
diff --git a/src/hooks/useSessionMenu.ts b/src/hooks/useSessionMenu.ts
index 3bed761..7762996 100644
--- a/src/hooks/useSessionMenu.ts
+++ b/src/hooks/useSessionMenu.ts
@@ -71,11 +71,11 @@ export function useSessionMenu() {
})
if (item.talk_type == 1) {
- options.push({
+ // options.push({
- label: '删除好友',
- key: 'delete_contact'
- })
+ // label: '删除好友',
+ // key: 'delete_contact'
+ // })
} else {
options.push({
@@ -107,9 +107,7 @@ export function useSessionMenu() {
}
const onUserInfo = (item: ISession) => {
- console.error('item',item)
-
- user(item.id)
+ user(item.erp_user_id)
}
// 移除会话
diff --git a/src/types/chat.ts b/src/types/chat.ts
index caef493..d03f871 100644
--- a/src/types/chat.ts
+++ b/src/types/chat.ts
@@ -27,6 +27,7 @@ export interface ISession {
content?: string // 消息内容
last_message?: ISessionLastMessage
draft_text?: string // 草稿文本
+ erp_user_id:number
}
// 消息记录
diff --git a/src/utils/auth.js b/src/utils/auth.js
index 786e2c0..f4f176c 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'))||'46d71a72d8d845ad7ed23eba9bdde260e635407190c2ce1bf7fd22088e41682ea07773ec65cae8946d2003f264d55961f96e0fc5da10eb96d3a348c1664e9644ce2108c311309f398ae8ea1b8200bfd490e5cb6e8c52c9e5d493cbabb163368f8351420451a631dbfa749829ee4cda49b77b5ed2d3dced5d0f2b7dd9ee76ba5465c84a17c23af040cd92b6b2a4ea48befbb5c729dcdad0a9c9668befe84074cc24f78899c1d947f8e7f94c7eda5325b8ed698df729e76febb98549ef3482ae942fb4f4a1c92d21836fa784728f0c5483aab2760a991b6b36e6b10c84f840a6433a6ecc31dee36e8f1c6158818bc89d22a02b52442e2e6a79ca35b2fa54a4bb215abd3b9cc8ad2ef018b380a88e93a2fc55fb3e36695ae76a0ea52c973374861c70339249f89f36d787b0dfa7fc99339470dbc626eb5ff42232137ef97447e79f'
+ return JSON.parse(localStorage.getItem('token'))||'46d71a72d8d845ad7ed23eba9bdde260e635407190c2ce1bf7fd22088e41682ea07773ec65cae8946d2003f264d55961f96e0fc5da10eb96d3a348c1664e9644ce2108c311309f398ae8ea1b8200bfd490e5cb6e8c52c9e5d493cbabb163368f8351420451a631dbfa749829ee4cda49b77b5ed2d3dced5d0f2b7dd9ee76ba5465c84a17c23af040cd92b6b2a4ea48befbb5c729dcdad0a9c9668befe84074cc24f78899c1d947f8e7f94c7eda5325b8ed698df729e76febb98549ef3482ae942fb4f4a1c92d21836fa784728f0c5483aab2760a991b6b36e6b10c84f840a6433a6ecc31dee36e8f1c6158818bc89d22726726265e9af0db370a54ea5ee002b43662d571b84c8468ac15330f79503a5cd5e72282d8bee92749b1a3c1b7fd87ae70b64b90e437e84c1b558c64a35e181b2ecf5db3007680c3607eac1edee7f59d'
}
/**
diff --git a/src/views/message/inner/panel/PanelContent.vue b/src/views/message/inner/panel/PanelContent.vue
index 4c533d5..5cb1cc9 100644
--- a/src/views/message/inner/panel/PanelContent.vue
+++ b/src/views/message/inner/panel/PanelContent.vue
@@ -323,13 +323,16 @@ const retry=(item:any)=>{
}
const onContextMenuAvatar=(e:any,item:any)=>{
- e.preventDefault()
+ if(item.talk_type!==1){
+ e.preventDefault()
if(item.float!=='right'){
bus.emit(EditorConst.Mention, {
id: item.user_id,
value: item.nickname
})
}
+ }
+
}
diff --git a/vite.config.ts b/vite.config.ts
index 715bc77..83a792e 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -46,9 +46,9 @@ export default defineConfig(({ mode }) => {
vueJsx({}),
compressPlugin(),
UnoCSS(),
- // vueDevTools({
- // launchEditor: 'trae',
- // })
+ vueDevTools({
+ launchEditor: 'trae',
+ })
],
define: {
__APP_ENV__: env.APP_ENV
From ef0eb903a7750dd6a807b9ad18e1fd0debaccfe1 Mon Sep 17 00:00:00 2001
From: Phoenix <64720302+Concur-max@users.noreply.github.com>
Date: Thu, 5 Jun 2025 14:13:50 +0800
Subject: [PATCH 3/3] =?UTF-8?q?feat(=E6=B6=88=E6=81=AF=E7=BB=84=E4=BB=B6):?=
=?UTF-8?q?=20=E4=BC=98=E5=8C=96=E5=9B=BE=E7=89=87=E6=B6=88=E6=81=AF?=
=?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BD=93=E9=AA=8C=E5=B9=B6=E4=BF=AE=E5=A4=8D?=
=?UTF-8?q?=E6=96=87=E4=BB=B6=E6=89=A9=E5=B1=95=E5=90=8D=E8=8E=B7=E5=8F=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. 在图片消息组件中添加上传进度显示和加载状态
2. 重构图片上传逻辑,先显示本地预览再上传
3. 修复文件消息组件中从文件名获取扩展名改为从文件路径获取
4. 根据消息浮动方向调整提及文本颜色
重构了图片上传流程,现在会先显示本地预览图片,然后在上传过程中显示进度条。同时修复了文件扩展名获取逻辑,现在从文件路径而非文件名获取扩展名。优化了提及文本的颜色显示,使其根据消息浮动方向(左/右)显示不同颜色。
---
src/components/editor/Editor.vue | 19 +------
src/components/talk/message/FileMessage.vue | 6 +-
src/components/talk/message/ImageMessage.vue | 35 ++++++++++--
src/components/talk/message/TextMessage.vue | 2 +-
src/views/message/inner/panel/PanelFooter.vue | 56 ++++++++++++++++++-
5 files changed, 92 insertions(+), 26 deletions(-)
diff --git a/src/components/editor/Editor.vue b/src/components/editor/Editor.vue
index fc15f55..5bc1b8e 100644
--- a/src/components/editor/Editor.vue
+++ b/src/components/editor/Editor.vue
@@ -363,22 +363,9 @@ async function onUploadFile(e: any) {
console.log("文件类型"+file.type)
if (file.type.indexOf('image/') === 0) {
console.log("进入图片")
- // 处理图片文件
- const quill = getQuill()
- let index = getQuillSelectionIndex()
-
- // 删除编辑器中多余的换行符
- if (index == 1 && quill.getLength() == 1 && quill.getText(0, 1) == '\n') {
- quill.deleteText(0, 1)
- index = 0
- }
-
- // 上传图片并插入到编辑器中
- let src = await onUploadImage(file)
- if (src) {
- quill.insertEmbed(index, 'image', src)
- quill.setSelection(index + 1)
- }
+ // 处理图片文件 - 立即显示临时消息,然后上传
+ let fn = emitCall('image_event', file, () => {})
+ emit('editor-event', fn)
return
}
diff --git a/src/components/talk/message/FileMessage.vue b/src/components/talk/message/FileMessage.vue
index 5649a89..8129e4e 100644
--- a/src/components/talk/message/FileMessage.vue
+++ b/src/components/talk/message/FileMessage.vue
@@ -49,7 +49,7 @@ const PPT_EXTENSIONS = ['PPT', 'PPTX', 'PPS', 'PPSX']
// 获取文件类型信息
const fileInfo = computed(() => {
- const extension = getFileExtension(props.extra.name)
+ const extension = getFileExtension(props.extra.path)
if (EXCEL_EXTENSIONS.includes(extension)) {
return fileTypes.EXCEL
}
@@ -63,8 +63,8 @@ const fileInfo = computed(() => {
})
// 获取文件扩展名
-function getFileExtension(filename) {
- const parts = filename.split('.')
+function getFileExtension(filepath) {
+ const parts = filepath.split('.')
return parts.length > 1 ? parts.pop().toUpperCase() : ''
}
diff --git a/src/components/talk/message/ImageMessage.vue b/src/components/talk/message/ImageMessage.vue
index 389c220..588a3a8 100644
--- a/src/components/talk/message/ImageMessage.vue
+++ b/src/components/talk/message/ImageMessage.vue
@@ -1,9 +1,9 @@