|
@@ -1627,7 +1627,7 @@
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="success" center show-icon></el-alert>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
|
|
|
- <el-tab-pane v-if="user.companyId==5978" :label="'工时填报明细'" name="third">
|
|
|
|
|
|
+ <el-tab-pane v-if="user.companyId==5978" :label="'工时异常明细'" name="third">
|
|
<div class="selectworktime_export" style="margin-top:10px;">
|
|
<div class="selectworktime_export" style="margin-top:10px;">
|
|
<!-- <div class="selectworktime_export_l">
|
|
<!-- <div class="selectworktime_export_l">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
@@ -1665,7 +1665,7 @@
|
|
>
|
|
>
|
|
<el-link
|
|
<el-link
|
|
type="primary"
|
|
type="primary"
|
|
- @click="exportMembWorkHours()"
|
|
|
|
|
|
+ @click="exportMembWorkHoursReminder()"
|
|
>{{$t('export.exportData')}}</el-link
|
|
>{{$t('export.exportData')}}</el-link
|
|
>
|
|
>
|
|
</div>
|
|
</div>
|
|
@@ -1682,113 +1682,50 @@
|
|
v-loading="tbload"
|
|
v-loading="tbload"
|
|
:lazy="true"
|
|
:lazy="true"
|
|
>
|
|
>
|
|
- <el-table-column width="75" type="index" fixed="left" :label="$t('headerTop.serialNumber')">
|
|
|
|
|
|
+ <el-table-column width="180" type="index" fixed="left" :label="'日期'">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- {{ scope.$index + 1 }}
|
|
|
|
|
|
+ {{ scope.row.createDate}}
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column width="105" prop="name" fixed="left" :label="$t('lable.name')">
|
|
|
|
|
|
+ <el-table-column width="160" prop="name" fixed="left" :label="$t('lable.name')">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <span :style="scope.row.worktimeList.length==0?'color:red':''">
|
|
|
|
- <span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='userName' :openid='scope.row.name'></ww-open-data></span>
|
|
|
|
- <span v-if="user.userNameNeedTranslate != 1">{{scope.row.name}}</span>
|
|
|
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='userName' :openid='scope.row.name'></ww-open-data></span>
|
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">{{scope.row.name}}</span>
|
|
<!-- {{scope.row.name}} -->
|
|
<!-- {{scope.row.name}} -->
|
|
- </span>
|
|
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column prop="departmentName" fixed="left" :label="$t('lable.department')">
|
|
|
|
|
|
+ <el-table-column prop="departmentName" width="170" fixed="left" :label="$t('lable.department')">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='departmentName' :openid='scope.row.departmentName'></ww-open-data></span>
|
|
<span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='departmentName' :openid='scope.row.departmentName'></ww-open-data></span>
|
|
<span v-if="user.userNameNeedTranslate != 1">{{scope.row.departmentName}}</span>
|
|
<span v-if="user.userNameNeedTranslate != 1">{{scope.row.departmentName}}</span>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column
|
|
|
|
- min-width="105"
|
|
|
|
- v-for="(item, index) in pickDateArray"
|
|
|
|
- :key="index"
|
|
|
|
- :label="item.label"
|
|
|
|
- align="center"
|
|
|
|
- >
|
|
|
|
|
|
+
|
|
|
|
+ <el-table-column width="160" type="index" fixed="left" :label="'填报工时'">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <div
|
|
|
|
- style="color: red"
|
|
|
|
- v-if="
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>
|
|
|
|
- w.createDate==item.date
|
|
|
|
- ).length > 0 &&
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime < reportTimeType.allday
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- {{
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime.toFixed(1)
|
|
|
|
- }}
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- style="color: #20a0ff"
|
|
|
|
- v-if="
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- ).length > 0 &&
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime > reportTimeType.allday
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- {{
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime.toFixed(1)
|
|
|
|
- }}
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- v-if="
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- ).length > 0 &&
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime == reportTimeType.allday
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- {{
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime
|
|
|
|
- }}
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- v-if="
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- ).length == 0
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- 0
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- v-if="
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- ).length > 0 &&
|
|
|
|
- typeof scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime == 'string'
|
|
|
|
- "
|
|
|
|
- >
|
|
|
|
- {{
|
|
|
|
- scope.row.worktimeList.filter(
|
|
|
|
- (w) =>w.createDate==item.date
|
|
|
|
- )[0].workingTime
|
|
|
|
- }}
|
|
|
|
- </div>
|
|
|
|
|
|
+ {{ scope.row.workingTime}}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column width="160" type="index" fixed="left" :label="'考勤工时'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{ scope.row.cardTime}}
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column width="160" type="index" fixed="left" :label="'是否异常'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{ scope.row.exceedCardTime==0?'否':'是'}}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column width="160" type="index" fixed="left" :label="'催办'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ {{ scope.row.exceedCardTime==0?'':'变更提醒'}}
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
</el-table>
|
|
</el-table>
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isFlag" :title="$t('message.loading')+'...'" type="success" center :closable="false" show-icon></el-alert>
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isFlag" :title="$t('message.loading')+'...'" type="success" center :closable="false" show-icon></el-alert>
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="warning" center show-icon></el-alert>
|
|
<el-alert style="position:absolute;bottom:0;z-index:10;" v-if="isMore" :title="$t('message.noMoreData')" type="warning" center show-icon></el-alert>
|
|
@@ -3887,8 +3824,10 @@
|
|
handleClick(t,e){
|
|
handleClick(t,e){
|
|
if (t.name == "second") {
|
|
if (t.name == "second") {
|
|
this.showMonthNotWorkTime()
|
|
this.showMonthNotWorkTime()
|
|
- }else{
|
|
|
|
|
|
+ }else if(t.name == "first"){
|
|
this.showMonthWorkTime(t.name)
|
|
this.showMonthWorkTime(t.name)
|
|
|
|
+ }else if(t.name == "third"){
|
|
|
|
+ this.showMonthWorkTimeReminder()
|
|
}
|
|
}
|
|
},
|
|
},
|
|
//导出员工每日填报工时数
|
|
//导出员工每日填报工时数
|
|
@@ -3914,6 +3853,28 @@
|
|
}
|
|
}
|
|
);
|
|
);
|
|
},
|
|
},
|
|
|
|
+ exportMembWorkHoursReminder() {
|
|
|
|
+ this.http.post(
|
|
|
|
+ "/report/exportUserDailyWorkTimeReminder",
|
|
|
|
+ {
|
|
|
|
+ // month: this.date,
|
|
|
|
+ startDate: this.WorktimeDatepickValueForMonth[0],
|
|
|
|
+ endDate: this.WorktimeDatepickValueForMonth[1],
|
|
|
|
+ },
|
|
|
|
+ (res) => {
|
|
|
|
+ if (res.code == "ok") {
|
|
|
|
+ let url = res.data;
|
|
|
|
+ this.downloadByA('工时异常表.xlsx', url);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ (error) => {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: error,
|
|
|
|
+ type: "error",
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+ },
|
|
exportMembNotWorkHours() {
|
|
exportMembNotWorkHours() {
|
|
|
|
|
|
this.http.post(
|
|
this.http.post(
|
|
@@ -4020,6 +3981,42 @@
|
|
}
|
|
}
|
|
);
|
|
);
|
|
},
|
|
},
|
|
|
|
+ showMonthWorkTimeReminder() {
|
|
|
|
+ this.monthTotalPage = 0,
|
|
|
|
+ this.tbload = true
|
|
|
|
+ let parameter={}
|
|
|
|
+ parameter={
|
|
|
|
+ startDate: this.WorktimeDatepickValueForMonth[0],
|
|
|
|
+ endDate: this.WorktimeDatepickValueForMonth[1],
|
|
|
|
+ }
|
|
|
|
+ this.http.post(
|
|
|
|
+ "/report/getUserDailyWorkTimeReminder",
|
|
|
|
+ parameter,
|
|
|
|
+ (res) => {
|
|
|
|
+ if (res.code == "ok") {
|
|
|
|
+ this.tbload = false;
|
|
|
|
+ this.monthWorkData = res.data.list;
|
|
|
|
+ this.monthTotal = res.data.list.length
|
|
|
|
+ if (this.monthWorkData.length > 50) {
|
|
|
|
+ this.monthWorkDataS = this.monthWorkData.slice(0,50);
|
|
|
|
+ }else{
|
|
|
|
+ this.monthWorkDataS = this.monthWorkData
|
|
|
|
+ }
|
|
|
|
+ this.searchScreen(0)
|
|
|
|
+ this.$nextTick(function(){
|
|
|
|
+ this.$refs.hasworkTbl.doLayout();
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ (error) => {
|
|
|
|
+ this.tbload = false
|
|
|
|
+ this.$message({
|
|
|
|
+ message: error,
|
|
|
|
+ type: "error",
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+ },
|
|
// tableListener(){
|
|
// tableListener(){
|
|
// let that = this;
|
|
// let that = this;
|
|
// let dom = that.$refs.hasworkTbl.bodyWrapper;
|
|
// let dom = that.$refs.hasworkTbl.bodyWrapper;
|