Merge pull request 'xbx' (#24) from xbx into master
Reviewed-on: http://git.luyuan.tk/luyuan/demingshangjia/pulls/24
This commit is contained in:
		
						commit
						d78b787967
					
				
							
								
								
									
										6
									
								
								App.vue
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								App.vue
									
									
									
									
									
								
							@ -1,6 +1,10 @@
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
	globalData: {  
 | 
			
		||||
		im: {}  
 | 
			
		||||
	},  
 | 
			
		||||
	onLaunch: function() {
 | 
			
		||||
		getApp().globalData.im = this.imService
 | 
			
		||||
		console.log('App Launch');
 | 
			
		||||
	},
 | 
			
		||||
	onShow: function() {
 | 
			
		||||
@ -15,4 +19,4 @@ export default {
 | 
			
		||||
<style lang="scss">
 | 
			
		||||
/*每个页面公共css */
 | 
			
		||||
@import 'uview-ui/index.scss';
 | 
			
		||||
</style>
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
@ -18,12 +18,19 @@ export default {
 | 
			
		||||
            xuanzhong:false,
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    props:['image','title','price','num','sid'],
 | 
			
		||||
    props:['image','title','price','num','sid','wxuanzhong'],
 | 
			
		||||
    methods:{
 | 
			
		||||
        xuanzhongs(){
 | 
			
		||||
            this.xuanzhong = !this.xuanzhong
 | 
			
		||||
            this.$emit("xuanzhong")
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    watch:{
 | 
			
		||||
        
 | 
			
		||||
    },
 | 
			
		||||
    created(){
 | 
			
		||||
        this.xuanzhong = this.wxuanzhong
 | 
			
		||||
        console.log(this.wxuanzhong)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@ -103,6 +103,7 @@ export default {
 | 
			
		||||
			// 账号登录1达人0商家
 | 
			
		||||
			if(this.state==1){
 | 
			
		||||
				this.$u.api.login({ member_name: this.zhanghaoA, member_password: this.mimaA }).then(res => {
 | 
			
		||||
					console.log(JSON.stringify(res))
 | 
			
		||||
					if (res.errCode != 0) {
 | 
			
		||||
						// 恢复按钮可点击状态
 | 
			
		||||
						this.clickstate=false
 | 
			
		||||
@ -122,6 +123,7 @@ export default {
 | 
			
		||||
				});
 | 
			
		||||
			}else{
 | 
			
		||||
				this.$u.api.shoplogin({ member_name: this.zhanghao, member_password: this.mima }).then(res => {
 | 
			
		||||
					console.log(JSON.stringify(res))
 | 
			
		||||
					if (res.errCode != 0) {
 | 
			
		||||
						// 恢复按钮可点击状态
 | 
			
		||||
						this.clickstate=false
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,13 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<!-- login页面 -->
 | 
			
		||||
	<view>
 | 
			
		||||
	<view :style="{'height':swiperHeight + 'px'}">
 | 
			
		||||
		<!-- <view class="border_serach">
 | 
			
		||||
			<view class="u-search">
 | 
			
		||||
				<u-search :show-action="false" input-align="left" shape="round" placeholder="搜索" v-model="keyword"></u-search>
 | 
			
		||||
			</view>
 | 
			
		||||
		</view> -->
 | 
			
		||||
		<!-- 消息列表 -->
 | 
			
		||||
		<u-empty text="并没有什么消息" mode="message" v-if="Object.keys(list).length == 0" style="margin: auto"></u-empty>
 | 
			
		||||
		<view class="massage_list" v-for="(item,index) in list" :key="index"  @click="gochat(item)">
 | 
			
		||||
			<view class="images">
 | 
			
		||||
				<image :src="item.avatar" ></image>
 | 
			
		||||
@ -50,11 +51,12 @@
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		onShow(){
 | 
			
		||||
			this.list = this.imService.friends;
 | 
			
		||||
			// this.list = this.imService.friends;
 | 
			
		||||
			this.imService.onFriendListChange=this.onFriendListChange;
 | 
			
		||||
		},
 | 
			
		||||
		onLoad(){
 | 
			
		||||
			
 | 
			
		||||
			const res = uni.getSystemInfoSync();
 | 
			
		||||
			this.swiperHeight = res.windowHeight;
 | 
			
		||||
			this.list = this.imService.friends;
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
@ -3,10 +3,10 @@
 | 
			
		||||
        <view class="title">我的商品</view>
 | 
			
		||||
        <u-checkbox-group>
 | 
			
		||||
            <view class="list">
 | 
			
		||||
                <shopItem @xuanzhong="xuanzhong" class="items" v-for="(i,j) in list" :key="j" :image="i.goods_image" :title="i.goods_name" :price="i.goods_marketprice" :num="i.goods_salenum" :sid="i.goods_id" ref="shop"></shopItem>
 | 
			
		||||
                <shopItem @xuanzhong="xuanzhong" :wxuanzhong="sele.indexOf(i.goods_id + '') > -1" class="items" v-for="(i,j) in list" :key="j" :image="i.goods_image" :title="i.goods_name" :price="i.goods_marketprice" :num="i.goods_salenum" :sid="i.goods_id" ref="shop"></shopItem>
 | 
			
		||||
            </view>
 | 
			
		||||
        </u-checkbox-group>
 | 
			
		||||
        <view class="jiaru" @click="jiaru">加入售货袋</view>
 | 
			
		||||
        <view class="jiaru" @click="jiaru" :style="{'background-color': sele.length > 0 ? 'rgba(255, 120, 15, 1' : ''}">加入售货袋</view>
 | 
			
		||||
    </view>
 | 
			
		||||
</template>
 | 
			
		||||
<script>
 | 
			
		||||
@ -45,6 +45,11 @@ export default {
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    onLoad(){
 | 
			
		||||
        this.sele = uni.getStorageSync("gouwudai").split(',')
 | 
			
		||||
        if(this.sele[0] == ""){
 | 
			
		||||
            this.sele = []
 | 
			
		||||
        }
 | 
			
		||||
        console.log(this.sele[0])
 | 
			
		||||
        this.$u.api.getStoreGoodsList().then((res)=>{
 | 
			
		||||
            this.list = res.data.list
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,13 @@
 | 
			
		||||
<template>
 | 
			
		||||
	<!-- tosign页面 -->
 | 
			
		||||
	<view>
 | 
			
		||||
		<view class="tosign">
 | 
			
		||||
		<view class="tosign" style="padding-bottom:180rpx">
 | 
			
		||||
			<image class="images" src="../../static/image/login/login(2).png"></image>
 | 
			
		||||
			<view class="backes"></view>
 | 
			
		||||
			<!-- z自定义导航卡 -->
 | 
			
		||||
			<u-navbar title="" class="content" :background="background" :is-back="false" :border-bottom="false">
 | 
			
		||||
				<!-- <image src="../../static/image/tosign/tosigin(4).png"></image> -->
 | 
			
		||||
				<image src="../../static/image/tosign/tosigin(1).png"></image>
 | 
			
		||||
				<image src="../../static/image/tosign/tosigin(1).png" @click="fanhui"></image>
 | 
			
		||||
			</u-navbar>
 | 
			
		||||
 | 
			
		||||
			<view id="content_tosign">
 | 
			
		||||
@ -21,18 +21,19 @@
 | 
			
		||||
					</u-form-item>
 | 
			
		||||
					<view class="values"><text>{{20 - form.text.length}}</text>/20</view>
 | 
			
		||||
					<u-form-item label-position="right" >
 | 
			
		||||
						<u-input v-model="form.values" placeholder="我的售货袋" @click="navto('selectshop')"/>
 | 
			
		||||
						<u-input :disabled="true" v-model="form.values" placeholder="我的售货袋"  @click="navto('selectshop')"/>
 | 
			
		||||
						<view class="rightes"  @click="navto('selectshop')">售货袋</view>
 | 
			
		||||
					</u-form-item>
 | 
			
		||||
				</u-form>
 | 
			
		||||
				<!-- 标签的引入 -->
 | 
			
		||||
				<tap_tosign :fileListes="fileListes" @chuangjian="chuangjian" @qiehuan="qiehuan"></tap_tosign>
 | 
			
		||||
				<view class="titles">直播封面图</view>
 | 
			
		||||
				<u-upload :form-data="{'name':'article_cover'}" action='https://dmmall.sdbairui.com/storeapi/Upload/uploadFile'  name="article_cover" :header="{'Authorization' : 'Bearer' +  ' ' + token}" :max-count="1" :show-progress="true" @on-change="tupian" del-color="#ececec" upload-text="上传" del-bg-color="#fff"></u-upload>
 | 
			
		||||
				<u-upload :form-data="{'name':'article_cover'}" action='https://dmmall.sdbairui.com/storeapi/Upload/uploadFile'  name="article_cover" :header="{'Authorization' : 'Bearer' +  ' ' + token}" :max-count="1" :show-progress="true" @on-change="tupian" @on-success="sccg" del-color="#ececec" upload-text="上传" del-bg-color="#fff" :before-upload="shangchuan"></u-upload>
 | 
			
		||||
			</view>
 | 
			
		||||
			<view class="button-uview">
 | 
			
		||||
				<u-button @click="kaibo">{{relerest}}</u-button>
 | 
			
		||||
				<u-button :hair-line="false" @click="kaibo">{{relerest}}</u-button>
 | 
			
		||||
			</view>
 | 
			
		||||
			<u-toast ref="uToast" />
 | 
			
		||||
		</view>
 | 
			
		||||
	</view>
 | 
			
		||||
</template>
 | 
			
		||||
@ -65,6 +66,20 @@
 | 
			
		||||
			};
 | 
			
		||||
		},
 | 
			
		||||
		methods: {
 | 
			
		||||
			fanhui(){
 | 
			
		||||
				this.$u.route({
 | 
			
		||||
					type:"back",
 | 
			
		||||
					delta:1
 | 
			
		||||
				})
 | 
			
		||||
			},
 | 
			
		||||
			shangchuan(){
 | 
			
		||||
				uni.showLoading({
 | 
			
		||||
					title: '上传中'
 | 
			
		||||
				});
 | 
			
		||||
			},
 | 
			
		||||
			tupian(){
 | 
			
		||||
				uni.hideLoading()
 | 
			
		||||
			},
 | 
			
		||||
			// 选中某个复选框时,由checkbox时触发
 | 
			
		||||
			checkboxChange(e) {
 | 
			
		||||
				//console.log(e);
 | 
			
		||||
@ -108,6 +123,12 @@
 | 
			
		||||
					cover_img:this.image
 | 
			
		||||
				}).then((res)=>{
 | 
			
		||||
					console.log(res)
 | 
			
		||||
					if(res.errCode == 1){
 | 
			
		||||
						this.$refs.uToast.show({
 | 
			
		||||
							title: res.message,
 | 
			
		||||
							type: 'error'
 | 
			
		||||
						});
 | 
			
		||||
					}
 | 
			
		||||
					this.$u.route({
 | 
			
		||||
						url:"/pages/release/zhibo",
 | 
			
		||||
						params:{
 | 
			
		||||
 | 
			
		||||
@ -290,6 +290,33 @@
 | 
			
		||||
            chatRoomService:{},
 | 
			
		||||
            danmulist:[]
 | 
			
		||||
        },
 | 
			
		||||
        onLaunch: function() {
 | 
			
		||||
            console.log('App Launch');
 | 
			
		||||
        },
 | 
			
		||||
        onShow: function() {
 | 
			
		||||
            this.stop()
 | 
			
		||||
            this.startPreview()
 | 
			
		||||
            this.start()
 | 
			
		||||
        },
 | 
			
		||||
        onHide: function() {
 | 
			
		||||
            console.log('App Hide');
 | 
			
		||||
        },
 | 
			
		||||
        //模拟onshow生命周期
 | 
			
		||||
        created() {
 | 
			
		||||
            //监听当前窗口显示 
 | 
			
		||||
            currentWebview.addEventListener('show',e=>{
 | 
			
		||||
                console.log('search show');
 | 
			
		||||
                this.startPreview()
 | 
			
		||||
                this.start()
 | 
			
		||||
            })
 | 
			
		||||
        },
 | 
			
		||||
        
 | 
			
		||||
        //摧毁之前的声明周期
 | 
			
		||||
        beforeDestroy() {
 | 
			
		||||
            //移除监听事件
 | 
			
		||||
            console.log(123)
 | 
			
		||||
            currentWebview.removeEventListener('show',e=>{})
 | 
			
		||||
        },
 | 
			
		||||
        onReady() {
 | 
			
		||||
            // 注意:需要在onReady中 或 onLoad 延时
 | 
			
		||||
            this.context = uni.createLivePusherContext("livePusher", this);
 | 
			
		||||
@ -306,6 +333,8 @@
 | 
			
		||||
        },
 | 
			
		||||
        
 | 
			
		||||
        onLoad(a){
 | 
			
		||||
		    console.log(getApp().globalData.im)
 | 
			
		||||
 | 
			
		||||
            this.url = a.url.replace("*","&")
 | 
			
		||||
            let that = this
 | 
			
		||||
            const token = uni.getStorageSync('token');
 | 
			
		||||
@ -336,7 +365,7 @@
 | 
			
		||||
                    console.log(uni.getStorageSync('userinfo'),123)
 | 
			
		||||
                    //当前用户
 | 
			
		||||
                    var currentUser = {
 | 
			
		||||
                        id : res.data.data.memberInfo.member_id + "",
 | 
			
		||||
                        id : Date.parse(new Date()) + "",
 | 
			
		||||
                        nickname : res.data.data.memberInfo.member_nickname + "",
 | 
			
		||||
                        avatar: res.data.data.memberInfo.member_avatar
 | 
			
		||||
                    };
 | 
			
		||||
@ -345,11 +374,11 @@
 | 
			
		||||
                        id : a.id + "",
 | 
			
		||||
                        name : a.id + ""
 | 
			
		||||
                    };
 | 
			
		||||
                    console.log(room)
 | 
			
		||||
                    that.chatRoomService = getApp().globalData.im
 | 
			
		||||
                    console.log(room,currentUser)
 | 
			
		||||
                    //构造chatRoomService
 | 
			
		||||
                    that.chatRoomService = new ChatRoomService(room, currentUser);
 | 
			
		||||
                    that.chatRoomService.subscribeRoomMessage(room,currentUser)
 | 
			
		||||
                    that.chatRoomService.initialWhenNewMessage(that.whenNewMessage);
 | 
			
		||||
                    that.chatRoomService.connectGoEasyIM();
 | 
			
		||||
                    //获取当前聊天室数据
 | 
			
		||||
                    that.room = that.chatRoomService.room;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
@ -49,6 +49,7 @@ function IMService() {
 | 
			
		||||
 | 
			
		||||
    //群聊消息记录,map格式,每个群对应一个数组
 | 
			
		||||
    this.groupMessages = {};
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * 监听器们
 | 
			
		||||
@ -69,6 +70,13 @@ function IMService() {
 | 
			
		||||
    this.onFriendListChange = function (friends) {};
 | 
			
		||||
    //群列表发生改变
 | 
			
		||||
    this.onGroupListChange = function (groups) {};
 | 
			
		||||
 | 
			
		||||
    this.whenNewMessage = function () {
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
    this.whenOnlineUserChange = function () {
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//登录
 | 
			
		||||
@ -359,30 +367,29 @@ IMService.prototype.initialIMListeners = function () {
 | 
			
		||||
        this.onNewPrivateMessageReceive(friendId, message);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //监听群聊消息
 | 
			
		||||
    this.im.on(GoEasyIM.EVENT.GROUP_MESSAGE_RECEIVED, (message) => {
 | 
			
		||||
        let groupId = message.groupId;
 | 
			
		||||
        //群未读消息+1
 | 
			
		||||
        let group = this.groups[groupId];
 | 
			
		||||
        group.unReadMessage++;
 | 
			
		||||
        removeGroupPendingMessage(this, groupId, message);
 | 
			
		||||
        //如果页面传入了相应的listener,执行listener
 | 
			
		||||
        this.onGroupListChange(this.groups);
 | 
			
		||||
    // //监听群聊消息
 | 
			
		||||
    // this.im.on(GoEasyIM.EVENT.GROUP_MESSAGE_RECEIVED, (message) => {
 | 
			
		||||
    //     let groupId = message.groupId;
 | 
			
		||||
    //     //群未读消息+1
 | 
			
		||||
    //     let group = this.groups[groupId];
 | 
			
		||||
    //     group.unReadMessage++;
 | 
			
		||||
    //     removeGroupPendingMessage(this, groupId, message);
 | 
			
		||||
    //     //如果页面传入了相应的listener,执行listener
 | 
			
		||||
    //     this.onGroupListChange(this.groups);
 | 
			
		||||
 | 
			
		||||
        //更新群聊消息记录
 | 
			
		||||
        let groupMessages = this.getGroupMessages(groupId);
 | 
			
		||||
        let sentMessages = groupMessages.sentMessages;
 | 
			
		||||
        sentMessages.push(message);
 | 
			
		||||
        //如果页面传入了相应的listener,执行listener
 | 
			
		||||
        this.onNewGroupMessageReceive(groupId, message);
 | 
			
		||||
    })
 | 
			
		||||
    //     //更新群聊消息记录
 | 
			
		||||
    //     let groupMessages = this.getGroupMessages(groupId);
 | 
			
		||||
    //     let sentMessages = groupMessages.sentMessages;
 | 
			
		||||
    //     sentMessages.push(message);
 | 
			
		||||
    //     //如果页面传入了相应的listener,执行listener
 | 
			
		||||
    //     this.onNewGroupMessageReceive(groupId, message);
 | 
			
		||||
    // })
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//订阅群消息
 | 
			
		||||
IMService.prototype.subscribeGroupMessage = function () {
 | 
			
		||||
    let groupIds = Object.keys(this.groups);
 | 
			
		||||
    this.im.subscribeGroup(groupIds)
 | 
			
		||||
IMService.prototype.subscribeGroupMessage = function (id) {
 | 
			
		||||
    this.im.subscribeGroup([id])
 | 
			
		||||
        .then(() => {
 | 
			
		||||
            console.log('订阅群消息成功')
 | 
			
		||||
        })
 | 
			
		||||
@ -607,4 +614,232 @@ function removeGroupPendingMessage(imService,groupId, message){
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//下面是合并的
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//用户
 | 
			
		||||
function User(id, nickname, avatar) {
 | 
			
		||||
    this.id = id;
 | 
			
		||||
    this.nickname = nickname;
 | 
			
		||||
    this.avatar = avatar;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//消息
 | 
			
		||||
function Message(senderUserId, senderNickname, content, type) {
 | 
			
		||||
    this.senderNickname = senderNickname;
 | 
			
		||||
    this.senderUserId = senderUserId;
 | 
			
		||||
    this.content = content;
 | 
			
		||||
    this.type = type
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//聊天室
 | 
			
		||||
function Room(id, name, currentUser) {
 | 
			
		||||
 | 
			
		||||
    this.id = id;
 | 
			
		||||
    this.name = name;
 | 
			
		||||
    this.currentUser = currentUser;
 | 
			
		||||
 | 
			
		||||
    this.onlineUsers = {
 | 
			
		||||
        count: 0,
 | 
			
		||||
        users: []
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    this.messages = [];
 | 
			
		||||
 | 
			
		||||
    this.MessageType = {
 | 
			
		||||
        CHAT: 0,//文字聊天
 | 
			
		||||
        PROP: 1//道具
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    this.Prop = {
 | 
			
		||||
        HEART: 0,//桃心
 | 
			
		||||
        ROCKET: 1//火箭
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
IMService.prototype.initialWhenNewMessage = function (whenNewMessage) {
 | 
			
		||||
    this.whenNewMessage = whenNewMessage;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
IMService.prototype.initialWhenOnlineUserChange = function (whenOnlineUserChange) {
 | 
			
		||||
    this.whenOnlineUserChange = whenOnlineUserChange;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//监听新消息
 | 
			
		||||
IMService.prototype.listenerNewMessage = function () {
 | 
			
		||||
 | 
			
		||||
    this.im.on(GoEasyIM.EVENT.GROUP_MESSAGE_RECEIVED, (message) => {
 | 
			
		||||
		var content = JSON.parse(message.payload.text);
 | 
			
		||||
        this.addNewMessage(message);
 | 
			
		||||
        this.whenNewMessage(content);
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
IMService.prototype.addNewMessage = function (message) {
 | 
			
		||||
    var content = JSON.parse(message.payload.text);
 | 
			
		||||
    let messageContent = "";
 | 
			
		||||
    //聊天消息
 | 
			
		||||
    if (content.type == this.room.MessageType.CHAT) {
 | 
			
		||||
        messageContent = content.content;
 | 
			
		||||
    }
 | 
			
		||||
    //道具消息
 | 
			
		||||
    if (content.type == this.room.MessageType.PROP) {
 | 
			
		||||
        if (content.content == this.room.Prop.ROCKET) {
 | 
			
		||||
            messageContent = "送出了一枚大火箭";
 | 
			
		||||
        }
 | 
			
		||||
        if (content.content == this.room.Prop.HEART) {
 | 
			
		||||
            messageContent = "送出了一个大大的比心";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    //添加消息
 | 
			
		||||
    let newMessage = new Message(message.senderId, content.senderNickname, messageContent);
 | 
			
		||||
    this.room.messages.push(newMessage);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//监听用户上下线
 | 
			
		||||
IMService.prototype.listenerGroupPresence = function () {
 | 
			
		||||
    this.im.on(GoEasyIM.EVENT.GROUP_PRESENCE, (event) => {
 | 
			
		||||
        //更新在线用户数
 | 
			
		||||
        this.room.onlineUsers.count = event.groupOnlineCount;
 | 
			
		||||
 | 
			
		||||
        if (event.action == 'join' || event.action == 'online') {
 | 
			
		||||
            let userData = JSON.parse(event.userData);
 | 
			
		||||
            //添加新用户
 | 
			
		||||
            let user = new User(event.userId, userData.nickname, userData.avatar);
 | 
			
		||||
 | 
			
		||||
            //添加在线用户,避免用户重复
 | 
			
		||||
            if (!this.room.onlineUsers.users.find(item => item.id == event.userId)) {
 | 
			
		||||
                this.room.onlineUsers.users.push(user);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //添加进入房间的消息
 | 
			
		||||
            let message = new Message(event.userId, userData.nickname, " 进入房间", this.room.MessageType.CHAT);
 | 
			
		||||
            this.room.messages.push(message);
 | 
			
		||||
        } else {
 | 
			
		||||
            let offlineUserIndex = this.room.onlineUsers.users.findIndex(item => item.id == event.userId);
 | 
			
		||||
            if (offlineUserIndex > -1) {
 | 
			
		||||
                //将离开的用户从onlineUsers中删掉
 | 
			
		||||
                let offlineUser = Object.assign(this.room.onlineUsers.users[offlineUserIndex]);
 | 
			
		||||
                this.room.onlineUsers.users.splice(offlineUserIndex, 1);
 | 
			
		||||
                //添加离开消息
 | 
			
		||||
                let message = new Message(offlineUser.id, offlineUser.nickname, " 离开房间", this.room.MessageType.CHAT)
 | 
			
		||||
                this.room.messages.push(message);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        this.whenOnlineUserChange(this.room.onlineUsers);
 | 
			
		||||
    })
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//查询和初始化在线用户列表和在线用户数
 | 
			
		||||
IMService.prototype.initialOnlineUsers = function (roomId) {
 | 
			
		||||
    let self = this;
 | 
			
		||||
 | 
			
		||||
    //查询最新上线的用户列表
 | 
			
		||||
    this.im.groupHereNow(roomId)
 | 
			
		||||
        .then(result => {
 | 
			
		||||
            if (result.code == 200) {
 | 
			
		||||
                let users = [];
 | 
			
		||||
                result.content && result.content.map(function (onlineUser) {
 | 
			
		||||
                    let userData = JSON.parse(onlineUser.userData);
 | 
			
		||||
                    let user = new User(onlineUser.userId, userData.nickname, userData.avatar);
 | 
			
		||||
                    users.push(user);
 | 
			
		||||
                });
 | 
			
		||||
                self.room.onlineUsers = {
 | 
			
		||||
                    users: users
 | 
			
		||||
                };
 | 
			
		||||
            }
 | 
			
		||||
        }).catch(e => {
 | 
			
		||||
        if (e.code == 401) {
 | 
			
		||||
            console.log("您还没有开通用户在线状态提醒,登录goeasy->我的应用->查看详情->高级功能,自助开通.");
 | 
			
		||||
        } else {
 | 
			
		||||
            console.log(e);
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    //获取聊天室在线用户数
 | 
			
		||||
    this.im.groupOnlineCount(roomId)
 | 
			
		||||
        .then(result => {
 | 
			
		||||
            this.room.onlineUsers.count = result.content.onlineCount;
 | 
			
		||||
        }).catch(e => {
 | 
			
		||||
        console.log(e)
 | 
			
		||||
    })
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//订阅聊天室成员上下线
 | 
			
		||||
IMService.prototype.subscribePresence = function (roomId) {
 | 
			
		||||
    this.im.subscribeGroupPresence([roomId])
 | 
			
		||||
        .then(() => {
 | 
			
		||||
            console.log('成员上下线订阅成功')
 | 
			
		||||
        }).catch(e => {
 | 
			
		||||
        console.log(e)
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//订阅聊天室消息
 | 
			
		||||
IMService.prototype.subscribeRoomMessage = function (room, user) {
 | 
			
		||||
    this.room = new Room(room.id, room.name, user);
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    //监听上下线提醒
 | 
			
		||||
    this.listenerGroupPresence();
 | 
			
		||||
 | 
			
		||||
    //监听新消息
 | 
			
		||||
    this.listenerNewMessage();
 | 
			
		||||
     //订阅用户上下线事件
 | 
			
		||||
     this.subscribePresence(this.room.id);
 | 
			
		||||
     //订阅聊天室消息
 | 
			
		||||
    //  this.subscribeRoomMessage(this.room.id);
 | 
			
		||||
    this.im.subscribeGroup([this.room.id])
 | 
			
		||||
        .then(result => {
 | 
			
		||||
            console.log('消息订阅成功')
 | 
			
		||||
        }).catch(e => {
 | 
			
		||||
        console.log(e,'失败')
 | 
			
		||||
    })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//历史消息
 | 
			
		||||
IMService.prototype.initialChatHistory = function (roomId) {
 | 
			
		||||
    var self = this;
 | 
			
		||||
    this.im.history({
 | 
			
		||||
        groupId: roomId
 | 
			
		||||
    }).then(res => {
 | 
			
		||||
        res.content.forEach(function (message) {
 | 
			
		||||
            self.addNewMessage(message);
 | 
			
		||||
        })
 | 
			
		||||
    }).catch(function (error) {
 | 
			
		||||
        if (error.code == 401) {
 | 
			
		||||
            console.log("您还没有开通历史消息的权限,登录goeasy->我的应用->查看详情->高级功能,自助开通.");
 | 
			
		||||
        } else {
 | 
			
		||||
            console.log(error);
 | 
			
		||||
        }
 | 
			
		||||
    })
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//发送消息
 | 
			
		||||
IMService.prototype.sendMessages = function (roomId, content) {
 | 
			
		||||
	var contentMessage = {
 | 
			
		||||
		text: JSON.stringify(content)
 | 
			
		||||
	};
 | 
			
		||||
	let message = this.im.createTextMessage(contentMessage);
 | 
			
		||||
    this.im.sendGroupMessage(roomId, message)
 | 
			
		||||
        .then(() => {
 | 
			
		||||
            console.log('消息发送成功')
 | 
			
		||||
        }).catch(e => {
 | 
			
		||||
        console.log(e);
 | 
			
		||||
    })
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//退出聊天室
 | 
			
		||||
IMService.prototype.quitRoom = function (roomId) {
 | 
			
		||||
    this.im.disconnect()
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export default IMService;
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user