You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
5.0 KiB
166 lines
5.0 KiB
"use strict"; |
|
const common_vendor = require("../../common/vendor.js"); |
|
const config_host = require("../../config/host.js"); |
|
const utils_functions = require("../../utils/functions.js"); |
|
const api_chat = require("../../api/chat.js"); |
|
const utils_log = require("../../utils/log.js"); |
|
require("../../utils/qqmap-wx-jssdk.min.js"); |
|
require("../../api/other.js"); |
|
require("../../utils/request.js"); |
|
const HeaderNav = () => "../../components/HeaderNav/Index.js"; |
|
const MzButton = () => "../../components/MzButton/Index.js"; |
|
const _sfc_main = { |
|
components: { |
|
HeaderNav, |
|
MzButton |
|
}, |
|
data: { |
|
windowHeihgt: 1e3, |
|
staticImage: { |
|
wallpaperBgImage: config_host.imghost + "/static/image/background.png" |
|
}, |
|
user: { |
|
avatar: config_host.imghost + "/static/image/banner.png", |
|
nickname: "清晨的风", |
|
background: config_host.imghost + "/static/image/banner.png", |
|
sex: "女", |
|
phone: "15012345678", |
|
coupons: 221, |
|
id: 88685, |
|
birthday: "2002-05-11" |
|
}, |
|
ableChat: false, |
|
message: "", |
|
chat_id: 0, |
|
type: 0, |
|
user_id: 0, |
|
messageList: [] |
|
}, |
|
onLoad(options) { |
|
this.getToken(options.id); |
|
}, |
|
methods: { |
|
getToken(order_id) { |
|
api_chat.getToken(order_id, this.$store.state.userInfo.store_id ? 2 : 1).then((data) => { |
|
this.chat_id = data.data.chat_id; |
|
this.type = data.data.type; |
|
this.user_id = data.data.user_id; |
|
common_vendor.index.connectSocket({ |
|
url: data.data.chat_url |
|
}); |
|
common_vendor.index.onSocketOpen((res) => { |
|
this.ableChat = true; |
|
console.log("WebSocket连接已打开!"); |
|
}); |
|
common_vendor.index.onSocketClose((res) => { |
|
this.ableChat = false; |
|
console.log("WebSocket 已关闭!"); |
|
}); |
|
common_vendor.index.onSocketMessage((res) => { |
|
this.newMessage(res); |
|
}); |
|
}); |
|
}, |
|
newMessage(messages) { |
|
utils_log.log(messages); |
|
messages = JSON.parse(messages.data); |
|
utils_log.log(messages); |
|
if (messages.do_type === "init") { |
|
this.messageList = messages.data; |
|
return; |
|
} |
|
this.messageList.push(messages); |
|
utils_log.log(this.messageList); |
|
}, |
|
sendMessage() { |
|
if (!this.message) { |
|
return common_vendor.index.showToast({ |
|
title: "消息不能为空", |
|
icon: "error" |
|
}); |
|
} |
|
common_vendor.index.showLoading({ |
|
title: "消息发送中...", |
|
mask: true |
|
}); |
|
if (!this.ableChat) { |
|
setInterval((t) => { |
|
if (!this.ableChat) { |
|
return; |
|
} |
|
clearInterval(t); |
|
common_vendor.index.sendSocketMessage({ |
|
data: this.message |
|
}); |
|
common_vendor.index.hideLoading(); |
|
}, 50); |
|
} else { |
|
common_vendor.index.sendSocketMessage({ |
|
data: JSON.stringify({ |
|
do_type: "add", |
|
info: this.message, |
|
msg_type: 1, |
|
send_user_id: this.user_id, |
|
type: this.type, |
|
chat_id: this.chat_id |
|
}) |
|
}); |
|
common_vendor.index.hideLoading(); |
|
this.message = ""; |
|
} |
|
} |
|
}, |
|
onPageScroll(res) { |
|
}, |
|
onUnload() { |
|
try { |
|
common_vendor.index.closeSocket(); |
|
} catch { |
|
} |
|
}, |
|
created() { |
|
this.windowHeihgt = utils_functions.api.navHeight().windowHeihgt; |
|
} |
|
}; |
|
if (!Array) { |
|
const _component_HeaderNav = common_vendor.resolveComponent("HeaderNav"); |
|
const _component_MzButton = common_vendor.resolveComponent("MzButton"); |
|
(_component_HeaderNav + _component_MzButton)(); |
|
} |
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { |
|
return { |
|
a: common_vendor.p({ |
|
title: "2023.5.3订单", |
|
["is-back"]: true |
|
}), |
|
b: "url(" + _ctx.staticImage.wallpaperBgImage + ")", |
|
c: common_vendor.f(_ctx.messageList, (item, index, i0) => { |
|
return common_vendor.e({ |
|
a: item.send_user_id !== _ctx.user_id |
|
}, item.send_user_id !== _ctx.user_id ? { |
|
b: item.avatar ? item.avatar : _ctx.user.avatar |
|
} : {}, { |
|
c: common_vendor.t(item.create_time), |
|
d: common_vendor.t(item.info), |
|
e: item.send_user_id === _ctx.user_id |
|
}, item.send_user_id === _ctx.user_id ? { |
|
f: item.avatar ? item.avatar : _ctx.user.avatar |
|
} : {}, { |
|
g: common_vendor.n(item.send_user_id === _ctx.user_id ? "chat-item my-chat row" : "chat-item other-chat row") |
|
}); |
|
}), |
|
d: _ctx.message, |
|
e: common_vendor.o(($event) => _ctx.message = $event.detail.value), |
|
f: common_vendor.o($options.sendMessage), |
|
g: common_vendor.p({ |
|
title: "发送", |
|
["font-color"]: "#fff", |
|
["button-color"]: "#4DC3B8", |
|
["button-width"]: "auto" |
|
}), |
|
h: _ctx.windowHeihgt - 40 + "px" |
|
}; |
|
} |
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "E:/Project/pet_uni/pages/ChatDetail/index.vue"]]); |
|
_sfc_main.__runtimeHooks = 1; |
|
wx.createPage(MiniProgramPage);
|
|
|