xbx #24

Merged
theluyuan merged 6 commits from xbx into master 2020-08-08 17:30:06 +08:00
8 changed files with 340 additions and 35 deletions

View File

@ -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>

View File

@ -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>

View File

@ -103,6 +103,7 @@ export default {
// 10
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

View File

@ -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;
}
};

View File

@ -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
})

View File

@ -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:{

View File

@ -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;
}

View File

@ -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;