提交 7b1fc8aa authored 作者: 王鹏飞's avatar 王鹏飞

exam组件提供slot

上级 86e3e6c3
...@@ -12,6 +12,9 @@ ...@@ -12,6 +12,9 @@
<div class="left"> <div class="left">
<question-list :data="currentQuestionGroup" :index="currentPage" :disabled="disabled" :hasResult="hasResult"> <question-list :data="currentQuestionGroup" :index="currentPage" :disabled="disabled" :hasResult="hasResult">
<template #index>{{ currentPage + 1 }}/{{ questionGroups.length }}</template> <template #index>{{ currentPage + 1 }}/{{ questionGroups.length }}</template>
<template v-slot:default="data">
<slot name="question-item" v-bind="data"></slot>
</template>
</question-list> </question-list>
</div> </div>
<div class="right"> <div class="right">
...@@ -20,7 +23,9 @@ ...@@ -20,7 +23,9 @@
:list="questionGroups" :list="questionGroups"
:data="currentQuestionGroup" :data="currentQuestionGroup"
@page-change="handlePageChange" @page-change="handlePageChange"
></question-numbers> >
<slot name="students" v-bind="{ data: currentQuestionGroup }"></slot>
</question-numbers>
</div> </div>
</div> </div>
<div class="foot" id="foot-h"> <div class="foot" id="foot-h">
...@@ -155,15 +160,16 @@ export default { ...@@ -155,15 +160,16 @@ export default {
prev() { prev() {
if (this.currentPage <= 0) return if (this.currentPage <= 0) return
this.currentPage-- this.currentPage--
this.$emit('page-change', this.currentQuestionGroup, this.questionGroups) this.handlePageChange(this.currentPage)
}, },
// 下一题 // 下一题
next() { next() {
const total = this.questionGroups.length const total = this.questionGroups.length
if (this.currentPage + 1 >= total) return if (this.currentPage + 1 >= total) return
this.currentPage++ this.currentPage++
this.$emit('page-change', this.currentQuestionGroup, this.questionGroups) this.handlePageChange(this.currentPage)
}, },
// 翻页
handlePageChange(index) { handlePageChange(index) {
this.currentPage = index this.currentPage = index
this.$emit('page-change', this.currentQuestionGroup, this.questionGroups) this.$emit('page-change', this.currentQuestionGroup, this.questionGroups)
......
...@@ -14,7 +14,9 @@ ...@@ -14,7 +14,9 @@
:key="item.id" :key="item.id"
v-bind="$attrs" v-bind="$attrs"
v-on="$listeners" v-on="$listeners"
/> >
<slot v-bind="{ item, data }"></slot>
</question-list-item>
</div> </div>
</div> </div>
</template> </template>
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
:disabled="disabled" :disabled="disabled"
></el-input> ></el-input>
</template> </template>
<slot></slot>
</div> </div>
<div class="question-list-item-ft" v-if="hasResult"> <div class="question-list-item-ft" v-if="hasResult">
<h3 class="question-list-item-ft__title">答案解析</h3> <h3 class="question-list-item-ft__title">答案解析</h3>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
</ul> </ul>
</div> </div>
</div> </div>
<slot></slot>
<ul class="flag-tips" v-if="true"> <ul class="flag-tips" v-if="true">
<li> <li>
<div class="circle1"></div> <div class="circle1"></div>
......
...@@ -13,7 +13,22 @@ ...@@ -13,7 +13,22 @@
@delete="deleteQuestion" @delete="deleteQuestion"
ref="exam" ref="exam"
v-if="Object.keys(data).length" v-if="Object.keys(data).length"
></exam-card> >
<template v-slot:question-item="{ item, data }">
<div>
单个试题
</div>
{{ item }}
<div>
整页数据,也就是一组
</div>
{{ data }}
<div class="div">13123</div>
</template>
<template v-slot:students="{ data }">
{{ data }}
</template>
</exam-card>
</template> </template>
<script> <script>
import * as api from '@/api/exam.js' import * as api from '@/api/exam.js'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论