八大员,考勤明细修改记录

This commit is contained in:
hayu 2024-10-14 18:17:16 +08:00
parent 6cf1a8d8d6
commit 667da128f8
6 changed files with 262 additions and 160 deletions

View File

@ -0,0 +1,29 @@
import request from '@/utils/request'
// 查询八大员列表
export function getOrgEightRoleTable(query) {
return request({
url: '/system/proDeptRole/getOrgEightRoleTable',
method: 'get',
params: query
})
}
// 查询八大员-缺员/兼职情况列表
export function getOrgEightRoleDetail(query) {
return request({
url: '/system/proDeptRole/getOrgEightRoleDetail',
method: 'get',
params: query
})
}
// 查询八大员-缺员/兼职情况列表
export function getMoreOrgData(query) {
return request({
url: '/system/proDeptRole/getMoreOrgData',
method: 'get',
params: query
})
}

View File

@ -28,3 +28,12 @@ export function getDetailsRecordList(query) {
}) })
} }
// 考勤明细修改审批
export function updateAttDetailsDataExamine(data) {
return request({
url: '/system/attDetails/updateAttDetailsDataExamine',
method: 'put',
data: data
})
}

View File

@ -1,9 +1,9 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="分公司名称" prop="orgName"> <el-form-item label="分公司名称" prop="parentOrgName">
<el-input <el-input
v-model="queryParams.orgName" v-model="queryParams.parentOrgName"
maxlength="28" maxlength="28"
placeholder="请输入分公司名称" placeholder="请输入分公司名称"
clearable clearable
@ -24,15 +24,15 @@
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span> <span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="分公司名称" align="center" prop="orgName" :show-overflow-tooltip="true" /> <el-table-column label="分公司名称" align="center" prop="parentOrgName" :show-overflow-tooltip="true" />
<el-table-column label="缺员情况" align="center" :show-overflow-tooltip="true"> <el-table-column label="缺员情况" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="goShortageSituation(scope.row)">{{scope.row.deptRoleName}}</div> <div style="color: #1890FF; cursor: pointer" @click="goShortageSituation(scope.row)">{{scope.row.lackOrgName}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="兼职情况" align="center" :show-overflow-tooltip="true"> <el-table-column label="兼职情况" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="goPartTimeSituation(scope.row)">{{scope.row.deptRoleName}}</div> <div style="color: #1890FF; cursor: pointer" @click="goPartTimeSituation(scope.row)">{{scope.row.moreOrgName}}</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -78,7 +78,7 @@
</template> </template>
<script> <script>
import {getRoleUserList, proDeptRole} from "@/api/process/rolesRemind"; import {getOrgEightRoleTable} from "@/api/process/eightMembers";
import { treeselect as staffTreeselect, roleStaffTreeselect } from "@/api/process/tree"; import { treeselect as staffTreeselect, roleStaffTreeselect } from "@/api/process/tree";
@ -108,10 +108,7 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
deptRoleName: undefined, parentOrgName:undefined
orgName: undefined,
userName: undefined,
departmentId:"-1"
}, },
// //
staffOptions: [], staffOptions: [],
@ -133,7 +130,7 @@ export default {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
getRoleUserList(this.queryParams).then(response => { getOrgEightRoleTable(this.queryParams).then(response => {
this.typeList = response.rows; this.typeList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -148,17 +145,7 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
orgId: undefined, parentOrgName:undefined,
orgName: undefined,
departmentId: undefined,
deptRoleId: undefined,
deptRoleName: undefined,
userId: undefined,
userName: undefined,
reviewerStatus: undefined,
reviewerTime: undefined,
reviewerUserId: undefined,
roleType: undefined,
staffOptions:[] staffOptions:[]
}; };
this.defaultCheckedKeys = []; // this.defaultCheckedKeys = []; //
@ -177,23 +164,16 @@ export default {
/** 分配人员按钮操作 */ /** 分配人员按钮操作 */
handleAllocation(row) { handleAllocation(row) {
this.reset(); this.reset();
this.getStaffTreeselect(row);
this.form = row; this.form = row;
this.open = true; this.open = true;
this.title = "分配人员"; this.title = "分配人员";
}, },
/** 查询员工树结构 */
getStaffTreeselect(data) {
staffTreeselect(data).then(response => {
this.staffOptions = response.data;
});
},
goShortageSituation(item){ goShortageSituation(item){
this.$router.push({path:"/process/shortageSituation",query:{orgId:item.orgId}}) this.$router.push({path:"/process/shortageSituation",query:{parentOrgName:item.parentOrgName,lackOrgId:item.lackOrgId}})
}, },
goPartTimeSituation(item){ goPartTimeSituation(item){
this.$router.push({path:"/process/partTimeSituation",query:{orgId:item.orgId}}) this.$router.push({path:"/process/partTimeSituation",query:{parentOrgName:item.parentOrgName,moreOrgId:item.moreOrgId}})
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {

View File

@ -1,9 +1,9 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="项目部名称" prop="orgName"> <el-form-item label="项目部名称" prop="parentOrgName">
<el-input <el-input
v-model="queryParams.orgName" v-model="queryParams.parentOrgName"
maxlength="28" maxlength="28"
placeholder="请输入项目部名称" placeholder="请输入项目部名称"
clearable clearable
@ -12,17 +12,6 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="人员" prop="userName">
<el-input
v-model="queryParams.userName"
maxlength="28"
placeholder="请输入人员名称"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -36,30 +25,54 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="项目部名称" align="center" prop="orgName" :show-overflow-tooltip="true" /> <el-table-column label="项目部名称" align="center" prop="orgName" :show-overflow-tooltip="true" />
<el-table-column label="项目经理" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="项目经理" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,1)">{{scope.row.projectManager}}</div>
</template>
</el-table-column>
<el-table-column label="安全员" align="center" :show-overflow-tooltip="true"> <el-table-column label="安全员" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row)">{{scope.row.deptRoleName}}</div> <div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,2)">{{scope.row.safetyOfficer}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="质检员" align="center" prop="orgName" :show-overflow-tooltip="true" /> <el-table-column label="质检员" align="center" :show-overflow-tooltip="true" >
<el-table-column label="项目总工" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <template slot-scope="scope">
<el-table-column label="机械员" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,3)">{{scope.row.qualityInspector}}</div>
</template>
</el-table-column>
<el-table-column label="项目总工" align="center" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,4)">{{scope.row.chiefEngineer}}</div>
</template>
</el-table-column>
<el-table-column label="机械员" align="center" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,5)">{{scope.row.mechanicalStaff}}</div>
</template>
</el-table-column>
<el-table-column label="资料员" align="center" :show-overflow-tooltip="true"> <el-table-column label="资料员" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row)">{{scope.row.orgName}}</div> <div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,6)">{{scope.row.documentStaff}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="施工员" align="center" :show-overflow-tooltip="true"> <el-table-column label="施工员" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row)">{{scope.row.deptRoleName}}</div> <div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,7)">{{scope.row.constructionStaff}}</div>
</template>
</el-table-column>
<el-table-column label="材料员" align="center" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,8)">{{scope.row.materialStaff}}</div>
</template>
</el-table-column>
<el-table-column label="其他" align="center" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<div style="color: #1890FF; cursor: pointer" @click="handleAllocation(scope.row,9)">{{scope.row.other}}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="材料员" align="center" prop="deptRoleName" :show-overflow-tooltip="true" />
<el-table-column label="其他" align="center" prop="deptRoleName" :show-overflow-tooltip="true" />
</el-table> </el-table>
@ -74,58 +87,30 @@
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="650px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="650px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row> <!-- 使用v-for遍历MoreOrgDataList -->
<el-row v-for="(item, index) in MoreOrgDataList" :key="index">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="兼职人员:" prop="orgName" label-width="90px"> <el-form-item label="兼职人员:" prop="orgName" label-width="90px">
<el-input v-model="form.orgName" :disabled="true" /> <el-input :value="item.userName" :disabled="true" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="兼职角色:" prop="deptRoleName" label-width="90px"> <el-form-item label="兼职角色:" prop="deptRoleName" label-width="90px">
<el-input v-model="form.deptRoleName" :disabled="true" /> <el-input :value="item.deptRoleName" :disabled="true" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :span="12">
<el-form-item label="兼职人员:" prop="orgName" label-width="90px">
<el-input v-model="form.orgName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="兼职角色:" prop="deptRoleName" label-width="90px">
<el-input v-model="form.deptRoleName" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="兼职人员:" prop="orgName" label-width="90px">
<el-input v-model="form.orgName" :disabled="true" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="兼职角色:" prop="deptRoleName" label-width="90px">
<el-input v-model="form.deptRoleName" :disabled="true" />
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer" align="center"> <div slot="footer" class="dialog-footer" align="center">
<el-button @click="cancel">关闭</el-button> <el-button @click="cancels">关闭</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {getRoleUserList, proDeptRole} from "@/api/process/rolesRemind";
import { treeselect as staffTreeselect, roleStaffTreeselect } from "@/api/process/tree";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import {getOrgEightRoleDetail,getMoreOrgData} from "@/api/process/eightMembers";
export default { export default {
@ -147,6 +132,7 @@ export default {
total: 0, total: 0,
// //
typeList: [], typeList: [],
MoreOrgDataList:[],
// //
title: "", title: "",
// //
@ -155,11 +141,10 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
deptRoleName: undefined, parentOrgName:undefined,
orgName: undefined, moreOrgId:this.$route.query.moreOrgId
userName: undefined,
departmentId:"-1"
}, },
paramsQuery:{},
// //
staffOptions: [], staffOptions: [],
// id // id
@ -180,7 +165,7 @@ export default {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
getRoleUserList(this.queryParams).then(response => { getOrgEightRoleDetail(this.queryParams).then(response => {
this.typeList = response.rows; this.typeList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -195,18 +180,7 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
orgId: undefined, parentOrgName:undefined
orgName: undefined,
departmentId: undefined,
deptRoleId: undefined,
deptRoleName: undefined,
userId: undefined,
userName: undefined,
reviewerStatus: undefined,
reviewerTime: undefined,
reviewerUserId: undefined,
roleType: undefined,
staffOptions:[]
}; };
this.defaultCheckedKeys = []; // this.defaultCheckedKeys = []; //
this.resetForm("form"); this.resetForm("form");
@ -221,21 +195,29 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
/** 分配人员按钮操作 */ /** 按钮操作 */
handleAllocation(row) { handleAllocation(row,deptRoleId) {
this.reset(); this.reset();
this.getStaffTreeselect(row); this.getDialogData(row,deptRoleId);
this.form = row; this.form = row;
this.open = true; this.open = true;
}, },
/** 查询员工树结构 */ /** 查询员工树结构 */
getStaffTreeselect(data) { getDialogData(data,deptRoleId) {
staffTreeselect(data).then(response => { console.log(data.orgId)
this.staffOptions = response.data; this.paramsQuery={
orgId:data.orgId,
deptRoleId:deptRoleId
}
getMoreOrgData(this.paramsQuery).then(response => {
this.MoreOrgDataList = response.data;
}); });
}, },
cancels(){
this.open = false;
this.MoreOrgDataList=[];
},
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {

View File

@ -1,9 +1,9 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="项目部名称" prop="orgName"> <el-form-item label="项目部名称" prop="parentOrgName">
<el-input <el-input
v-model="queryParams.orgName" v-model="queryParams.parentOrgName"
maxlength="28" maxlength="28"
placeholder="请输入项目部名称" placeholder="请输入项目部名称"
clearable clearable
@ -12,17 +12,6 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="人员" prop="userName">
<el-input
v-model="queryParams.userName"
maxlength="28"
placeholder="请输入人员名称"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -36,15 +25,15 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="项目部名称" align="center" prop="orgName" :show-overflow-tooltip="true" /> <el-table-column label="项目部名称" align="center" prop="orgName" :show-overflow-tooltip="true" />
<el-table-column label="项目经理" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="项目经理" align="center" prop="projectManager" :show-overflow-tooltip="true" />
<el-table-column label="安全员" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="安全员" align="center" prop="safetyOfficer" :show-overflow-tooltip="true" />
<el-table-column label="质检员" align="center" prop="orgName" :show-overflow-tooltip="true" /> <el-table-column label="质检员" align="center" prop="qualityInspector" :show-overflow-tooltip="true" />
<el-table-column label="项目总工" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="项目总工" align="center" prop="chiefEngineer" :show-overflow-tooltip="true" />
<el-table-column label="机械员" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="机械员" align="center" prop="mechanicalStaff" :show-overflow-tooltip="true" />
<el-table-column label="资料员" align="center" prop="orgName" :show-overflow-tooltip="true" /> <el-table-column label="资料员" align="center" prop="documentStaff" :show-overflow-tooltip="true" />
<el-table-column label="施工员" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="施工员" align="center" prop="constructionStaff" :show-overflow-tooltip="true" />
<el-table-column label="材料员" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="材料员" align="center" prop="materialStaff" :show-overflow-tooltip="true" />
<el-table-column label="其他" align="center" prop="deptRoleName" :show-overflow-tooltip="true" /> <el-table-column label="其他" align="center" prop="other" :show-overflow-tooltip="true" />
</el-table> </el-table>
@ -89,7 +78,7 @@
</template> </template>
<script> <script>
import {getRoleUserList, proDeptRole} from "@/api/process/rolesRemind"; import {getOrgEightRoleDetail} from "@/api/process/eightMembers";
import { treeselect as staffTreeselect, roleStaffTreeselect } from "@/api/process/tree"; import { treeselect as staffTreeselect, roleStaffTreeselect } from "@/api/process/tree";
@ -119,10 +108,8 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
deptRoleName: undefined, parentOrgName:undefined,
orgName: undefined, lackOrgId:this.$route.query.lackOrgId
userName: undefined,
departmentId:"-1"
}, },
// //
staffOptions: [], staffOptions: [],
@ -144,7 +131,7 @@ export default {
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
this.loading = true; this.loading = true;
getRoleUserList(this.queryParams).then(response => { getOrgEightRoleDetail(this.queryParams).then(response => {
this.typeList = response.rows; this.typeList = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -159,18 +146,7 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
orgId: undefined, parentOrgName:undefined
orgName: undefined,
departmentId: undefined,
deptRoleId: undefined,
deptRoleName: undefined,
userId: undefined,
userName: undefined,
reviewerStatus: undefined,
reviewerTime: undefined,
reviewerUserId: undefined,
roleType: undefined,
staffOptions:[]
}; };
this.defaultCheckedKeys = []; // this.defaultCheckedKeys = []; //
this.resetForm("form"); this.resetForm("form");

View File

@ -49,16 +49,24 @@
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="success" icon="el-icon-s-check" size="mini" @click="openDialog">批量审批</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="loading" :data="typeList"> <el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
<el-table-column label="序号" align="center" width="80" type="index"> <el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span> <span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="审批状态" align="center" prop="reviewerStatus"/> <el-table-column label="审批状态" align="center" prop="reviewerStatus">
<template slot-scope="scope">
<div v-if="scope.row.reviewerStatus==0">待审核</div>
<div v-if="scope.row.reviewerStatus==1">已审核</div>
<div v-if="scope.row.reviewerStatus==2">已拒绝</div>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="userName"/> <el-table-column label="姓名" align="center" prop="userName"/>
<el-table-column label="所属部门" align="center" prop="orgName" :show-overflow-tooltip="true"/> <el-table-column label="所属部门" align="center" prop="orgName" :show-overflow-tooltip="true"/>
<el-table-column label="考勤日期" align="center" prop="attCurrentDay" :show-overflow-tooltip="true"> <el-table-column label="考勤日期" align="center" prop="attCurrentDay" :show-overflow-tooltip="true">
@ -82,8 +90,8 @@
</el-table-column> </el-table-column>
<el-table-column label="打卡地址" align="center" prop="toWorkAttAddress" :show-overflow-tooltip="true"/> <el-table-column label="打卡地址" align="center" prop="toWorkAttAddress" :show-overflow-tooltip="true"/>
<el-table-column label="修改后时间" align="center" prop="toWorkErrorRemake" :show-overflow-tooltip="true"/> <el-table-column label="修改后时间" align="center" prop="toWorkErrorRemakes" :show-overflow-tooltip="true"/>
<el-table-column label="修改后状态" align="center" prop="toWorkErrorRemake" :show-overflow-tooltip="true"/> <el-table-column label="修改后状态" align="center" prop="toWorkErrorRemakes" :show-overflow-tooltip="true"/>
<el-table-column label="下班打卡时间" align="center" prop="offWorkAttCurrentTime" width="180"></el-table-column> <el-table-column label="下班打卡时间" align="center" prop="offWorkAttCurrentTime" width="180"></el-table-column>
<el-table-column label="下班状态" align="center" prop="offWorkAttStatus"> <el-table-column label="下班状态" align="center" prop="offWorkAttStatus">
<template slot-scope="scope"> <template slot-scope="scope">
@ -102,8 +110,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="打卡地址" align="center" prop="offWorkAttAddress" :show-overflow-tooltip="true"/> <el-table-column label="打卡地址" align="center" prop="offWorkAttAddress" :show-overflow-tooltip="true"/>
<el-table-column label="修改后时间" align="center" prop="offWorkErrorRemake" :show-overflow-tooltip="true"/> <el-table-column label="修改后时间" align="center" prop="offWorkErrorRemakes" :show-overflow-tooltip="true"/>
<el-table-column label="修改后状态" align="center" prop="offWorkErrorRemake" :show-overflow-tooltip="true"/> <el-table-column label="修改后状态" align="center" prop="offWorkErrorRemakes" :show-overflow-tooltip="true"/>
</el-table> </el-table>
<pagination <pagination
@ -114,13 +122,66 @@
@pagination="getList" @pagination="getList"
/> />
<el-dialog title="批量审批" :visible.sync="open" width="1300px" append-to-body>
<el-table v-loading="loading" :data="dialogList" width="100%" height="500px">
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="姓名" align="center" prop="userName"/>
<el-table-column label="所属部门" align="center" prop="orgName" :show-overflow-tooltip="true" width="150"/>
<el-table-column label="考勤日期" align="center" prop="attCurrentDay" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="上班打卡时间" align="center" prop="toWorkAttCurrentTime" width="150"/>
<el-table-column label="上班状态" align="center" prop="toWorkAttStatus" width="120">
<template slot-scope="scope">
<div v-if="scope.row.toWorkAttStatus==0">未打卡</div>
<div v-if="scope.row.toWorkAttStatus==1">正常</div>
<div style="color: #F1A4AD" v-if="scope.row.toWorkAttStatus==2">迟到</div>
<div style="color: #29C9C9" v-if="scope.row.toWorkAttStatus==3">旷工</div>
<div v-if="scope.row.toWorkAttStatus==4">早退</div>
<div v-if="scope.row.toWorkAttStatus==5">轮休</div>
<div style="color: #14ACF0" v-if="scope.row.toWorkAttStatus==6">请假</div>
<div v-if="scope.row.toWorkAttStatus==7">临时外出</div>
<div style="color: #DD1E36" v-if="scope.row.toWorkAttStatus==8">出入异常</div>
<div v-if="scope.row.toWorkAttStatus==9">打卡地异常</div>
<div v-if="scope.row.toWorkAttStatus==10">出差</div>
<div v-if="scope.row.toWorkAttStatus==11">法定节假日</div>
</template>
</el-table-column>
<el-table-column label="打卡地址" align="center" prop="toWorkAttAddress" :show-overflow-tooltip="true" width="150"/>
<el-table-column label="修改后时间" align="center" prop="toWorkErrorRemakes" :show-overflow-tooltip="true" width="150"/>
<el-table-column label="修改后状态" align="center" prop="toWorkErrorRemakes" :show-overflow-tooltip="true" width="120"/>
<el-table-column label="下班打卡时间" align="center" prop="offWorkAttCurrentTime" width="150"></el-table-column>
<el-table-column label="下班状态" align="center" prop="offWorkAttStatus" width="120">
<template slot-scope="scope">
<div v-if="scope.row.offWorkAttStatus==0">未打卡</div>
<div v-if="scope.row.offWorkAttStatus==1">正常</div>
<div style="color: #F1A4AD" v-if="scope.row.offWorkAttStatus==2">迟到</div>
<div style="color: #29C9C9" v-if="scope.row.offWorkAttStatus==3">旷工</div>
<div v-if="scope.row.offWorkAttStatus==4">早退</div>
<div v-if="scope.row.offWorkAttStatus==5">轮休</div>
<div style="color: #14ACF0" v-if="scope.row.offWorkAttStatus==6">请假</div>
<div v-if="scope.row.offWorkAttStatus==7">临时外出</div>
<div style="color: #DD1E36" v-if="scope.row.offWorkAttStatus==8">出入异常</div>
<div v-if="scope.row.offWorkAttStatus==9">打卡地异常</div>
<div v-if="scope.row.offWorkAttStatus==10">出差</div>
<div v-if="scope.row.offWorkAttStatus==11">法定节假日</div>
</template>
</el-table-column>
<el-table-column label="打卡地址" align="center" prop="offWorkAttAddress" :show-overflow-tooltip="true" width="150"/>
<el-table-column label="修改后时间" align="center" prop="offWorkErrorRemakes" :show-overflow-tooltip="true" width="150"/>
<el-table-column label="修改后状态" align="center" prop="offWorkErrorRemakes" :show-overflow-tooltip="true" width="120"/>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitEdit"> </el-button>
<el-button @click="refuse"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {listType, getType, delType, addType, updateType, refreshCache} from "@/api/system/dict/type"; import {listType, getType, delType, addType, updateType, refreshCache} from "@/api/system/dict/type";
import {getDetailsRecordList} from "@/api/report/attReport"; import {getDetailsRecordList, updateAttDetailsDataExamine} from "@/api/report/attReport";
import {listDept} from "@/api/system/dept"; import {listDept} from "@/api/system/dept";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@ -149,6 +210,7 @@ export default {
title: "", title: "",
// //
open: false, open: false,
dialogList:[],
// //
dateRange: this.getDefaultDateRange(), dateRange: this.getDefaultDateRange(),
deptOptions: [], deptOptions: [],
@ -218,8 +280,72 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
//
selectable(row) {
if (row.reviewerStatus == '0') {
return true
} else {
return false
}
},
//
handleSelectionChange(selection) {
this.dialogList = selection;
},
openDialog(){
console.log(this.dialogList)
if(this.dialogList.length>0){
this.open=true;
}else{
this.$message({ message: '请先勾选数据!', type: 'warning' })
}
},
submitEdit(){
let paramList = []
this.dialogList.forEach(item=>{
let obj = {
userId:item.userId,
orgId:item.orgId,
attCurrentDay:item.attCurrentDay,
reviewerStatus:1,
}
paramList.push(obj)
})
// console.log(paramList)
updateAttDetailsDataExamine(paramList).then(response => {
if(response.code==200){
this.$modal.msgSuccess("审批成功!");
this.dialogList=[]
this.open = false;
this.getList();
}else{
this.$message({ message: '审批失败!', type: 'warning' })
}
});
},
refuse(){
let paramList = []
this.dialogList.forEach(item=>{
let obj = {
userId:item.userId,
orgId:item.orgId,
attCurrentDay:item.attCurrentDay,
reviewerStatus:2,
}
paramList.push(obj)
})
// console.log(paramList)
updateAttDetailsDataExamine(paramList).then(response => {
if(response.code==200){
this.$modal.msgSuccess("审批成功!");
this.dialogList=[]
this.open = false;
this.getList();
}else{
this.$message({ message: '审批失败!', type: 'warning' })
}
});
},
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/dict/type/export', { this.download('system/dict/type/export', {