Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
psa-web
Project
Project
Details
Activity
Releases
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
高滢
psa-web
Commits
242f0ebe
Commit
242f0ebe
authored
Mar 31, 2025
by
Mr.Tang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
人事管理—人数统计bug修复
parent
5c711f66
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
144 additions
and
9 deletions
+144
-9
onboardmanage.js
src/api/onboardmanage/onboardmanage.js
+13
-0
add.vue
src/views/staffmanage/onboardmanage/add.vue
+14
-1
editDraft.vue
src/views/staffmanage/onboardmanage/editDraft.vue
+97
-2
index.vue
src/views/staffmanage/onboardmanage/index.vue
+20
-6
No files found.
src/api/onboardmanage/onboardmanage.js
View file @
242f0ebe
...
@@ -95,3 +95,16 @@ export function getLoginUserInfo() {
...
@@ -95,3 +95,16 @@ export function getLoginUserInfo() {
method
:
'get'
method
:
'get'
})
})
}
}
export
function
getTodayBirthdayCount
()
{
return
request
({
url
:
'/staffmanage/onboardmanage/getTodayBirthdayCount'
,
method
:
'get'
})
}
export
function
getQuarterBirthdayCount
()
{
return
request
({
url
:
'/staffmanage/onboardmanage/getQuarterBirthdayCount'
,
method
:
'get'
})
}
src/views/staffmanage/onboardmanage/add.vue
View file @
242f0ebe
...
@@ -238,7 +238,7 @@
...
@@ -238,7 +238,7 @@
<el-button
class=
"savecConfirm-button"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
class=
"savecConfirm-button"
@
click=
"submitForm"
>
确 定
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-form
ref=
"onboardmanageRef"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
v-hasRole=
"['project-manager']"
>
<el-form
ref=
"onboardmanageRef"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
v-hasRole=
"['project-manager']"
v-if=
"showAddAlert"
>
<el-form-item
label=
"姓名"
prop=
"name"
class=
"textForInput"
>
<el-form-item
label=
"姓名"
prop=
"name"
class=
"textForInput"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入姓名"
class=
"addInput"
/>
<el-input
v-model=
"form.name"
placeholder=
"请输入姓名"
class=
"addInput"
/>
</el-form-item>
</el-form-item>
...
@@ -336,6 +336,7 @@
...
@@ -336,6 +336,7 @@
<
script
setup
>
<
script
setup
>
import
{
reactive
}
from
'vue'
import
{
reactive
}
from
'vue'
import
useUserStore
from
"@/store/modules/user"
;
import
{
listOnBoardManage
,
getOnBoardManage
,
delOnBoardManage
,
addOnBoardManage
,
updateOnBoardManage
,
addOnBoardManageDraft
}
from
"@/api/onboardmanage/onboardmanage"
;
import
{
listOnBoardManage
,
getOnBoardManage
,
delOnBoardManage
,
addOnBoardManage
,
updateOnBoardManage
,
addOnBoardManageDraft
}
from
"@/api/onboardmanage/onboardmanage"
;
import
{
pcaTextArr
}
from
"element-china-area-data"
;
import
{
pcaTextArr
}
from
"element-china-area-data"
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
...
@@ -469,6 +470,11 @@ function cancel() {
...
@@ -469,6 +470,11 @@ function cancel() {
open
.
value
=
false
;
open
.
value
=
false
;
reset
();
reset
();
}
}
const
userStore
=
useUserStore
();
const
showAddAlert
=
computed
(()
=>
{
// 同时满足角色权限和业务条件
return
userStore
.
roles
[
0
]
!==
'admin'
;
});
// 表单重置
// 表单重置
function
reset
()
{
function
reset
()
{
...
@@ -638,6 +644,13 @@ function handleExport() {
...
@@ -638,6 +644,13 @@ function handleExport() {
},
`onboardmanage_
${
new
Date
().
getTime
()}
.xlsx`
)
},
`onboardmanage_
${
new
Date
().
getTime
()}
.xlsx`
)
}
}
onMounted
(()
=>
{
onMounted
(()
=>
{
const
userStore
=
useUserStore
();
userStore
.
getInfo
();
// 确保用户信息已加载
console
.
log
(
"用户信息:"
,
userStore
.
getInfo
());
const
currentUserId
=
userStore
.
id
;
// 获取当前用户的 id
const
currentRole
=
userStore
.
roles
[
0
];
console
.
log
(
"当前用户 ID:"
,
currentUserId
);
console
.
log
(
"当前用户角色:"
,
currentRole
);
getList
();
getList
();
});
});
</
script
>
</
script
>
...
...
src/views/staffmanage/onboardmanage/editDraft.vue
View file @
242f0ebe
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
<div
class=
"titleLine"
></div>
<div
class=
"titleLine"
></div>
</div>
</div>
<div
class=
"addForm"
>
<div
class=
"addForm"
>
<el-form
ref=
"onboardmanageRef"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
>
<el-form
ref=
"onboardmanageRef"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
v-if=
"showAdd"
>
<el-row>
<el-row>
<el-form-item
label=
"姓名"
prop=
"name"
class=
"textForInput"
>
<el-form-item
label=
"姓名"
prop=
"name"
class=
"textForInput"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入姓名"
class=
"addInput"
/>
<el-input
v-model=
"form.name"
placeholder=
"请输入姓名"
class=
"addInput"
/>
...
@@ -228,6 +228,92 @@
...
@@ -228,6 +228,92 @@
<el-button
class=
"savecConfirm-button"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
class=
"savecConfirm-button"
@
click=
"submitForm"
>
确 定
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-form
ref=
"onboardmanageRef"
:model=
"form"
:rules=
"rules"
label-width=
"auto"
v-if=
"showAddAlert"
>
<el-form-item
label=
"姓名"
prop=
"name"
class=
"textForInput"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入姓名"
class=
"addInput"
/>
</el-form-item>
<el-form-item
label=
"身份证号"
prop=
"idNumber"
class=
"textForInput"
>
<el-input
v-model=
"form.idNumber"
placeholder=
"请输入身份证号"
class=
"addInput"
/>
</el-form-item>
<el-form-item
label=
"性别"
prop=
"gender"
class=
"textForInput"
>
<el-select
v-model=
"form.gender"
placeholder=
"请选择"
clearable
class=
"addInput"
>
<el-option
v-for=
"item in genderOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"出生日期"
prop=
"birthday"
class=
"textForInput"
>
<el-date-picker
clearable
v-model=
"form.birthday"
type=
"date"
value-format=
"YYYY-MM-DD"
placeholder=
"请选择出生日期"
class=
"addInput"
>
</el-date-picker>
</el-form-item>
<el-row>
<el-form-item
label=
"手机号"
prop=
"phone"
class=
"textForInput"
>
<el-input
v-model=
"form.phone"
placeholder=
"请输入手机号"
class=
"addInput"
/>
</el-form-item>
</el-row>
<el-form-item
label=
"入职日期"
prop=
"serviceDate"
class=
"textForInput"
>
<el-date-picker
clearable
v-model=
"form.serviceDate"
type=
"date"
value-format=
"YYYY-MM-DD"
placeholder=
"请选择入职日期"
class=
"addInput"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"聘用形式"
prop=
"employmentForm"
class=
"textForInput"
>
<el-select
v-model=
"form.employmentForm"
placeholder=
"请选择聘用形式"
clearable
class=
"addInput"
>
<el-option
v-for=
"item in employmentFormOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
<el-row>
<el-form-item
label=
"是否有试用期"
prop=
"isTrialPeriod"
class=
"textForInput"
>
<el-radio-group
v-model=
"form.isTrialPeriod"
size=
"medium"
>
<el-radio
v-for=
"(item, index) in isTrialPeriodOptions"
:key=
"index"
:label=
"item.value"
:disabled=
"item.disabled"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
</el-row>
<div
v-if=
"form.isTrialPeriod == 0"
>
<el-form-item
label=
"试用期薪资"
prop=
"trialPeriodSalary"
class=
"textForInput"
>
<el-input
v-model=
"form.trialPeriodSalary"
placeholder=
"请输入试用期薪资"
class=
"addInput"
/>
</el-form-item>
<el-form-item
label=
"试用期天数"
prop=
"trialPeriodDay"
class=
"textForInput"
>
<el-input
v-model=
"form.trialPeriodDay"
placeholder=
"请输入试用期天数"
class=
"addInput"
/>
</el-form-item>
<el-form-item
label=
"转正日期"
prop=
"dateOfConfirmation"
class=
"textForInput"
>
<el-date-picker
clearable
v-model=
"form.dateOfConfirmation"
type=
"date"
value-format=
"YYYY-MM-DD"
placeholder=
"请选择转正日期"
>
</el-date-picker>
</el-form-item>
</div>
<el-row>
<el-form-item
label=
"最高学历"
prop=
"educationLevel"
class=
"textForInput"
>
<el-select
v-model=
"form.educationLevel"
placeholder=
"请选择最高学历"
clearable
class=
"addInput"
>
<el-option
v-for=
"item in educationLevelOptions"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
</el-form-item>
</el-row>
<el-row>
<!--
<el-form-item
label=
"审批"
prop=
"managerOpinion"
class=
"contentInput"
>
<el-radio-group
v-model=
"form.managerOpinion"
size=
"medium"
>
<el-radio
v-for=
"(item, index) in managerOpinions"
:key=
"index"
:label=
"item.value"
:disabled=
"item.disabled"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
-->
</el-row>
<el-form-item
class=
"bottom-button"
>
<el-button
@
click=
"goBack"
class=
"cancel-button"
>
取 消
</el-button>
<el-button
class=
"savecConfirm-button"
@
click=
"saveOnDraft"
>
保存
</el-button>
<el-button
class=
"savecConfirm-button"
@
click=
"submitForm"
>
确 定
</el-button>
</el-form-item>
</el-form>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -236,6 +322,7 @@
...
@@ -236,6 +322,7 @@
<
script
setup
>
<
script
setup
>
import
{
ref
,
reactive
,
onMounted
}
from
'vue'
import
{
ref
,
reactive
,
onMounted
}
from
'vue'
import
{
useRoute
}
from
'vue-router'
;
import
{
useRoute
}
from
'vue-router'
;
import
useUserStore
from
"@/store/modules/user"
;
import
{
listOnBoardManage
,
getOnBoardManage
,
delOnBoardManage
,
updateOnBoardManage
,
updateOnBoardManageDraft
}
from
"@/api/onboardmanage/onboardmanage"
;
import
{
listOnBoardManage
,
getOnBoardManage
,
delOnBoardManage
,
updateOnBoardManage
,
updateOnBoardManageDraft
}
from
"@/api/onboardmanage/onboardmanage"
;
import
{
pcaTextArr
}
from
"element-china-area-data"
;
import
{
pcaTextArr
}
from
"element-china-area-data"
;
const
pcaTextArrRef
=
pcaTextArr
;
const
pcaTextArrRef
=
pcaTextArr
;
...
@@ -366,7 +453,15 @@ function cancel() {
...
@@ -366,7 +453,15 @@ function cancel() {
open
.
value
=
false
;
open
.
value
=
false
;
reset
();
reset
();
}
}
const
userStore
=
useUserStore
();
const
showAdd
=
computed
(()
=>
{
// 同时满足角色权限和业务条件
return
userStore
.
roles
[
0
]
===
'hr'
;
});
const
showAddAlert
=
computed
(()
=>
{
// 同时满足角色权限和业务条件
return
userStore
.
roles
[
0
]
!==
'hr'
;
});
// 表单重置
// 表单重置
function
reset
()
{
function
reset
()
{
form
.
value
=
{
form
.
value
=
{
...
...
src/views/staffmanage/onboardmanage/index.vue
View file @
242f0ebe
...
@@ -278,7 +278,7 @@
...
@@ -278,7 +278,7 @@
<
script
setup
name
=
"Onboardmanage"
>
<
script
setup
name
=
"Onboardmanage"
>
import
FlowChart
from
'@/components/FlowChart/index.vue'
import
FlowChart
from
'@/components/FlowChart/index.vue'
import
useUserStore
from
"@/store/modules/user"
;
import
useUserStore
from
"@/store/modules/user"
;
import
{
listOnBoardManage
,
getOnBoardManage
,
delOnBoardManage
,
addOnBoardManage
,
updateOnBoardManage
,
getAllapproveList
}
from
"@/api/onboardmanage/onboardmanage"
;
import
{
listOnBoardManage
,
getOnBoardManage
,
delOnBoardManage
,
addOnBoardManage
,
updateOnBoardManage
,
getAllapproveList
,
getTodayBirthdayCount
,
getQuarterBirthdayCount
}
from
"@/api/onboardmanage/onboardmanage"
;
import
{
listInstance
,
getInstance
,
delInstance
,
addInstance
,
updateInstance
}
from
"@/api/personal/personal"
;
import
{
listInstance
,
getInstance
,
delInstance
,
addInstance
,
updateInstance
}
from
"@/api/personal/personal"
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
getToken
}
from
"@/utils/auth"
;
import
{
getToken
}
from
"@/utils/auth"
;
...
@@ -383,6 +383,18 @@ const data = reactive({
...
@@ -383,6 +383,18 @@ const data = reactive({
}
);
}
);
const
{
queryParams
,
form
,
rules
}
=
toRefs
(
data
);
const
{
queryParams
,
form
,
rules
}
=
toRefs
(
data
);
const
birthdayPersonCount
=
ref
(
0
);
const
currentQuarterBirthCount
=
ref
(
0
);
function
loadTodayCount
()
{
getTodayBirthdayCount
().
then
(
response
=>
{
birthdayPersonCount
.
value
=
response
.
data
;
}
);
}
function
loadQuarterCount
()
{
getQuarterBirthdayCount
().
then
(
response
=>
{
currentQuarterBirthCount
.
value
=
response
.
data
;
}
);
}
const
userStore
=
useUserStore
();
const
userStore
=
useUserStore
();
const
showBirthdayAlert
=
computed
(()
=>
{
const
showBirthdayAlert
=
computed
(()
=>
{
...
@@ -401,12 +413,12 @@ const currentMonth = today.getMonth(); // 月份从 0 开始
...
@@ -401,12 +413,12 @@ const currentMonth = today.getMonth(); // 月份从 0 开始
const
currentDate
=
today
.
getDate
();
const
currentDate
=
today
.
getDate
();
// 计算今天过生日的人数
// 计算今天过生日的人数
const
birthdayPersonCount
=
computed
(()
=>
{
/*
const birthdayPersonCount = computed(() => {
return onboardmanageList.value.filter(item => {
return onboardmanageList.value.filter(item => {
const birthday = new Date(item.birthday);
const birthday = new Date(item.birthday);
return birthday.getMonth() === currentMonth && birthday.getDate() === currentDate;
return birthday.getMonth() === currentMonth && birthday.getDate() === currentDate;
}
).length;
}
).length;
}
);
}
);
*/
// 高亮显示今天过生日的行的状态
// 高亮显示今天过生日的行的状态
const
highlightBirthdays
=
ref
(
false
);
const
highlightBirthdays
=
ref
(
false
);
...
@@ -453,7 +465,6 @@ const currentQuarter = computed(() => {
...
@@ -453,7 +465,6 @@ const currentQuarter = computed(() => {
const
currentQuarterLabel
=
computed
(()
=>
{
const
currentQuarterLabel
=
computed
(()
=>
{
return
[
'一'
,
'二'
,
'三'
,
'四'
][
currentQuarter
.
value
-
1
]
return
[
'一'
,
'二'
,
'三'
,
'四'
][
currentQuarter
.
value
-
1
]
}
)
}
)
// 判断生日是否在当前季度
// 判断生日是否在当前季度
const
isCurrentQuarterBirth
=
(
birthday
)
=>
{
const
isCurrentQuarterBirth
=
(
birthday
)
=>
{
if
(
!
birthday
)
return
false
if
(
!
birthday
)
return
false
...
@@ -461,13 +472,13 @@ const isCurrentQuarterBirth = (birthday) => {
...
@@ -461,13 +472,13 @@ const isCurrentQuarterBirth = (birthday) => {
const
quarter
=
Math
.
ceil
(
birthMonth
/
3
)
const
quarter
=
Math
.
ceil
(
birthMonth
/
3
)
return
quarter
===
currentQuarter
.
value
return
quarter
===
currentQuarter
.
value
}
}
/*
// 当前季度生日人数
// 当前季度生日人数
const currentQuarterBirthCount = computed(() => {
const currentQuarterBirthCount = computed(() => {
return onboardmanageList.value.filter(item =>
return onboardmanageList.value.filter(item =>
isCurrentQuarterBirth(item.birthday)
isCurrentQuarterBirth(item.birthday)
).length
).length
}
)
}
)
*/
// 取消按钮
// 取消按钮
function
cancel
()
{
function
cancel
()
{
...
@@ -722,6 +733,9 @@ onMounted(() => {
...
@@ -722,6 +733,9 @@ onMounted(() => {
const
currentUserId
=
userStore
.
id
;
// 获取当前用户的 id
const
currentUserId
=
userStore
.
id
;
// 获取当前用户的 id
console
.
log
(
"当前用户 ID:"
,
currentUserId
);
console
.
log
(
"当前用户 ID:"
,
currentUserId
);
getList
();
getList
();
loadTodayCount
();
loadQuarterCount
();
}
);
}
);
<
/script
>
<
/script
>
<
style
scoped
>
<
style
scoped
>
...
...
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