新版交易所前段管理后台
1
PC-20250623MANY\Administrator
2025-07-06 0363875eb333c67529c8b27221a6da45d1a50bfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import store from '@/store'
import router from '@/router'
import { parseTime } from '@/utils/functions'
import { ServeCreateTalkList } from '@/api/chat'
 
const KEY_INDEX_NAME = 'send_message_index_name'
 
/**
 * 通过对话索引查找对话列表下标
 *
 * @param {String} index_name
 */
export function findTalkIndex(index_name) {
  return store.state.talks.items.findIndex(
    item => item.index_name == index_name
  )
}
 
/**
 * 通过对话索引查找对话列表
 *
 * @param {String} index_name
 */
export function findTalk(index_name) {
  return store.state.talks.items.find(item => item.index_name == index_name)
}
 
/**
 * 格式化聊天对话列表数据
 *
 * @param {Object} params
 */
export function formateTalkItem(params) {
  let options = {
    id: 0,
    talk_type: 1,
    receiver_id: 0,
    name: '未设置昵称',
    remark_name: '',
    avatar: '',
    is_disturb: 0,
    is_top: 0,
    is_online: 0,
    is_robot: 0,
    unread_num: 0,
    content: '......',
    draft_text: '',
    msg_text: '',
    index_name: '',
    created_at: parseTime(new Date()),
  }
 
  Object.assign(options, params)
  
  options.index_name = `${options.talk_type}_${options.receiver_id}`
 
  return options
}
 
/**
 * 打开指定对话窗口
 *
 * @param {Integer} talk_type 对话类型[1:私聊;2:群聊;]
 * @param {Integer} receiver_id 接收者ID
 */
export function toTalk(talk_type, receiver_id) {
  ServeCreateTalkList({
    talk_type: parseInt(talk_type),
    receiver_id: parseInt(receiver_id),
  }).then(({ code, data }) => {
    if (code == 200) {
      sessionStorage.setItem(KEY_INDEX_NAME, `${talk_type}_${receiver_id}`)
 
      if (findTalkIndex(`${talk_type}_${receiver_id}`) == -1) {
        store.commit('PUSH_TALK_ITEM', formateTalkItem(data))
      }
 
      router.push({
        path: '/message',
        query: {
          v: new Date().getTime(),
        },
      })
    }
  })
}
 
/**
 * 获取需要打开的对话索引值
 *
 * @returns
 */
export function getCacheIndexName() {
  let index_name = sessionStorage.getItem(KEY_INDEX_NAME)
  if (index_name) {
    sessionStorage.removeItem(KEY_INDEX_NAME)
  }
 
  return index_name
}