mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-19 04:23:59 +00:00
big commit
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 43 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 49 KiB |
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="row p-t-25 text-left">
|
||||
<div class="row text-left">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<div class="col p-l-50">
|
||||
<div class="row">
|
||||
<div class="col-auto p-r-0">
|
||||
<div class="b-a b-grey bg-white p-t-20 p-b-20 p-l-45 p-r-45 pointer" :class="{ 'b-primary': parameters.type === 2, 'text-primary': parameters.type === 2, 'b-grey': parameters.type !== 2 }" @click="parameters.type = 2">
|
||||
<div class="b-a b-grey bg-white p-t-20 p-b-20 p-l-45 p-r-45 pointer" :class="{ 'b-primary': parameters.type === 1, 'text-primary': parameters.type === 1, 'b-grey': parameters.type !== 1 }" @click="parameters.type = 1">
|
||||
<div class="m-b-15">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
width="45" height="45"
|
||||
@@ -58,7 +58,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<div class="b-a b-grey bg-white p-t-20 p-b-20 p-l-45 p-r-45 pointer" :class="{ 'b-primary': parameters.type === 1, 'text-primary': parameters.type === 1, 'b-grey': parameters.type !== 1 }" @click="parameters.type = 1">
|
||||
<div class="b-a b-grey bg-white p-t-20 p-b-20 p-l-45 p-r-45 pointer" :class="{ 'b-primary': parameters.type === 0, 'text-primary': parameters.type === 0, 'b-grey': parameters.type !== 0 }" @click="parameters.type = 0">
|
||||
<div class="m-b-15">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
|
||||
width="45" height="45"
|
||||
@@ -73,7 +73,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-30" v-show="parameters.type === 2">
|
||||
<div class="row m-b-30" v-show="parameters.type === 1">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col p-l-50">
|
||||
@@ -233,7 +233,7 @@
|
||||
name: {required},
|
||||
type: {required},
|
||||
company_name: { required: requiredIf(() => {
|
||||
return this.parameters.type === 2;
|
||||
return this.parameters.type === 1;
|
||||
})
|
||||
},
|
||||
phone: {},
|
||||
@@ -246,7 +246,7 @@
|
||||
name: {required},
|
||||
type: {required},
|
||||
company_name: {
|
||||
required: this.type === 2
|
||||
required: this.type === 1
|
||||
},
|
||||
phone: { required, numeric },
|
||||
wechat_id: {},
|
||||
@@ -261,7 +261,7 @@
|
||||
parameters: {
|
||||
email: this.email,
|
||||
name: '',
|
||||
type: 2,
|
||||
type: 1,
|
||||
company_name: '',
|
||||
phone: '',
|
||||
wechat_id: '',
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
<div class="modal modalContainer" :data-type="this.type">
|
||||
<div class="modal-dialog" v-bind:class="[{'modal-lg': this.large}, {'modal-sm': this.small}]">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header p-t-10 p-r-10 p-l-10">
|
||||
<i class="fa fa-times pointer ml-auto muted" data-dismiss="modal"></i>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<slot></slot>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
<template>
|
||||
<div class="row parentContainer">
|
||||
<div class="col">
|
||||
<div class="requestModal pointer" @click="loadFile" data-type="filePreview">
|
||||
<slot name="button" ></slot>
|
||||
</div>
|
||||
<modal-component styleType="fill-in" type="filePreview">
|
||||
<loading-component style="height: 200px; top: 0;" key="1" color="success" v-show="isLoading"></loading-component>
|
||||
<div class="row">
|
||||
<div class="col text-center">
|
||||
<img :src="src" class="w-100" v-if="type !== 'pdf'">
|
||||
<iframe v-if="type === 'pdf'" class="pdf-display w-100 scrollable" style="height: 80vh" :src="'data:application/pdf;base64,'+src"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</modal-component>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
file: {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
isLoading: false,
|
||||
loaded: false,
|
||||
src: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
type() {
|
||||
return this.file.file.mime_type === 'application/pdf' ? 'pdf' : 'image'
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
loadFile(){
|
||||
if(!this.loaded) {
|
||||
this.isLoading = true;
|
||||
let filePath = this.type === 'pdf' ? this.file.file.file_info.original.file : this.file.file.file_info[0].original.file;
|
||||
this.submit(this.route('api.storage.document.file', filePath)+'/', 'get', 'imagePreviewSection', false, false)
|
||||
}
|
||||
},
|
||||
renderPdf() {
|
||||
this.isLoading = false;
|
||||
},
|
||||
successHandler(response){
|
||||
this.loaded = true;
|
||||
this.src = response.payload.src;
|
||||
this.isLoading = false;
|
||||
|
||||
if(this.type === 'pdf'){
|
||||
this.renderPdf()
|
||||
}
|
||||
},
|
||||
errorHandler(error, statusCode){
|
||||
this.src = statusCode === 404 ? '/images/3231370.jpg' : '/images/2942005.jpg'
|
||||
this.isLoading = false;
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="row p-t-25 text-left">
|
||||
<div class="row text-left">
|
||||
<div class="col">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col p-l-0">
|
||||
<small class="all-caps hint-text text-warning">{{company.status === 2 ? 'Active' : 'Pending Verification'}}</small>
|
||||
<small class="all-caps hint-text text-warning" :class="[{'text-warning': company.status !== 2}, {'text-success': company.status === 2}]">{{company.status === 2 ? 'Active' : 'Pending Verification'}}</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -254,13 +254,37 @@
|
||||
</div>
|
||||
<div class="col pl-0 pl-md-auto p-r-5">
|
||||
<modal-component type="notification">
|
||||
<div class="row p-t-20">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h3 class="bold">Important Notice</h3>
|
||||
</div>
|
||||
</div>
|
||||
<qr-notice-component :id="newOrderId"></qr-notice-component>
|
||||
</modal-component>
|
||||
<modal-component type="wechat">
|
||||
<div class="row">
|
||||
<div class="col p-t-0 p-b-20">
|
||||
<div class="row m-b-5">
|
||||
<div class="col">
|
||||
<div class="font-heading text-success fs-14 bold">Great! You have done all the processes.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row m-b-10">
|
||||
<div class="col">
|
||||
<div class="font-heading fs-11">**Gentle reminder, our warehouse will reject any parcel that does not contain QR code.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<img src="/images/wechat_insturction.png" class="w-100">
|
||||
</div>
|
||||
<div class="col">
|
||||
<div class="font-heading fs-16 bold m-t-5">In order to assist you, and to help you keep track of your parcel, we will create a group on WeChat. <br><br>Please notice the friend request that has been sent by us on WeChat.</r></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</modal-component>
|
||||
<list-component key="2" section="orderSection" :endpoint="route('api.order.list', id)">
|
||||
<template slot="list" slot-scope="{data}">
|
||||
<order-component :data="data" class="b-b b-grey"></order-component>
|
||||
@@ -627,6 +651,11 @@
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
$(this.$el).find('.modalContainer[data-type="notification"]').on('hidden.bs.modal', function () {
|
||||
$('.modalContainer[data-type="wechat"]').modal('show');
|
||||
});
|
||||
|
||||
EventBus.$on('updateAddress', () => {
|
||||
this.fetchProfile();
|
||||
});
|
||||
@@ -636,7 +665,8 @@
|
||||
EventBus.$on('placeOrder', () => {
|
||||
this.$refs.placeOrder.click()
|
||||
});
|
||||
EventBus.$on('newOrder', (orderId) => {
|
||||
EventBus.$on('' +
|
||||
'newOrder', (orderId) => {
|
||||
if(this.company.total_orders === 0){
|
||||
this.fetchProfile();
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
</div>
|
||||
<modal-component type="welcome">
|
||||
<div class="row">
|
||||
<div class="col p-t-20 p-b-20">
|
||||
<div class="col p-t-0 p-b-20">
|
||||
<div class="row m-b-5">
|
||||
<div class="col">
|
||||
<div class="font-heading text-success fs-16 bold">Hello There! Welcome To CIEF Shipping</div>
|
||||
@@ -152,7 +152,7 @@
|
||||
</modal-component>
|
||||
<modal-component type="identification">
|
||||
<div class="row">
|
||||
<div class="col p-t-20 p-b-20">
|
||||
<div class="col p-t-0 p-b-20">
|
||||
<div class="row m-b-5">
|
||||
<div class="col">
|
||||
<div class="font-heading text-success fs-16 bold">Great! You have done the first step.</div>
|
||||
@@ -173,7 +173,7 @@
|
||||
</modal-component>
|
||||
<modal-component type="firstOrder">
|
||||
<div class="row">
|
||||
<div class="col p-t-20 p-b-20">
|
||||
<div class="col p-t-0 p-b-20">
|
||||
<div class="row m-b-5">
|
||||
<div class="col">
|
||||
<div class="font-heading text-success fs-16 bold">Great! You have uploaded your document.</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="row p-t-25 text-left">
|
||||
<div class="row text-left">
|
||||
<div class="col">
|
||||
<div class="row m-b-20">
|
||||
<div class="col">
|
||||
|
||||
+3
-2
@@ -8,14 +8,15 @@ export default {
|
||||
method: method,
|
||||
parameters: this.parameters
|
||||
}).then(response => {
|
||||
let success = response.ok;
|
||||
let statusCode = response.status,
|
||||
success = response.ok;
|
||||
|
||||
response.json().then(response => {
|
||||
|
||||
if(!success){
|
||||
|
||||
errorNotification ? this.$store.dispatch('createNotification', {title: response.title, message: response.message, type: 'error'}): null;
|
||||
this.errorHandler(response); return;
|
||||
this.errorHandler(response, statusCode); return;
|
||||
}
|
||||
|
||||
successNotification ? this.$store.dispatch('createNotification', {title: response.title, message: response.message, type: 'success'}): null;
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
@include('vendor/head')
|
||||
</head>
|
||||
<body class="fixed-header horizontal-menu horizontal-app-menu bg-master-lightest">
|
||||
|
||||
<!-- Google Tag Manager (noscript) -->
|
||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WDCRHTZ"
|
||||
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
||||
<!-- End Google Tag Manager (noscript) -->
|
||||
|
||||
<div id="app" style="min-height: 100%;">
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: SimHei;
|
||||
src: url('{{base_path().'/public/'}}simhei.ttf') format('truetype');
|
||||
}
|
||||
* {
|
||||
font-family: SimHei, serif ;
|
||||
}
|
||||
@page { margin: 0px; }
|
||||
body { margin: 0px; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@yield('inner_content')
|
||||
</body>
|
||||
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
@@ -1,68 +1,52 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<style>
|
||||
@font-face {
|
||||
font-family: SimHei;
|
||||
src: url('{{base_path().'/public/'}}simhei.ttf') format('truetype');
|
||||
}
|
||||
* {
|
||||
font-family: SimHei, serif ;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<style>
|
||||
@page { margin: 0px; }
|
||||
body { margin: 0px; }
|
||||
</style>
|
||||
<body>
|
||||
<table style="width: 100%; border: 2px solid #000000;">
|
||||
<tbody>
|
||||
@for ($i = 0; $i < 4; $i++)
|
||||
<tr>
|
||||
<td align="center" width="30%" style="border: 2px solid #000000;">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr align="center">
|
||||
<td>
|
||||
<img src="{{ url('https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl={"hash":"{1*23456}","id":'.$order->id.'}') }}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td>
|
||||
<h5 style="margin: 0 !important;"><strong>#{{$order->order_number}}</strong></h5>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td width="70%" style="border: 2px solid #000000; padding: 15px !important;">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border-bottom: solid 2px #000000;">
|
||||
<h3 style="margin-top: 0px !important; margin-bottom: 10px !important;">@if(strtolower($delivery_address->state) === 'sabah') SB/ @elseif(strtolower($delivery_address->state) === 'sarawak') SRW/ @endif CIEF/{{$marking}}/{{$order->order_number}}</h3>
|
||||
</td>
|
||||
</tr>
|
||||
{{--<tr>--}}
|
||||
{{--<td style="border-bottom: solid 1px #000000;">--}}
|
||||
{{--<h5 style="margin-top: 10px !important; margin-bottom: 10px !important; word-wrap: break-word">{{$delivery_address->street_one.' '.$delivery_address->street_two.' '.$delivery_address->city.' '.$delivery_address->post_code.' '.$delivery_address->state}}</h5>--}}
|
||||
{{--</td>--}}
|
||||
{{--</tr>--}}
|
||||
<tr>
|
||||
<td>
|
||||
<p style="font-size: 12px; margin-bottom: 0 !important; margin-top: 10px !important;">仓库地址:</p>
|
||||
<p style="margin-top: 5px !important; margin-bottom: 5px !important; word-wrap: break-word; font-size: 16px;">{{$warehouse_address->street_one.' '.$warehouse_address->street_two.' '.$warehouse_address->city.' '.$warehouse_address->state.' 邮编:'.$warehouse_address->post_code}}</p>
|
||||
<p style="margin-top: 5px !important; margin-bottom: 0px !important; font-size: 12px;">联系:{{$warehouse_contact[0]->phone.' '.$warehouse_contact[0]->name}} @if(array_key_exists(1, $warehouse_contact)) / {{$warehouse_contact[1]->phone.' '.$warehouse_contact[1]->name}} @endif</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@extends('layouts.base_pdf')
|
||||
@section('inner_content')
|
||||
<table style="width: 100%; border: 2px solid #000000;">
|
||||
<tbody>
|
||||
@for ($i = 0; $i < 4; $i++)
|
||||
<tr>
|
||||
<td align="center" width="30%" style="border: 2px solid #000000;">
|
||||
<table width="100%">
|
||||
<tbody>
|
||||
<tr align="center">
|
||||
<td>
|
||||
<img src="{{ url('https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl={"hash":"{1*23456}","id":'.$order->id.'}') }}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr align="center">
|
||||
<td>
|
||||
<h5 style="margin: 0 !important;"><strong>#{{$order->order_number}}</strong></h5>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td width="70%" style="border: 2px solid #000000; padding: 15px !important;">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border-bottom: solid 2px #000000;">
|
||||
<h3 style="margin-top: 0px !important; margin-bottom: 10px !important;">@if(strtolower($delivery_address->state) === 'sabah') SB/ @elseif(strtolower($delivery_address->state) === 'sarawak') SRW/ @endif CIEF/{{$marking}}/{{$order->order_number}}</h3>
|
||||
</td>
|
||||
</tr>
|
||||
{{--<tr>--}}
|
||||
{{--<td style="border-bottom: solid 1px #000000;">--}}
|
||||
{{--<h5 style="margin-top: 10px !important; margin-bottom: 10px !important; word-wrap: break-word">{{$delivery_address->street_one.' '.$delivery_address->street_two.' '.$delivery_address->city.' '.$delivery_address->post_code.' '.$delivery_address->state}}</h5>--}}
|
||||
{{--</td>--}}
|
||||
{{--</tr>--}}
|
||||
<tr>
|
||||
<td>
|
||||
<p style="font-size: 12px; margin-bottom: 0 !important; margin-top: 10px !important;">仓库地址:</p>
|
||||
<p style="margin-top: 5px !important; margin-bottom: 5px !important; word-wrap: break-word; font-size: 16px;">{{$warehouse_address->street_one.' '.$warehouse_address->street_two.' '.$warehouse_address->city.' '.$warehouse_address->state.' 邮编:'.$warehouse_address->post_code}}</p>
|
||||
<p style="margin-top: 5px !important; margin-bottom: 0px !important; font-size: 12px;">联系:{{$warehouse_contact[0]->phone.' '.$warehouse_contact[0]->name}} @if(array_key_exists(1, $warehouse_contact)) / {{$warehouse_contact[1]->phone.' '.$warehouse_contact[1]->name}} @endif</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endfor
|
||||
</tbody>
|
||||
</table>
|
||||
@endsection
|
||||
|
||||
|
||||
|
||||
Vendored
+10
@@ -1,4 +1,13 @@
|
||||
{{--BEGIN VENDOR JS--}}
|
||||
|
||||
<!-- Google Tag Manager -->
|
||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id=%27+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-WDCRHTZ');</script>
|
||||
<!-- End Google Tag Manager -->
|
||||
|
||||
<script>
|
||||
window.Laravel = {!! json_encode([
|
||||
'csrfToken' => csrf_token(),
|
||||
@@ -6,6 +15,7 @@
|
||||
'routes' => collect(\Route::getRoutes())->mapWithKeys(function ($route) { return [$route->getName() => $route->uri()]; })
|
||||
]) !!};
|
||||
</script>
|
||||
|
||||
<script src="{{ asset('js/vendor.js') }}" type="text/javascript"></script>
|
||||
<script src="{{asset('vue/app.js')}}"></script>
|
||||
<script src="{{ asset('js/site.js') }}" type="text/javascript"></script>
|
||||
|
||||
Reference in New Issue
Block a user