edit.blade.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. @extends('layouts.app')
  2. @section('title')编辑-问题件@endsection
  3. @section('content')
  4. @component("order.issue.menu")
  5. @endcomponent
  6. <div class="container-fluid d-none" id="editOrderIssue">
  7. <div class="card col-md-8 offset-md-2 ">
  8. <div class="card-header">问题件修改</div>
  9. <div class="card-body">
  10. <div class="form-group row">
  11. <label for="name" class="col-2 col-form-label text-right">原始客户订单号</label>
  12. <div class="col-8">
  13. <input type="text" class="form-control" name="client_code" v-model="order.client_code" disabled>
  14. </div>
  15. </div>
  16. <div class="form-group row">
  17. <label class="col-2 col-form-label text-right">问题类别</label>
  18. <div class="col-8">
  19. <select name="order_issue_type_id" class="form-control" id="order_issue_type_id" v-model="orderIssues.order_issue_type_id">
  20. <option value></option>
  21. <option v-for="type in orderIssueType" :value="type.id">@{{ type.name }}</option>
  22. </select>
  23. </div>
  24. </div>
  25. <div class="form-group row">
  26. <label class="col-2 col-form-label text-right">客户</label>
  27. <div class="col-8">
  28. <select name="owner_id" class="form-control" id="owner_id" v-model="order.owner_id">
  29. <option value></option>
  30. <option v-for="type in owners" :value="type.id">@{{ type.name }}</option>
  31. </select>
  32. </div>
  33. </div>
  34. <div class="form-group row">
  35. <label class="col-2 col-form-label text-right">承运商</label>
  36. <div class="col-8">
  37. <select name="logistic_id" class="form-control" id="logistic_id" v-model="order.logistic_id">
  38. <option value></option>
  39. <option v-for="type in logistics" :value="type.id">@{{ type.name }}</option>
  40. </select>
  41. </div>
  42. </div>
  43. <div class="form-group row">
  44. <label class="col-2 col-form-label text-right">退回单号</label>
  45. <div class="col-8">
  46. <input type="text" class="form-control" name="logistic_number" v-model="orderIssues.logistic_number_return">
  47. </div>
  48. </div>
  49. <div class="form-group row">
  50. <label class="col-2 col-form-label text-right">二次客户订单号</label>
  51. <div class="col-8">
  52. <input type="text" name="second_order_id" class="form-control" v-model="orderIssues.second_client_no" @change="getSecondOrder($event)" id="order_id">
  53. </div>
  54. </div>
  55. <div class="form-group row">
  56. <label class="col-2 col-form-label text-right">二次订单商品详情</label>
  57. <div class="col-8" >
  58. <div class="alert alert-success" v-if="secondOrder">二次订单商品详情已填充</div>
  59. <div class="alert alert-secondary" v-else>二次订单商品详情</div>
  60. <div v-if="secondOrder">
  61. <table class="table" v-if="secondOrder.packages">
  62. <tr><th>条码</th><th>商品名</th><th>数量</th></tr>
  63. <template v-for="package in secondOrder.packages">
  64. <tr v-for="commodity in package.commodities">
  65. <td>@{{ commodity.commodity.sku }}</td>
  66. <td>@{{ commodity.commodity.name }}</td>
  67. <td>@{{ commodity.amount }}</td>
  68. </tr>
  69. </template>
  70. </table>
  71. </div>
  72. </div>
  73. </div>
  74. <div class="form-group row">
  75. <label class="col-2 col-form-label text-right">情况说明</label>
  76. <div class="col-8">
  77. <textarea name="result_explain" class="form-control" v-model="orderIssues.result_explain"></textarea>
  78. </div>
  79. </div>
  80. <div class="form-group row">
  81. <label class="col-2 col-form-label text-right">最终状态</label>
  82. <div class="col-8">
  83. <select name="final_status" class="form-control" v-model="orderIssues.final_status" id="final_status">
  84. <option></option>
  85. <option v-for="value in final_status" :value="value">@{{ value }}</option>
  86. </select>
  87. </div>
  88. </div>
  89. <div class="form-group row">
  90. <label class="col-2 col-form-label text-right">承运商赔偿金额</label>
  91. <div class="col-8">
  92. <input type="number" name="logistic_indemnity_money" class="form-control" id="logistic_indemnity_money"
  93. v-model="orderIssues.logistic_indemnity_money">
  94. </div>
  95. </div>
  96. <div class="form-group row">
  97. <label class="col-2 col-form-label text-right">承运商快递减免</label>
  98. <div class="col-8">
  99. <select name="logistic_express_remission" class="form-control"
  100. v-model="orderIssues.logistic_express_remission">
  101. <option value></option>
  102. <option v-for="remission in logisticExpressRemission" :value="remission">@{{ remission }}
  103. </option>
  104. </select>
  105. </div>
  106. </div>
  107. <div class="form-group row">
  108. <label class="col-2 col-form-label text-right">宝时赔偿金额</label>
  109. <div class="col-8">
  110. <input type="number" name="baoshi_indemnity_money" class="form-control" id="baoshi_indemnity_money"
  111. v-model="orderIssues.baoshi_indemnity_money">
  112. </div>
  113. </div>
  114. <div class="form-group row">
  115. <label class="col-2 col-form-label text-right">宝时快递减免</label>
  116. <div class="col-8">
  117. <select name="baoshi_express_remission" class="form-control" id="baoshi_express_remission"
  118. v-model="orderIssues.baoshi_express_remission">
  119. <option value></option>
  120. <option v-for="remission in baoShiExpressRemission" :value="remission">@{{ remission }}
  121. </option>
  122. </select>
  123. </div>
  124. </div>
  125. <div class="form-group row">
  126. <label class="col-2 col-form-label text-right">事故责任方</label>
  127. <div class="col-8">
  128. <select name="user_workgroup_id" class="form-control" id="user_workgroup_id"
  129. v-model="orderIssues.user_workgroup_id">
  130. <option value></option>
  131. <option v-for="workgroup in userWorkgroup" :value="workgroup.id">@{{ workgroup.name }}</option>
  132. </select>
  133. </div>
  134. </div>
  135. <div class="form-group row">
  136. <label class="col-2 col-form-label text-right">事故责任方</label>
  137. <div class="col-8">
  138. <select name="user_owner_group_id" class="form-control" id="user_owner_group_id" v-model="orderIssues.user_owner_group_id">
  139. <option value></option>
  140. <option v-for="userOwnerGroup in userOwnerGroups" :value="userOwnerGroup.id">@{{ userOwnerGroup.name }}</option>
  141. </select>
  142. </div>
  143. </div>
  144. <div class="form-group row">
  145. <label class="col-2 col-form-label text-right"></label>
  146. <div class="col-8">
  147. <button type="submit" class="btn btn-success form-control" @click="submitFake" :disabled="isSubmit">提交修改
  148. </button>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. </div>
  154. @endsection
  155. @section('lastScript')
  156. <script type="text/javascript">
  157. let editVue = new Vue({
  158. el: '#editOrderIssue',
  159. data: {
  160. orderIssues: {!! $orderIssue!!},
  161. order: @if($order){!! $order !!}@else {id:null,owner_id:null}@endif,
  162. secondOrder: @if($secondOrder){!! $secondOrder !!}@else null @endif,
  163. rejectedBill: @if($rejectedBill){!! $rejectedBill !!}@else {logistic_number_return:''}@endif,
  164. create_RejectedBill:'',
  165. owners:{!! $owners !!},
  166. logistics:{!! $logistics !!},
  167. userWorkgroup: {!! $userWorkgroup !!},
  168. userOwnerGroups:{!! $userOwnerGroups !!},
  169. shops:{!! $shops !!},
  170. orderIssueType:{!! $orderIssueType !!},
  171. rejectingStatus: ['无', '未退回', '全部退回', '部分退回', '差异退回', '超量退回'],
  172. final_status: ['已解决', '待退回', '退回中',],
  173. logisticExpressRemission: ['原单减免', '补发减免', '全部减免'],
  174. baoShiExpressRemission: ['原单减免', '补发减免', '全部减免'],
  175. logistic_number:@if($rejectedBill)'{!! $rejectedBill->logistic_number_return !!}'@else ''@endif,
  176. isSubmit:false
  177. },
  178. mounted: function () {
  179. $("#editOrderIssue").removeClass('d-none');
  180. },
  181. methods: {
  182. submitFake(){
  183. let _this = this;
  184. let p= new Promise(function (resolve) {
  185. let client_code = _this.orderIssues.second_client_no;
  186. if(client_code){
  187. let data = {clientNo:client_code};
  188. tempTip.setDuration(99999);
  189. tempTip.waitingTip('提交中');
  190. axios.post("{{url('apiLocal/order/issue/getOrderInfoByClientNo')}}",data).then(function(res){
  191. tempTip.setDuration(2000);
  192. tempTip.cancelWaitingTip();
  193. if(res.data.success){
  194. _this.secondOrder = res.data.data;
  195. resolve();
  196. } else {
  197. tempTip.setDuration(4000);
  198. tempTip.show('查询订单信息出现异常:' + res.data.fail_info);
  199. }
  200. }).catch(function(err){
  201. tempTip.cancelWaitingTip();
  202. tempTip.setDuration(4000);
  203. tempTip.show('网络异常:' + err);
  204. });
  205. }else{
  206. resolve();
  207. }
  208. })
  209. p.then(this.orderIssueUpdate);
  210. },
  211. orderIssueUpdate() {
  212. let arr = {
  213. '问题类别':'order_issue_type_id',
  214. '处理状态':'handle_status',
  215. '处理结果说明':'result_explain',
  216. '承运商赔偿金额':'logistic_indemnity_money',
  217. '承运商快递减免':'logistic_express_remission',
  218. '宝时赔偿金额':'baoshi_indemnity_money',
  219. '宝时快递减免':'baoshi_express_remission',
  220. '退回单号':'logistic_number_return',
  221. '退回单号货主':'id_owner',
  222. '退回单号承运商':'id_logistic_return',
  223. }
  224. axios.post('{{url("apiLocal/order/issue/update")}}',this.orderIssues).then(function (response) {
  225. if(response.data.success){
  226. tempTip.setDuration(1000);
  227. tempTip.showSuccess('修改成功正在返回查询页面');
  228. window.location.href = "{{url("order/issue/index")}}";
  229. }else{
  230. tempTip.setDuration(3000);
  231. tempTip.show(response.data.errors[0][0]);
  232. response.data.errors.forEach(function(item){
  233. let target = $('#'+arr[item[1]]);
  234. target.addClass('is-invalid').change(function(){
  235. target.removeClass('is-invalid');
  236. });
  237. })
  238. }
  239. }).catch(function(error){
  240. tempTip.setDuration(3000)
  241. tempTip.show('修改出现异常:'+error);
  242. })
  243. },
  244. getSecondOrder(){
  245. let _this = this;
  246. let client_code = this.orderIssues.second_client_no;
  247. if(!client_code){
  248. _this.secondOrder = '';
  249. _this.orderIssues.second_order_id = null;
  250. return ;
  251. }
  252. if(client_code){
  253. let data = {clientNo:client_code};
  254. axios.post("{{url('apiLocal/order/issue/getOrderInfoByClientNo')}}",data).then(function(res){
  255. if(res.data.success){
  256. if(res.data.message){
  257. tempTip.setDuration(2000);
  258. tempTip.okWindow(res.data.message,'确认')
  259. _this.secondOrder = null;
  260. }else{
  261. _this.secondOrder = res.data.data;
  262. }
  263. } else {
  264. tempTip.setDuration(4000);
  265. tempTip.show('查询订单信息出现异常:' + res.data.fail_info);
  266. }
  267. }).catch(function(err){
  268. tempTip.setDuration(4000);
  269. tempTip.show('网络异常:' + err);
  270. });
  271. }
  272. },
  273. backOrderIssueIndex(){
  274. window.location.href="javascript:history.go(-1)";
  275. },
  276. }
  277. });
  278. $('.is-invalid').change(function(){
  279. $(this).removeClass('is-invalid');
  280. })
  281. </script>
  282. @endsection