|
@@ -20,8 +20,8 @@ interface EventCardPropsData {
|
|
|
delayTime: string
|
|
delayTime: string
|
|
|
}
|
|
}
|
|
|
changeInfo?: {
|
|
changeInfo?: {
|
|
|
- eTDChangeNum?: number
|
|
|
|
|
- eTAChangeNum?: number
|
|
|
|
|
|
|
+ etdChangeNum?: number
|
|
|
|
|
+ etaChangeNum?: number
|
|
|
changeTime: string
|
|
changeTime: string
|
|
|
}
|
|
}
|
|
|
changeTime?: string
|
|
changeTime?: string
|
|
@@ -33,9 +33,12 @@ const props = defineProps<{
|
|
|
data: EventCardPropsData
|
|
data: EventCardPropsData
|
|
|
}>()
|
|
}>()
|
|
|
|
|
|
|
|
-const handleSeeAll = () => {
|
|
|
|
|
|
|
+const handleSeeAll = (data: any) => {
|
|
|
router.push({
|
|
router.push({
|
|
|
- name: 'System Message Detail'
|
|
|
|
|
|
|
+ name: 'System Message Detail',
|
|
|
|
|
+ params: {
|
|
|
|
|
+ data: JSON.stringify(data) // 将数据转换为字符串并作为查询参数传递
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
@@ -47,21 +50,74 @@ const handleSeeAll = () => {
|
|
|
<div class="title">{{ data.title }}</div>
|
|
<div class="title">{{ data.title }}</div>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="content">
|
|
<div class="content">
|
|
|
- <div class="more-tips" v-if="data.isMultiple">
|
|
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="more-tips"
|
|
|
|
|
+ v-if="(data.type === 'milestone' || 'container') && data.numericRecords"
|
|
|
|
|
+ >
|
|
|
<span>Latest Status Updates ({{ data.numericRecords }})</span>
|
|
<span>Latest Status Updates ({{ data.numericRecords }})</span>
|
|
|
- <el-button @click="handleSeeAll" class="see-all-icon el-button--text">
|
|
|
|
|
|
|
+ <el-button @click="handleSeeAll(data)" class="see-all-icon el-button--text">
|
|
|
|
|
+ See All
|
|
|
|
|
+ <span class="font_family icon-icon_next_b"></span>
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="more-tips"
|
|
|
|
|
+ v-if="
|
|
|
|
|
+ data.type === 'delay' &&
|
|
|
|
|
+ (data.delayInfo.departureDelayNum || data.delayInfo.arrivalDelayNum)
|
|
|
|
|
+ "
|
|
|
|
|
+ >
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span v-if="data.delayInfo.departureDelayNum"
|
|
|
|
|
+ >Departure Delay ({{ data.delayInfo.departureDelayNum }})</span
|
|
|
|
|
+ >
|
|
|
|
|
+ <span v-if="data.delayInfo.departureDelayNum && data.delayInfo.arrivalDelayNum">
|
|
|
|
|
+ | </span
|
|
|
|
|
+ >
|
|
|
|
|
+ <span v-if="data.delayInfo.arrivalDelayNum">
|
|
|
|
|
+ Arrival Delay ({{ data.delayInfo.arrivalDelayNum }})
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-button @click="handleSeeAll(data)" class="see-all-icon el-button--text">
|
|
|
See All
|
|
See All
|
|
|
<span class="font_family icon-icon_next_b"></span>
|
|
<span class="font_family icon-icon_next_b"></span>
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="more-tips"
|
|
|
|
|
+ v-if="
|
|
|
|
|
+ data.type === 'change' && (data.changeInfo.etdChangeNum || data.changeInfo.etaChangeNum)
|
|
|
|
|
+ "
|
|
|
|
|
+ >
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <span v-if="data.changeInfo.etdChangeNum"
|
|
|
|
|
+ >ETD Change ({{ data.changeInfo.etdChangeNum }})</span
|
|
|
|
|
+ >
|
|
|
|
|
+ <span v-if="data.changeInfo.etdChangeNum && data.changeInfo.etaChangeNum">
|
|
|
|
|
+ | </span
|
|
|
|
|
+ >
|
|
|
|
|
+ <span v-if="data.changeInfo.etaChangeNum">
|
|
|
|
|
+ ETA Change ({{ data.changeInfo.etaChangeNum }})
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-button @click="handleSeeAll(data)" class="see-all-icon el-button--text">
|
|
|
|
|
+ See All
|
|
|
|
|
+ <span class="font_family icon-icon_next_b"></span>
|
|
|
|
|
+ </el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
<div class="base-info">
|
|
<div class="base-info">
|
|
|
- <span
|
|
|
|
|
- v-if="data.type !== 'container'"
|
|
|
|
|
- class="font_family"
|
|
|
|
|
- :class="[`icon-${transportationMode?.[data.mode]}`]"
|
|
|
|
|
- ></span>
|
|
|
|
|
- <span v-else class="font_family icon-icon_container__filled_b"></span>
|
|
|
|
|
- <span class="no">{{ data.no }}</span>
|
|
|
|
|
|
|
+ <!-- 除了container类型,其他类型都显示运输方式图标 -->
|
|
|
|
|
+ <div style="display: inline-block" v-if="data.type !== 'container'">
|
|
|
|
|
+ <span class="font_family" :class="[`icon-${transportationMode?.[data.mode]}`]"></span>
|
|
|
|
|
+ <span class="no">HBOL: {{ data.no }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- container类型显示图标 -->
|
|
|
|
|
+ <div v-else>
|
|
|
|
|
+ <span class="font_family icon-icon_container__filled_b"></span>
|
|
|
|
|
+ <span class="no">Container: {{ data.no }}</span>
|
|
|
|
|
+ </div>
|
|
|
<div class="tag" :class="{ delay: data.type === 'delay', change: data.type === 'change' }">
|
|
<div class="tag" :class="{ delay: data.type === 'delay', change: data.type === 'change' }">
|
|
|
<span class="dot"></span>
|
|
<span class="dot"></span>
|
|
|
<span class="text">{{ data.tag }}</span>
|
|
<span class="text">{{ data.tag }}</span>
|