| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import {defineStore} from "pinia";
- import FriendApi from "@/api/FriendApi";
- import type Friend from "@/mode/Friend";
- import type User from "@/mode/User";
- import SendCode from '@/utils/SendCode'
- import {useUserStore} from '@/store/userStore'
- import ChatType from '@/utils/ChatType'
- import MessageType from '@/utils/MessageType'
- import {useWsStore} from '@/store/WsStore'
- export interface State {
- friendList: User[];
- waitValidateList: Friend[];
- }
- export const useFriendStore = defineStore({
- id: "friend_store",
- state: (): State => ({
- friendList: [],
- waitValidateList:[]
- }),
- actions: {
- loadData() {
- const userStore = useUserStore()
- FriendApi.friends().then((res) => {
- this.friendList = res.data
- //缓存好友,用于聊天时头像名称显示
- res.data.forEach((item: User) => {
- userStore.storeUser(item.id, {
- name: item.name,
- avatar: item.avatar
- })
- })
- })
- },
- loadValidateList() {
- FriendApi.validateList().then((res) => {
- console.log(res);
- this.waitValidateList = res.data;
- });
- },
- /**
- * 告诉对方需要刷新store
- * @param userId 对方id
- */
- notifyFlushFriendStore(userId: string) {
- const fromId = useUserStore().getUser()?.id
- if (fromId) {
- const sendInfo = {
- code: SendCode.NEW_FRIEND,
- message: {
- mine: true,
- fromId: fromId,
- chatId: userId,
- type: ChatType.FRIEND,
- messageType: MessageType.text,
- content: '',
- timestamp: new Date().getTime()
- }
- }
- useWsStore().send(JSON.stringify(sendInfo))
- }
- }
- },
- });
|