create.blade.php 8.8 KB

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