diff --git a/attendance-performance-manager-ui/admin/src/assets/mixins/formdialog.js b/attendance-performance-manager-ui/admin/src/assets/mixins/formdialog.js index aacb6beb30f101054bd0ca56b7c4226d9eaf788d..bffbfe3256b764d3b249a4f5fb8260398860f18e 100644 --- a/attendance-performance-manager-ui/admin/src/assets/mixins/formdialog.js +++ b/attendance-performance-manager-ui/admin/src/assets/mixins/formdialog.js @@ -25,7 +25,16 @@ export default { data.attachmentPathList && data.attachmentPathList.length > 0 ? (data.attachmentPath = data.attachmentPathList[0].url) : (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; }, // 鎻愪氦琛ㄥ崟鐨勫悗缃鐞�, 浼氶樆鏂粯璁ょ殑鍥為€€琛屼负 diff --git a/attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue b/attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue index 92f23b858ac4ab580701d2e46d1fc9c7dd6c3150..5f0074d6fb3768df027bcf8d88e64bf05f9e76b1 100644 --- a/attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue +++ b/attendance-performance-manager-ui/admin/src/views/attendance/leave/record/drawershow.vue @@ -1,6 +1,11 @@ <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"> <el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-row> @@ -13,44 +18,142 @@ :maxLength="10" :disabled="pageInfo.type == 'view'" /> --> - <Field label="璇峰亣浜�" prop="leavePerson" type="select" filterable remote v-model="form.leavePerson" - placeholder="璇疯緭鍏ヨ鍋囦汉" :remote-method="remoteMethod" :maxLength="10" :enumData="staffList" - :disabled="pageInfo.type == 'view'" /> - <Field label="鎵€灞為儴闂�" prop="deptId" v-model="form.deptId" type="select" placeholder="璇烽€夋嫨鎵€灞為儴闂�" - :enumData="dict.deptId" :disabled="pageInfo.type == 'view'" /> + <Field + label="璇峰亣浜�" + prop="leavePerson" + type="select" + 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="phoneNumber" 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="phoneNumber" + 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" - :disabled="pageInfo.type == 'view'" /> - <Field label="缁撴潫鏃堕棿" prop="endTime" v-model="form.endTime" type="datetime" @change="changedate" - :disabled="pageInfo.type == 'view'" /> + <Field + label="寮€濮嬫椂闂�" + prop="startTime" + 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="璇疯緭鍏ユ椂闀�(绉�)" - :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="鏃堕暱(鍗曚綅:灏忔椂)" + disabled + prop="duration" + v-model="form.duration / 60 / 60" + 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="璇烽€夋嫨瀹℃壒璐熻矗浜�" - :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%;" /> + <Field + label="瀹℃壒璐熻矗浜�" + prop="approverId" + type="select" + 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> <!-- <Field label="瀹℃壒璐熻矗浜�" prop="approver" v-model="form.approver" placeholder="璇疯緭鍏ュ鎵硅礋璐d汉"/> --> <!-- <Field label="闄勪欢" prop="attachment" v-model="form.attachment" type="textarea" placeholder="璇疯緭鍏ラ檮浠�"/> --> - <Field label="澶囨敞" prop="remark" v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�" - :disabled="pageInfo.type == 'view'" style="width: 100%;" /> + <Field + label="澶囨敞" + prop="remark" + v-model="form.remark" + type="textarea" + placeholder="璇疯緭鍏ュ娉�" + :disabled="pageInfo.type == 'view'" + style="width: 100%;" + /> <el-form-item label="闄勪欢璺緞" prop="attachmentPathList"> - <FileUpload @input="uploadFn" :value="form.attachmentPathList" :fileNumber="1" - :pageInfoType="pageInfo.type" /> + <FileUpload + @input="uploadFn" + :value="form.attachmentPathList" + :fileNumber="1" + :pageInfoType="pageInfo.type" + /> </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> </div> </el-drawer> @@ -74,7 +177,7 @@ export default { loading: true, // 寮瑰嚭灞傛爣棰� title: "璇峰亣璁板綍淇℃伅", - staffList: {}, + staffList: [], // 鏄惁鏄剧ず寮瑰嚭灞� open: false, direction: "rtl", @@ -126,9 +229,7 @@ export default { trigger: "change", }, ], - duration: [ - { required: true, message: "璇疯緭鍏ユ椂闀�", trigger: "blur" }, - ], + duration: [{ required: true, message: "璇疯緭鍏ユ椂闀�", trigger: "blur" }], // reason: [ // { required: true, message: "璇疯緭鍏ヨ鍋囩悊鐢�", trigger: "blur" }, // ], @@ -155,20 +256,28 @@ export default { }, watch: {}, mounted() { - this.remoteMethod() + this.remoteMethod(); }, 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() { await this.$post(`/staff/list`, { page: 1, size: -1, }).then((res) => { - let data = res.data.data - let obj = {} + let data = res.data.data; + let obj = {}; 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() { @@ -245,9 +354,7 @@ export default { }, changedate(val) { if (this.form.startTime && this.form.endTime) { - if ( - this.form.endTime.valueOf() > this.form.startTime.valueOf() - ) { + if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) { // this.form.duration = getSec(this.form.startTime, this.form.endTime); this.$post("/attendance/getTimeCount", { startTime: this.form.startTime,