|
|
@@ -357,6 +357,12 @@
|
|
|
@click="ssl(45)"
|
|
|
><p>额外工时表</p></el-menu-item
|
|
|
>
|
|
|
+ <el-menu-item
|
|
|
+ index="1-46"
|
|
|
+ v-if="permissions.attendanceException"
|
|
|
+ @click="ssl(46)"
|
|
|
+ ><p>考勤异常表</p></el-menu-item
|
|
|
+ >
|
|
|
<!-- <el-menu-item index="1-45" v-if="permissions.engineeringProgress" @click="ssl(42)"><p>施工进度表</p></el-menu-item> -->
|
|
|
</el-submenu>
|
|
|
</el-menu>
|
|
|
@@ -6776,6 +6782,115 @@
|
|
|
</el-table>
|
|
|
</template>
|
|
|
|
|
|
+ <!-- 考勤异常表 -->
|
|
|
+ <template v-if="ins == 46">
|
|
|
+ <el-table
|
|
|
+ key="46"
|
|
|
+ border
|
|
|
+ :data="exceptionReportList"
|
|
|
+ highlight-current-row
|
|
|
+ v-loading="exceptionReportLoading"
|
|
|
+ :height="+tableHeight"
|
|
|
+ style="width: 100%"
|
|
|
+ :max-height="+tableHeight + 50"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ type="index"
|
|
|
+ label="序号"
|
|
|
+ width="60"
|
|
|
+ align="center"
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="userName"
|
|
|
+ align="center"
|
|
|
+ label="姓名"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
+ <TranslationOpenDataText
|
|
|
+ type="userName"
|
|
|
+ :openid="scope.row.corpwxUserid"
|
|
|
+ ></TranslationOpenDataText>
|
|
|
+ </span>
|
|
|
+ <span v-if="user.userNameNeedTranslate != '1'">
|
|
|
+ {{ scope.row.userName }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="departmentName"
|
|
|
+ align="center"
|
|
|
+ label="部门"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="user.userNameNeedTranslate == '1'">
|
|
|
+ <TranslationOpenDataText
|
|
|
+ type="departmentName"
|
|
|
+ :openid="scope.row.departmentName"
|
|
|
+ ></TranslationOpenDataText>
|
|
|
+ </span>
|
|
|
+ <span v-if="user.userNameNeedTranslate != '1'">
|
|
|
+ {{ scope.row.departmentName }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="lateCount"
|
|
|
+ align="center"
|
|
|
+ label="迟到次数"
|
|
|
+ width="100"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.lateCount || 0 }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="earlyLeaveCount"
|
|
|
+ align="center"
|
|
|
+ label="早退次数"
|
|
|
+ width="100"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.earlyLeaveCount || 0 }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="missPunchCount"
|
|
|
+ align="center"
|
|
|
+ label="缺卡次数"
|
|
|
+ width="100"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.missPunchCount || 0 }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="absenteeismCount"
|
|
|
+ align="center"
|
|
|
+ label="旷工次数"
|
|
|
+ width="100"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ scope.row.absenteeismCount || 0 }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ align="center"
|
|
|
+ label="合计异常次数"
|
|
|
+ width="120"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{
|
|
|
+ (scope.row.lateCount || 0) +
|
|
|
+ (scope.row.earlyLeaveCount || 0) +
|
|
|
+ (scope.row.missPunchCount || 0) +
|
|
|
+ (scope.row.absenteeismCount || 0)
|
|
|
+ }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </template>
|
|
|
+
|
|
|
<!--工具条-->
|
|
|
<el-col
|
|
|
:span="24"
|
|
|
@@ -6795,7 +6910,8 @@
|
|
|
ins != 40 &&
|
|
|
ins != 41 &&
|
|
|
ins != 42 &&
|
|
|
- ins != 45
|
|
|
+ ins != 45 &&
|
|
|
+ ins != 46
|
|
|
"
|
|
|
>
|
|
|
<el-pagination
|
|
|
@@ -7628,12 +7744,12 @@ export default {
|
|
|
// 筛选条件的判断
|
|
|
project: [
|
|
|
4, 8, 9, 10, 11, 14, 15, 17, 19, 20, 21, 22, 28, 30, 31, 34, 35, 36,
|
|
|
- 37, 38, 40, 41, 42, 43, 44, 45,
|
|
|
+ 37, 38, 40, 41, 42, 43, 44, 45, 46,
|
|
|
], // 项目筛选条件 (不等于)
|
|
|
- months: [14, 15, 43, 44], // 月份筛选条件 (等于)
|
|
|
+ months: [14, 15, 43, 44, 46], // 月份筛选条件 (等于)
|
|
|
monthRange: [19, 30], // 月份区间筛选条件 (等于)
|
|
|
staff: [
|
|
|
- 6, 8, 9, 19, 11, 14, 18, 23, 25, 26, 28, 30, 32, 35, 36, 37, 38, 39, 45,
|
|
|
+ 6, 8, 9, 19, 11, 14, 18, 23, 25, 26, 28, 30, 32, 35, 36, 37, 38, 39, 45, 46,
|
|
|
], // 人员筛选条件 (等于)
|
|
|
departments: [14, 15, 23, 21, 26, 28, 19, 30, 36, 37, 38, 45], // 部门筛选条件 (等于)
|
|
|
timePeriod: [
|
|
|
@@ -7772,6 +7888,7 @@ export default {
|
|
|
"员工假勤表",
|
|
|
"员工考勤表",
|
|
|
"额外工时表",
|
|
|
+ "考勤异常表",
|
|
|
],
|
|
|
|
|
|
shuzArr: [
|
|
|
@@ -7821,6 +7938,7 @@ export default {
|
|
|
"员工假勤表",
|
|
|
"员工考勤表",
|
|
|
"额外工时表",
|
|
|
+ "考勤异常表",
|
|
|
],
|
|
|
|
|
|
ins: 10000,
|
|
|
@@ -8097,6 +8215,10 @@ export default {
|
|
|
// 额外工时表
|
|
|
extraWorkHoursList: [],
|
|
|
extraWorkHoursLoading: false,
|
|
|
+
|
|
|
+ // 考勤异常表
|
|
|
+ exceptionReportList: [],
|
|
|
+ exceptionReportLoading: false,
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
|
@@ -9064,6 +9186,9 @@ export default {
|
|
|
if (this.ins == 45) {
|
|
|
this.getExtraWorkHours();
|
|
|
}
|
|
|
+ if (this.ins == 46) {
|
|
|
+ this.getExceptionReport();
|
|
|
+ }
|
|
|
},
|
|
|
exportExcel() {
|
|
|
var url = "/project";
|
|
|
@@ -9498,6 +9623,14 @@ export default {
|
|
|
sl.departmentId =
|
|
|
this.departmentIdArray[this.departmentIdArray.length - 1];
|
|
|
}
|
|
|
+ } else if (this.ins == 46) {
|
|
|
+ fName = `考勤异常表.xlsx`;
|
|
|
+ url = `/exception-infos/exportExceptionReport`;
|
|
|
+ sl.ymonth =
|
|
|
+ this.monthPersonnel || this.dayjs(new Date()).format("YYYY-MM");
|
|
|
+ if (this.userId) {
|
|
|
+ sl.userId = this.userId;
|
|
|
+ }
|
|
|
}
|
|
|
this.exportReportLoading = true;
|
|
|
this.http.post(
|
|
|
@@ -10982,6 +11115,8 @@ export default {
|
|
|
this.getEmployeeCorpTime();
|
|
|
} else if (this.ins == 42) {
|
|
|
this.getConstructionStage();
|
|
|
+ } else if (this.ins == 46) {
|
|
|
+ this.getExceptionReport();
|
|
|
}
|
|
|
},
|
|
|
|
|
|
@@ -12539,6 +12674,24 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
|
|
|
+ // 获取考勤异常表
|
|
|
+ getExceptionReport() {
|
|
|
+ this.exceptionReportLoading = true;
|
|
|
+ let parameter = {
|
|
|
+ ymonth: this.monthPersonnel || this.dayjs(new Date()).format("YYYY-MM"),
|
|
|
+ };
|
|
|
+ if (this.userId) {
|
|
|
+ parameter.userId = this.userId;
|
|
|
+ }
|
|
|
+ this.postData(`/exception-infos/getExceptionReport`, parameter)
|
|
|
+ .then((res) => {
|
|
|
+ this.exceptionReportList = Array.isArray(res.data) ? res.data : [];
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ this.exceptionReportLoading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
// 获取施工进度表
|
|
|
getConstructionStage() {
|
|
|
this.constructionStageLoading = true;
|