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

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

parent 5c711f66
......@@ -95,3 +95,16 @@ export function getLoginUserInfo() {
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 @@
<el-button class="savecConfirm-button" @click="submitForm">确 定</el-button>
</el-form-item>
</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-input v-model="form.name" placeholder="请输入姓名" class="addInput"/>
</el-form-item>
......@@ -336,6 +336,7 @@
<script setup>
import { reactive } from 'vue'
import useUserStore from "@/store/modules/user";
import { listOnBoardManage, getOnBoardManage, delOnBoardManage, addOnBoardManage, updateOnBoardManage,addOnBoardManageDraft} from "@/api/onboardmanage/onboardmanage";
import { pcaTextArr} from "element-china-area-data";
import { useRouter } from 'vue-router';
......@@ -469,6 +470,11 @@ function cancel() {
open.value = false;
reset();
}
const userStore = useUserStore();
const showAddAlert = computed(() => {
// 同时满足角色权限和业务条件
return userStore.roles[0] !== 'admin';
});
// 表单重置
function reset() {
......@@ -638,6 +644,13 @@ function handleExport() {
}, `onboardmanage_${new Date().getTime()}.xlsx`)
}
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();
});
</script>
......
......@@ -6,7 +6,7 @@
<div class="titleLine"></div>
</div>
<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-form-item label="姓名" prop="name" class="textForInput">
<el-input v-model="form.name" placeholder="请输入姓名" class="addInput"/>
......@@ -228,6 +228,92 @@
<el-button class="savecConfirm-button" @click="submitForm">确 定</el-button>
</el-form-item>
</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>
......@@ -236,6 +322,7 @@
<script setup>
import { ref,reactive,onMounted } from 'vue'
import { useRoute } from 'vue-router';
import useUserStore from "@/store/modules/user";
import { listOnBoardManage, getOnBoardManage, delOnBoardManage, updateOnBoardManage,updateOnBoardManageDraft } from "@/api/onboardmanage/onboardmanage";
import { pcaTextArr} from "element-china-area-data";
const pcaTextArrRef = pcaTextArr;
......@@ -366,7 +453,15 @@ function cancel() {
open.value = false;
reset();
}
const userStore = useUserStore();
const showAdd = computed(() => {
// 同时满足角色权限和业务条件
return userStore.roles[0] === 'hr';
});
const showAddAlert = computed(() => {
// 同时满足角色权限和业务条件
return userStore.roles[0] !== 'hr';
});
// 表单重置
function reset() {
form.value = {
......
......@@ -278,7 +278,7 @@
<script setup name="Onboardmanage">
import FlowChart from '@/components/FlowChart/index.vue'
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 { useRouter } from 'vue-router';
import { getToken } from "@/utils/auth";
......@@ -383,6 +383,18 @@ const data = reactive({
});
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 showBirthdayAlert = computed(() => {
......@@ -401,12 +413,12 @@ const currentMonth = today.getMonth(); // 月份从 0 开始
const currentDate = today.getDate();
// 计算今天过生日的人数
const birthdayPersonCount = computed(() => {
/*const birthdayPersonCount = computed(() => {
return onboardmanageList.value.filter(item => {
const birthday = new Date(item.birthday);
return birthday.getMonth() === currentMonth && birthday.getDate() === currentDate;
}).length;
});
});*/
// 高亮显示今天过生日的行的状态
const highlightBirthdays = ref(false);
......@@ -453,7 +465,6 @@ const currentQuarter = computed(() => {
const currentQuarterLabel = computed(() => {
return ['一', '二', '三', '四'][currentQuarter.value - 1]
})
// 判断生日是否在当前季度
const isCurrentQuarterBirth = (birthday) => {
if (!birthday) return false
......@@ -461,13 +472,13 @@ const isCurrentQuarterBirth = (birthday) => {
const quarter = Math.ceil(birthMonth / 3)
return quarter === currentQuarter.value
}
/*
// 当前季度生日人数
const currentQuarterBirthCount = computed(() => {
return onboardmanageList.value.filter(item =>
isCurrentQuarterBirth(item.birthday)
).length
})
})*/
// 取消按钮
function cancel() {
......@@ -722,6 +733,9 @@ onMounted(() => {
const currentUserId = userStore.id; // 获取当前用户的 id
console.log("当前用户 ID:", currentUserId);
getList();
loadTodayCount();
loadQuarterCount();
});
</script>
<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