临时外出添加培训报备

This commit is contained in:
fl 2025-03-04 13:51:44 +08:00
parent 9ade6a5bdf
commit b84687c39b
1 changed files with 82 additions and 40 deletions

View File

@ -1,7 +1,18 @@
<template> <template>
<div class="app-container" id="outApply"> <div class="app-container" id="outApply">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="申请时间" prop="leaveDate"> <el-form-item label="姓名" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入姓名" clearable style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否培训" prop="isTrain">
<el-select v-model="queryParams.isTrain" placeholder="是否培训" clearable style="width: 240px">
<el-option label="是" value="1"/>
<el-option label="否" value="0"/>
</el-select>
</el-form-item>
<el-form-item label="日期">
<el-date-picker <el-date-picker
v-model="queryParams.leaveDate" :clearable="false" v-model="queryParams.leaveDate" :clearable="false"
type="date" value-format="yyyy-MM-dd" style="width: 95%" type="date" value-format="yyyy-MM-dd" style="width: 95%"
@ -84,6 +95,11 @@
</el-table-column> </el-table-column>
<el-table-column label="外出时长(天)" align="center" prop="leaveDuration" :show-overflow-tooltip="true" <el-table-column label="外出时长(天)" align="center" prop="leaveDuration" :show-overflow-tooltip="true"
width="180"/> width="180"/>
<el-table-column label="是否培训" align="center" prop="isTrain" width="100">
<template slot-scope="scope">
<span>{{ scope.row.isTrain === '1' ? '是' : '否' }}</span>
</template>
</el-table-column>
<el-table-column label="审批状态" align="center" prop="examineStatus" :show-overflow-tooltip="true" width="100"> <el-table-column label="审批状态" align="center" prop="examineStatus" :show-overflow-tooltip="true" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.apply_status" :value="scope.row.examineStatus"/> <dict-tag :options="dict.type.apply_status" :value="scope.row.examineStatus"/>
@ -253,6 +269,18 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="是否培训:" prop="isTrain">
<el-radio-group v-model="form.isTrain">
<el-radio
v-for="item in isAgreeList"
:key="item.id"
:label="item.id"
>{{ item.name }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
@ -307,8 +335,8 @@ export default {
components: {Treeselect}, components: {Treeselect},
data() { data() {
return { return {
userInfo: this.$store.state.user, userInfo: {},
orgList: this.$store.state.user.orgList, orgList: [],
// //
loading: false, loading: false,
// //
@ -322,19 +350,7 @@ export default {
// //
total: 0, total: 0,
// //
tableList: [ tableList: [],
{
userName: "张三",
orgName: "公司机关/分公司机关/×××项目部",
createTime: "2024-08-28 1728",
leaveStartDate: "2024-08-29",
leaveStartInterval: "1",
leaveEndDate: "2024-08-29",
leaveEndInterval: "2",
leaveDuration: "1",
examineStatus: "0",
}
],
// //
title: "", title: "",
// //
@ -350,9 +366,9 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
leaveType: "临时外出", userName: undefined,
leaveDate: undefined, attStatus: undefined,
examineStatus: undefined isTrain: undefined
}, },
personOptions: [], personOptions: [],
typeList: [{value: '1', label: '固定班制'}, {value: '2', label: '自由工时'}], typeList: [{value: '1', label: '固定班制'}, {value: '2', label: '自由工时'}],
@ -361,7 +377,24 @@ export default {
label: '周四' label: '周四'
}, {id: 4, label: '周五'}, {id: 5, label: '周六'}, {id: 6, label: '周日'}], }, {id: 4, label: '周五'}, {id: 5, label: '周六'}, {id: 6, label: '周日'}],
// //
form: {}, form: {
userId: undefined,
userName: undefined,
orgId: undefined,
leaveStartDate: undefined,
leaveStartInterval: undefined,
leaveEndDate: undefined,
leaveEndInterval: undefined,
leaveDuration: undefined,
leaveType: "临时外出",
examineStatus: "0",
isAgree: "0",
isTrain: "0",
hostUserId: [],
leaveReason: undefined,
location: undefined,
remark: undefined
},
// //
rules: { rules: {
userName: [ userName: [
@ -389,11 +422,14 @@ export default {
{ required: true, message: "外出时长不能为空", trigger: "blur" } { required: true, message: "外出时长不能为空", trigger: "blur" }
], ],
location: [ location: [
{required: true, message: "是否请示领导不能为空", trigger: "blur"} { required: true, message: "地点不能为空", trigger: "blur" }
], ],
isAgree: [ isAgree: [
{ required: true, message: "是否请示领导不能为空", trigger: "blur" } { required: true, message: "是否请示领导不能为空", trigger: "blur" }
], ],
isTrain: [
{ required: true, message: "是否培训不能为空", trigger: "blur" }
],
hostUserId: [ hostUserId: [
{ required: true, message: "代理主持工作人员不能为空", trigger: "blur" } { required: true, message: "代理主持工作人员不能为空", trigger: "blur" }
], ],
@ -432,11 +468,18 @@ export default {
}; };
}, },
created() { created() {
this.initUserInfo();
this.getList(); this.getList();
this.getUserLists(); this.getUserLists();
this.getDeptList(); this.getDeptList();
}, },
methods: { methods: {
initUserInfo() {
this.userInfo = this.$store.state.user;
this.orgList = this.$store.state.user.orgList;
this.form.userId = this.userInfo.id;
this.form.userName = this.userInfo.name;
},
async handleDateChange() { async handleDateChange() {
if (this.form.leaveStartDate && this.form.leaveEndDate) { if (this.form.leaveStartDate && this.form.leaveEndDate) {
await this.daysBetween(this.form.leaveStartDate, this.form.leaveEndDate) await this.daysBetween(this.form.leaveStartDate, this.form.leaveEndDate)
@ -468,11 +511,6 @@ export default {
await getDaysDate(data).then(response => { await getDaysDate(data).then(response => {
this.daysNumber = response.data.date; this.daysNumber = response.data.date;
}); });
// const oneDay = 24 * 60 * 60 * 1000;
// const date1Ms = new Date(date1).getTime()
// const date2Ms = new Date(date2).getTime()
// const diff = Math.abs(date1Ms - date2Ms); //
// return diff / oneDay; //
}, },
/** 查询列表 */ /** 查询列表 */
getList() { getList() {
@ -499,8 +537,8 @@ export default {
// //
reset() { reset() {
this.form = { this.form = {
userId: this.userInfo.id, userId: undefined,
userName: this.userInfo.name, userName: undefined,
orgId: undefined, orgId: undefined,
leaveStartDate: undefined, leaveStartDate: undefined,
leaveStartInterval: undefined, leaveStartInterval: undefined,
@ -510,8 +548,11 @@ export default {
leaveType: "临时外出", leaveType: "临时外出",
examineStatus: "0", examineStatus: "0",
isAgree: "0", isAgree: "0",
isTrain: "0",
hostUserId: [], hostUserId: [],
leaveReason: undefined, leaveReason: undefined,
location: undefined,
remark: undefined
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -524,6 +565,7 @@ export default {
resetQuery() { resetQuery() {
this.dateRange = []; this.dateRange = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams.isTrain = undefined;
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
@ -624,7 +666,7 @@ export default {
const containsZero = userIdArray.includes('0'); const containsZero = userIdArray.includes('0');
const containsOtherValues = userIdArray.some(id => id !== '0'); const containsOtherValues = userIdArray.some(id => id !== '0');
if (containsZero && containsOtherValues) { if (containsZero && containsOtherValues) {
this.$modal.msgError("选择/后不能在选择其他人员"); this.$modal.msgError("选择'/'后不能在选择其他人员");
return; return;
} }