import SocketInstance from "@/im-server/socket-instance"; import { ServeGetUserSetting,ServeGetStoreSetting } from "@/api/user"; import store from "@/store"; import { ServeGetTalkList,ServeGetStoreTalkList } from "@/api/chat"; import { formatTalkItem } from "@/utils/talk"; export default { created() { // 判断用户是否登录 }, methods: { // 页面初始化设置 initialize() { SocketInstance.connect(); }, // 加载用户相关设置信息,更新本地缓存 loadUserSetting() { //标识没有值,获取用户信息 if(this.$route.query.id){ ServeGetUserSetting().then(async ({ code, result }) => { // 如果result有值说明用户创建成功 if (result) { store.commit("UPDATE_USER_INFO", { id: result.id, face: result.face, name: result.nickName, }); console.log(result.nickName) /** * 用户像商家进行聊天,商家进行刷新好友列表 */ // 判断如果是有id说明是 用户像商家进行聊天。 if (this.$route.query.id) { await this.createTalk(this.$route.query.id); } if(this.$route.query.goodsId && this.$route.query.skuId){ this.goodsParams.goodsId = this.$route.query.goodsId this.goodsParams.skuId = this.$route.query.skuId } } else if (code === 200 && !result) { setTimeout(() => { this.loadUserSetting(); }, 2000); } }); }else{ //标识有值代表是店铺 ServeGetStoreSetting().then(async ({ code, result }) => { if (result) { store.commit("UPDATE_USER_INFO", { id: result.id, face: result.storeLogo, name: result.storeName, }); //获取店铺聊天列表 await this.loadStoreChatList() }else if (code === 200 && !result) { setTimeout(() => { this.loadUserSetting(); }, 2000); } }) } }, // 获取用户对话列表 loadChatListInJs() { ServeGetTalkList() .then(({ code, result }) => { if (code !== 200) return false; store.commit("SET_UNREAD_NUM", 0); store.commit("SET_TALK_ITEMS", { items: result.map((item) => formatTalkItem(item)), }); let index_name = sessionStorage.getItem("send_message_index_name"); if (index_name) { sessionStorage.removeItem("send_message_index_name"); } }) .finally(() => { }); }, //获取商家聊天记录 loadStoreChatList() { this.loadStatus = this.talkNum == 0 ? 0 : 1; ServeGetStoreTalkList().then(({ code, result }) => { if (code !== 200) return false; this.$store.commit("SET_UNREAD_NUM", 0); this.$store.commit("SET_TALK_ITEMS", { items: result.map((item) => formatTalkItem(item)), }); // 判断 if (this.$route.query.id) { let takeData, takeIndex; console.log(result) result.forEach((take, index) => { if (take.id == this.$route.query.id) { takeData = take; takeIndex = index; } }); this.$nextTick(() => this.clickTab(this.$route.query.id, takeData, takeIndex) ); } }).finally(() => { this.loadStatus = 1; }); }, reload() { this.$root.$children[0].refreshView(); }, }, };