feat:修改人员交接单
This commit is contained in:
parent
db2c5dc149
commit
58cc8076b3
|
|
@ -231,4 +231,39 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
empjoin: {
|
||||||
|
list: {
|
||||||
|
name: "人员交接",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.get(
|
||||||
|
`${config.API_URL}/hrm/empjoin/`,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
item: {
|
||||||
|
name: "人员交接申请",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.get(
|
||||||
|
`${config.API_URL}/hrm/empjoin/${id}/`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
name: "人员交接新增",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.post(
|
||||||
|
`${config.API_URL}/hrm/empjoin/`,
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
delete: {
|
||||||
|
name: "人员交接删除",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.delete(
|
||||||
|
`${config.API_URL}/hrm/empjoin/${id}/`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;}"
|
@row-click="(row)=>{t_id=row.id;mode='show';drawerVisible=true;}"
|
||||||
>
|
>
|
||||||
<el-table-column label="部门" prop="dept_need_name" width="80" show-overflow-tooltip></el-table-column>
|
<el-table-column label="部门" prop="dept_need_name" width="80" show-overflow-tooltip></el-table-column>
|
||||||
|
<el-table-column label="入职日期" prop="join_date" width="80" show-overflow-tooltip></el-table-column>
|
||||||
<el-table-column label="审批状态" width="200" show-overflow-tooltip>
|
<el-table-column label="审批状态" width="200" show-overflow-tooltip>
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tag :type="actStateEnum[scope.row.ticket_?.act_state]?.type">
|
<el-tag :type="actStateEnum[scope.row.ticket_?.act_state]?.type">
|
||||||
|
|
|
||||||
|
|
@ -2,77 +2,86 @@
|
||||||
<el-container>
|
<el-container>
|
||||||
<el-main class="nopadding">
|
<el-main class="nopadding">
|
||||||
<el-form label-width="80px" :model="formData" style="padding: 20px;" :disabled="localMode === 'show'">
|
<el-form label-width="80px" :model="formData" style="padding: 20px;" :disabled="localMode === 'show'">
|
||||||
<el-form-item label="需求部门">
|
<el-form-item label="需求部门" required>
|
||||||
<el-cascader
|
<el-cascader
|
||||||
v-model="formData.dept_need"
|
v-model="formData.dept_need"
|
||||||
:options="group"
|
:options="group"
|
||||||
:props="groupsProps"
|
:props="groupsProps"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
clearable
|
clearable
|
||||||
style="width: 100%"
|
style="width: 220px"
|
||||||
></el-cascader>
|
></el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="员工信息" required>
|
<el-form-item label="日期" required>
|
||||||
{{ formData.employee_name }}({{ formData.belong_dept_name }} - {{ formData.post_name }})
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="需求岗位" required>
|
|
||||||
<el-input v-model="formData.post_need"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="需求人数" required>
|
|
||||||
<el-input-number v-model="formData.count_need" :min="1" :precision="0"></el-input-number>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="工资报酬" required>
|
|
||||||
<el-input-number v-model="formData.salary" :min="2000" :precision="0"></el-input-number>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="性别要求" required>
|
|
||||||
<el-radio-group v-model="formData.gender">
|
|
||||||
<el-radio :label="1">男</el-radio>
|
|
||||||
<el-radio :label="2">女</el-radio>
|
|
||||||
<el-radio :label="0">不限</el-radio>
|
|
||||||
</el-radio-group>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="学历要求" required>
|
|
||||||
<el-select
|
|
||||||
v-model="formData.education"
|
|
||||||
placeholder="请选择学历"
|
|
||||||
clearable
|
|
||||||
style="width: 200px"
|
|
||||||
>
|
|
||||||
<el-option label="不限" :value="0" />
|
|
||||||
<el-option label="高中/中专" :value="1" />
|
|
||||||
<el-option label="大专" :value="2" />
|
|
||||||
<el-option label="本科" :value="3" />
|
|
||||||
<el-option label="硕士及以上" :value="4" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="到岗日期" required>
|
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.arrival_date"
|
v-model="formData.join_date"
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="预计到岗日期"
|
placeholder="日期"
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
:readonly="localMode === 'show'"
|
:readonly="localMode === 'show'"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="申请理由" required>
|
|
||||||
<el-select
|
|
||||||
v-model="formData.reason"
|
|
||||||
placeholder="请选择申请理由"
|
|
||||||
clearable
|
|
||||||
style="width: 300px"
|
|
||||||
>
|
|
||||||
<el-option label="新增人员" :value="0" />
|
|
||||||
<el-option label="该岗原人员离职或辞职或辞退需补充" :value="1" />
|
|
||||||
<el-option label="其他原因" :value="2" />
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="职责描述" required>
|
|
||||||
<el-input v-model="formData.duty"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="相关专业及技能要求" required>
|
|
||||||
<el-input v-model="formData.professional_requirement" type="textarea" :rows="3"></el-input>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
|
<sc-form-table
|
||||||
|
v-model="formData.person"
|
||||||
|
:addTemplate="addTemplate"
|
||||||
|
:hideAdd="hideAdd"
|
||||||
|
:hideDelete="hideDelete"
|
||||||
|
placeholder="暂无数据"
|
||||||
|
>
|
||||||
|
<el-table-column prop="name" label="姓名" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.name"
|
||||||
|
placeholder="请输入姓名"
|
||||||
|
></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="gender" label="性别" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-select v-model="scope.row.gender" placeholder="请选择">
|
||||||
|
<el-option label="男" :value="1"></el-option>
|
||||||
|
<el-option label="女" :value="2"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="IDcard" label="身份证号" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.IDcard"
|
||||||
|
placeholder="请输入身份证号"
|
||||||
|
></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="phone" label="手机号" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.phone"
|
||||||
|
placeholder="请输手机号"
|
||||||
|
></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="note" label="备注" min-width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input
|
||||||
|
v-model="scope.row.note"
|
||||||
|
placeholder="请输入备注"
|
||||||
|
></el-input>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="post" label="岗位" min-width="150" v-if="['交接部门负责人','结束'].includes(formData.ticket_?.state_?.name)">
|
||||||
|
<template #default="scope">
|
||||||
|
<xtSelect
|
||||||
|
:apiObj="apiObjPost"
|
||||||
|
v-model="scope.row.post"
|
||||||
|
v-model:label="scope.row.post_name"
|
||||||
|
style="width: 150px"
|
||||||
|
>
|
||||||
|
<el-table-column label="名称" prop="name"></el-table-column>
|
||||||
|
</xtSelect>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</sc-form-table>
|
||||||
<el-footer>
|
<el-footer>
|
||||||
<el-button type="danger"
|
<el-button type="danger"
|
||||||
v-if="localMode=='edit'"
|
v-if="localMode=='edit'"
|
||||||
|
|
@ -81,14 +90,15 @@
|
||||||
:loading="saveLoading"
|
:loading="saveLoading"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
<ticketd_b
|
<ticketd_b
|
||||||
v-if = "formData.ticket_"
|
v-if = "formData.ticket_ && localMode=='show'"
|
||||||
:t_id="formData.id"
|
:t_id="formData.id"
|
||||||
:ticket_="formData.ticket_"
|
:ticket_="formData.ticket_"
|
||||||
|
:ticket_data="ticket_data"
|
||||||
@success="$emit('success', localMode)"
|
@success="$emit('success', localMode)"
|
||||||
ref="ticketd_b"
|
ref="ticketd_b"
|
||||||
></ticketd_b>
|
></ticketd_b>
|
||||||
<el-button
|
<el-button
|
||||||
v-else
|
v-if="localMode!='show'"
|
||||||
type="primary"
|
type="primary"
|
||||||
style="margin-right: 4px;"
|
style="margin-right: 4px;"
|
||||||
@click="handleSave"
|
@click="handleSave"
|
||||||
|
|
@ -104,10 +114,11 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ticketd_b from "@/views/wf/ticketd_b.vue";
|
import ticketd_b from "@/views/wf/ticketd_b.vue";
|
||||||
import ticketd from '@/views/wf/ticketd.vue'
|
import ticketd from '@/views/wf/ticketd.vue';
|
||||||
|
import { genTree } from "@/utils/verificate";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'EnpNeedForm',
|
name: 'EnpJoinForm',
|
||||||
components: {
|
components: {
|
||||||
ticketd_b,
|
ticketd_b,
|
||||||
ticketd
|
ticketd
|
||||||
|
|
@ -125,10 +136,23 @@ export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
formData: {
|
formData: {
|
||||||
|
person: [],
|
||||||
},
|
},
|
||||||
|
ticket_data: {},
|
||||||
localMode: this.mode,
|
localMode: this.mode,
|
||||||
saveLoading: false,
|
saveLoading: false,
|
||||||
group:[],
|
group:[],
|
||||||
|
post:[],
|
||||||
|
apiObjPost: this.$API.system.post.list,
|
||||||
|
hideAdd:false,
|
||||||
|
hideDelete:false,
|
||||||
|
addTemplate: {
|
||||||
|
name: "",
|
||||||
|
gender: "",
|
||||||
|
age: "",
|
||||||
|
phone: "",
|
||||||
|
note: "",
|
||||||
|
},
|
||||||
groupsProps: {
|
groupsProps: {
|
||||||
multiple: false,
|
multiple: false,
|
||||||
emitPath: false,
|
emitPath: false,
|
||||||
|
|
@ -136,44 +160,50 @@ export default {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
formData: {
|
||||||
|
handler(val){
|
||||||
|
Object.assign(this.ticket_data,{
|
||||||
|
person: val.person,
|
||||||
|
})
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getGroup();
|
this.getGroup();
|
||||||
if (this.t_id) {
|
if (this.t_id) {
|
||||||
this.getTid();
|
this.getTid();
|
||||||
} else {
|
} else {
|
||||||
this.initFormData();
|
this.localMode = "add";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async initFormData() {
|
|
||||||
try {
|
|
||||||
let res = await this.$API.hrm.employee.read.req();
|
|
||||||
this.formData.employee_name = res.name;
|
|
||||||
this.formData.belong_dept_name = res.belong_dept_name;
|
|
||||||
this.formData.post_name = res.post_name;
|
|
||||||
this.formData.employee = res.id;
|
|
||||||
this.localMode = "add";
|
|
||||||
} catch (error) {
|
|
||||||
console.error('初始化表单数据失败:', error);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async getTid() {
|
async getTid() {
|
||||||
try {
|
try {
|
||||||
let res = await this.$API.hrm.empneed.item.req(this.t_id);
|
let res = await this.$API.hrm.empjoin.item.req(this.t_id);
|
||||||
this.formData = res;
|
this.formData = res;
|
||||||
if (res.ticket_ && res.ticket_.state_.type == 1 && res.create_by == this.$TOOL.data.get("USER_INFO").id) {
|
if (res.ticket_ && res.ticket_.state_.type == 1 && res.create_by == this.$TOOL.data.get("USER_INFO").id) {
|
||||||
this.localMode = "edit";
|
this.localMode = "edit";
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('获取离职数据失败:', error);
|
console.error('获取数据失败:', error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async getGroup() {
|
||||||
|
let res = await this.$API.system.dept.list.req({ page: 0 });
|
||||||
|
this.group = genTree(res);
|
||||||
|
},
|
||||||
|
async getPost() {
|
||||||
|
let res = await this.$API.hrm.post.list.req({ page: 0 });
|
||||||
|
this.post = res;
|
||||||
|
},
|
||||||
handleDel() {
|
handleDel() {
|
||||||
this.$confirm(`确定删除吗?`, "提示", {
|
this.$confirm(`确定删除吗?`, "提示", {
|
||||||
type: "warning",
|
type: "warning",
|
||||||
})
|
})
|
||||||
.then(()=>{
|
.then(()=>{
|
||||||
this.$API.hrm.empneed.delete.req(this.formData.id).then(res=>{
|
this.$API.hrm.empjoin.delete.req(this.formData.id).then(res=>{
|
||||||
this.$message.success("删除成功");
|
this.$message.success("删除成功");
|
||||||
this.$emit('success');
|
this.$emit('success');
|
||||||
})
|
})
|
||||||
|
|
@ -182,7 +212,8 @@ export default {
|
||||||
async handleSave() {
|
async handleSave() {
|
||||||
if (this.localMode == "add") {
|
if (this.localMode == "add") {
|
||||||
try {
|
try {
|
||||||
let res = await this.$API.hrm.empneed.create.req(this.formData);
|
console.log('formData', this.formData);
|
||||||
|
let res = await this.$API.hrm.empjoin.create.req(this.formData);
|
||||||
this.$message.success("提交成功");
|
this.$message.success("提交成功");
|
||||||
this.$emit('success', this.localMode);
|
this.$emit('success', this.localMode);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -192,7 +223,12 @@ export default {
|
||||||
} else if (this.localMode == "edit") {
|
} else if (this.localMode == "edit") {
|
||||||
this.$message.error("不支持编辑");
|
this.$message.error("不支持编辑");
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
handleQuery() {
|
||||||
|
this.$refs.table.queryData(this.query);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -81,14 +81,14 @@
|
||||||
:loading="saveLoading"
|
:loading="saveLoading"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
<ticketd_b
|
<ticketd_b
|
||||||
v-if = "formData.ticket_"
|
v-if = "formData.ticket_ && localMode=='show'"
|
||||||
:t_id="formData.id"
|
:t_id="formData.id"
|
||||||
:ticket_="formData.ticket_"
|
:ticket_="formData.ticket_"
|
||||||
@success="$emit('success', localMode)"
|
@success="$emit('success', localMode)"
|
||||||
ref="ticketd_b"
|
ref="ticketd_b"
|
||||||
></ticketd_b>
|
></ticketd_b>
|
||||||
<el-button
|
<el-button
|
||||||
v-else
|
v-if="localMode!='show'"
|
||||||
type="primary"
|
type="primary"
|
||||||
style="margin-right: 4px;"
|
style="margin-right: 4px;"
|
||||||
@click="handleSave"
|
@click="handleSave"
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,7 @@ export default {
|
||||||
if (that.t_id) {
|
if (that.t_id) {
|
||||||
that.$API.srm.patentinfo.item.req(that.t_id).then(res=>{
|
that.$API.srm.patentinfo.item.req(that.t_id).then(res=>{
|
||||||
that.localForm = res;
|
that.localForm = res;
|
||||||
if(res.ticket_.state_.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
|
if(res.ticket_.state_ && res.ticket_.state_.type == 1 && res.create_by == that.$TOOL.data.get("USER_INFO").id ) {
|
||||||
that.localMode = "edit";
|
that.localMode = "edit";
|
||||||
}else{
|
}else{
|
||||||
that.localMode = "show";
|
that.localMode = "show";
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,15 @@
|
||||||
>
|
>
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="归口部门" prop="p_dept">
|
<el-form-item label="需求部门" prop="p_dept">
|
||||||
<el-input v-model="localForm.p_dept" clearable :disabled="localMode ==='show'"></el-input>
|
<el-cascader
|
||||||
|
v-model="localForm.p_dept"
|
||||||
|
:options="group"
|
||||||
|
:props="groupsProps"
|
||||||
|
:show-all-levels="false"
|
||||||
|
clearable
|
||||||
|
style="width: 220px"
|
||||||
|
></el-cascader>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="建设期" prop="const">
|
<el-form-item label="建设期" prop="const">
|
||||||
<el-input v-model="localForm.const" clearable ></el-input>
|
<el-input v-model="localForm.const" clearable ></el-input>
|
||||||
|
|
@ -74,7 +81,9 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ticketd_b from "@/views/wf/ticketd_b.vue";
|
import ticketd_b from "@/views/wf/ticketd_b.vue";
|
||||||
import ticketd from '@/views/wf/ticketd.vue'
|
import ticketd from '@/views/wf/ticketd.vue';
|
||||||
|
import { genTree } from "@/utils/verificate";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
mode: { type: String, default: "show" }, // add / edit / show
|
mode: { type: String, default: "show" }, // add / edit / show
|
||||||
|
|
@ -89,11 +98,25 @@ export default {
|
||||||
ticket_data: {},
|
ticket_data: {},
|
||||||
ticketTitle: "平台审批",
|
ticketTitle: "平台审批",
|
||||||
localMode : this.mode,
|
localMode : this.mode,
|
||||||
localForm: {}
|
localForm: {},
|
||||||
|
groupsProps: {
|
||||||
|
multiple: false,
|
||||||
|
emitPath: false,
|
||||||
|
checkStrictly: true,
|
||||||
|
},
|
||||||
|
group:[],
|
||||||
|
rules: {
|
||||||
|
name: [{required: true, message: "请输入名称", trigger: "blur"}],
|
||||||
|
p_dept: [{required: true, message: "请输入部门", trigger: "change"}],
|
||||||
|
city_p: [{required: true, message: "请选择市级平台", trigger: "change"}],
|
||||||
|
const: [{required: true, message: "建设期", trigger: "blur"}],
|
||||||
|
condition: [{required: true, message: "平台基本情况与目标绩效", trigger: "change"}]
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted(){
|
mounted(){
|
||||||
let that=this
|
let that=this
|
||||||
|
this.getGroup();
|
||||||
if(that.t_id){
|
if(that.t_id){
|
||||||
that.getTid();
|
that.getTid();
|
||||||
}else{
|
}else{
|
||||||
|
|
@ -114,6 +137,10 @@ export default {
|
||||||
await that.$API.srm.platform.update.req(that.localForm.id, that.localForm);
|
await that.$API.srm.platform.update.req(that.localForm.id, that.localForm);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
async getGroup() {
|
||||||
|
let res = await this.$API.system.dept.list.req({ page: 0 });
|
||||||
|
this.group = genTree(res);
|
||||||
|
},
|
||||||
getTid (){
|
getTid (){
|
||||||
var that = this;
|
var that = this;
|
||||||
if (that.t_id) {
|
if (that.t_id) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue