@ -1,161 +0,0 @@ | |||
.bt120 { | |||
margin-bottom: 120rpx; | |||
width: 716rpx; | |||
box-sizing: border-box; | |||
} | |||
.footer-btn { | |||
width: 100vw; | |||
height: 144rpx; | |||
background-color: #fff; | |||
display: flex; | |||
justify-content: center; | |||
position: fixed; | |||
bottom: 0; | |||
left: 0; | |||
align-items: center; | |||
.btn { | |||
font-size: 30rpx; | |||
color: #fff; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
width: 574rpx; | |||
height: 94rpx; | |||
border-radius: 94rpx; | |||
background-color: #FFBF60; | |||
} | |||
} | |||
.type { | |||
width: 190rpx; | |||
margin-bottom: 74rpx; | |||
} | |||
.form { | |||
padding: 40rpx 32rpx; | |||
box-sizing: border-box; | |||
width: 716rpx; | |||
} | |||
.title { | |||
&::before { | |||
content: ""; | |||
display: block; | |||
width: 9rpx; | |||
height: 33rpx; | |||
background-color: #FFBF60; | |||
margin-right: 7rpx; | |||
} | |||
} | |||
.mb6 { | |||
margin-bottom: 6rpx; | |||
} | |||
.containers { | |||
position: relative; | |||
.neir { | |||
padding: 47rpx 27rpx 36rpx 27rpx; | |||
border-radius: 16rpx; | |||
box-sizing: border-box; | |||
width: 716rpx; | |||
.steps { | |||
.line { | |||
width: 163rpx; | |||
height: 3rpx; | |||
background-color: #BDBDBD; | |||
margin-bottom: 30rpx; | |||
} | |||
.num { | |||
width: 50rpx; | |||
height: 50rpx; | |||
background-color: #FFBF60; | |||
border-radius: 50%; | |||
} | |||
} | |||
} | |||
.mainBg { | |||
width: 100vw; | |||
height: 442rpx; | |||
background-image: linear-gradient(to bottom, #FFBF60, #f5f5f5); | |||
} | |||
.content { | |||
top: 0; | |||
left: 0; | |||
padding: 16rpx; | |||
.logo { | |||
width: 194rpx; | |||
height: 70rpx; | |||
} | |||
.renz { | |||
image { | |||
width: 26rpx; | |||
height: 26rpx; | |||
} | |||
} | |||
} | |||
} | |||
.content_{ | |||
width: 675rpx; | |||
height: auto; | |||
background-color: pink; | |||
position: absolute; | |||
top: 410rpx; | |||
left: 15rpx; | |||
padding: 1% 3%; | |||
.top{ | |||
width: 625rpx; | |||
height: 132rpx; | |||
background-color: #FFFCF1; | |||
padding: 16rpx 26rpx; | |||
font-size: 28rpx; | |||
.img image{ | |||
width: 40rpx; | |||
height: 40rpx; | |||
border-radius: 100%; | |||
background-color: red; | |||
margin:3rpx 10rpx 0 0; | |||
} | |||
.text{ | |||
width: 40rpx; | |||
height: 40rpx; | |||
border: 1rpx solid gray; | |||
border-radius: 100%; | |||
// background-color: red; | |||
margin:3rpx 10rpx 0 0; | |||
display: grid; | |||
place-items: center; | |||
} | |||
.veo{ | |||
justify-content: space-between; | |||
.veo_ video{ | |||
width: 100rpx; | |||
height: 150rpx; | |||
background-color: red; | |||
} | |||
} | |||
} | |||
} | |||
.level{ | |||
display: flex; | |||
} |
@ -1,84 +0,0 @@ | |||
<template> | |||
<!-- <view>基本考核完成</view> --> | |||
<view class="containers po-r"> | |||
<image src="" mode="" class="mainBg"></image> | |||
<view class="w-100 po-a content"> | |||
<view class="flex-rowl"> | |||
<image src="@/static/images/ydd/logo.png" mode="" class="logo"></image> | |||
<view class="size-36 fw700 color-fff"> | |||
伴宠师认证 | |||
</view> | |||
</view> | |||
<view class="renz flex-rowl mt10"> | |||
<text class="size-28 color-fff mr24">查看认证要求,工作详情,服务酬劳扥信息</text> | |||
<image src="@/static/images/ydd/more.png" mode=""></image> | |||
</view> | |||
<view class="neir bg-fff mt24"> | |||
<view class="steps flex-between"> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
1 | |||
</view> | |||
<text class="size-22">基本考核</text> | |||
</view> | |||
<view class="line"></view> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
2 | |||
</view> | |||
<text class="size-22">培训考核</text> | |||
</view> | |||
<view class="line"></view> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
3 | |||
</view> | |||
<text class="size-22">最终准备</text> | |||
</view> | |||
</view> | |||
<view class="color-ffb size-22 mt32"> | |||
为保证喂养员认证顺利进行,请认真填写并确保信息的真实性 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="content_ box-size" :style="{borderRadius:'16rpx'}"> | |||
<view class="top box-size" :style="{borderRadius:'16rpx'}"> | |||
<view class="level"> | |||
<view class="img"> | |||
<image src="" mode=""></image> | |||
</view> | |||
基本考核答题已完成 | |||
</view> | |||
<view class="level"> | |||
<view class="text"> | |||
! | |||
</view> | |||
进行培训考核的答题前请认真观看下面的视频和资料! | |||
</view> | |||
</view> | |||
<view class=""> | |||
<view class="form-title"> | |||
平台&服务介绍 | |||
</view> | |||
<view class="level veo"> | |||
<view class="veo_"> | |||
<video src=""></video> | |||
猫妈狗爸平台介绍 | |||
</view> | |||
<view class=""> | |||
<video src=""></video> | |||
喂养学习视频 | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
</script> | |||
<style scoped lang="scss"> | |||
@import"index.scss"; | |||
</style> |
@ -0,0 +1,71 @@ | |||
<template> | |||
<view class="mt32 question__view" :class="[props.mode]"> | |||
<view class="size-28 mb20 question"> | |||
{{ `${props.index + 1}、${props.data.question}` }} | |||
</view> | |||
<view class="size-28 option" | |||
v-for="(option, oIdx) in props.data.options" | |||
:key="`${props.index}-option-${oIdx}`" | |||
:class="[props.modelValue === option.value ? 'is-selected' : '']" | |||
@click="onClick(option.value)" | |||
> | |||
{{ `${String.fromCharCode(65 + oIdx)}、${option.label}` }} | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
const props = defineProps({ | |||
index: { | |||
type: Number, | |||
default: null, | |||
}, | |||
data: { | |||
type: Object, | |||
default() { | |||
return {} | |||
} | |||
}, | |||
modelValue: { | |||
type: String | Number, | |||
default: null, | |||
}, | |||
mode: { | |||
type: String, | |||
default: 'select', // select | display | |||
} | |||
}) | |||
const emit = defineEmits(['update:modelValue']) | |||
const onClick = (val) => { | |||
emit('update:modelValue', val) | |||
} | |||
</script> | |||
<style lang="scss" scoped> | |||
.question { | |||
color: #000000; | |||
} | |||
.option { | |||
background-color: #F3F3F3; | |||
color: #707070; | |||
line-height: 37rpx; | |||
padding: 23rpx; | |||
border-radius: 28rpx; | |||
& + & { | |||
margin-top: 20rpx; | |||
} | |||
} | |||
.question__view.select { | |||
.option.is-selected { | |||
background-color: rgba($color: #FFBF60, $alpha: 0.22); | |||
color: #FFBF60; | |||
} | |||
} | |||
</style> |
@ -0,0 +1,94 @@ | |||
<template> | |||
<view> | |||
<view class="flex-rowl"> | |||
<image src="@/static/images/ydd/logo.png" mode="" class="logo"></image> | |||
<view class="size-36 fw700 color-fff"> | |||
伴宠师认证 | |||
</view> | |||
</view> | |||
<view class="renz flex-rowl mt10"> | |||
<text class="size-28 color-fff mr24">查看认证要求,工作详情,服务酬劳扥信息</text> | |||
<image src="@/static/images/ydd/more.png" mode=""></image> | |||
</view> | |||
<view class="neir bg-fff mt24"> | |||
<view class="steps flex-between"> | |||
<template v-for="(item, index) in steps" :key="`step-${index}`"> | |||
<view v-if="index > 0" class="line" :class="[index < props.step ? 'is-active' : '']"></view> | |||
<view class="step flex-colc" :class="[index < props.step ? 'is-active' : '']"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
{{ index + 1 }} | |||
</view> | |||
<text class="size-22 desc">{{ item }}</text> | |||
</view> | |||
</template> | |||
</view> | |||
<view class="color-ffb size-22 mt32"> | |||
为保证喂养员认证顺利进行,请认真填写并确保信息的真实性 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
import { reactive } from 'vue' | |||
const props = defineProps({ | |||
step: { | |||
type: Number, | |||
default: 0, | |||
} | |||
}) | |||
const steps = reactive(['基本考核', '培训考核', '最终准备']) | |||
</script> | |||
<style lang="scss" scoped> | |||
.logo { | |||
width: 194rpx; | |||
height: 70rpx; | |||
} | |||
.renz { | |||
image { | |||
width: 26rpx; | |||
height: 26rpx; | |||
} | |||
} | |||
.neir { | |||
padding: 47rpx 27rpx 36rpx 27rpx; | |||
border-radius: 16rpx; | |||
box-sizing: border-box; | |||
width: 716rpx; | |||
.steps { | |||
.line { | |||
width: 163rpx; | |||
height: 3rpx; | |||
background-color: #BDBDBD; | |||
margin-bottom: 30rpx; | |||
margin: 0 26rpx; | |||
} | |||
.num { | |||
width: 50rpx; | |||
height: 50rpx; | |||
background-color: #BDBDBD; | |||
border-radius: 50%; | |||
margin-bottom: 7rpx; | |||
} | |||
.desc { | |||
white-space: nowrap; | |||
} | |||
.line.is-active, | |||
.step.is-active .num { | |||
background-color: #FFBF60; | |||
} | |||
} | |||
} | |||
</style> |
@ -1,85 +1,201 @@ | |||
<template> | |||
<view class="box"> | |||
<view class=""> | |||
<view class="color-fff size-28"> | |||
答题进度 10/23 | |||
</view> | |||
<view class="step mt20 mb32"> | |||
<view class="in"> | |||
<view class="page"> | |||
</view> | |||
<view class="header"> | |||
<view class="flex-rowc color-fff size-28 title"> | |||
{{ `答题进度 ${answered}/${total}` }} | |||
</view> | |||
<up-line-progress class="progress" :percentage="progress" activeColor="#FFBF60" inactiveColor="#D9D9D9" height="16rpx" :showText="false"></up-line-progress> | |||
</view> | |||
<view class="content bg-fff"> | |||
<view class="label size-22"> | |||
选择题 | |||
</view> | |||
<view class=""> | |||
<view class="size-28 mt32 mb20"> | |||
1、猫咪每天在地上走路,时不时还会打滚, 身上是很不干净的,最好每个星期洗次澡 | |||
</view> | |||
<view class="size-28 color-777 p20 daan"> | |||
A、对 | |||
<view class="box"> | |||
<view class="content bg-fff"> | |||
<view> | |||
<view class="label size-22"> | |||
选择题 | |||
</view> | |||
</view> | |||
<view class="size-28 color-777 p20 daan active mt24"> | |||
B、错 | |||
<view class=""> | |||
<questionCard | |||
v-for="(item, qIdx) in list" | |||
:key="`question-${qIdx}`" | |||
:index="qIdx" | |||
:data="item" | |||
v-model="item.value" | |||
></questionCard> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="footer-btn"> | |||
<view class="btn"> | |||
提交 | |||
<view class="footer-btn"> | |||
<view class="btn" @click="toNext"> | |||
提交 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
<script setup> | |||
import { ref, computed } from 'vue' | |||
import { onShow } from '@dcloudio/uni-app' | |||
import { usePageList } from "@/utils/pageList"; | |||
import questionCard from '../components/questionCard.vue'; | |||
const total = ref(0) | |||
// todo | |||
const { list, getData } = usePageList() | |||
onShow(() => { | |||
// todo: delete test data | |||
total.value = 100 | |||
list.value = [ | |||
{ | |||
question: '猫咪每天在地上走路,时不时还会打滚,身上是很不干净的,最好每个星期洗次澡', | |||
options: [ | |||
{ | |||
label: '对', | |||
value: 0, | |||
}, | |||
{ | |||
label: '错', | |||
value: 1, | |||
}, | |||
], | |||
value: null, | |||
}, | |||
{ | |||
question: '当狗狗出现乱拉乱尿或者捣乱拆家等反映时,您会如何处理?', | |||
options: [ | |||
{ | |||
label: '暴力制止,根据情况是否严重来判断下手轻重,让狗狗知道这样做会受到惩罚', | |||
value: 0, | |||
}, | |||
{ | |||
label: '奖罚分明,制止后耐心引导,直到狗狗做出正确的行为,并立马给出奖励', | |||
value: 1, | |||
}, | |||
{ | |||
label: '狗狗也不是故意的,也不会造成什么很大的影响,默默打扫好就算了吧', | |||
value: 2, | |||
}, | |||
], | |||
value: null, | |||
}, | |||
{ | |||
question: '3、狗狗和猫咪一样是肉食性动物,最好可以纯肉喂养,对狗狗的身心健康有很大好处', | |||
options: [ | |||
{ | |||
label: '对', | |||
value: 0, | |||
}, | |||
{ | |||
label: '错', | |||
value: 1, | |||
}, | |||
], | |||
value: null, | |||
}, | |||
{ | |||
question: '猫咪每天在地上走路,时不时还会打滚,身上是很不干净的,最好每个星期洗次澡', | |||
options: [ | |||
{ | |||
label: '对', | |||
value: 0, | |||
}, | |||
{ | |||
label: '错', | |||
value: 1, | |||
}, | |||
], | |||
value: null, | |||
}, | |||
{ | |||
question: '当狗狗出现乱拉乱尿或者捣乱拆家等反映时,您会如何处理?', | |||
options: [ | |||
{ | |||
label: '暴力制止,根据情况是否严重来判断下手轻重,让狗狗知道这样做会受到惩罚', | |||
value: 0, | |||
}, | |||
{ | |||
label: '奖罚分明,制止后耐心引导,直到狗狗做出正确的行为,并立马给出奖励', | |||
value: 1, | |||
}, | |||
{ | |||
label: '狗狗也不是故意的,也不会造成什么很大的影响,默默打扫好就算了吧', | |||
value: 2, | |||
}, | |||
], | |||
value: null, | |||
}, | |||
{ | |||
question: '3、狗狗和猫咪一样是肉食性动物,最好可以纯肉喂养,对狗狗的身心健康有很大好处', | |||
options: [ | |||
{ | |||
label: '对', | |||
value: 0, | |||
}, | |||
{ | |||
label: '错', | |||
value: 1, | |||
}, | |||
], | |||
value: null, | |||
}, | |||
] | |||
}) | |||
const answered = computed(() => { | |||
return list.value.filter(item => item.value !== null).length | |||
}) | |||
const progress = computed(() => { | |||
return Math.floor(answered.value / total.value * 100) | |||
}) | |||
const toNext = () => { | |||
uni.navigateTo({ | |||
url: "/otherPages/authentication/examination/baseCompleted" | |||
}) | |||
} | |||
</script> | |||
<style lang="scss" scoped> | |||
.active { | |||
color: #FFBF60; | |||
background-color: rgb(255, 241, 240); | |||
.page { | |||
padding-bottom: 144rpx; | |||
} | |||
.daan { | |||
background-color: #F3F3F3; | |||
border-radius: 50rpx; | |||
} | |||
.header { | |||
padding: 0 36rpx; | |||
position: sticky; | |||
top: 0; | |||
background-image: linear-gradient(180deg, #FFBF60 0, #ffbf60 2%, #ffbf60 8%, #f2f2f2 90%); | |||
.p20 { | |||
padding: 20px; | |||
.progress { | |||
margin-top: 19rpx; | |||
} | |||
} | |||
.box { | |||
background-image: linear-gradient(to bottom, #ffbf60, #f2f2f2); | |||
margin-top: 31rpx; | |||
padding: 16rpx; | |||
.step { | |||
width: 720rpx; | |||
height: 32rpx; | |||
border-radius: 32rpx; | |||
background-color: #D9D9D9; | |||
.in { | |||
width: 50%; | |||
height: 32rpx; | |||
background-color: #ffbf60; | |||
border-radius: 32rpx; | |||
} | |||
} | |||
} | |||
.content { | |||
border-radius: 20rpx; | |||
padding: 15rpx 20rpx; | |||
.content { | |||
border-radius: 20rpx; | |||
padding: 15rpx 20rpx; | |||
.label { | |||
padding: 5rpx 15rpx; | |||
color: #fff; | |||
background-color: #FFBF60; | |||
.label { | |||
display: inline-block; | |||
padding: 5rpx 15rpx; | |||
color: #fff; | |||
background-color: #FFBF60; | |||
} | |||
} | |||
} | |||
</style> |
@ -0,0 +1,139 @@ | |||
<template> | |||
<!-- <view>基本考核完成</view> --> | |||
<view class="page po-r"> | |||
<image src="" mode="" class="mainBg"></image> | |||
<view class="w-100 po-a content"> | |||
<stepProgress :step="2"></stepProgress> | |||
<view class="info"> | |||
<view class="top"> | |||
<view class="top-title"> | |||
<up-icon class="icon" name="checkmark-circle-fill" color="#FFBF60" size="34rpx"></up-icon> | |||
<text>基本考核答题已完成</text> | |||
</view> | |||
<view class="top-desc"> | |||
<up-icon class="icon" name="error-circle" color="#707070" size="27rpx"></up-icon> | |||
<text>进行培训考核的答题前请认真观看下面的视频和资料!</text> | |||
</view> | |||
</view> | |||
<view class="info-item"> | |||
<view class="info-item-title"> | |||
平台&服务介绍 | |||
</view> | |||
<view class="flex-between"> | |||
<view class="veo_"> | |||
<video src=""></video> | |||
猫妈狗爸平台介绍 | |||
</view> | |||
<view class=""> | |||
<video src=""></video> | |||
喂养学习视频 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="info-item"> | |||
<view class="info-item-title"> | |||
服务培训 | |||
</view> | |||
</view> | |||
<view class="footer-btn"> | |||
<view class="btn" @click="toNext"> | |||
进入培训考核 | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
import stepProgress from '../components/stepProgress.vue'; | |||
const toNext = () => { | |||
uni.navigateTo({ | |||
url: "/otherPages/authentication/examination/train" | |||
}) | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.page { | |||
position: relative; | |||
.mainBg { | |||
width: 100vw; | |||
height: 442rpx; | |||
background-image: linear-gradient(to bottom, #FFBF60, #f5f5f5); | |||
} | |||
.content { | |||
top: 0; | |||
left: 0; | |||
padding: 16rpx; | |||
} | |||
} | |||
.info{ | |||
box-sizing: border-box; | |||
width: 100%; | |||
height: auto; | |||
background-color: #FFFFFF; | |||
padding: 22rpx 20rpx 38rpx 20rpx; | |||
border-radius: 16rpx; | |||
.top{ | |||
width: 100%; | |||
background-color: #FFFCF1; | |||
padding: 19rpx 26rpx; | |||
border-radius: 16rpx; | |||
color: #707070; | |||
&-title { | |||
font-size: 28rpx; | |||
} | |||
&-desc { | |||
margin-top: 22rpx; | |||
font-size: 22rpx; | |||
} | |||
} | |||
&-item { | |||
&-title { | |||
&::before { | |||
content: ""; | |||
display: block; | |||
width: 9rpx; | |||
height: 33rpx; | |||
background-color: #FFBF60; | |||
margin-right: 7rpx; | |||
} | |||
} | |||
} | |||
} | |||
.footer-btn { | |||
width: 100vw; | |||
height: 144rpx; | |||
background-color: #fff; | |||
display: flex; | |||
justify-content: center; | |||
position: fixed; | |||
bottom: 0; | |||
left: 0; | |||
align-items: center; | |||
.btn { | |||
font-size: 30rpx; | |||
color: #fff; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
width: 574rpx; | |||
height: 94rpx; | |||
border-radius: 94rpx; | |||
background-color: #FFBF60; | |||
} | |||
} | |||
</style> |
@ -1,109 +0,0 @@ | |||
<template> | |||
<!-- <view>伴宠师认证</view> --> | |||
<view class="box"> | |||
<view class="content bg-fff"> | |||
<view class=""> | |||
<view class="label size-22 level" :style="{borderRadius:'10rpx'}"> | |||
选择题 | |||
</view> | |||
<view class=""> | |||
<view class="size-28 mt32 mb20"> | |||
1、猫咪每天在地上走路,时不时还会打滚, 身上是很不干净的,最好每个星期洗次澡 | |||
</view> | |||
<view class="size-28 color-777 p20 daan mb24"> | |||
A、对 | |||
</view> | |||
<view class="size-28 color-777 p20 daan active mb24"> | |||
B、错 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="mt60"> | |||
<view class="label size-22 level" :style="{borderRadius:'10rpx'}"> | |||
主观题 | |||
</view> | |||
<view class=""> | |||
<view class="size-28 mt32 mb20"> | |||
1、喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格怕生,请问您会如何进行服务?请详细描述您的全部服务流程(若服务宠物不包含猫咪可回答“略”) | |||
</view> | |||
<view class="size-28 color-777 p20 daan"> | |||
<textarea value="" placeholder="" /> | |||
<text :style="{color:'#FF2A2A'}">字数低于700字,不予合格</text> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="footer-btn buttom "> | |||
<view class="size-22 color-777 "> | |||
剩余考试机会:<text :style="{color:'#FF8DC6'}">3</text>次 | |||
</view> | |||
<view class="btn"> | |||
重新考试 | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
</script> | |||
<style lang="scss" scoped> | |||
.active { | |||
color: #FFBF60; | |||
background-color: rgb(255, 241, 240); | |||
} | |||
.daan { | |||
background-color: #F3F3F3; | |||
border-radius: 50rpx; | |||
} | |||
.p20 { | |||
padding: 20px; | |||
} | |||
.box { | |||
// background-image: linear-gradient(to bottom, #ffbf60, #f2f2f2); | |||
padding: 16rpx; | |||
.step { | |||
width: 720rpx; | |||
height: 32rpx; | |||
border-radius: 32rpx; | |||
background-color: #D9D9D9; | |||
.in { | |||
width: 50%; | |||
height: 32rpx; | |||
background-color: #ffbf60; | |||
border-radius: 32rpx; | |||
} | |||
} | |||
} | |||
.content { | |||
border-radius: 20rpx; | |||
padding: 15rpx 20rpx; | |||
.label { | |||
width: 86rpx; | |||
padding: 5rpx 15rpx; | |||
color: #fff; | |||
background-color: #FFBF60; | |||
justify-content: center; | |||
} | |||
} | |||
.level { | |||
display: flex; | |||
} | |||
.subjectivity { | |||
height: auto; | |||
} | |||
.buttom { | |||
display: grid; | |||
place-items: center; | |||
} | |||
</style> |
@ -0,0 +1,142 @@ | |||
<template> | |||
<!-- <view>伴宠师认证</view> --> | |||
<view> | |||
<view class="box"> | |||
<view class="content bg-fff"> | |||
<view class=""> | |||
<view class="label size-22 level" :style="{borderRadius:'10rpx'}"> | |||
选择题 | |||
</view> | |||
<view class=""> | |||
<view class="size-28 mt32 mb20"> | |||
1、猫咪每天在地上走路,时不时还会打滚, 身上是很不干净的,最好每个星期洗次澡 | |||
</view> | |||
<view class="size-28 color-777 p20 daan mb24"> | |||
A、对 | |||
</view> | |||
<view class="size-28 color-777 p20 daan active mb24"> | |||
B、错 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="mt60"> | |||
<view class="label size-22 level" :style="{borderRadius:'10rpx'}"> | |||
主观题 | |||
</view> | |||
<view class=""> | |||
<view class="size-28 mt32 mb20"> | |||
1、喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格怕生,请问您会如何进行服务?请详细描述您的全部服务流程(若服务宠物不包含猫咪可回答“略”) | |||
</view> | |||
<view class="size-28 color-777 p20 daan"> | |||
<textarea value="" placeholder="" /> | |||
<text :style="{color:'#FF2A2A'}">字数低于700字,不予合格</text> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="footer-btn buttom "> | |||
<view class="size-22 color-777 tips-rest"> | |||
<!-- todo --> | |||
剩余考试机会:<text class="highlight">{{ restTimes }}</text>次 | |||
</view> | |||
<view class="btn" @click="onClick"> | |||
重新考试 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
import { ref } from 'vue' | |||
import { onShow } from '@dcloudio/uni-app' | |||
const restTimes = ref() | |||
onShow(() => { | |||
// todo: fetch | |||
restTimes.value = 3 | |||
}) | |||
const onClick = () => { | |||
uni.reLaunch({ | |||
url: "/otherPages/authentication/examination/start" | |||
// todo: check | |||
// url: "/otherPages/authentication/list/index" | |||
}) | |||
} | |||
</script> | |||
<style lang="scss" scoped> | |||
.active { | |||
color: #FFBF60; | |||
background-color: rgb(255, 241, 240); | |||
} | |||
.daan { | |||
background-color: #F3F3F3; | |||
border-radius: 50rpx; | |||
} | |||
.p20 { | |||
padding: 20px; | |||
} | |||
.box { | |||
// background-image: linear-gradient(to bottom, #ffbf60, #f2f2f2); | |||
padding: 16rpx; | |||
.step { | |||
width: 720rpx; | |||
height: 32rpx; | |||
border-radius: 32rpx; | |||
background-color: #D9D9D9; | |||
.in { | |||
width: 50%; | |||
height: 32rpx; | |||
background-color: #ffbf60; | |||
border-radius: 32rpx; | |||
} | |||
} | |||
} | |||
.content { | |||
border-radius: 20rpx; | |||
padding: 15rpx 20rpx; | |||
.label { | |||
width: 86rpx; | |||
padding: 5rpx 15rpx; | |||
color: #fff; | |||
background-color: #FFBF60; | |||
justify-content: center; | |||
} | |||
} | |||
.level { | |||
display: flex; | |||
} | |||
.subjectivity { | |||
height: auto; | |||
} | |||
.buttom { | |||
display: grid; | |||
place-items: center; | |||
} | |||
.tips { | |||
&-rest { | |||
color: #707070; | |||
font-size: 22rpx; | |||
margin: 9rpx 0 13rpx 0; | |||
.highlight { | |||
color: #FF8DC6; | |||
} | |||
} | |||
} | |||
</style> |
@ -0,0 +1,102 @@ | |||
<template> | |||
<!-- <view>培训考核</view> --> | |||
<view> | |||
<view class="box"> | |||
<view class=""> | |||
<view class="color-fff size-28"> | |||
答题进度 2/5 | |||
</view> | |||
<view class="step mt20 mb32"> | |||
<view class="in"> | |||
</view> | |||
</view> | |||
<view class="content bg-fff"> | |||
<view class="label size-22 level" :style="{borderRadius:'10rpx'}"> | |||
主观题 | |||
</view> | |||
<view class=""> | |||
<view class="size-28 mt32 mb20"> | |||
1、喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格怕生,请问您会如何进行服务?请详细描述您的全部服务流程(若服务宠物不包含猫咪可回答“略” | |||
</view> | |||
<view class="size-28 color-777 p20 daan"> | |||
<textarea value="" placeholder="请输入您的答案,不得低于700个字" /> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="footer-btn buttom "> | |||
<view class="btn" @click="toNext"> | |||
提交 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
const toNext = () => { | |||
uni.navigateTo({ | |||
url: "/otherPages/authentication/examination/trainCompleted/index" | |||
}) | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.active { | |||
color: #FFBF60; | |||
background-color: rgb(255, 241, 240); | |||
} | |||
.daan { | |||
background-color: #F3F3F3; | |||
border-radius: 50rpx; | |||
} | |||
.p20 { | |||
padding: 20px; | |||
} | |||
.box { | |||
height: 180rpx; | |||
background-image: linear-gradient(to bottom, #ffbf60, #f2f2f2); | |||
padding: 16rpx; | |||
position: absolute; | |||
.step { | |||
width: 720rpx; | |||
height: 15rpx; | |||
border-radius: 32rpx; | |||
background-color: #D9D9D9; | |||
.in { | |||
width: 50%; | |||
height: 15rpx; | |||
background-color: #ffbf60; | |||
border-radius: 32rpx; | |||
} | |||
} | |||
} | |||
.content { | |||
border-radius: 20rpx; | |||
padding: 15rpx 20rpx; | |||
position: relative; | |||
bottom: 0; | |||
left: 0; | |||
.label { | |||
width: 80rpx; | |||
justify-content: center; | |||
padding: 5rpx 15rpx; | |||
color: #fff; | |||
background-color: #FFBF60; | |||
} | |||
} | |||
.level{ | |||
display: flex; | |||
} | |||
</style> |
@ -0,0 +1,57 @@ | |||
<template> | |||
<view class="content_"> | |||
<view class="img_"> | |||
<image src="../../static/examination/unqualified.png" mode="" style="width: 310rpx;height: 311rpx;"></image> | |||
</view> | |||
<view class="buttom" :style="{borderRadius:'41rpx'}" @click="onClick"> | |||
查看错题原因 | |||
<!-- todo: icon-arrow --> | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
const onClick = () => { | |||
uni.navigateTo({ | |||
url: "/otherPages/authentication/examination/errorDetail" | |||
}) | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.content_{ | |||
font-size: 28rpx; | |||
color: #707070; | |||
.img_{ | |||
width: 310rpx; | |||
height: 311rpx; | |||
margin: 80rpx 0 0 190rpx; | |||
} | |||
.text{ | |||
width: 420rpx; | |||
height: 74rpx; | |||
justify-content: center; | |||
margin: 30rpx 0 0 140rpx; | |||
} | |||
.buttom{ | |||
width: 594rpx; | |||
height: 94rpx; | |||
display: grid; | |||
place-items: center; | |||
background-color: #FFBF60; | |||
margin: 250rpx 0 0 40rpx; | |||
font-size: 30rpx; | |||
color: #FFFFFF; | |||
} | |||
} | |||
.level{ | |||
display: flex; | |||
} | |||
</style> |
@ -0,0 +1,62 @@ | |||
<template> | |||
<view class="content_ box-size"> | |||
<view class="img_"> | |||
<image src="../../static/examination/approved.png" mode="" style="width: 310rpx;height: 311rpx;"></image> | |||
</view> | |||
<view class="text_ level"> | |||
审核留言:-您好呀,感谢您的认真作答~从您的回答中我们感受到了您对宠物的用心,相信您可以胜任宠物喂养员这份小小的工作!希望您能在猫妈狗爸给更多毛孩子带去您的关爱! | |||
</view> | |||
<view class="buttom" :style="{borderRadius:'41rpx'}" @click="onClick"> | |||
下一步 | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
const onClick = () => { | |||
uni.navigateTo({ | |||
url: "/otherPages/authentication/examination/end" | |||
}) | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.content_{ | |||
font-size: 28rpx; | |||
color: #707070; | |||
.img_{ | |||
width: 310rpx; | |||
height: 311rpx; | |||
margin: 80rpx 0 0 190rpx; | |||
} | |||
.text_{ | |||
width: 674rpx; | |||
height: 74rpx; | |||
justify-content: center; | |||
margin: 30rpx 0 0 10rpx; | |||
font-size: 22rpx !important; | |||
} | |||
.buttom{ | |||
width: 594rpx; | |||
height: 94rpx; | |||
display: grid; | |||
place-items: center; | |||
background-color: #FFBF60; | |||
margin: 250rpx 0 0 40rpx; | |||
font-size: 30rpx; | |||
color: #FFFFFF; | |||
} | |||
} | |||
.level{ | |||
display: flex; | |||
} | |||
</style> |
@ -0,0 +1,60 @@ | |||
<template> | |||
<view class="content_"> | |||
<view class="img_"> | |||
<image src="../../static/examination/examine.png" mode="" style="width: 310rpx;height: 311rpx;"></image> | |||
<image src="/static/images/ydd/examine.png" mode="" style="width: 310rpx;height: 311rpx;"></image> | |||
</view> | |||
<view class="text level"> | |||
平台会在三个工作日内完成审核,请及时查看审核结果! | |||
</view> | |||
<view class="buttom" :style="{borderRadius:'41rpx'}" @click="onClick"> | |||
我知道了 | |||
</view> | |||
</view> | |||
</template> | |||
<script setup> | |||
const onClick = () => { | |||
// todo | |||
} | |||
</script> | |||
<style scoped lang="scss"> | |||
.content_{ | |||
font-size: 28rpx; | |||
color: #707070; | |||
.img_{ | |||
width: 310rpx; | |||
height: 311rpx; | |||
margin: 80rpx 0 0 190rpx; | |||
} | |||
.text{ | |||
width: 420rpx; | |||
height: 74rpx; | |||
justify-content: center; | |||
margin: 30rpx 0 0 140rpx; | |||
} | |||
.buttom{ | |||
width: 594rpx; | |||
height: 94rpx; | |||
display: grid; | |||
place-items: center; | |||
background-color: #FFBF60; | |||
margin: 250rpx 0 0 40rpx; | |||
font-size: 30rpx; | |||
color: #FFFFFF; | |||
} | |||
} | |||
.level{ | |||
display: flex; | |||
} | |||
</style> |
@ -1,64 +0,0 @@ | |||
<template> | |||
<!-- <view>伴宠师认证</view> --> | |||
<view class="containers po-r"> | |||
<image src="" mode="" class="mainBg"></image> | |||
<view class="w-100 po-a content"> | |||
<view class="flex-rowl"> | |||
<image src="@/static/images/ydd/logo.png" mode="" class="logo"></image> | |||
<view class="size-36 fw700 color-fff"> | |||
伴宠师认证 | |||
</view> | |||
</view> | |||
<view class="renz flex-rowl mt10"> | |||
<text class="size-28 color-fff mr24">查看认证要求,工作详情,服务酬劳扥信息</text> | |||
<image src="@/static/images/ydd/more.png" mode=""></image> | |||
</view> | |||
<view class="neir bg-fff mt24"> | |||
<view class="steps flex-between"> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
1 | |||
</view> | |||
<text class="size-22">基本考核</text> | |||
</view> | |||
<view class="line"></view> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
2 | |||
</view> | |||
<text class="size-22">培训考核</text> | |||
</view> | |||
<view class="line"></view> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
3 | |||
</view> | |||
<text class="size-22">最终准备</text> | |||
</view> | |||
</view> | |||
<view class="color-ffb size-22 mt32"> | |||
为保证喂养员认证顺利进行,请认真填写并确保信息的真实性 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="content_ box-size" :style="{borderRadius:'16rpx'}"> | |||
<view class="img_"> | |||
<image src="/static/images/ydd/approved.png" mode="" style="width: 310rpx;height: 311rpx;"></image> | |||
</view> | |||
<view class="text_ level"> | |||
审核留言:-您好呀,感谢您的认真作答~从您的回答中我们感受到了您对宠物的用心,相信您可以胜任宠物喂养员这份小小的工作!希望您能在猫妈狗爸给更多毛孩子带去您的关爱! | |||
</view> | |||
<view class="buttom" :style="{borderRadius:'41rpx'}"> | |||
下一步 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
</script> | |||
<style scoped lang="scss"> | |||
@import"detail.scss"; | |||
</style> |
@ -1,64 +0,0 @@ | |||
<template> | |||
<!-- <view>伴宠师认证</view> --> | |||
<view class="containers po-r"> | |||
<image src="" mode="" class="mainBg"></image> | |||
<view class="w-100 po-a content"> | |||
<view class="flex-rowl"> | |||
<image src="@/static/images/ydd/logo.png" mode="" class="logo"></image> | |||
<view class="size-36 fw700 color-fff"> | |||
伴宠师认证 | |||
</view> | |||
</view> | |||
<view class="renz flex-rowl mt10"> | |||
<text class="size-28 color-fff mr24">查看认证要求,工作详情,服务酬劳扥信息</text> | |||
<image src="@/static/images/ydd/more.png" mode=""></image> | |||
</view> | |||
<view class="neir bg-fff mt24"> | |||
<view class="steps flex-between"> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
1 | |||
</view> | |||
<text class="size-22">基本考核</text> | |||
</view> | |||
<view class="line"></view> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
2 | |||
</view> | |||
<text class="size-22">培训考核</text> | |||
</view> | |||
<view class="line"></view> | |||
<view class="step flex-colc"> | |||
<view class="num mb6 flex-rowc size-26 color-fff"> | |||
3 | |||
</view> | |||
<text class="size-22">最终准备</text> | |||
</view> | |||
</view> | |||
<view class="color-ffb size-22 mt32"> | |||
为保证喂养员认证顺利进行,请认真填写并确保信息的真实性 | |||
</view> | |||
</view> | |||
</view> | |||
<view class="content_ box-size" :style="{borderRadius:'16rpx'}"> | |||
<view class="img_"> | |||
<image src="/static/images/ydd/examine.png" mode="" style="width: 310rpx;height: 311rpx;"></image> | |||
</view> | |||
<view class="text level"> | |||
平台会在三个工作日内完成审核,请及时查看审核结果! | |||
</view> | |||
<view class="buttom" :style="{borderRadius:'41rpx'}"> | |||
我知道了 | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
</script> | |||
<style scoped lang="scss"> | |||
@import"detail.scss"; | |||
</style> |
@ -1,54 +0,0 @@ | |||
.active { | |||
color: #FFBF60; | |||
background-color: rgb(255, 241, 240); | |||
} | |||
.daan { | |||
background-color: #F3F3F3; | |||
border-radius: 50rpx; | |||
} | |||
.p20 { | |||
padding: 20px; | |||
} | |||
.box { | |||
height: 180rpx; | |||
background-image: linear-gradient(to bottom, #ffbf60, #f2f2f2); | |||
padding: 16rpx; | |||
position: absolute; | |||
.step { | |||
width: 720rpx; | |||
height: 15rpx; | |||
border-radius: 32rpx; | |||
background-color: #D9D9D9; | |||
.in { | |||
width: 50%; | |||
height: 15rpx; | |||
background-color: #ffbf60; | |||
border-radius: 32rpx; | |||
} | |||
} | |||
} | |||
.content { | |||
border-radius: 20rpx; | |||
padding: 15rpx 20rpx; | |||
position: relative; | |||
bottom: 0; | |||
left: 0; | |||
.label { | |||
width: 80rpx; | |||
justify-content: center; | |||
padding: 5rpx 15rpx; | |||
color: #fff; | |||
background-color: #FFBF60; | |||
} | |||
} | |||
.level{ | |||
display: flex; | |||
} |
@ -1,40 +0,0 @@ | |||
<template> | |||
<!-- <view>培训考核</view> --> | |||
<view class="box"> | |||
<view class=""> | |||
<view class="color-fff size-28"> | |||
答题进度 2/5 | |||
</view> | |||
<view class="step mt20 mb32"> | |||
<view class="in"> | |||
</view> | |||
</view> | |||
<view class="content bg-fff"> | |||
<view class="label size-22 level" :style="{borderRadius:'10rpx'}"> | |||
主观题 | |||
</view> | |||
<view class=""> | |||
<view class="size-28 mt32 mb20"> | |||
1、喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格怕生,请问您会如何进行服务?请详细描述您的全部服务流程(若服务宠物不包含猫咪可回答“略” | |||
</view> | |||
<view class="size-28 color-777 p20 daan"> | |||
<textarea value="" placeholder="请输入您的答案,不得低于700个字" /> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="footer-btn buttom "> | |||
<view class="btn"> | |||
提交 | |||
</view> | |||
</view> | |||
</template> | |||
<script> | |||
</script> | |||
<style scoped lang="scss"> | |||
@import"index.scss"; | |||
</style> |
@ -0,0 +1,72 @@ | |||
import { ref, reactive } from 'vue' | |||
import { onShow, onReachBottom } from '@dcloudio/uni-app' | |||
export const usePageList = (apiFun, defaultQueryParams) => { | |||
const queryParams = reactive({ | |||
pageNo: 1, | |||
pageSize: 10, | |||
...defaultQueryParams | |||
}) | |||
const list = ref([]) | |||
const total = ref(0) | |||
const fetchData = async () => { | |||
try { | |||
const res = await apiFun(queryParams) | |||
if (res.code === 200) { | |||
return res.data | |||
} | |||
return { list: [], total: 0 } | |||
} catch (err) { | |||
return { list: [], total: 0 } | |||
} | |||
} | |||
const getData = async () => { | |||
queryParams.pageNo = 1 | |||
const { list: _list, total: _total } = await fetchData() | |||
list.value = _list | |||
total.value = _total | |||
} | |||
const getMore = async () => { | |||
if (list.value.length >= total.value) { | |||
return | |||
} | |||
queryParams.pageNo++ | |||
const { list: _list } = await fetchData() | |||
list.value = list.value.concat(_list) | |||
} | |||
onShow(() => { | |||
// todo fetch | |||
console.log('--onShow') | |||
return | |||
getData() | |||
}) | |||
onReachBottom(() => { | |||
// todo fetch | |||
console.log('--onReachBottom') | |||
return | |||
getMore() | |||
}) | |||
return { | |||
queryParams, | |||
list, | |||
total, | |||
getData, | |||
getMore, | |||
} | |||
} |