communicate.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. (function($, doc) {
  2. $.init({
  3. swipeBack: false,
  4. pullRefresh: {
  5. container: '#pullrefresh',
  6. up: {
  7. contentrefresh: "正在加载...", //可选,正在刷新状态时,下拉刷新控件上显示的标题内容
  8. callback: pullupRefresh
  9. }
  10. },
  11. gestureConfig: {
  12. tap: true, //默认为true
  13. doubletap: true, //默认为false
  14. longtap: true, //默认为false
  15. swipe: true, //默认为true
  16. drag: true, //默认为true
  17. hold: false, //默认为false,不监听
  18. release: false //默认为false,不监听
  19. }
  20. });
  21. /*上拉加载具体业务实现 */
  22. var count = 1
  23. var countItem = false;
  24. function pullupRefresh() {
  25. if(!countItem) {
  26. var detailPage = plus.webview.getWebviewById('communicate.html');
  27. mui.fire(detailPage, 'sendMsg', {
  28. count: count,
  29. });
  30. count++;
  31. }
  32. this.endPullupToRefresh(countItem)
  33. };
  34. $.plusReady(function() {
  35. var code;
  36. var Input;
  37. var str = plus.storage.getItem('user');
  38. var user = JSON.parse(str);
  39. var token = user.Data.Token;
  40. var exist = user.Data.CompanyCode;
  41. $('#img')[0].innerHTML = '<img src="http://www.bosshand.cn/' + user.Data.Picture + '"/>';
  42. $('.mui-scroll-wrapper').scroll({
  43. deceleration: 0.0005, //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
  44. scrollX: false, //是否横向滚动
  45. });
  46. $(doc.body).on('tap', '.li', function() {
  47. for(var i = 0; i < $('.li').length; i++) {
  48. $('.li')[i].className = 'li'
  49. }
  50. mui(this)[0].className = 'li li active-li';
  51. });
  52. //跳转分享动态
  53. $('body').on('tap', '.share', function() {
  54. $.openWindow({
  55. url: 'tpl/communicate/share.html',
  56. waiting: {
  57. autoShow: false, //自动显示等待框,默认为true
  58. },
  59. show: {
  60. autoShow: true, //页面loaded事件发生后自动显示,默认为true
  61. duration: 300, //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;
  62. aniShow: 'slide-in-bottom',
  63. }
  64. });
  65. });
  66. //收起
  67. $(doc.body).on('tap', '.aa', function() {
  68. if($(this)[0].innerHTML == '查看全文↓') {
  69. $(this)[0].parentNode.childNodes[1].style.display = "block";
  70. $(this)[0].innerHTML = '收起↑'
  71. } else {
  72. $(this)[0].parentNode.childNodes[1].style.display = "none";
  73. $(this)[0].innerHTML = '查看全文↓'
  74. }
  75. });
  76. //获取列表
  77. window.addEventListener('reload', function() {
  78. GetdataList(0, 10);
  79. });
  80. GetdataList(0, 10);
  81. window.addEventListener('sendMsg', function(event) {
  82. setTimeout(function() {
  83. GetdataList(event.detail.count, 3);
  84. }, 3000)
  85. });
  86. /**
  87. * 获取列表
  88. */
  89. function GetdataList(pageNum, pageSize) {
  90. var postData = {
  91. "pageIndex": pageNum + 1,
  92. "pageSize": pageSize,
  93. "exist": exist,
  94. };
  95. $.ajax("http://www.bosshand.cn/api/Customer/GetBusinessPageList", {
  96. data: postData,
  97. dataType: 'json',
  98. type: "post",
  99. timeout: 10000, //超时时间设置为10秒;
  100. headers: {
  101. 'Content-Type': 'application/x-www-form-urlencoded',
  102. authorization: token
  103. },
  104. success: function(resp) {
  105. var html = '';
  106. // var data = data.Data.list;
  107. if(resp.Data.list != null) {
  108. var resilt = resp.Data.list;
  109. for(var i = 0; i < resilt.length; i++) {
  110. //头部
  111. html += '<div class="com-con mui-content-padded com-con-cz">'
  112. html += '<div class="com-con-nav">'
  113. html += '<div class="com-con-img">'
  114. html += '<img src="http://www.bosshand.cn/' + resilt[i].UserPicture + '"/>'
  115. html += '</div>'
  116. html += '<div class="com-con-navs">'
  117. html += '<div>'
  118. html += '<span>' + resilt[i].CreateUserName + '</span>'
  119. html += '<span>' + resilt[i].CompanyName + '</span>'
  120. html += '</div>'
  121. html += '<div> ' + getLocalDate(resilt[i].CreateTime) + ' </div>'
  122. // html += '<div class="com-con-btn" id="' + resilt[i].CompanyCode + '">'
  123. // if(resilt[i].IsCompany == false) {
  124. // html += '<button>+关注</button>'
  125. // } else {
  126. // html += '<button class="mui-icon-extra icon-sangedian"></button>'
  127. // }
  128. // html += '</div>'
  129. html += '</div>'
  130. html += '</div>';
  131. //内容区
  132. html += '<div class="com-con-con">'
  133. if(resilt[i].Content != null) {
  134. if(resilt[i].Content.length > 70) {
  135. html += '<div class="com-con-tent">' + resilt[i].Content.substring(0, 69) + '<span class="art">' + resilt[i].Content.substring(69, resilt[i].Content.length) + '</span><a class="aa">查看全文↓</a></div>'
  136. } else {
  137. html += '<div class="com-con-tent">' + resilt[i].Content + '</div>'
  138. }
  139. }
  140. html += '<div class="com-con-tent-img">'
  141. if(resilt[i].Atlas != null) {
  142. if(resilt[i].Atlas.indexOf(",") > 0) {
  143. var imgList = resilt[i].Atlas.split(',');
  144. for(var j = 0; j < imgList.length; j++) {
  145. html += '<img id="' + imgList[j] + '" class="imgs" src="http://www.bosshand.cn/' + imgList[j] + '" />';
  146. }
  147. } else {
  148. if(resilt[i].Atlas != "../../img/default.png") {
  149. html += '<img id="' + resilt[i].Atlas + '" class="imgs" src="http://www.bosshand.cn/' + resilt[i].Atlas + '" />';
  150. }
  151. }
  152. }
  153. html += '</div>'
  154. html += '</div>'
  155. html += '<div class="com-con-zan">'
  156. html += '<span class="mui-icon-extra icon-zan"></span>'
  157. var nameList = "";
  158. if(resilt[i].list_LikesNum != null) {
  159. for(var q = 0; q < resilt[i].list_LikesNum.length; q++) {
  160. nameList += resilt[i].list_LikesNum[q].UserName + " ";
  161. html += '<span>' + resilt[i].list_LikesNum[q].UserName + ' ' + '</span>'
  162. }
  163. }
  164. html += '</div>'
  165. html += '<div class="com-con-comments">'
  166. html += '<div class="com-con-comment">';
  167. //判断是否包含某个字符
  168. var sear = new RegExp(user.Data.Name);
  169. if(sear.test(nameList)) {
  170. html += '<div class="like likes" id="' + resilt[i].Code + '">'
  171. html += '<span class="mui-icon-extra mui-icon-extra-heart"></span>'
  172. html += '<span>已赞</span>'
  173. html += '</div>'
  174. } else {
  175. if(user.Data.Name == nameList) {
  176. html += '<div class="like likes" id="' + resilt[i].Code + '">'
  177. html += '<span class="mui-icon-extra mui-icon-extra-heart"></span>'
  178. html += '<span>已赞</span>'
  179. html += '</div>'
  180. } else {
  181. html += '<div class="like" id="' + resilt[i].Code + '">'
  182. html += '<span class="mui-icon-extra mui-icon-extra-heart"></span>'
  183. html += '<span>点赞</span>'
  184. html += '</div>'
  185. }
  186. }
  187. html += '<div class="value">'
  188. html += '<span class="mui-icon mui-icon-chatbubble"></span>'
  189. html += '<span>评论</span>'
  190. html += '<textarea id="' + resilt[i].Code + '" style="display:none;"></textarea>'
  191. html += '</div>'
  192. html += '<div class="shares">'
  193. html += '<span class="mui-icon mui-icon-redo"></span>'
  194. html += '<span>分享</span>'
  195. html += '</div>'
  196. html += '</div>'
  197. html += '<div class="com-con-value com-con-value_cz" >'
  198. if(resilt[i].list_Comment != null) {
  199. for(var a = 0; a < resilt[i].list_Comment.length; a++) {
  200. var dataInfo = resilt[i].list_Comment
  201. html += '<div id="' + dataInfo[a].Code + '" class="contentcancle">'
  202. html += '<span>' + dataInfo[a].UserName + ':</span>'
  203. html += '<span>' + dataInfo[a].CommentContent + '</span>'
  204. html += '</div>'
  205. }
  206. }
  207. html += '</div>'
  208. html += '</div>'
  209. html += '</div>'
  210. }
  211. var div = document.createElement("div");
  212. div.innerHTML = html;
  213. if(pageNum >= 1) {
  214. mui('#bossiness')[0].appendChild(div)
  215. } else {
  216. mui('#bossiness')[0].innerHTML = '<div>' + html + '</div>'
  217. isItem = true
  218. }
  219. if(html == "") {
  220. countItem = true;
  221. }
  222. }
  223. }
  224. });
  225. };
  226. function getLocalDate(now) {
  227. var date = now.replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '');
  228. var arr = date.split(' ');
  229. //日期
  230. var arrDate = arr[0].split('-');
  231. //时间
  232. var arrTime = arr[1].split(':');
  233. return arrDate[0] + '年' + arrDate[1] + '月' + arrDate[2] + '日' + ' ' + arrTime[0] + ':' + arrTime[1];
  234. };
  235. /**
  236. * 1.关注
  237. * @param {Object} nS
  238. */
  239. // $(doc.body).on('tap', '.com-con-btn', function() {
  240. // var div = $(this)[0];
  241. // var code = $(this)[0].id
  242. // var nowDiv = div.parentNode.parentNode.parentNode;
  243. // if(div.innerHTML == '<button class="mui-icon-extra icon-sangedian"></button>') {
  244. // plus.nativeUI.actionSheet({
  245. // cancel: "取消",
  246. // buttons: [{
  247. // title: "关闭该条动态"
  248. // }, {
  249. // title: "取消关注"
  250. // }]
  251. // }, function(e) {
  252. // if(e.index == 1) {
  253. // nowDiv.parentNode.removeChild(nowDiv);
  254. // }
  255. // if(e.index == 2) {
  256. // var postData = {
  257. // "": code
  258. // }
  259. // mui.ajax("http://www.bosshand.cn/api/Customer/UpdateFollowCompany", {
  260. // data: postData,
  261. // dataType: 'json',
  262. // type: "post",
  263. // timeout: 10000, //超时时间设置为10秒;
  264. // headers: {
  265. // 'Content-Type': 'application/x-www-form-urlencoded',
  266. // authorization: token
  267. // },
  268. // success: function(resp) {
  269. // if(resp.Code == 200) {
  270. // div.innerHTML = '<button>+关注</button>'
  271. // $.toast('已取消关注');
  272. // }
  273. // }
  274. // });
  275. //
  276. // }
  277. //
  278. // });
  279. // } else {
  280. // var postData = {
  281. // "": code
  282. // }
  283. // mui.ajax("http://www.bosshand.cn/api/Customer/UpdateYesFollowCompany", {
  284. // data: postData,
  285. // dataType: 'json',
  286. // type: "post",
  287. // timeout: 10000, //超时时间设置为10秒;
  288. // headers: {
  289. // 'Content-Type': 'application/x-www-form-urlencoded',
  290. // authorization: token
  291. // },
  292. // success: function(resp) {
  293. // if(resp.Code == 200) {
  294. // div.innerHTML = '<button class="mui-icon-extra icon-sangedian"></button>';
  295. // $.toast('已关注')
  296. // }
  297. // }
  298. // });
  299. //
  300. // }
  301. // });
  302. /**
  303. * 预览图片
  304. * @param {Object} nS
  305. */
  306. $(doc.body).on('tap', '.imgs', function() {
  307. $('.bg .imgss')[0].innerHTML = '<img src="http://www.bosshand.cn/' + $(this)[0].id + '"/>';
  308. $('.bg')[0].style.display = 'block';
  309. });
  310. $(doc.body).on('tap', '.close', function() {
  311. $('.bg')[0].style.display = 'none';
  312. });
  313. /**
  314. * 2.点赞
  315. * @param {Object} nS
  316. */
  317. $(doc.body).on('tap', '.like', function() {
  318. var code = $(this)[0].id;
  319. var div = $(this)[0];
  320. if($(this)[0].className == 'like') {
  321. var postData = {
  322. CompanyLogCode: code, //日志编码
  323. CommentType: 3, //1-企业日志发布,2-商圈动态,3-点赞,4-评论
  324. CommentContent: "", //内容
  325. CommentCode: user.Data.Phone, //评论账号
  326. CommentNumber: 1, //点赞数
  327. }
  328. $.ajax('http://www.bosshand.cn/api/Customer/UpdateLikesNum', {
  329. data: postData,
  330. dataType: 'json',
  331. type: "post",
  332. timeout: 10000, //超时时间设置为10秒;
  333. headers: {
  334. 'Content-Type': 'application/x-www-form-urlencoded',
  335. authorization: token
  336. },
  337. success: function(resp) {
  338. div.classList.add('likes');
  339. div.childNodes[1].innerHTML = '已赞';
  340. var span = doc.createElement("span");
  341. span.innerHTML = user.Data.Name + ' ';
  342. div.parentNode.parentNode.parentNode.childNodes[2].appendChild(span);
  343. }
  344. });
  345. } else {
  346. div.classList.remove('likes');
  347. div.childNodes[1].innerHTML = '点赞';
  348. var l = div.parentNode.parentNode.parentNode.childNodes[2].childNodes;
  349. var nowspan = div.parentNode.parentNode.parentNode.childNodes[2].childNodes;
  350. for(var i = 0; i < l.length; i++) {
  351. if(nowspan[i].innerHTML == user.Data.Name + ' ') {
  352. nowspan[i].parentNode.removeChild(nowspan[i]);
  353. }
  354. }
  355. }
  356. });
  357. /**
  358. * 3.评论
  359. * @param {Object} nS
  360. */
  361. $(doc.body).on('tap', '.value', function() {
  362. code = $(this)[0].lastChild.id;
  363. Input = $(this)[0].parentNode.parentNode.childNodes[1];
  364. $('.val')[0].style.display = 'block';
  365. });
  366. //修整评论输入框
  367. mui(document.body).on('tap', '.btns', function() {
  368. var detailPage = plus.webview.getWebviewById('communicate.html');
  369. var val = mui('.val input')[0].value;
  370. mui.fire(detailPage, 'sendValue', {
  371. val: val
  372. });
  373. mui('.val input')[0].blur();
  374. $('.val')[0].style.display = 'none';
  375. mui('.val input')[0].value="";
  376. GetdataList(0, 10);
  377. window.addEventListener('sendMsg', function(event) {
  378. setTimeout(function() {
  379. GetdataList(event.detail.count, 3);
  380. }, 3000)
  381. });
  382. });
  383. //点击取消按钮,取消评论
  384. mui(document.body).on('tap', '.btnscancle', function() {
  385. mui('.val input')[0].blur();
  386. $('.val')[0].style.display = 'none';
  387. mui('.val input')[0].value="";
  388. });
  389. /**
  390. * 4.发表评论
  391. * @param {Object} nS
  392. */
  393. window.addEventListener('sendValue', function(event) {
  394. var val = event.detail.val;
  395. var div = doc.createElement("div");
  396. var postData = {
  397. CompanyLogCode: code, //日志编码
  398. CommentType: 4, //1-企业日志发布,2-商圈动态,3-点赞,4-评论
  399. CommentContent: val, //内容
  400. CommentCode: 0, //评论账号
  401. }
  402. mui.ajax('http://www.bosshand.cn/api/Customer/CompanyCommentAdd', {
  403. data: postData,
  404. dataType: 'json',
  405. type: "post",
  406. timeout: 10000, //超时时间设置为10秒;
  407. headers: {
  408. 'Content-Type': 'application/x-www-form-urlencoded',
  409. authorization: token
  410. },
  411. success: function(resp) {
  412. div.innerHTML = '<div class="contentcancle" ><span>' + user.Data.Name + ':</span><span>' + val + '</span></div>';
  413. Input.appendChild(div);
  414. }
  415. });
  416. });
  417. /**
  418. * 5.分享
  419. * @param {Object} nS
  420. */
  421. $(doc.body).on('tap', '.shares', function() {
  422. var Intent = null,
  423. File = null,
  424. Uri = null,
  425. main = null;
  426. var shares = null;
  427. var shareImageUrl = '';
  428. mui.plusReady(function() {
  429. updateSerivces();
  430. if(plus.os.name == "Android") {
  431. Intent = plus.android.importClass("android.content.Intent");
  432. File = plus.android.importClass("java.io.File");
  433. Uri = plus.android.importClass("android.net.Uri");
  434. main = plus.android.runtimeMainActivity();
  435. }
  436. });
  437. /**
  438. * 更新分享服务
  439. */
  440. function updateSerivces() {
  441. plus.share.getServices(function(s) {
  442. shares = {};
  443. for(var i in s) {
  444. var t = s[i];
  445. shares[t.id] = t;
  446. }
  447. //outSet("获取分享服务列表成功");
  448. }, function(e) {
  449. //outSet("获取分享服务列表失败:" + e.message);
  450. });
  451. }
  452. /**
  453. * 分享操作
  454. */
  455. function shareAction(id, ex) {
  456. var s = null;
  457. if(!id || !(s = shares[id])) {
  458. //outLine("无效的分享服务!");
  459. return;
  460. }
  461. if(s.authenticated) {
  462. //outSet("---已授权---");
  463. shareMessage(s, ex);
  464. } else {
  465. //outSet("---未授权---");
  466. s.authorize(function() {
  467. shareMessage(s, ex);
  468. }, function(e) {
  469. //outLine("认证授权失败");
  470. });
  471. }
  472. }
  473. /**
  474. * 发送分享消息
  475. */
  476. function shareMessage(s, ex) {
  477. var msg = {
  478. content: 'Bosshand',
  479. href: 'http://www.bosshand.com',
  480. thumbs: ["http://sale.bosshand.com/webhtml/html/weixin/images/pic300.jpg"],
  481. title: '移动办公',
  482. content: '随心掌握',
  483. extra: {
  484. scene: ex
  485. }
  486. };
  487. s.send(msg, function() {
  488. outLine("分享成功!");
  489. }, function(e) {
  490. outLine("分享失败!");
  491. });
  492. }
  493. /**
  494. * 分享按钮点击事件
  495. */
  496. shareHref();
  497. function shareHref() {
  498. var ids = [{
  499. id: "weixin",
  500. ex: "WXSceneSession" /*微信好友*/
  501. }, {
  502. id: "weixin",
  503. ex: "WXSceneTimeline" /*微信朋友圈*/
  504. }],
  505. bts = [{
  506. title: "发送给微信好友"
  507. }, {
  508. title: "分享到微信朋友圈"
  509. }];
  510. plus.nativeUI.actionSheet({
  511. cancel: "取消",
  512. buttons: bts
  513. },
  514. function(e) {
  515. var i = e.index;
  516. if(i > 0) {
  517. shareAction(ids[i - 1].id, ids[i - 1].ex);
  518. }
  519. }
  520. );
  521. }
  522. // 控制台输出日志
  523. function outSet(msg) {
  524. $.toast(msg);
  525. }
  526. // 界面弹出吐司提示
  527. function outLine(msg) {
  528. $.toast(msg);
  529. }
  530. })
  531. //删除评论的内容
  532. $(doc.body).on('tap', '.contentcancle', function() {
  533. var canclecomment = $(this)[0].childNodes[3];
  534. var contentcancle = $(this)[0];
  535. var code = $(this)[0].id;
  536. if($(this)[0].childNodes[0].innerHTML == (user.Data.Name + ':')) {
  537. plus.nativeUI.actionSheet({
  538. cancel: "取消",
  539. buttons: [{
  540. title: "删除"
  541. }]
  542. },
  543. function(e) {
  544. var i = e.index;
  545. if(i > 0) {
  546. var postdata = {
  547. "": code
  548. }
  549. $.ajax("http://www.bosshand.cn/api/Customer/CompanyCommentDeleteListApp", {
  550. headers: {
  551. authorization: token
  552. },
  553. type: "post",
  554. data: postdata,
  555. headers: {
  556. 'Content-Type': 'application/x-www-form-urlencoded',
  557. authorization: token
  558. },
  559. success: function(data) {
  560. if(data.Code == 200) {
  561. contentcancle.style.display = "none";
  562. }
  563. }
  564. });
  565. }
  566. }
  567. );
  568. }
  569. });
  570. //解决软键盘唤起时底部input输入框被遮挡问题
  571. $(doc.body).on('tap', '#val', function() {
  572. var bfscrolltop = document.body.scrollTop;//获取软键盘唤起前浏览器滚动部分的高度
  573. interval = setInterval(function(){//设置一个计时器,时间设置与软键盘弹出所需时间相近
  574. document.body.scrollTop = document.body.scrollHeight;//获取焦点后将浏览器内所有内容高度赋给浏览器滚动部分高度
  575. },100)
  576. })
  577. });
  578. })(mui, document);