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.

440 lines
10 KiB

4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
3 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
4 months ago
3 months ago
3 months ago
4 months ago
  1. <template>
  2. <view class="content">
  3. <view class="topBg">
  4. <view class="tag">XXXX成为VIP会员</view>
  5. <view class="tag">一次搞定</view>
  6. <view class="tag">五大特权</view>
  7. <view class="tag">最低仅需xx元/</view>
  8. <view class="tag">常见问题</view>
  9. </view>
  10. <view class="padding">
  11. <view class="allVip flex-b">
  12. <view class="vipItem" v-for="(item,index) in 3" :key="index" :class="{active: index==1}">
  13. <view class="lab">全科VIP</view>
  14. <view class="redT flex">
  15. <view class="price"><text>15/</text></view>
  16. <view class="day">100</view>
  17. </view>
  18. </view>
  19. </view>
  20. <view class="btnBox flex-b">
  21. <view class="whiteT flex">
  22. <view class="price"><text>15/</text></view>
  23. <view class="day">100</view>
  24. </view>
  25. <view class="upgra">升级为VIP</view>
  26. </view>
  27. <view class="h1_row flex-b">
  28. <view class="h1" ><text class="active">尊享权益</text></view>
  29. <view class="moreBox">
  30. <moreRight text="查看全部"/>
  31. </view>
  32. </view>
  33. <view class="card">
  34. <view class="tit_row flex">
  35. <view class="round">
  36. <image src="@/static/images/vip/leftq.png" mode=""></image>
  37. </view>
  38. <view class="tit">五大权益助力高效领证</view>
  39. <view class="round">
  40. <image src="@/static/images/vip/rightq.png" mode=""></image>
  41. </view>
  42. </view>
  43. <view class="tps">180天内无限使用</view>
  44. <view class="ul">
  45. <view class="li" v-for="(item,index) in tabData" :key="index">
  46. <view class="icon">
  47. <image :src="item.icon" mode=""></image>
  48. </view>
  49. <view class="txt">{{item.name}}</view>
  50. </view>
  51. </view>
  52. </view>
  53. <view class="learning">
  54. <view class="h1_box">
  55. <view class="h1"> <text class="active">四步高效学习法</text> </view>
  56. </view>
  57. <view class="blueBg">
  58. <view class="blueTxt">拒绝费时费力 高效备考理论</view>
  59. <view class="ul">
  60. <view class="li" v-for="(item,index) in stepData" :key="index">
  61. <view class="flex">
  62. <view class="step">{{ item.num }}</view>
  63. <view class="unit">{{ item.oneTxt }}</view>
  64. </view>
  65. <view class="flex-b">
  66. <view class="leftImg">
  67. <image :src="item.icon" mode=""></image>
  68. </view>
  69. <view class="rightTxt">
  70. <view class="lab">精选试题</view>
  71. <view class="txt">提炼易错易考试题减少相似题目练习缩短备考时间</view>
  72. </view>
  73. </view>
  74. </view>
  75. </view>
  76. </view>
  77. </view>
  78. <view class="comment">
  79. <view class="h1_row flex-b">
  80. <view class="h1" ><text class="active">VIP学员之声</text></view>
  81. <view class="moreBox" @click="lookMore">
  82. <moreRight text="查看全部" />
  83. </view>
  84. </view>
  85. <swiper next-margin="60rpx" previous-margin="20rpx">
  86. <swiper-item v-for="(item,index) in 6" :key="index">
  87. <view style="padding: 0 20rpx;">
  88. <commentItem/>
  89. </view>
  90. </swiper-item>
  91. </swiper>
  92. </view>
  93. <up-popup v-model:show="show" mode="bottom" round="20rpx" @close="show=false" closeable>
  94. <view class="commentbox">
  95. <view class="tit">VIP学员之声</view>
  96. <view class="popComment">
  97. <commentItem v-for="(item,index) in 10" :key="index"></commentItem>
  98. </view>
  99. </view>
  100. </up-popup>
  101. </view>
  102. </view>
  103. </template>
  104. <script setup>
  105. import { ref } from 'vue'
  106. import commentItem from './comp/commentItem.vue'
  107. const tabData = ref([
  108. {name: '精选试题', icon: new URL('@/static/images/vip/vipicon2.png', import.meta.url).href, id: '1'},
  109. {name: '仿真考试', icon: new URL('@/static/images/vip/vipicon3.png', import.meta.url).href, id: '1'},
  110. {name: '考前密卷', icon: new URL('@/static/images/vip/vipicon4.png', import.meta.url).href, id: '1'},
  111. {name: '高频错题', icon: new URL('@/static/images/vip/vipicon5.png', import.meta.url).href, id: '1'},
  112. {name: '语音讲解', icon: new URL('@/static/images/vip/vipicon1.png', import.meta.url).href, id: '1'}
  113. ])
  114. const stepData = ref([
  115. {name: '精选试题', num: '一', oneTxt: '练', txt: '提炼易错、易考试题,减少相似题目练习,缩短备考时间', icon: new URL('@/static/images/vip/coveb.png', import.meta.url).href, id: '1'},
  116. {name: '还原真实考场', num: '二', oneTxt: '考', txt: '100%还原考试界面,磨练考试技巧、增强心理素质、提高考试成绩', icon: new URL('@/static/images/vip/covec.png', import.meta.url).href, id: '1'},
  117. {name: '考前秘卷', num: '三', oneTxt: '冲', txt: '考前精选 高频难题 直击考点 稳上高分', icon: new URL('@/static/images/vip/coved.png', import.meta.url).href, id: '1'},
  118. {name: '温故高频错题', num: '四', oneTxt: '复', txt: '汇总您的专属高频错题,全力攻破最后的难关', icon: new URL('@/static/images/vip/covea.png', import.meta.url).href, id: '1'},
  119. ])
  120. let show = ref(false)
  121. function lookMore() {
  122. console.log('我是一个h5')
  123. }
  124. </script>
  125. <style lang="scss" scoped>
  126. image {
  127. display: block;
  128. width: 100%;
  129. height: 100%;
  130. }
  131. .content {
  132. width: 100%;
  133. .topBg {
  134. width: 100%;
  135. height: 550rpx;
  136. background: url('../../../static/images/vip/vipbg.png') no-repeat;
  137. background-size: 100% 100%;
  138. position: relative;
  139. .tag {
  140. position: absolute;
  141. font-size: 24rpx;
  142. color: #FFF9F3;
  143. padding: 9rpx;
  144. background: url('../../../static/images/vip/tagbg.png') no-repeat;
  145. background-size: 100% 100%;
  146. &:nth-child(1) {
  147. left: 50rpx;
  148. top: 152rpx;
  149. }
  150. &:nth-child(2) {
  151. right: 78rpx;
  152. top: 182rpx;
  153. }
  154. &:nth-child(3) {
  155. left: 20rpx;
  156. top: 280rpx;
  157. }
  158. &:nth-child(4) {
  159. right: 20rpx;
  160. top: 406rpx;
  161. }
  162. &:nth-child(5) {
  163. right: 0;
  164. top: 225rpx;
  165. width: 48rpx;
  166. height: 176rpx;
  167. padding-top: 20rpx;
  168. background: url('../../../static/images/vip/qustr.png') no-repeat;
  169. background-size: 100% 100%;
  170. }
  171. }
  172. }
  173. .allVip {
  174. transform: translateY(-96rpx);
  175. // position: relative;
  176. // top: -96rpx;
  177. .vipItem {
  178. width: 28%;
  179. height: 180rpx;
  180. background: #FFFFFF;
  181. border-radius: 10rpx;
  182. border: 2px solid #FDD5B7;
  183. &.active {
  184. transform: scale(1.3);
  185. background-color: #FDF5E4;
  186. border: 4px solid #EAA270;
  187. border-radius: 10px;
  188. }
  189. .lab {
  190. height: 96rpx;
  191. line-height: 96rpx;
  192. text-align: center;
  193. font-size: 28rpx;
  194. font-weight: 500;
  195. }
  196. .redT {
  197. padding-top: 16rpx;
  198. text-align: center;
  199. width: 100%;
  200. justify-content: center;
  201. border-top: 1px solid #eee;
  202. .price {
  203. color: #DA492D;
  204. font-size: 24rpx;
  205. text {
  206. font-size: 36rpx;
  207. }
  208. }
  209. .day {
  210. font-size: 24rpx;
  211. color: #9E492D;
  212. }
  213. }
  214. }
  215. }
  216. .btnBox.flex-b {
  217. width: 100%;
  218. height: 100rpx;
  219. background: #3776FF;
  220. border-radius: 50rpx;
  221. padding: 10rpx 10rpx 10rpx 32rpx;
  222. margin-top: -50rpx;
  223. .whiteT.flex {
  224. color: #fff;
  225. .price {
  226. font-size: 24rpx;
  227. text {
  228. font-size: 36rpx;
  229. font-weight: 700;
  230. }
  231. }
  232. .day {
  233. font-size: 24rpx;
  234. }
  235. }
  236. .upgra {
  237. width: 230rpx;
  238. height: 80rpx;
  239. background: linear-gradient(0deg, #F7D0A5 0%, #FCEDD1 100%);
  240. border-radius: 40rpx;
  241. font-size: 36rpx;
  242. line-height: 80rpx;
  243. text-align: center;
  244. font-weight: 500;
  245. }
  246. }
  247. .h1_row {
  248. height: 118rpx;
  249. }
  250. .card {
  251. background: #FFFFFF;
  252. box-shadow: 0px 0px 18px 0px rgba(0,0,0,0.04);
  253. border-radius: 20px;
  254. padding: 30rpx 20rpx;
  255. .tit_row.flex {
  256. width: 100%;
  257. justify-content: center;
  258. .round {
  259. width: 24rpx;
  260. height: 24rpx;
  261. }
  262. .tit {
  263. font-size: 28rpx;
  264. color: #333;
  265. padding: 0 20rpx;
  266. }
  267. }
  268. .tps {
  269. font-size: 24rpx;
  270. color: #ccc;
  271. padding: 20rpx 0 32rpx 0;
  272. text-align: center;
  273. }
  274. .ul {
  275. display: flex;
  276. .li {
  277. width: 20%;
  278. display: flex;
  279. flex-direction: column;
  280. align-items: center;
  281. justify-content: center;
  282. .icon {
  283. width: 84rpx;
  284. height: 84rpx;
  285. }
  286. .txt {
  287. font-size: 28rpx;
  288. margin-top: 14rpx;
  289. }
  290. }
  291. }
  292. }
  293. .learning {
  294. .h1_box {
  295. padding: 20rpx 0;
  296. }
  297. .h1 {
  298. }
  299. .blueBg {
  300. background: linear-gradient(180deg, #E3FEFF 0%, #F2FEFF 100%);
  301. border-radius: 20px;
  302. padding: 0 20rpx 20rpx 20rpx;
  303. margin-top: 20rpx;
  304. .blueTxt {
  305. line-height: 68rpx;
  306. text-align: center;
  307. font-size: 30rpx;
  308. font-weight: 700;
  309. color: $themC;
  310. }
  311. .ul {
  312. width: 100%;
  313. background: #FFFFFF;
  314. border-radius: 20px;
  315. .li {
  316. width: 100%;
  317. padding: 30rpx 0rpx;
  318. border-bottom: 1px solid #F4F4F4;
  319. .flex {
  320. .step {
  321. width: 125rpx;
  322. height: 42rpx;
  323. font-size: 28rpx;
  324. background: #3776FF;
  325. border-radius: 0px 0px 30rpx 0px;
  326. line-height: 42rpx;
  327. color: #fff;
  328. text-align: center;
  329. }
  330. .unit {
  331. font-family: PingFang SC;
  332. font-weight: bold;
  333. font-size: 36rpx;
  334. color: #333333;
  335. margin-left: 20rpx;
  336. }
  337. }
  338. .flex-b {
  339. padding-top: 30rpx;
  340. padding: 30rpx 20rpx 0 20rpx;
  341. .leftImg {
  342. width: 360rpx;
  343. height: 200rpx;
  344. background: #F4EED8;
  345. border-radius: 20rpx;
  346. overflow: hidden;
  347. }
  348. .rightTxt {
  349. padding-left: 20rpx;
  350. flex: 1;
  351. width: 0;
  352. .lab {
  353. font-weight: bold;
  354. font-size: 28rpx;
  355. color: #333333;
  356. line-height: 66rpx;
  357. }
  358. .txt {
  359. font-weight: 500;
  360. font-size: 24rpx;
  361. color: #666666;
  362. line-height: 34rpx;
  363. }
  364. }
  365. }
  366. }
  367. }
  368. }
  369. }
  370. }
  371. .comment {
  372. margin-top: 20rpx;
  373. }
  374. .commentbox {
  375. position: relative;
  376. .tit {
  377. height: 94rpx;
  378. line-height: 94rpx;
  379. position: absolute;
  380. left: 0;
  381. top: 0;
  382. border-bottom: 1px solid #F4F4F4;
  383. width: 100%;
  384. padding-left: 40rpx;
  385. font-weight: 700;
  386. background-color: #fff;
  387. z-index: 2;
  388. }
  389. .popComment {
  390. max-height: calc(100vh - 400rpx);
  391. overflow-y: auto;
  392. padding: 134rpx 40rpx 40rpx 40rpx;
  393. }
  394. }
  395. .u-popup__content__close {
  396. z-index: 2;
  397. }
  398. :deep .u-popup__content__close--top-right {
  399. z-index: 20;
  400. }
  401. </style>