Commit 9b9fd218 by 杨铁龙
parents caa8e5f5 0894faf2
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
v-else-if="fileFailed2Load" v-else-if="fileFailed2Load"
title="[语音加载失败]" title="[语音加载失败]"
></i> ></i>
<text-message v-model="value" v-if="backend" />
</div> </div>
</template> </template>
...@@ -27,12 +29,16 @@ ...@@ -27,12 +29,16 @@
import { Component, Ref } from "vue-property-decorator"; import { Component, Ref } from "vue-property-decorator";
import BaseMessage from "./index"; import BaseMessage from "./index";
import VoiceIcon from "./voice.vue"; import VoiceIcon from "./voice.vue";
import TextMessage from "./text-message.vue";
import Chat from "@/customer-service/xim";
@Component({ components: { VoiceIcon } }) @Component({ components: { VoiceIcon, TextMessage } })
export default class Index extends BaseMessage { export default class Index extends BaseMessage {
@Ref("audio") @Ref("audio")
private readonly audioRef!: HTMLAudioElement; private readonly audioRef!: HTMLAudioElement;
private readonly backend = Chat.isBackend();
private playing = false; private playing = false;
private get duration() { private get duration() {
...@@ -95,6 +101,13 @@ ...@@ -95,6 +101,13 @@
font-size: 16px; font-size: 16px;
} }
} }
.inline-text {
position: absolute;
bottom: 0;
left: 40px;
}
.my-message { .my-message {
.voice-message { .voice-message {
> div { > div {
......
...@@ -57,17 +57,17 @@ class ChatCacheDatabaseController { ...@@ -57,17 +57,17 @@ class ChatCacheDatabaseController {
} }
resolve(); resolve();
}; };
r.onsuccess = function (e) { r.onsuccess = function(e) {
that.db = (e.target as any).result; that.db = (e.target as any).result;
console.log(`index database init comepleted`); console.log(`index database init comepleted`);
setupDb(); setupDb();
}; };
r.onupgradeneeded = function (e) { r.onupgradeneeded = function(e) {
that.db = (e.target as any).result; that.db = (e.target as any).result;
console.log(`upgrade database comepleted`); console.log(`upgrade database comepleted`);
setupDb(); setupDb();
}; };
r.onerror = function (e) { r.onerror = function(e) {
console.log(`index database init failed, ${e}`); console.log(`index database init failed, ${e}`);
}; };
} else { } else {
...@@ -94,17 +94,17 @@ class ChatCacheDatabaseController { ...@@ -94,17 +94,17 @@ class ChatCacheDatabaseController {
} }
setTimeout(() => resolve(), 200); setTimeout(() => resolve(), 200);
}; };
r.onsuccess = function (e) { r.onsuccess = function(e) {
const db = (e.target as any).result; const db = (e.target as any).result;
that.messageDatabases.set(k, db); that.messageDatabases.set(k, db);
setupDb(); setupDb();
}; };
r.onupgradeneeded = function (e) { r.onupgradeneeded = function(e) {
const db = (e.target as any).result; const db = (e.target as any).result;
that.messageDatabases.set(k, db); that.messageDatabases.set(k, db);
setupDb(); setupDb();
}; };
r.onerror = function (e) { r.onerror = function(e) {
console.log( console.log(
`chat message index database init failed, ${e}` `chat message index database init failed, ${e}`
); );
...@@ -173,6 +173,29 @@ class ChatCacheDatabaseController { ...@@ -173,6 +173,29 @@ class ChatCacheDatabaseController {
}); });
} }
public updateChat4UnreadCount(chat: number, unread: number) {
return new Promise<void>((resolve) => {
if (this.db) {
const store = this.buildStore(this.chatListKey);
const t = store.get(chat);
t.onsuccess = (r) => {
const chat = (r.target as any).result as Chat;
if (chat) {
chat.unread_msg_count = unread;
const u = store.put(chat, chat.id);
u.onsuccess = () => resolve();
u.onerror = () => resolve();
} else {
resolve();
}
};
t.onerror = () => resolve();
} else {
resolve();
}
});
}
public setRead(chat: number) { public setRead(chat: number) {
return new Promise<void>((resolve) => { return new Promise<void>((resolve) => {
if (this.db) { if (this.db) {
...@@ -351,6 +374,7 @@ class ChatCacheDatabaseController { ...@@ -351,6 +374,7 @@ class ChatCacheDatabaseController {
for (const item of source2) { for (const item of source2) {
const t = source1.find((i) => i.id === item.id); const t = source1.find((i) => i.id === item.id);
if (t) { if (t) {
item.unread_msg_count = Math.max(item.unread_msg_count, t.unread_msg_count);
const index = source1.indexOf(t); const index = source1.indexOf(t);
source1[index] = item; source1[index] = item;
} else { } else {
......
...@@ -34,6 +34,8 @@ export interface OrderTableListItem { ...@@ -34,6 +34,8 @@ export interface OrderTableListItem {
time: string; time: string;
chat: number; chat: number;
status: OrderStatus; status: OrderStatus;
status_label: string;
remark: string;
/** /**
* 待支付金额 * 待支付金额
*/ */
...@@ -59,7 +61,8 @@ export const orderPredict = { ...@@ -59,7 +61,8 @@ export const orderPredict = {
v: "uniplat_version", v: "uniplat_version",
no: "OrderDocNo", no: "OrderDocNo",
title: "ProductId#product.OuterName", title: "ProductId#product.OuterName",
status: "Status", status: "Status_label",
remark: "Remark",
time: "CreatedDate", time: "CreatedDate",
createTime: "CreatedDate", createTime: "CreatedDate",
PayAmount: "PayAmount", PayAmount: "PayAmount",
......
...@@ -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);
}); });
} }
...@@ -335,7 +335,7 @@ export default { ...@@ -335,7 +335,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,
...@@ -483,6 +483,11 @@ export default { ...@@ -483,6 +483,11 @@ export default {
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;
}, },
async [ChatStore.ACTION_UPDATE_CHAT_UNREAD_MESSAGE_COUNT]({ dispatch }, p: { chat: number; unread: number }) {
dbController
.updateChat4UnreadCount(p.chat, p.unread)
.then(() => dispatch(ChatStore.ACTION_REBUILD_UNREAD_MESSAGE_COUNT))
},
async [ChatStore.ACTION_GET_CHAT_MESSAGES]({ state, commit, getters }) { async [ChatStore.ACTION_GET_CHAT_MESSAGES]({ state, commit, getters }) {
const chatId = state[ChatStore.STATE_CHAT_CURRENT_CHAT_ID]; const chatId = state[ChatStore.STATE_CHAT_CURRENT_CHAT_ID];
const chat = getters[ const chat = getters[
...@@ -840,7 +845,7 @@ export default { ...@@ -840,7 +845,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);
}) })
); );
...@@ -1089,8 +1094,8 @@ export default { ...@@ -1089,8 +1094,8 @@ export default {
p.read_count = option.all p.read_count = option.all
? p.total_read_count ? p.total_read_count
: option.readed : option.readed
? option.readed ? option.readed
: p.read_count + 1; : p.read_count + 1;
} }
} }
} else { } else {
...@@ -1099,8 +1104,8 @@ export default { ...@@ -1099,8 +1104,8 @@ export default {
p.read_count = option.all p.read_count = option.all
? p.total_read_count ? p.total_read_count
: option.readed : option.readed
? option.readed ? option.readed
: p.read_count + 1; : p.read_count + 1;
} }
} }
} }
......
...@@ -378,6 +378,9 @@ export namespace ChatStore { ...@@ -378,6 +378,9 @@ export namespace ChatStore {
export const ACTION_UPDATE_CHAT = "更新会话信息"; export const ACTION_UPDATE_CHAT = "更新会话信息";
export type ACTION_UPDATE_CHAT = (p: ChatUpdateParameter) => void; export type ACTION_UPDATE_CHAT = (p: ChatUpdateParameter) => void;
export const ACTION_UPDATE_CHAT_UNREAD_MESSAGE_COUNT = "更新Chat会话未读消息并重新计数总数";
export type ACTION_UPDATE_CHAT_UNREAD_MESSAGE_COUNT = (p: { chat: number; unread: number }) => void;
} }
export interface ChatStoreState { export interface ChatStoreState {
......
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