Commit 14e05682 authored by ‘老张’'s avatar ‘老张’

加班和请假申请姓名和姓名框改动

parent 70bff294
......@@ -4,6 +4,21 @@
<span class="leave-application-title">请假申请</span>
<div class="leave-application-line"></div> <!-- 新增横线 -->
<el-form ref="formRef" :model="form" :rules="rules" label-width="130px">
<el-form-item label="姓名" prop="uname" class="custom-form-item">
<el-select
v-model="form.uname"
placeholder="请选择姓名"
class="custom-input"
@focus="loadUsernames"
>
<el-option
v-for="user in userOptions"
:key="user.value"
:label="user.label"
:value="user.label"
/>
</el-select>
</el-form-item>
<el-form-item label="请假类型" prop="leaveType" class="custom-form-item">
<el-select v-model="form.leaveType"
placeholder="请选择请假类型"
......@@ -128,6 +143,7 @@ import {addApplication,
getGeneralManagerNickName,
getProjectManagers,
updateOvertimeHoursBalance} from "@/api/application/application";
import { listAllUser } from '../../../api/onboardmanage/onboardmanage.js'
import holidaysData from '@/utils/psa/holidays_2025.js';
import useUserStore from '@/store/modules/user';
......@@ -180,6 +196,9 @@ const rules = reactive({
],
reason: [
{required: true, message: "请假事由说明不能为空", trigger: "blur"}
],
uname: [
{required: true, message: "姓名不能为空", trigger: "change"}
]
});
// 控制内容框的显示和隐藏
......@@ -189,6 +208,28 @@ const isViewMode = ref(false);
// 输入框提示信息
const uploadPromptMessage = ref('');
// 存储后端返回的用户选项列表
const userOptions = ref([]);
// 定义 getAllUserList 函数,一般放在文件合适位置,例如在数据获取相关函数区域
function getAllUserList() {
listAllUser().then(response => {
userOptions.value = response.rows.map(item => {
return {
value: item.id,
label: item.name
}
})
})
}
// 当下拉框获得焦点时,调用接口获取用户数据
const loadUsernames = () => {
if (userOptions.value.length === 0) {
getAllUserList();
}
};
// 存储后端返回的项目负责人列表
const projectManagers = ref([])
......@@ -507,11 +548,6 @@ const handleSubmit = () => {
if (secondApproverDisabled.value) {
form.secondApprover = null;
}
userStore.getInfo()
.then(userInfo => {
// 获取登录信息
form.uname = userInfo.user.userName;
form.userId = userInfo.user.userId; // 这里即为 employeeId
// 先提交请假申请(存储到 leave_application 表)
addApplication(form)
.then(response => {
......@@ -545,11 +581,6 @@ const handleSubmit = () => {
ElMessage.error('保存失败');
console.error(error);
});
})
.catch(error => {
ElMessage.error('获取用户信息失败');
console.error(error);
});
} else {
ElMessage.error('表单验证失败,请检查输入');
}
......
......@@ -168,7 +168,7 @@
</template>
<script setup>
// 控制内容框的显示和隐藏
import { onMounted, ref, reactive } from 'vue'
import { onMounted, ref, reactive,watch } from 'vue'
import { ElMessage } from 'element-plus'
import { useRouter, useRoute } from 'vue-router'
import {
......@@ -208,6 +208,15 @@ const rules = reactive({
]
})
watch(() => form.employeeId, (newValue) => {
const selectedOption = userOptions.value.find(option => option.value === newValue);
if (selectedOption) {
form.uname = selectedOption.label;
} else {
form.uname = undefined;
}
});
// 处理时间选择器变化
const handleTimeChange = () => {
console.log('Start Time:', form.startTime) // 调试日志
......
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