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

187 lines
3.8 KiB

3 days ago
3 days ago
3 days ago
3 days ago
3 days 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="@/static/image/bg-academic-advising.png" mode="widthFix"></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="@/static/image/bg-paper-submission.png" mode="widthFix"></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. padding: 0 12rpx;
  120. &-item {
  121. position: relative;
  122. & + & {
  123. margin-top: 19rpx;
  124. }
  125. &-bg {
  126. width: 100%;
  127. height: auto;
  128. }
  129. &-fg {
  130. position: absolute;
  131. top: 38rpx;
  132. left: 51rpx;
  133. .title {
  134. font-size: 32rpx;
  135. font-weight: 700;
  136. color: #E67722;
  137. }
  138. .desc {
  139. margin-top: 2rpx;
  140. font-size: 28rpx;
  141. color: #BEA898;
  142. }
  143. }
  144. &:nth-child(2n) {
  145. .list-item-fg {
  146. left: 200rpx;
  147. .title {
  148. color: #052464;
  149. }
  150. .desc {
  151. color: #A8BADE;
  152. }
  153. }
  154. }
  155. }
  156. }
  157. </style>