update code
parent
e0f32fb7df
commit
3ab35b0d15
|
@ -42,3 +42,11 @@ export function delAttendanceWorker(id) {
|
||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function queryAttendanceData(data){
|
||||||
|
return request({
|
||||||
|
url: '/project/attendanceWorker/queryAttendanceData',
|
||||||
|
method: 'post',
|
||||||
|
data:data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
@ -1,154 +1,90 @@
|
||||||
<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="68px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
|
<el-form-item label="项目名称" prop="projectId">
|
||||||
<el-input
|
<el-select v-model="queryParams.projectId" placeholder="请选择项目" clearable @change="doQuerySub">
|
||||||
v-model="queryParams.vendorsCode"
|
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
|
||||||
placeholder="请输入厂商编号参考字典attendance_vendors"
|
</el-option>
|
||||||
clearable
|
</el-select>
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工人Id" prop="workerId">
|
<el-form-item label="总包单位" prop="subDeptId">
|
||||||
<el-input
|
<el-select v-model="queryParams.subDeptId" placeholder="请选择总包单位" clearable>
|
||||||
v-model="queryParams.workerId"
|
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
|
||||||
placeholder="请输入工人Id"
|
</el-option>
|
||||||
clearable
|
</el-select>
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="考勤时间yyyy-MM-dd HH:mm:ss" prop="attendanceTime">
|
<el-form-item label="日期" prop="createBy">
|
||||||
<el-input
|
<el-date-picker v-model="queryParams.createBy" type="date" placeholder="选择日期">
|
||||||
v-model="queryParams.attendanceTime"
|
</el-date-picker>
|
||||||
placeholder="请输入考勤时间yyyy-MM-dd HH:mm:ss"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="设备编号" prop="deviceCode">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.deviceCode"
|
|
||||||
placeholder="请输入设备编号"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="作业面Id" prop="workPointId">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.workPointId"
|
|
||||||
placeholder="请输入作业面Id"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="${comment}" prop="state">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.state"
|
|
||||||
placeholder="请输入${comment}"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="${comment}" prop="isDel">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.isDel"
|
|
||||||
placeholder="请输入${comment}"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</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>
|
||||||
|
<el-button type="warning" plain icon="el-icon-setting" size="mini" @click="handleSetting"
|
||||||
|
v-hasPermi="['project:attendanceConfig:edit']">设置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8" v-if="1 == 2">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||||
type="primary"
|
v-hasPermi="['project:attendance:add']">新增</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-plus"
|
|
||||||
size="mini"
|
|
||||||
@click="handleAdd"
|
|
||||||
v-hasPermi="['project:attendance:add']"
|
|
||||||
>新增</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||||
type="success"
|
v-hasPermi="['project:attendance:edit']">修改</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-edit"
|
|
||||||
size="mini"
|
|
||||||
:disabled="single"
|
|
||||||
@click="handleUpdate"
|
|
||||||
v-hasPermi="['project:attendance:edit']"
|
|
||||||
>修改</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||||
type="danger"
|
v-hasPermi="['project:attendance:remove']">删除</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-delete"
|
|
||||||
size="mini"
|
|
||||||
:disabled="multiple"
|
|
||||||
@click="handleDelete"
|
|
||||||
v-hasPermi="['project:attendance:remove']"
|
|
||||||
>删除</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||||
type="warning"
|
v-hasPermi="['project:attendance:export']">导出</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['project:attendance:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="attendanceList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="attendanceList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="${comment}" align="center" prop="id" />
|
<el-table-column label="照片" align="center" prop="id">
|
||||||
<el-table-column label="厂商编号参考字典attendance_vendors" align="center" prop="vendorsCode" />
|
<template slot-scope="{row}">
|
||||||
<el-table-column label="工人Id" align="center" prop="workerId" />
|
<el-image :src="row.recentPhoto" :preview-src-list="[row.recentPhoto]" style="height:60px"/>
|
||||||
<el-table-column label="进门还是出门E进,L出" align="center" prop="attendanceType" />
|
</template>
|
||||||
<el-table-column label="考勤时间yyyy-MM-dd HH:mm:ss" align="center" prop="attendanceTime" />
|
</el-table-column>
|
||||||
<el-table-column label="设备编号" align="center" prop="deviceCode" />
|
<el-table-column label="姓名" align="center" prop="name" />
|
||||||
<el-table-column label="作业面Id" align="center" prop="workPointId" />
|
<el-table-column label="籍贯" align="center" prop="nativePlace" />
|
||||||
<el-table-column label="服务返回的JSON" align="center" prop="other" />
|
<el-table-column label="性别" align="center" prop="attendanceType" >
|
||||||
<el-table-column label="${comment}" align="center" prop="state" />
|
<template slot-scope="{row}">{{ row.gender==1?'女':'男' }}</template>
|
||||||
<el-table-column label="${comment}" align="center" prop="remark" />
|
</el-table-column>
|
||||||
<el-table-column label="${comment}" align="center" prop="isDel" />
|
<el-table-column label="进场时间" align="center" prop="inTime">
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<template slot-scope="{row}">{{ row.inTime|formatDateTime }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="离场时间" align="center" prop="outTime">
|
||||||
|
<template slot-scope="{row}">{{ row.outTime|formatDateTime }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="状态" align="center" prop="status">
|
||||||
|
<template slot-scope="{row}">{{ row.status==1?'退场':'进场' }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="分包商名称" align="center" prop="companyName" />
|
||||||
|
<el-table-column label="所属班组" align="center" prop="groupName" />
|
||||||
|
<el-table-column label="工种" align="center" prop="workTypeName" />
|
||||||
|
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="1==2">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||||
size="mini"
|
v-hasPermi="['project:attendance:edit']">修改</el-button>
|
||||||
type="text"
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||||
icon="el-icon-edit"
|
v-hasPermi="['project:attendance:remove']">删除</el-button>
|
||||||
@click="handleUpdate(scope.row)"
|
|
||||||
v-hasPermi="['project:attendance:edit']"
|
|
||||||
>修改</el-button>
|
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-delete"
|
|
||||||
@click="handleDelete(scope.row)"
|
|
||||||
v-hasPermi="['project:attendance:remove']"
|
|
||||||
>删除</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||||
v-show="total>0"
|
@pagination="getList" />
|
||||||
:total="total"
|
|
||||||
:page.sync="queryParams.pageNum"
|
|
||||||
:limit.sync="queryParams.pageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 添加或修改劳务实名制管理对话框 -->
|
<!-- 添加或修改劳务实名制管理对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||||
|
@ -186,18 +122,23 @@
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<attConfigDrawer ref="attDrawer"></attConfigDrawer>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listAttendance, getAttendance, delAttendance, addAttendance, updateAttendance } from "@/api/project/attendance";
|
import { listAttendance, getAttendance, delAttendance, addAttendance, updateAttendance } from "@/api/project/attendance";
|
||||||
|
import { listAttendanceWorker, getAttendanceWorker, delAttendanceWorker, addAttendanceWorker, updateAttendanceWorker, queryAttendanceData } from "@/api/project/attendanceWorker";
|
||||||
|
import attConfigDrawer from '../attendanceConfig/attendanceConfigDrawer.vue'
|
||||||
export default {
|
export default {
|
||||||
name: "Attendance",
|
name: "Attendance",
|
||||||
|
components: {
|
||||||
|
attConfigDrawer,
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
loading: true,
|
loading: false,
|
||||||
// 选中数组
|
// 选中数组
|
||||||
ids: [],
|
ids: [],
|
||||||
// 非单个禁用
|
// 非单个禁用
|
||||||
|
@ -216,37 +157,72 @@ export default {
|
||||||
open: false,
|
open: false,
|
||||||
// 查询参数
|
// 查询参数
|
||||||
queryParams: {
|
queryParams: {
|
||||||
|
vendorsCode:'gld',
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
vendorsCode: null,
|
projectId:null,
|
||||||
workerId: null,
|
subDeptId:null,
|
||||||
attendanceType: null,
|
createBy:new Date()
|
||||||
attendanceTime: null,
|
|
||||||
deviceCode: null,
|
|
||||||
workPointId: null,
|
|
||||||
other: null,
|
|
||||||
state: null,
|
|
||||||
isDel: null,
|
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
}
|
},
|
||||||
|
projectOptions: [],
|
||||||
|
depts: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
//this.getList();
|
||||||
|
this.$api.publics.getMyProjectList({}).then((response) => {
|
||||||
|
this.projectOptions = response.rows;
|
||||||
|
});
|
||||||
|
/*
|
||||||
|
queryAttendanceData('2023-09-25').then(d=>{
|
||||||
|
debugger
|
||||||
|
})*/
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
doQuerySub() {
|
||||||
|
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
|
||||||
|
if (tmps.length > 0) {
|
||||||
|
this.depts = tmps;
|
||||||
|
if (tmps.length == 1) {
|
||||||
|
this.queryParams.subDeptId = tmps[0].deptId;
|
||||||
|
} else {
|
||||||
|
this.queryParams.subDeptId = '';
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$api.publics.queryUnitList({
|
||||||
|
projectId: this.queryParams.projectId,
|
||||||
|
unitTypes: "2".split(","),
|
||||||
|
}).then((d) => {
|
||||||
|
let objs = d.rows || [];
|
||||||
|
if (!this.prjDept2) {
|
||||||
|
this.prjDept2 = {};
|
||||||
|
}
|
||||||
|
this.prjDept2[this.queryParams.projectId] = objs;
|
||||||
|
this.depts = objs;
|
||||||
|
if (objs.length == 1) {
|
||||||
|
this.queryParams.subDeptId = objs[0].deptId;
|
||||||
|
} else {
|
||||||
|
this.queryParams.subDeptId = '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleSetting() {
|
||||||
|
this.$refs.attDrawer.show();
|
||||||
|
},
|
||||||
/** 查询劳务实名制管理列表 */
|
/** 查询劳务实名制管理列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
listAttendance(this.queryParams).then(response => {
|
queryAttendanceData(this.queryParams).then(response=>{
|
||||||
this.attendanceList = response.rows;
|
this.attendanceList = response.rows;
|
||||||
this.total = response.total;
|
this.total = response.total;
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
// 取消按钮
|
// 取消按钮
|
||||||
cancel() {
|
cancel() {
|
||||||
|
@ -287,7 +263,7 @@ export default {
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.ids = selection.map(item => item.id)
|
this.ids = selection.map(item => item.id)
|
||||||
this.single = selection.length!==1
|
this.single = selection.length !== 1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
|
@ -329,12 +305,12 @@ export default {
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const ids = row.id || this.ids;
|
const ids = row.id || this.ids;
|
||||||
this.$modal.confirm('是否确认删除劳务实名制管理编号为"' + ids + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除劳务实名制管理编号为"' + ids + '"的数据项?').then(function () {
|
||||||
return delAttendance(ids);
|
return delAttendance(ids);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
}).catch(() => {});
|
}).catch(() => { });
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
<template>
|
||||||
|
<div class="project-attendance-config-drawer" v-if="isOpen">
|
||||||
|
<el-drawer v-if="isOpen" :visible.sync="isOpen" direction="rtl" size="70%" style="padding-left: 20px">
|
||||||
|
<template slot="title">
|
||||||
|
<div>{{ title + " 【考勤配置】" }}</div>
|
||||||
|
</template>
|
||||||
|
<div>
|
||||||
|
<main-index ref="main"></main-index>
|
||||||
|
</div>
|
||||||
|
</el-drawer>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import mainIndex from './index.vue'
|
||||||
|
export default {
|
||||||
|
components:{
|
||||||
|
mainIndex
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
isOpen: false,
|
||||||
|
title: '',
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
show() {
|
||||||
|
this.title = "";
|
||||||
|
this.isOpen = true;
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.$refs.main.init();
|
||||||
|
},400);
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.project-attendance-config-drawer {
|
||||||
|
::v-deep .el-drawer__header {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-drawer__body {
|
||||||
|
padding: 12px 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -1,53 +1,17 @@
|
||||||
<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="68px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
<el-form-item label="项目编号" prop="projectId">
|
<el-form-item label="项目名称" prop="projectId">
|
||||||
<el-input
|
<el-select v-model="queryParams.projectId" placeholder="请选择项目" clearable @change="doQuerySub">
|
||||||
v-model="queryParams.projectId"
|
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
|
||||||
placeholder="请输入项目编号"
|
</el-option>
|
||||||
clearable
|
</el-select>
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="总包单位" prop="subDeptId">
|
<el-form-item label="总包单位" prop="subDeptId">
|
||||||
<el-input
|
<el-select v-model="queryParams.subDeptId" placeholder="请选择总包单位" clearable>
|
||||||
v-model="queryParams.subDeptId"
|
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
|
||||||
placeholder="请输入总包单位"
|
</el-option>
|
||||||
clearable
|
</el-select>
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.vendorsCode"
|
|
||||||
placeholder="请输入厂商编号参考字典attendance_vendors"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="1-启用,0-停用" prop="enabled">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.enabled"
|
|
||||||
placeholder="请输入1-启用,0-停用"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="状态" prop="state">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.state"
|
|
||||||
placeholder="请输入状态"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="${comment}" prop="isDel">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.isDel"
|
|
||||||
placeholder="请输入${comment}"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</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>
|
||||||
|
@ -57,116 +21,83 @@
|
||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||||
type="primary"
|
v-hasPermi="['project:attendanceConfig:add']">新增</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-plus"
|
|
||||||
size="mini"
|
|
||||||
@click="handleAdd"
|
|
||||||
v-hasPermi="['project:attendanceConfig:add']"
|
|
||||||
>新增</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||||
type="success"
|
v-hasPermi="['project:attendanceConfig:edit']">修改</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-edit"
|
|
||||||
size="mini"
|
|
||||||
:disabled="single"
|
|
||||||
@click="handleUpdate"
|
|
||||||
v-hasPermi="['project:attendanceConfig:edit']"
|
|
||||||
>修改</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||||
type="danger"
|
v-hasPermi="['project:attendanceConfig:remove']">删除</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-delete"
|
|
||||||
size="mini"
|
|
||||||
:disabled="multiple"
|
|
||||||
@click="handleDelete"
|
|
||||||
v-hasPermi="['project:attendanceConfig:remove']"
|
|
||||||
>删除</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5" v-if="1 == 2">
|
||||||
<el-button
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||||
type="warning"
|
v-hasPermi="['project:attendanceConfig:export']">导出</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['project:attendanceConfig:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="attendanceConfigList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="attendanceConfigList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="${comment}" align="center" prop="id" />
|
<el-table-column label="对接厂商" align="center" prop="vendorName" />
|
||||||
<el-table-column label="项目编号" align="center" prop="projectId" />
|
<el-table-column label="项目名称" align="center" prop="projectName" />
|
||||||
<el-table-column label="总包单位" align="center" prop="subDeptId" />
|
<el-table-column label="总包单位" align="center" prop="unitName" />
|
||||||
<el-table-column label="厂商编号参考字典attendance_vendors" align="center" prop="vendorsCode" />
|
<el-table-column label="是否启用" align="center" prop="enabled">
|
||||||
<el-table-column label="厂商参数" align="center" prop="vendorsParameter" />
|
<template slot-scope="{row}">
|
||||||
<el-table-column label="1-启用,0-停用" align="center" prop="enabled" />
|
<el-switch v-model="row.enabled" :active-value="1" @change="doUpdateRow(row)" :inactive-value="0"></el-switch>
|
||||||
<el-table-column label="状态" align="center" prop="state" />
|
</template>
|
||||||
<el-table-column label="备注" align="center" prop="remark" />
|
</el-table-column>
|
||||||
<el-table-column label="${comment}" align="center" prop="isDel" />
|
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||||
size="mini"
|
v-hasPermi="['project:attendanceConfig:edit']">修改</el-button>
|
||||||
type="text"
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||||
icon="el-icon-edit"
|
v-hasPermi="['project:attendanceConfig:remove']">删除</el-button>
|
||||||
@click="handleUpdate(scope.row)"
|
|
||||||
v-hasPermi="['project:attendanceConfig:edit']"
|
|
||||||
>修改</el-button>
|
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-delete"
|
|
||||||
@click="handleDelete(scope.row)"
|
|
||||||
v-hasPermi="['project:attendanceConfig:remove']"
|
|
||||||
>删除</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||||
v-show="total>0"
|
@pagination="getList" />
|
||||||
:total="total"
|
|
||||||
:page.sync="queryParams.pageNum"
|
|
||||||
:limit.sync="queryParams.pageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 添加或修改项目考勤配置对话框 -->
|
<!-- 添加或修改项目考勤配置对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-form-item label="项目编号" prop="projectId">
|
<el-form-item label="项目名称" prop="projectId">
|
||||||
<el-input v-model="form.projectId" placeholder="请输入项目编号" />
|
<el-select v-if="mode == 'add'" v-model="form.projectId" placeholder="请选择项目" clearable @change="doQueryFormSub">
|
||||||
|
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<span v-else>{{ form.projectName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="总包单位" prop="subDeptId">
|
<el-form-item label="总包单位" prop="subDeptId">
|
||||||
<el-input v-model="form.subDeptId" placeholder="请输入总包单位" />
|
<el-select v-if="mode == 'add'" v-model="form.subDeptId" placeholder="请选择总包单位" clearable>
|
||||||
|
<el-option v-for="(item, index) in formDepts" :key="index" :label="item.deptName" :value="item.deptId">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<span v-else>{{ form.unitName }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
|
<el-tabs v-model="actTab">
|
||||||
<el-input v-model="form.vendorsCode" placeholder="请输入厂商编号参考字典attendance_vendors" />
|
<el-tab-pane v-for="(it, idx) in dict.type.attendance_vendors" :key="idx" :label="it.label" :name="it.value">
|
||||||
|
<el-form-item label="APPID" prop="appId">
|
||||||
|
<el-input v-model="form.appId" placeholder="请输AppId" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="厂商参数" prop="vendorsParameter">
|
<el-form-item label="Secret" prop="secret">
|
||||||
<el-input v-model="form.vendorsParameter" type="textarea" placeholder="请输入内容" />
|
<el-input v-model="form.secret" placeholder="请输Secret" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="1-启用,0-停用" prop="enabled">
|
<el-form-item label="ProjectId" prop="appProjectId">
|
||||||
<el-input v-model="form.enabled" placeholder="请输入1-启用,0-停用" />
|
<el-input v-model="form.appProjectId" placeholder="请输ProjectId" clearable />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="state">
|
<el-form-item label="是否启用" prop="enabled">
|
||||||
<el-input v-model="form.state" placeholder="请输入状态" />
|
<el-radio-group v-model="form.enabled">
|
||||||
</el-form-item>
|
<el-radio :label="1">启用</el-radio>
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-radio :label="0">停用</el-radio>
|
||||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
</el-radio-group>
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="${comment}" prop="isDel">
|
|
||||||
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
@ -181,6 +112,7 @@ import { listAttendanceConfig, getAttendanceConfig, delAttendanceConfig, addAtte
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AttendanceConfig",
|
name: "AttendanceConfig",
|
||||||
|
dicts: ['attendance_vendors'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 遮罩层
|
// 遮罩层
|
||||||
|
@ -214,16 +146,94 @@ export default {
|
||||||
isDel: null,
|
isDel: null,
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {
|
||||||
|
projectId: '',
|
||||||
|
subDeptId: '',
|
||||||
|
appId: '',
|
||||||
|
secret: '',
|
||||||
|
appProjectId: '',
|
||||||
|
enabled: 0
|
||||||
|
},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
}
|
|
||||||
|
},
|
||||||
|
projectOptions: [],
|
||||||
|
depts: [],
|
||||||
|
formDepts: [],
|
||||||
|
actTab: '',
|
||||||
|
mode: '',
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
doQueryFormSub() {
|
||||||
|
let prjId = this.form.projectId;
|
||||||
|
let tmps = this.prjDept2 && this.prjDept2[prjId] ? this.prjDept2[prjId] || [] : [];
|
||||||
|
if (tmps.length > 0) {
|
||||||
|
this.formDepts = tmps;
|
||||||
|
if (tmps.length == 1) {
|
||||||
|
this.form.subDeptId = tmps[0].deptId;
|
||||||
|
} else {
|
||||||
|
this.form.subDeptId = '';
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$api.publics.queryUnitList({
|
||||||
|
projectId: prjId,
|
||||||
|
unitTypes: "2".split(","),
|
||||||
|
}).then((d) => {
|
||||||
|
let objs = d.rows || [];
|
||||||
|
if (!this.prjDept2) {
|
||||||
|
this.prjDept2 = {};
|
||||||
|
}
|
||||||
|
this.prjDept2[this.queryParams.projectId] = objs;
|
||||||
|
this.formDepts = objs;
|
||||||
|
if (objs.length == 1) {
|
||||||
|
this.form.subDeptId = objs[0].deptId;
|
||||||
|
} else {
|
||||||
|
this.form.subDeptId = '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doQuerySub() {
|
||||||
|
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
|
||||||
|
if (tmps.length > 0) {
|
||||||
|
this.depts = tmps;
|
||||||
|
if (tmps.length == 1) {
|
||||||
|
this.queryParams.subDeptId = tmps[0].deptId;
|
||||||
|
} else {
|
||||||
|
this.queryParams.subDeptId = '';
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$api.publics.queryUnitList({
|
||||||
|
projectId: this.queryParams.projectId,
|
||||||
|
unitTypes: "2".split(","),
|
||||||
|
}).then((d) => {
|
||||||
|
let objs = d.rows || [];
|
||||||
|
if (!this.prjDept2) {
|
||||||
|
this.prjDept2 = {};
|
||||||
|
}
|
||||||
|
this.prjDept2[this.queryParams.projectId] = objs;
|
||||||
|
this.depts = objs;
|
||||||
|
if (objs.length == 1) {
|
||||||
|
this.queryParams.subDeptId = objs[0].deptId;
|
||||||
|
} else {
|
||||||
|
this.queryParams.subDeptId = '';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
init() {
|
||||||
|
if (this.projectOptions && this.projectOptions.length > 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.$api.publics.getMyProjectList({}).then((response) => {
|
||||||
|
this.projectOptions = response.rows;
|
||||||
|
});
|
||||||
|
},
|
||||||
/** 查询项目考勤配置列表 */
|
/** 查询项目考勤配置列表 */
|
||||||
getList() {
|
getList() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
|
@ -270,37 +280,87 @@ export default {
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.ids = selection.map(item => item.id)
|
this.ids = selection.map(item => item.id)
|
||||||
this.single = selection.length!==1
|
this.single = selection.length !== 1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset();
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "添加项目考勤配置";
|
this.mode = "add";
|
||||||
|
this.title = "添加劳务实名制配置";
|
||||||
|
this.rules = {
|
||||||
|
projectId: [{ required: true, trigger: "blur", message: "请选择" }],
|
||||||
|
subDeptId: [{ required: true, trigger: "blur", message: "请选择" }],
|
||||||
|
appId: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
secret: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
appProjectId: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
enabled: [{ required: true, trigger: "blur", message: "请选择" }]
|
||||||
|
}
|
||||||
|
this.actTab = this.dict.type.attendance_vendors[0].value;
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.$refs["form"].clearValidate();
|
||||||
|
},0);
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.reset();
|
this.reset();
|
||||||
const id = row.id || this.ids
|
const id = row.id || this.ids
|
||||||
getAttendanceConfig(id).then(response => {
|
getAttendanceConfig(id).then(response => {
|
||||||
this.form = response.data;
|
this.mode = "edit"
|
||||||
|
let obj = response.data;
|
||||||
|
let p = obj.vendorsParameter ? this.$tryToJson(obj.vendorsParameter, {}) : {};
|
||||||
|
obj.appId = p.appId || '';
|
||||||
|
obj.secret = p.secret || '',
|
||||||
|
obj.appProjectId = p.projectId || '';
|
||||||
|
this.form = obj;
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.title = "修改项目考勤配置";
|
this.title = "修改劳务实名制配置";
|
||||||
|
this.actTab = this.dict.type.attendance_vendors[0].value;
|
||||||
|
this.rules = {
|
||||||
|
appId: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
secret: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
appProjectId: [{ required: true, trigger: "blur", message: "请输入" }],
|
||||||
|
enabled: [{ required: true, trigger: "blur", message: "请选择" }]
|
||||||
|
}
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.$refs["form"].clearValidate();
|
||||||
|
},400);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
doUpdateRow(row){
|
||||||
|
updateAttendanceConfig(row).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.getList();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
let params = {
|
||||||
|
appId: this.form.appId,
|
||||||
|
secret: this.form.secret,
|
||||||
|
projectId: this.form.appProjectId
|
||||||
|
};
|
||||||
|
let obj = {
|
||||||
|
projectId: this.form.projectId,
|
||||||
|
subDeptId: this.form.subDeptId,
|
||||||
|
vendorsCode: this.actTab,
|
||||||
|
vendorsParameter: JSON.stringify(params),
|
||||||
|
enabled: this.form.enabled,
|
||||||
|
state: 0,
|
||||||
|
isDel: 0
|
||||||
|
};
|
||||||
if (this.form.id != null) {
|
if (this.form.id != null) {
|
||||||
updateAttendanceConfig(this.form).then(response => {
|
obj.id = this.form.id;
|
||||||
|
updateAttendanceConfig(obj).then(response => {
|
||||||
this.$modal.msgSuccess("修改成功");
|
this.$modal.msgSuccess("修改成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
addAttendanceConfig(this.form).then(response => {
|
addAttendanceConfig(obj).then(response => {
|
||||||
this.$modal.msgSuccess("新增成功");
|
this.$modal.msgSuccess("新增成功");
|
||||||
this.open = false;
|
this.open = false;
|
||||||
this.getList();
|
this.getList();
|
||||||
|
@ -312,12 +372,12 @@ export default {
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const ids = row.id || this.ids;
|
const ids = row.id || this.ids;
|
||||||
this.$modal.confirm('是否确认删除项目考勤配置编号为"' + ids + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除项目考勤配置编号为"' + ids + '"的数据项?').then(function () {
|
||||||
return delAttendanceConfig(ids);
|
return delAttendanceConfig(ids);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
}).catch(() => {});
|
}).catch(() => { });
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
|
|
|
@ -1,229 +1,101 @@
|
||||||
<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="68px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<el-form-item label="配置项ID,可以获取项目ID和总包ID" prop="cfgid">
|
||||||
|
<el-input v-model="queryParams.cfgid" placeholder="请输入配置项ID,可以获取项目ID和总包ID" clearable
|
||||||
|
@keyup.enter.native="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
|
||||||
|
<el-input v-model="queryParams.vendorsCode" placeholder="请输入厂商编号参考字典attendance_vendors" clearable
|
||||||
|
@keyup.enter.native="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="工人id" prop="workerId">
|
<el-form-item label="工人id" prop="workerId">
|
||||||
<el-input
|
<el-input v-model="queryParams.workerId" placeholder="请输入工人id" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.workerId"
|
|
||||||
placeholder="请输入工人id"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" prop="laborWorkerId">
|
<el-form-item label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" prop="laborWorkerId">
|
||||||
<el-input
|
<el-input v-model="queryParams.laborWorkerId"
|
||||||
v-model="queryParams.laborWorkerId"
|
placeholder="请输入项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" clearable
|
||||||
placeholder="请输入项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId"
|
@keyup.enter.native="handleQuery" />
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="人员类别0:工人,1:管理人员" prop="workerCategory">
|
<el-form-item label="人员类别0:工人,1:管理人员" prop="workerCategory">
|
||||||
<el-input
|
<el-input v-model="queryParams.workerCategory" placeholder="请输入人员类别0:工人,1:管理人员" clearable
|
||||||
v-model="queryParams.workerCategory"
|
@keyup.enter.native="handleQuery" />
|
||||||
placeholder="请输入人员类别0:工人,1:管理人员"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工号" prop="qrCode">
|
<el-form-item label="工号" prop="qrCode">
|
||||||
<el-input
|
<el-input v-model="queryParams.qrCode" placeholder="请输入工号" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.qrCode"
|
|
||||||
placeholder="请输入工号"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="姓名" prop="name">
|
<el-form-item label="姓名" prop="name">
|
||||||
<el-input
|
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.name"
|
|
||||||
placeholder="请输入姓名"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="民族" prop="ethnic">
|
<el-form-item label="民族" prop="ethnic">
|
||||||
<el-input
|
<el-input v-model="queryParams.ethnic" placeholder="请输入民族" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.ethnic"
|
|
||||||
placeholder="请输入民族"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="籍贯" prop="nativePlace">
|
<el-form-item label="籍贯" prop="nativePlace">
|
||||||
<el-input
|
<el-input v-model="queryParams.nativePlace" placeholder="请输入籍贯" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.nativePlace"
|
|
||||||
placeholder="请输入籍贯"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="性别0:男 1:女" prop="gender">
|
<el-form-item label="性别0:男 1:女" prop="gender">
|
||||||
<el-input
|
<el-input v-model="queryParams.gender" placeholder="请输入性别0:男 1:女" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.gender"
|
|
||||||
placeholder="请输入性别0:男 1:女"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="出生日期时间戳" prop="birthDate">
|
<el-form-item label="出生日期时间戳" prop="birthDate">
|
||||||
<el-input
|
<el-input v-model="queryParams.birthDate" placeholder="请输入出生日期时间戳" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.birthDate"
|
|
||||||
placeholder="请输入出生日期时间戳"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="联系电话" prop="phone">
|
<el-form-item label="联系电话" prop="phone">
|
||||||
<el-input
|
<el-input v-model="queryParams.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.phone"
|
|
||||||
placeholder="请输入联系电话"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="学历" prop="degreeName">
|
<el-form-item label="学历" prop="degreeName">
|
||||||
<el-input
|
<el-input v-model="queryParams.degreeName" placeholder="请输入学历" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.degreeName"
|
|
||||||
placeholder="请输入学历"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="身份证照" prop="photo">
|
<el-form-item label="身份证照" prop="photo">
|
||||||
<el-input
|
<el-input v-model="queryParams.photo" placeholder="请输入身份证照" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.photo"
|
|
||||||
placeholder="请输入身份证照"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="近照" prop="recentPhoto">
|
<el-form-item label="近照" prop="recentPhoto">
|
||||||
<el-input
|
<el-input v-model="queryParams.recentPhoto" placeholder="请输入近照" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.recentPhoto"
|
|
||||||
placeholder="请输入近照"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属班组ID" prop="groupId">
|
<el-form-item label="所属班组ID" prop="groupId">
|
||||||
<el-input
|
<el-input v-model="queryParams.groupId" placeholder="请输入所属班组ID" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.groupId"
|
|
||||||
placeholder="请输入所属班组ID"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属班组" prop="groupName">
|
<el-form-item label="所属班组" prop="groupName">
|
||||||
<el-input
|
<el-input v-model="queryParams.groupName" placeholder="请输入所属班组" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.groupName"
|
|
||||||
placeholder="请输入所属班组"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否班组长" prop="leader">
|
<el-form-item label="是否班组长" prop="leader">
|
||||||
<el-input
|
<el-input v-model="queryParams.leader" placeholder="请输入是否班组长" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.leader"
|
|
||||||
placeholder="请输入是否班组长"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工种编码" prop="workTypeCode">
|
<el-form-item label="工种编码" prop="workTypeCode">
|
||||||
<el-input
|
<el-input v-model="queryParams.workTypeCode" placeholder="请输入工种编码" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.workTypeCode"
|
|
||||||
placeholder="请输入工种编码"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="工种" prop="workTypeName">
|
<el-form-item label="工种" prop="workTypeName">
|
||||||
<el-input
|
<el-input v-model="queryParams.workTypeName" placeholder="请输入工种" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.workTypeName"
|
|
||||||
placeholder="请输入工种"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="安全帽编号" prop="hatCode">
|
<el-form-item label="安全帽编号" prop="hatCode">
|
||||||
<el-input
|
<el-input v-model="queryParams.hatCode" placeholder="请输入安全帽编号" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.hatCode"
|
|
||||||
placeholder="请输入安全帽编号"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="进退场状态0:进场,1:退场" prop="state">
|
<el-form-item label="进退场状态0:进场,1:退场" prop="state">
|
||||||
<el-input
|
<el-input v-model="queryParams.state" placeholder="请输入进退场状态0:进场,1:退场" clearable
|
||||||
v-model="queryParams.state"
|
@keyup.enter.native="handleQuery" />
|
||||||
placeholder="请输入进退场状态0:进场,1:退场"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="进场日期" prop="enterDate">
|
<el-form-item label="进场日期" prop="enterDate">
|
||||||
<el-input
|
<el-input v-model="queryParams.enterDate" placeholder="请输入进场日期" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.enterDate"
|
|
||||||
placeholder="请输入进场日期"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="退场日期" prop="exitDate">
|
<el-form-item label="退场日期" prop="exitDate">
|
||||||
<el-input
|
<el-input v-model="queryParams.exitDate" placeholder="请输入退场日期" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.exitDate"
|
|
||||||
placeholder="请输入退场日期"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分包商id" prop="companyId">
|
<el-form-item label="分包商id" prop="companyId">
|
||||||
<el-input
|
<el-input v-model="queryParams.companyId" placeholder="请输入分包商id" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.companyId"
|
|
||||||
placeholder="请输入分包商id"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="分包商名称" prop="companyName">
|
<el-form-item label="分包商名称" prop="companyName">
|
||||||
<el-input
|
<el-input v-model="queryParams.companyName" placeholder="请输入分包商名称" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.companyName"
|
|
||||||
placeholder="请输入分包商名称"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="平台对应分包商ID" prop="vendorId">
|
<el-form-item label="平台对应分包商ID" prop="vendorId">
|
||||||
<el-input
|
<el-input v-model="queryParams.vendorId" placeholder="请输入平台对应分包商ID" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.vendorId"
|
|
||||||
placeholder="请输入平台对应分包商ID"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="队伍id" prop="teamId">
|
<el-form-item label="队伍id" prop="teamId">
|
||||||
<el-input
|
<el-input v-model="queryParams.teamId" placeholder="请输入队伍id" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.teamId"
|
|
||||||
placeholder="请输入队伍id"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="队伍名称" prop="teamName">
|
<el-form-item label="队伍名称" prop="teamName">
|
||||||
<el-input
|
<el-input v-model="queryParams.teamName" placeholder="请输入队伍名称" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.teamName"
|
|
||||||
placeholder="请输入队伍名称"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="${comment}" prop="isDel">
|
<el-form-item label="" prop="isDel">
|
||||||
<el-input
|
<el-input v-model="queryParams.isDel" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
|
||||||
v-model="queryParams.isDel"
|
|
||||||
placeholder="请输入${comment}"
|
|
||||||
clearable
|
|
||||||
@keyup.enter.native="handleQuery"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</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>
|
||||||
|
@ -233,55 +105,32 @@
|
||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||||
type="primary"
|
v-hasPermi="['project:attendanceWorker:add']">新增</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-plus"
|
|
||||||
size="mini"
|
|
||||||
@click="handleAdd"
|
|
||||||
v-hasPermi="['project:attendanceWorker:add']"
|
|
||||||
>新增</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
|
||||||
type="success"
|
v-hasPermi="['project:attendanceWorker:edit']">修改</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-edit"
|
|
||||||
size="mini"
|
|
||||||
:disabled="single"
|
|
||||||
@click="handleUpdate"
|
|
||||||
v-hasPermi="['project:attendanceWorker:edit']"
|
|
||||||
>修改</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
|
||||||
type="danger"
|
v-hasPermi="['project:attendanceWorker:remove']">删除</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-delete"
|
|
||||||
size="mini"
|
|
||||||
:disabled="multiple"
|
|
||||||
@click="handleDelete"
|
|
||||||
v-hasPermi="['project:attendanceWorker:remove']"
|
|
||||||
>删除</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||||
type="warning"
|
v-hasPermi="['project:attendanceWorker:export']">导出</el-button>
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['project:attendanceWorker:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="attendanceWorkerList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="attendanceWorkerList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="${comment}" align="center" prop="id" />
|
<el-table-column label="" align="center" prop="id" />
|
||||||
|
<el-table-column label="配置项ID,可以获取项目ID和总包ID" align="center" prop="cfgid" />
|
||||||
|
<el-table-column label="厂商编号参考字典attendance_vendors" align="center" prop="vendorsCode" />
|
||||||
<el-table-column label="工人id" align="center" prop="workerId" />
|
<el-table-column label="工人id" align="center" prop="workerId" />
|
||||||
<el-table-column label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" align="center" prop="laborWorkerId" />
|
<el-table-column label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" align="center"
|
||||||
|
prop="laborWorkerId" />
|
||||||
<el-table-column label="人员类别0:工人,1:管理人员" align="center" prop="workerCategory" />
|
<el-table-column label="人员类别0:工人,1:管理人员" align="center" prop="workerCategory" />
|
||||||
<el-table-column label="工号" align="center" prop="qrCode" />
|
<el-table-column label="工号" align="center" prop="qrCode" />
|
||||||
<el-table-column label="姓名" align="center" prop="name" />
|
<el-table-column label="姓名" align="center" prop="name" />
|
||||||
|
@ -311,43 +160,35 @@
|
||||||
<el-table-column label="进场方式0:自动,1:手动2:拍照" align="center" prop="enterType" />
|
<el-table-column label="进场方式0:自动,1:手动2:拍照" align="center" prop="enterType" />
|
||||||
<el-table-column label="服务返回的JSON" align="center" prop="other" />
|
<el-table-column label="服务返回的JSON" align="center" prop="other" />
|
||||||
<el-table-column label="备注" align="center" prop="remark" />
|
<el-table-column label="备注" align="center" prop="remark" />
|
||||||
<el-table-column label="${comment}" align="center" prop="isDel" />
|
<el-table-column label="" align="center" prop="isDel" />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
|
||||||
size="mini"
|
v-hasPermi="['project:attendanceWorker:edit']">修改</el-button>
|
||||||
type="text"
|
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
|
||||||
icon="el-icon-edit"
|
v-hasPermi="['project:attendanceWorker:remove']">删除</el-button>
|
||||||
@click="handleUpdate(scope.row)"
|
|
||||||
v-hasPermi="['project:attendanceWorker:edit']"
|
|
||||||
>修改</el-button>
|
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-delete"
|
|
||||||
@click="handleDelete(scope.row)"
|
|
||||||
v-hasPermi="['project:attendanceWorker:remove']"
|
|
||||||
>删除</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<pagination
|
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||||
v-show="total>0"
|
@pagination="getList" />
|
||||||
:total="total"
|
|
||||||
:page.sync="queryParams.pageNum"
|
|
||||||
:limit.sync="queryParams.pageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 添加或修改考勤人员基本属性对话框 -->
|
<!-- 添加或修改考勤人员基本属性对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="500px" 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-form-item label="配置项ID,可以获取项目ID和总包ID" prop="cfgid">
|
||||||
|
<el-input v-model="form.cfgid" placeholder="请输入配置项ID,可以获取项目ID和总包ID" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
|
||||||
|
<el-input v-model="form.vendorsCode" placeholder="请输入厂商编号参考字典attendance_vendors" />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="工人id" prop="workerId">
|
<el-form-item label="工人id" prop="workerId">
|
||||||
<el-input v-model="form.workerId" placeholder="请输入工人id" />
|
<el-input v-model="form.workerId" placeholder="请输入工人id" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" prop="laborWorkerId">
|
<el-form-item label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" prop="laborWorkerId">
|
||||||
<el-input v-model="form.laborWorkerId" placeholder="请输入项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" />
|
<el-input v-model="form.laborWorkerId"
|
||||||
|
placeholder="请输入项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="人员类别0:工人,1:管理人员" prop="workerCategory">
|
<el-form-item label="人员类别0:工人,1:管理人员" prop="workerCategory">
|
||||||
<el-input v-model="form.workerCategory" placeholder="请输入人员类别0:工人,1:管理人员" />
|
<el-input v-model="form.workerCategory" placeholder="请输入人员类别0:工人,1:管理人员" />
|
||||||
|
@ -430,8 +271,8 @@
|
||||||
<el-form-item label="备注" prop="remark">
|
<el-form-item label="备注" prop="remark">
|
||||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="${comment}" prop="isDel">
|
<el-form-item label="" prop="isDel">
|
||||||
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
|
<el-input v-model="form.isDel" placeholder="请输入" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
@ -443,7 +284,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listAttendanceWorker, getAttendanceWorker, delAttendanceWorker, addAttendanceWorker, updateAttendanceWorker } from "@/api/project/attendanceWorker";
|
import { listAttendanceWorker, getAttendanceWorker, delAttendanceWorker, addAttendanceWorker, updateAttendanceWorker,queryAttendanceData } from "@/api/project/attendanceWorker";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AttendanceWorker",
|
name: "AttendanceWorker",
|
||||||
|
@ -471,6 +312,8 @@ export default {
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
cfgid: null,
|
||||||
|
vendorsCode: null,
|
||||||
workerId: null,
|
workerId: null,
|
||||||
laborWorkerId: null,
|
laborWorkerId: null,
|
||||||
workerCategory: null,
|
workerCategory: null,
|
||||||
|
@ -518,6 +361,10 @@ export default {
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList();
|
this.getList();
|
||||||
|
debugger
|
||||||
|
queryAttendanceData('2023-09-25').then(d=>{
|
||||||
|
debugger
|
||||||
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 查询考勤人员基本属性列表 */
|
/** 查询考勤人员基本属性列表 */
|
||||||
|
@ -538,6 +385,8 @@ export default {
|
||||||
reset() {
|
reset() {
|
||||||
this.form = {
|
this.form = {
|
||||||
id: null,
|
id: null,
|
||||||
|
cfgid: null,
|
||||||
|
vendorsCode: null,
|
||||||
workerId: null,
|
workerId: null,
|
||||||
laborWorkerId: null,
|
laborWorkerId: null,
|
||||||
workerCategory: null,
|
workerCategory: null,
|
||||||
|
@ -590,7 +439,7 @@ export default {
|
||||||
// 多选框选中数据
|
// 多选框选中数据
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.ids = selection.map(item => item.id)
|
this.ids = selection.map(item => item.id)
|
||||||
this.single = selection.length!==1
|
this.single = selection.length !== 1
|
||||||
this.multiple = !selection.length
|
this.multiple = !selection.length
|
||||||
},
|
},
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
|
@ -632,12 +481,12 @@ export default {
|
||||||
/** 删除按钮操作 */
|
/** 删除按钮操作 */
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
const ids = row.id || this.ids;
|
const ids = row.id || this.ids;
|
||||||
this.$modal.confirm('是否确认删除考勤人员基本属性编号为"' + ids + '"的数据项?').then(function() {
|
this.$modal.confirm('是否确认删除考勤人员基本属性编号为"' + ids + '"的数据项?').then(function () {
|
||||||
return delAttendanceWorker(ids);
|
return delAttendanceWorker(ids);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
}).catch(() => {});
|
}).catch(() => { });
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
handleExport() {
|
handleExport() {
|
||||||
|
|
|
@ -76,6 +76,7 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
elKey: 0,
|
elKey: 0,
|
||||||
|
title:'',
|
||||||
isOpen: false,
|
isOpen: false,
|
||||||
prj: null,
|
prj: null,
|
||||||
// 选中数组
|
// 选中数组
|
||||||
|
|
|
@ -2,6 +2,8 @@ package com.yanzhu.jh.project.controller;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
@ -101,4 +103,11 @@ public class SurProjectAttendanceUserController extends BaseController
|
||||||
{
|
{
|
||||||
return toAjax(surProjectAttendanceUserService.deleteSurProjectAttendanceUserByIds(ids));
|
return toAjax(surProjectAttendanceUserService.deleteSurProjectAttendanceUserByIds(ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/queryAttendanceData")
|
||||||
|
public TableDataInfo queryAttendanceData(@RequestBody SurProjectAttendanceCfg where){
|
||||||
|
startPage();
|
||||||
|
List<SurProjectAttendanceUser> list =surProjectAttendanceUserService.queryAttendanceData(where);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
import com.ruoyi.common.annotation.Excel;
|
import com.ruoyi.common.annotation.Excel;
|
||||||
import com.ruoyi.common.core.domain.BaseEntity;
|
import com.ruoyi.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 考勤人员基本属性对象 sur_project_attendance_user
|
* 考勤人员基本属性对象 sur_project_attendance_user
|
||||||
*
|
*
|
||||||
|
@ -150,6 +152,26 @@ public class SurProjectAttendanceUser extends BaseEntity
|
||||||
/** */
|
/** */
|
||||||
@Excel(name = "")
|
@Excel(name = "")
|
||||||
private Long isDel;
|
private Long isDel;
|
||||||
|
|
||||||
|
private Date inTime;
|
||||||
|
private Date outTime;
|
||||||
|
|
||||||
|
public Date getInTime() {
|
||||||
|
return inTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInTime(Date inTime) {
|
||||||
|
this.inTime = inTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getOutTime() {
|
||||||
|
return outTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOutTime(Date outTime) {
|
||||||
|
this.outTime = outTime;
|
||||||
|
}
|
||||||
|
|
||||||
public static SurProjectAttendanceUser create(JSONObject json) {
|
public static SurProjectAttendanceUser create(JSONObject json) {
|
||||||
SurProjectAttendanceUser u=new SurProjectAttendanceUser();
|
SurProjectAttendanceUser u=new SurProjectAttendanceUser();
|
||||||
u.workerId=json.getLong("workerId");
|
u.workerId=json.getLong("workerId");
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.yanzhu.jh.project.mapper;
|
package com.yanzhu.jh.project.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
|
||||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
|
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -58,4 +60,6 @@ public interface SurProjectAttendanceUserMapper
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
public int deleteSurProjectAttendanceUserByIds(Long[] ids);
|
public int deleteSurProjectAttendanceUserByIds(Long[] ids);
|
||||||
|
|
||||||
|
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceCfg where);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.yanzhu.jh.project.service;
|
package com.yanzhu.jh.project.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
|
||||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
|
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,4 +62,6 @@ public interface ISurProjectAttendanceUserService
|
||||||
public int deleteSurProjectAttendanceUserById(Long id);
|
public int deleteSurProjectAttendanceUserById(Long id);
|
||||||
|
|
||||||
public void add(SurProjectAttendanceUser user);
|
public void add(SurProjectAttendanceUser user);
|
||||||
|
|
||||||
|
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceCfg where);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.DateUtils;
|
||||||
|
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.yanzhu.jh.project.mapper.SurProjectAttendanceUserMapper;
|
import com.yanzhu.jh.project.mapper.SurProjectAttendanceUserMapper;
|
||||||
|
@ -110,4 +111,9 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
|
||||||
updateSurProjectAttendanceUser(user);
|
updateSurProjectAttendanceUser(user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceCfg where) {
|
||||||
|
return surProjectAttendanceUserMapper.queryAttendanceData(where);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -233,4 +233,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
|
<sql id="sqlAttendanceData">
|
||||||
|
(
|
||||||
|
SELECT * FROM sur_project_attendance_data WHERE DATE(attendance_time)=date(#{createBy}) AND cfgid IN (
|
||||||
|
SELECT id FROM sur_project_attendance_cfg WHERE project_id=#{projectId} AND sub_dept_id=#{subDeptId} AND vendors_code=#{vendorsCode}
|
||||||
|
) ) xx
|
||||||
|
</sql>
|
||||||
|
<select id="queryAttendanceData" parameterType="SurProjectAttendanceCfg" resultMap="SurProjectAttendanceUserResult">
|
||||||
|
|
||||||
|
select n.*,m.inTime,m.outTime from (
|
||||||
|
|
||||||
|
SELECT * FROM (
|
||||||
|
SELECT workerId,attendance_time inTime,null outtime FROM sur_project_attendance_data WHERE id IN (
|
||||||
|
SELECT min(id) id FROM <include refid="sqlAttendanceData"/> WHERE attendance_type='e' GROUP BY workerId )) X WHERE workerId NOT IN (
|
||||||
|
SELECT workerId FROM <include refid="sqlAttendanceData"/> WHERE attendance_type='l' GROUP BY workerId
|
||||||
|
)
|
||||||
|
|
||||||
|
union
|
||||||
|
|
||||||
|
select * from (
|
||||||
|
select workerId,null inTime,attendance_time outTime from sur_project_attendance_data where id in (
|
||||||
|
select max(id) id from <include refid="sqlAttendanceData"/> where attendance_type='l' group by workerId )) x where workerId not in (
|
||||||
|
SELECT workerId FROM <include refid="sqlAttendanceData"/> WHERE attendance_type='e' GROUP BY workerId
|
||||||
|
)
|
||||||
|
|
||||||
|
union
|
||||||
|
|
||||||
|
select x.workerId,y.attendance_time inTime,x.attendance_time outTime from (
|
||||||
|
SELECT id,workerId,attendance_time FROM sur_project_attendance_data WHERE id IN (
|
||||||
|
SELECT MAX(id) id FROM <include refid="sqlAttendanceData"/> WHERE attendance_type='l' GROUP BY workerId )
|
||||||
|
) x cross join (
|
||||||
|
|
||||||
|
SELECT id,workerId,attendance_time FROM sur_project_attendance_data WHERE id IN (
|
||||||
|
SELECT MIN(id) id FROM <include refid="sqlAttendanceData"/> WHERE attendance_type='e' GROUP BY workerId )
|
||||||
|
) y on x.workerId=y.workerId
|
||||||
|
|
||||||
|
) m left join sur_project_attendance_user n on m.workerId=n.workerId
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
Loading…
Reference in New Issue