Advertisement
Guest User

vue.js

a guest
Nov 14th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.12 KB | None | 0 0
  1. <template>
  2. <v-layout row wrap>
  3. <v-flex xs3>
  4. <v-text-field
  5. append-icon="search"
  6. label="Buscar por Referencia"
  7. single-line
  8. hide-details
  9. @input="filterSearch"
  10. ></v-text-field>
  11. </v-flex>
  12.  
  13. <v-flex xs3>
  14. <v-select
  15. :items="authors"
  16. label="Tipo Producto"
  17. @change="filterAuthor"
  18. ></v-select>
  19. </v-flex>
  20.  
  21. <v-flex xs25>
  22. <v-data-table class="table"
  23. :headers="headers"
  24. :items="rows"
  25. item-key="name"
  26. :search="filters"
  27. :custom-filter="customFilter"
  28. >
  29. <template slot="headers" slot-scope="props">
  30. <tr>
  31. <th v-for="header in props.headers" :key="header.text">
  32. {{ header.text }}
  33. </th>
  34. </tr>
  35. </template>
  36.  
  37. <template slot="items" slot-scope="props">
  38. <tr>
  39. <td>{{ props.item.REFER}}</td>
  40. <td >{{ props.item.NOMMARCA }}</td>
  41. <td >{{ props.item.TIPOPRODU}}</td>
  42. <td >{{ props.item.TELA}}</td>
  43. <td >{{ props.item.NOMTALLE}}</td>
  44. <td >{{ props.item.NOMCOLOR}}</td>
  45. <td >{{ props.item.LISTA1}}</td>
  46. <td >{{ props.item.SbPalma}}</td>
  47. <td>{{ props.item.SbKm5I}}</td>
  48. <td >{{ props.item.SbKm5II}}</td>
  49. <td>{{ props.item.CpMall}}</td>
  50. <td >{{ props.item.SbVillaMorra}}</td>
  51. <td >{{ props.item.SbCDE}}</td>
  52. <td >{{ props.item.SbPaseo}}</td>
  53. <td >{{ props.item.SbMcal}}</td>
  54. <td >{{ props.item.CpLuque}}</td>
  55. <td>{{ props.item.SbMariano}}</td>
  56. <td >{{ props.item.SbPinedo}}</td>
  57. <td >{{ props.item.SbLambare}}</td>
  58. <td>{{ props.item.SbSanLorenzo}}</td>
  59. <td >{{ props.item.SbFuente}}</td>
  60. <td>{{ props.item.SbAzara}}</td>
  61. <td >{{ props.item.DEPOSITO}}</td>
  62. </tr>
  63. </template>
  64. </v-data-table>
  65. </v-flex>
  66. </v-layout>
  67. </template>
  68.  
  69.  
  70. <script>
  71. import axios from 'axios'
  72. export default {
  73. data: () => ({
  74. filters: {
  75. search: '',
  76. added_by: '',
  77. },
  78.  
  79. authors: ['LIN', 'OUT','LIN/OUT'],
  80. headers: [
  81. {
  82. text: 'Referencia',
  83. width: 10,
  84. align: 'left',
  85. value: 'REFER',
  86. sortable: true
  87. },
  88. {
  89. text: 'Marca',
  90. width: 10,
  91. value: 'NOMMARCA',
  92. align: 'left',
  93. sortable: true
  94. },
  95. {
  96. text: 'Tipo Producto',
  97. width: 10,
  98. value: 'TIPOPRODU',
  99. align: 'left',
  100. sortable: true
  101. },
  102. {
  103. text: 'Tela',
  104. width: 10,
  105. value: 'TELA',
  106. align: 'left',
  107. sortable: true
  108. },
  109. {
  110. text: 'Talle',
  111. width: 10,
  112. value: 'NOMTALLE',
  113. align: 'left',
  114. sortable: true
  115. },
  116. {
  117. text: 'Color',
  118. width: 10,
  119. value: 'NOMCOLOR',
  120. align: 'left',
  121. sortable: true
  122. },
  123. {
  124. text: 'Precio Lista',
  125. width: 10,
  126. value: 'LISTA1',
  127. align: 'left',
  128. sortable: true
  129. },
  130. {
  131. text: 'Palma',
  132. width: 10,
  133. value: 'SbPalma',
  134. align: 'left',
  135. sortable: true
  136. },
  137. {
  138. text: 'KM5 I',
  139. width: 10,
  140. value: 'SbKm5I',
  141. align: 'left',
  142. sortable: true
  143. },
  144. {
  145. text: 'KM5 II',
  146. width: 10,
  147. value: 'SbKm5II',
  148. align: 'left',
  149. sortable: false
  150. },
  151. {
  152. text: 'Mall',
  153. width: 10,
  154. value: 'CpMall',
  155. align: 'left',
  156. sortable: false
  157. },
  158. {
  159. text: 'Villa Morra',
  160. width: 10,
  161. value: 'SbVillaMorra',
  162. align: 'left',
  163. sortable: false
  164. },
  165. {
  166. text: 'CDE',
  167. width: 10,
  168. value: 'SbCDE',
  169. align: 'left',
  170. sortable: false
  171. },
  172. {
  173. text: 'Paseo',
  174. width: 10,
  175. value: 'SbPaseo',
  176. align: 'left',
  177. sortable: false
  178. },
  179. {
  180. text: 'Mcal',
  181. width: 10,
  182. value: 'SbMcal',
  183. align: 'left',
  184. sortable: false
  185. },
  186. {
  187. text: 'Luque',
  188. width: 10,
  189. value: 'CpLuque',
  190. align: 'left',
  191. sortable: false
  192. },
  193. {
  194. text: 'Mariano',
  195. width: 10,
  196. value: 'SbMariano',
  197. align: 'left',
  198. sortable: false
  199. },
  200. {
  201. text: 'Pinedo',
  202. width: 10,
  203. value: 'SbPinedo',
  204. align: 'left',
  205. sortable: false
  206. },
  207. {
  208. text: 'Lambare',
  209. width: 15,
  210. value: 'SbLambare',
  211. align: 'left',
  212. sortable: false
  213. },
  214. {
  215. text: 'San Lorenzo',
  216. width: 15,
  217. value: 'SbSanLorenzo',
  218. align: 'left',
  219. sortable: false
  220. },
  221. {
  222. text: 'Fuente',
  223. width: 15,
  224. value: 'SbFuente',
  225. align: 'left',
  226. sortable: false
  227. },
  228. {
  229. text: 'Azara',
  230. width: 15,
  231. value: 'SbAzara',
  232. align: 'left',
  233. sortable: false
  234. },
  235. {
  236. text: 'Central',
  237. width: 15,
  238. value: 'DEPOSITO',
  239. align: 'left',
  240. sortable: false
  241. },
  242.  
  243. ],
  244. rows: [],
  245. url: 'http://192.168.0.169:8000/queryprueba/oinv.xsjs',
  246. }),
  247.  
  248. mounted () {
  249. this.leerAPI()
  250. },
  251.  
  252. methods: {
  253. leerAPI (){
  254. axios.get(this.url, {
  255.  
  256. }).then(response => {
  257. this.rows = response.data
  258.  
  259. }).catch(error => {
  260. console.log(error)
  261. })
  262.  
  263. },
  264.  
  265. customFilter(items, filters, filter, headers) {
  266. // Init the filter class.
  267. const cf = new this.$MultiFilters(items, filters, filter, headers);
  268.  
  269. cf.registerFilter('search', function (searchWord, items) {
  270. if (searchWord.trim() === '') return items;
  271.  
  272. return items.filter(item => {
  273. return item.name.toLowerCase().includes(searchWord.toLowerCase());
  274. }, searchWord);
  275.  
  276. });
  277.  
  278. cf.registerFilter('added_by', function (TIPOPRODU, item) {
  279. if (TIPOPRODU.trim() === '') return items;
  280.  
  281. return items.filter(item => {
  282. return items.TIPOPRODU.toLowerCase() === TIPOPRODU.toLowerCase();
  283. }, added_by);
  284.  
  285. });
  286.  
  287. // Its time to run all created filters.
  288. // Will be executed in the order thay were defined.
  289. return cf.runFilters();
  290. },
  291.  
  292.  
  293. /**
  294. * Handler when user input something at the "Filter" text field.
  295. */
  296. filterSearch(val) {
  297. this.filters = this.$MultiFilters.updateFilters(this.filters, {search: val});
  298. },
  299.  
  300. /**
  301. * Handler when user select some author at the "Author" select.
  302. */
  303. filterAuthor(val) {
  304. this.filters = this.$MultiFilters.updateFilters(this.filters, {TIPOPRODU: val});
  305. },
  306.  
  307. }
  308.  
  309. };
  310. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement