-
24components/moreRight/moreRight.vue
-
23pages.json
-
6pages/exercises/brushQuestions/brushQuestions.vue
-
326pages/exercises/theoryStudy/theoryStudy.vue
-
4pages/exercises/wrongQuestion/wrongQuestion.vue
-
89pages/vip/vipEntry/vipEntry - 副本.vue
-
215pages/vip/vipEntry/vipEntry.vue
-
BINstatic/images/theory/computed.png
-
BINstatic/images/theory/sanjx.png
-
BINstatic/images/theory/theoryIcon1.png
-
BINstatic/images/theory/theoryIcon10.png
-
BINstatic/images/theory/theoryIcon11.png
-
BINstatic/images/theory/theoryIcon12.png
-
BINstatic/images/theory/theoryIcon2.png
-
BINstatic/images/theory/theoryIcon3.png
-
BINstatic/images/theory/theoryIcon4.png
-
BINstatic/images/theory/theoryIcon5.png
-
BINstatic/images/theory/theoryIcon6.png
-
BINstatic/images/theory/theoryIcon7.png
-
BINstatic/images/theory/theoryIcon8.png
-
BINstatic/images/theory/theoryIcon9.png
-
BINstatic/images/vip/形状 101 拷贝@2x.png
-
BINstatic/images/vip/矩形 2224@2x.png
-
BINstatic/images/vip/矩形 22@2x.png
-
BINstatic/images/vip/矩形 6 拷贝@2x.png
-
BINstatic/images/vip/矩形 6@2x.png
-
BINstatic/images/vip/箭头 拷贝 2@2x.png
-
BINstatic/images/vip/组 84@2x(1).png
-
BINstatic/images/vip/组 84@2x(10).png
-
BINstatic/images/vip/组 84@2x(11).png
-
BINstatic/images/vip/组 84@2x(12).png
-
BINstatic/images/vip/组 84@2x(13).png
-
BINstatic/images/vip/组 84@2x(2).png
-
BINstatic/images/vip/组 84@2x(3).png
-
BINstatic/images/vip/组 84@2x(4).png
-
BINstatic/images/vip/组 84@2x(5).png
-
BINstatic/images/vip/组 84@2x(6).png
-
BINstatic/images/vip/组 84@2x(7).png
-
BINstatic/images/vip/组 84@2x(8).png
-
BINstatic/images/vip/组 84@2x(9).png
-
BINstatic/images/vip/组 84@2x.png
@ -0,0 +1,24 @@ |
|||
<template> |
|||
<view class="moreBox"> |
|||
<view class="txt">{{text}}</view> |
|||
<u-icon name="arrow-right" color="#686B73" size="14"></u-icon> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props: ['text'] |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.moreBox { |
|||
display: flex; |
|||
align-items: center; |
|||
.txt { |
|||
font-size: 24rpx; |
|||
color: #686B73; |
|||
margin-right: 8rpx; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,326 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<up-navbar title="理论学习" :leftIconColor="'#333'" :safeAreaInsetTop="true" :autoBack="true" :bgColor="'transparent'"> |
|||
<template #right> |
|||
<view class="u-nav-slot flex"> |
|||
<view class="txt">小车</view> |
|||
<u-icon name="arrow-down-fill" color="#333" size="12"></u-icon> |
|||
</view> |
|||
</template> |
|||
</up-navbar> |
|||
|
|||
<view class="tabs flex"> |
|||
<view class="tab" @click="changeTab(1)" :class="{active: currentTab==1}">科目一</view> |
|||
<view class="tab" @click="changeTab(2)" :class="{active: currentTab==2}">收藏夹</view> |
|||
</view> |
|||
|
|||
<view class="swiperBox"> |
|||
<u-swiper :list="list1" @click="swiperClick" :dots-styles="dotsStyles" indicatorMode="dot"></u-swiper> |
|||
</view> |
|||
|
|||
<view class="notice"> |
|||
<view class="yellowT">通知/</view> |
|||
<view class="txt">06月11日已更新至最新题库</view> |
|||
</view> |
|||
|
|||
<view class="iconBox"> |
|||
<view class="iconComl"> |
|||
<view class="item" v-for="(item,index) in leftItem" :key="index"> |
|||
<view class="icon"> |
|||
<image :src="item.icon" mode=""></image> |
|||
</view> |
|||
<view class="text">{{item.name}}</view> |
|||
</view> |
|||
</view> |
|||
<view class="centerComl"> |
|||
<view class="ctItem"> |
|||
<view class="txt">顺序练习</view> |
|||
<view class="txt">0/1700</view> |
|||
</view> |
|||
<view class="ctItem"> |
|||
<view class="txt">精选试题</view> |
|||
<view class="txt">0/1700</view> |
|||
</view> |
|||
</view> |
|||
<view class="iconComl"> |
|||
<view class="item" v-for="(item,index) in rightItem" :key="index"> |
|||
<view class="icon"> |
|||
<image :src="item.icon" mode=""></image> |
|||
</view> |
|||
<view class="text">{{ item.name }}</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="simulatedExam flex-b"> |
|||
<view class="leftTxt"> |
|||
<view class="h8">科一模拟考试</view> |
|||
<view class="text">考试次数:1次</view> |
|||
<view class="text">预测通过率:10%</view> |
|||
<view class="btnBox flex"> |
|||
<view class="btnTxt">开始考试</view> |
|||
<view class="btnIcon"> |
|||
<image src="@/static/images/theory/sanjx.png" mode=""></image> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="rightImg"> |
|||
<image src="@/static/images/theory/computed.png" mode=""></image> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="ul flex"> |
|||
<view class="li" v-for="(item,index) in bottomItem" :key="index"> |
|||
<view class="icon"> |
|||
<image :src="item.icon" mode=""></image> |
|||
</view> |
|||
<view class="txt">{{ item.name }}</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script setup> |
|||
import { ref } from 'vue' |
|||
const list1 = [ |
|||
'https://cdn.uviewui.com/uview/swiper/swiper1.png', |
|||
'https://cdn.uviewui.com/uview/swiper/swiper2.png', |
|||
'https://cdn.uviewui.com/uview/swiper/swiper3.png', |
|||
] |
|||
function swiperClick(val) { |
|||
console.log(val) |
|||
} |
|||
const currentTab = ref(1) |
|||
const dotsStyles = ref({ |
|||
backgroundColor: '#E8E9EC', |
|||
border: '1px #E8E9EC solid', |
|||
color: '#fff', |
|||
selectedBackgroundColor: '#1989FA', |
|||
selectedBorder: '1px #1989FA solid' |
|||
}) |
|||
|
|||
const leftItem = ref([ |
|||
{name: '分类学习', icon: new URL('@/static/images/theory/theoryIcon1.png', import.meta.url).href, url: ''}, |
|||
{name: '章节练习', icon: new URL('@/static/images/theory/theoryIcon7.png', import.meta.url).href, url: ''}, |
|||
{name: '精选试题', icon: new URL('@/static/images/theory/theoryIcon9.png', import.meta.url).href, url: ''}, |
|||
{name: '考前密卷', icon: new URL('@/static/images/theory/theoryIcon11.png', import.meta.url).href, url: ''}, |
|||
]) |
|||
|
|||
const rightItem = ref([ |
|||
{name: '题型练习', icon: new URL('@/static/images/theory/theoryIcon6.png', import.meta.url).href, url: ''}, |
|||
{name: '错题收藏', icon: new URL('@/static/images/theory/theoryIcon8.png', import.meta.url).href, url: ''}, |
|||
{name: '仿真考试', icon: new URL('@/static/images/theory/theoryIcon10.png', import.meta.url).href, url: ''}, |
|||
{name: '我的学习', icon: new URL('@/static/images/theory/theoryIcon12.png', import.meta.url).href, url: ''}, |
|||
]) |
|||
|
|||
const bottomItem = ref([ |
|||
{name: '考试简介', icon: new URL('@/static/images/theory/theoryIcon3.png', import.meta.url).href, url: ''}, |
|||
{name: '考试准备', icon: new URL('@/static/images/theory/theoryIcon2.png', import.meta.url).href, url: ''}, |
|||
{name: '考试流程', icon: new URL('@/static/images/theory/theoryIcon4.png', import.meta.url).href, url: ''}, |
|||
{name: '注意事项', icon: new URL('@/static/images/theory/theoryIcon5.png', import.meta.url).href, url: ''}, |
|||
]) |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
image { |
|||
display: block; |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
.tabs { |
|||
display: flex; |
|||
height: 100rpx; |
|||
width: 100%; |
|||
justify-content: center; |
|||
.tab { |
|||
color: #333; |
|||
position: relative; |
|||
padding: 0 40rpx; |
|||
font-weight: 400; |
|||
flex: 1; |
|||
text-align: center; |
|||
&.active { |
|||
width: 100%; |
|||
&::before { |
|||
content: ''; |
|||
position: absolute; |
|||
left: 50%; |
|||
bottom: -20rpx; |
|||
width: 30rpx; |
|||
height: 4rpx; |
|||
background: #333; |
|||
font-weight: 700; |
|||
border-radius: 2rpx; |
|||
transform: translateX(-50%); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.content { |
|||
padding: 100rpx 30rpx 30rpx 30rpx; |
|||
.u-nav-slot { |
|||
.txt { |
|||
font-size: 28rpx; |
|||
margin-right: 10rpx; |
|||
} |
|||
} |
|||
|
|||
.swiperBox { |
|||
padding-top: 20rpx; |
|||
} |
|||
|
|||
.notice { |
|||
padding: 18rpx; |
|||
background: #FEF9ED; |
|||
border-radius: 8rpx; |
|||
margin-top: 20rpx; |
|||
font-size: 28rpx; |
|||
.yellowT { |
|||
font-weight: 800; |
|||
color: #F1AD40; |
|||
font-style: italic; |
|||
display: inline-block; |
|||
margin-right: 10rpx; |
|||
} |
|||
|
|||
.txt { |
|||
display: inline-block; |
|||
} |
|||
} |
|||
|
|||
.iconBox { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
padding: 60rpx 30rpx; |
|||
.iconComl { |
|||
display: flex; |
|||
flex-direction: column; |
|||
.item { |
|||
text-align: center; |
|||
margin-bottom: 40rpx; |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: center; |
|||
align-items: center; |
|||
.icon { |
|||
width: 72rpx; |
|||
height: 72rpx; |
|||
|
|||
} |
|||
|
|||
.text { |
|||
font-size: 28rpx; |
|||
margin-top: 10rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.centerComl { |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: space-around; |
|||
padding-bottom: 30rpx; |
|||
.ctItem { |
|||
width: 230rpx; |
|||
height: 230rpx; |
|||
background: linear-gradient(0deg, #4FACFE 0%, #00F2FE 100%); |
|||
border-radius: 50%; |
|||
// border: 10px solid; |
|||
// opacity: 0.1; |
|||
// border-image: linear-gradient(0deg, #4FACFE, #00F2FE) 10 10; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
flex-direction: column; |
|||
&:last-child { |
|||
background: linear-gradient(45deg, #0FE25C 0%, #1FF2CA 100%); |
|||
} |
|||
.txt { |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
padding: 6rpx 0; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.simulatedExam { |
|||
background: #DFF6FF; |
|||
border-radius: 20rpx; |
|||
padding: 30rpx; |
|||
// margin-top: 40rpx; |
|||
.leftTxt { |
|||
flex: 1; |
|||
width: 0; |
|||
.h8 { |
|||
font-weight: bold; |
|||
font-size: 44rpx; |
|||
} |
|||
|
|||
.text { |
|||
font-size: 28rpx; |
|||
margin-top: 12rpx; |
|||
} |
|||
|
|||
.btnBox { |
|||
width: 188rpx; |
|||
height: 66rpx; |
|||
background: #3776FF; |
|||
border-radius: 33rpx; |
|||
display: flex; |
|||
justify-content: center; |
|||
margin-top: 30rpx; |
|||
.btnTxt { |
|||
font-size: 30rpx; |
|||
color: #FFFFFF; |
|||
} |
|||
|
|||
.btnIcon { |
|||
width: 10rpx; |
|||
height: 12rpx; |
|||
margin-left: 12rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.rightImg { |
|||
width: 256rpx; |
|||
height: 256rpx; |
|||
img { |
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
.ul { |
|||
padding: 20rpx 0 0 0; |
|||
justify-content: space-between; |
|||
.li { |
|||
width: 23%; |
|||
height: 174rpx; |
|||
background: linear-gradient(0deg, #FFFFFF 0%, #E5F7FF 100%); |
|||
box-shadow: 0px 2px 2px 0px #E5F7FF; |
|||
border-radius: 10px; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
justify-content: center; |
|||
.icon { |
|||
width: 58rpx; |
|||
height: 60rpx; |
|||
margin: 0 auto; |
|||
} |
|||
|
|||
.txt { |
|||
font-weight: 500; |
|||
font-size: 28rpx; |
|||
margin-top: 24rpx; |
|||
text-align: center; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,89 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<view class="topBg"> |
|||
<view class="tag">XXXX成为VIP会员</view> |
|||
<view class="tag">一次搞定</view> |
|||
<view class="tag">常见问题</view> |
|||
<view class="tag">五大特权</view> |
|||
<view class="tag">最低仅需xx元/天</view> |
|||
</view> |
|||
|
|||
<view class="allVip"> |
|||
<view class="vipItem" v-for="(item,index) in 3" :key="index"> |
|||
<view class="lab">全科VIP</view> |
|||
<view class="redT flex"> |
|||
<view class="price">¥<text>15</text></view> |
|||
<view class="day">100天</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="btnBox flex-b"> |
|||
<view class="whiteT flex"> |
|||
<view class="price">¥<text>15</text></view> |
|||
<view class="day">100天</view> |
|||
</view> |
|||
<view class="upgra">升级为VIP</view> |
|||
</view> |
|||
|
|||
<view class="card"> |
|||
<view class="h1_row"> |
|||
<view class="h1">尊享权益</view> |
|||
<view class="moreBox"> |
|||
<moreRight text="查看全部"/> |
|||
</view> |
|||
</view> |
|||
<view class="tit_row flex"> |
|||
<view class="round"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
<view class="tit">五大权益助力高效领证</view> |
|||
<view class="round"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
</view> |
|||
<view class="tps">180天内无限使用</view> |
|||
|
|||
<view class="ul"> |
|||
<view class="li" v-for="(item,index) in 5" :key="index"> |
|||
<view class="icon"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
<view class="txt">精选试题</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="learning"> |
|||
<view class="h1">四步高效学习法</view> |
|||
<view class="blueBg"> |
|||
<view class="blueTxt">拒绝费时费力 高效备考理论</view> |
|||
<view class="ul"> |
|||
<view class="li"> |
|||
<view class="flex"> |
|||
<view class="step">第一步</view> |
|||
<view class="unit">练</view> |
|||
</view> |
|||
<view class="flex-b"> |
|||
<view class="leftImg"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
<view class="rightTxt"> |
|||
<view class="lab">精选试题</view> |
|||
<view class="txt">提炼易错、易考试题,减少相似题目练习,缩短备考时间</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
</script> |
|||
|
|||
<style> |
|||
</style> |
@ -0,0 +1,215 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<view class="topBg"> |
|||
<view class="tag">XXXX成为VIP会员</view> |
|||
<view class="tag">一次搞定</view> |
|||
<view class="tag">常见问题</view> |
|||
<view class="tag">五大特权</view> |
|||
<view class="tag">最低仅需xx元/天</view> |
|||
</view> |
|||
|
|||
<view class="allVip"> |
|||
<view class="vipItem" v-for="(item,index) in 3" :key="index"> |
|||
<view class="lab">全科VIP</view> |
|||
<view class="redT flex"> |
|||
<view class="price">¥<text>15</text></view> |
|||
<view class="day">100天</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="btnBox flex-b"> |
|||
<view class="whiteT flex"> |
|||
<view class="price">¥<text>15</text></view> |
|||
<view class="day">100天</view> |
|||
</view> |
|||
<view class="upgra">升级为VIP</view> |
|||
</view> |
|||
|
|||
<view class="card"> |
|||
<view class="h1_row"> |
|||
<view class="h1">尊享权益</view> |
|||
<view class="moreBox"> |
|||
<moreRight text="查看全部"/> |
|||
</view> |
|||
</view> |
|||
<view class="tit_row flex"> |
|||
<view class="round"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
<view class="tit">五大权益助力高效领证</view> |
|||
<view class="round"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
</view> |
|||
<view class="tps">180天内无限使用</view> |
|||
|
|||
<view class="ul"> |
|||
<view class="li" v-for="(item,index) in 5" :key="index"> |
|||
<view class="icon"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
<view class="txt">精选试题</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="learning"> |
|||
<view class="h1">四步高效学习法</view> |
|||
<view class="blueBg"> |
|||
<view class="blueTxt">拒绝费时费力 高效备考理论</view> |
|||
<view class="ul"> |
|||
<view class="li"> |
|||
<view class="flex"> |
|||
<view class="step">第一步</view> |
|||
<view class="unit">练</view> |
|||
</view> |
|||
<view class="flex-b"> |
|||
<view class="leftImg"> |
|||
<image src="" mode=""></image> |
|||
</view> |
|||
<view class="rightTxt"> |
|||
<view class="lab">精选试题</view> |
|||
<view class="txt">提炼易错、易考试题,减少相似题目练习,缩短备考时间</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script setup> |
|||
|
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.content { |
|||
.topBg { |
|||
.tag { |
|||
|
|||
} |
|||
} |
|||
|
|||
.allVip { |
|||
.vipItem { |
|||
.lab { |
|||
|
|||
} |
|||
|
|||
.redT.flex { |
|||
.price { |
|||
text { |
|||
|
|||
} |
|||
} |
|||
|
|||
.day { |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.btnBox.flex-b { |
|||
.whiteT.flex { |
|||
.price { |
|||
text { |
|||
|
|||
} |
|||
} |
|||
|
|||
.day { |
|||
|
|||
} |
|||
} |
|||
|
|||
.upgra { |
|||
|
|||
} |
|||
} |
|||
|
|||
.card { |
|||
.h1_row { |
|||
.h1 { |
|||
|
|||
} |
|||
|
|||
.moreBox { |
|||
|
|||
} |
|||
} |
|||
|
|||
.tit_row.flex { |
|||
.round { |
|||
|
|||
} |
|||
|
|||
.tit { |
|||
|
|||
} |
|||
} |
|||
|
|||
.tps { |
|||
|
|||
} |
|||
|
|||
.ul { |
|||
.li { |
|||
.icon { |
|||
|
|||
} |
|||
|
|||
.txt { |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.learning { |
|||
.h1 { |
|||
|
|||
} |
|||
|
|||
.blueBg { |
|||
.blueTxt { |
|||
|
|||
} |
|||
|
|||
.ul { |
|||
.li { |
|||
.flex { |
|||
.step { |
|||
|
|||
} |
|||
|
|||
.unit { |
|||
|
|||
} |
|||
} |
|||
|
|||
.flex-b { |
|||
.leftImg { |
|||
|
|||
} |
|||
|
|||
.rightTxt { |
|||
.lab { |
|||
|
|||
} |
|||
|
|||
.txt { |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
After Width: 510 | Height: 512 | Size: 224 KiB |
After Width: 20 | Height: 26 | Size: 334 B |
After Width: 144 | Height: 144 | Size: 5.9 KiB |
After Width: 144 | Height: 144 | Size: 4.9 KiB |
After Width: 144 | Height: 144 | Size: 4.2 KiB |
After Width: 144 | Height: 144 | Size: 5.4 KiB |
After Width: 116 | Height: 122 | Size: 11 KiB |
After Width: 116 | Height: 122 | Size: 9.6 KiB |
After Width: 116 | Height: 122 | Size: 12 KiB |
After Width: 116 | Height: 122 | Size: 12 KiB |
After Width: 144 | Height: 144 | Size: 17 KiB |
After Width: 144 | Height: 144 | Size: 13 KiB |
After Width: 144 | Height: 144 | Size: 5.4 KiB |
After Width: 144 | Height: 144 | Size: 6.0 KiB |
After Width: 108 | Height: 24 | Size: 1.3 KiB |
After Width: 100 | Height: 292 | Size: 6.2 KiB |
After Width: 112 | Height: 60 | Size: 6.2 KiB |
After Width: 48 | Height: 48 | Size: 2.5 KiB |
After Width: 48 | Height: 48 | Size: 2.6 KiB |
After Width: 28 | Height: 44 | Size: 1.5 KiB |
After Width: 426 | Height: 88 | Size: 11 KiB |
After Width: 720 | Height: 400 | Size: 167 KiB |
After Width: 720 | Height: 400 | Size: 161 KiB |
After Width: 720 | Height: 400 | Size: 366 KiB |
After Width: 720 | Height: 400 | Size: 317 KiB |
After Width: 234 | Height: 88 | Size: 6.6 KiB |
After Width: 420 | Height: 88 | Size: 8.2 KiB |
After Width: 234 | Height: 88 | Size: 5.6 KiB |
After Width: 168 | Height: 168 | Size: 15 KiB |
After Width: 168 | Height: 168 | Size: 13 KiB |
After Width: 168 | Height: 168 | Size: 10 KiB |
After Width: 168 | Height: 168 | Size: 12 KiB |
After Width: 168 | Height: 168 | Size: 13 KiB |
After Width: 1500 | Height: 1102 | Size: 475 KiB |