| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- @extends('layouts.app')
- @section('title')打卡审核@endsection
- @section('content')
- <div id="nav2">
- @component('personnel.menu')@endcomponent
- @component('personnel.checking-in.menuChecking-in')@endcomponent
- </div>
- <div class="container-fluid" id="list">
- <div class="card col-md visible-on">
- <div class="card-body p-0">
- <table class="table table-striped table-bordered text-nowrap" v-if="userDutyCheckNows&&userDutyCheckNows.length>=1">
- <thead class="thead-light" >
- <tr>
- <th class="visible-md">日期</th>
- <td>序号</td>
- <td>姓名</td>
- @can('人事管理-打卡审核')<td>操作</td>@endcan
- <td v-if="workgroupSign">组长审核</td>
- <td >打卡时间</td>
- <td>打卡类型</td>
- <td>手机号</td>
- <td>劳务所</td>
- <td>工作组</td>
- <td>异常</td>
- <td>合计工时</td>
- </tr>
- </thead>
- <tbody>
- <tr v-for="(userDutyCheck,i) in userDutyCheckNows">
- <td v-if="userDutyCheck.checked_at" class="text-center font-weight-bold">@{{ userDutyCheck.checked_at.substring(0,10) }}</td>
- <td>@{{ i+1 }}</td>
- <td ><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.full_name }}</span></td>
- @can('人事管理-打卡审核')<td>
- <b v-if="userDutyCheck.verify_user_id" class="text-success">已审核</b>
- <button v-else @click="storeClockAudit(userDutyCheck.id,userDutyCheck.type)" class="btn btn-primary w-80">审核</button>
- </td>@endcan
- <td v-if="workgroupSign">
- <b v-if="userDutyCheck.group_user_id" class="text-success">已审核</b>
- <button v-else @click="storeGroupAudit(userDutyCheck.id,userDutyCheck.type)" class="btn btn-primary w-80">组长审核</button>
- </td>
- <td>@{{ userDutyCheck.checked_at.substring(11,16) }}</td>
- <td>
- <div v-if="userDutyCheck.verify_user_id" class="text-center">@{{ userDutyCheck.type }}</div>
- <select v-else v-model="userDutyCheck.type" @change="isException(userDutyCheck.id,userDutyCheck.user_id,userDutyCheck.checked_at,userDutyCheck.type)" class="form-control" style="width: 100px">
- <option value="登入">登入</option>
- <option value="登出">登出</option>
- </select>
- </td>
- <td class="text-muted"><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.mobile_phone }}</span></td>
- <td ><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.user_labor.labor_company.name }}</span></td>
- <td class="font-weight-bold"><span v-if="userDutyCheck.user_detail.user.user_workgroups&&userDutyCheck.user_detail.user.user_workgroups.length>0">
- @{{ userDutyCheck.user_detail.user.user_workgroups[0].name }}</span></td>
- <td>@{{ userDutyCheck.exception }}</td>
- <td>@{{ userDutyCheck.duration_man_hour }}</td>
- </tr>
- </tbody>
- </table>
- <table class="table table-striped table-bordered text-nowrap" v-if="userDutyCheckYesterdays&&userDutyCheckYesterdays.length>=1">
- <thead class="thead-light" style="color: #17a2b8" >
- <tr>
- <th>日期</th>
- <td>序号</td>
- <td>姓名</td>
- @can('人事管理-打卡审核')<td>操作</td>@endcan
- <td v-if="workgroupSign">组长审核</td>
- <td >打卡时间</td>
- <td>打卡类型</td>
- <td>手机号</td>
- <td>劳务所</td>
- <td>工作组</td>
- <td>异常</td>
- <td>合计工时</td>
- </tr>
- </thead>
- <tbody>
- <tr v-for="(userDutyCheck,i) in userDutyCheckYesterdays">
- <td v-if="userDutyCheck.checked_at" class="text-center font-weight-bold">@{{ userDutyCheck.checked_at.substring(0,10) }}</td>
- <td>@{{ i+1 }}</td>
- <td ><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.full_name }}</span></td>
- @can('人事管理-打卡审核')<td>
- <b v-if="userDutyCheck.verify_user_id" class="text-success">已审核</b>
- <button v-else @click="storeClockAudit(userDutyCheck.id,userDutyCheck.type)" class="btn btn-primary w-80">审核</button>
- </td>@endcan
- <td v-if="workgroupSign">
- <b v-if="userDutyCheck.group_user_id" class="text-success">已审核</b>
- <button v-else @click="storeGroupAudit(userDutyCheck.id,userDutyCheck.type)" class="btn btn-primary w-80">组长审核</button>
- </td>
- <td>@{{ userDutyCheck.checked_at.substring(11,16) }}</td>
- <td>
- <div v-if="userDutyCheck.verify_user_id" class="text-center">@{{ userDutyCheck.type }}</div>
- <select v-else v-model="userDutyCheck.type" @change="isException(userDutyCheck.id,userDutyCheck.user_id,userDutyCheck.checked_at,userDutyCheck.type)" class="form-control" style="width: 100px">
- <option value="登入">登入</option>
- <option value="登出">登出</option>
- </select>
- </td>
- <td class="text-muted"><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.mobile_phone }}</span></td>
- <td ><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.user_labor.labor_company.name }}</span></td>
- <td class="font-weight-bold"><span v-if="userDutyCheck.user_detail.user.user_workgroups&&userDutyCheck.user_detail.user.user_workgroups.length>0">
- @{{ userDutyCheck.user_detail.user.user_workgroups[0].name }}</span></td>
- <td>@{{ userDutyCheck.exception }}</td>
- <td>@{{ userDutyCheck.duration_man_hour }}</td>
- </tr>
- </tbody>
- </table>
- <table class="table table-striped table-bordered text-nowrap" v-if="userDutyCheckBefores&&userDutyCheckBefores.length>=1">
- <thead class="thead-light" style="color:rosybrown">
- <tr >
- <th>日期</th>
- <td>序号</td>
- <td>姓名</td>
- @can('人事管理-打卡审核')<td>操作</td>@endcan
- <td v-if="workgroupSign">组长审核</td>
- <td >打卡时间</td>
- <td>打卡类型</td>
- <td>手机号</td>
- <td>劳务所</td>
- <td>工作组</td>
- <td>异常</td>
- <td>合计工时</td>
- </tr>
- </thead>
- <tbody>
- <tr v-for="(userDutyCheck,i) in userDutyCheckBefores">
- <td v-if="userDutyCheck.checked_at" class="text-center font-weight-bold">@{{ userDutyCheck.checked_at.substring(0,10) }}</td>
- <td>@{{ i+1 }}</td>
- <td ><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.full_name }}</span></td>
- @can('人事管理-打卡审核')<td>
- <b v-if="userDutyCheck.verify_user_id" class="text-success">已审核</b>
- <button v-else @click="storeClockAudit(userDutyCheck.id,userDutyCheck.type)" class="btn btn-primary w-80">审核</button>
- </td>@endcan
- <td v-if="workgroupSign">
- <b v-if="userDutyCheck.group_user_id" class="text-success">已审核</b>
- <button v-else @click="storeGroupAudit(userDutyCheck.id,userDutyCheck.type)" class="btn btn-primary w-80">组长审核</button>
- </td>
- <td>@{{ userDutyCheck.checked_at.substring(11,16) }}</td>
- <td>
- <div v-if="userDutyCheck.verify_user_id" class="text-center">@{{ userDutyCheck.type }}</div>
- <select v-else v-model="userDutyCheck.type" @change="isException(userDutyCheck.id,userDutyCheck.user_id,userDutyCheck.checked_at,userDutyCheck.type)" class="form-control" style="width: 100px">
- <option value="登入">登入</option>
- <option value="登出">登出</option>
- </select>
- </td>
- <td class="text-muted"><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.mobile_phone }}</span></td>
- <td ><span v-if="userDutyCheck.user_detail">@{{ userDutyCheck.user_detail.user_labor.labor_company.name }}</span></td>
- <td class="font-weight-bold"><span v-if="userDutyCheck.user_detail.user.user_workgroups&&userDutyCheck.user_detail.user.user_workgroups.length>0">
- @{{ userDutyCheck.user_detail.user.user_workgroups[0].name }}</span></td>
- <td>@{{ userDutyCheck.exception }}</td>
- <td>@{{ userDutyCheck.duration_man_hour }}</td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- @endsection
- @section('lastScript')
- <script>
- new Vue({
- el:"#list",
- data:{
- userDutyCheckYesterdays:[
- @foreach($userDutyCheckYesterdays as $userDutyCheck)
- {id:'{{$userDutyCheck->id}}',user_id:'{{$userDutyCheck->user_id}}',
- checked_at:'{{$userDutyCheck->checked_at}}',
- type:'{{$userDutyCheck->type}}',verify_user_id:'{{$userDutyCheck->verify_user_id}}',group_user_id:'{{$userDutyCheck->group_user_id}}',
- exception:'',duration_man_hour:'',@if($userDutyCheck->userDetail)user_detail:{!! $userDutyCheck->userDetail !!} @endif },
- @endforeach
- ],
- userDutyCheckNows:[
- @foreach($userDutyCheckNows as $userDutyCheck)
- {id:'{{$userDutyCheck->id}}',user_id:'{{$userDutyCheck->user_id}}',
- checked_at:'{{$userDutyCheck->checked_at}}',
- type:'{{$userDutyCheck->type}}',verify_user_id:'{{$userDutyCheck->verify_user_id}}',group_user_id:'{{$userDutyCheck->group_user_id}}',
- exception:'',duration_man_hour:'',@if($userDutyCheck->userDetail)user_detail:{!! $userDutyCheck->userDetail !!} @endif },
- @endforeach
- ],
- userDutyCheckBefores:[
- @foreach($userDutyCheckBefores as $userDutyCheck)
- {id:'{{$userDutyCheck->id}}',user_id:'{{$userDutyCheck->user_id}}',
- checked_at:'{{$userDutyCheck->checked_at}}',
- type:'{{$userDutyCheck->type}}',verify_user_id:'{{$userDutyCheck->verify_user_id}}',group_user_id:'{{$userDutyCheck->group_user_id}}',
- exception:'',duration_man_hour:'',@if($userDutyCheck->userDetail)user_detail:{!! $userDutyCheck->userDetail !!} @endif },
- @endforeach
- ],
- workgroupSign:'{{$workgroupSign}}',
- },
- methods:{
- store(id,type,url){
- },
- storeClockAudit(id,type){
- let url='{{url("personnel/checking-in/storeClockAudit")}}';
- let _this=this;
- axios.post(url,{id:id,type:type})
- .then(function (response) {
- if (!response.data.success){
- tempTip.setDuration(3000);
- tempTip.show(response.data.data);
- return;
- }
- _this.userDutyCheckNows.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.verify_user_id=response.data.data;
- tempTip.setDuration(3000);
- tempTip.showSuccess('审核通过!');
- return false
- }
- return true;
- });
- _this.userDutyCheckBefores.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.verify_user_id=response.data.data;
- tempTip.setDuration(3000);
- tempTip.showSuccess('审核通过!');
- return false
- }
- return true;
- });
- _this.userDutyCheckYesterdays.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.verify_user_id=response.data.data;
- tempTip.setDuration(3000);
- tempTip.showSuccess('审核通过!');
- return false
- }
- return true;
- });
- }).catch(function (err) {
- tempTip.setDuration(4000);
- tempTip.show('审核失败!网络错误:'+err);
- });
- },
- storeGroupAudit(id,type){
- let url='{{url("personnel/checking-in/storeGroupAudit")}}';
- let _this=this;
- axios.post(url,{id:id,type:type})
- .then(function (response) {
- if (!response.data.success){
- tempTip.setDuration(3000);
- tempTip.show(response.data.data);
- return;
- }
- _this.userDutyCheckNows.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.group_user_id=response.data.data;
- tempTip.setDuration(3000);
- tempTip.showSuccess('审核通过!');
- return false
- }
- return true;
- });
- _this.userDutyCheckBefores.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.group_user_id=response.data.data;
- tempTip.setDuration(3000);
- tempTip.showSuccess('审核通过!');
- return false
- }
- return true;
- });
- _this.userDutyCheckYesterdays.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.group_user_id=response.data.data;
- tempTip.setDuration(3000);
- tempTip.showSuccess('审核通过!');
- return false
- }
- return true;
- });
- }).catch(function (err) {
- tempTip.setDuration(4000);
- tempTip.show('审核失败!网络错误:'+err);
- });
- },
- isException(id,user_id,checked_at,type){
- let _this=this;
- axios.post('{{url("personnel/checking-in/isException")}}',{id:id,user_id:user_id,checked_at:checked_at,type:type})
- .then(function (response) {
- _this.userDutyCheckYesterdays.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.exception=response.data.exception;
- userDutyCheck.duration_man_hour=response.data.duration_man_hour;
- return false
- }
- return true;
- });
- _this.userDutyCheckBefores.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.exception=response.data.exception;
- userDutyCheck.duration_man_hour=response.data.duration_man_hour;
- return false
- }
- return true;
- });
- _this.userDutyCheckNows.every(function (userDutyCheck) {
- if (userDutyCheck.id==id){
- userDutyCheck.exception=response.data.exception;
- userDutyCheck.duration_man_hour=response.data.duration_man_hour;
- return false
- }
- return true;
- });
- }).catch(function (err) {
- tempTip.setDuration(4000);
- tempTip.show('校验失败!网络错误:'+err);
- });
- }
- },
- });
- </script>
- @endsection
|