pull/781/head
zy 2025-05-19 16:21:23 +08:00
parent 8a6758ba60
commit 4d78cc06f2
5 changed files with 176 additions and 89 deletions

View File

@ -961,6 +961,25 @@ const remainingRouter: AppRouteRecordRaw[] = [
},
]
},
{
path: '/hrm',
component: Layout,
name: 'HrmCenter',
meta: { hidden: true },
children: [
{
path: 'mentorsapply/MentorsApplyForm',
name: 'MentorsApplyAdd',
meta: {
title: '师徒新增',
noCache: true,
hidden: true,
activeMenu: '/hrm/mentorsapply'
},
component: () => import('@/views/hrm/mentorsapply/MentorsApplyForm.vue')
},
]
},
{
path: '/ai',
component: Layout,

View File

@ -247,6 +247,11 @@ export enum DICT_TYPE {
TTS_APPLY_STATUS = 'tts_apply_status',
// ========== HRM ==========
HRM_MENTORS_TYPE = 'hrm_mentors_type',
// ========== ERP - 企业资源计划模块 ==========
ERP_AUDIT_STATUS = 'erp_audit_status', // ERP 审批状态
ERP_STOCK_RECORD_BIZ_TYPE = 'erp_stock_record_biz_type', // 库存明细的业务类型

View File

@ -72,7 +72,7 @@ const props = defineProps<{
products: undefined
}>()
const loading = ref(true) //
const loading = ref(false) //
const formLoading = ref(false) //
const formData = ref([])
interface RevenueAnalysisVO {

View File

@ -1,5 +1,5 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<ContentWrap>
<el-form
ref="formRef"
:model="formData"
@ -7,48 +7,112 @@
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="员工档案ID" prop="userId">
<el-input v-model="formData.userId" placeholder="请输入员工档案ID" />
</el-form-item>
<el-form-item label="工作流编号" prop="processInstanceId">
<el-input v-model="formData.processInstanceId" placeholder="请输入工作流编号" />
</el-form-item>
<el-form-item label="审批状态" prop="auditStatus">
<el-radio-group v-model="formData.auditStatus">
<el-radio value="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="师徒类型. 0拜师 1收徒" prop="mentorsType">
<el-select v-model="formData.mentorsType" placeholder="请选择师徒类型. 0拜师 1收徒">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HRM_MENTORS_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="接受员工Id" prop="acceptUserId">
<el-input v-model="formData.acceptUserId" placeholder="请输入接受员工Id" />
</el-form-item>
<el-form-item label="生效日期" prop="effectiverDate">
<el-date-picker
v-model="formData.effectiverDate"
type="date"
value-format="x"
placeholder="选择生效日期"
/>
</el-form-item>
<el-row>
<el-col :span="24">
<ContentWrap style="border: none">
本人信息
</ContentWrap>
</el-col>
<el-col :span="12">
<el-form-item label="本人姓名" prop="userId">
<el-select
v-model="formData.userId"
filterable
>
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.nickname"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="员工工号" prop="processInstanceId">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号" prop="auditStatus">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="部门名称" prop="auditStatus">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="岗位名称" prop="auditStatus">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="24">
<ContentWrap style="border: none">
师徒类型
</ContentWrap>
</el-col>
<el-col :span="24">
<el-form-item label="师徒类型" prop="mentorsType">
<el-select v-model="formData.mentorsType" placeholder="请选择师徒类型">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HRM_MENTORS_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="本人姓名" prop="userId">
<el-input v-model="formData.userId" placeholder="请输入员工档案ID" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="员工工号" prop="processInstanceId">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号" prop="auditStatus">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="部门名称" prop="auditStatus">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="岗位名称" prop="auditStatus">
<el-input v-model="formData.processInstanceId" disabled placeholder="" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="申请日期" prop="effectiverDate">
<el-date-picker
v-model="formData.effectiverDate"
type="date"
value-format="x"
placeholder="选择申请日期"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</ContentWrap>
</template>
<script setup lang="ts">
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { MentorsApplyApi, MentorsApplyVO } from '@/api/hrm/mentorsapply'
import * as UserApi from '@/api/system/user'
/** 师徒申请 表单 */
defineOptions({ name: 'MentorsApplyForm' })
@ -60,6 +124,7 @@ const dialogVisible = ref(false) // 弹窗的是否展示
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const userOptions = ref<UserApi.UserVO[]>([]) //
const formData = ref({
id: undefined,
userId: undefined,
@ -133,4 +198,10 @@ const resetForm = () => {
}
formRef.value?.resetFields()
}
/** 初始化 **/
onMounted(async() => {
//
userOptions.value = await UserApi.getSimpleUserList()
})
</script>

View File

@ -8,25 +8,21 @@
:inline="true"
label-width="68px"
>
<el-form-item label="员工档案ID" prop="userId">
<el-input
<el-form-item label="员工姓名" prop="userId">
<el-select
v-model="queryParams.userId"
placeholder="请输入员工档案ID"
clearable
@keyup.enter="handleQuery"
filterable
class="!w-240px"
/>
>
<el-option
v-for="item in userOptions"
:key="item.id"
:label="item.nickname"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item label="工作流编号" prop="processInstanceId">
<el-input
v-model="queryParams.processInstanceId"
placeholder="请输入工作流编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="审批状态" prop="auditStatus">
<!-- <el-form-item label="审批状态" prop="auditStatus">
<el-select
v-model="queryParams.auditStatus"
placeholder="请选择审批状态"
@ -35,11 +31,11 @@
>
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="师徒类型. 0拜师 1收徒" prop="mentorsType">
</el-form-item> -->
<el-form-item label="师徒类型" prop="mentorsType">
<el-select
v-model="queryParams.mentorsType"
placeholder="请选择师徒类型. 0拜师 1收徒"
placeholder="请选择师徒类型"
clearable
class="!w-240px"
>
@ -51,27 +47,18 @@
/>
</el-select>
</el-form-item>
<el-form-item label="接受员工Id" prop="acceptUserId">
<el-input
v-model="queryParams.acceptUserId"
placeholder="请输入接受员工Id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="生效日期" prop="effectiverDate">
<el-date-picker
v-model="queryParams.effectiverDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-220px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<!-- <el-form-item label="所属部门" prop="feedbackDeptId">
<el-tree-select
v-model="queryParams.feedbackDeptId"
class="!w-240px"
:data="deptList"
:props="defaultProps"
check-strictly
node-key="id"
placeholder="请选择部门"
/>
</el-form-item> -->
<el-form-item label="申请时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
@ -88,7 +75,7 @@
<el-button
type="primary"
plain
@click="openForm('create')"
@click="openFormAdd('create')"
v-hasPermi="['hrm:mentors-apply:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
@ -109,19 +96,17 @@
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="主键,自动递增" align="center" prop="id" />
<el-table-column label="员工档案ID" align="center" prop="userId" />
<el-table-column label="工作流编号" align="center" prop="processInstanceId" />
<el-table-column label="审批状态" align="center" prop="auditStatus" />
<el-table-column label="师徒类型. 0拜师 1收徒" align="center" prop="mentorsType">
<el-table-column label="员工姓名" align="center" prop="id" />
<el-table-column label="所属行业" align="center" prop="userId" />
<el-table-column label="岗位名称" align="center" prop="processInstanceId" />
<el-table-column label="师徒类型" align="center" prop="mentorsType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HRM_MENTORS_TYPE" :value="scope.row.mentorsType" />
</template>
</el-table-column>
<el-table-column label="接受员工Id" align="center" prop="acceptUserId" />
<el-table-column label="生效日期" align="center" prop="effectiverDate" />
<el-table-column label="申请状态" align="center" prop="auditStatus" />
<el-table-column
label="创建时间"
label="申请时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
@ -158,7 +143,6 @@
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<MentorsApplyForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
@ -166,11 +150,12 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import { MentorsApplyApi, MentorsApplyVO } from '@/api/hrm/mentorsapply'
import MentorsApplyForm from './MentorsApplyForm.vue'
import * as UserApi from '@/api/system/user'
/** 师徒申请 列表 */
defineOptions({ name: 'MentorsApply' })
const userOptions = ref<UserApi.UserVO[]>([]) //
const message = useMessage() //
const { t } = useI18n() //
@ -217,8 +202,13 @@ const resetQuery = () => {
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
// const openForm = (type: string, id?: number) => {
// formRef.value.open(type, id)
// }
const router = useRouter() //
const { push } = useRouter()
const openFormAdd = () => {
push({ name: 'MentorsApplyAdd' })
}
/** 删除按钮操作 */
@ -250,7 +240,9 @@ const handleExport = async () => {
}
/** 初始化 **/
onMounted(() => {
onMounted(async() => {
//
userOptions.value = await UserApi.getSimpleUserList()
getList()
})
</script>