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 3f91c345f9a0ad935f93597704f2ba21f03da283..df5983d5ad5b3532ad2c95e6928f1396b812a201 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,186 +1,254 @@ <template> - <!-- 寮瑰嚭妗嗚〃鍗� --> - <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> - <!-- <Field label="璇峰亣浜�" prop="leavePersonId" v-model="form.leavePersonId" placeholder="璇疯緭鍏ヨ鍋囦汉"/> --> - <Field label="璇峰亣浜�" prop="leavePerson" v-model="form.leavePerson" placeholder="璇疯緭鍏ヨ鍋囦汉" :maxLength="10"/> - <Field label="鎵€灞為儴闂�" prop="deptId" v-model="form.deptId" type="select" placeholder="璇烽€夋嫨鎵€灞為儴闂�" :enumData="dict.deptId" /> - <!-- <Field label="鎵€灞為儴闂�" prop="deptName" v-model="form.deptName" type="textarea" placeholder="璇疯緭鍏ユ墍灞為儴闂�"/> --> - <Field label="鐢佃瘽鍙风爜" prop="phoneNumber" v-model="form.phoneNumber" placeholder="璇疯緭鍏ョ數璇濆彿鐮�" :maxLength="11"/> - <Field label="璇峰亣绫诲瀷" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="璇烽€夋嫨璇峰亣绫诲瀷"/> - <Field label="寮€濮嬫椂闂�" prop="startTime" v-model="form.startTime" type="datetime" @change="changedate" /> - <Field label="缁撴潫鏃堕棿" prop="endTime" v-model="form.endTime" type="datetime" @change="changedate" /> + <!-- 寮瑰嚭妗嗚〃鍗� --> + <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> + <!-- <Field label="璇峰亣浜�" prop="leavePersonId" v-model="form.leavePersonId" placeholder="璇疯緭鍏ヨ鍋囦汉"/> --> + <Field + label="璇峰亣浜�" + prop="leavePerson" + v-model="form.leavePerson" + placeholder="璇疯緭鍏ヨ鍋囦汉" + :maxLength="10" + /> + <Field + label="鎵€灞為儴闂�" + prop="deptId" + v-model="form.deptId" + type="select" + placeholder="璇烽€夋嫨鎵€灞為儴闂�" + :enumData="dict.deptId" + /> + <!-- <Field label="鎵€灞為儴闂�" prop="deptName" v-model="form.deptName" type="textarea" placeholder="璇疯緭鍏ユ墍灞為儴闂�"/> --> + <Field + label="鐢佃瘽鍙风爜" + prop="phoneNumber" + v-model="form.phoneNumber" + placeholder="璇疯緭鍏ョ數璇濆彿鐮�" + :maxLength="11" + /> + <Field + label="璇峰亣绫诲瀷" + prop="leaveType" + v-model="form.leaveType" + type="select" + :enumData="dict.leaveType" + placeholder="璇烽€夋嫨璇峰亣绫诲瀷" + /> + <Field + label="寮€濮嬫椂闂�" + prop="startTime" + v-model="form.startTime" + type="datetime" + @change="changedate" + /> + <Field + label="缁撴潫鏃堕棿" + prop="endTime" + v-model="form.endTime" + type="datetime" + @change="changedate" + /> - <Field label="鏃堕暱(鍗曚綅:鍒嗛挓)" disabled prop="duration" v-model="form.duration" placeholder="璇疯緭鍏ユ椂闀�(鍒嗛挓)" :maxLength="4"/> - <Field label="璇峰亣浜嬬敱" prop="reason" v-model="form.reason" type="textarea" placeholder="璇疯緭鍏ヨ鍋囦簨鐢�"/> - <Field label="瀹℃壒璐熻矗浜�" prop="approverId" type="select" v-model="form.approverId" placeholder="璇烽€夋嫨瀹℃壒璐熻矗浜�" :enumData="dict.approverId"/> - <!-- <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="璇疯緭鍏ュ娉�"/> - </el-row> - <el-form-item label="闄勪欢璺緞" prop="attachmentPath"> - <FileUpload @input="uploadFn" :value="attachmentPath" /> - </el-form-item> - <form-buttons @submit="beforeSubmit" noCancelBtn /> - </el-form> - </div> - </el-drawer> + <Field + label="鏃堕暱(鍗曚綅:鍒嗛挓)" + disabled + prop="duration" + v-model="form.duration" + placeholder="璇疯緭鍏ユ椂闀�(鍒嗛挓)" + :maxLength="4" + /> + <Field + label="璇峰亣浜嬬敱" + prop="reason" + v-model="form.reason" + type="textarea" + placeholder="璇疯緭鍏ヨ鍋囦簨鐢�" + /> + <Field + label="瀹℃壒璐熻矗浜�" + prop="approverId" + type="select" + v-model="form.approverId" + placeholder="璇烽€夋嫨瀹℃壒璐熻矗浜�" + :enumData="dict.approverId" + /> + <!-- <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="璇疯緭鍏ュ娉�" + /> + </el-row> + <el-form-item label="闄勪欢璺緞" prop="attachmentPath"> + <FileUpload @input="uploadFn" :value="attachmentPath" /> + </el-form-item> + <form-buttons @submit="beforeSubmit" noCancelBtn /> + </el-form> + </div> + </el-drawer> </template> <script> - import form from "@/assets/mixins/formdialog"; - import valid from '@/assets/utils/vaild.js' - import {getMinu} from '@/assets/utils/dateFormat.js' - export default { - name: "AttendanceLeaveRecordDetail", - mixins: [form], - components: { - - }, - created() { - this.changePath("attendance/leave/record") - }, - data() { - return { - baseUrl:process.env.VUE_APP_API_BASE_URL+'/', - // 閬僵灞� - loading: true, - // 寮瑰嚭灞傛爣棰� - title: "璇峰亣璁板綍淇℃伅", - // 鏄惁鏄剧ず寮瑰嚭灞� - open: false, - direction:"rtl", - toString:[ - "leaveType", - ], - toDate:[ - "startTime", - "endTime", - ], - // 琛ㄥ崟鏍¢獙 - rules: { - leavePerson:[{required: true,message: "璇疯緭鍏ヨ鍋囦汉", trigger: "blur" }], - deptId:[{required: true,message: "璇烽€夋嫨閮ㄩ棬", trigger: "change" }], - phoneNumber:[ - {required: true,message: "璇疯緭鍏ョ數璇濆彿鐮�", trigger: "blur" }, - { - validator: valid.phone, - message: '鐢佃瘽鍙风爜鏍煎紡涓嶆纭�', - trigger: ['change', 'blur'] - } - ], - leaveType:[{required: true,message: "璇烽€夋嫨璇峰亣绫诲瀷", trigger: "change" }], - startTime:[{required: true,message: "璇烽€夋嫨寮€濮嬫椂闂�", trigger: "change" }], - endTime:[ - {required: true,message: "璇烽€夋嫨缁撴潫鏃堕棿", trigger: "change" }, - - ], - duration:[{required: true,message: "璇疯緭鍏ユ椂闀�", trigger: "blur" }], - reason:[{required: true,message: "璇疯緭鍏ヨ鍋囩悊鐢�", trigger: "blur" }], - approverId:[{required: true,message: "璇烽€夋嫨瀹℃壒浜�", trigger: "change" }], - attachmentPath:[{required: true,message: "璇蜂笂浼犻檮浠舵枃浠�", trigger: "change" }], - }, - attachmentPath:'' - }; - }, - - methods: { - beforeSubmit(){ - if(this.form.endTime.valueOf() > this.form.startTime.valueOf()){ - this.submitForm() - }else{ - this.$message.error('缁撴潫鏃ユ湡闇€澶т簬璇峰亣鏃ユ湡') - } - - }, - uploadFn(e){ - this.attachmentPath = e - this.form.attachmentPath = this.attachmentPath[0].url - }, - /** 缂栬緫 */ - edit(row) { - this.reset() - this.query = { id: row.id }; - this.urls.currUrl ="attendance/leave/record/edit"; - this.getData(); - this.pageInfo.type="edit" - this.title = "淇敼璇峰亣璁板綍淇℃伅"; - }, - /** 鏂板 */ - add(row) { - this.reset() - this.urls.currUrl = "attendance/leave/record/add"; - this.getData(); - this.pageInfo.type="add" - this.title = "鏂板璇峰亣璁板綍淇℃伅"; - }, - /** 鏌ョ湅*/ - view(row) { - this.reset() - this.query = { id: row.id }; - this.urls.currUrl ="attendance/leave/record/view"; - this.getData(); - this.pageInfo.type="view" - this.title = "璇峰亣璁板綍淇℃伅璇︾粏"; - }, - /**鍙栨秷鎸夐挳 */ - cancel() { - this.open = false; - }, - /**鑾峰彇鏁版嵁鍚庡脊妗� */ - afterRender(data) { - this.attachmentPath = [ - { name:'璇峰亣闄勪欢', - url:this.form.attachmentPath - } - ] - this.open = true; - }, - afterSubmit(data) { - this.open = false; - this.$emit("ok"); - }, - changedate(val){ - if(this.form.startTime && this.form.endTime){ - if(this.form.endTime.valueOf() > this.form.startTime.valueOf()){ - this.form.duration = getMinu(this.form.startTime,this.form.endTime) - }else{ - this.$message.error('缁撴潫鏃ユ湡闇€澶т簬璇峰亣鏃ユ湡'); - } - } - }, - // 琛ㄥ崟閲嶇疆 - reset() { - this.form = { - leavePersonId : null, - leavePerson : "", - deptId : null, - deptName : "", - phoneNumber : "", - leaveType : null, - startTime : null, - endTime : null, - duration : null, - reason : "", - approverId : null, - approver : "", - attachment : "", - attachmentPath : "", - remark : "", - }; - this.resetForm("form"); - }, - resetForm(refName) { - if (this.$refs[refName]) { - this.$refs[refName].resetFields(); - } - }, - }, +import form from "@/assets/mixins/formdialog"; +import valid from "@/assets/utils/vaild.js"; +import { getMinu } from "@/assets/utils/dateFormat.js"; +export default { + name: "AttendanceLeaveRecordDetail", + mixins: [form], + components: {}, + created() { + this.changePath("attendance/leave/record"); + }, + data() { + return { + baseUrl: process.env.VUE_APP_API_BASE_URL + "/", + // 閬僵灞� + loading: true, + // 寮瑰嚭灞傛爣棰� + title: "璇峰亣璁板綍淇℃伅", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + direction: "rtl", + toString: ["leaveType"], + toDate: ["startTime", "endTime"], + // 琛ㄥ崟鏍¢獙 + rules: { + leavePerson: [ + { required: true, message: "璇疯緭鍏ヨ鍋囦汉", trigger: "blur" }, + ], + deptId: [{ required: true, message: "璇烽€夋嫨閮ㄩ棬", trigger: "change" }], + phoneNumber: [ + { required: true, message: "璇疯緭鍏ョ數璇濆彿鐮�", trigger: "blur" }, + { + validator: valid.phone, + message: "鐢佃瘽鍙风爜鏍煎紡涓嶆纭�", + trigger: ["change", "blur"], + }, + ], + leaveType: [ + { required: true, message: "璇烽€夋嫨璇峰亣绫诲瀷", trigger: "change" }, + ], + startTime: [ + { required: true, message: "璇烽€夋嫨寮€濮嬫椂闂�", trigger: "change" }, + ], + endTime: [ + { required: true, message: "璇烽€夋嫨缁撴潫鏃堕棿", trigger: "change" }, + ], + duration: [{ required: true, message: "璇疯緭鍏ユ椂闀�", trigger: "blur" }], + reason: [ + { required: true, message: "璇疯緭鍏ヨ鍋囩悊鐢�", trigger: "blur" }, + ], + approverId: [ + { required: true, message: "璇烽€夋嫨瀹℃壒浜�", trigger: "change" }, + ], + attachmentPath: [ + { required: true, message: "璇蜂笂浼犻檮浠舵枃浠�", trigger: "change" }, + ], + }, + attachmentPath: "", }; + }, + + methods: { + beforeSubmit() { + if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) { + this.submitForm(); + } else { + this.$message.error("缁撴潫鏃ユ湡闇€澶т簬璇峰亣鏃ユ湡"); + } + }, + uploadFn(e) { + this.attachmentPath = e; + this.form.attachmentPath = this.attachmentPath[0].url; + }, + /** 缂栬緫 */ + edit(row) { + this.reset(); + this.query = { id: row.id }; + this.urls.currUrl = "attendance/leave/record/edit"; + this.getData(); + this.pageInfo.type = "edit"; + this.title = "淇敼璇峰亣璁板綍淇℃伅"; + }, + /** 鏂板 */ + add(row) { + this.reset(); + this.urls.currUrl = "attendance/leave/record/add"; + this.getData(); + this.pageInfo.type = "add"; + this.title = "鏂板璇峰亣璁板綍淇℃伅"; + }, + /** 鏌ョ湅*/ + view(row) { + this.reset(); + this.query = { id: row.id }; + this.urls.currUrl = "attendance/leave/record/view"; + this.getData(); + this.pageInfo.type = "view"; + this.title = "璇峰亣璁板綍淇℃伅璇︾粏"; + }, + /**鍙栨秷鎸夐挳 */ + cancel() { + this.open = false; + }, + /**鑾峰彇鏁版嵁鍚庡脊妗� */ + afterRender(data) { + this.attachmentPath = [ + // { name:'璇峰亣闄勪欢', + // url:this.form.attachmentPath + // } + ]; + this.open = true; + }, + afterSubmit(data) { + this.open = false; + this.$emit("ok"); + }, + changedate(val) { + if (this.form.startTime && this.form.endTime) { + if (this.form.endTime.valueOf() > this.form.startTime.valueOf()) { + this.form.duration = getMinu(this.form.startTime, this.form.endTime); + } else { + this.$message.error("缁撴潫鏃ユ湡闇€澶т簬璇峰亣鏃ユ湡"); + } + } + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + leavePersonId: null, + leavePerson: "", + deptId: null, + deptName: "", + phoneNumber: "", + leaveType: null, + startTime: null, + endTime: null, + duration: null, + reason: "", + approverId: null, + approver: "", + attachment: "", + attachmentPath: "", + remark: "", + }; + this.resetForm("form"); + }, + resetForm(refName) { + if (this.$refs[refName]) { + this.$refs[refName].resetFields(); + } + }, + }, +}; </script>