dev_cs_new
杨树林 6 years ago
parent 24b1ca0312
commit d06b30f0ef

@ -5,7 +5,7 @@ import {
} from "antd";
import axios from 'axios';
import moment from 'moment';
import {getImageUrl} from 'educoder';
import {getImageUrl,markdownToHTML} from 'educoder';
import "../css/messagemy.css"
import WriteaprivateletterModal from '../messagemodal/WriteaprivateletterModal';
//私信页面
@ -31,24 +31,32 @@ class Leftdialogue extends Component{
// this.getdata(1);
// }
}
//获取数据地方
// 跳转页面
mydelete=(user_id,id)=>{
this.props.DELETEsetreplyfun(user_id,id);
}
myCome=(e)=>{
window.location.href="/users/"+e.login;
}
render() {
let{page,limit,typeysl,count,isSpin,data,modalsType}=this.state;
return (
<div className="OtherSide clearfix" id="message_content_25148">
<a href="/users/p94531287"><img alt="头像" className="mr10 radius fl" height="48" src={"/images/avatars/User/71519?1564061748" } width="48"/></a>
<a onMouseDown={()=>this.myCome(this.props.objeysl.sender)}>
{
this.props.objeysl&&this.props.objeysl.sender.image_url ?
<img alt="头像" className="mr10 radius fl myimgw48 myimgh48"
src={getImageUrl("/images/" + this.props.objeysl.sender.image_url)} />:""
}
</a>
<div className="fl pr OtherSide-info">
<span className="trangle"></span>
<div className="sms break_word" id="message_content_show_25148">你好</div>
<div className="sms break_word" id="message_content_show_25148" dangerouslySetInnerHTML={{__html: markdownToHTML(this.props.objeysl.content).replace(/▁/g, "▁▁▁")}}></div>
<div className="edu-txt-right mt5">
<a className="color-grey-c" >删除</a>
<a className="color-grey-c" onClick={()=>this.mydelete(this.props.objeysl.sender.id,this.props.objeysl.id)} >删除</a>
</div>
</div>
<span className="fl ml15 color-grey-c lineh-15 mt15">22:21</span>
<span className="fl ml15 color-grey-c lineh-15 mt15">{moment(this.props.objeysl.send_time).hour()}:{moment(this.props.objeysl.send_time).minute()<10?"0"+moment(this.props.objeysl.send_time).minute():moment(this.props.objeysl.send_time).minute()}</span>
</div>
)
}

@ -18,7 +18,7 @@ class MessagChat extends Component{
limit:20,
page:1,
datay:[],
limits:20,
limits:40,
mess:false,
myuserl:[],
pages:1,
@ -31,7 +31,7 @@ class MessagChat extends Component{
componentDidMount(){
this.getdata(1);
let target_ids=this.props.match.params.private;
this.getChatList(1,this.state.limit,target_ids);
this.getChatList(1,this.state.limits,target_ids);
// console.log("MessagChat111111");
console.log(this.props.myysluser);
this.setState({
@ -45,7 +45,15 @@ class MessagChat extends Component{
console.log("MessagChat111111");
console.log(this.props);
console.log(this.props.match.params.userid);
this.scrollToBottom();
}
componentDidUpdate() {
this.scrollToBottom();
}
scrollToBottom() {
this.el.scrollIntoView({ behavior: 'smooth' });
}
// 滑动刷新
contentViewScrolledit=(e)=>{
@ -61,6 +69,19 @@ class MessagChat extends Component{
// limits:ls,
// })
}
//滑动到顶部
console.log("滑动到顶部判断");
console.log(e.currentTarget.clientHeight);
console.log(e.currentTarget.scrollTop);
console.log(e.currentTarget.scrollHeight);
// if(e.currentTarget.scrollHeight+e.currentTarget.scrollTop===e.currentTarget.clientHeight){
// console.log("滑动到顶部判断");
//
// // let ls=newpage*20
// // this.setState({
// // limits:ls,
// // })
// }
};
@ -79,26 +100,29 @@ class MessagChat extends Component{
if(result.data.message!==undefined){
return;
}
var datas=[]
var datay=result.data.messages;
var obj={};
for (var i=0;i<datay.length;i++){
if(i===0){
obj=datay[i];
datas.push(datay[i]);
}else{
obj=datay[i];
if(obj.send_day===datay[i].send_day){
if(result.data!==null){
var datas=[]
var datay=result.data.messages;
var obj={};
for (var i=0;i<datay.length;i++){
if(i===0){
obj=datay[i];
datas.push(datay[i]);
}else{
if( moment(obj.send_day).isSame(datay[i].send_day)){
datay[i].send_day="";
}else {
obj=datay[i];
}
datas.push(datay[i]);
}
}
datas.push(datay[i]);
}
if(result.data!==null){
console.log(result)
}
//颠倒数组
datas=datas.reverse();
this.setState({
messages:datas,
myuserl:result.data.target,
@ -132,25 +156,29 @@ class MessagChat extends Component{
if(result.data.message!==undefined){
return;
}
var datas=[]
var datay=result.data.messages;
var obj={};
for (var i=0;i<datay.length;i++){
if(i===0){
obj=datay[i];
datas.push(datay[i]);
}else{
obj=datay[i];
if(obj.send_day===datay[i].send_day){
datay[i].send_day="";
if(result.data!==null){
var datas=[]
var datay=result.data.messages;
var obj={};
for (var i=0;i<datay.length;i++){
if(i===0){
obj=datay[i];
datas.push(datay[i]);
}else{
if( moment(obj.send_day).isSame(datay[i].send_day)){
datay[i].send_day="";
}else {
obj=datay[i];
}
datas.push(datay[i]);
}
datas.push(datay[i]);
}
}
if(result.data!==null){
console.log(result)
//颠倒数组
datas=datas.reverse();
this.setState({
messages:datas,
myuserl:result.data.target,
@ -282,7 +310,7 @@ class MessagChat extends Component{
this.getChatListtwo(this.state.pages,this.state.mypagey,user.id);
}
//回复
setreplyfun=()=>{
let contents=this.messageRef.current.getValue().trim();
let target_ids=this.props.match.params.private
@ -297,9 +325,50 @@ class MessagChat extends Component{
.catch(function (error) {
console.log(error);
});
};
//删除
DELETEsetreplyfun=(user_id,id)=>{
//user_id不用
console.log("311");
this.setState({
isSpin:true,
});
let url = `/users/${this.props.match.params.userid}/private_messages/${id}.json`;
axios.delete(url)
.then((response) => {
if(response){
if(response.data.status===0){
if(this.state.messages.length>0){
for(var i=0;i<this.state.messages.length;i++){
if(parseInt(this.state.messages[i].id)===id){
this.state.messages.splice(i,1);
}
}
// setTimeout(()=>{
//
// }, 200);
this.setState({
messages:this.state.messages,
isSpin:false,
})
}
}
}
})
.catch(function (error) {
console.log(error);
this.setState({
isSpin:false,
})
});
}
render() {
let{isSpins,datay,myyslusers,mess,limits,myuserl,messages,isSpin}=this.state;
// console.log(mess);
@ -325,7 +394,7 @@ class MessagChat extends Component{
<div className="dialogPanel">
<div >
<Spin size="large" className="myw100baifenbi" spinning={isSpin}>
<div>
<div id="yslysl" ref={el => { this.el = el; }}>
{
messages===undefined?
""
@ -341,12 +410,12 @@ class MessagChat extends Component{
}
{
parseInt(item.sender_id)===parseInt(this.props.match.params.userid)?
<Rightdialogue objeysl={item}>
<Rightdialogue objeysl={item} {...this.state} {...this.props} DELETEsetreplyfun={(user_id,id)=>this.DELETEsetreplyfun(user_id,id)}>
{/*自己的*/}
</Rightdialogue>
:<Leftdialogue objeysl={item}>
:<Leftdialogue objeysl={item} {...this.state} {...this.props} DELETEsetreplyfun={(user_id,id)=>this.DELETEsetreplyfun(user_id,id)}>
{/*他人的*/}

@ -133,7 +133,7 @@ class MessagePrivate extends Component{
:data.map((item,key)=>{
return(
<div className="private-item clearfix df" key={key} onClick={(i)=>this.smyJump(3,item.target)}>
<div className="private-item clearfix df" key={key} onClick={()=>this.smyJump(3,item.target)}>
<a className="fl mr10 private_message_a" onMouseDown={()=>this.myCome(item)}>
<img onMouseDown={()=>this.myCome(item)} src={getImageUrl("/images/"+item.target.image_url)} className="radius myimgw48 myimgh48"/>
</a>

@ -174,11 +174,11 @@ class Messagerouting extends Component{
<ul className="edu-back-white">
<li className={routing ===1?"nav pr active":"nav pr"}>
<a onClick={(value)=>this.SwitchonClick(1)}>消息</a>
{unread_tiding_count>0?<span className="new-info">{unread_message_count}</span>:""}
{parseInt(unread_tiding_count)>0?<span className="new-info">{unread_message_count}</span>:""}
</li>
<li className={routing ===2?"nav pr active":routing ===3?"nav pr active":"nav pr"}>
<a onClick={(value)=>this.SwitchonClick(2)}>私信</a>
{unread_tiding_count>0?<span className="new-info">{unread_tiding_count}</span>:""}
{parseInt(unread_tiding_count)>0?<span className="new-info">{unread_tiding_count}</span>:""}
</li>
</ul>
</div>

@ -5,7 +5,7 @@ import {
} from "antd";
import axios from 'axios';
import moment from 'moment';
import {getImageUrl} from 'educoder';
import {getImageUrl,markdownToHTML} from 'educoder';
import "../css/messagemy.css"
import WriteaprivateletterModal from '../messagemodal/WriteaprivateletterModal';
//私信页面
@ -32,25 +32,32 @@ class Rightdialogue extends Component{
// this.getdata(1);
// }
}
//获取数据地方
// 跳转页面
mydelete=(user_id,id)=>{
this.props.DELETEsetreplyfun(user_id,id);
}
myCome=(e)=>{
window.location.href="/users/"+e.login;
}
render() {
let{page,limit,typeysl,count,isSpin,data,modalsType}=this.state;
return (
<div className="ThisSide clearfix" id="message_content_25137">
<a href="/users/innov"><img alt="头像" className="ml10 radius fr myimgw48 myimgh48" src={"/images/avatars/User/1?1558048024"} /></a>
<a onMouseDown={()=>this.myCome(this.props.objeysl.sender)}>
{this.props.objeysl&&this.props.objeysl.sender.image_url ?
<img alt="头像" className="ml10 radius fr myimgw48 myimgh48"
src={getImageUrl("/images/" + this.props.objeysl.sender.image_url)}/>:""
}
</a>
<div className="fr pr ThisSide-info">
<span className="trangle"></span>
<div className="sms break_word" id="message_content_show_25137">hello</div>
<div className="sms break_word" id="message_content_show_25137" dangerouslySetInnerHTML={{__html: markdownToHTML(this.props.objeysl.content).replace(/▁/g, "▁▁▁")}}></div>
<div className="edu-txt-left mt5">
<a className="color-grey-c"
<a className="color-grey-c" onClick={()=>this.mydelete(this.props.objeysl.sender.id,this.props.objeysl.id)}
>删除</a>
</div>
</div>
<span className="fr mr15 color-grey-c lineh-15 mt15">22:20</span>
<span className="fr mr15 color-grey-c lineh-15 mt15">{moment(this.props.objeysl.send_time).hour()}:{moment(this.props.objeysl.send_time).minute()<10?"0"+moment(this.props.objeysl.send_time).minute():moment(this.props.objeysl.send_time).minute()}</span>
</div>
)
}

Loading…
Cancel
Save