Progress.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <script setup lang="ts">
  2. import { useMainStore } from "@/stores/main";
  3. import { storeToRefs } from "pinia";
  4. import { onMounted } from "vue";
  5. import { useI18n } from "vue-i18n";
  6. const { t } = useI18n();
  7. const mainStore = useMainStore();
  8. const mainStoreRef = storeToRefs(mainStore);
  9. const videos = mainStoreRef.readVideos;
  10. console.log('videos',videos);
  11. const headers = [
  12. {
  13. title: t("title"),
  14. sortable: true,
  15. key: "title",
  16. align: "left",
  17. },
  18. {
  19. title: t("state"),
  20. sortable: true,
  21. key: "progress_state",
  22. align: "left",
  23. },
  24. {
  25. title: t("download"),
  26. key: "id",
  27. },
  28. ];
  29. onMounted(async () => {
  30. await mainStore.actionGetVideos();
  31. });
  32. </script>
  33. <template>
  34. <div>
  35. <v-toolbar light>
  36. <v-toolbar-title>
  37. <h3>{{ t("progress") }}</h3>
  38. </v-toolbar-title>
  39. </v-toolbar>
  40. <v-data-table :headers="headers" :items="videos">
  41. <template v-slot:item.id="{ item }">
  42. <v-btn
  43. flat
  44. :to="{
  45. name: 'main-admin-users-edit',
  46. params: { id: item.columns.id },
  47. }"
  48. :disabled="item.raw.progress_state !== 'completed'"
  49. >
  50. {{ item.progress_state }}
  51. <v-icon icon="file_download" />
  52. </v-btn>
  53. </template>
  54. </v-data-table>
  55. </div>
  56. </template>
  57. <style>
  58. .v-data-table-footer {
  59. margin-top: 10px;
  60. }
  61. </style>