You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

order_list.js 14 KiB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. String.prototype.format = function() {
  2. if(arguments.length === 0) return this;
  3. var param = arguments[0];
  4. var s = this;
  5. if(typeof(param) === 'object') {
  6. for(var key in param)
  7. s = s.replace(new RegExp("\\{" + key + "\\}", "g"), param[key]);
  8. return s;
  9. } else {
  10. for(var i = 0; i < arguments.length; i++)
  11. s = s.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
  12. return s;
  13. }
  14. };
  15. var _data = {
  16. current_page:1,
  17. page_size:10,
  18. is_refund:'',
  19. status:''
  20. };
  21. var order_list_arr = [];
  22. window.onload = function() {
  23. // $('body').show();return;
  24. ifLogin(function(flag) {
  25. $('body').show();
  26. _data['status'] = '1';
  27. httpLoadInfo();
  28. });
  29. };
  30. function httpLoadInfo() {
  31. $.ajax({
  32. type: "post",
  33. url: base_api + 'user/fx-user/order-list',
  34. data:_data,
  35. dataType: 'json',
  36. beforeSend:function(){
  37. loading.show();
  38. },
  39. complete:function(){
  40. delay(function(){
  41. loading.close();
  42. })
  43. },
  44. success: function(res_data) {
  45. ZZLog(res_data);
  46. if(false === res_data['flag']) {
  47. if(codeNotLogin === res_data['code']) {
  48. // alert(infoNotLogin)
  49. var URL = '/web/fx/order_list.html';
  50. URL = encodeURI(URL);
  51. location.href = res_data['url'] + URL;
  52. } else if(codeNotRegister === res_data['code']) {
  53. location.href = 'register.html';
  54. } else {
  55. alert(res_data['msg']);
  56. }
  57. } else {
  58. //..
  59. var data = res_data['data'];
  60. var order_list = data['order_list'];
  61. order_list_arr.splice(0,order_list_arr.length);
  62. order_list_arr=order_list_arr.concat(order_list);
  63. // 1 待支付 2:已支付 3:已完成 4:已退款 5:已取消
  64. var html = getOrderListHTML(order_list);
  65. $('.list_info').html(html);
  66. if(order_list.length<_data['page_size']) $('.more').hide();
  67. else $(".more").show();
  68. if(order_list.length === 0) $('#no_info').show();
  69. else $('#no_info').hide();
  70. }
  71. },
  72. error: function() {
  73. $('.more').hide();
  74. $('#no_info').show();
  75. alert(infoApiError);
  76. }
  77. });
  78. }
  79. function getOrderListHTML(tempListAry){
  80. var HTML = '';
  81. for(var k = 0; k < tempListAry.length; k++) {
  82. var dict = tempListAry[k];
  83. var temp = getHTMLWithParam(dict,k);
  84. HTML += temp;
  85. }
  86. return HTML;
  87. // $('.list_info').html(HTML);
  88. // // if(tempListAry.length<page_size) $('.more').hide();
  89. //
  90. // if(tempListAry.length == 0) {
  91. // $('#no_info').show();
  92. // } else {
  93. // $('#no_info').hide();
  94. // }
  95. }
  96. function getHTMLWithParam(dict,index) {
  97. var htmlObj = dict;
  98. htmlObj['index']=index;
  99. htmlObj['prod_arr_html']='';
  100. htmlObj['bottom_btn_html']='';
  101. htmlObj['commission_price_html']='';
  102. htmlObj['order_status_desc'] = '';
  103. htmlObj['order_status_desc']=$('.div_title_selected').html();
  104. var prod_arr = dict['prod_arr'];
  105. var prod_arr_html = '';
  106. for(var i=0;i<prod_arr.length;i++){
  107. var item = prod_arr[i];
  108. var tempHTML = '<div class="ulev0" style="color: rgb(128,136,154);margin-bottom:0.05rem;">'+item['prod_name']+' <span style="margin-left:0.2rem;color: rgb(128,136,154);">× '+item['prod_cnt']+'</span></div>';
  109. prod_arr_html += tempHTML;
  110. }
  111. htmlObj['prod_arr_html'] = prod_arr_html;
  112. var see_desc = '<div onclick="see_desc('+index+')" class="bottom_btn see_desc ub ub-ac ub-pc">查看详情</div>';
  113. var update_price = '<div onclick="update_price('+index+')" class="bottom_btn update_price ub ub-ac ub-pc">改价</div>';
  114. var refund = '<div onclick="refund_ticket('+index+')" class="bottom_btn refund_ticket ub ub-ac ub-pc">退款</div>';
  115. var menu_id = $('.div_title_selected').attr('data-menu-id');
  116. if(menu_id==='1' || menu_id==='2'){
  117. htmlObj['commission_price_html'] = '<div class="ulev0" style="color: #ef5b4c;">佣金:'+dict['commission_total_money']+'元</div>';
  118. }else{
  119. htmlObj['commission_price_html'] = '<div class="ulev0" style="color: #ef5b4c;visibility: hidden;">佣金:'+dict['commission_total_money']+'元</div>';
  120. }
  121. if('1' === dict['order_status']){
  122. htmlObj['bottom_btn_html'] += see_desc;
  123. //是否可以改价
  124. if(1 === dict['change_price']){
  125. htmlObj['bottom_btn_html'] += update_price;
  126. }
  127. }else if('4' === dict['order_status']){
  128. htmlObj['bottom_btn_html'] = see_desc;
  129. }else{
  130. if('1' === dict['status']){
  131. if(1 === dict['refund_flag']){
  132. htmlObj['bottom_btn_html'] += see_desc;
  133. htmlObj['bottom_btn_html'] += refund;
  134. }
  135. }else if('2' === dict['status']){
  136. htmlObj['bottom_btn_html'] = see_desc;
  137. }else if('3' === dict['status']){
  138. htmlObj['bottom_btn_html'] = see_desc;
  139. }
  140. }
  141. var html = '<div class="bg_color cell_one" data-index="{index}" style="box-shadow: inset 0 -0.5px 0 0 rgba(0, 0, 0, 0.1);">\n' +
  142. '\t\t\t\t<div class="lightgreen_color ub div_line order_div">\n' +
  143. '\t\t\t\t\t<div class="ub" style="color: #ef5b4c;padding-left: 0.12rem;">{order_status_desc}</div>\n' +
  144. '\t\t\t\t\t<div class="tx-l ulev0" style="color: rgb(128,136,154);padding-left: 0.1rem;">{create_time}</div>\n' +
  145. '\t\t\t\t\t<div class="ub-f1 tx-r ulev0" style="color:#80889a;padding-right: 0.12rem;">订单号:{order_id}</div>\n' +
  146. '\t\t\t\t</div>\n' +
  147. '\t\t\t\t<div class="ub ub-ver lightgreen_color">\n' +
  148. '\t\t\t\t\t<div class="ub ub-ver">\n' +
  149. '\t\t\t\t\t\t<div class="ub ub-ver" style="padding-left: 0.12rem;">\n' +
  150. '\t\t\t\t\t\t\t<div class="ui_p_t15 ulev1" style="color: #2b3857;font-weight: 600;font-size:0.14rem;margin-bottom:0.1rem;">{pro_cate_name}</div>\n' +
  151. '\t\t\t\t\t\t\t<div class="ub" style="padding-bottom:0.085rem;">\n' +
  152. '\t\t\t\t\t\t\t\t<div class="ub-f1 ub ub-ver" style="width: 1%;">\n' +'{prod_arr_html}'+
  153. '\t\t\t\t\t\t\t\t</div>\n' +
  154. '\t\t\t\t\t\t\t\t<div class="ub-f1 ub ub-ver ub-pe ub-ae" style="width: 1%;padding-right: 0.12rem;">\n' +
  155. '\t\t\t\t\t\t\t\t\t<div class="ub " style="color:#666699">\n' +
  156. '\t\t\t\t\t\t\t\t\t\t<div class="ub ub-ae" style="color: #535187;">¥</div>\n' +
  157. '\t\t\t\t\t\t\t\t\t\t<div class="ub-f1 ub ub-ae ulev3" style="color: #535187;line-height: 1;">{order_total_money}</div>\n' +
  158. '\t\t\t\t\t\t\t\t\t</div>\n' +
  159. '{commission_price_html}'+
  160. '\t\t\t\t\t\t\t\t</div>\n' +
  161. '\t\t\t\t\t\t\t</div>\n' +
  162. '\t\t\t\t\t\t</div>\n' +
  163. '\t\t\t\t\t\t<div class="border" style="opacity: 0.1;border-bottom: solid 0.5px #2b3756;"></div>\n' +
  164. '\t\t\t\t\t</div>\n' +
  165. '\t\t\t\t</div>\n' +
  166. '\t\t\t\t<div class="ub ub-pe lightgreen_color" style="padding:0.06rem 0.14rem 0.06rem 0;">\n' +
  167. '{bottom_btn_html}'+
  168. '\t\t\t\t</div>\n' +
  169. '\t\t\t</div>';
  170. html=html.format(htmlObj);
  171. return html;
  172. }
  173. function see_desc(index){
  174. var dict = order_list_arr[index];
  175. location.href='order_detail.html?order_id='+dict['order_id'];
  176. }
  177. function update_price(index){
  178. var dict = order_list_arr[index];
  179. $('.current_price').html('原订单价格:'+dict['order_total_money']+'元,请输入新的价格');
  180. $('.input_balance').val(dict['order_total_money']);
  181. $('.balance_info').css('visibility','hidden');
  182. $('body').css('position','fixed');
  183. $('.model').show();
  184. $('.input_balance').focus();
  185. $('.model').off('click');
  186. $('.model').on('click',function(e){
  187. $('body').css('position','');
  188. $('.model').hide();
  189. });
  190. $('.center_div').off('click');
  191. $('.center_div').on('click',function(e){
  192. e.stopPropagation();
  193. });
  194. $('.btn_update_cancel').off('click');
  195. $('.btn_update_cancel').on('click',function(){
  196. $('body').css('position','');
  197. $('.model').hide();
  198. });
  199. $('.btn_update_ok').off('click');
  200. $('.btn_update_ok').on('click',function(e){
  201. // e.stopPropagation();
  202. var input_balance = $('.input_balance').val();
  203. if(input_balance==="")input_balance=0;
  204. if(input_balance<=0){
  205. $('.balance_info').html('只能输入大于0的数');
  206. $('.balance_info').css('visibility','');
  207. return;
  208. }
  209. if(input_balance === dict['order_total_money']){
  210. $('.balance_info').html('价格没有变化');
  211. $('.balance_info').css('visibility','');
  212. return;
  213. }
  214. var _data = {
  215. order_id:dict['order_id'],
  216. money:input_balance
  217. };
  218. $.ajax({
  219. type: "post",
  220. url: base_api + 'user/fx-user/change-order-money',
  221. data:_data,
  222. async:false,
  223. dataType: 'json',
  224. beforeSend:function(){
  225. loading.show();
  226. },
  227. complete:function(){
  228. delay(function(){
  229. loading.close();
  230. },400);
  231. },
  232. success: function(res_data) {
  233. ZZLog(res_data);
  234. if(false === res_data['flag']) {
  235. if(codeNotLogin === res_data['code']) {
  236. // alert(infoNotLogin)
  237. var URL = '/web/fx/order_list.html';
  238. URL = encodeURI(URL);
  239. location.href = res_data['url'] + URL;
  240. } else if(codeNotRegister === res_data['code']) {
  241. location.href = 'register.html';
  242. } else {
  243. $('.balance_info').html(res_data['msg']);
  244. $('.balance_info').css('visibility','');
  245. }
  246. } else {
  247. //..
  248. var data = res_data['data'];
  249. toast('改价成功',2000);
  250. $('body').css('position','');
  251. $('.model').hide();
  252. $('.balance_info').html('空空');
  253. $('.balance_info').css('visibility','hidden');
  254. order_list_arr.splice(0,order_list_arr.length);
  255. httpList();
  256. }
  257. },
  258. error: function() {
  259. alert(infoApiError);
  260. }
  261. });
  262. });
  263. }
  264. function refund_ticket(index) {
  265. var dict = order_list_arr[index];
  266. var order_id = dict['order_id'];
  267. var flag = confirm('是否确认退款?\n退款后将无法获取佣金');
  268. if(flag) {
  269. var data = {
  270. order_id:order_id
  271. };
  272. ZZLog(base_api + 'prod/prod/cancel-order', data);
  273. $.ajax({
  274. type: "post",
  275. url: base_api + 'prod/prod/cancel-order',
  276. data: data,
  277. dataType: 'json',
  278. success: function(res_data){
  279. ZZLog(res_data);
  280. if(false == res_data['flag']) {
  281. if(codeNotLogin == res_data['code']) {
  282. location.href = auth_login_url;
  283. } else if(codeNotRegister == res_data['code']) {
  284. location.href = 'register.html';
  285. } else {
  286. alert(res_data['msg']);
  287. }
  288. } else {
  289. toast('订单退款成功',300);
  290. delay(function(){
  291. httpLoadInfo();
  292. },400);
  293. }
  294. }
  295. });
  296. }
  297. }
  298. //切换订单状态
  299. function changeTheStatus(obj, type) {
  300. $('.order_type').removeClass('div_title_selected');
  301. $('.order_type').addClass('div_title_common');
  302. $(obj).addClass('div_title_selected');
  303. //待支付
  304. if('0'===type){
  305. _data['status']='1';
  306. _data['is_refund']='';
  307. }else if('1'===type){
  308. //待返佣
  309. _data['status']='';
  310. _data['is_refund']='1';
  311. }else if('2'===type){
  312. //已返佣
  313. _data['status']='';
  314. _data['is_refund']='2';
  315. }else if('3'===type){
  316. //已取消
  317. _data['status']='4,5';
  318. _data['is_refund']='';
  319. }else{}
  320. _data['current_page']=1;
  321. $('.more span').text('加载更多');
  322. $('.more').attr('allow_click','true');
  323. httpLoadInfo();
  324. }
  325. $('.more').on('click',function(){
  326. if($(this).attr('allow_click')==='false'){
  327. return;
  328. }
  329. _data['current_page']+=1;
  330. $('.more span').text('加载中...');
  331. httpList();
  332. });
  333. function httpList(){
  334. $.ajax({
  335. type: "post",
  336. url: base_api + 'user/fx-user/order-list',
  337. data:_data,
  338. dataType: 'json',
  339. beforeSend:function(){
  340. loading.show();
  341. },
  342. complete:function(){
  343. $('.more span').text('加载更多');
  344. loading.close();
  345. },
  346. success: function(res_data) {
  347. ZZLog(res_data);
  348. if(false === res_data['flag']) {
  349. if(codeNotLogin === res_data['code']) {
  350. // alert(infoNotLogin)
  351. var URL = '/web/fx/order_list.html';
  352. URL = encodeURI(URL);
  353. location.href = res_data['url'] + URL;
  354. } else if(codeNotRegister === res_data['code']) {
  355. location.href = 'register.html';
  356. } else {
  357. alert(res_data['msg']);
  358. }
  359. } else {
  360. //..
  361. var data = res_data['data'];
  362. var order_list = data['order_list'];
  363. order_list_arr=order_list_arr.concat(order_list);
  364. if(order_list.length===0){
  365. $('.more span').text('没有更多的数据了');
  366. $('.more').attr('allow_click','false');
  367. }
  368. // 1 待支付 2:已支付 3:已完成 4:已退款 5:已取消
  369. var html = getOrderListHTML(order_list_arr);
  370. $('.list_info').html(html);
  371. }
  372. },
  373. error: function() {
  374. alert(infoApiError);
  375. }
  376. });
  377. }