index.blade.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. @extends('layouts.app')
  2. @section('title')查看-劳务派遣明细@endsection
  3. @section('content')
  4. <div id="list" class="d-none">
  5. <div class="container-fluid">
  6. <div id="form_div"></div>
  7. @include('shared._messages')
  8. <table class="table table-striped table-bordered table-hover card-body td-min-width-80" id="table">
  9. <tr v-for="(labor_company_dispatch,i) in labor_company_dispatches"
  10. @click="selectTr===i+1?selectTr=0:selectTr=i+1"
  11. :class="selectTr===i+1?'focusing' : ''">
  12. <td>
  13. <input class="checkItem" type="checkbox" :value="labor_company_dispatch.id">
  14. </td>
  15. <td>
  16. <div>
  17. @{{ i+1 }}
  18. <span v-if="labor_company_dispatch.exceed_max_labor_num_status==2"><i
  19. class="fa fa-thermometer-full" style="color: red" aria-hidden="true"></i></span>
  20. </div>
  21. </td>
  22. <td>
  23. @can('人事管理-临时工申请协调-劳务派遣明细')
  24. <div class="float-left ml-3" v-if="labor_company_dispatch.status==='人事确认'">
  25. <form :action="getBaseUrl(labor_company_dispatch) + '/laborCompanyReceivingOrder'"
  26. method="post"
  27. accept-charset="UTF-8" onsubmit="return confirm('是否确认接单!')">
  28. @csrf
  29. @method('PATCH')
  30. <input type="number" name="status" hidden value="3">
  31. <button type="submit" class="btn btn-outline-primary btn-sm" role="button">劳务接单
  32. </button>
  33. </form>
  34. </div>
  35. <div class="float-left ml-3" v-if="labor_company_dispatch.status==='劳务接单'">
  36. <a :href="getCreateOrEditDetailUrl(labor_company_dispatch)"
  37. class="btn btn-outline-secondary btn-sm" role="button">
  38. @{{
  39. labor_company_dispatch.labor_company_dispatch_details.length>0?'修改明细':'录入明细'
  40. }}
  41. </a>
  42. </div>
  43. @endcan()
  44. @can('临时工申请协调-劳务派遣明细-人事确认')
  45. <div class="float-left ml-3" v-if="labor_company_dispatch.status==='创建'">
  46. <form :action="getBaseUrl(labor_company_dispatch) + '/personnelCheck'" method="post"
  47. accept-charset="UTF-8" onsubmit="return confirm('是否确认!')">
  48. @csrf
  49. @method('PATCH')
  50. <input type="text" name="status" hidden value="人事确认">
  51. <button type="submit" class="btn btn-outline-primary btn-sm" role="button">人事确认
  52. </button>
  53. </form>
  54. </div>
  55. <div class="float-left ml-3" v-if="labor_company_dispatch.status==='创建'">
  56. <a :href="getEditlLaborCompanyDispatchUrl(labor_company_dispatch)"
  57. class="btn btn-outline-secondary btn-sm" role="button">
  58. 修改派遣人数
  59. </a>
  60. </div>
  61. @endcan()
  62. </td>
  63. <td>@{{ labor_company_dispatch.check_user?labor_company_dispatch.check_user.name:'' }}</td>
  64. <td>@{{ labor_company_dispatch.labor_company.name }}</td>
  65. <td>@{{ labor_company_dispatch.warehouse ?labor_company_dispatch.warehouse.name:''}}</td>
  66. <td><span :class="getStatusClass(labor_company_dispatch.status)">@{{ labor_company_dispatch.status }}</span>
  67. </td>
  68. <td>@{{ labor_company_dispatch.man_num }}</td>
  69. <td>@{{ labor_company_dispatch.woman_num }}</td>
  70. <td>
  71. <div v-if="labor_company_dispatch.labor_company_dispatch_details.length >0">
  72. <table v-if="labor_company_dispatch.showMore" style="margin: 0;padding: 0">
  73. <tr v-for="(v,k) of labor_company_dispatch.labor_company_dispatch_details" :key="k">
  74. <td>@{{ v.name }}</td>
  75. <td>@{{ v.gender }}</td>
  76. <td>@{{ v.age }}</td>
  77. </tr>
  78. </table>
  79. <table v-else style="margin: 0;padding: 0">
  80. <tr>
  81. <td>@{{ labor_company_dispatch.labor_company_dispatch_details[0].name }}</td>
  82. <td>@{{ labor_company_dispatch.labor_company_dispatch_details[0].gender }}</td>
  83. <td>@{{ labor_company_dispatch.labor_company_dispatch_details[0].age }}</td>
  84. </tr>
  85. </table>
  86. <a href="javascript:void(0)"
  87. v-if="labor_company_dispatch.labor_company_dispatch_details.length >1"
  88. @click="labor_company_dispatch.showMore = !labor_company_dispatch.showMore">
  89. @{{ labor_company_dispatch.showMore?'收起':'显示更多' }}
  90. </a>
  91. </div>
  92. </td>
  93. <td>@{{ labor_company_dispatch.dispatch_date.slice(0, 10) }}</td>
  94. </tr>
  95. </table>
  96. {{ $labor_company_dispatches->links() }}
  97. </div>
  98. </div>
  99. @endsection
  100. @section('lastScript')
  101. <script type="text/javascript" src="{{mix('js/queryForm/export.js')}}"></script>
  102. <script type="text/javascript" src="{{mix('js/queryForm/queryForm.js')}}"></script>
  103. <script type="text/javascript" src="{{mix('js/queryForm/header.js')}}"></script>{{--新版2--}}
  104. <script>
  105. new Vue({
  106. el: "#list",
  107. data: {
  108. labor_company_dispatches: [
  109. @foreach( $labor_company_dispatches as $labor_company_dispatch )
  110. {!! $labor_company_dispatch !!},
  111. @endforeach
  112. ],
  113. selectTr: 0,
  114. warehouses: [
  115. @foreach( $warehouses as $item )
  116. {
  117. name: '{{ $item->id }}', value: '{{ $item->name }}'
  118. },
  119. @endforeach
  120. ],
  121. labor_companies: [
  122. @foreach( $labor_companies as $item )
  123. {
  124. name: '{{ $item->id }}', value: '{{ $item->name }}'
  125. },
  126. @endforeach
  127. ],
  128. statuses: [
  129. {name: 1, value: '创建'},
  130. {name: 2, value: '人事确认'},
  131. {name: 3, value: '劳务接单'},
  132. {name: 4, value: '任务完结'},
  133. ]
  134. },
  135. mounted() {
  136. $('#list').removeClass('d-none');
  137. let _this = this;
  138. $(".up").slideUp();
  139. let data = [
  140. [
  141. //起始时间
  142. {name: 'dispatch_date_start', type: 'dateTime', tip: '选择显示分配时间的起始时间'},
  143. //仓库
  144. {
  145. name: 'warehouse',
  146. type: 'select_multiple_select',
  147. tip: ['输入关键词快速定位下拉列表,回车确定', '仓库'],
  148. placeholder: ['仓库', '定位或多选仓库'],
  149. data: _this.warehouses
  150. },
  151. //状态
  152. {
  153. name: 'status',
  154. type: 'select_multiple_select',
  155. tip: ['输入关键词快速定位下拉列表,回车确定', '状态'],
  156. placeholder: ['状态', '定位或多选状态'],
  157. data: _this.statuses
  158. },
  159. ],
  160. [
  161. //截止时间
  162. {name: 'dispatch_date_end', type: 'dateTime', tip: '选择显示分配时间的截止时间'},
  163. //劳务公司
  164. {
  165. name: 'labor_company',
  166. type: 'select_multiple_select',
  167. tip: ['输入关键词快速定位下拉列表,回车确定', '劳务公司'],
  168. placeholder: ['劳务公司', '定位或多选劳务公司'],
  169. data: _this.labor_companies
  170. },
  171. ]
  172. ]
  173. _this.form = new query({
  174. el: '#form_div',
  175. condition: data,
  176. appendDom: "btn",
  177. });
  178. _this.form.init();
  179. let column = [
  180. {name: 'index', value: '序号', neglect: true},
  181. {name: 'do', value: '操作'},
  182. {name: 'check_user', value: '确认人'},
  183. {name: 'name', value: '劳务公司'},
  184. {name: 'warehouse', value: '仓库'},
  185. {name: 'status', value: '状态 '},
  186. {name: 'man_num', value: '男工人数'},
  187. {name: 'woman_num', value: '女工人数'},
  188. {name: 'details', value: '派遣详情'},
  189. {name: 'dispatch_date', value: '分配日期'},
  190. ];
  191. new Header({
  192. el: "table",
  193. name: "labor_company_dispatches",
  194. column: column,
  195. data: this.labor_company_dispatches,
  196. restorationColumn: 'addtime',
  197. fixedTop: ($('#form_div').height()) + ($('#btn').height()) + 1,
  198. }).init();
  199. },
  200. methods: {
  201. /*临时工信息详情*/
  202. getCreateOrEditDetailUrl(labor_company_dispatch) {
  203. let url = "";
  204. if (labor_company_dispatch.labor_company_dispatch_details.length > 0) {
  205. url = "{{ url('personnel/laborApply/laborCompanyDispatch') }}/" + labor_company_dispatch.id + '/detail/edit';
  206. } else {
  207. url = "{{ url('personnel/laborApply/laborCompanyDispatch') }}/" + labor_company_dispatch.id + '/detail/create';
  208. }
  209. return url;
  210. },
  211. /*分配详情编辑*/
  212. getEditlLaborCompanyDispatchUrl(labor_company_dispatch) {
  213. let url = "";
  214. url = "{{ url('personnel/laborApply/laborCompanyDispatch') }}/" + labor_company_dispatch.id + '/edit';
  215. return url;
  216. },
  217. /*劳务接单*/
  218. getBaseUrl(labor_company_dispatch) {
  219. let url = "";
  220. url = "{{ url('personnel/laborApply/laborCompanyDispatch') }}/" + labor_company_dispatch.id;
  221. return url;
  222. },
  223. //获取状态的徽章(badge)组件的外观
  224. getStatusClass(status) {
  225. let result = '';
  226. switch (status) {
  227. case '创建':
  228. result = 'badge badge-light'
  229. break;
  230. case '指派成功':
  231. result = 'badge badge-info'
  232. break;
  233. case '劳务接单':
  234. result = 'badge badge-primary'
  235. break;
  236. case '任务完结':
  237. result = 'badge badge-success'
  238. break;
  239. default:
  240. result = 'badge badge-info'
  241. }
  242. return result;
  243. }
  244. },
  245. });
  246. </script>
  247. @endsection