2025.03.15 工作代码提交
This commit is contained in:
parent
fdee18b7f8
commit
cc9578f3eb
|
@ -130,6 +130,7 @@ export const news = {
|
|||
method: 'POST',
|
||||
data: param.data,
|
||||
query: param.query,
|
||||
load: true,
|
||||
})
|
||||
},
|
||||
|
||||
|
@ -139,7 +140,7 @@ export const news = {
|
|||
url: `/user/getRedPacketInfo`,
|
||||
method: 'GET',
|
||||
query: param.query,
|
||||
load: 1,
|
||||
load: true,
|
||||
})
|
||||
},
|
||||
|
||||
|
@ -150,6 +151,7 @@ export const news = {
|
|||
method: 'POST',
|
||||
data: param.data,
|
||||
query: param.query,
|
||||
load: true,
|
||||
})
|
||||
},
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ const config = {
|
|||
// #endif
|
||||
// #ifndef H5
|
||||
host: 'http://91f.xyz:8080',
|
||||
// host: 'http://762c9b48.r24.cpolar.top',
|
||||
// #endif
|
||||
// 是否vivo显示
|
||||
showVivo: true,
|
||||
|
|
|
@ -134,7 +134,7 @@ const util = {
|
|||
reject(res)
|
||||
},
|
||||
complete(rs) {
|
||||
console.log('upload complete', rs)
|
||||
// console.log('upload complete', rs)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
@ -213,7 +213,7 @@ const util = {
|
|||
responseType: params.responseType || 'text',
|
||||
// 请求成功返回
|
||||
success: res => {
|
||||
// console.log('request success', url, res, params.data ? params.data : '')
|
||||
console.log('request success', url, res, params.data ? params.data : '')
|
||||
// 关闭加载效果
|
||||
if (params.load) {
|
||||
uni.hideLoading()
|
||||
|
@ -602,6 +602,7 @@ const util = {
|
|||
count: obj.type == 1 ? 1 : count - obj.value.length,
|
||||
sourceType: obj.sourceType || ['album', 'camera'],
|
||||
success: (rs) => {
|
||||
console.log('rs', rs)
|
||||
// 遍历图片返回列表
|
||||
rs.tempFiles.forEach(item => {
|
||||
// 限制大小
|
||||
|
@ -615,6 +616,7 @@ const util = {
|
|||
file: item.path,
|
||||
mode: 'img',
|
||||
success(res) {
|
||||
console.log('upload res', res)
|
||||
if (res.code === 200) {
|
||||
uni.getImageInfo({
|
||||
src: item.path,
|
||||
|
@ -625,6 +627,7 @@ const util = {
|
|||
width: imageInfo.width,
|
||||
height: imageInfo
|
||||
.height,
|
||||
size: item.size,
|
||||
});
|
||||
},
|
||||
})
|
||||
|
|
|
@ -114,8 +114,11 @@
|
|||
res.forEach(item => {
|
||||
let obj = {}
|
||||
obj.type = item.type;
|
||||
obj.chatText = item.lastMessage.messageForShow;
|
||||
// 处理最近一条消息
|
||||
obj.chatText = item.lastMessage.messageForShow
|
||||
if (obj.chatText == "[自定义消息]") obj.chatText = item.lastMessage.payload.description || '[自定义消息]'
|
||||
obj.MsgTime = handleDate(item.lastMessage.lastTime);
|
||||
//
|
||||
obj.unreadCount = item.unreadCount;
|
||||
|
||||
if (item.type == 'C2C') {
|
||||
|
|
|
@ -149,24 +149,28 @@
|
|||
uni.offKeyboardHeightChange(() => {})
|
||||
// #endif
|
||||
videoContext.value.stop()
|
||||
// 移除监听消息
|
||||
removeListener()
|
||||
})
|
||||
|
||||
// 开启监听消息
|
||||
function addListener() {
|
||||
let onMessageReceived = function(event) {
|
||||
console.log('TencentCloudChat.EVENT.MESSAGE_RECEIVED', event)
|
||||
setTimeout(() => {
|
||||
// 获取历史记录
|
||||
getHistory({
|
||||
msgId: '',
|
||||
limit: 1,
|
||||
})
|
||||
}, 200)
|
||||
//
|
||||
list.messageList.push(...event.data)
|
||||
}
|
||||
|
||||
uni.$chat.on(TencentCloudChat.EVENT.MESSAGE_RECEIVED, onMessageReceived);
|
||||
}
|
||||
|
||||
// 移除监听消息
|
||||
function removeListener() {
|
||||
let onMessageReceived = function(event) {}
|
||||
|
||||
uni.$chat.off(TencentCloudChat.EVENT.MESSAGE_RECEIVED, onMessageReceived);
|
||||
}
|
||||
|
||||
// 监听内容滚动
|
||||
function onContentScroll(ev) {
|
||||
if (ev.scrollTop == 50) getMoreHistroy()
|
||||
|
@ -177,18 +181,26 @@
|
|||
|
||||
// 点击发送
|
||||
function handleSend() {
|
||||
//
|
||||
if (!content.value) {
|
||||
util.alert('消息不能为空')
|
||||
return
|
||||
}
|
||||
// 取消聚焦
|
||||
inputFocus.value = false
|
||||
|
||||
// 创建文本消息
|
||||
let message = uni.$chat.createTextMessage({
|
||||
to: msg.id,
|
||||
conversationType: msg.type,
|
||||
payload: {
|
||||
text: content.value
|
||||
},
|
||||
})
|
||||
|
||||
// 发送消息
|
||||
sendMsg({
|
||||
query: {
|
||||
formId: userinfo.value.id,
|
||||
toUserId: msg.id,
|
||||
msgType: TencentCloudChat.TYPES.MSG_TEXT,
|
||||
},
|
||||
data: {
|
||||
text: content.value
|
||||
},
|
||||
message,
|
||||
success: () => {
|
||||
// 清空已发送的消息
|
||||
content.value = ''
|
||||
|
@ -202,7 +214,9 @@
|
|||
* @param {Object} message 消息对象
|
||||
*/
|
||||
function handlePlusSend(message) {
|
||||
sendMsg(message)
|
||||
sendMsg({
|
||||
message
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -210,22 +224,13 @@
|
|||
* @param {Object} param
|
||||
*/
|
||||
function sendMsg(param) {
|
||||
//
|
||||
let request = api.news.sendUserMsg
|
||||
//
|
||||
if (msg.type == 'GROUP') request = api.news.sendGroupMsg
|
||||
// if (msg.isCustomer) request = api.news.sendCusomterService
|
||||
|
||||
console.log('sendMsg', param.message)
|
||||
// 发送消息
|
||||
request({
|
||||
query: param.query,
|
||||
data: param.data,
|
||||
}).then((rs) => {
|
||||
if (rs.code == 200) {
|
||||
// getHistory({
|
||||
// msgId: '',
|
||||
// limit: 1,
|
||||
// })
|
||||
uni.$chat.sendMessage(param.message).then((rs) => {
|
||||
console.log('send success', rs)
|
||||
if (rs.code == 0) {
|
||||
//
|
||||
list.messageList.push(rs.data.message)
|
||||
param.success ? param.success() : ''
|
||||
return
|
||||
}
|
||||
|
@ -240,14 +245,14 @@
|
|||
|
||||
/**
|
||||
* 打开红包详情
|
||||
* @param {Object} ev
|
||||
* @param {Object} event 默认事件
|
||||
*/
|
||||
function handleRedPacket(ev) {
|
||||
messageItem.value = ev
|
||||
function handleRedPacket(event) {
|
||||
console.log('event', event)
|
||||
api.news.getRedPacketInfo({
|
||||
query: {
|
||||
// 红包id
|
||||
redPacketId: ev.callbackData.callback_json[0].businessId
|
||||
redPacketId: event.formatData.id,
|
||||
}
|
||||
}).then(rs => {
|
||||
if (rs.code == 200) {
|
||||
|
@ -310,10 +315,9 @@
|
|||
|
||||
// 获取更多消息记录
|
||||
function getMoreHistroy() {
|
||||
// 获取第一条消息记录
|
||||
if (list.total <= list.data.length) return
|
||||
// if(list.isCompleted) return
|
||||
getHistory({
|
||||
msgId: list.data[0].id
|
||||
msgId: list.messageList[0].ID
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -558,15 +562,15 @@
|
|||
|
||||
<view class="tool bfff" id="tool">
|
||||
<view class="tool-group">
|
||||
<!-- 摁住说话 -->
|
||||
<!-- 语音 -->
|
||||
<image src="/static/news-voice.png" mode="widthFix" class="thumb" @click="handleTool('voice')"></image>
|
||||
<!-- 摁住说话 -->
|
||||
<template v-if="toolStatus == 'voice'">
|
||||
<JyVoice @send="voiceSend" :msg="msg" />
|
||||
</template>
|
||||
<!-- 输入框 -->
|
||||
<template v-if="toolStatus != 'voice'">
|
||||
<uni-easyinput @focus="onFocus" type="text" v-model="content" :clearable="false" class="input"
|
||||
<uni-easyinput @focus="onFocus" type="text" v-model.trim="content" :clearable="false" class="input"
|
||||
:adjust-position="false" @keyboardheightchange="keyboardheightchange" placeholder="请输入你的问题"
|
||||
confirmType="发送" :focus="inputFocus" />
|
||||
</template>
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
computed,
|
||||
defineEmits,
|
||||
} from 'vue'
|
||||
// 工具库
|
||||
import util from '@/common/js/util';
|
||||
|
||||
import NewsAudio from '@/static/audio.png'
|
||||
import JyCommodityInformation from '@/components/public/jy-commodity-information'
|
||||
const props = defineProps({
|
||||
|
@ -30,7 +33,11 @@
|
|||
const store = useStore()
|
||||
const emit = defineEmits(['openRedBag', 'viewVideo'])
|
||||
// 格式化
|
||||
const formatData = computed(() => props.item)
|
||||
const formatData = computed(() => {
|
||||
let result = props.item.payload.data || ''
|
||||
if (result) result = JSON.parse(result)
|
||||
return result
|
||||
})
|
||||
//音频
|
||||
const innerAudioContext = uni.createInnerAudioContext();
|
||||
// 播放语音
|
||||
|
@ -41,10 +48,7 @@
|
|||
})
|
||||
}
|
||||
// 用户信息
|
||||
const userinfo = computed(() => {
|
||||
let result = store.state.userinfo
|
||||
return result
|
||||
})
|
||||
const userinfo = computed(() => store.state.userinfo)
|
||||
|
||||
// 拨打电话
|
||||
function handleCall() {
|
||||
|
@ -58,20 +62,34 @@
|
|||
|
||||
// 开红包
|
||||
function handleOpenRedBag() {
|
||||
emit('openRedBag', props.item)
|
||||
emit('openRedBag', {
|
||||
item: props.item,
|
||||
formatData: formatData.value,
|
||||
})
|
||||
}
|
||||
|
||||
// 看视频
|
||||
function handleViewVideo(item) {
|
||||
emit('viewVideo', item)
|
||||
}
|
||||
|
||||
/**
|
||||
* 看图片
|
||||
* @param {Object} urls 图片路径数组
|
||||
*/
|
||||
function handleViewImage(urls) {
|
||||
uni.previewImage({
|
||||
urls,
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<view class="content pr">
|
||||
<!-- 图片 -->
|
||||
<template v-if="item.type === TencentCloudChat.TYPES.MSG_IMAGE">
|
||||
<image class="br10" :src="formatData.MsgContent.ImageInfoArray[0].URL" mode="widthFix" />
|
||||
<image class="br10" :src="item.payload.imageInfoArray[0].imageUrl" mode="widthFix"
|
||||
@click="util.view_imgs([item.payload.imageInfoArray[0].imageUrl],0)" />
|
||||
</template>
|
||||
<!-- 文字 -->
|
||||
<template v-else-if="item.type === TencentCloudChat.TYPES.MSG_TEXT">
|
||||
|
@ -140,12 +158,12 @@
|
|||
<!-- 红包 -->
|
||||
<view class="redPacket br10" :class="{'disabled': 0}" @click="handleOpenRedBag">
|
||||
<view class="df aic">
|
||||
<image class="img fs0 mr10" src="/static/image/pages/news/group/create.png" />
|
||||
<view class="red-packet-text cfff">{{ formatData.data.blessing }}</view>
|
||||
<image class="img fs0 mr10" src="/static/image/red-envelope.png" />
|
||||
<view class="red-packet-text cfff">{{ formatData.blessing }}</view>
|
||||
</view>
|
||||
<!-- 分割线 -->
|
||||
<view class="line"></view>
|
||||
<view class="f20" style="color:#FBD3A4">{{ formatData.data.payType == 1 ? '余额红包' : '积分红包' }}
|
||||
<view class="f20" style="color:#FBD3A4">{{ formatData.redPacketType == 1 ? '余额红包' : '积分红包' }}
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
|
@ -18,7 +18,7 @@ export const getHistoryMsg = async (option) => {
|
|||
nextReqMessageID: option.nextReqMessageID,
|
||||
}
|
||||
|
||||
console.log('options', options);
|
||||
console.log('getHistoryMsg', options);
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.$chat.getMessageList(options).then((res) => {
|
||||
resolve(res)
|
||||
|
|
|
@ -16,9 +16,13 @@ import JyCommodityInformation from '@/components/public/jy-commodity-information
|
|||
import api from '@/api/index.js'
|
||||
// 工具库
|
||||
import util from '@/common/js/util.js'
|
||||
import { inject } from 'vue'
|
||||
import {
|
||||
inject
|
||||
} from 'vue'
|
||||
|
||||
const { checkLink } = inject('util');
|
||||
const {
|
||||
checkLink
|
||||
} = inject('util');
|
||||
//
|
||||
const props = defineProps({
|
||||
msg: {
|
||||
|
@ -30,8 +34,7 @@ const props = defineProps({
|
|||
const emit = defineEmits(['plusClick', 'send'])
|
||||
// 加号菜单
|
||||
const plusList = computed(() => {
|
||||
let result = [
|
||||
{
|
||||
let result = [{
|
||||
type: 'picture.png',
|
||||
label: '照片',
|
||||
value: 'chooseImage',
|
||||
|
@ -43,8 +46,7 @@ const plusList = computed(() => {
|
|||
type: 'pages/news/group/create.png',
|
||||
label: '红包',
|
||||
value: 'redEnvelope',
|
||||
}
|
||||
]
|
||||
}]
|
||||
|
||||
const isCustomer = props.msg.isCustomer;
|
||||
|
||||
|
@ -180,7 +182,7 @@ const plusClickObj = {
|
|||
takePhoto: () => {
|
||||
console.log('takePhoto')
|
||||
sendMsgImg({
|
||||
sourceType: ['album'],
|
||||
sourceType: ['camera'],
|
||||
})
|
||||
},
|
||||
|
||||
|
@ -195,40 +197,23 @@ const plusClickObj = {
|
|||
|
||||
// 发送图片消息
|
||||
function sendMsgImg(option) {
|
||||
util.upload_image({
|
||||
count: 1,
|
||||
type: 1,
|
||||
success: rs => {
|
||||
emit('send', {
|
||||
query: {
|
||||
toUserId: props.msg.id,
|
||||
msgType: TencentCloudChat.TYPES.MSG_IMAGE,
|
||||
},
|
||||
data: {
|
||||
imgUrl: rs.value
|
||||
},
|
||||
})
|
||||
}
|
||||
})
|
||||
return
|
||||
// 选择图片
|
||||
uni.chooseImage({
|
||||
count: 1,
|
||||
sourceType: option.sourceType, // 从相册选择
|
||||
success: (res) => {
|
||||
count: 8,
|
||||
sourceType: option.sourceType,
|
||||
success: res => {
|
||||
console.log('res', res)
|
||||
// 创建图片消息
|
||||
let message = uni.$chat.createImageMessage({
|
||||
to: props.msg.id,
|
||||
conversationType: props.msg.type,
|
||||
payload: {
|
||||
file: res
|
||||
file: res,
|
||||
},
|
||||
onProgress: function (event) {
|
||||
console.log('file uploading:', event)
|
||||
}
|
||||
})
|
||||
emit('send', message)
|
||||
return
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
// 咨询订单
|
||||
|
|
|
@ -4,7 +4,6 @@ import {
|
|||
import uni from '@dcloudio/vite-plugin-uni';
|
||||
|
||||
let target = 'http://91f.xyz:8080'
|
||||
// let target = 'http://762c9b48.r24.cpolar.top'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [uni()],
|
||||
|
|
Loading…
Reference in New Issue