Compare commits

...

5 Commits

5 changed files with 166 additions and 48 deletions
@@ -26,7 +26,8 @@
<div class="btn btn-lg btn-default b-rad-none" data-dismiss="modal">Cancel</div>
</div>
<div class="col p-l-5">
<div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.update_dispatch_date', data.id), 'put', section, true, true)">Confirm</div>
<div class="btn btn-primary w-100 btn-lg" data-dismiss="modal" @click="submitDummy('containerArrival')">Confirm</div>
<!-- <div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.update_dispatch_date', data.id), 'put', section, true, true)">Confirm</div> -->
</div>
</div>
<p class="text-right small-text m-b-0" @click="expanded = !expanded" >Choose another Date</p>
@@ -53,6 +54,11 @@
eta: { required },
}
},
mixins: [modalFormHandler]
mixins: [modalFormHandler],
methods: {
submitDummy(progress) {
this.$emit('confirm', progress);
}
}
}
</script>
@@ -26,7 +26,8 @@
<div class="btn btn-lg btn-default b-rad-none" data-dismiss="modal">Cancel</div>
</div>
<div class="col p-l-5">
<div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.update_drop_date', data.id), 'put', section, true, true)">Confirm</div>
<div class="btn btn-primary w-100 btn-lg" data-dismiss="modal" @click="submitDummy('containerDepature')">Confirm</div>
<!-- <div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.update_drop_date', data.id), 'put', section, true, true)">Confirm</div> -->
</div>
</div>
<p class="text-right small-text m-b-0 cursor" @click="expanded = !expanded" >Choose another Date</p>
@@ -53,6 +54,11 @@
etd: { required },
}
},
mixins: [modalFormHandler]
mixins: [modalFormHandler],
methods: {
submitDummy(progress) {
this.$emit('confirm', progress);
}
}
}
</script>
@@ -11,7 +11,8 @@
<div class="btn btn-lg btn-default b-rad-none" data-dismiss="modal">Cancel</div>
</div>
<div class="col p-l-5">
<div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.complete', data.id), 'put', section, true, true)">Confirm</div>
<div class="btn btn-primary w-100 btn-lg" data-dismiss="modal" @click="submitDummy('containerUnpacking')">Confirm</div>
<!-- <div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.complete', data.id), 'put', section, true, true)">Confirm</div> -->
</div>
</div>
</div>
@@ -26,6 +27,11 @@
expanded: false,
};
},
mixins: [modalFormHandler]
mixins: [modalFormHandler],
methods: {
submitDummy(progress) {
this.$emit('confirm', progress);
}
}
}
</script>
@@ -29,7 +29,8 @@
<div class="btn btn-lg btn-default b-rad-none" data-dismiss="modal">Cancel</div>
</div>
<div class="col p-l-5">
<div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.reschedule', data.id), 'put', section, true, true)">Confirm</div>
<div class="btn btn-primary w-100 btn-lg" data-dismiss="modal" @click="submitDummy('rescheduleDate')">Confirm</div>
<!-- <div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.packing_list.container.reschedule', data.id), 'put', section, true, true)">Confirm</div> -->
</div>
</div>
</div>
@@ -40,6 +41,12 @@
import { required } from "vuelidate/lib/validators";
export default {
props: {
click: {
type: Function,
default: () => {}
}
},
data() {
return {
parameters: {
@@ -54,7 +61,12 @@
eta: { required },
}
},
mixins: [modalFormHandler]
mixins: [modalFormHandler],
methods: {
submitDummy(progress) {
this.$emit('confirm', progress);
}
}
}
</script>
@@ -148,6 +148,31 @@
left: -40px;
width: 100px;
}
.tracking-container {
padding: 0;
}
.tracking-container li {
list-style: none;
display: inline-block;
}
.overview-container {
position: relative;
display: block;
height: 150px;
}
.overview-container .overview-fixed-position {
position: fixed;
background-color: #fff;
display: block;
width: 71%;
top: 0;
z-index: 999;
border-bottom: 1px solid #ccc;
}
</style>
<template>
<div class="row" v-if="container">
@@ -169,7 +194,7 @@
</div>
</div>
</div>
<div class="col">
<div class="col" v-if="container.transport">
<div class="row">
<div class="col">
<p class="fs-10 bold m-b-0">ETD</p>
@@ -221,20 +246,22 @@
<div class="row h-100">
<div class="col">
<h5 class="m-b-5 large-text bold l-20">Tracking:</h5>
<div class="row h-100 p-l-10 p-r-10">
<div class="row p-l-10 p-r-10">
<div class="col rounded bg-master-lighter padding-15">
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="rescheduleDate">Reschedule Date form</a>
</li>
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="containerDepature">Container Departure</a>
</li>
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="containerArrival">Arrival Date</a>
</li>
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="containerUnpacking">Date of Unpacking</a>
</li>
<ul class="tracking-container">
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="rescheduleDate" v-if="showRescheduleDate">Reschedule Date form</a>
</li>
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="containerDepature" v-if="showContainerDepature">Container Departure</a>
</li>
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="containerArrival" v-if="showContainerArrival">Arrival Date</a>
</li>
<li class="m-t-10">
<a class="btn btn-sm btn-primary b-rad-none all-caps requestModal" data-type="containerUnpacking" v-if="showContainerUnpacking">Date of Unpacking</a>
</li>
</ul>
</div>
</div>
</div>
@@ -245,39 +272,43 @@
</div>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="rescheduleDate">
<reschedule-date-form-component :section="section" :data="container"></reschedule-date-form-component>
<reschedule-date-form-component :section="section" :data="container" @confirm="shippingProcess"></reschedule-date-form-component>
</modal-component>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="containerDepature">
<container-depature-form-component :section="section" :data="container"></container-depature-form-component>
<container-depature-form-component :section="section" :data="container" @confirm="shippingProcess"></container-depature-form-component>
</modal-component>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="containerArrival">
<container-arrival-form-component :section="section" :data="container"></container-arrival-form-component>
<container-arrival-form-component :section="section" :data="container" @confirm="shippingProcess"></container-arrival-form-component>
</modal-component>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="containerUnpacking">
<container-unpacking-form-container :section="section" :data="container"></container-unpacking-form-container>
<container-unpacking-form-container :section="section" :data="container" @confirm="shippingProcess"></container-unpacking-form-container>
</modal-component>
<div class="row m-t-40 m-b-0">
<div class="col">
<h5 class="bold m-b-40">Overview</h5>
<div class="row">
<div class="col-auto">
<div class="percentageContainer rounded bg-master-lightest b-grey">
<div class="percentageInner bg-primary rounded-bottom" :style="{ height: Math.round((loadedCBM / CBMcapacity) * 100, 2) + '%' }"></div>
<div class="percentageInnerText muted">
{{ Math.round((loadedCBM / CBMcapacity) * 100, 2) }}%
<div ref="overviewAnchor" class="overview-container">
<div :class="{ 'overview-fixed-position': overviewContClass }">
<h5 class="bold m-b-10">Overview</h5>
<div class="row">
<div class="col-auto">
<div class="percentageContainer rounded bg-master-lightest b-grey">
<div class="percentageInner bg-primary rounded-bottom" :style="{ height: Math.round((loadedCBM / CBMcapacity) * 100, 2) + '%' }"></div>
<div class="percentageInnerText muted">
{{ Math.round((loadedCBM / CBMcapacity) * 100, 2) }}%
</div>
</div>
</div>
<div class="col">
<p class="m-b-5 muted">Container No #{{container.container_number}}</p>
<h5 class="m-b-5 m-t-0 bold">Your order(s) are ready for shipment</h5>
<p class="m-b-5 m-t-0 muted">Total 1 package(s) in this container</p>
<p class="m-b-5 m-t-0">Loaded CBM: <span class="text-complete bold fs-20">{{loadedCBM}}</span></p>
</div>
<div class="col-auto">
<a class="btn btn-sm btn-danger b-rad-none all-caps requestModal rounded" data-type="rescheduleDate">Reschedule Date form</a>
</div>
</div>
</div>
<div class="col">
<p class="m-b-5 muted">Container No #{{container.container_number}}</p>
<h5 class="m-b-5 m-t-0 bold">Your order(s) are ready for shipment</h5>
<p class="m-b-5 m-t-0 muted">Total 1 package(s) in this container</p>
<p class="m-b-5 m-t-0">Loaded CBM: <span class="text-complete bold fs-20">{{loadedCBM}}</span></p>
</div>
<div class="col-auto">
<a class="btn btn-sm btn-danger b-rad-none all-caps requestModal rounded" data-type="rescheduleDate">Reschedule Date form</a>
</div>
</div>
<div class="row m-t-40">
<div class="col">
@@ -295,22 +326,22 @@
<div class="status_p text-center position-absolute">Warehouse-CN(K2921)</div>
</div>
</div>
<div class="dot requestModal pointer disabled" data-type="rescheduleDate">
<div class="position-relative">
<div class="dot requestModal pointer disabled" v-bind:class="{ 'checked': checkedRescheduleDate }" data-type="rescheduleDate">
<div class="position-relative">
<div class="status_p text-center position-absolute">Loading<br>Port</div>
</div>
</div>
<div class="dot">
<div class="dot requestModal pointer disabled" v-bind:class="{ 'checked': checkedContainerDepature }" data-type="containerDepature">
<div class="position-relative">
<div class="status_p text-center position-absolute">In<br>Transit</div>
</div>
</div>
<div class="dot">
<div class="dot requestModal pointer disabled" v-bind:class="{ 'checked': checkedContainerArrival }" data-type="containerArrival">
<div class="position-relative">
<div class="status_p text-center position-absolute">Discharge<br>Port</div>
</div>
</div>
<div class="dot">
<div class="dot requestModal pointer disabled" v-bind:class="{ 'checked': checkedContainerUnpacking }" data-type="containerUnpacking">
<div class="position-relative">
<div class="status_p text-center position-absolute">Warehouse-MY(M2525)</div>
</div>
@@ -651,6 +682,15 @@
selectAllPackingList: false,
selectedPackageList: [],
deleteCommentId: '',
showRescheduleDate: true,
showContainerDepature: false,
showContainerArrival: false,
showContainerUnpacking: false,
overviewContClass: false,
checkedRescheduleDate: false,
checkedContainerDepature: false,
checkedContainerArrival: false,
checkedContainerUnpacking: false
}
},
computed: {
@@ -671,6 +711,9 @@
created(){
this.$store.dispatch('updateListQueue', {'name': this.section});
},
mounted() {
this.calculateOverviewPosition();
},
methods: {
fetchCompany(){
this.isLoading = true;
@@ -692,6 +735,51 @@
this.selectedPackageList = this.container.packing_lists;
}
},
hideAllProgress() {
this.showRescheduleDate = false;
this.showContainerDepature = false;
this.showContainerArrival = false;
this.showContainerUnpacking = false;
},
shippingProcess(progress) {
switch(progress) {
case 'rescheduleDate':
this.hideAllProgress();
this.showContainerDepature = true;
this.checkedRescheduleDate = true;
break;
case 'containerDepature':
this.hideAllProgress();
this.showContainerArrival = true;
this.checkedRescheduleDate = true;
this.checkedContainerDepature = true;
break;
case 'containerArrival':
this.hideAllProgress();
this.showContainerUnpacking = true;
this.checkedRescheduleDate = true;
this.checkedContainerDepature = true;
this.checkedContainerArrival = true;
break;
case 'containerUnpacking':
this.hideAllProgress();
this.checkedRescheduleDate = true;
this.checkedContainerDepature = true;
this.checkedContainerArrival = true;
this.checkedContainerUnpacking = true;
break;
}
},
calculateOverviewPosition() {
setInterval(() => {
const anchor = this.$refs.overviewAnchor;
if (anchor) {
const viewportOffset = anchor.getBoundingClientRect();
let top = viewportOffset.top;
this.overviewContClass = (top <= 0) ? true : false;
}
}, 200);
}
}
}
</script>
</script>