Advertisement
vitareinforce

contoh halaman pagination

Jan 29th, 2020
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.25 KB | None | 0 0
  1. <template>
  2. <div class="dashboard-contents">
  3. <div class="row">
  4. <div class="col-lg-6" style="margin-top: 20px;">
  5. <h2 style="padding:15px; margin-top:10px;">Daftar Buku Staff Marketing</h2>
  6. </div>
  7. <div class="col-lg-6" style="padding-top: 15px; margin-top: 20px;">
  8. <div class="row">
  9. <div class="col-lg-3"></div>
  10. <div class="col-lg-3">
  11. <select class="select-dropdown" name="" id="">
  12. <option value="" disabled selected>Pilih bendera...</option>
  13. <option value="Semua cabang">Semua bendera</option>
  14. <option value="Cabang A">Bendera A</option>
  15. <option value="Cabang B">Bendera B</option>
  16. </select>
  17. </div>
  18. <div class="col-lg-3">
  19. <select class="select-dropdown" name="" id="">
  20. <option value="" disabled selected>Pilih cabang...</option>
  21. <option value="Semua cabang">Semua cabang</option>
  22. <option value="Cabang A">Cabang A</option>
  23. <option value="Cabang B">Cabang B</option>
  24. </select>
  25. </div>
  26. <div class="col-lg-3">
  27. <download-excel class="btn waves-effect waves-circle waves-float pull-right button-export"
  28. worksheet = "Daftar Kehadiran"
  29. name = "data_kehadiran.xls"
  30. :data = "exportData">
  31. <img src="@/assets/images/file-text.png" alt="Alternate Text" /> Export
  32. </download-excel>
  33. </div>
  34. </div>
  35. </div>
  36. </div>
  37.  
  38. <div class="row">
  39. <div class="col-lg-12 second-row">
  40. <div class="row">
  41. <div class="col-lg-10"></div>
  42. <div class="col-lg-2 search-div">
  43. <input type="text" name="permission" placeholder="Cari inventory..." ng-model="query" value="" style="width: 100%; height: 34px; float: right; margin-bottom: 10px; border: 1px solid rgba(184, 55, 62, 0.5); background-color: white; border-radius: 5px; padding: 5px; margin-bottom: 24px;" />
  44. </div>
  45. </div>
  46. </div>
  47. </div>
  48.  
  49. <div class="row">
  50. <div class="col-lg-12">
  51. <div class="table-div">
  52. <b-table striped hover
  53. id="Bsms"
  54. :items="bsm"
  55. :fields="fields"
  56. class="table table-hover table-striped"
  57. style="margin-top: 10px;">
  58. <template v-slot:cell(TransactionNominal)="data">
  59. {{ data.item.TransactionNominal | currency }}
  60. </template>
  61. </b-table>
  62. <!-- Fungsi Pagination
  63. v-model= current page / data halaman saat ini
  64. total-rows=jumlah row dalam data
  65. per-page = jumlah row dalah 1 halaman
  66. aria-controls = id tabel yg ditambahkan
  67. -->
  68. <b-pagination
  69. v-model="currentPage"
  70. :total-rows="rows"
  71. :per-page="perPage"
  72. aria-controls="Bsms"
  73. ></b-pagination>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </template>
  79.  
  80. <script>
  81. import moment from 'moment'
  82. import $ from 'jquery'
  83. import DownloadExcel from 'vue-json-excel'
  84.  
  85. import Bsms from '@/services/Transactions/Bsm'
  86. import LegalEntities from '@/services/Companies/LegalEntities'
  87. import Branches from '@/services/Companies/Branches'
  88. import Employee from '@/services/Employees/Employees'
  89.  
  90. export default {
  91. name: 'BsmManagement.index',
  92. components: {
  93. DownloadExcel
  94. },
  95. //Pagination
  96. computed: {
  97. rows () {
  98. //hitung panjang data BSM
  99. return this.bsm.length
  100. }
  101. },
  102. data () {
  103. return {
  104. //definisikan per page dan halaman current isi 1 untuk awal
  105. perPage: 10,
  106. currentPage: 1,
  107. //selesai
  108. fields: [
  109. { key: 'Id', label: 'Action' },
  110. { key: 'created_at', label: 'Tanggal' },
  111. { key: 'Code', label: 'Kode Transaksi' },
  112. { key: 'TransactionNominal', label: 'Jumlah Transaksi' },
  113. { key: 'GroupId', label: 'Kode Group' },
  114. { key: 'CoordinatorId', label: 'Nama Koordinator' }
  115. ],
  116. exportData: [],
  117. userData: {},
  118. bsm: [],
  119. roles: [],
  120. legalEntity: [],
  121. branch: [],
  122. employee: []
  123. }
  124. },
  125. created: function () {
  126. this.init()
  127. },
  128. mounted: function () {
  129. window.$ = $
  130. if(localStorage.userData !== undefined) {
  131. this.userData = JSON.parse(localStorage.userData)
  132. } else {
  133. this.$router.push({ name: 'home' })
  134. location.reload()
  135. }
  136. },
  137. methods: {
  138. init: async function () {
  139. let result = await Bsms.index()
  140. let legalEntity = await LegalEntities.index()
  141. let branch = await Branches.index()
  142. let employee = await Employee.index()
  143.  
  144. this.bsm = result.data
  145. this.exportData = result.data
  146. this.legalEntity = this.itemLookup(legalEntity.data)
  147. this.branch = this.itemLookup(branch.data)
  148. this.employee = this.itemLookup(employee.data)
  149. },
  150. itemLookup: function (json) {
  151. let data = []
  152. for(var i = 0; i< json.length; i++) {
  153. data[json[i].Id] = json[i]
  154. }
  155. return data
  156. },
  157. formatDate(time) {
  158. var formattedTime = moment(time).format('DD MMMM YYYY HH:mm')
  159. if(formattedTime == 'Invalid date') {
  160. formattedTime = '-'
  161. }
  162. return formattedTime
  163. },
  164. detail: function (id) {
  165. this.$router.push({ name: 'BsmManagement.detail', params: { id: id } })
  166. },
  167. edit: function (id) {
  168. this.$router.push({ name: 'BsmManagement.edit', params: { id: id } })
  169. },
  170. del: async function (id) {
  171. let result = await Bsms.delete(id)
  172. if(result.status == 200) {
  173. alert(result.data.message)
  174. this.$router.push({ name: 'BsmManagement.index' })
  175. location.reload()
  176. } else {
  177. alert("Delete Gagal")
  178. location.reload()
  179. }
  180. }
  181. }
  182. }
  183. </script>
  184.  
  185. <style>
  186. .table-div {
  187. padding-left: 30px;
  188. margin-left: 0px !important;
  189. overflow-x: auto;
  190. overflow-y: auto;
  191. }
  192.  
  193. .second-row {
  194. margin-top: 30px;
  195. padding-left: 30px;
  196. }
  197.  
  198. .select-dropdown {
  199. width: 100%;
  200. height: 45px;
  201. border-color: #0059aa;
  202. border-radius: 5px;
  203. }
  204.  
  205. .button-export {
  206. width: 100%;
  207. height: 45px;
  208. background-color: #0059aa;
  209. color:white;
  210. border-radius: 5px;
  211. }
  212.  
  213. .button-create {
  214. width: 100%;
  215. height: 45px;
  216. background-color: #20c197;
  217. color:white;
  218. border-radius: 5px;
  219. }
  220. </style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement