edit.blade.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  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. <input type="hidden" name="order_id" v-model="orderIssues.order_id">
  10. <input type="hidden" name="id" v-model="orderIssues.id">
  11. <input type="hidden" name="rejected_bill_id" v-model="orderIssues.rejected_bill_id">
  12. <input type="hidden" name="order_issue_type_id" v-model="orderIssues.order_issue_type_id">
  13. <input type="hidden" name="second_order_id" v-model="orderIssues.second_order_id">
  14. <div class="card-body">
  15. <div class="form-group row">
  16. <label for="name" class="col-2 col-form-label text-right">原始客户订单号</label>
  17. <div class="col-8">
  18. <input type="text" class="form-control" name="client_code" v-model="order.client_code" disabled>
  19. </div>
  20. </div>
  21. <div class="form-group row">
  22. <label class="col-2 col-form-label text-right">问题类别</label>
  23. <div class="col-8">
  24. <select name="order_issue_type_id" class="form-control" id="order_issue_type_id" v-model="orderIssues.order_issue_type_id">
  25. <option value></option>
  26. <option v-for="type in orderIssueType" :value="type.id">@{{ type.name }}</option>
  27. </select>
  28. </div>
  29. </div>
  30. <div class="form-group row">
  31. <label class="col-2 col-form-label text-right">客户</label>
  32. <div class="col-8">
  33. <select name="owner_id" class="form-control" id="owner_id" v-model="order.owner_id">
  34. <option value></option>
  35. <option v-for="type in owners" :value="type.id">@{{ type.name }}</option>
  36. </select>
  37. </div>
  38. </div>
  39. <div class="form-group row">
  40. <label class="col-2 col-form-label text-right">承运商</label>
  41. <div class="col-8">
  42. <select name="logistic_id" class="form-control" id="logistic_id" v-model="order.logistic_id">
  43. <option value></option>
  44. <option v-for="type in logistics" :value="type.id">@{{ type.name }}</option>
  45. </select>
  46. </div>
  47. </div>
  48. <div class="form-group row">
  49. <label class="col-2 col-form-label text-right">退回单号</label>
  50. <div class="col-8">
  51. <input type="text" class="form-control" name="logistic_number" v-model="rejectedBill.logistic_number_return" @blur="getRejectedBill" id="logistic_number_return">
  52. </div>
  53. </div>
  54. <div class="form-group row" >
  55. <label class="col-2 col-form-label text-right">退回单号客户</label>
  56. <div class="col-8 form-group">
  57. <select class="form-control" name="id_owner" v-model="rejectedBill.id_owner" id="id_owner">
  58. <option value></option>
  59. <option v-for="owner in owners" :value="owner.id">@{{ owner.name }}</option>
  60. </select>
  61. </div>
  62. </div>
  63. <div class="form-group row" >
  64. <label class="col-2 col-form-label text-right">退回单号承运商</label>
  65. <div class="col-8 form-group">
  66. <select class="form-control" name="id_logistic_return" v-model="rejectedBill.id_logistic_return" id="id_logistic_return">
  67. <option value></option>
  68. <option v-for="logistic in logistics" :value="logistic.id">@{{ logistic.name }}</option>
  69. </select>
  70. </div>
  71. </div>
  72. <div class="form-group row">
  73. <label class="col-2 col-form-label text-right">二次客户订单号</label>
  74. <div class="col-8">
  75. <input type="text" name="second_order_id" class="form-control" v-model="secondOrder.client_code" @blur="getSecondOrder($event)" id="order_id">
  76. </div>
  77. </div>
  78. <div class="form-group row">
  79. <label class="col-2 col-form-label text-right">二次运单商品详情</label>
  80. <div class="col-8">
  81. <div class="alert alert-success" v-if="secondOrder.packages">二次运单商品详情已填充</div>
  82. <div class="alert alert-secondary" v-else>二次运单商品详情</div>
  83. <table class="table" v-if="secondOrder.packages">
  84. <tr><th>条码</th><th>商品名</th><th>数量</th></tr>
  85. <template v-for="package in secondOrder.packages">
  86. <tr v-for="commodity in package.commodities">
  87. <td>@{{ commodity.commodity.sku }}</td>
  88. <td>@{{ commodity.commodity.name }}</td>
  89. <td>@{{ commodity.amount }}</td>
  90. </tr>
  91. </template>
  92. </table>
  93. </div>
  94. </div>
  95. <div class="form-group row">
  96. <label class="col-2 col-form-label text-right">处理结果</label>
  97. <div class="col-8">
  98. <textarea name="result_explain" class="form-control" v-model="orderIssues.result_explain"></textarea>
  99. </div>
  100. </div>
  101. <div class="form-group row">
  102. <label class="col-2 col-form-label text-right">最终状态</label>
  103. <div class="col-8">
  104. <select name="final_status" class="form-control" v-model="orderIssues.final_status" id="final_status">
  105. <option></option>
  106. <option v-for="value in final_status" :value="value">@{{ value }}</option>
  107. </select>
  108. </div>
  109. </div>
  110. <div class="form-group row">
  111. <label class="col-2 col-form-label text-right">承运商赔偿金额</label>
  112. <div class="col-8">
  113. <input type="number" name="logistic_indemnity_money" class="form-control" id="logistic_indemnity_money"
  114. v-model="orderIssues.logistic_indemnity_money">
  115. </div>
  116. </div>
  117. <div class="form-group row">
  118. <label class="col-2 col-form-label text-right">承运商快递减免</label>
  119. <div class="col-8">
  120. <select name="logistic_express_remission" class="form-control"
  121. v-model="orderIssues.logistic_express_remission">
  122. <option value></option>
  123. <option v-for="remission in logisticExpressRemission" :value="remission">@{{ remission }}
  124. </option>
  125. </select>
  126. </div>
  127. </div>
  128. <div class="form-group row">
  129. <label class="col-2 col-form-label text-right">宝时赔偿金额</label>
  130. <div class="col-8">
  131. <input type="number" name="baoshi_indemnity_money" class="form-control" id="baoshi_indemnity_money"
  132. v-model="orderIssues.baoshi_indemnity_money">
  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="baoshi_express_remission" class="form-control" id="baoshi_express_remission"
  139. v-model="orderIssues.baoshi_express_remission">
  140. <option value></option>
  141. <option v-for="remission in baoShiExpressRemission" :value="remission">@{{ remission }}
  142. </option>
  143. </select>
  144. </div>
  145. </div>
  146. <div class="form-group row">
  147. <label class="col-2 col-form-label text-right">事故责任方</label>
  148. <div class="col-8">
  149. <select name="user_workgroup_id" class="form-control" id="user_workgroup_id"
  150. v-model="orderIssues.user_workgroup_id">
  151. <option value></option>
  152. <option v-for="workgroup in userWorkgroup" :value="workgroup.id">@{{ workgroup.name }}</option>
  153. </select>
  154. </div>
  155. </div>
  156. <div class="form-group row">
  157. <label class="col-2 col-form-label text-right"></label>
  158. <div class="col-8">
  159. <button type="submit" class="btn btn-success form-control" @click="orderIssueUpdate">提交修改
  160. </button>
  161. </div>
  162. </div>
  163. </div>
  164. <div class="modal fade" id="alertModal" tabindex="-1" role="dialog" aria-labelledby="alertModalLabel" aria-hidden="true">
  165. <div class="modal-dialog modal-dialog-centered">
  166. <div class="modal-content">
  167. <div class="modal-header">
  168. <h5 class="modal-title" id="exampleModalLabel">提示</h5>
  169. </div>
  170. <div class="modal-body">
  171. <div class="alert alert-success">
  172. 订单问题件已修改
  173. </div>
  174. </div>
  175. <div class="modal-footer">
  176. <button type="button" class="btn btn-primary" data-dismiss="modal" @click="backOrderIssueIndex">返回查询页面</button>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. </div>
  183. @endsection
  184. @section('lastScript')
  185. <script type="text/javascript">
  186. let editVue = new Vue({
  187. el: '#editOrderIssue',
  188. data: {
  189. orderIssues: {!! $orderIssue!!},
  190. order: @if($order){!! $order !!}@else {id:null,owner_id:null}@endif,
  191. secondOrder: @if($secondOrder){!! $secondOrder !!}@else {client_code:''}@endif,
  192. rejectedBill: @if($rejectedBill){!! $rejectedBill !!}@else {logistic_number_return:''}@endif,
  193. create_RejectedBill:'',
  194. owners:{!! $owners !!},
  195. logistics:{!! $logistics !!},
  196. userWorkgroup: {!! $userWorkgroup !!},
  197. shops:{!! $shops !!},
  198. orderIssueType:{!! $orderIssueType !!},
  199. rejectingStatus: ['无', '未退回', '全部退回', '部分退回', '差异退回', '超量退回'],
  200. final_status: ['已解决', '待退回', '退回中',],
  201. logisticExpressRemission: ['原单减免', '部分减免', '全部减免'],
  202. baoShiExpressRemission: ['原单减免', '部分减免', '全部减免'],
  203. logistic_number:@if($rejectedBill)'{!! $rejectedBill->logistic_number_return !!}'@else ''@endif
  204. },
  205. mounted: function () {
  206. $("#editOrderIssue").removeClass('d-none');
  207. console.log(this.rejectedBill);
  208. },
  209. watch:{
  210. secondOrder:{
  211. handler:function(value){
  212. if(value.code === ''){
  213. this.secondOrder.packages = '';
  214. }
  215. },
  216. deep:true,
  217. },
  218. },
  219. methods: {
  220. getRejectedBill(){
  221. let logistic_number_return = this.rejectedBill.logistic_number_return;
  222. console.log(123,logistic_number_return);
  223. let _this = this;
  224. if( logistic_number_return === null || logistic_number_return == '' ){
  225. this.rejectedBill = {logistic_number_return:logistic_number_return} ;
  226. this.orderIssues.rejected_bill_id = null;
  227. return ;
  228. }
  229. let data = {logisticNumberReturn:logistic_number_return};
  230. axios.post("{{url('apiLocal/rejectedBill/getRejectedByLogisticNumberReturn')}}",data).then(function(res){
  231. if(res.data.success){
  232. if(res.data.rejectedBill){
  233. _this.rejectedBill = res.data.rejectedBill;
  234. _this.rejectedBill.id_logistic_return = res.data.rejectedBill.id_logistic_return;
  235. _this.rejectedBill.id_owner = res.data.rejectedBill.id_owner;
  236. _this.orderIssues.rejected_bill_id = res.data.rejectedBill.id;
  237. }
  238. if(res.data.msg){
  239. tempTip.setDuration(2000);
  240. tempTip.showSuccess(res.data.msg);
  241. _this.orderIssues.rejected_bill_id = null;
  242. _this.rejectedBill = {logistic_number_return:logistic_number_return};
  243. }else {
  244. tempTip.setDuration(2000);
  245. tempTip.showSuccess('找到对应的问题单');
  246. }
  247. }else{
  248. tempTip.setDuration(4000);
  249. tempTip.show(res.data.fain_info);
  250. }
  251. }).catch(function(err){
  252. tempTip.setDuration(4000);
  253. tempTip.show('网络异常:' + err);
  254. });
  255. },
  256. orderIssueUpdate() {
  257. let arr = {
  258. '问题类别':'order_issue_type_id',
  259. '处理状态':'handle_status',
  260. '处理结果说明':'result_explain',
  261. '承运商赔偿金额':'logistic_indemnity_money',
  262. '承运商快递减免':'logistic_express_remission',
  263. '宝时赔偿金额':'baoshi_indemnity_money',
  264. '宝时快递减免':'baoshi_express_remission',
  265. '宝时快递减免':'baoshi_express_remission',
  266. '宝时快递减免':'baoshi_express_remission',
  267. '退回单号':'logistic_number_return',
  268. '退回单号货主':'id_owner',
  269. '退回单号承运商':'id_logistic_return',
  270. }
  271. let data = {orderIssues:this.orderIssues,order:this.order,rejectedBill:this.rejectedBill};
  272. if(data.rejectedBill.logistic_number_return == null || data.rejectedBill.logistic_number_return===''){
  273. data.rejectedBill = null;
  274. }
  275. axios.post('{{url("apiLocal/order/issue/update")}}', data).then(function (res) {
  276. if (res.data.success) {
  277. $('#alertModal').modal('show');
  278. } else {
  279. tempTip.setDuration(3000);
  280. tempTip.show(res.data.errors[0][0]);
  281. res.data.errors.forEach(function(item){
  282. let target = $('#'+arr[item[1]]);
  283. target.addClass('is-invalid').change(function(){
  284. target.removeClass('is-invalid');
  285. });
  286. })
  287. $('#alertModal').modal('hide');
  288. }
  289. }).catch(function (err) {
  290. tempTip.setDuration(4000);
  291. tempTip.show('网络异常:' + err);
  292. $('#alertModal').modal('hide');
  293. });
  294. },
  295. getSecondOrder(e){
  296. let _this = this;
  297. let client_code = $(e.target).val();
  298. if(!client_code){
  299. _this.secondOrder = '';
  300. _this.orderIssues.second_order_id = null;
  301. return ;
  302. }
  303. if(client_code){
  304. let data = {clientNo:client_code};
  305. axios.post("{{url('apiLocal/order/issue/getOrderInfoByClientNo')}}",data).then(function(res){
  306. if(res.data.success){
  307. _this.secondOrder = res.data.data;
  308. _this.orderIssues.second_order_id = res.data.data.id;
  309. } else {
  310. tempTip.setDuration(4000);
  311. tempTip.show('查询订单信息出现异常:' + res.data.fail_info);
  312. }
  313. }).catch(function(err){
  314. tempTip.setDuration(4000);
  315. tempTip.show('网络异常:' + err);
  316. });
  317. }
  318. },
  319. backOrderIssueIndex(){
  320. window.location.href="javascript:history.go(-1)";
  321. },
  322. }
  323. });
  324. $('.is-invalid').change(function(){
  325. $(this).removeClass('is-invalid');
  326. })
  327. </script>
  328. @endsection