Browse Source
# Conflicts: # src/api/hr/people/index.ts # src/types/components.d.ts # src/views/hr/archives/basicinformation/appraisalrecord.vuelwx_v12
32 changed files with 4910 additions and 1384 deletions
File diff suppressed because it is too large
@ -0,0 +1,118 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 添加考评记录 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { AppraisalrecordCont } from "@/api/hr/people/type"; |
||||
|
import { addAppraisalrecordCont } from "@/api/hr/people/index"; |
||||
|
import { year } from "@/api/hr/people/datacont"; |
||||
|
import { level } from "@/api/hr/people/datacont"; |
||||
|
const props = defineProps({ |
||||
|
addisshow: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
}); |
||||
|
const addLoading = ref(false); |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const addkpjlFormRef = ref(ElForm); |
||||
|
const kpjlFormData = reactive<AppraisalrecordCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const addshow = computed({ |
||||
|
get: () => props.addisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addkpjlRules = reactive({}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostAddBoxkpjl = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initkpjlData(); |
||||
|
}; |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initkpjlData = () => { |
||||
|
addkpjlFormRef.value.resetFields(); |
||||
|
addLoading.value = false; |
||||
|
}; |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitAddkpjl = () => { |
||||
|
addkpjlFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
let listAry = new Array(); |
||||
|
listAry.push(kpjlFormData); |
||||
|
addAppraisalrecordCont({ id: props.keyval, list: listAry }) |
||||
|
.then(() => { |
||||
|
ElMessage.success("新增成功"); |
||||
|
clostAddBoxkpjl(); |
||||
|
emits("restdata"); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
addLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog |
||||
|
v-model="addshow" |
||||
|
width="500" |
||||
|
title="添加考评记录" |
||||
|
append-to-body |
||||
|
:before-close="clostAddBoxkpjl" |
||||
|
> |
||||
|
<el-form |
||||
|
ref="addkpjlFormRef" |
||||
|
:model="kpjlFormData" |
||||
|
:rules="addkpjlRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="考核年度" prop="year"> |
||||
|
<el-select v-model="kpjlFormData.year" placeholder="请选择考核年度"> |
||||
|
<el-option |
||||
|
v-for="item in year" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" |
||||
|
/> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="考核等级" prop="level"> |
||||
|
<el-select v-model="kpjlFormData.level" placeholder="请选择考核等级"> |
||||
|
<el-option |
||||
|
v-for="item in level" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" |
||||
|
/> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addLoading" @click="submitAddkpjl" |
||||
|
>确 定</el-button |
||||
|
> |
||||
|
<el-button @click="clostAddBoxkpjl">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style></style> |
||||
@ -0,0 +1,135 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 编辑考评记录 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { AppraisalrecordCont } from "@/api/hr/people/type"; |
||||
|
import { editAppraisalrecordCont } from "@/api/hr/people/index"; |
||||
|
import { year } from "@/api/hr/people/datacont"; |
||||
|
import { level } from "@/api/hr/people/datacont"; |
||||
|
const props = defineProps({ |
||||
|
editisshow: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
datacont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const editLoading = ref(false); |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const editkpjlFormRef = ref(ElForm); |
||||
|
const kpjlFormData = reactive<AppraisalrecordCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const editshow = computed({ |
||||
|
get: () => props.editisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const editkpjlRules = reactive({}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostEditBoxkpjl = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initkpjlData(); |
||||
|
}; |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initkpjlData = () => { |
||||
|
editkpjlFormRef.value.resetFields(); |
||||
|
editLoading.value = false; |
||||
|
}; |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitEditkpjl = () => { |
||||
|
editkpjlFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
editAppraisalrecordCont(kpjlFormData) |
||||
|
.then(() => { |
||||
|
ElMessage.success("编辑成功"); |
||||
|
clostEditBoxkpjl(); |
||||
|
emits("restdata"); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
editLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.editisshow, |
||||
|
() => { |
||||
|
if (props.editisshow) { |
||||
|
kpjlFormData.id = props.datacont.id.toString(); |
||||
|
kpjlFormData.level = props.datacont.level; |
||||
|
kpjlFormData.year = props.datacont.year; |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog |
||||
|
v-model="editshow" |
||||
|
width="500" |
||||
|
title="编辑考评记录" |
||||
|
append-to-body |
||||
|
:before-close="clostEditBoxkpjl" |
||||
|
> |
||||
|
<el-form |
||||
|
ref="editkpjlFormRef" |
||||
|
:model="kpjlFormData" |
||||
|
:rules="editkpjlRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="考核年度" prop="year"> |
||||
|
<el-select v-model="kpjlFormData.year" placeholder="请选择考核年度"> |
||||
|
<el-option |
||||
|
v-for="item in year" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" |
||||
|
/> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="考核等级" prop="level"> |
||||
|
<el-select v-model="kpjlFormData.level" placeholder="请选择考核等级"> |
||||
|
<el-option |
||||
|
v-for="item in level" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" |
||||
|
/> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="editLoading" @click="submitEditkpjl" |
||||
|
>确 定</el-button |
||||
|
> |
||||
|
<el-button @click="clostEditBoxkpjl">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style></style> |
||||
@ -0,0 +1,183 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-28 |
||||
|
@ 备注: 证书信息 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import {reactive} from 'vue'; |
||||
|
import { zhengshuxinxi } from "@/api/hr/people/type"; |
||||
|
import { |
||||
|
getCertificatesCont, |
||||
|
editCertificatesContState, |
||||
|
} from "@/api/hr/people/index"; |
||||
|
|
||||
|
/** |
||||
|
* 引入页面 |
||||
|
*/ |
||||
|
import EditCertificates from "@/views/hr/archives/basicinformation/certificatesedit.vue"; |
||||
|
import AddCertificates from "@/views/hr/archives/basicinformation/certificatesadd.vue"; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
tabsid: { |
||||
|
type: String, |
||||
|
default: "1", |
||||
|
}, |
||||
|
usercont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
const addzsxxBoxPage = ref(false); |
||||
|
const editzsxxBoxPage = ref(false); |
||||
|
const tableLoading = ref(false); |
||||
|
const zsxxList = ref<zhengshuxinxi[]>([]); |
||||
|
const zsxxInfo = ref<zhengshuxinxi>(); |
||||
|
const getzsxxList = () => { |
||||
|
tableLoading.value = true; |
||||
|
getCertificatesCont({ id: props.usercont.keystr }) |
||||
|
.then((data) => { |
||||
|
zsxxList.value = data.data; |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
tableLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.tabsid, |
||||
|
() => { |
||||
|
if (props.tabsid == "4") { |
||||
|
getzsxxList(); |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
/** |
||||
|
* 添加数据 |
||||
|
*/ |
||||
|
const addzsxxBox = () => { |
||||
|
addzsxxBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 编辑证书信息 |
||||
|
*/ |
||||
|
const editzsxxBox = (cont: zhengshuxinxi) => { |
||||
|
zsxxInfo.value = cont; |
||||
|
editzsxxBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 删除证书信息 |
||||
|
*/ |
||||
|
const delzsxxBox = (cont: zhengshuxinxi) => { |
||||
|
ElMessageBox.confirm("确认删除<" + cont.id + ">此数据项?", "警告", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
editCertificatesContState({ id: toString(), state: 3, isdel: 1 }).then( |
||||
|
() => { |
||||
|
ElMessage.success("删除成功"); |
||||
|
getzsxxList(); |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<AddCertificates |
||||
|
v-model:addisshow="addzsxxBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
@restdata="getzsxxList" /> |
||||
|
<EditCertificates |
||||
|
v-model:editisshow="editzsxxBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
:datacont="zsxxInfo" |
||||
|
@restdata="getzsxxList" |
||||
|
/> |
||||
|
<el-row> |
||||
|
<el-col v-for="(item, index) in zsxxList" :key="index" :span="24" class="colBox"> |
||||
|
<el-descriptions |
||||
|
class="margin-top" |
||||
|
:column="3" |
||||
|
border |
||||
|
> |
||||
|
<template #extra> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="editzsxxBox(item)" |
||||
|
> |
||||
|
<i-ep-edit />编辑 |
||||
|
</el-button> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="delzsxxBox(item)" |
||||
|
> |
||||
|
<i-ep-delete />删除 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
|
||||
|
<el-descriptions-item> |
||||
|
<template #label> |
||||
|
<el-text><el-icon><Tickets /></el-icon> 证书名称</el-text> |
||||
|
</template> |
||||
|
{{ item.name }} |
||||
|
</el-descriptions-item> |
||||
|
<el-descriptions-item> |
||||
|
<template #label> |
||||
|
<el-text><svg-icon icon-class="number" class="svg_box"></svg-icon> 证书编号</el-text> |
||||
|
</template> |
||||
|
{{ item.number }} |
||||
|
</el-descriptions-item> |
||||
|
<el-descriptions-item> |
||||
|
<template #label> |
||||
|
<el-text><el-icon><OfficeBuilding /></el-icon> 发证单位</el-text> |
||||
|
</template> |
||||
|
{{ item.issuingunit }} |
||||
|
</el-descriptions-item> |
||||
|
<el-descriptions-item> |
||||
|
<template #label> |
||||
|
<el-text><svg-icon icon-class="yunxing" class="svg_box"></svg-icon> 生效时间</el-text> |
||||
|
</template> |
||||
|
{{ item.effectivetime }} |
||||
|
</el-descriptions-item> |
||||
|
<el-descriptions-item> |
||||
|
<template #label> |
||||
|
<el-text><svg-icon icon-class="stop" class="svg_box"></svg-icon> 截止时间</el-text> |
||||
|
</template> |
||||
|
{{ item.deadline }} |
||||
|
</el-descriptions-item> |
||||
|
<el-descriptions-item> |
||||
|
<template #label> |
||||
|
<el-text><svg-icon icon-class="time" class="svg_box"></svg-icon> 有效期限</el-text> |
||||
|
</template> |
||||
|
{{ item.validity }} |
||||
|
</el-descriptions-item> |
||||
|
<el-descriptions-item> |
||||
|
<template #label> |
||||
|
<el-text><el-icon><QuestionFilled /></el-icon> 是否生效</el-text> |
||||
|
</template> |
||||
|
{{ item.iseffective }} |
||||
|
</el-descriptions-item> |
||||
|
</el-descriptions> |
||||
|
</el-col> |
||||
|
<el-col :span="24" class="colBut"> |
||||
|
<el-button type="primary" @click="addzsxxBox"><i-ep-plus />新增证书信息</el-button> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</template> |
||||
|
<style lang="scss" scoped> |
||||
|
.colBox{ |
||||
|
margin-top:25px; |
||||
|
} |
||||
|
.colBut{ |
||||
|
margin-top:25px; |
||||
|
text-align:right |
||||
|
} |
||||
|
</style> |
||||
@ -0,0 +1,130 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 添加证书信息 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { CertificatesCont } from '@/api/hr/people/type' |
||||
|
import { addCertificatesCont } from '@/api/hr/people/index' |
||||
|
import { yesOrno } from '@/api/hr/people/datacont' |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
addisshow: { |
||||
|
type: Boolean, |
||||
|
default: false |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
} |
||||
|
}); |
||||
|
const addLoading = ref(false) |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const addzsxxFormRef = ref(ElForm); |
||||
|
const zsxxFormData = reactive<CertificatesCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const addshow = computed({ |
||||
|
get: () => props.addisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addzsxxRules = reactive({ |
||||
|
|
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostAddBoxzsxx = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initzsxxData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initzsxxData = () => { |
||||
|
addzsxxFormRef.value.resetFields(); |
||||
|
addLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitAddzsxx = () => { |
||||
|
addzsxxFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
let listAry = new Array |
||||
|
listAry.push(zsxxFormData) |
||||
|
addCertificatesCont({ id: props.keyval, list: listAry }) |
||||
|
.then(() => { |
||||
|
ElMessage.success("新增成功"); |
||||
|
clostAddBoxzsxx(); |
||||
|
emits('restdata'); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
addLoading.value = false; |
||||
|
}) |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="addshow" width="500" title="添加证书信息" append-to-body :before-close="clostAddBoxzsxx"> |
||||
|
<el-form ref="addzsxxFormRef" :model="zsxxFormData" :rules="addzsxxRules" label-width="140px"> |
||||
|
<el-form-item label="证书名称" prop="name"> |
||||
|
<el-input v-model="zsxxFormData.name" placeholder="请输入证书名称" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="证书编号" prop="number"> |
||||
|
<el-input v-model="zsxxFormData.number" placeholder="请输入证书编号" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="发证单位" prop="issuingunit"> |
||||
|
<el-input v-model="zsxxFormData.issuingunit" placeholder="请输入发证单位" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="生效时间" prop="effectivetime"> |
||||
|
<el-date-picker |
||||
|
v-model="zsxxFormData.effectivetime" |
||||
|
type="date" |
||||
|
placeholder="请选择生效时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="截止时间" prop="deadline"> |
||||
|
<el-date-picker |
||||
|
v-model="zsxxFormData.deadline" |
||||
|
type="date" |
||||
|
placeholder="请选择截止时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="有效期限" prop="validity"> |
||||
|
<el-input v-model="zsxxFormData.validity" placeholder="请输入有效期限" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="是否生效" prop="iseffective"> |
||||
|
<el-select v-model="zsxxFormData.iseffective" placeholder="请选择是或否"> |
||||
|
<el-option |
||||
|
v-for="item in yesOrno" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addLoading" @click="submitAddzsxx">确 定</el-button> |
||||
|
<el-button @click="clostAddBoxzsxx">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped></style> |
||||
@ -0,0 +1,142 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 编辑证书信息 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { CertificatesCont } from '@/api/hr/people/type' |
||||
|
import { editCertificatesCont } from '@/api/hr/people/index' |
||||
|
import { yesOrno } from '@/api/hr/people/datacont' |
||||
|
const props = defineProps({ |
||||
|
editisshow:{ |
||||
|
type:Boolean, |
||||
|
default:false |
||||
|
}, |
||||
|
keyval:{ |
||||
|
type:String, |
||||
|
default:"" |
||||
|
}, |
||||
|
datacont:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
const editLoading = ref(false) |
||||
|
const emits = defineEmits(["update:editisshow","restdata"]); |
||||
|
const editzsxxFormRef = ref(ElForm); |
||||
|
const zsxxFormData = reactive<CertificatesCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const editshow = computed({ |
||||
|
get: () => props.editisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:editisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addzsxxRules = reactive({ |
||||
|
|
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostEditBoxzsxx = () =>{ |
||||
|
emits("update:editisshow", false); |
||||
|
initzsxxData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initzsxxData = () =>{ |
||||
|
editzsxxFormRef.value.resetFields(); |
||||
|
editLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitEditzsxx = () =>{ |
||||
|
editzsxxFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
editCertificatesCont(zsxxFormData) |
||||
|
.then(() =>{ |
||||
|
ElMessage.success("编辑成功"); |
||||
|
clostEditBoxzsxx(); |
||||
|
emits('restdata'); |
||||
|
}) |
||||
|
.finally(() =>{editLoading.value = false;}) |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch(() => props.editisshow,() => { |
||||
|
if(props.editisshow){ |
||||
|
zsxxFormData.id= props.datacont.id.toString(); |
||||
|
} |
||||
|
|
||||
|
}) |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="editshow" width="500" title="添加职称信息" append-to-body :before-close="clostEditBoxzsxx"> |
||||
|
<el-form ref="editzsxxFormRef" :model="zsxxFormData" :rules="addzsxxRules" label-width="140px"> |
||||
|
<el-form-item label="证书名称" prop="name"> |
||||
|
<el-input v-model="zsxxFormData.name" placeholder="请输入证书名称" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="证书编号" prop="number"> |
||||
|
<el-input v-model="zsxxFormData.number" placeholder="请输入证书编号" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="发证单位" prop="issuingunit"> |
||||
|
<el-input v-model="zsxxFormData.issuingunit" placeholder="请输入发证单位" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="生效时间" prop="effectivetime"> |
||||
|
<el-date-picker |
||||
|
v-model="zsxxFormData.effectivetime" |
||||
|
type="date" |
||||
|
placeholder="请选择生效时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="截止时间" prop="deadline"> |
||||
|
<el-date-picker |
||||
|
v-model="zsxxFormData.deadline" |
||||
|
type="date" |
||||
|
placeholder="请选择截止时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="有效期限" prop="validity"> |
||||
|
<el-input v-model="zsxxFormData.validity" placeholder="请输入有效期限" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="是否生效" prop="iseffective"> |
||||
|
<el-select v-model="zsxxFormData.iseffective" placeholder="请选择是或否"> |
||||
|
<el-option |
||||
|
v-for="item in yesOrno" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="editLoading" @click="submitEditzsxx">确 定</el-button> |
||||
|
<el-button @click="clostEditBoxzsxx">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,252 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 性格色彩 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { ref, onMounted, onUnmounted, nextTick } from 'vue'; |
||||
|
import * as echarts from 'echarts'; |
||||
|
import { getCharacterColor } from '@/api/hr/people'; |
||||
|
const props = defineProps({ |
||||
|
tabsid: { |
||||
|
type: String, |
||||
|
default: "1", |
||||
|
}, |
||||
|
usercont:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
// 定义数据和方法 |
||||
|
const chartContainer = ref<HTMLDivElement | null>(null); |
||||
|
let chartInstance: echarts.ECharts | null = null; |
||||
|
// 添加对ColourNameList的响应式引用 |
||||
|
const ColourNameList = ref<string[]>([]); |
||||
|
const error = ref<string | null>(null); |
||||
|
//添加了一个新的变量用来处理尺寸变化 |
||||
|
let resizeObserver: ResizeObserver | null = null; |
||||
|
// 使用计算属性确保number存在且非空字符串再初始化 |
||||
|
const isReadyToInit = computed(() => { |
||||
|
return props.usercont.number !== undefined && props.usercont.number.trim() !== ''; |
||||
|
}); |
||||
|
// 处理数据和初始化ECharts |
||||
|
const initChart = async () => { |
||||
|
// console.log(chartContainer.value) |
||||
|
// 检查并销毁已有实例 |
||||
|
if (chartInstance) { |
||||
|
chartInstance.dispose(); |
||||
|
chartInstance = null; |
||||
|
} |
||||
|
//确保chartContainer关联的DOM元素存在 |
||||
|
if (!chartContainer.value) { |
||||
|
console.warn('DOM元素未找到,无法初始化图表'); |
||||
|
return; |
||||
|
} |
||||
|
try { |
||||
|
// 确保usercont.number存在再发起请求 |
||||
|
if (!isReadyToInit.value) { |
||||
|
throw new Error("员工信息未准备好,无法初始化图表"); |
||||
|
} |
||||
|
// 调用接口获取性格色彩数据 |
||||
|
const response = await getCharacterColor({ number: props.usercont.number }); |
||||
|
// 初始化图表实例 |
||||
|
chartInstance = echarts.init(chartContainer.value); |
||||
|
// console.log('Response:', response, chartInstance); |
||||
|
if (response.code === 0) { |
||||
|
// 处理返回的数据,得到颜色列表和雷达图颜色数据,解构数据 |
||||
|
const { ColourNameList: apiColourNameList, RadarColour } = response.data; |
||||
|
ColourNameList.value = apiColourNameList; // 更新响应式数组 |
||||
|
// 确保所有颜色都在雷达图中显示,即使ColourNameList中没有提及 |
||||
|
const allColours = ["红色", "蓝色", "黄色", "绿色"]; |
||||
|
// 更新雷达图 |
||||
|
updateRadarChart(chartInstance, RadarColour, allColours); |
||||
|
} else { |
||||
|
ElMessage.error(response.data.msg || '系统出错'); |
||||
|
} |
||||
|
} catch (e) { |
||||
|
console.error(e); |
||||
|
} |
||||
|
} |
||||
|
// 更新雷达图 |
||||
|
const updateRadarChart = (chart: echarts.ECharts, radarColour: any[], colourNameList: string[]) => { |
||||
|
const radarOptions = createRadarOptions(radarColour, colourNameList); |
||||
|
chart.setOption(radarOptions); |
||||
|
chart.resize(); |
||||
|
// 将colourNameList赋值给ColourNameList,以便在模板中使用 |
||||
|
// ColourNameList.value = colourNameList; |
||||
|
} |
||||
|
// 创建雷达图配置项 |
||||
|
const createRadarOptions = (radarColour: any[], colourNameList: string[]) => { |
||||
|
let maxVal = Math.max(...radarColour); |
||||
|
return { |
||||
|
tooltip: { trigger: "item" }, |
||||
|
radar: { |
||||
|
indicator: colourNameList.map((color, index) => ({ |
||||
|
name: color, |
||||
|
max: maxVal + 2, |
||||
|
min: 0 , |
||||
|
})), |
||||
|
shape: "circle", |
||||
|
splitNumber: 4, |
||||
|
}, |
||||
|
series: [ |
||||
|
{ |
||||
|
name: "个人性格色彩", |
||||
|
type: "radar", |
||||
|
areaStyle: { |
||||
|
// 填充区颜色 |
||||
|
color: '#a0c3f8', |
||||
|
}, |
||||
|
data: [{ value: radarColour, |
||||
|
name: "个人色彩分布" |
||||
|
}], |
||||
|
itemStyle: { color: "#3c96ff" }, // 示例颜色 |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
} |
||||
|
onMounted(async () => { |
||||
|
//在DOM就绪后初始化echarts实例 |
||||
|
await nextTick(); |
||||
|
// console.log(chartContainer.value); |
||||
|
// 初始化ResizeObserver |
||||
|
resizeObserver = new ResizeObserver(() => { |
||||
|
if (chartInstance) { |
||||
|
chartInstance.resize(); |
||||
|
} |
||||
|
}); |
||||
|
resizeObserver.observe(chartContainer.value!); // 监听chartContainer尺寸变化 |
||||
|
}); |
||||
|
// 监听员工信息变化 |
||||
|
watch( |
||||
|
() => ({ |
||||
|
usercont: props.usercont, |
||||
|
tabsid: props.tabsid |
||||
|
}), |
||||
|
async (newValues) => { |
||||
|
const { usercont, tabsid } = newValues; |
||||
|
// 如果tabsid为'2'且usercont.number准备好了 |
||||
|
if (tabsid === '2' && usercont.number) { |
||||
|
error.value = null; |
||||
|
await nextTick(); |
||||
|
await initChart(); |
||||
|
} else if (usercont.number) { |
||||
|
// 如果只是usercont.number变化了 |
||||
|
error.value = null; |
||||
|
await nextTick(); |
||||
|
await initChart(); |
||||
|
} else { |
||||
|
error.value = "员工信息未准备好"; |
||||
|
} |
||||
|
}, |
||||
|
{ immediate: true, deep: true } |
||||
|
); |
||||
|
// 组件卸载时清理ECharts实例 |
||||
|
onUnmounted(() => { |
||||
|
if (chartInstance) { |
||||
|
chartInstance.dispose(); |
||||
|
chartInstance = null; |
||||
|
} |
||||
|
// 清理ResizeObserver |
||||
|
if (resizeObserver) { |
||||
|
resizeObserver.disconnect(); |
||||
|
resizeObserver = null; |
||||
|
} |
||||
|
}); |
||||
|
//监听tabsid变化(点击性格色彩选项) |
||||
|
// watch(()=>props.tabsid,(val:string)=>{ |
||||
|
// if(val == '2'){ |
||||
|
// initChart(); |
||||
|
// } |
||||
|
// }) |
||||
|
</script> |
||||
|
<template> |
||||
|
<!-- 在模板中根据loading状态显示加载提示 --> |
||||
|
<div class="chart-container"> |
||||
|
<div ref="chartContainer" class="chart"></div> |
||||
|
<div v-for="(item, index) in ColourNameList" :key="index"> |
||||
|
<div v-if="item == '红色'"> |
||||
|
<el-text type="info" class="color-title">{{ item }}:<br/></el-text> |
||||
|
<el-text type="info">——他们的优势是:<br /></el-text> |
||||
|
<el-text type="info">积极乐观,</el-text> |
||||
|
<el-text type="info">真诚主动,</el-text> |
||||
|
<el-text type="info">善于表达,</el-text> |
||||
|
<el-text type="info">富有感染力。<br /></el-text> |
||||
|
<el-text type="info">——有时很可恶,因为:<br /></el-text> |
||||
|
<el-text type="info">情绪波动大起大落,</el-text> |
||||
|
<el-text type="info">开玩笑不分场合,</el-text> |
||||
|
<el-text type="info">疏于兑现承诺,</el-text> |
||||
|
<el-text type="info">这山望着那山高。<br /></el-text> |
||||
|
</div> |
||||
|
<div v-if="item == '蓝色'"> |
||||
|
<el-text type="info" class="color-title">{{ item }}:<br /></el-text> |
||||
|
<el-text type="info">——他们的优势是:<br /></el-text> |
||||
|
<el-text type="info">思想深邃,</el-text> |
||||
|
<el-text type="info">默默关怀他人,</el-text> |
||||
|
<el-text type="info">敏感而细腻,</el-text> |
||||
|
<el-text type="info">计划性强。<br /></el-text> |
||||
|
<el-text type="info">——有时不太招人喜欢:<br /></el-text> |
||||
|
<el-text type="info">情感脆弱,</el-text> |
||||
|
<el-text type="info">喜好批判和挑剔,</el-text> |
||||
|
<el-text type="info">不主动与人沟通,</el-text> |
||||
|
<el-text type="info">患得患失。<br /></el-text> |
||||
|
</div> |
||||
|
<div v-if="item == '黄色'"> |
||||
|
<el-text type="info" class="color-title">{{ item }}:<br/></el-text> |
||||
|
<el-text type="info">——他们的优势是:<br /></el-text> |
||||
|
<el-text type="info">行动迅速,</el-text> |
||||
|
<el-text type="info">目标导向,</el-text> |
||||
|
<el-text type="info">不感情用事,</el-text> |
||||
|
<el-text type="info">坚持不懈。<br /></el-text> |
||||
|
<el-text type="info">——有时会被抱怨:<br /></el-text> |
||||
|
<el-text type="info">死不认错,</el-text> |
||||
|
<el-text type="info">控制欲强,</el-text> |
||||
|
<el-text type="info">咄咄逼人,</el-text> |
||||
|
<el-text type="info">容易发怒。<br /></el-text> |
||||
|
</div> |
||||
|
<div v-if="item == '绿色'"> |
||||
|
<el-text type="info" class="color-title">{{ item }}:<br /></el-text> |
||||
|
<el-text type="info">——他们的优势是:<br /></el-text> |
||||
|
<el-text type="info">温柔祥和,</el-text> |
||||
|
<el-text type="info">为他人考虑,</el-text> |
||||
|
<el-text type="info">与世无争,</el-text> |
||||
|
<el-text type="info">善于协调。<br /></el-text> |
||||
|
<el-text type="info">——他们的局限在于:<br /></el-text> |
||||
|
<el-text type="info">拒绝改变,</el-text> |
||||
|
<el-text type="info">胆小被动,</el-text> |
||||
|
<el-text type="info">没有主见,</el-text> |
||||
|
<el-text type="info">缺乏创意。<br /></el-text> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<style scoped> |
||||
|
.chart-container { |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
} |
||||
|
.title { |
||||
|
font-size: 18px; |
||||
|
font-weight: bold; |
||||
|
} |
||||
|
.chart { |
||||
|
height: 270px; |
||||
|
width: 100%; |
||||
|
} |
||||
|
.text-content { |
||||
|
padding: 20px; |
||||
|
background-color: #f5f7fa; |
||||
|
border-radius: 10px; |
||||
|
font-size:medium |
||||
|
} |
||||
|
.el-col { |
||||
|
margin-bottom: 10px; |
||||
|
} |
||||
|
.color-title { |
||||
|
font-size: 15px; |
||||
|
font-weight:bold; |
||||
|
color: #6e6e6e; |
||||
|
} |
||||
|
</style> |
||||
File diff suppressed because it is too large
@ -0,0 +1,126 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 用工关系 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { yonggongguanxi } from "@/api/hr/people/type"; |
||||
|
import { |
||||
|
getEmploymentrelationsCont, |
||||
|
editEmploymentrelationsContState, |
||||
|
} from "@/api/hr/people/index"; |
||||
|
|
||||
|
/** |
||||
|
* 引入页面 |
||||
|
*/ |
||||
|
import EditEmploymentrelations from "@/views/hr/archives/basicinformation/employmentrelationsedit.vue"; |
||||
|
import AddEmploymentrelations from "@/views/hr/archives/basicinformation/employmentrelationsadd.vue"; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
tabsid: { |
||||
|
type: String, |
||||
|
default: "1", |
||||
|
}, |
||||
|
usercont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const addyggxBoxPage = ref(false); |
||||
|
const edityggxBoxPage = ref(false); |
||||
|
const tableLoading = ref(false); |
||||
|
const yggxList = ref<yonggongguanxi[]>([]); |
||||
|
const yggxInfo = ref<yonggongguanxi>(); |
||||
|
const getyggxList = () => { |
||||
|
tableLoading.value = true; |
||||
|
getEmploymentrelationsCont({ id: props.usercont.keystr }) |
||||
|
.then((data) => { |
||||
|
yggxList.value = data.data; |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
tableLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.tabsid, |
||||
|
() => { |
||||
|
if (props.tabsid == "4") { |
||||
|
getyggxList(); |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
/** |
||||
|
* 添加数据 |
||||
|
*/ |
||||
|
const addyggxBox = (key: string) => { |
||||
|
addyggxBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 编辑用工关系 |
||||
|
*/ |
||||
|
const edityggxBox = (cont: yonggongguanxi) => { |
||||
|
yggxInfo.value = cont; |
||||
|
edityggxBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 删除用工关系 |
||||
|
*/ |
||||
|
const delyggxBox = (cont: yonggongguanxi) => { |
||||
|
ElMessageBox.confirm("确认删除<" + cont.id + ">此数据项?", "警告", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
editEmploymentrelationsContState({ id: toString(), state: 3, isdel: 1 }).then( |
||||
|
() => { |
||||
|
ElMessage.success("删除成功"); |
||||
|
getyggxList(); |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<AddEmploymentrelations |
||||
|
v-model:addisshow="addyggxBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
@restdata="getyggxList" /> |
||||
|
<EditEmploymentrelations |
||||
|
v-model:editisshow="edityggxBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
:datacont="yggxInfo" |
||||
|
@restdata="getyggxList" |
||||
|
/> |
||||
|
<el-table |
||||
|
v-loading="tableLoading" |
||||
|
highlight-current-row |
||||
|
:data="yggxList" border |
||||
|
:header-cell-style="{ background: '#F5F7FA' }"> |
||||
|
<el-table-column label="入职渠道" prop="entrychannel" align="center"/> |
||||
|
<el-table-column label="参加工作日期" prop="startdate" align="center"/> |
||||
|
<el-table-column label="社会工龄(年)" prop="seniority" align="center"/> |
||||
|
<el-table-column label="加入集团日期" prop="joindate" align="center" /> |
||||
|
<el-table-column label="集团工龄(年)" prop="cliqueseniority" align="center" /> |
||||
|
<el-table-column fixed="right" align="right" > |
||||
|
<template #header> |
||||
|
<el-button type="primary" link size="small" @click.stop="addyggxBox(props.usercont.keystr)"> |
||||
|
<i-ep-plus /> 新增 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-button type="primary" link size="small" @click.stop="edityggxBox(scope.row)"> |
||||
|
<i-ep-edit />编辑 |
||||
|
</el-button> |
||||
|
<el-button type="primary" link size="small" @click.stop="delyggxBox(scope.row)"> |
||||
|
<i-ep-delete />删除 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
</template> |
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,129 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 添加用工关系 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { EmploymentrelationsCont } from '@/api/hr/people/type' |
||||
|
import { addEmploymentrelationsCont } from '@/api/hr/people/index' |
||||
|
import { entrychannel } from '@/api/hr/people/datacont' |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
addisshow: { |
||||
|
type: Boolean, |
||||
|
default: false |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
} |
||||
|
}); |
||||
|
const addLoading = ref(false) |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const addyggxFormRef = ref(ElForm); |
||||
|
const yggxFormData = reactive<EmploymentrelationsCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const addshow = computed({ |
||||
|
get: () => props.addisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addyggxRules = reactive({ |
||||
|
entrychannel: [{ required: true, message: "请选择入职渠道", trigger: "blur" }], |
||||
|
startdate: [{ required: true, message: "请选择参加工作日期", trigger: "blur" }], |
||||
|
seniority: [{ required: true, message: "请输入社会工龄(年)", trigger: "blur" }], |
||||
|
joindate: [{ required: true, message: "请选择加入集团日期", trigger: "blur" }], |
||||
|
cliqueseniority: [{ required: true, message: "请输入集团工龄(年)", trigger: "blur" }], |
||||
|
|
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostAddBoxyggx = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
inityggxData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const inityggxData = () => { |
||||
|
addyggxFormRef.value.resetFields(); |
||||
|
addLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitAddyggx = () => { |
||||
|
addyggxFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
let listAry = new Array |
||||
|
listAry.push(yggxFormData) |
||||
|
addEmploymentrelationsCont({ id: props.keyval, list: listAry }) |
||||
|
.then(() => { |
||||
|
ElMessage.success("新增成功"); |
||||
|
clostAddBoxyggx(); |
||||
|
emits('restdata'); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
addLoading.value = false; |
||||
|
}) |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="addshow" width="500" title="添加用工关系" append-to-body :before-close="clostAddBoxyggx"> |
||||
|
<el-form ref="addyggxFormRef" :model="yggxFormData" :rules="addyggxRules" label-width="140px"> |
||||
|
<el-form-item label="入职渠道" prop="entrychannel"> |
||||
|
<el-select v-model="yggxFormData.entrychannel" placeholder="请选择入职渠道"> |
||||
|
<el-option |
||||
|
v-for="item in entrychannel" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="参加工作日期" prop="startdate"> |
||||
|
<el-date-picker |
||||
|
v-model="yggxFormData.startdate" |
||||
|
type="date" |
||||
|
placeholder="请选择参加工作日期" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="社会工龄(年)" prop="seniority"> |
||||
|
<el-input v-model="yggxFormData.seniority" placeholder="请输入社会工龄" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="加入集团日期" prop="joindate"> |
||||
|
<el-date-picker |
||||
|
v-model="yggxFormData.joindate" |
||||
|
type="date" |
||||
|
placeholder="请选择加入集团日期" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="集团工龄(年)" prop="cliqueseniority"> |
||||
|
<el-input v-model="yggxFormData.cliqueseniority" placeholder="请输入集团工龄" /> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addLoading" @click="submitAddyggx">确 定</el-button> |
||||
|
<el-button @click="clostAddBoxyggx">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped></style> |
||||
@ -0,0 +1,140 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 编辑用工关系 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { EmploymentrelationsCont } from '@/api/hr/people/type' |
||||
|
import { editEmploymentrelationsCont } from '@/api/hr/people/index' |
||||
|
import { entrychannel } from '@/api/hr/people/datacont' |
||||
|
const props = defineProps({ |
||||
|
editisshow:{ |
||||
|
type:Boolean, |
||||
|
default:false |
||||
|
}, |
||||
|
keyval:{ |
||||
|
type:String, |
||||
|
default:"" |
||||
|
}, |
||||
|
datacont:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
const editLoading = ref(false) |
||||
|
const emits = defineEmits(["update:editisshow","restdata"]); |
||||
|
const edityggxFormRef = ref(ElForm); |
||||
|
const yggxFormData = reactive<EmploymentrelationsCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const editshow = computed({ |
||||
|
get: () => props.editisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:editisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addyggxRules = reactive({ |
||||
|
entrychannel: [{ required: true, message: "请选择入职渠道", trigger: "blur" }], |
||||
|
startdate: [{ required: true, message: "请选择参加工作日期", trigger: "blur" }], |
||||
|
seniority: [{ required: true, message: "请输入社会工龄(年)", trigger: "blur" }], |
||||
|
joindate: [{ required: true, message: "请选择加入集团日期", trigger: "blur" }], |
||||
|
cliqueseniority: [{ required: true, message: "请输入集团工龄(年)", trigger: "blur" }], |
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostEditBoxyggx = () =>{ |
||||
|
emits("update:editisshow", false); |
||||
|
inityggxData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const inityggxData = () =>{ |
||||
|
edityggxFormRef.value.resetFields(); |
||||
|
editLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitEdityggx = () =>{ |
||||
|
edityggxFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
editEmploymentrelationsCont(yggxFormData) |
||||
|
.then(() =>{ |
||||
|
ElMessage.success("编辑成功"); |
||||
|
clostEditBoxyggx(); |
||||
|
emits('restdata'); |
||||
|
}) |
||||
|
.finally(() =>{editLoading.value = false;}) |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch(() => props.editisshow,() => { |
||||
|
if(props.editisshow){ |
||||
|
yggxFormData.id= props.datacont.id.toString(); |
||||
|
} |
||||
|
|
||||
|
}) |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="editshow" width="500" title="添加用工关系" append-to-body :before-close="clostEditBoxyggx"> |
||||
|
<el-form ref="edityggxFormRef" :model="yggxFormData" :rules="addyggxRules" label-width="140px"> |
||||
|
<el-form-item label="入职渠道" prop="entrychannel"> |
||||
|
<el-select v-model="yggxFormData.entrychannel" placeholder="请选择入职渠道"> |
||||
|
<el-option |
||||
|
v-for="item in entrychannel" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="参加工作日期" prop="startdate"> |
||||
|
<el-date-picker |
||||
|
v-model="yggxFormData.startdate" |
||||
|
type="date" |
||||
|
placeholder="请选择参加工作日期" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="社会工龄(年)" prop="seniority"> |
||||
|
<el-input v-model="yggxFormData.seniority" placeholder="请输入社会工龄" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="加入集团日期" prop="joindate"> |
||||
|
<el-date-picker |
||||
|
v-model="yggxFormData.joindate" |
||||
|
type="date" |
||||
|
placeholder="请选择加入集团日期" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="集团工龄(年)" prop="cliqueseniority"> |
||||
|
<el-input v-model="yggxFormData.cliqueseniority" placeholder="请输入集团工龄" /> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="editLoading" @click="submitEdityggx">确 定</el-button> |
||||
|
<el-button @click="clostEditBoxyggx">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,126 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-28 |
||||
|
@ 备注: 职称信息 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { zhichengxinxi } from "@/api/hr/people/type"; |
||||
|
import { |
||||
|
getJobtitleCont, |
||||
|
editJobtitleContState, |
||||
|
} from "@/api/hr/people/index"; |
||||
|
|
||||
|
/** |
||||
|
* 引入页面 |
||||
|
*/ |
||||
|
import EditJobtitle from "@/views/hr/archives/basicinformation/jobtitleedit.vue"; |
||||
|
import AddJobtitle from "@/views/hr/archives/basicinformation/jobtitleadd.vue"; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
tabsid: { |
||||
|
type: String, |
||||
|
default: "1", |
||||
|
}, |
||||
|
usercont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const addzcxxBoxPage = ref(false); |
||||
|
const editzcxxBoxPage = ref(false); |
||||
|
const tableLoading = ref(false); |
||||
|
const zcxxList = ref<zhichengxinxi[]>([]); |
||||
|
const zcxxInfo = ref<zhichengxinxi>(); |
||||
|
const getzcxxList = () => { |
||||
|
tableLoading.value = true; |
||||
|
getJobtitleCont({ id: props.usercont.keystr }) |
||||
|
.then((data) => { |
||||
|
zcxxList.value = data.data; |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
tableLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.tabsid, |
||||
|
() => { |
||||
|
if (props.tabsid == "4") { |
||||
|
getzcxxList(); |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
/** |
||||
|
* 添加数据 |
||||
|
*/ |
||||
|
const addzcxxBox = (key: string) => { |
||||
|
addzcxxBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 编辑职称信息 |
||||
|
*/ |
||||
|
const editzcxxBox = (cont: zhichengxinxi) => { |
||||
|
zcxxInfo.value = cont; |
||||
|
editzcxxBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 删除职称信息 |
||||
|
*/ |
||||
|
const delzcxxBox = (cont: zhichengxinxi) => { |
||||
|
ElMessageBox.confirm("确认删除<" + cont.id + ">此数据项?", "警告", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
editJobtitleContState({ id: toString(), state: 3, isdel: 1 }).then( |
||||
|
() => { |
||||
|
ElMessage.success("删除成功"); |
||||
|
getzcxxList(); |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<AddJobtitle |
||||
|
v-model:addisshow="addzcxxBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
@restdata="getzcxxList" /> |
||||
|
<EditJobtitle |
||||
|
v-model:editisshow="editzcxxBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
:datacont="zcxxInfo" |
||||
|
@restdata="getzcxxList" |
||||
|
/> |
||||
|
<el-table |
||||
|
v-loading="tableLoading" |
||||
|
highlight-current-row |
||||
|
:data="zcxxList" border |
||||
|
:header-cell-style="{ background: '#F5F7FA' }"> |
||||
|
<el-table-column label="职称级别" prop="level" align="center"/> |
||||
|
<el-table-column label="职称系列" prop="series" align="center"/> |
||||
|
<el-table-column label="职称专业" prop="profession" align="center" /> |
||||
|
<el-table-column label="资格证书编号" prop="serialnumber" align="center" /> |
||||
|
<el-table-column label="生效时间" prop="effectivetime" align="center" /> |
||||
|
<el-table-column fixed="right" align="right" > |
||||
|
<template #header> |
||||
|
<el-button type="primary" link size="small" @click.stop="addzcxxBox(props.usercont.keystr)"> |
||||
|
<i-ep-plus /> 新增 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-button type="primary" link size="small" @click.stop="editzcxxBox(scope.row)"> |
||||
|
<i-ep-edit />编辑 |
||||
|
</el-button> |
||||
|
<el-button type="primary" link size="small" @click.stop="delzcxxBox(scope.row)"> |
||||
|
<i-ep-delete />删除 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
|
||||
|
</template> |
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,116 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 添加职称信息 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { JobtitleCont } from '@/api/hr/people/type' |
||||
|
import { addJobtitleCont } from '@/api/hr/people/index' |
||||
|
import { jobtitlelevel } from '@/api/hr/people/datacont' |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
addisshow: { |
||||
|
type: Boolean, |
||||
|
default: false |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "" |
||||
|
} |
||||
|
}); |
||||
|
const addLoading = ref(false) |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const addzcxxFormRef = ref(ElForm); |
||||
|
const zcxxFormData = reactive<JobtitleCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const addshow = computed({ |
||||
|
get: () => props.addisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addzcxxRules = reactive({ |
||||
|
|
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostAddBoxzcxx = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initzcxxData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initzcxxData = () => { |
||||
|
addzcxxFormRef.value.resetFields(); |
||||
|
addLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitAddzcxx = () => { |
||||
|
addzcxxFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
let listAry = new Array |
||||
|
listAry.push(zcxxFormData) |
||||
|
addJobtitleCont({ id: props.keyval, list: listAry }) |
||||
|
.then(() => { |
||||
|
ElMessage.success("新增成功"); |
||||
|
clostAddBoxzcxx(); |
||||
|
emits('restdata'); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
addLoading.value = false; |
||||
|
}) |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="addshow" width="500" title="添加职称信息" append-to-body :before-close="clostAddBoxzcxx"> |
||||
|
<el-form ref="addzcxxFormRef" :model="zcxxFormData" :rules="addzcxxRules" label-width="140px"> |
||||
|
<el-form-item label="职称级别" prop="level"> |
||||
|
<el-select v-model="zcxxFormData.level" placeholder="请选择职称级别"> |
||||
|
<el-option |
||||
|
v-for="item in jobtitlelevel" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="职称系列" prop="series"> |
||||
|
<el-input v-model="zcxxFormData.series" placeholder="请输入职称系列" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="职称专业" prop="profession"> |
||||
|
<el-input v-model="zcxxFormData.profession" placeholder="请输入职称专业" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="资格证书编号" prop="serialnumber"> |
||||
|
<el-input v-model="zcxxFormData.serialnumber" placeholder="请输入资格证书编号" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="生效时间" prop="effectivetime"> |
||||
|
<el-date-picker |
||||
|
v-model="zcxxFormData.effectivetime" |
||||
|
type="date" |
||||
|
placeholder="请选择生效时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addLoading" @click="submitAddzcxx">确 定</el-button> |
||||
|
<el-button @click="clostAddBoxzcxx">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped></style> |
||||
@ -0,0 +1,128 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 编辑职称信息 |
||||
|
--> |
||||
|
<script lang='ts' setup> |
||||
|
import { JobtitleCont } from '@/api/hr/people/type' |
||||
|
import { editJobtitleCont } from '@/api/hr/people/index' |
||||
|
import { jobtitlelevel } from '@/api/hr/people/datacont' |
||||
|
const props = defineProps({ |
||||
|
editisshow:{ |
||||
|
type:Boolean, |
||||
|
default:false |
||||
|
}, |
||||
|
keyval:{ |
||||
|
type:String, |
||||
|
default:"" |
||||
|
}, |
||||
|
datacont:{ |
||||
|
type:Object, |
||||
|
default(){ |
||||
|
return {} |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
const editLoading = ref(false) |
||||
|
const emits = defineEmits(["update:editisshow","restdata"]); |
||||
|
const editzcxxFormRef = ref(ElForm); |
||||
|
const zcxxFormData = reactive<JobtitleCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const editshow = computed({ |
||||
|
get: () => props.editisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:editisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addzcxxRules = reactive({ |
||||
|
|
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostEditBoxzcxx = () =>{ |
||||
|
emits("update:editisshow", false); |
||||
|
initzcxxData() |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initzcxxData = () =>{ |
||||
|
editzcxxFormRef.value.resetFields(); |
||||
|
editLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitEditzcxx = () =>{ |
||||
|
editzcxxFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
editJobtitleCont(zcxxFormData) |
||||
|
.then(() =>{ |
||||
|
ElMessage.success("编辑成功"); |
||||
|
clostEditBoxzcxx(); |
||||
|
emits('restdata'); |
||||
|
}) |
||||
|
.finally(() =>{editLoading.value = false;}) |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch(() => props.editisshow,() => { |
||||
|
if(props.editisshow){ |
||||
|
zcxxFormData.id= props.datacont.id.toString(); |
||||
|
} |
||||
|
|
||||
|
}) |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog v-model="editshow" width="500" title="添加职称信息" append-to-body :before-close="clostEditBoxzcxx"> |
||||
|
<el-form ref="editzcxxFormRef" :model="zcxxFormData" :rules="addzcxxRules" label-width="140px"> |
||||
|
<el-form-item label="职称级别" prop="level"> |
||||
|
<el-select v-model="zcxxFormData.level" placeholder="请选择职称级别"> |
||||
|
<el-option |
||||
|
v-for="item in jobtitlelevel" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="职称系列" prop="series"> |
||||
|
<el-input v-model="zcxxFormData.series" placeholder="请输入职称系列" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="职称专业" prop="profession"> |
||||
|
<el-input v-model="zcxxFormData.profession" placeholder="请输入职称专业" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="资格证书编号" prop="serialnumber"> |
||||
|
<el-input v-model="zcxxFormData.serialnumber" placeholder="请输入资格证书编号" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="生效时间" prop="effectivetime"> |
||||
|
<el-date-picker |
||||
|
v-model="zcxxFormData.effectivetime" |
||||
|
type="date" |
||||
|
placeholder="请选择生效时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="editLoading" @click="submitEditzcxx">确 定</el-button> |
||||
|
<el-button @click="clostEditBoxzcxx">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang='scss' scoped> |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,145 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 奖惩记录 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { jiangchengjilu } from "@/api/hr/people/type"; |
||||
|
import { |
||||
|
getRewardsAndPunishmentsCont, |
||||
|
editRewardsAndPunishmentsContState, |
||||
|
} from "@/api/hr/people/index"; |
||||
|
/** |
||||
|
* 引入页面 |
||||
|
*/ |
||||
|
import AddRewardsAndPunishments from "@/views/hr/archives/basicinformation/rewardsandpunishmentsadd.vue"; |
||||
|
import EditRewardsAndPunishments from "@/views/hr/archives/basicinformation/rewardsandpunishmentsedit.vue"; |
||||
|
const props = defineProps({ |
||||
|
tabsid: { |
||||
|
type: String, |
||||
|
default: "1", |
||||
|
}, |
||||
|
usercont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const addJcjlBoxPage = ref(false); |
||||
|
const editJcjlBoxPage = ref(false); |
||||
|
|
||||
|
const tableLoading = ref(false); |
||||
|
const jcjlList = ref<jiangchengjilu[]>([]); |
||||
|
const jcjlInfo = ref<jiangchengjilu>(); |
||||
|
const getjcjlList = () => { |
||||
|
tableLoading.value = true; |
||||
|
getRewardsAndPunishmentsCont({ id: props.usercont.keystr }) |
||||
|
.then((data) => { |
||||
|
jcjlList.value = data.data; |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
tableLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.tabsid, |
||||
|
() => { |
||||
|
if (props.tabsid == "6") { |
||||
|
getjcjlList(); |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
/** |
||||
|
* 添加数据 |
||||
|
*/ |
||||
|
const addJcjlBox = (key: string) => { |
||||
|
addJcjlBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 编辑奖惩记录 |
||||
|
*/ |
||||
|
const editJcjlBox = (cont: jiangchengjilu) => { |
||||
|
jcjlInfo.value = cont; |
||||
|
editJcjlBoxPage.value = true; |
||||
|
} |
||||
|
/** |
||||
|
* 删除奖惩记录 |
||||
|
*/ |
||||
|
const delJcjlBox = (cont: jiangchengjilu) => { |
||||
|
ElMessageBox.confirm("确认删除<" + cont.level + ">此数据项?", "警告", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
editRewardsAndPunishmentsContState({ |
||||
|
id: toString(), |
||||
|
state: 3, |
||||
|
isdel: 1, |
||||
|
}).then(() => { |
||||
|
ElMessage.success("删除成功"); |
||||
|
getjcjlList(); |
||||
|
}); |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<AddRewardsAndPunishments |
||||
|
v-model:addisshow="addJcjlBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
@restdata="getjcjlList" |
||||
|
/> |
||||
|
<EditRewardsAndPunishments |
||||
|
v-model:editisshow="editJcjlBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
:datacont="jcjlInfo" |
||||
|
@restdata="getjcjlList" |
||||
|
/> |
||||
|
<el-table |
||||
|
v-loading="tableLoading" |
||||
|
highlight-current-row |
||||
|
:data="jcjlList" |
||||
|
border |
||||
|
:header-cell-style="{ background: '#F5F7FA' }" |
||||
|
> |
||||
|
<el-table-column label="奖惩级别" prop="level" /> |
||||
|
<el-table-column label="奖惩类型" prop="type" /> |
||||
|
<el-table-column label="奖惩内容" prop="content" /> |
||||
|
<el-table-column label="奖惩时间" prop="time" /> |
||||
|
<el-table-column label="奖惩单位" prop="company" /> |
||||
|
<el-table-column fixed="right" align="right"> |
||||
|
<template #header> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="addJcjlBox(props.usercont.keystr)" |
||||
|
> |
||||
|
<i-ep-plus /> 新增 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="editJcjlBox(scope.row)" |
||||
|
> |
||||
|
<i-ep-edit />编辑 |
||||
|
</el-button> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="delJcjlBox(scope.row)" |
||||
|
> |
||||
|
<i-ep-delete />删除 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</template> |
||||
|
<style></style> |
||||
@ -0,0 +1,127 @@ |
|||||
|
<!-- |
||||
|
@ 作者:袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 添加奖惩记录 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { RewardsAndPunishmentsCont } from "@/api/hr/people/type"; |
||||
|
import { addRewardsAndPunishmentsCont } from "@/api/hr/people/index"; |
||||
|
import { rewardlevel } from "@/api/hr/people/datacont"; |
||||
|
const props = defineProps({ |
||||
|
addisshow: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
}); |
||||
|
const addLoading = ref(false); |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const addJcjlFormRef = ref(ElForm); |
||||
|
const jcjlFormData = reactive<RewardsAndPunishmentsCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const addshow = computed({ |
||||
|
get: () => props.addisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addJcjlRules = reactive({ |
||||
|
}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostAddBoxJcjl = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initJcjlData(); |
||||
|
} |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initJcjlData = () => { |
||||
|
addJcjlFormRef.value.resetFields(); |
||||
|
addLoading.value = false; |
||||
|
} |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitAddJcjl = ()=> { |
||||
|
addJcjlFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
let listAry = new Array(); |
||||
|
listAry.push(jcjlFormData); |
||||
|
addRewardsAndPunishmentsCont({ id: props.keyval, list: listAry }) |
||||
|
.then(() => { |
||||
|
ElMessage.success("新增成功"); |
||||
|
clostAddBoxJcjl(); |
||||
|
emits("restdata"); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
addLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog |
||||
|
v-model="addshow" |
||||
|
width="500" |
||||
|
title="添加奖惩记录" |
||||
|
append-to-body |
||||
|
:before-close="clostAddBoxJcjl" |
||||
|
> |
||||
|
<el-form |
||||
|
ref="addJcjlFormRef" |
||||
|
:model="jcjlFormData" |
||||
|
:rules="addJcjlRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="奖惩级别" prop="level"> |
||||
|
<el-select v-model="jcjlFormData.level" placeholder="请选择奖惩级别"> |
||||
|
<el-option |
||||
|
v-for="item in rewardlevel" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩类型" prop="type"> |
||||
|
<el-input v-model="jcjlFormData.type" placeholder="请输入奖惩类型" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩内容" prop="content"> |
||||
|
<el-input v-model="jcjlFormData.content" type="textarea" placeholder="请输入奖惩内容" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩时间" prop="time"> |
||||
|
<el-date-picker |
||||
|
v-model="jcjlFormData.time" |
||||
|
type="date" |
||||
|
placeholder="请选择奖惩时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩单位" prop="company"> |
||||
|
<el-input v-model="jcjlFormData.company" placeholder="请输入奖惩单位" /> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addLoading" @click="submitAddJcjl" |
||||
|
>确 定</el-button |
||||
|
> |
||||
|
<el-button @click="clostAddBoxJcjl">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style lang="scss" scoped></style> |
||||
@ -0,0 +1,146 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 编辑奖惩记录 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { RewardsAndPunishmentsCont } from "@/api/hr/people/type"; |
||||
|
import { editRewardsAndPunishmentsCont } from "@/api/hr/people/index"; |
||||
|
import { rewardlevel } from '@/api/hr/people/datacont' |
||||
|
const props = defineProps({ |
||||
|
editisshow: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
datacont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const editLoading = ref(false); |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const editJcjlFormRef = ref(ElForm); |
||||
|
const jcjlFormData = reactive<RewardsAndPunishmentsCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const editshow = computed({ |
||||
|
get: () => props.editisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const editJcjlRules = reactive({}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostEditBoxJcjl = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initJcjlData(); |
||||
|
}; |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initJcjlData = () => { |
||||
|
editJcjlFormRef.value.resetFields(); |
||||
|
editLoading.value = false; |
||||
|
}; |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitEditJcjl = () => { |
||||
|
editJcjlFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
editRewardsAndPunishmentsCont(jcjlFormData) |
||||
|
.then(() => { |
||||
|
ElMessage.success("编辑成功"); |
||||
|
clostEditBoxJcjl(); |
||||
|
emits("restdata"); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
editLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.editisshow, |
||||
|
() => { |
||||
|
if (props.editisshow) { |
||||
|
jcjlFormData.id = props.datacont.id.toString(); |
||||
|
jcjlFormData.level = props.datacont.level; |
||||
|
jcjlFormData.type = props.datacont.type; |
||||
|
jcjlFormData.content = props.datacont.content; |
||||
|
jcjlFormData.time = props.datacont.time; |
||||
|
jcjlFormData.company = props.datacont.company; |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog |
||||
|
v-model="editshow" |
||||
|
width="500" |
||||
|
title="编辑奖惩记录" |
||||
|
append-to-body |
||||
|
:before-close="clostEditBoxJcjl" |
||||
|
> |
||||
|
<el-form |
||||
|
ref="editJcjlFormRef" |
||||
|
:model="jcjlFormData" |
||||
|
:rules="editJcjlRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="奖惩级别" prop="level"> |
||||
|
<el-select v-model="jcjlFormData.level" placeholder="请选择奖惩级别"> |
||||
|
<el-option |
||||
|
v-for="item in rewardlevel" |
||||
|
:key="item.id" |
||||
|
:label="item.name" |
||||
|
:value="item.id" /> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩类型" prop="type"> |
||||
|
<el-input v-model="jcjlFormData.type" placeholder="请输入奖惩类型" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩内容" prop="content"> |
||||
|
<el-input v-model="jcjlFormData.content" type="textarea" placeholder="请输入奖惩内容" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩时间" prop="time"> |
||||
|
<el-date-picker |
||||
|
v-model="jcjlFormData.time" |
||||
|
type="date" |
||||
|
placeholder="请选择奖惩时间" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
style="width: 100%;" |
||||
|
size="default" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="奖惩单位" prop="company"> |
||||
|
<el-input v-model="jcjlFormData.company" placeholder="请输入奖惩单位" /> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="editLoading" @click="submitEditJcjl" |
||||
|
>确 定</el-button |
||||
|
> |
||||
|
<el-button @click="clostEditBoxJcjl">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style></style> |
||||
@ -0,0 +1,138 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 人才盘点 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { rencaipandian } from "@/api/hr/people/type"; |
||||
|
import { |
||||
|
getTalentinventoryCont, |
||||
|
editTalentinventoryContState, |
||||
|
} from "@/api/hr/people/index"; |
||||
|
|
||||
|
import EditTalentinventory from "@/views/hr/archives/basicinformation/talentinventoryedit.vue"; |
||||
|
import AddTalentinventory from "@/views/hr/archives/basicinformation/talentinventoryadd.vue"; |
||||
|
const props = defineProps({ |
||||
|
tabsid: { |
||||
|
type: String, |
||||
|
default: "1", |
||||
|
}, |
||||
|
usercont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const editrcpdBoxPage = ref(false); |
||||
|
const addrcpdBoxPage = ref(false); |
||||
|
|
||||
|
const tableLoading = ref(false); |
||||
|
const rcpdList = ref<rencaipandian[]>([]); |
||||
|
const rcpdInfo = ref<rencaipandian>(); |
||||
|
const getrcpdList = () => { |
||||
|
tableLoading.value = true; |
||||
|
getTalentinventoryCont({ id: props.usercont.keystr }) |
||||
|
.then((data) => { |
||||
|
rcpdList.value = data.data; |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
tableLoading.value = false; |
||||
|
}); |
||||
|
}; |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.tabsid, |
||||
|
() => { |
||||
|
if (props.tabsid == "3") { |
||||
|
getrcpdList(); |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
/** |
||||
|
* 添加数据 |
||||
|
*/ |
||||
|
const addrcpdBox = (key: string) => { |
||||
|
addrcpdBoxPage.value = true; |
||||
|
}; |
||||
|
/** |
||||
|
* 编辑人才盘点 |
||||
|
*/ |
||||
|
const editrcpdBox = (cont: rencaipandian) => { |
||||
|
rcpdInfo.value = cont; |
||||
|
editrcpdBoxPage.value = true; |
||||
|
}; |
||||
|
/** |
||||
|
* 删除人才盘点 |
||||
|
*/ |
||||
|
const delrcpdBox = (cont: rencaipandian) => { |
||||
|
ElMessageBox.confirm("确认删除<" + cont.id + ">此数据项?", "警告", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
editTalentinventoryContState({ id: toString(), state: 3, isdel: 1 }).then( |
||||
|
() => { |
||||
|
ElMessage.success("删除成功"); |
||||
|
getrcpdList(); |
||||
|
} |
||||
|
); |
||||
|
}); |
||||
|
}; |
||||
|
</script> |
||||
|
<template> |
||||
|
<AddTalentinventory |
||||
|
v-model:addisshow="addrcpdBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
@restdata="getrcpdList" |
||||
|
/> |
||||
|
<EditTalentinventory |
||||
|
v-model:editisshow="editrcpdBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
:datacont="rcpdInfo" |
||||
|
@restdata="getrcpdList" |
||||
|
/> |
||||
|
<el-table |
||||
|
v-loading="tableLoading" |
||||
|
highlight-current-row |
||||
|
:data="rcpdList" |
||||
|
border |
||||
|
:header-cell-style="{ background: '#F5F7FA' }" |
||||
|
> |
||||
|
<el-table-column label="职业生涯规划" prop="career" /> |
||||
|
<el-table-column label="期望从组织获得的帮助" prop="expecthelp" /> |
||||
|
<el-table-column fixed="right" align="right" width="130"> |
||||
|
<template #header> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="addrcpdBox(props.usercont.keystr)" |
||||
|
> |
||||
|
<i-ep-plus /> 新增 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="editrcpdBox(scope.row)" |
||||
|
> |
||||
|
<i-ep-edit />编辑 |
||||
|
</el-button> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="delrcpdBox(scope.row)" |
||||
|
> |
||||
|
<i-ep-delete />删除 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</template> |
||||
|
<style></style> |
||||
@ -0,0 +1,103 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 添加人才盘点 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { TalentinventoryCont } from "@/api/hr/people/type"; |
||||
|
import { addTalentinventoryCont } from "@/api/hr/people/index"; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
addisshow: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
}); |
||||
|
const addLoading = ref(false); |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const addrcpdFormRef = ref(ElForm); |
||||
|
const rcpdFormData = reactive<TalentinventoryCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const addshow = computed({ |
||||
|
get: () => props.addisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const addrcpdRules = reactive({}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostAddBoxrcpd = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initrcpdData(); |
||||
|
}; |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initrcpdData = () => { |
||||
|
addrcpdFormRef.value.resetFields(); |
||||
|
addLoading.value = false; |
||||
|
}; |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitAddrcpd = () => { |
||||
|
addrcpdFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
let listAry = new Array(); |
||||
|
listAry.push(rcpdFormData); |
||||
|
addTalentinventoryCont({ id: props.keyval, list: listAry }) |
||||
|
.then(() => { |
||||
|
ElMessage.success("新增成功"); |
||||
|
clostAddBoxrcpd(); |
||||
|
emits("restdata"); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
addLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog |
||||
|
v-model="addshow" |
||||
|
width="500" |
||||
|
title="添加人才盘点" |
||||
|
append-to-body |
||||
|
:before-close="clostAddBoxrcpd" |
||||
|
> |
||||
|
<el-form |
||||
|
ref="addrcpdFormRef" |
||||
|
:model="rcpdFormData" |
||||
|
:rules="addrcpdRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="职业生涯规划" prop="career"> |
||||
|
<el-input v-model="rcpdFormData.career" type="textarea" placeholder="请填写职业生涯规划" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="期望获得的帮助" prop="expecthelp"> |
||||
|
<el-input v-model="rcpdFormData.expecthelp" type="textarea" placeholder="请填写期望从组织获得的帮助" /> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="addLoading" @click="submitAddrcpd" |
||||
|
>确 定</el-button |
||||
|
> |
||||
|
<el-button @click="clostAddBoxrcpd">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style></style> |
||||
@ -0,0 +1,118 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 编辑人才盘点 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { TalentinventoryCont } from "@/api/hr/people/type"; |
||||
|
import { editTalentinventoryCont } from "@/api/hr/people/index"; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
editisshow: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
keyval: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
datacont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const editLoading = ref(false); |
||||
|
const emits = defineEmits(["update:addisshow", "restdata"]); |
||||
|
const editrcpdFormRef = ref(ElForm); |
||||
|
const rcpdFormData = reactive<TalentinventoryCont>({}); |
||||
|
/** |
||||
|
* 弹窗显示控制 |
||||
|
*/ |
||||
|
const editshow = computed({ |
||||
|
get: () => props.editisshow, |
||||
|
set: (val) => { |
||||
|
emits("update:addisshow", val); |
||||
|
}, |
||||
|
}); |
||||
|
/** |
||||
|
* 表单验证规则 |
||||
|
*/ |
||||
|
const editrcpdRules = reactive({}); |
||||
|
/** |
||||
|
* 关闭弹窗 |
||||
|
*/ |
||||
|
const clostEditBoxrcpd = () => { |
||||
|
emits("update:addisshow", false); |
||||
|
initrcpdData(); |
||||
|
}; |
||||
|
/** |
||||
|
* 初始化数据 |
||||
|
*/ |
||||
|
const initrcpdData = () => { |
||||
|
editrcpdFormRef.value.resetFields(); |
||||
|
editLoading.value = false; |
||||
|
}; |
||||
|
/** |
||||
|
* 提交数据 |
||||
|
*/ |
||||
|
const submitEditrcpd = () => { |
||||
|
editrcpdFormRef.value.validate((isValid: boolean) => { |
||||
|
if (isValid) { |
||||
|
editTalentinventoryCont(rcpdFormData) |
||||
|
.then(() => { |
||||
|
ElMessage.success("编辑成功"); |
||||
|
clostEditBoxrcpd(); |
||||
|
emits("restdata"); |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
editLoading.value = false; |
||||
|
}); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.editisshow, |
||||
|
() => { |
||||
|
if (props.editisshow) { |
||||
|
rcpdFormData.id = props.datacont.id.toString(); |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
</script> |
||||
|
<template> |
||||
|
<el-dialog |
||||
|
v-model="editshow" |
||||
|
width="500" |
||||
|
title="编辑人才盘点" |
||||
|
append-to-body |
||||
|
:before-close="clostEditBoxrcpd" |
||||
|
> |
||||
|
<el-form |
||||
|
ref="editrcpdFormRef" |
||||
|
:model="rcpdFormData" |
||||
|
:rules="editrcpdRules" |
||||
|
label-width="140px" |
||||
|
> |
||||
|
<el-form-item label="职业生涯规划" prop="career"> |
||||
|
<el-input v-model="rcpdFormData.career" type="textarea" placeholder="请填写职业生涯规划" /> |
||||
|
</el-form-item> |
||||
|
<el-form-item label="期望获得的帮助" prop="expecthelp"> |
||||
|
<el-input v-model="rcpdFormData.expecthelp" type="textarea" placeholder="请填写期望从组织获得的帮助" /> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<template #footer> |
||||
|
<div class="dialog-footer"> |
||||
|
<el-button type="primary" :loading="editLoading" @click="submitEditrcpd" |
||||
|
>确 定</el-button |
||||
|
> |
||||
|
<el-button @click="clostEditBoxrcpd">取 消</el-button> |
||||
|
</div> |
||||
|
</template> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
<style></style> |
||||
Loading…
Reference in new issue