PageScroller.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <template>
  2. <div v-if="totalPages > 1" class="row items-center q-ml-md q-my-xs" style="font-size: 120%">
  3. <div class="q-mr-xs">
  4. Страница
  5. </div>
  6. <div class="bg-white">
  7. <NumInput
  8. v-model="page" :min="1" :max="totalPages"
  9. style="width: 140px" minus-icon="la la-chevron-circle-left" plus-icon="la la-chevron-circle-right" :disable="disable"
  10. />
  11. </div>
  12. <div class="q-ml-xs">
  13. из {{ totalPages }}
  14. </div>
  15. </div>
  16. <div v-else class="q-my-sm" />
  17. </template>
  18. <script>
  19. //-----------------------------------------------------------------------------
  20. import vueComponent from '../../vueComponent.js';
  21. import NumInput from '../../share/NumInput.vue';
  22. const componentOptions = {
  23. components: {
  24. NumInput
  25. },
  26. watch: {
  27. modelValue(newValue) {
  28. this.page = newValue;
  29. },
  30. page(newValue) {
  31. this.$emit('update:modelValue', newValue);
  32. },
  33. }
  34. };
  35. class PageScroller {
  36. _options = componentOptions;
  37. _props = {
  38. modelValue: Number,
  39. disable: Boolean,
  40. totalPages: Number,
  41. };
  42. page = 1;
  43. created() {
  44. }
  45. }
  46. export default vueComponent(PageScroller);
  47. //-----------------------------------------------------------------------------
  48. </script>
  49. <style scoped>
  50. </style>