200 lines
4.1 KiB
JavaScript
200 lines
4.1 KiB
JavaScript
// 存放接口处
|
|
import http from './request.js';
|
|
|
|
// #ifdef MP-WEIXIN
|
|
import {
|
|
TextDecoder
|
|
} from '@/utils/text-encoding-0.6.3/index.js'
|
|
// #endif
|
|
|
|
|
|
// 获取聊天记录
|
|
export const getMessageList = (data) => http.request({
|
|
method: "GET",
|
|
url: '/chat/history'
|
|
});
|
|
|
|
/**
|
|
* 微信code登录
|
|
* @param{platform:string ,code: 微信code} data
|
|
*/
|
|
export const thirdLogin = (data) => http.request({
|
|
method: "POST",
|
|
url: '/user/third',
|
|
data
|
|
})
|
|
|
|
// 发送消息
|
|
// export const sendMessageApi = (data) => http.request({
|
|
// method: "POST",
|
|
// url: '/chat/random',
|
|
// data
|
|
// })
|
|
|
|
|
|
// 发送消息
|
|
// export const sendMessageApi = (data) => {
|
|
// const requestTask = uni.request({
|
|
// url: "https://jx.xiaolinghou.com/api/chat/random",
|
|
// timeout: 150000,
|
|
// responseType: "text",
|
|
// method: "POST",
|
|
// header: {
|
|
// token: 'ccef1fb8-c85c-4144-9e69-00a4f279f9ab'
|
|
// },
|
|
// enableChunked: true, //配置这里
|
|
// data,
|
|
// success: response => {
|
|
// console.log(response)
|
|
// },
|
|
// fail: error => {}
|
|
// })
|
|
// requestTask.onChunkReceived(function(res) {
|
|
// const uint8Array = new Uint8Array(res.data);
|
|
// // 尝试使用多个字符编码进行解码
|
|
// const encodings = ['utf-8', 'gbk', 'big5']; // 按照你的需求添加更多的编码方式
|
|
// let text = '';
|
|
// for (const encoding of encodings) {
|
|
// try {
|
|
// const textDecoder = new TextDecoder(encoding);
|
|
// text = textDecoder.decode(uint8Array);
|
|
// break;
|
|
// } catch (error) {
|
|
// console.log(`Decoding failed with ${encoding}: ${error}`);
|
|
// }
|
|
// }
|
|
|
|
// console.log(text);
|
|
// })
|
|
// }
|
|
|
|
// 发送消息
|
|
export const sendMessageApi = async (data, that) => {
|
|
let token = uni.getStorageSync('token')
|
|
if (!token) {
|
|
uni.navigateTo({
|
|
url: '/pages/login/login'
|
|
})
|
|
return
|
|
}
|
|
// #ifdef H5
|
|
const response = await fetch('https://jx.xiaolinghou.com/api/chat/random', {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
token,
|
|
},
|
|
body: JSON.stringify(data)
|
|
}, );
|
|
const reader = response.body.getReader();
|
|
const decoder = new TextDecoder("utf-8");
|
|
|
|
let read = () => {
|
|
return reader.read().then(({
|
|
done,
|
|
value
|
|
}) => {
|
|
if (done) {
|
|
that.isSnedMsg = false
|
|
return;
|
|
}
|
|
// 将已下载部分的内容展示出来
|
|
let text = decoder.decode(value, {
|
|
stream: true
|
|
});
|
|
const match = text.match(/"(.*?)"/);
|
|
if (match) {
|
|
text = match[1];
|
|
}
|
|
console.log(text);
|
|
that.messageList[that.messageList.length - 1].message += text
|
|
// 继续读取下一部分
|
|
return read();
|
|
});
|
|
}
|
|
|
|
read()
|
|
// #endif
|
|
|
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
const requestTask = uni.request({
|
|
url: "https://jx.xiaolinghou.com/api/chat/random",
|
|
timeout: 150000,
|
|
responseType: "text",
|
|
method: "POST",
|
|
header: {
|
|
token
|
|
},
|
|
enableChunked: true, //配置这里
|
|
data,
|
|
success: response => {
|
|
console.log(response)
|
|
},
|
|
fail: error => {}
|
|
})
|
|
const decoder = new TextDecoder("utf8");
|
|
requestTask.onChunkReceived(function(response) {
|
|
const uint8Array = new Uint8Array(response.data);
|
|
let text = String.fromCharCode.apply(null, uint8Array);
|
|
text = decodeURIComponent(escape(text));
|
|
const match = text.match(/"(.*?)"/);
|
|
if (match) {
|
|
text = match[1]
|
|
}
|
|
console.log(text);
|
|
that.messageList[that.messageList.length - 1].message += text
|
|
})
|
|
// #endif
|
|
}
|
|
|
|
|
|
|
|
|
|
// 获取问题列表
|
|
export const getQuestionApi = () => http.request({
|
|
method: "GET",
|
|
url: '/index/article'
|
|
})
|
|
|
|
// 获取价格区间
|
|
export const getPhotoPriceApi = () => http.request({
|
|
method: "GET",
|
|
url: '/index/photo'
|
|
})
|
|
|
|
// 支付
|
|
export const toPay = (data) => http.request({
|
|
method: "POST",
|
|
url: '/order/pay',
|
|
data
|
|
})
|
|
// 快递方式列表
|
|
export const getPostList = () => http.request({
|
|
method: "GET",
|
|
url: '/order/express'
|
|
})
|
|
|
|
|
|
// 代收信件信息
|
|
export const getAgentBusinessInfoApi = () => http.request({
|
|
method: "GET",
|
|
url: '/user/write_back'
|
|
})
|
|
|
|
|
|
// 保存代收信息
|
|
export const setAgentBusinessInfoApi = (data) => http.request({
|
|
method: "POST",
|
|
url: '/user/set_back',
|
|
data
|
|
})
|
|
|
|
// 查询订单详情
|
|
|
|
export const getOrderInfo = (params) => http.request({
|
|
method: "GET",
|
|
url: '/order/info',
|
|
params
|
|
}) |