WorkOrder.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <template>
  2. <div class="container-fluid">
  3. <div class="row my-3">
  4. <div class="col-lg-6">
  5. <div class="card h-100">
  6. <div class="card-header text-right">
  7. <button type="button" class="btn btn-default xs-toggle" data-toggle="collapse" data-target="#assetTab">
  8. <span class="sr-only">Toggle Navigation</span>
  9. <span class="icon-bar"></span>
  10. <span class="icon-bar"></span>
  11. <span class="icon-bar"></span>
  12. </button>
  13. <ul class="nav nav-pills card-header-pills nav-justified xs-collapse collapse" id="assetTab" role="tablist">
  14. <li class="nav-item">
  15. <a class="nav-link active" id="assetinfo-tab" data-toggle="pill" href="#assetinfo" role="tab" aria-controls="assetinfo" aria-selected="true">Hardware</a>
  16. </li>
  17. <!-- @if($workOrder->asset->group !== null)
  18. <li class="nav-item">
  19. <a class="nav-link" id="group-tab" data-toggle="pill" href="#group" role="tab" aria-controls="group" aria-selected="false">Group</a>
  20. </li>
  21. @endif -->
  22. <li class="nav-item">
  23. <a class="nav-link" id="credentials-tab" data-toggle="pill" href="#credentials" role="tab" aria-controls="credentials" aria-selected="false">Credentials</a>
  24. </li>
  25. </ul>
  26. </div>
  27. <div class="card-body">
  28. <div class="tab-content">
  29. <div class="tab-pane active" id="assetinfo" role="tabpanel" aria-labelledby="assetinfo-tab">
  30. <!-- <assetinfo asset="{{$asset}}"></assetinfo> -->
  31. </div>
  32. <!-- @if($workOrder->asset->group !== null)
  33. <div class="tab-pane" id="group" role="tabpanel" aria-labelledby="group-tab">
  34. Name: {{$workOrder->asset->group->pcgroupname}}
  35. </div>
  36. @endif
  37. <div class="tab-pane" id="credentials" role="tabpanel" aria-labelledby="credentials-tab">
  38. <credential-list :credential-list="{{$workOrder->asset->credentials->sortByDesc('creddate')->values()}}" :descriptions="{{App\CredDesc::all()}}" :pcid="{{$workOrder->asset->pcid}}"></credential-list>
  39. </div> -->
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="col-lg-6">
  45. <div class="card h-100">
  46. <div class="card-header text-right">
  47. <button type="button" class="btn btn-default xs-toggle" data-toggle="collapse" data-target="#workorderTab">
  48. <span class="sr-only">Toggle Navigation</span>
  49. <span class="icon-bar"></span>
  50. <span class="icon-bar"></span>
  51. <span class="icon-bar"></span>
  52. </button>
  53. <ul class="nav nav-pills card-header-pills nav-justified xs-collapse collapse" id="workorderTab" role="tablist">
  54. <li class="nav-item">
  55. <a class="nav-link active" id="workordersumm-tab" data-toggle="pill" href="#workordersumm" role="tab" aria-controls="workordersumm" aria-selected="true">Summary</a>
  56. </li>
  57. <li class="nav-item">
  58. <a class="nav-link" id="attachments-tab" data-toggle="pill" href="#attachments" role="tab" aria-controls="attachments" aria-selected="false">Attachments</a>
  59. </li>
  60. </ul>
  61. </div>
  62. <div class='card-body'>
  63. <div class='tab-content'>
  64. <div class="tab-pane active" id="workordersumm" role="tabpanel" aria-labelledby="workordersumm-tab">
  65. <work-order-info :work-order="workOrder" :stores="stores"></work-order-info>
  66. </div>
  67. <div class="tab-pane" id="attachments" role="tabpanel" aria-labelledby="attachments-tab">
  68. TODO 2
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. </div>
  74. </div>
  75. <!-- <div class="row my-3 no-gutters">
  76. <div class="col-12">
  77. <div class="card">
  78. <div class="card-body">
  79. <h5 class="card-title">Customer Notes</h5>
  80. <notes :initialnotes='{{ $workOrder->notes->where('notetype', '0')->values() }}' authusername="{{Auth::user()->username}}" :note-type="0" :woid="{{$workOrder->woid}}"></notes>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. <div class="row my-3 no-gutters">
  86. <div class="col-12">
  87. <div class="card">
  88. <div class="card-body">
  89. <h5 class="card-title">Private/Billing Notes</h5>
  90. <notes :initialnotes='{{ $workOrder->notes->where('notetype', '1')->values() }}' authusername="{{Auth::user()->username}}" :note-type="1" :woid="{{$workOrder->woid}}"></notes>
  91. </div>
  92. </div>
  93. </div>
  94. </div> -->
  95. </div>
  96. </template>
  97. <script>
  98. import WorkOrderInfo from '../components/WorkOrderInfo.vue'
  99. export default {
  100. components: {
  101. WorkOrderInfo,
  102. },
  103. props: ['id'],
  104. data () {
  105. return {
  106. workOrder: {},
  107. stores: {},
  108. }
  109. },
  110. mounted () {
  111. let token = localStorage.getItem('jwt')
  112. let user = localStorage.getItem('user')
  113. axios.defaults.headers.common['Content-Type'] = 'application/json'
  114. axios.defaults.headers.common['Authorization'] = 'Bearer ' + token
  115. axios.get('/api/workorders/'+this.id).then(response => {
  116. this.workOrder = response.data
  117. }).catch(error => {
  118. console.log(error)
  119. })
  120. axios.get('/api/stores/').then(response => {
  121. this.stores = response.data
  122. }).catch(error => {
  123. console.log(error)
  124. })
  125. Echo.channel('work-order.'+this.id)
  126. .listen('WorkOrderUpdated', (e) => {
  127. this.workOrder = e.data;
  128. });
  129. },
  130. }
  131. </script>