App.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template>
  2. <view>
  3. <slot></slot>
  4. </view>
  5. </template>
  6. <script setup>
  7. import { onLaunch } from '@dcloudio/uni-app'
  8. // 应用启动时执行
  9. onLaunch(() => {
  10. console.log('App launched')
  11. })
  12. </script>
  13. <style lang="scss">
  14. /* 全局样式 - 基于洗车小程序设计规范 */
  15. @import './uni.scss';
  16. /* 微信小程序使用page作为根元素 */
  17. page {
  18. font-family: $uni-font-family;
  19. font-size: $uni-font-size-base;
  20. line-height: $uni-line-height-base;
  21. color: $uni-text-color;
  22. background-color: $uni-page-bg-color;
  23. }
  24. /* 自定义tabBar点击动效 */
  25. /* 注意:微信小程序原生tabBar样式自定义能力有限,以下样式可能需要配合自定义tabBar组件才能完全生效 */
  26. .uni-tabbar {
  27. --tabbar-height: 50px;
  28. --tabbar-bg-color: #FFFFFF;
  29. --tabbar-border-color: #E0E0E0;
  30. --tabbar-item-active-color: #C6171E;
  31. --tabbar-item-color: #999999;
  32. --tabbar-item-font-size: 14px;
  33. --tabbar-item-icon-size: 24px;
  34. --tabbar-item-spacing: 4px;
  35. }
  36. /* 为tabBar项添加点击动效 */
  37. .uni-tabbar__item:active {
  38. transform: scale(0.95);
  39. transition: transform 0.15s ease;
  40. }
  41. /* 为tabBar项添加hover效果(如果支持的话) */
  42. .uni-tabbar__item:hover {
  43. opacity: 0.8;
  44. }
  45. /* 自定义tabBar样式增强 */
  46. .uni-tabbar__item-icon {
  47. font-size: var(--tabbar-item-icon-size);
  48. }
  49. .uni-tabbar__item-text {
  50. font-size: var(--tabbar-item-font-size);
  51. margin-top: var(--tabbar-item-spacing);
  52. }
  53. /* 如果使用自定义tabBar组件,可以添加以下样式 */
  54. .custom-tabbar {
  55. display: flex;
  56. justify-content: space-around;
  57. align-items: center;
  58. height: var(--tabbar-height);
  59. background-color: var(--tabbar-bg-color);
  60. border-top: 1px solid var(--tabbar-border-color);
  61. position: fixed;
  62. bottom: 0;
  63. left: 0;
  64. right: 0;
  65. z-index: 999;
  66. }
  67. .custom-tabbar-item {
  68. flex: 1;
  69. display: flex;
  70. flex-direction: column;
  71. align-items: center;
  72. justify-content: center;
  73. height: 100%;
  74. color: var(--tabbar-item-color);
  75. transition: all 0.3s ease;
  76. }
  77. .custom-tabbar-item.active {
  78. color: var(--tabbar-item-active-color);
  79. }
  80. .custom-tabbar-item:active {
  81. transform: scale(0.95);
  82. transition: transform 0.15s ease;
  83. }
  84. .custom-tabbar-item-icon {
  85. font-size: var(--tabbar-item-icon-size);
  86. margin-bottom: var(--tabbar-item-spacing);
  87. }
  88. .custom-tabbar-item-text {
  89. font-size: var(--tabbar-item-font-size);
  90. }
  91. /* 容器样式 */
  92. .container {
  93. width: 100%;
  94. padding: 0 $uni-spacing-base;
  95. }
  96. /* Flex布局工具类 */
  97. .flex {
  98. display: flex;
  99. }
  100. .flex-center {
  101. display: flex;
  102. align-items: center;
  103. justify-content: center;
  104. }
  105. .flex-just-between {
  106. display: flex;
  107. align-items: center;
  108. justify-content: space-between;
  109. }
  110. .flex-column {
  111. display: flex;
  112. flex-direction: column;
  113. }
  114. /* 卡片基础样式 */
  115. .card {
  116. background-color: $uni-card-bg-color;
  117. border-radius: $uni-border-radius-base;
  118. border: 1px solid $uni-border-color;
  119. box-shadow: $uni-box-shadow;
  120. padding: $uni-spacing-base;
  121. }
  122. /* 主要按钮样式 */
  123. .btn-primary {
  124. background-color: $uni-color-primary;
  125. color: white;
  126. border: none;
  127. border-radius: $uni-border-radius-base;
  128. padding: $uni-spacing-sm $uni-spacing-base;
  129. font-size: $uni-font-size-base;
  130. font-weight: $uni-font-weight-medium;
  131. cursor: pointer;
  132. transition: all $uni-transition-duration;
  133. }
  134. .btn-primary:active {
  135. opacity: 0.8;
  136. transform: scale(0.98);
  137. }
  138. /* 次要按钮样式 */
  139. .btn-secondary {
  140. background-color: $uni-bg-color;
  141. color: $uni-text-color;
  142. border: 1px solid $uni-border-color;
  143. border-radius: $uni-border-radius-base;
  144. padding: $uni-spacing-sm $uni-spacing-base;
  145. font-size: $uni-font-size-base;
  146. cursor: pointer;
  147. transition: all $uni-transition-duration;
  148. }
  149. .btn-secondary:active {
  150. background-color: $uni-page-bg-color;
  151. }
  152. /* 状态标签样式 */
  153. .status-tag {
  154. padding: 4rpx 12rpx;
  155. border-radius: $uni-border-radius-circle;
  156. font-size: $uni-font-size-xs;
  157. font-weight: $uni-font-weight-medium;
  158. }
  159. .status-idle {
  160. background-color: rgba(76, 175, 80, 0.1);
  161. color: $uni-color-idle;
  162. }
  163. .status-busy {
  164. background-color: rgba(255, 152, 0, 0.1);
  165. color: $uni-color-busy;
  166. }
  167. .status-error {
  168. background-color: rgba(244, 67, 54, 0.1);
  169. color: $uni-color-error-state;
  170. }
  171. </style>