|
@@ -22,7 +22,24 @@ const type = ref<string>('1')
|
|
|
const formSize = ref<ComponentSize>('default')
|
|
|
const ruleFormRef = ref<any>()
|
|
|
|
|
|
-const ruleForm = reactive<any>({
|
|
|
+interface RuleForm {
|
|
|
+ leaveType: string
|
|
|
+ userPhone: string
|
|
|
+ monitorName: string
|
|
|
+ dormitory: string
|
|
|
+ destination: string
|
|
|
+ reason: string
|
|
|
+ isKnow: string
|
|
|
+ companionsPhone: string
|
|
|
+ motherPhone: string
|
|
|
+ fatherPhone: string
|
|
|
+ travelMode: string
|
|
|
+
|
|
|
+ startTime: string
|
|
|
+ endTime: string
|
|
|
+}
|
|
|
+
|
|
|
+const ruleForm = reactive<RuleForm>({
|
|
|
//是否离郑
|
|
|
leaveType: '0',
|
|
|
//本人手机号
|
|
@@ -40,7 +57,7 @@ const ruleForm = reactive<any>({
|
|
|
//同行人电话
|
|
|
companionsPhone: '',
|
|
|
//母亲电话
|
|
|
- montherPhone: '',
|
|
|
+ motherPhone: '',
|
|
|
//父亲电话
|
|
|
fatherPhone: '',
|
|
|
//出行方式
|
|
@@ -51,7 +68,7 @@ const ruleForm = reactive<any>({
|
|
|
endTime: ''
|
|
|
|
|
|
})
|
|
|
-const rules = reactive<FormRules<any>>({
|
|
|
+const rules = reactive<FormRules<RuleForm>>({
|
|
|
leaveType: [
|
|
|
{ required: true, message: '请填写是否离郑', trigger: 'blur' },
|
|
|
],
|
|
@@ -94,9 +111,49 @@ const rules = reactive<FormRules<any>>({
|
|
|
],
|
|
|
startTime: [
|
|
|
{ required: true, message: '请填写请假时间', trigger: 'change' },
|
|
|
+ {
|
|
|
+ validator: function (rule, value, callback) {
|
|
|
+ if (value !== '' && ruleForm.endTime !== '') {
|
|
|
+ let startTime = new Date(value).getTime();
|
|
|
+ let endTime = new Date(ruleForm.endTime).getTime()
|
|
|
+ //先判断都不为空
|
|
|
+
|
|
|
+
|
|
|
+ if (startTime >= endTime) {
|
|
|
+ callback(new Error('请假时间应小于返校时间'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }, trigger: 'change'
|
|
|
+ },
|
|
|
],
|
|
|
endTime: [
|
|
|
{ required: true, message: '请填写返校时间', trigger: 'change' },
|
|
|
+ {
|
|
|
+ validator: function (rule, value, callback) {
|
|
|
+ if (value !== '' && ruleForm.startTime !== '') {
|
|
|
+ let startTime = new Date(ruleForm.startTime).getTime();
|
|
|
+
|
|
|
+ let endTime = new Date(value).getTime()
|
|
|
+ if (endTime <= startTime) {
|
|
|
+ callback(new Error('返校时间应大于请假时间'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ //
|
|
|
+
|
|
|
+
|
|
|
+ }, trigger: 'change'
|
|
|
+ },
|
|
|
],
|
|
|
})
|
|
|
//提交表单
|
|
@@ -113,6 +170,10 @@ const submitForm = async (formEl: FormInstance | undefined) => {
|
|
|
if (valid) {
|
|
|
console.log('submit!')
|
|
|
//调用用户提交信息的代码
|
|
|
+ //判断返校时间是否大于请假时间
|
|
|
+ let leaveTime = new Date()
|
|
|
+
|
|
|
+
|
|
|
subLeaveInfo()
|
|
|
} else {
|
|
|
buttonStatus.value = false
|
|
@@ -201,11 +262,17 @@ const resetData = (formEl: FormInstance | undefined) => {
|
|
|
//是否离郑状态改变
|
|
|
const leaveStatus = (val: string) => {
|
|
|
// resetData(ruleFormRef)
|
|
|
-
|
|
|
if (val == '1') {
|
|
|
+ rules.monitorName = [
|
|
|
+ { required: true, message: '请填写班长姓名', trigger: 'blur' },
|
|
|
+ ]
|
|
|
+ rules.companionsPhone = [
|
|
|
+ { required: true, message: '请填写同行人电话', trigger: 'blur' },
|
|
|
+ { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }
|
|
|
+ ]
|
|
|
//这样回触发校验
|
|
|
- rules.monitorName[0].required = true;
|
|
|
- rules.companionsPhone[0].required = true
|
|
|
+ // rules!.monitorName[0].required = true;
|
|
|
+ // rules!.companionsPhone[0].required = true
|
|
|
}
|
|
|
ruleFormRef.value.clearValidate()
|
|
|
}
|
|
@@ -261,9 +328,9 @@ const isKnowFormatter = (val: any) => {
|
|
|
//格式审核状态状态
|
|
|
const auditStatusFormatter = (val: any) => {
|
|
|
if (val.auditStatus == '0') {
|
|
|
- return '审批中'
|
|
|
+ return '待审批'
|
|
|
} else {
|
|
|
- return '审核结束'
|
|
|
+ return '已审批'
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -303,8 +370,7 @@ defineExpose({ open })
|
|
|
|
|
|
<template>
|
|
|
|
|
|
- <el-dialog v-model="leave_visible" :show-close="true" width="60%" height="1000px" top="5vh"
|
|
|
- style="border-radius: 40px; ">
|
|
|
+ <el-dialog v-model="leave_visible" :show-close="true" width="80%" top="5vh" style="border-radius: 40px; ">
|
|
|
<template #header="{ close, titleId, titleClass }">
|
|
|
<div class="leave_title">请假</div>
|
|
|
<el-radio-group v-model="type" size="large" @change="typeFun">
|
|
@@ -373,13 +439,14 @@ defineExpose({ open })
|
|
|
</el-form>
|
|
|
<div class="reset_sub">
|
|
|
<el-button @click="resetData(ruleFormRef)">重置</el-button>
|
|
|
- <el-button type="success" @click="submitForm(ruleFormRef)">提交</el-button>
|
|
|
+ <el-button type="success" @click="submitForm(ruleFormRef)" :disabled="buttonStatus">提交</el-button>
|
|
|
</div>
|
|
|
<div class="leave_tip"> 温馨提示:(天气寒冷,晚上行人少,为保证大家安全,返校时间尽量在21:00之前)
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-show="type == '2'">
|
|
|
- <el-table :data="tableData" style="width: 100%;height: 60vh;">
|
|
|
+ <el-table :data="tableData" style="width: 100%;height: 60vh;"
|
|
|
+ :header-cell-style="{ background: '#F8F8F8', color: '#606266' }">
|
|
|
<el-table-column fixed prop="leaveType" label="是否离郑" width="" :formatter="leaveTypeFormatter" />
|
|
|
<el-table-column prop="userPhone" label="本人手机号码" width="" />
|
|
|
<el-table-column prop="monitorName" label="班长姓名" width="" />
|
|
@@ -419,6 +486,7 @@ defineExpose({ open })
|
|
|
.leave {
|
|
|
:deep(.el-form-item) {
|
|
|
width: 50% !important;
|
|
|
+ margin-top: 10px;
|
|
|
}
|
|
|
|
|
|
:deep(.el-input__wrapper) {
|
|
@@ -455,5 +523,9 @@ defineExpose({ open })
|
|
|
|
|
|
.leave_title {
|
|
|
text-align: center;
|
|
|
+ color: #333333;
|
|
|
+ font-weight: 700;
|
|
|
+ font-size: 16px;
|
|
|
+ margin-bottom: 20px;
|
|
|
}
|
|
|
</style>
|