2024-10-16 15:09:57 +08:00
|
|
|
|
<template>
|
2024-12-18 16:55:46 +08:00
|
|
|
|
<div class="wrapper">
|
|
|
|
|
|
<el-dialog
|
|
|
|
|
|
style="margin-top: 5vh"
|
|
|
|
|
|
:title="title"
|
|
|
|
|
|
:visible.sync="open"
|
|
|
|
|
|
width="80%"
|
|
|
|
|
|
append-to-body
|
|
|
|
|
|
:close-on-click-modal="false"
|
|
|
|
|
|
@close="closeDialog"
|
|
|
|
|
|
>
|
|
|
|
|
|
<div class="content">
|
|
|
|
|
|
<el-form
|
|
|
|
|
|
:model="queryParams"
|
|
|
|
|
|
ref="queryFormRef"
|
|
|
|
|
|
size="medium"
|
|
|
|
|
|
:inline="true"
|
|
|
|
|
|
label-width="80px"
|
|
|
|
|
|
style="margin-bottom: 20px"
|
2024-10-16 15:09:57 +08:00
|
|
|
|
>
|
2024-12-18 16:55:46 +08:00
|
|
|
|
<el-form-item label="选择月份" v-if="status == 12">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="queryParams.month"
|
|
|
|
|
|
type="month" value-format="yyyy-MM"
|
|
|
|
|
|
placeholder="选择月">
|
|
|
|
|
|
</el-date-picker>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
|
label="姓名"
|
|
|
|
|
|
prop="userName"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
v-model="queryParams.userName"
|
|
|
|
|
|
placeholder="请输入姓名"
|
|
|
|
|
|
clearable
|
|
|
|
|
|
style="width: 240px"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-form-item>
|
2024-10-16 15:09:57 +08:00
|
|
|
|
|
2024-12-18 16:55:46 +08:00
|
|
|
|
<el-form-item label="状态" prop="attStatusToday" v-if="status == 1">
|
|
|
|
|
|
<el-select
|
|
|
|
|
|
v-model="queryParams.attStatusToday"
|
|
|
|
|
|
placeholder="状态"
|
|
|
|
|
|
clearable
|
|
|
|
|
|
style="width: 240px"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="dict in dict.type.att_status"
|
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
|
:label="dict.label"
|
|
|
|
|
|
:value="dict.value"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
2024-10-16 15:09:57 +08:00
|
|
|
|
|
2024-12-18 16:55:46 +08:00
|
|
|
|
<el-form-item label="部门" prop="orgId" v-if="status == 12">
|
|
|
|
|
|
<treeselect v-model="queryParams.orgId" :options="deptOptions" :normalizer="normalizer"
|
|
|
|
|
|
placeholder="选择部门" style="width: 240px"/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="状态" prop="attStatus" v-if="status == 12">
|
|
|
|
|
|
<el-select
|
|
|
|
|
|
v-model="queryParams.attStatus"
|
|
|
|
|
|
placeholder="状态"
|
|
|
|
|
|
clearable
|
|
|
|
|
|
style="width: 240px"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="dict in dict.type.att_status"
|
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
|
:label="dict.label"
|
|
|
|
|
|
:value="dict.value"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<!-- <el-form-item
|
|
|
|
|
|
label="设备编号"
|
|
|
|
|
|
prop="devCode"
|
|
|
|
|
|
v-if="status <= 8"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
v-model="queryParams.devCode"
|
|
|
|
|
|
placeholder="请输入设备编号"
|
|
|
|
|
|
clearable
|
|
|
|
|
|
style="width: 240px"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
|
label="工程名称"
|
|
|
|
|
|
prop="proName"
|
|
|
|
|
|
v-if="status > 8"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-input
|
|
|
|
|
|
v-model="queryParams.proName"
|
|
|
|
|
|
placeholder="请输入工程名称"
|
|
|
|
|
|
clearable
|
|
|
|
|
|
style="width: 240px"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item
|
|
|
|
|
|
label="工程类型"
|
|
|
|
|
|
prop="proType"
|
|
|
|
|
|
v-if="status === 9"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-select
|
|
|
|
|
|
v-model="queryParams.proType"
|
|
|
|
|
|
clearable
|
|
|
|
|
|
filterable
|
|
|
|
|
|
placeholder="请选择"
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="item in proTypeRange"
|
|
|
|
|
|
:key="item.value"
|
|
|
|
|
|
:label="item.label"
|
|
|
|
|
|
:value="item.value"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="日期" prop="date" v-if="status > 11">
|
|
|
|
|
|
<el-date-picker
|
|
|
|
|
|
v-model="queryParams.date"
|
|
|
|
|
|
style="width: 240px"
|
|
|
|
|
|
type="daterange"
|
|
|
|
|
|
value-format="yyyy-MM-dd"
|
|
|
|
|
|
range-separator="-"
|
|
|
|
|
|
start-placeholder="开始日期"
|
|
|
|
|
|
end-placeholder="结束日期"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-form-item> -->
|
|
|
|
|
|
<el-button
|
|
|
|
|
|
style="margin-top: 3px"
|
|
|
|
|
|
type="primary"
|
|
|
|
|
|
icon="el-icon-search"
|
|
|
|
|
|
size="mini"
|
|
|
|
|
|
@click="getTableList(currentFunc)"
|
|
|
|
|
|
>搜索
|
|
|
|
|
|
</el-button
|
|
|
|
|
|
>
|
|
|
|
|
|
</el-form>
|
2024-10-16 15:09:57 +08:00
|
|
|
|
|
2024-12-18 16:55:46 +08:00
|
|
|
|
<el-table
|
|
|
|
|
|
:data="tableList"
|
|
|
|
|
|
border
|
|
|
|
|
|
ref="tableRef"
|
|
|
|
|
|
width="100%" height="500px"
|
|
|
|
|
|
v-loading="loading"
|
|
|
|
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
<el-table-column type="index" label="序号" align="center" width="80">
|
|
|
|
|
|
<!-- 使用 `index` 方法自定义索引,传入当前行数据和行索引 -->
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
|
v-for="(item, v) in columnList"
|
|
|
|
|
|
:key="v"
|
|
|
|
|
|
:label="item.t_label"
|
|
|
|
|
|
:prop="item.t_props"
|
|
|
|
|
|
:width="item.t_width"
|
|
|
|
|
|
align="center"
|
|
|
|
|
|
show-overflow-tooltip
|
|
|
|
|
|
>
|
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
|
<template v-if="item.t_slot === 'attStatus'">
|
|
|
|
|
|
<dict-tag :options="dict.type.att_status" :value="scope.row[item.t_props]"/>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template v-else-if="item.t_slot === 'attCurrentDay'">
|
|
|
|
|
|
<span>{{ formatWeekday(scope.row[item.t_props]) }}</span>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template v-else-if="item.t_slot === 'examineStatus'">
|
|
|
|
|
|
<span v-if="scope.row[item.t_props]==0">{{ '待审核' }}</span>
|
|
|
|
|
|
<span v-if="scope.row[item.t_props]==1">{{ '通过' }}</span>
|
|
|
|
|
|
<span v-if="scope.row[item.t_props]==2">{{ '不通过' }}</span>
|
|
|
|
|
|
<span v-if="scope.row[item.t_props]==3">{{ '已撤回' }}</span>
|
|
|
|
|
|
<span v-else>{{ }}</span>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template v-else>
|
|
|
|
|
|
{{ scope.row[item.t_props] || '-' }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
|
|
|
|
|
|
<pagination
|
|
|
|
|
|
:total="total"
|
|
|
|
|
|
:page.sync="queryParams.pageNum"
|
|
|
|
|
|
:limit.sync="queryParams.pageSize"
|
|
|
|
|
|
@pagination="getTableList(currentFunc, currentParam)"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-dialog>
|
2024-10-16 15:09:57 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-12-18 16:55:46 +08:00
|
|
|
|
</div>
|
2024-10-16 15:09:57 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2024-12-18 16:55:46 +08:00
|
|
|
|
import {listDept} from "@/api/system/dept";
|
2024-10-16 15:09:57 +08:00
|
|
|
|
import Treeselect from "@riophae/vue-treeselect";
|
2024-12-18 16:55:46 +08:00
|
|
|
|
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
|
|
|
|
|
|
import {getDetailsList} from "@/api/report/attReport";
|
2024-12-18 20:14:18 +08:00
|
|
|
|
import {getAttDayReportDetailsListData,getAttDayList} from "@/api/report/dayReport";
|
2024-12-18 16:55:46 +08:00
|
|
|
|
import {getDetailExceptionAll} from "@/api/dashboard";
|
|
|
|
|
|
|
2024-10-16 15:09:57 +08:00
|
|
|
|
export default {
|
2024-12-18 16:55:46 +08:00
|
|
|
|
name: 'commonDialog',
|
|
|
|
|
|
dicts: ['att_status'],
|
|
|
|
|
|
components: {
|
|
|
|
|
|
Treeselect
|
|
|
|
|
|
},
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
total: 0,
|
|
|
|
|
|
loading: false,
|
|
|
|
|
|
status: undefined,
|
|
|
|
|
|
queryParams: {
|
|
|
|
|
|
month: undefined,
|
|
|
|
|
|
pageNum: 1,
|
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
|
},
|
|
|
|
|
|
title: "",
|
|
|
|
|
|
open: false,
|
|
|
|
|
|
deptOptions: [],
|
|
|
|
|
|
tableList: [],
|
|
|
|
|
|
columnList: [],
|
|
|
|
|
|
additionalList: [],
|
|
|
|
|
|
currentFunc: undefined,
|
|
|
|
|
|
currentParam: undefined,
|
|
|
|
|
|
|
|
|
|
|
|
proTypeRange: [
|
|
|
|
|
|
{label: '变电工程', value: '1'},
|
|
|
|
|
|
{label: '线路工程', value: '2'},
|
|
|
|
|
|
{label: '电缆工程', value: '3'},
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
|
|
|
|
|
|
this.getDeptList();
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
getMonth() {
|
|
|
|
|
|
// 默认当月
|
|
|
|
|
|
var nowDate = new Date();
|
|
|
|
|
|
var date = {
|
|
|
|
|
|
year: nowDate.getFullYear(),
|
|
|
|
|
|
month: nowDate.getMonth() + 1,
|
|
|
|
|
|
day: nowDate.getDate()
|
|
|
|
|
|
};
|
|
|
|
|
|
const dayDate = date.year + "-" + (date.month >= 10 ? date.month : "0" + date.month);
|
|
|
|
|
|
this.$set(this.queryParams, "month", dayDate.toString());
|
2024-10-16 15:09:57 +08:00
|
|
|
|
},
|
2024-12-18 16:55:46 +08:00
|
|
|
|
getMonthDate() {
|
|
|
|
|
|
const str = this.queryParams.month + '-01';
|
|
|
|
|
|
// 获取当前日期
|
|
|
|
|
|
var currentDate = new Date(str);
|
|
|
|
|
|
// 获取当前月份的第一天
|
|
|
|
|
|
var firstDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
|
|
|
|
|
|
let firstDay = this.formatDate(firstDayOfMonth)
|
|
|
|
|
|
// 获取当前月份的最后一天
|
|
|
|
|
|
var lastDayOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);
|
|
|
|
|
|
let lastDay = this.formatDate(lastDayOfMonth)
|
|
|
|
|
|
return [firstDay, lastDay]
|
2024-10-16 15:09:57 +08:00
|
|
|
|
},
|
2024-12-18 16:55:46 +08:00
|
|
|
|
formatDate(dateString) {
|
|
|
|
|
|
const date = new Date(dateString); // 创建日期对象
|
|
|
|
|
|
const year = date.getFullYear(); // 获取年份
|
|
|
|
|
|
const month = String(date.getMonth() + 1).padStart(2, '0'); // 获取月份(注意:月份从0开始)
|
|
|
|
|
|
const day = String(date.getDate()).padStart(2, '0'); // 获取日期
|
|
|
|
|
|
return `${year}-${month}-${day}`; // 组合成所需格式
|
2024-10-16 15:09:57 +08:00
|
|
|
|
},
|
2024-12-18 16:55:46 +08:00
|
|
|
|
formatWeekday(dateString) {
|
|
|
|
|
|
const date = new Date(dateString); // 创建日期对象
|
|
|
|
|
|
const year = date.getFullYear(); // 获取年份
|
|
|
|
|
|
const month = String(date.getMonth() + 1).padStart(2, '0'); // 获取月份(注意:月份从0开始)
|
|
|
|
|
|
const day = String(date.getDate()).padStart(2, '0'); // 获取日期
|
|
|
|
|
|
const weekdays = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; // 星期几数组
|
|
|
|
|
|
const weekday = weekdays[date.getDay()]; // 获取星期几
|
2024-10-16 15:09:57 +08:00
|
|
|
|
|
2024-12-18 16:55:46 +08:00
|
|
|
|
return `${year}-${month}-${day} ${weekday}`; // 组合成所需格式
|
|
|
|
|
|
},
|
|
|
|
|
|
//部门选择
|
|
|
|
|
|
getDeptList() {
|
|
|
|
|
|
listDept().then(response => {
|
|
|
|
|
|
this.deptOptions = this.handleTree(response.data, "id");
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
/** 转换部门数据结构 */
|
|
|
|
|
|
normalizer(node) {
|
|
|
|
|
|
if (node.children && !node.children.length) {
|
|
|
|
|
|
delete node.children;
|
|
|
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
|
|
|
id: node.id,
|
|
|
|
|
|
label: node.orgName,
|
|
|
|
|
|
children: node.children
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
//当日考勤统计
|
2024-12-18 20:14:18 +08:00
|
|
|
|
async getAttDayReportDetailsListData(data) {
|
|
|
|
|
|
let res = await getAttDayReportDetailsListData(data).then(response => {
|
2024-12-18 16:55:46 +08:00
|
|
|
|
return response
|
|
|
|
|
|
});
|
|
|
|
|
|
return res
|
|
|
|
|
|
},
|
|
|
|
|
|
//未处理已处理数据
|
|
|
|
|
|
async getDetailExceptionAll(data) {
|
|
|
|
|
|
var nowDate = new Date();
|
|
|
|
|
|
var date = {
|
|
|
|
|
|
year: nowDate.getFullYear(),
|
|
|
|
|
|
month: nowDate.getMonth() + 1,
|
|
|
|
|
|
day: nowDate.getDate()
|
|
|
|
|
|
};
|
|
|
|
|
|
const dayDate = date.year + "-" + (date.month >= 10 ? date.month : "0" + date.month);
|
|
|
|
|
|
data.month = dayDate.toString()
|
|
|
|
|
|
data.name = data.userName;
|
|
|
|
|
|
data.attCurrentMonth = data.month;
|
|
|
|
|
|
let res = await getDetailExceptionAll(data).then(response => {
|
|
|
|
|
|
return response
|
|
|
|
|
|
});
|
|
|
|
|
|
return res
|
|
|
|
|
|
},
|
|
|
|
|
|
//当月异常数据
|
|
|
|
|
|
async getDetailsList(data) {
|
|
|
|
|
|
console.log("当月异常数据",data)
|
|
|
|
|
|
let dateRange = this.getMonthDate()
|
|
|
|
|
|
console.log(dateRange)
|
|
|
|
|
|
if (dateRange && dateRange.length > 0) {
|
|
|
|
|
|
data.startDate = dateRange[0]
|
|
|
|
|
|
data.endDate = dateRange[1]
|
|
|
|
|
|
} else {
|
|
|
|
|
|
data.startDate = undefined
|
|
|
|
|
|
data.endDate = undefined
|
|
|
|
|
|
}
|
|
|
|
|
|
let res = await getDetailsList(data).then(response => {
|
|
|
|
|
|
return response
|
|
|
|
|
|
});
|
|
|
|
|
|
return res
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//今日出勤状态
|
|
|
|
|
|
async getAttDayList(data) {
|
|
|
|
|
|
console.log("今日出勤状态",data)
|
|
|
|
|
|
let res = await getAttDayList(data).then(response => {
|
|
|
|
|
|
return response
|
|
|
|
|
|
});
|
|
|
|
|
|
return res
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
setOpen(v) {
|
|
|
|
|
|
console.log(v)
|
|
|
|
|
|
this.queryParams = {
|
|
|
|
|
|
pageNum: 1,
|
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
|
}
|
|
|
|
|
|
this.open = v.open
|
|
|
|
|
|
this.status = v.param.order
|
|
|
|
|
|
switch (v.param.order) {
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
this.title = "打卡记录"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
|
|
|
|
|
this.currentFunc = this.getAttDayList
|
|
|
|
|
|
this.getTableList(this.getAttDayList, v.param)
|
2024-12-18 20:14:18 +08:00
|
|
|
|
// this.currentFunc = this.getAttDayReportDetailsListData
|
|
|
|
|
|
// this.getTableList(this.getAttDayReportDetailsListData, v.param)
|
2024-12-18 16:55:46 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
this.title = "迟到记录"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
2024-12-18 20:14:18 +08:00
|
|
|
|
this.currentFunc = this.getAttDayReportDetailsListData
|
|
|
|
|
|
this.getTableList(this.getAttDayReportDetailsListData, v.param)
|
2024-12-18 16:55:46 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
this.title = "旷工记录"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
2024-12-18 20:14:18 +08:00
|
|
|
|
this.currentFunc = this.getAttDayReportDetailsListData
|
|
|
|
|
|
this.getTableList(this.getAttDayReportDetailsListData, v.param)
|
2024-12-18 16:55:46 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 4:
|
|
|
|
|
|
this.title = "早退记录"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
2024-12-18 20:14:18 +08:00
|
|
|
|
this.currentFunc = this.getAttDayReportDetailsListData
|
|
|
|
|
|
this.getTableList(this.getAttDayReportDetailsListData, v.param)
|
2024-12-18 16:55:46 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 6:
|
|
|
|
|
|
this.title = "请假记录"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
2024-12-18 20:14:18 +08:00
|
|
|
|
this.currentFunc = this.getAttDayReportDetailsListData
|
|
|
|
|
|
this.getTableList(this.getAttDayReportDetailsListData, v.param)
|
2024-12-18 16:55:46 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 8:
|
|
|
|
|
|
this.title = "出入异常记录"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
2024-12-18 20:14:18 +08:00
|
|
|
|
this.currentFunc = this.getAttDayReportDetailsListData
|
|
|
|
|
|
this.getTableList(this.getAttDayReportDetailsListData, v.param)
|
2024-12-18 16:55:46 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 9:
|
|
|
|
|
|
this.title = "打卡地异常记录"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
2024-12-18 20:14:18 +08:00
|
|
|
|
this.currentFunc = this.getAttDayReportDetailsListData
|
|
|
|
|
|
this.getTableList(this.getAttDayReportDetailsListData, v.param)
|
2024-12-18 16:55:46 +08:00
|
|
|
|
break;
|
|
|
|
|
|
case 10:
|
|
|
|
|
|
this.title = "已处理异常数据"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'name', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'leaveType', t_label: '请假类型'},
|
|
|
|
|
|
{t_props: 'leaveStartDate', t_label: '请假开始时间'},
|
|
|
|
|
|
{t_props: 'leaveEndDate', t_label: '请假结束时间'},
|
|
|
|
|
|
{t_props: 'leaveDuration', t_label: '请假时长(天)'},
|
|
|
|
|
|
{t_props: 'examineStatus', t_label: '审批状态', t_slot: 'examineStatus'},
|
|
|
|
|
|
]
|
|
|
|
|
|
this.currentFunc = this.getDetailExceptionAll
|
|
|
|
|
|
this.getTableList(this.getDetailExceptionAll, v.param)
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 11:
|
|
|
|
|
|
this.title = "未处理异常数据"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'name', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'leaveType', t_label: '请假类型'},
|
|
|
|
|
|
{t_props: 'leaveStartDate', t_label: '请假开始时间'},
|
|
|
|
|
|
{t_props: 'leaveEndDate', t_label: '请假结束时间'},
|
|
|
|
|
|
{t_props: 'leaveDuration', t_label: '请假时长(天)'},
|
|
|
|
|
|
{t_props: 'examineStatus', t_label: '审批状态', t_slot: 'examineStatus'},
|
|
|
|
|
|
]
|
|
|
|
|
|
this.currentFunc = this.getDetailExceptionAll
|
|
|
|
|
|
this.getTableList(this.getDetailExceptionAll, v.param)
|
|
|
|
|
|
break;
|
|
|
|
|
|
case 12:
|
|
|
|
|
|
this.title = "当月异常统计"
|
|
|
|
|
|
this.columnList = [
|
|
|
|
|
|
{t_props: 'userName', t_label: '姓名'},
|
|
|
|
|
|
{t_props: 'orgName', t_label: '所属部门'},
|
|
|
|
|
|
{t_props: 'attCurrentDay', t_label: '考勤日期', t_slot: 'attCurrentDay'},
|
|
|
|
|
|
{t_props: 'toWorkAttCurrentTime', t_label: '上班打卡时间'},
|
|
|
|
|
|
{t_props: 'toWorkAttStatus', t_label: '上班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'toWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
{t_props: 'offWorkAttCurrentTime', t_label: '下班打卡时间'},
|
|
|
|
|
|
{t_props: 'offWorkAttStatus', t_label: '下班状态', t_slot: 'attStatus'},
|
|
|
|
|
|
{t_props: 'offWorkAttAddress', t_label: '打卡地址'},
|
|
|
|
|
|
]
|
|
|
|
|
|
this.getMonth();
|
|
|
|
|
|
this.currentFunc = this.getDetailsList
|
|
|
|
|
|
this.getTableList(this.getDetailsList, v.param)
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
async getTableList(func, param) {
|
|
|
|
|
|
if (param) {
|
|
|
|
|
|
Object.assign(this.queryParams, param)
|
|
|
|
|
|
}
|
|
|
|
|
|
let res = await func(this.queryParams)
|
|
|
|
|
|
console.log(res)
|
|
|
|
|
|
if (res.data) {
|
|
|
|
|
|
this.tableList = res.data.rows
|
|
|
|
|
|
this.total = res.data.total
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.total = res.total
|
|
|
|
|
|
this.tableList = res.rows
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
closeDialog() {
|
|
|
|
|
|
this.queryParams = {
|
|
|
|
|
|
pageNum: 1,
|
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
|
}
|
2024-10-16 15:09:57 +08:00
|
|
|
|
},
|
2024-12-18 16:55:46 +08:00
|
|
|
|
},
|
2024-10-16 15:09:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
.content {
|
2024-12-18 16:55:46 +08:00
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
padding: 20px;
|
2024-10-16 15:09:57 +08:00
|
|
|
|
}
|
|
|
|
|
|
</style>
|