select-time.uvue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <cl-page>
  3. <view class="p-3">
  4. <demo-item :label="t('基础用法')">
  5. <cl-select-time v-model="form.time1"></cl-select-time>
  6. </demo-item>
  7. <demo-item :label="t('自定义触发器')">
  8. <view class="flex flex-row">
  9. <cl-button @tap="openSelect2">{{ t("打开选择器") }} </cl-button>
  10. </view>
  11. <cl-select-time
  12. ref="selectRef2"
  13. v-model="form.time2"
  14. :show-trigger="false"
  15. ></cl-select-time>
  16. </demo-item>
  17. <demo-item :label="t('自定义')">
  18. <cl-select-time
  19. v-model="form.time3"
  20. :disabled="isDisabled"
  21. :label-format="labelFormat"
  22. ></cl-select-time>
  23. <cl-list
  24. border
  25. :pt="{
  26. className: 'mt-3'
  27. }"
  28. >
  29. <cl-list-item :label="t('标签格式化')">
  30. <cl-switch v-model="isFormat"></cl-switch>
  31. </cl-list-item>
  32. <cl-list-item :label="t('禁用')">
  33. <cl-switch v-model="isDisabled"></cl-switch>
  34. </cl-list-item>
  35. </cl-list>
  36. </demo-item>
  37. </view>
  38. </cl-page>
  39. </template>
  40. <script lang="ts" setup>
  41. import { computed, reactive, ref } from "vue";
  42. import DemoItem from "../components/item.uvue";
  43. import { useUi } from "@/uni_modules/cool-ui";
  44. import { t } from "@/locale";
  45. const ui = useUi();
  46. type Form = {
  47. time1: string;
  48. time2: string;
  49. time3: string;
  50. };
  51. const form = reactive<Form>({
  52. time1: "",
  53. time2: "",
  54. time3: ""
  55. });
  56. const isDisabled = ref(false);
  57. const isFormat = ref(false);
  58. const labelFormat = computed(() => {
  59. if (isFormat.value) {
  60. return "{H}时{m}分{s}秒";
  61. } else {
  62. return "{H}:{m}:{s}";
  63. }
  64. });
  65. const selectRef2 = ref<ClSelectTimeComponentPublicInstance | null>(null);
  66. function openSelect2() {
  67. selectRef2.value!.open((value) => {
  68. ui.showToast({
  69. message: `你选择了:${value}`
  70. });
  71. });
  72. }
  73. </script>