|
@@ -17,17 +17,15 @@
|
|
|
type="datetime"
|
|
|
format="YYYY-MM-DD HH:mm"
|
|
|
value-format="YYYY-MM-DD HH:mm"
|
|
|
+ :default-time="new Date('2000-01-01 23:59:59')"
|
|
|
+ :disabled-date="disabledEndTime"
|
|
|
size="default"
|
|
|
:prefix-icon="datePreTitle('结束')"
|
|
|
:clearable="false"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item :prop="formData.flightStatus" style="width: 104px">
|
|
|
- <el-select
|
|
|
- v-model="formData.flightStatus"
|
|
|
- size="default"
|
|
|
- :clearable="false"
|
|
|
- >
|
|
|
+ <el-select v-model="formData.flightStatus" size="default" :clearable="false">
|
|
|
<el-option
|
|
|
v-for="option in flightStatusOptions"
|
|
|
:key="option.value"
|
|
@@ -37,11 +35,7 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item :prop="formData.flightWarning" style="width: 104px">
|
|
|
- <el-select
|
|
|
- v-model="formData.flightWarning"
|
|
|
- size="default"
|
|
|
- :clearable="false"
|
|
|
- >
|
|
|
+ <el-select v-model="formData.flightWarning" size="default" :clearable="false">
|
|
|
<el-option
|
|
|
v-for="option in flightWarningOptions"
|
|
|
:key="option.value"
|
|
@@ -50,16 +44,8 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item
|
|
|
- v-if="name.includes('International')"
|
|
|
- :prop="formData.waybillType"
|
|
|
- style="width: 104px"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="formData.waybillType"
|
|
|
- size="default"
|
|
|
- :clearable="false"
|
|
|
- >
|
|
|
+ <el-form-item v-if="name.includes('International')" :prop="formData.waybillType" style="width: 104px">
|
|
|
+ <el-select v-model="formData.waybillType" size="default" :clearable="false">
|
|
|
<el-option
|
|
|
v-for="option in waybillTypeOptions"
|
|
|
:key="option.value"
|
|
@@ -73,6 +59,8 @@
|
|
|
|
|
|
<script setup lang="tsx">
|
|
|
import { parseTime } from '@/utils/validate'
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
+import { CommonData } from '~/common'
|
|
|
|
|
|
const props = defineProps({
|
|
|
name: {
|
|
@@ -83,20 +71,44 @@ const props = defineProps({
|
|
|
|
|
|
const emit = defineEmits(['formDataChange'])
|
|
|
|
|
|
+const defaultStartTime = `${parseTime(new Date(), '{y}-{m}-{d}')} 00:00`
|
|
|
+const defaultEndTime = `${parseTime(new Date(), '{y}-{m}-{d}')} 23:59`
|
|
|
const formData = reactive({
|
|
|
- startDate: `${parseTime(new Date(), '{y}-{m}-{d}')} 00:00`,
|
|
|
- endDate: `${parseTime(new Date(), '{y}-{m}-{d}')} 23:59`,
|
|
|
+ startDate: defaultStartTime,
|
|
|
+ endDate: defaultEndTime,
|
|
|
flightStatus: '',
|
|
|
flightWarning: '',
|
|
|
waybillType: '',
|
|
|
})
|
|
|
watchEffect(() => {
|
|
|
- const formatFormData = {}
|
|
|
+ if (!formData.startDate || !formData.endDate) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const start = new Date(formData.startDate + ':00').getTime()
|
|
|
+ const end = new Date(formData.endDate + ':59').getTime()
|
|
|
+ if (start > end) {
|
|
|
+ ElMessage.warning('开始时间不能晚于结束时间')
|
|
|
+ formData.endDate = ''
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (start <= end - 2 * 24 * 60 * 60 * 1000) {
|
|
|
+ ElMessage.warning('间隔不能超过2天')
|
|
|
+ formData.endDate = ''
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const formattedFormData: CommonData = {}
|
|
|
Object.entries(formData).forEach(([key, value]) => {
|
|
|
- formatFormData[key] = value === '' ? null : value
|
|
|
+ formattedFormData[key] = value === '' ? null : value
|
|
|
})
|
|
|
- emit('formDataChange', formatFormData)
|
|
|
+ formattedFormData.startDate = formData.startDate + ':00'
|
|
|
+ formattedFormData.endDate = formData.endDate + ':59'
|
|
|
+ emit('formDataChange', formattedFormData)
|
|
|
})
|
|
|
+const disabledEndTime = endDate => {
|
|
|
+ const start = new Date(formData.startDate + ':00').getTime()
|
|
|
+ const end = new Date(endDate + ':59').getTime()
|
|
|
+ return start > end || start <= end - 2 * 24 * 60 * 60 * 1000
|
|
|
+}
|
|
|
|
|
|
const datePreTitle = (title: string) => {
|
|
|
return <div class="date-pre-title">{title}:</div>
|