Commit 242f0ebe authored by Mr.Tang's avatar Mr.Tang

人事管理—人数统计bug修复

parent 5c711f66
...@@ -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'
})
}
...@@ -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>
......
...@@ -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 = {
......
...@@ -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>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment