GetNearFieldSettings.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <div class="row items-baseline">
  3. <div class="col-xs-12 col-sm-auto text-weight-bold text-center q-pr-md q-py-sm">
  4. <div :style="flexRowTitleStyle">
  5. Plot
  6. </div>
  7. </div>
  8. <div class="col-xs-grow col-sm">
  9. <div class="row justify-center items-baseline">
  10. <div class="col-auto text-center q-py-xs q-pr-md">
  11. <div :style="flexRowTitleStyle" >
  12. max side resolution
  13. </div>
  14. </div>
  15. <div class="col-xs-grow col-sm">
  16. <div class="row justify-xs-center justify-sm-start items-center">
  17. <input-with-units
  18. v-model:input-result="plotSideResolution"
  19. v-model:is-showing-help="isShowingHelpForInputWithUnits"
  20. :initial-expression="plotSideResolution.toString()"
  21. title="points"
  22. units=""
  23. /></div>
  24. </div>
  25. </div>
  26. <div class="row justify-center items-baseline">
  27. <div class="col-auto text-center q-py-xs q-pr-md">
  28. <div :style="flexRowTitleStyle" >
  29. relative side length
  30. </div>
  31. </div>
  32. <div class="col-xs-grow col-sm">
  33. <div class="row justify-xs-center justify-sm-start items-center">
  34. <input-with-units
  35. v-model:input-result="relativePlotSize"
  36. v-model:is-showing-help="isShowingHelpForInputWithUnits"
  37. :initial-expression="relativePlotSize.toString()"
  38. title="𝐿&thinsp;/&hairsp;𝟐𝑅"
  39. units=""
  40. /></div>
  41. </div>
  42. </div>
  43. <div class="q-ma-xs"/>
  44. <div class="row justify-center items-center">
  45. <div class="col-auto text-center q-py-xs q-pr-md">
  46. <div :style="flexRowTitleStyle" >
  47. cross-section
  48. </div>
  49. </div>
  50. <div class="col-xs-grow col-sm">
  51. <div class="row justify-xs-center justify-sm-start items-center">
  52. <div class="q-gutter-md q-py-sm q-px-xs">
  53. <q-radio v-model="crossSection" dense size='sm' :val="nearFieldPlane.Ek" label="Ek" />
  54. <q-radio v-model="crossSection" dense size='sm' :val="nearFieldPlane.Hk" label="Hk" />
  55. <q-radio v-model="crossSection" dense size='sm' :val="nearFieldPlane.EH" label="EH" />
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. </template>
  63. <script lang="ts">
  64. import {
  65. defineComponent,
  66. computed,
  67. } from 'vue'
  68. import { useStore } from 'src/store'
  69. import InputWithUnits from 'components/InputWithUnits.vue'
  70. import { flexRowTitleStyle } from 'components/config'
  71. import { nearFieldPlane } from 'src/store/simulation-setup/state';
  72. export default defineComponent({
  73. name: 'GetNearFieldSettings',
  74. components: {InputWithUnits,},
  75. setup() {
  76. const $store = useStore()
  77. const isShowingHelpForInputWithUnits = computed({
  78. get: () => $store.state.guiRuntime.isShowingHelpForInputWithUnits,
  79. set: val => $store.commit('guiRuntime/setIsShowingHelpForInputWithUnits', val)
  80. })
  81. const crossSection = computed({
  82. get: () => $store.state.simulationSetup.gui.nearFieldSetup.crossSection,
  83. set: val => $store.commit('simulationSetup/setNearFieldCrossSection', val)
  84. })
  85. const relativePlotSize = computed({
  86. get: () => $store.state.simulationSetup.gui.nearFieldSetup.relativePlotSize,
  87. set: val => $store.commit('simulationSetup/setNearFieldRelativePlotSize', val)
  88. })
  89. // const maxComputeTime = computed({
  90. // get: () => $store.state.simulationSetup.gui.nearFieldSetup.maxComputeTime,
  91. // set: val => $store.commit('simulationSetup/setNearFieldMaxComputeTime', val)
  92. // })
  93. const plotSideResolution = computed({
  94. get: () => $store.state.simulationSetup.gui.nearFieldSetup.plotSideResolution,
  95. // TODO: make InputWithUnits to handle integer input, so no need to use floor() in the next line.
  96. set: val => $store.commit('simulationSetup/setNearFieldPlotSideResolution', Math.floor(val))
  97. })
  98. return { crossSection, isShowingHelpForInputWithUnits, flexRowTitleStyle,
  99. relativePlotSize,
  100. // maxComputeTime,
  101. plotSideResolution, nearFieldPlane}
  102. },
  103. })
  104. </script>