Files
exchange-2.0/resources/assets/vue/components/accounts/forms/RegistrationStep2FormComponent.vue
T
2020-11-06 15:26:53 +08:00

123 lines
4.6 KiB
Vue

<template>
<div class="row p-t-25 text-left">
<div class="col">
<div class="row">
<div class="col">
<div class="b-l b-success p-l-15 m-b-15" style="border-left-width: 3px;">
<h6 class="bold all-caps no-margin text-success">Registration Step 2</h6>
</div>
</div>
</div>
<div class="row">
<div class="col">
<validation-wrapper-component :validator="$v.parameters.type">
<label class="muted">Type</label>
<select class="form-control" v-model="parameters.type">
<option value="1">Public Company</option>
<option value="2">Personal Company</option>
</select>
</validation-wrapper-component>
<validation-wrapper-component :validator="$v.parameters.file">
<label class="muted">File</label>
<div class="upload-box">
<div class="file-container">
<i class="fa fa-cloud-upload"></i>
<input type='file'
@change="onChange"
/>
</div>
<div class="upload-img">
<div v-if="preview" v-for="(img, $index) in preview" :key="$index">
<img class='img-responsive' alt='' :src="img"/>
</div>
</div>
</div>
</validation-wrapper-component>
<validation-wrapper-component :validator="$v.parameters.document_reference">
<label class="muted">Refrence</label>
<input class="form-control" name="name" v-model="parameters.document_reference">
</validation-wrapper-component>
</div>
</div>
<div class="row mb-3">
<div class="col">
<div class="row">
<div class="col text-right">
<button type="button" class="btn btn-success" @click="submitForm()">Submit</button>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { required, email, sameAs, numeric } from "vuelidate/lib/validators";
export default {
props: {
},
data() {
return {
parameters : {
type: '',
file: [],
document_reference: ''
},
preview: []
}
},
validations: {
parameters: {
type: { required },
file: { required },
document_reference: { required },
}
},
methods:{
onChange(e) {
let vm = this;
let files = e.target.files;
vm.preview = [];
Array.from(files).forEach(file => {
vm.preview.push(URL.createObjectURL(file));
});
vm.imageBase64(e.target.files).then(data => {
vm.parameters.file = data;
});
},
imageBase64(imgs) {
let num = 1;
let base = [];
let count = imgs.length;
return new Promise((resolve, reject) => {
Array.from(imgs).forEach(file => {
let reader = new FileReader();
reader.onload = () => {
base.push(reader.result);
if (num >= count) {
resolve(base);
}
num++;
};
reader.readAsDataURL(file);
})
});
},
submitForm(){
this.submit((this.route('api.account.registration-step-2')), 'post', 'RegistrationSectionStep2', true, true)
},
errorHandler(){
},
successHandler(){
this.crudSuccess();
EventBus.$emit('updateAddress')
}
}
}
</script>