Nessuna descrizione
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.

refund_index.htm 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. {include file="public/layout" /}
  2. <script type="text/javascript" src="__SKIN__/js/clipboard.min.js"></script>
  3. <body class="bodystyle" style="overflow-y: scroll; cursor: default; -moz-user-select: inherit;min-width:auto;">
  4. <div id="append_parent"></div>
  5. <div id="ajaxwaitid"></div>
  6. <div class="page" style="min-width:auto;padding-bottom: 15px;">
  7. <div class="flexigrid flexigrid-xin">
  8. <div class="header-bar">
  9. <div class="more">
  10. <div class="search">
  11. <div class="content">
  12. <form id="postForm" action="{:url('ShopService/users_edit_after_service')}" method="get" onsubmit="layer_loading('正在处理');" style="display: unset;">
  13. {$searchform.hidden|default=''}
  14. <input type="hidden" name="users_id" value="{$Request.param.users_id}">
  15. <div class="ey-form-item"><label class="users-form-item-label">关键词:</label>
  16. <div class="users-form-item-content">
  17. <div class="users-select">
  18. <div tabindex="0" class="users-select-selection">
  19. <!-- 订单号查询 -->
  20. <div class="sDiv2">
  21. <input type="text" size="50" name="order_code" id="order_code" value="{$Request.param.order_code}" class="qsbox" style="width: 170px;" placeholder="订单号或商品名称...">
  22. </div>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. </form>
  28. <div class="ey-form-item" style="margin-left: 20px;">
  29. <div class="users-form-item-content">
  30. <span class="bt-xin" onclick="OrderQuery();">查询</span>
  31. </div>
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. </div>
  37. </div>
  38. <div class="geduan-xin"></div>
  39. </div>
  40. <div class="page" style="min-width:auto;">
  41. <div class="flexigrid flexigrid-xin" style=" padding-right: 1px; ">
  42. <div class="tableDiv bubbleInfo">
  43. <table cellspacing="0" cellpadding="0" style="width: 100%;">
  44. <thead>
  45. <tr>
  46. <th align="center" abbr="article_title" axis="col3"> <div class="">商品信息</div> </th>
  47. <th abbr="article_time" axis="col6" class="w200"> <div class="">单价/数量</div> </th>
  48. <th abbr="article_time" axis="col6" class="w240"> <div class="">退还金额</div> </th>
  49. <th abbr="article_time" axis="col6" class="w160"> <div class="">处理状态</div> </th>
  50. </tr>
  51. </thead>
  52. <tbody>
  53. {empty name="Service"}
  54. <tr>
  55. <td class="no-data" align="center" axis="col0" colspan="50">
  56. <div class="">
  57. <div class="no_pic"><img src="__SKIN__/images/null-data.png"></div>
  58. </div>
  59. </td>
  60. </tr>
  61. {else/}
  62. {volist name="Service" id="vo"}
  63. <tr class="order-empty"> <td colspan="8"></td> </tr>
  64. <tr>
  65. <td class="biaotou" colspan="8">
  66. <span class="mr15" style=" display: flex; flex-direction: row; align-items: center; ">
  67. <i class="iconfont e-shijian"></i><span class="mr15">{$vo.add_time}</span>
  68. <span class="mr15">订单号:{$vo.order_code} <a class="copy order_code" onclick="OrderCopy('order_code');" data-clipboard-text="{$vo.order_code}">复制</a></span>
  69. <span class="mr15">服务单号:{$vo.refund_code} <a class="copy refund_code" onclick="OrderCopy('refund_code');" data-clipboard-text="{$vo.refund_code}">复制</a></span>
  70. </span>
  71. </td>
  72. </tr>
  73. <tr>
  74. <td>
  75. <div class="goods-detail">
  76. <div class="goods-image">
  77. <a href="{$vo.arcurl}" target="_blank"><img src="{$vo.product_img}"></a>
  78. </div>
  79. <div class="goods-info">
  80. <p class="goods-title"><!-- <span class="shi">实</span> -->{$vo.product_name}</p>
  81. <p class="goods-spec">{$vo.product_spec}</p>
  82. </div>
  83. </div>
  84. </td>
  85. <td class=""><p style="font-weight: 600;">¥{$vo.product_price} X {$vo.num}</p></td>
  86. <td class="" rowspan="1"><p>¥{$vo.refund_price}</p></td>
  87. <td class="" rowspan="1">
  88. <p>
  89. {if condition="1 == $vo.status"}
  90. <span class="zt" style="color: #ff9900;">{$ServiceStatus[$vo.status]|default=''}</span>
  91. {elseif condition="in_array($vo.status, [2, 4, 5, 6, 7])"}
  92. <span class="zt" style="color: #19be6b;">{$ServiceStatus[$vo.status]|default=''}</span>
  93. {else}
  94. <span class="zt" style="color: #939799;">{$ServiceStatus[$vo.status]|default=''}</span>
  95. {/if}
  96. </p>
  97. </td>
  98. </tr>
  99. {/volist}
  100. {/empty}
  101. </tbody>
  102. </table>
  103. </div>
  104. {notempty name="list"}
  105. <div class="tDiv"> <div class="tDiv2"> {include file="public/page" /} </div> <div style="clear:both"></div> </div>
  106. {/notempty}
  107. </div>
  108. </div>
  109. <script type="text/javascript">
  110. $(function() {
  111. $('input[name*=ids]').click(function(){
  112. if ($('input[name*=ids]').length == $('input[name*=ids]:checked').length) {
  113. $('.checkAll').prop('checked','checked');
  114. } else {
  115. $('.checkAll').prop('checked', false);
  116. }
  117. });
  118. $('input[type=checkbox].checkAll').click(function(){
  119. $('input[type=checkbox]').prop('checked',this.checked);
  120. });
  121. });
  122. layui.use('laydate', function(){
  123. var laydate = layui.laydate;
  124. //执行一个laydate实例
  125. laydate.render({
  126. elem: '#add_time_begin' //指定元素
  127. });
  128. laydate.render({
  129. elem: '#add_time_end' //指定元素
  130. });
  131. });
  132. $(document).ready(function() {
  133. // 表格行点击选中切换
  134. $('#flexigrid > table>tbody >tr').click(function(){
  135. $(this).toggleClass('trSelected');
  136. });
  137. // 点击刷新数据
  138. $('.fa-refresh').click(function(){
  139. location.href = location.href;
  140. });
  141. });
  142. // 订单查询
  143. function OrderQuery(isReset) {
  144. if (isReset && 'reset' == isReset) {
  145. window.location.href = "{:url('ShopService/after_service')}";
  146. } else {
  147. $('#postForm').submit();
  148. }
  149. }
  150. // 订单号复制
  151. function OrderCopy(copyClass) {
  152. var clipboard1 = new Clipboard("." + copyClass);
  153. clipboard1.on("success", function(e) {
  154. layer.msg("复制成功");
  155. });
  156. clipboard1.on("error", function(e) {
  157. layer.msg("复制失败!请手动复制", {icon: 5});
  158. });
  159. }
  160. // AJAX调用下载
  161. function OrderExcelExport(obj) {
  162. layer_loading('订单导出中');
  163. $.ajax({
  164. type: 'post',
  165. url : $(obj).attr('data-url'),
  166. data: {
  167. _ajax: 1,
  168. // 导出类型,售后订单固定值6
  169. export_type: 6,
  170. // 搜索条件信息,可为空
  171. pay_name: "{$Request.param.pay_name}",
  172. order_code: "{$Request.param.order_code}",
  173. end_time: "{$Request.param.add_time_end}",
  174. start_time: "{$Request.param.add_time_begin}",
  175. order_terminal: "{$Request.param.order_terminal}",
  176. },
  177. dataType: 'json',
  178. success: function(res) {
  179. layer.closeAll();
  180. if (1 == res.code) {
  181. window.location.href = res.url;
  182. } else {
  183. showErrorAlert(res.msg);
  184. }
  185. },
  186. error: function(e) {
  187. layer.closeAll();
  188. showErrorAlert(e.responseText);
  189. }
  190. });
  191. }
  192. // 确认收货
  193. function ConfirmReceipt(service_id, users_id, order_id, status) {
  194. // 需要二次确认
  195. layer.confirm('确认收到货物?', {
  196. title: false,
  197. closeBtn: 0
  198. }, function() {
  199. PerformOperation(service_id, users_id, order_id, status, 0, 0, 0, '');
  200. }, function(index) {
  201. layer.closeAll(index);
  202. });
  203. }
  204. // 确认发货
  205. function ConfirmSend(service_id, users_id, order_id, status) {
  206. var confirmTitle = '快递公司:<input type="text" id="deliveryName"><br/><br/>';
  207. confirmTitle += '快递单号:<input type="text" id="deliveryCode">';
  208. layer.confirm(confirmTitle, {
  209. title: false,
  210. closeBtn: 0
  211. }, function() {
  212. var deliveryName = $('#deliveryName').val();
  213. var deliveryCode = $('#deliveryCode').val();
  214. var delivery = {name: deliveryName,code: deliveryCode};
  215. PerformOperation(service_id, users_id, order_id, status, 0, 0, 0, '', delivery);
  216. }, function(index) {
  217. layer.closeAll(index);
  218. });
  219. }
  220. // 售后服务手动完成服务单并自行退款
  221. function ManualRefund(service_id, users_id, order_id, service_type) {
  222. layer.prompt({
  223. formType: 2,
  224. value: ' ',
  225. title: false,
  226. closeBtn: 0,
  227. id: 'manualRefund',
  228. btn: ['完成并退款', '取消'],
  229. area: ['300px', '100px'],
  230. success: function(layero, index) {
  231. var msg = '<span style="color: red; font-size: 16px;">是否确认手动完成服务单并自行退款?</span><br/><br/> <span style="color: #999; font-size: 14px;">请填写手动完成服务单原因(非必填)。</span><br/><br/> ';
  232. $("#manualRefund").prepend(msg);
  233. }
  234. }, function(value, index, elem) {
  235. // 售后服务手动完成服务单并自行退款
  236. var status = 1 == service_type ? 6 : 7;
  237. PerformOperation(service_id, users_id, order_id, status, 0, 0, 1, value);
  238. layer.close(index);
  239. });
  240. }
  241. // 查看手动退款原因
  242. function BrowseRefundNote(layer_str) {
  243. layer.confirm(layer_str, {title: false, closeBtn: 0, btn: ['关闭'], area: ['25%', '25%']});
  244. }
  245. // 确认审核意见
  246. function AuditOpinion(service_id, users_id, order_id, service_type, status) {
  247. var type = 1 == service_type ? "<span style='color: blue;'> 换货 </span>" : "<span style='color: red;'> 退货 </span>";
  248. if (2 == status) {
  249. var confirmMsg = '确认通过'+type+'申请?';
  250. var confirmBtn = ['通过审核', '取消'];
  251. } else if (3 == status) {
  252. var confirmMsg = '确认驳回'+type+'申请?';
  253. var confirmBtn = ['驳回申请', '取消'];
  254. } else {
  255. layer.msg('类型错误,刷新重试', {time: 1500}, function() {window.location.reload();});
  256. }
  257. layer.confirm(confirmMsg, {
  258. closeBtn: 0,
  259. title: false,
  260. btn: confirmBtn,
  261. }, function() {
  262. // 确认执行
  263. PerformOperation(service_id, users_id, order_id, status, 0, 0);
  264. });
  265. }
  266. // 确认完成服务
  267. function CarryOut(service_id, users_id, order_id, status) {
  268. var confirmMsg = '';
  269. if (2 == status) {
  270. confirmMsg = "目前处于<span style='color: blue;'>等待会员发货</span>阶段,";
  271. } else if (4 == status) {
  272. confirmMsg = "目前处于<span style='color: blue;'>等待商家收货</span>阶段,";
  273. } else if (5 == status) {
  274. confirmMsg = "目前处于<span style='color: blue;'>等待商家发货</span>阶段,";
  275. }
  276. layer.confirm(confirmMsg + "确认完成<span style='color: blue;'>换货</span>服务?", {
  277. closeBtn: 0,
  278. title: false,
  279. btn: ['完成换货', '取消'],
  280. }, function() {
  281. // 确认换货结束
  282. PerformOperation(service_id, users_id, order_id, 6, 0, 0);
  283. });
  284. }
  285. // 确认退款操作
  286. function Refund(service_id, users_id, order_id, status, refund_price) {
  287. var confirmMsg = '';
  288. if (2 == status) {
  289. confirmMsg = "目前处于<span style='color: red;'>等待会员发货</span>阶段,";
  290. } else if (4 == status) {
  291. confirmMsg = "目前处于<span style='color: red;'>等待商家收货</span>阶段,";
  292. } else if (5 == status) {
  293. confirmMsg = "商家已收货,";
  294. }
  295. layer.confirm(confirmMsg + "确认完成<span style='color: red;'>退货</span>服务并<span style='color: red;'>退款到余额</span>?", {
  296. closeBtn: 0,
  297. title: false,
  298. btn: ['退款到余额', '取消'],
  299. }, function() {
  300. // 确认
  301. PerformOperation(service_id, users_id, order_id, 7, 1, refund_price);
  302. });
  303. }
  304. // 执行审核操作
  305. function PerformOperation(service_id, users_id, order_id, status, is_refund, refund_price, manual_refund, refund_note, delivery) {
  306. layer_loading('正在处理');
  307. $.ajax({
  308. url: "{:url('ShopService/after_service_deal_with')}",
  309. data: {
  310. service_id: service_id,
  311. users_id: users_id,
  312. order_id: order_id,
  313. status: status,
  314. is_refund: is_refund,
  315. refund_price: refund_price,
  316. manual_refund: manual_refund,
  317. refund_note: refund_note,
  318. delivery: delivery,
  319. _ajax: 1
  320. },
  321. type: 'post',
  322. dataType: 'json',
  323. success:function(res) {
  324. layer.closeAll();
  325. if (1 == res.code) {
  326. layer.msg(res.msg, {time: 1500}, function() {
  327. window.location.reload();
  328. });
  329. } else {
  330. layer.msg(res.msg, {time: 1500});
  331. }
  332. }
  333. });
  334. }
  335. </script>
  336. {include file="public/footer" /}