Merge branch 'shenzhen-dev' of http://10.0.0.60/dhp/zhgdyun into shenzhen-dev
This commit is contained in:
commit
551def98d5
4999
package-lock.json
generated
4999
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,7 @@
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "npm run dev",
|
||||
"dev": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build"
|
||||
},
|
||||
|
||||
@ -29,13 +29,13 @@ export function payrollRecordDetailById(data) {
|
||||
}
|
||||
|
||||
// 导出人员工资pdf
|
||||
export function exportSalaryPdf(projectSn) {
|
||||
window.location.href = axios.defaults.baseURL +`xmgl/workerWagesPayment/salaryPdf?projectSn=${projectSn}`;
|
||||
export function exportSalaryPdf(params) {
|
||||
window.location.href = axios.defaults.baseURL +`xmgl/workerWagesPayment/salaryPdf?projectSn=${params.projectSn}&teamId=${params.teamId||''}&departmentId=${params.departmentId||''}`;
|
||||
}
|
||||
|
||||
// 导出工资列表excel
|
||||
export function exportSalaryExcel(projectSn) {
|
||||
window.location.href = axios.defaults.baseURL +`xmgl/workerWagesPayment/excelProjectWages?projectSn=${projectSn}`;
|
||||
export function exportSalaryExcel(params) {
|
||||
window.location.href = axios.defaults.baseURL +`xmgl/workerWagesPayment/excelProjectWages?projectSn=${params.projectSn}&teamId=${params.teamId||''}&departmentId=${params.departmentId||''}`;
|
||||
}
|
||||
|
||||
// 导入工资列表excel
|
||||
|
||||
@ -293,6 +293,12 @@ const routes2 = [
|
||||
name: '劳务管理_人员考勤',
|
||||
component: () => import('@/views/projectFront/laborManage/attendanceManage/attendanceManage.vue'),
|
||||
},
|
||||
//劳务管理--人员考勤--珠海路由
|
||||
{
|
||||
path: '/project/labor/zh/attendanceManage',
|
||||
name: '劳务管理_人员考勤',
|
||||
component: () => import('@/views/projectFront/laborManage/attendanceManage/zhAttendanceManage.vue'),
|
||||
},
|
||||
//劳务管理--工种管理
|
||||
{
|
||||
path: '/project/labor/workTypeManage',
|
||||
|
||||
@ -1,11 +1,16 @@
|
||||
<template>
|
||||
<div class="payoff">
|
||||
<el-row type="flex" style="width: 100%;height: 100%">
|
||||
<el-row type="flex" style="width: 100%; height: 100%">
|
||||
<el-col class="left-col" :span="5">
|
||||
<vue-scroll>
|
||||
<div class="scroll">
|
||||
<div class="list-wrapper">
|
||||
<div v-for="(item, index) in projectList" :key="item.id" :class="['list-item', { 'is-active': activeIndex == index }]" @click="handleItemClick(index)">
|
||||
<div
|
||||
v-for="(item, index) in projectList"
|
||||
:key="item.id"
|
||||
:class="['list-item', { 'is-active': activeIndex == index }]"
|
||||
@click="handleItemClick(index)"
|
||||
>
|
||||
<span class="title">{{ item.enterpriseName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
@ -13,37 +18,92 @@
|
||||
</vue-scroll>
|
||||
</el-col>
|
||||
<el-col class="right-col" :span="19">
|
||||
<el-row style="width: 100%;height: 100%">
|
||||
<el-col class="top-col" :span="4" :class="styleType == 3 ? 'changeStyle' : ''">
|
||||
<el-form size="medium" :model="queryParams" ref="queryForm" :inline="true" label-width="120px">
|
||||
<el-row style="width: 100%; height: 100%">
|
||||
<el-col
|
||||
class="top-col"
|
||||
:span="4"
|
||||
:class="styleType == 3 ? 'changeStyle' : ''"
|
||||
>
|
||||
<el-form
|
||||
size="medium"
|
||||
:model="queryParams"
|
||||
ref="queryForm"
|
||||
:inline="true"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="工资发放状态" prop="payStatus">
|
||||
<el-select v-model="queryParams.payStatus" placeholder="请选择工资发放状态" clearable
|
||||
:style="{width: '100%'}"
|
||||
<el-select
|
||||
v-model="queryParams.payStatus"
|
||||
placeholder="请选择工资发放状态"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option v-for="(item, index) in wageStatusOptions" :key="index" :label="item.label" :value="item.value"></el-option>
|
||||
<el-option
|
||||
v-for="(item, index) in wageStatusOptions"
|
||||
:key="index"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组" prop="teamId">
|
||||
<el-select v-model="queryParams.teamId" placeholder="请选择班组" clearable :style="{width: '100%'}">
|
||||
<el-option v-for="(item, index) in teamOptions" :key="item.id" :label="item.teamName" :value="item.id"></el-option>
|
||||
<el-select
|
||||
v-model="queryParams.teamId"
|
||||
placeholder="请选择班组"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in teamOptions"
|
||||
:key="item.id"
|
||||
:label="item.teamName"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门" prop="departmentId">
|
||||
<el-select v-model="queryParams.departmentId" placeholder="请选择部门" clearable :style="{width: '100%'}">
|
||||
<el-option v-for="(item, index) in departmentOptions" :key="item.id" :label="item.departmentName" :value="item.id"></el-option>
|
||||
<el-select
|
||||
v-model="queryParams.departmentId"
|
||||
placeholder="请选择部门"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in departmentOptions"
|
||||
:key="item.id"
|
||||
:label="item.departmentName"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="workerName">
|
||||
<el-input v-model="queryParams.workerName" placeholder="请输入姓名" clearable :style="{width: '100%'}">
|
||||
<el-input
|
||||
v-model="queryParams.workerName"
|
||||
placeholder="请输入姓名"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idCard">
|
||||
<el-input v-model="queryParams.idCard" placeholder="请输入身份证号" clearable :style="{width: '100%'}">
|
||||
<el-input
|
||||
v-model="queryParams.idCard"
|
||||
placeholder="请输入身份证号"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="月份" prop="payMonth">
|
||||
<el-date-picker type="month" v-model="queryParams.payMonth" format="yyyy-MM" value-format="yyyy-MM"
|
||||
:style="{width: '100%'}" placeholder="请选择月份" clearable></el-date-picker>
|
||||
<el-date-picker
|
||||
type="month"
|
||||
v-model="queryParams.payMonth"
|
||||
format="yyyy-MM"
|
||||
value-format="yyyy-MM"
|
||||
:style="{ width: '100%' }"
|
||||
placeholder="请选择月份"
|
||||
clearable
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery">查询</el-button>
|
||||
@ -53,7 +113,10 @@
|
||||
style="display: inline-block; margin-left: 15px"
|
||||
class="upload-demo"
|
||||
name="excelFile"
|
||||
:action="$http.defaults.baseURL + 'xmgl/workerWagesPayment/uploadWagesPaymentExcel'"
|
||||
:action="
|
||||
$http.defaults.baseURL +
|
||||
'xmgl/workerWagesPayment/uploadWagesPaymentExcel'
|
||||
"
|
||||
:on-success="handleUploadSuccess"
|
||||
:on-error="handleUploadError"
|
||||
:show-file-list="false"
|
||||
@ -68,21 +131,59 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
<el-col class="bottom-col" :span="20" :class="styleType == 3 ? 'bottomTwo' : ''">
|
||||
<el-col
|
||||
class="bottom-col"
|
||||
:span="20"
|
||||
:class="styleType == 3 ? 'bottomTwo' : ''"
|
||||
>
|
||||
<vue-scroll>
|
||||
<div class="scroll" :class="styleType == 3 ? 'boxBottom' : ''">
|
||||
<el-table v-loading="loading" :data="userList">
|
||||
<el-table-column label="月份" align="center" prop="payMonth" />
|
||||
<el-table-column label="姓名" align="center" prop="workerName" />
|
||||
<el-table-column label="身份证号" align="center" prop="idCard" />
|
||||
<el-table-column label="班组名称/部门名称" align="center" prop="teamId">
|
||||
<el-table-column
|
||||
label="月份"
|
||||
align="center"
|
||||
prop="payMonth"
|
||||
/>
|
||||
<el-table-column
|
||||
label="姓名"
|
||||
align="center"
|
||||
prop="workerName"
|
||||
/>
|
||||
<el-table-column
|
||||
label="身份证号"
|
||||
align="center"
|
||||
prop="idCard"
|
||||
/>
|
||||
<el-table-column
|
||||
label="班组名称/部门名称"
|
||||
align="center"
|
||||
prop="teamId"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span>{{ row.personType == 1 ? row.teamName : row.personType == 2 ? row.departmentName : '' }}</span>
|
||||
<span>{{
|
||||
row.personType == 1
|
||||
? row.teamName
|
||||
: row.personType == 2
|
||||
? row.departmentName
|
||||
: ''
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="应发工资" align="center" prop="payGross" />
|
||||
<el-table-column label="实发工资" align="center" prop="payNet" />
|
||||
<el-table-column label="工资发放状态" align="center" prop="payStatus">
|
||||
<el-table-column
|
||||
label="应发工资"
|
||||
align="center"
|
||||
prop="payGross"
|
||||
/>
|
||||
<el-table-column
|
||||
label="实发工资"
|
||||
align="center"
|
||||
prop="payNet"
|
||||
/>
|
||||
<el-table-column
|
||||
label="工资发放状态"
|
||||
align="center"
|
||||
prop="payStatus"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.payStatus == '1'">已发放</span>
|
||||
<span v-else>未发放</span>
|
||||
@ -90,7 +191,13 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="{ row }">
|
||||
<el-button style="border: 0 !important" type="text" icon="el-icon-edit" @click="handleUpdate(row)">编辑</el-button>
|
||||
<el-button
|
||||
style="border: 0 !important"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdate(row)"
|
||||
>编辑</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -112,48 +219,98 @@
|
||||
</el-row>
|
||||
|
||||
<!-- 编辑弹窗 -->
|
||||
<el-dialog :visible.sync="open" width="600px" append-to-body title="编辑">
|
||||
<el-form ref="editForm" :model="editForm" :rules="editFormRules" size="medium" label-width="120px">
|
||||
<el-form-item label="姓名" prop="workerName">
|
||||
<el-input v-model="editForm.workerName" placeholder="请输入姓名" :disabled='true' clearable
|
||||
:style="{width: '100%'}"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idCard">
|
||||
<el-input v-model="editForm.idCard" placeholder="请输入身份证号" :disabled='true' clearable
|
||||
:style="{width: '100%'}"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="月份" prop="payMonth">
|
||||
<el-date-picker type="month" v-model="editForm.payMonth" format="yyyy-MM" value-format="yyyy-MM"
|
||||
:style="{width: '100%'}" placeholder="请选择月份" clearable :disabled='true'></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组名称" prop="teamId">
|
||||
<el-input v-model="editForm.teamId" placeholder="" :disabled='true' clearable
|
||||
:style="{width: '100%'}"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门名称" prop="departmentId">
|
||||
<el-select :disabled='true' v-model="editForm.departmentId" placeholder="" clearable :style="{width: '100%'}">
|
||||
<el-option v-for="(item, index) in departmentOptions" :key="item.id" :label="item.departmentName" :value="item.id"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="应发工资" prop="payGross">
|
||||
<el-input v-model="editForm.payGross" placeholder="请输入应发工资" clearable :style="{width: '100%'}">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="实发工资" prop="payNet">
|
||||
<el-input v-model="editForm.payNet" placeholder="请输入实发工资" clearable :style="{width: '100%'}">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer">
|
||||
<el-button @click="cancel">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
<el-dialog :visible.sync="open" width="600px" append-to-body title="编辑">
|
||||
<el-form
|
||||
ref="editForm"
|
||||
:model="editForm"
|
||||
:rules="editFormRules"
|
||||
size="medium"
|
||||
label-width="120px"
|
||||
>
|
||||
<el-form-item label="姓名" prop="workerName">
|
||||
<el-input
|
||||
v-model="editForm.workerName"
|
||||
placeholder="请输入姓名"
|
||||
:disabled="true"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idCard">
|
||||
<el-input
|
||||
v-model="editForm.idCard"
|
||||
placeholder="请输入身份证号"
|
||||
:disabled="true"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="月份" prop="payMonth">
|
||||
<el-date-picker
|
||||
type="month"
|
||||
v-model="editForm.payMonth"
|
||||
format="yyyy-MM"
|
||||
value-format="yyyy-MM"
|
||||
:style="{ width: '100%' }"
|
||||
placeholder="请选择月份"
|
||||
clearable
|
||||
:disabled="true"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="班组名称" prop="teamId">
|
||||
<el-input
|
||||
v-model="editForm.teamId"
|
||||
placeholder=""
|
||||
:disabled="true"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门名称" prop="departmentId">
|
||||
<el-select
|
||||
:disabled="true"
|
||||
v-model="editForm.departmentId"
|
||||
placeholder=""
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
<el-option
|
||||
v-for="(item, index) in departmentOptions"
|
||||
:key="item.id"
|
||||
:label="item.departmentName"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="应发工资" prop="payGross">
|
||||
<el-input
|
||||
v-model="editForm.payGross"
|
||||
placeholder="请输入应发工资"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="实发工资" prop="payNet">
|
||||
<el-input
|
||||
v-model="editForm.payNet"
|
||||
placeholder="请输入实发工资"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer">
|
||||
<el-button @click="cancel">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm">确定</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
import {
|
||||
enterpriseList,
|
||||
teamList,
|
||||
departmentList,
|
||||
@ -171,7 +328,7 @@ import { wageStatusOptions } from './data'
|
||||
export default {
|
||||
data: () => ({
|
||||
// 3 衢州版 2 星璇版 1 正常版本
|
||||
styleType:'',
|
||||
styleType: '',
|
||||
// 项目SN
|
||||
projectSn: '',
|
||||
// 弹窗标题
|
||||
@ -317,7 +474,7 @@ export default {
|
||||
/** 项目列表 点击操作 */
|
||||
handleItemClick(index) {
|
||||
if (this.activeIndex == index) return;
|
||||
|
||||
|
||||
this.activeIndex = index;
|
||||
this.queryParams.pageNo = 1;
|
||||
this.queryParams.payMonth = nowDate()
|
||||
@ -346,11 +503,23 @@ export default {
|
||||
},
|
||||
/** 导出 */
|
||||
handleExport() {
|
||||
exportSalaryPdf(this.projectSn)
|
||||
let params = {
|
||||
projectSn: this.projectSn,
|
||||
teamId: this.queryParams.teamId,
|
||||
departmentId: this.queryParams.departmentId,
|
||||
payStatus:this.queryParams.payStatus
|
||||
}
|
||||
exportSalaryPdf(params)
|
||||
},
|
||||
/** 导出Excel */
|
||||
handleExportExcel() {
|
||||
exportSalaryExcel(this.projectSn)
|
||||
let params = {
|
||||
projectSn: this.projectSn,
|
||||
teamId: this.queryParams.teamId,
|
||||
departmentId: this.queryParams.departmentId,
|
||||
payStatus:this.queryParams.payStatus
|
||||
}
|
||||
exportSalaryExcel(params)
|
||||
},
|
||||
handleUploadSuccess(res) {
|
||||
if (res.code == 200) {
|
||||
@ -375,7 +544,7 @@ export default {
|
||||
this.open = false;
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm: function() {
|
||||
submitForm: function () {
|
||||
this.$refs['editForm'].validate(valid => {
|
||||
if (!valid) return
|
||||
const params = {
|
||||
@ -422,13 +591,13 @@ export default {
|
||||
box-sizing: border-box;
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items : center;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
padding: 10px 20px;
|
||||
cursor: pointer;
|
||||
transition: all .3s ease-in;
|
||||
transition: all 0.3s ease-in;
|
||||
background-color: #fff;
|
||||
border-left: 3px solid transparent;
|
||||
border-bottom: 2px solid #f3f5fd;
|
||||
@ -436,7 +605,7 @@ export default {
|
||||
.list-item.is-active {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
border-left-color: #0E74D6;
|
||||
border-left-color: #0e74d6;
|
||||
background-color: #f3f6fd;
|
||||
}
|
||||
}
|
||||
@ -444,9 +613,9 @@ export default {
|
||||
.right-col {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.top-col, .bottom-col {
|
||||
.top-col,
|
||||
.bottom-col {
|
||||
background: #fff;
|
||||
|
||||
}
|
||||
.top-col {
|
||||
padding: 30px 25px;
|
||||
@ -462,13 +631,13 @@ export default {
|
||||
}
|
||||
/* 查询表单 按钮样式 */
|
||||
.right-col ::v-deep .el-button {
|
||||
border-color: #4E7CFF;
|
||||
border-color: #4e7cff;
|
||||
}
|
||||
|
||||
.scroll {
|
||||
overflow-y: auto;
|
||||
}
|
||||
.boxBottom{
|
||||
margin-top:30px;
|
||||
.boxBottom {
|
||||
margin-top: 30px;
|
||||
}
|
||||
</style>
|
||||
@ -524,6 +524,7 @@ export default {
|
||||
this.getListData();
|
||||
this.fileUrl = this.$store.state.FILEURL;
|
||||
this.getCompanyList()
|
||||
this.getTeamList()
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
@ -0,0 +1,826 @@
|
||||
<template>
|
||||
<div class="attendanceManage fullHeight" ref="attendanceManage">
|
||||
<vue-scroll style="width: 100%; height: 100%">
|
||||
<el-form
|
||||
:inline="true"
|
||||
:model="formInline"
|
||||
class="demo-form-inline whiteBlock"
|
||||
size="medium"
|
||||
>
|
||||
<el-form-item :label="$t('message.laborMange.personnelType')">
|
||||
<el-select style="width:120px"
|
||||
v-model="formInline.personType"
|
||||
:placeholder="$t('message.laborMange.pleasePersonnelType')"
|
||||
>
|
||||
<el-option :label="$t('message.laborMange.all')" value></el-option>
|
||||
<el-option
|
||||
:label="$t('message.laborMange.modules')"
|
||||
:value="1"
|
||||
></el-option>
|
||||
<el-option
|
||||
:label="$t('message.laborMange.modules1')"
|
||||
:value="2"
|
||||
></el-option>
|
||||
<el-option
|
||||
:label="$t('message.laborMange.modules2')"
|
||||
:value="3"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('message.laborMange.companies')">
|
||||
<el-select filterable :clearable="true"
|
||||
v-model="formInline.enterpriseId"
|
||||
:placeholder="$t('message.laborMange.pleaseChoose')" @change="changeCompany"
|
||||
>
|
||||
<el-option
|
||||
:label="item.enterpriseName"
|
||||
:value="item.id" v-for="item in enterpriseListData" :key="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('message.laborMange.belongsToTeam')">
|
||||
<el-select filterable :clearable="true"
|
||||
v-model="formInline.teamId"
|
||||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||||
>
|
||||
<el-option
|
||||
:label="item.teamName"
|
||||
:value="item.id" v-for="item in teamListData" :key="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('message.laborMange.department')">
|
||||
<el-select filterable :clearable="true"
|
||||
v-model="formInline.departmentId"
|
||||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||||
>
|
||||
<el-option
|
||||
:label="item.departmentName"
|
||||
:value="item.id" v-for="item in departmentListData" :key="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="$t('message.laborMange.workingState')">
|
||||
<el-select filterable
|
||||
v-model="formInline.inserviceType"
|
||||
:placeholder="$t('message.laborMange.pleaseChoose')"
|
||||
>
|
||||
<el-option
|
||||
:label="item.name"
|
||||
:value="item.id" v-for="item in inserviceTypeOptions" :key="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="$t('message.laborMange.month') + ':'">
|
||||
<el-date-picker style="width:120px"
|
||||
value-format="yyyy-MM"
|
||||
v-model="formInline.monthTime"
|
||||
type="month"
|
||||
:placeholder="$t('message.laborMange.pleaseSelectMonth')"
|
||||
:clearable="false"
|
||||
></el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item :label="''">
|
||||
<el-input
|
||||
v-model="formInline.workerName"
|
||||
:placeholder="$t('message.laborMange.pleaseInputYourName')"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="page=1; getListData()"
|
||||
plain
|
||||
>{{ $t("message.laborMange.inquire") }}</el-button
|
||||
>
|
||||
<el-button
|
||||
type="warning"
|
||||
@click="refresh"
|
||||
plain
|
||||
>{{ $t("message.laborMange.refresh")}}</el-button
|
||||
>
|
||||
<el-button type="primary" @click="selectDateType=1;exportDialog=true" >{{$t("message.laborMange.export")+"考勤明细"}}</el-button>
|
||||
<el-button type="primary" @click="exportMonthlyData" >{{$t("message.laborMange.export")+$t("message.laborMange.monthData")}}</el-button>
|
||||
<el-button type="primary" @click="selectDateType=2;exportDialog=true" >{{$t("message.laborMange.recountData")}}</el-button>
|
||||
<el-button type="primary" @click="attendancePrint"><a :href="printPdf" class="printPdf">{{$t("message.laborMange.attendPrint")}}</a></el-button>
|
||||
<!-- <el-button type="primary" @click="importAttendanceData" >导入考勤数据</el-button> -->
|
||||
</el-form-item>
|
||||
<!-- <div class="doloadExcel">考勤模板下载</div> -->
|
||||
</el-form>
|
||||
<!-- <div class="placeholder"></div> -->
|
||||
<div class="table_content whiteBlock">
|
||||
<div style="text-align: right" class="flex">
|
||||
<div class="pageTitle">
|
||||
{{ $t("message.laborMange.AttendanceStatistics") }}
|
||||
</div>
|
||||
<div class="flex2 rigth">
|
||||
<div>
|
||||
<span
|
||||
class="span"
|
||||
style="background: #3a7bff; margin-right: 5px"
|
||||
></span>
|
||||
{{ $t("message.laborMange.normalAttendance") }}
|
||||
</div>
|
||||
<!-- 横琴要求去掉 -->
|
||||
<!-- <div v-if="COMPANY">
|
||||
<span
|
||||
class="span"
|
||||
style="background: #1d1e37; margin-right: 5px"
|
||||
></span>
|
||||
{{ $t("message.laborMange.lackOfCard") }}
|
||||
</div>
|
||||
<div v-if="COMPANY">
|
||||
<span
|
||||
class="span"
|
||||
style="background: #ff6e5f; margin-right: 5px"
|
||||
></span>
|
||||
{{ $t("message.laborMange.beLate") }}
|
||||
</div>
|
||||
<div v-if="COMPANY">
|
||||
<span
|
||||
class="span"
|
||||
style="background: #45c5a2; margin-right: 5px"
|
||||
></span>
|
||||
{{ $t("message.laborMange.leaveEarly") }}
|
||||
</div>
|
||||
<div v-if="COMPANY">
|
||||
<span
|
||||
class="span"
|
||||
style="background: #ffb85a; margin-right: 5px"
|
||||
></span>
|
||||
{{ $t("message.laborMange.overtime") }}
|
||||
</div> -->
|
||||
<div>
|
||||
<span
|
||||
class="span"
|
||||
style="background: #a3a3a3; margin-right: 5px"
|
||||
></span>
|
||||
{{ $t("message.laborMange.noAttendance") }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="tableData" max-height="500" width="100%" border>
|
||||
<el-table-column
|
||||
prop="workerName"
|
||||
:label="$t('message.laborMange.compellation')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<!-- <el-table-column
|
||||
prop="temperature"
|
||||
:label="'温度(℃)'"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.temperature?scope.row.temperature:'--'}}
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column
|
||||
:prop="'day' + item"
|
||||
:label="String(item)"
|
||||
v-for="(item, index) in showTime"
|
||||
:key="index"
|
||||
align="center"
|
||||
width="44"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
class="span"
|
||||
v-show="scope.row['day' + item] == 0"
|
||||
style="cursor: pointer; background: #a3a3a3"
|
||||
></span>
|
||||
<span
|
||||
class="span"
|
||||
v-show="scope.row['day' + item] !=0"
|
||||
style="cursor: pointer; background: #3a7bff"
|
||||
@click="selectWorker(scope.row, item, scope.$index)"
|
||||
:class="
|
||||
number == item && selectIndex == scope.$index ? 'span2' : ''
|
||||
"
|
||||
></span>
|
||||
<!-- <template v-if="COMPANY">
|
||||
<span
|
||||
class="span"
|
||||
v-show="scope.row['day' + item] == 2"
|
||||
style="cursor: pointer; background: #ff6e5f"
|
||||
@click="selectWorker(scope.row, item, scope.$index)"
|
||||
:class="
|
||||
number == item && selectIndex == scope.$index ? 'span2' : ''
|
||||
"
|
||||
></span>
|
||||
<span
|
||||
class="span"
|
||||
v-show="scope.row['day' + item] == 3"
|
||||
style="cursor: pointer; background: #45c5a2"
|
||||
@click="selectWorker(scope.row, item, scope.$index)"
|
||||
:class="
|
||||
number == item && selectIndex == scope.$index ? 'span2' : ''
|
||||
"
|
||||
></span>
|
||||
<span
|
||||
class="span"
|
||||
v-show="scope.row['day' + item] == 4"
|
||||
style="cursor: pointer; background: #ffb85a"
|
||||
@click="selectWorker(scope.row, item, scope.$index)"
|
||||
:class="
|
||||
number == item && selectIndex == scope.$index ? 'span2' : ''
|
||||
"
|
||||
></span>
|
||||
<span
|
||||
class="span"
|
||||
v-show="scope.row['day' + item] == 5"
|
||||
style="cursor: pointer; background: #1d1e37"
|
||||
@click="selectWorker(scope.row, item, scope.$index)"
|
||||
:class="
|
||||
number == item && selectIndex == scope.$index ? 'span2' : ''
|
||||
"
|
||||
></span>
|
||||
</template> -->
|
||||
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
class="pagerBox"
|
||||
style="margin: 10px 20px 0; text-align: right"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="handleCurrentChange"
|
||||
:current-page="page"
|
||||
:page-size="pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="total"
|
||||
background
|
||||
></el-pagination>
|
||||
<div>
|
||||
<div style="text-align: right; margin: 15px 0" class="flex">
|
||||
<div class="pageTitle">
|
||||
{{ $t("message.laborMange.attendanceDetail") }}
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="dateilList" style="width: 100%">
|
||||
<el-table-column
|
||||
prop="workerName"
|
||||
:label="$t('message.laborMange.compellation')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="temperature"
|
||||
:label="$t('message.laborMange.temperature')+'(℃)'"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{scope.row.temperature?scope.row.temperature:'--'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
|
||||
:label="$t('message.laborMange.healthCodeStatus')"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{healthCodelist[scope.row.healthCode]}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column
|
||||
prop="nucleicAcidTime"
|
||||
:label="$t('message.laborMange.nucleicAcidTime')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
|
||||
:label="$t('message.laborMange.nucleicAcidResults')"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{nucleicAcidResultsList[scope.row.nucleicAcidResult]}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<el-table-column
|
||||
prop="vaccinateTime"
|
||||
:label="$t('message.laborMange.vaccinationTime')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
|
||||
<el-table-column
|
||||
|
||||
:label="$t('message.laborMange.vaccinationFrequency')"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
{{vaccinationFrequencyltsList[scope.row.vaccinateState]||'无'}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="passType"
|
||||
:label="
|
||||
$t('message.laborMange.enterInto') +
|
||||
'/' +
|
||||
$t('message.laborMange.leave')
|
||||
"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.passType == 1">
|
||||
{{ $t("message.laborMange.enterInto") }}
|
||||
</div>
|
||||
<div v-if="scope.row.passType == 2">
|
||||
{{ $t("message.laborMange.leave") }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createTime"
|
||||
:label="$t('message.laborMange.inOutTime')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="passagewayName"
|
||||
:label="$t('message.laborMange.inletOutletPosition')"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="address"
|
||||
:label="$t('message.laborMange.inAndOutOfTheWay')"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<div v-if="scope.row.cardType == 1">
|
||||
{{ $t("message.laborMange.ic") }}
|
||||
</div>
|
||||
<div v-if="scope.row.cardType == 2">
|
||||
{{ $t("message.laborMange.faceRecognition") }}
|
||||
</div>
|
||||
<div v-if="scope.row.cardType == 3">
|
||||
{{ $t("message.laborMange.fingerprintIdentification") }}
|
||||
</div>
|
||||
<div v-if="scope.row.cardType == 4">
|
||||
{{ $t("message.laborMange.reissueACard") }}
|
||||
</div>
|
||||
<div v-if="scope.row.cardType == 5">
|
||||
{{ $t("message.laborMange.QRcode") }}
|
||||
</div>
|
||||
<div v-if="scope.row.cardType == 6">
|
||||
{{ $t("message.laborMange.bluetooth") }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="address"
|
||||
:label="$t('message.laborMange.entranceGuardPhotos')"
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<img
|
||||
:src="fileUrl + scope.row.imageUrl"
|
||||
style="width: 40px; height: 60px; cursor: pointer"
|
||||
@click="
|
||||
bigImageUrl = fileUrl + scope.row.imageUrl;
|
||||
bigImageDialog = true;
|
||||
"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
</vue-scroll>
|
||||
<!-- 查看大图 -->
|
||||
<div
|
||||
v-if="bigImageDialog"
|
||||
class="bigImageDialog"
|
||||
@click="bigImageDialog = false"
|
||||
>
|
||||
<div class="bigImageContent">
|
||||
<img width="auto" height="auto" :src="bigImageUrl" alt />
|
||||
</div>
|
||||
</div>
|
||||
<!-- 导出 -->
|
||||
<el-dialog
|
||||
:modal-append-to-body="false"
|
||||
:title="selectDateType==1?$t('message.laborMange.hint1'):$t('message.laborMange.hint2')"
|
||||
:visible.sync="exportDialog"
|
||||
width="667px">
|
||||
<div class="dialog_content">
|
||||
<el-form label-width="90px" size="medium"
|
||||
class="dialogFormBox">
|
||||
|
||||
<el-form-item prop="afternoonStartTime" :label="$t('message.laborMange.timeFrame')">
|
||||
|
||||
<el-date-picker
|
||||
v-model="exportDateArr"
|
||||
type="daterange"
|
||||
:range-separator="$t('message.laborMange.to')"
|
||||
:start-placeholder="$t('message.laborMange.startDate')"
|
||||
:end-placeholder="$t('message.laborMange.dateClosed')" value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<div class="dialog-footer">
|
||||
<el-button
|
||||
class="cancleBtn"
|
||||
@click="exportDialog = false"
|
||||
icon="el-icon-circle-close"
|
||||
size="medium"
|
||||
>{{$t('message.personnelPosition.cancel')}}
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="el-icon-circle-check"
|
||||
@click="exportFn"
|
||||
size="medium"
|
||||
>{{$t('message.personnelPosition.determine')}}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import scroll from "vue-seamless-scroll";
|
||||
import {
|
||||
getPageListData,
|
||||
getSelectDateilApi,getAfreshMonthAttendanceStatisticsApi,attendFsdApi
|
||||
} from "@/assets/js/api/attendanceManage";
|
||||
import {
|
||||
getDepartmentInfoList,
|
||||
getTeamInfoList,
|
||||
getEnterpriseInfoList
|
||||
} from "@/assets/js/api/laborPerson";
|
||||
export default {
|
||||
name: "attendanceManage",
|
||||
components: {
|
||||
scroll,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
COMPANY:COMPANY,
|
||||
printPdf:"",
|
||||
nucleicAcidResultsList:{
|
||||
0:"未知",
|
||||
1:"阴性",
|
||||
2:"阳性"
|
||||
},
|
||||
healthCodelist:{
|
||||
0:"无",
|
||||
1:"红码",
|
||||
2:"黄码",
|
||||
3:"绿码"
|
||||
},
|
||||
vaccinationFrequencyltsList:{
|
||||
0:"未接种",
|
||||
1:"接种一针",
|
||||
2:"接种两针",
|
||||
3:"接种三针"
|
||||
},
|
||||
exportDialog:false,
|
||||
exportDateArr:[],
|
||||
inserviceTypeOptions:[{
|
||||
name: this.$t('message.laborMange.onJob'),
|
||||
id: 1
|
||||
},{
|
||||
name: this.$t('message.laborMange.dimission'),
|
||||
id: 2
|
||||
}],
|
||||
fileUrl: "",
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
total: 0,
|
||||
formInline: {
|
||||
workerName: "",
|
||||
personType: "",
|
||||
monthTime: "",
|
||||
enterpriseId:"",
|
||||
teamId:"",
|
||||
departmentId:"",
|
||||
inserviceType: 1
|
||||
},
|
||||
projectSn: "",
|
||||
tableData: [],
|
||||
number: 0,
|
||||
selectIndex: 0,
|
||||
showSelectPersonSn: "",
|
||||
showSelectTime: "",
|
||||
dateilList: [],
|
||||
showTime: 31,
|
||||
bigImageDialog: false,
|
||||
enterpriseListData:[],
|
||||
teamListData:[],
|
||||
departmentListData:[],
|
||||
selectDateType:1,//1是选择导出时间段 2是选择重新计算考勤的时间段
|
||||
};
|
||||
},
|
||||
created() {
|
||||
let date = new Date();
|
||||
let year = date.getFullYear();
|
||||
let month = date.getMonth() + 1;
|
||||
month = month < 10 ? "0" + month : month;
|
||||
let mydate = year.toString() + "-" + month.toString();
|
||||
this.formInline.monthTime = mydate;
|
||||
this.projectSn = this.$store.state.projectSn;
|
||||
this.getListData();
|
||||
this.fileUrl = this.$store.state.FILEURL;
|
||||
this.getCompanyList();
|
||||
this.getTeamList()
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
//考勤打印
|
||||
attendancePrint(){
|
||||
console.log('参数',this.formInline)
|
||||
this.printPdf = this.$http.defaults.baseURL + 'xmgl/workerWagesPayment/attendancePdf?monthTime=' +
|
||||
this.formInline.monthTime +'&personType=' + this.formInline.personType + '&projectSn=' + this.$store.state.projectSn
|
||||
+'&enterpriseId='+this.formInline.enterpriseId
|
||||
+'&teamId='+this.formInline.teamId
|
||||
// console.log('路径', this.printPdf )
|
||||
},
|
||||
// 导入考勤数据
|
||||
importAttendanceData(){
|
||||
|
||||
},
|
||||
//获取所属 企业下拉
|
||||
getCompanyList() {
|
||||
let data = {
|
||||
projectSn: this.projectSn,
|
||||
enterpriseName: '',
|
||||
userEnterpriseId: this.$store.state.userInfo.userEnterpriseId
|
||||
};
|
||||
getEnterpriseInfoList(data).then((res) => {
|
||||
this.enterpriseListData = res.result;
|
||||
});
|
||||
},
|
||||
//获取 部门 列表
|
||||
getDepartmentList() {
|
||||
let data = {
|
||||
enterpriseId:this.formInline.enterpriseId,
|
||||
projectSn: this.projectSn,
|
||||
};
|
||||
getDepartmentInfoList(data).then((res) => {
|
||||
this.departmentListData = res.result.list;
|
||||
});
|
||||
},
|
||||
//获取企业的 - 班组列表
|
||||
getTeamList() {
|
||||
let data = {
|
||||
enterpriseId: this.formInline.enterpriseId,
|
||||
projectSn: this.projectSn,
|
||||
};
|
||||
getTeamInfoList(data).then((res) => {
|
||||
console.log(res.result.list,"res.result.list")
|
||||
this.teamListData = res.result.list;
|
||||
});
|
||||
},
|
||||
changeCompany(){
|
||||
this.formInline.departmentId=''
|
||||
this.formInline.teamId=''
|
||||
this.getDepartmentList()
|
||||
this.getTeamList()
|
||||
},
|
||||
//导出详细数据
|
||||
exportFn(){
|
||||
console.log(this.exportDateArr)
|
||||
if(!this.exportDateArr||this.exportDateArr.length==0){
|
||||
this.$message.error(this.$t('message.laborMange.pleaseChoose')+this.$t('message.laborMange.timeFrame'))
|
||||
return false
|
||||
}
|
||||
if(this.selectDateType==1){
|
||||
window.location.href = this.$http.defaults.baseURL + 'xmgl/download/exportExcelWorkerAttendance?projectSn=' + this.projectSn +
|
||||
'&endTime=' + this.exportDateArr[1] + '&startTime=' + this.exportDateArr[0] + '&personType=' + this.formInline.personType + '&workerName=' + this.formInline.workerName+'&userEnterpriseId='+this.$store.state.userInfo.userEnterpriseId+
|
||||
'&enterpriseId='+this.formInline.enterpriseId+'&teamId='+this.formInline.teamId+'&departmentId='+this.formInline.departmentId+'&inserviceType='+this.formInline.inserviceType
|
||||
|
||||
}else{
|
||||
let data = {
|
||||
userId: this.$store.state.userInfo.userId,
|
||||
projectSn: this.projectSn,
|
||||
startTime:this.exportDateArr[0],
|
||||
endTime:this.exportDateArr[1]
|
||||
};
|
||||
getAfreshMonthAttendanceStatisticsApi(data).then((res) => {
|
||||
this.$message.success(this.$t('message.laborMange.hint3'))
|
||||
});
|
||||
}
|
||||
this.exportDialog=false
|
||||
|
||||
},
|
||||
//导出月份数据
|
||||
exportMonthlyData(){
|
||||
window.location.href = this.$http.defaults.baseURL + 'xmgl/download/exportExcelMonthWorkerAttendanceStatistics?projectSn=' + this.projectSn +
|
||||
'&monthTime='+ this.formInline.monthTime + '&personType=' + this.formInline.personType + '&workerName=' + this.formInline.workerName+'&userEnterpriseId='+this.$store.state.userInfo.userEnterpriseId+
|
||||
'&enterpriseId='+this.formInline.enterpriseId+'&teamId='+this.formInline.teamId+'&departmentId='+this.formInline.departmentId+'&inserviceType='+this.formInline.inserviceType;
|
||||
},
|
||||
|
||||
|
||||
//查询 列表信息
|
||||
getListData() {
|
||||
let data = this.formInline;
|
||||
data.pageNo = this.page;
|
||||
data.pageSize = this.pageSize;
|
||||
data.projectSn = this.projectSn;
|
||||
data.userEnterpriseId = this.$store.state.userInfo.userEnterpriseId;
|
||||
getPageListData(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.total = res.result.total;
|
||||
this.tableData = res.result.records;
|
||||
let date = 0;
|
||||
for (let i in res.result.records[0]) {
|
||||
if (i.indexOf("day") >= 0) {
|
||||
date++;
|
||||
}
|
||||
}
|
||||
this.showTime = date > 0 ? date : this.showTime;
|
||||
this.number=0
|
||||
this.dateilList=[]
|
||||
}
|
||||
});
|
||||
},
|
||||
//选中的状态
|
||||
selectWorker(value, num, index) {
|
||||
this.number = num;
|
||||
this.selectIndex = index;
|
||||
this.showSelectPersonSn = value.personSn;
|
||||
this.showSelectTime =
|
||||
num < 10 ? value.queryTime + "-0" + num : value.queryTime + "-" + num;
|
||||
this.getSelectDateil();
|
||||
},
|
||||
// 获取 个人考勤信息
|
||||
getSelectDateil() {
|
||||
let data = {
|
||||
personSn: this.showSelectPersonSn,
|
||||
queryTime: this.showSelectTime,
|
||||
};
|
||||
getSelectDateilApi(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.dateilList = res.result;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
refresh() {
|
||||
this.formInline.workerName = "";
|
||||
this.formInline.personType = "";
|
||||
this.formInline.enterpriseId=''
|
||||
this.formInline.teamId=''
|
||||
this.formInline.departmentId=''
|
||||
let date = new Date();
|
||||
let year = date.getFullYear();
|
||||
let month = date.getMonth() + 1;
|
||||
month = month < 10 ? "0" + month : month;
|
||||
let mydate = year.toString() + "-" + month.toString();
|
||||
this.formInline.monthTime = mydate;
|
||||
this.page = 1;
|
||||
this.pageSize = 10;
|
||||
|
||||
this.getListData();
|
||||
},
|
||||
|
||||
handleSizeChange(value) {
|
||||
this.pageSize = value;
|
||||
this.getListData();
|
||||
},
|
||||
handleCurrentChange(value) {
|
||||
this.page = value;
|
||||
this.getListData();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.printPdf{
|
||||
text-decoration: none;
|
||||
color: white;
|
||||
}
|
||||
.flex {
|
||||
display: flex;
|
||||
align-content: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.flex2 {
|
||||
display: flex;
|
||||
align-content: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.attendanceManage {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
|
||||
.demo-form-inline {
|
||||
width: 100%;
|
||||
// background: #fff;
|
||||
min-height: 84px;
|
||||
padding: 24px 20px 0;
|
||||
box-sizing: border-box;
|
||||
border-radius: 3px;
|
||||
margin-bottom: 7px;
|
||||
}
|
||||
|
||||
.table_content {
|
||||
width: 100%;
|
||||
// background: #fff;
|
||||
padding: 15px 0;
|
||||
border-radius: 3px;
|
||||
min-height: 100%;
|
||||
// .left {
|
||||
// color: rgba(38, 45, 71, 100);
|
||||
// font-size: 15px;
|
||||
// font-family: PingFangSC-Medium;
|
||||
// text-align: center;
|
||||
// font-weight: 600;
|
||||
// padding: 0px 15px;
|
||||
// margin-left: 20px;
|
||||
// height: 20px;
|
||||
// line-height: 20px;
|
||||
// border-left: 3px solid #4a8bff;
|
||||
// }
|
||||
.pageTitle{
|
||||
margin-left: 20px;
|
||||
font-size: 15px;
|
||||
}
|
||||
.rigth {
|
||||
div {
|
||||
margin-right: 15px;
|
||||
line-height: 30px;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.span {
|
||||
display: inline-block;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
// margin-right: 3px;
|
||||
}
|
||||
.span2 {
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 50%;
|
||||
// margin-right: 5px;
|
||||
margin-bottom: -5px;
|
||||
}
|
||||
}
|
||||
// .placeholder {
|
||||
// width: 100%;
|
||||
// height: 7px;
|
||||
// background: #f3f5fd;
|
||||
// }
|
||||
/deep/ .__view {
|
||||
width: 100% !important;
|
||||
min-width: 0 !important;
|
||||
}
|
||||
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
|
||||
width: 5px; // 横向滚动条
|
||||
height: 8px; // 纵向滚动条 必写
|
||||
}
|
||||
// 滚动条的滑块
|
||||
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
|
||||
background-color: #cacaca;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.bigImageDialog {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
text-align: center;
|
||||
z-index: 1000000;
|
||||
overflow-y: auto;
|
||||
// padding-bottom: 50px;
|
||||
height: 100%;
|
||||
.bigImageContent {
|
||||
height: 100%;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
img {
|
||||
// margin-top: 10%;
|
||||
position: relative;
|
||||
top: 10%;
|
||||
max-height: 80%;
|
||||
max-width: 80%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.doloadExcel{
|
||||
// display: inline-block;
|
||||
margin-right: 20px;
|
||||
color: #5181F6;
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
text-decoration: underline;
|
||||
line-height: 34px;
|
||||
}
|
||||
</style>
|
||||
@ -35,6 +35,7 @@
|
||||
>
|
||||
</div>
|
||||
<div class="content_title flex3">
|
||||
|
||||
<div class="flex">
|
||||
<div class="flex">
|
||||
<div class="img_wrap" style="margin-right: 8px">
|
||||
@ -81,6 +82,7 @@
|
||||
</el-upload>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info_wrap" v-if="basicInfoStatus">
|
||||
<div>
|
||||
<el-input
|
||||
@ -115,6 +117,7 @@
|
||||
></el-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="info_wrap" v-else>
|
||||
<div class="name">{{ workerInfo.workerName }}</div>
|
||||
<div class="time">
|
||||
@ -252,6 +255,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
@ -291,6 +295,39 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="开户行"
|
||||
prop="payRollBankName"
|
||||
>
|
||||
<el-input
|
||||
v-if="detailInfoStatus"
|
||||
style="width: 80%"
|
||||
v-model="workerInfo.payRollBankName"
|
||||
placeholder="请输入开户行"
|
||||
></el-input>
|
||||
<span v-else>{{workerInfo.payRollBankName}}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
label="银行卡号"
|
||||
prop="payRollBankNumber"
|
||||
>
|
||||
<el-input
|
||||
v-if="detailInfoStatus"
|
||||
style="width: 80%"
|
||||
v-model="workerInfo.payRollBankNumber"
|
||||
placeholder="请输入银行卡号"
|
||||
></el-input>
|
||||
|
||||
<span v-else>{{ workerInfo.payRollBankNumber }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
@ -333,6 +370,7 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="24">
|
||||
<el-col :span="12">
|
||||
<el-form-item
|
||||
|
||||
@ -7,28 +7,43 @@
|
||||
active-text-color="#5181F6"
|
||||
class="el-menu-demo whiteBlock"
|
||||
mode="horizontal"
|
||||
style="width:370px"
|
||||
style="width: 370px"
|
||||
>
|
||||
<el-menu-item index="1" style="height:41px;line-height:41px" @click="switchTab(1)">{{$t('message.laborMange.modules')}}</el-menu-item>
|
||||
<el-menu-item index="2" style="height:41px; line-height:41px" @click="switchTab(2)">{{$t('message.laborMange.modules1')}}</el-menu-item>
|
||||
<el-menu-item index="3" style="height:41px; line-height:41px" @click="switchTab(3)">{{$t('message.laborMange.modules2')}}</el-menu-item>
|
||||
<el-menu-item
|
||||
index="1"
|
||||
style="height: 41px; line-height: 41px"
|
||||
@click="switchTab(1)"
|
||||
>{{ $t('message.laborMange.modules') }}</el-menu-item
|
||||
>
|
||||
<el-menu-item
|
||||
index="2"
|
||||
style="height: 41px; line-height: 41px"
|
||||
@click="switchTab(2)"
|
||||
>{{ $t('message.laborMange.modules1') }}</el-menu-item
|
||||
>
|
||||
<el-menu-item
|
||||
index="3"
|
||||
style="height: 41px; line-height: 41px"
|
||||
@click="switchTab(3)"
|
||||
>{{ $t('message.laborMange.modules2') }}</el-menu-item
|
||||
>
|
||||
</el-menu>
|
||||
</div>
|
||||
<div class="content_right"></div>
|
||||
<!-- 劳务人员 -->
|
||||
<Labor v-if="showModule==1" class="labor_module" />
|
||||
<Labor v-if="showModule == 1" class="labor_module" />
|
||||
<!-- 管理人员 -->
|
||||
<Admin v-if="showModule==2" />
|
||||
<Admin v-if="showModule == 2" />
|
||||
<!-- 临时人员 -->
|
||||
<Temporary v-if="showModule==3" />
|
||||
<Temporary v-if="showModule == 3" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import Labor from "./personModule/laborComponent";
|
||||
import Admin from "./personModule/administration";
|
||||
import Temporary from "./personModule/temporary";
|
||||
import Labor from './personModule/laborComponent'
|
||||
import Admin from './personModule/administration'
|
||||
import Temporary from './personModule/temporary'
|
||||
export default {
|
||||
name: "personManage",
|
||||
name: 'personManage',
|
||||
components: {
|
||||
Labor,
|
||||
Admin,
|
||||
@ -36,33 +51,30 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showModule: 1,
|
||||
};
|
||||
showModule: 1
|
||||
}
|
||||
},
|
||||
created(){
|
||||
created() {
|
||||
//详情返回对应的 列表模块
|
||||
if(localStorage.getItem('showPersonModule')){
|
||||
this.switchTab(Number(localStorage.getItem('showPersonModule')));
|
||||
if (localStorage.getItem('showPersonModule')) {
|
||||
this.switchTab(Number(localStorage.getItem('showPersonModule')))
|
||||
localStorage.removeItem('showPersonModule')
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
switchTab(type) {
|
||||
if (type == this.showModule) return;
|
||||
if(type == 1){
|
||||
window._paq.push(['trackEvent', '点击', '劳务人员','切换为劳务人员' ])
|
||||
}
|
||||
else if(type == 2){
|
||||
window._paq.push(['trackEvent', '点击', '管理人员','切换为管理人员' ])
|
||||
}
|
||||
else if(type == 3){
|
||||
window._paq.push(['trackEvent', '点击', '临时人员','切换为临时人员' ])
|
||||
}
|
||||
this.showModule = type;
|
||||
|
||||
},
|
||||
},
|
||||
};
|
||||
if (type == this.showModule) return
|
||||
if (type == 1) {
|
||||
window._paq.push(['trackEvent', '点击', '劳务人员', '切换为劳务人员'])
|
||||
} else if (type == 2) {
|
||||
window._paq.push(['trackEvent', '点击', '管理人员', '切换为管理人员'])
|
||||
} else if (type == 3) {
|
||||
window._paq.push(['trackEvent', '点击', '临时人员', '切换为临时人员'])
|
||||
}
|
||||
this.showModule = type
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.personManage {
|
||||
@ -83,10 +95,11 @@ export default {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
/deep/ .el-dialog__title, .pageTitle{
|
||||
/deep/ .el-dialog__title,
|
||||
.pageTitle {
|
||||
font-weight: 700 !important;
|
||||
}
|
||||
.el-menu-item{
|
||||
.el-menu-item {
|
||||
width: 33.333%;
|
||||
text-align: center;
|
||||
padding: 0 16px !important;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -4724,7 +4724,7 @@
|
||||
|
||||
"flv.js@^1.6.2":
|
||||
"integrity" "sha512-xre4gUbX1MPtgQRKj2pxJENp/RnaHaxYvy3YToVVCrSmAWUu85b9mug6pTXF6zakUjNP2lFWZ1rkSX7gxhB/2A=="
|
||||
"resolved" "https://registry.npmmirror.com/flv.js/-/flv.js-1.6.2.tgz"
|
||||
"resolved" "https://registry.npmjs.org/flv.js/-/flv.js-1.6.2.tgz"
|
||||
"version" "1.6.2"
|
||||
dependencies:
|
||||
"es6-promise" "^4.2.8"
|
||||
@ -5962,7 +5962,7 @@
|
||||
|
||||
"js-md5@^0.7.3":
|
||||
"integrity" "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
|
||||
"resolved" "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz"
|
||||
"resolved" "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz"
|
||||
"version" "0.7.3"
|
||||
|
||||
"js-message@1.0.5":
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user