From f5d8ab546c87d04ce93be5e8c1f9f40c3b848644 Mon Sep 17 00:00:00 2001 From: doublekou <951513186@qq.com> Date: Fri, 24 Nov 2023 17:26:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=B1=BB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customermanagement/customerList/index.ts | 10 + .../customermanagement/customerList/types.ts | 1 + src/assets/iconfont.css | 38 ++ src/assets/images/zanwu.png | Bin 0 -> 13135 bytes src/components/Message/index.vue | 455 ++++++++++++++++++ src/components/Message/messageSearch.vue | 72 +++ src/hooks/websocket.ts | 125 ++--- .../RightContent/AvatarDropdown.vue | 178 +++++-- src/main.ts | 1 + src/views/basic/iframe/iframeSearch.vue | 69 +++ src/views/basic/iframe/index.vue | 3 + .../customerList/customerList.vue | 45 +- src/views/login/components/LoginContent.vue | 19 + types/components.d.ts | 2 + vite.config.ts | 4 +- 15 files changed, 925 insertions(+), 97 deletions(-) create mode 100644 src/assets/iconfont.css create mode 100644 src/assets/images/zanwu.png create mode 100644 src/components/Message/index.vue create mode 100644 src/components/Message/messageSearch.vue create mode 100644 src/views/basic/iframe/iframeSearch.vue diff --git a/src/api/customermanagement/customerList/index.ts b/src/api/customermanagement/customerList/index.ts index 928cedc..6621011 100644 --- a/src/api/customermanagement/customerList/index.ts +++ b/src/api/customermanagement/customerList/index.ts @@ -33,3 +33,13 @@ export function updateResource(resourcesDto: resourcesDtoDTO) { // export function deleteUser(userId: number) { // return httpClient.delete>(`/system/user/${userId}`) // } + +/** + * 新消息分页查询 + * @param pageParams 分页参数 + */ +export function messageAccessLogs(pageParams: SysUserPageParam) { + return httpClient.get('/notify/user-announcement/page', { + params: pageParams + }) +} diff --git a/src/api/customermanagement/customerList/types.ts b/src/api/customermanagement/customerList/types.ts index 6e67763..6b4818d 100644 --- a/src/api/customermanagement/customerList/types.ts +++ b/src/api/customermanagement/customerList/types.ts @@ -18,6 +18,7 @@ export type CustomerListQO = { startTime?: string // 结束时间 endTime?: string + clueId?: string } /** * 我的线索record diff --git a/src/assets/iconfont.css b/src/assets/iconfont.css new file mode 100644 index 0000000..1585a12 --- /dev/null +++ b/src/assets/iconfont.css @@ -0,0 +1,38 @@ +@font-face { + font-family: 'iconfont'; /* Project id 4340011 */ + src: url('//at.alicdn.com/t/c/font_4340011_rzfq6m1kbn.woff2?t=1700639506016') format('woff2'), + url('//at.alicdn.com/t/c/font_4340011_rzfq6m1kbn.woff?t=1700639506016') format('woff'), + url('//at.alicdn.com/t/c/font_4340011_rzfq6m1kbn.ttf?t=1700639506016') format('truetype'); +} + +.iconfont { + font-family: 'iconfont' !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-xin2:before { + content: '\e647'; +} + +.icon-xin1:before { + content: '\e600'; +} + +.icon-xin:before { + content: '\e6c9'; +} + +.icon-xiaoxi1:before { + content: '\e611'; +} + +.icon-xiaoxizhongxin:before { + content: '\e7d9'; +} + +.icon-xiaoxi:before { + content: '\e6c5'; +} diff --git a/src/assets/images/zanwu.png b/src/assets/images/zanwu.png new file mode 100644 index 0000000000000000000000000000000000000000..11806c8376c765537b0379fff129b97dc22b6608 GIT binary patch literal 13135 zcmV-VGqB8wP)PyA07*naRCr$PeF>BtS9$LD->P0_l}6HNWZCj2%QmvL7zwW!kTEeB8-uaI5D1AA z;}=4bcXA%&k(az@P98jxoNOc^8_6LMNMc9=fv~Rz>=-YyB+Co3C2O&^nbGV$y;R-* zo&Q$d>gww1+0?UHQ_`I7uI1KU{_pHSMRAU&`k0J8HWZ*UZU zmKiyh>AK5S)9BLhEcL)b=z)0$$m1j2?UeW%0D1`Y@y)B~_ZC9OEY)GD2Nnbe+12NN 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 +
+
+
消息列表
+
查看更多
+
+
+
+ +
+
+
+ 【{{ item.type === 1 ? '系统公告' : '导出通知' }}】{{ item.title }} +
+
{{ item.createTime }}
+
+
+ {{ item.content }} +
+
+ +
+
+ +
+
+
+ + +
+
+ +
+ +
+ + + + + + + + +
+
+ + + + diff --git a/src/components/Message/messageSearch.vue b/src/components/Message/messageSearch.vue new file mode 100644 index 0000000..1cba931 --- /dev/null +++ b/src/components/Message/messageSearch.vue @@ -0,0 +1,72 @@ + + + diff --git a/src/hooks/websocket.ts b/src/hooks/websocket.ts index aab8883..9b8b5f7 100644 --- a/src/hooks/websocket.ts +++ b/src/hooks/websocket.ts @@ -1,57 +1,68 @@ -// import { useWebSocket, type UseWebSocketReturn } from '@vueuse/core' -// import { useUserStore } from '@/stores/user-store' -// import { emitter } from '@/hooks/mitt' - -// let useWebSocketReturn: UseWebSocketReturn | undefined = undefined -// const useAdminWebSocket = () => { -// if (useWebSocketReturn && useWebSocketReturn.status.value != 'CLOSED') { -// return useWebSocketReturn -// } - -// const { accessToken } = useUserStore() - -// // ws地址 -// const baseUri = import.meta.env.VITE_API_URL -// const host = window.location.host -// const wsUri = `ws://${host}${baseUri}/ws?access_token=${accessToken}` - -// useWebSocketReturn = useWebSocket(wsUri, { -// autoReconnect: { -// retries: 3, -// delay: 1000, -// onFailed() { -// console.error('Failed to connect WebSocket after 3 retries') -// } -// }, -// heartbeat: { -// message: '{"type": "ping"}', -// interval: 30000 -// } -// }) - -// watch( -// () => useWebSocketReturn!.data.value, -// value => { -// let event -// let dataMsg - -// try { -// dataMsg = JSON.parse(value) -// event = dataMsg.type -// // 心跳响应跳过发布 -// if (event === 'pong') { -// return -// } -// } catch (e) { -// // 纯文本消息 -// event = 'plaintext' -// dataMsg = value -// } -// emitter.emit(event, dataMsg) -// } -// ) - -// return useWebSocketReturn -// } - -// export default useAdminWebSocket +import { useWebSocket, type UseWebSocketReturn } from '@vueuse/core' +import { useUserStore } from '@/stores/user-store' +import { emitter } from '@/hooks/mitt' + +let useWebSocketReturn: UseWebSocketReturn | undefined = undefined +//它是一个自定义的Vue hook,用于管理WebSocket连接 +const useAdminWebSocket = () => { + //检查是否已经存在WebSocket连接,以及连接状态。如果WebSocket连接存在且状态不是已关闭,则直接返回现有的WebSocket连接。 + if (useWebSocketReturn && useWebSocketReturn.status.value != 'CLOSED') { + return useWebSocketReturn + } + + const { accessToken } = useUserStore() + console.log(accessToken, 'accessToken') + + // ws地址 + const baseUri = import.meta.env.VITE_API_URL + const host = window.location.host + console.log(host, 'host') + const wsUri = `ws://${host}${baseUri}/ws?access_token=${accessToken}` + console.log(wsUri, 'wsUri') + + //使用useWebSocket函数创建WebSocket连接,并配置自动重连和心跳机制 + useWebSocketReturn = useWebSocket(wsUri, { + autoReconnect: { + retries: 3, + delay: 1000, + onFailed() { + console.error('Failed to connect WebSocket after 3 retries') + } + }, + heartbeat: { + message: '{"type": "ping"}', + interval: 30000 + } + }) + + //监听WebSocket的数据变化,根据接收到的消息类型进行相应的处理,并通过emitter发布事件或数据。 + watch( + () => useWebSocketReturn!.data.value, + value => { + let event + let dataMsg + + try { + dataMsg = JSON.parse(value) + event = dataMsg.type + // 心跳响应跳过发布 + if (event === 'pong') { + return + } + } catch (e) { + // 纯文本消息 + event = 'plaintext' + dataMsg = value + } + emitter.emit(event, dataMsg) + console.log(dataMsg, 'dataMsg') + // Show alert with the received message + alert(JSON.stringify(dataMsg)) + } + ) + + return useWebSocketReturn +} + +//将创建的WebSocket连接对象返回给调用者 +export default useAdminWebSocket diff --git a/src/layouts/components/RightContent/AvatarDropdown.vue b/src/layouts/components/RightContent/AvatarDropdown.vue index b5f59ae..11c3187 100644 --- a/src/layouts/components/RightContent/AvatarDropdown.vue +++ b/src/layouts/components/RightContent/AvatarDropdown.vue @@ -2,46 +2,71 @@ - - - - - - {{ currentUser.nickname }} - - - diff --git a/src/views/basic/iframe/index.vue b/src/views/basic/iframe/index.vue index e6bd386..91930ab 100644 --- a/src/views/basic/iframe/index.vue +++ b/src/views/basic/iframe/index.vue @@ -8,12 +8,15 @@