吉光研途前端代码仓库
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.

192 lines
4.0 KiB

1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
  1. <template>
  2. <view class="page__view">
  3. <view class="bg"></view>
  4. <view class="main">
  5. <view class="header">
  6. <view class="title">
  7. <view class="title-text">{{ configList.config_name }}</view>
  8. <view class="title-line"></view>
  9. </view>
  10. <view class="desc">{{ configList.config_desc }}</view>
  11. </view>
  12. <!-- 轮播图 -->
  13. <view class="section swiper">
  14. <uv-swiper :list="bannerList" keyName="image" indicator indicatorMode="dot" indicatorActiveColor="#4883F9" indicatorInactiveColor="#FFFFFF" height="424rpx"></uv-swiper>
  15. </view>
  16. <view class="list">
  17. <view class="list-item" @click="jumpToDetail('academic_advising')">
  18. <image class="list-item-bg" :src="configList.config_image_advising" mode="scaleToFill"></image>
  19. <!-- <view class="list-item-fg">
  20. <view class="title">学术辅导</view>
  21. <view class="desc">Academic Advising</view>
  22. </view> -->
  23. </view>
  24. <view class="list-item" @click="jumpToDetail('thesis_submission')">
  25. <image class="list-item-bg" :src="configList.config_image_submission" mode="scaleToFill"></image>
  26. <!-- <view class="list-item-fg">
  27. <view class="title">论文投递</view>
  28. <view class="desc">Paper submission</view>
  29. </view> -->
  30. </view>
  31. </view>
  32. </view>
  33. <tabber select="serve" />
  34. </view>
  35. </template>
  36. <script>
  37. import tabber from '@/components/base/tabbar.vue'
  38. export default {
  39. components: {
  40. tabber,
  41. },
  42. data() {
  43. return {
  44. bannerList: [],
  45. }
  46. },
  47. onLoad() {
  48. this.fetchBanner()
  49. },
  50. methods: {
  51. // 获取轮播图
  52. async fetchBanner() {
  53. try {
  54. this.bannerList = (await this.$fetch('queryBannerList', { type: '2' }))?.records // type:0-首页 1-案例 2-服务 3-其他
  55. } catch (err) {
  56. }
  57. },
  58. jumpToDetail(paramCode) {
  59. uni.navigateTo({
  60. url: `/pages_order/serve/index?paramCode=${paramCode}`
  61. })
  62. },
  63. },
  64. }
  65. </script>
  66. <style scoped lang="scss">
  67. .bg {
  68. width: 100%;
  69. height: 438rpx;
  70. background-image: linear-gradient(#4883F9, #4883F9, #4883F9, #FCFDFF);
  71. }
  72. .main {
  73. position: absolute;
  74. top: 0;
  75. left: 0;
  76. width: 100%;
  77. padding: 156rpx 0 182rpx 0;
  78. }
  79. .header {
  80. .title {
  81. margin-left: 25rpx;
  82. position: relative;
  83. padding: 51rpx 0 6rpx 42rpx;
  84. &-line {
  85. width: 151rpx;
  86. height: 11rpx;
  87. background: linear-gradient(76deg,#ffffff 2%, #4883f9 88%);
  88. border-radius: 6rpx;
  89. }
  90. &-text {
  91. position: absolute;
  92. top: 0;
  93. left: 0;
  94. font-size: 46rpx;
  95. font-weight: 700;
  96. color: #FFFFFF;
  97. }
  98. }
  99. .desc {
  100. font-size: 30rpx;
  101. font-weight: 700;
  102. color: #FFFFFF;
  103. margin: 14rpx 28rpx 32rpx 28rpx;
  104. }
  105. }
  106. .swiper {
  107. margin: 0 18rpx 15rpx 18rpx;
  108. border-radius: 25rpx;
  109. overflow: hidden;
  110. /deep/ .uv-swiper-indicator__wrapper__dot {
  111. width: 15rpx;
  112. height: 15rpx;
  113. }
  114. /deep/ .uv-swiper-indicator__wrapper__dot--active {
  115. width: 15rpx;
  116. }
  117. }
  118. .list {
  119. margin: 0 18rpx;
  120. &-item {
  121. position: relative;
  122. font-size: 0;
  123. border-radius: 25rpx;
  124. overflow: hidden;
  125. box-shadow: 0rpx 3rpx 6rpx 0rpx rgba(0,0,0,0.16);
  126. & + & {
  127. margin-top: 32rpx;
  128. }
  129. &-bg {
  130. $w: calc(100vw - 18rpx*2);
  131. width: $w;
  132. height: calc(#{$w} * 179 / 714);
  133. }
  134. &-fg {
  135. position: absolute;
  136. top: 38rpx;
  137. left: 51rpx;
  138. .title {
  139. font-size: 32rpx;
  140. font-weight: 700;
  141. color: #E67722;
  142. }
  143. .desc {
  144. margin-top: 2rpx;
  145. font-size: 28rpx;
  146. color: #BEA898;
  147. }
  148. }
  149. &:nth-child(2n) {
  150. .list-item-fg {
  151. left: 200rpx;
  152. .title {
  153. color: #052464;
  154. }
  155. .desc {
  156. color: #A8BADE;
  157. }
  158. }
  159. }
  160. }
  161. }
  162. </style>