Commit 8cc8f134 by zhousil
parents 7192e922 005ff905
......@@ -53,7 +53,7 @@ export default class ChatList extends Vue {
protected parseMesage(data: ChatItem) {
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.invoker
.model("user")
......@@ -65,7 +65,7 @@ export default class ChatList extends Vue {
name: userInfo.row.first_name.display as string,
});
})
.catch(() => { });
.catch(() => {});
}
}
if (data.last_msg_content === "") {
......
......@@ -222,8 +222,12 @@
private get messageBody(): { eid?: string; oid?: string; msg: any } {
if (this.data) {
const msg = this.data.msg;
try {
return { ...this.data, msg: JSON.parse(this.data.msg) };
if (msg.startsWith("{")) {
return { ...this.data, msg: JSON.parse(this.data.msg) };
}
return { ...this.data, msg: this.data.msg };
} catch {
return {
...this.data,
......
......@@ -191,7 +191,7 @@ export interface ChatMember {
oid: string;
eid: string;
chat_id: number;
type: number;
type: ChatRole;
join_msg_id: number;
exit_msg_id: number;
is_exited: boolean;
......
......@@ -31,7 +31,7 @@ function uniqueMessages(
messages: NonNullable<ChatStore.STATE_CHAT_MSG_HISTORY>
) {
const arr = [...messages];
return unique(arr, function (item, all) {
return unique(arr, function(item, all) {
return all.findIndex((k) => k.id === item.id);
});
}
......@@ -327,7 +327,7 @@ export default {
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 } = {};
return (
state: ChatStoreState,
......@@ -390,7 +390,9 @@ export default {
let sum = 0;
items.forEach((i) => (sum += i.unread_msg_count));
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) {
......@@ -732,7 +734,7 @@ export default {
}
commit(
ChatStore.MUTATION_SAVE_CURRENT_CHAT_MEMBERS,
unique(newChatMembers, function (item, all) {
unique(newChatMembers, function(item, all) {
return all.findIndex((k) => k.eid === item.eid);
})
);
......@@ -836,7 +838,7 @@ export default {
return await Chat.getSdk()
.model(currentChat.model_name)
.chat(currentChat.obj_id, orgId())
.addMember(uids.map((id) => Number(id)))
.addMember(uids.map((id) => +id))
.finally(() => dispatch(ChatStore.ACTION_GET_CHAT_MEMBERS));
},
async [ChatStore.ACTION_CHAT_REMOVE_MEMBER](
......@@ -854,7 +856,7 @@ export default {
return await Chat.getSdk()
.model(currentChat.model_name)
.chat(currentChat.obj_id, orgId())
.removeMember(uids.map((id) => Number(id)))
.removeMember(uids.map((id) => +id))
.finally(() => dispatch(ChatStore.ACTION_GET_CHAT_MEMBERS));
},
async [ChatStore.ACTION_CHAT_ADD_CS](
......
......@@ -320,9 +320,9 @@ export namespace ChatStore {
export const ACTION_TERINATE_CHAT = "结束会话";
export type ACTION_TERINATE_CHAT = () => Promise<void>;
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 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 type ACTION_CHAT_ADD_CS = (uids: string[]) => Promise<void>;
......
......@@ -11,7 +11,9 @@ const userMapping: UserMapping = {};
export const getUserMapping = () => userMapping;
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 data = {
name: info.row.first_name.value as string,
......
......@@ -70,11 +70,10 @@ class Chat {
if (this._sdk) {
const s = this._sdk();
return dbController.setup(
s.global.uid +
"-" +
(s.global.initData.orgId || 0)
s.global.uid + "-" + (s.global.initData.orgId || 0)
);
}
return Promise.reject();
}
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