const lineChatSocket = {
  state: {
    linesConnected: false, // 是否连接
    errorMsg: '', // 错误信息
    messageCon: '', // 消息内容
    isActive: false, // 聊天列表是否选中
    noticeMsg: '', // 注意提示信息
    listCode: '', // 客户code
    userList: [], // 聊天成员信息
    currentSessionId: null, // 当前选中的会话id
    collUserCode: '', // 当前同事code
    chatUserCode: '', // 客服code
    currentName: '' // 当前选中的会话name
  },
  mutations: {
    lineChatSOCKET_CONNECT(state) {
      state.linesConnected = true
    },
    lineChatSOCKET_ERRORMSG(state, message) {
      state.errorMsg = message
    },

    lineChatSOCKET_MESSAGECON(state, message) {
      state.messageCon = message
    },
    lineChatSOCKET_LISTCODE(state, message) {
      state.listCode = message
    },
    lineChatSOCKET_NOTICEMSG(state, message) {
      state.noticeMsg = message
    },
    lineChatSOCKET_USERLIST(state, message) {
      let ishasuser = false
      for (const i of state.userList) {
        if (i.sessionid === message.sessionid) {
          ishasuser = true
        }
      }
      if (!ishasuser) {
        state.userList.push(message)
      }
      if (state.userList.length > 0) {
        state.currentSessionId = state.userList[0].sessionid
        state.currentName = state.userList[0].user.name
        state.messageCon = state.userList[0]
      }
    },
    lineChatSOCKET_CURRENTSESSIONID(state, message) {
      state.currentSessionId = message.id
      state.currentName = message.name
    },
    lineChatSOCKET_CHATUSERCODE(state, message) {
      state.chatUserCode = message
    },
    lineChatSOCKET_COLLUSERCODE(state, message) {
      state.collUserCode = message.code
      state.currentName = message.name
    }
  },
  actions: {
    // 连接
    IsConnectWs({
      commit
    }, msg) {
      commit('lineChatSOCKET_CONNECT', msg)
    },
    // 错误消息
    errorMsg({
      commit
    }, msg) {
      commit('lineChatSOCKET_ERRORMSG', msg)
    },
    // 消息记录
    appendMsg({
      commit
    }, msg) {
      // commit('lineChatSOCKET_SELF',msg[0]);
      commit('lineChatSOCKET_MESSAGECON', msg)
      // commit('lineChatSOCKET_LISTCODE',msg[2]);
    },
    getNoticeMsg({
      commit
    }, msg) { // 返回提示信息
      commit('lineChatSOCKET_NOTICEMSG', msg)
    },
    // 获取聊天成员信息
    getUserList({
      commit
    }, msg) {
      commit('lineChatSOCKET_USERLIST', msg)
    },
    // 获取选择的会话id
    getSelectSessionId({
      commit
    }, msg) {
      commit('lineChatSOCKET_CURRENTSESSIONID', msg)
    },
    // 获取客服code
    getChatUserCode({
      commit
    }, msg) {
      commit('lineChatSOCKET_CHATUSERCODE', msg)
    },
    // 获取同事code
    getCollUsercode({
      commit
    }, msg) {
      commit('lineChatSOCKET_COLLUSERCODE', msg)
    }

  }
}

export default lineChatSocket
