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

@ -5,7 +5,7 @@ import {
} from "antd"; } from "antd";
import axios from 'axios'; import axios from 'axios';
import moment from 'moment'; import moment from 'moment';
import {getImageUrl} from 'educoder'; import {getImageUrl,markdownToHTML} from 'educoder';
import "../css/messagemy.css" import "../css/messagemy.css"
import WriteaprivateletterModal from '../messagemodal/WriteaprivateletterModal'; import WriteaprivateletterModal from '../messagemodal/WriteaprivateletterModal';
//私信页面 //私信页面
@ -31,24 +31,32 @@ class Leftdialogue extends Component{
// this.getdata(1); // this.getdata(1);
// } // }
} }
//获取数据地方 mydelete=(user_id,id)=>{
this.props.DELETEsetreplyfun(user_id,id);
// 跳转页面 }
myCome=(e)=>{
window.location.href="/users/"+e.login;
}
render() { render() {
let{page,limit,typeysl,count,isSpin,data,modalsType}=this.state;
return ( return (
<div className="OtherSide clearfix" id="message_content_25148"> <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"> <div className="fl pr OtherSide-info">
<span className="trangle"></span> <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"> <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>
</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> </div>
) )
} }

@ -18,7 +18,7 @@ class MessagChat extends Component{
limit:20, limit:20,
page:1, page:1,
datay:[], datay:[],
limits:20, limits:40,
mess:false, mess:false,
myuserl:[], myuserl:[],
pages:1, pages:1,
@ -31,7 +31,7 @@ class MessagChat extends Component{
componentDidMount(){ componentDidMount(){
this.getdata(1); this.getdata(1);
let target_ids=this.props.match.params.private; 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("MessagChat111111");
console.log(this.props.myysluser); console.log(this.props.myysluser);
this.setState({ this.setState({
@ -45,7 +45,15 @@ class MessagChat extends Component{
console.log("MessagChat111111"); console.log("MessagChat111111");
console.log(this.props); console.log(this.props);
console.log(this.props.match.params.userid); console.log(this.props.match.params.userid);
this.scrollToBottom();
}
componentDidUpdate() {
this.scrollToBottom();
}
scrollToBottom() {
this.el.scrollIntoView({ behavior: 'smooth' });
} }
// 滑动刷新 // 滑动刷新
contentViewScrolledit=(e)=>{ contentViewScrolledit=(e)=>{
@ -61,6 +69,19 @@ class MessagChat extends Component{
// limits:ls, // 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){ if(result.data.message!==undefined){
return; return;
} }
var datas=[]
var datay=result.data.messages; if(result.data!==null){
var obj={}; var datas=[]
for (var i=0;i<datay.length;i++){ var datay=result.data.messages;
if(i===0){ var obj={};
obj=datay[i]; for (var i=0;i<datay.length;i++){
datas.push(datay[i]); if(i===0){
}else{ obj=datay[i];
obj=datay[i]; datas.push(datay[i]);
if(obj.send_day===datay[i].send_day){ }else{
if( moment(obj.send_day).isSame(datay[i].send_day)){
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({ this.setState({
messages:datas, messages:datas,
myuserl:result.data.target, myuserl:result.data.target,
@ -132,25 +156,29 @@ class MessagChat extends Component{
if(result.data.message!==undefined){ if(result.data.message!==undefined){
return; return;
} }
var datas=[]
var datay=result.data.messages; if(result.data!==null){
var obj={}; var datas=[]
for (var i=0;i<datay.length;i++){ var datay=result.data.messages;
if(i===0){ var obj={};
obj=datay[i]; for (var i=0;i<datay.length;i++){
datas.push(datay[i]); if(i===0){
}else{ obj=datay[i];
obj=datay[i]; datas.push(datay[i]);
if(obj.send_day===datay[i].send_day){ }else{
datay[i].send_day="";
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]);
} }
//颠倒数组
} datas=datas.reverse();
if(result.data!==null){
console.log(result)
this.setState({ this.setState({
messages:datas, messages:datas,
myuserl:result.data.target, myuserl:result.data.target,
@ -282,7 +310,7 @@ class MessagChat extends Component{
this.getChatListtwo(this.state.pages,this.state.mypagey,user.id); this.getChatListtwo(this.state.pages,this.state.mypagey,user.id);
} }
//回复
setreplyfun=()=>{ setreplyfun=()=>{
let contents=this.messageRef.current.getValue().trim(); let contents=this.messageRef.current.getValue().trim();
let target_ids=this.props.match.params.private let target_ids=this.props.match.params.private
@ -297,9 +325,50 @@ class MessagChat extends Component{
.catch(function (error) { .catch(function (error) {
console.log(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() { render() {
let{isSpins,datay,myyslusers,mess,limits,myuserl,messages,isSpin}=this.state; let{isSpins,datay,myyslusers,mess,limits,myuserl,messages,isSpin}=this.state;
// console.log(mess); // console.log(mess);
@ -325,7 +394,7 @@ class MessagChat extends Component{
<div className="dialogPanel"> <div className="dialogPanel">
<div > <div >
<Spin size="large" className="myw100baifenbi" spinning={isSpin}> <Spin size="large" className="myw100baifenbi" spinning={isSpin}>
<div> <div id="yslysl" ref={el => { this.el = el; }}>
{ {
messages===undefined? messages===undefined?
"" ""
@ -341,12 +410,12 @@ class MessagChat extends Component{
} }
{ {
parseInt(item.sender_id)===parseInt(this.props.match.params.userid)? 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> </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)=>{ :data.map((item,key)=>{
return( 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)}> <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"/> <img onMouseDown={()=>this.myCome(item)} src={getImageUrl("/images/"+item.target.image_url)} className="radius myimgw48 myimgh48"/>
</a> </a>

@ -174,11 +174,11 @@ class Messagerouting extends Component{
<ul className="edu-back-white"> <ul className="edu-back-white">
<li className={routing ===1?"nav pr active":"nav pr"}> <li className={routing ===1?"nav pr active":"nav pr"}>
<a onClick={(value)=>this.SwitchonClick(1)}>消息</a> <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>
<li className={routing ===2?"nav pr active":routing ===3?"nav pr active":"nav pr"}> <li className={routing ===2?"nav pr active":routing ===3?"nav pr active":"nav pr"}>
<a onClick={(value)=>this.SwitchonClick(2)}>私信</a> <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> </li>
</ul> </ul>
</div> </div>

@ -5,7 +5,7 @@ import {
} from "antd"; } from "antd";
import axios from 'axios'; import axios from 'axios';
import moment from 'moment'; import moment from 'moment';
import {getImageUrl} from 'educoder'; import {getImageUrl,markdownToHTML} from 'educoder';
import "../css/messagemy.css" import "../css/messagemy.css"
import WriteaprivateletterModal from '../messagemodal/WriteaprivateletterModal'; import WriteaprivateletterModal from '../messagemodal/WriteaprivateletterModal';
//私信页面 //私信页面
@ -32,25 +32,32 @@ class Rightdialogue extends Component{
// this.getdata(1); // this.getdata(1);
// } // }
} }
//获取数据地方 mydelete=(user_id,id)=>{
this.props.DELETEsetreplyfun(user_id,id);
// 跳转页面 }
myCome=(e)=>{
window.location.href="/users/"+e.login;
}
render() { render() {
let{page,limit,typeysl,count,isSpin,data,modalsType}=this.state;
return ( return (
<div className="ThisSide clearfix" id="message_content_25137"> <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"> <div className="fr pr ThisSide-info">
<span className="trangle"></span> <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"> <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> >删除</a>
</div> </div>
</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> </div>
) )
} }

Loading…
Cancel
Save