|
@@ -37,16 +37,28 @@
|
|
</el-menu-item>
|
|
</el-menu-item>
|
|
</el-menu>
|
|
</el-menu>
|
|
</el-popover> -->
|
|
</el-popover> -->
|
|
- <span v-if="row.markerId">{{ row.markerName }}</span>
|
|
|
|
|
|
+ <span v-if="row.markerId">
|
|
|
|
+ <span
|
|
|
|
+ :style="{
|
|
|
|
+ backgroundColor: row.online ? '#00B42A' : '#ddd',
|
|
|
|
+ display: 'inline-block',
|
|
|
|
+ width: '10px',
|
|
|
|
+ height: '10px',
|
|
|
|
+ marginRight: '3px',
|
|
|
|
+ borderRadius: '2px',
|
|
|
|
+ }"
|
|
|
|
+ ></span>
|
|
|
|
+ {{ row.markerName }}</span
|
|
|
|
+ >
|
|
<span v-else-if="row.markingGroupNumber == 0">全体</span>
|
|
<span v-else-if="row.markingGroupNumber == 0">全体</span>
|
|
<span v-else>全组</span>
|
|
<span v-else>全组</span>
|
|
</template>
|
|
</template>
|
|
</base-table>
|
|
</base-table>
|
|
</div>
|
|
</div>
|
|
- <!-- <div
|
|
|
|
- v-if="!!current && !!current?.markerId"
|
|
|
|
|
|
+ <div
|
|
|
|
+ v-if="!!current && !!current?.markerId && showCharts"
|
|
v-loading="loading1 || loading2"
|
|
v-loading="loading1 || loading2"
|
|
- class="flex justify-between m-t-base charts-box"
|
|
|
|
|
|
+ class="flex justify-between charts-box"
|
|
>
|
|
>
|
|
<el-button type="primary" plain size="small" class="close-panel" @click="clearCheck">关闭</el-button>
|
|
<el-button type="primary" plain size="small" class="close-panel" @click="clearCheck">关闭</el-button>
|
|
|
|
|
|
@@ -56,7 +68,7 @@
|
|
<div class="flex-1 p-base radius-base fill-blank chart-box">
|
|
<div class="flex-1 p-base radius-base fill-blank chart-box">
|
|
<vue-e-charts class="full" :option="markerObjectiveChartsOption"></vue-e-charts>
|
|
<vue-e-charts class="full" :option="markerObjectiveChartsOption"></vue-e-charts>
|
|
</div>
|
|
</div>
|
|
- </div> -->
|
|
|
|
|
|
+ </div>
|
|
<set-workload v-model="setWorkloadVisible" :data="setWorkloadData" />
|
|
<set-workload v-model="setWorkloadVisible" :data="setWorkloadData" />
|
|
<right-key-menu
|
|
<right-key-menu
|
|
v-show="visable"
|
|
v-show="visable"
|
|
@@ -65,6 +77,7 @@
|
|
@on-set-workload="onSetWorkload"
|
|
@on-set-workload="onSetWorkload"
|
|
@on-send-message="onSendMessage"
|
|
@on-send-message="onSendMessage"
|
|
@force-assessment="forceAssessment"
|
|
@force-assessment="forceAssessment"
|
|
|
|
+ @on-show-score-lines="onShowScoreLines"
|
|
></right-key-menu>
|
|
></right-key-menu>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -90,6 +103,7 @@ const isChief = computed(() => {
|
|
const arr = ['CHIEF', 'SECTION_LEADER', 'EXPERT']
|
|
const arr = ['CHIEF', 'SECTION_LEADER', 'EXPERT']
|
|
return arr.indexOf(mainStore.myUserInfo?.role || '') > -1
|
|
return arr.indexOf(mainStore.myUserInfo?.role || '') > -1
|
|
})
|
|
})
|
|
|
|
+const showCharts = ref(false)
|
|
const rightKeyMenu = ref(null)
|
|
const rightKeyMenu = ref(null)
|
|
const rightClick = () => {
|
|
const rightClick = () => {
|
|
visable.value = false
|
|
visable.value = false
|
|
@@ -117,7 +131,7 @@ const columns = computed(() => {
|
|
{
|
|
{
|
|
label: '#',
|
|
label: '#',
|
|
type: 'index',
|
|
type: 'index',
|
|
- width: 50,
|
|
|
|
|
|
+ width: 40,
|
|
align: 'center',
|
|
align: 'center',
|
|
fixed: 'left',
|
|
fixed: 'left',
|
|
index(index: number) {
|
|
index(index: number) {
|
|
@@ -133,15 +147,15 @@ const columns = computed(() => {
|
|
return row.markingGroupNumber === 0 ? '全部' : `第${row.markingGroupNumber}组`
|
|
return row.markingGroupNumber === 0 ? '全部' : `第${row.markingGroupNumber}组`
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- { label: '评卷员', prop: 'markerName', minWidth: 84, slotName: 'marker', fixed: 'left' },
|
|
|
|
|
|
+ { label: '评卷员', prop: 'markerName', minWidth: 100, slotName: 'marker', fixed: 'left' },
|
|
|
|
|
|
- { align: 'center', label: '评卷份数', prop: 'markingPaperCount', minWidth: 96 },
|
|
|
|
- { align: 'center', label: '平均分', prop: 'avg', minWidth: 80 },
|
|
|
|
|
|
+ { align: 'center', label: '份数', prop: 'markingPaperCount', minWidth: 80 },
|
|
|
|
+ { align: 'center', label: '平均分', prop: 'avg', minWidth: 64 },
|
|
{
|
|
{
|
|
align: 'center',
|
|
align: 'center',
|
|
label: '相关系数',
|
|
label: '相关系数',
|
|
prop: 'xyRelate',
|
|
prop: 'xyRelate',
|
|
- minWidth: 96,
|
|
|
|
|
|
+ minWidth: 80,
|
|
formatter(row: any) {
|
|
formatter(row: any) {
|
|
let r = unref(props.result) || []
|
|
let r = unref(props.result) || []
|
|
const { markingGroupNumber } = row
|
|
const { markingGroupNumber } = row
|
|
@@ -160,38 +174,39 @@ const columns = computed(() => {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- { align: 'center', label: '标准差', prop: 'std', minWidth: 80 },
|
|
|
|
- { align: 'center', label: '综合系数', prop: 'integration', minWidth: 96 },
|
|
|
|
|
|
+ { align: 'center', label: '标准差', prop: 'std', minWidth: 64 },
|
|
|
|
+ { align: 'center', label: '综合系数', prop: 'integration', minWidth: 80 },
|
|
|
|
|
|
// { align: 'center', label: '评卷份数', prop: 'markingPaperCount', width: 92 },
|
|
// { align: 'center', label: '评卷份数', prop: 'markingPaperCount', width: 92 },
|
|
- { align: 'center', label: '当日可阅', prop: 'markDayCount', minWidth: 96 },
|
|
|
|
- { align: 'center', label: '剩余可阅', prop: 'todoMarkDayCount', minWidth: 96 },
|
|
|
|
- { align: 'center', label: '客观题0分量', prop: 'objectiveZero', minWidth: 120 },
|
|
|
|
- { align: 'center', label: '客观平均分', prop: 'objectiveAvg', minWidth: 110 },
|
|
|
|
- { align: 'center', label: '客观标准差', prop: 'objectiveStd', minWidth: 110 },
|
|
|
|
|
|
+ { align: 'center', label: '当日可阅', prop: 'markDayCount', minWidth: 80 },
|
|
|
|
+ { align: 'center', label: '剩余可阅', prop: 'todoMarkDayCount', minWidth: 80 },
|
|
|
|
+ { align: 'center', label: '速度', prop: 'markingRate', minWidth: 56 },
|
|
|
|
+ { align: 'center', label: '客观题0分量', prop: 'objectiveZero', minWidth: 104 },
|
|
|
|
+ { align: 'center', label: '客观平均分', prop: 'objectiveAvg', minWidth: 94 },
|
|
|
|
+ { align: 'center', label: '客观标准差', prop: 'objectiveStd', minWidth: 94 },
|
|
{
|
|
{
|
|
align: 'center',
|
|
align: 'center',
|
|
label: '重评/待确认',
|
|
label: '重评/待确认',
|
|
prop: 'reMarkUnConfirmCount',
|
|
prop: 'reMarkUnConfirmCount',
|
|
- minWidth: 120,
|
|
|
|
|
|
+ minWidth: 104,
|
|
formatter(row: any) {
|
|
formatter(row: any) {
|
|
return `${row.reMarkCount}/${row.reMarkUnConfirmCount}`
|
|
return `${row.reMarkCount}/${row.reMarkUnConfirmCount}`
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- { align: 'center', label: '抽查量', prop: 'checkCount', minWidth: 90 },
|
|
|
|
- { align: 'center', label: '抽查改正量', prop: 'checkCorrectCount', minWidth: 110 },
|
|
|
|
|
|
+ { align: 'center', label: '抽查量', prop: 'checkCount', minWidth: 74 },
|
|
|
|
+ { align: 'center', label: '抽查改正量', prop: 'checkCorrectCount', minWidth: 94 },
|
|
// { align: 'center', label: '相关系数', prop: 'xyRelate', width: 90 },
|
|
// { align: 'center', label: '相关系数', prop: 'xyRelate', width: 90 },
|
|
// { align: 'center', label: '平均分', prop: 'avg', width: 80 },
|
|
// { align: 'center', label: '平均分', prop: 'avg', width: 80 },
|
|
// { align: 'center', label: '标准差', prop: 'std', width: 80 },
|
|
// { align: 'center', label: '标准差', prop: 'std', width: 80 },
|
|
- { align: 'center', label: '近5分钟最高分', prop: 'scoreTop', minWidth: 130 },
|
|
|
|
- { align: 'center', label: '近5分钟最低分', prop: 'scoreLow', minWidth: 130 },
|
|
|
|
- { align: 'center', label: '近5分钟客主比', prop: 'objSubRate', minWidth: 130 },
|
|
|
|
- { align: 'center', label: '平均客主比', prop: 'objSubAvgRate', minWidth: 110 },
|
|
|
|
|
|
+ { align: 'center', label: '近5分钟最高分', prop: 'scoreTop', minWidth: 114 },
|
|
|
|
+ { align: 'center', label: '近5分钟最低分', prop: 'scoreLow', minWidth: 114 },
|
|
|
|
+ { align: 'center', label: '近5分钟客主比', prop: 'objSubRate', minWidth: 114 },
|
|
|
|
+ { align: 'center', label: '平均客主比', prop: 'objSubAvgRate', minWidth: 96 },
|
|
{
|
|
{
|
|
align: 'center',
|
|
align: 'center',
|
|
label: '在线',
|
|
label: '在线',
|
|
prop: 'online',
|
|
prop: 'online',
|
|
- minWidth: 72,
|
|
|
|
|
|
+ minWidth: 56,
|
|
formatter(row: any) {
|
|
formatter(row: any) {
|
|
if (row.markingGroupNumber === 0) {
|
|
if (row.markingGroupNumber === 0) {
|
|
let total = (unref(props.result) || [])
|
|
let total = (unref(props.result) || [])
|
|
@@ -218,8 +233,8 @@ const columns = computed(() => {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- { align: 'center', label: '状态', prop: 'markingStatus', minWidth: 100 },
|
|
|
|
- { align: 'center', label: '速度', prop: 'markingRate', minWidth: 72 },
|
|
|
|
|
|
+ { align: 'center', label: '状态', prop: 'markingStatus', minWidth: 84 },
|
|
|
|
+
|
|
// { align: 'center', label: '综合系数', prop: 'integration', width: 90 },
|
|
// { align: 'center', label: '综合系数', prop: 'integration', width: 90 },
|
|
]
|
|
]
|
|
.map((col: any) => {
|
|
.map((col: any) => {
|
|
@@ -239,7 +254,6 @@ const rowContextmenu = (row: any, column: any, event: any) => {
|
|
}, 50)
|
|
}, 50)
|
|
event.preventDefault()
|
|
event.preventDefault()
|
|
nextTick(() => {
|
|
nextTick(() => {
|
|
- // alert(1)
|
|
|
|
;(rightKeyMenu.value as any).onload(row, column, event)
|
|
;(rightKeyMenu.value as any).onload(row, column, event)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
@@ -274,6 +288,10 @@ function onSendMessage(data: ExtractArrayValue<ExtractApiResponse<'getStatistics
|
|
setReplyUserId?.(data.markerId)
|
|
setReplyUserId?.(data.markerId)
|
|
setMessageVisible?.(true)
|
|
setMessageVisible?.(true)
|
|
}
|
|
}
|
|
|
|
+function onShowScoreLines(row: any) {
|
|
|
|
+ showCharts.value = true
|
|
|
|
+ ;(elTableRef as any).value!.setCurrentRow(row)
|
|
|
|
+}
|
|
function forceAssessment(data: ExtractArrayValue<ExtractApiResponse<'getStatisticsByGroup'>>) {
|
|
function forceAssessment(data: ExtractArrayValue<ExtractApiResponse<'getStatisticsByGroup'>>) {
|
|
push({
|
|
push({
|
|
name: 'MarkingAssess',
|
|
name: 'MarkingAssess',
|
|
@@ -417,6 +435,13 @@ const getXAxisData = <K extends keyof ExtractArrayValue<StatisticObjectiveByMark
|
|
|
|
|
|
const markerSubjectiveChartsOption = computed<EChartsOption>(() => {
|
|
const markerSubjectiveChartsOption = computed<EChartsOption>(() => {
|
|
return {
|
|
return {
|
|
|
|
+ grid: {
|
|
|
|
+ top: 34,
|
|
|
|
+ bottom: 0,
|
|
|
|
+ left: 15,
|
|
|
|
+ right: 15,
|
|
|
|
+ containLabel: true,
|
|
|
|
+ },
|
|
legend: {
|
|
legend: {
|
|
right: 0,
|
|
right: 0,
|
|
itemWidth: 14,
|
|
itemWidth: 14,
|
|
@@ -474,6 +499,13 @@ const markerSubjectiveChartsOption = computed<EChartsOption>(() => {
|
|
|
|
|
|
const markerObjectiveChartsOption = computed<EChartsOption>(() => {
|
|
const markerObjectiveChartsOption = computed<EChartsOption>(() => {
|
|
return {
|
|
return {
|
|
|
|
+ grid: {
|
|
|
|
+ top: 34,
|
|
|
|
+ bottom: 0,
|
|
|
|
+ left: 15,
|
|
|
|
+ right: 15,
|
|
|
|
+ containLabel: true,
|
|
|
|
+ },
|
|
legend: {
|
|
legend: {
|
|
right: 0,
|
|
right: 0,
|
|
itemWidth: 14,
|
|
itemWidth: 14,
|
|
@@ -529,11 +561,14 @@ const markerObjectiveChartsOption = computed<EChartsOption>(() => {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
const tableHeight = computed(() => {
|
|
const tableHeight = computed(() => {
|
|
- // return !!current.value && !!current.value?.markerId ? 'calc(100vh - 520px)' : 'calc(100vh - 219px)'
|
|
|
|
- return 'calc(100vh - 250px)'
|
|
|
|
|
|
+ return !!current.value && !!current.value?.markerId && showCharts.value
|
|
|
|
+ ? 'calc(100vh - 482px)'
|
|
|
|
+ : 'calc(100vh - 318px)'
|
|
|
|
+ // return 'calc(100vh - 250px)'
|
|
})
|
|
})
|
|
const clearCheck = () => {
|
|
const clearCheck = () => {
|
|
;(elTableRef as any).value!.setCurrentRow(undefined)
|
|
;(elTableRef as any).value!.setCurrentRow(undefined)
|
|
|
|
+ showCharts.value = false
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
@@ -563,10 +598,11 @@ const clearCheck = () => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.chart-box {
|
|
.chart-box {
|
|
- height: 293px;
|
|
|
|
|
|
+ height: 160px;
|
|
}
|
|
}
|
|
.charts-box {
|
|
.charts-box {
|
|
position: relative;
|
|
position: relative;
|
|
|
|
+ margin-top: 5px;
|
|
.close-panel {
|
|
.close-panel {
|
|
position: absolute;
|
|
position: absolute;
|
|
top: 50%;
|
|
top: 50%;
|