create.blade.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. @extends('layouts.app')
  2. @section('title')录入-劳务派遣明细详情@endsection
  3. @section('content')
  4. <div class="container-fluid" id="list">
  5. <div class="card col-md-8 offset-md-2">
  6. <div class="card-body">
  7. <form action="{{ route('laborCompanyDispatch.storeDetail', $laborCompanyDispatch->id) }}" method="post"
  8. style="display: inline-block;" id="create-form"
  9. onsubmit="return check()">
  10. {{ csrf_field() }}
  11. <div class="form-group">
  12. <template v-for="(item,i) in items">
  13. <div class="row mt-3">
  14. <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][name]'">姓名</label>
  15. <div class="col-lg-2 col-sm-12">
  16. <input class="form-control" type="text" :name="'users['+i+'][name]'" v-model="item.name"
  17. :id="'users['+i+'][name]'" required>
  18. </div>
  19. <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][gender]'">性别</label>
  20. <div class="col-lg-2 col-sm-12">
  21. <select class="form-control" :name="'users['+i+'][gender]'"
  22. required v-model="item.gender">
  23. <option value="" hidden disabled selected>性别</option>
  24. <option value="男">男</option>
  25. <option value="女">女</option>
  26. </select>
  27. </div>
  28. <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][age]'" >年龄</label>
  29. <div class="col-lg-2 col-sm-12">
  30. <input class="form-control" type="number" :name="'users['+i+'][age]'" required
  31. :id="'users['+i+'][age]'" v-model="item.age">
  32. </div>
  33. <label class="col-lg-1 col-sm-3 col-form-label" :for="'users['+i+'][cardId]'">身份证</label>
  34. <div class="col-lg-2 col-sm-12">
  35. <input class="form-control" type="text" :name="'users['+i+'][card_id]'"
  36. :id="'users['+i+'][card_id]'" v-model="item.card_id">
  37. </div>
  38. <div v-if="i!==0" class="col-1 ml-1">
  39. <button class="btn btn-sm btn-primary float-right" type="button"
  40. @click="items.splice(i,1)">-
  41. </button>
  42. </div>
  43. </div>
  44. </template>
  45. <button class="btn btn-sm btn-primary float-right" type="button"
  46. @click="addItem();">添加
  47. </button>
  48. </div>
  49. <button type="button" class="btn btn-success btn-sm" @click="check()">
  50. <i class="far fa-trash-alt"></i> 提交
  51. </button>
  52. </form>
  53. </div>
  54. </div>
  55. </div>
  56. @endsection
  57. @section('lastScript')
  58. <script>
  59. new Vue({
  60. el: "#list",
  61. data: {
  62. items: [{}],
  63. labor_company_dispatch: {!! $laborCompanyDispatch !!},
  64. },
  65. mounted() {
  66. },
  67. methods: {
  68. addItem() {
  69. let sum_man_num = this.labor_company_dispatch.man_num + this.labor_company_dispatch.woman_num;
  70. if (this.items.length <= sum_man_num - 1) {
  71. this.items.push({});
  72. } else {
  73. window.tempTip.show("不能超过最大人数限制!");
  74. }
  75. console.log(this.items);
  76. },
  77. check() {
  78. for(let i = 0;i< this.items.length;i++){
  79. let item = this.items[i];
  80. let {name, gender, age, card_id} = item;
  81. let flag = true;
  82. if (!name) {
  83. window.tempTip.show(`第${i+1}条信息登记的姓名不符合要求`);
  84. flag = false;
  85. } else if (!age) {
  86. window.tempTip.show(`第${i+1}条信息登记的年龄不符合要求`);
  87. flag = false;
  88. } else if (!gender) {
  89. window.tempTip.show(`第${i+1}条信息登记的性别不符合要求`);
  90. flag = false;
  91. } else if (!this.checkId(card_id)) {
  92. window.tempTip.show(`第${i+1}条信息身份证不符合要求`);
  93. flag = false;
  94. }
  95. if (!flag) {
  96. return flag;
  97. }
  98. }
  99. document.getElementById("create-form").submit();
  100. },
  101. checkId(idCard) {
  102. let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  103. return reg.test(idCard);
  104. }
  105. }
  106. });
  107. </script>
  108. @endsection