Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. // register the grid component
  2.  
  3. Vue.component('demo-grid', {
  4. template: '#grid-template',
  5. props: {
  6. data: Array,
  7. columns: Array,
  8. filterKey: String,
  9. allData: Array,
  10. },
  11. data: function () {
  12. var sortOrders = {}
  13. this.columns.forEach(function (key) {
  14. sortOrders[key] = 1
  15. })
  16. return {
  17. sortKey: '',
  18. sortOrders: sortOrders
  19. }
  20. },
  21. computed: {
  22. filteredData: function () {
  23. var sortKey = this.sortKey
  24. var filterKey = this.filterKey && this.filterKey.toLowerCase()
  25. var order = this.sortOrders[sortKey] || 1
  26. var data = this.data
  27. if (filterKey) {
  28. data = data.filter(function (row) {
  29. return Object.keys(row).some(function (key) {
  30. return String(row[key]).toLowerCase().indexOf(filterKey) > -1
  31. })
  32. })
  33. }
  34. if (sortKey) {
  35. data = data.slice().sort(function (a, b) {
  36. a = a[sortKey]
  37. b = b[sortKey]
  38. return (a === b ? 0 : a > b ? 1 : -1) * order
  39. })
  40. }
  41. return data
  42. }
  43. },
  44. filters: {
  45. capitalize: function (str) {
  46. return str.charAt(0).toUpperCase() + str.slice(1)
  47. }
  48. },
  49. methods: {
  50. sortBy: function (key) {
  51. this.sortKey = key
  52. this.sortOrders[key] = this.sortOrders[key] * -1
  53. }
  54. }
  55. })
  56.  
  57. /*
  58. // bootstrap the demo
  59. var demo = new Vue({
  60. el: '#demo',
  61. data: {
  62. searchQuery: '',
  63. gridColumns: ['name', 'power'],
  64. gridData: [
  65. { name: 'Chuck Norris', power: Infinity },
  66. { name: 'Bruce Lee', power: 9000 },
  67. { name: 'Jackie Chan', power: 7000 },
  68. { name: 'Jet Li', power: 8000 }
  69. ]
  70. }
  71. })
  72. */
  73.  
  74. new Vue({
  75. el: '#app',
  76. data: {
  77. searchQuery: '',
  78. gridColumns: ['name', 'power'],
  79. traings: [
  80. { name: 'Chuck Norris', power: Infinity },
  81. { name: 'Bruce Lee', power: 9000 },
  82. { name: 'Jackie Chan', power: 7000 },
  83. { name: 'Jet Li', power: 8000 },
  84. { name: 'Chuck Norris', power: Infinity },
  85. { name: 'Bruce Lee', power: 9000 },
  86. { name: 'Jackie Chan', power: 7000 },
  87. { name: 'Chuck Norris', power: Infinity },
  88. { name: 'Bruce Lee', power: 9000 },
  89. { name: 'Jackie Chan', power: 7000 },
  90. { name: 'Jet Li', power: 8000 },
  91. { name: 'Chuck Norris', power: Infinity },
  92. { name: 'Bruce Lee', power: 9000 },
  93. { name: 'Jackie Chan', power: 7000 },
  94. { name: 'Chuck Norris', power: Infinity },
  95. { name: 'Bruce Lee', power: 9000 },
  96. ],
  97. paginate: ['traings']
  98. }
  99. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement