Commit 8cc8f134 by zhousil
parents 7192e922 005ff905
...@@ -53,7 +53,7 @@ export default class ChatList extends Vue { ...@@ -53,7 +53,7 @@ export default class ChatList extends Vue {
protected parseMesage(data: ChatItem) { protected parseMesage(data: ChatItem) {
if (data.last_msg_sender && data.last_msg_sender !== "0") { if (data.last_msg_sender && data.last_msg_sender !== "0") {
if (!this.userNames[data.last_msg_sender]) { if (this.userNames[data.last_msg_sender] === undefined) {
this.updateUserName({ id: data.last_msg_sender, name: "" }); this.updateUserName({ id: data.last_msg_sender, name: "" });
this.invoker this.invoker
.model("user") .model("user")
...@@ -65,7 +65,7 @@ export default class ChatList extends Vue { ...@@ -65,7 +65,7 @@ export default class ChatList extends Vue {
name: userInfo.row.first_name.display as string, name: userInfo.row.first_name.display as string,
}); });
}) })
.catch(() => { }); .catch(() => {});
} }
} }
if (data.last_msg_content === "") { if (data.last_msg_content === "") {
......
...@@ -222,8 +222,12 @@ ...@@ -222,8 +222,12 @@
private get messageBody(): { eid?: string; oid?: string; msg: any } { private get messageBody(): { eid?: string; oid?: string; msg: any } {
if (this.data) { if (this.data) {
const msg = this.data.msg;
try { try {
if (msg.startsWith("{")) {
return { ...this.data, msg: JSON.parse(this.data.msg) }; return { ...this.data, msg: JSON.parse(this.data.msg) };
}
return { ...this.data, msg: this.data.msg };
} catch { } catch {
return { return {
...this.data, ...this.data,
......
...@@ -191,7 +191,7 @@ export interface ChatMember { ...@@ -191,7 +191,7 @@ export interface ChatMember {
oid: string; oid: string;
eid: string; eid: string;
chat_id: number; chat_id: number;
type: number; type: ChatRole;
join_msg_id: number; join_msg_id: number;
exit_msg_id: number; exit_msg_id: number;
is_exited: boolean; is_exited: boolean;
......
...@@ -31,7 +31,7 @@ function uniqueMessages( ...@@ -31,7 +31,7 @@ function uniqueMessages(
messages: NonNullable<ChatStore.STATE_CHAT_MSG_HISTORY> messages: NonNullable<ChatStore.STATE_CHAT_MSG_HISTORY>
) { ) {
const arr = [...messages]; const arr = [...messages];
return unique(arr, function (item, all) { return unique(arr, function(item, all) {
return all.findIndex((k) => k.id === item.id); return all.findIndex((k) => k.id === item.id);
}); });
} }
...@@ -327,7 +327,7 @@ export default { ...@@ -327,7 +327,7 @@ export default {
state[ChatStore.STATE_CHAT_SENDING_MESSAGES] = [...current]; state[ChatStore.STATE_CHAT_SENDING_MESSAGES] = [...current];
} }
}, },
[ChatStore.MUTATION_SAVE_CURRENT_CHAT_INPUTING]: (function () { [ChatStore.MUTATION_SAVE_CURRENT_CHAT_INPUTING]: (function() {
const setTimeoutId: { [key: string]: number } = {}; const setTimeoutId: { [key: string]: number } = {};
return ( return (
state: ChatStoreState, state: ChatStoreState,
...@@ -390,7 +390,9 @@ export default { ...@@ -390,7 +390,9 @@ export default {
let sum = 0; let sum = 0;
items.forEach((i) => (sum += i.unread_msg_count)); items.forEach((i) => (sum += i.unread_msg_count));
state[ChatStore.STATE_CURRENT_UNREAD_MESSAGE_COUNT] = sum; state[ChatStore.STATE_CURRENT_UNREAD_MESSAGE_COUNT] = sum;
return items; return items.sort((x, y) =>
x.last_msg_ts < y.last_msg_ts ? 1 : -1
);
}; };
if (cache && cache.length) { if (cache && cache.length) {
...@@ -732,7 +734,7 @@ export default { ...@@ -732,7 +734,7 @@ export default {
} }
commit( commit(
ChatStore.MUTATION_SAVE_CURRENT_CHAT_MEMBERS, ChatStore.MUTATION_SAVE_CURRENT_CHAT_MEMBERS,
unique(newChatMembers, function (item, all) { unique(newChatMembers, function(item, all) {
return all.findIndex((k) => k.eid === item.eid); return all.findIndex((k) => k.eid === item.eid);
}) })
); );
...@@ -836,7 +838,7 @@ export default { ...@@ -836,7 +838,7 @@ export default {
return await Chat.getSdk() return await Chat.getSdk()
.model(currentChat.model_name) .model(currentChat.model_name)
.chat(currentChat.obj_id, orgId()) .chat(currentChat.obj_id, orgId())
.addMember(uids.map((id) => Number(id))) .addMember(uids.map((id) => +id))
.finally(() => dispatch(ChatStore.ACTION_GET_CHAT_MEMBERS)); .finally(() => dispatch(ChatStore.ACTION_GET_CHAT_MEMBERS));
}, },
async [ChatStore.ACTION_CHAT_REMOVE_MEMBER]( async [ChatStore.ACTION_CHAT_REMOVE_MEMBER](
...@@ -854,7 +856,7 @@ export default { ...@@ -854,7 +856,7 @@ export default {
return await Chat.getSdk() return await Chat.getSdk()
.model(currentChat.model_name) .model(currentChat.model_name)
.chat(currentChat.obj_id, orgId()) .chat(currentChat.obj_id, orgId())
.removeMember(uids.map((id) => Number(id))) .removeMember(uids.map((id) => +id))
.finally(() => dispatch(ChatStore.ACTION_GET_CHAT_MEMBERS)); .finally(() => dispatch(ChatStore.ACTION_GET_CHAT_MEMBERS));
}, },
async [ChatStore.ACTION_CHAT_ADD_CS]( async [ChatStore.ACTION_CHAT_ADD_CS](
......
...@@ -320,9 +320,9 @@ export namespace ChatStore { ...@@ -320,9 +320,9 @@ export namespace ChatStore {
export const ACTION_TERINATE_CHAT = "结束会话"; export const ACTION_TERINATE_CHAT = "结束会话";
export type ACTION_TERINATE_CHAT = () => Promise<void>; export type ACTION_TERINATE_CHAT = () => Promise<void>;
export const ACTION_CHAT_ADD_MEMBERS = "添加成员"; export const ACTION_CHAT_ADD_MEMBERS = "添加成员";
export type ACTION_CHAT_ADD_MEMBERS = (uids: string[]) => Promise<void>; export type ACTION_CHAT_ADD_MEMBERS = (uids: (string | number)[]) => Promise<void>;
export const ACTION_CHAT_REMOVE_MEMBER = "移除成员"; export const ACTION_CHAT_REMOVE_MEMBER = "移除成员";
export type ACTION_CHAT_REMOVE_MEMBER = (uids: string[]) => Promise<void>; export type ACTION_CHAT_REMOVE_MEMBER = (uids: (string | number)[]) => Promise<void>;
export const ACTION_CHAT_ADD_CS = "添加客服"; export const ACTION_CHAT_ADD_CS = "添加客服";
export type ACTION_CHAT_ADD_CS = (uids: string[]) => Promise<void>; export type ACTION_CHAT_ADD_CS = (uids: string[]) => Promise<void>;
......
...@@ -11,7 +11,9 @@ const userMapping: UserMapping = {}; ...@@ -11,7 +11,9 @@ const userMapping: UserMapping = {};
export const getUserMapping = () => userMapping; export const getUserMapping = () => userMapping;
export async function getUserInfo(eid: string) { export async function getUserInfo(eid: string) {
if (userMapping[eid] != null) return userMapping[eid]; if (userMapping[eid]) {
return userMapping[eid];
}
const info = await Chat.getSdk().model("user").detail(eid).query(); const info = await Chat.getSdk().model("user").detail(eid).query();
const data = { const data = {
name: info.row.first_name.value as string, name: info.row.first_name.value as string,
......
...@@ -70,11 +70,10 @@ class Chat { ...@@ -70,11 +70,10 @@ class Chat {
if (this._sdk) { if (this._sdk) {
const s = this._sdk(); const s = this._sdk();
return dbController.setup( return dbController.setup(
s.global.uid + s.global.uid + "-" + (s.global.initData.orgId || 0)
"-" +
(s.global.initData.orgId || 0)
); );
} }
return Promise.reject();
} }
public resetup(org: () => string | number) { public resetup(org: () => string | number) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment