Commit 82649518 authored by looker's avatar looker

add tag

parent 3faa4225
...@@ -2,5 +2,7 @@ var merge = require('webpack-merge') ...@@ -2,5 +2,7 @@ var merge = require('webpack-merge')
var prodEnv = require('./prod.env') var prodEnv = require('./prod.env')
module.exports = merge(prodEnv, { module.exports = merge(prodEnv, {
NODE_ENV: '"development"' NODE_ENV: '"development"',
WX_ADDRESS: '"http://imdev.chenzhen.shop:9093/"',
IMG_ADDRESS:'"http://chat-x.oss-cn-beijing.aliyuncs.com/"'
}) })
...@@ -23,7 +23,7 @@ module.exports = { ...@@ -23,7 +23,7 @@ module.exports = {
}, },
dev: { dev: {
env: require('./dev.env'), env: require('./dev.env'),
port: 8080, port: 8078,
autoOpenBrowser: true, autoOpenBrowser: true,
assetsSubDirectory: 'static', assetsSubDirectory: 'static',
assetsPublicPath: '/', assetsPublicPath: '/',
...@@ -34,7 +34,8 @@ module.exports = { ...@@ -34,7 +34,8 @@ module.exports = {
// } // }
'/api': { '/api': {
pathRewrite: { '^/api': '' }, pathRewrite: { '^/api': '' },
target: 'http://imweb.chenzhen.shop', // target: 'http://imweb.chenzhen.shop',
target: 'http://imdev.chenzhen.shop/',
changeOrigin: true, //是否跨域 changeOrigin: true, //是否跨域
} }
}, },
......
module.exports = { module.exports = {
NODE_ENV: '"production"' NODE_ENV: '"production"',
WX_ADDRESS: "http://imweb.chenzhen.shop:9093",
IMG_ADDRESS:'"http://chat-x.oss-cn-beijing.aliyuncs.com/"'
} }
...@@ -5635,6 +5635,12 @@ ...@@ -5635,6 +5635,12 @@
"minimist": "0.0.8" "minimist": "0.0.8"
} }
}, },
"moment": {
"version": "2.24.0",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==",
"dev": true
},
"move-concurrently": { "move-concurrently": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
......
<!-- 聊天列表 --> <!-- 聊天列表 -->
<template> <template>
<div class="msglist"> <div class="msglist">
<ul> <ul v-if="user.whichPane==panelStatus.CHART">
<li v-for="item in searchedChatlist" class="sessionlist" :class="{ active: item.id === selectId }" @click="selectSession(item.id)"> <li v-for="item in chatlist" class="sessionlist" :class="{ active: item.id === user.selectId }" @click="selectSession(item)">
<div class="list-left"> <div class="list-left">
<img class="avatar" width="42" height="42" :alt="item.user.name" :src="item.user.img"> <img class="avatar" width="42" height="42" :alt="item.user.name" :src="item.user.img">
</div> </div>
<div class="list-right"> <div class="list-right">
<p class="name">{{item.user.name}}</p> <p class="name">{{item.user.name}}</p>
<span class="time">{{item.messages[item.messages.length-1].date | time}}</span> <span class="time">{{item.queryData | time}}</span>
<p class="lastmsg">{{item.messages[item.messages.length-1].content}}</p> <p class="lastmsg">{{item.messages[item.messages.length-1]?'':item.messages[item.messages.length-1].content}}</p>
</div>
</li>
</ul>
<ul v-if="user.whichPane==panelStatus.SEARCH">
<li v-for="item in searchChatlist" class="sessionlist" :class="{ active: item.id === user.selectId }" @click="selectSession(item)">
<div class="list-left">
<img class="avatar" width="42" height="42" :alt="item.user.name" :src="item.user.img">
</div>
<div class="list-right">
<p class="name">{{item.user.name}}</p>
<span class="time">{{item.queryData | time}}</span>
<p class="lastmsg">{{item.messages[item.messages.length-1]?'':item.messages[item.messages.length-1].content}}</p>
</div> </div>
</li> </li>
</ul> </ul>
...@@ -18,14 +30,18 @@ ...@@ -18,14 +30,18 @@
<script> <script>
import { mapState, mapActions ,mapGetters } from 'vuex' import { mapState, mapActions ,mapGetters } from 'vuex'
import { panelStatus } from '@/utils/common'
export default { export default {
computed: { computed: {
panelStatus(){
return panelStatus
},
...mapState([ ...mapState([
'selectId', 'user',
'searchText'
]), ]),
...mapGetters([ ...mapGetters([
'searchedChatlist' 'searchChatlist',
'chatlist'
]) ])
}, },
methods: { methods: {
...@@ -33,17 +49,22 @@ export default { ...@@ -33,17 +49,22 @@ export default {
'selectSession', 'selectSession',
]) ])
}, },
mounted() {
let obj = this.searchedChatlist[0]
this.selectSession(obj)
},
filters: { filters: {
// 将日期过滤为 hour:minutes
time (date) { time (date) {
if (typeof date === 'string') { if(date){
date = new Date(date); date = new Date(parseInt(date) * 1000);
}
if(date.getMinutes()<10){ if(date.getMinutes()<10){
return date.getHours() + ':0' +date.getMinutes(); return date.getHours() + ':0' +date.getMinutes();
}else{ }else{
return date.getHours() + ':' + date.getMinutes(); return date.getHours() + ':' + date.getMinutes();
} }
}else{
return ""
}
} }
}, },
} }
......
<!-- 消息框 -->
<template> <template>
<div class="message"> <div>
<div class="message" v-if="user.whichPane==panelStatus.CHART">
<header class="header"> <header class="header">
<div class="friendname">{{selectedChat.user.name}}</div> <div class="friendname">{{selectedChat&&selectedChat.user.name}}</div>
</header> </header>
<div class="message-wrapper" ref="list"> <div class="message-wrapper" ref="list">
<ul v-if="selectedChat"> <ul v-if="selectedChat">
<li v-for="item in selectedChat.messages" class="message-item"> <li v-for="item in messages" class="message-item">
<div class="time"><span>{{item.date | time}}</span></div> <div v-if="item.type==1" class="main" :class="{ self: item.isSend }">
<div class="main" :class="{ self: item.self }"> <img class="avatar" width="36" height="36" :src="item.isSend ? user.img : selectedChat.user.img" />
<img class="avatar" width="36" height="36" :src="item.self ? user.img : selectedChat.user.img" /> <div class="time"><span>{{item.createTime | time}}</span></div>
<div class="content">
<div class="text" v-html="replaceFace(item.content)"></div>
</div>
</div>
<div v-if="item.type==3" class="main" :class="{ self: item.isSend }">
<img class="avatar" width="36" height="36" :src="item.isSend ? user.img : selectedChat.user.img" />
<div class="time"><span>{{item.createTime | time}}</span></div>
<div class="content">
<div class="img"><img style="width:300px;
height:300px;" :src="imgUrl+item.imageUrl" alt=""></div>
</div>
</div>
</li>
</ul>
</div>
</div>
<div class="message" v-if="user.whichPane==panelStatus.SEARCH">
<header class="header">
<div class="friendname">{{selectedSearchChat&&selectedSearchChat.user.name}}</div>
</header>
<div class="message-wrapper" ref="list">
<ul v-if="selectedSearchChat">
<li v-for="item in messages" class="message-item">
<div v-if="item.type==1" class="main" :class="{ self: item.isSend }">
<img class="avatar" width="36" height="36" :src="item.isSend ? user.img : selectedSearchChat.user.img" />
<div class="time"><span>{{item.createTime | time}}</span></div>
<div class="content"> <div class="content">
<div class="text" v-html="replaceFace(item.content)"></div> <div class="text" v-html="replaceFace(item.content)"></div>
</div> </div>
</div> </div>
<div v-if="item.type==3" class="main" :class="{ self: item.isSend }">
<img class="avatar" width="36" height="36" :src="item.isSend ? user.img : selectedSearchChat.user.img" />
<div class="time"><span>{{item.createTime | time}}</span></div>
<div class="content">
<div class="img"><img style="width:300px;
height:300px;" :src="imgUrl+item.imageUrl" alt=""></div>
</div>
</div>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div>
</template> </template>
<script> <script>
import moment from 'moment'
import { panelStatus } from '@/utils/common'
import { mapGetters, mapState } from 'vuex' import { mapGetters, mapState } from 'vuex'
export default { export default {
data(){
return {
imgUrl:process.env.IMG_ADDRESS
}
},
computed: { computed: {
panelStatus(){
return panelStatus
},
...mapGetters([ ...mapGetters([
'selectedChat', 'selectedChat',
'selectedSearchChat',
'messages' 'messages'
]), ]),
...mapState([ ...mapState([
...@@ -33,12 +81,12 @@ export default { ...@@ -33,12 +81,12 @@ export default {
]) ])
}, },
mounted() { mounted() {
// 在页面加载时让信息滚动到最下面 // console.log(this.$refs)
setTimeout(() => this.$refs.list.scrollTop = this.$refs.list.scrollHeight, 0) // setTimeout(() => this.$refs.list.scrollTop = this.$refs.list.scrollHeight, 0)
}, },
watch: { watch: {
// 发送信息后,让信息滚动到最下面
messages() { messages() {
console.log(44444444)
setTimeout(() => this.$refs.list.scrollTop = this.$refs.list.scrollHeight, 0) setTimeout(() => this.$refs.list.scrollTop = this.$refs.list.scrollHeight, 0)
} }
}, },
...@@ -46,7 +94,7 @@ export default { ...@@ -46,7 +94,7 @@ export default {
// 在发送信息之后,将输入的内容中属于表情的部分替换成emoji图片标签 // 在发送信息之后,将输入的内容中属于表情的部分替换成emoji图片标签
// 再经过v-html 渲染成真正的图片 // 再经过v-html 渲染成真正的图片
replaceFace (con) { replaceFace (con) {
if(con.includes('/:')) { if(con&&con.includes('/:')) {
var emojis=this.user.emojis; var emojis=this.user.emojis;
for(var i=0;i<emojis.length;i++){ for(var i=0;i<emojis.length;i++){
con = con.replace(emojis[i].reg, '<img src="static/emoji/' + emojis[i].file +'" alt="" style="vertical-align: middle; width: 24px; height: 24px" />'); con = con.replace(emojis[i].reg, '<img src="static/emoji/' + emojis[i].file +'" alt="" style="vertical-align: middle; width: 24px; height: 24px" />');
...@@ -59,14 +107,14 @@ export default { ...@@ -59,14 +107,14 @@ export default {
filters: { filters: {
// 将日期过滤为 hour:minutes // 将日期过滤为 hour:minutes
time (date) { time (date) {
if (typeof date === 'string') {
date = new Date(date); date = new Date(parseInt(date+'') * 1000);
} return moment(date).format('YYYY-MM-DD HH:mm:ss')
if(date.getMinutes()<10){ // if(date.getMinutes()<10){
return date.getHours() + ':0' +date.getMinutes(); // return date.getHours() + ':0' +date.getMinutes();
}else{ // }else{
return date.getHours() + ':' + date.getMinutes(); // return date.getHours() + ':' + date.getMinutes();
} // }
} }
} }
} }
...@@ -96,13 +144,11 @@ export default { ...@@ -96,13 +144,11 @@ export default {
width: 100% width: 100%
font-size: 12px font-size: 12px
margin: 7px auto margin: 7px auto
text-align: center
span span
display: inline-block display: inline-block
padding: 4px 6px padding: 4px 6px
color: #fff color: #797979
border-radius: 3px border-radius: 3px
background-color: #dcdcdc
.main .main
.avatar .avatar
float: left float: left
...@@ -141,4 +187,5 @@ export default { ...@@ -141,4 +187,5 @@ export default {
vertical-align: middle vertical-align: middle
border-right-color: transparent border-right-color: transparent
border-left-color: #b2e281 border-left-color: #b2e281
</style> </style>
...@@ -25,7 +25,7 @@ import { mapState } from 'vuex' ...@@ -25,7 +25,7 @@ import { mapState } from 'vuex'
export default { export default {
data(){ data(){
return { return {
accountFlag:true accountFlag:false
} }
}, },
computed: { computed: {
......
...@@ -13,7 +13,14 @@ ...@@ -13,7 +13,14 @@
export default { export default {
methods: { methods: {
change () { change () {
this.$store.dispatch('search', this.search) const text = this.search
if(text.replace(/^\s\s*/, '').replace(/\s\s*$/, '')==''){
console.log(66666666666666666)
this.$store.dispatch('changeChartPanel')
}else{
this.$store.dispatch('searchSession', this.search)
}
}, },
del () { del () {
this.search= '' this.search= ''
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
title="选择转接对象" title="选择转接对象"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="30%" width="30%"
:before-close="handleClose"> >
<div> <div>
<el-select style="width: 100%;" v-model="value7" placeholder="请选择"> <el-select style="width: 100%;" v-model="value7" placeholder="请选择">
<el-option-group <el-option-group
...@@ -61,6 +61,8 @@ export default { ...@@ -61,6 +61,8 @@ export default {
content: '', content: '',
reply: '未找到', reply: '未找到',
frequency: 0, frequency: 0,
sendType:1,
imageUrl:'',
warn: false, warn: false,
showEmoji: false, showEmoji: false,
dialogVisible:false, dialogVisible:false,
...@@ -95,7 +97,7 @@ export default { ...@@ -95,7 +97,7 @@ export default {
computed: { computed: {
...mapState([ ...mapState([
'selectId', 'selectId',
'emojis' 'user'
]), ]),
...mapGetters([ ...mapGetters([
'selectedChat', 'selectedChat',
...@@ -168,29 +170,17 @@ export default { ...@@ -168,29 +170,17 @@ export default {
setTimeout(() => { setTimeout(() => {
this.warn = false; this.warn = false;
}, 1000) }, 1000)
}else{
if(this.selectedChat.user.name === '机器人'){
this.$http.get(`https://zhaoplus.com/api/AI?search=${this.content}`).then(res => {
this.reply = res.data.result.text
if(this.content.includes('/:')){
this.reply = '嘻嘻'
}
var msg = {
content: this.content,
reply: this.reply
}
this.$store.dispatch('sendMessage', msg)
this.content = ''
})
}else{ }else{
var msg = { var msg = {
id:this.user.selectId,
type:this.sendType,
content: this.content, content: this.content,
imageUrl:this.imageUrl
} }
this.$store.dispatch('sendMessage', msg) this.$store.dispatch('sendMessage', msg)
this.content = '' this.content = ''
} }
} }
}
}, },
// 在进入的时候 聚焦输入框 // 在进入的时候 聚焦输入框
mounted() { mounted() {
......
...@@ -8,6 +8,7 @@ import ElementUI from 'element-ui' ...@@ -8,6 +8,7 @@ import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css' import 'element-ui/lib/theme-chalk/index.css'
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.config.devtools = true
Vue.use(ElementUI) Vue.use(ElementUI)
/* eslint-disable no-new */ /* eslint-disable no-new */
const vm = new Vue({ const vm = new Vue({
......
const url={} const url={}
url.login = '/api/y/customer/passport/sign' url.login = '/api/y/customer/passport/sign'
url.wsUrl = "http://imweb.chenzhen.shop:9093" url.wsUrl = "http://imdev.chenzhen.shop:9093/"
// url.wsUrl = process.env.WX_ADDRESS
export default url export default url
\ No newline at end of file
import { panelStatus } from '@/utils/common'
const getters = { const getters = {
searchedChatlist (state) { chatlist (state) {
let sessions = state.user.chatlist.filter(sessions => sessions.user.name.includes(state.user.searchText)); return state.user.chatlist
return sessions
}, },
// 筛选出含有搜索值的好友列表 searchChatlist (state) {
searchedFriendlist (state) { return state.user.searchChatlist
let friends = state.user.friendlist.filter(friends => friends.remark.includes(state.user.searchText));
return friends
}, },
// 通过当前选择是哪个对话匹配相应的对话 // searchedFriendlist (state) {
// let friends = state.user.friendlist.filter(friends => friends.remark.includes(state.user.searchText));
// return friends
// },
selectedChat (state) { selectedChat (state) {
let session = state.user.chatlist.find(session => session.id === state.user.selectId); let temp = state.user.chatlist.find(session => session.id === state.user.selectId);
return session return temp
},
selectedSearchChat(state){
let temp = state.user.searchChatlist.find(session => session.id === state.user.selectId);
return temp
}, },
// 通过当前选择是哪个好友匹配相应的好友
selectedFriend (state) { selectedFriend (state) {
let friend = state.user.friendlist.find(friend => friend.id === state.user.selectFriendId); let friend = state.user.friendlist.find(friend => friend.id === state.user.selectFriendId);
return friend return friend
}, },
messages (state) { messages (state) {
let session = state.user.chatlist.find(session => session.id === state.user.selectId); let session = state.user.chatlist.find(session => session.id === state.user.selectId);
console.log(session) return session&&session.messages
return session.messages
} }
} }
export default getters export default getters
\ No newline at end of file
This diff is collapsed.
...@@ -30,3 +30,55 @@ export function getCommercialId() { ...@@ -30,3 +30,55 @@ export function getCommercialId() {
export function setCommercialId(token) { export function setCommercialId(token) {
return Cookies.set(commercialIdKey, token) return Cookies.set(commercialIdKey, token)
} }
export const emojis = [
{ file: '100.gif', code: '/::)', title: '微笑',reg:/\/::\)/g },
{ file: '101.gif', code: '/::~', title: '伤心',reg:/\/::~/g },
{ file: '102.gif', code: '/::B', title: '美女',reg:/\/::B/g },
{ file: '103.gif', code: '/::|', title: '发呆',reg:/\/::\|/g },
{ file: '104.gif', code: '/:8-)', title: '墨镜',reg:/\/:8-\)/g },
{ file: '105.gif', code: '/::<', title: '哭',reg:/\/::</g },
{ file: '106.gif', code: '/::$', title: '羞',reg:/\/::\$/g },
{ file: '107.gif', code: '/::X', title: '哑',reg:/\/::X/g },
{ file: '108.gif', code: '/::Z', title: '睡',reg:/\/::Z/g },
{ file: '109.gif', code: '/::\'(', title: '哭',reg:/\/::'\(/g },
{ file: '110.gif', code: '/::-|', title: '囧',reg:/\/::-\|/g },
{ file: '111.gif', code: '/::@', title: '怒',reg:/\/::@/g },
{ file: '112.gif', code: '/::P', title: '调皮',reg:/\/::P/g },
{ file: '113.gif', code: '/::D', title: '笑',reg:/\/::D/g },
{ file: '114.gif', code: '/::O', title: '惊讶',reg:/\/::O/g },
{ file: '115.gif', code: '/::(', title: '难过',reg:/\/::\(/g },
{ file: '116.gif', code: '/::+', title: '酷',reg:/\/::\+/g },
{ file: '117.gif', code: '/:--b', title: '汗',reg:/\/:--b/g },
{ file: '118.gif', code: '/::Q', title: '抓狂',reg:/\/::Q/g },
{ file: '119.gif', code: '/::T', title: '吐',reg:/\/::T/g },
{ file: '120.gif', code: '/:,@P', title: '笑',reg:/\/:,@P/g },
{ file: '121.gif', code: '/:,@-D', title: '快乐',reg:/\/:,@-D/g },
{ file: '122.gif', code: '/::d', title: '奇',reg:/\/::d/g },
{ file: '123.gif', code: '/:,@o', title: '傲' ,reg:/\/:,@o/g},
{ file: '124.gif', code: '/::g', title: '饿',reg:/\/::g/g },
{ file: '125.gif', code: '/:|-)', title: '累' ,reg:/\/:\|-\)/g},
{ file: '126.gif', code: '/::!', title: '吓',reg:/\/::!/g },
{ file: '127.gif', code: '/::L', title: '汗',reg:/\/::L/g },
{ file: '128.gif', code: '/::>', title: '高兴',reg:/\/::>/g },
{ file: '129.gif', code: '/::,@', title: '闲',reg:/\/::,@/g },
{ file: '130.gif', code: '/:,@f', title: '努力',reg:/\/:,@f/g },
{ file: '131.gif', code: '/::-S', title: '骂',reg:/\/::-S/g },
{ file: '133.gif', code: '/:,@x', title: '秘密',reg:/\/:,@x/g },
{ file: '134.gif', code: '/:,@@', title: '乱',reg:/\/:,@@/g },
{ file: '135.gif', code: '/::8', title: '疯',reg:/\/::8/g },
{ file: '136.gif', code: '/:,@!', title: '哀',reg:/\/:,@!/g },
{ file: '137.gif', code: '/:!!!', title: '鬼',reg:/\/:!!!/g },
{ file: '138.gif', code: '/:xx', title: '打击',reg:/\/:xx/g },
{ file: '139.gif', code: '/:bye', title: 'bye',reg:/\/:bye/g },
{ file: '142.gif', code: '/:handclap', title: '鼓掌',reg:/\/:handclap/g },
{ file: '145.gif', code: '/:<@', title: '什么',reg:/\/:<@/g },
{ file: '147.gif', code: '/::-O', title: '累',reg:/\/::-O/g },
{ file: '153.gif', code: '/:@x', title: '吓',reg:/\/:@x/g },
{ file: '155.gif', code: '/:pd', title: '刀',reg:/\/:pd/g },
{ file: '156.gif', code: '/:<W>', title: '水果',reg:/\/:<W>/g },
{ file: '157.gif', code: '/:beer', title: '酒',reg:/\/:beer/g },
{ file: '158.gif', code: '/:basketb', title: '篮球',reg:/\/:basketb/g },
{ file: '159.gif', code: '/:oo', title: '乒乓',reg:/\/:oo/g },
{ file: '195.gif', code: '/:circle', title: '跳舞',reg:/\/:circle/g },
{ file: '160.gif', code: '/:coffee', title: '咖啡',reg:/\/:coffee/g }
]
import axios from "axios" export const panelStatus = {
import aliOss from "ali-oss" SEARCH:'SEARCH',//SEARCH搜索列表
CHART:'CHART'//CHART回话列表
let Authorization = null
let Common = {}
window.common = Common
// const ajaxUrl = "http://172.16.22.234:19891";
const ajaxUrl = "/api"
// const ajaxUrl = "http://localhost";
Common.ajax = axios.create({
baseURL: ajaxUrl,
timeout: 120000,
headers: {
"Cache-Control": "no-cache,no-store,must-revalidate,max-age=-1,private"
}
})
// Common.wsUrl = "http://172.16.22.234:9093";
Common.wsUrl = "http://imweb.chenzhen.shop"
Common.bag = {
host: "https://baozheng.cc"
// host: "http://172.16.22.3:19893"
// host: "http://172.16.22.234:9093"
} }
\ No newline at end of file
Common.bag.ajax = axios.create({
baseURL: Common.bag.host,
timeout: 120000,
headers: {
"Cache-Control": "no-cache,no-store,must-revalidate,max-age=-1,private"
}
// withCredentials: true
})
Common.bag.ajax.interceptors.response.use((response) => {
// console.log(response)
return response
}, (error) => {
if (error.response && error.response.status == 401) {
window.vm.bagLogin()
}
return Promise.reject(error)
})
Common.chenzhen = {}
Common.chenzhen.ajax = axios.create({
// baseURL: "http://172.16.22.234:19893",
// baseURL: "http://127.0.0.1:4396",
baseURL: "http://imweb.chenzhen.shop",
timeout: 30000,
headers: {
"Cache-Control": "no-cache,no-store,must-revalidate,max-age=-1,private"
}
})
Common.chenzhen.ajax.interceptors.request.use((body) => {
body.headers.Authorization = localStorage.getItem("chenzhen-token")
return body
}, (error) => {
return Promise.reject(error)
})
Common.chenzhen.ajax.interceptors.response.use((response) => {
if (response.data.code === 800) {
localStorage.clear()
window.vm.chenzhenLogin()
}
return response
}, (error) => {
return Promise.reject(error)
})
Common.chat = {
host: "http://imweb.chenzhen.shop"
}
Common.chat.ajax = axios.create({
baseURL: Common.chat.host,
timeout: 120000,
headers: {
"Cache-Control": "no-cache,no-store,must-revalidate,max-age=-1,private"
}
})
Common.six_day = 6 * 24 * 60 * 60 * 1000
Common.wsClient = null
Common.sendMessage = (message) => {
return new Promise((resolve, reject) => {
if (Common.wsClient == null || Common.wsClient.disconnected) {
reject("No socket connection.")
} else {
// console.log(message)
let options = {
eventType: "messages/create",
message: message
}
Common.wsClient.emit("appevent", options)
resolve()
}
})
}
Common.ossClient = new aliOss({
region: "oss-cn-beijing",
accessKeyId: "LTAImsrYiikk7t3f",
accessKeySecret: "XtgwITVY6Apb7H1hOO3LRZNxE0Onpb",
bucket: "chat-x"
})
Common.ossUrl = "http://chat-x.oss-cn-beijing.aliyuncs.com/"
export default Common
export const compare =(po)=>{
return function(a,b){
let temp1 = a[po];
let temp2 = b[po];
return temp1-temp2
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment