refund_apply.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <!-- +---------------------------------------------------------------------- -->
  2. <!-- | CRMEB [ CRMEB赋能开发者,助力企业发展 ] -->
  3. <!-- +---------------------------------------------------------------------- -->
  4. <!-- | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved. -->
  5. <!-- +---------------------------------------------------------------------- -->
  6. <!-- | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 -->
  7. <!-- +---------------------------------------------------------------------- -->
  8. <!-- | Author: CRMEB Team <admin@crmeb.com> -->
  9. <!-- +---------------------------------------------------------------------- -->
  10. {extend name="public/container"}
  11. {block name="title"}申请退款{/block}
  12. {block name="head_top"}
  13. <link rel="stylesheet" href="{__STATIC_PATH}plug/layui/css/layui.css" media="all">
  14. <script src="{__STATIC_PATH}plug/layui/layui.js" charset="utf-8"></script>
  15. <style>
  16. body {
  17. background-color: #f5f5f5;
  18. }
  19. </style>
  20. {/block}
  21. {block name="content"}
  22. <div v-cloak id="app">
  23. <div class="refund-apply">
  24. {volist name="order.cartInfo" id="cart"}
  25. <div class="goods" >
  26. <div class="image">
  27. <img class="img" src="{$cart.productInfo.image}">
  28. </div>
  29. <div class="text">
  30. <div class="name" >{$cart.productInfo.store_name}</div>
  31. <div class="money">
  32. <div class="price">¥<span>{$cart.productInfo.price}</span></div>
  33. </div>
  34. </div>
  35. <div class="number">x{$cart.cart_num}</div>
  36. </div>
  37. {/volist}
  38. <form action="javascript:void(0)">
  39. <div class="form-bd">
  40. <label>
  41. <div>退款金额</div>
  42. <input value="¥{$order.pay_price}" readonly>
  43. </label>
  44. <label>
  45. <div>退款原因</div>
  46. <select v-model="refund_reason" style="width: 70%;margin-left: 3%;">
  47. <option value="">选择退款原因</option>
  48. <option v-for="item in reason" :value="item.reason_refund">{{item.reason_refund}}</option>
  49. </select>
  50. <div class="iconfont iconxiangyou"></div>
  51. </label>
  52. <label>
  53. <div>备注说明</div>
  54. <textarea rows="4" placeholder="填写备注信息" v-model="remarks"></textarea>
  55. </label>
  56. <div class="upload">
  57. <div><div>上传凭证</div><div>(最多可上传3张)</div></div>
  58. <div>
  59. <ul>
  60. <li v-for="(pic,index) in pics">
  61. <span class="iconfont iconguanbi2" @click="imgdel(index)"></span>
  62. <img :src="pic">
  63. </li>
  64. </ul>
  65. <label v-show='pics.length < 3' id="test1">
  66. <div class="image">
  67. <img src="{__WAP_PATH}crmeb/images/camera-icon.png">
  68. </div>
  69. <div class="text" >上传凭证</div>
  70. </label>
  71. </div>
  72. </div>
  73. </div>
  74. <div class="form-ft">
  75. <button type="submit" @click="submit">提交</button>
  76. </div>
  77. </form>
  78. </div>
  79. <quick-menu></quick-menu>
  80. </div>
  81. <script>
  82. var site_name = '{$Auth_site_name}';
  83. var orderId="{$order_id}";
  84. require(['vue', 'store', 'helper', 'quick'], function (Vue, api, $h) {
  85. var app = new Vue({
  86. el: '#app',
  87. data: {
  88. orderId:orderId,
  89. reason:[],
  90. refund_reason:'',
  91. remarks:'',
  92. pics:[]
  93. },
  94. mounted: function () {
  95. var that=this;
  96. that.refundReason();
  97. layui.use('upload', function () {
  98. var $ = layui.jquery, upload = layui.upload;
  99. upload.render({
  100. elem: '#test1'
  101. , url: "{:url('wap/authApi/upload')}"
  102. , done: function (res) {
  103. //如果上传失败
  104. if (res.code == 400) {
  105. return layer.msg('上传失败');
  106. } else {
  107. that.pics = that.pics.concat(res.data.url);
  108. }
  109. }
  110. , error: function (err) {
  111. console.log(err);
  112. }
  113. });
  114. });
  115. },
  116. methods: {
  117. imgdel:function(index){
  118. var that=this;
  119. for(var i=0;i<that.pics.length;i++){
  120. if(index==i){
  121. that.pics.splice(index,1);
  122. }
  123. }
  124. },
  125. refundReason: function () {
  126. api.baseGet($h.U({c:'auth_api',a:'refund_reason'}),function (res) {
  127. this.reason=res.data.data;
  128. }.bind(this),function (res) {
  129. this.reason=[];
  130. }.bind(this));
  131. },
  132. submit:function () {
  133. if (!this.refund_reason) {
  134. return $h.showMsg('请选择退款原因');
  135. }
  136. api.basePost($h.U({c:'auth_api',a:'apply_order_refund',p:{uni:this.orderId}}),{
  137. refund_reason:this.refund_reason,
  138. remarks:this.remarks,
  139. pics:this.pics
  140. },function (res) {
  141. if(res.data.code==200){
  142. $h.showMsg({
  143. title:'申请成功',
  144. icon:'success',
  145. success:function (){
  146. window.location.href=$h.U({ c: 'special', a: 'order',p:{uni:this.orderId}});
  147. }
  148. });
  149. }
  150. }.bind(this),function (res) {
  151. $h.showMsg({
  152. title:'申请失败',
  153. icon:'error',
  154. success:function (){
  155. location.reload();
  156. }
  157. });
  158. }.bind(this));
  159. }
  160. }
  161. });
  162. });
  163. </script>
  164. {/block}