Skip to content

Commit 98a944c

Browse files
committed
autocomplete
1 parent 992bfc0 commit 98a944c

File tree

4 files changed

+79
-4
lines changed

4 files changed

+79
-4
lines changed

package.json

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"laravel-elixir-browsersync-official": "^1.0.0",
2020
"laravel-elixir-vue": "^0.1.4",
2121
"laravel-elixir-webpack-official": "^1.0.2",
22+
"materialize-autocomplete": "^1.0.7",
2223
"materialize-css": "^0.97.7",
2324
"stringify-object": "^3.1.0",
2425
"vue": "^1.0.26",
@@ -27,5 +28,8 @@
2728
"webpack": "^1.14.0",
2829
"webpack-dev-server": "^1.16.2",
2930
"webpack-merge": "^0.14.1"
31+
},
32+
"devDependencies": {
33+
"lodash": "^4.11.2"
3034
}
3135
}

resources/assets/spa/js/components/bank-account/BankAccountCreate.vue

+34
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
<script>
33
import {BankAccount, Bank} from '../../services/resources';
44
import PageTitleComponent from '../../../../_default/components/PageTitle.vue';
5+
import 'materialize-autocomplete';
6+
import _ from 'lodash';
7+
58
export default{
69
components: {
710
'page-title': PageTitleComponent
@@ -32,7 +35,38 @@
3235
getBanks(){
3336
Bank.query().then((response) => {
3437
this.banks = response.data.data;
38+
this.initAutocomplete();
3539
});
40+
},
41+
initAutocomplete(){
42+
let self = this;
43+
$(document).ready(() => {
44+
$('#bank-id').materialize_autocomplete({
45+
limit: 10,
46+
multiple: {
47+
enable: false
48+
},
49+
dropdown: {
50+
el: '#bank-id-dropdown'
51+
},
52+
getData(value, callback){
53+
let banks = self.filterBankByName(value);
54+
banks = banks.map((o) => {
55+
return {id: o.id, text: o.name};
56+
})
57+
callback(value, banks);
58+
},
59+
onSelect(item){
60+
self.bankAccount.bank_id = item.id;
61+
}
62+
});
63+
});
64+
},
65+
filterBankByName(name){
66+
let banks = _.filter(this.banks, (o) => {
67+
return _.includes(o.name.toLowerCase(), name.toLowerCase());
68+
});
69+
return banks;
3670
}
3771
}
3872
}

resources/assets/spa/js/components/bank-account/BankAccountUpdate.vue

+36-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
<script>
33
import {BankAccount, Bank} from '../../services/resources';
44
import PageTitleComponent from '../../../../_default/components/PageTitle.vue';
5+
import 'materialize-autocomplete';
6+
import _ from 'lodash';
7+
58
export default{
69
components: {
710
'page-title': PageTitleComponent
@@ -16,7 +19,7 @@
1619
bank_id: '',
1720
'default': false
1821
},
19-
banks: [],
22+
banks: []
2023
}
2124
},
2225
created(){
@@ -34,12 +37,43 @@
3437
getBanks(){
3538
Bank.query().then((response) => {
3639
this.banks = response.data.data;
40+
this.initAutocomplete();
3741
});
3842
},
3943
getBankAccount(id){
40-
BankAccount.get({id: id}).then((response) => {
44+
BankAccount.get({id: id, include: 'bank'}).then((response) => {
4145
this.bankAccount = response.data.data;
4246
});
47+
},
48+
initAutocomplete(){
49+
let self = this;
50+
$(document).ready(() => {
51+
$('#bank-id').materialize_autocomplete({
52+
limit: 10,
53+
multiple: {
54+
enable: false
55+
},
56+
dropdown: {
57+
el: '#bank-id-dropdown'
58+
},
59+
getData(value, callback){
60+
let banks = self.filterBankByName(value);
61+
banks = banks.map((o) => {
62+
return {id: o.id, text: o.name};
63+
})
64+
callback(value, banks);
65+
},
66+
onSelect(item){
67+
self.bankAccount.bank_id = item.id;
68+
}
69+
});
70+
});
71+
},
72+
filterBankByName(name){
73+
let banks = _.filter(this.banks, (o) => {
74+
return _.includes(o.name.toLowerCase(), name.toLowerCase());
75+
});
76+
return banks;
4377
}
4478
}
4579
}

resources/assets/spa/js/components/bank-account/_form.html

+5-2
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@ <h5>{{title}}</h5>
2525
<div class="row">
2626
<div class="input-field col s12">
2727
<label class="active">Banco</label>
28-
<select v-model="bankAccount.bank_id" id="bank_id" class="browser-default">
28+
<!--<select v-model="bankAccount.bank_id" id="bank_id" class="browser-default">
2929
<option value="" disabled selected>Escolha um banco</option>
3030
<option v-for="o in banks" :value="o.id">{{o.name}}</option>
31-
</select>
31+
</select>-->
32+
<input type="text" id="bank-id" placeholder="Buscar banco"
33+
autocomplete="off" data-activates="bank-id-dropdown" data-belloworigin="true"/>
34+
<ul id="bank-id-dropdown" class="dropdown-content ac-dropdown"></ul>
3235
</div>
3336
</div>
3437
<div class="row">

0 commit comments

Comments
 (0)