Commit bcd12e4b authored by 姬鋆屾's avatar 姬鋆屾

推修改请假人员报错的问题并添加部门联动

parent 9f2c6c06
...@@ -25,7 +25,16 @@ export default { ...@@ -25,7 +25,16 @@ export default {
data.attachmentPathList && data.attachmentPathList.length > 0 data.attachmentPathList && data.attachmentPathList.length > 0
? (data.attachmentPath = data.attachmentPathList[0].url) ? (data.attachmentPath = data.attachmentPathList[0].url)
: (data.attachmentPath = ""); : (data.attachmentPath = "");
if (data.leavePerson == 0 || data.leavePerson) {
if (this.dict.staffList) {
data.leavePerson = this.dict.staffList[this.form.leavePerson];
for (let key in this.dict.staffList) {
if (this.dict.staffList[key] == data.leavePerson) {
data.leavePersonId = Number(key);
}
}
}
}
return data; return data;
}, },
// 提交表单的后置处理, 会阻断默认的回退行为 // 提交表单的后置处理, 会阻断默认的回退行为
......
<template> <template>
<!-- 弹出框表单 --> <!-- 弹出框表单 -->
<el-drawer :title="title" :visible.sync="open" :direction="direction" size="60%"> <el-drawer
:title="title"
:visible.sync="open"
:direction="direction"
size="60%"
>
<div style="padding:15px"> <div style="padding:15px">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
...@@ -13,44 +18,142 @@ ...@@ -13,44 +18,142 @@
:maxLength="10" :maxLength="10"
:disabled="pageInfo.type == 'view'" :disabled="pageInfo.type == 'view'"
/> --> /> -->
<Field label="请假人" prop="leavePerson" type="select" filterable remote v-model="form.leavePerson" <Field
placeholder="请输入请假人" :remote-method="remoteMethod" :maxLength="10" :enumData="staffList" label="请假人"
:disabled="pageInfo.type == 'view'" /> prop="leavePerson"
<Field label="所属部门" prop="deptId" v-model="form.deptId" type="select" placeholder="请选择所属部门" type="select"
:enumData="dict.deptId" :disabled="pageInfo.type == 'view'" /> filterable
remote
v-model="form.leavePerson"
placeholder="请输入请假人"
@change="changeStaff(form.leavePerson)"
:remote-method="remoteMethod"
:maxLength="10"
:enumData="dict.staffList"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="所属部门"
prop="deptId"
v-model="form.deptId"
type="select"
placeholder="请选择所属部门"
:enumData="dict.deptId"
:disabled="true"
/>
<!-- <Field label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/> --> <!-- <Field label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/> -->
<Field label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码" :maxLength="11" <Field
:disabled="pageInfo.type == 'view'" /> label="电话号码"
<Field label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" prop="phoneNumber"
placeholder="请选择请假类型" :disabled="pageInfo.type == 'view'" /> v-model="form.phoneNumber"
placeholder="请输入电话号码"
:maxLength="11"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="请假类型"
prop="leaveType"
v-model="form.leaveType"
type="select"
:enumData="dict.leaveType"
placeholder="请选择请假类型"
:disabled="pageInfo.type == 'view'"
/>
<Field label="开始时间" prop="startTime" v-model="form.startTime" type="datetime" @change="changedate" <Field
:disabled="pageInfo.type == 'view'" /> label="开始时间"
<Field label="结束时间" prop="endTime" v-model="form.endTime" type="datetime" @change="changedate" prop="startTime"
:disabled="pageInfo.type == 'view'" /> v-model="form.startTime"
type="datetime"
@change="changedate"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="结束时间"
prop="endTime"
v-model="form.endTime"
type="datetime"
@change="changedate"
:disabled="pageInfo.type == 'view'"
/>
<Field label="时长(单位:小时)" disabled prop="duration" v-model="form.duration / 60 / 60" placeholder="请输入时长(秒)" <Field
:maxLength="4" /> label="时长(单位:小时)"
<Field label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由" disabled
:disabled="pageInfo.type == 'view'" /> prop="duration"
<Field label="审核结果" prop="auditResult" v-model="form.auditResult" type="radioCol" :enumData="dict.auditResult" v-model="form.duration / 60 / 60"
placeholder="请选择审核结果" :disabled="pageInfo.type == 'view'" style="width: 100%;" /> placeholder="请输入时长(秒)"
:maxLength="4"
/>
<Field
label="请假事由"
prop="reason"
v-model="form.reason"
type="textarea"
placeholder="请输入请假事由"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="审核结果"
prop="auditResult"
v-model="form.auditResult"
type="radioCol"
:enumData="dict.auditResult"
placeholder="请选择审核结果"
:disabled="pageInfo.type == 'view'"
style="width: 100%;"
/>
<Field label="审批负责人" prop="approverId" type="select" v-model="form.approverId" placeholder="请选择审批负责人" <Field
:enumData="dict.approverId" :disabled="pageInfo.type == 'view'" /> label="审批负责人"
<Field label="申请时间" prop="createTime" v-model="form.createTime" type="datetime" disabled /> prop="approverId"
<Field label="审核说明" prop="auditDesc" type="textarea" v-model="form.auditDesc" placeholder="请输入审核说明" type="select"
:disabled="pageInfo.type == 'view'" style="width: 100%;" /> v-model="form.approverId"
placeholder="请选择审批负责人"
:enumData="dict.approverId"
:disabled="pageInfo.type == 'view'"
/>
<Field
label="申请时间"
prop="createTime"
v-model="form.createTime"
type="datetime"
disabled
/>
<Field
label="审核说明"
prop="auditDesc"
type="textarea"
v-model="form.auditDesc"
placeholder="请输入审核说明"
:disabled="pageInfo.type == 'view'"
style="width: 100%;"
/>
</el-row> </el-row>
<!-- <Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> --> <!-- <Field label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/> -->
<!-- <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> --> <!-- <Field label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/> -->
<Field label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注" <Field
:disabled="pageInfo.type == 'view'" style="width: 100%;" /> label="备注"
prop="remark"
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
:disabled="pageInfo.type == 'view'"
style="width: 100%;"
/>
<el-form-item label="附件路径" prop="attachmentPathList"> <el-form-item label="附件路径" prop="attachmentPathList">
<FileUpload @input="uploadFn" :value="form.attachmentPathList" :fileNumber="1" <FileUpload
:pageInfoType="pageInfo.type" /> @input="uploadFn"
:value="form.attachmentPathList"
:fileNumber="1"
:pageInfoType="pageInfo.type"
/>
</el-form-item> </el-form-item>
<form-buttons @submit="submitForm" noCancelBtn v-if="pageInfo.type !== 'view'" /> <form-buttons
@submit="submitForm"
noCancelBtn
v-if="pageInfo.type !== 'view'"
/>
</el-form> </el-form>
</div> </div>
</el-drawer> </el-drawer>
...@@ -74,7 +177,7 @@ export default { ...@@ -74,7 +177,7 @@ export default {
loading: true, loading: true,
// 弹出层标题 // 弹出层标题
title: "请假记录信息", title: "请假记录信息",
staffList: {}, staffList: [],
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
direction: "rtl", direction: "rtl",
...@@ -126,9 +229,7 @@ export default { ...@@ -126,9 +229,7 @@ export default {
trigger: "change", trigger: "change",
}, },
], ],
duration: [ duration: [{ required: true, message: "请输入时长", trigger: "blur" }],
{ required: true, message: "请输入时长", trigger: "blur" },
],
// reason: [ // reason: [
// { required: true, message: "请输入请假理由", trigger: "blur" }, // { required: true, message: "请输入请假理由", trigger: "blur" },
// ], // ],
...@@ -155,20 +256,28 @@ export default { ...@@ -155,20 +256,28 @@ export default {
}, },
watch: {}, watch: {},
mounted() { mounted() {
this.remoteMethod() this.remoteMethod();
}, },
methods: { methods: {
changeStaff(val) {
let person = this.staffList.filter((v) => v.id == val);
console.log(person);
console.log(this.form);
this.form.deptId = person ? person[0].deptId : "";
},
async remoteMethod() { async remoteMethod() {
await this.$post(`/staff/list`, { await this.$post(`/staff/list`, {
page: 1, page: 1,
size: -1, size: -1,
}).then((res) => { }).then((res) => {
let data = res.data.data let data = res.data.data;
let obj = {} let obj = {};
for (let key in data) { for (let key in data) {
obj[key] = data[key].name obj[data[key].id] = data[key].name;
} }
this.staffList = obj this.dict.staffList = obj;
console.log(obj);
this.staffList = res.data.data;
}); });
}, },
// beforeSubmit() { // beforeSubmit() {
...@@ -245,9 +354,7 @@ export default { ...@@ -245,9 +354,7 @@ export default {
}, },
changedate(val) { changedate(val) {
if (this.form.startTime && this.form.endTime) { if (this.form.startTime && this.form.endTime) {
if ( if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) {
this.form.endTime.valueOf() > this.form.startTime.valueOf()
) {
// this.form.duration = getSec(this.form.startTime, this.form.endTime); // this.form.duration = getSec(this.form.startTime, this.form.endTime);
this.$post("/attendance/getTimeCount", { this.$post("/attendance/getTimeCount", {
startTime: this.form.startTime, startTime: this.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