_template.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <ExperimentBlock
  3. :experiment-name="experimentName"
  4. :scene-name="sceneName"
  5. :loading-message="loadingMessage"
  6. :loading-error-message="loadingErrorMessage"
  7. >
  8. <template v-slot:header>
  9. <!-- ## Template to place in the header (example: Extract-configurator) ## -->
  10. </template>
  11. <template v-slot:content>
  12. <!-- ## Actual experiment template ## -->
  13. </template>
  14. </ExperimentBlock>
  15. </template>
  16. <script>
  17. import ExperimentBlock from '@/components/ExperimentBlock.vue'
  18. import ExperimentBase from '@/mixins/ExperimentBase'
  19. export default {
  20. components: {
  21. ExperimentBlock
  22. },
  23. mixins: [ExperimentBase],
  24. data() {
  25. return {}
  26. },
  27. // When experiment is loaded, this function is ran
  28. async mounted() {
  29. // Load config and progress for this scene to local state
  30. this.loadConfig()
  31. this.loadProgress()
  32. // ## Do your experiment initialization stuff here ##
  33. this.loadingMessage = 'Loading experiment data...'
  34. this.loadingErrorMessage = null
  35. try {
  36. // Load scene qualities list
  37. await this.getQualitiesList()
  38. }
  39. catch (err) {
  40. console.error(err)
  41. this.loadingErrorMessage = err.message
  42. return
  43. }
  44. finally {
  45. this.loadingMessage = null
  46. }
  47. // ##/ Do your experiment initialization stuff here ##
  48. // Save progress from local state into store
  49. this.saveProgress()
  50. },
  51. // List of experiment-specific methods
  52. methods: {}
  53. }
  54. </script>
  55. <style scoped>
  56. /* Experiment-specific style (CSS) */
  57. </style>