create.blade.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. @extends("layouts.app")
  2. @section('title','工单创建')
  3. @section("content")
  4. <div class="container-fluid d-none card" id="list">
  5. @if(isset($reslut))
  6. <div @if($reslut['success']) class="alert-success" @else class="alert-warning" @endif>
  7. {{ $reslut['message'] }}
  8. </div>
  9. @endif
  10. <div class="card-body bg-light">
  11. <div class="col-8 offset-2 row bg-white">
  12. <span class="btn col-4 left" @click="changeStep(1)">
  13. <!-- 三种:选中,未选,编辑后-->
  14. <span class="fa-stack fa-lg">
  15. <template v-if="step === 1">
  16. <i class="fa fa-circle-thin fa-stack-2x" style="color: #269dec"></i>
  17. <span class="fa" style="color:#269dec">1</span>
  18. </template>
  19. <template v-if="step > 1">
  20. <i class="fa fa-check-circle-o fa-stack-2x" style="color: #269dec"></i>
  21. </template>
  22. </span>
  23. 选择工单类型
  24. </span>
  25. <!-- fa-check-circle-o 选中-->
  26. <span class="btn col-4 left" @click="changeStep(2)">
  27. <span class="fa-stack fa-lg">
  28. <template v-if="step === 2">
  29. <i class="fa fa-circle-thin fa-stack-2x" style="color: #269dec"></i>
  30. <span style="color:#269dec">2</span>
  31. </template>
  32. <template v-if="step < 2">
  33. <i class="fa fa-circle-thin fa-stack-2x" style="color: #888"></i>
  34. <span style="color:#888">2</span>
  35. </template>
  36. <template v-if="step > 2">
  37. <i class="fa fa-check-circle-o fa-stack-2x" style="color: #269dec"></i>
  38. </template>
  39. </span>
  40. 选择工单子类型
  41. </span>
  42. <span class="btn col-4 left" @click="changeStep(3)">
  43. <span class="fa-stack fa-lg">
  44. <template v-if="step === 3">
  45. <i class="fa fa-circle-thin fa-stack-2x" style="color: #269dec"></i>
  46. <span style="color:#269dec">3</span>
  47. </template>
  48. <template v-if="step < 3">
  49. <i class="fa fa-circle-thin fa-stack-2x" style="color: #888"></i>
  50. <span style="color: #888">3</span>
  51. </template>
  52. </span>
  53. 创建工单
  54. </span>
  55. </div>
  56. <hr class="">
  57. <div class="card-body bg-light">
  58. <div class="col-8 offset-2 row bg-white card" v-if="step === 1">
  59. <div class="card-body">
  60. <div v-for="(item) in workOrderTypes" class="col-4 d-inline-block ">
  61. <div class="p-3 m-2 bg-light text-break" @click="selectWorkOrderType(item)">
  62. <strong> @{{ item.name }}</strong>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="col-8 offset-2 row bg-white card" v-if="step === 2">
  68. <div class="card-body">
  69. <div v-for="(item) in workOrderChildTypes" class="col-4 d-inline-block">
  70. <div class="p-3 m-2 bg-light text-break" @click="selectWorkOrderChildType(item)">
  71. <strong> @{{ item.name }}</strong>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="col-8 offset-2 row bg-white card" v-if="step === 3">
  77. <form action="{{url("order/workOrder/store")}}" method="post" id="store_form">
  78. @csrf
  79. @method('POST')
  80. <input type="text" class="d-none" name="work_order_type_id" :value="workOrder.work_order_type_id">
  81. <input type="text" class="d-none" name="work_order_child_type_id"
  82. :value="workOrder.work_order_child_type_id">
  83. <div class="card-body">
  84. <div class="form-group">
  85. <label for="grad" class="">任务紧急程度</label>
  86. <div class="pl-1">
  87. <div v-for="(item,i) in grads">
  88. <input type="radio" :id="'grad'+i" name="grad" :value="item.value" v-model="workOrder.grad">
  89. <label :for="'grad'+i">@{{ item.name }}</label>
  90. </div>
  91. </div>
  92. </div>
  93. <div class="form-group">
  94. <label for="remark">详细内容</label>
  95. <textarea class="form-control" name="remark" id="remark" v-model="workOrder.remark">
  96. </textarea>
  97. </div>
  98. <div class="form-group">
  99. <button class="btn btn-md btn-outline-primary" type="button" @click="checkSubmit">提交</button>
  100. </div>
  101. </div>
  102. </form>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. @endsection()
  108. @section("lastScript")
  109. <script>
  110. let list = new Vue({
  111. el: "#list",
  112. data: {
  113. step: 1,
  114. workOrderTypes: [
  115. @foreach($workOrderTypes as $workOrderType)
  116. {
  117. id: '{{$workOrderType->id}}',
  118. name: '{{$workOrderType->name}}',
  119. child_types: [
  120. @foreach($workOrderType->childTypes as $type)
  121. {
  122. id: '{{$type->id}}', name: '{{$type->name}}',
  123. },
  124. @endforeach
  125. ],
  126. },
  127. @endforeach],
  128. workOrderChildTypes: [],
  129. grads: [
  130. @foreach($grads as $key=>$item)
  131. {
  132. name: '{{$key}}', value: '{{$item}}'
  133. },
  134. @endforeach
  135. ],
  136. workOrder: {
  137. work_order_type_id: null,
  138. work_order_child_type_id: null,
  139. grad: 1,
  140. remark:null,
  141. },
  142. },
  143. watch: {
  144. step: function (newValue, OldValue) {
  145. if (newValue === 1) {
  146. this.workOrder.work_order_child_type_id = null;
  147. this.workOrder.grad = 1;
  148. } else if (newValue === 2) {
  149. this.workOrder.grad = 1;
  150. }
  151. },
  152. },
  153. created() {
  154. $("#list").removeClass("d-none");
  155. },
  156. methods: {
  157. changeStep(step) {
  158. if (step < this.step) {
  159. this.step = step;
  160. return;
  161. }
  162. if (step === 2) {
  163. if (this.workOrder.work_order_type_id === null) return;
  164. else this.step = step;
  165. } else if (step === 3) {
  166. if (this.workOrder.work_order_child_type_id === null) return;
  167. else this.step = step;
  168. }
  169. },
  170. selectWorkOrderType(item) {
  171. this.workOrder.work_order_type_id = item.id;
  172. this.workOrderChildTypes = item['child_types'];
  173. this.changeStep(2);
  174. },
  175. selectWorkOrderChildType(item) {
  176. this.workOrder.work_order_child_type_id = item.id;
  177. this.changeStep(3);
  178. },
  179. checkSubmit(){
  180. if (this.workOrder.grad === null){
  181. return false;
  182. }
  183. if (this.workOrder.remark === null){
  184. window.tempTip.show("详细内容未必填项!");
  185. return false;
  186. }
  187. document.getElementById('store_form').submit();
  188. },
  189. }
  190. });
  191. </script>
  192. @endsection