receiveInvite.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { EMClient } from '@/EaseIM';
  2. import Vue from 'vue';
  3. const ReceiveInviteStore = {
  4. state: {
  5. receiveInviteList: [],
  6. },
  7. mutations: {
  8. RESET_RECEIVE_INVITE_STIRE: (state) => {
  9. state.receiveInviteList = [];
  10. },
  11. INIT_RECEIVE_INVITE_LIST(state, payload) {
  12. const res = uni.getStorageSync(`EM_${EMClient.user}_RECEOVE_INVITE_LIST`);
  13. res && state.receiveInviteList.push(...res);
  14. !res && (state.receiveInviteList = []);
  15. },
  16. ADD_NEW_RECEIVE_INVITE_MSG(state, payload) {
  17. console.log('UPDATE_RECEIVE_INVITE_LIST', payload);
  18. const params = {
  19. isHandled: false,
  20. ...payload,
  21. };
  22. if (state.receiveInviteList.length) {
  23. const _index = state.receiveInviteList.findIndex(
  24. (item) => item.from === payload.from
  25. );
  26. //如果邀请已经存在且类型相同
  27. if (
  28. _index > -1 &&
  29. payload.chatType === state.receiveInviteList[_index].chatType
  30. ) {
  31. state.receiveInviteList.splice(_index, 1, params);
  32. } else {
  33. state.receiveInviteList.unshift(params);
  34. }
  35. } else {
  36. state.receiveInviteList.push(params);
  37. }
  38. uni.setStorageSync(
  39. `EM_${EMClient.user}_RECEOVE_INVITE_LIST`,
  40. state.receiveInviteList
  41. );
  42. },
  43. UPDATE_RECEIVE_INVITE_LIST(state, payload) {
  44. console.log('UPDATE_RECEIVE_INVITE_LIST', payload);
  45. const { from } = payload;
  46. //目前只有已添加状态,因此触发更新,固定只追加一个added属性
  47. const _index = state.receiveInviteList.findIndex(
  48. (item) => item.from === from
  49. );
  50. console.log('>>>>>_index', _index);
  51. state.receiveInviteList[_index].isHandled = true;
  52. Vue.set(state.receiveInviteList[_index], 'added', true);
  53. uni.setStorageSync(
  54. `EM_${EMClient.user}_RECEOVE_INVITE_LIST`,
  55. state.receiveInviteList
  56. );
  57. },
  58. },
  59. actions: {},
  60. getters: {
  61. getReceiveInviteList(state) {
  62. return state.receiveInviteList;
  63. },
  64. },
  65. };
  66. export default ReceiveInviteStore;