员工管理修改

master
wanglei 7 months ago
parent 0786f6aae9
commit bf237a2ead

@ -42,3 +42,12 @@ export function delEmployeeInfo(id) {
method: 'delete' method: 'delete'
}) })
} }
//修改每日应出勤小时数
export function updateHour(data) {
return request({
url: '/secure/empinfo/edithour',
method: 'put',
params: data
})
}

@ -5,6 +5,8 @@ const user = {
state: { state: {
token: getToken(), token: getToken(),
name: '', name: '',
userId: '',
tenantId: '',
avatar: '', avatar: '',
roles: [], roles: [],
permissions: [] permissions: []
@ -17,6 +19,12 @@ const user = {
SET_NAME: (state, name) => { SET_NAME: (state, name) => {
state.name = name state.name = name
}, },
SET_USERID: (state, userId) => {
state.userId = userId
},
SET_TENANTID: (state, tenantId) => {
state.tenantId = tenantId
},
SET_AVATAR: (state, avatar) => { SET_AVATAR: (state, avatar) => {
state.avatar = avatar state.avatar = avatar
}, },
@ -59,6 +67,8 @@ const user = {
commit('SET_ROLES', ['ROLE_DEFAULT']) commit('SET_ROLES', ['ROLE_DEFAULT'])
} }
commit('SET_NAME', user.userName) commit('SET_NAME', user.userName)
commit('SET_USERID', user.userId)
commit('SET_TENANTID', user.tenantId)
commit('SET_AVATAR', avatar) commit('SET_AVATAR', avatar)
resolve(res) resolve(res)
}).catch(error => { }).catch(error => {

@ -1,25 +1,26 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="租户id" prop="tenantId"> <div class="company" v-if="!$store.state.user.tenantId">
<el-input
v-model="queryParams.tenantId"
placeholder="请输入租户id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="登录用户id" prop="userId">
<el-input <el-input
v-model="queryParams.userId" style="width: 200px"
placeholder="请输入登录用户id" placeholder="公司名称"
clearable size="small"
@keyup.enter.native="handleQuery" prefix-icon="el-icon-search"
/> v-model="gsInfo.tenantName"
</el-form-item> @keyup.enter.native="getGsInfoList">
<el-form-item label="员工所属部门" prop="deptId"> </el-input>
<div class="cp-content" style="width: 200px">
<div :class="gsInfo.active_id===item.id?'cp-item active':'cp-item'" @click="changCompany(item.id)" v-for="item in gsInfo.list">{{ item.name }}</div>
</div>
</div>
<div :class="$store.state.user.tenantId?'content-all':'content'">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
<el-form-item label="所属部门" prop="deptName">
<el-input <el-input
v-model="queryParams.deptId" v-model="queryParams.deptName"
placeholder="请输入员工所属部门" placeholder="请输入员工所属部门"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
@ -33,71 +34,27 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="年龄" prop="age"> <el-form-item label="性别" prop="sex">
<el-input <el-select v-model="queryParams.sex" placeholder="请选择性别" clearable>
v-model="queryParams.age" <el-option
placeholder="请输入年龄" v-for="dict in dict.type.sys_user_sex"
clearable :key="dict.value"
@keyup.enter.native="handleQuery" :label="dict.label"
/> :value="dict.value"
</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-select>
<el-form-item label="身份证号" prop="idcard"> </el-form-item>
<el-input <el-form-item label="休息类型" prop="restType">
v-model="queryParams.idcard" <el-select v-model="queryParams.restType" placeholder="请选择休息类型" clearable>
placeholder="请输入身份证号" <el-option
clearable v-for="dict in dict.type.pay_work_rest_type"
@keyup.enter.native="handleQuery" :key="dict.value"
:label="dict.label"
:value="dict.value"
/> />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="银行卡号" prop="bankCardNumber"> <el-form-item label="每日应出勤" prop="hoursPerDay">
<el-input
v-model="queryParams.bankCardNumber"
placeholder="请输入银行卡号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="开户行" prop="openingBank">
<el-input
v-model="queryParams.openingBank"
placeholder="请输入开户行"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="基本工资" prop="basicSalary">
<el-input
v-model="queryParams.basicSalary"
placeholder="请输入基本工资"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="日薪" prop="daySalary">
<el-input
v-model="queryParams.daySalary"
placeholder="请输入日薪"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="时薪" prop="hourSalary">
<el-input
v-model="queryParams.hourSalary"
placeholder="请输入时薪"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="每日应出勤小时数" prop="hoursPerDay">
<el-input <el-input
v-model="queryParams.hoursPerDay" v-model="queryParams.hoursPerDay"
placeholder="请输入每日应出勤小时数" placeholder="请输入每日应出勤小时数"
@ -105,77 +62,15 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="学历" prop="education"> <el-form-item label="状态" prop="deleted">
<el-input <el-select v-model="queryParams.deleted" placeholder="请选择">
v-model="queryParams.education" <el-option
placeholder="请输入学历" v-for="dict in dict.type.pay_del_status"
clearable :key="dict.value"
@keyup.enter.native="handleQuery" :label="dict.label"
/> :value="dict.value">
</el-form-item> </el-option>
<el-form-item label="家庭住址" prop="address"> </el-select>
<el-input
v-model="queryParams.address"
placeholder="请输入家庭住址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="紧急联系人" prop="contact">
<el-input
v-model="queryParams.contact"
placeholder="请输入紧急联系人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="紧急联系人电话" prop="contactPhone">
<el-input
v-model="queryParams.contactPhone"
placeholder="请输入紧急联系人电话"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="质检(1-是 0-否)" prop="zhijian">
<el-input
v-model="queryParams.zhijian"
placeholder="请输入质检(1-是 0-否)"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="业务员(1-是 0-否)" prop="yewu">
<el-input
v-model="queryParams.yewu"
placeholder="请输入业务员(1-是 0-否)"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="合同补助开始时间" prop="htstime">
<el-date-picker clearable
v-model="queryParams.htstime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择合同补助开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="合同补助结束时间" prop="htetime">
<el-date-picker clearable
v-model="queryParams.htetime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择合同补助结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="删除标志" prop="deleted">
<el-input
v-model="queryParams.deleted"
placeholder="请输入删除标志"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@ -191,7 +86,7 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['pay:employeeInfo:add']" v-hasPermi="['secure:empinfo:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@ -202,77 +97,96 @@
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['pay:employeeInfo:edit']" v-hasPermi="['secure:empinfo:edit']"
>修改</el-button> >修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="danger" type="warning"
plain plain
icon="el-icon-delete" icon="el-icon-download"
size="mini" size="mini"
:disabled="multiple" @click="handleExport"
@click="handleDelete" v-hasPermi="['secure:empinfo:export']"
v-hasPermi="['pay:employeeInfo:remove']" >导出</el-button>
>删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="warning" type="primary"
plain plain
icon="el-icon-download" icon="el-icon-edit"
size="mini" size="mini"
@click="handleExport" @click="handleEdit"
v-hasPermi="['pay:employeeInfo:export']" v-hasPermi="['secure:empinfo:edithour']"
>导出</el-button> >修改每日应出勤小时数</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
<el-table v-loading="loading" :data="employeeInfoList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="employeeInfoList" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" fixed min-width="50"/>
<el-table-column label="主键" align="center" prop="id" v-if="true"/> <el-table-column label="员工所属部门" align="center" prop="deptName" :show-overflow-tooltip="true" fixed min-width="120"/>
<el-table-column label="租户id" align="center" prop="tenantId" /> <el-table-column label="员工姓名" align="center" prop="name" :show-overflow-tooltip="true" fixed min-width="100"/>
<el-table-column label="登录用户id" align="center" prop="userId" /> <el-table-column label="状态" align="center" prop="deleted">
<el-table-column label="员工所属部门" align="center" prop="deptId" /> <template slot-scope="scope">
<el-table-column label="员工姓名" align="center" prop="name" /> <dict-tag :options="dict.type.pay_del_status" :value="scope.row.deleted"/>
<el-table-column label="性别" align="center" prop="sex" /> </template>
</el-table-column>
<el-table-column label="性别" align="center" prop="sex">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"/>
</template>
</el-table-column>
<el-table-column label="年龄" align="center" prop="age" /> <el-table-column label="年龄" align="center" prop="age" />
<el-table-column label="手机号" align="center" prop="phone" /> <el-table-column label="手机号" align="center" prop="phone" min-width="100"/>
<el-table-column label="身份证号" align="center" prop="idcard" /> <el-table-column label="身份证号" align="center" prop="idcard" min-width="100" />
<el-table-column label="银行卡号" align="center" prop="bankCardNumber" /> <el-table-column label="银行卡号" align="center" prop="bankCardNumber" min-width="100" />
<el-table-column label="开户行" align="center" prop="openingBank" /> <el-table-column label="开户行" align="center" prop="openingBank" min-width="100" />
<el-table-column label="基本工资" align="center" prop="basicSalary" /> <el-table-column label="基本工资" align="center" prop="basicSalary" />
<el-table-column label="日薪" align="center" prop="daySalary" /> <!-- <el-table-column label="日薪" align="center" prop="daySalary" />-->
<el-table-column label="时薪" align="center" prop="hourSalary" /> <!-- <el-table-column label="时薪" align="center" prop="hourSalary" />-->
<el-table-column label="休息类型(0 :周休 1:非周休 2天休 3小时 4包月 5周二天)" align="center" prop="restType" /> <el-table-column label="休息类型" align="center" prop="restType">
<el-table-column label="每日应出勤小时数" align="center" prop="hoursPerDay" /> <template slot-scope="scope">
<el-table-column label="( <dict-tag :options="dict.type.pay_work_rest_type" :value="scope.row.restType"/>
0:日薪(日工+包活) </template>
1:月薪(日工+包活) </el-table-column>
2:喷涂按小时数(16/1717/18) <el-table-column label="每日应出勤小时数" align="center" prop="hoursPerDay" min-width="130"/>
3.外贸按小时数(17/21) <el-table-column label="工资计算类型" align="center" prop="payCalcType" min-width="110">
4.包月工资) <template slot-scope="scope">
" align="center" prop="payCalcType" /> <dict-tag :options="dict.type.pay_salary_type" :value="scope.row.payCalcType"/>
<el-table-column label="学历" align="center" prop="education" /> </template>
</el-table-column>
<el-table-column label="学历" align="center" prop="education" >
<template slot-scope="scope">
<dict-tag :options="dict.type.pay_education" :value="scope.row.education"/>
</template>
</el-table-column>
<el-table-column label="家庭住址" align="center" prop="address" /> <el-table-column label="家庭住址" align="center" prop="address" />
<el-table-column label="紧急联系人" align="center" prop="contact" /> <el-table-column label="紧急联系人" align="center" prop="contact" min-width="100"/>
<el-table-column label="紧急联系人电话" align="center" prop="contactPhone" /> <el-table-column label="紧急联系人电话" align="center" prop="contactPhone" min-width="120"/>
<el-table-column label="质检(1-是 0-否)" align="center" prop="zhijian" /> <!-- <el-table-column label="是否质检" align="center" prop="zhijian">
<el-table-column label="业务员(1-是 0-否)" align="center" prop="yewu" /> <template slot-scope="scope">
<el-table-column label="合同补助开始时间" align="center" prop="htstime" width="180"> <dict-tag :options="dict.type.pay_yes_no" :value="scope.row.zhijian"/>
</template>
</el-table-column>
<el-table-column label="业务员" align="center" prop="yewu">
<template slot-scope="scope">
<dict-tag :options="dict.type.pay_yes_no" :value="scope.row.yewu"/>
</template>
</el-table-column>
<el-table-column label="合同补助开始时间" align="center" prop="htstime" min-width="130">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.htstime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.htstime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="合同补助结束时间" align="center" prop="htetime" width="180"> <el-table-column label="合同补助结束时间" align="center" prop="htetime" min-width="130">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.htetime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.htetime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>-->
<el-table-column label="删除标志" align="center" prop="deleted" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" min-width="120"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@ -281,13 +195,6 @@
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['pay:employeeInfo:edit']" v-hasPermi="['pay:employeeInfo:edit']"
>修改</el-button> >修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['pay:employeeInfo:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -300,104 +207,246 @@
@pagination="getList" @pagination="getList"
/> />
</div>
<!-- 添加或修改员工信息对话框 --> <!-- 添加或修改员工信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="850px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="135px">
<el-form-item label="租户id" prop="tenantId"> <el-row :gutter="10">
<el-input v-model="form.tenantId" placeholder="请输入租户id" /> <el-col :span="12">
</el-form-item> <el-form-item label="员工所属部门" prop="deptId" style="height: 35px;">
<el-form-item label="登录用户id" prop="userId"> <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择员工所属部门" @select="changeDept"/>
<el-input v-model="form.userId" placeholder="请输入登录用户id" />
</el-form-item>
<el-form-item label="员工所属部门" prop="deptId">
<el-input v-model="form.deptId" placeholder="请输入员工所属部门" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="员工姓名" prop="name"> <el-form-item label="员工姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入员工姓名" /> <el-input v-model="form.name" placeholder="请输入员工姓名" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态" prop="deleted">
<el-radio-group v-model="form.deleted">
<el-radio
v-for="dict in dict.type.pay_del_status"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别" prop="sex">
<el-select v-model="form.sex" placeholder="请选择性别" style="width: 100%;">
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年龄" prop="age"> <el-form-item label="年龄" prop="age">
<el-input v-model="form.age" placeholder="请输入年龄" /> <el-input v-model="form.age" placeholder="请输入年龄" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号" prop="phone"> <el-form-item label="手机号" prop="phone">
<el-input v-model="form.phone" placeholder="请输入手机号" /> <el-input v-model="form.phone" placeholder="请输入手机号" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证号" prop="idcard"> <el-form-item label="身份证号" prop="idcard">
<el-input v-model="form.idcard" placeholder="请输入身份证号" /> <el-input v-model="form.idcard" placeholder="请输入身份证号" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学历" prop="education">
<el-select v-model="form.education" placeholder="请选择学历" style="width: 100%;">
<el-option
v-for="dict in dict.type.pay_education"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="休息类型" prop="restType">
<el-select v-model="form.restType" placeholder="请选择休息类型" style="width: 100%;">
<el-option
v-for="dict in dict.type.pay_work_rest_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="每日应出勤" prop="hoursPerDay">
<el-input v-model="form.hoursPerDay" placeholder="请输入每日应出勤小时数" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否质检" prop="zhijian">
<el-radio-group v-model="form.zhijian">
<el-radio
v-for="dict in dict.type.pay_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="银行卡号" prop="bankCardNumber"> <el-form-item label="银行卡号" prop="bankCardNumber">
<el-input v-model="form.bankCardNumber" placeholder="请输入银行卡号" /> <el-input v-model="form.bankCardNumber" placeholder="请输入银行卡号" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开户行" prop="openingBank"> <el-form-item label="开户行" prop="openingBank">
<el-input v-model="form.openingBank" placeholder="请输入开户行" /> <el-input v-model="form.openingBank" placeholder="请输入开户行" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工资计算类型" prop="payCalcType">
<el-select v-model="form.payCalcType" placeholder="请选择工资计算类型" style="width: 100%;">
<el-option
v-for="dict in dict.type.pay_salary_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="基本工资" prop="basicSalary"> <el-form-item label="基本工资" prop="basicSalary">
<el-input v-model="form.basicSalary" placeholder="请输入基本工资" /> <el-input v-model="form.basicSalary" placeholder="请输入基本工资" />
</el-form-item> </el-form-item>
<el-form-item label="日薪" prop="daySalary"> </el-col>
<el-input v-model="form.daySalary" placeholder="请输入日薪" /> <el-col :span="12">
</el-form-item>
<el-form-item label="时薪" prop="hourSalary">
<el-input v-model="form.hourSalary" placeholder="请输入时薪" />
</el-form-item>
<el-form-item label="每日应出勤小时数" prop="hoursPerDay">
<el-input v-model="form.hoursPerDay" placeholder="请输入每日应出勤小时数" />
</el-form-item>
<el-form-item label="学历" prop="education">
<el-input v-model="form.education" placeholder="请输入学历" />
</el-form-item>
<el-form-item label="家庭住址" prop="address"> <el-form-item label="家庭住址" prop="address">
<el-input v-model="form.address" placeholder="请输入家庭住址" /> <el-input v-model="form.address" placeholder="请输入家庭住址" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="紧急联系人" prop="contact"> <el-form-item label="紧急联系人" prop="contact">
<el-input v-model="form.contact" placeholder="请输入紧急联系人" /> <el-input v-model="form.contact" placeholder="请输入紧急联系人" />
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="紧急联系人电话" prop="contactPhone"> <el-form-item label="紧急联系人电话" prop="contactPhone">
<el-input v-model="form.contactPhone" placeholder="请输入紧急联系人电话" /> <el-input v-model="form.contactPhone" placeholder="请输入紧急联系人电话" />
</el-form-item> </el-form-item>
<el-form-item label="质检(1-是 0-否)" prop="zhijian"> </el-col>
<el-input v-model="form.zhijian" placeholder="请输入质检(1-是 0-否)" />
<!-- <el-col :span="12">
<el-form-item label="日薪" prop="daySalary">
<el-input v-model="form.daySalary" placeholder="请输入日薪" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="时薪" prop="hourSalary">
<el-input v-model="form.hourSalary" placeholder="请输入时薪" />
</el-form-item> </el-form-item>
<el-form-item label="业务员(1-是 0-否)" prop="yewu"> </el-col>
<el-input v-model="form.yewu" placeholder="请输入业务员(1-是 0-否)" /> <el-col :span="12">
<el-form-item label="业务员" prop="yewu">
<el-radio-group v-model="form.yewu">
<el-radio
v-for="dict in dict.type.pay_yes_no"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合同补助开始时间" prop="htstime"> <el-form-item label="合同补助开始时间" prop="htstime">
<el-date-picker clearable <el-date-picker clearable style="width: 100%;"
v-model="form.htstime" v-model="form.htstime"
type="datetime" type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择合同补助开始时间"> placeholder="请选择合同补助开始时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="合同补助结束时间" prop="htetime"> <el-form-item label="合同补助结束时间" prop="htetime">
<el-date-picker clearable <el-date-picker clearable style="width: 100%;"
v-model="form.htetime" v-model="form.htetime"
type="datetime" type="datetime"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择合同补助结束时间"> placeholder="请选择合同补助结束时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="删除标志" prop="deleted"> <el-form-item label="删除标志" prop="deleted">
<el-input v-model="form.deleted" placeholder="请输入删除标志" /> <el-radio-group v-model="form.deleted">
</el-form-item> <el-radio
v-for="dict in dict.type.pay_del_status"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>-->
<el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button> <el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 添加或修改每日应出勤小时数对话框 -->
<el-dialog :title="title" :visible.sync="openHour" width="500px" append-to-body :close-on-click-modal="false">
<el-form ref="formHour" :model="formHour" :rules="hourrules" label-width="162px">
<el-form-item label="每日应出勤小时数" prop="oldHour">
<el-input v-model="formHour.oldHour" placeholder="请输入每日应出勤小时数" />
</el-form-item>
<el-form-item label="修改每日应出勤小时数" prop="newHour">
<el-input v-model="formHour.newHour" placeholder="请输入每日应出勤小时数" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFormHour"> </el-button>
<el-button @click="cancelHour"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listEmployeeInfo, getEmployeeInfo, delEmployeeInfo, addEmployeeInfo, updateEmployeeInfo } from "@/api/pay/employeeInfo"; import { listEmployeeInfo, getEmployeeInfo, delEmployeeInfo, addEmployeeInfo, updateEmployeeInfo, updateHour } from "@/api/pay/employeeInfo";
import { deptTreeSelect } from "@/api/system/user";
import { listTenant } from "@/api/pay/tenant";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "EmployeeInfo", name: "EmployeeInfo",
components: { Treeselect },
dicts: ['sys_user_sex', 'pay_salary_type', 'pay_work_rest_type', 'pay_del_status', 'pay_yes_no', 'pay_education'],
data() { data() {
return { return {
//
gsInfo:{
tenantName:'',
active_id:this.$store.state.user.tenantId,
list:[]
},
// loading // loading
buttonLoading: false, buttonLoading: false,
// //
@ -414,6 +463,8 @@ export default {
total: 0, total: 0,
// //
employeeInfoList: [], employeeInfoList: [],
//
deptOptions: undefined,
// //
title: "", title: "",
// //
@ -452,94 +503,81 @@ export default {
form: {}, form: {},
// //
rules: { rules: {
id: [
{ required: true, message: "主键不能为空", trigger: "blur" }
],
tenantId: [
{ required: true, message: "租户id不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "登录用户id不能为空", trigger: "blur" }
],
deptId: [ deptId: [
{ required: true, message: "员工所属部门不能为空", trigger: "blur" } { required: true, message: "员工所属部门不能为空", trigger: "blur" }
], ],
name: [ name: [
{ required: true, message: "员工姓名不能为空", trigger: "blur" } { required: true, message: "员工姓名不能为空", trigger: "blur" }
], ],
sex: [
{ required: true, message: "性别不能为空", trigger: "change" }
],
age: [
{ required: true, message: "年龄不能为空", trigger: "blur" }
],
phone: [ phone: [
{ required: true, message: "手机号不能为空", trigger: "blur" } { required: true, message: "手机号不能为空", trigger: "blur" },
], {
idcard: [ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
{ required: true, message: "身份证号不能为空", trigger: "blur" } message: "请输入正确的手机号码",
], trigger: "blur"
bankCardNumber: [ }
{ required: true, message: "银行卡号不能为空", trigger: "blur" }
],
openingBank: [
{ required: true, message: "开户行不能为空", trigger: "blur" }
], ],
basicSalary: [ basicSalary: [
{ required: true, message: "基本工资不能为空", trigger: "blur" } { required: true, message: "基本工资不能为空", trigger: "blur" }
], ],
daySalary: [
{ required: true, message: "日薪不能为空", trigger: "blur" }
],
hourSalary: [
{ required: true, message: "时薪不能为空", trigger: "blur" }
],
restType: [
{ required: true, message: "休息类型(0 :周休 1:非周休 2天休 3小时 4包月 5周二天)不能为空", trigger: "change" }
],
hoursPerDay: [ hoursPerDay: [
{ required: true, message: "每日应出勤小时数不能为空", trigger: "blur" } { required: true, message: "每日应出勤小时数不能为空", trigger: "blur" }
], ],
payCalcType: [ payCalcType: [
{ required: true, message: "工资计算类型", trigger: "change" } { required: true, message: "工资计算类型", trigger: "change" }
], ],
education: [ },
{ required: true, message: "学历不能为空", trigger: "blur" } openHour: false,
], formHour: {},
address: [ hourrules: {
{ required: true, message: "家庭住址不能为空", trigger: "blur" } oldHour: [
], { required: true, message: "每日应出勤小时数不能为空", trigger: 'blur'}
contact: [
{ required: true, message: "紧急联系人不能为空", trigger: "blur" }
],
contactPhone: [
{ required: true, message: "紧急联系人电话不能为空", trigger: "blur" }
],
zhijian: [
{ required: true, message: "质检(1-是 0-否)不能为空", trigger: "blur" }
],
yewu: [
{ required: true, message: "业务员(1-是 0-否)不能为空", trigger: "blur" }
],
htstime: [
{ required: true, message: "合同补助开始时间不能为空", trigger: "blur" }
],
htetime: [
{ required: true, message: "合同补助结束时间不能为空", trigger: "blur" }
],
deleted: [
{ required: true, message: "删除标志不能为空", trigger: "blur" }
], ],
remark: [ newHour: [
{ required: true, message: "备注不能为空", trigger: "blur" } { required: true, message: "修改每日应出勤小时数不能为空", trigger: "blur" }
] ]
} },
hours: [
{name: '8'},
{name: '8.5'},
{name: '9'}
],
}; };
}, },
created() { created() {
console.log(this.$store.state.user, this.$store.state.user.tenantId);
if (!this.$store.state.user.tenantId) {
this.getGsInfoList()
}else {
this.gsInfo.active_id = this.$store.state.user.tenantId
this.getList(); this.getList();
this.getDeptTree();
}
this.roles = sessionStorage.getItem("roles");
}, },
methods: { methods: {
//
getGsInfoList(){
listTenant({ name: this.gsInfo.tenantName }).then(response => {
if(response.rows.length>0){
this.gsInfo.list = response.rows;
this.gsInfo.active_id = this.gsInfo.list[0].id
this.getList()
this.getDeptTree();
}else{
this.$alert(`没有查到相关公司,暂无数据!`, `提示`, {
type: 'warning'
});
}
});
},
//
changCompany(id){
this.gsInfo.active_id = id
this.getList()
this.getDeptTree();
},
/** 查询员工信息列表 */ /** 查询员工信息列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -554,6 +592,13 @@ export default {
this.open = false; this.open = false;
this.reset(); this.reset();
}, },
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect({tenantId: this.gsInfo.active_id}).then(response => {
// deptTreeSelect().then(response => {
this.deptOptions = response.data;
});
},
// //
reset() { reset() {
this.form = { this.form = {
@ -561,6 +606,7 @@ export default {
tenantId: undefined, tenantId: undefined,
userId: undefined, userId: undefined,
deptId: undefined, deptId: undefined,
deptName: undefined,
name: undefined, name: undefined,
sex: undefined, sex: undefined,
age: undefined, age: undefined,
@ -578,11 +624,11 @@ export default {
address: undefined, address: undefined,
contact: undefined, contact: undefined,
contactPhone: undefined, contactPhone: undefined,
zhijian: undefined, zhijian: '0',
yewu: undefined, yewu: undefined,
htstime: undefined, htstime: undefined,
htetime: undefined, htetime: undefined,
deleted: undefined, deleted: '0',
createBy: undefined, createBy: undefined,
createTime: undefined, createTime: undefined,
updateBy: undefined, updateBy: undefined,
@ -621,6 +667,8 @@ export default {
getEmployeeInfo(id).then(response => { getEmployeeInfo(id).then(response => {
this.loading = false; this.loading = false;
this.form = response.data; this.form = response.data;
this.form.zhijian= this.form.zhijian.toString();
this.form.deleted= this.form.deleted.toString();
this.open = true; this.open = true;
this.title = "修改员工信息"; this.title = "修改员工信息";
}); });
@ -629,6 +677,7 @@ export default {
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
this.form.tenantId = this.gsInfo.active_id;
this.buttonLoading = true; this.buttonLoading = true;
if (this.form.id != null) { if (this.form.id != null) {
updateEmployeeInfo(this.form).then(response => { updateEmployeeInfo(this.form).then(response => {
@ -670,7 +719,82 @@ export default {
this.download('pay/employeeInfo/export', { this.download('pay/employeeInfo/export', {
...this.queryParams ...this.queryParams
}, `employeeInfo_${new Date().getTime()}.xlsx`) }, `employeeInfo_${new Date().getTime()}.xlsx`)
},
/** 修改每日应出勤小时数 */
handleEdit() {
this.reset();
this.openHour = true;
this.title = "修改每日应出勤小时数";
},
submitFormHour() {
this.$refs["formHour"].validate(valid => {
if (valid) {
updateHour(this.formHour).then(response => {
if (response.code === 200) {
this.$modal.msgSuccess("修改成功");
}
this.openHour = false;
this.getList();
})
}
})
},
cancelHour() {
this.openHour = false;
this.resetHour();
},
resetHour() {
this.formHour = {
oldHour: null,
newHour: null
}
this.resetForm("formHour");
},
//
changeDept(val){
this.form.deptId=val.id
this.form.deptName=val.label
} }
} }
}; };
</script> </script>
<style scoped lang="scss">
.app-container {
display: flex;
.company {
border-radius: 5px;
width: 230px;
height: calc(100vh - 115px);
overflow-y: auto;
.cp-content {
margin-top: 20px;
.cp-item {
cursor: pointer;
padding: 6px 10px 6px 5px;
color: #424242;
font-size: 14px;
&:hover {
background: #f6f6f6;
}
}
.active{
background: #edf6ff;
}
}
}
.content{
padding-left: 15px;
width: calc(100% - 250px);
.el-button--medium {
padding: 2px 0px;
}
}
.content-all{
width: 100%;
.el-button--medium {
padding: 2px 0px;
}
}
}
</style>

Loading…
Cancel
Save