frame0.html 13 KB

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