diff --git a/components.d.ts b/components.d.ts index 3e9678b..380ee57 100644 --- a/components.d.ts +++ b/components.d.ts @@ -52,6 +52,7 @@ declare module 'vue' { NAvatar: typeof import('naive-ui')['NAvatar'] NButton: typeof import('naive-ui')['NButton'] NCheckbox: typeof import('naive-ui')['NCheckbox'] + NDropdown: typeof import('naive-ui')['NDropdown'] NEmpty: typeof import('naive-ui')['NEmpty'] NIcon: typeof import('naive-ui')['NIcon'] NImage: typeof import('naive-ui')['NImage'] diff --git a/src/assets/css/define/theme.less b/src/assets/css/define/theme.less index cb12e6d..ac0e32e 100644 --- a/src/assets/css/define/theme.less +++ b/src/assets/css/define/theme.less @@ -21,7 +21,7 @@ html { // message --im-message-bg-color: #f7f7f7; --im-message-border-color: #efeff5; - --im-message-left-bg-color: #F4F4FC; + --im-message-left-bg-color: #fff; --im-message-left-text-color: #333; --im-message-right-bg-color: #46299D; --im-message-right-text-color: #fff; diff --git a/src/components/talk/ForwardRecord.vue b/src/components/talk/ForwardRecord.vue index d8c9f14..5deeab3 100644 --- a/src/components/talk/ForwardRecord.vue +++ b/src/components/talk/ForwardRecord.vue @@ -5,22 +5,21 @@ import { ServeGetForwardRecords } from '@/api/chat' import { MessageComponents } from '@/constant/message' import { ITalkRecord } from '@/types/chat' import { useInject } from '@/hooks' - -const emit = defineEmits(['close']) +import customModal from '@/components/common/customModal.vue' +import { voiceToText } from '@/api/chat.js' const props = defineProps({ msgId: { type: String, required: true } }) - +const isShow=defineModel('show') const { showUserInfoModal } = useInject() -const isShow = ref(true) const items = ref([]) const title = ref('会话记录') const onMaskClick = () => { - emit('close') + isShow.value=false } const onLoadData = () => { @@ -30,18 +29,92 @@ const onLoadData = () => { if (res.code == 200) { items.value = res.data.items || [] - title.value = `会话记录(${items.value.length})` + // title.value = `会话记录(${items.value.length})` } }) } +const dropdown=ref({ + show:false, + x:'', + y:'', + options:[] as any, + item:{} as ITalkRecord, +}) +const onConvertText =async (data: ITalkRecord) => { + data.is_convert_text = 1 + const res = await voiceToText({msgId:data.msg_id,voiceUrl:data.extra.url}) + if(res.code == 200){ + data.extra.content = res.data.convText + + } +} +const onloseConvertText=(data: ITalkRecord)=>{ + data.is_convert_text = 0 +} +const evnets = { + convertText: onConvertText, + closeConvertText:onloseConvertText +} + +const onContextMenuHandle=(key:string)=>{ + evnets[key] && evnets[key](dropdown.value.item) + closeDropdownMenu() +} +const closeDropdownMenu=()=>{ + dropdown.value.show=false +} onMounted(() => { onLoadData() }) +const onContextMenu = (e:any,item: ITalkRecord) => { + dropdown.value.show=true + + dropdown.value.x=e.clientX + dropdown.value.y=e.clientY + if(item.is_convert_text === 1){ + dropdown.value.options=[{ label: '关闭转文字', key: 'closeConvertText' }] + }else{ + dropdown.value.options=[{ label: '转文字', key: 'convertText' }] + } + + dropdown.value.item=item +} +