update code
parent
c281a11886
commit
20a142626e
|
@ -0,0 +1,58 @@
|
|||
<template>
|
||||
<div class="project-attendance-data-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(prj) {
|
||||
this.prj=prj;
|
||||
this.title = prj.projectName||""
|
||||
this.isOpen = true;
|
||||
setTimeout(()=>{
|
||||
this.$refs.main.init(prj);
|
||||
},400);
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.project-attendance-data-drawer {
|
||||
::v-deep .el-drawer__header {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
::v-deep .el-drawer__body {
|
||||
padding: 12px 24px;
|
||||
}
|
||||
::v-deep .el-drawer{
|
||||
min-width: 1200px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -2,7 +2,7 @@
|
|||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="项目名称" prop="projectId">
|
||||
<el-select v-model="queryParams.projectId" placeholder="请选择项目" clearable @change="doQuerySub">
|
||||
<el-select :disabled="prjDisabled" v-model="queryParams.projectId" placeholder="请选择项目" clearable @change="doQuerySub()">
|
||||
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
|
@ -20,7 +20,7 @@
|
|||
<el-form-item>
|
||||
<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 type="warning" plain icon="el-icon-setting" size="mini" @click="handleSetting"
|
||||
<el-button type="warning" plain icon="el-icon-setting" size="mini" @click="handleSetting" v-if="!prjDisabled"
|
||||
v-hasPermi="['project:attendanceConfig:edit']">设置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
@ -49,7 +49,7 @@
|
|||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="attendanceList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
|
||||
<el-table-column label="照片" align="center" prop="id">
|
||||
<template slot-scope="{row}">
|
||||
<el-image :src="row.recentPhoto" :preview-src-list="[row.recentPhoto]" style="height:60px"/>
|
||||
|
@ -170,21 +170,22 @@ export default {
|
|||
rules: {
|
||||
},
|
||||
projectOptions: [],
|
||||
depts: []
|
||||
depts: [],
|
||||
prjDisabled:false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
//this.getList();
|
||||
created() {
|
||||
this.$api.publics.getMyProjectList({}).then((response) => {
|
||||
this.projectOptions = response.rows;
|
||||
});
|
||||
/*
|
||||
queryAttendanceData('2023-09-25').then(d=>{
|
||||
debugger
|
||||
})*/
|
||||
this.projectOptions = response.rows;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
doQuerySub() {
|
||||
init(prj){
|
||||
this.queryParams.projectId=prj.id;
|
||||
this.prjDisabled=true;
|
||||
this.doQuerySub(true);
|
||||
},
|
||||
doQuerySub(init) {
|
||||
let tmps = this.prjDept2 && this.prjDept2[this.queryParams.projectId] ? this.prjDept2[this.queryParams.projectId] || [] : [];
|
||||
if (tmps.length > 0) {
|
||||
this.depts = tmps;
|
||||
|
@ -193,6 +194,9 @@ export default {
|
|||
} else {
|
||||
this.queryParams.subDeptId = '';
|
||||
}
|
||||
if(init){
|
||||
this.getList();
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.$api.publics.queryUnitList({
|
||||
|
@ -210,6 +214,9 @@ export default {
|
|||
} else {
|
||||
this.queryParams.subDeptId = '';
|
||||
}
|
||||
if(init){
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
},
|
||||
handleSetting() {
|
||||
|
|
|
@ -0,0 +1,226 @@
|
|||
<template>
|
||||
<div class="attendance-config-dialog">
|
||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="项目名称" prop="projectId">
|
||||
<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 label="总包单位" prop="subDeptId">
|
||||
<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-tabs v-model="actTab">
|
||||
<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 label="Secret" prop="secret">
|
||||
<el-input v-model="form.secret" placeholder="请输Secret" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="ProjectId" prop="appProjectId">
|
||||
<el-input v-model="form.appProjectId" placeholder="请输ProjectId" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="enabled">
|
||||
<el-radio-group v-model="form.enabled">
|
||||
<el-radio :label="1">启用</el-radio>
|
||||
<el-radio :label="0">停用</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listAttendanceConfig, getAttendanceConfig, delAttendanceConfig, addAttendanceConfig, updateAttendanceConfig } from "@/api/project/attendanceConfig";
|
||||
export default {
|
||||
dicts: ['attendance_vendors'],
|
||||
data() {
|
||||
return {
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 表单参数
|
||||
form: {
|
||||
projectId: '',
|
||||
subDeptId: '',
|
||||
appId: '',
|
||||
secret: '',
|
||||
appProjectId: '',
|
||||
enabled: 0
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
|
||||
},
|
||||
projectOptions: [],
|
||||
depts: [],
|
||||
formDepts: [],
|
||||
actTab: '',
|
||||
mode: '',
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(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) {
|
||||
obj.id = this.form.id;
|
||||
updateAttendanceConfig(obj).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.$emit('success');
|
||||
});
|
||||
} else {
|
||||
addAttendanceConfig(obj).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.$emit('success');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
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.form.projectId] = objs;
|
||||
this.formDepts = objs;
|
||||
if (objs.length == 1) {
|
||||
this.form.subDeptId = objs[0].deptId;
|
||||
} else {
|
||||
this.form.subDeptId = '';
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
projectId: '',
|
||||
subDeptId: '',
|
||||
appId: '',
|
||||
secret: '',
|
||||
appProjectId: '',
|
||||
enabled: 0
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
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);
|
||||
},
|
||||
showDialog(o) {
|
||||
this.projectOptions = o.projectOptions;
|
||||
if (o.mode == 'add') {
|
||||
this.handleAdd();
|
||||
} else {
|
||||
this.handleUpdate(o.row);
|
||||
}
|
||||
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getAttendanceConfig(id).then(response => {
|
||||
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.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);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped></style>
|
|
@ -29,8 +29,8 @@ export default {
|
|||
},
|
||||
|
||||
methods: {
|
||||
show() {
|
||||
this.title = "";
|
||||
show(title) {
|
||||
this.title = title||""
|
||||
this.isOpen = true;
|
||||
setTimeout(()=>{
|
||||
this.$refs.main.init();
|
||||
|
|
|
@ -41,12 +41,13 @@
|
|||
|
||||
<el-table v-loading="loading" :data="attendanceConfigList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="编号" align="center" prop="id" />
|
||||
<el-table-column label="对接厂商" align="center" prop="vendorName" />
|
||||
<el-table-column label="项目名称" align="center" prop="projectName" />
|
||||
<el-table-column label="总包单位" align="center" prop="unitName" />
|
||||
<el-table-column label="是否启用" align="center" prop="enabled">
|
||||
<template slot-scope="{row}">
|
||||
<el-switch v-model="row.enabled" :active-value="1" @change="doUpdateRow(row)" :inactive-value="0"></el-switch>
|
||||
<el-switch v-model="row.enabled" :active-value="1" @change="doUpdateRow(row)" :inactive-value="0"></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
|
@ -62,55 +63,16 @@
|
|||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
|
||||
<!-- 添加或修改项目考勤配置对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="项目名称" prop="projectId">
|
||||
<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 label="总包单位" prop="subDeptId">
|
||||
<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-tabs v-model="actTab">
|
||||
<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 label="Secret" prop="secret">
|
||||
<el-input v-model="form.secret" placeholder="请输Secret" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="ProjectId" prop="appProjectId">
|
||||
<el-input v-model="form.appProjectId" placeholder="请输ProjectId" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="enabled">
|
||||
<el-radio-group v-model="form.enabled">
|
||||
<el-radio :label="1">启用</el-radio>
|
||||
<el-radio :label="0">停用</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<config-dialog ref="cfgDlg" @success="getList"></config-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listAttendanceConfig, getAttendanceConfig, delAttendanceConfig, addAttendanceConfig, updateAttendanceConfig } from "@/api/project/attendanceConfig";
|
||||
|
||||
import configDialog from './attendanceConfigDialog.vue'
|
||||
export default {
|
||||
components: { configDialog },
|
||||
name: "AttendanceConfig",
|
||||
dicts: ['attendance_vendors'],
|
||||
data() {
|
||||
|
@ -167,37 +129,9 @@ export default {
|
|||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.init();
|
||||
},
|
||||
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) {
|
||||
|
@ -243,30 +177,6 @@ export default {
|
|||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
projectId: null,
|
||||
subDeptId: null,
|
||||
vendorsCode: null,
|
||||
vendorsParameter: null,
|
||||
enabled: null,
|
||||
state: null,
|
||||
remark: null,
|
||||
isDel: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
|
@ -285,90 +195,26 @@ export default {
|
|||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
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);
|
||||
this.$refs.cfgDlg.showDialog({
|
||||
mode: 'add',
|
||||
projectOptions: this.projectOptions
|
||||
});
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getAttendanceConfig(id).then(response => {
|
||||
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.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);
|
||||
this.$refs.cfgDlg.showDialog({
|
||||
mode: 'edit',
|
||||
row: row,
|
||||
projectOptions: this.projectOptions
|
||||
});
|
||||
},
|
||||
doUpdateRow(row){
|
||||
doUpdateRow(row) {
|
||||
updateAttendanceConfig(row).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(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) {
|
||||
obj.id = this.form.id;
|
||||
updateAttendanceConfig(obj).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addAttendanceConfig(obj).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.getList();
|
||||
});
|
||||
},
|
||||
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
<template>
|
||||
<div class="project-attendance-worker-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 {
|
||||
prj:null,
|
||||
isOpen: false,
|
||||
title: '',
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
show(prj) {
|
||||
this.prj=prj;
|
||||
this.title = prj.projectName||"";
|
||||
this.isOpen = true;
|
||||
setTimeout(()=>{
|
||||
this.$refs.main.initMe(prj);
|
||||
},400);
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.project-attendance-worker-drawer {
|
||||
::v-deep .el-drawer__header {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
::v-deep .el-drawer__body {
|
||||
padding: 12px 24px;
|
||||
}
|
||||
::v-deep .el-drawer{
|
||||
min-width: 1200px;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -1,109 +1,35 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<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 :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" style="position: relative;">
|
||||
<el-form-item label="项目名称" prop="projectId">
|
||||
<el-select :disabled="prjDisabled" v-model="queryParams.projectId" placeholder="请选择项目" clearable @change="doQuerySub()">
|
||||
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</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 label="总包单位" prop="subDeptId">
|
||||
<el-select v-model="queryParams.subDeptId" placeholder="请选择总包单位" clearable>
|
||||
<el-option v-for="(item, index) in depts" :key="index" :label="item.deptName" :value="item.deptId">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工人id" prop="workerId">
|
||||
<el-input v-model="queryParams.workerId" placeholder="请输入工人id" clearable @keyup.enter.native="handleQuery" />
|
||||
|
||||
<el-form-item label="" prop="state">
|
||||
<el-radio-group v-model="queryParams.state" size="mini">
|
||||
<el-radio-button label="" >全部人员</el-radio-button>
|
||||
<el-radio-button label="0">在岗</el-radio-button>
|
||||
<el-radio-button label="1">已退场</el-radio-button>
|
||||
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" prop="laborWorkerId">
|
||||
<el-input v-model="queryParams.laborWorkerId"
|
||||
placeholder="请输入项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="人员类别0:工人,1:管理人员" prop="workerCategory">
|
||||
<el-input v-model="queryParams.workerCategory" placeholder="请输入人员类别0:工人,1:管理人员" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工号" prop="qrCode">
|
||||
<el-input v-model="queryParams.qrCode" placeholder="请输入工号" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="民族" prop="ethnic">
|
||||
<el-input v-model="queryParams.ethnic" placeholder="请输入民族" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="籍贯" prop="nativePlace">
|
||||
<el-input v-model="queryParams.nativePlace" placeholder="请输入籍贯" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="性别0:男 1:女" prop="gender">
|
||||
<el-input v-model="queryParams.gender" placeholder="请输入性别0:男 1:女" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出生日期时间戳" prop="birthDate">
|
||||
<el-input v-model="queryParams.birthDate" placeholder="请输入出生日期时间戳" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="phone">
|
||||
<el-input v-model="queryParams.phone" placeholder="请输入联系电话" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学历" prop="degreeName">
|
||||
<el-input v-model="queryParams.degreeName" placeholder="请输入学历" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证照" prop="photo">
|
||||
<el-input v-model="queryParams.photo" placeholder="请输入身份证照" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="近照" prop="recentPhoto">
|
||||
<el-input v-model="queryParams.recentPhoto" placeholder="请输入近照" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属班组ID" prop="groupId">
|
||||
<el-input v-model="queryParams.groupId" placeholder="请输入所属班组ID" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属班组" prop="groupName">
|
||||
<el-input v-model="queryParams.groupName" placeholder="请输入所属班组" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否班组长" prop="leader">
|
||||
<el-input v-model="queryParams.leader" placeholder="请输入是否班组长" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工种编码" prop="workTypeCode">
|
||||
<el-input v-model="queryParams.workTypeCode" placeholder="请输入工种编码" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工种" prop="workTypeName">
|
||||
<el-input v-model="queryParams.workTypeName" placeholder="请输入工种" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="安全帽编号" prop="hatCode">
|
||||
<el-input v-model="queryParams.hatCode" placeholder="请输入安全帽编号" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进退场状态0:进场,1:退场" prop="state">
|
||||
<el-input v-model="queryParams.state" placeholder="请输入进退场状态0:进场,1:退场" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场日期" prop="enterDate">
|
||||
<el-input v-model="queryParams.enterDate" placeholder="请输入进场日期" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="退场日期" prop="exitDate">
|
||||
<el-input v-model="queryParams.exitDate" placeholder="请输入退场日期" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包商id" prop="companyId">
|
||||
<el-input v-model="queryParams.companyId" placeholder="请输入分包商id" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包商名称" prop="companyName">
|
||||
<el-input v-model="queryParams.companyName" placeholder="请输入分包商名称" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="平台对应分包商ID" prop="vendorId">
|
||||
<el-input v-model="queryParams.vendorId" placeholder="请输入平台对应分包商ID" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="队伍id" prop="teamId">
|
||||
<el-input v-model="queryParams.teamId" placeholder="请输入队伍id" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="队伍名称" prop="teamName">
|
||||
<el-input v-model="queryParams.teamName" placeholder="请输入队伍名称" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="isDel">
|
||||
<el-input v-model="queryParams.isDel" placeholder="请输入" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
||||
<el-form-item style="position: absolute;right:0px;">
|
||||
<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-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-row :gutter="10" class="mb8" v-if="1==2">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
|
||||
v-hasPermi="['project:attendanceWorker:add']">新增</el-button>
|
||||
|
@ -124,162 +50,32 @@
|
|||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="attendanceWorkerList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<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对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" align="center"
|
||||
prop="laborWorkerId" />
|
||||
<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="name" />
|
||||
<el-table-column label="民族" align="center" prop="ethnic" />
|
||||
<el-table-column label="籍贯" align="center" prop="nativePlace" />
|
||||
<el-table-column label="性别0:男 1:女" align="center" prop="gender" />
|
||||
<el-table-column label="出生日期时间戳" align="center" prop="birthDate" />
|
||||
<el-table-column label="联系电话" align="center" prop="phone" />
|
||||
<el-table-column label="学历" align="center" prop="degreeName" />
|
||||
<el-table-column label="身份证照" align="center" prop="photo" />
|
||||
<el-table-column label="近照" align="center" prop="recentPhoto" />
|
||||
<el-table-column label="所属班组ID" align="center" prop="groupId" />
|
||||
<el-table-column label="所属班组" align="center" prop="groupName" />
|
||||
<el-table-column label="是否班组长" align="center" prop="leader" />
|
||||
<el-table-column label="工种编码" align="center" prop="workTypeCode" />
|
||||
<el-table-column label="工种" align="center" prop="workTypeName" />
|
||||
<el-table-column label="是否特殊工种" align="center" prop="specWorkType" />
|
||||
<el-table-column label="安全帽编号" align="center" prop="hatCode" />
|
||||
<el-table-column label="进退场状态0:进场,1:退场" align="center" prop="state" />
|
||||
<el-table-column label="进场日期" align="center" prop="enterDate" />
|
||||
<el-table-column label="退场日期" align="center" prop="exitDate" />
|
||||
<el-table-column label="分包商id" align="center" prop="companyId" />
|
||||
<el-table-column label="分包商名称" align="center" prop="companyName" />
|
||||
<el-table-column label="平台对应分包商ID" align="center" prop="vendorId" />
|
||||
<el-table-column label="队伍id" align="center" prop="teamId" />
|
||||
<el-table-column label="队伍名称" align="center" prop="teamName" />
|
||||
<el-table-column label="进场方式0:自动,1:手动2:拍照" align="center" prop="enterType" />
|
||||
<el-table-column label="服务返回的JSON" align="center" prop="other" />
|
||||
<el-table-column label="备注" align="center" prop="remark" />
|
||||
<el-table-column label="" align="center" prop="isDel" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="mini" type="text" icon="el-icon-edit" @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>
|
||||
|
||||
<el-table-column label="照片" align="center" prop="id">
|
||||
<template slot-scope="{row}">
|
||||
<el-image :src="row.recentPhoto" :preview-src-list="[row.recentPhoto]" style="height:60px"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="姓名" align="center" prop="name" />
|
||||
<el-table-column label="籍贯" align="center" prop="nativePlace" />
|
||||
<el-table-column label="性别" align="center" prop="attendanceType" >
|
||||
<template slot-scope="{row}">{{ row.gender==1?'女':'男' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="进场时间" align="center" prop="inTime">
|
||||
<template slot-scope="{row}">{{ row.enterDate|formatDate }}</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>
|
||||
|
||||
<pagination v-show="total > 0" :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-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-input v-model="form.workerId" placeholder="请输入工人id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" prop="laborWorkerId">
|
||||
<el-input v-model="form.laborWorkerId"
|
||||
placeholder="请输入项目工人履历id对于旧劳务,这个字段相当于工人的projectWorkerId,管理人员的registerManagerId" />
|
||||
</el-form-item>
|
||||
<el-form-item label="人员类别0:工人,1:管理人员" prop="workerCategory">
|
||||
<el-input v-model="form.workerCategory" placeholder="请输入人员类别0:工人,1:管理人员" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工号" prop="qrCode">
|
||||
<el-input v-model="form.qrCode" placeholder="请输入工号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入姓名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="民族" prop="ethnic">
|
||||
<el-input v-model="form.ethnic" placeholder="请输入民族" />
|
||||
</el-form-item>
|
||||
<el-form-item label="籍贯" prop="nativePlace">
|
||||
<el-input v-model="form.nativePlace" placeholder="请输入籍贯" />
|
||||
</el-form-item>
|
||||
<el-form-item label="性别0:男 1:女" prop="gender">
|
||||
<el-input v-model="form.gender" placeholder="请输入性别0:男 1:女" />
|
||||
</el-form-item>
|
||||
<el-form-item label="出生日期时间戳" prop="birthDate">
|
||||
<el-input v-model="form.birthDate" placeholder="请输入出生日期时间戳" />
|
||||
</el-form-item>
|
||||
<el-form-item label="联系电话" prop="phone">
|
||||
<el-input v-model="form.phone" placeholder="请输入联系电话" />
|
||||
</el-form-item>
|
||||
<el-form-item label="学历" prop="degreeName">
|
||||
<el-input v-model="form.degreeName" placeholder="请输入学历" />
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证照" prop="photo">
|
||||
<el-input v-model="form.photo" placeholder="请输入身份证照" />
|
||||
</el-form-item>
|
||||
<el-form-item label="近照" prop="recentPhoto">
|
||||
<el-input v-model="form.recentPhoto" placeholder="请输入近照" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属班组ID" prop="groupId">
|
||||
<el-input v-model="form.groupId" placeholder="请输入所属班组ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属班组" prop="groupName">
|
||||
<el-input v-model="form.groupName" placeholder="请输入所属班组" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否班组长" prop="leader">
|
||||
<el-input v-model="form.leader" placeholder="请输入是否班组长" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工种编码" prop="workTypeCode">
|
||||
<el-input v-model="form.workTypeCode" placeholder="请输入工种编码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工种" prop="workTypeName">
|
||||
<el-input v-model="form.workTypeName" placeholder="请输入工种" />
|
||||
</el-form-item>
|
||||
<el-form-item label="安全帽编号" prop="hatCode">
|
||||
<el-input v-model="form.hatCode" placeholder="请输入安全帽编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进退场状态0:进场,1:退场" prop="state">
|
||||
<el-input v-model="form.state" placeholder="请输入进退场状态0:进场,1:退场" />
|
||||
</el-form-item>
|
||||
<el-form-item label="进场日期" prop="enterDate">
|
||||
<el-input v-model="form.enterDate" placeholder="请输入进场日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="退场日期" prop="exitDate">
|
||||
<el-input v-model="form.exitDate" placeholder="请输入退场日期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包商id" prop="companyId">
|
||||
<el-input v-model="form.companyId" placeholder="请输入分包商id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分包商名称" prop="companyName">
|
||||
<el-input v-model="form.companyName" placeholder="请输入分包商名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="平台对应分包商ID" prop="vendorId">
|
||||
<el-input v-model="form.vendorId" placeholder="请输入平台对应分包商ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="队伍id" prop="teamId">
|
||||
<el-input v-model="form.teamId" placeholder="请输入队伍id" />
|
||||
</el-form-item>
|
||||
<el-form-item label="队伍名称" prop="teamName">
|
||||
<el-input v-model="form.teamName" placeholder="请输入队伍名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="服务返回的JSON" prop="other">
|
||||
<el-input v-model="form.other" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="isDel">
|
||||
<el-input v-model="form.isDel" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -291,7 +87,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
loading: false,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
|
@ -312,120 +108,79 @@ export default {
|
|||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
cfgid: null,
|
||||
vendorsCode: null,
|
||||
workerId: null,
|
||||
laborWorkerId: null,
|
||||
workerCategory: null,
|
||||
qrCode: null,
|
||||
name: null,
|
||||
ethnic: null,
|
||||
nativePlace: null,
|
||||
gender: null,
|
||||
birthDate: null,
|
||||
phone: null,
|
||||
degreeName: null,
|
||||
photo: null,
|
||||
recentPhoto: null,
|
||||
groupId: null,
|
||||
groupName: null,
|
||||
leader: null,
|
||||
workTypeCode: null,
|
||||
workTypeName: null,
|
||||
specWorkType: null,
|
||||
hatCode: null,
|
||||
state: null,
|
||||
enterDate: null,
|
||||
exitDate: null,
|
||||
companyId: null,
|
||||
companyName: null,
|
||||
vendorId: null,
|
||||
teamId: null,
|
||||
teamName: null,
|
||||
enterType: null,
|
||||
other: null,
|
||||
isDel: null,
|
||||
projectId:null,
|
||||
subDeptId:null,
|
||||
state:'',
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
phone: [
|
||||
{ required: true, message: "联系电话不能为空", trigger: "blur" }
|
||||
],
|
||||
other: [
|
||||
{ required: true, message: "服务返回的JSON不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
rules: {
|
||||
},
|
||||
projectOptions: [],
|
||||
depts: [],
|
||||
prjDisabled:false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
debugger
|
||||
queryAttendanceData('2023-09-25').then(d=>{
|
||||
debugger
|
||||
})
|
||||
this.$api.publics.getMyProjectList({}).then((response) => {
|
||||
this.projectOptions = response.rows;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
initMe(prj){
|
||||
this.queryParams.projectId=prj.id;
|
||||
this.prjDisabled=true;
|
||||
this.doQuerySub(true);
|
||||
},
|
||||
doQuerySub(init) {
|
||||
this.queryParams.state="";
|
||||
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 = '';
|
||||
}
|
||||
if(init){
|
||||
this.getList();
|
||||
}
|
||||
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 = '';
|
||||
}
|
||||
if(init){
|
||||
this.getList();
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 查询考勤人员基本属性列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listAttendanceWorker(this.queryParams).then(response => {
|
||||
this.attendanceWorkerList = response.rows;
|
||||
listAttendanceWorker(this.queryParams).then(response => {
|
||||
this.attendanceWorkerList = (response.rows||[]).map(it=>{
|
||||
it.enterDate=it.enterDate?new Date(it.enterDate*1):null;
|
||||
return it;
|
||||
});
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
cfgid: null,
|
||||
vendorsCode: null,
|
||||
workerId: null,
|
||||
laborWorkerId: null,
|
||||
workerCategory: null,
|
||||
qrCode: null,
|
||||
name: null,
|
||||
ethnic: null,
|
||||
nativePlace: null,
|
||||
gender: null,
|
||||
birthDate: null,
|
||||
phone: null,
|
||||
degreeName: null,
|
||||
photo: null,
|
||||
recentPhoto: null,
|
||||
groupId: null,
|
||||
groupName: null,
|
||||
leader: null,
|
||||
workTypeCode: null,
|
||||
workTypeName: null,
|
||||
specWorkType: null,
|
||||
hatCode: null,
|
||||
state: null,
|
||||
enterDate: null,
|
||||
exitDate: null,
|
||||
companyId: null,
|
||||
companyName: null,
|
||||
vendorId: null,
|
||||
teamId: null,
|
||||
teamName: null,
|
||||
enterType: null,
|
||||
other: null,
|
||||
remark: null,
|
||||
isDel: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
|
@ -444,40 +199,18 @@ export default {
|
|||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加考勤人员基本属性";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getAttendanceWorker(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改考勤人员基本属性";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateAttendanceWorker(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addAttendanceWorker(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
|
|
|
@ -377,6 +377,8 @@
|
|||
'project:checkDetection:list',
|
||||
'project:costOutput:edit',
|
||||
'project:projectStandard:edit',
|
||||
'project:attendanceWorker:list',
|
||||
'project:attendance:list',
|
||||
'project:surProject:remove',
|
||||
]"
|
||||
>
|
||||
|
@ -472,8 +474,17 @@
|
|||
command="handleStandard"
|
||||
icon="el-icon-s-grid"
|
||||
v-hasPermi="['project:projectStandard:list']"
|
||||
>标准化管理</el-dropdown-item
|
||||
>
|
||||
>标准化管理</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
command="handleAttendanceWorker"
|
||||
icon="el-icon-s-grid"
|
||||
v-hasPermi="['project:attendanceWorker:list']"
|
||||
>劳务实名管理</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
command="handleAttendanceData"
|
||||
icon="el-icon-s-grid"
|
||||
v-hasPermi="['project:attendance:list']"
|
||||
>劳务实名管理-考勤记录</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
command="handleDelete"
|
||||
icon="el-icon-delete"
|
||||
|
@ -757,6 +768,8 @@
|
|||
<costOutputDrawer ref="costOutput"></costOutputDrawer>
|
||||
<checkDetectionDrawer ref="checkDetection"></checkDetectionDrawer>
|
||||
<standardDrawer ref="standard"></standardDrawer>
|
||||
<attendanceDataDrawer ref="attendanceData"></attendanceDataDrawer>
|
||||
<attendanceWorkerDrawer ref="attendanceWorker"></attendanceWorkerDrawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -788,6 +801,8 @@ import videoConfigDrawer from "@/views/video/videoConfig/videoConfigDrawer";
|
|||
import costOutputDrawer from "@/views/project/costOutput/costOutputDrawer.vue";
|
||||
import checkDetectionDrawer from "../checkDetection/checkDetectionDrawer.vue";
|
||||
import standardDrawer from '@/views/project/projectStandard/projectStandardDrawer.vue'
|
||||
import attendanceDataDrawer from '@/views/project/attendance/attendanceDrawer.vue'
|
||||
import attendanceWorkerDrawer from '@/views/project/attendanceWorker/attendanceWorkerDrawer.vue'
|
||||
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
|
||||
|
||||
export default {
|
||||
|
@ -810,7 +825,9 @@ export default {
|
|||
videoConfigDrawer,
|
||||
costOutputDrawer,
|
||||
checkDetectionDrawer,
|
||||
standardDrawer
|
||||
standardDrawer,
|
||||
attendanceDataDrawer,
|
||||
attendanceWorkerDrawer
|
||||
},
|
||||
dicts: [
|
||||
"sur_project_xmjd",
|
||||
|
@ -1066,6 +1083,12 @@ export default {
|
|||
case "handleStandard":
|
||||
this.$refs.standard.show(row);
|
||||
break;
|
||||
case "handleAttendanceWorker":
|
||||
this.$refs.attendanceWorker.show(row);
|
||||
break;
|
||||
case "handleAttendanceData":
|
||||
this.$refs.attendanceData.show(row);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -93,6 +93,16 @@ public class SurProjectAttendanceData extends BaseEntity
|
|||
|
||||
private Long projectId;
|
||||
private Long subDeptId;
|
||||
|
||||
public Long getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
||||
public void setDeptId(Long deptId) {
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
private Long deptId;
|
||||
private String companyTypeId;
|
||||
|
||||
public Long getProjectId() {
|
||||
|
|
|
@ -172,6 +172,34 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
this.outTime = outTime;
|
||||
}
|
||||
|
||||
private Long projectId;
|
||||
private Long subDeptId;
|
||||
private Long deptId;
|
||||
|
||||
public Long getProjectId() {
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public void setProjectId(Long projectId) {
|
||||
this.projectId = projectId;
|
||||
}
|
||||
|
||||
public Long getSubDeptId() {
|
||||
return subDeptId;
|
||||
}
|
||||
|
||||
public void setSubDeptId(Long subDeptId) {
|
||||
this.subDeptId = subDeptId;
|
||||
}
|
||||
|
||||
public Long getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
||||
public void setDeptId(Long deptId) {
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
public static SurProjectAttendanceUser create(JSONObject json) {
|
||||
SurProjectAttendanceUser u=new SurProjectAttendanceUser();
|
||||
u.workerId=json.getLong("workerId");
|
||||
|
|
|
@ -44,10 +44,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="projectId" column="project_id"/>
|
||||
<result property="subDeptId" column="sub_dept_id"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSurProjectAttendanceUserVo">
|
||||
select id, cfgid, vendors_code, workerId, laborWorkerId, workerCategory, qrCode, name, ethnic, nativePlace, gender, birthDate, phone, degreeName, photo, recentPhoto, groupId, groupName, leader, workTypeCode, workTypeName, specWorkType, hatCode, state, enterDate, exitDate, companyId, companyName, vendorId, teamId, teamName, enterType, other, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_user
|
||||
SELECT * FROM (
|
||||
SELECT a.*,b.project_id,b.sub_dept_id
|
||||
FROM sur_project_attendance_user a,sur_project_attendance_cfg b
|
||||
WHERE a.cfgid=b.id )
|
||||
sur_project_attendance_user
|
||||
</sql>
|
||||
|
||||
<select id="selectSurProjectAttendanceUserList" parameterType="SurProjectAttendanceUser" resultMap="SurProjectAttendanceUserResult">
|
||||
|
@ -85,6 +91,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="teamName != null and teamName != ''"> and teamName like concat('%', #{teamName}, '%')</if>
|
||||
<if test="enterType != null and enterType != ''"> and enterType = #{enterType}</if>
|
||||
<if test="other != null and other != ''"> and other = #{other}</if>
|
||||
<if test="projectId != null and projectId > 0 "> and project_id = #{projectId}</if>
|
||||
<if test="subDeptId != null and subDeptId >0 "> and sub_dept_id = #{subDeptId}</if>
|
||||
<if test="isDel != null "> and is_del = #{isDel}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
|
Loading…
Reference in New Issue