orderdtl.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
  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/weui.min.css" />
  10. <link rel="stylesheet" type="text/css" href="../../css/style.css?v=1.2" />
  11. <style>
  12. body{background: #f2f2f2;}
  13. .order-status{
  14. font-size: 0.26rem;
  15. width: 100%;
  16. padding: 0.21rem 0;
  17. margin-bottom: 0.17rem;
  18. }
  19. .order-postaddr{
  20. width: 100%;
  21. padding: 0.32rem 0;
  22. }
  23. #state-btn{
  24. width:100%;
  25. }
  26. .order-btn{
  27. width:100%;
  28. background:#ffffff;
  29. border-top:1px solid #e8e8e8;
  30. position:fixed;
  31. bottom:0px;
  32. }
  33. .order-btn li{
  34. float:left;
  35. width:50%;
  36. height: 0.9rem;
  37. line-height: 0.9rem;
  38. text-align:center;
  39. font-size: 0.32rem;
  40. border-right:1px solid #e8e8e8;
  41. box-sizing:border-box;
  42. }
  43. .to-pay{
  44. color:#ffffff; background:#A13532;
  45. }
  46. .order-list {
  47. margin-bottom: 0.9rem;
  48. }
  49. .order-list-right p {
  50. font-size: 0.22rem;
  51. color: #999;
  52. /*height: 1.04rem;*/
  53. }
  54. p.font-size-18 {
  55. color: #666;
  56. height: auto;
  57. }
  58. .hx {
  59. background: #f2f2f2;
  60. margin: 0 0 0 -0.32rem;
  61. width: 7.5rem;
  62. height: 0.2rem;
  63. }
  64. </style>
  65. <script>
  66. (function(w, d, m) {
  67. function r() {
  68. var t = 100,
  69. o = 750,
  70. e = d.documentElement.clientWidth || w.innerWidth,
  71. n = m.max(m.min(e, 480), 320),
  72. h = 50;
  73. 320 >= n && (h = m.floor(n / o * t * .99)),
  74. n > 320 && 362 >= n && (h = m.floor(n / o * t * 1)),
  75. n > 362 && 375 >= n && (h = m.floor(n / o * t * 1)),
  76. n > 375 && (h = m.floor(n / o * t * .97)),
  77. d.querySelector("html").style.fontSize = (e/7.5) + "px"
  78. };
  79. r();
  80. w.onresize = function() {
  81. r()
  82. }
  83. })(window, document, Math);
  84. </script>
  85. </head>
  86. <body>
  87. <div class="topbar"></div>
  88. <header class="back-header back-header-bottom">
  89. <ul>
  90. <li class="padding-20 back-btn"><img class="back-header-ico" src="../../image/nav_button_back_default.png" /></li>
  91. <li class="back-header-title">订单详情</li>
  92. <li class="more-btn"></li>
  93. </ul>
  94. </header>
  95. <section class="white-back padding-top">
  96. <div id="order-status" class="order-status"></div>
  97. </section>
  98. <section class="white-back" style="margin-bottom: 0.17rem;">
  99. <div class="order-postaddr">
  100. <span id="contact-name"></span>
  101. <p id="contact-addr"></p>
  102. </div>
  103. </section>
  104. <section class="order-list white-back">
  105. </section>
  106. <div id="state-btn">
  107. </div>
  108. </body>
  109. <script type="text/javascript" src="../../script/api.js"></script>
  110. <script type="text/javascript" src="../../script/jquery.min.js"></script>
  111. <script type="text/javascript" src="../../script/imagesloaded.pkgd.min.js"></script>
  112. <script type="text/javascript" src="../../script/jquery.tap.js"></script>
  113. <script type="text/javascript">
  114. var _keyid = '';
  115. apiready = function() {
  116. _keyid = api.pageParam.keyid;
  117. setIosTopBar();
  118. if (_keyid) {
  119. getRouteData(_keyid);
  120. // getAddrData(_keyid);
  121. } else {
  122. api.toast({ msg: '参数错误' });
  123. }
  124. };
  125. function getRouteData(_keyid) {
  126. toast_loding_show();
  127. $.ajax({
  128. url: siteurl + 'v2/order/info',//'?do=getorder',
  129. data: {
  130. // store_id: $api.getStorage("storeid"),
  131. order_id: _keyid
  132. },
  133. headers: { "X-TOKEN": $api.getStorage("accesstoken") },
  134. dataType: 'json',
  135. type: 'post',
  136. success: function(datas) {
  137. if (datas.result) {
  138. toast_loding_hide();
  139. var _html = '';
  140. var item = datas.data;
  141. // $.each(datas.data, function(index, item) {
  142. var _a_img = '';
  143. var _a_name = '';
  144. item.member_avatar ? _a_img = item.member_avatar : _a_img ='../../image/head.png';
  145. item.member_truename ? _a_name = item.member_truename : _a_name = item.buyer_name;
  146. _html += '<div class="order-list-title" state="' + item.order_state + '" keyid="' + item.order_id + '"><img src="' + _a_img + '"/> ' + _a_name + '</div>';
  147. $.each(item.goods, function(index2, item2) {
  148. var arr = item2.goods_name.split(" ");
  149. var name_arr = arr[0];
  150. var size_arr = item2.goods_name.replace(name_arr, "");
  151. _html += '<div class="order-list-goods"><ul><li><img src="' + siteurl + "uploads/home/store/goods/" + item2.goods_image.substr(0, item2.goods_image.indexOf("\_")) + "/" + item2.goods_image + '"/></li>';
  152. _html += '<li class="order-list-right"><span>' + name_arr + '</span><p>' + size_arr + ' x' + item2.goods_num + '</p>';
  153. _html += '<p class="font-size-18">¥' + item2.goods_price + '</p></li>';
  154. _html += '</ul></div><div class="h2"></div>';
  155. });
  156. _html += '<div class="order-list-title" style="border-bottom:none;border-top: 1px solid #e8e8e8;">合计:¥' + item.order_amount + '</div>';
  157. _html += '<div class="hx"></div>';
  158. if (item.shipping_code) {
  159. _html += '<div class="order-list-title" style="border-bottom:none;">快递单号:' + item.shipping_code + '&nbsp;&nbsp;(&nbsp;'+item.express_name +'&nbsp;)</div><div class="hx"></div>';
  160. }
  161. $("#contact-name").html(datas.data.reciver_name + " " + datas.data.reciver_info.phone);
  162. $("#contact-addr").html(datas.data.reciver_info.address);
  163. item.payment_time = item.payment_time ? item.payment_time : '未支付';
  164. item.delay_time = item.delay_time ? item.delay_time : '未发货';
  165. item.finnshed_time = item.finnshed_time ? item.finnshed_time : '未确认';
  166. _html += '<div class="order-list-title" style="border-bottom:none;">下单时间:' + item.add_time + '</div>';
  167. _html += '<div class="order-list-title" style="border-bottom:none;">支付订单:' + item.payment_time + '</div>';
  168. _html += '<div class="order-list-title" style="border-bottom:none;">商家发货:' + item.delay_time + '</div>';
  169. _html += '<div class="order-list-title" style="border-bottom:none;">订单完成:' + item.finnshed_time + '</div>';
  170. // _html += '</section>';
  171. // });
  172. $(".order-list").append(_html);
  173. $("#order-status").html(datas.data.status);
  174. $("#state-btn").append('<div class="order-btn"><ul><li style="width: 100%;" class="tel-btn" tel="' + datas.data.reciver_info.phone + '">联系买家</li></ul></div>');
  175. if (datas.data.order_state == 10) {
  176. //$("#state-btn").append('<div class="order-btn"><ul><li id="order-cancel" >取消订单</li><li class="to-pay" keyid="'+datas[0].order_id+'">去付款(¥'+datas[0].order_amount+')</li></ul></div>');
  177. }
  178. if (datas.data.order_state == 20) {
  179. if (datas.data.shipping_type == 0) {
  180. //$("#state-btn").append('<div class="order-btn" id="order-cancel" ><ul><li>取消订单</li><li class="urge" keyid="'+datas[0].order_id+'">催单</li></ul></div>');
  181. } else if (datas.data.shipping_type == 1) {
  182. //$("#state-btn").append('<div class="order-btn" id="order-cancel" ><ul><li>取消订单</li><li class="contacthotel" keyid="'+datas[0].order_id+'">联系酒店</li></ul></div>');
  183. $("#state-btn").append('<div class="order-btn" id="order-deliver" ><ul><li style="width:100%;border-right:none;">发货</li></ul></div>');
  184. }
  185. }
  186. if (datas.data.order_state == 30) {
  187. ///$("#state-btn").append('<div class="order-btn" id="order-cancel" ><ul><li>取消订单</li><li class="confirm">确认收货</li></ul></div>');
  188. }
  189. if (datas.data.order_state == 40) {
  190. //$("#state-btn").append('<div class="order-btn" id="order-cancel" ><ul><li>退货退款</li><li class="evaluate">去评价</li></ul></div>');
  191. }
  192. if (datas.data.order_state == 0) {
  193. // $("#state-btn").append('<div class="order-btn" id="order-del" ><ul><li style="width:100%;border-right:none;">删除订单</li></ul></div>');
  194. }
  195. } else {
  196. errcode(datas, datas.code);
  197. }
  198. function_name();
  199. }
  200. });
  201. }
  202. ///
  203. function getAddrData(_keyid) {
  204. $.ajax({
  205. url: rooturl + '?do=getordercommon',
  206. data: {
  207. order_id: _keyid
  208. },
  209. dataType: 'json',
  210. type: 'post',
  211. success: function(datas) {
  212. $("#contact-name").html(datas.reciver_name + " " + datas.reciver_info.phone);
  213. $("#contact-addr").html(datas.reciver_info.address);
  214. }
  215. });
  216. }
  217. ///
  218. $("#state-btn").on("tap", ".to-pay", function() {
  219. var _keyid = $(this).attr("keyid");
  220. api.openWin({
  221. name: 'paymode',
  222. url: '../home/paymode.html',
  223. bounces: false,
  224. pageParam: {
  225. keyid: _keyid
  226. }
  227. });
  228. return false;
  229. })
  230. $("#state-btn").on("tap", ".urge", function() {
  231. var _keyid = $(this).attr("keyid");
  232. api.openWin({
  233. name: 'urge',
  234. url: './urge.html',
  235. bounces: false,
  236. pageParam: {
  237. keyid: _keyid
  238. }
  239. });
  240. return false;
  241. })
  242. $("#state-btn").on("tap", ".contacthotel", function() {
  243. var _keyid = $(this).attr("keyid");
  244. api.openWin({
  245. name: 'contacthotel',
  246. url: './contacthotel.html',
  247. bounces: false,
  248. pageParam: {
  249. keyid: _keyid
  250. }
  251. });
  252. return false;
  253. })
  254. $("#state-btn").on("tap", "#order-cancel", function() {
  255. api.confirm({
  256. title: '是否取消订单',
  257. buttons: ['取消', '确定']
  258. }, function(ret, err) {
  259. var index = ret.buttonIndex;
  260. if (index == 2) {
  261. toast_loding_show();
  262. $.ajax({
  263. url: siteurl + 'v2/order/cancel',
  264. data: {
  265. order_id: _keyid,
  266. memberid: $api.getStorage("memberid"),
  267. type: 'hotel'
  268. },
  269. headers: { "X-TOKEN": $api.getStorage("accesstoken") },
  270. dataType: 'json',
  271. type: 'post',
  272. success: function(datas) {
  273. toast_loding_hide();
  274. if (datas.result) {
  275. api.toast({ msg: '操作成功!' });
  276. refreshData();
  277. setTimeCloseWin("orderdtl");
  278. } else {
  279. errcode(datas, datas.code);
  280. }
  281. }
  282. });
  283. }
  284. })
  285. return false;
  286. })
  287. $("#state-btn").on("tap", ".tel-btn", function() {
  288. var _tel = $(this).attr("tel");
  289. api.call({
  290. type: 'tel_prompt',
  291. number: _tel
  292. });
  293. return false;
  294. })
  295. ////////
  296. $("#state-btn").on("tap", "#order-return", function() {
  297. api.confirm({
  298. title: '是否同意退换货',
  299. buttons: ['取消', '确定']
  300. }, function(ret, err) {
  301. var index = ret.buttonIndex;
  302. if (index == 2) {
  303. toast_loding_show();
  304. $.ajax({
  305. url: siteurl + 'v2/order/refund',
  306. data: {
  307. order_id: _keyid,
  308. memberid: $api.getStorage("memberid"),
  309. type: 'user'
  310. },
  311. headers: { "X-TOKEN": $api.getStorage("accesstoken") },
  312. dataType: 'json',
  313. type: 'post',
  314. success: function(datas) {
  315. toast_loding_hide();
  316. if (datas.result) {
  317. api.toast({ msg: '操作成功!' });
  318. refreshData();
  319. setTimeCloseWin("orderdtl");
  320. } else {
  321. errcode(datas, datas.code);
  322. }
  323. }
  324. });
  325. }
  326. })
  327. return false;
  328. })
  329. ///////
  330. $("#state-btn").on("tap", "#order-deliver", function() {
  331. api.confirm({
  332. title: '是否确认发货',
  333. buttons: ['取消', '确定']
  334. }, function(ret, err) {
  335. var index = ret.buttonIndex;
  336. if (index == 2) {
  337. $.ajax({
  338. url: siteurl + 'v2/order/deliver',//'?do=orderdeliver',
  339. data: {
  340. order_id: _keyid
  341. },
  342. headers: { "X-TOKEN": $api.getStorage("accesstoken") },
  343. dataType: 'json',
  344. type: 'post',
  345. success: function(datas) {
  346. if (datas.result) {
  347. api.toast({ msg: '操作成功!' });
  348. ///refreshData();
  349. setTimeCloseWin("orderdtl");
  350. } else {
  351. errcode(datas, datas.code);
  352. }
  353. }
  354. });
  355. }
  356. })
  357. return false;
  358. })
  359. $("#state-btn").on("tap", ".evaluate", function() {
  360. api.openWin({
  361. name: 'evaluate',
  362. url: './evaluate.html',
  363. bounces: false,
  364. pageParam: {
  365. keyid: _keyid
  366. }
  367. });
  368. return false;
  369. })
  370. $("#state-btn").on("tap", "#order-del", function() {
  371. api.confirm({
  372. title: '是否要删除订单',
  373. buttons: ['取消', '确定']
  374. }, function(ret, err) {
  375. var index = ret.buttonIndex;
  376. if (index == 2) {
  377. $.ajax({
  378. url: siteurl + 'v2/order/drop',//'?do=orderdel',
  379. data: {
  380. order_id: _keyid,
  381. memberid: $api.getStorage("memberid")
  382. },
  383. headers: { "X-TOKEN": $api.getStorage("accesstoken") },
  384. dataType: 'json',
  385. type: 'post',
  386. success: function(datas) {
  387. if (datas.result) {
  388. api.toast({ msg: '操作成功!' });
  389. refreshData();
  390. setTimeCloseWin("orderdtl");
  391. } else {
  392. errcode(datas, datas.code);
  393. }
  394. }
  395. });
  396. }
  397. })
  398. return false;
  399. })
  400. function refreshData() {
  401. api.execScript({
  402. name: 'index',
  403. frameName: 'frame1',
  404. script: 'getRouteData();'
  405. });
  406. }
  407. </script>
  408. </html>