消毒机设备
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
3.2 KiB

2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 weeks ago
2 months ago
2 months ago
2 months ago
2 months ago
  1. <script lang="ts" setup>
  2. import History from 'components/setting/History.vue'
  3. import { ref } from 'vue'
  4. import FormulaConfig from '@/components/formula/FormulaConfig.vue'
  5. import Device from '@/components/setting/Device.vue'
  6. import SystemDate from '@/components/setting/SystemDate.vue'
  7. import User from '@/components/setting/User.vue'
  8. import { useSettingStore } from '@/stores/settingStore'
  9. const settingStore = useSettingStore()
  10. const settingMenus = settingStore.settingMenus
  11. const selectedMenuCode = ref('history')
  12. // 选择菜单项的方法
  13. const selectItem = (menuCode: string) => {
  14. selectedMenuCode.value = menuCode
  15. }
  16. </script>
  17. <template>
  18. <div class="dashboard-container">
  19. <main class="main-content">
  20. <div class="setting-left">
  21. <div class="menu-container">
  22. <ul class="menu-container">
  23. <li
  24. v-for="(item) in settingMenus"
  25. :key="item.code"
  26. :class="{ active: selectedMenuCode === item.code }"
  27. class="setting-menu-li menu-item"
  28. @click="selectItem(item.code)"
  29. >
  30. {{ item.name }}
  31. </li>
  32. </ul>
  33. </div>
  34. </div>
  35. <div class="setting-right">
  36. <History v-if="selectedMenuCode === 'history'" />
  37. <div v-if="selectedMenuCode === 'defaultFormula'">
  38. <FormulaConfig type="setting" />
  39. </div>
  40. <div v-if="selectedMenuCode === 'user'">
  41. <User />
  42. </div>
  43. <div v-if="selectedMenuCode === 'date'">
  44. <SystemDate />
  45. </div>
  46. <div v-if="selectedMenuCode === 'deviceInfo'">
  47. <Device />
  48. </div>
  49. </div>
  50. </main>
  51. </div>
  52. </template>
  53. <style lang="scss" scoped>
  54. .main-content{
  55. display: grid;
  56. grid-template-columns: repeat(3,1fr);
  57. height: $main-container-height;
  58. gap: 10px;
  59. overflow: hidden;
  60. .setting-left{
  61. background: linear-gradient(180deg, rgba(147, 203, 255, 0.01) 50%, #FFFFFF 24%);
  62. box-shadow: 0px 0px 4px #0000001f;
  63. border-radius: 10px;
  64. border: 1px solid #e1e1e1;
  65. overflow: hidden;
  66. }
  67. .setting-right{
  68. grid-column: 2 / 4;
  69. box-shadow: 0px 1px 5px 0px rgba(9, 39, 62, 0.15);
  70. background: #ffffff;
  71. border: 1px solid #e1e1e1;
  72. box-shadow: 0px 0px 4px #0000001f;
  73. background: $gradient-color;
  74. border-radius: 10px;
  75. overflow: hidden;
  76. }
  77. }
  78. .menu-container {
  79. padding: 10px;
  80. .setting-menu-li{
  81. font-size: 1.5rem;
  82. }
  83. }
  84. ul {
  85. list-style-type: none;
  86. margin: 0;
  87. padding: 0;
  88. }
  89. li {
  90. padding: 15px 15px;
  91. display: flex;
  92. align-items: center;
  93. border-radius: 10px;
  94. height: 5rem;
  95. }
  96. li.active {
  97. // color: #e6f7ff;
  98. background: #e8f3ff;
  99. border-radius: 10px;
  100. color: #2892F3;
  101. }
  102. .menu-container {
  103. width: 100%; /* 占满父容器 */
  104. background: #fff;
  105. // border: 1px solid #eee;
  106. overflow: hidden; /* 配合圆角,避免阴影/边框溢出 */
  107. }
  108. .menu-item {
  109. padding: 14px 20px; /* 更大触摸区域 */
  110. font-size: 15px; /* 适配手机阅读 */
  111. border-bottom: 1px solid #f5f5f5;
  112. }
  113. /* 最后一项去掉分隔线 */
  114. .menu-item:last-child {
  115. border-bottom: none;
  116. }
  117. </style>