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', path: '/ai',
component: Layout, component: Layout,

View File

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

View File

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

View File

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

View File

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