|
@@ -100,46 +100,73 @@
|
|
|
<div class="ml-auto">
|
|
|
<div class="__czr-quasar-el-date">
|
|
|
<q-input
|
|
|
- class="w-[250px]"
|
|
|
+ class="w-[220px]"
|
|
|
rounded
|
|
|
standout="focus"
|
|
|
:dense="true"
|
|
|
- v-model="dateStr"
|
|
|
+ v-model="dateStrMakeQuestion"
|
|
|
readonly
|
|
|
>
|
|
|
<template v-slot:prepend>
|
|
|
<q-icon
|
|
|
name="event"
|
|
|
class="cursor-pointer"
|
|
|
- @click="ref_date.handleOpen()"
|
|
|
+ @click="ref_dateMakeQuestion.handleOpen()"
|
|
|
>
|
|
|
</q-icon>
|
|
|
</template>
|
|
|
</q-input>
|
|
|
<el-date-picker
|
|
|
- ref="ref_date"
|
|
|
+ ref="ref_dateMakeQuestion"
|
|
|
v-model="state.makeQuestion.date"
|
|
|
value-format="YYYY-MM-DD"
|
|
|
type="daterange"
|
|
|
+ @change="initMakeQuestion"
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <template v-for="item in state.makeQuestion.data">
|
|
|
+ <div
|
|
|
+ class="h-[120px] overflow-y-auto"
|
|
|
+ v-loading="state.makeQuestion.loading"
|
|
|
+ >
|
|
|
+ <template v-if="state.makeQuestion.data?.length > 0">
|
|
|
+ <template v-for="item in state.makeQuestion.data">
|
|
|
+ <div class="record-item rounded-lg border border-gray-100 p-2">
|
|
|
+ <div class="flex items-center justify-between">
|
|
|
+ <span class="text-sm font-medium">
|
|
|
+ {{ AppStore.subjectMap.get(item.subject) }}
|
|
|
+ </span>
|
|
|
+ <div class="flex justify-end">
|
|
|
+ <button
|
|
|
+ class="text-subject-color flex items-center text-xs hover:underline"
|
|
|
+ @click="
|
|
|
+ $router.push({
|
|
|
+ name: $route.meta.subjectId + 'question-only',
|
|
|
+ query: {
|
|
|
+ planId: item.planId,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <i class="fas fa-file-alt mr-1"></i>
|
|
|
+ 查看详情
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="mt-1 text-xs text-gray-500">
|
|
|
+ {{ item.planDate }} | xxx题(<span class="text-red"
|
|
|
+ >xxx</span
|
|
|
+ >/<span class="text-green">xxx</span>) | 正确率xxx%
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
<div
|
|
|
- class="record-item cursor-pointer rounded-lg border border-gray-100 p-2"
|
|
|
- @click="$router.push({ name: 'chinese-question-only' })"
|
|
|
+ class="flex size-full items-center justify-center text-xl font-semibold text-gray-700"
|
|
|
>
|
|
|
- <div class="flex items-center justify-between">
|
|
|
- <span class="text-sm font-medium">
|
|
|
- {{ AppStore.subjectMap.get(item.subject) }}
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div class="mt-1 text-xs text-gray-500">
|
|
|
- {{ item.planDate }} | xxx题(<span class="text-red">xxx</span
|
|
|
- >/<span class="text-green">xxx</span>) | 正确率xxx%
|
|
|
- </div>
|
|
|
+ 暂无数据
|
|
|
</div>
|
|
|
</template>
|
|
|
</div>
|
|
@@ -154,261 +181,130 @@
|
|
|
<i class="fas fa-calendar-alt mr-2"></i>
|
|
|
考形训练
|
|
|
<div class="absolute right-2 ml-auto flex">
|
|
|
- <q-select
|
|
|
- class="select ml-4 w-[120px]"
|
|
|
- rounded
|
|
|
- standout="focus"
|
|
|
- v-model="state.query.p1"
|
|
|
- :options="[
|
|
|
- { label: '近三个月', value: '近三个月' },
|
|
|
- { label: '本学期', value: '本学期' },
|
|
|
- { label: '上学期', value: '上学期' },
|
|
|
- { label: '本年度', value: '本年度' },
|
|
|
- { label: '全部', value: '全部' },
|
|
|
- ]"
|
|
|
- :dense="true"
|
|
|
- >
|
|
|
- </q-select>
|
|
|
- <q-select
|
|
|
- class="select ml-4 w-[120px]"
|
|
|
- rounded
|
|
|
- standout="focus"
|
|
|
- v-model="state.query.p2"
|
|
|
- :options="[
|
|
|
- { label: '全部类型', value: '全部类型' },
|
|
|
- { label: '周测', value: '周测' },
|
|
|
- { label: '月考', value: '月考' },
|
|
|
- { label: '期中考试', value: '期中考试' },
|
|
|
- { label: '期末考试', value: '期末考试' },
|
|
|
- ]"
|
|
|
- :dense="true"
|
|
|
- >
|
|
|
- </q-select>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="h-[200px]">
|
|
|
- <chart4 />
|
|
|
- </div>
|
|
|
- <div class="flex-1 overflow-y-auto p-6">
|
|
|
- <div class="timeline-date">2023年12月</div>
|
|
|
- <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
|
|
|
- <div class="mb-2 flex items-start justify-between">
|
|
|
- <div>
|
|
|
- <div class="flex items-center font-semibold">
|
|
|
- <span
|
|
|
- class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
|
|
|
- ></span>
|
|
|
- 周测
|
|
|
- </div>
|
|
|
- <div class="mt-0.5 text-sm text-gray-500">12月22日</div>
|
|
|
- </div>
|
|
|
- <span class="text-sm font-medium text-gray-800">88分</span>
|
|
|
- </div>
|
|
|
- <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">试卷难度</div>
|
|
|
- <div class="font-medium text-gray-800">S</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">用时</div>
|
|
|
- <div class="font-medium text-gray-800">45分钟</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">得分</div>
|
|
|
- <div class="font-medium text-gray-800">96分</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">错题</div>
|
|
|
- <div class="font-medium text-red-500">3题</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="mt-3">
|
|
|
- <div class="mb-1 text-xs text-gray-500">错题类型:</div>
|
|
|
- <div class="flex flex-wrap gap-2">
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >阅读理解(2)</span
|
|
|
- >
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >基础知识(1)</span
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="mt-3 flex justify-end">
|
|
|
- <button
|
|
|
- class="text-subject-color flex items-center text-xs hover:underline"
|
|
|
- @click="$router.push({ name: 'chinese-question-only' })"
|
|
|
- >
|
|
|
- <i class="fas fa-file-alt mr-1"></i>
|
|
|
- 查看详情
|
|
|
- </button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
|
|
|
- <div class="mb-2 flex items-start justify-between">
|
|
|
- <div>
|
|
|
- <div class="flex items-center font-semibold">
|
|
|
- <span
|
|
|
- class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
|
|
|
- ></span>
|
|
|
- 期中
|
|
|
- </div>
|
|
|
- <div class="mt-0.5 text-sm text-gray-500">12月12日</div>
|
|
|
- </div>
|
|
|
- <span class="text-sm font-medium text-gray-800">88分</span>
|
|
|
- </div>
|
|
|
- <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">试卷难度</div>
|
|
|
- <div class="font-medium text-gray-800">S</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">用时</div>
|
|
|
- <div class="font-medium text-gray-800">45分钟</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">得分</div>
|
|
|
- <div class="font-medium text-gray-800">96分</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">错题</div>
|
|
|
- <div class="font-medium text-red-500">3题</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="mt-3">
|
|
|
- <div class="mb-1 text-xs text-gray-500">错题类型:</div>
|
|
|
- <div class="flex flex-wrap gap-2">
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >阅读理解(2)</span
|
|
|
- >
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >基础知识(1)</span
|
|
|
+ <div class="__czr-quasar-el-date training-date">
|
|
|
+ <q-input
|
|
|
+ class="w-[220px]"
|
|
|
+ rounded
|
|
|
+ standout="focus"
|
|
|
+ :dense="true"
|
|
|
+ v-model="dateStrTraining"
|
|
|
+ readonly
|
|
|
>
|
|
|
+ <template v-slot:prepend>
|
|
|
+ <q-icon
|
|
|
+ name="event"
|
|
|
+ class="cursor-pointer"
|
|
|
+ color="white"
|
|
|
+ @click="ref_dateTraining.handleOpen()"
|
|
|
+ >
|
|
|
+ </q-icon>
|
|
|
+ </template>
|
|
|
+ </q-input>
|
|
|
+ <el-date-picker
|
|
|
+ ref="ref_dateTraining"
|
|
|
+ v-model="state.training.date"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ type="daterange"
|
|
|
+ @change="initTraining"
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="mt-3 flex justify-end">
|
|
|
- <button
|
|
|
- class="text-subject-color flex items-center text-xs hover:underline"
|
|
|
- @click="$router.push({ name: 'chinese-question-only' })"
|
|
|
- >
|
|
|
- <i class="fas fa-file-alt mr-1"></i>
|
|
|
- 查看详情
|
|
|
- </button>
|
|
|
- </div>
|
|
|
</div>
|
|
|
- <div class="timeline-date">2023年11月</div>
|
|
|
- <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
|
|
|
- <div class="mb-2 flex items-start justify-between">
|
|
|
- <div>
|
|
|
- <div class="flex items-center font-semibold">
|
|
|
- <span
|
|
|
- class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
|
|
|
- ></span>
|
|
|
- 周测
|
|
|
- </div>
|
|
|
- <div class="mt-0.5 text-sm text-gray-500">12月22日</div>
|
|
|
- </div>
|
|
|
- <span class="text-sm font-medium text-gray-800">88分</span>
|
|
|
- </div>
|
|
|
- <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">试卷难度</div>
|
|
|
- <div class="font-medium text-gray-800">S</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">用时</div>
|
|
|
- <div class="font-medium text-gray-800">45分钟</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">得分</div>
|
|
|
- <div class="font-medium text-gray-800">96分</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">错题</div>
|
|
|
- <div class="font-medium text-red-500">3题</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="mt-3">
|
|
|
- <div class="mb-1 text-xs text-gray-500">错题类型:</div>
|
|
|
- <div class="flex flex-wrap gap-2">
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >阅读理解(2)</span
|
|
|
- >
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >基础知识(1)</span
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="mt-3 flex justify-end">
|
|
|
- <button
|
|
|
- class="text-subject-color flex items-center text-xs hover:underline"
|
|
|
- @click="$router.push({ name: 'chinese-question-only' })"
|
|
|
- >
|
|
|
- <i class="fas fa-file-alt mr-1"></i>
|
|
|
- 查看详情
|
|
|
- </button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
|
|
|
- <div class="mb-2 flex items-start justify-between">
|
|
|
- <div>
|
|
|
- <div class="flex items-center font-semibold">
|
|
|
- <span
|
|
|
- class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
|
|
|
- ></span>
|
|
|
- 期中
|
|
|
- </div>
|
|
|
- <div class="mt-0.5 text-sm text-gray-500">12月12日</div>
|
|
|
- </div>
|
|
|
- <span class="text-sm font-medium text-gray-800">88分</span>
|
|
|
- </div>
|
|
|
- <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">试卷难度</div>
|
|
|
- <div class="font-medium text-gray-800">S</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">用时</div>
|
|
|
- <div class="font-medium text-gray-800">45分钟</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">得分</div>
|
|
|
- <div class="font-medium text-gray-800">96分</div>
|
|
|
- </div>
|
|
|
- <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
- <div class="text-xs text-gray-500">错题</div>
|
|
|
- <div class="font-medium text-red-500">3题</div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="flex flex-1 flex-col overflow-hidden"
|
|
|
+ v-loading="state.training.loading"
|
|
|
+ >
|
|
|
+ <template v-if="state.training.data?.length > 0">
|
|
|
+ <div class="h-[200px]">
|
|
|
+ <chart4 :data="state.training.data" />
|
|
|
</div>
|
|
|
- <div class="mt-3">
|
|
|
- <div class="mb-1 text-xs text-gray-500">错题类型:</div>
|
|
|
- <div class="flex flex-wrap gap-2">
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >阅读理解(2)</span
|
|
|
- >
|
|
|
- <span
|
|
|
- class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
- >基础知识(1)</span
|
|
|
- >
|
|
|
- </div>
|
|
|
+ <div class="flex-1 overflow-y-auto px-6 py-2">
|
|
|
+ <template v-if="state.training.groupData?.length > 0">
|
|
|
+ <template v-for="item in state.training.groupData">
|
|
|
+ <div class="timeline-date">{{ YM(item.date, true) }}</div>
|
|
|
+ <template v-for="son in item.list">
|
|
|
+ <div
|
|
|
+ class="exam-item mb-3 rounded-lg border border-gray-300 p-3"
|
|
|
+ >
|
|
|
+ <div class="mb-2 flex items-start justify-between">
|
|
|
+ <div>
|
|
|
+ <div class="mt-0.5 text-sm text-gray-500">
|
|
|
+ {{ son.planDate }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span class="text-sm font-medium text-gray-800">
|
|
|
+ {{ son.score }}分
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4"
|
|
|
+ >
|
|
|
+ <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
+ <div class="text-xs text-gray-500">试卷难度</div>
|
|
|
+ <div class="font-medium text-gray-800">XXX</div>
|
|
|
+ </div>
|
|
|
+ <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
+ <div class="text-xs text-gray-500">用时</div>
|
|
|
+ <div class="font-medium text-gray-800">
|
|
|
+ {{ Math.floor(son.usedCardTime / 60) }}分钟
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
+ <div class="text-xs text-gray-500">得分</div>
|
|
|
+ <div class="font-medium text-gray-800">
|
|
|
+ {{ son.score }}分
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="rounded bg-gray-50 p-2 text-center">
|
|
|
+ <div class="text-xs text-gray-500">错题</div>
|
|
|
+ <div class="font-medium text-red-500">xxx题</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="mt-3">
|
|
|
+ <div class="mb-1 text-xs text-gray-500">
|
|
|
+ 错题类型:
|
|
|
+ </div>
|
|
|
+ <div class="flex flex-wrap gap-2">
|
|
|
+ <span
|
|
|
+ class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
+ >xxx(xxx)</span
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
|
|
|
+ >xxx(xxx)</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="mt-3 flex justify-end">
|
|
|
+ <button
|
|
|
+ class="text-subject-color flex items-center text-xs hover:underline"
|
|
|
+ @click="
|
|
|
+ $router.push({
|
|
|
+ name: $route.meta.subjectId + 'question-only',
|
|
|
+ query: {
|
|
|
+ planId: son.planId,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <i class="fas fa-file-alt mr-1"></i>
|
|
|
+ 查看详情
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- <div class="mt-3 flex justify-end">
|
|
|
- <button
|
|
|
- class="text-subject-color flex items-center text-xs hover:underline"
|
|
|
- @click="$router.push({ name: 'chinese-question-only' })"
|
|
|
- >
|
|
|
- <i class="fas fa-file-alt mr-1"></i>
|
|
|
- 查看详情
|
|
|
- </button>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div
|
|
|
+ class="flex size-full items-center justify-center text-xl font-semibold text-gray-700"
|
|
|
+ >
|
|
|
+ 暂无数据
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div
|
|
@@ -495,7 +391,7 @@ import chart2 from './chart-2.vue'
|
|
|
import chart3 from './chart-3.vue'
|
|
|
import chart4 from './chart-4.vue'
|
|
|
import { trainingCampLearningPlanList } from '@/api/modules/study'
|
|
|
-import { oneDayTime, YMD } from '@/utils/czr-util'
|
|
|
+import { oneDayTime, YM, YMD } from '@/utils/czr-util'
|
|
|
import { useAppStore } from '@/stores'
|
|
|
import { useRoute } from 'vue-router'
|
|
|
|
|
@@ -508,20 +404,29 @@ const state: any = reactive({
|
|
|
data: [],
|
|
|
date: [YMD(new Date().getTime() - oneDayTime * 7), YMD(new Date())],
|
|
|
},
|
|
|
- query: {
|
|
|
- p1: '近三个月',
|
|
|
- p2: '全部类型',
|
|
|
- date: {},
|
|
|
+ training: {
|
|
|
+ loading: false,
|
|
|
+ data: [],
|
|
|
+ groupData: [],
|
|
|
+ date: [YMD(new Date().getTime() - oneDayTime * 90), YMD(new Date())],
|
|
|
},
|
|
|
})
|
|
|
-const ref_date = ref()
|
|
|
-const dateStr = computed(() => {
|
|
|
+const ref_dateMakeQuestion = ref()
|
|
|
+const dateStrMakeQuestion = computed(() => {
|
|
|
if (state.makeQuestion.date.length > 0) {
|
|
|
return `${state.makeQuestion.date[0]} - ${state.makeQuestion.date[1]}`
|
|
|
}
|
|
|
return ''
|
|
|
})
|
|
|
+const ref_dateTraining = ref()
|
|
|
+const dateStrTraining = computed(() => {
|
|
|
+ if (state.training.date.length > 0) {
|
|
|
+ return `${state.training.date[0]} - ${state.training.date[1]}`
|
|
|
+ }
|
|
|
+ return ''
|
|
|
+})
|
|
|
const initMakeQuestion = () => {
|
|
|
+ state.makeQuestion.loading = true
|
|
|
trainingCampLearningPlanList({
|
|
|
pageNum: 1,
|
|
|
pageSize: 10000,
|
|
@@ -540,14 +445,55 @@ const initMakeQuestion = () => {
|
|
|
state.makeQuestion.loading = false
|
|
|
})
|
|
|
}
|
|
|
+const initTraining = () => {
|
|
|
+ state.training.loading = true
|
|
|
+ state.training.data = []
|
|
|
+ trainingCampLearningPlanList({
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10000,
|
|
|
+ studentId: AppStore.studentInfo?.studentId,
|
|
|
+ subject: route.meta.subjectId,
|
|
|
+ paperType: 2,
|
|
|
+ params: {
|
|
|
+ beginPlanDate: `${state.training.date[0]} 00:00:00`,
|
|
|
+ endPlanDate: `${state.training.date[1]} 23:59:59`,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ .then(({ rows }: any) => {
|
|
|
+ state.training.data = rows
|
|
|
+ // 按照年月分组
|
|
|
+ state.training.groupData = rows.reduce((acc, item) => {
|
|
|
+ // 提取年月部分(格式:YYYY-MM)
|
|
|
+ const datePart = item.planDate.slice(0, 7)
|
|
|
+ // 查找是否已有该年月分组
|
|
|
+ const group = acc.find((g) => g.date === datePart)
|
|
|
+ if (group) {
|
|
|
+ // 如果已有该分组,添加到对应的list中
|
|
|
+ group.list.push(item)
|
|
|
+ } else {
|
|
|
+ // 如果没有该分组,创建新分组
|
|
|
+ acc.push({
|
|
|
+ date: datePart,
|
|
|
+ list: [item],
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return acc
|
|
|
+ }, [])
|
|
|
+ console.log(state.training.groupData)
|
|
|
+ })
|
|
|
+ .finally(() => {
|
|
|
+ state.training.loading = false
|
|
|
+ })
|
|
|
+}
|
|
|
onMounted(() => {
|
|
|
initMakeQuestion()
|
|
|
+ initTraining()
|
|
|
})
|
|
|
onBeforeMount(() => {
|
|
|
- document.documentElement.style.setProperty(
|
|
|
- '--czr-quasar-color',
|
|
|
- 'var(--czr-main-color)',
|
|
|
- )
|
|
|
+ // document.documentElement.style.setProperty(
|
|
|
+ // '--czr-quasar-color',
|
|
|
+ // 'var(--czr-main-color)',
|
|
|
+ // )
|
|
|
})
|
|
|
</script>
|
|
|
|
|
@@ -634,15 +580,9 @@ onBeforeMount(() => {
|
|
|
z-index: 10;
|
|
|
position: relative;
|
|
|
}
|
|
|
-:deep(.select) {
|
|
|
- .ellipsis {
|
|
|
+:deep(.training-date) {
|
|
|
+ .q-placeholder {
|
|
|
color: #ffffff;
|
|
|
}
|
|
|
- .q-select__dropdown-icon {
|
|
|
- color: #ffffff;
|
|
|
- }
|
|
|
- .focus {
|
|
|
- background: rgba(0, 0, 0, 0.1);
|
|
|
- }
|
|
|
}
|
|
|
</style>
|