mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange.git
synced 2026-08-19 04:14:04 +00:00
4e448afc60
added confirm invoice feature (after user upload the image)
376 lines
13 KiB
Vue
376 lines
13 KiB
Vue
<template>
|
|
<el-main>
|
|
<progress-track v-model="status" />
|
|
|
|
<div align="center">
|
|
<h4 style="margin-top:5%;"></h4>
|
|
<br>
|
|
<div v-if="user_po_path !== null">
|
|
<h4>Upload Invoice</h4>
|
|
</div>
|
|
<div v-else>
|
|
<h4>Waiting for User to Upload Purchase Order </h4>
|
|
<br>
|
|
<el-button type="primary" @click="$router.go(-1)">Go Back</el-button>
|
|
</div>
|
|
<br>
|
|
<!-- <el-button type="primary" @click="$router.go(-1)">Go Back</el-button> -->
|
|
</div>
|
|
<br>
|
|
<el-row justify="center" align="center">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>Order Details</span>
|
|
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
|
|
</div>
|
|
<div class="el-row" style="margin-left: -6px; margin-right: -6px;">
|
|
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
|
|
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
|
|
|
|
<div class="el-table__body-wrapper is-scrolling-none">
|
|
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
|
|
<colgroup>
|
|
<col name="el-table_2_column_9" width="200">
|
|
<col name="el-table_2_column_10" width="200">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_2_column_9 is-right ">
|
|
<div class="cell">Order Number :</div>
|
|
</td>
|
|
<td class="el-table_2_column_10 is-left ">
|
|
<div class="cell">{{ booking_details.id }}</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_2_column_9 is-right ">
|
|
<div class="cell">Date :</div>
|
|
</td>
|
|
<td class="el-table_2_column_10 is-left ">
|
|
<div class="cell">{{ booking_details.created_at }}</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_2_column_9 is-right ">
|
|
<div class="cell">Customer Marking :</div>
|
|
</td>
|
|
<td class="el-table_2_column_10 is-left ">
|
|
<div class="cell">CIEF/150ECE</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_2_column_9 is-right ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
<td class="el-table_2_column_10 is-left ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_2_column_9 is-right ">
|
|
<div class="cell">Term :</div>
|
|
</td>
|
|
<td class="el-table_2_column_10 is-left ">
|
|
<div class="cell">{{ booking_details.term }}</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_2_column_9 is-right ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
<td class="el-table_2_column_10 is-left ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
</tr>
|
|
<!---->
|
|
</tbody>
|
|
</table>
|
|
<!---->
|
|
<!---->
|
|
</div>
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<!---->
|
|
<div class="el-table__column-resize-proxy" style="display: none;"></div>
|
|
</div>
|
|
</div>
|
|
<div class="el-col el-col-12" style="padding-left: 6px; padding-right: 6px;">
|
|
<div class="el-table el-table--fit el-table--enable-row-hover el-table--enable-row-transition" align="center">
|
|
<div class="hidden-columns">
|
|
<div></div>
|
|
<div></div>
|
|
</div>
|
|
<!---->
|
|
<div class="el-table__body-wrapper is-scrolling-none">
|
|
<table class="el-table__body" style="width: 400px;" cellspacing="0" cellpadding="0" border="0">
|
|
<colgroup>
|
|
<col name="el-table_3_column_11" width="200">
|
|
<col name="el-table_3_column_12" width="200">
|
|
</colgroup>
|
|
<tbody>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_3_column_11 is-right ">
|
|
<div class="cell">CNY/RMB :</div>
|
|
</td>
|
|
<td class="el-table_3_column_12 is-left ">
|
|
<div class="cell">CNY {{ booking_details.amount }}</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_3_column_11 is-right ">
|
|
<div class="cell">+ Service Charge :</div>
|
|
</td>
|
|
<td class="el-table_3_column_12 is-left ">
|
|
<div class="cell">CNY {{ booking_details.service_charge }}</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_3_column_11 is-right ">
|
|
<div class="cell">/ RATE :</div>
|
|
</td>
|
|
<td class="el-table_3_column_12 is-left ">
|
|
<div class="cell">{{ booking_details.rate }}</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_3_column_11 is-right ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
<td class="el-table_3_column_12 is-left ">
|
|
<div class="cell">MYR {{ booking_details.bia }}</div>
|
|
</td>
|
|
</tr>
|
|
<!-- <tr class="el-table__row">
|
|
<td class="el-table_3_column_11 is-right ">
|
|
<div class="cell">+ GST 6% :</div>
|
|
</td>
|
|
<td class="el-table_3_column_12 is-left ">
|
|
<div class="cell">MYR 4,430.88</div>
|
|
</td>
|
|
</tr> -->
|
|
<tr class="el-table__row">
|
|
<td class="el-table_3_column_11 is-right ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
<td class="el-table_3_column_12 is-left ">
|
|
<div class="cell">
|
|
<b>MYR {{ booking_details.bia }}</b>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr class="el-table__row">
|
|
<td class="el-table_3_column_11 is-right ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
<td class="el-table_3_column_12 is-left ">
|
|
<div class="cell"></div>
|
|
</td>
|
|
</tr>
|
|
<!---->
|
|
</tbody>
|
|
</table>
|
|
<!---->
|
|
<!---->
|
|
</div>
|
|
<div class="el-table__column-resize-proxy" style="display: none;"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-card>
|
|
</el-row>
|
|
<br>
|
|
|
|
<el-row v-if="user_po_path !== null" :gutter="12" justify="center" align="center">
|
|
<el-col :span="12">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>Upload Invoice</span>
|
|
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
|
|
</div>
|
|
|
|
<!-- upload image -->
|
|
<el-upload :action="'/api/booking/' + booking_id + '/upload-invoice'" :on-exceed="handleExceed" :on-preview="handlePreview"
|
|
:on-remove="handleRemove"
|
|
class="upload-demo"
|
|
drag
|
|
multiple>
|
|
<i class="el-icon-upload"/>
|
|
<div class="el-upload__text">Drop file here or
|
|
<em>click to upload</em>
|
|
</div>
|
|
<div slot="tip" class="el-upload__tip">jpg/png/pdf files with a size less than 3mb</div>
|
|
</el-upload>
|
|
|
|
<br>
|
|
|
|
<div class="bottom clearfix" style="text-align:right;">
|
|
<el-button :loading="loading_btn" type="primary" @click="confirmInvoice">Submit</el-button>
|
|
</div>
|
|
<!-- upload image end -->
|
|
|
|
</el-card>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-card class="box-card">
|
|
<div slot="header" class="clearfix">
|
|
<span>Customer Purchase Order</span>
|
|
<!-- <el-button style="float: right; padding: 3px 0" type="text">Operation button</el-button> -->
|
|
</div>
|
|
<el-row :gutter="12" type="flex">
|
|
<el-col :span="12">
|
|
<img v-bind:src="user_po_path" width="100%" height="100%">
|
|
<img v-bind:src="booking_details.user_bankslip_path" class="image">
|
|
</el-col>
|
|
</el-row>
|
|
</el-card>
|
|
</el-col>
|
|
</el-row>
|
|
</el-main>
|
|
</template>
|
|
<style>
|
|
.booking-details {
|
|
font-weight: bold;
|
|
}
|
|
</style>
|
|
<script>
|
|
import ProgressTrack from '~/components/AdminProgressTrack'
|
|
import axios from 'axios'
|
|
|
|
export default {
|
|
components: {
|
|
'progress-track': ProgressTrack
|
|
},
|
|
data() {
|
|
return {
|
|
status: 6,
|
|
loading_btn: false,
|
|
booking_id: this.$route.params.id,
|
|
user_po_path: null,
|
|
booking_details: {
|
|
id: null,
|
|
amount: null,
|
|
bia: null,
|
|
user_bankslip_path: null,
|
|
},
|
|
supplier: null,
|
|
supplier_options: null,
|
|
chinaSlipForm: {
|
|
actual_transfer_amount: null,
|
|
date: null,
|
|
details: null,
|
|
},
|
|
rules: {
|
|
actual_transfer_amount: [{
|
|
required: true,
|
|
message: 'Please input amount',
|
|
trigger: 'change'
|
|
}],
|
|
date: [{
|
|
required: true,
|
|
message: 'Please input bank name',
|
|
trigger: 'change'
|
|
}],
|
|
details: [{
|
|
required: true,
|
|
message: 'Please input details',
|
|
trigger: 'change'
|
|
}]
|
|
},
|
|
pickerOptions1: {
|
|
disabledDate(time) {
|
|
return time.getTime() > Date.now();
|
|
},
|
|
shortcuts: [{
|
|
text: 'Today',
|
|
onClick(picker) {
|
|
picker.$emit('pick', new Date());
|
|
}
|
|
}, {
|
|
text: 'Yesterday',
|
|
onClick(picker) {
|
|
const date = new Date();
|
|
date.setTime(date.getTime() - 3600 * 1000 * 24);
|
|
picker.$emit('pick', date);
|
|
}
|
|
}, {
|
|
text: 'A week ago',
|
|
onClick(picker) {
|
|
const date = new Date();
|
|
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
|
|
picker.$emit('pick', date);
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
},
|
|
beforeCreate() {
|
|
const loading = this.$loading({
|
|
lock: true,
|
|
text: 'Please wait..',
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
})
|
|
|
|
axios
|
|
.get('/api/admin/booking/' + this.$route.params.id)
|
|
.then((response) => {
|
|
this.booking_details = response.data
|
|
}).catch((error) => {
|
|
console.log(error)
|
|
loading.close()
|
|
this.$router.push({
|
|
name: 'notfound'
|
|
})
|
|
})
|
|
|
|
axios
|
|
.get('/api/booking/'+ this.$route.params.id +'/po')
|
|
.then((response) => {
|
|
loading.close()
|
|
this.user_po_path = response.user_po_path
|
|
}).catch((error) => {
|
|
loading.close()
|
|
console.log(error)
|
|
this.$router.push({
|
|
name: 'notfound'
|
|
})
|
|
})
|
|
|
|
},
|
|
methods: {
|
|
confirmInvoice () {
|
|
this.loading_btn = true
|
|
axios
|
|
.post('/api/booking/' + this.$route.params.id + '/confirm-invoice')
|
|
.then((response) => {
|
|
console.log(response)
|
|
this.$message({
|
|
showClose: true,
|
|
message: 'Your invoice has been uploaded. Order completed !',
|
|
type: 'success',
|
|
duration: 5000
|
|
})
|
|
this.$router.push({
|
|
name: 'home'
|
|
})
|
|
this.loading_btn = false
|
|
}).catch((error) => {
|
|
this.$message({
|
|
showClose: true,
|
|
message: 'Please upload invoice',
|
|
type: 'error',
|
|
duration: 30000
|
|
})
|
|
this.loading_btn = false
|
|
})
|
|
},
|
|
handleRemove(file, fileList) {
|
|
console.log(file, fileList);
|
|
},
|
|
handlePreview(file) {
|
|
console.log(file);
|
|
}
|
|
}
|
|
}
|
|
</script> |