入职流程完成

This commit is contained in:
2025-03-07 18:09:16 +08:00
parent f78b3dda14
commit 4a1009e02e
25 changed files with 296 additions and 515 deletions

View File

@@ -194,7 +194,7 @@
</template>
<script>
import {addUser, deptTreeSelect, listUser} from "@/api/system/user";
import {addUser, deptTreeSelect, listUser, tempRole} from "@/api/system/user";
import {addOnboarding} from "@/api/oa/onboarding";
export default {
@@ -227,34 +227,28 @@ export default {
});
},
/** 新增入职 */
//TODO status:0 现在新增后账号立马开通不走流程
saveFormToOnboarding(){
this.loading=true;
let userForm = {
userName: this.form.userName,
nickName: this.form.nickName,
phonenumber: this.form.phonenumber,
email: this.form.email,
address: this.form.address,
password: "123456",
sex:this.form.sex,
userType:"sys_user",
deptId:this.form.deptId,
avatar:this.form.idPhoto,
status:0,
idCard:this.form.idCard,
bankCard:this.form.bankCard,
}
// 添加入职后添加用户账号
addUser(userForm).then(response => {
userForm.password = null;
listUser(userForm).then(response => {
this.form.userId = response.rows[0].userId;
addOnboarding(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.loading = false;
this.goBack()
let userId = response.rows[0].userId;
this.form.userId = userId
tempRole(userId).then(response => {
addOnboarding(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.loading = false;
this.goBack()
})
})
})
})
},

View File

@@ -38,21 +38,11 @@
plain
icon="el-icon-plus"
size="mini"
@click="toAddOnboarding"
@click="handleAdd"
v-hasPermi="['system:onboarding:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:onboarding:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
@@ -83,61 +73,12 @@
<el-table-column label="姓名" align="center" prop="nickName"/>
<el-table-column label="入职日期" align="center" prop="joiningDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.joiningDate, '{y}-{m}-{d}') }}</span>
<span>{{scope.row.joiningDate!==null?scope.row.joiningDate:'未完成审批流程'}}</span>
</template>
</el-table-column>
<el-table-column label="试用结束" align="center" prop="confirmDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.probationPeriodEnd, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="入职资料" align="center" prop="documentsSubmitted">
<template slot-scope="scope">
<el-tag :type="scope.row.documentsSubmitted===1?'success':'warning'">{{ scope.row.documentsSubmitted===1?'完成':'未完成' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="入职培训" align="center" prop="orientationCompleted" >
<template slot-scope="scope">
<el-tag :type="scope.row.orientationCompleted===1?'success':'warning'">{{ scope.row.orientationCompleted===1?'完成':'未完成' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="入职状态" align="center" prop="joiningStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.joining_status" :value="scope.row.joiningStatus"/>
</template>
</el-table-column>
<el-table-column label="完成面试" align="center" prop="recruitmentCompleted" >
<template slot-scope="scope">
<el-tag :type="scope.row.recruitmentCompleted===1?'success':'warning'">{{ scope.row.recruitmentCompleted===1?'完成':'未完成' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="Offer发放" align="center" prop="offerIssued" >
<template slot-scope="scope">
<el-tag :type="scope.row.offerIssued===1?'success':'warning'">{{ scope.row.offerIssued===1?'完成':'未完成' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="签署合同" align="center" prop="contractSigned" >
<template slot-scope="scope">
<el-tag :type="scope.row.contractSigned===1?'success':'warning'">{{ scope.row.contractSigned===1?'完成':'未完成' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="条件准备" align="center" prop="workConditionsPrepared" >
<template slot-scope="scope">
<el-tag :type="scope.row.workConditionsPrepared===1?'success':'warning'">{{ scope.row.workConditionsPrepared===1?'完成':'未完成' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="学历" align="center" prop="highestDegree" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:onboarding:edit']"
>完善信息</el-button>
<el-button
size="mini"
type="text"
@@ -159,54 +100,20 @@
<!-- 添加或修改入职管理对话框 -->
<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 (外键)" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户ID (外键)" />
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="输入新员工姓名" prop="nickName">
<el-input v-model="form.nickName" placeholder="请输入新员工姓名" />
</el-form-item>
<el-form-item label="入职日期" prop="joiningDate">
<el-date-picker clearable
v-model="form.joiningDate"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择入职日期">
</el-date-picker>
</el-form-item>
<el-form-item label="试用期结束日期" prop="probationPeriodEnd">
<el-date-picker clearable
v-model="form.probationPeriodEnd"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择试用期结束日期">
</el-date-picker>
</el-form-item>
<el-form-item label="直属经理ID" prop="managerId">
<el-input v-model="form.managerId" placeholder="请输入直属经理ID" />
</el-form-item>
<el-form-item label="是否提交入职资料" prop="documentsSubmitted">
<el-input v-model="form.documentsSubmitted" placeholder="请输入是否提交入职资料" />
</el-form-item>
<el-form-item label="是否完成入职培训" prop="orientationCompleted">
<el-input v-model="form.orientationCompleted" placeholder="请输入是否完成入职培训" />
</el-form-item>
<el-form-item label="入职状态(pending,completed,onboarding)" prop="joiningStatus">
<el-select v-model="form.joiningStatus" placeholder="请选择入职状态(pending,completed,onboarding)">
<el-option
v-for="dict in dict.type.joining_status"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="最高学历" prop="highestDegree">
<el-input v-model="form.highestDegree" placeholder="请输入最高学历" />
<el-form-item label="输入新员工账号" prop="userName">
<el-input v-model="form.userName" placeholder="请输入新员工账号,建议使用员工拼音" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
<el-input v-model="form.remark" placeholder="请输入备注内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="saveFormToOnboarding"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
@@ -215,6 +122,7 @@
<script>
import { listOnboarding, getOnboarding, delOnboarding, addOnboarding, updateOnboarding } from "@/api/oa/onboarding";
import {addUser, listUser, tempRole} from "@/api/system/user";
export default {
name: "Onboarding",
@@ -245,75 +153,18 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
idPhoto: undefined,
userId: undefined,
joiningDate: undefined,
probationPeriodEnd: undefined,
managerId: undefined,
documentsSubmitted: undefined,
orientationCompleted: undefined,
joiningStatus: undefined,
recruitmentCompleted: undefined,
offerIssued: undefined,
contractSigned: undefined,
materialsPrepared: undefined,
trainingCompleted: undefined,
workConditionsPrepared: undefined,
highestDegree: undefined,
},
// 表单参数
form: {},
// 表单校验
rules: {
onboardingId: [
{ required: true, message: "入职记录ID不能为空", trigger: "blur" }
userName: [
{ required: true, message: "系统账号不能为空", trigger: "blur" }
],
idPhoto: [
{ required: true, message: "证件照不能为空", trigger: "blur" }
nickName: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
userId: [
{ required: true, message: "用户ID (外键)不能为空", trigger: "blur" }
],
joiningDate: [
{ required: true, message: "入职日期不能为空", trigger: "blur" }
],
probationPeriodEnd: [
{ required: true, message: "试用期结束日期不能为空", trigger: "blur" }
],
managerId: [
{ required: true, message: "直属经理ID不能为空", trigger: "blur" }
],
documentsSubmitted: [
{ required: true, message: "是否提交入职资料不能为空", trigger: "blur" }
],
orientationCompleted: [
{ required: true, message: "是否完成入职培训不能为空", trigger: "blur" }
],
joiningStatus: [
{ required: true, message: "入职状态(pending,completed,onboarding)不能为空", trigger: "change" }
],
recruitmentCompleted: [
{ required: true, message: "是否完成招聘与面试不能为空", trigger: "change" }
],
offerIssued: [
{ required: true, message: "是否已发放Offer不能为空", trigger: "change" }
],
contractSigned: [
{ required: true, message: "是否已签署合同不能为空", trigger: "change" }
],
materialsPrepared: [
{ required: true, message: "入职材料/工作准备是否完成不能为空", trigger: "change" }
],
trainingCompleted: [
{ required: true, message: "是否完成入职培训不能为空", trigger: "change" }
],
workConditionsPrepared: [
{ required: true, message: "是否完成工作条件准备不能为空", trigger: "change" }
],
highestDegree: [
{ required: true, message: "最高学历不能为空", trigger: "blur" }
],
}
};
},
@@ -324,7 +175,6 @@ export default {
/** 新增入职员工界面 */
toAddOnboarding(){
this.$router.push({
path: '/people/addOnboarding',
})
@@ -334,7 +184,6 @@ export default {
this.loading = true;
listOnboarding(this.queryParams).then(response => {
this.onboardingList = response.rows;
this.total = response.total;
this.loading = false;
});
@@ -350,19 +199,6 @@ export default {
onboardingId: undefined,
idPhoto: undefined,
userId: undefined,
joiningDate: undefined,
probationPeriodEnd: undefined,
managerId: undefined,
documentsSubmitted: undefined,
orientationCompleted: undefined,
joiningStatus: undefined,
recruitmentCompleted: undefined,
offerIssued: undefined,
contractSigned: undefined,
materialsPrepared: undefined,
trainingCompleted: undefined,
workConditionsPrepared: undefined,
highestDegree: undefined,
createBy: undefined,
createTime: undefined,
updateBy: undefined,
@@ -392,36 +228,34 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加入职管理";
this.title = "添加入职账户";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.$router.push('/people/updateOnboarding/'+row.onboardingId);
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.buttonLoading = true;
if (this.form.onboardingId != null) {
updateOnboarding(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
} else {
/** 新增入职 */
saveFormToOnboarding(){
let userForm = {
userName: this.form.userName,
password: "123456",
userType:"sys_user",
status:0,
nickName:this.form.nickName,
}
// 添加入职后添加用户账号
addUser(userForm).then(response => {
userForm.password = null;
listUser(userForm).then(response => {
let userId = response.rows[0].userId;
this.form.userId = userId
tempRole(userId).then(response => {
addOnboarding(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.reset()
this.getList();
}).finally(() => {
this.buttonLoading = false;
});
}
}
});
})
})
})
})
},
/** 删除按钮操作 */
handleDelete(row) {