From 37be5e9b0153d5881fbceb4867455c6be5fa3921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=BA=A2=E4=B8=BD?= <1181930680@qq.com> Date: Wed, 18 Dec 2024 10:14:47 +0800 Subject: [PATCH] Websocket --- src/App.vue | 19 +++- src/api/system/user.ts | 11 ++ src/components/Websocket/index.vue | 155 +++++++++++++++++++++++++++++ src/views/system/user/index.vue | 31 +++++- src/views/system/user/sendMsg.vue | 80 +++++++++++++++ 5 files changed, 293 insertions(+), 3 deletions(-) create mode 100644 src/components/Websocket/index.vue create mode 100644 src/views/system/user/sendMsg.vue diff --git a/src/App.vue b/src/App.vue index 9bae1d8..b16255a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,20 +5,24 @@ + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue index 66e9f60..10899fe 100644 --- a/src/views/system/user/index.vue +++ b/src/views/system/user/index.vue @@ -84,6 +84,14 @@ 导出 + + + 发送消息 + @@ -95,6 +103,11 @@ @success="reloadTable('noRefresh')" /> + @@ -103,6 +116,7 @@ import { ColProps } from 'element-plus'; import { TableAction } from '@/components/Table'; import { useForm } from '@/components/Form/index'; + import { initWebSocket,sendWebSocket } from '@/components/Websocket/index'; import { getUserList, userDelete, @@ -117,14 +131,16 @@ import { downloadByData } from '@/utils/file/download'; import printJS from 'print-js'; const userId = ref(0); + const receiveId = ref('') const tableRef = ref(); const editVisible = ref(false); + const sendMsgVisible = ref(false); const importVisible = ref(false); const selectionData = ref([]); const exportLoading = ref(false); const editDialog = defineAsyncComponent(() => import('./edit.vue')); + const sendMsgDialog = defineAsyncComponent(() => import('./sendMsg.vue')); const userUpload = defineAsyncComponent(() => import('./userUpload.vue')); - /** * 定义查询参数 */ @@ -313,6 +329,19 @@ exportLoading.value = false; message('导出成功'); }; + /** + * 发送消息 + */ + const sendMessage=async ()=>{ + if(selectionData.value.length==0){ + message('请选择数据','error') + return + } + let ids = []; + ids = selectionData.value.map(({ id }) => id); + receiveId.value = ids.join() + sendMsgVisible.value = true + } diff --git a/src/views/system/user/sendMsg.vue b/src/views/system/user/sendMsg.vue new file mode 100644 index 0000000..06dfcc0 --- /dev/null +++ b/src/views/system/user/sendMsg.vue @@ -0,0 +1,80 @@ + +