|
|
@ -1,28 +1,29 @@ |
|
|
|
<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 class="page"> |
|
|
|
|
|
|
|
<view class="header"> |
|
|
|
<view class="flex-rowl 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> |
|
|
|
</view> |
|
|
|
<view class="content bg-fff"> |
|
|
|
<view class="label size-22 level" :style="{borderRadius:'10rpx'}"> |
|
|
|
<view class="box"> |
|
|
|
<view class="content bg-fff"> |
|
|
|
<view> |
|
|
|
<view class="label size-22"> |
|
|
|
主观题 |
|
|
|
</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 class=""> |
|
|
|
<questionCard |
|
|
|
v-for="(item, qIdx) in list" |
|
|
|
:key="`question-${qIdx}`" |
|
|
|
:index="qIdx" |
|
|
|
:data="item" |
|
|
|
v-model="item.value" |
|
|
|
></questionCard> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -35,68 +36,100 @@ |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup> |
|
|
|
import { ref, computed } from 'vue' |
|
|
|
import { onShow } from '@dcloudio/uni-app' |
|
|
|
import { usePageList } from "@/utils/pageList"; |
|
|
|
|
|
|
|
import questionCard from '../components/questionCard.vue'; |
|
|
|
|
|
|
|
// todo |
|
|
|
const { list, total, getData } = usePageList() |
|
|
|
|
|
|
|
onShow(() => { |
|
|
|
// todo: delete test data |
|
|
|
|
|
|
|
total.value = 100 |
|
|
|
|
|
|
|
list.value = [ |
|
|
|
{ |
|
|
|
question: '喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处(若服务宠物不包含猫咪可回答“略”)', |
|
|
|
value: null, |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: '喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处(若服务宠物不包含猫咪可回答“略”)', |
|
|
|
value: null, |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: '喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处(若服务宠物不包含猫咪可回答“略”)', |
|
|
|
value: null, |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: '喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处(若服务宠物不包含猫咪可回答“略”)', |
|
|
|
value: null, |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: '喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处(若服务宠物不包含猫咪可回答“略”)', |
|
|
|
value: null, |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: '喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处(若服务宠物不包含猫咪可回答“略”)', |
|
|
|
value: null, |
|
|
|
}, |
|
|
|
{ |
|
|
|
question: '喂养服务流程:如果您收到一笔喂养猫咪的订单,备注猫咪性格活泼,请问您会如何进行服务?请详细描述和上一题服务过程的不同之处(若服务宠物不包含猫咪可回答“略”)', |
|
|
|
value: null, |
|
|
|
}, |
|
|
|
] |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
const answered = computed(() => { |
|
|
|
return list.value.filter(item => item.value?.length).length |
|
|
|
}) |
|
|
|
|
|
|
|
const progress = computed(() => { |
|
|
|
return Math.floor(answered.value / total.value * 100) |
|
|
|
}) |
|
|
|
|
|
|
|
const toNext = () => { |
|
|
|
uni.navigateTo({ |
|
|
|
url: "/otherPages/authentication/examination/trainCompleted/index" |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
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; |
|
|
|
<style lang="scss" scoped> |
|
|
|
.page { |
|
|
|
padding-bottom: 144rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.p20 { |
|
|
|
padding: 20px; |
|
|
|
.header { |
|
|
|
padding: 0 36rpx; |
|
|
|
position: sticky; |
|
|
|
top: 0; |
|
|
|
background-image: linear-gradient(180deg, #FFBF60 0, #ffbf60 2%, #ffbf60 8%, #f2f2f2 90%); |
|
|
|
|
|
|
|
.progress { |
|
|
|
margin-top: 19rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.box { |
|
|
|
height: 180rpx; |
|
|
|
background-image: linear-gradient(to bottom, #ffbf60, #f2f2f2); |
|
|
|
margin-top: 31rpx; |
|
|
|
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; |
|
|
|
.content { |
|
|
|
border-radius: 20rpx; |
|
|
|
padding: 15rpx 20rpx; |
|
|
|
|
|
|
|
.label { |
|
|
|
display: inline-block; |
|
|
|
padding: 5rpx 15rpx; |
|
|
|
color: #fff; |
|
|
|
background-color: #FFBF60; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.level{ |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
</style> |