Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
H
hr-admin-view
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
anjia-hr
hr-admin-view
Commits
645fabe9
Commit
645fabe9
authored
Dec 03, 2025
by
刘斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 251203版本修改
parent
818eb0e7
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
819 additions
and
279 deletions
+819
-279
employeeFlow.ts
apps/web-antd/src/api/hr/employeeFlow.ts
+8
-0
employeeModel.d.ts
apps/web-antd/src/api/hr/employeeModel.d.ts
+108
-18
apply-renewal-contract-model.vue
...ntractExpirationReminder/apply-renewal-contract-model.vue
+70
-23
dict-enum.ts
apps/web-antd/src/views/hr/dict-enum.ts
+2
-0
apply-resign-model.vue
...web-antd/src/views/hr/employeeInfo/apply-resign-model.vue
+16
-12
apply-transfer-model.vue
...b-antd/src/views/hr/employeeInfo/apply-transfer-model.vue
+39
-1
data.ts
apps/web-antd/src/views/hr/employeeInfo/data.ts
+392
-167
employee-detail-drawer.vue
...antd/src/views/hr/employeeInfo/employee-detail-drawer.vue
+40
-10
form.vue
apps/web-antd/src/views/hr/employeeInfo/form.vue
+91
-9
apply-regular-model.vue
...antd/src/views/hr/regularReminder/apply-regular-model.vue
+53
-39
No files found.
apps/web-antd/src/api/hr/employeeFlow.ts
View file @
645fabe9
...
@@ -107,6 +107,14 @@ export function apiPage(params: PageQuery) {
...
@@ -107,6 +107,14 @@ export function apiPage(params: PageQuery) {
export
function
apiDetail
(
id
:
number
)
{
export
function
apiDetail
(
id
:
number
)
{
return
requestClient
.
get
(
`/employee/flow/
${
id
}
`
);
return
requestClient
.
get
(
`/employee/flow/
${
id
}
`
);
}
}
/**
* 用员工信息初始化审批对象
* @param type
* @param id
*/
export
function
initByEmployeeId
(
type
:
string
,
id
:
number
)
{
return
requestClient
.
get
(
`/employee/flow/init/
${
type
}
/
${
id
}
`
);
}
/**
/**
* 新增人事审批对象
* 新增人事审批对象
* @param data
* @param data
...
...
apps/web-antd/src/api/hr/employeeModel.d.ts
View file @
645fabe9
...
@@ -84,25 +84,31 @@ export namespace EmployeeInfoApi {
...
@@ -84,25 +84,31 @@ export namespace EmployeeInfoApi {
ageGroup
?:
string
;
ageGroup
?:
string
;
ageGroupName
?:
string
;
ageGroupName
?:
string
;
/**
/**
* 兼
职
板块
* 兼
岗
板块
*/
*/
partTime
Plate
?:
string
;
concurrent
Plate
?:
string
;
/**
/**
* 兼
职
一级部门
* 兼
岗
一级部门
*/
*/
partTime
FirstDept
?:
string
;
concurrent
FirstDept
?:
string
;
/**
/**
* 兼
职
二级部门
* 兼
岗
二级部门
*/
*/
partTime
SecondDept
?:
string
;
concurrent
SecondDept
?:
string
;
/**
/**
* 兼
职
三级部门
* 兼
岗
三级部门
*/
*/
partTime
ThirdDept
?:
string
;
concurrent
ThirdDept
?:
string
;
/**
/**
* 兼
职
岗位
* 兼
岗
岗位
*/
*/
partTimePosition
?:
string
;
concurrentPosition
?:
string
;
/**
* 兼岗岗位类型
*/
concurrentPositionType
?:
string
;
concurrentPositionTypeName
?:
string
;
/**
/**
* 籍贯
* 籍贯
*/
*/
...
@@ -265,19 +271,25 @@ export namespace EmployeeInfoApi {
...
@@ -265,19 +271,25 @@ export namespace EmployeeInfoApi {
/**
/**
* 是否缴纳社保
* 是否缴纳社保
*/
*/
hasSocialSecurityPaid
?:
number
;
hasSocialSecurityPaid
?:
string
;
hasSocialSecurityPaidName
?:
number
;
hasSocialSecurityPaidName
?:
string
;
/**
/**
* 公积金主体
* 公积金主体
*/
*/
providentFundEntity
?:
number
;
providentFundEntity
?:
string
;
/**
/**
* 是否缴纳公积金
* 是否缴纳公积金
*/
*/
hasProvidentFundPaid
?:
number
;
hasProvidentFundPaid
?:
string
;
hasProvidentFundPaidName
?:
number
;
hasProvidentFundPaidName
?:
string
;
/**
* 是否缴纳雇主险
*/
hasEmployerInsurancePaid
?:
string
;
hasEmployerInsurancePaidName
?:
string
;
/**
/**
* 试用期(月数)
* 试用期(月数)
...
@@ -329,20 +341,69 @@ export namespace EmployeeInfoApi {
...
@@ -329,20 +341,69 @@ export namespace EmployeeInfoApi {
* 介绍人
* 介绍人
*/
*/
introducer
?:
string
;
introducer
?:
string
;
/**
* 介绍人关系
*/
introducerRelation
?:
string
;
/**
/**
* 工资发放地
* 工资发放地
*/
*/
salaryLocation
?:
string
;
salaryLocation
?:
string
;
/**
* 编制所在地
*/
staffingLocation
?:
string
;
/**
* 成本费用所属(写部门)
*/
costOfDept
?:
string
;
/**
* 成本费用细分
*/
costType
?:
string
;
costTypeName
?:
string
;
/**
/**
* 绩效比例
* 绩效比例
*/
*/
performanceRatio
?:
string
;
performanceRatio
?:
string
;
/**
* 工装(某年某月发放价值多少钱的工装)
*/
workwearDetail
?:
string
;
/**
* 内部购房优惠(是,否)
*/
internalPurchaseDiscounts
?:
string
;
internalPurchaseDiscountsName
?:
string
;
/**
* 安泰业主(是,否)
*/
antaiHomeowners
?:
string
;
antaiHomeownersName
?:
string
;
/**
* 安泰小区信息
*/
antaiCommunityInfo
?:
string
;
/**
/**
* 离职类型
* 离职类型
*/
*/
resignationType
?:
string
;
resignationType
?:
string
;
resignationTypeName
?:
string
;
resignationTypeName
?:
string
;
/**
* 离职类别
*/
resignationCategory
?:
string
;
resignationCategoryName
?:
string
;
/**
/**
* 离职时间
* 离职时间
*/
*/
...
@@ -444,11 +505,32 @@ export namespace EmployeeInfoApi {
...
@@ -444,11 +505,32 @@ export namespace EmployeeInfoApi {
* 部门ID
* 部门ID
*/
*/
deptId
?:
number
;
deptId
?:
number
;
/**
/**
* 原先部门
* 原先部门
*/
*/
oldDeptName
?:
string
;
oldDeptName
?:
string
;
/**
* 编制所在地
*/
staffingLocation
?:
string
;
/**
* 成本费用所属(写部门)
*/
costOfDept
?:
string
;
/**
* 成本费用细分
*/
costType
?:
string
;
/**
* 绩效比例
*/
performanceRatio
?:
string
;
/**
* 内部个人履历
*/
internalResume
?:
string
;
}
}
export
interface
EmployeeResignApplyBo
extends
EmployeeApplyBaseBo
{
export
interface
EmployeeResignApplyBo
extends
EmployeeApplyBaseBo
{
...
@@ -459,11 +541,15 @@ export namespace EmployeeInfoApi {
...
@@ -459,11 +541,15 @@ export namespace EmployeeInfoApi {
/**
/**
* 离职时间
* 离职时间
*/
*/
resignDate
?:
Date
;
resignationDate
?:
Date
;
/**
* 离职类别
*/
resignationCategory
?:
string
;
/**
/**
* 离职原因
* 离职原因
*/
*/
resignReason
?:
string
;
resign
ation
Reason
?:
string
;
/**
/**
* 最后结薪日
* 最后结薪日
*/
*/
...
@@ -502,6 +588,10 @@ export namespace EmployeeInfoApi {
...
@@ -502,6 +588,10 @@ export namespace EmployeeInfoApi {
* 是否缴纳公积金
* 是否缴纳公积金
*/
*/
hasProvidentFundPaid
?:
string
;
hasProvidentFundPaid
?:
string
;
/**
* 是否缴纳雇主险
*/
hasEmployerInsurancePaid
?:
string
;
/**
/**
* 转正时间
* 转正时间
*/
*/
...
...
apps/web-antd/src/views/hr/contractExpirationReminder/apply-renewal-contract-model.vue
View file @
645fabe9
...
@@ -12,7 +12,7 @@ import { getVxePopupContainer } from '@vben/utils';
...
@@ -12,7 +12,7 @@ import { getVxePopupContainer } from '@vben/utils';
import
{
Button
}
from
'ant-design-vue'
;
import
{
Button
}
from
'ant-design-vue'
;
import
{
useVbenForm
}
from
'#/adapter/form'
;
import
{
useVbenForm
}
from
'#/adapter/form'
;
import
{
apiDetail
}
from
'#/api/hr/employeeFlow'
;
import
{
apiDetail
,
initByEmployeeId
}
from
'#/api/hr/employeeFlow'
;
import
{
applyRenewalContract
}
from
'#/api/hr/employeeInfo'
;
import
{
applyRenewalContract
}
from
'#/api/hr/employeeInfo'
;
import
{
getDictOptions
}
from
'#/utils/dict'
;
import
{
getDictOptions
}
from
'#/utils/dict'
;
import
{
defaultFormValueGetter
,
useBeforeCloseDiff
}
from
'#/utils/popup'
;
import
{
defaultFormValueGetter
,
useBeforeCloseDiff
}
from
'#/utils/popup'
;
...
@@ -77,6 +77,38 @@ const formSchema: VbenFormSchema[] = [
...
@@ -77,6 +77,38 @@ const formSchema: VbenFormSchema[] = [
label
:
'合同形式'
,
label
:
'合同形式'
,
rules
:
'required'
,
rules
:
'required'
,
},
},
{
component
:
'Checkbox'
,
fieldName
:
'indefiniteTerm'
,
label
:
''
,
renderComponentContent
:
()
=>
{
return
{
default
:
()
=>
[
'无固定期限'
],
};
},
},
{
component
:
'Input'
,
fieldName
:
'contractTerm'
,
dependencies
:
{
disabled
(
values
)
{
return
!!
values
.
indefiniteTerm
;
},
rules
(
values
)
{
if
(
!
values
.
indefiniteTerm
)
{
return
'required'
;
}
return
null
;
},
trigger
(
values
,
form
)
{
if
(
values
.
indefiniteTerm
)
{
form
.
setFieldValue
(
'contractTerm'
,
null
,
false
);
}
},
triggerFields
:
[
'indefiniteTerm'
],
},
label
:
'劳动合同期限'
,
},
{
{
component
:
'DatePicker'
,
component
:
'DatePicker'
,
componentProps
:
{
componentProps
:
{
...
@@ -95,38 +127,50 @@ const formSchema: VbenFormSchema[] = [
...
@@ -95,38 +127,50 @@ const formSchema: VbenFormSchema[] = [
valueFormat
:
'YYYY-MM-DD'
,
valueFormat
:
'YYYY-MM-DD'
,
getVxePopupContainer
,
getVxePopupContainer
,
},
},
dependencies
:
{
disabled
(
values
)
{
return
!!
values
.
indefiniteTerm
;
},
rules
(
values
)
{
if
(
!
values
.
indefiniteTerm
)
{
return
'required'
;
}
return
null
;
},
trigger
(
values
,
form
)
{
if
(
values
.
indefiniteTerm
)
{
form
.
setFieldValue
(
'contractEndDate'
,
null
,
false
);
}
},
triggerFields
:
[
'indefiniteTerm'
],
},
fieldName
:
'contractEndDate'
,
fieldName
:
'contractEndDate'
,
label
:
'合同截止时间'
,
label
:
'合同截止时间'
,
},
{
component
:
'Input'
,
fieldName
:
'contractEntity'
,
label
:
'合同主体'
,
rules
:
'required'
,
rules
:
'required'
,
},
},
// {
// component: 'Input',
// fieldName: 'contractEntity',
// label: '合同主体',
// rules: 'required',
// },
{
{
component
:
'Textarea'
,
component
:
'Textarea'
,
// componentProps: {
// buttonStyle: 'solid',
// optionType: 'button',
// },
fieldName
:
'contractSigningStatus'
,
fieldName
:
'contractSigningStatus'
,
label
:
'合同签订情况'
,
label
:
'合同签订情况'
,
rules
:
'required'
,
rules
:
'required'
,
},
},
//
{
{
//
component: 'Input',
component
:
'Input'
,
// fieldName: 'dictType
',
fieldName
:
'socialSecurityEntity
'
,
// label: '字典类型
',
label
:
'社保主体
'
,
//
rules: 'required',
//
rules: 'required',
//
},
},
//
{
{
//
component: 'Input',
component
:
'Input'
,
// fieldName: 'description
',
fieldName
:
'providentFundEntity
'
,
// label: '描述
',
label
:
'公积金主体
'
,
//
rules: 'required',
//
rules: 'required',
//
},
},
{
{
component
:
'Textarea'
,
component
:
'Textarea'
,
fieldName
:
'remark'
,
fieldName
:
'remark'
,
...
@@ -161,6 +205,7 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -161,6 +205,7 @@ const [BasicModal, modalApi] = useVbenModal({
onBeforeClose
,
onBeforeClose
,
onClosed
:
handleClosed
,
onClosed
:
handleClosed
,
onConfirm
:
onSubmit
,
onConfirm
:
onSubmit
,
confirmText
:
'提交申请'
,
onOpenChange
:
async
(
isOpen
)
=>
{
onOpenChange
:
async
(
isOpen
)
=>
{
if
(
!
isOpen
)
{
if
(
!
isOpen
)
{
return
null
;
return
null
;
...
@@ -176,6 +221,8 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -176,6 +221,8 @@ const [BasicModal, modalApi] = useVbenModal({
updateForm
(
isUpdate
.
value
);
updateForm
(
isUpdate
.
value
);
data
=
await
apiDetail
(
data
.
id
);
data
=
await
apiDetail
(
data
.
id
);
updateDataInfo
(
data
);
updateDataInfo
(
data
);
}
else
{
data
=
await
initByEmployeeId
(
'3'
,
data
.
employeeId
!
);
}
}
await
formApi
.
setValues
(
data
);
await
formApi
.
setValues
(
data
);
await
markInitialized
();
await
markInitialized
();
...
...
apps/web-antd/src/views/hr/dict-enum.ts
View file @
645fabe9
...
@@ -15,6 +15,8 @@ export const HrDictEnum = {
...
@@ -15,6 +15,8 @@ export const HrDictEnum = {
HR_RESIGNATION_TYPE
:
'hr_resignation_type'
,
// 员工离职类型
HR_RESIGNATION_TYPE
:
'hr_resignation_type'
,
// 员工离职类型
HR_RESIGN_YEARS_OF_SERVICE_TYPE
:
'hr_resign_years_of_service_type'
,
// 员工离职类型
HR_RESIGN_YEARS_OF_SERVICE_TYPE
:
'hr_resign_years_of_service_type'
,
// 员工离职类型
HR_CHANGE_LOG_TYPE
:
'hr_change_log_type'
,
// 员工离职类型
HR_CHANGE_LOG_TYPE
:
'hr_change_log_type'
,
// 员工离职类型
HR_RESIGNATION_CATEGORY
:
'hr_resignation_category'
,
// 员工离职类别
HR_COST_TYPE
:
'hr_cost_type'
,
// 员工成本费用细分
// SYS_JOB_TYPE: 'sys_job_type', // 定时任务类型
// SYS_JOB_TYPE: 'sys_job_type', // 定时任务类型
// SYS_JOB_STATUS: 'sys_job_status', // 定时任务状态
// SYS_JOB_STATUS: 'sys_job_status', // 定时任务状态
// SYS_OSS_ACCESS_POLICY: 'oss_access_policy', // oss权限桶类型
// SYS_OSS_ACCESS_POLICY: 'oss_access_policy', // oss权限桶类型
...
...
apps/web-antd/src/views/hr/employeeInfo/apply-resign-model.vue
View file @
645fabe9
...
@@ -67,11 +67,10 @@ const formSchema: VbenFormSchema[] = [
...
@@ -67,11 +67,10 @@ const formSchema: VbenFormSchema[] = [
disabled
:
true
,
disabled
:
true
,
},
},
{
{
component
:
'
RadioGroup
'
,
component
:
'
Select
'
,
componentProps
:
{
componentProps
:
{
buttonStyle
:
'solid'
,
optionType
:
'button'
,
options
:
getDictOptions
(
HrDictEnum
.
HR_RESIGNATION_TYPE
),
options
:
getDictOptions
(
HrDictEnum
.
HR_RESIGNATION_TYPE
),
getVxePopupContainer
,
},
},
fieldName
:
'resignationType'
,
fieldName
:
'resignationType'
,
defaultValue
:
'1'
,
defaultValue
:
'1'
,
...
@@ -85,13 +84,23 @@ const formSchema: VbenFormSchema[] = [
...
@@ -85,13 +84,23 @@ const formSchema: VbenFormSchema[] = [
valueFormat
:
'YYYY-MM-DD'
,
valueFormat
:
'YYYY-MM-DD'
,
getVxePopupContainer
,
getVxePopupContainer
,
},
},
fieldName
:
'resignDate'
,
fieldName
:
'resign
ation
Date'
,
label
:
'离职日期'
,
label
:
'离职日期'
,
rules
:
'required'
,
rules
:
'required'
,
},
},
{
component
:
'Select'
,
componentProps
:
{
options
:
getDictOptions
(
HrDictEnum
.
HR_RESIGNATION_CATEGORY
),
getVxePopupContainer
,
},
fieldName
:
'resignationCategory'
,
label
:
'离职类别'
,
rules
:
'required'
,
},
{
{
component
:
'Input'
,
component
:
'Input'
,
fieldName
:
'resignReason'
,
fieldName
:
'resign
ation
Reason'
,
label
:
'离职原因'
,
label
:
'离职原因'
,
// rules: 'required',
// rules: 'required',
},
},
...
@@ -146,6 +155,7 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -146,6 +155,7 @@ const [BasicModal, modalApi] = useVbenModal({
onBeforeClose
,
onBeforeClose
,
onClosed
:
handleClosed
,
onClosed
:
handleClosed
,
onConfirm
:
onSubmit
,
onConfirm
:
onSubmit
,
confirmText
:
'提交申请'
,
onOpenChange
:
async
(
isOpen
)
=>
{
onOpenChange
:
async
(
isOpen
)
=>
{
if
(
!
isOpen
)
{
if
(
!
isOpen
)
{
return
null
;
return
null
;
...
@@ -160,7 +170,7 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -160,7 +170,7 @@ const [BasicModal, modalApi] = useVbenModal({
if
(
isUpdate
.
value
&&
data
.
id
)
{
if
(
isUpdate
.
value
&&
data
.
id
)
{
updateForm
(
isUpdate
.
value
);
updateForm
(
isUpdate
.
value
);
data
=
await
apiDetail
(
data
.
id
);
data
=
await
apiDetail
(
data
.
id
);
updateDataInfo
(
data
,
mapDict
);
updateDataInfo
(
data
);
}
}
await
formApi
.
setValues
(
data
);
await
formApi
.
setValues
(
data
);
await
markInitialized
();
await
markInitialized
();
...
@@ -178,12 +188,6 @@ const { handleTempSave, onSubmitFunc, updateDataInfo, updateForm } =
...
@@ -178,12 +188,6 @@ const { handleTempSave, onSubmitFunc, updateDataInfo, updateForm } =
function
onSubmit
()
{
function
onSubmit
()
{
onSubmitFunc
(
applyModalApi
.
value
);
onSubmitFunc
(
applyModalApi
.
value
);
}
}
const
mapDict
:
Record
<
string
,
string
>
=
{
resignationType
:
'resignationType'
,
resignationDate
:
'resignDate'
,
resignationReason
:
'resignReason'
,
finalPayDate
:
'finalPayDate'
,
};
// function updateDataInfo(data: EmployeeInfoApi.EmployeeApplyBaseBo) {
// function updateDataInfo(data: EmployeeInfoApi.EmployeeApplyBaseBo) {
// if (data.auditLogList && data.auditLogList.length > 0) {
// if (data.auditLogList && data.auditLogList.length > 0) {
// data.auditLogList.map((t) => {
// data.auditLogList.map((t) => {
...
...
apps/web-antd/src/views/hr/employeeInfo/apply-transfer-model.vue
View file @
645fabe9
...
@@ -13,10 +13,12 @@ import { Button } from 'ant-design-vue';
...
@@ -13,10 +13,12 @@ import { Button } from 'ant-design-vue';
import
{
useVbenForm
}
from
'#/adapter/form'
;
import
{
useVbenForm
}
from
'#/adapter/form'
;
import
{
treeList
}
from
'#/api/auth/dept'
;
import
{
treeList
}
from
'#/api/auth/dept'
;
import
{
apiDetail
}
from
'#/api/hr/employeeFlow'
;
import
{
apiDetail
,
initByEmployeeId
}
from
'#/api/hr/employeeFlow'
;
import
{
applyTransfer
}
from
'#/api/hr/employeeInfo'
;
import
{
applyTransfer
}
from
'#/api/hr/employeeInfo'
;
import
{
getDictOptions
}
from
'#/utils/dict'
;
import
{
defaultFormValueGetter
,
useBeforeCloseDiff
}
from
'#/utils/popup'
;
import
{
defaultFormValueGetter
,
useBeforeCloseDiff
}
from
'#/utils/popup'
;
import
{
HrDictEnum
}
from
'../dict-enum'
;
import
{
useHrFlowHook
}
from
'../useHrFlowHook'
;
import
{
useHrFlowHook
}
from
'../useHrFlowHook'
;
const
emit
=
defineEmits
<
{
const
emit
=
defineEmits
<
{
...
@@ -116,6 +118,39 @@ const formSchema: VbenFormSchema[] = [
...
@@ -116,6 +118,39 @@ const formSchema: VbenFormSchema[] = [
label
:
'调配时间'
,
label
:
'调配时间'
,
rules
:
'required'
,
rules
:
'required'
,
},
},
{
component
:
'Input'
,
fieldName
:
'performanceRatio'
,
label
:
'绩效比例'
,
// rules: 'required',
},
{
component
:
'Input'
,
fieldName
:
'staffingLocation'
,
label
:
'编制所在地'
,
// rules: 'required',
},
{
component
:
'Input'
,
fieldName
:
'costOfDept'
,
label
:
'成本费用所属'
,
// rules: 'required',
},
{
component
:
'Select'
,
componentProps
:
{
options
:
getDictOptions
(
HrDictEnum
.
HR_COST_TYPE
),
},
fieldName
:
'costType'
,
label
:
'成本费用细分'
,
// rules: 'required',
},
{
component
:
'Textarea'
,
fieldName
:
'internalResume'
,
label
:
'内部个人履历'
,
// rules: 'required',
},
// {
// {
// component: 'Select',
// component: 'Select',
// componentProps: {
// componentProps: {
...
@@ -166,6 +201,7 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -166,6 +201,7 @@ const [BasicModal, modalApi] = useVbenModal({
onBeforeClose
,
onBeforeClose
,
onClosed
:
handleClosed
,
onClosed
:
handleClosed
,
onConfirm
:
onSubmit
,
onConfirm
:
onSubmit
,
confirmText
:
'提交申请'
,
onOpenChange
:
async
(
isOpen
)
=>
{
onOpenChange
:
async
(
isOpen
)
=>
{
if
(
!
isOpen
)
{
if
(
!
isOpen
)
{
return
null
;
return
null
;
...
@@ -182,6 +218,8 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -182,6 +218,8 @@ const [BasicModal, modalApi] = useVbenModal({
data
=
await
apiDetail
(
data
.
id
);
data
=
await
apiDetail
(
data
.
id
);
data
.
oldDeptName
=
data
.
deptName
;
data
.
oldDeptName
=
data
.
deptName
;
updateDataInfo
(
data
);
updateDataInfo
(
data
);
}
else
{
data
=
await
initByEmployeeId
(
'5'
,
data
.
employeeId
!
);
}
}
await
formApi
.
setValues
(
data
);
await
formApi
.
setValues
(
data
);
await
markInitialized
();
await
markInitialized
();
...
...
apps/web-antd/src/views/hr/employeeInfo/data.ts
View file @
645fabe9
...
@@ -264,224 +264,449 @@ export const querySchema: VbenFormSchema[] = [
...
@@ -264,224 +264,449 @@ export const querySchema: VbenFormSchema[] = [
export
function
useColumns
():
VxeTableGridOptions
<
EmployeeInfoApi
.
Employee
>
[
'columns'
]
{
export
function
useColumns
():
VxeTableGridOptions
<
EmployeeInfoApi
.
Employee
>
[
'columns'
]
{
// onActionClick: OnActionClickFn<EmployeeInfoApi.Employee>,
// onActionClick: OnActionClickFn<EmployeeInfoApi.Employee>,
return
[
return
[
{
title
:
'序号'
,
type
:
'seq'
,
width
:
50
},
{
{
title
:
'板块'
,
title
:
'板块'
,
field
:
'plate'
,
field
:
'plate'
,
width
:
80
,
},
},
{
{
title
:
'一级部门'
,
title
:
'一级部门'
,
field
:
'firstLevelDepartment'
,
field
:
'firstLevelDepartment'
,
width
:
90
,
},
},
{
{
title
:
'二级部门'
,
title
:
'二级部门'
,
field
:
'secondLevelDepartment'
,
field
:
'secondLevelDepartment'
,
width
:
100
,
},
},
{
{
title
:
'三级部门'
,
title
:
'三级部门'
,
field
:
'thirdLevelDepartment'
,
field
:
'thirdLevelDepartment'
,
width
:
120
,
},
},
{
{
title
:
'工号'
,
title
:
'工号'
,
field
:
'employeeNo'
,
field
:
'employeeNo'
,
width
:
80
,
},
},
// {
// title: '职级',
// field: 'jobLevel',
// },
{
{
title
:
'主岗位'
,
title
:
'职级'
,
field
:
'position'
,
field
:
'jobLevel'
,
width
:
80
,
},
{
title
:
'岗位类型'
,
field
:
'positionTypeName'
,
width
:
100
,
// cellRender: { name: 'CellTag', options: [getTagDicts(DictEnum.HR_POSITION_TYPE)] },
},
},
{
{
title
:
'序列'
,
title
:
'序列'
,
field
:
'sequenceName'
,
field
:
'sequenceName'
,
width
:
80
,
},
{
title
:
'主岗位'
,
field
:
'positionName'
,
width
:
100
,
},
},
{
{
title
:
'姓名'
,
title
:
'姓名'
,
field
:
'name'
,
field
:
'name'
,
width
:
100
,
},
},
{
{
title
:
'性别'
,
title
:
'性别'
,
field
:
'genderName'
,
field
:
'gender'
,
// cellRender: {
width
:
80
,
// name: 'CellTag',
},
// options: [getTagDicts(HrDictEnum.HR_USER_SEX)],
{
// },
title
:
'身份证号码'
,
field
:
'idCardNumber'
,
width
:
120
,
},
{
title
:
'出生日期'
,
field
:
'birthDate'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'年龄'
,
field
:
'age'
,
width
:
80
,
},
{
title
:
'年龄段'
,
field
:
'ageGroupName'
,
width
:
100
,
},
{
title
:
'兼岗板块'
,
field
:
'concurrentPlate'
,
width
:
80
,
},
{
title
:
'兼岗一级部门'
,
field
:
'concurrentFirstDept'
,
width
:
90
,
},
{
title
:
'兼岗二级部门'
,
field
:
'concurrentSecondDept'
,
width
:
100
,
},
{
title
:
'兼岗三级部门'
,
field
:
'concurrentThirdDept'
,
width
:
120
,
},
{
title
:
'兼岗岗位'
,
field
:
'concurrentPosition'
,
width
:
100
,
},
{
title
:
'兼岗岗位类型'
,
field
:
'concurrentPositionTypeName'
,
width
:
100
,
},
{
title
:
'籍贯'
,
field
:
'nativePlace'
,
width
:
120
,
},
{
title
:
'民族'
,
field
:
'ethnicity'
,
width
:
80
,
},
{
title
:
'婚姻状况'
,
field
:
'maritalStatusName'
,
width
:
80
,
},
{
title
:
'政治面貌'
,
field
:
'politicalStatusName'
,
width
:
80
,
},
},
// {
// title: '身份证号码',
// field: 'idCardNumber',
// },
// {
// title: '出生日期',
// field: 'birthDate',
// formatter: 'formatDateTime',
// },
// {
// title: '年龄',
// field: 'age',
// },
// {
// title: '年龄段',
// field: 'ageGroup',
// },
// {
// title: '籍贯',
// field: 'nativePlace',
// },
// {
// title: '民族',
// field: 'ethnicity',
// },
// {
// title: '婚姻状况',
// field: 'maritalStatus',
// cellRender: { name: 'CellTag', options: [getTagDicts()] },
// },
// {
// title: '政治面貌',
// field: 'politicalStatus',
// cellRender: { name: 'CellTag', options: [getTagDicts()] },
// },
{
{
title
:
'手机号码'
,
title
:
'手机号码'
,
field
:
'phoneNumber'
,
field
:
'phoneNumber'
,
width
:
110
,
},
{
title
:
'紧急联系人'
,
field
:
'emergencyContact'
,
width
:
100
,
},
},
// {
{
// title: '紧急联系人',
title
:
'紧急联系人电话'
,
// field: 'emergencyContact',
field
:
'emergencyContactPhone'
,
// },
width
:
110
,
// {
},
// title: '紧急联系人电话',
{
// field: 'emergencyContactPhone',
title
:
'家庭地址'
,
// },
field
:
'homeAddress'
,
// {
width
:
120
,
// title: '家庭地址',
},
// field: 'homeAddress',
{
// },
title
:
'户口所在地'
,
// {
field
:
'householdRegistrationAddress'
,
// title: '户口所在地',
width
:
120
,
// field: 'householdRegistrationAddress',
},
// },
{
// {
title
:
'参加工作时间'
,
// title: '参加工作时间',
field
:
'workStartDate'
,
// field: 'workStartDate',
formatter
:
'formatDate'
,
// formatter: 'formatDateTime',
width
:
100
,
// },
},
// {
{
// title: '入职时间',
title
:
'入职时间'
,
// field: 'entryDate',
field
:
'entryDate'
,
// formatter: 'formatDateTime',
formatter
:
'formatDate'
,
// },
width
:
100
,
// {
},
// title: '工龄',
{
// field: 'yearsOfService',
title
:
'工龄'
,
// },
field
:
'yearsOfService'
,
// {
width
:
90
,
// title: '工龄段',
},
// field: 'yearsOfServiceSegment',
{
// },
title
:
'工龄段'
,
{
field
:
'yearsOfServiceSegmentName'
,
title
:
'学历'
,
width
:
90
,
},
{
title
:
'全日制学历'
,
field
:
'fulltimeEducation'
,
field
:
'fulltimeEducation'
,
width
:
100
,
},
{
title
:
'全日制毕业院校'
,
field
:
'fulltimeSchool'
,
width
:
100
,
},
{
title
:
'全日制专业'
,
field
:
'fulltimeMajor'
,
width
:
90
,
},
{
title
:
'全日制毕业日期'
,
field
:
'fulltimeGraduationDate'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'全日制学位'
,
field
:
'fulltimeDegree'
,
width
:
100
,
},
{
title
:
'非全日制学历'
,
field
:
'nonFulltimeEducation'
,
width
:
100
,
},
{
title
:
'非全日制毕业院校'
,
field
:
'nonFulltimeSchool'
,
width
:
100
,
},
{
title
:
'非全日制专业'
,
field
:
'nonFulltimeMajor'
,
width
:
90
,
},
{
title
:
'非全日制毕业日期'
,
field
:
'nonFulltimeGraduationDate'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'非全日制学位'
,
field
:
'nonFulltimeDegree'
,
width
:
100
,
},
{
title
:
'学历分类'
,
field
:
'educationCategoryName'
,
width
:
90
,
},
},
// {
// title: '学位',
// field: 'degree',
// },
// {
// title: '毕业时间',
// field: 'graduationDate',
// formatter: 'formatDateTime',
// },
// {
// title: '专业',
// field: 'major',
// },
// {
// title: '毕业院校',
// field: 'graduateSchool',
// },
{
{
title
:
'员工类型'
,
title
:
'员工类型'
,
field
:
'employeeTypeName'
,
field
:
'employeeTypeName'
,
// cellRender: {
width
:
90
,
// name: 'CellTag',
},
// options: [getTagDicts(HrDictEnum.HR_EMPLOYEE_TYPE)],
{
// },
title
:
'职称情况'
,
field
:
'professionalTitle'
,
width
:
90
,
},
{
title
:
'证书情况'
,
field
:
'certificateStatusName'
,
width
:
100
,
},
{
title
:
'外部个人履历'
,
field
:
'externalResume'
,
width
:
120
,
},
{
title
:
'内部个人履历'
,
field
:
'internalResume'
,
width
:
120
,
},
},
// {
// title: '职称情况',
// field: 'professionalTitle',
// },
// {
// title: '简历',
// field: 'resume',
// },
{
{
title
:
'用工形式'
,
title
:
'用工形式'
,
field
:
'employmentFormName'
,
field
:
'employmentFormName'
,
// cellRender: {
width
:
100
,
// name: 'CellTag',
},
// options: [getTagDicts(HrDictEnum.HR_EMPLOYMENT_FORM)],
{
// },
title
:
'合同形式'
,
field
:
'contractFormName'
,
width
:
100
,
},
},
{
{
title
:
'劳动合同期限'
,
title
:
'劳动合同期限'
,
field
:
'contractTerm'
,
field
:
'contractTerm'
,
width
:
80
,
},
{
title
:
'劳动合同开始时间'
,
field
:
'contractStartDate'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'劳动合同截止时间'
,
field
:
'contractEndDate'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'合同到期提醒'
,
field
:
'contractExpirationReminder'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'劳动合同签订情况'
,
field
:
'contractSigningStatus'
,
width
:
110
,
},
{
title
:
'合同主体'
,
field
:
'contractEntity'
,
width
:
90
,
},
{
title
:
'社保主体'
,
field
:
'socialSecurityEntity'
,
width
:
90
,
},
{
title
:
'是否缴纳社保'
,
field
:
'hasSocialSecurityPaidName'
,
width
:
90
,
},
{
title
:
'公积金主体'
,
field
:
'providentFundEntity'
,
width
:
90
,
},
{
title
:
'是否缴纳公积金'
,
field
:
'hasProvidentFundPaidName'
,
width
:
90
,
},
{
title
:
'是否缴纳雇主险'
,
field
:
'hasEmployerInsurancePaidName'
,
width
:
90
,
},
{
title
:
'试用期'
,
field
:
'probationPeriod'
,
width
:
90
,
},
{
title
:
'转正时间'
,
field
:
'regularizationDate'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'预计转正时间'
,
field
:
'expectedRegularDate'
,
formatter
:
'formatDate'
,
width
:
100
,
},
{
title
:
'奖励情况'
,
field
:
'rewardStatusName'
,
width
:
110
,
},
{
title
:
'处罚情况'
,
field
:
'punishmentStatusName'
,
width
:
110
,
},
{
title
:
'备注'
,
field
:
'remarks'
,
width
:
110
,
},
{
title
:
'办公电话'
,
field
:
'officePhone'
,
width
:
110
,
},
{
title
:
'短线'
,
field
:
'shortLine'
,
width
:
90
,
},
{
title
:
'银行卡号'
,
field
:
'bankCardNumber'
,
width
:
110
,
},
{
title
:
'开户行'
,
field
:
'bankName'
,
width
:
110
,
},
{
title
:
'公司内是否有亲属关系'
,
field
:
'hasRelativeInCompanyName'
,
width
:
90
,
},
{
title
:
'亲属姓名'
,
field
:
'relativeName'
,
width
:
90
,
},
{
title
:
'介绍人'
,
field
:
'introducer'
,
width
:
90
,
},
{
title
:
'介绍人关系'
,
field
:
'introducerRelation'
,
width
:
90
,
},
{
title
:
'工资发放地'
,
field
:
'salaryLocation'
,
width
:
100
,
},
{
title
:
'编制所在地'
,
field
:
'staffingLocation'
,
width
:
100
,
},
{
title
:
'成本费用所属'
,
field
:
'costOfDept'
,
width
:
110
,
},
{
title
:
'成本费用细分'
,
field
:
'costType'
,
width
:
110
,
// cellRender: { name: 'CellTag', options: [getTagDicts()] },
},
{
title
:
'绩效比例'
,
field
:
'performanceRatio'
,
width
:
100
,
},
{
title
:
'工装'
,
field
:
'workwearDetail'
,
width
:
110
,
},
{
title
:
'内部购房优惠'
,
field
:
'internalPurchaseDiscountsName'
,
width
:
110
,
},
{
title
:
'安泰业主'
,
field
:
'antaiHomeownersName'
,
width
:
80
,
},
{
title
:
'小区具体信息'
,
field
:
'antaiCommunityInfo'
,
width
:
110
,
},
},
// {
// title: '劳动合同开始时间',
// field: 'contractStartDate',
// formatter: 'formatDateTime',
// },
// {
// title: '劳动合同截止时间',
// field: 'contractEndDate',
// formatter: 'formatDateTime',
// },
// {
// title: '合同到期提醒',
// field: 'contractExpirationReminder',
// formatter: 'formatDateTime',
// },
// {
// title: '劳动合同签订情况',
// field: 'contractSigningStatus',
// cellRender: { name: 'CellTag', options: [getTagDicts()] },
// },
// {
// title: '合同主体',
// field: 'contractEntity',
// },
// {
// title: '转正时间',
// field: 'regularizationDate',
// formatter: 'formatDateTime',
// },
// {
// title: '异动情况',
// field: 'transferStatus',
// cellRender: { name: 'CellTag', options: [getTagDicts()] },
// },
// {
// title: '奖惩情况',
// field: 'rewardPunishmentStatus',
// cellRender: { name: 'CellTag', options: [getTagDicts()] },
// },
// {
// title: '备注',
// field: 'remarks',
// },
// {
// title: '离职时间',
// field: 'resignationDate',
// formatter: 'formatDateTime',
// },
// {
// title: '离职原因',
// field: 'resignationReason',
// },
{
{
align
:
'right'
,
align
:
'right'
,
slots
:
{
default
:
'action'
},
slots
:
{
default
:
'action'
},
...
...
apps/web-antd/src/views/hr/employeeInfo/employee-detail-drawer.vue
View file @
645fabe9
...
@@ -102,20 +102,23 @@ async function handleOpenChange(open: boolean) {
...
@@ -102,20 +102,23 @@ async function handleOpenChange(open: boolean) {
<DescriptionsItem
label=
"序列"
>
<DescriptionsItem
label=
"序列"
>
{{ currentEmployee.sequenceName }}
{{ currentEmployee.sequenceName }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"兼
职
板块"
>
<DescriptionsItem
label=
"兼
岗
板块"
>
{{ currentEmployee.
partTime
Plate }}
{{ currentEmployee.
concurrent
Plate }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"兼
职
一级部门"
>
<DescriptionsItem
label=
"兼
岗
一级部门"
>
{{ currentEmployee.
partTime
FirstDept }}
{{ currentEmployee.
concurrent
FirstDept }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"兼
职
二级部门"
>
<DescriptionsItem
label=
"兼
岗
二级部门"
>
{{ currentEmployee.
partTime
SecondDept }}
{{ currentEmployee.
concurrent
SecondDept }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"兼
职
三级部门"
>
<DescriptionsItem
label=
"兼
岗
三级部门"
>
{{ currentEmployee.
partTime
ThirdDept }}
{{ currentEmployee.
concurrent
ThirdDept }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"兼职岗位"
>
<DescriptionsItem
label=
"兼岗岗位"
>
{{ currentEmployee.partTimePosition }}
{{ currentEmployee.concurrentPosition }}
</DescriptionsItem>
<DescriptionsItem
label=
"兼岗岗位类型"
>
{{ currentEmployee.concurrentPositionTypeName }}
</DescriptionsItem>
</DescriptionsItem>
</Descriptions>
</Descriptions>
<Descriptions
<Descriptions
...
@@ -342,6 +345,9 @@ async function handleOpenChange(open: boolean) {
...
@@ -342,6 +345,9 @@ async function handleOpenChange(open: boolean) {
<DescriptionsItem
label=
"是否缴纳公积金"
>
<DescriptionsItem
label=
"是否缴纳公积金"
>
{{ currentEmployee.hasProvidentFundPaidName }}
{{ currentEmployee.hasProvidentFundPaidName }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"是否缴纳雇主险"
>
{{ currentEmployee.hasEmployerInsurancePaid }}
</DescriptionsItem>
<DescriptionsItem
label=
"试用期"
>
<DescriptionsItem
label=
"试用期"
>
{{ currentEmployee.probationPeriod }}
{{ currentEmployee.probationPeriod }}
</DescriptionsItem>
</DescriptionsItem>
...
@@ -383,9 +389,33 @@ async function handleOpenChange(open: boolean) {
...
@@ -383,9 +389,33 @@ async function handleOpenChange(open: boolean) {
<DescriptionsItem
label=
"介绍人"
>
<DescriptionsItem
label=
"介绍人"
>
{{ currentEmployee.introducer }}
{{ currentEmployee.introducer }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"介绍人关系"
>
{{ currentEmployee.introducerRelation }}
</DescriptionsItem>
<DescriptionsItem
label=
"工资发放地"
>
<DescriptionsItem
label=
"工资发放地"
>
{{ currentEmployee.salaryLocation }}
{{ currentEmployee.salaryLocation }}
</DescriptionsItem>
</DescriptionsItem>
<DescriptionsItem
label=
"编制所在地"
>
{{ currentEmployee.staffingLocation }}
</DescriptionsItem>
<DescriptionsItem
label=
"成本费用所属"
>
{{ currentEmployee.costOfDept }}
</DescriptionsItem>
<DescriptionsItem
label=
"成本费用细分"
>
{{ currentEmployee.costTypeName }}
</DescriptionsItem>
<DescriptionsItem
label=
"工装"
>
{{ currentEmployee.workwearDetail }}
</DescriptionsItem>
<DescriptionsItem
label=
"内部购房优惠"
>
{{ currentEmployee.internalPurchaseDiscountsName }}
</DescriptionsItem>
<DescriptionsItem
label=
"安泰业主"
>
{{ currentEmployee.antaiHomeownersName }}
</DescriptionsItem>
<DescriptionsItem
label=
"小区具体信息"
>
{{ currentEmployee.antaiCommunityInfo }}
</DescriptionsItem>
<DescriptionsItem
label=
"绩效比例"
:span=
"2"
>
<DescriptionsItem
label=
"绩效比例"
:span=
"2"
>
{{ currentEmployee.performanceRatio }}
{{ currentEmployee.performanceRatio }}
</DescriptionsItem>
</DescriptionsItem>
...
...
apps/web-antd/src/views/hr/employeeInfo/form.vue
View file @
645fabe9
...
@@ -115,15 +115,25 @@ const formSchema: VbenFormSchema[] = [
...
@@ -115,15 +115,25 @@ const formSchema: VbenFormSchema[] = [
component
:
'TreeSelect'
,
component
:
'TreeSelect'
,
// 在onOpenChange里更新 这里不需要默认的componentProps
// 在onOpenChange里更新 这里不需要默认的componentProps
defaultValue
:
undefined
,
defaultValue
:
undefined
,
fieldName
:
'
par
tDeptId'
,
fieldName
:
'
concurren
tDeptId'
,
label
:
'兼
职
部门'
,
label
:
'兼
岗
部门'
,
},
},
{
{
component
:
'Input'
,
component
:
'Input'
,
fieldName
:
'
partTime
Position'
,
fieldName
:
'
concurrent
Position'
,
label
:
'兼
职
岗位'
,
label
:
'兼
岗
岗位'
,
// rules: 'required',
// rules: 'required',
},
},
{
component
:
'Select'
,
componentProps
:
{
getVxePopupContainer
,
options
:
getDictOptions
(
HrDictEnum
.
HR_POSITION_TYPE
),
},
fieldName
:
'concurrentPositionType'
,
label
:
'兼岗岗位类型'
,
// rules: 'selectRequired',
},
{
{
component
:
'Divider'
,
component
:
'Divider'
,
componentProps
:
{
componentProps
:
{
...
@@ -572,6 +582,17 @@ const formSchema: VbenFormSchema[] = [
...
@@ -572,6 +582,17 @@ const formSchema: VbenFormSchema[] = [
label
:
'是否缴纳公积金'
,
label
:
'是否缴纳公积金'
,
// rules: 'required',
// rules: 'required',
},
},
{
component
:
'RadioGroup'
,
componentProps
:
{
buttonStyle
:
'solid'
,
optionType
:
'button'
,
options
:
getDictOptions
(
DictEnum
.
SYS_YES_NO
),
},
fieldName
:
'hasEmployerInsurancePaid'
,
label
:
'是否缴纳雇主险'
,
// rules: 'required',
},
{
{
component
:
'InputNumber'
,
component
:
'InputNumber'
,
fieldName
:
'probationPeriod'
,
fieldName
:
'probationPeriod'
,
...
@@ -666,6 +687,12 @@ const formSchema: VbenFormSchema[] = [
...
@@ -666,6 +687,12 @@ const formSchema: VbenFormSchema[] = [
label
:
'介绍人'
,
label
:
'介绍人'
,
// rules: 'required',
// rules: 'required',
},
},
{
component
:
'Input'
,
fieldName
:
'introducerRelation'
,
label
:
'介绍人关系'
,
// rules: 'required',
},
{
{
component
:
'Input'
,
component
:
'Input'
,
fieldName
:
'salaryLocation'
,
fieldName
:
'salaryLocation'
,
...
@@ -678,6 +705,61 @@ const formSchema: VbenFormSchema[] = [
...
@@ -678,6 +705,61 @@ const formSchema: VbenFormSchema[] = [
label
:
'绩效比例'
,
label
:
'绩效比例'
,
// rules: 'required',
// rules: 'required',
},
},
{
component
:
'Input'
,
fieldName
:
'staffingLocation'
,
label
:
'编制所在地'
,
// rules: 'required',
},
{
component
:
'Input'
,
fieldName
:
'costOfDept'
,
label
:
'成本费用所属'
,
// rules: 'required',
},
{
component
:
'Select'
,
componentProps
:
{
options
:
getDictOptions
(
HrDictEnum
.
HR_COST_TYPE
),
},
fieldName
:
'costType'
,
label
:
'成本费用细分'
,
// rules: 'required',
},
{
component
:
'Input'
,
fieldName
:
'workwearDetail'
,
label
:
'工装'
,
// rules: 'required',
},
{
component
:
'RadioGroup'
,
componentProps
:
{
buttonStyle
:
'solid'
,
optionType
:
'button'
,
options
:
getDictOptions
(
DictEnum
.
SYS_YES_NO
),
},
fieldName
:
'internalPurchaseDiscounts'
,
label
:
'内部购房优惠'
,
// rules: 'required',
},
{
component
:
'RadioGroup'
,
componentProps
:
{
buttonStyle
:
'solid'
,
optionType
:
'button'
,
options
:
getDictOptions
(
DictEnum
.
SYS_YES_NO
),
},
fieldName
:
'antaiHomeowners'
,
label
:
'安泰业主'
,
// rules: 'required',
},
{
component
:
'Input'
,
fieldName
:
'antaiCommunityInfo'
,
label
:
'小区具体信息'
,
// rules: 'required',
},
// {
// {
// component: 'DatePicker',
// component: 'DatePicker',
// fieldName: 'resignationDate',
// fieldName: 'resignationDate',
...
@@ -753,10 +835,10 @@ async function setupDeptSelect() {
...
@@ -753,10 +835,10 @@ async function setupDeptSelect() {
.
map
((
item
:
string
)
=>
item
.
trim
())
.
map
((
item
:
string
)
=>
item
.
trim
())
.
filter
(
Boolean
);
.
filter
(
Boolean
);
/** 变化后需要重新设置部门信息 */
/** 变化后需要重新设置部门信息 */
formModel
.
partTime
Plate
=
result
[
0
];
formModel
.
concurrent
Plate
=
result
[
0
];
formModel
.
partTime
FirstDept
=
result
[
1
];
formModel
.
concurrent
FirstDept
=
result
[
1
];
formModel
.
partTime
SecondDept
=
result
[
2
];
formModel
.
concurrent
SecondDept
=
result
[
2
];
formModel
.
partTime
ThirdDept
=
result
[
3
];
formModel
.
concurrent
ThirdDept
=
result
[
3
];
},
},
class
:
'w-full'
,
class
:
'w-full'
,
treeLine
:
{
showLeafIcon
:
false
},
treeLine
:
{
showLeafIcon
:
false
},
...
@@ -773,7 +855,7 @@ async function setupDeptSelect() {
...
@@ -773,7 +855,7 @@ async function setupDeptSelect() {
valueField
:
'id'
,
valueField
:
'id'
,
childrenField
:
'children'
,
childrenField
:
'children'
,
}),
}),
fieldName
:
'
par
tDeptId'
,
fieldName
:
'
concurren
tDeptId'
,
},
},
]);
]);
}
}
...
...
apps/web-antd/src/views/hr/regularReminder/apply-regular-model.vue
View file @
645fabe9
...
@@ -13,7 +13,7 @@ import { getVxePopupContainer } from '@vben/utils';
...
@@ -13,7 +13,7 @@ import { getVxePopupContainer } from '@vben/utils';
import
{
Button
}
from
'ant-design-vue'
;
import
{
Button
}
from
'ant-design-vue'
;
import
{
useVbenForm
}
from
'#/adapter/form'
;
import
{
useVbenForm
}
from
'#/adapter/form'
;
import
{
apiDetail
}
from
'#/api/hr/employeeFlow'
;
import
{
apiDetail
,
initByEmployeeId
}
from
'#/api/hr/employeeFlow'
;
import
{
applyRegular
}
from
'#/api/hr/employeeInfo'
;
import
{
applyRegular
}
from
'#/api/hr/employeeInfo'
;
import
{
getDictOptions
}
from
'#/utils/dict'
;
import
{
getDictOptions
}
from
'#/utils/dict'
;
import
{
defaultFormValueGetter
,
useBeforeCloseDiff
}
from
'#/utils/popup'
;
import
{
defaultFormValueGetter
,
useBeforeCloseDiff
}
from
'#/utils/popup'
;
...
@@ -66,44 +66,44 @@ const formSchema: VbenFormSchema[] = [
...
@@ -66,44 +66,44 @@ const formSchema: VbenFormSchema[] = [
label
:
'部门'
,
label
:
'部门'
,
disabled
:
true
,
disabled
:
true
,
},
},
{
//
{
component
:
'DatePicker'
,
//
component: 'DatePicker',
componentProps
:
{
//
componentProps: {
format
:
'YYYY-MM-DD'
,
//
format: 'YYYY-MM-DD',
valueFormat
:
'YYYY-MM-DD'
,
//
valueFormat: 'YYYY-MM-DD',
getVxePopupContainer
,
//
getVxePopupContainer,
},
//
},
fieldName
:
'contractStartDate'
,
//
fieldName: 'contractStartDate',
label
:
'合同开始时间'
,
//
label: '合同开始时间',
rules
:
'required'
,
//
rules: 'required',
},
//
},
{
//
{
component
:
'DatePicker'
,
//
component: 'DatePicker',
componentProps
:
{
//
componentProps: {
format
:
'YYYY-MM-DD'
,
//
format: 'YYYY-MM-DD',
valueFormat
:
'YYYY-MM-DD'
,
//
valueFormat: 'YYYY-MM-DD',
getVxePopupContainer
,
//
getVxePopupContainer,
},
//
},
fieldName
:
'contractEndDate'
,
//
fieldName: 'contractEndDate',
label
:
'合同截止时间'
,
//
label: '合同截止时间',
rules
:
'required'
,
//
rules: 'required',
},
//
},
{
//
{
component
:
'Input'
,
//
component: 'Input',
fieldName
:
'contractEntity'
,
//
fieldName: 'contractEntity',
label
:
'合同主体'
,
//
label: '合同主体',
rules
:
'required'
,
//
rules: 'required',
},
//
},
{
//
{
component
:
'Input'
,
//
component: 'Input',
// componentProps: {
//
// componentProps: {
// buttonStyle: 'solid',
//
// buttonStyle: 'solid',
// optionType: 'button',
//
// optionType: 'button',
// },
//
// },
fieldName
:
'contractSigningStatus'
,
//
fieldName: 'contractSigningStatus',
label
:
'合同签订情况'
,
//
label: '合同签订情况',
rules
:
'required'
,
//
rules: 'required',
},
//
},
{
{
component
:
'DatePicker'
,
component
:
'DatePicker'
,
componentProps
:
{
componentProps
:
{
...
@@ -149,6 +149,17 @@ const formSchema: VbenFormSchema[] = [
...
@@ -149,6 +149,17 @@ const formSchema: VbenFormSchema[] = [
label
:
'是否缴纳公积金'
,
label
:
'是否缴纳公积金'
,
// rules: 'required',
// rules: 'required',
},
},
{
component
:
'RadioGroup'
,
componentProps
:
{
buttonStyle
:
'solid'
,
optionType
:
'button'
,
options
:
getDictOptions
(
DictEnum
.
SYS_YES_NO
),
},
fieldName
:
'hasEmployerInsurancePaid'
,
label
:
'是否缴纳雇主险'
,
// rules: 'required',
},
// {
// {
// component: 'Input',
// component: 'Input',
// fieldName: 'dictType',
// fieldName: 'dictType',
...
@@ -195,6 +206,7 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -195,6 +206,7 @@ const [BasicModal, modalApi] = useVbenModal({
onBeforeClose
,
onBeforeClose
,
onClosed
:
handleClosed
,
onClosed
:
handleClosed
,
onConfirm
:
onSubmit
,
onConfirm
:
onSubmit
,
confirmText
:
'提交申请'
,
onOpenChange
:
async
(
isOpen
)
=>
{
onOpenChange
:
async
(
isOpen
)
=>
{
if
(
!
isOpen
)
{
if
(
!
isOpen
)
{
return
null
;
return
null
;
...
@@ -210,6 +222,8 @@ const [BasicModal, modalApi] = useVbenModal({
...
@@ -210,6 +222,8 @@ const [BasicModal, modalApi] = useVbenModal({
updateForm
(
isUpdate
.
value
);
updateForm
(
isUpdate
.
value
);
data
=
await
apiDetail
(
data
.
id
);
data
=
await
apiDetail
(
data
.
id
);
updateDataInfo
(
data
);
updateDataInfo
(
data
);
}
else
{
data
=
await
initByEmployeeId
(
'4'
,
data
.
employeeId
!
);
}
}
await
formApi
.
setValues
(
data
);
await
formApi
.
setValues
(
data
);
await
markInitialized
();
await
markInitialized
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment