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.
1 lines
63 KiB
1 lines
63 KiB
{"version":3,"sources":["uni-app:///main.js","webpack:///C:/Users/18634/Desktop/项目/mianxueyoupin/pages/notice/chat.vue?2e5e","webpack:///C:/Users/18634/Desktop/项目/mianxueyoupin/pages/notice/chat.vue?a262","webpack:///C:/Users/18634/Desktop/项目/mianxueyoupin/pages/notice/chat.vue?9cd9","webpack:///C:/Users/18634/Desktop/项目/mianxueyoupin/pages/notice/chat.vue?1667","uni-app:///pages/notice/chat.vue","webpack:///C:/Users/18634/Desktop/项目/mianxueyoupin/pages/notice/chat.vue?e0a3","webpack:///C:/Users/18634/Desktop/项目/mianxueyoupin/pages/notice/chat.vue?dc20"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page","data","user_id","avatar","username","nickname","to_id","shop_id","shop_name","shop_avatar","textMsg","isHistoryLoading","reload","current_page","scrollAnimation","scrollTop","scrollToView","msgList","msgImgList","goods","isGoods","goodsData","orderData","emptybottom","RECORDER","isVoice","voiceTis","recordTis","recording","willStop","initPoint","identifier","Y","recordTimer","recordLength","AUDIO","playMsgid","VoiceTimer","popupLayerClass","hideMore","modalName","stateText","refundStatusText","refundStatusBg","TabCur","hideEmoji","emojiList","QnUrl","Sysmodel","onLoad","setTimeout","notice","uni","url","method","id","type","success","onNavigationBarButtonTap","onUnload","number","onShow","methods","getMsgList","key","list","onChat","onSend","sendMsg","lastid","form","name","message","content","createtime","shop","addTextMsg","msg","addVoiceMsg","addImgMsg","addGoodsMsg","addOrderMsg","addSystemTextMsg","emojiData","categories","map","emotions","groups","replaceEmoji","tabSelect","loadHistory","view_id","page","complete","setPicSize","showMore","openDrawer","hideDrawer","chooseImage","camera","getImage","sourceType","sizeType","src","filePath","formData","w","h","fail","title","icon","position","showPic","indicator","current","urls","chooseEmoji","addEmoji","textareaFocus","textareaBlur","sendText","text","sendGoods","sendOrder","order_no","state","closeTips","complaint","browsing","order","hideModal","playVoice","voiceBegin","format","recordBegin","voiceCancel","voiceIng","voiceEnd","recordEnd","clearInterval","length","console","switchVoice","discard"],"mappings":";;;;;;;;;;;;;AAAA;AAGA;AACA;AAHA;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAG1DC,UAAU,CAACC,aAAI,CAAC,C;;;;;;;;;;;;;ACLhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiH;AACjH;AACwD;AACL;AACa;;;AAGhE;AACqK;AACrK,gBAAgB,+KAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,+EAAM;AACR,EAAE,wFAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,mFAAU;AACZ;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC1HA;AAAA;AAAA;AAAA;AAA8lB,CAAgB,wnBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;AC8TlnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AADA;AAAA,eAEA;EACAC;IACA;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MAAA;MACAC;MAAA;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACAC;MACA;MACAC;MACA;;MAEA;MACAC;MAEAC;MACAC;MACAC;MACAC;MACAC;MACAC;QAAAC;QAAAC;MAAA;MACAC;MACAC;MACA;MACAC;MACAC;MACAC;MACA;MACAC;MACA;MACAC;MACAC;MACAC;MACAC;MACAC;MACA;MACA;MACAC;MACAC;MACAC;MACAC;MACAC;IACA;EACA;EACAC;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;cACA;cACA;gBACA;gBACAC;kBACA;gBACA;cACA;cACA;cACA;gBAAAC;cAAA;cACA;cAAA;cAAA,OACAC;gBACAC;gBACAC;gBACArD;kBACAsD;kBACAC;gBACA;gBACAC;kBACA;kBACA;kBACA;kBACA;kBACA;kBACA;kBACA;kBACA;gBACA;cACA;YAAA;cACA;cACA;gBACA;cACA;;cAEA;cACA;gBACA;cACA;cACA;cACA;gBACA;cACA;;cAEA;cACAL;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EACA;EACA;EACAM;IACA;EACA;EACA;EACAC;IACA;MAAAH;MAAAD;IAAA;IACA;IACA;MAAAJ;MAAAS;IAAA;EACA;EACAC;IACA;EACA;EACAC;IACAC;MAAA;MACA;MACAX;QACAY;QACAP;UACA;UACA;YACA;YACA;cACAQ;cACA;YACA;YACA;YACA;cACAA;YACA;UACA;UACA;UACA;UACA;YACA;YACA;YACA;cACA;YACA;UACA;QACA;MACA;IACA;IACA;IACAC;MAAA;MACA;QACA;UACA;QACA;MACA;QACA;QACA;UACA;QACA;QACA;UACA;QACA;QACA;UACA;QACA;QACA;QACA;UACA;QACA;QACA;UACA;QACA;MACA;MACA;MACA;QACA;MACA;IACA;IACA;IACAC;MAAA;MACA;QACA;UACA;YACA;UACA;QACA;UACA;UACA;YACA;UACA;UACA;YACA;UACA;UACA;YACA;UACA;UACA;YACA;UACA;UACA;YACA;UACA;QACA;QACA;QACA;UACA;QACA;MACA;IACA;IACA;IACAC;MACA;MACA;QACAC;QACAA;MACA;MACA;QACAd;QACAC;QACAlD;QACAgE;UACAf;UAAA;UACApD;UACAoE;QACA;QACAC;UACAhB;UACAiB;QACA;QACAC;MACA;MACA;MACA;MACA;MACA;QAAAlB;QAAAvD;QAAA0E;UACApB;UACArD;UACAqE;UACApE;QACA;MAAA;MACA;MACA;IACA;IACA;IACAyE;MACAC;MACA;IACA;IACA;IACAC;MACA;IACA;IACA;IACAC;MACAF;MACA;MACA;IACA;IACA;IACAG;MACA;IACA;IACAC;MACA;IACA;IACA;IACAC;MACA;IACA;IACA;IACAC;MACA;QACAC;QACAC;MACAC;QACA;QACA;UACAC;UACAH;QACA;QACAG;QACAF;MACA;MACA;QAAAE;QAAAH;QAAAC;MAAA;IACA;IACA;IACAG;MAAA;MACA;MACA;QACA;MACA;MACA;IACA;IACA;IACAC;MACA;IACA;IACA;IACAC;MAAA;MAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA,KACA;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA,KAIA;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAGA;gBACA;gBACAC;gBACA;gBAAA;gBAAA,OACAvC;kBACAC;kBACAC;kBACArD;oBACAK;oBACAsF;kBACA;kBACA;kBACAC;oBACA;sBACA;sBACA;sBACA;sBACA;wBACA;0BACA5B;0BACA;wBACA;wBACA;wBACA;0BACAA;wBACA;sBACA;sBACAA;wBACA;sBACA;sBACA;sBACA;sBACA;wBACA;wBACA;0BACA;wBACA;sBACA;sBACA;sBACA;wBACA;wBACA;sBACA;wBACA;sBACA;oBACA;oBACA;kBACA;gBACA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IACA;IAEA;IACA6B;MACA;MACA;MACA;MACA;QACA;QACArB;QACAA;MACA;MACA;IACA;IACA;IACAsB;MACA;MACA;MACA;QACA;QACA;MACA;QACA;MACA;IACA;IACA;IACAC;MACA;MACA;IACA;IACA;IACAC;MAAA;MACA;MACA;MACA/C;QACA;QACA;MACA;IACA;IACA;IACAgD;MACA;IACA;IACA;IACAC;MACA;IACA;IACA;IACAC;MAAA;MACA;MACAhD;QACAiD;QACAC;QAAA;QACA7C;UACAL;YACAC;YACAI;cACA;gBACA;gBACAL;kBACAmD;kBACA9C;oBACAL;sBACAC;sBACAmD;sBACAjC;sBACAkC;sBACAhD;wBACA;0BAAAJ;0BAAAqD;0BAAAC;wBAAA;sBACA;sBACAC;wBACAxD;0BAAAyD;0BAAAC;0BAAAC;wBAAA;sBACA;oBACA;kBACA;gBACA;cACA;YACA;UACA;QACA;MACA;IACA;IACA;IACAC;MACA5D;QACA6D;QACAC;QACAC;MACA;IACA;IACA;IACAC;MACA;MACA;QACA;QACA;MACA;QACA;MACA;IACA;IACA;IACAC;MACA;IACA;IACA;IACAC;MACA;MACA;MACA;QACA;MACA;IACA;IACA;IACAC;MACA;IACA;IAEA;IACAC;MACA;MACA;QACA;MACA;MACA;QAAAC;MAAA;MACA;MACA;IACA;IACA;IACAC;MACA;MACA;MACA;IACA;IACA;IACAC;MACA;QAAApE;QAAAqE;QAAAzG;QAAA0G;MAAA;MACA;MACA;IACA;IACA;IACAC;MACA;IACA;IACA;IACAC;MACA;MACA;MACA;IACA;IACA;IACAC;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;gBACA;gBACA;gBAAA;gBAAA,OACA5E;kBACAC;kBACAC;kBACArD;oBAAAM;kBAAA;kBACAkD;oBACA;oBACA;kBACA;gBACA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IACA;IACA;IACAwE;MAAA;MAAA;QAAA;UAAA;YAAA;cAAA;gBACA;gBACA;gBAAA;gBAAA,OACA7E;kBACAC;kBACAC;kBACArD;oBAAAM;kBAAA;kBACAkD;oBACA;oBACA;kBACA;gBACA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IACA;IACAyE;MACA;IACA;IACA;IACAC;MAAA;MACA;MACA;MACA;QACA;MACA;IACA;IACA;IACAC;MACA;QACA;MACA;MACA;MACA;MACA;QAAAC;MAAA;IACA;IACA;IACAC;MAAA;MACA;MACA;MACA;MACA;QACA;MACA;IACA;IACA;IACAC;MACA;MACA;MACA;MACA;MACA;IACA;IACA;IACAC;MACA;QACA;MACA;MACA;MACA;MACA;QACA;QACA;MACA;QACA;QACA;MACA;IACA;IACA;IACAC;MACA;QACA;MACA;MACA;MACA;MACA;MACA;IACA;IACA;IACAC;MAAA;MACAC;MACA;QACAvF;UACAC;UACAI;YACAL;cACAC;cACAmD;cACAjC;cACAkC;cACAhD;gBACA;kBAAAmF;kBAAAvF;gBAAA;gBACAwB;gBACA;kBACA;gBACA;cACA;cACA+B;gBACA;cACA;YACA;UACA;QACA;MACA;QACAiC;MACA;MACA;IACA;IACA;IACAC;MACA;MACA;IACA;IACAC;MACA;IACA;EACA;AACA;AAAA,2B;;;;;;;;;;;;;ACz7BA;AAAA;AAAA;AAAA;AAAg3B,CAAgB,i3BAAG,EAAC,C;;;;;;;;;;;ACAp4B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pages/notice/chat.js","sourcesContent":["import 'uni-pages';\n// @ts-ignore\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './pages/notice/chat.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./chat.vue?vue&type=template&id=e4b7b674&\"\nvar renderjs\nimport script from \"./chat.vue?vue&type=script&lang=js&\"\nexport * from \"./chat.vue?vue&type=script&lang=js&\"\nimport style0 from \"./chat.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\runtime\\\\componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"pages/notice/chat.vue\"\nexport default component.exports","export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\templateLoader.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--17-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\template.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-uni-app-loader\\\\page-meta.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./chat.vue?vue&type=template&id=e4b7b674&\"","var components\nvar render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n var l1 = _vm.__map(_vm.msgList, function (row, index) {\n var $orig = _vm.__get_orig(row)\n var g0 =\n row.type == \"chat\" &&\n row.to_id == _vm.to_id &&\n row.message.type == \"voice\"\n ? row.message.content.length\n : null\n var g1 =\n row.type == \"chat\" &&\n row.to_id == _vm.to_id &&\n row.message.type == \"voice\"\n ? row.message.content.length\n : null\n var g2 =\n row.type == \"chat\" &&\n row.to_id == _vm.to_id &&\n row.message.type == \"goods\"\n ? _vm.$wanlshop.oss(row.message.content.image, 100, 0)\n : null\n var l0 =\n row.type == \"chat\" &&\n row.to_id == _vm.to_id &&\n row.message.type == \"order\"\n ? _vm.__map(row.message.content.goods, function (item, index) {\n var $orig = _vm.__get_orig(item)\n var g3 = _vm.$wanlshop.oss(item.image, 50, 50)\n return {\n $orig: $orig,\n g3: g3,\n }\n })\n : null\n var g4 =\n row.type == \"chat\" && row.to_id == _vm.to_id\n ? _vm.$wanlshop.oss(row.form.avatar, 100, 100)\n : null\n var g5 =\n row.type == \"chat\" && row.to_id == _vm.to_id\n ? _vm.$wanlshop.timeToChat(row.createtime)\n : null\n var g6 =\n row.type == \"chat\" && !(row.to_id == _vm.to_id)\n ? _vm.$wanlshop.oss(row.form.avatar, 100, 100)\n : null\n var g7 =\n row.type == \"chat\" &&\n !(row.to_id == _vm.to_id) &&\n row.message.type == \"voice\"\n ? row.message.content.length\n : null\n var g8 =\n row.type == \"chat\" &&\n !(row.to_id == _vm.to_id) &&\n row.message.type == \"voice\"\n ? row.message.content.length\n : null\n var g9 =\n row.type == \"chat\" && !(row.to_id == _vm.to_id)\n ? _vm.$wanlshop.timeToChat(row.createtime)\n : null\n return {\n $orig: $orig,\n g0: g0,\n g1: g1,\n g2: g2,\n l0: l0,\n g4: g4,\n g5: g5,\n g6: g6,\n g7: g7,\n g8: g8,\n g9: g9,\n }\n })\n var g10 =\n _vm.goods && _vm.isGoods\n ? _vm.$wanlshop.oss(_vm.goods.image, 100, 100)\n : null\n var l2 = _vm.__map(_vm.goodsData, function (item, index) {\n var $orig = _vm.__get_orig(item)\n var g11 =\n item.goods !== null ? _vm.$wanlshop.oss(item.goods.image, 100, 100) : null\n return {\n $orig: $orig,\n g11: g11,\n }\n })\n var l4 = _vm.__map(_vm.orderData, function (item, index) {\n var $orig = _vm.__get_orig(item)\n var l3 = _vm.__map(item.goods, function (goods, key) {\n var $orig = _vm.__get_orig(goods)\n var g12 = _vm.$wanlshop.oss(goods.image, 100, 100)\n return {\n $orig: $orig,\n g12: g12,\n }\n })\n return {\n $orig: $orig,\n l3: l3,\n }\n })\n _vm.$mp.data = Object.assign(\n {},\n {\n $root: {\n l1: l1,\n g10: g10,\n l2: l2,\n l4: l4,\n },\n }\n )\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\babel-loader\\\\lib\\\\index.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--13-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\script.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./chat.vue?vue&type=script&lang=js&\"","<!-- \r\n\t版本声明:\r\n\t* 由于 WanlLive、WanlChat、以下代码开发难度较大,已将相关代码独立申请著作权,受法律保护!!!\r\n\t* 无论你购买任何版本,均不允许复制到第三方直接、间接使用,且也不能以学习为目的参考和借鉴!!\r\n\t* 你仅有在 WanlShop 中使用、二次开发权利,否则我们会追究法律责任 \r\n\t* 深圳前海万联科技有限公司 @www.i36k.com\r\n-->\r\n<template>\r\n\t<view class=\"wanl-chat\">\r\n\t\t<view class=\"edgeInsetTop\"></view>\r\n\t\t<view @touchstart=\"hideDrawer\">\r\n\t\t\t<scroll-view class=\"cu-chat\" scroll-y=\"true\" :scroll-with-animation=\"scrollAnimation\" :scroll-top=\"scrollTop\"\r\n\t\t\t :scroll-into-view=\"scrollToView\" @scrolltoupper=\"loadHistory\" upper-threshold=\"50\">\r\n\t\t\t\t<!-- 加载历史数据waitingUI -->\r\n\t\t\t\t<view class=\"loading\" v-show=\"isHistoryLoading\">\r\n\t\t\t\t\t<view class=\"spinner\">\r\n\t\t\t\t\t\t<view class=\"rect1\"></view>\r\n\t\t\t\t\t\t<view class=\"rect2\"></view>\r\n\t\t\t\t\t\t<view class=\"rect3\"></view>\r\n\t\t\t\t\t\t<view class=\"rect4\"></view>\r\n\t\t\t\t\t\t<view class=\"rect5\"></view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t\t<view v-for=\"(row, index) in msgList\" :key=\"index\" :id=\"'msg' + row.id\">\r\n\t\t\t\t\t<view v-if=\"row.type == 'chat'\">\r\n\t\t\t\t\t\t<view class=\"cu-item self\" v-if=\"row.to_id == to_id\">\r\n\t\t\t\t\t\t\t<view class=\"main\" v-if=\"row.message.type == 'text'\">\r\n\t\t\t\t\t\t\t\t<view class=\"content bg-green\">\r\n\t\t\t\t\t\t\t\t\t<rich-text :nodes=\"row.message.content.text\"></rich-text>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<!-- 图片消息 -->\r\n\t\t\t\t\t\t\t<view class=\"main\" v-if=\"row.message.type == 'img'\">\r\n\t\t\t\t\t\t\t\t<image :src=\"row.message.content.url\" @tap=\"showPic(row.message)\" :style=\"{ width: row.message.content.w + 'px', height: row.message.content.h + 'px' }\"></image>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<!-- 语音消息 -->\r\n\t\t\t\t\t\t\t<view class=\"main\" v-if=\"row.message.type == 'voice'\" @tap=\"playVoice(row.message)\" :class=\"playMsgid == row.message.id ? 'play' : ''\">\r\n\t\t\t\t\t\t\t\t<view class=\"action text-bold text-grey\" style=\"padding-right: 2rpx;\">\r\n\t\t\t\t\t\t\t\t\t{{ row.message.content.length }}\r\n\t\t\t\t\t\t\t\t\t<text class=\"wlIcon-miao\"></text>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view class=\"content bg-green\">\r\n\t\t\t\t\t\t\t\t\t<text :style=\"{ width: row.message.content.length * 6 + 'rpx' }\"></text>\r\n\t\t\t\t\t\t\t\t\t<text class=\"wlIcon-yuyinyou text-xxl padding-left-xl\"></text>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<!-- 商品消息 1.0.2升级 -->\r\n\t\t\t\t\t\t\t<view class=\"main goods\" v-if=\"row.message.type == 'goods'\">\r\n\t\t\t\t\t\t\t\t<view class=\"content\" @tap=\"onGoods(goods.id)\">\r\n\t\t\t\t\t\t\t\t\t<image :src=\"$wanlshop.oss(row.message.content.image, 100, 0)\" mode=\"widthFix\"></image>\r\n\t\t\t\t\t\t\t\t\t<view class=\"text-price text-orange text-lg margin-tb-xs\">\r\n\t\t\t\t\t\t\t\t\t\t{{row.message.content.price}}\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view>\r\n\t\t\t\t\t\t\t\t\t\t{{row.message.content.title}}\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<!-- 订单消息 1.0.2升级 -->\r\n\t\t\t\t\t\t\t<view class=\"main order\" v-if=\"row.message.type == 'order'\">\r\n\t\t\t\t\t\t\t\t<view class=\"content\" @tap=\"orderDetails(row.message.content.id)\">\r\n\t\t\t\t\t\t\t\t\t<view class=\"\">\r\n\t\t\t\t\t\t\t\t\t\t<text>订单详情:</text>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"margin-tb-bj radius product padding-sm\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"item\" v-for=\"(item, index) in row.message.content.goods\" :key=\"index\">\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"image\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<image :src=\"$wanlshop.oss(item.image, 50, 50)\" mode=\"aspectFill\"></image>\r\n\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"details text-sm\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<view class=\"text-cut wanl-gray-dark\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<text>{{item.title}}</text>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<view class=\"wanl-gray-light flex justify-between\" style=\"width: 100%;\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<view class=\"text-price text-orange\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{{item.price * item.number}}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<view>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<text>{{item.difference}} x {{item.number}}</text>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<text v-if=\"item.refund_status != 0\">({{refundStatusText[item.refund_status]}})</text>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t<view class=\"text-sm flex justify-between \">\r\n\t\t\t\t\t\t\t\t\t\t<view>\r\n\t\t\t\t\t\t\t\t\t\t\t<text class=\"\">{{stateText[row.message.content.state-1]}}</text>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t<view>\r\n\t\t\t\t\t\t\t\t\t\t\t<text>ID:</text>\r\n\t\t\t\t\t\t\t\t\t\t\t<text>{{row.message.content.order_no}}</text>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\r\n\t\t\t\t\t\t\t<view class=\"cu-avatar radius\" :style=\"{ backgroundImage: 'url(' + $wanlshop.oss(row.form.avatar, 100, 100) + ')' }\"></view>\r\n\t\t\t\t\t\t\t<view class=\"date\">{{ $wanlshop.timeToChat(row.createtime) }}</view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t<view class=\"cu-item\" v-else>\r\n\t\t\t\t\t\t\t<view class=\"cu-avatar radius\" :style=\"{ backgroundImage: 'url(' + $wanlshop.oss(row.form.avatar, 100, 100) + ')' }\"></view>\r\n\t\t\t\t\t\t\t<view class=\"main\" v-if=\"row.message.type == 'text'\">\r\n\t\t\t\t\t\t\t\t<view class=\"content\">\r\n\t\t\t\t\t\t\t\t\t<rich-text :nodes=\"row.message.content.text\"></rich-text>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<!-- 图片消息 -->\r\n\t\t\t\t\t\t\t<view class=\"main\" v-if=\"row.message.type == 'img'\">\r\n\t\t\t\t\t\t\t\t<image :src=\"row.message.content.url\" @tap=\"showPic(row.message)\" :style=\"{ width: row.message.content.w + 'px', height: row.message.content.h + 'px' }\"></image>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<!-- 语音消息 -->\r\n\t\t\t\t\t\t\t<view class=\"main\" v-if=\"row.message.type == 'voice'\" @tap=\"playVoice(row.message)\" :class=\"playMsgid == row.message.id ? 'play' : ''\">\r\n\t\t\t\t\t\t\t\t<view class=\"content\">\r\n\t\t\t\t\t\t\t\t\t<text class=\"wlIcon-yuyinzuo text-xxl padding-right-xl\"></text>\r\n\t\t\t\t\t\t\t\t\t<text :style=\"{ width: row.message.content.length * 6 + 'rpx' }\"></text>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view class=\"action text-bold text-grey\">\r\n\t\t\t\t\t\t\t\t\t{{ row.message.content.length }}\r\n\t\t\t\t\t\t\t\t\t<text class=\"wlIcon-miao\"></text>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t<view class=\"date \">{{ $wanlshop.timeToChat(row.createtime) }}</view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view v-if=\"row.type == 'sys'\">\r\n\t\t\t\t\t\t<!-- 系统消息 -->\r\n\t\t\t\t\t\t<view class=\"cu-info round\">对方撤回一条消息!</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</scroll-view>\r\n\t\t</view>\r\n\t\t<!-- 抽屉栏 -->\r\n\t\t<view class=\"popup-layer\" :class=\"{showLayer: popupLayerClass}\" @touchmove.stop.prevent=\"discard\">\r\n\t\t\t<!-- 表情 -->\r\n\t\t\t<view :class=\"{ hidden: hideEmoji }\">\r\n\t\t\t\t<view class=\"emoji\">\r\n\t\t\t\t\t<scroll-view class=\"emojinav\" scroll-x scroll-with-animation>\r\n\t\t\t\t\t\t<view class=\"item\">\r\n\t\t\t\t\t\t\t<view :class=\"item == TabCur ? 'emojibg' : ''\" v-for=\"(item, index) in emojiList.categories\" :key=\"index\" @tap=\"tabSelect\"\r\n\t\t\t\t\t\t\t :data-id=\"item\" :style=\"{ backgroundImage: 'url(' + emojiList.groups[item][0].url + ')' }\"></view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</scroll-view>\r\n\t\t\t\t\t<!-- 列表 -->\r\n\t\t\t\t\t<scroll-view v-for=\"(emoji, groups) in emojiList.groups\" :key=\"groups\" v-if=\"TabCur == groups\" class=\"subject\"\r\n\t\t\t\t\t scroll-y scroll-with-animation>\r\n\t\t\t\t\t\t<view class=\"item grid margin-bottom text-center col-5\">\r\n\t\t\t\t\t\t\t<view v-for=\"(item, index) in emoji\" :key=\"index\" @tap=\"addEmoji(item.value)\" :style=\"{ backgroundImage: 'url(' + item.url + ')' }\"></view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</scroll-view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t\t<!-- 更多功能 1.0.2升级 -->\r\n\t\t\t<view class=\"solid-top\" :class=\"{ hidden: hideMore }\">\r\n\t\t\t\t<view class=\"opmenu solid-top\">\r\n\t\t\t\t\t<view class=\"box\" @tap=\"browsing\">\r\n\t\t\t\t\t\t<view class=\"icon wanl-gray\"><text class=\"wlIcon-shangpin\"></text></view>\r\n\t\t\t\t\t\t<text class=\"text-sm\">商品</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"box\" @tap=\"order\">\r\n\t\t\t\t\t\t<view class=\"icon wanl-gray\"><text class=\"wlIcon-dingdan1\"></text></view>\r\n\t\t\t\t\t\t<text class=\"text-sm\">订单</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<!-- #ifndef H5 -->\r\n\t\t\t\t\t<view class=\"box\" @tap=\"camera\">\r\n\t\t\t\t\t\t<view class=\"icon wanl-gray\"><text class=\"wlIcon-31paishexuanzhong\"></text></view>\r\n\t\t\t\t\t\t<text class=\"text-sm\">拍摄</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<!-- #endif -->\r\n\t\t\t\t\t<view class=\"box\" @tap=\"chooseImage\">\r\n\t\t\t\t\t\t<view class=\"icon wanl-gray\"><text class=\"wlIcon-tupian1\"></text></view>\r\n\t\t\t\t\t\t<text class=\"text-sm\">照片</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"box\" @tap=\"complaint\">\r\n\t\t\t\t\t\t<view class=\"icon wanl-gray\"><text class=\"wlIcon-zhuyidapx\"></text></view>\r\n\t\t\t\t\t\t<text class=\"text-sm\">投诉</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t\t<!-- 底部输入栏 -->\r\n\t\t<view class=\"input-box\" :class=\"{ emptybottom: emptybottom, showLayer: popupLayerClass}\" @touchmove.stop.prevent=\"discard\">\r\n\t\t\t<!-- H5下不能录音,输入栏布局改动一下 -->\r\n\t\t\t<!-- #ifndef H5 -->\r\n\t\t\t<view class=\"voice\">\r\n\t\t\t\t<view :class=\"isVoice ? 'wlIcon-jianpanqiehuan' : 'wlIcon-yuyin'\" @tap=\"switchVoice\"></view>\r\n\t\t\t</view>\r\n\t\t\t<!-- #endif -->\r\n\r\n\t\t\t<!-- #ifdef H5 -->\r\n\t\t\t<view class=\"more\" @tap=\"showMore\">\r\n\t\t\t\t<view class=\"wlIcon-yuanquanjiahao\"></view>\r\n\t\t\t</view>\r\n\t\t\t<!-- #endif -->\r\n\t\t\t<view class=\"textbox\">\r\n\t\t\t\t<view class=\"voice-mode\" :class=\"[isVoice ? '' : 'hidden', recording ? 'recording' : '']\" @touchstart=\"voiceBegin\"\r\n\t\t\t\t @touchmove.stop.prevent=\"voiceIng\" @touchend=\"voiceEnd\" @touchcancel=\"voiceCancel\">\r\n\t\t\t\t\t{{ voiceTis }}\r\n\t\t\t\t</view>\r\n\t\t\t\t<view class=\"text-mode\" :class=\"isVoice ? 'hidden' : ''\">\r\n\t\t\t\t\t<view class=\"box\">\r\n\t\t\t\t\t\t<textarea auto-height=\"true\" maxlength=\"300\" :show-confirm-bar=\"false\" cursor-spacing=\"90\" v-model=\"textMsg\"\r\n\t\t\t\t\t\t @focus=\"textareaFocus\" @blur=\"textareaBlur\" @confirm=\"sendText\" />\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t<view class=\"em\" @tap=\"chooseEmoji\"><view class=\"wlIcon-biaoqing2\"></view></view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t\t<!-- #ifndef H5 -->\r\n\t\t\t<view class=\"more\" @tap=\"showMore\" style=\"margin-right: -12rpx;\"><view class=\"wlIcon-yuanquanjiahao\"></view></view>\r\n\t\t\t<!-- #endif -->\r\n\t\t\t<view class=\"send\" :class=\"isVoice ? 'hidden' : ''\" @tap=\"sendText\">\r\n\t\t\t\t<text class=\"wlIcon-zhifeiji\" v-if=\"textMsg\"></text>\r\n\t\t\t\t<text class=\"wlIcon-fasong\" v-else></text>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t\t<!-- 提示 1.0.2升级 -->\r\n\t\t<view class=\"chatTips bg-white radius-bock margin-lr-bj padding-sm\" v-if=\"goods && isGoods\">\r\n\t\t\t<image class=\"radius\" :src=\"$wanlshop.oss(goods.image,100,100)\" mode=\"aspectFill\"></image>\r\n\t\t\t<view class=\"details\">\r\n\t\t\t\t<view class=\"flex justify-between margin-bottom-sm\">\r\n\t\t\t\t\t<view class=\"text-cut title\">\r\n\t\t\t\t\t\t<text>{{goods.title}}</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view @tap=\"closeTips()\">\r\n\t\t\t\t\t\t<text class=\"wlIcon-31guanbi\"></text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t\t<view class=\"flex justify-between\">\r\n\t\t\t\t\t<view class=\"text-lg text-orange\">\r\n\t\t\t\t\t\t<text class=\"text-price\">{{goods.price}}</text>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view>\r\n\t\t\t\t\t\t<button class=\"cu-btn round bg-orange sm\" @tap=\"sendGoods(goods)\">发送商家</button>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t\t<!-- 录音UI效果 -->\r\n\t\t<view class=\"record\" :class=\"recording ? '' : 'hidden'\">\r\n\t\t\t<view class=\"ing\" :class=\"willStop ? 'hidden' : ''\"><view class=\"wlIcon-huatong01\"></view></view>\r\n\t\t\t<view class=\"cancel\" :class=\"willStop ? '' : 'hidden'\"><view class=\"wlIcon-shanchu2\"></view></view>\r\n\t\t\t<view class=\"tis\" :class=\"willStop ? 'change' : ''\">{{ recordTis }}</view>\r\n\t\t</view>\r\n\t\t<!-- 模态框 -->\r\n\t\t<view class=\"WANL-MODAL\">\r\n\t\t\t<!-- 商品列表 -->\r\n\t\t\t<view class=\"cu-modal bottom-modal\" :class=\"modalName == 'goods' ? 'show' : ''\" @tap=\"hideModal\">\r\n\t\t\t\t<view class=\"cu-dialog bg-white\" @tap.stop=\"\">\r\n\t\t\t\t\t<view class=\"wanl-modal\">\r\n\t\t\t\t\t\t<view class=\"head padding-bj\">\r\n\t\t\t\t\t\t\t<view class=\"content\"><view class=\"text-lg\">浏览过的商品</view></view>\r\n\t\t\t\t\t\t\t<view class=\"close wlIcon-31guanbi\" @tap=\"hideModal\"></view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t<scroll-view class=\"scroll-y\" scroll-y=\"true\">\r\n\t\t\t\t\t\t\t<view class=\"item goods\" v-for=\"(item, index) in goodsData\" :key=\"index\">\r\n\t\t\t\t\t\t\t\t<!-- 1.0.8升级 -->\r\n\t\t\t\t\t\t\t\t<block v-if=\"item.goods !== null\">\r\n\t\t\t\t\t\t\t\t\t<image class=\"radius\" :src=\"$wanlshop.oss(item.goods.image,100,100)\" mode=\"aspectFill\"></image>\r\n\t\t\t\t\t\t\t\t\t<view class=\"details\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"text-cut-2 title\">\r\n\t\t\t\t\t\t\t\t\t\t\t<text>{{item.goods.title}}</text>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"flex justify-between info\">\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"text-lg text-orange\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<text class=\"text-price\">{{item.goods.price}}</text>\r\n\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t\t<button class=\"cu-btn round line-orange sm\" @tap=\"sendGoods(item.goods)\">发送商品</button>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</block>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t</scroll-view>\r\n\t\t\t\t\t\t<view class=\"foot padding-lr-bj\"><button class=\"cu-btn bg-gradual-orange round text-bold complete\" @tap=\"hideModal\">完成</button></view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t\t<!-- 订单列表 -->\r\n\t\t\t<view class=\"cu-modal bottom-modal\" :class=\"modalName == 'order' ? 'show' : ''\" @tap=\"hideModal\">\r\n\t\t\t\t<view class=\"cu-dialog bg-bgcolor\" @tap.stop=\"\">\r\n\t\t\t\t\t<view class=\"wanl-modal\">\r\n\t\t\t\t\t\t<view class=\"head padding-bj\">\r\n\t\t\t\t\t\t\t<view class=\"content\"><view class=\"text-lg\">购买过的订单</view></view>\r\n\t\t\t\t\t\t\t<view class=\"close wlIcon-31guanbi\" @tap=\"hideModal\"></view>\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t<scroll-view class=\"scroll-y\" scroll-y=\"true\">\r\n\t\t\t\t\t\t\t<view class=\"item bg-white radius-bock margin-tb-sm padding-bj\" v-for=\"(item, index) in orderData\" :key=\"item.id\" @tap=\"sendOrder(item)\">\r\n\t\t\t\t\t\t\t\t<view class=\"flex justify-between\">\r\n\t\t\t\t\t\t\t\t\t<text>订单号:{{item.order_no}}</text>\r\n\t\t\t\t\t\t\t\t\t<text class=\"wanl-gray-dark text-sm\">{{stateText[item.state-1]}}</text>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view class=\"goods\" v-for=\"(goods, key) in item.goods\" :key=\"key\">\r\n\t\t\t\t\t\t\t\t\t<image class=\"radius\" :src=\"$wanlshop.oss(goods.image,100,100)\" mode=\"aspectFill\"></image>\r\n\t\t\t\t\t\t\t\t\t<view class=\"details\">\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"text-cut-2 title wanl-gray-dark\">\r\n\t\t\t\t\t\t\t\t\t\t\t<text>{{goods.title}}</text>\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t<view class=\"flex justify-between info\">\r\n\t\t\t\t\t\t\t\t\t\t\t<view class=\"text-lg text-orange\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<text class=\"text-price\">{{goods.price}}</text>\r\n\t\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t\t\t<!-- <button v-if=\"goods.refund_status != 0\" class=\"cu-btn round sm\" :class=\"refundStatusBg[goods.refund_status]\">{{refundStatusText[goods.refund_status]}}</button> -->\r\n\t\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t\t<view class=\"flex justify-end\">\r\n\t\t\t\t\t\t\t\t\t<button class=\"cu-btn round sm line-orange\">发送订单</button>\r\n\t\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t\t</view>\r\n\t\t\t\t\t\t</scroll-view>\r\n\t\t\t\t\t\t<view class=\"foot padding-lr-bj\"><button class=\"cu-btn bg-gradual-orange round text-bold complete\" @tap=\"hideModal\">完成</button></view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t</view>\r\n</template>\r\n<script>\r\nconst emotions = require('@/static/json/emotions.json');\r\nimport { mapMutations } from 'vuex';\r\nexport default {\r\n\tdata() {\r\n\t\treturn {\r\n\t\t\tuser_id: this.$store.state.user.id,\r\n\t\t\tavatar: this.$store.state.user.avatar,\r\n\t\t\tusername: this.$store.state.user.username,\r\n\t\t\tnickname: this.$store.state.user.nickname,\r\n\t\t\tto_id: 0,\r\n\t\t\tshop_id: 0,\r\n\t\t\tshop_name: null,\r\n\t\t\tshop_avatar: null,\r\n\t\t\ttextMsg: '', //文字消息\r\n\t\t\tisHistoryLoading: false, //消息列表\r\n\t\t\treload: false,\r\n\t\t\tcurrent_page: 1,\r\n\t\t\tscrollAnimation: false,\r\n\t\t\tscrollTop: 0,\r\n\t\t\tscrollToView: '',\r\n\t\t\tmsgList: [],\r\n\t\t\tmsgImgList: [],\r\n\t\t\tgoods: null,\r\n\t\t\tisGoods: true,\r\n\t\t\tgoodsData: [],\r\n\t\t\torderData: [],\r\n\t\t\t// 取消底部\r\n\t\t\temptybottom: false,\r\n\t\t\t//录音相关参数\r\n\t\t\t// #ifndef H5\r\n\t\t\t//H5不能录音\r\n\t\t\tRECORDER: uni.getRecorderManager(),\r\n\t\t\t// #endif\r\n\t\t\tisVoice: false,\r\n\t\t\tvoiceTis: '按住 说话',\r\n\t\t\trecordTis: '手指上滑 取消发送',\r\n\t\t\trecording: false,\r\n\t\t\twillStop: false,\r\n\t\t\tinitPoint: { identifier: 0, Y: 0 },\r\n\t\t\trecordTimer: null,\r\n\t\t\trecordLength: 0,\r\n\t\t\t//播放语音相关参数\r\n\t\t\tAUDIO: uni.createInnerAudioContext(),\r\n\t\t\tplayMsgid: null,\r\n\t\t\tVoiceTimer: null,\r\n\t\t\t// 抽屉参数\r\n\t\t\tpopupLayerClass: false,\r\n\t\t\t// more参数\r\n\t\t\thideMore: true,\r\n\t\t\tmodalName: null,\r\n\t\t\tstateText: [\"等待您付款\", \"付款成功\", \"待收货\", \"待评论\", \"退款订单\", \"订单已完成\", \"交易关闭\"],\r\n\t\t\trefundStatusText: [\"未退款\", \"退款中\", \"待退货\", \"退款完成\", \"退款关闭\", \"退款被拒\"],\r\n\t\t\trefundStatusBg: [\"\", \"bg-orange\", \"bg-red\", \"bg-green\", \"bg-grey\", \"bg-red\"],\r\n\t\t\t//表情定义\r\n\t\t\t//表情\r\n\t\t\tTabCur: '默认',\r\n\t\t\thideEmoji: true,\r\n\t\t\temojiList: this.emojiData(),\r\n\t\t\tQnUrl: '',\r\n\t\t\tSysmodel: this.$wanlshop.wanlsys().model\r\n\t\t};\r\n\t},\r\n\tasync onLoad(option) {\r\n\t\t// 判断是否通过商品进来 1.0.2升级\r\n\t\tif (option.hasOwnProperty('goods')) {\r\n\t\t\tthis.goods = JSON.parse(option.goods);\r\n\t\t\tsetTimeout(()=> {\r\n\t\t\t\tthis.isGoods = false;\r\n\t\t\t}, 5000);\r\n\t\t}\r\n\t\t// 临时关闭推送\r\n\t\tthis.$store.commit('chat/setIschat', {notice: false});\r\n\t\t// 查看权限 1.0.2升级 追加商家在线状态 \r\n\t\tawait uni.request({\r\n\t\t\turl: '/wanlshop/chat/getShopChat',\r\n\t\t\tmethod: 'POST',\r\n\t\t\tdata: {\r\n\t\t\t\tid: option.shop_id,\r\n\t\t\t\ttype: 'chat'\r\n\t\t\t},\r\n\t\t\tsuccess: res => {\r\n\t\t\t\tthis.to_id = res.data.user_id;\r\n\t\t\t\tthis.shop_id = res.data.id;\r\n\t\t\t\t// 新版新追加\r\n\t\t\t\tthis.shop_name = res.data.shopname;\r\n\t\t\t\tthis.shop_avatar = res.data.avatar;\r\n\t\t\t\tthis.$wanlshop.title(res.data.shopname + (res.data.isOnline == 1 ? '-在线':'-离线'));\r\n\t\t\t\t// 初始界面\r\n\t\t\t\tthis.getMsgList(res.data.user_id);\r\n\t\t\t}\r\n\t\t});\r\n\t\t//语音自然播放结束\r\n\t\tthis.AUDIO.onEnded(res => {\r\n\t\t\tthis.playMsgid = null;\r\n\t\t});\r\n\t\t// #ifndef H5\r\n\t\t//录音开始事件\r\n\t\tthis.RECORDER.onStart(e => {\r\n\t\t\tthis.recordBegin(e);\r\n\t\t});\r\n\t\t//录音结束事件\r\n\t\tthis.RECORDER.onStop(e => {\r\n\t\t\tthis.recordEnd(e);\r\n\t\t});\r\n\t\t// #endif\r\n\t\t// 监听服务消息\r\n\t\tuni.$on('onMessage', this.onSend);\r\n\t},\r\n\t// 店铺按钮\r\n\tonNavigationBarButtonTap() {\r\n\t\tthis.onShop(this.shop_id);\r\n\t},\r\n\t// 监听返回\r\n\tonUnload() {\r\n\t\tthis.$store.dispatch('chat/update', {type:'del', id:this.to_id});\r\n\t\t// 恢复全局监听\r\n\t\tthis.$store.commit('chat/setIschat', {notice: true, number: 0});\r\n\t},\r\n\tonShow() {\r\n\t\tthis.scrollTop = 9999999;\r\n\t},\r\n\tmethods: {\r\n\t\tgetMsgList(id) {\r\n\t\t\t// 消息列表\r\n\t\t\tuni.getStorage({\r\n\t\t\t\tkey: 'wanlchat:message_' + id,\r\n\t\t\t\tsuccess: res => {\r\n\t\t\t\t\tvar list = res.data;\r\n\t\t\t\t\tfor (let i = 0; i < list.length; i++) {\r\n\t\t\t\t\t\t// 获取消息中的图片,并处理显示尺寸\r\n\t\t\t\t\t\tif (list[i].type == 'chat' && list[i].message.type == 'img') {\r\n\t\t\t\t\t\t\tlist[i].message.content = this.setPicSize(list[i].message.content);\r\n\t\t\t\t\t\t\tthis.msgImgList.push(list[i].message.content.url);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// 获取消息中表情,并处理为图片\r\n\t\t\t\t\t\tif (list[i].type == 'chat' && list[i].message.type == 'text') {\r\n\t\t\t\t\t\t\tlist[i].message.content.text = this.replaceEmoji(list[i].message.content.text);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.msgList = list;\r\n\t\t\t\t\t// 滚动到底部\r\n\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t//进入页面滚动到底部\r\n\t\t\t\t\t\tthis.scrollTop = 9999;\r\n\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\tthis.scrollAnimation = true;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 接受本地消息\r\n\t\tonChat(msg) {\r\n\t\t\tif (msg.type == 'system') {\r\n\t\t\t\tif (msg.msg.type == 'text') {\r\n\t\t\t\t\tthis.addSystemTextMsg(msg);\r\n\t\t\t\t}\r\n\t\t\t} else if (msg.type == 'chat') {\r\n\t\t\t\t// 用户消息\r\n\t\t\t\tif (msg.message.type == 'text') {\r\n\t\t\t\t\tthis.addTextMsg(msg);\r\n\t\t\t\t}\r\n\t\t\t\tif (msg.message.type == 'voice') {\r\n\t\t\t\t\tthis.addVoiceMsg(msg);\r\n\t\t\t\t}\r\n\t\t\t\tif (msg.message.type == 'img') {\r\n\t\t\t\t\tthis.addImgMsg(msg);\r\n\t\t\t\t}\r\n\t\t\t\t// 1.0.2升级\r\n\t\t\t\tif (msg.message.type == 'goods') {\r\n\t\t\t\t\tthis.addGoodsMsg(msg);\r\n\t\t\t\t}\r\n\t\t\t\tif (msg.message.type == 'order') {\r\n\t\t\t\t\tthis.addOrderMsg(msg);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// 滚动到底\r\n\t\t\tthis.$nextTick(() => {\r\n\t\t\t\tthis.scrollToView = 'msg' + msg.id;\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 接受在线消息\r\n\t\tonSend(msg) {\r\n\t\t\tif (msg.form.id == this.to_id) {\r\n\t\t\t\tif (msg.type == 'system') {\r\n\t\t\t\t\tif (msg.msg.type == 'text') {\r\n\t\t\t\t\t\tthis.addSystemTextMsg(msg);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (msg.type == 'chat') {\r\n\t\t\t\t\t// 用户消息\r\n\t\t\t\t\tif (msg.message.type == 'text') {\r\n\t\t\t\t\t\tthis.addTextMsg(msg);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (msg.message.type == 'voice') {\r\n\t\t\t\t\t\tthis.addVoiceMsg(msg);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (msg.message.type == 'img') {\r\n\t\t\t\t\t\tthis.addImgMsg(msg);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (msg.message.type == 'goods') {\r\n\t\t\t\t\t\tthis.addGoodsMsg(msg);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (msg.message.type == 'order') {\r\n\t\t\t\t\t\tthis.addOrderMsg(msg);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// 滚动到底\r\n\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\tthis.scrollToView = 'msg' + msg.id;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 发送消息\r\n\t\tsendMsg(content, type) {\r\n\t\t\tlet lastid = 1;\r\n\t\t\tif (this.msgList.length) {\r\n\t\t\t\tlastid = this.msgList[this.msgList.length - 1].id;\r\n\t\t\t\tlastid++;\r\n\t\t\t}\r\n\t\t\tlet data = {\r\n\t\t\t\tid: lastid,\r\n\t\t\t\ttype: 'chat',\r\n\t\t\t\tto_id: this.to_id,\r\n\t\t\t\tform: {\r\n\t\t\t\t\tid: this.user_id, //本人\r\n\t\t\t\t\tavatar: this.avatar,\r\n\t\t\t\t\tname: this.nickname\r\n\t\t\t\t},\r\n\t\t\t\tmessage: {\r\n\t\t\t\t\ttype: type,\r\n\t\t\t\t\tcontent: content\r\n\t\t\t\t},\r\n\t\t\t\tcreatetime: parseInt(new Date().getTime() / 1000)\r\n\t\t\t};\r\n\t\t\t// 深拷贝移除数据绑定\r\n\t\t\tthis.onChat(JSON.parse(JSON.stringify(data)));\r\n\t\t\t// 更新列表\r\n\t\t\tthis.$store.dispatch('chat/update', {type:'send', data:data, shop: {\r\n\t\t\t\tid: this.shop_id,\r\n\t\t\t\tuser_id: this.to_id,\r\n\t\t\t\tname: this.shop_name,\r\n\t\t\t\tavatar: this.shop_avatar,\r\n\t\t\t}});\r\n\t\t\t// 发送消息\r\n\t\t\tthis.$wanlshop.send(data);\r\n\t\t},\r\n\t\t// 添加文字消息到列表\r\n\t\taddTextMsg(msg) {\r\n\t\t\tmsg.message.content.text = this.replaceEmoji(msg.message.content.text);\r\n\t\t\tthis.msgList.push(msg);\r\n\t\t},\r\n\t\t// 添加语音消息到列表\r\n\t\taddVoiceMsg(msg) {\r\n\t\t\tthis.msgList.push(msg);\r\n\t\t},\r\n\t\t// 添加图片消息到列表\r\n\t\taddImgMsg(msg) {\r\n\t\t\tmsg.message.content = this.setPicSize(msg.message.content);\r\n\t\t\tthis.msgImgList.push(msg.message.content.url);\r\n\t\t\tthis.msgList.push(msg);\r\n\t\t},\r\n\t\t// 添加商品消息到列表 1.0.2升级\r\n\t\taddGoodsMsg(msg) {\r\n\t\t\tthis.msgList.push(msg);\r\n\t\t},\r\n\t\taddOrderMsg(msg) {\r\n\t\t\tthis.msgList.push(msg);\r\n\t\t},\r\n\t\t// 添加系统文字消息到列表\r\n\t\taddSystemTextMsg(msg) {\r\n\t\t\tthis.msgList.push(msg);\r\n\t\t},\r\n\t\t// 表情数据\r\n\t\temojiData() {\r\n\t\t\tvar groups = {},\r\n\t\t\t\tcategories = [],\r\n\t\t\t\tmap = {};\r\n\t\t\temotions.forEach(emotion => {\r\n\t\t\t\tvar cate = emotion.category.length > 0 ? emotion.category : '默认';\r\n\t\t\t\tif (!groups[cate]) {\r\n\t\t\t\t\tgroups[cate] = [];\r\n\t\t\t\t\tcategories.push(cate);\r\n\t\t\t\t}\r\n\t\t\t\tgroups[cate].push(emotion);\r\n\t\t\t\tmap[emotion.phrase] = emotion.icon;\r\n\t\t\t});\r\n\t\t\treturn { groups, categories, map };\r\n\t\t},\r\n\t\t//替换表情符号为图片\r\n\t\treplaceEmoji(str) {\r\n\t\t\t// 这里处理 链接 换行符\r\n\t\t\tlet replacedStr = str.replace(/\\[([^(\\]|\\[)]*)\\]/g, (item, index) => {\r\n\t\t\t\treturn '<img src=\"' + this.emojiList.map[item] + '\" width=\"18rpx\">';\r\n\t\t\t});\r\n\t\t\treturn replacedStr.replace(/(\\r\\n)|(\\n)/g, '<br>');\r\n\t\t},\r\n\t\t// 表情tab\r\n\t\ttabSelect(e) {\r\n\t\t\tthis.TabCur = e.currentTarget.dataset.id;\r\n\t\t},\r\n\t\t//触发滑动到顶部(加载历史信息记录)\r\n\t\tasync loadHistory(e) {\r\n\t\t\tif (this.isHistoryLoading) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t// 说明加载过一次,并且没有任何记录了\r\n\t\t\tif (this.reload) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.isHistoryLoading = true; //参数作为进入请求标识,防止重复请求\r\n\t\t\tthis.scrollAnimation = false; //关闭滑动动画\r\n\t\t\tlet view_id = this.msgList[0].id; //记住第一个信息ID\r\n\t\t\t//请求历史记录效果\r\n\t\t\tawait uni.request({\r\n\t\t\t\turl: '/wanlshop/chat/history',\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tto_id: this.to_id,\r\n\t\t\t\t\tpage: this.current_page\r\n\t\t\t\t},\r\n\t\t\t\t// 1.1.8升级\r\n\t\t\t\tcomplete: res => {\r\n\t\t\t\t\tif(res.res.code == 1){\r\n\t\t\t\t\t\t// 消息列表\r\n\t\t\t\t\t\tlet list = res.data.data;\r\n\t\t\t\t\t\t// 获取消息中的图片,并处理显示尺寸\r\n\t\t\t\t\t\tfor (let i = 0; i < list.length; i++) {\r\n\t\t\t\t\t\t\tif (list[i].type == 'chat' && list[i].message.type == 'img') {\r\n\t\t\t\t\t\t\t\tlist[i].message.content = this.setPicSize(list[i].message.content);\r\n\t\t\t\t\t\t\t\tthis.msgImgList.unshift(list[i].message.content.url);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// 获取消息中表情,并处理为图片\r\n\t\t\t\t\t\t\tif (list[i].type == 'chat' && list[i].message.type == 'text') {\r\n\t\t\t\t\t\t\t\tlist[i].message.content.text = this.replaceEmoji(list[i].message.content.text);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tlist.sort(function(a, b) {\r\n\t\t\t\t\t\t\treturn a.updatetime - b.updatetime;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tthis.msgList = res.data.current_page == 1 ? list : list.concat(this.msgList);\r\n\t\t\t\t\t\t//这段代码很重要,不然每次加载历史数据都会跳到顶部\r\n\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\tthis.scrollToView = 'msg' + view_id;\r\n\t\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\t\tthis.scrollAnimation = true; //恢复滚动动画\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// 判断尾页\r\n\t\t\t\t\t\tif (res.data.current_page == res.data.last_page) {\r\n\t\t\t\t\t\t\t// 下次不允许下拉加载数据了\r\n\t\t\t\t\t\t\tthis.reload = true;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.current_page = res.data.current_page + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.isHistoryLoading = false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t//处理图片尺寸,如果不处理宽高,新进入页面加载图片时候会闪\r\n\t\tsetPicSize(content) {\r\n\t\t\t// 让图片最长边等于设置的最大长度,短边等比例缩小,图片控件真实改变,区别于aspectFit方式。\r\n\t\t\tlet maxW = uni.upx2px(350); //350是定义消息图片最大宽度\r\n\t\t\tlet maxH = uni.upx2px(350); //350是定义消息图片最大高度\r\n\t\t\tif (content.w > maxW || content.h > maxH) {\r\n\t\t\t\tlet scale = content.w / content.h;\r\n\t\t\t\tcontent.w = scale > 1 ? maxW : maxH * scale;\r\n\t\t\t\tcontent.h = scale > 1 ? maxW / scale : maxH;\r\n\t\t\t}\r\n\t\t\treturn content;\r\n\t\t},\r\n\t\t//更多功能(点击+弹出)\r\n\t\tshowMore() {\r\n\t\t\tthis.isVoice = false;\r\n\t\t\tthis.hideEmoji = true;\r\n\t\t\tif (this.hideMore) {\r\n\t\t\t\tthis.hideMore = false;\r\n\t\t\t\tthis.openDrawer();\r\n\t\t\t} else {\r\n\t\t\t\tthis.hideDrawer();\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 打开抽屉\r\n\t\topenDrawer() {\r\n\t\t\tthis.emptybottom = true;\r\n\t\t\tthis.popupLayerClass = true;\r\n\t\t},\r\n\t\t// 隐藏抽屉\r\n\t\thideDrawer() {\r\n\t\t\tthis.emptybottom = false;\r\n\t\t\tthis.popupLayerClass = false;\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.hideMore = true;\r\n\t\t\t\tthis.hideEmoji = true;\r\n\t\t\t}, 150);\r\n\t\t},\r\n\t\t// 选择图片发送\r\n\t\tchooseImage() {\r\n\t\t\tthis.getImage('album');\r\n\t\t},\r\n\t\t//拍照发送\r\n\t\tcamera() {\r\n\t\t\tthis.getImage('camera');\r\n\t\t},\r\n\t\t//选照片 or 拍照\r\n\t\tgetImage(type) {\r\n\t\t\tthis.hideDrawer();\r\n\t\t\tuni.chooseImage({\r\n\t\t\t\tsourceType: [type],\r\n\t\t\t\tsizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有\r\n\t\t\t\tsuccess: res => {\r\n\t\t\t\t\tuni.request({\r\n\t\t\t\t\t\turl: '/wanlshop/common/uploadData',\r\n\t\t\t\t\t\tsuccess: updata => {\r\n\t\t\t\t\t\t\tfor (let i = 0; i < res.tempFilePaths.length; i++) {\r\n\t\t\t\t\t\t\t\t// 读取图片宽高\r\n\t\t\t\t\t\t\t\tuni.getImageInfo({\r\n\t\t\t\t\t\t\t\t\tsrc: res.tempFilePaths[i],\r\n\t\t\t\t\t\t\t\t\tsuccess: image => {\r\n\t\t\t\t\t\t\t\t\t\tuni.uploadFile({\r\n\t\t\t\t\t\t\t\t\t\t\turl: updata.data.uploadurl,\r\n\t\t\t\t\t\t\t\t\t\t\tfilePath: image.path,\r\n\t\t\t\t\t\t\t\t\t\t\tname: 'file',\r\n\t\t\t\t\t\t\t\t\t\t\tformData: updata.data.storage == 'local' ? null : updata.data.multipart,\r\n\t\t\t\t\t\t\t\t\t\t\tsuccess: data => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.sendMsg({ url: JSON.parse(data.data).data.fullurl, w: image.width, h: image.height }, 'img');\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\tfail: error => {\r\n\t\t\t\t\t\t\t\t\t\t\t\tuni.showToast({title: JSON.parse(error.data).msg, icon: 'error', position: true});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 预览图片\r\n\t\tshowPic(message) {\r\n\t\t\tuni.previewImage({\r\n\t\t\t\tindicator: 'none',\r\n\t\t\t\tcurrent: message.content.url,\r\n\t\t\t\turls: this.msgImgList\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 选择表情\r\n\t\tchooseEmoji() {\r\n\t\t\tthis.hideMore = true;\r\n\t\t\tif (this.hideEmoji) {\r\n\t\t\t\tthis.hideEmoji = false;\r\n\t\t\t\tthis.openDrawer();\r\n\t\t\t} else {\r\n\t\t\t\tthis.hideDrawer();\r\n\t\t\t}\r\n\t\t},\r\n\t\t//添加表情\r\n\t\taddEmoji(em) {\r\n\t\t\tthis.textMsg += em;\r\n\t\t},\r\n\t\t//获取焦点,如果不是选表情ing,则关闭抽屉\r\n\t\ttextareaFocus() {\r\n\t\t\tthis.emptybottom = true;\r\n\t\t\tthis.closeTips();\r\n\t\t\tif (this.popupLayerClass && this.hideMore == false) {\r\n\t\t\t\tthis.hideDrawer();\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 失去焦点\r\n\t\ttextareaBlur() {\r\n\t\t\tthis.emptybottom = false;\r\n\t\t},\r\n\t\t\r\n\t\t// 发送文字消息\r\n\t\tsendText() {\r\n\t\t\tthis.hideDrawer(); //隐藏抽屉\r\n\t\t\tif (!this.textMsg) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tlet msg = { text: this.textMsg };\r\n\t\t\tthis.sendMsg(msg, 'text');\r\n\t\t\tthis.textMsg = ''; //清空输入框\r\n\t\t},\r\n\t\t// 发送商品消息\r\n\t\tsendGoods(data){\r\n\t\t\tthis.sendMsg(data, 'goods');\r\n\t\t\tthis.closeTips();\r\n\t\t\tthis.hideModal();\r\n\t\t},\r\n\t\t// 发送订单消息\r\n\t\tsendOrder(data){\r\n\t\t\tthis.sendMsg({id: data.id,order_no: data.order_no,goods: data.goods,state: data.state}, 'order');\r\n\t\t\tthis.closeTips();\r\n\t\t\tthis.hideModal();\r\n\t\t},\r\n\t\t// 关闭提示窗口\r\n\t\tcloseTips(){\r\n\t\t\tthis.isGoods = false;\r\n\t\t},\r\n\t\t// 投诉\r\n\t\tcomplaint(){\r\n\t\t\tthis.$wanlshop.to(`/pages/user/complaint/complaint?id=${this.shop_id}&type=2`);\r\n\t\t\t//隐藏抽屉\r\n\t\t\tthis.hideDrawer(); \r\n\t\t},\r\n\t\t// 查询浏览商品\r\n\t\tasync browsing(){\r\n\t\t\t//隐藏抽屉\r\n\t\t\tthis.hideDrawer(); \r\n\t\t\tawait uni.request({\r\n\t\t\t\turl: '/wanlshop/product/getBrowsingToShop',\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: {shop_id: this.shop_id},\r\n\t\t\t\tsuccess: res => {\r\n\t\t\t\t\tthis.goodsData = res.data;\r\n\t\t\t\t\tthis.modalName = 'goods';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 查询订单\r\n\t\tasync order(){\r\n\t\t\t//隐藏抽屉\r\n\t\t\tthis.hideDrawer(); \r\n\t\t\tawait uni.request({\r\n\t\t\t\turl: '/wanlshop/order/getOrderListToShop',\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\tdata: {shop_id: this.shop_id},\r\n\t\t\t\tsuccess: res => {\r\n\t\t\t\t\tthis.orderData = res.data;\r\n\t\t\t\t\tthis.modalName = 'order';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\t\thideModal() {\r\n\t\t\tthis.modalName = null;\r\n\t\t},\r\n\t\t// 播放语音\r\n\t\tplayVoice(message) {\r\n\t\t\tthis.playMsgid = message.id;\r\n\t\t\tthis.AUDIO.src = message.content.url;\r\n\t\t\tthis.$nextTick(() => {\r\n\t\t\t\tthis.AUDIO.play();\r\n\t\t\t});\r\n\t\t},\r\n\t\t// 录音开始\r\n\t\tvoiceBegin(e) {\r\n\t\t\tif (e.touches.length > 1) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.initPoint.Y = e.touches[0].clientY;\r\n\t\t\tthis.initPoint.identifier = e.touches[0].identifier;\r\n\t\t\tthis.RECORDER.start({ format: 'mp3' }); //录音开始,\r\n\t\t},\r\n\t\t//录音开始UI效果\r\n\t\trecordBegin(e) {\r\n\t\t\tthis.recording = true;\r\n\t\t\tthis.voiceTis = '松开 结束';\r\n\t\t\tthis.recordLength = 0;\r\n\t\t\tthis.recordTimer = setInterval(() => {\r\n\t\t\t\tthis.recordLength++;\r\n\t\t\t}, 1000);\r\n\t\t},\r\n\t\t// 录音被打断\r\n\t\tvoiceCancel() {\r\n\t\t\tthis.recording = false;\r\n\t\t\tthis.voiceTis = '按住 说话';\r\n\t\t\tthis.recordTis = '手指上滑 取消发送';\r\n\t\t\tthis.willStop = true; //不发送录音\r\n\t\t\tthis.RECORDER.stop(); //录音结束\r\n\t\t},\r\n\t\t// 录音中(判断是否触发上滑取消发送)\r\n\t\tvoiceIng(e) {\r\n\t\t\tif (!this.recording) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tlet touche = e.touches[0];\r\n\t\t\t//上滑一个导航栏的高度触发上滑取消发送\r\n\t\t\tif (this.initPoint.Y - touche.clientY >= uni.upx2px(200)) {\r\n\t\t\t\tthis.willStop = true;\r\n\t\t\t\tthis.recordTis = '松开手指 取消发送';\r\n\t\t\t} else {\r\n\t\t\t\tthis.willStop = false;\r\n\t\t\t\tthis.recordTis = '手指上滑 取消发送';\r\n\t\t\t}\r\n\t\t},\r\n\t\t// 结束录音\r\n\t\tvoiceEnd(e) {\r\n\t\t\tif (!this.recording) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.recording = false;\r\n\t\t\tthis.voiceTis = '按住 说话';\r\n\t\t\tthis.recordTis = '手指上滑 取消发送';\r\n\t\t\tthis.RECORDER.stop(); //录音结束\r\n\t\t},\r\n\t\t//录音结束(回调文件)\r\n\t\trecordEnd(e) {\r\n\t\t\tclearInterval(this.recordTimer);\r\n\t\t\tif (!this.willStop) {\r\n\t\t\t\tuni.request({\r\n\t\t\t\t\turl: '/wanlshop/common/uploadData',\r\n\t\t\t\t\tsuccess: updata => {\r\n\t\t\t\t\t\tuni.uploadFile({\r\n\t\t\t\t\t\t\turl: updata.data.uploadurl,\r\n\t\t\t\t\t\t\tfilePath: e.tempFilePath,\r\n\t\t\t\t\t\t\tname: 'file',\r\n\t\t\t\t\t\t\tformData: updata.data.storage == 'local' ? null : updata.data.multipart,\r\n\t\t\t\t\t\t\tsuccess: data => {\r\n\t\t\t\t\t\t\t\tlet msg = {length: 0, url: JSON.parse(data.data).data.fullurl};\r\n\t\t\t\t\t\t\t\tmsg.length = this.recordLength % 60;\r\n\t\t\t\t\t\t\t\tif (msg.length > 0) {\r\n\t\t\t\t\t\t\t\t\tthis.sendMsg(msg, 'voice');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\tfail: error =>{\r\n\t\t\t\t\t\t\t\tthis.$wanlshop.msg(JSON.parse(error.data).msg);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tconsole.log('取消发送录音');\r\n\t\t\t}\r\n\t\t\tthis.willStop = false;\r\n\t\t},\r\n\t\t// 切换语音/文字输入\r\n\t\tswitchVoice() {\r\n\t\t\tthis.hideDrawer();\r\n\t\t\tthis.isVoice = this.isVoice ? false : true;\r\n\t\t},\r\n\t\tdiscard() {\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n};\r\n</script>\r\n<style>\r\n/* 1.0.2升级 */\r\n.cu-btn.sm{\r\n\tfont-size: 26rpx;\r\n}\r\n.cu-modal{\r\n\tz-index: 2001;\r\n}\r\n.chatTips{\r\n\tdisplay: inline-flex;\r\n\talign-items: center;\r\n\tposition: absolute;\r\n\tz-index: 101;\r\n\tright: 0;\r\n\tleft: 0;\r\n\tbottom: 120rpx;\r\n\tbottom: calc(120rpx + env(safe-area-inset-bottom));\r\n}\r\n.chatTips image{\r\n\twidth: 100rpx;\r\n\theight: 100rpx;\r\n\tmargin-right: 20rpx;\r\n\tflex-shrink: 0;\r\n}\r\n.chatTips .details{\r\n\twidth: calc(100% - 100rpx - 20rpx);\r\n}\r\n.chatTips .details .title{\r\n\twidth: 90%;\r\n}\r\n.cu-chat .cu-item > .main.goods .content, .cu-chat .cu-item > .main.order .content {\r\n\tdisplay: block;\r\n}\r\n.cu-chat .cu-item > .main.order{\r\n\tmax-width: calc(100% - 200rpx);\r\n}\r\n.cu-chat .cu-item > .main.order .product {\r\n\tbackground-color: #f9f9f9;\r\n}\r\n.cu-chat .cu-item > .main.order .product .item{\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n\tmargin-bottom: 25rpx;\r\n}\r\n.cu-chat .cu-item > .main.order .product .item:last-of-type{\r\n\tmargin-bottom: 0;\r\n}\r\n\r\n.cu-chat .cu-item > .main.order .product .item .image, .product .item .image image{\r\n\twidth: 100rpx;\r\n\theight: 100rpx;\r\n\tborder-radius: 10rpx;\r\n}\r\n\r\n\r\n.cu-chat .cu-item > .main.order .product .item .details{\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n\twidth: calc(100% - 120rpx);\r\n\talign-content: space-between;\r\n}\r\n/* 1.0.2升级 模态框 */\r\n.wanl-modal .goods{\r\n\tdisplay: flex;\r\n\tpadding: 20rpx 0;\r\n}\r\n.wanl-modal .goods:last-of-type {\r\n\tpadding-bottom: 0;\r\n}\r\n\t\r\n.wanl-modal .goods image{\r\n\twidth: 180rpx;\r\n\theight: 180rpx;\r\n\tmargin-right: 20rpx;\r\n\tflex-shrink: 0;\r\n}\r\n\t\r\n.wanl-modal .goods .details{\r\n\tflex-wrap: wrap;\r\n\tdisplay: flex;\r\n\tflex: 1;\r\n\talign-content: space-between;\r\n}\r\n\t\r\n.wanl-modal .goods .details .info{\r\n\twidth: 100%;\r\n}\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n.opmenu {\r\n\tdisplay: flex;\r\n\tflex-wrap: wrap;\r\n\tmargin-top: 2rpx;\r\n\tcolor: #4c4c4c;\r\n}\r\n.opmenu .box {\r\n\tpadding-top: 35rpx;\r\n\tpadding-left: 50rpx;\r\n\ttext-align: center;\r\n}\r\n.opmenu .box .icon {\r\n\theight: 120rpx;\r\n\twidth: 120rpx;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tjustify-items: center;\r\n\tbackground-color: #ffffff;\r\n\tborder-radius: 20rpx;\r\n\tfont-size: 68rpx;\r\n\tmargin-bottom: 10rpx;\r\n}\r\n.emptybottom{\r\n\tpadding-bottom: 0 !important;\r\n}\r\n.hidden {\r\n\tdisplay: none !important;\r\n}\r\n.cu-chat .cu-item > .main .content {\r\n\tfont-size: 30rpx;\r\n\tborder-radius: 17rpx;\r\n}\r\n.cu-chat .cu-item [class*='wlIcon-'] {\r\n\tfont-size: 34rpx;\r\n}\r\n\r\n\r\n\r\n.popup-layer {\r\n\ttransition: all 0.15s linear;\r\n\twidth: 100%;\r\n\theight: 480rpx;\r\n\tbackground-color: #f5f5f5;\r\n\tposition: fixed;\r\n\tz-index: 2000;\r\n\ttop: 100%;\r\n}\r\n.popup-layer.showLayer {\r\n\ttransform: translate3d(0, -480rpx, 0);\r\n}\r\n.popup-layer .emoji .emojinav {\r\n\tbackground-color: #f8f8f8;\r\n}\r\n.popup-layer .emoji .emojinav .item {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\theight: 100rpx;\r\n\tpadding-left: 10rpx;\r\n}\r\n.popup-layer .emoji .emojinav .item .emojibg {\r\n\tbackground-color: #dedede;\r\n}\r\n.popup-layer .emoji .emojinav .item > view {\r\n\tmargin: 0 25rpx;\r\n\twidth: 60rpx;\r\n\theight: 60rpx;\r\n\tborder-radius: 18rpx;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-size: 80%;\r\n\tbackground-position: center;\r\n}\r\n\r\n.popup-layer .emoji .subject {\r\n\theight: 380rpx;\r\n\tbackground-color: #f1f1f1;\r\n}\r\n.popup-layer .emoji .subject .item {\r\n\tpadding: 25rpx;\r\n}\r\n\r\n.popup-layer .emoji .subject .item > view {\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-size: 56%;\r\n\tbackground-position: center;\r\n\twidth: 12.5%;\r\n\theight: 100rpx;\r\n}\r\n\r\n.input-box {\r\n\twidth: 100%;\r\n\tmin-height: 100rpx;\r\n\tpadding-bottom: env(safe-area-inset-bottom);\r\n\tbackground-color: #f2f2f2;\r\n\tdisplay: flex;\r\n\talign-items: flex-end;\r\n\tposition: fixed;\r\n\tz-index: 2000;\r\n\tbottom: -2rpx;\r\n\ttransition: all 0.15s linear;\r\n}\r\n.input-box [class*='wlIcon-'] {\r\n\tfont-size: 50rpx;\r\n\tcolor: #323232;\r\n}\r\n\r\n.input-box .wlIcon-zhifeiji {\r\n\tcolor: #fe6600;\r\n}\r\n\r\n.input-box.showLayer {\r\n\ttransform: translate3d(0, -480rpx, 0);\r\n}\r\n.input-box .voice,\r\n.input-box .more {\r\n\tflex-shrink: 0;\r\n\twidth: 90rpx;\r\n\theight: 100rpx;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n}\r\n.input-box .send {\r\n\tflex-shrink: 0;\r\n\twidth: 90rpx;\r\n\theight: 100rpx;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n}\r\n.input-box .send .btn {\r\n\twidth: 110rpx;\r\n\theight: 70rpx;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tborder-radius: 16rpx;\r\n\tfont-size: 32rpx;\r\n}\r\n.input-box .textbox {\r\n\twidth: 100%;\r\n}\r\n.input-box .textbox .voice-mode {\r\n\twidth: calc(100% - 2upx);\r\n\theight: 80rpx;\r\n\tmargin: 10rpx 0;\r\n\tborder-radius: 16rpx;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tfont-size: 28rpx;\r\n\tbackground-color: #fff;\r\n\tcolor: #555;\r\n}\r\n.input-box .textbox .voice-mode.recording {\r\n\tbackground-color: #e5e5e5;\r\n}\r\n.input-box .textbox .text-mode {\r\n\twidth: 100%;\r\n\tmin-height: 80rpx;\r\n\tmargin: 10rpx 0;\r\n\tdisplay: flex;\r\n\tbackground-color: #ffffff;\r\n\tborder-radius: 16rpx;\r\n}\r\n.input-box .textbox .text-mode .box {\r\n\twidth: 100%;\r\n\tpadding-left: 30rpx;\r\n\tmin-height: 80rpx;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n}\r\n.input-box .textbox .text-mode .box textarea {\r\n\twidth: 100%;\r\n}\r\n.input-box .textbox .text-mode .em {\r\n\tflex-shrink: 0;\r\n\twidth: 80rpx;\r\n\tpadding-left: 10rpx;\r\n\theight: 80rpx;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n}\r\n\r\n.record {\r\n\twidth: 39vw;\r\n\theight: 39vw;\r\n\tposition: fixed;\r\n\ttop: 35%;\r\n\tleft: 30%;\r\n\tbackground-color: rgba(0, 0, 0, 0.8);\r\n\tborder-radius: 40rpx;\r\n}\r\n.record .ing {\r\n\twidth: 100%;\r\n\theight: 30vw;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n}\r\n@keyframes volatility {\r\n\t0% {\r\n\t\tbackground-position: 0% 130%;\r\n\t}\r\n\t20% {\r\n\t\tbackground-position: 0% 150%;\r\n\t}\r\n\t30% {\r\n\t\tbackground-position: 0% 155%;\r\n\t}\r\n\t40% {\r\n\t\tbackground-position: 0% 160%;\r\n\t}\r\n\t50% {\r\n\t\tbackground-position: 0% 145%;\r\n\t}\r\n\t70% {\r\n\t\tbackground-position: 0% 150%;\r\n\t}\r\n\t80% {\r\n\t\tbackground-position: 0% 170%;\r\n\t}\r\n\t90% {\r\n\t\tbackground-position: 0% 160%;\r\n\t}\r\n\t100% {\r\n\t\tbackground-position: 0% 135%;\r\n\t}\r\n}\r\n.record .ing [class*='wlIcon'] {\r\n\tbackground-image: linear-gradient(to bottom, #ffffff, #565656 50%);\r\n\tbackground-size: 100% 200%;\r\n\tanimation: volatility 1.5s ease-in-out -1.5s infinite alternate;\r\n\t-webkit-background-clip: text;\r\n\t-webkit-text-fill-color: transparent;\r\n\tfont-size: 140rpx;\r\n\tpadding-top: 40rpx;\r\n\tcolor: #f09b37;\r\n}\r\n.record .cancel {\r\n\twidth: 100%;\r\n\theight: 30vw;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n}\r\n.record .cancel [class*='wlIcon'] {\r\n\tcolor: #fff;\r\n\tfont-size: 150rpx;\r\n}\r\n.record .tis {\r\n\twidth: 100%;\r\n\theight: 10vw;\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\tfont-size: 24rpx;\r\n\tcolor: #fff;\r\n}\r\n.record .tis.change {\r\n\tcolor: #f09b37;\r\n}\r\n\r\n.content {\r\n\twidth: 100%;\r\n}\r\npage{\r\n\tbackground-color: #ececec;\r\n}\r\n.content .msg-list,\r\n.cu-chat {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tbottom: 100rpx;\r\n\tbottom: calc(env(safe-area-inset-bottom) + 100rpx);\r\n\tbackground-color: #ececec;\r\n}\r\n\r\n\r\n\r\n\r\n\r\n.loading {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n}\r\n@keyframes stretchdelay {\r\n\t0%,\r\n\t40%,\r\n\t100% {\r\n\t\ttransform: scaleY(0.6);\r\n\t}\r\n\t20% {\r\n\t\ttransform: scaleY(1);\r\n\t}\r\n}\r\n.loading .spinner {\r\n\tmargin: 20upx 0;\r\n\twidth: 60upx;\r\n\theight: 100upx;\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n}\r\n.loading .spinner view {\r\n\tbackground-color: #dadada;\r\n\theight: 50upx;\r\n\twidth: 6upx;\r\n\tborder-radius: 6upx;\r\n\tanimation: stretchdelay 1.2s infinite ease-in-out;\r\n}\r\n.loading .spinner .rect2 {\r\n\tanimation-delay: -1.1s;\r\n}\r\n.loading .spinner .rect3 {\r\n\tanimation-delay: -1s;\r\n}\r\n.loading .spinner .rect4 {\r\n\tanimation-delay: -0.9s;\r\n}\r\n.loading .spinner .rect5 {\r\n\tanimation-delay: -0.8s;\r\n}\r\n</style>\r\n","import mod from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./chat.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\mini-css-extract-plugin\\\\dist\\\\loader.js??ref--6-oneOf-1-0!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\css-loader\\\\dist\\\\cjs.js??ref--6-oneOf-1-1!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\loaders\\\\stylePostLoader.js!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\webpack-preprocess-loader\\\\index.js??ref--6-oneOf-1-2!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\postcss-loader\\\\src\\\\index.js??ref--6-oneOf-1-3!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\vue-cli-plugin-uni\\\\packages\\\\vue-loader\\\\lib\\\\index.js??vue-loader-options!D:\\\\HBuilderX\\\\plugins\\\\uniapp-cli\\\\node_modules\\\\@dcloudio\\\\webpack-uni-mp-loader\\\\lib\\\\style.js!./chat.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1730871253736\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"/\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} |