浏览代码

航站视图时间限制

zhongxiaoyu 2 年之前
父节点
当前提交
652c05d728

+ 37 - 25
src/views/realTime/components/AirportView/AirportForm.vue

@@ -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>

+ 2 - 2
src/views/realTime/components/AirportView/useAirportTable.ts

@@ -886,8 +886,8 @@ export function useAirportTable(name: string, formData: CommonData) {
         waybillType,
       } = formData
       const dataContent = [
-        startDate + ':00',
-        endDate + ':59',
+        startDate,
+        endDate,
         // flightStatus,
         // flightWarning
       ]

+ 1 - 1
src/views/realTime/components/CommonSwitch/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="common-switch switch-wrapper">
     <el-switch
-      :value="flag"
+      :model-value="flag"
       size="default"
       style="--el-switch-on-color: #ac014d; --el-switch-off-color: #b1b1b1"
       @change="updateFlag"

+ 2 - 2
src/views/realTime/components/WaybillView/index.vue

@@ -150,8 +150,8 @@ const tableData = computed(() =>
       CargoSN,
       pullMark,
       returnMark,
-      transMark,
-      exceptionCustomsMark,
+      // transMark,
+      // exceptionCustomsMark,
       execPosition, // 读取位置
       nodeCode, // 节点名称
       ConsignmentItemPackagingQuantityQuantity, // 跟踪节点件数

+ 1 - 1
src/views/realTime/hooks/useTable.ts

@@ -278,7 +278,7 @@ const tableColumnsMap: {
       width: 100,
       needFilters: 1,
     },
-    { columnLabel: '中转', columnName: 'transMark', needFilters: 1 },
+    // { columnLabel: '中转', columnName: 'transMark', needFilters: 1 },
     { columnLabel: '拉下', columnName: 'pullMark', needFilters: 1, width: 60 },
     {
       columnLabel: '退运',