lifanagju_citu пре 7 месеци
родитељ
комит
c59d1e59fd

+ 18 - 7
src/hooks/web/useIM.js

@@ -180,13 +180,7 @@ export const useIM = () => {
   onMounted( async () => {
     
     // 通过自身userId和企业id获取token和uid
-    const { uid, wsUrl, token } = await getKey()
-    IM.setUid(uid)
-    // 单机模式可以直接设置地址
-    WKSDK.shared().config.addr = 'ws://' + wsUrl // 默认端口为5200
-    // 认证信息
-    WKSDK.shared().config.uid = uid // 用户uid(需要在悟空通讯端注册过)
-    WKSDK.shared().config.token = token // 用户token (需要在悟空通讯端注册过)
+    await resetConfig()
     // 连接状态监听
     WKSDK.shared().connectManager.addConnectStatusListener(connectStatusListener)
     // 常规消息监听
@@ -227,8 +221,25 @@ export const useIM = () => {
     IM.setUnreadCount(count)
     console.log('未读消息总数', count)
   }
+
+
+  async function resetConfig () {
+    const { uid, wsUrl, token } = await getKey()
+    IM.setUid(uid)
+    // 单机模式可以直接设置地址
+    WKSDK.shared().config.addr = 'ws://' + wsUrl // 默认端口为5200
+    // 认证信息
+    WKSDK.shared().config.uid = uid // 用户uid(需要在悟空通讯端注册过)
+    WKSDK.shared().config.token = token // 用户token (需要在悟空通讯端注册过)
+  }
+
+  return {
+    resetConfig
+  }
+
 }
 
+
 export function initConnect (callback = () => {}) {
   useDataSource()
   const IM = useIMStore()

+ 1 - 0
src/layout/message.vue

@@ -27,6 +27,7 @@ const router = useRouter()
 const IM = useIMStore()
 // useDataSource()
 
+// const { resetConfig } = useIM()
 useIM()
 </script>
 

+ 2 - 0
src/store/user.js

@@ -16,6 +16,7 @@ import Snackbar from '@/plugins/snackbar'
 import { timesTampChange } from '@/utils/date'
 import { updateEventList } from '@/utils/eventList'
 import { getBaseInfoDictOfName } from '@/utils/getText'
+import { useIM } from '@/hooks/web/useIM'
 // import Confirm from '@/plugins/confirm'
 
 // import { useIMStore } from './im'
@@ -58,6 +59,7 @@ export const useUserStore = defineStore('user',
             this.accountInfo = res
             localStorage.setItem('accountInfo', JSON.stringify(res))
             localStorage.setItem('expiresTime', res.expiresTime) // token过期时间
+            useIM()
             await this.getUserInfos()
             this.getUserBaseInfos()
             resolve()

+ 9 - 8
src/views/recruit/personal/position/components/details.vue

@@ -438,31 +438,32 @@ const handleSubmit = async (val) =>{
   }, 3000)
 }
 
-// let toDetailsInfo = {}
+let toDetailsInfo = {}
 // 沟通
 const toDetails = async (info) => {
-  // if (info) toDetailsInfo = info // 快速登录弹窗回调使用
-  // else info = toDetailsInfo
+  if (info) toDetailsInfo = info // 快速登录弹窗回调使用
+  else info = toDetailsInfo
   if (!getToken()) {
     showLogin.value = true // 打开快速登录弹窗
     Snackbar.warning('您还未登录,请先登录后再试')
     //
     nextFunc.value = null // 登录成功后要执行的操作
+    // nextFunc.value = toDetails // 登录成功后要执行的操作
     loginCloseWarningWord = '您已取消登录,无法对职位进行沟通' // 取消登录提示语
     return
   }
   try {
-    const userId = info.value.contact.userId
-    const enterpriseId = info.value.contact.enterpriseId
+    const userId = info.contact.userId
+    const enterpriseId = info.contact.enterpriseId
     const textObj = {
       text: defaultText,
       positionInfo: positionInfo.value
     }
     console.log(textObj)
     await prologue({userId, enterpriseId, text: JSON.stringify(textObj)})
-    let url = `/recruit/personal/message?id=${info.value.id}`
-    if (info.value.contact.enterpriseId) {
-      url += `&enterprise=${info.value.contact.enterpriseId}`
+    let url = `/recruit/personal/message?id=${info.id}`
+    if (info.contact.enterpriseId) {
+      url += `&enterprise=${info.contact.enterpriseId}`
     }
 
     router.push(url)