demo.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <template>
  2. <div class="demo">
  3. <h2>每列不显示中文</h2>
  4. <nut-cell title="日期选择" :desc="desc1" @click="open(0)"></nut-cell>
  5. <h2>限制开始结束时间</h2>
  6. <nut-cell title="日期选择" :desc="desc2" @click="open(1)"></nut-cell>
  7. <h2>限制开始结束时间(有默认值)</h2>
  8. <nut-cell title="日期时间选择" :desc="desc3" @click="open(2)"></nut-cell>
  9. <h2>限制开始结束小时</h2>
  10. <nut-cell title="时间选择" :desc="desc4" @click="open(3)"></nut-cell>
  11. <h2>分钟数递增步长设置</h2>
  12. <nut-cell title="时间选择" :desc="desc5" @click="open(4)"></nut-cell>
  13. <nut-datepicker
  14. v-model="currentDate"
  15. title="日期选择"
  16. @confirm="
  17. val => {
  18. confirm(0, val);
  19. }
  20. "
  21. v-model:visible="show"
  22. :is-show-chinese="false"
  23. ></nut-datepicker>
  24. <nut-datepicker
  25. v-model="currentDate"
  26. title="日期选择"
  27. :min-date="minDate"
  28. :max-date="maxDate"
  29. @confirm="
  30. val => {
  31. confirm(1, val);
  32. }
  33. "
  34. v-model:visible="show2"
  35. :is-show-chinese="false"
  36. ></nut-datepicker>
  37. <nut-datepicker
  38. v-model="currentDate"
  39. title="日期时间选择"
  40. type="datetime"
  41. :min-date="minDate"
  42. :max-date="maxDate"
  43. @confirm="
  44. val => {
  45. confirm(2, val);
  46. }
  47. "
  48. v-model:visible="show3"
  49. ></nut-datepicker>
  50. <nut-datepicker
  51. v-model="currentDate"
  52. title="时间选择"
  53. type="time"
  54. :min-date="minDate"
  55. :max-date="maxDate"
  56. @confirm="
  57. val => {
  58. confirm(3, val);
  59. }
  60. "
  61. v-model:visible="show4"
  62. ></nut-datepicker>
  63. <nut-datepicker
  64. v-model="currentDate"
  65. title="时间选择"
  66. type="time"
  67. :min-date="minDate"
  68. :minute-step="5"
  69. :max-date="maxDate"
  70. @confirm="
  71. val => {
  72. confirm(4, val);
  73. }
  74. "
  75. v-model:visible="show5"
  76. ></nut-datepicker>
  77. </div>
  78. </template>
  79. <script lang="ts">
  80. import { toRefs, watch, ref } from 'vue';
  81. import { createComponent } from '@/utils/create';
  82. const { createDemo } = createComponent('datepicker');
  83. export default createDemo({
  84. props: {},
  85. setup() {
  86. const show = ref(false);
  87. const show2 = ref(false);
  88. const show3 = ref(false);
  89. const show4 = ref(false);
  90. const show5 = ref(false);
  91. const showList = [show, show2, show3, show4, show5];
  92. const currentDate = new Date(2020, 0, 1);
  93. const today = currentDate;
  94. const desc1 = ref('2020-1-1');
  95. const desc2 = ref('2020-1-1');
  96. const desc3 = ref('2020年-1月-1日-0时-0分');
  97. const desc4 = ref('0时-0分-0秒');
  98. const desc5 = ref('0时-0分-0秒');
  99. const descList = [desc1, desc2, desc3, desc4, desc5];
  100. return {
  101. show,
  102. show2,
  103. show3,
  104. show4,
  105. show5,
  106. desc1,
  107. desc2,
  108. desc3,
  109. desc4,
  110. desc5,
  111. currentDate,
  112. minDate: new Date(2020, 0, 1),
  113. maxDate: new Date(2025, 10, 1),
  114. open: (index: number) => {
  115. showList[index].value = true;
  116. },
  117. confirm: (index: number, val: string[]) => {
  118. descList[index].value = val.join('-');
  119. }
  120. };
  121. }
  122. });
  123. </script>
  124. <style lang="scss" scoped></style>