123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- "use strict";
- const common_vendor = require("../../common/vendor.js");
- const submit_1 = () => "./common/submit_1.js";
- const _sfc_main = {
- components: {
- submit_1
- },
- data() {
- return {
- config: {},
- user: {},
- // 聊天记录
- msgList: [],
- total: 0,
- skip: 0,
- limit: 6,
- page: 0,
- // 判断是否跳到最后一条
- is_bottom: true,
- // 判断是否下拉刷新复位
- triggered: false,
- scrollToView: "",
- //滑动最后一条信息
- // 判断是否是选择图片刷新
- is_img: false
- };
- },
- onShow: async function() {
- const that = this;
- that.searchToken();
- that.searchConfig();
- if (!that.is_img) {
- await that.clearPage();
- await that.search();
- }
- },
- onPullDownRefresh: async function() {
- const that = this;
- that.clearPage();
- await that.search();
- common_vendor.index.stopPullDownRefresh();
- },
- methods: {
- searchToken() {
- const that = this;
- try {
- const res = common_vendor.index.getStorageSync("token");
- if (res)
- that.$set(that, `user`, res);
- } catch (e) {
- common_vendor.index.showToast({
- title: err.errmsg,
- icon: "error",
- duration: 2e3
- });
- }
- },
- searchConfig() {
- const that = this;
- try {
- const res = common_vendor.index.getStorageSync("config");
- if (res)
- that.$set(that, `config`, res);
- } catch (e) {
- common_vendor.index.showToast({
- title: err.errmsg,
- icon: "error",
- duration: 2e3
- });
- }
- },
- async search() {
- const that = this;
- if (!that.user._id)
- return;
- let info = {
- skip: that.skip,
- limit: that.limit,
- user: that.user._id
- };
- const res = await that.$api(`/chat`, "GET", {
- ...info
- });
- if (res.errcode == "0") {
- let list = [...res.data.reverse(), ...that.msgList];
- that.$set(that, `msgList`, list);
- that.$set(that, `total`, res.total);
- } else {
- common_vendor.index.showToast({
- title: res.errmsg
- });
- }
- that.goBottom();
- },
- // 进行图片的预览
- previewImg(e) {
- common_vendor.index.previewImage({
- current: 0,
- urls: [e],
- longPressActions: {
- itemList: ["发送给朋友", "保存图片", "收藏"],
- success: function(data) {
- console.log("选中了第" + (data.tapIndex + 1) + "个按钮,第" + (data.index + 1) + "张图片");
- },
- fail: function(err2) {
- console.log(err2.errMsg);
- }
- }
- });
- },
- // 判断是否是选择图片刷新
- choseImg(e) {
- const that = this;
- that.$set(that, `is_img`, e);
- },
- //接受输入内容
- async inputs(e) {
- const that = this;
- let user = that.user;
- if (user._id) {
- let data = {
- "user": user._id,
- "speaker": user._id,
- "content": e.message,
- "time": common_vendor.hooks().format("YYYY-MM-DD HH:mm:ss"),
- "msg_type": e.type
- };
- let res = await that.$api(`/chat`, `POST`, data);
- if (res.errcode == "0") {
- that.msgList.push(res.data);
- } else {
- common_vendor.index.showToast({
- title: res.errmsg,
- icon: "none"
- });
- }
- that.goBottom();
- } else {
- common_vendor.index.navigateTo({
- url: `/pagesIndex/login/index`
- });
- }
- },
- //输入框高度
- heights(e) {
- const that = this;
- that.goBottom();
- },
- // 滚动到底部
- async goBottom() {
- const that = this;
- that.scrollToView = "";
- that.$nextTick(function() {
- that.scrollToView = "msg123456789";
- });
- },
- // 下拉刷新分页
- getFresh(e) {
- const that = this;
- that.$set(that, `triggered`, true);
- that.$set(that, `is_img`, false);
- let msgList = that.msgList;
- let limit = that.limit;
- setTimeout(() => {
- if (that.total > msgList.length) {
- common_vendor.index.showLoading({
- title: "加载中",
- mask: true
- });
- let page = that.page + 1;
- that.$set(that, `page`, page);
- let skip = page * limit;
- that.$set(that, `skip`, skip);
- that.$set(that, `is_bottom`, false);
- that.search();
- common_vendor.index.hideLoading();
- } else {
- common_vendor.index.showToast({
- title: `没有更多聊天记录了`,
- icon: "none"
- });
- }
- that.triggered = false;
- }, 1e3);
- },
- // 分页
- toPage(e) {
- const that = this;
- let list = that.list;
- let limit = that.limit;
- if (that.total > list.length) {
- common_vendor.index.showLoading({
- title: "加载中",
- mask: true
- });
- let page = that.page + 1;
- that.$set(that, `page`, page);
- let skip = page * limit;
- that.$set(that, `skip`, skip);
- that.search();
- common_vendor.index.hideLoading();
- } else
- that.$set(that, `is_bottom`, true);
- },
- // 清空列表
- clearPage() {
- const that = this;
- that.$set(that, `msgList`, []);
- that.$set(that, `skip`, 0);
- that.$set(that, `limit`, 6);
- that.$set(that, `page`, 0);
- }
- }
- };
- if (!Array) {
- const _component_submit_1 = common_vendor.resolveComponent("submit_1");
- _component_submit_1();
- }
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- return {
- a: common_vendor.f($data.msgList, (item, index, i0) => {
- return common_vendor.e({
- a: item.time != ""
- }, item.time != "" ? {
- b: common_vendor.t(item.time)
- } : {}, {
- c: item.speaker != $data.user._id
- }, item.speaker != $data.user._id ? common_vendor.e({
- d: $data.config.logo_url && $data.config.logo_url.length > 0 ? $data.config.logo_url[0].url : "",
- e: item.msg_type == "0"
- }, item.msg_type == "0" ? {
- f: common_vendor.t(item.content)
- } : item.msg_type == "1" ? {
- h: item.content,
- i: common_vendor.o(($event) => $options.previewImg(item.content), index)
- } : {}, {
- g: item.msg_type == "1"
- }) : item.speaker == $data.user._id ? common_vendor.e({
- k: $data.user.logo && $data.user.logo.length > 0 ? $data.user.logo[0].url : "",
- l: item.msg_type == "0"
- }, item.msg_type == "0" ? {
- m: common_vendor.t(item.content)
- } : item.msg_type == "1" ? {
- o: item.content,
- p: common_vendor.o(($event) => $options.previewImg(item.content), index)
- } : {}, {
- n: item.msg_type == "1"
- }) : {}, {
- j: item.speaker == $data.user._id,
- q: index,
- r: "msg" + item._id
- });
- }),
- b: $data.scrollToView,
- c: $data.triggered,
- d: common_vendor.o((...args) => $options.getFresh && $options.getFresh(...args)),
- e: common_vendor.o($options.choseImg),
- f: common_vendor.o($options.inputs),
- g: common_vendor.o($options.heights)
- };
- }
- const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-22cb3e28"], ["__file", "D:/project/赋强公证/notarization_applet/pagesHome/customer/index.vue"]]);
- wx.createPage(MiniProgramPage);
|