考勤管理

This commit is contained in:
XaoLi717 2024-11-22 16:24:17 +08:00
parent 958ca3160c
commit 60d102c3fe

View File

@ -41,17 +41,21 @@
width="60" width="60"
> >
<template #default="{$index, row}"> <template #default="{$index, row}">
<!-- 根据拿到的工作状态来展示不同样式-->
<span <span
:style="{color : colorMap[row.dayStatus[day - 1]] || 'gray' }" :style="{color : colorMap[row.dayStatus[day - 1]] || 'gray' }"
> >
<!-- 不同状态展示不同文字,在加载展示这个span标签 通过 pop参数来控制渲染内容默认false渲染span上级后在渲染el-popover -->
<span @click="pop=true" v-if="!pop"> <span @click="pop=true" v-if="!pop">
{{workType[row.dayStatus[day - 1]]}} {{workType[row.dayStatus[day - 1]]}}
</span> </span>
<!-- 不同状态展示不同文字,在加载展示这个span标签 通过 pop参数来控制渲染内容默认false渲染span上级后在渲染el-popover -->
<el-popover disabled v-if="pop" placement="bottom" width="Min" trigger="click"> <el-popover disabled v-if="pop" placement="bottom" width="Min" trigger="click">
<template #reference> <template #reference>
{{workType[row.dayStatus[day - 1]]}} {{workType[row.dayStatus[day - 1]]}}
</template> </template>
<el-button-group> <el-button-group>
<!-- 传递不同的参数来对应的值, index当前渲染的数据索引,day当前渲染的工作状态索引,1对应的值-->
<el-button @click="changeDay($index,day,1)" color="green">上班</el-button> <el-button @click="changeDay($index,day,1)" color="green">上班</el-button>
<el-button @click="changeDay($index,day,2)" color="orange">缺勤</el-button> <el-button @click="changeDay($index,day,2)" color="orange">缺勤</el-button>
<el-button @click="changeDay($index,day,4)" color="red" >加班</el-button> <el-button @click="changeDay($index,day,4)" color="red" >加班</el-button>
@ -175,6 +179,7 @@ const getUserInfo = async () => {
// //
const getWorkDay = async (index?:number)=>{ const getWorkDay = async (index?:number)=>{
// ,,
if (index != undefined){ if (index != undefined){
const date = listData.value[index] const date = listData.value[index]
if (Array.isArray(date.dayStatus)){ if (Array.isArray(date.dayStatus)){
@ -203,14 +208,15 @@ const changeDay = async (index:number,day:number,val:number)=>{
dayStatus = []; dayStatus = [];
dayStatus[day - 1] = val; // dayStatus[day - 1] = val; //
} }
await getWorkDay(index) await getWorkDay(index) //,
} }
// //
const createUser = async ()=>{ const createUser = async ()=>{
queryParamsUser.deptId = formData.value.deptId queryParamsUser.deptId = formData.value.deptId //deptIddeptId
const user = await getUserPageKQ(queryParamsUser) const user = await getUserPageKQ(queryParamsUser)//
const dataUser = user.list const dataUser = user.list
//,,id,,,
for (let item of dataUser){ for (let item of dataUser){
const data : KqdataVO = { const data : KqdataVO = {
id:null, id:null,
@ -231,6 +237,7 @@ const createUser = async ()=>{
// //
const updateUser = async ()=>{ const updateUser = async ()=>{
//
for (let item of listData.value){ for (let item of listData.value){
const data : KqdataVO = { const data : KqdataVO = {
id:item.id, id:item.id,
@ -239,24 +246,26 @@ const updateUser = async ()=>{
deptId:item.deptId, deptId:item.deptId,
deptName:item.deptName, deptName:item.deptName,
dayStatus: Array.isArray(item.dayStatus) dayStatus: Array.isArray(item.dayStatus)
? item.dayStatus.join(',') ? item.dayStatus.join(',') //
: String(item.dayStatus), // : String(item.dayStatus), //
tokey:item.tokey, tokey:item.tokey,
workDay: item.workDay, workDay: item.workDay,
overDay: item.overDay, overDay: item.overDay,
yoverDay: item.yoverDay, yoverDay: item.yoverDay,
} }
console.log(data) // console.log(data)
await KqdataApi.updateKqdata(data); await KqdataApi.updateKqdata(data);
} }
} }
/** 查询列表 */ /** 查询列表 */
const getList = async (dateKey?:number) => { const getList = async (dateKey?:number) => {
dateKey!==undefined?queryParamsData.tokey = dateKey:queryParamsData.tokey = formData.value.date // , formDate使,
queryParamsData.deptId = formData.value.deptId // ,使formData
const data = await KqdataApi.getKqdataPage(queryParamsData) dateKey!==undefined?queryParamsData.tokey = dateKey:queryParamsData.tokey = formData.value.date
listData.value = data.list queryParamsData.deptId = formData.value.deptId //deptIdid
const data = await KqdataApi.getKqdataPage(queryParamsData)//
listData.value = data.list
} }
// //
@ -265,10 +274,11 @@ const changeStatus = async ()=>{
try { try {
for (let item of listData.value){ for (let item of listData.value){
if (typeof item.dayStatus === 'string'){ if (typeof item.dayStatus === 'string'){
//使
item.dayStatus = item.dayStatus.split(',').map(Number); item.dayStatus = item.dayStatus.split(',').map(Number);
} }
} }
console.log(listData.value) // console.log(listData.value)
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
@ -277,7 +287,7 @@ const changeStatus = async ()=>{
/** 打开弹窗 设置时间戳为固定信息 */ /** 打开弹窗 设置时间戳为固定信息 */
const open = async (type: string, id?: number) => { const open = async (type: string, id?: number) => {
pop.value=false//span pop.value=false//span
const neDate = Date.now() // const neDate = Date.now() //
dateKey.value = (neDate / 1000 | 0) * 1000; // dateKey.value = (neDate / 1000 | 0) * 1000; //
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = t('action.' + type) dialogTitle.value = t('action.' + type)