Spectrum.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <q-page class="row items-center justify-evenly">
  3. <!-- Your code-->
  4. <!-- <div class="row justify-start items-center">-->
  5. <div class="column q-px-md">
  6. <GetHostIndex/>
  7. <div class="row">
  8. <div class="col-xs-12 col-sm-auto text-weight-bold text-left q-px-md q-py-sm">Wavelength</div>
  9. <div class="col-xs-auto col-sm">
  10. <div class="row justify-start items-center">
  11. <div class="col-auto"><input-with-units
  12. v-model:input-result="simulationSetupGui.fromWL"
  13. v-model:is-showing-help="isShowingHelpForInputWithUnits"
  14. :initial-expression="simulationSetupGui.fromWL.toString()"
  15. title="from"
  16. units="nm"
  17. /></div>
  18. <div class="col-auto"><input-with-units
  19. v-model:input-result="simulationSetupGui.toWL"
  20. v-model:is-showing-help="isShowingHelpForInputWithUnits"
  21. :initial-expression="simulationSetupGui.toWL.toString()"
  22. title="to"
  23. units="nm"
  24. active
  25. /></div>
  26. <div class="col-auto"><input-with-units
  27. v-model:input-result="simulationSetupGui.pointsWL"
  28. v-model:is-showing-help="isShowingHelpForInputWithUnits"
  29. :initial-expression="simulationSetupGui.pointsWL.toString()"
  30. title="points"
  31. units=""
  32. active
  33. /></div>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="row justify-start items-center">
  38. <div class="col-auto">
  39. Input result: {{$store.state.simulationSetup.gui.hostIndex}}
  40. </div>
  41. </div>
  42. </div>
  43. <!-- tooltip_text="help text"-->
  44. </q-page>
  45. </template>
  46. <script lang='ts'>
  47. import {
  48. defineComponent, ref,
  49. computed, watch, reactive, onBeforeUnmount
  50. } from 'vue'
  51. import { useStore } from 'src/store'
  52. import InputWithUnits from 'components/InputWithUnits.vue'
  53. import GetHostIndex from 'components/GetHostIndex.vue'
  54. import { cloneDeep } from 'lodash'
  55. export default defineComponent({
  56. name: 'PageIndex',
  57. components: {InputWithUnits, GetHostIndex },
  58. setup() {
  59. const $store = useStore()
  60. let someValue = ref(10)
  61. let someExpr = ref('10')
  62. // InputWithUnits component will disable showing help after first input
  63. const isShowingHelpForInputWithUnits = computed({
  64. get: () => $store.state.plotRuntime.isShowingHelpForInputWithUnits,
  65. set: val => $store.commit('plotRuntime/setIsShowingHelpForInputWithUnits', val)
  66. })
  67. let simulationSetupGui = reactive(cloneDeep($store.state.simulationSetup.gui))
  68. const unsubscribe = $store.subscribe((mutation, /*state*/) => {
  69. if (mutation.type === 'simulationSetup/setGuiState') {
  70. simulationSetupGui = cloneDeep($store.state.simulationSetup.gui)
  71. }
  72. })
  73. onBeforeUnmount(()=>unsubscribe())
  74. watch(simulationSetupGui, () => $store.commit('simulationSetup/setGuiState',simulationSetupGui))
  75. // console.log($store.state.simulationSetup.gui.toWL)
  76. return { someValue, someExpr, isShowingHelpForInputWithUnits, simulationSetupGui}
  77. }
  78. })
  79. </script>