0224
This commit is contained in:
parent
b4a706820e
commit
ed4c8efc82
@ -32,6 +32,7 @@
|
||||
"devDependencies": {
|
||||
"@vue/cli-service": "~4.5.0",
|
||||
"compression-webpack-plugin": "^5.0.0",
|
||||
"gulp-sass": "^6.0.0",
|
||||
"sass-loader": "^7.3.1",
|
||||
"uglifyjs-webpack-plugin": "^2.2.0",
|
||||
"vue-template-compiler": "^2.6.11"
|
||||
@ -40,5 +41,10 @@
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not dead"
|
||||
]
|
||||
],
|
||||
"description": "```\r npm install\r ```",
|
||||
"main": ".eslintrc.js",
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
var BASE = {
|
||||
/**
|
||||
* @description api请求基础路径
|
||||
*/
|
||||
API_DEV: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn"
|
||||
},
|
||||
API_PROD: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn"
|
||||
},
|
||||
};
|
||||
/**
|
||||
* @description api请求基础路径
|
||||
*/
|
||||
API_DEV: {
|
||||
common: "http://192.168.1.200:8890",
|
||||
buyer: "http://192.168.1.200:8888",
|
||||
seller: "http://192.168.1.200:8889",
|
||||
manager: "http://192.168.1.200:8887"
|
||||
},
|
||||
API_PROD: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn"
|
||||
},
|
||||
};
|
||||
|
@ -24,6 +24,7 @@ export default {
|
||||
if (userInfo.success) {
|
||||
//携带商品Id,在IM可以发送商品信息
|
||||
if(goodsId && skuId){
|
||||
|
||||
window.open(
|
||||
this.IMLink + "?token=" + accessToken + "&id=" + id || this.storeMsg.storeId + "&goodsId=" + goodsId + "&skuId=" + skuId
|
||||
);
|
||||
@ -32,7 +33,6 @@ export default {
|
||||
this.IMLink + "?token=" + accessToken + "&id=" + id || this.storeMsg.storeId
|
||||
);
|
||||
}
|
||||
|
||||
} else {
|
||||
this.$Message.error("请登录后再联系客服");
|
||||
return;
|
||||
|
@ -1,10 +1,10 @@
|
||||
NODE_ENV=development
|
||||
VUE_APP_PREVIEW=false
|
||||
VUE_APP_API_BASE_URL=https://im-api.pickmall.cn
|
||||
VUE_APP_WEB_SOCKET_URL=wss://im-api.pickmall.cn/lili/webSocket
|
||||
VUE_APP_COMMON=https://common-api.pickmall.cn
|
||||
VUE_APP_BUYER=https://buyer-api.pickmall.cn
|
||||
VUE_APP_SELLER=https://store-api.pickmall.cn
|
||||
VUE_APP_API_BASE_URL=http://192.168.1.200:8885
|
||||
VUE_APP_WEB_SOCKET_URL=ws://192.168.1.200:8885/lili/webSocket
|
||||
VUE_APP_COMMON=http://192.168.1.200:8890
|
||||
VUE_APP_BUYER=http://192.168.1.200:8888
|
||||
VUE_APP_SELLER=http://192.168.1.200:8889
|
||||
VUE_APP_WEBSITE_NAME="LiLi IM"
|
||||
VUE_APP_PC_URL=https://pc-b2b2c.pickmall.cn/
|
||||
VUE_APP_PC_URL=http://127.0.0.1:10001
|
||||
VUE_APP_PC_STORE=https://store-b2b2c.pickmall.cn/
|
@ -13,6 +13,7 @@
|
||||
"babel-plugin-prismjs": "^2.0.1",
|
||||
"core-js": "^3.6.5",
|
||||
"element-ui": "^2.14.1",
|
||||
"file-loader": "^6.2.0",
|
||||
"js-audio-recorder": "^1.0.6",
|
||||
"js-base64": "^2.5.1",
|
||||
"mavon-editor": "^2.10.4",
|
||||
|
@ -5,11 +5,17 @@ export const ServeGetTalkList = (data) => {
|
||||
return get("/im/talk/list", data);
|
||||
};
|
||||
|
||||
// 获取聊天联系人列表服务接口
|
||||
export const ServeuserContact = (data) => {
|
||||
return get("/im/friend/mutual", data);
|
||||
};
|
||||
|
||||
// 获取聊天列表服务接口
|
||||
export const ServeGetStoreTalkList = (data) => {
|
||||
return get("/im/talk/store/list", data);
|
||||
};
|
||||
|
||||
|
||||
// 聊天列表创建服务接口
|
||||
export const ServeCreateTalkList = (id) => {
|
||||
return get(`/im/talk/user/${id}`);
|
||||
@ -32,6 +38,7 @@ export const ServeClearTalkUnreadNum = (data) => {
|
||||
|
||||
// 获取聊天记录服务接口
|
||||
export const ServeTalkRecords = (data) => {
|
||||
console.log(data,'----');
|
||||
return get("/im/message", data);
|
||||
};
|
||||
|
||||
|
@ -42,6 +42,8 @@ export default {
|
||||
* 比如 a 和 b 聊天 receiver_id = b的id
|
||||
*/
|
||||
state.index_name = (resource.talk_type || 1) + "_" + resource.receiver_id;
|
||||
|
||||
console.log(state.index_name,'名字');
|
||||
},
|
||||
|
||||
// 数组头部压入对话记录1494593861786271744 1494593778193793024
|
||||
|
@ -19,23 +19,46 @@
|
||||
</el-header>
|
||||
<el-header height="60px" class="header">
|
||||
<div class="from-search">
|
||||
<el-input v-model="input" prefix-icon="el-icon-search" placeholder="搜索好友" size="small" />
|
||||
<el-input
|
||||
v-model="input"
|
||||
prefix-icon="el-icon-search"
|
||||
placeholder="搜索好友"
|
||||
size="small"
|
||||
/>
|
||||
</div>
|
||||
</el-header>
|
||||
<!-- <el-header height="118px" class="logo-header">
|
||||
|
||||
</el-header> -->
|
||||
<!-- 置顶栏 -->
|
||||
<el-header v-show="loadStatus == 1 && topItems.length > 0" class="subheader"
|
||||
:class="{ shadow: subHeaderShadow }" :height="subHeaderPx">
|
||||
<div v-for="item in topItems" :key="item.index_name" class="top-item" @click="clickTab(item.index_name)"
|
||||
@contextmenu.prevent="topItemsMenu(item, $event)">
|
||||
<el-tooltip effect="dark" placement="top-start" :content="item.name ? item.name : item.name">
|
||||
<el-header
|
||||
v-show="loadStatus == 1 && topItems.length > 0"
|
||||
class="subheader"
|
||||
:class="{ shadow: subHeaderShadow }"
|
||||
:height="subHeaderPx"
|
||||
>
|
||||
<div
|
||||
v-for="item in topItems"
|
||||
:key="item.index_name"
|
||||
class="top-item"
|
||||
@click="clickTab(item.index_name)"
|
||||
@contextmenu.prevent="topItemsMenu(item, $event)"
|
||||
>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
placement="top-start"
|
||||
:content="item.name ? item.name : item.name"
|
||||
>
|
||||
<div class="avatar">
|
||||
<span v-show="!item.face">
|
||||
{{ (item.name ? item.name : item.name).substr(0, 1) }}
|
||||
</span>
|
||||
<img v-show="item.face" :src="item.face" :onerror="$store.state.defaultAvatar" v-if="item.face" />
|
||||
<img
|
||||
v-show="item.face"
|
||||
:src="item.face"
|
||||
:onerror="$store.state.defaultAvatar"
|
||||
v-if="item.face"
|
||||
/>
|
||||
<face-null :text="item.name" v-else></face-null>
|
||||
</div>
|
||||
</el-tooltip>
|
||||
@ -47,31 +70,59 @@
|
||||
</el-header>
|
||||
|
||||
<!-- 对话列表栏 -->
|
||||
<el-scrollbar tag="section" ref="menusScrollbar" class="full-height" :native="false">
|
||||
<el-scrollbar
|
||||
tag="section"
|
||||
ref="menusScrollbar"
|
||||
class="full-height"
|
||||
:native="false"
|
||||
>
|
||||
<el-main class="main">
|
||||
<p v-show="loadStatus === 0" class="empty-data">
|
||||
<i class="el-icon-loading" /> 数据加载中...
|
||||
</p>
|
||||
|
||||
<p v-show="loadStatus === 1 && talkNum === 0" class="empty-data">
|
||||
<p
|
||||
v-show="loadStatus === 1 && talkNum === 0"
|
||||
class="empty-data"
|
||||
>
|
||||
暂无聊天消息
|
||||
</p>
|
||||
|
||||
<p v-show="loadStatus === 1 && talkNum > 0" class="main-menu">
|
||||
<span class="title">对话记录({{ talkNum }})</span>
|
||||
<span
|
||||
class="title"
|
||||
:style="{ color: aIndex == 0 ? 'red' : '' }"
|
||||
@click="aIndexclick(0)"
|
||||
>对话记录({{ talkNum }})</span
|
||||
>
|
||||
<span
|
||||
class="title"
|
||||
:style="{ color: aIndex == 1 ? 'red' : '' }"
|
||||
@click="aIndexclick(1)"
|
||||
>联系人</span
|
||||
>
|
||||
|
||||
<!-- <el-tag size="mini" type="danger" v-if="myUnreadNum"
|
||||
>未读:{{ myUnreadNum }}</el-tag
|
||||
> -->
|
||||
</p>
|
||||
<!-- 对话列表 -->
|
||||
<template v-if="loadStatus === 1">
|
||||
<div v-for="(item, index) in userTalkItem" :key="item.id" class="talk-item pointer"
|
||||
:class="{ active: activeIndex == index }" @click="clickTab(item.userId, item, index)">
|
||||
<template v-if="aIndex === 0">
|
||||
<div
|
||||
v-for="(item, index) in userTalkItem"
|
||||
:key="item.id"
|
||||
class="talk-item pointer"
|
||||
:class="{ active: activeIndex == index }"
|
||||
@click="clickTab(item.userId, item, index, 0)"
|
||||
>
|
||||
<div class="avatar-box">
|
||||
<face :text="item.face" v-if="item.face"></face>
|
||||
<face-null :text="item.name" v-else></face-null>
|
||||
<div v-show="item.is_top == 0" class="top-mask" @click.stop="topChatItem(item)">
|
||||
<div
|
||||
v-show="item.is_top == 0"
|
||||
class="top-mask"
|
||||
@click.stop="topChatItem(item)"
|
||||
>
|
||||
<i class="el-icon-top" />
|
||||
</div>
|
||||
</div>
|
||||
@ -94,10 +145,16 @@
|
||||
BOT
|
||||
</div>
|
||||
|
||||
<div v-show="item.talk_type == 2" class="larkc-tag group">
|
||||
<div
|
||||
v-show="item.talk_type == 2"
|
||||
class="larkc-tag group"
|
||||
>
|
||||
群组
|
||||
</div>
|
||||
<div v-show="item.is_disturb" class="larkc-tag disturb">
|
||||
<div
|
||||
v-show="item.is_disturb"
|
||||
class="larkc-tag disturb"
|
||||
>
|
||||
<i class="iconfont icon-xiaoximiandarao" />
|
||||
</div>
|
||||
</div>
|
||||
@ -106,20 +163,85 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="talk-message">
|
||||
<span v-if="item.lastMessageType === 'MESSAGE'">{{ item.lastTalkMessage }}</span>
|
||||
<span v-if="item.lastMessageType === 'GOODS'">[商品链接]</span>
|
||||
<span v-if="item.lastMessageType === 'ORDER'">[订单链接]</span>
|
||||
<span v-if="item.lastMessageType === 'MESSAGE'">{{
|
||||
item.lastTalkMessage
|
||||
}}</span>
|
||||
<span v-if="item.lastMessageType === 'GOODS'"
|
||||
>[商品链接]</span
|
||||
>
|
||||
<span v-if="item.lastMessageType === 'ORDER'"
|
||||
>[订单链接]</span
|
||||
>
|
||||
</div>
|
||||
<div class="content">
|
||||
<template v-if="
|
||||
index_name != item.index_name && item.draft_text
|
||||
">
|
||||
<template
|
||||
v-if="
|
||||
index_name != item.index_name && item.draft_text
|
||||
"
|
||||
>
|
||||
<span class="draft-color">[草稿]</span>
|
||||
<span>{{ item.draft_text }}</span>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.is_robot == 0">
|
||||
<span v-if="item.talk_type == 1" :class="{ 'online-color': item.is_online == 1 }">
|
||||
<span
|
||||
v-if="item.talk_type == 1"
|
||||
:class="{ 'online-color': item.is_online == 1 }"
|
||||
>
|
||||
[{{ item.is_online == 1 ? "在线" : "离线" }}]
|
||||
</span>
|
||||
<span v-else>[群消息]</span>
|
||||
</template>
|
||||
|
||||
<span>{{ item.msg_text }}</span>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<!-- 联系人 -->
|
||||
<template v-if="aIndex == 1">
|
||||
<div
|
||||
v-for="(item, index) in userContact"
|
||||
:key="item.id"
|
||||
class="talk-item pointer"
|
||||
:class="{ active: activeIndex == index }"
|
||||
@click="clickTab(item.friendId, item, index, 1)"
|
||||
>
|
||||
<div class="avatar-box">
|
||||
<face :text="item.face" v-if="item.face"></face>
|
||||
<face-null :text="item.name" v-else></face-null>
|
||||
<div
|
||||
v-show="item.is_top == 0"
|
||||
class="top-mask"
|
||||
@click.stop="topChatItem(item)"
|
||||
>
|
||||
<i class="el-icon-top" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-box">
|
||||
<div class="title">
|
||||
<div class="card-name">
|
||||
<p class="nickname">
|
||||
{{ item.nickname }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<template
|
||||
v-if="
|
||||
index_name != item.index_name && item.draft_text
|
||||
"
|
||||
>
|
||||
<span class="draft-color">[草稿]</span>
|
||||
<span>{{ item.draft_text }}</span>
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="item.is_robot == 0">
|
||||
<span
|
||||
v-if="item.talk_type == 1"
|
||||
:class="{ 'online-color': item.is_online == 1 }"
|
||||
>
|
||||
[{{ item.is_online == 1 ? "在线" : "离线" }}]
|
||||
</span>
|
||||
<span v-else>[群消息]</span>
|
||||
@ -138,9 +260,73 @@
|
||||
|
||||
<!-- 聊天面板容器 -->
|
||||
<el-main class="main-box ov-hidden full-height no-padding flex">
|
||||
<WelcomeModule class="flex-8" v-if="index_name == null" />
|
||||
<TalkPanel v-else class="full-height flex-8" :params="params" :goodsParams="goodsParams"
|
||||
:is-online="isFriendOnline" @change-talk="changeTalk" @close-talk="closeTalk" />
|
||||
<div v-if="aIndex == 1" class="main-con">
|
||||
<div class="main-con" v-if="bIndex == 0">
|
||||
<WelcomeModule class="flex-8" />
|
||||
</div>
|
||||
<div class="main-con" v-if="bIndex == 1">
|
||||
<div class="main-con">
|
||||
<div class="concent">
|
||||
<div class="concent-img">
|
||||
<div class="conent-left">
|
||||
<img
|
||||
:src="userobj.face"
|
||||
alt=""
|
||||
srcset=""
|
||||
:style="{ width: '65%', height: '100%' }"
|
||||
/>
|
||||
</div>
|
||||
<div class="conent-right">
|
||||
<div>
|
||||
名称:
|
||||
<span :style="{ color: 'rgb(158,158,158)' }">{{
|
||||
userobj.nickname
|
||||
}}</span>
|
||||
</div>
|
||||
<div :style="{ color: 'rgb(158,158,158)' }">
|
||||
电话:
|
||||
<span>{{ userobj.mobile }}</span>
|
||||
</div>
|
||||
<div :style="{ color: 'rgb(158,158,158)' }">
|
||||
地区:
|
||||
<span>{{ userobj.email }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottomsom">
|
||||
<button @click="bIndex = 3" class="songbutom">发送</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="bIndex == 3"
|
||||
class="main-con"
|
||||
:style="{ width: '100%', height: '100%' }"
|
||||
>
|
||||
<TalkPanel
|
||||
class="full-height flex-8"
|
||||
:params="params"
|
||||
:goodsParams="goodsParams"
|
||||
:is-online="isFriendOnline"
|
||||
@change-talk="changeTalk"
|
||||
@close-talk="closeTalk"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="aIndex == 0" class="main-con">
|
||||
<WelcomeModule class="flex-8" v-if="index_name == null" />
|
||||
<TalkPanel
|
||||
v-else
|
||||
class="full-height flex-8"
|
||||
:params="params"
|
||||
:goodsParams="goodsParams"
|
||||
:is-online="isFriendOnline"
|
||||
@change-talk="changeTalk"
|
||||
@close-talk="closeTalk"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- <OtherLink :toUser="toUser" :goodsParams="goodsParams" :id="id" class="flex-4"/> -->
|
||||
</el-main>
|
||||
</el-container>
|
||||
@ -163,6 +349,7 @@ import {
|
||||
ServeTopTalkList,
|
||||
ServeSetNotDisturb,
|
||||
ServeCreateTalkList,
|
||||
ServeuserContact,
|
||||
} from "@/api/chat";
|
||||
import { ServeDeleteContact, ServeEditContactRemark } from "@/api/contacts";
|
||||
import { beautifyTime } from "@/utils/functions";
|
||||
@ -180,8 +367,11 @@ export default {
|
||||
OtherLink,
|
||||
WelcomeModule,
|
||||
},
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
aIndex: 0, //0 对话 1联系人
|
||||
bIndex: 0, //0
|
||||
userobj: {},
|
||||
activeIndex: 9999999, //默认样式索引
|
||||
subHeaderShadow: false,
|
||||
launchGroupShow: false,
|
||||
@ -195,8 +385,8 @@ export default {
|
||||
},
|
||||
|
||||
goodsParams: {
|
||||
goodsId: '',
|
||||
skuId: '',
|
||||
goodsId: "",
|
||||
skuId: "",
|
||||
},
|
||||
|
||||
// 查询关键词
|
||||
@ -211,6 +401,7 @@ export default {
|
||||
// 消息未读数计时器
|
||||
interval: null,
|
||||
userTalkItem: [],
|
||||
userContact: [],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -226,7 +417,7 @@ export default {
|
||||
toUser: (state) => state.user.toUser,
|
||||
}),
|
||||
// 计算置顶栏目的高度
|
||||
subHeaderPx () {
|
||||
subHeaderPx() {
|
||||
const n = 7; // 一排能显示的用户数
|
||||
const num = this.topItems.length;
|
||||
let len = 60;
|
||||
@ -239,17 +430,17 @@ export default {
|
||||
},
|
||||
|
||||
// 当前对话好友在线状态
|
||||
isFriendOnline () {
|
||||
isFriendOnline() {
|
||||
let index = findTalkIndex(this.index_name);
|
||||
return index >= 0 && this.talks[index].is_online == 1;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
talkItems (val) {
|
||||
talkItems(val) {
|
||||
val ? this.$set(this, "userTalkItem", val) : "";
|
||||
},
|
||||
// 搜索用户的时候 根据当前用户表进行模糊搜索
|
||||
input (val, oldVal) {
|
||||
input(val, oldVal) {
|
||||
console.log(val, oldVal);
|
||||
if (val) {
|
||||
let str = ["", ...val, ""].join(".*");
|
||||
@ -261,7 +452,7 @@ export default {
|
||||
this.userTalkItem = this.talkItems;
|
||||
}
|
||||
},
|
||||
unreadNum (value) {
|
||||
unreadNum(value) {
|
||||
clearInterval(this.interval);
|
||||
// console.log("%c 更新未读消息", "color:#32ccbc");
|
||||
this.$store.commit("SET_UNREAD_NUM", value);
|
||||
@ -277,7 +468,7 @@ export default {
|
||||
},
|
||||
|
||||
// 监听好友在线状态
|
||||
monitorFriendsStatus (value) {
|
||||
monitorFriendsStatus(value) {
|
||||
this.$store.commit("UPDATE_TALK_ITEM", {
|
||||
index_name: `1_${value.friend_id}`,
|
||||
is_online: value.status,
|
||||
@ -285,15 +476,15 @@ export default {
|
||||
},
|
||||
},
|
||||
|
||||
beforeRouteUpdate (to, from, next) {
|
||||
beforeRouteUpdate(to, from, next) {
|
||||
let index_name = getCacheIndexName();
|
||||
if (index_name) this.clickTab(index_name);
|
||||
next();
|
||||
},
|
||||
beforeCreate () {
|
||||
beforeCreate() {
|
||||
setToken(this.$route.query.token);
|
||||
},
|
||||
async created () {
|
||||
async created() {
|
||||
await this.initialize();
|
||||
await this.loadUserSetting();
|
||||
/**
|
||||
@ -301,39 +492,49 @@ export default {
|
||||
* 所以创建会话 并请求用户列表
|
||||
* 如果没有id说明当前商家登录 直接请求用户列表
|
||||
*/
|
||||
|
||||
},
|
||||
|
||||
mounted () {
|
||||
mounted() {
|
||||
this.scrollEvent();
|
||||
this.getcon();
|
||||
},
|
||||
destroyed () {
|
||||
destroyed() {
|
||||
document.title = title;
|
||||
clearInterval(this.interval);
|
||||
this.clearTalk();
|
||||
},
|
||||
methods: {
|
||||
aIndexclick(index) {
|
||||
this.aIndex = index;
|
||||
this.bIndex = 0;
|
||||
},
|
||||
// 美化时间格式
|
||||
beautifyTime,
|
||||
|
||||
//创建会话
|
||||
async createTalk (id) {
|
||||
async createTalk(id) {
|
||||
await ServeCreateTalkList(id);
|
||||
|
||||
await this.loadChatList();
|
||||
},
|
||||
// header 功能栏隐藏事件
|
||||
closeSubMenu () {
|
||||
closeSubMenu() {
|
||||
this.subMenu = false;
|
||||
},
|
||||
|
||||
getcon() {
|
||||
ServeuserContact().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.userContact = res.result;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 清除当前对话
|
||||
clearTalk () {
|
||||
clearTalk() {
|
||||
this.params = {
|
||||
talk_type: 0,
|
||||
receiver_id: 0,
|
||||
nickname: "",
|
||||
clickFlag: true
|
||||
clickFlag: true,
|
||||
};
|
||||
|
||||
this.$store.commit("UPDATE_DIALOGUE_MESSAGE", {
|
||||
@ -344,7 +545,7 @@ export default {
|
||||
},
|
||||
|
||||
// 工具栏事件
|
||||
triggerSubMenu (type) {
|
||||
triggerSubMenu(type) {
|
||||
this.closeSubMenu();
|
||||
|
||||
if (type == 1) {
|
||||
@ -355,14 +556,14 @@ export default {
|
||||
},
|
||||
|
||||
// 监听自定义滚动条事件
|
||||
scrollEvent () {
|
||||
scrollEvent() {
|
||||
let scrollbarEl = this.$refs.menusScrollbar.wrap;
|
||||
scrollbarEl.onscroll = () => {
|
||||
this.subHeaderShadow = scrollbarEl.scrollTop > 0;
|
||||
};
|
||||
},
|
||||
// 获取用户对话列表
|
||||
loadChatList () {
|
||||
loadChatList() {
|
||||
this.loadStatus = this.talkNum == 0 ? 0 : 1;
|
||||
|
||||
ServeGetTalkList()
|
||||
@ -376,7 +577,7 @@ export default {
|
||||
// 判断
|
||||
if (this.$route.query.id) {
|
||||
let takeData, takeIndex;
|
||||
console.log("用户result", result)
|
||||
console.log("用户result", result);
|
||||
this.talkItems.forEach((take, index) => {
|
||||
if (take.userId == this.$route.query.id) {
|
||||
takeData = take;
|
||||
@ -394,16 +595,26 @@ export default {
|
||||
},
|
||||
|
||||
// 切换聊天栏目
|
||||
clickTab (id, val, index) {
|
||||
clickTab(id, val, index, con) {
|
||||
if (!id) return;
|
||||
this.activeIndex = index;
|
||||
let item =
|
||||
this.talks.find((item) => {
|
||||
return item.userId == id;
|
||||
}) || {};
|
||||
var item = [];
|
||||
if (con == 1) {
|
||||
this.bIndex = 1;
|
||||
item =
|
||||
this.userContact.find((item) => {
|
||||
return item.friendId == id;
|
||||
}) || {};
|
||||
} else {
|
||||
item =
|
||||
this.talks.find((item) => {
|
||||
return item.userId == id;
|
||||
}) || {};
|
||||
}
|
||||
// console.log(item,'');
|
||||
this.userobj = item;
|
||||
// 点击当前栏目存储当前用户的信息
|
||||
this.$store.state.user.toUser = val;
|
||||
|
||||
let nickname = item.name;
|
||||
|
||||
this.params = {
|
||||
@ -412,7 +623,7 @@ export default {
|
||||
nickname,
|
||||
is_robot: item.is_robot,
|
||||
talkId: item.id, //聊天对话的id
|
||||
clickFlag: true
|
||||
clickFlag: true,
|
||||
};
|
||||
|
||||
// 更新信息
|
||||
@ -433,13 +644,13 @@ export default {
|
||||
});
|
||||
},
|
||||
// 修改当前对话
|
||||
changeTalk (index_name) {
|
||||
changeTalk(index_name) {
|
||||
console.log("修改当前对话", index_name);
|
||||
sessionStorage.setItem("send_message_index_name", index_name);
|
||||
this.loadChatList();
|
||||
},
|
||||
// 关闭当前对话及刷新对话列表
|
||||
closeTalk () {
|
||||
closeTalk() {
|
||||
this.$store.commit("UPDATE_DIALOGUE_MESSAGE", {
|
||||
talk_type: 0,
|
||||
receiver_id: 0,
|
||||
@ -449,7 +660,7 @@ export default {
|
||||
this.loadChatList();
|
||||
},
|
||||
// 对话列表的右键自定义菜单
|
||||
talkItemsMenu (item, event) {
|
||||
talkItemsMenu(item, event) {
|
||||
let items = {
|
||||
items: [
|
||||
{
|
||||
@ -526,7 +737,7 @@ export default {
|
||||
return false;
|
||||
},
|
||||
// 置顶栏右键菜单栏
|
||||
topItemsMenu (item, event) {
|
||||
topItemsMenu(item, event) {
|
||||
this.$contextmenu({
|
||||
items: [
|
||||
{
|
||||
@ -544,7 +755,7 @@ export default {
|
||||
return false;
|
||||
},
|
||||
// 会话列表置顶
|
||||
topChatItem (item) {
|
||||
topChatItem(item) {
|
||||
ServeTopTalkList({
|
||||
list_id: item.id,
|
||||
type: item.is_top == 0 ? 1 : 2,
|
||||
@ -558,7 +769,7 @@ export default {
|
||||
});
|
||||
},
|
||||
// 设置消息免打扰
|
||||
setNotDisturb (item) {
|
||||
setNotDisturb(item) {
|
||||
ServeSetNotDisturb({
|
||||
talk_type: item.talk_type,
|
||||
receiver_id: item.receiver_id,
|
||||
@ -573,7 +784,7 @@ export default {
|
||||
});
|
||||
},
|
||||
// 移除会话列表
|
||||
delChatItem (item) {
|
||||
delChatItem(item) {
|
||||
ServeDeleteTalkList({
|
||||
list_id: item.id,
|
||||
}).then(({ code }) => {
|
||||
@ -584,7 +795,7 @@ export default {
|
||||
});
|
||||
},
|
||||
// 解除好友关系
|
||||
removeFriend (item) {
|
||||
removeFriend(item) {
|
||||
ServeDeleteContact({
|
||||
friend_id: item.receiver_id,
|
||||
}).then(({ code }) => {
|
||||
@ -598,7 +809,7 @@ export default {
|
||||
});
|
||||
},
|
||||
// 修改好友备注信息
|
||||
editFriendRemarks (item) {
|
||||
editFriendRemarks(item) {
|
||||
let title = `您正在设置【${item.name}】好友的备注信息`;
|
||||
|
||||
if (item.remark_name) {
|
||||
@ -611,7 +822,7 @@ export default {
|
||||
customClass: "border-radius0",
|
||||
inputPlaceholder: "请设置好友备注信息",
|
||||
inputValue: item.remark_name ? item.remark_name : item.name,
|
||||
inputValidator (val) {
|
||||
inputValidator(val) {
|
||||
return val == null || val == "" ? "好友备注不能为空" : true;
|
||||
},
|
||||
})
|
||||
@ -644,7 +855,7 @@ export default {
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(() => { });
|
||||
.catch(() => {});
|
||||
},
|
||||
},
|
||||
};
|
||||
@ -653,7 +864,7 @@ export default {
|
||||
/deep/ .el-scrollbar__wrap {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.user-status{
|
||||
.user-status {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.aside-box {
|
||||
@ -793,7 +1004,7 @@ export default {
|
||||
.main-menu {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
justify-content: space-around;
|
||||
padding: 3px 10px 3px 10px;
|
||||
align-items: center;
|
||||
user-select: none;
|
||||
@ -802,6 +1013,7 @@ export default {
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: #1f2329;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.icon {
|
||||
@ -962,7 +1174,6 @@ export default {
|
||||
|
||||
// iphone
|
||||
@media screen and (max-width: 767px) {
|
||||
|
||||
.side-edge,
|
||||
.from-search,
|
||||
.card-box {
|
||||
@ -991,4 +1202,40 @@ export default {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.main-con {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.concent {
|
||||
width: 80%;
|
||||
height: 80%;
|
||||
margin: 0 auto;
|
||||
.concent-img {
|
||||
width: 100%;
|
||||
height: 15%;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
margin-top: 5vw;
|
||||
.conent-left {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
}
|
||||
.conent-right {
|
||||
width: 40%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-around;
|
||||
}
|
||||
}
|
||||
}
|
||||
.bottomsom {
|
||||
height: 50%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
.songbutom {
|
||||
padding: 10px 20px 10px 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -32,7 +32,7 @@
|
||||
"vuedraggable": "^2.23.2",
|
||||
"vuex": "^3.4.0",
|
||||
"xss": "^1.0.7",
|
||||
"price-color":"1.0.2"
|
||||
"price-color": "1.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^4.4.4",
|
||||
|
@ -1,29 +1,29 @@
|
||||
var BASE = {
|
||||
/**
|
||||
* @description api请求基础路径
|
||||
*/
|
||||
API_DEV: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn",
|
||||
},
|
||||
API_PROD: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn"
|
||||
},
|
||||
/**
|
||||
* @description // 跳转买家端地址 pc端
|
||||
*/
|
||||
PC_URL: "https://pc-b2b2c.pickmall.cn",
|
||||
/**
|
||||
* @description // 跳转买家端地址 wap端
|
||||
*/
|
||||
WAP_URL: "https://m-b2b2c.pickmall.cn",
|
||||
/**
|
||||
* @description api请求基础路径前缀
|
||||
*/
|
||||
PREFIX: "/manager"
|
||||
/**
|
||||
* @description api请求基础路径
|
||||
*/
|
||||
API_DEV: {
|
||||
common: "http://192.168.1.200:8890",
|
||||
buyer: "http://192.168.1.200:8888",
|
||||
seller: "http://192.168.1.200:8889",
|
||||
manager: "http://192.168.1.200:8887"
|
||||
},
|
||||
API_PROD: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn",
|
||||
},
|
||||
/**
|
||||
* @description // 跳转买家端地址 pc端
|
||||
*/
|
||||
PC_URL: "http://127.0.0.1:10000",
|
||||
/**
|
||||
* @description // 跳转买家端地址 wap端
|
||||
*/
|
||||
WAP_URL: "https://m-b2b2c.pickmall.cn",
|
||||
/**
|
||||
* @description api请求基础路径前缀
|
||||
*/
|
||||
PREFIX: "/manager",
|
||||
};
|
||||
|
@ -1,29 +1,29 @@
|
||||
var BASE = {
|
||||
/**
|
||||
* @description api请求基础路径
|
||||
*/
|
||||
API_DEV: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn",
|
||||
},
|
||||
API_PROD: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn",
|
||||
},
|
||||
/**
|
||||
* @description // 跳转买家端地址 pc端
|
||||
*/
|
||||
PC_URL: "https://pc-b2b2c.pickmall.cn",
|
||||
/**
|
||||
* @description // 跳转买家端地址 wap端
|
||||
*/
|
||||
WAP_URL: "https://m-b2b2c.pickmall.cn",
|
||||
/**
|
||||
* @description api请求基础路径前缀
|
||||
*/
|
||||
PREFIX: "/store",
|
||||
};
|
||||
/**
|
||||
* @description api请求基础路径
|
||||
*/
|
||||
API_DEV: {
|
||||
common: "http://192.168.1.200:8890",
|
||||
buyer: "http://192.168.1.200:8888",
|
||||
seller: "http://192.168.1.200:8889",
|
||||
manager: "http://192.168.1.200:8887"
|
||||
},
|
||||
API_PROD: {
|
||||
common: "https://common-api.pickmall.cn",
|
||||
buyer: "https://buyer-api.pickmall.cn",
|
||||
seller: "https://store-api.pickmall.cn",
|
||||
manager: "https://admin-api.pickmall.cn",
|
||||
},
|
||||
/**
|
||||
* @description // 跳转买家端地址 pc端
|
||||
*/
|
||||
PC_URL: "http://127.0.0.1:10000",
|
||||
/**
|
||||
* @description // 跳转买家端地址 wap端
|
||||
*/
|
||||
WAP_URL: "https://m-b2b2c.pickmall.cn",
|
||||
/**
|
||||
* @description api请求基础路径前缀
|
||||
*/
|
||||
PREFIX: "/store",
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user