PageSizeSelect.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <template>
  2. <select
  3. id="gridSizeSelect"
  4. :value="pageSize"
  5. class="pagesize-select form-control"
  6. @change="pageSizeChange"
  7. >
  8. <option value="10">10</option>
  9. <option value="20">20</option>
  10. <option value="50">50</option>
  11. <option value="100">100</option>
  12. <option value="200">200</option>
  13. <option value="500">500</option>
  14. </select>
  15. </template>
  16. <script>
  17. // 外部可以注册事件pageSizeChanged
  18. export default {
  19. name: 'PageSizeSelect',
  20. components: {},
  21. props: {
  22. size: {
  23. type: Number,
  24. default: 20,
  25. },
  26. },
  27. emits: ['pageSizeChanged'],
  28. data: function () {
  29. return {
  30. pageSize: 20,
  31. };
  32. },
  33. watch: {
  34. size: function (newValue, oldValue) {
  35. this.pageSize = newValue;
  36. },
  37. },
  38. created: function () {
  39. this.pageSize = this.size;
  40. },
  41. methods:{
  42. pageSizeChange: function (event) {
  43. this.$emit('pageSizeChanged', event.target.value);
  44. },
  45. },
  46. };
  47. </script>
  48. <style scoped>
  49. .pagesize-select {
  50. display: inline !important;
  51. width: 70px !important;
  52. float: none !important;
  53. }
  54. </style>