|
@@ -23,77 +23,89 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex fill-blank detail-info">
|
|
<div class="flex fill-blank detail-info">
|
|
- <div class="flex p-base detail-info-chart" style="width: 64%">
|
|
|
|
- <div style="width: 50%">
|
|
|
|
- <vue-echarts class="full" :option="markerSubjectiveChartsOption"></vue-echarts>
|
|
|
|
- </div>
|
|
|
|
- <div class="flex-1 m-l-base">
|
|
|
|
- <vue-echarts class="full" :option="markerObjectiveChartsOption"></vue-echarts>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="flex direction-column p-extra-small" style="width: 36%">
|
|
|
|
- <div class="flex items-center justify-between detail-info-table-header m-b-mini">
|
|
|
|
- <el-button custom-1 size="small" class="detail-info-label">
|
|
|
|
- <span class="">{{ dataType }}试卷总数:</span>
|
|
|
|
- <span class="m-l-extra-small detail-info-label-num">{{ total }}</span>
|
|
|
|
- </el-button>
|
|
|
|
- <el-pagination
|
|
|
|
- v-bind="pagination"
|
|
|
|
- v-model:current-page="currentPage"
|
|
|
|
- size="small"
|
|
|
|
- class="m-t-unset"
|
|
|
|
- background
|
|
|
|
- right
|
|
|
|
- hide-on-single-page
|
|
|
|
- :pager-count="3"
|
|
|
|
- small
|
|
|
|
- ></el-pagination>
|
|
|
|
- </div>
|
|
|
|
- <div class="flex-1 scroll-auto">
|
|
|
|
- <base-table
|
|
|
|
- ref="tableRef"
|
|
|
|
- border
|
|
|
|
- stripe
|
|
|
|
- size="small"
|
|
|
|
- height="100%"
|
|
|
|
- :data="tableData"
|
|
|
|
- :columns="tableColumn"
|
|
|
|
- highlight-current-row
|
|
|
|
- @current-change="onCurrentChange"
|
|
|
|
- >
|
|
|
|
- <template #empty> 暂无数据 </template>
|
|
|
|
- </base-table>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <splitpanes class="default-theme" style="height: 100%">
|
|
|
|
+ <pane max-size="80" :size="64" class="flex p-base detail-info-chart">
|
|
|
|
+ <div style="width: 50%">
|
|
|
|
+ <vue-echarts class="full" :option="markerSubjectiveChartsOption" autoresize></vue-echarts>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="flex-1 m-l-base">
|
|
|
|
+ <vue-echarts class="full" :option="markerObjectiveChartsOption" autoresize></vue-echarts>
|
|
|
|
+ </div>
|
|
|
|
+ </pane>
|
|
|
|
+ <pane max-size="80" :size="36" class="flex direction-column p-extra-small">
|
|
|
|
+ <div class="flex items-center justify-between detail-info-table-header m-b-mini">
|
|
|
|
+ <el-button custom-1 size="small" class="detail-info-label">
|
|
|
|
+ <span class="">{{ dataType }}试卷总数:</span>
|
|
|
|
+ <span class="m-l-extra-small detail-info-label-num">{{ total }}</span>
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-pagination
|
|
|
|
+ v-bind="pagination"
|
|
|
|
+ v-model:current-page="currentPage"
|
|
|
|
+ size="small"
|
|
|
|
+ class="m-t-unset"
|
|
|
|
+ background
|
|
|
|
+ right
|
|
|
|
+ hide-on-single-page
|
|
|
|
+ :pager-count="3"
|
|
|
|
+ small
|
|
|
|
+ ></el-pagination>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="flex-1 scroll-auto">
|
|
|
|
+ <base-table
|
|
|
|
+ ref="tableRef"
|
|
|
|
+ border
|
|
|
|
+ stripe
|
|
|
|
+ size="small"
|
|
|
|
+ height="100%"
|
|
|
|
+ :data="tableData"
|
|
|
|
+ :columns="tableColumn"
|
|
|
|
+ highlight-current-row
|
|
|
|
+ @current-change="onCurrentChange"
|
|
|
|
+ >
|
|
|
|
+ <template #empty> 暂无数据 </template>
|
|
|
|
+ </base-table>
|
|
|
|
+ </div>
|
|
|
|
+ </pane>
|
|
|
|
+ </splitpanes>
|
|
</div>
|
|
</div>
|
|
<div class="flex-1 p-t-base flex overflow-hidden">
|
|
<div class="flex-1 p-t-base flex overflow-hidden">
|
|
- <div class="flex direction-column flex-1 overflow-hidden radius-base fill-blank relative paper-view">
|
|
|
|
- <div ref="imgWrap" class="flex-1 p-extra-small scroll-auto img-wrap">
|
|
|
|
- <img :src="current?.filePath" alt="" class="paper-img relative" />
|
|
|
|
- <p v-if="current" class="absolute question-info">{{ current.mainNumber + '-' + current.mainName }}</p>
|
|
|
|
- <p v-if="current" class="absolute mark-score">{{ current.headerScore ?? current.markerScore }}</p>
|
|
|
|
- </div>
|
|
|
|
- <span class="preview" @click="onPreview">
|
|
|
|
- <svg-icon name="preview"></svg-icon>
|
|
|
|
- </span>
|
|
|
|
- <scoring-panel-with-confirm
|
|
|
|
- :id="current?.taskId"
|
|
|
|
- v-model:visible="scoringPanelVisible"
|
|
|
|
- v-model:score="modelScore"
|
|
|
|
- :main-number="current?.mainNumber"
|
|
|
|
- :subject-code="current?.subjectCode || ''"
|
|
|
|
- @submit="onSubmit"
|
|
|
|
- ></scoring-panel-with-confirm>
|
|
|
|
- </div>
|
|
|
|
- <div class="radius-base p-extra-small fill-blank m-l-base overflow-auto paper-mark-record">
|
|
|
|
- <mark-history-list
|
|
|
|
- :id="current?.taskId"
|
|
|
|
- height="100%"
|
|
|
|
- :model-value="true"
|
|
|
|
- :modal="false"
|
|
|
|
- :task="current"
|
|
|
|
- ></mark-history-list>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <splitpanes class="default-theme" style="height: 100%">
|
|
|
|
+ <pane
|
|
|
|
+ max-size="80"
|
|
|
|
+ :size="70"
|
|
|
|
+ class="flex direction-column flex-1 overflow-hidden radius-base fill-blank relative paper-view"
|
|
|
|
+ >
|
|
|
|
+ <div ref="imgWrap" class="flex-1 p-extra-small scroll-auto img-wrap">
|
|
|
|
+ <img :src="current?.filePath" alt="" class="paper-img relative" />
|
|
|
|
+ <p v-if="current" class="absolute question-info">{{ current.mainNumber + '-' + current.mainName }}</p>
|
|
|
|
+ <p v-if="current" class="absolute mark-score">{{ current.headerScore ?? current.markerScore }}</p>
|
|
|
|
+ </div>
|
|
|
|
+ <span class="preview" @click="onPreview">
|
|
|
|
+ <svg-icon name="preview"></svg-icon>
|
|
|
|
+ </span>
|
|
|
|
+ <scoring-panel-with-confirm
|
|
|
|
+ :id="current?.taskId"
|
|
|
|
+ v-model:visible="scoringPanelVisible"
|
|
|
|
+ v-model:score="modelScore"
|
|
|
|
+ :main-number="current?.mainNumber"
|
|
|
|
+ :subject-code="current?.subjectCode || ''"
|
|
|
|
+ @submit="onSubmit"
|
|
|
|
+ ></scoring-panel-with-confirm>
|
|
|
|
+ </pane>
|
|
|
|
+ <pane
|
|
|
|
+ max-size="80"
|
|
|
|
+ :size="30"
|
|
|
|
+ class="radius-base p-extra-small fill-blank m-l-base overflow-auto paper-mark-record"
|
|
|
|
+ >
|
|
|
|
+ <mark-history-list
|
|
|
|
+ :id="current?.taskId"
|
|
|
|
+ height="100%"
|
|
|
|
+ :model-value="true"
|
|
|
|
+ :modal="false"
|
|
|
|
+ :task="current"
|
|
|
|
+ ></mark-history-list>
|
|
|
|
+ </pane>
|
|
|
|
+ </splitpanes>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<image-preview v-model="previewModalVisible" :url="current?.filePath"></image-preview>
|
|
<image-preview v-model="previewModalVisible" :url="current?.filePath"></image-preview>
|
|
@@ -116,10 +128,17 @@ import ImagePreview from '@/components/shared/ImagePreview.vue'
|
|
import MarkHistoryList from '@/components/shared/MarkHistoryList.vue'
|
|
import MarkHistoryList from '@/components/shared/MarkHistoryList.vue'
|
|
import SvgIcon from '@/components/common/SvgIcon.vue'
|
|
import SvgIcon from '@/components/common/SvgIcon.vue'
|
|
import LockEntry from '@/components/common/LockEntry.vue'
|
|
import LockEntry from '@/components/common/LockEntry.vue'
|
|
|
|
+import useMainStore from '@/store/main'
|
|
|
|
+import { Splitpanes, Pane } from 'splitpanes'
|
|
|
|
+import { setPaneSize } from '@/utils/common'
|
|
import type { EChartsOption } from 'echarts'
|
|
import type { EChartsOption } from 'echarts'
|
|
import type { ExtractMultipleApiResponse, ExtractApiResponse } from '@/api/api'
|
|
import type { ExtractMultipleApiResponse, ExtractApiResponse } from '@/api/api'
|
|
import type { EpTableColumn } from 'global-type'
|
|
import type { EpTableColumn } from 'global-type'
|
|
|
|
|
|
|
|
+const mainStore = useMainStore()
|
|
|
|
+const paneSize = computed(() => {
|
|
|
|
+ return mainStore.paneSizeConfig[location.pathname] || 70
|
|
|
|
+})
|
|
const { back } = useRouter()
|
|
const { back } = useRouter()
|
|
const { query } = useRoute()
|
|
const { query } = useRoute()
|
|
const imgWrap = ref()
|
|
const imgWrap = ref()
|
|
@@ -151,7 +170,7 @@ const { pagination, currentPage, total, data, fetchTable } = useTable(
|
|
subjectCode: query.subjectCode,
|
|
subjectCode: query.subjectCode,
|
|
mainNumber: query.questionMainNumber,
|
|
mainNumber: query.questionMainNumber,
|
|
},
|
|
},
|
|
- { pageSize: 4 }
|
|
|
|
|
|
+ { pageSize: 100 }
|
|
)
|
|
)
|
|
|
|
|
|
const { tableRef, current, onCurrentChange, tableData, next } = useTableCheck(data)
|
|
const { tableRef, current, onCurrentChange, tableData, next } = useTableCheck(data)
|
|
@@ -466,6 +485,6 @@ fetchTable()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.paper-mark-record {
|
|
.paper-mark-record {
|
|
- width: 390px;
|
|
|
|
|
|
+ // width: 390px;
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|