32 changed files with 4735 additions and 1390 deletions
File diff suppressed because it is too large
@ -0,0 +1,138 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 考评记录 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { kaopingjilu } from "@/api/hr/people/type"; |
||||
|
import { |
||||
|
getAppraisalrecordCont, |
||||
|
editAppraisalrecordContState, |
||||
|
} from "@/api/hr/people/index"; |
||||
|
|
||||
|
import AddAppraisalrecord from "@/views/hr/archives/basicinformation/appraisalrecordadd.vue"; |
||||
|
import EditAppraisalrecord from "@/views/hr/archives/basicinformation/appraisalrecordedit.vue"; |
||||
|
const props = defineProps({ |
||||
|
tabsid: { |
||||
|
type: String, |
||||
|
default: "1", |
||||
|
}, |
||||
|
usercont: { |
||||
|
type: Object, |
||||
|
default() { |
||||
|
return {}; |
||||
|
}, |
||||
|
}, |
||||
|
}); |
||||
|
const addkpjlBoxPage = ref(false); |
||||
|
const editkpjlBoxPage = ref(false); |
||||
|
|
||||
|
const tableLoading = ref(false); |
||||
|
const kpjlList = ref<kaopingjilu[]>([]); |
||||
|
const kpjlInfo = ref<kaopingjilu>(); |
||||
|
const getkpjlList = () => { |
||||
|
tableLoading.value = true; |
||||
|
getAppraisalrecordCont({ id: props.usercont.keystr }) |
||||
|
.then((data) => { |
||||
|
kpjlList.value = data.data; |
||||
|
}) |
||||
|
.finally(() => { |
||||
|
tableLoading.value = false; |
||||
|
}); |
||||
|
}; |
||||
|
/** |
||||
|
* 监听数据 |
||||
|
*/ |
||||
|
watch( |
||||
|
() => props.tabsid, |
||||
|
() => { |
||||
|
if (props.tabsid == "3") { |
||||
|
getkpjlList(); |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
/** |
||||
|
* 添加数据 |
||||
|
*/ |
||||
|
const addkpjlBox = (key: string) => { |
||||
|
addkpjlBoxPage.value = true; |
||||
|
}; |
||||
|
/** |
||||
|
* 编辑考评记录 |
||||
|
*/ |
||||
|
const editkpjlBox = (cont: kaopingjilu) => { |
||||
|
kpjlInfo.value = cont; |
||||
|
editkpjlBoxPage.value = true; |
||||
|
}; |
||||
|
/** |
||||
|
* 删除考评记录 |
||||
|
*/ |
||||
|
const delkpjlBox = (cont: kaopingjilu) => { |
||||
|
ElMessageBox.confirm("确认删除<" + cont.id + ">此数据项?", "警告", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
}).then(() => { |
||||
|
editAppraisalrecordContState({ id: toString(), state: 3, isdel: 1 }).then( |
||||
|
() => { |
||||
|
ElMessage.success("删除成功"); |
||||
|
getkpjlList(); |
||||
|
} |
||||
|
); |
||||
|
}); |
||||
|
}; |
||||
|
</script> |
||||
|
<template> |
||||
|
<AddAppraisalrecord |
||||
|
v-model:addisshow="addkpjlBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
@restdata="getkpjlList" |
||||
|
/> |
||||
|
<EditAppraisalrecord |
||||
|
v-model:editisshow="editkpjlBoxPage" |
||||
|
:keyval="props.usercont.keystr" |
||||
|
:datacont="kpjlInfo" |
||||
|
@restdata="getkpjlList" |
||||
|
/> |
||||
|
<el-table |
||||
|
v-loading="tableLoading" |
||||
|
highlight-current-row |
||||
|
:data="kpjlList" |
||||
|
border |
||||
|
:header-cell-style="{ background: '#F5F7FA' }" |
||||
|
> |
||||
|
<el-table-column label="考核年度" prop="year" /> |
||||
|
<el-table-column label="考核等级" prop="level" /> |
||||
|
<el-table-column fixed="right" align="right" width="130"> |
||||
|
<template #header> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="addkpjlBox(props.usercont.keystr)" |
||||
|
> |
||||
|
<i-ep-plus /> 新增 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
<template #default="scope"> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="editkpjlBox(scope.row)" |
||||
|
> |
||||
|
<i-ep-edit />编辑 |
||||
|
</el-button> |
||||
|
<el-button |
||||
|
type="primary" |
||||
|
link |
||||
|
size="small" |
||||
|
@click.stop="delkpjlBox(scope.row)" |
||||
|
> |
||||
|
<i-ep-delete />删除 |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</template> |
||||
|
<style></style> |
||||
@ -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,155 @@ |
|||||
|
<!-- |
||||
|
@ 作者: 袁纪菲 |
||||
|
@ 时间: 2024-4-22 |
||||
|
@ 备注: 性格色彩 |
||||
|
--> |
||||
|
<script lang="ts" setup> |
||||
|
import { ref } from "vue"; |
||||
|
import * as echarts from "echarts"; |
||||
|
|
||||
|
// 定义一个ref用于存储占比最高的两种性格色彩 |
||||
|
const topTwoColours = ref<string[]>([]); |
||||
|
const option = { |
||||
|
tooltip: { |
||||
|
trigger: "axis", |
||||
|
}, |
||||
|
radar: [ |
||||
|
{ |
||||
|
indicator: [ |
||||
|
{ name: "红色", max: 100 }, |
||||
|
{ name: "蓝色", max: 100 }, |
||||
|
{ name: "黄色", max: 100 }, |
||||
|
{ name: "绿色", max: 100 }, |
||||
|
], |
||||
|
center: ["50%", "50%"], |
||||
|
radius: 90, |
||||
|
}, |
||||
|
], |
||||
|
series: [ |
||||
|
{ |
||||
|
type: "radar", |
||||
|
tooltip: { |
||||
|
trigger: "item", |
||||
|
}, |
||||
|
areaStyle: {}, |
||||
|
data: [ |
||||
|
{ |
||||
|
value: [77, 55, 66, 33], |
||||
|
name: "性格色彩", |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
}; |
||||
|
onMounted(() => { |
||||
|
// 计算四种色彩的占比并找出最高的两种 |
||||
|
const values = option.series[0].data[0].value; |
||||
|
const colors = ["红色", "蓝色", "黄色", "绿色"]; |
||||
|
const percentages = values.map((val) => val / 100); |
||||
|
const sortedColors = colors.sort( |
||||
|
(a, b) => percentages[colors.indexOf(b)] - percentages[colors.indexOf(a)] |
||||
|
); |
||||
|
topTwoColours.value = sortedColors.slice(0, 2); |
||||
|
// 初始化echarts实例 |
||||
|
Promise.resolve().then(() => { |
||||
|
const dom = document.getElementById("myChart"); |
||||
|
const myChart = echarts.init(dom); |
||||
|
window.addEventListener("resize", () => { |
||||
|
myChart.resize(); // 大小自适应 |
||||
|
}); |
||||
|
|
||||
|
myChart.setOption(option); |
||||
|
}); |
||||
|
}); |
||||
|
</script> |
||||
|
<template> |
||||
|
<div> |
||||
|
<div class="title">性格色彩特质</div> |
||||
|
<!-- 雷达图 --> |
||||
|
<div id="myChart" class="chart"></div> |
||||
|
<!-- 文字部分 --> |
||||
|
<div class="text-content"> |
||||
|
<el-row> |
||||
|
<el-col v-for="(item, index) in topTwoColours" :key="index" :span="24"> |
||||
|
<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> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<style scoped> |
||||
|
|
||||
|
.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