Нет описания

Tab1Page.vue 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <ion-page>
  3. <ion-header>
  4. <ion-toolbar>
  5. <ion-title>Tab 1</ion-title>
  6. </ion-toolbar>
  7. </ion-header>
  8. <ion-content>
  9. <ion-header collapse="condense">
  10. <ion-toolbar>
  11. <ion-title size="large">Tab 1</ion-title>
  12. </ion-toolbar>
  13. </ion-header>
  14. <ion-grid>
  15. <ion-row>
  16. <ion-col size="12" size-md="4" size-lg="2">
  17. <ion-card>
  18. <img alt="Silhouette of mountains" src="https://ionicframework.com/docs/img/demos/card-media.png" />
  19. <ion-card-header>
  20. <ion-card-title>Card Title</ion-card-title>
  21. <ion-card-subtitle>Card Subtitle</ion-card-subtitle>
  22. </ion-card-header>
  23. <ion-card-content>
  24. Here's a small text description for the card content. Nothing more, nothing less.
  25. </ion-card-content>
  26. </ion-card>
  27. </ion-col>
  28. <ion-col size="12" size-md="4" size-lg="2">
  29. <ion-card>
  30. <img alt="Silhouette of mountains" src="https://ionicframework.com/docs/img/demos/card-media.png" />
  31. <ion-card-header>
  32. <ion-card-title>Card Title</ion-card-title>
  33. <ion-card-subtitle>Card Subtitle</ion-card-subtitle>
  34. </ion-card-header>
  35. <ion-card-content>
  36. Here's a small text description for the card content. Nothing more, nothing less.
  37. </ion-card-content>
  38. </ion-card>
  39. </ion-col>
  40. </ion-row>
  41. </ion-grid>
  42. {{ token }}
  43. <ion-button router-link="/tabs/detail/3/" router-direction="forward">Click Me</ion-button>
  44. {{ safeUrl }}
  45. <div style="padding:56.25% 0 0 0;position:relative;"><iframe src="https://player.vimeo.com/video/880005259?badge=0&amp;autopause=0&amp;quality_selector=1&amp;player_id=0&amp;app_id=58479" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" style="position:absolute;top:0;left:0;width:100%;height:100%;" title="Muay Thai Advance"></iframe></div>
  46. <!--
  47. <vue-core-video-player src="https://player.vimeo.com/progressive_redirect/playback/880005259/rendition/720p/file.mp4?loc=external&signature=5ddad1430211b33f65824444a3137fc0ec6fe61183d39997036d2dd3b78654f9"></vue-core-video-player> -->
  48. Video
  49. <div id="made-in-ny" ref='video'></div>
  50. <ul>
  51. <li v-for="(item, index) in items">
  52. {{ item.msg }}
  53. </li>
  54. </ul>
  55. <ion-item v-for="t in trainers" :router-link="'/detail/'+t.id">
  56. <ion-thumbnail slot="start" v-if="t.photo">
  57. <img alt="Silhouette of mountains" :src="t.photo" />
  58. </ion-thumbnail>
  59. <ion-label class='ion-text-wrap'>{{ t.name }}</ion-label>
  60. </ion-item>
  61. <ion-icon icon="heart"></ion-icon>
  62. <ion-button @click="scrollToBottom">Scroll to Bottom</ion-button>
  63. {{ mats }}
  64. </ion-content>
  65. </ion-page>
  66. </template>
  67. <script setup lang="ts">
  68. import { IonPage, IonHeader, IonToolbar, IonTitle, IonContent, IonIcon, onIonViewWillEnter, IonButton,
  69. onIonViewWillLeave, IonItem, IonLabel, IonThumbnail, IonCol, IonGrid, IonRow, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle } from '@ionic/vue';
  70. import ExploreContainer from '@/components/ExploreContainer.vue';
  71. import { CapacitorHttp } from '@capacitor/core';
  72. import { ref } from 'vue';
  73. import { TOKEN, getProducts, setToken, getObject, getToken, getTrainers, listMats } from '@/settings';
  74. //import VueCoreVideoPlayer from 'vue-core-video-player'
  75. import { vueVimeoPlayer } from 'vue-vimeo-player'
  76. import Player from '@vimeo/player';
  77. const safeUrl = "https://vimeo.com/880005259?share=copy"
  78. const token = ref()
  79. const trainers = ref([])
  80. const mats = ref()
  81. const scrollToBottom = () => {
  82. console.log("scroll")
  83. //content.value.$el.scrollToBottom(300);
  84. };
  85. const items = ref([{msg: 'foo'}, {msg: 'bar2'}])
  86. const options = {
  87. id: 59777392,
  88. width: 640,
  89. loop: true
  90. };
  91. //const video = ref(null)
  92. //const player = new Player(video, options);
  93. onIonViewWillEnter(async () => {
  94. //console.log("video " ,video)
  95. //console.log("video id", video.value.id)
  96. //const player = new Player(video.value.id, options);
  97. //player.setVolume(0);
  98. //player.on('play', function() {
  99. // console.log('played the video!');
  100. //});
  101. console.log("view view enter")
  102. // doGet()
  103. // await getProducts()
  104. // console.log(TOKEN)
  105. // setToken()
  106. // let u = getObject()
  107. //console.log('u ', u)
  108. token.value = await getToken()
  109. trainers.value = await getTrainers()
  110. mats.value = await listMats()
  111. console.log(" trainers => ", trainers)
  112. })
  113. onIonViewWillLeave(() => {
  114. console.log("view will leave")
  115. })
  116. const doGet = async () => {
  117. console.log("do get")
  118. const options = {
  119. url: 'https://example.com/my/api',
  120. headers: { 'X-Fake-Header': 'Fake-Value' },
  121. params: { size: 'XL' },
  122. };
  123. const response: HttpResponse = await CapacitorHttp.get(options);
  124. console.log(response)
  125. }
  126. </script>