mark-as-shipped.blade.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <div moe normal>
  2. <a start show href="#" class="text-success">Mark as shipped</a>
  3. <form url="{{ route('admin.orders.view.mark-order-as-shipped', $order) }}" right>
  4. @csrf
  5. <div id="markAsShipped_{{$order->iid}}">
  6. <input type="hidden" name="uid" value="{{ $order->uid }}">
  7. <input type="hidden" name="shippingDetailJson" value="{{ $order->shipping_detail_json }}">
  8. <div class="mb-2">
  9. <label>Tracking Number</label>
  10. <input type="text" v-model="form.tracking_number" class="form-control form-control-sm" />
  11. </div>
  12. <div>
  13. <button submit class="btn btn-sm btn-primary me-2">Mark as shipped</button>
  14. <button cancel class="btn btn-sm btn-default border">Cancel</button>
  15. </div>
  16. </div>
  17. </form>
  18. </div>
  19. <script>
  20. var markAsShipped = new Vue({
  21. el: '#markAsShipped_{{ $order->iid }}',
  22. data: {
  23. form: {
  24. tracking_number: null
  25. }
  26. },
  27. watch: {
  28. form: {
  29. handler: function(val, oldVal){
  30. $('input[name=shippingDetailJson]').val(JSON.stringify(this.form));
  31. },
  32. deep: true
  33. }
  34. },
  35. methods: {
  36. init: function() {
  37. var defaultData = <?= json_encode($order->shipping_detail_json) ?>;
  38. try {
  39. defaultData = JSON.parse(defaultData);
  40. }catch(e){}
  41. this.form = $.extend(this.form, defaultData);
  42. }
  43. },
  44. mounted: function() {
  45. this.init();
  46. }
  47. });
  48. </script>