提交 814621fe authored 作者: 王鹏飞's avatar 王鹏飞

chore: 修改实验试题

上级 be13cd6d
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"element-plus": "^2.2.32", "element-plus": "^2.2.32",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"filesize": "^10.0.7",
"html2pdf.js": "^0.10.1", "html2pdf.js": "^0.10.1",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"pinia": "^2.1.4", "pinia": "^2.1.4",
...@@ -3381,6 +3382,14 @@ ...@@ -3381,6 +3382,14 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/filesize": {
"version": "10.0.7",
"resolved": "https://registry.npmmirror.com/filesize/-/filesize-10.0.7.tgz",
"integrity": "sha512-iMRG7Qo9nayLoU3PNCiLizYtsy4W1ClrapeCwEgtiQelOAOuRJiw4QaLI+sSr8xr901dgHv+EYP2bCusGZgoiA==",
"engines": {
"node": ">= 10.4.0"
}
},
"node_modules/fill-range": { "node_modules/fill-range": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
...@@ -8968,6 +8977,11 @@ ...@@ -8968,6 +8977,11 @@
"resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz",
"integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg=="
}, },
"filesize": {
"version": "10.0.7",
"resolved": "https://registry.npmmirror.com/filesize/-/filesize-10.0.7.tgz",
"integrity": "sha512-iMRG7Qo9nayLoU3PNCiLizYtsy4W1ClrapeCwEgtiQelOAOuRJiw4QaLI+sSr8xr901dgHv+EYP2bCusGZgoiA=="
},
"fill-range": { "fill-range": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
"element-plus": "^2.2.32", "element-plus": "^2.2.32",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"filesize": "^10.0.7",
"html2pdf.js": "^0.10.1", "html2pdf.js": "^0.10.1",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"pinia": "^2.1.4", "pinia": "^2.1.4",
......
<script setup lang="ts"> <script setup lang="ts">
import { getExperimentQuestionList, getExperimentQuestion } from '../api' import { getExperimentQuestionList, getExperimentQuestion } from '../api'
import { Document } from '@element-plus/icons-vue'
import { filesize } from 'filesize'
interface Props { interface Props {
experiment_id: string experiment_id: string
...@@ -12,6 +14,7 @@ interface QuestionListItem { ...@@ -12,6 +14,7 @@ interface QuestionListItem {
type QuestionGroupListItem = QuestionListItem & { index: number } type QuestionGroupListItem = QuestionListItem & { index: number }
interface QuestionGroupList { interface QuestionGroupList {
type: string type: string
type_name: string
list: Array<QuestionGroupListItem> list: Array<QuestionGroupListItem>
} }
...@@ -24,9 +27,9 @@ const questionId = computed(() => { ...@@ -24,9 +27,9 @@ const questionId = computed(() => {
const questionList = ref<QuestionListItem[]>([]) const questionList = ref<QuestionListItem[]>([])
const questionGroupList = computed<QuestionGroupList[]>(() => { const questionGroupList = computed<QuestionGroupList[]>(() => {
return questionList.value.reduce((result, item, index) => { return questionList.value.reduce((result, item, index) => {
let currentGroup = result.find(({ type }) => type === item.type) let currentGroup = result.find(({ type }) => customFloor(parseInt(type)) === customFloor(parseInt(item.type)))
if (!currentGroup) { if (!currentGroup) {
result.push({ type: item.type, list: [] }) result.push({ type: item.type, type_name: getQuestionTypeName(item.type), list: [] })
currentGroup = result[result.length - 1] currentGroup = result[result.length - 1]
} }
currentGroup.list.push({ ...item, index: index + 1 }) currentGroup.list.push({ ...item, index: index + 1 })
...@@ -73,13 +76,26 @@ function handlePrev() { ...@@ -73,13 +76,26 @@ function handlePrev() {
function handleNext() { function handleNext() {
questionIndex.value++ questionIndex.value++
} }
function getQuestionTypeName(type: string) {
if (['101', '102'].includes(type)) return '用户/事件管理'
if (['201', '202'].includes(type)) return '标签管理'
if (['301', '302'].includes(type)) return '群组管理'
if (['401', '402', '403', '404', '405', '406', '407'].includes(type)) return '营销资料管理'
if (['501'].includes(type)) return '用户旅程'
if (['601'].includes(type)) return '营销报告'
return type
}
function customFloor(num: number) {
return num - (num % 100)
}
</script> </script>
<template> <template>
<div v-if="questionList.length"> <div v-if="questionList.length">
<el-card shadow="never" class="question-number"> <el-card shadow="never" class="question-number">
<dl v-for="group in questionGroupList" :key="group.type"> <dl v-for="group in questionGroupList" :key="group.type">
<dt>{{ group.type }}</dt> <dt>{{ group.type_name }}</dt>
<dd> <dd>
<span <span
:class="{ 'is-active': question.id === questionId }" :class="{ 'is-active': question.id === questionId }"
...@@ -99,11 +115,12 @@ function handleNext() { ...@@ -99,11 +115,12 @@ function handleNext() {
<p class="question-item__content">{{ questionDetail.content }}</p> <p class="question-item__content">{{ questionDetail.content }}</p>
<ul class="question-item__files"> <ul class="question-item__files">
<li class="question-item__files-item" v-for="(file, index) in questionDetail.files" :key="index"> <li class="question-item__files-item" v-for="(file, index) in questionDetail.files" :key="index">
<el-icon><Document /></el-icon>
<div class="question-item__files-item__title"> <div class="question-item__files-item__title">
<p>{{ file.name }}</p> <p>{{ file.name }}</p>
<p>{{ file.size }}</p> <p>{{ filesize(file.size) }}</p>
</div> </div>
<a :href="file.url" target="_blank" v-if="file.is_download">下载</a> <a :href="file.url" target="_blank" download v-if="file.is_download">下载</a>
<a :href="file.url" target="_blank">查看</a> <a :href="file.url" target="_blank">查看</a>
</li> </li>
</ul> </ul>
...@@ -173,10 +190,15 @@ function handleNext() { ...@@ -173,10 +190,15 @@ function handleNext() {
font-size: 14px; font-size: 14px;
color: var(--main-color); color: var(--main-color);
} }
.el-icon {
font-size: 20px;
color: var(--main-color);
}
} }
.question-item__files-item__title { .question-item__files-item__title {
flex: 1; flex: 1;
font-size: 12px; font-size: 12px;
color: #75797b; color: #75797b;
margin: 0 10px;
} }
</style> </style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论