No Description

consult.js 22KB

    /*是否登录,要显示的,mui-content*/ var content1 = document.getElementById('logined'); var content2 = document.getElementById('unlogin'); var pageIndex = 1; // 页数 var allPages = 1; // 总页数 var table = document.body.querySelector("#table"); //咨询列表容器 var oneedval = document.getElementById("needval"); //咨询/需求 var otypeval = document.getElementById("typeval"); //咨询类型 var ostateval = document.getElementById("stateval"); //咨询状态 var osortval = document.getElementById("sortval"); //时间排序 var ozixunpullrefresh = document.getElementById("zixunpullrefresh"); //刷新容器,控制安卓和iOS容器到header距离不一样 var oFlag1; //判断是否登录,显示数据或登录页面 function islogin() { mui.plusReady(function() { var userid = plus.storage.getItem('userid'); console.log('点击咨询,判断是否登录id==' + userid); if(userid == null || userid == 'null') { content1.style.display = 'none'; } else { content2.style.display = 'none'; getOnePage(); } if(plus.nativeUI.showWaiting()) { plus.nativeUI.closeWaiting(); //关闭等待框 } }) } islogin(); /*登陆*/ window.addEventListener('logined', function(event) { var userId = event.detail.id; content1.style.display = 'block'; content2.style.display = 'none'; console.log('点击登录ID==' + userId) table.innerHTML = ''; initData(); userInformation(); }); /*咨询确认页面自定义事件*/ window.addEventListener('consid', function(event) { initData(); }); mui.plusReady(function() { var self = plus.webview.currentWebview(); console.log('当前咨询列表页id===' + self.id); }) /*退出*/ window.addEventListener('exited', function(event) { console.log('退出') var userId = event.detail.id; console.log('exited==' + userId) console.log(content2) content1.style.display = 'none'; content2.style.display = 'block'; document.getElementById('unlogin').style.display = 'block'; }); function userInformation() { var userId = plus.storage.getItem('userid'); mui.ajax(baseUrl + "/ajax/professor/editBaseInfo/" + userId, { dataType: 'json', //数据格式类型 type: 'GET', //http请求类型 timeout: 10000, //超时设置 async: false, success: function(data) { var $info = data.data || {}; oFlag = $info.authentication; oFlag1 = $info.authType if(data.success && data.data) { //alert(oFlag1) if($info.authType==0) { /*document.getElementById("consuitSta").style.display="block"; document.getElementById("consuitSta2").style.display="none";*/ document.getElementById("newszixun").innerHTML="待回复"; document.getElementById("newsok").innerHTML="被谢绝"; document.getElementById("newwc").innerHTML="待评价"; document.getElementById("newwc").setAttribute("ck3","5") }else{ /*document.getElementById("consuitSta").style.display="none"; document.getElementById("consuitSta2").style.display="block";*/ if(oneedval.value==2){ document.getElementById("newszixun").innerHTML="待回复"; document.getElementById("newsok").innerHTML="被谢绝"; document.getElementById("newwc").innerHTML="待评价"; document.getElementById("newwc").setAttribute("ck3","5") }else{ document.getElementById("newszixun").innerHTML="新咨询"; document.getElementById("newsok").innerHTML="已谢绝"; document.getElementById("newwc").innerHTML="已完成"; document.getElementById("newwc").setAttribute("ck3","4") /*mui("#removedatdt a.set").each(function () { alert(this.innerHTML); });*/ } } } }, error: function() { plus.nativeUI.toast("服务器链接超时", toastStyle); return; } }); } //显示登录,登陆或者注册 mui.plusReady(function() { var regBtn = document.getElementById("regBtn"); var logBtn = document.getElementById("logBtn"); userInformation() // 注册 regBtn.addEventListener('tap', function() { mui.openWindow({ url: '../html/reg.html', id: '../html/reg.html', show: { aniShow: "slide-in-right" } }); }); //登陆 logBtn.addEventListener('tap', function() { mui.openWindow({ url: '../html/login.html', id: '../html/login.html', show: { aniShow: "slide-in-right" } }); }); }); var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 if(isAndroid) { //父子页面,下拉刷新 mui.init({ pullRefresh: { container: '#zixunpullrefresh', down: { height: 190, callback: pulldownRefresh } } }); } if(isiOS) { //父子页面,下拉刷新 mui.init({ pullRefresh: { container: '#zixunpullrefresh', down: { //height:190, callback: pulldownRefresh } } }); } /* 父子页面,下拉刷新函数*/ function pulldownRefresh() { pageIndex = 1; console.log('下拉刷新'); setTimeout(function() { getOnePage(); }, 1000); }; //if(mui.os.plus) { // mui.plusReady(function() { // setTimeout(function() { // mui('#zixunpullrefresh').pullRefresh().pulldownLoading(); // }, 500); // }); //} else { // mui.ready(function() { // mui('#zixunpullrefresh').pullRefresh().pulldownLoading(); // }); //} //上拉加载 /*function pullupRefresh() { pageIndex = ++pageIndex; setTimeout(function() { getaData(); }, 1000); } */ //初始化数据 function initData() { mui.plusReady(function() { userInformation(); var userid = plus.storage.getItem('userid'); plus.nativeUI.showWaiting(); //显示原生等待框 /*if(oFlag1!=1){ oneedval.value = "2"; }*/ mui.ajax(baseUrl + '/ajax/consult/pq', { data: { "professorId": userid, "consultOrNeed": oneedval.value, "consultType": otypeval.value, "status": ostateval.value, "timeType": osortval.value, "pageSize": 1000, "pageNo": 1 }, dataType: 'json', type: 'get', timeout: 10000, async:false, success: function(data) { console.log(JSON.stringify(data)) if(data.success) { table.innerHTML = ''; //下拉刷新,清空数据 var datalist = data.data.data; eachData(userid, datalist); // mui('#zixunpullrefresh').pullRefresh().refresh(true);//重置下拉加载 plus.nativeUI.closeWaiting(); //关闭原生等待框 mui('#zixunpullrefresh').pullRefresh().scrollTo(0, 0, 100) //回到顶部 //滚动条样式 var scrollEle = document.body.querySelectorAll('.mui-scrollbar-vertical'); console.log('滚动条个数==' + scrollEle.length) if(scrollEle.length > 1) { for(var i = 0; i < scrollEle.length; i++) { scrollEle[i].style.display = 'none'; scrollEle[0].style.display = 'block'; console.log(scrollEle[i].classList); } } } }, error: function(xhr, type, errorThrown) { mui.toast('网络异常,请稍候再试'); plus.nativeUI.closeWaiting(); //关闭原生等待框 } }); }); }; //加载第一页数据 function getOnePage() { mui.plusReady(function() { //document.getElementById("needs").style.display = "block"; userInformation(); var userid = plus.storage.getItem('userid'); var pageIndex = 1; /*if(oFlag1!=1){ oneedval.value = "2"; }*/ mui.ajax(baseUrl + '/ajax/consult/pq', { data: { "professorId": userid, "consultOrNeed": oneedval.value, "consultType": otypeval.value, "status": ostateval.value, "timeType": osortval.value, "pageSize": 1000, "pageNo": pageIndex }, dataType: 'json', type: 'get', timeout: 10000, async: false, success: function(data) { if(data.success) { if(pageIndex == 1) { table.innerHTML = ''; //下拉刷新,清空数据 var datalist = data.data.data; eachData(userid, datalist); var scrollEle = document.body.querySelectorAll('.mui-scrollbar-vertical'); console.log('滚动条个数==' + scrollEle.length) if(scrollEle.length > 1) { for(var i = 0; i < scrollEle.length; i++) { scrollEle[i].style.display = 'none'; scrollEle[0].style.display = 'block'; console.log(scrollEle[i].classList); } } mui('#zixunpullrefresh').pullRefresh().refresh(true); //重置下拉加载 mui('#zixunpullrefresh').pullRefresh().endPulldownToRefresh(); } }; }, error: function(xhr, type, errorThrown) { mui.toast('网络异常,请稍候再试'); } }); }); } //父子页面的上拉加载ajax function getaData() { mui.plusReady(function() { var userid = plus.storage.getItem('userid'); /*if(oFlag1!=1){ oneedval.value = "2"; }*/ mui.ajax(baseUrl + '/ajax/consult/pq', { data: { "professorId": userid, "consultOrNeed": oneedval.value, "consultType": otypeval.value, "status": ostateval.value, "timeType": osortval.value, "pageSize": 1000, "pageNo": pageIndex }, async: false, dataType: 'json', type: 'get', timeout: 10000, success: function(data) { if(data.success) { var datalist = data.data.data; var total = data.data.total; var pageSize = data.data.pageSize; allPages = Math.ceil(total / pageSize); /*获取总的分页数*/ if(allPages == 1) { //下拉刷新需要先清空数据 table.innerHTML = ''; // 在这里清空可以防止刷新时白屏 } console.log('第' + pageIndex + '页'); if(pageIndex == 1) { table.innerHTML = ''; } eachData(userid, datalist); if(pageIndex < allPages) { mui('#zixunpullrefresh').pullRefresh().endPullupToRefresh(false); /*能上拉*/ } else { mui('#zixunpullrefresh').pullRefresh().endPullupToRefresh(true); /*不能上拉*/ } } }, error: function(xhr, type, errerThrown) { mui.toast('网络异常,请稍候再试'); mui('#zixunpullrefresh').pullRefresh().endPullupToRefresh(true); } }); }); }; //判断对方是否有聊天内容,加回复:。。。 function isChat(consultId, userid) { var length = 0; mui.ajax(baseUrl + '/ajax/tidings/qacon', { data: { "consultId": consultId }, async: false, dataType: 'json', //服务器返回json格式数据 type: 'get', //HTTP请求类型 timeout: 10000, //超时时间设置为10秒; success: function(data) { var myData = data.data; for(var i = 0; i < myData.length; i++) { if(myData[i]['professor']['id'] != userid) { length++; } } }, error: function(xhr, type, errorThrown) { //根据消息id查询消息失败 plus.nativeUI.toast("服务器链接超时", toastStyle); } }); return length; } //更新读取状态 function setReadState(consultId) { mui.ajax(baseUrl + '/ajax/consult/readStatus', { data: { "consultId": consultId }, //咨询ID dataType: 'json', //服务器返回json格式数据 type: 'post', //HTTP请求类型 timeout: 10000, //超时时间设置为10秒; success: function(data) { }, error: function(xhr, type, errorThrown) { } }); } //打开子页面 mui(".mui-table-view").on('tap', '.itemBtn', function() { var o_this = this; var consultStatusval = o_this.getAttribute("consultStatus"); console.log(consultStatusval) mui.plusReady(function() { var nwaiting = plus.nativeUI.showWaiting(); //显示原生等待框 //更新读取状态 setReadState(o_this.getAttribute("consultId")); if(oneedval.value==1){ if(consultStatusval==2){ webviewShow = plus.webview.create("../html/consultSure.html", 'consultSure.html', {}, { 'consultId': o_this.getAttribute("consultId"), 'consultantId': o_this.getAttribute("consultantId"), }); }else{ webviewShow = plus.webview.create("../html/chats.html", 'chats.html', {}, { 'consultId': o_this.getAttribute("consultId"), 'consultantId': o_this.getAttribute("consultantId"), 'readState': 1 }); } }else{ webviewShow = plus.webview.create("../html/chats.html", 'chats.html', {}, { 'consultId': o_this.getAttribute("consultId"), 'consultantId': o_this.getAttribute("consultantId") }); } //当聊天页面加载完再打开 webviewShow.addEventListener("loaded", function() { }, false); }); }); /*由聊天页面返回咨询列表,要更新咨询状态,和更新未读信息:::自定义事件*/ window.addEventListener('backlist', function(event) { var self = plus.webview.currentWebview(); var consultId = event.detail.consultId; var status = event.detail.status; //由聊天页返回咨询,改变咨询状态,和咨询状态样式 mui('.status').each(function(index, item) { if(this.getAttribute('consultId') == consultId) { console.log(status) if(status == 'myNeedAssessStatus=0') { this.classList.remove('status-1'); this.classList.add('status-2'); this.innerHTML = '待评价'; } else if(status == 'myNeedAssessStatus=1') { this.classList.remove('status-1'); this.classList.add('status-3'); this.innerHTML = '已完成'; } }; }); //由聊天页返回咨询页,改变未读状态 mui('.readstate').each(function(index, item) { if(this.getAttribute('class').indexOf('displayBlock') != -1) { //包含displayBlock console.log(this.getAttribute('consultId')); if(this.getAttribute('consultId') == consultId) { this.classList.remove('displayBlock'); this.classList.add('displayNone'); console.log(this.classList); } } }); }); function eachData(userid, datalist) { /*表格填充数据 mui.each是异步的*/ mui.each(datalist, function(index, item) { var title, lastReply, status, statusStyle, lastReplyTime, lastReplyCon, unreadCount, unreadStyle, proModify, photoUrl, consultType, chatlength; var modifyaddEle = ''; //添加不同认证 //过滤professor为空 if(item["professor"]) { chatlength = isChat(item['consultId'], userid); //判断对方是否有发出消息 if(chatlength == 0) { title = item["consultTitle"]; } else { title = "回复:" + item["consultTitle"]; } // console.log(title) //咨询类型和状态 //alert(item["professorId"] ); //alert(item["consultStatus"] ); if(item["consultStatus"] == 0) { //进行中,我的需求和收到咨询 status = "进行中"; statusStyle = 'status-1'; }else if(item["consultStatus"] == 2){ if(oneedval.value==2){ status = "待回复"; statusStyle = 'status-4'; } if(oneedval.value==1){ status = "新咨询"; statusStyle = 'status-2'; } }else if(item["consultStatus"] == 3){ if(oneedval.value==2){ status = "被谢绝"; statusStyle = 'status-5'; } if(oneedval.value==1){ status = "已谢绝"; statusStyle = 'status-5'; } }else if(item["consultStatus"] == 1) { if(item['consultantId'] != userid) { //收到咨询 status = "已完成"; statusStyle = 'status-3'; } else { //我的需求 if(item["assessStatus"] == 0) { status = '待评价'; statusStyle = 'status-2'; } else { status = '已完成'; statusStyle = 'status-3'; } } } //认证 var oSty = autho(item["professor"].authType,item["professor"].orgAuth,item["professor"].authStatus); proModify = oSty.sty; (item["professor"]["hasHeadImage"] == 0) ? photoUrl = "../images/default-photo.jpg": photoUrl = baseUrl + "/images/head/" + item["professor"].id + "_l.jpg"; //咨询类型,只取两个字 if(item["consultType"]) { consultType = item["consultType"].substr(0, 2); } //最后回复 lastReplyTime = lastReplyFn(userid, item["consultId"]).lastReplyTime; lastReplyCon = lastReplyFn(userid, item["consultId"]).lastReplyCon; if(lastReplyCon == undefined) { lastReplyCon = ''; } if(lastReplyTime == undefined) { lastReplyTime = ''; } //未读消息 unreadCount = unreadConsultFn(userid, item["consultId"], index).unreadCount; unreadStyle = unreadConsultFn(userid, item["consultId"], index).style; var li = document.createElement('li'); li.className = 'mui-table-view-cell mui-media'; var str = ''; str += '<div class="coutopicbox"><span class="coutheme mui-ellipsis mui-pull-left">' + title + '</span>' + '<div class="coustatus mui-pull-right">' +//<span class="aimlabel">' + consultType + '</span> '<span class="' + statusStyle + ' status" consultId="' + item["consultId"] + '">' + status + '</span></div></div>' + '<a class="proinfor itemBtn" consultId="' + item["consultId"] + '" consultantId="' + item["consultantId"] + '" consultStatus="'+item["consultStatus"]+'" >' + '<span class="mui-badge mui-badge-danger readstate ' + unreadStyle + '" consultId="' + item["consultId"] + '">' + unreadCount + '</span>' + '<img class="mui-media-object mui-pull-left headimg headRadius" src="' + photoUrl + '">' + '<div class="mui-media-body">' + '<p class="listtit">' + item["professor"]["name"] + '<em id="nameli" style="top:2px" class="authicon ' + proModify + '">' + modifyaddEle + '</em><span class="thistime">' + lastReplyTime + '</span></p>'; str += '<p class="listtit2">'; if(item["professor"]["title"]) { str += '<span>' + item["professor"]["title"] + '</span>, '; }; if(item["professor"]["office"]) { if(item["professor"]["orgName"]) { str += '<span>' + item["professor"]["office"] + '</span>, '; } else { str += '<span>' + item["professor"]["office"] + '</span>'; } }; if(item["professor"]["orgName"]) { str += '<span>' + item["professor"]["orgName"] + '</span>'; }; if(item["professor"]["address"]) { str += '<span> | ' + item["professor"]["address"] + '</span>'; }; str += '</p><p class="listtit3 mui-ellipsis">' + lastReplyCon + '</p></div></a>'; li.innerHTML = str; table.appendChild(li, table.firstChild); } }); }; /*最后回复*/ function lastReplyFn(sendId, consultId) { var lastReplyTimeData, lastReplyTime, lastReplyCon; mui.ajax(baseUrl + '/ajax/tidings/qaLastRevovery', { data: { "consultId": consultId, //咨询ID "senderId": sendId //登录者ID }, dataType: 'json', type: 'get', timeout: 10000, async: false, success: function(data) { if(data["data"] == null || data["data"] == "" || data["data"] == undefined) { lastReplyTimeData = ''; lastReplyTime = ''; lastReplyCon = ''; } else { lastReplyTimeData = data["data"]["createTime"]; lastReplyTime = lastReplyTimeData.substr(0, 4) + "-" + lastReplyTimeData.substr(4, 2) + "-" + lastReplyTimeData.substr(6, 2) + " " + lastReplyTimeData.substr(8, 2) + ":" + lastReplyTimeData.substr(10, 2); lastReplyCon = data["data"]["tidingsContant"]; } }, error: function(xhr, type, errorThrown) { } }); return { "lastReplyTime": lastReplyTime, "lastReplyCon": lastReplyCon }; }; /*未读消息*/ function unreadConsultFn(senderId, consultId, i) { var unreadCount, style; mui.ajax(baseUrl + '/ajax/tidings/qaNotReadTidings', { data: { "senderId": senderId, //发送者ID "consultId": consultId //咨询ID }, dataType: 'json', //服务器返回json格式数据 type: 'get', //HTTP请求类型 timeout: 10000, //超时时间设置为10秒; async: false, success: function(data) { unreadCount = data["data"]; if(unreadCount == 0) { style = 'displayNone'; } else { style = 'displayBlock'; } }, error: function(xhr, type, errorThrown) { } }); return { "unreadCount": unreadCount, "style": style } }; //点击选择 function checkedFun(i) { mui.plusReady(function() { mui("#middlePopover" + i).on('tap', '.mui-navigate-right', function(e) { allPages = 1; pageIndex = 1; if(i==1){ var value = this.getAttribute("ck1"); //alert(value) if(value==2){ document.getElementById("headck1").innerHTML = this.innerHTML; document.getElementById("headck1").setAttribute('headck', value); this.innerHTML="收到咨询"; this.setAttribute("ck1","1"); oneedval.value = '2'; }else{ document.getElementById("headck1").innerHTML = this.innerHTML; document.getElementById("headck1").setAttribute('headck', value); this.innerHTML="我的需求"; this.setAttribute("ck1","2"); oneedval.value = '1'; } otypeval.value = '0'; ostateval.value = '0'; osortval.value = '1'; /*document.getElementById("headck2").innerHTML = "咨询类型";*/ document.getElementById("headck3").innerHTML = "咨询状态"; document.getElementById("headck4").innerHTML = "按最后回复排序"; var aSpan=document.getElementById("logined").querySelectorAll("li"); for(var m = 0 ; m < aSpan.length;m++){ aSpan[m].classList.remove('mui-selected'); } }else{ document.getElementById("headck" + i).innerHTML = this.innerHTML; var value = this.getAttribute("ck" + i); document.getElementById("headck" + i).setAttribute('headck', value); //咨询类型传值不同,传""(空),技术咨询、资源咨询、其他事务 //otypeval.value = document.getElementById("headck2").getAttribute('headck'); if(otypeval.value == 0) { otypeval.value = ''; } else { //otypeval.value = document.getElementById("headck2").innerHTML; } if(oFlag1==1){ oneedval.value = document.getElementById("headck1").getAttribute('headck'); } ostateval.value = document.getElementById("headck3").getAttribute('headck'); osortval.value = document.getElementById("headck4").getAttribute('headck'); } /*if(i==3){ //document.querySelector("#removedatdt a").classList.remove("set"); var aimlist = document.querySelector('.aimclass').querySelectorAll("a"); aimlist.classList.remove("set") this.classList.add("set"); }*/ plus.nativeUI.showWaiting(); //显示等待框 document.querySelector('.mui-backdrop').style.display = 'none'; document.getElementById("middlePopover" + i).style.display = 'none'; //去掉样式类mui-active,要不然会多点击一次 document.getElementById("middlePopover" + i).classList.remove('mui-active'); initData(); // mui('#zixunpullrefresh').scroll().scrollTo(0,0,100);//100毫秒滚动到顶 plus.nativeUI.closeWaiting(); //关闭等待框 }); }); }; checkedFun(1); checkedFun(2); checkedFun(3); checkedFun(4);