history.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
  6. <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
  7. <title></title>
  8. <link rel="stylesheet" type="text/css" href="../../css/api.css" />
  9. <link rel="stylesheet" type="text/css" href="../../css/style.css?v=1.2" />
  10. <style>
  11. body {
  12. background: #f2f2f2;
  13. }
  14. .msg-list{
  15. height: 100%
  16. }
  17. .bgf2{
  18. background: #f2f2f2;
  19. height: auto;
  20. padding-bottom: 1rem;
  21. }
  22. .msg-cent-list{
  23. width: 100%;
  24. /*height: 2.4rem;*/
  25. background: #ffffff;
  26. border-radius: 0.1rem;
  27. padding: 0.3rem;
  28. box-sizing: border-box;
  29. position: relative;
  30. /*box-shadow: darkgrey 0.1rem 0.1rem 0.3rem 0.05rem;*/
  31. }
  32. .msg-cent-right-title {
  33. font-size: 0.3rem;
  34. color: #333;
  35. }
  36. .msg-cent-list ul {
  37. width: 100%;
  38. display: inline-block;
  39. }
  40. .msg-cent-list li{
  41. float: left;
  42. width: 100%;
  43. }
  44. .msg-cent-right-dtl{
  45. font-size: 0.26rem;
  46. color: #999;
  47. }
  48. .msg-time{
  49. color: #bbb;
  50. width: 100%;
  51. text-align:center;
  52. padding: 0.3rem 0;
  53. /*font-size: 0.22rem;*/
  54. }
  55. .member-avatar{
  56. width: 0.3rem;
  57. height: 0.3rem;
  58. border-radius:50%;
  59. vertical-align:middle;
  60. margin-bottom: 0.05rem;
  61. }
  62. button.el-button {
  63. background: #f2f2f2;
  64. margin-left: 0.2rem;
  65. }
  66. button.el-button, .feed-btn,.tel-btn{
  67. float:right;
  68. font-size: 0.24rem;
  69. }
  70. .el-button.is-round {
  71. border-radius: 0.5rem;
  72. margin-top: -0.1rem;
  73. }
  74. .is_read div {
  75. color: #ccc;
  76. }
  77. </style>
  78. <script>
  79. (function(w, d, m) {
  80. function r() {
  81. var t = 100,
  82. o = 750,
  83. e = d.documentElement.clientWidth || w.innerWidth,
  84. n = m.max(m.min(e, 480), 320),
  85. h = 50;
  86. 320 >= n && (h = m.floor(n / o * t * .99)),
  87. n > 320 && 362 >= n && (h = m.floor(n / o * t * 1)),
  88. n > 362 && 375 >= n && (h = m.floor(n / o * t * 1)),
  89. n > 375 && (h = m.floor(n / o * t * .97)),
  90. d.querySelector("html").style.fontSize = h + "px"
  91. };
  92. r();
  93. w.onresize = function() {
  94. r()
  95. }
  96. })(window, document, Math);
  97. </script>
  98. </head>
  99. <body>
  100. <div class="topbar"></div>
  101. <section style="background:#ffffff;">
  102. <header class="back-header">
  103. <ul>
  104. <li class="padding-20 back-btn"><img class="back-header-ico" src="../../image/nav_button_back_default.png" /></li>
  105. <li class="back-header-title" id="header-title">历史消息</li>
  106. <li class="more-btn"></li>
  107. </ul>
  108. </header>
  109. </section>
  110. <section class="msg-list padding-top">
  111. </section>
  112. </body>
  113. <script type="text/javascript" src="../../script/api.js"></script>
  114. <script type="text/javascript" src="../../script/jquery.min.js"></script>
  115. <script type="text/javascript" src="../../script/imagesloaded.pkgd.min.js"></script>
  116. <script type="text/javascript" src="../../script/jquery.tap.js"></script>
  117. <script type="text/javascript">
  118. var _storeid = '';
  119. var _minid = '';
  120. var _page = '1';
  121. var _myalias = '';
  122. var lastpage = false;
  123. var _reload = false;
  124. apiready = function() {
  125. setFixStatusBar();
  126. // getRouteData2();
  127. getRouteData();
  128. // set_height();
  129. //setInterval(function(){getRouteData();},8000);
  130. _myalias = "store" + $api.getStorage("storeid");
  131. // jpushInit();
  132. api.addEventListener({
  133. name:'resume'
  134. }, function(ret, err){
  135. _minid = '';
  136. _page = '1';
  137. lastpage = false;
  138. // $(".msg-list").empty();
  139. _reload = true;
  140. getRouteData();
  141. });
  142. api.addEventListener({
  143. name:'viewappear'
  144. }, function(ret, err){
  145. _minid = '';
  146. _page = '1';
  147. lastpage = false;
  148. // $(".msg-list").empty();
  149. _reload = true;
  150. getRouteData();
  151. });
  152. api.addEventListener({
  153. name:'scrolltobottom'
  154. }, function(ret, err){
  155. getRouteData();
  156. });
  157. api.addEventListener({
  158. name:'swipedown'
  159. }, function(ret, err){
  160. toRefrash();
  161. _minid = '';
  162. _page = '1';
  163. lastpage = false;
  164. _reload = true;
  165. setRefrashHeader();
  166. getRouteData();
  167. });
  168. api.addEventListener({
  169. name:'online'
  170. }, function(ret, err){
  171. _minid = '';
  172. _page = '1';
  173. lastpage = false;
  174. _reload = true;
  175. getRouteData();
  176. });
  177. api.addEventListener({
  178. name: 'swipeup'
  179. }, function(ret, err) {
  180. api.refreshHeaderLoadDone()
  181. });
  182. };
  183. //del
  184. function getRouteData2() {
  185. $.ajax({
  186. url: rooturl + '?do=getstore',
  187. data: {
  188. storeid: $api.getStorage("storeid"),
  189. },
  190. dataType: 'json',
  191. type: 'post',
  192. success: function(datas) {
  193. if (datas) {
  194. $("#header-title").html(datas.store_name);
  195. }
  196. set_height();
  197. }
  198. });
  199. }
  200. function getRouteData() {
  201. if (lastpage) {
  202. return false;
  203. }
  204. $.ajax({
  205. url: siteurl + 'v2/shop/msg_list',//'?do=gethotelmsg',
  206. data: {
  207. store_id: $api.getStorage("storeid"),
  208. minid: _minid,
  209. page: _page
  210. },
  211. headers: { "X-TOKEN": $api.getStorage("accesstoken") },
  212. dataType: 'json',
  213. type: 'post',
  214. success: function(datas) {
  215. if (datas.result) {
  216. if (datas.data.msg_list.length > 0) {
  217. var _html = '';
  218. $.each(datas.data.msg_list, function(index, item) {
  219. _html += '<div class="msg-time" keyid="' + item.order_id + '">' + item.add_time + '</div>';
  220. if (item.is_read == 0) {
  221. _html += '<div class="msg-cent-list" keyid="' + item.order_id + '" tag="' + item.types + '"><ul>';
  222. }else{
  223. _html += '<div class="msg-cent-list is_read" keyid="' + item.order_id + '" tag="' + item.types + '"><ul>';
  224. }
  225. _html += '<li class="msg-cent-right"><div class="msg-cent-right-title">' + item.status + '</div>';
  226. _html += '<div class="h50"></div>';
  227. _html += '<div class="msg-cent-right-dtl">订单号:' + item.order_sn + ' </div>';
  228. _html += '<div class="msg-cent-right-dtl" style="padding-top: 0.1rem;">' + item.content + '</div>';
  229. _html += '<div class="h50"></div>';
  230. _html += '<div style="font-size: 0.24rem;"><img src="' + item.member_avatar + '" class="member-avatar" /> ' + item.member_truename + '<button type="button" class="el-button el-button--default is-round"><span class="feed-btn" keyid="' + item.order_id + '" msgid="' + item.id + '" memberid="' + item.member_id + '">回复</span></button><button type="button" class="el-button el-button--default is-round"><span class="tel-btn" tel="' + item.member_mobile + '">致电</span></button></div>';
  231. _html += ' </li></ul></div>';
  232. });
  233. if (_reload) {
  234. $(".msg-list").html(_html);
  235. _reload = false;
  236. }else{
  237. $(".msg-list").append(_html);
  238. }
  239. if (datas.data.msg_list.length > 0) {
  240. // _minid = datas[datas.length - 1].id;
  241. _page++;
  242. }
  243. $(".msg-list").addClass('bgf2');
  244. } else {
  245. lastpage = true;
  246. api.toast({ msg: '没有更多数据...' });
  247. }
  248. } else {
  249. errcode(datas, datas.code);
  250. }
  251. function_name();
  252. }
  253. });
  254. }
  255. function set_height() {
  256. api.execScript({
  257. name: 'hotelindex',
  258. script: 'set_height();'
  259. })
  260. }
  261. $(".msg-list").on("tap", ".feed-btn", function() {
  262. var _keyid = $(this).attr("keyid");
  263. var _memberid = $(this).attr("memberid");
  264. var _msgid = $(this).attr("msgid");
  265. api.openWin({
  266. name: 'urge',
  267. url: './urge.html',
  268. bounces: false,
  269. pageParam: {
  270. keyid: _keyid,
  271. memberid: _memberid,
  272. msgid: _msgid
  273. }
  274. });
  275. return false;
  276. })
  277. $(".msg-list").on("tap", ".tel-btn", function() {
  278. var _tel = $(this).attr("tel");
  279. api.call({
  280. type: 'tel_prompt',
  281. number: _tel
  282. });
  283. return false;
  284. })
  285. $(".msg-list").on("tap", ".msg-cent-list", function() {
  286. var _keyid = $(this).attr("keyid");
  287. api.openWin({
  288. name: 'orderdtl',
  289. url: './orderdtl.html',
  290. bounces: false,
  291. pageParam: {
  292. keyid: _keyid
  293. }
  294. });
  295. return false;
  296. })
  297. function setRefrashHeader(){
  298. api.setCustomRefreshHeaderInfo({
  299. //bgColor: '#00FF00',
  300. image: {
  301. pull: 'widget://image/logo.png',
  302. transform: [
  303. 'widget://image/logo.png',
  304. 'widget://image/logo.png',
  305. 'widget://image/logo.png',
  306. 'widget://image/logo.png',
  307. 'widget://image/logo.png'
  308. ],
  309. load: [
  310. 'widget://image/logo.png',
  311. 'widget://image/logo.png',
  312. 'widget://image/logo.png',
  313. 'widget://image/logo.png',
  314. 'widget://image/logo.png'
  315. ]
  316. }
  317. }, function( ret, err ){
  318. // alert('下拉刷新事件触发了,请开始加载数据刷新页面,然后停止加载状态');
  319. setTimeout(stopRefrash(), 3000);
  320. });
  321. }
  322. function toRefrash(){
  323. api.refreshHeaderLoading();
  324. }
  325. function stopRefrash(){
  326. api.refreshHeaderLoadDone();
  327. }
  328. function jpushInit() {
  329. jpush = api.require('ajpush');
  330. initJPush();
  331. /*api.addEventListener({name:'appintent'}, function(ret,err) {//anz noticeclicked
  332. //alert('通知被点击,收到数据:\n' + JSON.stringify(ret));//监听通知被点击后收到的数据
  333. _minid='';$(".msg-list").empty();getRouteData();
  334. })*/
  335. api.addEventListener({ name: 'noticeclicked' }, function(ret, err) { //ios noticeclicked
  336. var _value = ret.value.replace(/\\/g, "");
  337. var obj = eval('(' + _value + ')');
  338. if (obj.jump == "neworder") {
  339. api.openWin({
  340. name: 'frame1',
  341. url: './frame1.html',
  342. bounces: false
  343. });
  344. }
  345. })
  346. api.addEventListener({ name: 'pause' }, function(ret, err) {
  347. onPause(); //监听应用进入后台,通知jpush暂停事件
  348. })
  349. api.addEventListener({ name: 'resume' }, function(ret, err) {
  350. onResume(); //监听应用恢复到前台,通知jpush恢复事件
  351. })
  352. api.addEventListener({ name: 'noticeclicked' }, function(ret, err) { //ios noticeclicked
  353. _minid = '';
  354. // $(".msg-list").empty();
  355. _page = '1';
  356. _reload = true;
  357. getRouteData();
  358. })
  359. api.removeEventListener({
  360. name: 'noticeclicked'
  361. });
  362. jpush.setListener(function(ret, err) {
  363. if (ret) {
  364. notify(ret.content, ret.extra);
  365. }
  366. });
  367. }
  368. function initJPush() {
  369. jpush.init(function(ret, err) {
  370. if (ret && ret.status) {
  371. bindAliasAndTags();
  372. } else {
  373. api.toast({ msg: '操作失败!' });
  374. }
  375. });
  376. }
  377. //统计-app恢复
  378. function onResume() {
  379. jpush.onResume();
  380. }
  381. //统计-app暂停
  382. function onPause() {
  383. jpush.onPause();
  384. }
  385. function bindAliasAndTags() {
  386. var param = { alias: _myalias, tags: ['tag1', 'qdduser'] };
  387. jpush.bindAliasAndTags(param, function(ret) {
  388. var statusCode = ret.statusCode;
  389. // alert(JSON.stringify(ret));
  390. });
  391. }
  392. function notify(content, extras) {
  393. api.notification({
  394. vibrate: [100, 500, 200, 500, 300, 500],
  395. sound: 'widget://res/horse.ogg',
  396. notify: {
  397. title: '您有一条新的消息...',
  398. content: content,
  399. extra: extras,
  400. updateCurrent: false
  401. }
  402. }, function(ret, err) {
  403. //alert(JSON.stringify(extras));
  404. });
  405. }
  406. </script>
  407. </html>