Нет описания

consult.js 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. var pageIndex = 1; // 页数
  2. var allPages = 1; // 总页数
  3. var table = document.body.querySelector(".mui-table-view");//咨询列表容器
  4. var oneedval = document.getElementById("needval");//咨询/需求
  5. var otypeval = document.getElementById("typeval");//咨询类型
  6. var ostateval = document.getElementById("stateval");//咨询状态
  7. var osortval = document.getElementById("sortval");//时间排序
  8. mui.init({
  9. pullRefresh: {
  10. container: '#pullrefresh',
  11. up: {
  12. contentrefresh: '正在加载...',
  13. callback: pullupRefresh
  14. }
  15. }
  16. });
  17. //上拉加载具体业务实现
  18. function pullupRefresh() {
  19. pageIndex = ++pageIndex;
  20. console.log('第'+pageIndex+'页');
  21. console.log('上拉加载更多');
  22. setTimeout(function() {
  23. getaData();
  24. }, 1000);
  25. };
  26. if(mui.os.plus) {
  27. mui.plusReady(function() {
  28. setTimeout(function() {
  29. mui('#pullrefresh').pullRefresh().pulldownLoading();
  30. }, 500);
  31. });
  32. } else {
  33. mui.ready(function() {
  34. mui('#pullrefresh').pullRefresh().pulldownLoading();
  35. });
  36. }
  37. function getaData() {
  38. mui.plusReady(function() {
  39. var userid = plus.storage.getItem('userid');
  40. /*console.log("刷新传参"+oneedval.value+otypeval.value+ostateval.value+osortval.value);
  41. console.log('加载页'+pageIndex)*/
  42. mui.ajax(baseUrl+'/ajax/consult/pq', {
  43. data: {
  44. "professorId":userid, //专家ID
  45. "consultOrNeed":oneedval.value , //接受咨询或咨询别人的状态值,0-全部,1-别人咨询我的,2-我咨询别人的 默认为0
  46. "consultType":otypeval.value, //咨询类型(技术咨询、资源咨询、其他事务)
  47. "status":ostateval.value, //查询状态 0-全部,1-进行中,2-未感谢,3-未评价,4-已完成, 可以不传,默认为0
  48. "timeType":osortval.value, //排序类型 0-按发起时间正序,1-按最后回复时间倒序,2-按完成时间倒序 默认为1
  49. "pageSize":10,
  50. "pageNo":pageIndex //当前页码 默认为1
  51. },
  52. dataType: 'json',
  53. type: 'get',
  54. timeout: 10000,
  55. success: function(data) {
  56. if (data.success) {
  57. console.log("成功");
  58. var datalist = data.data.data;
  59. var total = data.data.total;
  60. var pageSize = data.data.pageSize;
  61. console.log(total)
  62. console.log(pageSize)
  63. var result = '';
  64. allPages = Math.ceil(total / pageSize);/*获取总的分页数*/
  65. console.log(allPages)
  66. if (allPages == 1) { //下拉刷新需要先清空数据
  67. table.innerHTML = '';// 在这里清空可以防止刷新时白屏
  68. }
  69. eachData(userid,datalist);
  70. if(pageIndex < allPages){
  71. mui('#pullrefresh').pullRefresh().endPullupToRefresh(false); /*能上拉*/
  72. }else{
  73. mui('#pullrefresh').pullRefresh().endPullupToRefresh(true);/*不能上拉*/
  74. }
  75. }
  76. },
  77. error: function(xhr, type, errerThrown) {
  78. mui.toast('网络异常,请稍候再试');
  79. plus.nativeUI.closeWaiting();
  80. mui('#pullrefresh').pullRefresh().endPullupToRefresh(true);
  81. }
  82. });
  83. });
  84. };
  85. initdata();
  86. /*第一次加载数据*/
  87. function initdata() {
  88. mui.plusReady(function() {
  89. var userid = plus.storage.getItem('userid');
  90. console.log('初始化传参'+'一:'+oneedval.value+'二'+otypeval.value+'三'+ostateval.value+'四'+osortval.value);
  91. console.log()
  92. plus.nativeUI.showWaiting();
  93. mui.ajax(baseUrl+'/ajax/consult/pq', {
  94. data: {
  95. "professorId":userid, //专家ID
  96. "consultOrNeed":oneedval.value , //接受咨询或咨询别人的状态值,0-全部,1-别人咨询我的,2-我咨询别人的 默认为0
  97. "consultType":otypeval.value, //咨询类型(技术咨询、资源咨询、其他事务)
  98. "status":ostateval.value, //查询状态 0-全部,1-进行中,2-未感谢,3-未评价,4-已完成, 可以不传,默认为0
  99. "timeType":osortval.value, //排序类型 0-按发起时间正序,1-按最后回复时间倒序,2-按完成时间倒序 默认为1
  100. "pageSize":10, //每页记录数 默认为5
  101. "pageNo":1 //当前页码 默认为1
  102. },
  103. dataType: 'json',
  104. type: 'get',
  105. timeout: 10000,
  106. success: function(data) {
  107. if (data.success) {
  108. console.log("成功");
  109. /*plus.webview.currentWebview().show("slide-in-right",150);*/
  110. /*plus.nativeUI.closeWaiting();*/
  111. var datalist = data.data.data;
  112. console.log(datalist.length);
  113. table.innerHTML = '';//清空容器
  114. eachData(userid,datalist);
  115. mui('#pullrefresh').pullRefresh().refresh(true);//重置下拉加载
  116. mui('#pullrefresh').scroll().scrollTo(0,0);//滚动到顶部
  117. plus.nativeUI.closeWaiting();//关闭等待框
  118. }
  119. },
  120. error: function(xhr, type, errerThrown) {
  121. mui.toast('网络异常,请稍候再试');
  122. plus.nativeUI.closeWaiting();
  123. }
  124. });
  125. });
  126. };
  127. //打开子页面
  128. mui(".mui-table-view").on('tap','.itemBtn',function(){
  129. mui.openWindow({
  130. id:'chats.html',
  131. url:'chats.html',
  132. extras:{
  133. 'manFlag':this.getAttribute("manFlag"),
  134. 'consultId':this.getAttribute("consultId"),//自定义扩展参数,可以用来处理页面间传值
  135. 'consultantId':this.getAttribute("consultantId")//咨询者id
  136. }
  137. });
  138. });
  139. /*由聊天页面返回咨询列表,要更新咨询状态:::自定义事件*/
  140. var statuslist = document.querySelectorAll('.status-1');
  141. window.addEventListener('backlist',function(event){
  142. //通过event.detail可获得传递过来的参数内容
  143. var self = plus.webview.currentWebview();
  144. var consultId = event.detail.consultId;
  145. var status = event.detail.status;
  146. console.log(consultId);
  147. mui.each(statuslist,function(index,item){
  148. if(item.getAttribute('consultId') == consultId) {
  149. //consultStatus='+myData["consultStatus"]//我的需求进行中
  150. //myNeedAssessStatus='+myData["assessStatus"]//我的需求,未评价/已完成
  151. if(status == 'myNeedAssessStatus=0'){//未评价
  152. this.innerHTML = '待评价';
  153. }
  154. };
  155. })
  156. // initdata();
  157. });
  158. //点击选择
  159. function checkedFun(i){
  160. mui("#middlePopover"+i).on('tap','.mui-navigate-right',function(e){
  161. allPages = 1;
  162. pageIndex = 1;
  163. plus.nativeUI.showWaiting(); //显示等待框
  164. document.getElementById("headck"+i).innerHTML = this.innerHTML;
  165. var value = this.getAttribute("ck"+i);
  166. document.getElementById("headck"+i).setAttribute('headck',value);
  167. document.querySelector('.mui-backdrop').style.display = 'none';
  168. document.getElementById("middlePopover"+i).style.display = 'none';
  169. //去掉样式类mui-active,要不然会多点击一次
  170. // document.getElementById("middlePopover"+i).classList.remove('mui-active');
  171. oneedval.value = document.getElementById("headck1").getAttribute('headck');
  172. otypeval.value = document.getElementById("headck2").getAttribute('headck');
  173. ostateval.value = document.getElementById("headck3").getAttribute('headck');
  174. osortval.value = document.getElementById("headck4").getAttribute('headck');
  175. initdata();
  176. plus.nativeUI.closeWaiting();//关闭等待框
  177. });
  178. };
  179. checkedFun(1);
  180. checkedFun(2);
  181. checkedFun(3);
  182. checkedFun(4);
  183. function eachData(userid,datalist) {
  184. /*表格填充数据 mui.each是异步的*/
  185. mui.each(datalist, function(index, item) {
  186. var title,
  187. zhicehng,
  188. zhiwei,
  189. address,
  190. lastReply,
  191. status,
  192. lastReplyTime,
  193. lastReplyCon,
  194. unreadCount,
  195. unreadStyle,
  196. proModify,
  197. photoUrl,
  198. consultType;
  199. //咨询类型和状态
  200. if(item['consultantId'] != userid){//收到咨询
  201. title = "回复:关于" + item["consultTitle"] + "的咨询";
  202. if(item["consultStatus"] == 0){
  203. status = "进行中";
  204. }else if(item["consultStatus"] == 1){
  205. status = "已完成";
  206. }
  207. }else if(item['consultantId'] == userid){//我的需求
  208. title = "关于" + item["consultTitle"] + "的咨询";
  209. if(item["consultStatus"] == 0){
  210. status = "进行中";
  211. }else if(item["consultStatus"] == 1){
  212. if(item["assessStatus"] == 0){
  213. status = '待评价';
  214. }else {
  215. status = '已完成';
  216. }
  217. }
  218. }
  219. //专家职称
  220. (!item["professor"]["title"])? zhicehng = '' : zhicehng = item["professor"]["title"];
  221. (!item["professor"]["office"])? zhiwei = '' : zhiwei = item["professor"]["office"] + ',';
  222. (!item["professor"]["address"])? address = '' : address = '|'+ item["professor"]["address"];
  223. (item["professor"]["authentication"] == true)? proModify = 'authicon' : proModify = 'unauthicon';
  224. (item["professor"]["hasHeadImage"] == 0) ? photoUrl = "../images/default-photo.jpg" :photoUrl = "../images/head/"+item["professor"]["id"]+"_m.jpg";
  225. //咨询类型,只取两个字
  226. if(item["consultType"]) {
  227. consultType = item["consultType"].substr(0,2);
  228. }
  229. //最后回复
  230. lastReplyTime = lastReplyFn(userid,item["consultId"]).lastReplyTime;
  231. lastReplyCon = lastReplyFn(userid,item["consultId"]).lastReplyCon;
  232. if(lastReplyCon == undefined){
  233. lastReplyCon = '';
  234. }
  235. if(lastReplyTime == undefined){
  236. lastReplyTime = '';
  237. }
  238. //未读消息
  239. unreadCount = unreadConsultFn(userid,item["consultId"],index).unreadCount;
  240. unreadStyle = unreadConsultFn(userid,item["consultId"],index).style;
  241. var li = document.createElement('li');
  242. li.className = 'mui-table-view-cell mui-media';
  243. li.innerHTML = '<div class="coutopicbox">'
  244. + '<span class="coutheme mui-ellipsis mui-pull-left">'+title+'</span>'
  245. + '<div class="coustatus mui-pull-right"><span class="aimlabel">'+consultType+'</span>'
  246. + '<span class="status-1" consultId="'+item["consultId"]+'">'+status+'</span></div></div>'
  247. + '<a class="proinfor itemBtn" consultId="'+item["consultId"]+'" consultantId="'+item["consultantId"]+'" >'
  248. + '<span class="mui-badge mui-badge-danger" style="'+unreadStyle+'">'+unreadCount+'</span>'
  249. + '<img class="mui-media-object mui-pull-left headimg" src="'+photoUrl+'">'
  250. + '<div class="mui-media-body">'
  251. + '<span class="listtit">'+item["professor"]["name"]+'<em class="mui-icon iconfont icon-vip '+proModify+'"></em><span class="thistime">'+lastReplyTime+'</span></span>'
  252. + '<p class="listtit2"><span>'+zhicehng+'</span><span>'+zhiwei+'</span><span>'+item["professor"]["orgName"]+'</span><span>'+address+'</span></p>'
  253. + '<p class="listtit3">'+lastReplyCon+'</p>'
  254. + '</div></a>';
  255. table.appendChild(li,table.firstChild);
  256. });
  257. };
  258. /*最后回复*/
  259. function lastReplyFn(sendId,consultId){
  260. var lastReplyTimeData,lastReplyTime,lastReplyCon;
  261. mui.ajax(baseUrl + '/ajax/tidings/qaLastRevovery',{
  262. data:{
  263. "consultId":consultId, //咨询ID
  264. "senderId":sendId //登录者ID
  265. },
  266. dataType:'json',//服务器返回json格式数据
  267. type:'get',//HTTP请求类型
  268. timeout:10000,//超时时间设置为10秒;
  269. async:false,
  270. success:function(data){
  271. /*console.log(data);*/
  272. if(data["data"] == null || data["data"] == "" || data["data"] == undefined){
  273. lastReplyTimeData = '';
  274. lastReplyTime = '';
  275. lastReplyCon = '';
  276. }
  277. else{
  278. lastReplyTimeData = data["data"]["createTime"];
  279. lastReplyTime =lastReplyTimeData.substr(0,4) + "-" + lastReplyTimeData.substr(4,2) + "-" + lastReplyTimeData.substr(6,2) + " " + lastReplyTimeData.substr(8,2)+ ":" +lastReplyTimeData.substr(10,2);
  280. lastReplyCon = data["data"]["tidingsContant"];
  281. }
  282. },
  283. error:function(xhr,type,errorThrown){
  284. }
  285. });
  286. return {
  287. "lastReplyTime":lastReplyTime,
  288. "lastReplyCon":lastReplyCon
  289. };
  290. };
  291. /*未读消息*/
  292. function unreadConsultFn (senderId,consultId,i){
  293. var unreadCount,style;
  294. mui.ajax(baseUrl +'/ajax/tidings/qaNotReadTidings',{
  295. data:{
  296. "senderId":senderId, //发送者ID
  297. "consultId":consultId //咨询ID
  298. },
  299. dataType:'json',//服务器返回json格式数据
  300. type:'get',//HTTP请求类型
  301. timeout:10000,//超时时间设置为10秒;
  302. async:false,
  303. success:function(data){
  304. unreadCount = data["data"];
  305. if(unreadCount == 0){
  306. style = "display:none;"
  307. }else{
  308. style = "display:block;"
  309. }
  310. },
  311. error:function(xhr,type,errorThrown){
  312. }
  313. });
  314. return {"unreadCount":unreadCount,
  315. "style":style
  316. }
  317. };