起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9757|回复: 35

[处理中3] 聊天功能开发

[复制链接]

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
发表于 2016-12-25 23:08:17 | 显示全部楼层 |阅读模式
模仿铛铛的聊天功能,能做到所有信息都靠左边显示,如何实现本机发送的消息靠右边显示。且页面转载后显示的是最后一条信息
1.png

89

主题

627

帖子

4216

积分

论坛元老

Rank: 8Rank: 8

积分
4216
QQ
发表于 2016-12-26 09:15:51 | 显示全部楼层
首先要区分两个不同的东西,肯定需要一个不同的区分点
你要给到一个字段,比如说state,为0是自己发出的消息,1是接收到别人的消息
这样就可以在list上找到每个行的state从而来设置每个行自己的css
时也运也命也,非吾之所能也。
回复 支持 反对

使用道具 举报

发表于 2016-12-26 11:35:45 | 显示全部楼层
且页面转载后显示的是最后一条信息  是指什么??
可以参考铛铛的源码!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-26 12:09:42 | 显示全部楼层
我起初设想的是页面装载时将BaasData数据追加至Data数据,然后用list显示Data里的数据,在Data数据里设置state状态字段,用来区分发送消息,然后再将数据追加至BaasData进行保存,因为对数据库不是很熟悉,所以2个数据之间的数据如何实现,因为字段不一样,而且是反复追加数据,不知道如何实现!请各位大神支招。
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-26 12:17:10 | 显示全部楼层
liangyongfei 发表于 2016-12-26 11:35
且页面转载后显示的是最后一条信息  是指什么??
可以参考铛铛的源码! ...

就是页面自动滚动到最后一个时间发送的消息位置。
我试用的是this.comp('msgScrollView').scrollTo('end');但会提示“Cannot read property 'maxScrollY' of undefined.
然后我在家里和公司同时下载了WEX5,家里的就不会提示,且能滚动到最后一个时间发送的消息。公司的就会提示“Cannot read property 'maxScrollY' of undefined.。
回复 支持 反对

使用道具 举报

发表于 2016-12-26 14:15:40 | 显示全部楼层
rday 发表于 2016-12-26 12:17
就是页面自动滚动到最后一个时间发送的消息位置。
我试用的是this.comp('msgScrollView').scrollTo('end' ...

请问公司的WeX5 和 家里的WeX5 是同一个版本吗?
确认下!

不用一会儿baasData  一会儿data 的,来回转换,只使用一个baasData就够了,如果有多余的字段!
只需要右键,编辑列,添加一个计算列即可!
计算列不会做数据交互的!只是前端计算显示数据使用!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-26 14:38:01 | 显示全部楼层
liangyongfei 发表于 2016-12-26 14:15
请问公司的WeX5 和 家里的WeX5 是同一个版本吗?
确认下!

是同一个版本。
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-26 14:50:36 | 显示全部楼层
liangyongfei 发表于 2016-12-26 14:15
请问公司的WeX5 和 家里的WeX5 是同一个版本吗?
确认下!

我现在用状态列设置0(代表自己)和1(代表其他人),已经实现左右显示,那要如何设置计算列,非本人的列全为1呢?或自己的的为0?
20161226144740.png
回复 支持 反对

使用道具 举报

发表于 2016-12-26 15:16:36 | 显示全部楼层
rday 发表于 2016-12-26 14:50
我现在用状态列设置0(代表自己)和1(代表其他人),已经实现左右显示,那要如何设置计算列,非本人的列 ...

右键,新增列后 ,勾选计算列。就便是他是计算列的!

然后,编辑规则!这个字段的计算规则可以绑定一个js方法!判断如果这条消息的发送人是否是当前人!如果是就return 1,否则return 0

_F8P7XK67074ZOU2_R32DHR.png
~]LC46$ZROP673MFP1EDLHK.png
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

4

主题

32

帖子

74

积分

初级会员

Rank: 2

积分
74
QQ
 楼主| 发表于 2016-12-26 21:58:28 | 显示全部楼层
liangyongfei 发表于 2016-12-26 15:16
右键,新增列后 ,勾选计算列。就便是他是计算列的!

然后,编辑规则!这个字段的计算规则可以绑定一个j ...

请问这个方法该如何写啊!
我是这样处理的,但不行啊。       
       Model.prototype.setState =function(event){
                var na = localStorage.getItem('na');//获取本地存储的当前登录的用户名
                var messageData = this.comp("messageData");
                var name = messageData.getValue("name");
                        if( name == na ){
                        messageData.setValue("state", "0");
                        messageData.saveData();
                }
                else{
                messageData.setValue('state', '1');
                messageData.saveData();
                }
        };
2.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-2 23:02 , Processed in 0.097724 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表