|
@@ -3,7 +3,7 @@
|
|
|
<div class="fill-form-preview">
|
|
|
<div class="stem">
|
|
|
<span class="question-number" :style="{ fontSize: data.property.stem_question_number_font_size }">
|
|
|
- {{ data.property.question_number }}.
|
|
|
+ {{ questionNumberEndIsBracket(data.property.question_number) }}
|
|
|
</span>
|
|
|
<span v-html="sanitizeHTML(data.stem)"></span>
|
|
|
</div>
|
|
@@ -17,12 +17,14 @@
|
|
|
<div class="form" :style="{ width: `${data.property.form_width}px` }">
|
|
|
<div class="form-header">
|
|
|
<div
|
|
|
- v-for="({ text, mark, width }, i) in data.option_header_list"
|
|
|
+ v-for="{ text, mark, width } in data.option_header_list"
|
|
|
:key="mark"
|
|
|
- :style="{ width: `${width}%` }"
|
|
|
+ :style="{
|
|
|
+ width: `${width}%`,
|
|
|
+ paddingLeft: isEnable(data.property.is_enable_number_column) ? '40px' : '0',
|
|
|
+ }"
|
|
|
class="header-item"
|
|
|
>
|
|
|
- <span v-if="i === 0 && isEnable(data.property.is_enable_number_column)" class="serial-number">#</span>
|
|
|
<span>{{ text }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -36,8 +38,21 @@
|
|
|
<span v-if="j === 0 && isEnable(data.property.is_enable_number_column)" class="serial-number">
|
|
|
{{ i + 1 }}
|
|
|
</span>
|
|
|
- <template v-for="(li, k) in content_list">
|
|
|
- <span v-if="li.type === 'text'" :key="k">{{ li.content }}</span>
|
|
|
+ <div v-for="(li, k) in content_list" :key="k" class="item-content">
|
|
|
+ <span v-if="li.type === 'text'">{{ li.content }}</span>
|
|
|
+ <template v-else-if="li.type === 'empty_input'">
|
|
|
+ <el-input
|
|
|
+ :key="k"
|
|
|
+ v-model="li.content"
|
|
|
+ :disabled="disabled"
|
|
|
+ :class="['fill']"
|
|
|
+ placeholder="请输入"
|
|
|
+ :style="[
|
|
|
+ { cursor: disabled ? 'not-allowed' : 'pointer' },
|
|
|
+ { width: Math.max(80, li.content.length * 16) + 'px' },
|
|
|
+ ]"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
<template v-else-if="li.type === 'fill'">
|
|
|
<el-input
|
|
|
:key="k"
|
|
@@ -77,7 +92,7 @@
|
|
|
{{ computedAnswerText(mark, li.mark) }}
|
|
|
</span>
|
|
|
</template>
|
|
|
- </template>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -111,7 +126,7 @@ export default {
|
|
|
let value_list = [];
|
|
|
let answerIndex = this.answer.answer_list.findIndex((item) => item.mark === mark);
|
|
|
content_list.forEach((li) => {
|
|
|
- if (['fill', 'input'].includes(li.type) && li.content.length > 0) {
|
|
|
+ if (['fill', 'input', 'empty_input'].includes(li.type) && li.content.length > 0) {
|
|
|
value_list.push({
|
|
|
mark: li.mark,
|
|
|
value: li.content,
|
|
@@ -143,7 +158,7 @@ export default {
|
|
|
.find((item) => item.find((li) => li.mark === mark))
|
|
|
.forEach((item) => {
|
|
|
item.content_list.forEach((li) => {
|
|
|
- if (['fill', 'input'].includes(li.type)) {
|
|
|
+ if (['fill', 'input', 'empty_input'].includes(li.type)) {
|
|
|
let answer = value_list.find((item) => item.mark === li.mark);
|
|
|
if (!answer) return;
|
|
|
li.content = answer.value;
|
|
@@ -213,6 +228,8 @@ export default {
|
|
|
<style lang="scss" scoped>
|
|
|
@use '@/styles/mixin.scss' as *;
|
|
|
|
|
|
+$table-border: 1px solid #ebebeb;
|
|
|
+
|
|
|
.fill-form-preview {
|
|
|
@include preview;
|
|
|
|
|
@@ -229,7 +246,9 @@ export default {
|
|
|
.header-item {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+ min-height: 40px;
|
|
|
padding: 8px 12px;
|
|
|
+ border-left: $table-border;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -239,8 +258,13 @@ export default {
|
|
|
.form-item {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- padding: 8px 12px;
|
|
|
- border-bottom: 1px solid #eaeffb;
|
|
|
+ min-height: 48px;
|
|
|
+ border-bottom: $table-border;
|
|
|
+ border-left: $table-border;
|
|
|
+
|
|
|
+ .item-content {
|
|
|
+ padding: 8px 12px;
|
|
|
+ }
|
|
|
|
|
|
%input,
|
|
|
.el-input.fill {
|
|
@@ -300,10 +324,18 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .form-item:last-child {
|
|
|
+ border-right: $table-border;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.serial-number {
|
|
|
- padding-right: 16px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ height: 100%;
|
|
|
+ padding: 8px 12px;
|
|
|
+ border-right: $table-border;
|
|
|
}
|
|
|
}
|
|
|
}
|